llm-advanced-tools 0.1.0

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.
Files changed (80) hide show
  1. package/README.md +402 -0
  2. package/dist/adapters/index.d.ts +3 -0
  3. package/dist/adapters/index.d.ts.map +1 -0
  4. package/dist/adapters/index.js +8 -0
  5. package/dist/adapters/index.js.map +1 -0
  6. package/dist/adapters/openai.d.ts +38 -0
  7. package/dist/adapters/openai.d.ts.map +1 -0
  8. package/dist/adapters/openai.js +170 -0
  9. package/dist/adapters/openai.js.map +1 -0
  10. package/dist/adapters/vercel-ai.d.ts +46 -0
  11. package/dist/adapters/vercel-ai.d.ts.map +1 -0
  12. package/dist/adapters/vercel-ai.js +228 -0
  13. package/dist/adapters/vercel-ai.js.map +1 -0
  14. package/dist/core/client.d.ts +36 -0
  15. package/dist/core/client.d.ts.map +1 -0
  16. package/dist/core/client.js +188 -0
  17. package/dist/core/client.js.map +1 -0
  18. package/dist/core/index.d.ts +3 -0
  19. package/dist/core/index.d.ts.map +1 -0
  20. package/dist/core/index.js +8 -0
  21. package/dist/core/index.js.map +1 -0
  22. package/dist/core/registry.d.ts +64 -0
  23. package/dist/core/registry.d.ts.map +1 -0
  24. package/dist/core/registry.js +169 -0
  25. package/dist/core/registry.js.map +1 -0
  26. package/dist/executor/base.d.ts +35 -0
  27. package/dist/executor/base.d.ts.map +1 -0
  28. package/dist/executor/base.js +85 -0
  29. package/dist/executor/base.js.map +1 -0
  30. package/dist/executor/index.d.ts +3 -0
  31. package/dist/executor/index.d.ts.map +1 -0
  32. package/dist/executor/index.js +9 -0
  33. package/dist/executor/index.js.map +1 -0
  34. package/dist/executor/vm.d.ts +18 -0
  35. package/dist/executor/vm.d.ts.map +1 -0
  36. package/dist/executor/vm.js +106 -0
  37. package/dist/executor/vm.js.map +1 -0
  38. package/dist/index.d.ts +6 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +20 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/search/base.d.ts +32 -0
  43. package/dist/search/base.d.ts.map +1 -0
  44. package/dist/search/base.js +28 -0
  45. package/dist/search/base.js.map +1 -0
  46. package/dist/search/bm25.d.ts +16 -0
  47. package/dist/search/bm25.d.ts.map +1 -0
  48. package/dist/search/bm25.js +84 -0
  49. package/dist/search/bm25.js.map +1 -0
  50. package/dist/search/index.d.ts +4 -0
  51. package/dist/search/index.d.ts.map +1 -0
  52. package/dist/search/index.js +10 -0
  53. package/dist/search/index.js.map +1 -0
  54. package/dist/search/regex.d.ts +12 -0
  55. package/dist/search/regex.d.ts.map +1 -0
  56. package/dist/search/regex.js +57 -0
  57. package/dist/search/regex.js.map +1 -0
  58. package/dist/types/index.d.ts +186 -0
  59. package/dist/types/index.d.ts.map +1 -0
  60. package/dist/types/index.js +3 -0
  61. package/dist/types/index.js.map +1 -0
  62. package/package.json +52 -0
  63. package/plan.md +576 -0
  64. package/src/adapters/index.ts +2 -0
  65. package/src/adapters/openai.ts +195 -0
  66. package/src/adapters/vercel-ai.ts +270 -0
  67. package/src/core/client.ts +232 -0
  68. package/src/core/index.ts +2 -0
  69. package/src/core/registry.ts +198 -0
  70. package/src/executor/base.ts +122 -0
  71. package/src/executor/index.ts +2 -0
  72. package/src/executor/vm.ts +87 -0
  73. package/src/index.ts +26 -0
  74. package/src/search/base.ts +63 -0
  75. package/src/search/bm25.ts +64 -0
  76. package/src/search/index.ts +3 -0
  77. package/src/search/regex.ts +66 -0
  78. package/src/types/index.ts +221 -0
  79. package/test-advanced.ts +212 -0
  80. package/test-simple.ts +91 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vercel-ai.d.ts","sourceRoot":"","sources":["../../src/adapters/vercel-ai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,aAAa,EAAkB,MAAM,IAAI,CAAC;AAEjE,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,UAAU,EAEX,MAAM,UAAU,CAAC;AAElB;;;GAGG;AACH,qBAAa,eAAgB,YAAW,eAAe;IACrD,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAOzC;IAEF,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,YAAY,CAAS;IAE7B;;;OAGG;gBACS,KAAK,EAAE,aAAa,EAAE,YAAY,SAAW;IAKzD;;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;IAsDvB;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IA6EvD;;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"}
@@ -0,0 +1,228 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VercelAIAdapter = void 0;
4
+ const ai_1 = require("ai");
5
+ const zod_1 = require("zod");
6
+ /**
7
+ * Vercel AI SDK adapter
8
+ * Works with any provider supported by AI SDK (OpenAI, Anthropic, Google, etc.)
9
+ */
10
+ class VercelAIAdapter {
11
+ /**
12
+ * @param model - AI SDK language model (e.g., from @ai-sdk/openai, @ai-sdk/anthropic)
13
+ * @param providerName - Optional provider name for identification
14
+ */
15
+ constructor(model, providerName = 'ai-sdk') {
16
+ this.name = 'vercel-ai';
17
+ this.capabilities = {
18
+ supportsNativeToolSearch: false,
19
+ supportsNativeCodeExecution: false,
20
+ supportsNativeExamples: false,
21
+ supportsStreaming: true,
22
+ supportsParallelToolCalls: true,
23
+ maxTokens: 128000 // Depends on model, using safe default
24
+ };
25
+ this.model = model;
26
+ this.providerName = providerName;
27
+ }
28
+ /**
29
+ * Format a tool definition for AI SDK's format
30
+ */
31
+ formatTool(tool) {
32
+ // AI SDK uses Zod schemas, but also accepts JSON schema
33
+ let parameters = tool.inputSchema;
34
+ // If it's already a Zod schema, use it directly
35
+ if (typeof parameters === 'object' && 'parse' in parameters) {
36
+ parameters = tool.inputSchema;
37
+ }
38
+ // Add examples to description for better accuracy
39
+ let description = tool.description;
40
+ if (tool.inputExamples && tool.inputExamples.length > 0) {
41
+ description += '\n\nExample usage:';
42
+ tool.inputExamples.forEach((example, i) => {
43
+ description += `\n${i + 1}. ${JSON.stringify(example)}`;
44
+ });
45
+ }
46
+ // AI SDK CoreTool format
47
+ return {
48
+ description,
49
+ parameters
50
+ };
51
+ }
52
+ /**
53
+ * Convert our Message format to AI SDK's format
54
+ */
55
+ convertMessages(messages) {
56
+ const converted = [];
57
+ for (const msg of messages) {
58
+ if (msg.role === 'tool') {
59
+ // Tool results are handled differently in AI SDK
60
+ // They're included in the tool execution flow
61
+ continue;
62
+ }
63
+ converted.push({
64
+ role: msg.role,
65
+ content: typeof msg.content === 'string' ? msg.content : JSON.stringify(msg.content)
66
+ });
67
+ }
68
+ return converted;
69
+ }
70
+ /**
71
+ * Convert JSON Schema to Zod schema (simplified)
72
+ */
73
+ jsonSchemaToZod(schema) {
74
+ // If it's already a Zod schema, return it
75
+ if (schema && typeof schema === 'object' && 'parse' in schema) {
76
+ return schema;
77
+ }
78
+ // Simple JSON Schema to Zod conversion
79
+ // This is a simplified version - for production, use a proper converter
80
+ if (schema.type === 'object') {
81
+ const shape = {};
82
+ const required = schema.required || [];
83
+ for (const [key, value] of Object.entries(schema.properties || {})) {
84
+ const prop = value;
85
+ let zodType;
86
+ switch (prop.type) {
87
+ case 'string':
88
+ zodType = zod_1.z.string();
89
+ if (prop.enum) {
90
+ zodType = zod_1.z.enum(prop.enum);
91
+ }
92
+ break;
93
+ case 'number':
94
+ zodType = zod_1.z.number();
95
+ break;
96
+ case 'boolean':
97
+ zodType = zod_1.z.boolean();
98
+ break;
99
+ case 'array':
100
+ zodType = zod_1.z.array(zod_1.z.any());
101
+ break;
102
+ default:
103
+ zodType = zod_1.z.any();
104
+ }
105
+ if (prop.description) {
106
+ zodType = zodType.describe(prop.description);
107
+ }
108
+ // Make field optional if not in required array
109
+ if (!required.includes(key)) {
110
+ zodType = zodType.optional();
111
+ }
112
+ shape[key] = zodType;
113
+ }
114
+ return zod_1.z.object(shape);
115
+ }
116
+ return zod_1.z.any();
117
+ }
118
+ /**
119
+ * Create a chat completion using AI SDK
120
+ */
121
+ async chat(request) {
122
+ const messages = this.convertMessages(request.messages);
123
+ // Convert our tools to AI SDK format using the tool() helper
124
+ const tools = {};
125
+ const toolDefinitions = request.tools?.filter(t => !t.deferLoading) || [];
126
+ for (const toolDef of toolDefinitions) {
127
+ // Add examples to description
128
+ let description = toolDef.description;
129
+ if (toolDef.inputExamples && toolDef.inputExamples.length > 0) {
130
+ description += '\n\nExample usage:';
131
+ toolDef.inputExamples.forEach((example, i) => {
132
+ description += `\n${i + 1}. ${JSON.stringify(example)}`;
133
+ });
134
+ }
135
+ // Convert schema to Zod
136
+ const parameters = this.jsonSchemaToZod(toolDef.inputSchema);
137
+ // Create the tool using AI SDK's tool() helper
138
+ tools[toolDef.name] = (0, ai_1.tool)({
139
+ description,
140
+ parameters,
141
+ execute: async (args) => {
142
+ try {
143
+ const result = await toolDef.handler(args);
144
+ return result;
145
+ }
146
+ catch (error) {
147
+ throw new Error(`Tool ${toolDef.name} failed: ${error.message}`);
148
+ }
149
+ }
150
+ });
151
+ }
152
+ // Generate text with tools
153
+ const result = await (0, ai_1.generateText)({
154
+ model: this.model,
155
+ messages: messages.map(m => ({
156
+ role: m.role,
157
+ content: m.content
158
+ })),
159
+ tools: Object.keys(tools).length > 0 ? tools : undefined,
160
+ maxTokens: request.maxTokens,
161
+ temperature: request.temperature
162
+ });
163
+ // Parse tool calls from result
164
+ const toolCalls = [];
165
+ if (result.toolCalls && result.toolCalls.length > 0) {
166
+ result.toolCalls.forEach((tc, index) => {
167
+ toolCalls.push({
168
+ id: `call_${index}`,
169
+ name: tc.toolName,
170
+ input: tc.args
171
+ });
172
+ });
173
+ }
174
+ return {
175
+ message: {
176
+ role: 'assistant',
177
+ content: result.text || '',
178
+ toolCalls
179
+ },
180
+ usage: result.usage
181
+ ? {
182
+ inputTokens: result.usage.promptTokens,
183
+ outputTokens: result.usage.completionTokens,
184
+ totalTokens: result.usage.totalTokens
185
+ }
186
+ : undefined,
187
+ stopReason: this.mapFinishReason(result.finishReason),
188
+ toolCalls
189
+ };
190
+ }
191
+ /**
192
+ * Parse tool calls from AI SDK response
193
+ */
194
+ parseToolCalls(toolCalls) {
195
+ return toolCalls.map((tc, index) => ({
196
+ id: `call_${index}`,
197
+ name: tc.toolName,
198
+ input: tc.args
199
+ }));
200
+ }
201
+ /**
202
+ * Format tool results for AI SDK
203
+ */
204
+ formatToolResults(results) {
205
+ // AI SDK handles tool results automatically in the execute callback
206
+ return results;
207
+ }
208
+ /**
209
+ * Map AI SDK finish reason to our format
210
+ */
211
+ mapFinishReason(reason) {
212
+ switch (reason) {
213
+ case 'stop':
214
+ return 'end_turn';
215
+ case 'length':
216
+ return 'max_tokens';
217
+ case 'tool-calls':
218
+ return 'tool_use';
219
+ case 'content-filter':
220
+ case 'error':
221
+ return 'stop_sequence';
222
+ default:
223
+ return undefined;
224
+ }
225
+ }
226
+ }
227
+ exports.VercelAIAdapter = VercelAIAdapter;
228
+ //# sourceMappingURL=vercel-ai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vercel-ai.js","sourceRoot":"","sources":["../../src/adapters/vercel-ai.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { ClientConfig, ChatRequest, ChatResponse } from '../types';
2
+ import { ToolRegistry } from './registry';
3
+ /**
4
+ * Main client for provider-agnostic tool use
5
+ */
6
+ export declare class Client {
7
+ private config;
8
+ private registry;
9
+ private executor?;
10
+ constructor(config: ClientConfig, registry?: ToolRegistry);
11
+ /**
12
+ * Get the tool registry
13
+ */
14
+ getRegistry(): ToolRegistry;
15
+ /**
16
+ * Send a chat message
17
+ */
18
+ chat(request: Omit<ChatRequest, 'tools'>): Promise<ChatResponse>;
19
+ /**
20
+ * Handle tool calls from LLM response
21
+ */
22
+ private handleToolCalls;
23
+ /**
24
+ * Handle programmatic tool calling (code execution)
25
+ */
26
+ private handleProgrammaticToolCall;
27
+ /**
28
+ * Execute tool calls
29
+ */
30
+ private executeToolCalls;
31
+ /**
32
+ * Helper method for simple text chat
33
+ */
34
+ ask(prompt: string, systemPrompt?: string): Promise<string>;
35
+ }
36
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +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;IA+BtE;;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"}
@@ -0,0 +1,188 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Client = void 0;
4
+ const registry_1 = require("./registry");
5
+ const executor_1 = require("../executor");
6
+ /**
7
+ * Main client for provider-agnostic tool use
8
+ */
9
+ class Client {
10
+ constructor(config, registry) {
11
+ this.config = config;
12
+ this.registry = registry || new registry_1.ToolRegistry(config.searchConfig);
13
+ if (config.enableProgrammaticCalling) {
14
+ this.executor = (0, executor_1.createDefaultExecutor)(config.executorConfig);
15
+ }
16
+ }
17
+ /**
18
+ * Get the tool registry
19
+ */
20
+ getRegistry() {
21
+ return this.registry;
22
+ }
23
+ /**
24
+ * Send a chat message
25
+ */
26
+ async chat(request) {
27
+ const messages = [...request.messages];
28
+ // If tool search is enabled and provider doesn't support it natively,
29
+ // add the tool search tool to loaded tools
30
+ if (this.config.enableToolSearch &&
31
+ !this.config.adapter.capabilities.supportsNativeToolSearch) {
32
+ const toolSearchTool = this.registry.createToolSearchTool();
33
+ this.registry.register(toolSearchTool);
34
+ }
35
+ // Get loaded tools for this request
36
+ const tools = this.registry.getLoadedTools();
37
+ // Make the request
38
+ const response = await this.config.adapter.chat({
39
+ ...request,
40
+ messages,
41
+ tools
42
+ });
43
+ // Handle tool calls if any
44
+ if (response.toolCalls && response.toolCalls.length > 0) {
45
+ return this.handleToolCalls(request, response);
46
+ }
47
+ return response;
48
+ }
49
+ /**
50
+ * Handle tool calls from LLM response
51
+ */
52
+ async handleToolCalls(originalRequest, response) {
53
+ const toolCalls = response.toolCalls;
54
+ // Check if any tool call is for code execution
55
+ const codeExecutionCall = toolCalls.find(tc => tc.name === 'code_execution');
56
+ if (codeExecutionCall && this.executor && this.config.enableProgrammaticCalling) {
57
+ return this.handleProgrammaticToolCall(originalRequest, response, codeExecutionCall);
58
+ }
59
+ // Regular tool execution
60
+ const results = await this.executeToolCalls(toolCalls);
61
+ // Add tool results to messages and continue conversation
62
+ const messages = [
63
+ ...originalRequest.messages,
64
+ response.message,
65
+ {
66
+ role: 'tool',
67
+ content: '',
68
+ toolResults: results
69
+ }
70
+ ];
71
+ return this.chat({
72
+ ...originalRequest,
73
+ messages
74
+ });
75
+ }
76
+ /**
77
+ * Handle programmatic tool calling (code execution)
78
+ */
79
+ async handleProgrammaticToolCall(originalRequest, response, codeCall) {
80
+ const code = codeCall.input.code;
81
+ const tools = this.registry.getLoadedTools();
82
+ // Execute the code with access to tools
83
+ const execResult = await this.executor.execute(code, tools);
84
+ // Create tool result message
85
+ const result = {
86
+ toolCallId: codeCall.id,
87
+ data: {
88
+ stdout: execResult.stdout,
89
+ returnValue: execResult.returnValue
90
+ },
91
+ error: execResult.error
92
+ };
93
+ // Continue conversation with execution result
94
+ const messages = [
95
+ ...originalRequest.messages,
96
+ response.message,
97
+ {
98
+ role: 'tool',
99
+ content: '',
100
+ toolResults: [result]
101
+ }
102
+ ];
103
+ return this.chat({
104
+ ...originalRequest,
105
+ messages
106
+ });
107
+ }
108
+ /**
109
+ * Execute tool calls
110
+ */
111
+ async executeToolCalls(toolCalls) {
112
+ const results = [];
113
+ for (const call of toolCalls) {
114
+ const tool = this.registry.get(call.name);
115
+ if (!tool) {
116
+ results.push({
117
+ toolCallId: call.id,
118
+ error: {
119
+ message: `Tool "${call.name}" not found`,
120
+ code: 'TOOL_NOT_FOUND'
121
+ }
122
+ });
123
+ continue;
124
+ }
125
+ // Special handling for tool_search
126
+ if (call.name === 'tool_search') {
127
+ try {
128
+ const data = await tool.handler(call.input);
129
+ results.push({
130
+ toolCallId: call.id,
131
+ data
132
+ });
133
+ }
134
+ catch (error) {
135
+ results.push({
136
+ toolCallId: call.id,
137
+ error: {
138
+ message: error.message,
139
+ code: 'EXECUTION_ERROR'
140
+ }
141
+ });
142
+ }
143
+ continue;
144
+ }
145
+ // Execute regular tool
146
+ try {
147
+ const data = await tool.handler(call.input);
148
+ results.push({
149
+ toolCallId: call.id,
150
+ data
151
+ });
152
+ }
153
+ catch (error) {
154
+ results.push({
155
+ toolCallId: call.id,
156
+ error: {
157
+ message: error.message,
158
+ code: 'EXECUTION_ERROR',
159
+ details: error
160
+ }
161
+ });
162
+ }
163
+ }
164
+ return results;
165
+ }
166
+ /**
167
+ * Helper method for simple text chat
168
+ */
169
+ async ask(prompt, systemPrompt) {
170
+ const messages = [];
171
+ if (systemPrompt) {
172
+ messages.push({
173
+ role: 'system',
174
+ content: systemPrompt
175
+ });
176
+ }
177
+ messages.push({
178
+ role: 'user',
179
+ content: prompt
180
+ });
181
+ const response = await this.chat({ messages });
182
+ return typeof response.message.content === 'string'
183
+ ? response.message.content
184
+ : JSON.stringify(response.message.content);
185
+ }
186
+ }
187
+ exports.Client = Client;
188
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { ToolRegistry } from './registry';
2
+ export { Client } from './client';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Client = exports.ToolRegistry = void 0;
4
+ var registry_1 = require("./registry");
5
+ Object.defineProperty(exports, "ToolRegistry", { enumerable: true, get: function () { return registry_1.ToolRegistry; } });
6
+ var client_1 = require("./client");
7
+ Object.defineProperty(exports, "Client", { enumerable: true, get: function () { return client_1.Client; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";;;AAAA,uCAA0C;AAAjC,wGAAA,YAAY,OAAA;AACrB,mCAAkC;AAAzB,gGAAA,MAAM,OAAA"}
@@ -0,0 +1,64 @@
1
+ import { ToolDefinition, SearchConfig } from '../types';
2
+ /**
3
+ * Registry for managing tool definitions and discovery
4
+ */
5
+ export declare class ToolRegistry {
6
+ private tools;
7
+ private deferredTools;
8
+ private loadedTools;
9
+ private searchStrategy;
10
+ constructor(searchConfig?: SearchConfig);
11
+ /**
12
+ * Register a tool
13
+ */
14
+ register(tool: ToolDefinition): void;
15
+ /**
16
+ * Register multiple tools at once
17
+ */
18
+ registerMany(tools: ToolDefinition[]): void;
19
+ /**
20
+ * Get a specific tool by name
21
+ */
22
+ get(name: string): ToolDefinition | undefined;
23
+ /**
24
+ * Load a deferred tool into active context
25
+ */
26
+ load(name: string): ToolDefinition | undefined;
27
+ /**
28
+ * Get all currently loaded tools
29
+ */
30
+ getLoadedTools(): ToolDefinition[];
31
+ /**
32
+ * Get all tools (including deferred)
33
+ */
34
+ getAllTools(): ToolDefinition[];
35
+ /**
36
+ * Search for tools matching a query
37
+ * @param query Search query
38
+ * @param maxResults Maximum results to return
39
+ * @param loadResults Whether to automatically load found tools
40
+ */
41
+ search(query: string, maxResults?: number, loadResults?: boolean): Promise<ToolDefinition[]>;
42
+ /**
43
+ * Clear all loaded tools (keeps registrations)
44
+ */
45
+ clearLoaded(): void;
46
+ /**
47
+ * Unregister a tool
48
+ */
49
+ unregister(name: string): boolean;
50
+ /**
51
+ * Get statistics about the registry
52
+ */
53
+ getStats(): {
54
+ total: number;
55
+ loaded: number;
56
+ deferred: number;
57
+ };
58
+ /**
59
+ * Create a tool search tool definition
60
+ * This is a meta-tool that allows LLMs to search for other tools
61
+ */
62
+ createToolSearchTool(): ToolDefinition;
63
+ }
64
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxD;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,cAAc,CAAiB;gBAE3B,YAAY,CAAC,EAAE,YAAY;IA6BvC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAcpC;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,IAAI;IAI3C;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAI7C;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAS9C;;OAEG;IACH,cAAc,IAAI,cAAc,EAAE;IAMlC;;OAEG;IACH,WAAW,IAAI,cAAc,EAAE;IAI/B;;;;;OAKG;IACG,MAAM,CACV,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,EACnB,WAAW,UAAO,GACjB,OAAO,CAAC,cAAc,EAAE,CAAC;IAa5B;;OAEG;IACH,WAAW,IAAI,IAAI;IAUnB;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAOjC;;OAEG;IACH,QAAQ,IAAI;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB;IAQD;;;OAGG;IACH,oBAAoB,IAAI,cAAc;CAgCvC"}