diff --git a/typescript/framework-extensions/vercel-ai-sdk/CHANGELOG.md b/typescript/framework-extensions/vercel-ai-sdk/CHANGELOG.md index 5db1c6991..49302365f 100644 --- a/typescript/framework-extensions/vercel-ai-sdk/CHANGELOG.md +++ b/typescript/framework-extensions/vercel-ai-sdk/CHANGELOG.md @@ -1,5 +1,9 @@ # @coinbase/agentkit-vercel-ai-sdk +## 0.2.0 + +- Ai-sdk v5 Support. + ## 0.1.0 ### Minor Changes diff --git a/typescript/framework-extensions/vercel-ai-sdk/package.json b/typescript/framework-extensions/vercel-ai-sdk/package.json index 2bee7450e..3ce0df160 100644 --- a/typescript/framework-extensions/vercel-ai-sdk/package.json +++ b/typescript/framework-extensions/vercel-ai-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@coinbase/agentkit-vercel-ai-sdk", - "version": "0.1.0", + "version": "0.2.0", "description": "Vercel AI SDK extension of CDP Agentkit", "repository": "https://github.com/coinbase/agentkit", "author": "Coinbase Inc.", @@ -39,13 +39,13 @@ "ai-sdk" ], "dependencies": { - "zod": "^3.22.4" + "zod": "^3.25.76" }, "devDependencies": { "@coinbase/agentkit": "workspace:*" }, "peerDependencies": { "@coinbase/agentkit": ">=0.1.0", - "ai": "^4.1.16" + "ai": "^5.0.49" } } diff --git a/typescript/framework-extensions/vercel-ai-sdk/src/getVercelAiTools.test.ts b/typescript/framework-extensions/vercel-ai-sdk/src/getVercelAiTools.test.ts index 1c3ade561..7b7bac5d6 100644 --- a/typescript/framework-extensions/vercel-ai-sdk/src/getVercelAiTools.test.ts +++ b/typescript/framework-extensions/vercel-ai-sdk/src/getVercelAiTools.test.ts @@ -33,7 +33,7 @@ describe("getVercelAITools", () => { const tool = tools.testAction; expect((tool as { description?: string }).description).toBe(mockAction.description); - expect(tool.parameters).toBe(mockAction.schema); + expect(tool.inputSchema).toBe(mockAction.schema); // Test execution with required options const result = await tool.execute!( diff --git a/typescript/framework-extensions/vercel-ai-sdk/src/getVercelAiTools.ts b/typescript/framework-extensions/vercel-ai-sdk/src/getVercelAiTools.ts index 4f8cef429..1728c8efd 100644 --- a/typescript/framework-extensions/vercel-ai-sdk/src/getVercelAiTools.ts +++ b/typescript/framework-extensions/vercel-ai-sdk/src/getVercelAiTools.ts @@ -17,7 +17,7 @@ export function getVercelAITools(agentKit: AgentKit): ToolSet { return actions.reduce((acc, action) => { acc[action.name] = tool({ description: action.description, - parameters: action.schema, + inputSchema: action.schema, execute: async (args: z.output) => { const result = await action.invoke(args); return result; diff --git a/typescript/pnpm-lock.yaml b/typescript/pnpm-lock.yaml index 8972eac54..7752606a6 100644 --- a/typescript/pnpm-lock.yaml +++ b/typescript/pnpm-lock.yaml @@ -648,11 +648,11 @@ importers: framework-extensions/vercel-ai-sdk: dependencies: ai: - specifier: ^4.1.16 - version: 4.2.6(react@18.3.1)(zod@3.24.2) + specifier: ^5.0.49 + version: 5.0.49(zod@3.25.76) zod: - specifier: ^3.22.4 - version: 3.24.2 + specifier: ^3.25.76 + version: 3.25.76 devDependencies: '@coinbase/agentkit': specifier: workspace:* @@ -672,6 +672,12 @@ packages: '@adraffy/ens-normalize@1.11.0': resolution: {integrity: sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==} + '@ai-sdk/gateway@1.0.26': + resolution: {integrity: sha512-AfTkubvvHU+soI5IdIpPvXgdnNy56Kt//vBJxYNQ0eGwlVhSQ/SkCVMdQxcVDvdTvlEO46MHKuPaZnQnT5Zgxw==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4 + '@ai-sdk/openai@1.3.3': resolution: {integrity: sha512-CH57tonLB4DwkwqwnMmTCoIOR7cNW3bP5ciyloI7rBGJS/Bolemsoo+vn5YnwkyT9O1diWJyvYeTh7A4UfiYOw==} engines: {node: '>=18'} @@ -684,10 +690,20 @@ packages: peerDependencies: zod: ^3.23.8 + '@ai-sdk/provider-utils@3.0.9': + resolution: {integrity: sha512-Pm571x5efqaI4hf9yW4KsVlDBDme8++UepZRnq+kqVBWWjgvGhQlzU8glaFq0YJEB9kkxZHbRRyVeHoV2sRYaQ==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4 + '@ai-sdk/provider@1.1.0': resolution: {integrity: sha512-0M+qjp+clUD0R1E5eWQFhxEvWLNaOtGQRUaBn8CUABnSKredagq92hUS9VjOzGsTm37xLfpaxl97AVtbeOsHew==} engines: {node: '>=18'} + '@ai-sdk/provider@2.0.0': + resolution: {integrity: sha512-6o7Y2SeO9vFKB8lArHXehNuusnpddKPk7xqL7T2/b+OvXMRIXUO1rR4wcv1hAFUAT9avGZshty3Wlua/XA7TvA==} + engines: {node: '>=18'} + '@ai-sdk/react@1.2.2': resolution: {integrity: sha512-rxyNTFjUd3IilVOJFuUJV5ytZBYAIyRi50kFS2gNmSEiG4NHMBBm31ddrxI/i86VpY8gzZVp1/igtljnWBihUA==} engines: {node: '>=18'} @@ -2098,6 +2114,9 @@ packages: '@stablelib/base64@1.0.1': resolution: {integrity: sha512-1bnPQqSxSuc3Ii6MhBysoWCg58j97aUjuCSZrGSmDxNqtytIi0k8utUenAwTZN4V5mXXYGsVUI9zeBqy+jBOSQ==} + '@standard-schema/spec@1.0.0': + resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==} + '@swc/helpers@0.5.15': resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} @@ -2555,6 +2574,12 @@ packages: react: optional: true + ai@5.0.49: + resolution: {integrity: sha512-7XVcmXbnAqG7waJqNcxKrzVW1Ck5fw4KhWxAyltKxnupOgFxH62ra1zEofym/KO3hPYq4aJ3/gTp1ZeLvlwLkQ==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4 + ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} @@ -3536,6 +3561,10 @@ packages: resolution: {integrity: sha512-T1C0XCUimhxVQzW4zFipdx0SficT651NnkR0ZSH3yQwh+mFMdLfgjABVi4YtMTtaL4s168593DaoaRLMqryavA==} engines: {node: '>=18.0.0'} + eventsource-parser@3.0.6: + resolution: {integrity: sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==} + engines: {node: '>=18.0.0'} + eventsource@3.0.5: resolution: {integrity: sha512-LT/5J605bx5SNyE+ITBDiM3FxffBiq9un7Vx0EwMDM3vg8sWKx/tO2zC+LMqZ+smAM0F2hblaDZUVZF0te2pSw==} engines: {node: '>=18.0.0'} @@ -6274,6 +6303,9 @@ packages: zod@3.25.56: resolution: {integrity: sha512-rd6eEF3BTNvQnR2e2wwolfTmUTnp70aUTqr0oaGbHifzC3BKJsoV+Gat8vxUMR1hwOKBs6El+qWehrHbCpW6SQ==} + zod@3.25.76: + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} + zustand@5.0.0: resolution: {integrity: sha512-LE+VcmbartOPM+auOjCCLQOsQ05zUTp8RkgwRzefUk+2jISdMMFnxvyTjA4YNWr5ZGXYbVsEMZosttuxUBkojQ==} engines: {node: '>=12.20.0'} @@ -6320,6 +6352,12 @@ snapshots: '@adraffy/ens-normalize@1.11.0': {} + '@ai-sdk/gateway@1.0.26(zod@3.25.76)': + dependencies: + '@ai-sdk/provider': 2.0.0 + '@ai-sdk/provider-utils': 3.0.9(zod@3.25.76) + zod: 3.25.76 + '@ai-sdk/openai@1.3.3(zod@3.24.2)': dependencies: '@ai-sdk/provider': 1.1.0 @@ -6333,10 +6371,21 @@ snapshots: secure-json-parse: 2.7.0 zod: 3.24.2 + '@ai-sdk/provider-utils@3.0.9(zod@3.25.76)': + dependencies: + '@ai-sdk/provider': 2.0.0 + '@standard-schema/spec': 1.0.0 + eventsource-parser: 3.0.6 + zod: 3.25.76 + '@ai-sdk/provider@1.1.0': dependencies: json-schema: 0.4.0 + '@ai-sdk/provider@2.0.0': + dependencies: + json-schema: 0.4.0 + '@ai-sdk/react@1.2.2(react@18.3.1)(zod@3.24.2)': dependencies: '@ai-sdk/provider-utils': 2.2.1(zod@3.24.2) @@ -8022,7 +8071,7 @@ snapshots: '@privy-io/api-base@1.4.3': dependencies: - zod: 3.25.56 + zod: 3.25.76 '@privy-io/public-api@2.18.5(bufferutil@4.0.9)(utf-8-validate@5.0.10)': dependencies: @@ -8971,6 +9020,8 @@ snapshots: '@stablelib/base64@1.0.1': {} + '@standard-schema/spec@1.0.0': {} + '@swc/helpers@0.5.15': dependencies: tslib: 2.8.1 @@ -9977,6 +10028,14 @@ snapshots: optionalDependencies: react: 18.3.1 + ai@5.0.49(zod@3.25.76): + dependencies: + '@ai-sdk/gateway': 1.0.26(zod@3.25.76) + '@ai-sdk/provider': 2.0.0 + '@ai-sdk/provider-utils': 3.0.9(zod@3.25.76) + '@opentelemetry/api': 1.9.0 + zod: 3.25.76 + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -11166,6 +11225,8 @@ snapshots: eventsource-parser@3.0.0: {} + eventsource-parser@3.0.6: {} + eventsource@3.0.5: dependencies: eventsource-parser: 3.0.0 @@ -14525,6 +14586,8 @@ snapshots: zod@3.25.56: {} + zod@3.25.76: {} + zustand@5.0.0(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)): optionalDependencies: react: 18.3.1