diff --git a/typescript/examples/vercel-ai/allora/.env.template b/typescript/examples/vercel-ai/allora/.env.template
new file mode 100644
index 000000000..e4f9531b1
--- /dev/null
+++ b/typescript/examples/vercel-ai/allora/.env.template
@@ -0,0 +1,5 @@
+OPENAI_API_KEY=
+WALLET_PRIVATE_KEY=
+ALLORA_API_URL=
+ALLORA_API_KEY=
+COINGECKO_API_KEY=
diff --git a/typescript/examples/vercel-ai/allora/README.md b/typescript/examples/vercel-ai/allora/README.md
new file mode 100644
index 000000000..89bc61646
--- /dev/null
+++ b/typescript/examples/vercel-ai/allora/README.md
@@ -0,0 +1,15 @@
+# Vercel AI Allora Example
+
+## Setup
+
+Copy the `.env.template` and populate with your values.
+
+```
+cp .env.template .env
+```
+
+## Usage
+
+```
+npx ts-node index.ts
+```
diff --git a/typescript/examples/vercel-ai/allora/index.ts b/typescript/examples/vercel-ai/allora/index.ts
new file mode 100644
index 000000000..5d75823b7
--- /dev/null
+++ b/typescript/examples/vercel-ai/allora/index.ts
@@ -0,0 +1,45 @@
+import { openai } from '@ai-sdk/openai'
+import { generateText } from 'ai'
+
+import { http, createWalletClient } from 'viem'
+import { privateKeyToAccount } from 'viem/accounts'
+import { sepolia } from 'viem/chains'
+
+import { getOnChainTools } from '@goat-sdk/adapter-vercel-ai'
+
+import { allora } from '@goat-sdk/plugin-allora'
+import { coingecko } from "@goat-sdk/plugin-coingecko"
+import { viem } from '@goat-sdk/wallet-viem'
+
+require('dotenv').config()
+
+const account = privateKeyToAccount(process.env.WALLET_PRIVATE_KEY as `0x${string}`)
+
+const walletClient = createWalletClient({
+ account: account,
+ transport: http(),
+ chain: sepolia,
+})
+
+;(async () => {
+ const tools = await getOnChainTools({
+ wallet: viem(walletClient),
+ plugins: [
+ allora({
+ apiKey: process.env.ALLORA_API_KEY,
+ }),
+ coingecko({
+ apiKey: process.env.COINGECKO_API_KEY as string,
+ }),
+ ],
+ })
+
+ const result = await generateText({
+ model: openai('gpt-4o-mini'),
+ tools: tools,
+ maxSteps: 5,
+ prompt: 'Can you fetch the current price of ETH and the predicted price in 8 hours and make a recommendation as to whether I should buy or sell?',
+ })
+
+ console.log(result.text)
+})()
diff --git a/typescript/examples/vercel-ai/allora/package.json b/typescript/examples/vercel-ai/allora/package.json
new file mode 100644
index 000000000..9b19ec229
--- /dev/null
+++ b/typescript/examples/vercel-ai/allora/package.json
@@ -0,0 +1,22 @@
+{
+ "name": "goat-examples-vercel-ai-allora",
+ "version": "0.1.0",
+ "description": "",
+ "private": true,
+ "scripts": {
+ "test": "vitest run --passWithNoTests"
+ },
+ "author": "",
+ "license": "MIT",
+ "dependencies": {
+ "@ai-sdk/openai": "^1.0.4",
+ "@goat-sdk/adapter-vercel-ai": "workspace:*",
+ "@goat-sdk/core": "workspace:*",
+ "@goat-sdk/plugin-allora": "workspace:*",
+ "@goat-sdk/plugin-coingecko": "workspace:*",
+ "@goat-sdk/wallet-viem": "workspace:*",
+ "ai": "catalog:",
+ "dotenv": "^16.4.5",
+ "viem": "2.21.49"
+ }
+}
diff --git a/typescript/examples/vercel-ai/allora/tsconfig.json b/typescript/examples/vercel-ai/allora/tsconfig.json
new file mode 100644
index 000000000..a7fc4a937
--- /dev/null
+++ b/typescript/examples/vercel-ai/allora/tsconfig.json
@@ -0,0 +1,8 @@
+{
+ "extends": "../../../tsconfig.base.json",
+ "compilerOptions": {
+ "outDir": "dist"
+ },
+ "include": ["index.ts"],
+ "exclude": ["node_modules", "dist"]
+}
diff --git a/typescript/packages/plugins/allora/README.md b/typescript/packages/plugins/allora/README.md
new file mode 100644
index 000000000..d53ac844c
--- /dev/null
+++ b/typescript/packages/plugins/allora/README.md
@@ -0,0 +1,38 @@
+# Goat Allora Plugin š (TypeScript)
+
+[Allora Network](https://allora.network) plugin for Goat. Allora Network is an AI-powered inference platform that delivers real-time, self-improving predictions and insights for various use cases. By aggregating and analyzing data from diverse sourcesāsuch as blockchain networks and off-chain APIsāAllora seamlessly provides low-latency, high-performance predictive analytics without requiring complex infrastructure. The platformās intuitive approach allows developers to focus on building intelligence-driven solutions, while Allora takes care of the heavy lifting behind the scenes.
+
+## Installation
+
+```
+npm install @goat-sdk/plugin-allora
+```
+
+## Setup
+
+```typescript
+import { allora } from '@goat-sdk/plugin-allora'
+
+const plugin = allora({
+ apiKey: process.env.ALLORA_API_KEY,
+})
+```
+
+## Available Actions
+
+### Fetch Price Prediction
+
+Fetches a price prediction for the given asset and timeframe.
+
+## Goat
+
+
+Go out and eat some grass.
+
+[Docs](https://ohmygoat.dev) | [Examples](https://github.com/goat-sdk/goat/tree/main/typescript/examples) | [Discord](https://discord.gg/goat-sdk)
+
+## Goat š
+
+Goat š (Great On-chain Agent Toolkit) is an open-source library enabling AI agents to interact with blockchain protocols and smart contracts via their own wallets.
+
+
diff --git a/typescript/packages/plugins/allora/package.json b/typescript/packages/plugins/allora/package.json
new file mode 100644
index 000000000..e18f85d78
--- /dev/null
+++ b/typescript/packages/plugins/allora/package.json
@@ -0,0 +1,41 @@
+{
+ "name": "@goat-sdk/plugin-allora",
+ "version": "0.1.0",
+ "files": [
+ "dist/**/*",
+ "README.md",
+ "package.json"
+ ],
+ "scripts": {
+ "build": "tsup",
+ "clean": "rm -rf dist",
+ "test": "vitest run --passWithNoTests"
+ },
+ "sideEffects": false,
+ "main": "./dist/index.js",
+ "module": "./dist/index.mjs",
+ "types": "./dist/index.d.ts",
+ "dependencies": {
+ "@goat-sdk/core": "workspace:*",
+ "zod": "catalog:",
+ "axios": "1.7.9"
+ },
+ "peerDependencies": {
+ "@goat-sdk/core": "workspace:*"
+ },
+ "homepage": "https://ohmygoat.dev",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/goat-sdk/goat.git"
+ },
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/goat-sdk/goat/issues"
+ },
+ "keywords": [
+ "ai",
+ "agents",
+ "web3",
+ "allora"
+ ]
+}
diff --git a/typescript/packages/plugins/allora/src/allora.plugin.ts b/typescript/packages/plugins/allora/src/allora.plugin.ts
new file mode 100644
index 000000000..b7909747a
--- /dev/null
+++ b/typescript/packages/plugins/allora/src/allora.plugin.ts
@@ -0,0 +1,20 @@
+import { PluginBase } from '@goat-sdk/core'
+import { AlloraService } from './allora.service'
+
+export interface AlloraPluginOptions {
+ apiKey?: string
+ apiRoot?: string
+}
+
+export class AlloraPlugin extends PluginBase {
+ constructor(opts: AlloraPluginOptions) {
+ super('allora', [ new AlloraService(opts) ])
+ }
+
+ supportsChain = () => true
+}
+
+export function allora(options: AlloraPluginOptions) {
+ return new AlloraPlugin(options)
+}
+
diff --git a/typescript/packages/plugins/allora/src/allora.service.ts b/typescript/packages/plugins/allora/src/allora.service.ts
new file mode 100644
index 000000000..509a36356
--- /dev/null
+++ b/typescript/packages/plugins/allora/src/allora.service.ts
@@ -0,0 +1,25 @@
+import { Tool } from '@goat-sdk/core'
+import { AlloraAPIClient, AlloraPricePredictionToken, AlloraPricePredictionTimeframe } from './api'
+import { GetAlloraPricePredictionParameters } from './parameters'
+
+export interface AlloraServiceOptions {
+ apiKey?: string
+ apiRoot?: string
+}
+
+export class AlloraService {
+ private readonly client: AlloraAPIClient
+
+ constructor(opts: AlloraServiceOptions) {
+ this.client = new AlloraAPIClient(opts)
+ }
+
+ @Tool({
+ description: 'Fetch a future price prediction for a crypto asset from Allora Network. Specify 5 minutes from now `5m`, or 8 hours from now `8h`.',
+ })
+ async getPricePrediction(parameters: GetAlloraPricePredictionParameters) {
+ const { ticker, timeframe } = parameters
+ return this.client.fetchAlloraPricePrediction(ticker as AlloraPricePredictionToken, timeframe as AlloraPricePredictionTimeframe)
+ }
+}
+
diff --git a/typescript/packages/plugins/allora/src/api.ts b/typescript/packages/plugins/allora/src/api.ts
new file mode 100644
index 000000000..9c40af703
--- /dev/null
+++ b/typescript/packages/plugins/allora/src/api.ts
@@ -0,0 +1,86 @@
+import axios from 'axios'
+
+export interface AlloraInferenceData {
+ network_inference: string
+ network_inference_normalized: string
+ confidence_interval_percentiles: string[]
+ confidence_interval_percentiles_normalized: string[]
+ confidence_interval_values: string[]
+ confidence_interval_values_normalized: string[]
+ topic_id: string
+ timestamp: number
+ extra_data: string
+}
+
+export interface AlloraAPIResponse {
+ request_id: string
+ status: boolean
+ data: {
+ signature: string
+ inference_data: AlloraInferenceData
+ }
+}
+
+export enum AlloraPricePredictionToken {
+ BTC = 'BTC',
+ ETH = 'ETH',
+}
+
+export enum AlloraPricePredictionTimeframe {
+ '5m' = '5m',
+ '8h' = '8h',
+}
+
+export enum AlloraPricePredictionSignatureFormat {
+ EthereumSepolia = 'ethereum-11155111'
+}
+
+export interface AlloraAPIClientOptions {
+ apiKey?: string
+ apiRoot?: string
+}
+
+export class AlloraAPIClient {
+ private apiKey: string | null | undefined
+ private apiRoot: string
+
+ constructor(opts: AlloraAPIClientOptions) {
+ this.apiKey = opts.apiKey
+
+ opts.apiRoot = opts.apiRoot || 'https://api.upshot.xyz/v2/allora'
+ this.apiRoot = opts.apiRoot[opts.apiRoot.length - 1] === '/' ? opts.apiRoot.substr(0, opts.apiRoot.length - 1) : opts.apiRoot
+ }
+
+ public async fetchAlloraPricePrediction(
+ asset: AlloraPricePredictionToken,
+ timeframe: AlloraPricePredictionTimeframe,
+ signatureFormat: AlloraPricePredictionSignatureFormat = AlloraPricePredictionSignatureFormat.EthereumSepolia,
+ ): Promise> {
+ const url = `consumer/price/${signatureFormat}/${asset}/${timeframe}`
+ const resp = await this.fetchAlloraAPIData(url)
+ if (!resp?.data?.inference_data) {
+ throw new Error(`API response missing data: ${JSON.stringify(resp)}`)
+ }
+ return resp.data.inference_data
+ }
+
+ private async fetchAlloraAPIData(endpoint: string): Promise> {
+ endpoint = endpoint[0] === '/' ? endpoint.substr(1) : endpoint
+
+ const url = `${this.apiRoot}/${endpoint}`
+ const headers: Record = {
+ 'Content-Type': 'application/json',
+ 'Accept': 'application/json',
+ }
+ if (!!this.apiKey) {
+ headers['x-api-key'] = this.apiKey
+ }
+
+ const response = await axios.get(url, { headers })
+ if (response.status >= 400) {
+ throw new Error(`Allora plugin: error requesting price prediction: url=${url} status=${response.status} body=${JSON.stringify(response.data, null, 4)}`)
+ }
+
+ return response.data
+ }
+}
diff --git a/typescript/packages/plugins/allora/src/index.ts b/typescript/packages/plugins/allora/src/index.ts
new file mode 100644
index 000000000..f722473b4
--- /dev/null
+++ b/typescript/packages/plugins/allora/src/index.ts
@@ -0,0 +1,2 @@
+export * from './allora.plugin'
+export * from './parameters'
diff --git a/typescript/packages/plugins/allora/src/parameters.ts b/typescript/packages/plugins/allora/src/parameters.ts
new file mode 100644
index 000000000..3fb24037b
--- /dev/null
+++ b/typescript/packages/plugins/allora/src/parameters.ts
@@ -0,0 +1,9 @@
+import { createToolParameters } from '@goat-sdk/core'
+import { z } from 'zod'
+
+export class GetAlloraPricePredictionParameters extends createToolParameters(
+ z.object({
+ ticker: z.enum(['BTC', 'ETH']).describe('The ticker of the currency for which to fetch a price prediction.'),
+ timeframe: z.enum(['5m', '8h']).describe('The timeframe for the prediction (currently, either "5m" or "8h").'),
+ })
+) {}
diff --git a/typescript/packages/plugins/allora/tsconfig.json b/typescript/packages/plugins/allora/tsconfig.json
new file mode 100644
index 000000000..b4ae67c1f
--- /dev/null
+++ b/typescript/packages/plugins/allora/tsconfig.json
@@ -0,0 +1,6 @@
+{
+ "$schema": "https://json.schemastore.org/tsconfig",
+ "extends": "../../../tsconfig.base.json",
+ "include": ["src/**/*"],
+ "exclude": ["node_modules", "dist"]
+}
diff --git a/typescript/packages/plugins/allora/tsup.config.ts b/typescript/packages/plugins/allora/tsup.config.ts
new file mode 100644
index 000000000..ca77fa112
--- /dev/null
+++ b/typescript/packages/plugins/allora/tsup.config.ts
@@ -0,0 +1,6 @@
+import { defineConfig } from 'tsup'
+import { treeShakableConfig } from '../../../tsup.config.base'
+
+export default defineConfig({
+ ...treeShakableConfig,
+})
diff --git a/typescript/packages/plugins/allora/turbo.json b/typescript/packages/plugins/allora/turbo.json
new file mode 100644
index 000000000..45f951676
--- /dev/null
+++ b/typescript/packages/plugins/allora/turbo.json
@@ -0,0 +1,11 @@
+{
+ "$schema": "https://turbo.build/schema.json",
+ "extends": ["//"],
+ "tasks": {
+ "build": {
+ "inputs": ["src/**", "tsup.config.ts", "!./**/*.test.{ts,tsx}", "tsconfig.json"],
+ "dependsOn": ["^build"],
+ "outputs": ["dist/**"]
+ }
+ }
+}
diff --git a/typescript/pnpm-lock.yaml b/typescript/pnpm-lock.yaml
index 21549a3f0..231636265 100644
--- a/typescript/pnpm-lock.yaml
+++ b/typescript/pnpm-lock.yaml
@@ -222,7 +222,7 @@ importers:
version: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
langchain:
specifier: ^0.3.2
- version: 0.3.6(@langchain/core@0.3.6(openai@4.77.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.4)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.77.0(encoding@0.1.13)(zod@3.23.8))
+ version: 0.3.6(@langchain/core@0.3.6(openai@4.77.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.77.0(encoding@0.1.13)(zod@3.23.8))
viem:
specifier: 2.21.49
version: 2.21.49(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
@@ -255,7 +255,7 @@ importers:
version: 16.4.5
langchain:
specifier: ^0.3.2
- version: 0.3.6(@langchain/core@0.3.6(openai@4.77.0(encoding@0.1.13)(zod@3.24.1)))(axios@1.7.4)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.77.0(encoding@0.1.13)(zod@3.24.1))
+ version: 0.3.6(@langchain/core@0.3.6(openai@4.77.0(encoding@0.1.13)(zod@3.24.1)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.77.0(encoding@0.1.13)(zod@3.24.1))
viem:
specifier: 2.21.49
version: 2.21.49(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.24.1)
@@ -327,6 +327,36 @@ importers:
specifier: 2.21.49
version: 2.21.49(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.24.1)
+ examples/vercel-ai/allora:
+ dependencies:
+ '@ai-sdk/openai':
+ specifier: ^1.0.4
+ version: 1.0.11(zod@3.24.1)
+ '@goat-sdk/adapter-vercel-ai':
+ specifier: workspace:*
+ version: link:../../../packages/adapters/vercel-ai
+ '@goat-sdk/core':
+ specifier: workspace:*
+ version: link:../../../packages/core
+ '@goat-sdk/plugin-allora':
+ specifier: workspace:*
+ version: link:../../../packages/plugins/allora
+ '@goat-sdk/plugin-coingecko':
+ specifier: workspace:*
+ version: link:../../../packages/plugins/coingecko
+ '@goat-sdk/wallet-viem':
+ specifier: workspace:*
+ version: link:../../../packages/wallets/viem
+ ai:
+ specifier: 'catalog:'
+ version: 4.0.3(react@19.0.0-rc-66855b96-20241106)(zod@3.24.1)
+ dotenv:
+ specifier: ^16.4.5
+ version: 16.4.5
+ viem:
+ specifier: 2.21.49
+ version: 2.21.49(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.24.1)
+
examples/vercel-ai/chromia:
dependencies:
'@ai-sdk/openai':
@@ -757,7 +787,7 @@ importers:
dependencies:
'@ai16z/eliza':
specifier: 0.1.5-alpha.5
- version: 0.1.5-alpha.5(@google-cloud/vertexai@1.9.0(encoding@0.1.13))(@langchain/core@0.3.18(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.4)(encoding@0.1.13)(handlebars@4.7.8)(react@19.0.0-rc-66855b96-20241106)(sswr@2.1.0(svelte@5.2.12))(svelte@5.2.12)(vue@3.5.13(typescript@5.6.3))
+ version: 0.1.5-alpha.5(@google-cloud/vertexai@1.9.0(encoding@0.1.13))(@langchain/core@0.3.18(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(react@19.0.0-rc-66855b96-20241106)(sswr@2.1.0(svelte@5.2.12))(svelte@5.2.12)(vue@3.5.13(typescript@5.6.3))
'@goat-sdk/core':
specifier: workspace:*
version: link:../../core
@@ -833,6 +863,18 @@ importers:
specifier: 'catalog:'
version: 3.23.8
+ packages/plugins/allora:
+ dependencies:
+ '@goat-sdk/core':
+ specifier: workspace:*
+ version: link:../../core
+ axios:
+ specifier: 1.7.9
+ version: 1.7.9
+ zod:
+ specifier: 'catalog:'
+ version: 3.23.8
+
packages/plugins/coingecko:
dependencies:
'@goat-sdk/core':
@@ -5976,6 +6018,9 @@ packages:
axios@1.7.4:
resolution: {integrity: sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==}
+ axios@1.7.9:
+ resolution: {integrity: sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==}
+
axobject-query@4.1.0:
resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
engines: {node: '>= 0.4'}
@@ -11434,7 +11479,7 @@ snapshots:
transitivePeerDependencies:
- zod
- '@ai16z/eliza@0.1.5-alpha.5(@google-cloud/vertexai@1.9.0(encoding@0.1.13))(@langchain/core@0.3.18(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.4)(encoding@0.1.13)(handlebars@4.7.8)(react@19.0.0-rc-66855b96-20241106)(sswr@2.1.0(svelte@5.2.12))(svelte@5.2.12)(vue@3.5.13(typescript@5.6.3))':
+ '@ai16z/eliza@0.1.5-alpha.5(@google-cloud/vertexai@1.9.0(encoding@0.1.13))(@langchain/core@0.3.18(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(react@19.0.0-rc-66855b96-20241106)(sswr@2.1.0(svelte@5.2.12))(svelte@5.2.12)(vue@3.5.13(typescript@5.6.3))':
dependencies:
'@ai-sdk/anthropic': 0.0.56(zod@3.23.8)
'@ai-sdk/google': 0.0.55(zod@3.23.8)
@@ -11452,7 +11497,7 @@ snapshots:
glob: 11.0.0
js-sha1: 0.7.0
js-tiktoken: 1.0.15
- langchain: 0.3.6(@langchain/core@0.3.18(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.4)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))
+ langchain: 0.3.6(@langchain/core@0.3.18(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))
ollama-ai-provider: 0.16.1(zod@3.23.8)
openai: 4.73.0(encoding@0.1.13)(zod@3.23.8)
tinyld: 1.3.4
@@ -18930,6 +18975,14 @@ snapshots:
transitivePeerDependencies:
- debug
+ axios@1.7.9:
+ dependencies:
+ follow-redirects: 1.15.9
+ form-data: 4.0.1
+ proxy-from-env: 1.1.0
+ transitivePeerDependencies:
+ - debug
+
axobject-query@4.1.0: {}
b4a@1.6.7: {}
@@ -20218,7 +20271,7 @@ snapshots:
extension-port-stream@3.0.0:
dependencies:
- readable-stream: 3.6.2
+ readable-stream: 4.6.0
webextension-polyfill: 0.10.0
external-editor@3.1.0:
@@ -21352,7 +21405,7 @@ snapshots:
kuler@2.0.0: {}
- langchain@0.3.6(@langchain/core@0.3.18(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.4)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)):
+ langchain@0.3.6(@langchain/core@0.3.18(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)):
dependencies:
'@langchain/core': 0.3.18(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))
'@langchain/openai': 0.3.14(@langchain/core@0.3.18(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)
@@ -21368,13 +21421,13 @@ snapshots:
zod: 3.23.8
zod-to-json-schema: 3.23.5(zod@3.23.8)
optionalDependencies:
- axios: 1.7.4
+ axios: 1.7.9
handlebars: 4.7.8
transitivePeerDependencies:
- encoding
- openai
- langchain@0.3.6(@langchain/core@0.3.6(openai@4.77.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.4)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.77.0(encoding@0.1.13)(zod@3.23.8)):
+ langchain@0.3.6(@langchain/core@0.3.6(openai@4.77.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.77.0(encoding@0.1.13)(zod@3.23.8)):
dependencies:
'@langchain/core': 0.3.6(openai@4.77.0(encoding@0.1.13)(zod@3.23.8))
'@langchain/openai': 0.3.14(@langchain/core@0.3.6(openai@4.77.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)
@@ -21390,13 +21443,13 @@ snapshots:
zod: 3.23.8
zod-to-json-schema: 3.23.5(zod@3.23.8)
optionalDependencies:
- axios: 1.7.4
+ axios: 1.7.9
handlebars: 4.7.8
transitivePeerDependencies:
- encoding
- openai
- langchain@0.3.6(@langchain/core@0.3.6(openai@4.77.0(encoding@0.1.13)(zod@3.24.1)))(axios@1.7.4)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.77.0(encoding@0.1.13)(zod@3.24.1)):
+ langchain@0.3.6(@langchain/core@0.3.6(openai@4.77.0(encoding@0.1.13)(zod@3.24.1)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.77.0(encoding@0.1.13)(zod@3.24.1)):
dependencies:
'@langchain/core': 0.3.6(openai@4.77.0(encoding@0.1.13)(zod@3.24.1))
'@langchain/openai': 0.3.14(@langchain/core@0.3.6(openai@4.77.0(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13)
@@ -21412,7 +21465,7 @@ snapshots:
zod: 3.23.8
zod-to-json-schema: 3.23.5(zod@3.23.8)
optionalDependencies:
- axios: 1.7.4
+ axios: 1.7.9
handlebars: 4.7.8
transitivePeerDependencies:
- encoding