llm-advanced-tools 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +83 -70
- package/dist/adapters/index.d.ts +1 -2
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +1 -3
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/vercel-ai.d.ts +15 -2
- package/dist/adapters/vercel-ai.d.ts.map +1 -1
- package/dist/adapters/vercel-ai.js +76 -42
- package/dist/adapters/vercel-ai.js.map +1 -1
- package/dist/core/client.d.ts.map +1 -1
- package/dist/core/client.js +5 -2
- package/dist/core/client.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/package.json +29 -11
- package/dist/adapters/openai.d.ts +0 -38
- package/dist/adapters/openai.d.ts.map +0 -1
- package/dist/adapters/openai.js +0 -170
- package/dist/adapters/openai.js.map +0 -1
- package/plan.md +0 -576
- package/src/adapters/index.ts +0 -2
- package/src/adapters/openai.ts +0 -195
- package/src/adapters/vercel-ai.ts +0 -281
- package/src/core/client.ts +0 -232
- package/src/core/index.ts +0 -2
- package/src/core/registry.ts +0 -198
- package/src/executor/base.ts +0 -122
- package/src/executor/index.ts +0 -2
- package/src/executor/vm.ts +0 -87
- package/src/index.ts +0 -26
- package/src/search/base.ts +0 -63
- package/src/search/bm25.ts +0 -64
- package/src/search/index.ts +0 -3
- package/src/search/regex.ts +0 -66
- package/src/types/index.ts +0 -221
- package/test-advanced.ts +0 -212
- package/test-simple.ts +0 -91
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# Advanced Tools - Provider-Agnostic
|
|
1
|
+
# LLM Advanced Tools - Provider-Agnostic Tool Use Library
|
|
2
2
|
|
|
3
|
-
A TypeScript library that brings
|
|
3
|
+
A TypeScript library that brings advanced tool use features to all major LLM providers through Vercel AI SDK (OpenAI, Anthropic, Google, and more).
|
|
4
4
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
@@ -39,7 +39,9 @@ npm install llm-advanced-tools
|
|
|
39
39
|
## Quick Start
|
|
40
40
|
|
|
41
41
|
```typescript
|
|
42
|
-
import { Client, ToolRegistry,
|
|
42
|
+
import { Client, ToolRegistry, VercelAIAdapter, ToolDefinition } from 'llm-advanced-tools';
|
|
43
|
+
import { openai } from '@ai-sdk/openai';
|
|
44
|
+
import { anthropic } from '@ai-sdk/anthropic';
|
|
43
45
|
|
|
44
46
|
// 1. Create a tool registry
|
|
45
47
|
const registry = new ToolRegistry({
|
|
@@ -54,8 +56,12 @@ const weatherTool: ToolDefinition = {
|
|
|
54
56
|
inputSchema: {
|
|
55
57
|
type: 'object',
|
|
56
58
|
properties: {
|
|
57
|
-
location: { type: 'string' },
|
|
58
|
-
units: {
|
|
59
|
+
location: { type: 'string', description: 'City name' },
|
|
60
|
+
units: {
|
|
61
|
+
type: 'string',
|
|
62
|
+
enum: ['celsius', 'fahrenheit'],
|
|
63
|
+
description: 'Temperature units'
|
|
64
|
+
}
|
|
59
65
|
},
|
|
60
66
|
required: ['location']
|
|
61
67
|
},
|
|
@@ -76,54 +82,43 @@ const weatherTool: ToolDefinition = {
|
|
|
76
82
|
|
|
77
83
|
registry.register(weatherTool);
|
|
78
84
|
|
|
79
|
-
// 3. Create client with any provider
|
|
80
|
-
const client = new Client({
|
|
81
|
-
adapter: new OpenAIAdapter(process.env.OPENAI_API_KEY!),
|
|
82
|
-
enableToolSearch: true,
|
|
83
|
-
enableProgrammaticCalling: true
|
|
84
|
-
}, registry);
|
|
85
|
-
|
|
86
|
-
// 4. Chat!
|
|
87
|
-
const response = await client.ask("What's the weather in SF?");
|
|
88
|
-
console.log(response);
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
### Quick Start with Vercel AI SDK (v4.x)
|
|
92
|
-
|
|
93
|
-
Use the latest Vercel AI SDK with any provider:
|
|
94
|
-
|
|
95
|
-
```typescript
|
|
96
|
-
import { Client, ToolRegistry, VercelAIAdapter } from 'llm-advanced-tools';
|
|
97
|
-
import { openai } from '@ai-sdk/openai';
|
|
98
|
-
import { anthropic } from '@ai-sdk/anthropic';
|
|
99
|
-
|
|
100
|
-
const registry = new ToolRegistry({ strategy: 'smart' });
|
|
101
|
-
|
|
102
|
-
// Register your tools...
|
|
103
|
-
registry.register(weatherTool);
|
|
85
|
+
// 3. Create client with any provider via Vercel AI SDK
|
|
104
86
|
|
|
105
|
-
// Use with OpenAI
|
|
87
|
+
// Use with OpenAI GPT-5
|
|
106
88
|
const openaiClient = new Client({
|
|
107
|
-
adapter: new VercelAIAdapter(openai('gpt-
|
|
89
|
+
adapter: new VercelAIAdapter(openai('gpt-5')),
|
|
108
90
|
enableToolSearch: true,
|
|
109
91
|
enableProgrammaticCalling: true
|
|
110
92
|
}, registry);
|
|
111
93
|
|
|
112
|
-
// Or
|
|
94
|
+
// Or use with Anthropic Claude Sonnet 4.5
|
|
113
95
|
const claudeClient = new Client({
|
|
114
|
-
adapter: new VercelAIAdapter(anthropic('claude-
|
|
96
|
+
adapter: new VercelAIAdapter(anthropic('claude-sonnet-4-5')),
|
|
115
97
|
enableToolSearch: true,
|
|
116
98
|
enableProgrammaticCalling: true
|
|
117
99
|
}, registry);
|
|
118
100
|
|
|
119
|
-
|
|
101
|
+
// Or use with Google Gemini
|
|
102
|
+
// const geminiClient = new Client({
|
|
103
|
+
// adapter: new VercelAIAdapter(google('gemini-2.0-flash-exp')),
|
|
104
|
+
// enableToolSearch: true,
|
|
105
|
+
// enableProgrammaticCalling: true
|
|
106
|
+
// }, registry);
|
|
107
|
+
|
|
108
|
+
// 4. Chat!
|
|
109
|
+
const response = await openaiClient.ask("What's the weather in San Francisco?");
|
|
110
|
+
console.log(response);
|
|
120
111
|
```
|
|
121
112
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
- ✅
|
|
126
|
-
- ✅
|
|
113
|
+
## Why Vercel AI SDK?
|
|
114
|
+
|
|
115
|
+
**Benefits:**
|
|
116
|
+
- ✅ **One Interface**: Work with all major providers (OpenAI, Anthropic, Google, Mistral, etc.)
|
|
117
|
+
- ✅ **Easy Switching**: Change providers by modifying one line of code
|
|
118
|
+
- ✅ **Latest Models**: Support for GPT-5, Claude Sonnet 4.5, Gemini 2.0, and more
|
|
119
|
+
- ✅ **Advanced Features**: Tool search, programmatic calling work across all providers
|
|
120
|
+
- ✅ **Type Safety**: Full TypeScript support with excellent IDE integration
|
|
121
|
+
- ✅ **AI SDK 6 Ready**: Compatible with the latest Vercel AI SDK v6.0
|
|
127
122
|
|
|
128
123
|
## Architecture
|
|
129
124
|
|
|
@@ -142,10 +137,12 @@ const response = await openaiClient.ask("What's the weather?");
|
|
|
142
137
|
│
|
|
143
138
|
▼
|
|
144
139
|
┌─────────────────────────────────────────────────────────┐
|
|
145
|
-
│
|
|
146
|
-
│
|
|
147
|
-
│
|
|
148
|
-
│
|
|
140
|
+
│ Vercel AI SDK Adapter │
|
|
141
|
+
│ Supports all Vercel AI SDK providers: │
|
|
142
|
+
│ • OpenAI (GPT-4, GPT-5) │
|
|
143
|
+
│ • Anthropic (Claude 3.5, Claude 4.5) │
|
|
144
|
+
│ • Google (Gemini) │
|
|
145
|
+
│ • Mistral, Groq, Cohere, and more │
|
|
149
146
|
└─────────────────────────────────────────────────────────┘
|
|
150
147
|
```
|
|
151
148
|
|
|
@@ -153,7 +150,7 @@ const response = await openaiClient.ask("What's the weather?");
|
|
|
153
150
|
|
|
154
151
|
### Tool Search Tool
|
|
155
152
|
|
|
156
|
-
For providers without native support
|
|
153
|
+
For providers without native support, we implement client-side search:
|
|
157
154
|
|
|
158
155
|
1. Tools marked with `deferLoading: true` are registered but not loaded
|
|
159
156
|
2. A special `tool_search` tool is automatically added
|
|
@@ -164,7 +161,6 @@ For providers without native support (OpenAI, Google), we implement client-side
|
|
|
164
161
|
**Search Strategies:**
|
|
165
162
|
- **smart**: Intelligent relevance ranking using BM25 algorithm (recommended, default)
|
|
166
163
|
- **keyword**: Fast keyword matching for exact terms
|
|
167
|
-
- **semantic**: Meaning-based search using embeddings (coming soon)
|
|
168
164
|
- **custom**: Provide your own search function
|
|
169
165
|
|
|
170
166
|
### Programmatic Tool Calling
|
|
@@ -216,15 +212,18 @@ The LLM learns proper usage patterns from the examples.
|
|
|
216
212
|
|
|
217
213
|
## Provider Support
|
|
218
214
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
|
222
|
-
|
|
223
|
-
|
|
|
224
|
-
|
|
|
225
|
-
|
|
|
226
|
-
|
|
|
227
|
-
|
|
|
215
|
+
All providers supported through Vercel AI SDK:
|
|
216
|
+
|
|
217
|
+
| Provider | Tool Search | Code Execution | Examples | Latest Models |
|
|
218
|
+
|----------|------------|----------------|----------|---------------|
|
|
219
|
+
| **OpenAI** | ✅ (emulated) | ✅ (emulated) | ✅ (emulated) | GPT-5, GPT-4o |
|
|
220
|
+
| **Anthropic** | ✅ (native + emulated) | ✅ (native + emulated) | ✅ (native + emulated) | Claude Sonnet 4.5 |
|
|
221
|
+
| **Google** | ✅ (emulated) | ✅ (emulated) | ✅ (emulated) | Gemini 2.0 |
|
|
222
|
+
| **Mistral** | ✅ (emulated) | ✅ (emulated) | ✅ (emulated) | Latest |
|
|
223
|
+
| **Groq** | ✅ (emulated) | ✅ (emulated) | ✅ (emulated) | Latest |
|
|
224
|
+
| **Cohere** | ✅ (emulated) | ✅ (emulated) | ✅ (emulated) | Latest |
|
|
225
|
+
|
|
226
|
+
*Note: Anthropic models have native support for these features. For other providers, features are emulated client-side.*
|
|
228
227
|
|
|
229
228
|
## Configuration
|
|
230
229
|
|
|
@@ -232,7 +231,7 @@ The LLM learns proper usage patterns from the examples.
|
|
|
232
231
|
|
|
233
232
|
```typescript
|
|
234
233
|
const registry = new ToolRegistry({
|
|
235
|
-
strategy: 'smart', // 'smart' (default), 'keyword',
|
|
234
|
+
strategy: 'smart', // 'smart' (default), 'keyword', or 'custom'
|
|
236
235
|
maxResults: 10, // Max tools to return per search
|
|
237
236
|
threshold: 0.0, // Minimum relevance score (0-100)
|
|
238
237
|
customSearchFn: async (query, tools) => {
|
|
@@ -245,14 +244,13 @@ const registry = new ToolRegistry({
|
|
|
245
244
|
**Strategy Guide:**
|
|
246
245
|
- `smart`: Best for most cases - understands relevance and context
|
|
247
246
|
- `keyword`: Fast exact matching - use when you know exact tool names
|
|
248
|
-
- `semantic`: Coming soon - meaning-based search with embeddings
|
|
249
247
|
- `custom`: Advanced - provide your own search algorithm
|
|
250
248
|
|
|
251
249
|
### Code Executor Configuration
|
|
252
250
|
|
|
253
251
|
```typescript
|
|
254
252
|
const client = new Client({
|
|
255
|
-
adapter: new
|
|
253
|
+
adapter: new VercelAIAdapter(openai('gpt-5')),
|
|
256
254
|
enableProgrammaticCalling: true,
|
|
257
255
|
executorConfig: {
|
|
258
256
|
timeout: 30000, // 30 seconds
|
|
@@ -264,13 +262,6 @@ const client = new Client({
|
|
|
264
262
|
});
|
|
265
263
|
```
|
|
266
264
|
|
|
267
|
-
## Examples
|
|
268
|
-
|
|
269
|
-
See the `examples/` directory:
|
|
270
|
-
|
|
271
|
-
- `basic-usage.ts` - All three features in action
|
|
272
|
-
- `programmatic-calling.ts` - Budget compliance check example
|
|
273
|
-
|
|
274
265
|
## API Reference
|
|
275
266
|
|
|
276
267
|
### ToolDefinition
|
|
@@ -362,14 +353,36 @@ The default VM executor is **NOT secure** for untrusted code. For production:
|
|
|
362
353
|
3. **Modal**: Serverless containers
|
|
363
354
|
4. **Custom**: Implement `CodeExecutor` interface
|
|
364
355
|
|
|
356
|
+
## Changelog
|
|
357
|
+
|
|
358
|
+
### v0.1.3 (Latest)
|
|
359
|
+
**AI SDK 6 Support & Latest Models**
|
|
360
|
+
- ✅ **AI SDK 6**: Full support for Vercel AI SDK v6.0
|
|
361
|
+
- ✅ **Latest Models**: Support for GPT-5, Claude Sonnet 4.5, Gemini 2.0
|
|
362
|
+
- ✅ **Critical Fix**: Changed tool definitions from `parameters` to `inputSchema` (AI SDK 6 requirement)
|
|
363
|
+
- ✅ **Simplified**: Removed direct OpenAI adapter - use Vercel AI SDK for all providers
|
|
364
|
+
- ✅ **Improved**: Better Zod schema conversion for complex types
|
|
365
|
+
- ✅ **Compatibility**: Works with both AI SDK 5.x and 6.x
|
|
366
|
+
|
|
367
|
+
### v0.1.2
|
|
368
|
+
**Security & Compatibility Updates**
|
|
369
|
+
- ✅ **Security Fix**: Updated Vercel AI SDK adapter to support ai@5.0.116 (latest stable)
|
|
370
|
+
- ✅ **Security Fix**: Resolved all npm audit vulnerabilities
|
|
371
|
+
- ✅ **Bug Fix**: Removed circular dependency in package.json
|
|
372
|
+
- ✅ **Breaking Change Support**: Full compatibility with ai@5.x breaking changes
|
|
373
|
+
|
|
374
|
+
### v0.1.1
|
|
375
|
+
- Initial release with OpenAI and Vercel AI adapters
|
|
376
|
+
- Tool search and deferral loading
|
|
377
|
+
- Programmatic code execution
|
|
378
|
+
|
|
365
379
|
## Roadmap
|
|
366
380
|
|
|
367
|
-
- [x] Core library with
|
|
368
|
-
- [
|
|
369
|
-
- [
|
|
381
|
+
- [x] Core library with Vercel AI SDK adapter
|
|
382
|
+
- [x] AI SDK 6 support
|
|
383
|
+
- [x] Latest model support (GPT-5, Claude Sonnet 4.5)
|
|
370
384
|
- [ ] Docker-based executor
|
|
371
385
|
- [ ] E2B integration
|
|
372
|
-
- [ ] Embedding-based search
|
|
373
386
|
- [ ] Streaming support
|
|
374
387
|
- [ ] Async tool execution
|
|
375
388
|
- [ ] LangChain/LlamaIndex integration
|
|
@@ -387,4 +400,4 @@ MIT
|
|
|
387
400
|
This library implements features described in Anthropic's blog post:
|
|
388
401
|
[Introducing advanced tool use on the Claude Developer Platform](https://www.anthropic.com/engineering/advanced-tool-use)
|
|
389
402
|
|
|
390
|
-
The implementation is provider-agnostic and works with any LLM that supports function calling.
|
|
403
|
+
The implementation is provider-agnostic and works with any LLM that supports function calling through Vercel AI SDK.
|
package/dist/adapters/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/adapters/index.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.VercelAIAdapter =
|
|
4
|
-
var openai_1 = require("./openai");
|
|
5
|
-
Object.defineProperty(exports, "OpenAIAdapter", { enumerable: true, get: function () { return openai_1.OpenAIAdapter; } });
|
|
3
|
+
exports.VercelAIAdapter = void 0;
|
|
6
4
|
var vercel_ai_1 = require("./vercel-ai");
|
|
7
5
|
Object.defineProperty(exports, "VercelAIAdapter", { enumerable: true, get: function () { return vercel_ai_1.VercelAIAdapter; } });
|
|
8
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":";;;AAAA,yCAAqE;AAA5D,4GAAA,eAAe,OAAA"}
|
|
@@ -1,8 +1,20 @@
|
|
|
1
1
|
import { LanguageModel } from 'ai';
|
|
2
|
+
import type { LanguageModelV2, LanguageModelV3 } from '@ai-sdk/provider';
|
|
2
3
|
import { ProviderAdapter, ProviderCapabilities, ToolDefinition, ChatRequest, ChatResponse, ToolCall, ToolResult } from '../types';
|
|
4
|
+
/**
|
|
5
|
+
* Union type supporting all LanguageModel versions (V1, V2, V3)
|
|
6
|
+
* This ensures compatibility across different AI SDK and provider package versions.
|
|
7
|
+
*
|
|
8
|
+
* Note: LanguageModelV1 is not exported in @ai-sdk/provider v3.0.0+, but we accept
|
|
9
|
+
* it via a more permissive type to support older provider packages that return V1 models.
|
|
10
|
+
*/
|
|
11
|
+
export type AnyLanguageModel = LanguageModelV2 | LanguageModelV3 | LanguageModel | {
|
|
12
|
+
[key: string]: any;
|
|
13
|
+
};
|
|
3
14
|
/**
|
|
4
15
|
* Vercel AI SDK adapter
|
|
5
16
|
* Works with any provider supported by AI SDK (OpenAI, Anthropic, Google, etc.)
|
|
17
|
+
* Supports all LanguageModel versions (V1, V2, V3) for maximum compatibility
|
|
6
18
|
*/
|
|
7
19
|
export declare class VercelAIAdapter implements ProviderAdapter {
|
|
8
20
|
readonly name = "vercel-ai";
|
|
@@ -11,9 +23,10 @@ export declare class VercelAIAdapter implements ProviderAdapter {
|
|
|
11
23
|
private providerName;
|
|
12
24
|
/**
|
|
13
25
|
* @param model - AI SDK language model (e.g., from @ai-sdk/openai, @ai-sdk/anthropic)
|
|
26
|
+
* Supports V1, V2, and V3 model versions for compatibility
|
|
14
27
|
* @param providerName - Optional provider name for identification
|
|
15
28
|
*/
|
|
16
|
-
constructor(model:
|
|
29
|
+
constructor(model: AnyLanguageModel, providerName?: string);
|
|
17
30
|
/**
|
|
18
31
|
* Format a tool definition for AI SDK's format
|
|
19
32
|
*/
|
|
@@ -23,7 +36,7 @@ export declare class VercelAIAdapter implements ProviderAdapter {
|
|
|
23
36
|
*/
|
|
24
37
|
private convertMessages;
|
|
25
38
|
/**
|
|
26
|
-
* Convert JSON Schema to Zod schema
|
|
39
|
+
* Convert JSON Schema to Zod schema
|
|
27
40
|
*/
|
|
28
41
|
private jsonSchemaToZod;
|
|
29
42
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vercel-ai.d.ts","sourceRoot":"","sources":["../../src/adapters/vercel-ai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,aAAa,
|
|
1
|
+
{"version":3,"file":"vercel-ai.d.ts","sourceRoot":"","sources":["../../src/adapters/vercel-ai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,aAAa,EAAoB,MAAM,IAAI,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEzE,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,UAAU,EAEX,MAAM,UAAU,CAAC;AAElB;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GACxB,eAAe,GACf,eAAe,GACf,aAAa,GACb;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAAC;AAE3B;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,eAAe;IACrD,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAOzC;IAEF,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,YAAY,CAAS;IAE7B;;;;OAIG;gBACS,KAAK,EAAE,gBAAgB,EAAE,YAAY,SAAW;IAK5D;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAyBrD;;OAEG;IACH,OAAO,CAAC,eAAe;IAsBvB;;OAEG;IACH,OAAO,CAAC,eAAe;IA2EvB;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAmGvD;;OAEG;IACH,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,QAAQ,EAAE;IAQ5C;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,GAAG;IAK7C;;OAEG;IACH,OAAO,CAAC,eAAe;CAiBxB"}
|
|
@@ -6,10 +6,12 @@ const zod_1 = require("zod");
|
|
|
6
6
|
/**
|
|
7
7
|
* Vercel AI SDK adapter
|
|
8
8
|
* Works with any provider supported by AI SDK (OpenAI, Anthropic, Google, etc.)
|
|
9
|
+
* Supports all LanguageModel versions (V1, V2, V3) for maximum compatibility
|
|
9
10
|
*/
|
|
10
11
|
class VercelAIAdapter {
|
|
11
12
|
/**
|
|
12
13
|
* @param model - AI SDK language model (e.g., from @ai-sdk/openai, @ai-sdk/anthropic)
|
|
14
|
+
* Supports V1, V2, and V3 model versions for compatibility
|
|
13
15
|
* @param providerName - Optional provider name for identification
|
|
14
16
|
*/
|
|
15
17
|
constructor(model, providerName = 'ai-sdk') {
|
|
@@ -68,52 +70,74 @@ class VercelAIAdapter {
|
|
|
68
70
|
return converted;
|
|
69
71
|
}
|
|
70
72
|
/**
|
|
71
|
-
* Convert JSON Schema to Zod schema
|
|
73
|
+
* Convert JSON Schema to Zod schema
|
|
72
74
|
*/
|
|
73
75
|
jsonSchemaToZod(schema) {
|
|
74
76
|
// If it's already a Zod schema, return it
|
|
75
77
|
if (schema && typeof schema === 'object' && 'parse' in schema) {
|
|
76
78
|
return schema;
|
|
77
79
|
}
|
|
78
|
-
//
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
zodType =
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
80
|
+
// Handle non-object schemas
|
|
81
|
+
if (!schema || schema.type !== 'object') {
|
|
82
|
+
// If no schema or invalid, return empty object schema
|
|
83
|
+
return zod_1.z.object({});
|
|
84
|
+
}
|
|
85
|
+
const shape = {};
|
|
86
|
+
const required = schema.required || [];
|
|
87
|
+
const properties = schema.properties || {};
|
|
88
|
+
for (const [key, value] of Object.entries(properties)) {
|
|
89
|
+
const prop = value;
|
|
90
|
+
let zodType;
|
|
91
|
+
switch (prop.type) {
|
|
92
|
+
case 'string':
|
|
93
|
+
zodType = zod_1.z.string();
|
|
94
|
+
if (prop.enum && Array.isArray(prop.enum) && prop.enum.length > 0) {
|
|
95
|
+
zodType = zod_1.z.enum(prop.enum);
|
|
96
|
+
}
|
|
97
|
+
if (prop.description) {
|
|
98
|
+
zodType = zodType.describe(prop.description);
|
|
99
|
+
}
|
|
100
|
+
break;
|
|
101
|
+
case 'number':
|
|
102
|
+
case 'integer':
|
|
103
|
+
zodType = zod_1.z.number();
|
|
104
|
+
if (prop.description) {
|
|
105
|
+
zodType = zodType.describe(prop.description);
|
|
106
|
+
}
|
|
107
|
+
break;
|
|
108
|
+
case 'boolean':
|
|
109
|
+
zodType = zod_1.z.boolean();
|
|
110
|
+
if (prop.description) {
|
|
111
|
+
zodType = zodType.describe(prop.description);
|
|
112
|
+
}
|
|
113
|
+
break;
|
|
114
|
+
case 'array':
|
|
115
|
+
// Try to infer item type
|
|
116
|
+
let itemType = zod_1.z.any();
|
|
117
|
+
if (prop.items) {
|
|
118
|
+
itemType = this.jsonSchemaToZod(prop.items);
|
|
119
|
+
}
|
|
120
|
+
zodType = zod_1.z.array(itemType);
|
|
121
|
+
if (prop.description) {
|
|
122
|
+
zodType = zodType.describe(prop.description);
|
|
123
|
+
}
|
|
124
|
+
break;
|
|
125
|
+
case 'object':
|
|
126
|
+
zodType = this.jsonSchemaToZod(prop);
|
|
127
|
+
break;
|
|
128
|
+
default:
|
|
129
|
+
zodType = zod_1.z.any();
|
|
130
|
+
if (prop.description) {
|
|
131
|
+
zodType = zodType.describe(prop.description);
|
|
132
|
+
}
|
|
113
133
|
}
|
|
114
|
-
|
|
134
|
+
// Make field optional if not in required array
|
|
135
|
+
if (!required.includes(key)) {
|
|
136
|
+
zodType = zodType.optional();
|
|
137
|
+
}
|
|
138
|
+
shape[key] = zodType;
|
|
115
139
|
}
|
|
116
|
-
return zod_1.z.
|
|
140
|
+
return zod_1.z.object(shape);
|
|
117
141
|
}
|
|
118
142
|
/**
|
|
119
143
|
* Create a chat completion using AI SDK
|
|
@@ -132,15 +156,23 @@ class VercelAIAdapter {
|
|
|
132
156
|
description += `\n${i + 1}. ${JSON.stringify(example)}`;
|
|
133
157
|
});
|
|
134
158
|
}
|
|
135
|
-
//
|
|
136
|
-
|
|
137
|
-
|
|
159
|
+
// Determine the schema format - convert JSON Schema to Zod if needed
|
|
160
|
+
let schema;
|
|
161
|
+
if (toolDef.inputSchema && typeof toolDef.inputSchema === 'object' && 'parse' in toolDef.inputSchema) {
|
|
162
|
+
// It's already a Zod schema
|
|
163
|
+
schema = toolDef.inputSchema;
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
// It's a JSON schema - convert to Zod for AI SDK
|
|
167
|
+
schema = this.jsonSchemaToZod(toolDef.inputSchema);
|
|
168
|
+
}
|
|
169
|
+
// Create the tool object with proper format for AI SDK
|
|
138
170
|
// Store reference to toolDef in closure to avoid issues
|
|
139
171
|
const handler = toolDef.handler;
|
|
140
172
|
const name = toolDef.name;
|
|
141
173
|
tools[name] = {
|
|
142
174
|
description,
|
|
143
|
-
parameters
|
|
175
|
+
inputSchema: schema, // AI SDK uses 'inputSchema' not 'parameters'
|
|
144
176
|
execute: async (args) => {
|
|
145
177
|
try {
|
|
146
178
|
const result = await handler(args);
|
|
@@ -153,6 +185,8 @@ class VercelAIAdapter {
|
|
|
153
185
|
};
|
|
154
186
|
}
|
|
155
187
|
// Generate text with tools
|
|
188
|
+
// Note: generateText accepts LanguageModel (V2), but provider packages v3.0.0 return V3
|
|
189
|
+
// This works at runtime, so we cast for type compatibility
|
|
156
190
|
const generateOptions = {
|
|
157
191
|
model: this.model,
|
|
158
192
|
messages: messages.map(m => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vercel-ai.js","sourceRoot":"","sources":["../../src/adapters/vercel-ai.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"vercel-ai.js","sourceRoot":"","sources":["../../src/adapters/vercel-ai.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,WAAW,EACX,YAAY,EAIb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C;;GAEG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,QAAQ,CAAC,CAAe;gBAEpB,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,YAAY;IASzD;;OAEG;IACH,WAAW,IAAI,YAAY;IAI3B;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,WAAW,EACX,YAAY,EAIb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C;;GAEG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,QAAQ,CAAC,CAAe;gBAEpB,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,YAAY;IASzD;;OAEG;IACH,WAAW,IAAI,YAAY;IAI3B;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAkCtE;;OAEG;YACW,eAAe;IAiC7B;;OAEG;YACW,0BAA0B;IAsCxC;;OAEG;YACW,gBAAgB;IA2D9B;;OAEG;IACG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAoBlE"}
|
package/dist/core/client.js
CHANGED
|
@@ -29,8 +29,11 @@ class Client {
|
|
|
29
29
|
// add the tool search tool to loaded tools
|
|
30
30
|
if (this.config.enableToolSearch &&
|
|
31
31
|
!this.config.adapter.capabilities.supportsNativeToolSearch) {
|
|
32
|
-
|
|
33
|
-
this.registry.
|
|
32
|
+
// Only register if not already registered
|
|
33
|
+
if (!this.registry.get('tool_search')) {
|
|
34
|
+
const toolSearchTool = this.registry.createToolSearchTool();
|
|
35
|
+
this.registry.register(toolSearchTool);
|
|
36
|
+
}
|
|
34
37
|
}
|
|
35
38
|
// Get loaded tools for this request
|
|
36
39
|
const tools = this.registry.getLoadedTools();
|
package/dist/core/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":";;;AAQA,yCAA0C;AAC1C,0CAAkE;AAElE;;GAEG;AACH,MAAa,MAAM;IAKjB,YAAY,MAAoB,EAAE,QAAuB;QACvD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,IAAI,uBAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAElE,IAAI,MAAM,CAAC,yBAAyB,EAAE,CAAC;YACrC,IAAI,CAAC,QAAQ,GAAG,IAAA,gCAAqB,EAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,OAAmC;QAC5C,MAAM,QAAQ,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEvC,sEAAsE;QACtE,2CAA2C;QAC3C,IACE,IAAI,CAAC,MAAM,CAAC,gBAAgB;YAC5B,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,wBAAwB,EAC1D,CAAC;YACD,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { Client, ToolRegistry } from './core';
|
|
2
2
|
export type { ToolDefinition, ToolCall, ToolResult, Message, ChatRequest, ChatResponse, SearchConfig, ExecutorConfig, ProviderAdapter, ProviderCapabilities, ClientConfig } from './types';
|
|
3
|
-
export {
|
|
3
|
+
export { VercelAIAdapter, type AnyLanguageModel } from './adapters';
|
|
4
4
|
export { SearchStrategy, RegexSearchStrategy, BM25SearchStrategy } from './search';
|
|
5
5
|
export { CodeExecutor, VMExecutor, createDefaultExecutor } from './executor';
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAG9C,YAAY,EACV,cAAc,EACd,QAAQ,EACR,UAAU,EACV,OAAO,EACP,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,YAAY,EACb,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAG9C,YAAY,EACV,cAAc,EACd,QAAQ,EACR,UAAU,EACV,OAAO,EACP,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,YAAY,EACb,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGpE,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGnF,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createDefaultExecutor = exports.VMExecutor = exports.BM25SearchStrategy = exports.RegexSearchStrategy = exports.VercelAIAdapter = exports.
|
|
3
|
+
exports.createDefaultExecutor = exports.VMExecutor = exports.BM25SearchStrategy = exports.RegexSearchStrategy = exports.VercelAIAdapter = exports.ToolRegistry = exports.Client = void 0;
|
|
4
4
|
// Core exports
|
|
5
5
|
var core_1 = require("./core");
|
|
6
6
|
Object.defineProperty(exports, "Client", { enumerable: true, get: function () { return core_1.Client; } });
|
|
7
7
|
Object.defineProperty(exports, "ToolRegistry", { enumerable: true, get: function () { return core_1.ToolRegistry; } });
|
|
8
8
|
// Adapter exports
|
|
9
9
|
var adapters_1 = require("./adapters");
|
|
10
|
-
Object.defineProperty(exports, "OpenAIAdapter", { enumerable: true, get: function () { return adapters_1.OpenAIAdapter; } });
|
|
11
10
|
Object.defineProperty(exports, "VercelAIAdapter", { enumerable: true, get: function () { return adapters_1.VercelAIAdapter; } });
|
|
12
11
|
// Search exports
|
|
13
12
|
var search_1 = require("./search");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,eAAe;AACf,+BAA8C;AAArC,8FAAA,MAAM,OAAA;AAAE,oGAAA,YAAY,OAAA;AAiB7B,kBAAkB;AAClB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,eAAe;AACf,+BAA8C;AAArC,8FAAA,MAAM,OAAA;AAAE,oGAAA,YAAY,OAAA;AAiB7B,kBAAkB;AAClB,uCAAoE;AAA3D,2GAAA,eAAe,OAAA;AAExB,iBAAiB;AACjB,mCAAmF;AAA1D,6GAAA,mBAAmB,OAAA;AAAE,4GAAA,kBAAkB,OAAA;AAEhE,mBAAmB;AACnB,uCAA6E;AAAtD,sGAAA,UAAU,OAAA;AAAE,iHAAA,qBAAqB,OAAA"}
|