@mondaydotcomorg/atp-vercel-sdk 0.20.5 → 0.20.6

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/dist/client.js CHANGED
@@ -70,7 +70,7 @@ export class VercelAIATPClient {
70
70
  model: this.model,
71
71
  prompt,
72
72
  temperature: options?.temperature,
73
- maxTokens: options?.maxTokens,
73
+ maxOutputTokens: options?.maxTokens,
74
74
  system: options?.systemPrompt,
75
75
  });
76
76
  return result.text;
@@ -82,7 +82,7 @@ export class VercelAIATPClient {
82
82
  schema,
83
83
  system: options?.systemPrompt,
84
84
  temperature: options?.temperature,
85
- maxTokens: options?.maxTokens,
85
+ maxOutputTokens: options?.maxTokens,
86
86
  });
87
87
  return result.object;
88
88
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/index.cjs CHANGED
@@ -85,7 +85,7 @@ var VercelAIATPClient = class {
85
85
  model: this.model,
86
86
  prompt,
87
87
  temperature: options?.temperature,
88
- maxTokens: options?.maxTokens,
88
+ maxOutputTokens: options?.maxTokens,
89
89
  system: options?.systemPrompt
90
90
  });
91
91
  return result.text;
@@ -97,7 +97,7 @@ var VercelAIATPClient = class {
97
97
  schema,
98
98
  system: options?.systemPrompt,
99
99
  temperature: options?.temperature,
100
- maxTokens: options?.maxTokens
100
+ maxOutputTokens: options?.maxTokens
101
101
  });
102
102
  return result.object;
103
103
  }
@@ -311,16 +311,12 @@ __name(createEventCollector, "createEventCollector");
311
311
 
312
312
  // src/tools.ts
313
313
  var TOOL_SCHEMAS = {
314
- [atpClient.ToolNames.EXECUTE_CODE]: zod.z.object({
315
- code: zod.z.string().describe("The JavaScript/TypeScript code to execute")
314
+ [atpClient.ToolNames.EXECUTE_CODE]: atpClient.executeCodeInputSchema.pick({
315
+ code: true
316
316
  }),
317
- [atpClient.ToolNames.EXPLORE_API]: zod.z.object({
318
- path: zod.z.string().describe('The path to explore (e.g., "/" for root, "/openapi" for OpenAPI group)')
319
- }),
320
- [atpClient.ToolNames.SEARCH_API]: zod.z.object({
321
- query: zod.z.string().describe("Search query string to find APIs")
322
- }),
323
- [atpClient.ToolNames.FETCH_ALL_APIS]: zod.z.object({})
317
+ [atpClient.ToolNames.EXPLORE_API]: atpClient.exploreApiInputSchema,
318
+ [atpClient.ToolNames.SEARCH_API]: atpClient.searchApiInputSchema,
319
+ [atpClient.ToolNames.FETCH_ALL_APIS]: atpClient.fetchAllApisInputSchema
324
320
  };
325
321
  async function createATPTools(options) {
326
322
  const { defaultExecutionConfig, ...clientOptions } = options;
@@ -330,7 +326,7 @@ async function createATPTools(options) {
330
326
  const vercelTools = {};
331
327
  vercelTools.atp_execute_code = ai.tool({
332
328
  description: "Execute TypeScript code in ATP sandbox with access to runtime APIs (atp.llm.*, atp.embedding.*, atp.approval.*)",
333
- parameters: TOOL_SCHEMAS[atpClient.ToolNames.EXECUTE_CODE],
329
+ inputSchema: TOOL_SCHEMAS[atpClient.ToolNames.EXECUTE_CODE],
334
330
  execute: /* @__PURE__ */ __name(async ({ code }) => {
335
331
  try {
336
332
  const result = await client.execute(code, defaultExecutionConfig);
@@ -362,7 +358,7 @@ async function createATPTools(options) {
362
358
  });
363
359
  vercelTools.atp_explore_api = ai.tool({
364
360
  description: "Explore APIs using filesystem-like navigation. Navigate through directories to discover available functions.",
365
- parameters: TOOL_SCHEMAS[atpClient.ToolNames.EXPLORE_API],
361
+ inputSchema: TOOL_SCHEMAS[atpClient.ToolNames.EXPLORE_API],
366
362
  execute: /* @__PURE__ */ __name(async ({ path }) => {
367
363
  try {
368
364
  const result = await underlyingClient.exploreAPI(path);
@@ -380,7 +376,7 @@ async function createATPTools(options) {
380
376
  });
381
377
  vercelTools.atp_search_api = ai.tool({
382
378
  description: 'Search for APIs by keyword. Provide search term as string like "add", "math", "user", etc.',
383
- parameters: TOOL_SCHEMAS[atpClient.ToolNames.SEARCH_API],
379
+ inputSchema: TOOL_SCHEMAS[atpClient.ToolNames.SEARCH_API],
384
380
  execute: /* @__PURE__ */ __name(async ({ query }) => {
385
381
  try {
386
382
  const results = await underlyingClient.searchAPI(query);
@@ -404,7 +400,7 @@ async function createATPTools(options) {
404
400
  });
405
401
  vercelTools.atp_get_type_definitions = ai.tool({
406
402
  description: "Get TypeScript type definitions for ATP runtime APIs to understand available functions",
407
- parameters: zod.z.object({}),
403
+ inputSchema: zod.z.object({}),
408
404
  execute: /* @__PURE__ */ __name(async () => {
409
405
  try {
410
406
  const types = client.getTypeDefinitions();
@@ -435,7 +431,7 @@ async function createATPStreamingTools(options) {
435
431
  const vercelTools = {};
436
432
  vercelTools.atp_execute_code = ai.tool({
437
433
  description: "Execute TypeScript code in ATP sandbox with streaming events for thinking, tool execution, and text output",
438
- parameters: TOOL_SCHEMAS[atpClient.ToolNames.EXECUTE_CODE],
434
+ inputSchema: TOOL_SCHEMAS[atpClient.ToolNames.EXECUTE_CODE],
439
435
  execute: /* @__PURE__ */ __name(async ({ code }) => {
440
436
  try {
441
437
  const result = await underlyingClient.executeStream(code, defaultExecutionConfig, eventHandler);
@@ -467,7 +463,7 @@ async function createATPStreamingTools(options) {
467
463
  });
468
464
  vercelTools.atp_explore_api = ai.tool({
469
465
  description: "Explore APIs using filesystem-like navigation. Navigate through directories to discover available functions.",
470
- parameters: TOOL_SCHEMAS[atpClient.ToolNames.EXPLORE_API],
466
+ inputSchema: TOOL_SCHEMAS[atpClient.ToolNames.EXPLORE_API],
471
467
  execute: /* @__PURE__ */ __name(async ({ path }) => {
472
468
  try {
473
469
  const result = await underlyingClient.exploreAPI(path);
@@ -485,7 +481,7 @@ async function createATPStreamingTools(options) {
485
481
  });
486
482
  vercelTools.atp_search_api = ai.tool({
487
483
  description: 'Search for APIs by keyword. Provide search term as string like "add", "math", "user", etc.',
488
- parameters: TOOL_SCHEMAS[atpClient.ToolNames.SEARCH_API],
484
+ inputSchema: TOOL_SCHEMAS[atpClient.ToolNames.SEARCH_API],
489
485
  execute: /* @__PURE__ */ __name(async ({ query }) => {
490
486
  try {
491
487
  const results = await underlyingClient.searchAPI(query);
@@ -509,7 +505,7 @@ async function createATPStreamingTools(options) {
509
505
  });
510
506
  vercelTools.atp_get_type_definitions = ai.tool({
511
507
  description: "Get TypeScript type definitions for ATP runtime APIs to understand available functions",
512
- parameters: zod.z.object({}),
508
+ inputSchema: zod.z.object({}),
513
509
  execute: /* @__PURE__ */ __name(async () => {
514
510
  try {
515
511
  const types = client.getTypeDefinitions();
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/client.ts","../src/event-adapter.ts","../src/tools.ts"],"names":["VercelAIATPClient","client","model","embeddings","approvalHandler","constructor","options","tools","hooks","server","AgentToolProtocolClient","serviceProviders","undefined","serverUrl","baseUrl","headers","Error","provideLLM","call","prompt","handleLLMCall","extract","schema","handleLLMExtract","classify","text","categories","handleLLMClassify","provideEmbedding","embed","handleEmbedding","provideApproval","request","message","context","handleApprovalRequest","connect","init","name","version","getTypeDefinitions","execute","code","config","getUnderlyingClient","result","generateText","temperature","maxTokens","system","systemPrompt","generateObject","object","promptText","join","classification","trim","includes","category","toLowerCase","fallback","approved","timestamp","Date","now","createVercelEventHandler","dataStream","textRunIdPrefix","currentTextRunId","textRunCounter","reasoningRunId","reasoningCounter","toolStack","event","type","ATPEventType","THINKING","data","write","id","delta","content","TOOL_START","isFirstTool","length","push","toolName","apiGroup","transient","TOOL_END","pop","isLastTool","success","duration","error","TEXT","runId","TEXT_END","SOURCE","url","title","sourceId","providerMetadata","aiChat","summary","createdAt","PROGRESS","Math","round","fraction","ERROR","createEventCollector","events","handler","clear","TOOL_SCHEMAS","ToolNames","EXECUTE_CODE","z","string","describe","EXPLORE_API","path","SEARCH_API","query","FETCH_ALL_APIS","createATPTools","defaultExecutionConfig","clientOptions","underlyingClient","vercelTools","atp_execute_code","tool","description","parameters","status","ExecutionStatus","COMPLETED","stats","FAILED","atp_explore_api","exploreAPI","atp_search_api","results","searchAPI","map","r","functionName","signature","count","atp_get_type_definitions","types","createATPStreamingTools","eventHandler","executeStream"],"mappings":"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","file":"index.cjs","sourcesContent":["import { AgentToolProtocolClient } from '@mondaydotcomorg/atp-client';\nimport type { ExecutionResult, ExecutionConfig } from '@mondaydotcomorg/atp-protocol';\nimport { generateObject, generateText } from 'ai';\nimport type {\n\tVercelAIATPClientOptions,\n\tApprovalResponse,\n\tEmbeddingProvider,\n\tApprovalHandler,\n} from './types.js';\n\nexport class VercelAIATPClient {\n\tprivate client: AgentToolProtocolClient;\n\tprivate model: any;\n\tprivate embeddings?: EmbeddingProvider;\n\tprivate approvalHandler?: ApprovalHandler;\n\n\tconstructor(options: VercelAIATPClientOptions) {\n\t\tconst { model, embeddings, tools, approvalHandler, hooks } = options;\n\n\t\tif ('server' in options && options.server) {\n\t\t\tthis.client = new AgentToolProtocolClient({\n\t\t\t\tserver: options.server,\n\t\t\t\thooks,\n\t\t\t\tserviceProviders: tools ? { tools } : undefined,\n\t\t\t});\n\t\t} else if ('serverUrl' in options && options.serverUrl) {\n\t\t\tthis.client = new AgentToolProtocolClient({\n\t\t\t\tbaseUrl: options.serverUrl,\n\t\t\t\theaders: options.headers,\n\t\t\t\thooks,\n\t\t\t\tserviceProviders: tools ? { tools } : undefined,\n\t\t\t});\n\t\t} else {\n\t\t\tthrow new Error('Either serverUrl or server must be provided');\n\t\t}\n\n\t\tthis.model = model;\n\t\tthis.embeddings = embeddings;\n\t\tthis.approvalHandler = approvalHandler;\n\n\t\tthis.client.provideLLM({\n\t\t\tcall: async (prompt: string, options?: any) => {\n\t\t\t\treturn await this.handleLLMCall(prompt, options);\n\t\t\t},\n\t\t\textract: async (prompt: string, schema: any, options?: any) => {\n\t\t\t\treturn await this.handleLLMExtract(prompt, schema, options);\n\t\t\t},\n\t\t\tclassify: async (text: string, categories: string[], options?: any) => {\n\t\t\t\treturn await this.handleLLMClassify(text, categories, options);\n\t\t\t},\n\t\t});\n\n\t\tif (this.embeddings) {\n\t\t\tthis.client.provideEmbedding({\n\t\t\t\tembed: async (text: string) => {\n\t\t\t\t\treturn await this.handleEmbedding(text);\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\tthis.client.provideApproval({\n\t\t\trequest: async (message: string, context?: Record<string, unknown>) => {\n\t\t\t\treturn await this.handleApprovalRequest(message, context);\n\t\t\t},\n\t\t});\n\t}\n\n\tasync connect(): Promise<void> {\n\t\tawait this.client.init({ name: 'vercel-ai-sdk-atp-client', version: '1.0.0' });\n\t\tawait this.client.connect();\n\t}\n\n\tgetTypeDefinitions(): string {\n\t\treturn this.client.getTypeDefinitions();\n\t}\n\n\tasync execute(code: string, config?: Partial<ExecutionConfig>): Promise<ExecutionResult> {\n\t\treturn await this.client.execute(code, config);\n\t}\n\n\tgetUnderlyingClient(): AgentToolProtocolClient {\n\t\treturn this.client;\n\t}\n\n\tprivate async handleLLMCall(prompt: string, options?: any): Promise<string> {\n\t\tconst result = await generateText({\n\t\t\tmodel: this.model,\n\t\t\tprompt,\n\t\t\ttemperature: options?.temperature,\n\t\t\tmaxTokens: options?.maxTokens,\n\t\t\tsystem: options?.systemPrompt,\n\t\t});\n\n\t\treturn result.text;\n\t}\n\n\tprivate async handleLLMExtract(prompt: string, schema: any, options?: any): Promise<any> {\n\t\tconst result = await generateObject({\n\t\t\tmodel: this.model,\n\t\t\tprompt,\n\t\t\tschema,\n\t\t\tsystem: options?.systemPrompt,\n\t\t\ttemperature: options?.temperature,\n\t\t\tmaxTokens: options?.maxTokens,\n\t\t});\n\n\t\treturn result.object;\n\t}\n\n\tprivate async handleLLMClassify(\n\t\ttext: string,\n\t\tcategories: string[],\n\t\toptions?: any\n\t): Promise<string> {\n\t\tconst promptText = `Classify the following text into one of these categories: ${categories.join(', ')}\\n\\nText: ${text}\\n\\nRespond with ONLY the category name, nothing else.`;\n\n\t\tconst result = await generateText({\n\t\t\tmodel: this.model,\n\t\t\tprompt: promptText,\n\t\t\tsystem: options?.systemPrompt,\n\t\t\ttemperature: 0,\n\t\t});\n\n\t\tconst classification = result.text.trim();\n\n\t\tif (categories.includes(classification)) {\n\t\t\treturn classification;\n\t\t}\n\n\t\tfor (const category of categories) {\n\t\t\tif (classification.toLowerCase().includes(category.toLowerCase())) {\n\t\t\t\treturn category;\n\t\t\t}\n\t\t}\n\n\t\tconst fallback = categories[0];\n\t\tif (!fallback) {\n\t\t\tthrow new Error('No categories provided for classification');\n\t\t}\n\t\treturn fallback;\n\t}\n\n\tprivate async handleEmbedding(text: string): Promise<number[]> {\n\t\tif (!this.embeddings) {\n\t\t\tthrow new Error(\n\t\t\t\t'Embeddings provider not configured. Pass embeddings option when creating VercelAIATPClient.'\n\t\t\t);\n\t\t}\n\n\t\treturn await this.embeddings.embed(text);\n\t}\n\n\tprivate async handleApprovalRequest(\n\t\tmessage: string,\n\t\tcontext?: Record<string, unknown>\n\t): Promise<ApprovalResponse> {\n\t\tif (!this.approvalHandler) {\n\t\t\tthrow new Error(\n\t\t\t\t'No approval handler configured. Pass approvalHandler option when creating VercelAIATPClient.'\n\t\t\t);\n\t\t}\n\n\t\tconst approved = await this.approvalHandler(message, context);\n\t\treturn {\n\t\t\tapproved,\n\t\t\ttimestamp: Date.now(),\n\t\t};\n\t}\n}\n","/**\n * Vercel AI SDK Event Adapter\n *\n * Converts ATP streaming events to Vercel AI SDK UIMessageStream format.\n * Use this to forward ATP events to the chat UI.\n */\n\nimport { type ATPEvent, ATPEventType } from '@mondaydotcomorg/atp-protocol';\n\n/**\n * UIMessageStreamWriter interface (subset of Vercel AI SDK's UIMessageStreamWriter)\n */\nexport interface UIMessageStreamWriter {\n\twrite(event: UIStreamEvent): void;\n}\n\n/**\n * UI Stream event types that Vercel AI SDK understands\n */\nexport type UIStreamEvent =\n\t| { type: 'text-start'; id: string }\n\t| { type: 'text-delta'; id: string; delta: string }\n\t| { type: 'text-end'; id: string }\n\t| { type: 'reasoning-start'; id: string }\n\t| { type: 'reasoning-delta'; id: string; delta: string }\n\t| { type: 'reasoning-end'; id: string }\n\t| { type: 'source-url'; url: string; title: string; sourceId: string; providerMetadata?: unknown }\n\t| { type: string; data?: unknown; transient?: boolean };\n\n/**\n * Options for creating the Vercel event handler\n */\nexport interface CreateVercelEventHandlerOptions {\n\t/**\n\t * Prefix for generated text run IDs\n\t * @default 'atp-text'\n\t */\n\ttextRunIdPrefix?: string;\n}\n\n/**\n * Creates an event handler that forwards ATP events to a Vercel AI SDK UIMessageStreamWriter.\n *\n * Handles nested tool calls properly:\n * - First tool_start triggers agentStepStart\n * - Inner tool_start/end emit agentStep updates (not start/end)\n * - Last tool_end triggers agentStepEnd\n *\n * @param dataStream - The Vercel AI SDK UIMessageStreamWriter to write events to\n * @param options - Optional configuration\n * @returns An event handler function to pass to ATP's executeStream\n *\n * @example\n * ```typescript\n * const handler = createVercelEventHandler(dataStream);\n *\n * const result = await client.executeStream(code, {}, handler);\n * ```\n */\nexport function createVercelEventHandler(\n\tdataStream: UIMessageStreamWriter,\n\toptions: CreateVercelEventHandlerOptions = {}\n): (event: ATPEvent) => void {\n\tconst { textRunIdPrefix = 'atp-text' } = options;\n\n\tlet currentTextRunId: string | undefined;\n\tlet textRunCounter = 0;\n\n\t// Track reasoning state for proper start/delta/end events\n\tlet reasoningRunId: string | undefined;\n\tlet reasoningCounter = 0;\n\n\t// Track nested tool calls with a stack\n\tconst toolStack: Array<{ toolName: string; apiGroup: string }> = [];\n\n\treturn (event: ATPEvent) => {\n\t\tswitch (event.type) {\n\t\t\tcase ATPEventType.THINKING: {\n\t\t\t\tconst data = event.data as { content: string; step?: string };\n\n\t\t\t\t// Start new reasoning block if needed\n\t\t\t\tif (!reasoningRunId) {\n\t\t\t\t\treasoningRunId = `atp-reasoning-${++reasoningCounter}`;\n\t\t\t\t\tdataStream.write({\n\t\t\t\t\t\ttype: 'reasoning-start',\n\t\t\t\t\t\tid: reasoningRunId,\n\t\t\t\t\t} as UIStreamEvent);\n\t\t\t\t}\n\n\t\t\t\t// Write reasoning delta\n\t\t\t\tdataStream.write({\n\t\t\t\t\ttype: 'reasoning-delta',\n\t\t\t\t\tid: reasoningRunId,\n\t\t\t\t\tdelta: data.content + '\\n',\n\t\t\t\t} as UIStreamEvent);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase ATPEventType.TOOL_START: {\n\t\t\t\tconst data = event.data as { toolName: string; apiGroup: string; input: unknown };\n\t\t\t\tconst isFirstTool = toolStack.length === 0;\n\n\t\t\t\ttoolStack.push({ toolName: data.toolName, apiGroup: data.apiGroup });\n\n\t\t\t\tif (isFirstTool) {\n\t\t\t\t\t// First tool - emit agentStepStart\n\t\t\t\t\tdataStream.write({\n\t\t\t\t\t\ttype: 'data-agentStepStart',\n\t\t\t\t\t\tdata: `Executing ${data.apiGroup}.${data.toolName}...`,\n\t\t\t\t\t\ttransient: true,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t// Nested tool - emit progress update instead\n\t\t\t\t\tdataStream.write({\n\t\t\t\t\t\ttype: 'data-agentStep',\n\t\t\t\t\t\tdata: `→ ${data.apiGroup}.${data.toolName}`,\n\t\t\t\t\t\ttransient: true,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase ATPEventType.TOOL_END: {\n\t\t\t\tconst data = event.data as {\n\t\t\t\t\ttoolName: string;\n\t\t\t\t\tapiGroup: string;\n\t\t\t\t\toutput: unknown;\n\t\t\t\t\tduration: number;\n\t\t\t\t\tsuccess: boolean;\n\t\t\t\t\terror?: string;\n\t\t\t\t};\n\n\t\t\t\ttoolStack.pop();\n\t\t\t\tconst isLastTool = toolStack.length === 0;\n\n\t\t\t\t// Close reasoning block when outer tool ends\n\t\t\t\tif (isLastTool && reasoningRunId) {\n\t\t\t\t\tdataStream.write({\n\t\t\t\t\t\ttype: 'reasoning-end',\n\t\t\t\t\t\tid: reasoningRunId,\n\t\t\t\t\t} as UIStreamEvent);\n\t\t\t\t\treasoningRunId = undefined;\n\t\t\t\t}\n\n\t\t\t\tif (isLastTool) {\n\t\t\t\t\t// Last tool - emit agentStepEnd\n\t\t\t\t\tdataStream.write({\n\t\t\t\t\t\ttype: 'data-agentStepEnd',\n\t\t\t\t\t\tdata: data.success\n\t\t\t\t\t\t\t? `Completed ${data.apiGroup}.${data.toolName} (${data.duration}ms)`\n\t\t\t\t\t\t\t: `Failed ${data.apiGroup}.${data.toolName}: ${data.error}`,\n\t\t\t\t\t\ttransient: true,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t// Nested tool finished - emit progress update\n\t\t\t\t\tdataStream.write({\n\t\t\t\t\t\ttype: 'data-agentStep',\n\t\t\t\t\t\tdata: data.success\n\t\t\t\t\t\t\t? `✓ ${data.apiGroup}.${data.toolName} (${data.duration}ms)`\n\t\t\t\t\t\t\t: `✗ ${data.apiGroup}.${data.toolName}: ${data.error}`,\n\t\t\t\t\t\ttransient: true,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase ATPEventType.TEXT: {\n\t\t\t\tconst data = event.data as { text: string };\n\t\t\t\tconst runId = event.runId || `${textRunIdPrefix}-${++textRunCounter}`;\n\n\t\t\t\t// If we're starting a new text run, close the previous one\n\t\t\t\tif (currentTextRunId && currentTextRunId !== runId) {\n\t\t\t\t\tdataStream.write({ type: 'text-end', id: currentTextRunId });\n\t\t\t\t\tcurrentTextRunId = undefined;\n\t\t\t\t}\n\n\t\t\t\t// Start new text run if needed\n\t\t\t\tif (!currentTextRunId || currentTextRunId !== runId) {\n\t\t\t\t\tcurrentTextRunId = runId;\n\t\t\t\t\tdataStream.write({ type: 'text-start', id: currentTextRunId });\n\t\t\t\t}\n\n\t\t\t\t// Write text delta\n\t\t\t\tdataStream.write({\n\t\t\t\t\ttype: 'text-delta',\n\t\t\t\t\tid: currentTextRunId,\n\t\t\t\t\tdelta: data.text,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase ATPEventType.TEXT_END:\n\t\t\t\tif (currentTextRunId) {\n\t\t\t\t\tdataStream.write({ type: 'text-end', id: currentTextRunId });\n\t\t\t\t\tcurrentTextRunId = undefined;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase ATPEventType.SOURCE: {\n\t\t\t\tconst data = event.data as {\n\t\t\t\t\turl: string;\n\t\t\t\t\ttitle: string;\n\t\t\t\t\tsummary?: string;\n\t\t\t\t\tcreatedAt?: string;\n\t\t\t\t};\n\t\t\t\tdataStream.write({\n\t\t\t\t\ttype: 'source-url',\n\t\t\t\t\turl: data.url,\n\t\t\t\t\ttitle: data.title,\n\t\t\t\t\tsourceId: `${data.title}-${event.timestamp}`,\n\t\t\t\t\tproviderMetadata: {\n\t\t\t\t\t\taiChat: {\n\t\t\t\t\t\t\tsummary: data.summary,\n\t\t\t\t\t\t\tcreatedAt: data.createdAt,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase ATPEventType.PROGRESS: {\n\t\t\t\tconst data = event.data as { message: string; fraction: number };\n\t\t\t\tdataStream.write({\n\t\t\t\t\ttype: 'data-agentStep',\n\t\t\t\t\tdata: `${data.message} (${Math.round(data.fraction * 100)}%)`,\n\t\t\t\t\ttransient: true,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase ATPEventType.ERROR: {\n\t\t\t\tconst data = event.data as { message: string; code?: string };\n\t\t\t\tdataStream.write({\n\t\t\t\t\ttype: 'data-error',\n\t\t\t\t\tdata: data.message,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\t// Forward unknown events as custom data events\n\t\t\t\tdataStream.write({\n\t\t\t\t\ttype: `data-${event.type}`,\n\t\t\t\t\tdata: event.data,\n\t\t\t\t\ttransient: true,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t}\n\t};\n}\n\n/**\n * Creates an event handler that collects events into an array.\n * Useful for testing or post-processing events.\n *\n * @returns Object with handler function and collected events array\n */\nexport function createEventCollector(): {\n\thandler: (event: ATPEvent) => void;\n\tevents: ATPEvent[];\n\tclear: () => void;\n} {\n\tconst events: ATPEvent[] = [];\n\n\treturn {\n\t\thandler: (event: ATPEvent) => {\n\t\t\tevents.push(event);\n\t\t},\n\t\tevents,\n\t\tclear: () => {\n\t\t\tevents.length = 0;\n\t\t},\n\t};\n}\n\n","import { z } from 'zod';\nimport { VercelAIATPClient } from './client.js';\nimport type { CreateATPToolsOptions, ATPToolsResult, StreamingToolsOptions } from './types.js';\nimport { ToolNames } from '@mondaydotcomorg/atp-client';\nimport { ExecutionStatus } from '@mondaydotcomorg/atp-protocol';\nimport { tool } from 'ai';\nimport { createVercelEventHandler } from './event-adapter.js';\n\nconst TOOL_SCHEMAS = {\n\t[ToolNames.EXECUTE_CODE]: z.object({\n\t\tcode: z.string().describe('The JavaScript/TypeScript code to execute'),\n\t}),\n\t[ToolNames.EXPLORE_API]: z.object({\n\t\tpath: z\n\t\t\t.string()\n\t\t\t.describe('The path to explore (e.g., \"/\" for root, \"/openapi\" for OpenAPI group)'),\n\t}),\n\t[ToolNames.SEARCH_API]: z.object({\n\t\tquery: z.string().describe('Search query string to find APIs'),\n\t}),\n\t[ToolNames.FETCH_ALL_APIS]: z.object({}),\n} as const;\n\nexport async function createATPTools(options: CreateATPToolsOptions): Promise<ATPToolsResult> {\n\tconst { defaultExecutionConfig, ...clientOptions } = options;\n\n\tconst client = new VercelAIATPClient(clientOptions);\n\tawait client.connect();\n\n\tconst underlyingClient = client.getUnderlyingClient();\n\tconst vercelTools: Record<string, any> = {};\n\n\tvercelTools.atp_execute_code = tool({\n\t\tdescription:\n\t\t\t'Execute TypeScript code in ATP sandbox with access to runtime APIs (atp.llm.*, atp.embedding.*, atp.approval.*)',\n\t\tparameters: TOOL_SCHEMAS[ToolNames.EXECUTE_CODE],\n\t\texecute: async ({ code }: { code: string }) => {\n\t\t\ttry {\n\t\t\t\tconst result = await client.execute(code, defaultExecutionConfig);\n\n\t\t\t\tif (result.status === ExecutionStatus.COMPLETED) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsuccess: true,\n\t\t\t\t\t\tresult: result.result,\n\t\t\t\t\t\tstats: result.stats,\n\t\t\t\t\t};\n\t\t\t\t} else if (result.status === ExecutionStatus.FAILED) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\terror: result.error,\n\t\t\t\t\t\tstats: result.stats,\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\terror: 'Execution in unexpected state: ' + result.status,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t} catch (error: any) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: error.message || 'Unknown error',\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t});\n\n\tvercelTools.atp_explore_api = tool({\n\t\tdescription:\n\t\t\t'Explore APIs using filesystem-like navigation. Navigate through directories to discover available functions.',\n\t\tparameters: TOOL_SCHEMAS[ToolNames.EXPLORE_API],\n\t\texecute: async ({ path }: { path: string }) => {\n\t\t\ttry {\n\t\t\t\tconst result = await underlyingClient.exploreAPI(path);\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\tresult,\n\t\t\t\t};\n\t\t\t} catch (error: any) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: error.message,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t});\n\n\tvercelTools.atp_search_api = tool({\n\t\tdescription:\n\t\t\t'Search for APIs by keyword. Provide search term as string like \"add\", \"math\", \"user\", etc.',\n\t\tparameters: TOOL_SCHEMAS[ToolNames.SEARCH_API],\n\t\texecute: async ({ query }: { query: string }) => {\n\t\t\ttry {\n\t\t\t\tconst results = await underlyingClient.searchAPI(query);\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\tresults: results.map((r: any) => ({\n\t\t\t\t\t\tapiGroup: r.apiGroup,\n\t\t\t\t\t\tfunctionName: r.functionName,\n\t\t\t\t\t\tdescription: r.description,\n\t\t\t\t\t\tsignature: r.signature,\n\t\t\t\t\t})),\n\t\t\t\t\tcount: results.length,\n\t\t\t\t};\n\t\t\t} catch (error: any) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: error.message,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t});\n\n\tvercelTools.atp_get_type_definitions = tool({\n\t\tdescription:\n\t\t\t'Get TypeScript type definitions for ATP runtime APIs to understand available functions',\n\t\tparameters: z.object({}),\n\t\texecute: async () => {\n\t\t\ttry {\n\t\t\t\tconst types = client.getTypeDefinitions();\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\ttypes,\n\t\t\t\t};\n\t\t\t} catch (error: any) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: error.message,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t});\n\n\treturn {\n\t\tclient,\n\t\ttools: vercelTools,\n\t};\n}\n\n/**\n * Creates ATP tools with streaming event support.\n * Events from tool execution will be forwarded to the provided dataStream.\n *\n * @param options - Tool creation options including dataStream for event forwarding\n * @returns Promise resolving to client and tools with streaming support\n *\n * @example\n * ```typescript\n * // In your Vercel AI SDK route handler\n * const dataStream = createUIMessageStream({...});\n *\n * const { tools } = await createATPStreamingTools({\n * serverUrl: 'http://localhost:3333',\n * model: openai('gpt-4'),\n * dataStream,\n * });\n *\n * // Use tools in streamText\n * const result = streamText({\n * model: openai('gpt-4'),\n * messages,\n * tools,\n * });\n * ```\n */\nexport async function createATPStreamingTools(\n\toptions: StreamingToolsOptions\n): Promise<ATPToolsResult> {\n\tconst { dataStream, defaultExecutionConfig, ...clientOptions } = options;\n\n\tconst client = new VercelAIATPClient(clientOptions);\n\tawait client.connect();\n\n\tconst eventHandler = createVercelEventHandler(dataStream);\n\tconst underlyingClient = client.getUnderlyingClient();\n\n\tconst vercelTools: Record<string, any> = {};\n\n\tvercelTools.atp_execute_code = tool({\n\t\tdescription:\n\t\t\t'Execute TypeScript code in ATP sandbox with streaming events for thinking, tool execution, and text output',\n\t\tparameters: TOOL_SCHEMAS[ToolNames.EXECUTE_CODE],\n\t\texecute: async ({ code }: { code: string }) => {\n\t\t\ttry {\n\t\t\t\tconst result = await underlyingClient.executeStream(\n\t\t\t\t\tcode,\n\t\t\t\t\tdefaultExecutionConfig,\n\t\t\t\t\teventHandler\n\t\t\t\t);\n\n\t\t\t\tif (result.status === ExecutionStatus.COMPLETED) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsuccess: true,\n\t\t\t\t\t\tresult: result.result,\n\t\t\t\t\t\tstats: result.stats,\n\t\t\t\t\t};\n\t\t\t\t} else if (result.status === ExecutionStatus.FAILED) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\terror: result.error,\n\t\t\t\t\t\tstats: result.stats,\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\terror: 'Execution in unexpected state: ' + result.status,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t} catch (error: any) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: error.message || 'Unknown error',\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t});\n\n\tvercelTools.atp_explore_api = tool({\n\t\tdescription:\n\t\t\t'Explore APIs using filesystem-like navigation. Navigate through directories to discover available functions.',\n\t\tparameters: TOOL_SCHEMAS[ToolNames.EXPLORE_API],\n\t\texecute: async ({ path }: { path: string }) => {\n\t\t\ttry {\n\t\t\t\tconst result = await underlyingClient.exploreAPI(path);\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\tresult,\n\t\t\t\t};\n\t\t\t} catch (error: any) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: error.message,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t});\n\n\tvercelTools.atp_search_api = tool({\n\t\tdescription:\n\t\t\t'Search for APIs by keyword. Provide search term as string like \"add\", \"math\", \"user\", etc.',\n\t\tparameters: TOOL_SCHEMAS[ToolNames.SEARCH_API],\n\t\texecute: async ({ query }: { query: string }) => {\n\t\t\ttry {\n\t\t\t\tconst results = await underlyingClient.searchAPI(query);\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\tresults: results.map((r: any) => ({\n\t\t\t\t\t\tapiGroup: r.apiGroup,\n\t\t\t\t\t\tfunctionName: r.functionName,\n\t\t\t\t\t\tdescription: r.description,\n\t\t\t\t\t\tsignature: r.signature,\n\t\t\t\t\t})),\n\t\t\t\t\tcount: results.length,\n\t\t\t\t};\n\t\t\t} catch (error: any) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: error.message,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t});\n\n\tvercelTools.atp_get_type_definitions = tool({\n\t\tdescription:\n\t\t\t'Get TypeScript type definitions for ATP runtime APIs to understand available functions',\n\t\tparameters: z.object({}),\n\t\texecute: async () => {\n\t\t\ttry {\n\t\t\t\tconst types = client.getTypeDefinitions();\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\ttypes,\n\t\t\t\t};\n\t\t\t} catch (error: any) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: error.message,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t});\n\n\treturn {\n\t\tclient,\n\t\ttools: vercelTools,\n\t};\n}\n"]}
1
+ {"version":3,"sources":["../src/client.ts","../src/event-adapter.ts","../src/tools.ts"],"names":["VercelAIATPClient","client","model","embeddings","approvalHandler","constructor","options","tools","hooks","server","AgentToolProtocolClient","serviceProviders","undefined","serverUrl","baseUrl","headers","Error","provideLLM","call","prompt","handleLLMCall","extract","schema","handleLLMExtract","classify","text","categories","handleLLMClassify","provideEmbedding","embed","handleEmbedding","provideApproval","request","message","context","handleApprovalRequest","connect","init","name","version","getTypeDefinitions","execute","code","config","getUnderlyingClient","result","generateText","temperature","maxOutputTokens","maxTokens","system","systemPrompt","generateObject","object","promptText","join","classification","trim","includes","category","toLowerCase","fallback","approved","timestamp","Date","now","createVercelEventHandler","dataStream","textRunIdPrefix","currentTextRunId","textRunCounter","reasoningRunId","reasoningCounter","toolStack","event","type","ATPEventType","THINKING","data","write","id","delta","content","TOOL_START","isFirstTool","length","push","toolName","apiGroup","transient","TOOL_END","pop","isLastTool","success","duration","error","TEXT","runId","TEXT_END","SOURCE","url","title","sourceId","providerMetadata","aiChat","summary","createdAt","PROGRESS","Math","round","fraction","ERROR","createEventCollector","events","handler","clear","TOOL_SCHEMAS","ToolNames","EXECUTE_CODE","executeCodeInputSchema","pick","EXPLORE_API","exploreApiInputSchema","SEARCH_API","searchApiInputSchema","FETCH_ALL_APIS","fetchAllApisInputSchema","createATPTools","defaultExecutionConfig","clientOptions","underlyingClient","vercelTools","atp_execute_code","tool","description","inputSchema","status","ExecutionStatus","COMPLETED","stats","FAILED","atp_explore_api","path","exploreAPI","atp_search_api","query","results","searchAPI","map","r","functionName","signature","count","atp_get_type_definitions","z","types","createATPStreamingTools","eventHandler","executeStream"],"mappings":"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","file":"index.cjs","sourcesContent":["import { AgentToolProtocolClient } from '@mondaydotcomorg/atp-client';\nimport type { ExecutionResult, ExecutionConfig } from '@mondaydotcomorg/atp-protocol';\nimport { generateObject, generateText } from 'ai';\nimport type {\n\tVercelAIATPClientOptions,\n\tApprovalResponse,\n\tEmbeddingProvider,\n\tApprovalHandler,\n} from './types.js';\n\nexport class VercelAIATPClient {\n\tprivate client: AgentToolProtocolClient;\n\tprivate model: any;\n\tprivate embeddings?: EmbeddingProvider;\n\tprivate approvalHandler?: ApprovalHandler;\n\n\tconstructor(options: VercelAIATPClientOptions) {\n\t\tconst { model, embeddings, tools, approvalHandler, hooks } = options;\n\n\t\tif ('server' in options && options.server) {\n\t\t\tthis.client = new AgentToolProtocolClient({\n\t\t\t\tserver: options.server,\n\t\t\t\thooks,\n\t\t\t\tserviceProviders: tools ? { tools } : undefined,\n\t\t\t});\n\t\t} else if ('serverUrl' in options && options.serverUrl) {\n\t\t\tthis.client = new AgentToolProtocolClient({\n\t\t\t\tbaseUrl: options.serverUrl,\n\t\t\t\theaders: options.headers,\n\t\t\t\thooks,\n\t\t\t\tserviceProviders: tools ? { tools } : undefined,\n\t\t\t});\n\t\t} else {\n\t\t\tthrow new Error('Either serverUrl or server must be provided');\n\t\t}\n\n\t\tthis.model = model;\n\t\tthis.embeddings = embeddings;\n\t\tthis.approvalHandler = approvalHandler;\n\n\t\tthis.client.provideLLM({\n\t\t\tcall: async (prompt: string, options?: any) => {\n\t\t\t\treturn await this.handleLLMCall(prompt, options);\n\t\t\t},\n\t\t\textract: async (prompt: string, schema: any, options?: any) => {\n\t\t\t\treturn await this.handleLLMExtract(prompt, schema, options);\n\t\t\t},\n\t\t\tclassify: async (text: string, categories: string[], options?: any) => {\n\t\t\t\treturn await this.handleLLMClassify(text, categories, options);\n\t\t\t},\n\t\t});\n\n\t\tif (this.embeddings) {\n\t\t\tthis.client.provideEmbedding({\n\t\t\t\tembed: async (text: string) => {\n\t\t\t\t\treturn await this.handleEmbedding(text);\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\tthis.client.provideApproval({\n\t\t\trequest: async (message: string, context?: Record<string, unknown>) => {\n\t\t\t\treturn await this.handleApprovalRequest(message, context);\n\t\t\t},\n\t\t});\n\t}\n\n\tasync connect(): Promise<void> {\n\t\tawait this.client.init({ name: 'vercel-ai-sdk-atp-client', version: '1.0.0' });\n\t\tawait this.client.connect();\n\t}\n\n\tgetTypeDefinitions(): string {\n\t\treturn this.client.getTypeDefinitions();\n\t}\n\n\tasync execute(code: string, config?: Partial<ExecutionConfig>): Promise<ExecutionResult> {\n\t\treturn await this.client.execute(code, config);\n\t}\n\n\tgetUnderlyingClient(): AgentToolProtocolClient {\n\t\treturn this.client;\n\t}\n\n\tprivate async handleLLMCall(prompt: string, options?: any): Promise<string> {\n\t\tconst result = await generateText({\n\t\t\tmodel: this.model,\n\t\t\tprompt,\n\t\t\ttemperature: options?.temperature,\n\t\t\tmaxOutputTokens: options?.maxTokens,\n\t\t\tsystem: options?.systemPrompt,\n\t\t});\n\n\t\treturn result.text;\n\t}\n\n\tprivate async handleLLMExtract(prompt: string, schema: any, options?: any): Promise<any> {\n\t\tconst result = await generateObject({\n\t\t\tmodel: this.model,\n\t\t\tprompt,\n\t\t\tschema,\n\t\t\tsystem: options?.systemPrompt,\n\t\t\ttemperature: options?.temperature,\n\t\t\tmaxOutputTokens: options?.maxTokens,\n\t\t});\n\n\t\treturn result.object;\n\t}\n\n\tprivate async handleLLMClassify(\n\t\ttext: string,\n\t\tcategories: string[],\n\t\toptions?: any\n\t): Promise<string> {\n\t\tconst promptText = `Classify the following text into one of these categories: ${categories.join(', ')}\\n\\nText: ${text}\\n\\nRespond with ONLY the category name, nothing else.`;\n\n\t\tconst result = await generateText({\n\t\t\tmodel: this.model,\n\t\t\tprompt: promptText,\n\t\t\tsystem: options?.systemPrompt,\n\t\t\ttemperature: 0,\n\t\t});\n\n\t\tconst classification = result.text.trim();\n\n\t\tif (categories.includes(classification)) {\n\t\t\treturn classification;\n\t\t}\n\n\t\tfor (const category of categories) {\n\t\t\tif (classification.toLowerCase().includes(category.toLowerCase())) {\n\t\t\t\treturn category;\n\t\t\t}\n\t\t}\n\n\t\tconst fallback = categories[0];\n\t\tif (!fallback) {\n\t\t\tthrow new Error('No categories provided for classification');\n\t\t}\n\t\treturn fallback;\n\t}\n\n\tprivate async handleEmbedding(text: string): Promise<number[]> {\n\t\tif (!this.embeddings) {\n\t\t\tthrow new Error(\n\t\t\t\t'Embeddings provider not configured. Pass embeddings option when creating VercelAIATPClient.'\n\t\t\t);\n\t\t}\n\n\t\treturn await this.embeddings.embed(text);\n\t}\n\n\tprivate async handleApprovalRequest(\n\t\tmessage: string,\n\t\tcontext?: Record<string, unknown>\n\t): Promise<ApprovalResponse> {\n\t\tif (!this.approvalHandler) {\n\t\t\tthrow new Error(\n\t\t\t\t'No approval handler configured. Pass approvalHandler option when creating VercelAIATPClient.'\n\t\t\t);\n\t\t}\n\n\t\tconst approved = await this.approvalHandler(message, context);\n\t\treturn {\n\t\t\tapproved,\n\t\t\ttimestamp: Date.now(),\n\t\t};\n\t}\n}\n","/**\n * Vercel AI SDK Event Adapter\n *\n * Converts ATP streaming events to Vercel AI SDK UIMessageStream format.\n * Use this to forward ATP events to the chat UI.\n */\n\nimport { type ATPEvent, ATPEventType } from '@mondaydotcomorg/atp-protocol';\n\n/**\n * UIMessageStreamWriter interface (subset of Vercel AI SDK's UIMessageStreamWriter)\n */\nexport interface UIMessageStreamWriter {\n\twrite(event: UIStreamEvent): void;\n}\n\n/**\n * UI Stream event types that Vercel AI SDK understands\n */\nexport type UIStreamEvent =\n\t| { type: 'text-start'; id: string }\n\t| { type: 'text-delta'; id: string; delta: string }\n\t| { type: 'text-end'; id: string }\n\t| { type: 'reasoning-start'; id: string }\n\t| { type: 'reasoning-delta'; id: string; delta: string }\n\t| { type: 'reasoning-end'; id: string }\n\t| { type: 'source-url'; url: string; title: string; sourceId: string; providerMetadata?: unknown }\n\t| { type: string; data?: unknown; transient?: boolean };\n\n/**\n * Options for creating the Vercel event handler\n */\nexport interface CreateVercelEventHandlerOptions {\n\t/**\n\t * Prefix for generated text run IDs\n\t * @default 'atp-text'\n\t */\n\ttextRunIdPrefix?: string;\n}\n\n/**\n * Creates an event handler that forwards ATP events to a Vercel AI SDK UIMessageStreamWriter.\n *\n * Handles nested tool calls properly:\n * - First tool_start triggers agentStepStart\n * - Inner tool_start/end emit agentStep updates (not start/end)\n * - Last tool_end triggers agentStepEnd\n *\n * @param dataStream - The Vercel AI SDK UIMessageStreamWriter to write events to\n * @param options - Optional configuration\n * @returns An event handler function to pass to ATP's executeStream\n *\n * @example\n * ```typescript\n * const handler = createVercelEventHandler(dataStream);\n *\n * const result = await client.executeStream(code, {}, handler);\n * ```\n */\nexport function createVercelEventHandler(\n\tdataStream: UIMessageStreamWriter,\n\toptions: CreateVercelEventHandlerOptions = {}\n): (event: ATPEvent) => void {\n\tconst { textRunIdPrefix = 'atp-text' } = options;\n\n\tlet currentTextRunId: string | undefined;\n\tlet textRunCounter = 0;\n\n\t// Track reasoning state for proper start/delta/end events\n\tlet reasoningRunId: string | undefined;\n\tlet reasoningCounter = 0;\n\n\t// Track nested tool calls with a stack\n\tconst toolStack: Array<{ toolName: string; apiGroup: string }> = [];\n\n\treturn (event: ATPEvent) => {\n\t\tswitch (event.type) {\n\t\t\tcase ATPEventType.THINKING: {\n\t\t\t\tconst data = event.data as { content: string; step?: string };\n\n\t\t\t\t// Start new reasoning block if needed\n\t\t\t\tif (!reasoningRunId) {\n\t\t\t\t\treasoningRunId = `atp-reasoning-${++reasoningCounter}`;\n\t\t\t\t\tdataStream.write({\n\t\t\t\t\t\ttype: 'reasoning-start',\n\t\t\t\t\t\tid: reasoningRunId,\n\t\t\t\t\t} as UIStreamEvent);\n\t\t\t\t}\n\n\t\t\t\t// Write reasoning delta\n\t\t\t\tdataStream.write({\n\t\t\t\t\ttype: 'reasoning-delta',\n\t\t\t\t\tid: reasoningRunId,\n\t\t\t\t\tdelta: data.content + '\\n',\n\t\t\t\t} as UIStreamEvent);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase ATPEventType.TOOL_START: {\n\t\t\t\tconst data = event.data as { toolName: string; apiGroup: string; input: unknown };\n\t\t\t\tconst isFirstTool = toolStack.length === 0;\n\n\t\t\t\ttoolStack.push({ toolName: data.toolName, apiGroup: data.apiGroup });\n\n\t\t\t\tif (isFirstTool) {\n\t\t\t\t\t// First tool - emit agentStepStart\n\t\t\t\t\tdataStream.write({\n\t\t\t\t\t\ttype: 'data-agentStepStart',\n\t\t\t\t\t\tdata: `Executing ${data.apiGroup}.${data.toolName}...`,\n\t\t\t\t\t\ttransient: true,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t// Nested tool - emit progress update instead\n\t\t\t\t\tdataStream.write({\n\t\t\t\t\t\ttype: 'data-agentStep',\n\t\t\t\t\t\tdata: `→ ${data.apiGroup}.${data.toolName}`,\n\t\t\t\t\t\ttransient: true,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase ATPEventType.TOOL_END: {\n\t\t\t\tconst data = event.data as {\n\t\t\t\t\ttoolName: string;\n\t\t\t\t\tapiGroup: string;\n\t\t\t\t\toutput: unknown;\n\t\t\t\t\tduration: number;\n\t\t\t\t\tsuccess: boolean;\n\t\t\t\t\terror?: string;\n\t\t\t\t};\n\n\t\t\t\ttoolStack.pop();\n\t\t\t\tconst isLastTool = toolStack.length === 0;\n\n\t\t\t\t// Close reasoning block when outer tool ends\n\t\t\t\tif (isLastTool && reasoningRunId) {\n\t\t\t\t\tdataStream.write({\n\t\t\t\t\t\ttype: 'reasoning-end',\n\t\t\t\t\t\tid: reasoningRunId,\n\t\t\t\t\t} as UIStreamEvent);\n\t\t\t\t\treasoningRunId = undefined;\n\t\t\t\t}\n\n\t\t\t\tif (isLastTool) {\n\t\t\t\t\t// Last tool - emit agentStepEnd\n\t\t\t\t\tdataStream.write({\n\t\t\t\t\t\ttype: 'data-agentStepEnd',\n\t\t\t\t\t\tdata: data.success\n\t\t\t\t\t\t\t? `Completed ${data.apiGroup}.${data.toolName} (${data.duration}ms)`\n\t\t\t\t\t\t\t: `Failed ${data.apiGroup}.${data.toolName}: ${data.error}`,\n\t\t\t\t\t\ttransient: true,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t// Nested tool finished - emit progress update\n\t\t\t\t\tdataStream.write({\n\t\t\t\t\t\ttype: 'data-agentStep',\n\t\t\t\t\t\tdata: data.success\n\t\t\t\t\t\t\t? `✓ ${data.apiGroup}.${data.toolName} (${data.duration}ms)`\n\t\t\t\t\t\t\t: `✗ ${data.apiGroup}.${data.toolName}: ${data.error}`,\n\t\t\t\t\t\ttransient: true,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase ATPEventType.TEXT: {\n\t\t\t\tconst data = event.data as { text: string };\n\t\t\t\tconst runId = event.runId || `${textRunIdPrefix}-${++textRunCounter}`;\n\n\t\t\t\t// If we're starting a new text run, close the previous one\n\t\t\t\tif (currentTextRunId && currentTextRunId !== runId) {\n\t\t\t\t\tdataStream.write({ type: 'text-end', id: currentTextRunId });\n\t\t\t\t\tcurrentTextRunId = undefined;\n\t\t\t\t}\n\n\t\t\t\t// Start new text run if needed\n\t\t\t\tif (!currentTextRunId || currentTextRunId !== runId) {\n\t\t\t\t\tcurrentTextRunId = runId;\n\t\t\t\t\tdataStream.write({ type: 'text-start', id: currentTextRunId });\n\t\t\t\t}\n\n\t\t\t\t// Write text delta\n\t\t\t\tdataStream.write({\n\t\t\t\t\ttype: 'text-delta',\n\t\t\t\t\tid: currentTextRunId,\n\t\t\t\t\tdelta: data.text,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase ATPEventType.TEXT_END:\n\t\t\t\tif (currentTextRunId) {\n\t\t\t\t\tdataStream.write({ type: 'text-end', id: currentTextRunId });\n\t\t\t\t\tcurrentTextRunId = undefined;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase ATPEventType.SOURCE: {\n\t\t\t\tconst data = event.data as {\n\t\t\t\t\turl: string;\n\t\t\t\t\ttitle: string;\n\t\t\t\t\tsummary?: string;\n\t\t\t\t\tcreatedAt?: string;\n\t\t\t\t};\n\t\t\t\tdataStream.write({\n\t\t\t\t\ttype: 'source-url',\n\t\t\t\t\turl: data.url,\n\t\t\t\t\ttitle: data.title,\n\t\t\t\t\tsourceId: `${data.title}-${event.timestamp}`,\n\t\t\t\t\tproviderMetadata: {\n\t\t\t\t\t\taiChat: {\n\t\t\t\t\t\t\tsummary: data.summary,\n\t\t\t\t\t\t\tcreatedAt: data.createdAt,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase ATPEventType.PROGRESS: {\n\t\t\t\tconst data = event.data as { message: string; fraction: number };\n\t\t\t\tdataStream.write({\n\t\t\t\t\ttype: 'data-agentStep',\n\t\t\t\t\tdata: `${data.message} (${Math.round(data.fraction * 100)}%)`,\n\t\t\t\t\ttransient: true,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase ATPEventType.ERROR: {\n\t\t\t\tconst data = event.data as { message: string; code?: string };\n\t\t\t\tdataStream.write({\n\t\t\t\t\ttype: 'data-error',\n\t\t\t\t\tdata: data.message,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\t// Forward unknown events as custom data events\n\t\t\t\tdataStream.write({\n\t\t\t\t\ttype: `data-${event.type}`,\n\t\t\t\t\tdata: event.data,\n\t\t\t\t\ttransient: true,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t}\n\t};\n}\n\n/**\n * Creates an event handler that collects events into an array.\n * Useful for testing or post-processing events.\n *\n * @returns Object with handler function and collected events array\n */\nexport function createEventCollector(): {\n\thandler: (event: ATPEvent) => void;\n\tevents: ATPEvent[];\n\tclear: () => void;\n} {\n\tconst events: ATPEvent[] = [];\n\n\treturn {\n\t\thandler: (event: ATPEvent) => {\n\t\t\tevents.push(event);\n\t\t},\n\t\tevents,\n\t\tclear: () => {\n\t\t\tevents.length = 0;\n\t\t},\n\t};\n}\n\n","import { z } from 'zod';\nimport { VercelAIATPClient } from './client.js';\nimport type { CreateATPToolsOptions, ATPToolsResult, StreamingToolsOptions } from './types.js';\nimport {\n\tToolNames,\n\texecuteCodeInputSchema,\n\texploreApiInputSchema,\n\tsearchApiInputSchema,\n\tfetchAllApisInputSchema,\n} from '@mondaydotcomorg/atp-client';\nimport { ExecutionStatus } from '@mondaydotcomorg/atp-protocol';\nimport { tool } from 'ai';\nimport { createVercelEventHandler } from './event-adapter.js';\n\nconst TOOL_SCHEMAS = {\n\t[ToolNames.EXECUTE_CODE]: executeCodeInputSchema.pick({ code: true }),\n\t[ToolNames.EXPLORE_API]: exploreApiInputSchema,\n\t[ToolNames.SEARCH_API]: searchApiInputSchema,\n\t[ToolNames.FETCH_ALL_APIS]: fetchAllApisInputSchema,\n} as const;\n\nexport async function createATPTools(options: CreateATPToolsOptions): Promise<ATPToolsResult> {\n\tconst { defaultExecutionConfig, ...clientOptions } = options;\n\n\tconst client = new VercelAIATPClient(clientOptions);\n\tawait client.connect();\n\n\tconst underlyingClient = client.getUnderlyingClient();\n\tconst vercelTools: Record<string, any> = {};\n\n\tvercelTools.atp_execute_code = tool({\n\t\tdescription:\n\t\t\t'Execute TypeScript code in ATP sandbox with access to runtime APIs (atp.llm.*, atp.embedding.*, atp.approval.*)',\n\t\tinputSchema: TOOL_SCHEMAS[ToolNames.EXECUTE_CODE],\n\t\texecute: async ({ code }: { code: string }) => {\n\t\t\ttry {\n\t\t\t\tconst result = await client.execute(code, defaultExecutionConfig);\n\n\t\t\t\tif (result.status === ExecutionStatus.COMPLETED) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsuccess: true,\n\t\t\t\t\t\tresult: result.result,\n\t\t\t\t\t\tstats: result.stats,\n\t\t\t\t\t};\n\t\t\t\t} else if (result.status === ExecutionStatus.FAILED) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\terror: result.error,\n\t\t\t\t\t\tstats: result.stats,\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\terror: 'Execution in unexpected state: ' + result.status,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t} catch (error: any) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: error.message || 'Unknown error',\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t});\n\n\tvercelTools.atp_explore_api = tool({\n\t\tdescription:\n\t\t\t'Explore APIs using filesystem-like navigation. Navigate through directories to discover available functions.',\n\t\tinputSchema: TOOL_SCHEMAS[ToolNames.EXPLORE_API],\n\t\texecute: async ({ path }: { path: string }) => {\n\t\t\ttry {\n\t\t\t\tconst result = await underlyingClient.exploreAPI(path);\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\tresult,\n\t\t\t\t};\n\t\t\t} catch (error: any) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: error.message,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t});\n\n\tvercelTools.atp_search_api = tool({\n\t\tdescription:\n\t\t\t'Search for APIs by keyword. Provide search term as string like \"add\", \"math\", \"user\", etc.',\n\t\tinputSchema: TOOL_SCHEMAS[ToolNames.SEARCH_API],\n\t\texecute: async ({ query }: { query: string }) => {\n\t\t\ttry {\n\t\t\t\tconst results = await underlyingClient.searchAPI(query);\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\tresults: results.map((r: any) => ({\n\t\t\t\t\t\tapiGroup: r.apiGroup,\n\t\t\t\t\t\tfunctionName: r.functionName,\n\t\t\t\t\t\tdescription: r.description,\n\t\t\t\t\t\tsignature: r.signature,\n\t\t\t\t\t})),\n\t\t\t\t\tcount: results.length,\n\t\t\t\t};\n\t\t\t} catch (error: any) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: error.message,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t});\n\n\tvercelTools.atp_get_type_definitions = tool({\n\t\tdescription:\n\t\t\t'Get TypeScript type definitions for ATP runtime APIs to understand available functions',\n\t\tinputSchema: z.object({}),\n\t\texecute: async () => {\n\t\t\ttry {\n\t\t\t\tconst types = client.getTypeDefinitions();\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\ttypes,\n\t\t\t\t};\n\t\t\t} catch (error: any) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: error.message,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t});\n\n\treturn {\n\t\tclient,\n\t\ttools: vercelTools,\n\t};\n}\n\n/**\n * Creates ATP tools with streaming event support.\n * Events from tool execution will be forwarded to the provided dataStream.\n *\n * @param options - Tool creation options including dataStream for event forwarding\n * @returns Promise resolving to client and tools with streaming support\n *\n * @example\n * ```typescript\n * // In your Vercel AI SDK route handler\n * const dataStream = createUIMessageStream({...});\n *\n * const { tools } = await createATPStreamingTools({\n * serverUrl: 'http://localhost:3333',\n * model: openai('gpt-4'),\n * dataStream,\n * });\n *\n * // Use tools in streamText\n * const result = streamText({\n * model: openai('gpt-4'),\n * messages,\n * tools,\n * });\n * ```\n */\nexport async function createATPStreamingTools(\n\toptions: StreamingToolsOptions\n): Promise<ATPToolsResult> {\n\tconst { dataStream, defaultExecutionConfig, ...clientOptions } = options;\n\n\tconst client = new VercelAIATPClient(clientOptions);\n\tawait client.connect();\n\n\tconst eventHandler = createVercelEventHandler(dataStream);\n\tconst underlyingClient = client.getUnderlyingClient();\n\n\tconst vercelTools: Record<string, any> = {};\n\n\tvercelTools.atp_execute_code = tool({\n\t\tdescription:\n\t\t\t'Execute TypeScript code in ATP sandbox with streaming events for thinking, tool execution, and text output',\n\t\tinputSchema: TOOL_SCHEMAS[ToolNames.EXECUTE_CODE],\n\t\texecute: async ({ code }: { code: string }) => {\n\t\t\ttry {\n\t\t\t\tconst result = await underlyingClient.executeStream(\n\t\t\t\t\tcode,\n\t\t\t\t\tdefaultExecutionConfig,\n\t\t\t\t\teventHandler\n\t\t\t\t);\n\n\t\t\t\tif (result.status === ExecutionStatus.COMPLETED) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsuccess: true,\n\t\t\t\t\t\tresult: result.result,\n\t\t\t\t\t\tstats: result.stats,\n\t\t\t\t\t};\n\t\t\t\t} else if (result.status === ExecutionStatus.FAILED) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\terror: result.error,\n\t\t\t\t\t\tstats: result.stats,\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\terror: 'Execution in unexpected state: ' + result.status,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t} catch (error: any) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: error.message || 'Unknown error',\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t});\n\n\tvercelTools.atp_explore_api = tool({\n\t\tdescription:\n\t\t\t'Explore APIs using filesystem-like navigation. Navigate through directories to discover available functions.',\n\t\tinputSchema: TOOL_SCHEMAS[ToolNames.EXPLORE_API],\n\t\texecute: async ({ path }: { path: string }) => {\n\t\t\ttry {\n\t\t\t\tconst result = await underlyingClient.exploreAPI(path);\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\tresult,\n\t\t\t\t};\n\t\t\t} catch (error: any) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: error.message,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t});\n\n\tvercelTools.atp_search_api = tool({\n\t\tdescription:\n\t\t\t'Search for APIs by keyword. Provide search term as string like \"add\", \"math\", \"user\", etc.',\n\t\tinputSchema: TOOL_SCHEMAS[ToolNames.SEARCH_API],\n\t\texecute: async ({ query }: { query: string }) => {\n\t\t\ttry {\n\t\t\t\tconst results = await underlyingClient.searchAPI(query);\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\tresults: results.map((r: any) => ({\n\t\t\t\t\t\tapiGroup: r.apiGroup,\n\t\t\t\t\t\tfunctionName: r.functionName,\n\t\t\t\t\t\tdescription: r.description,\n\t\t\t\t\t\tsignature: r.signature,\n\t\t\t\t\t})),\n\t\t\t\t\tcount: results.length,\n\t\t\t\t};\n\t\t\t} catch (error: any) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: error.message,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t});\n\n\tvercelTools.atp_get_type_definitions = tool({\n\t\tdescription:\n\t\t\t'Get TypeScript type definitions for ATP runtime APIs to understand available functions',\n\t\tinputSchema: z.object({}),\n\t\texecute: async () => {\n\t\t\ttry {\n\t\t\t\tconst types = client.getTypeDefinitions();\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\ttypes,\n\t\t\t\t};\n\t\t\t} catch (error: any) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: error.message,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t});\n\n\treturn {\n\t\tclient,\n\t\ttools: vercelTools,\n\t};\n}\n"]}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { AgentToolProtocolClient, ToolNames } from '@mondaydotcomorg/atp-client';
1
+ import { AgentToolProtocolClient, ToolNames, fetchAllApisInputSchema, searchApiInputSchema, exploreApiInputSchema, executeCodeInputSchema } from '@mondaydotcomorg/atp-client';
2
2
  import { generateText, generateObject, tool } from 'ai';
3
3
  import { z } from 'zod';
4
4
  import { ATPEventType, ExecutionStatus } from '@mondaydotcomorg/atp-protocol';
@@ -83,7 +83,7 @@ var VercelAIATPClient = class {
83
83
  model: this.model,
84
84
  prompt,
85
85
  temperature: options?.temperature,
86
- maxTokens: options?.maxTokens,
86
+ maxOutputTokens: options?.maxTokens,
87
87
  system: options?.systemPrompt
88
88
  });
89
89
  return result.text;
@@ -95,7 +95,7 @@ var VercelAIATPClient = class {
95
95
  schema,
96
96
  system: options?.systemPrompt,
97
97
  temperature: options?.temperature,
98
- maxTokens: options?.maxTokens
98
+ maxOutputTokens: options?.maxTokens
99
99
  });
100
100
  return result.object;
101
101
  }
@@ -309,16 +309,12 @@ __name(createEventCollector, "createEventCollector");
309
309
 
310
310
  // src/tools.ts
311
311
  var TOOL_SCHEMAS = {
312
- [ToolNames.EXECUTE_CODE]: z.object({
313
- code: z.string().describe("The JavaScript/TypeScript code to execute")
312
+ [ToolNames.EXECUTE_CODE]: executeCodeInputSchema.pick({
313
+ code: true
314
314
  }),
315
- [ToolNames.EXPLORE_API]: z.object({
316
- path: z.string().describe('The path to explore (e.g., "/" for root, "/openapi" for OpenAPI group)')
317
- }),
318
- [ToolNames.SEARCH_API]: z.object({
319
- query: z.string().describe("Search query string to find APIs")
320
- }),
321
- [ToolNames.FETCH_ALL_APIS]: z.object({})
315
+ [ToolNames.EXPLORE_API]: exploreApiInputSchema,
316
+ [ToolNames.SEARCH_API]: searchApiInputSchema,
317
+ [ToolNames.FETCH_ALL_APIS]: fetchAllApisInputSchema
322
318
  };
323
319
  async function createATPTools(options) {
324
320
  const { defaultExecutionConfig, ...clientOptions } = options;
@@ -328,7 +324,7 @@ async function createATPTools(options) {
328
324
  const vercelTools = {};
329
325
  vercelTools.atp_execute_code = tool({
330
326
  description: "Execute TypeScript code in ATP sandbox with access to runtime APIs (atp.llm.*, atp.embedding.*, atp.approval.*)",
331
- parameters: TOOL_SCHEMAS[ToolNames.EXECUTE_CODE],
327
+ inputSchema: TOOL_SCHEMAS[ToolNames.EXECUTE_CODE],
332
328
  execute: /* @__PURE__ */ __name(async ({ code }) => {
333
329
  try {
334
330
  const result = await client.execute(code, defaultExecutionConfig);
@@ -360,7 +356,7 @@ async function createATPTools(options) {
360
356
  });
361
357
  vercelTools.atp_explore_api = tool({
362
358
  description: "Explore APIs using filesystem-like navigation. Navigate through directories to discover available functions.",
363
- parameters: TOOL_SCHEMAS[ToolNames.EXPLORE_API],
359
+ inputSchema: TOOL_SCHEMAS[ToolNames.EXPLORE_API],
364
360
  execute: /* @__PURE__ */ __name(async ({ path }) => {
365
361
  try {
366
362
  const result = await underlyingClient.exploreAPI(path);
@@ -378,7 +374,7 @@ async function createATPTools(options) {
378
374
  });
379
375
  vercelTools.atp_search_api = tool({
380
376
  description: 'Search for APIs by keyword. Provide search term as string like "add", "math", "user", etc.',
381
- parameters: TOOL_SCHEMAS[ToolNames.SEARCH_API],
377
+ inputSchema: TOOL_SCHEMAS[ToolNames.SEARCH_API],
382
378
  execute: /* @__PURE__ */ __name(async ({ query }) => {
383
379
  try {
384
380
  const results = await underlyingClient.searchAPI(query);
@@ -402,7 +398,7 @@ async function createATPTools(options) {
402
398
  });
403
399
  vercelTools.atp_get_type_definitions = tool({
404
400
  description: "Get TypeScript type definitions for ATP runtime APIs to understand available functions",
405
- parameters: z.object({}),
401
+ inputSchema: z.object({}),
406
402
  execute: /* @__PURE__ */ __name(async () => {
407
403
  try {
408
404
  const types = client.getTypeDefinitions();
@@ -433,7 +429,7 @@ async function createATPStreamingTools(options) {
433
429
  const vercelTools = {};
434
430
  vercelTools.atp_execute_code = tool({
435
431
  description: "Execute TypeScript code in ATP sandbox with streaming events for thinking, tool execution, and text output",
436
- parameters: TOOL_SCHEMAS[ToolNames.EXECUTE_CODE],
432
+ inputSchema: TOOL_SCHEMAS[ToolNames.EXECUTE_CODE],
437
433
  execute: /* @__PURE__ */ __name(async ({ code }) => {
438
434
  try {
439
435
  const result = await underlyingClient.executeStream(code, defaultExecutionConfig, eventHandler);
@@ -465,7 +461,7 @@ async function createATPStreamingTools(options) {
465
461
  });
466
462
  vercelTools.atp_explore_api = tool({
467
463
  description: "Explore APIs using filesystem-like navigation. Navigate through directories to discover available functions.",
468
- parameters: TOOL_SCHEMAS[ToolNames.EXPLORE_API],
464
+ inputSchema: TOOL_SCHEMAS[ToolNames.EXPLORE_API],
469
465
  execute: /* @__PURE__ */ __name(async ({ path }) => {
470
466
  try {
471
467
  const result = await underlyingClient.exploreAPI(path);
@@ -483,7 +479,7 @@ async function createATPStreamingTools(options) {
483
479
  });
484
480
  vercelTools.atp_search_api = tool({
485
481
  description: 'Search for APIs by keyword. Provide search term as string like "add", "math", "user", etc.',
486
- parameters: TOOL_SCHEMAS[ToolNames.SEARCH_API],
482
+ inputSchema: TOOL_SCHEMAS[ToolNames.SEARCH_API],
487
483
  execute: /* @__PURE__ */ __name(async ({ query }) => {
488
484
  try {
489
485
  const results = await underlyingClient.searchAPI(query);
@@ -507,7 +503,7 @@ async function createATPStreamingTools(options) {
507
503
  });
508
504
  vercelTools.atp_get_type_definitions = tool({
509
505
  description: "Get TypeScript type definitions for ATP runtime APIs to understand available functions",
510
- parameters: z.object({}),
506
+ inputSchema: z.object({}),
511
507
  execute: /* @__PURE__ */ __name(async () => {
512
508
  try {
513
509
  const types = client.getTypeDefinitions();
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/client.ts","../src/event-adapter.ts","../src/tools.ts"],"names":["VercelAIATPClient","client","model","embeddings","approvalHandler","constructor","options","tools","hooks","server","AgentToolProtocolClient","serviceProviders","undefined","serverUrl","baseUrl","headers","Error","provideLLM","call","prompt","handleLLMCall","extract","schema","handleLLMExtract","classify","text","categories","handleLLMClassify","provideEmbedding","embed","handleEmbedding","provideApproval","request","message","context","handleApprovalRequest","connect","init","name","version","getTypeDefinitions","execute","code","config","getUnderlyingClient","result","generateText","temperature","maxTokens","system","systemPrompt","generateObject","object","promptText","join","classification","trim","includes","category","toLowerCase","fallback","approved","timestamp","Date","now","createVercelEventHandler","dataStream","textRunIdPrefix","currentTextRunId","textRunCounter","reasoningRunId","reasoningCounter","toolStack","event","type","ATPEventType","THINKING","data","write","id","delta","content","TOOL_START","isFirstTool","length","push","toolName","apiGroup","transient","TOOL_END","pop","isLastTool","success","duration","error","TEXT","runId","TEXT_END","SOURCE","url","title","sourceId","providerMetadata","aiChat","summary","createdAt","PROGRESS","Math","round","fraction","ERROR","createEventCollector","events","handler","clear","TOOL_SCHEMAS","ToolNames","EXECUTE_CODE","z","string","describe","EXPLORE_API","path","SEARCH_API","query","FETCH_ALL_APIS","createATPTools","defaultExecutionConfig","clientOptions","underlyingClient","vercelTools","atp_execute_code","tool","description","parameters","status","ExecutionStatus","COMPLETED","stats","FAILED","atp_explore_api","exploreAPI","atp_search_api","results","searchAPI","map","r","functionName","signature","count","atp_get_type_definitions","types","createATPStreamingTools","eventHandler","executeStream"],"mappings":"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","file":"index.js","sourcesContent":["import { AgentToolProtocolClient } from '@mondaydotcomorg/atp-client';\nimport type { ExecutionResult, ExecutionConfig } from '@mondaydotcomorg/atp-protocol';\nimport { generateObject, generateText } from 'ai';\nimport type {\n\tVercelAIATPClientOptions,\n\tApprovalResponse,\n\tEmbeddingProvider,\n\tApprovalHandler,\n} from './types.js';\n\nexport class VercelAIATPClient {\n\tprivate client: AgentToolProtocolClient;\n\tprivate model: any;\n\tprivate embeddings?: EmbeddingProvider;\n\tprivate approvalHandler?: ApprovalHandler;\n\n\tconstructor(options: VercelAIATPClientOptions) {\n\t\tconst { model, embeddings, tools, approvalHandler, hooks } = options;\n\n\t\tif ('server' in options && options.server) {\n\t\t\tthis.client = new AgentToolProtocolClient({\n\t\t\t\tserver: options.server,\n\t\t\t\thooks,\n\t\t\t\tserviceProviders: tools ? { tools } : undefined,\n\t\t\t});\n\t\t} else if ('serverUrl' in options && options.serverUrl) {\n\t\t\tthis.client = new AgentToolProtocolClient({\n\t\t\t\tbaseUrl: options.serverUrl,\n\t\t\t\theaders: options.headers,\n\t\t\t\thooks,\n\t\t\t\tserviceProviders: tools ? { tools } : undefined,\n\t\t\t});\n\t\t} else {\n\t\t\tthrow new Error('Either serverUrl or server must be provided');\n\t\t}\n\n\t\tthis.model = model;\n\t\tthis.embeddings = embeddings;\n\t\tthis.approvalHandler = approvalHandler;\n\n\t\tthis.client.provideLLM({\n\t\t\tcall: async (prompt: string, options?: any) => {\n\t\t\t\treturn await this.handleLLMCall(prompt, options);\n\t\t\t},\n\t\t\textract: async (prompt: string, schema: any, options?: any) => {\n\t\t\t\treturn await this.handleLLMExtract(prompt, schema, options);\n\t\t\t},\n\t\t\tclassify: async (text: string, categories: string[], options?: any) => {\n\t\t\t\treturn await this.handleLLMClassify(text, categories, options);\n\t\t\t},\n\t\t});\n\n\t\tif (this.embeddings) {\n\t\t\tthis.client.provideEmbedding({\n\t\t\t\tembed: async (text: string) => {\n\t\t\t\t\treturn await this.handleEmbedding(text);\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\tthis.client.provideApproval({\n\t\t\trequest: async (message: string, context?: Record<string, unknown>) => {\n\t\t\t\treturn await this.handleApprovalRequest(message, context);\n\t\t\t},\n\t\t});\n\t}\n\n\tasync connect(): Promise<void> {\n\t\tawait this.client.init({ name: 'vercel-ai-sdk-atp-client', version: '1.0.0' });\n\t\tawait this.client.connect();\n\t}\n\n\tgetTypeDefinitions(): string {\n\t\treturn this.client.getTypeDefinitions();\n\t}\n\n\tasync execute(code: string, config?: Partial<ExecutionConfig>): Promise<ExecutionResult> {\n\t\treturn await this.client.execute(code, config);\n\t}\n\n\tgetUnderlyingClient(): AgentToolProtocolClient {\n\t\treturn this.client;\n\t}\n\n\tprivate async handleLLMCall(prompt: string, options?: any): Promise<string> {\n\t\tconst result = await generateText({\n\t\t\tmodel: this.model,\n\t\t\tprompt,\n\t\t\ttemperature: options?.temperature,\n\t\t\tmaxTokens: options?.maxTokens,\n\t\t\tsystem: options?.systemPrompt,\n\t\t});\n\n\t\treturn result.text;\n\t}\n\n\tprivate async handleLLMExtract(prompt: string, schema: any, options?: any): Promise<any> {\n\t\tconst result = await generateObject({\n\t\t\tmodel: this.model,\n\t\t\tprompt,\n\t\t\tschema,\n\t\t\tsystem: options?.systemPrompt,\n\t\t\ttemperature: options?.temperature,\n\t\t\tmaxTokens: options?.maxTokens,\n\t\t});\n\n\t\treturn result.object;\n\t}\n\n\tprivate async handleLLMClassify(\n\t\ttext: string,\n\t\tcategories: string[],\n\t\toptions?: any\n\t): Promise<string> {\n\t\tconst promptText = `Classify the following text into one of these categories: ${categories.join(', ')}\\n\\nText: ${text}\\n\\nRespond with ONLY the category name, nothing else.`;\n\n\t\tconst result = await generateText({\n\t\t\tmodel: this.model,\n\t\t\tprompt: promptText,\n\t\t\tsystem: options?.systemPrompt,\n\t\t\ttemperature: 0,\n\t\t});\n\n\t\tconst classification = result.text.trim();\n\n\t\tif (categories.includes(classification)) {\n\t\t\treturn classification;\n\t\t}\n\n\t\tfor (const category of categories) {\n\t\t\tif (classification.toLowerCase().includes(category.toLowerCase())) {\n\t\t\t\treturn category;\n\t\t\t}\n\t\t}\n\n\t\tconst fallback = categories[0];\n\t\tif (!fallback) {\n\t\t\tthrow new Error('No categories provided for classification');\n\t\t}\n\t\treturn fallback;\n\t}\n\n\tprivate async handleEmbedding(text: string): Promise<number[]> {\n\t\tif (!this.embeddings) {\n\t\t\tthrow new Error(\n\t\t\t\t'Embeddings provider not configured. Pass embeddings option when creating VercelAIATPClient.'\n\t\t\t);\n\t\t}\n\n\t\treturn await this.embeddings.embed(text);\n\t}\n\n\tprivate async handleApprovalRequest(\n\t\tmessage: string,\n\t\tcontext?: Record<string, unknown>\n\t): Promise<ApprovalResponse> {\n\t\tif (!this.approvalHandler) {\n\t\t\tthrow new Error(\n\t\t\t\t'No approval handler configured. Pass approvalHandler option when creating VercelAIATPClient.'\n\t\t\t);\n\t\t}\n\n\t\tconst approved = await this.approvalHandler(message, context);\n\t\treturn {\n\t\t\tapproved,\n\t\t\ttimestamp: Date.now(),\n\t\t};\n\t}\n}\n","/**\n * Vercel AI SDK Event Adapter\n *\n * Converts ATP streaming events to Vercel AI SDK UIMessageStream format.\n * Use this to forward ATP events to the chat UI.\n */\n\nimport { type ATPEvent, ATPEventType } from '@mondaydotcomorg/atp-protocol';\n\n/**\n * UIMessageStreamWriter interface (subset of Vercel AI SDK's UIMessageStreamWriter)\n */\nexport interface UIMessageStreamWriter {\n\twrite(event: UIStreamEvent): void;\n}\n\n/**\n * UI Stream event types that Vercel AI SDK understands\n */\nexport type UIStreamEvent =\n\t| { type: 'text-start'; id: string }\n\t| { type: 'text-delta'; id: string; delta: string }\n\t| { type: 'text-end'; id: string }\n\t| { type: 'reasoning-start'; id: string }\n\t| { type: 'reasoning-delta'; id: string; delta: string }\n\t| { type: 'reasoning-end'; id: string }\n\t| { type: 'source-url'; url: string; title: string; sourceId: string; providerMetadata?: unknown }\n\t| { type: string; data?: unknown; transient?: boolean };\n\n/**\n * Options for creating the Vercel event handler\n */\nexport interface CreateVercelEventHandlerOptions {\n\t/**\n\t * Prefix for generated text run IDs\n\t * @default 'atp-text'\n\t */\n\ttextRunIdPrefix?: string;\n}\n\n/**\n * Creates an event handler that forwards ATP events to a Vercel AI SDK UIMessageStreamWriter.\n *\n * Handles nested tool calls properly:\n * - First tool_start triggers agentStepStart\n * - Inner tool_start/end emit agentStep updates (not start/end)\n * - Last tool_end triggers agentStepEnd\n *\n * @param dataStream - The Vercel AI SDK UIMessageStreamWriter to write events to\n * @param options - Optional configuration\n * @returns An event handler function to pass to ATP's executeStream\n *\n * @example\n * ```typescript\n * const handler = createVercelEventHandler(dataStream);\n *\n * const result = await client.executeStream(code, {}, handler);\n * ```\n */\nexport function createVercelEventHandler(\n\tdataStream: UIMessageStreamWriter,\n\toptions: CreateVercelEventHandlerOptions = {}\n): (event: ATPEvent) => void {\n\tconst { textRunIdPrefix = 'atp-text' } = options;\n\n\tlet currentTextRunId: string | undefined;\n\tlet textRunCounter = 0;\n\n\t// Track reasoning state for proper start/delta/end events\n\tlet reasoningRunId: string | undefined;\n\tlet reasoningCounter = 0;\n\n\t// Track nested tool calls with a stack\n\tconst toolStack: Array<{ toolName: string; apiGroup: string }> = [];\n\n\treturn (event: ATPEvent) => {\n\t\tswitch (event.type) {\n\t\t\tcase ATPEventType.THINKING: {\n\t\t\t\tconst data = event.data as { content: string; step?: string };\n\n\t\t\t\t// Start new reasoning block if needed\n\t\t\t\tif (!reasoningRunId) {\n\t\t\t\t\treasoningRunId = `atp-reasoning-${++reasoningCounter}`;\n\t\t\t\t\tdataStream.write({\n\t\t\t\t\t\ttype: 'reasoning-start',\n\t\t\t\t\t\tid: reasoningRunId,\n\t\t\t\t\t} as UIStreamEvent);\n\t\t\t\t}\n\n\t\t\t\t// Write reasoning delta\n\t\t\t\tdataStream.write({\n\t\t\t\t\ttype: 'reasoning-delta',\n\t\t\t\t\tid: reasoningRunId,\n\t\t\t\t\tdelta: data.content + '\\n',\n\t\t\t\t} as UIStreamEvent);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase ATPEventType.TOOL_START: {\n\t\t\t\tconst data = event.data as { toolName: string; apiGroup: string; input: unknown };\n\t\t\t\tconst isFirstTool = toolStack.length === 0;\n\n\t\t\t\ttoolStack.push({ toolName: data.toolName, apiGroup: data.apiGroup });\n\n\t\t\t\tif (isFirstTool) {\n\t\t\t\t\t// First tool - emit agentStepStart\n\t\t\t\t\tdataStream.write({\n\t\t\t\t\t\ttype: 'data-agentStepStart',\n\t\t\t\t\t\tdata: `Executing ${data.apiGroup}.${data.toolName}...`,\n\t\t\t\t\t\ttransient: true,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t// Nested tool - emit progress update instead\n\t\t\t\t\tdataStream.write({\n\t\t\t\t\t\ttype: 'data-agentStep',\n\t\t\t\t\t\tdata: `→ ${data.apiGroup}.${data.toolName}`,\n\t\t\t\t\t\ttransient: true,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase ATPEventType.TOOL_END: {\n\t\t\t\tconst data = event.data as {\n\t\t\t\t\ttoolName: string;\n\t\t\t\t\tapiGroup: string;\n\t\t\t\t\toutput: unknown;\n\t\t\t\t\tduration: number;\n\t\t\t\t\tsuccess: boolean;\n\t\t\t\t\terror?: string;\n\t\t\t\t};\n\n\t\t\t\ttoolStack.pop();\n\t\t\t\tconst isLastTool = toolStack.length === 0;\n\n\t\t\t\t// Close reasoning block when outer tool ends\n\t\t\t\tif (isLastTool && reasoningRunId) {\n\t\t\t\t\tdataStream.write({\n\t\t\t\t\t\ttype: 'reasoning-end',\n\t\t\t\t\t\tid: reasoningRunId,\n\t\t\t\t\t} as UIStreamEvent);\n\t\t\t\t\treasoningRunId = undefined;\n\t\t\t\t}\n\n\t\t\t\tif (isLastTool) {\n\t\t\t\t\t// Last tool - emit agentStepEnd\n\t\t\t\t\tdataStream.write({\n\t\t\t\t\t\ttype: 'data-agentStepEnd',\n\t\t\t\t\t\tdata: data.success\n\t\t\t\t\t\t\t? `Completed ${data.apiGroup}.${data.toolName} (${data.duration}ms)`\n\t\t\t\t\t\t\t: `Failed ${data.apiGroup}.${data.toolName}: ${data.error}`,\n\t\t\t\t\t\ttransient: true,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t// Nested tool finished - emit progress update\n\t\t\t\t\tdataStream.write({\n\t\t\t\t\t\ttype: 'data-agentStep',\n\t\t\t\t\t\tdata: data.success\n\t\t\t\t\t\t\t? `✓ ${data.apiGroup}.${data.toolName} (${data.duration}ms)`\n\t\t\t\t\t\t\t: `✗ ${data.apiGroup}.${data.toolName}: ${data.error}`,\n\t\t\t\t\t\ttransient: true,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase ATPEventType.TEXT: {\n\t\t\t\tconst data = event.data as { text: string };\n\t\t\t\tconst runId = event.runId || `${textRunIdPrefix}-${++textRunCounter}`;\n\n\t\t\t\t// If we're starting a new text run, close the previous one\n\t\t\t\tif (currentTextRunId && currentTextRunId !== runId) {\n\t\t\t\t\tdataStream.write({ type: 'text-end', id: currentTextRunId });\n\t\t\t\t\tcurrentTextRunId = undefined;\n\t\t\t\t}\n\n\t\t\t\t// Start new text run if needed\n\t\t\t\tif (!currentTextRunId || currentTextRunId !== runId) {\n\t\t\t\t\tcurrentTextRunId = runId;\n\t\t\t\t\tdataStream.write({ type: 'text-start', id: currentTextRunId });\n\t\t\t\t}\n\n\t\t\t\t// Write text delta\n\t\t\t\tdataStream.write({\n\t\t\t\t\ttype: 'text-delta',\n\t\t\t\t\tid: currentTextRunId,\n\t\t\t\t\tdelta: data.text,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase ATPEventType.TEXT_END:\n\t\t\t\tif (currentTextRunId) {\n\t\t\t\t\tdataStream.write({ type: 'text-end', id: currentTextRunId });\n\t\t\t\t\tcurrentTextRunId = undefined;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase ATPEventType.SOURCE: {\n\t\t\t\tconst data = event.data as {\n\t\t\t\t\turl: string;\n\t\t\t\t\ttitle: string;\n\t\t\t\t\tsummary?: string;\n\t\t\t\t\tcreatedAt?: string;\n\t\t\t\t};\n\t\t\t\tdataStream.write({\n\t\t\t\t\ttype: 'source-url',\n\t\t\t\t\turl: data.url,\n\t\t\t\t\ttitle: data.title,\n\t\t\t\t\tsourceId: `${data.title}-${event.timestamp}`,\n\t\t\t\t\tproviderMetadata: {\n\t\t\t\t\t\taiChat: {\n\t\t\t\t\t\t\tsummary: data.summary,\n\t\t\t\t\t\t\tcreatedAt: data.createdAt,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase ATPEventType.PROGRESS: {\n\t\t\t\tconst data = event.data as { message: string; fraction: number };\n\t\t\t\tdataStream.write({\n\t\t\t\t\ttype: 'data-agentStep',\n\t\t\t\t\tdata: `${data.message} (${Math.round(data.fraction * 100)}%)`,\n\t\t\t\t\ttransient: true,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase ATPEventType.ERROR: {\n\t\t\t\tconst data = event.data as { message: string; code?: string };\n\t\t\t\tdataStream.write({\n\t\t\t\t\ttype: 'data-error',\n\t\t\t\t\tdata: data.message,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\t// Forward unknown events as custom data events\n\t\t\t\tdataStream.write({\n\t\t\t\t\ttype: `data-${event.type}`,\n\t\t\t\t\tdata: event.data,\n\t\t\t\t\ttransient: true,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t}\n\t};\n}\n\n/**\n * Creates an event handler that collects events into an array.\n * Useful for testing or post-processing events.\n *\n * @returns Object with handler function and collected events array\n */\nexport function createEventCollector(): {\n\thandler: (event: ATPEvent) => void;\n\tevents: ATPEvent[];\n\tclear: () => void;\n} {\n\tconst events: ATPEvent[] = [];\n\n\treturn {\n\t\thandler: (event: ATPEvent) => {\n\t\t\tevents.push(event);\n\t\t},\n\t\tevents,\n\t\tclear: () => {\n\t\t\tevents.length = 0;\n\t\t},\n\t};\n}\n\n","import { z } from 'zod';\nimport { VercelAIATPClient } from './client.js';\nimport type { CreateATPToolsOptions, ATPToolsResult, StreamingToolsOptions } from './types.js';\nimport { ToolNames } from '@mondaydotcomorg/atp-client';\nimport { ExecutionStatus } from '@mondaydotcomorg/atp-protocol';\nimport { tool } from 'ai';\nimport { createVercelEventHandler } from './event-adapter.js';\n\nconst TOOL_SCHEMAS = {\n\t[ToolNames.EXECUTE_CODE]: z.object({\n\t\tcode: z.string().describe('The JavaScript/TypeScript code to execute'),\n\t}),\n\t[ToolNames.EXPLORE_API]: z.object({\n\t\tpath: z\n\t\t\t.string()\n\t\t\t.describe('The path to explore (e.g., \"/\" for root, \"/openapi\" for OpenAPI group)'),\n\t}),\n\t[ToolNames.SEARCH_API]: z.object({\n\t\tquery: z.string().describe('Search query string to find APIs'),\n\t}),\n\t[ToolNames.FETCH_ALL_APIS]: z.object({}),\n} as const;\n\nexport async function createATPTools(options: CreateATPToolsOptions): Promise<ATPToolsResult> {\n\tconst { defaultExecutionConfig, ...clientOptions } = options;\n\n\tconst client = new VercelAIATPClient(clientOptions);\n\tawait client.connect();\n\n\tconst underlyingClient = client.getUnderlyingClient();\n\tconst vercelTools: Record<string, any> = {};\n\n\tvercelTools.atp_execute_code = tool({\n\t\tdescription:\n\t\t\t'Execute TypeScript code in ATP sandbox with access to runtime APIs (atp.llm.*, atp.embedding.*, atp.approval.*)',\n\t\tparameters: TOOL_SCHEMAS[ToolNames.EXECUTE_CODE],\n\t\texecute: async ({ code }: { code: string }) => {\n\t\t\ttry {\n\t\t\t\tconst result = await client.execute(code, defaultExecutionConfig);\n\n\t\t\t\tif (result.status === ExecutionStatus.COMPLETED) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsuccess: true,\n\t\t\t\t\t\tresult: result.result,\n\t\t\t\t\t\tstats: result.stats,\n\t\t\t\t\t};\n\t\t\t\t} else if (result.status === ExecutionStatus.FAILED) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\terror: result.error,\n\t\t\t\t\t\tstats: result.stats,\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\terror: 'Execution in unexpected state: ' + result.status,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t} catch (error: any) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: error.message || 'Unknown error',\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t});\n\n\tvercelTools.atp_explore_api = tool({\n\t\tdescription:\n\t\t\t'Explore APIs using filesystem-like navigation. Navigate through directories to discover available functions.',\n\t\tparameters: TOOL_SCHEMAS[ToolNames.EXPLORE_API],\n\t\texecute: async ({ path }: { path: string }) => {\n\t\t\ttry {\n\t\t\t\tconst result = await underlyingClient.exploreAPI(path);\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\tresult,\n\t\t\t\t};\n\t\t\t} catch (error: any) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: error.message,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t});\n\n\tvercelTools.atp_search_api = tool({\n\t\tdescription:\n\t\t\t'Search for APIs by keyword. Provide search term as string like \"add\", \"math\", \"user\", etc.',\n\t\tparameters: TOOL_SCHEMAS[ToolNames.SEARCH_API],\n\t\texecute: async ({ query }: { query: string }) => {\n\t\t\ttry {\n\t\t\t\tconst results = await underlyingClient.searchAPI(query);\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\tresults: results.map((r: any) => ({\n\t\t\t\t\t\tapiGroup: r.apiGroup,\n\t\t\t\t\t\tfunctionName: r.functionName,\n\t\t\t\t\t\tdescription: r.description,\n\t\t\t\t\t\tsignature: r.signature,\n\t\t\t\t\t})),\n\t\t\t\t\tcount: results.length,\n\t\t\t\t};\n\t\t\t} catch (error: any) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: error.message,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t});\n\n\tvercelTools.atp_get_type_definitions = tool({\n\t\tdescription:\n\t\t\t'Get TypeScript type definitions for ATP runtime APIs to understand available functions',\n\t\tparameters: z.object({}),\n\t\texecute: async () => {\n\t\t\ttry {\n\t\t\t\tconst types = client.getTypeDefinitions();\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\ttypes,\n\t\t\t\t};\n\t\t\t} catch (error: any) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: error.message,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t});\n\n\treturn {\n\t\tclient,\n\t\ttools: vercelTools,\n\t};\n}\n\n/**\n * Creates ATP tools with streaming event support.\n * Events from tool execution will be forwarded to the provided dataStream.\n *\n * @param options - Tool creation options including dataStream for event forwarding\n * @returns Promise resolving to client and tools with streaming support\n *\n * @example\n * ```typescript\n * // In your Vercel AI SDK route handler\n * const dataStream = createUIMessageStream({...});\n *\n * const { tools } = await createATPStreamingTools({\n * serverUrl: 'http://localhost:3333',\n * model: openai('gpt-4'),\n * dataStream,\n * });\n *\n * // Use tools in streamText\n * const result = streamText({\n * model: openai('gpt-4'),\n * messages,\n * tools,\n * });\n * ```\n */\nexport async function createATPStreamingTools(\n\toptions: StreamingToolsOptions\n): Promise<ATPToolsResult> {\n\tconst { dataStream, defaultExecutionConfig, ...clientOptions } = options;\n\n\tconst client = new VercelAIATPClient(clientOptions);\n\tawait client.connect();\n\n\tconst eventHandler = createVercelEventHandler(dataStream);\n\tconst underlyingClient = client.getUnderlyingClient();\n\n\tconst vercelTools: Record<string, any> = {};\n\n\tvercelTools.atp_execute_code = tool({\n\t\tdescription:\n\t\t\t'Execute TypeScript code in ATP sandbox with streaming events for thinking, tool execution, and text output',\n\t\tparameters: TOOL_SCHEMAS[ToolNames.EXECUTE_CODE],\n\t\texecute: async ({ code }: { code: string }) => {\n\t\t\ttry {\n\t\t\t\tconst result = await underlyingClient.executeStream(\n\t\t\t\t\tcode,\n\t\t\t\t\tdefaultExecutionConfig,\n\t\t\t\t\teventHandler\n\t\t\t\t);\n\n\t\t\t\tif (result.status === ExecutionStatus.COMPLETED) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsuccess: true,\n\t\t\t\t\t\tresult: result.result,\n\t\t\t\t\t\tstats: result.stats,\n\t\t\t\t\t};\n\t\t\t\t} else if (result.status === ExecutionStatus.FAILED) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\terror: result.error,\n\t\t\t\t\t\tstats: result.stats,\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\terror: 'Execution in unexpected state: ' + result.status,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t} catch (error: any) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: error.message || 'Unknown error',\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t});\n\n\tvercelTools.atp_explore_api = tool({\n\t\tdescription:\n\t\t\t'Explore APIs using filesystem-like navigation. Navigate through directories to discover available functions.',\n\t\tparameters: TOOL_SCHEMAS[ToolNames.EXPLORE_API],\n\t\texecute: async ({ path }: { path: string }) => {\n\t\t\ttry {\n\t\t\t\tconst result = await underlyingClient.exploreAPI(path);\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\tresult,\n\t\t\t\t};\n\t\t\t} catch (error: any) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: error.message,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t});\n\n\tvercelTools.atp_search_api = tool({\n\t\tdescription:\n\t\t\t'Search for APIs by keyword. Provide search term as string like \"add\", \"math\", \"user\", etc.',\n\t\tparameters: TOOL_SCHEMAS[ToolNames.SEARCH_API],\n\t\texecute: async ({ query }: { query: string }) => {\n\t\t\ttry {\n\t\t\t\tconst results = await underlyingClient.searchAPI(query);\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\tresults: results.map((r: any) => ({\n\t\t\t\t\t\tapiGroup: r.apiGroup,\n\t\t\t\t\t\tfunctionName: r.functionName,\n\t\t\t\t\t\tdescription: r.description,\n\t\t\t\t\t\tsignature: r.signature,\n\t\t\t\t\t})),\n\t\t\t\t\tcount: results.length,\n\t\t\t\t};\n\t\t\t} catch (error: any) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: error.message,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t});\n\n\tvercelTools.atp_get_type_definitions = tool({\n\t\tdescription:\n\t\t\t'Get TypeScript type definitions for ATP runtime APIs to understand available functions',\n\t\tparameters: z.object({}),\n\t\texecute: async () => {\n\t\t\ttry {\n\t\t\t\tconst types = client.getTypeDefinitions();\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\ttypes,\n\t\t\t\t};\n\t\t\t} catch (error: any) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: error.message,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t});\n\n\treturn {\n\t\tclient,\n\t\ttools: vercelTools,\n\t};\n}\n"]}
1
+ {"version":3,"sources":["../src/client.ts","../src/event-adapter.ts","../src/tools.ts"],"names":["VercelAIATPClient","client","model","embeddings","approvalHandler","constructor","options","tools","hooks","server","AgentToolProtocolClient","serviceProviders","undefined","serverUrl","baseUrl","headers","Error","provideLLM","call","prompt","handleLLMCall","extract","schema","handleLLMExtract","classify","text","categories","handleLLMClassify","provideEmbedding","embed","handleEmbedding","provideApproval","request","message","context","handleApprovalRequest","connect","init","name","version","getTypeDefinitions","execute","code","config","getUnderlyingClient","result","generateText","temperature","maxOutputTokens","maxTokens","system","systemPrompt","generateObject","object","promptText","join","classification","trim","includes","category","toLowerCase","fallback","approved","timestamp","Date","now","createVercelEventHandler","dataStream","textRunIdPrefix","currentTextRunId","textRunCounter","reasoningRunId","reasoningCounter","toolStack","event","type","ATPEventType","THINKING","data","write","id","delta","content","TOOL_START","isFirstTool","length","push","toolName","apiGroup","transient","TOOL_END","pop","isLastTool","success","duration","error","TEXT","runId","TEXT_END","SOURCE","url","title","sourceId","providerMetadata","aiChat","summary","createdAt","PROGRESS","Math","round","fraction","ERROR","createEventCollector","events","handler","clear","TOOL_SCHEMAS","ToolNames","EXECUTE_CODE","executeCodeInputSchema","pick","EXPLORE_API","exploreApiInputSchema","SEARCH_API","searchApiInputSchema","FETCH_ALL_APIS","fetchAllApisInputSchema","createATPTools","defaultExecutionConfig","clientOptions","underlyingClient","vercelTools","atp_execute_code","tool","description","inputSchema","status","ExecutionStatus","COMPLETED","stats","FAILED","atp_explore_api","path","exploreAPI","atp_search_api","query","results","searchAPI","map","r","functionName","signature","count","atp_get_type_definitions","z","types","createATPStreamingTools","eventHandler","executeStream"],"mappings":"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","file":"index.js","sourcesContent":["import { AgentToolProtocolClient } from '@mondaydotcomorg/atp-client';\nimport type { ExecutionResult, ExecutionConfig } from '@mondaydotcomorg/atp-protocol';\nimport { generateObject, generateText } from 'ai';\nimport type {\n\tVercelAIATPClientOptions,\n\tApprovalResponse,\n\tEmbeddingProvider,\n\tApprovalHandler,\n} from './types.js';\n\nexport class VercelAIATPClient {\n\tprivate client: AgentToolProtocolClient;\n\tprivate model: any;\n\tprivate embeddings?: EmbeddingProvider;\n\tprivate approvalHandler?: ApprovalHandler;\n\n\tconstructor(options: VercelAIATPClientOptions) {\n\t\tconst { model, embeddings, tools, approvalHandler, hooks } = options;\n\n\t\tif ('server' in options && options.server) {\n\t\t\tthis.client = new AgentToolProtocolClient({\n\t\t\t\tserver: options.server,\n\t\t\t\thooks,\n\t\t\t\tserviceProviders: tools ? { tools } : undefined,\n\t\t\t});\n\t\t} else if ('serverUrl' in options && options.serverUrl) {\n\t\t\tthis.client = new AgentToolProtocolClient({\n\t\t\t\tbaseUrl: options.serverUrl,\n\t\t\t\theaders: options.headers,\n\t\t\t\thooks,\n\t\t\t\tserviceProviders: tools ? { tools } : undefined,\n\t\t\t});\n\t\t} else {\n\t\t\tthrow new Error('Either serverUrl or server must be provided');\n\t\t}\n\n\t\tthis.model = model;\n\t\tthis.embeddings = embeddings;\n\t\tthis.approvalHandler = approvalHandler;\n\n\t\tthis.client.provideLLM({\n\t\t\tcall: async (prompt: string, options?: any) => {\n\t\t\t\treturn await this.handleLLMCall(prompt, options);\n\t\t\t},\n\t\t\textract: async (prompt: string, schema: any, options?: any) => {\n\t\t\t\treturn await this.handleLLMExtract(prompt, schema, options);\n\t\t\t},\n\t\t\tclassify: async (text: string, categories: string[], options?: any) => {\n\t\t\t\treturn await this.handleLLMClassify(text, categories, options);\n\t\t\t},\n\t\t});\n\n\t\tif (this.embeddings) {\n\t\t\tthis.client.provideEmbedding({\n\t\t\t\tembed: async (text: string) => {\n\t\t\t\t\treturn await this.handleEmbedding(text);\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\tthis.client.provideApproval({\n\t\t\trequest: async (message: string, context?: Record<string, unknown>) => {\n\t\t\t\treturn await this.handleApprovalRequest(message, context);\n\t\t\t},\n\t\t});\n\t}\n\n\tasync connect(): Promise<void> {\n\t\tawait this.client.init({ name: 'vercel-ai-sdk-atp-client', version: '1.0.0' });\n\t\tawait this.client.connect();\n\t}\n\n\tgetTypeDefinitions(): string {\n\t\treturn this.client.getTypeDefinitions();\n\t}\n\n\tasync execute(code: string, config?: Partial<ExecutionConfig>): Promise<ExecutionResult> {\n\t\treturn await this.client.execute(code, config);\n\t}\n\n\tgetUnderlyingClient(): AgentToolProtocolClient {\n\t\treturn this.client;\n\t}\n\n\tprivate async handleLLMCall(prompt: string, options?: any): Promise<string> {\n\t\tconst result = await generateText({\n\t\t\tmodel: this.model,\n\t\t\tprompt,\n\t\t\ttemperature: options?.temperature,\n\t\t\tmaxOutputTokens: options?.maxTokens,\n\t\t\tsystem: options?.systemPrompt,\n\t\t});\n\n\t\treturn result.text;\n\t}\n\n\tprivate async handleLLMExtract(prompt: string, schema: any, options?: any): Promise<any> {\n\t\tconst result = await generateObject({\n\t\t\tmodel: this.model,\n\t\t\tprompt,\n\t\t\tschema,\n\t\t\tsystem: options?.systemPrompt,\n\t\t\ttemperature: options?.temperature,\n\t\t\tmaxOutputTokens: options?.maxTokens,\n\t\t});\n\n\t\treturn result.object;\n\t}\n\n\tprivate async handleLLMClassify(\n\t\ttext: string,\n\t\tcategories: string[],\n\t\toptions?: any\n\t): Promise<string> {\n\t\tconst promptText = `Classify the following text into one of these categories: ${categories.join(', ')}\\n\\nText: ${text}\\n\\nRespond with ONLY the category name, nothing else.`;\n\n\t\tconst result = await generateText({\n\t\t\tmodel: this.model,\n\t\t\tprompt: promptText,\n\t\t\tsystem: options?.systemPrompt,\n\t\t\ttemperature: 0,\n\t\t});\n\n\t\tconst classification = result.text.trim();\n\n\t\tif (categories.includes(classification)) {\n\t\t\treturn classification;\n\t\t}\n\n\t\tfor (const category of categories) {\n\t\t\tif (classification.toLowerCase().includes(category.toLowerCase())) {\n\t\t\t\treturn category;\n\t\t\t}\n\t\t}\n\n\t\tconst fallback = categories[0];\n\t\tif (!fallback) {\n\t\t\tthrow new Error('No categories provided for classification');\n\t\t}\n\t\treturn fallback;\n\t}\n\n\tprivate async handleEmbedding(text: string): Promise<number[]> {\n\t\tif (!this.embeddings) {\n\t\t\tthrow new Error(\n\t\t\t\t'Embeddings provider not configured. Pass embeddings option when creating VercelAIATPClient.'\n\t\t\t);\n\t\t}\n\n\t\treturn await this.embeddings.embed(text);\n\t}\n\n\tprivate async handleApprovalRequest(\n\t\tmessage: string,\n\t\tcontext?: Record<string, unknown>\n\t): Promise<ApprovalResponse> {\n\t\tif (!this.approvalHandler) {\n\t\t\tthrow new Error(\n\t\t\t\t'No approval handler configured. Pass approvalHandler option when creating VercelAIATPClient.'\n\t\t\t);\n\t\t}\n\n\t\tconst approved = await this.approvalHandler(message, context);\n\t\treturn {\n\t\t\tapproved,\n\t\t\ttimestamp: Date.now(),\n\t\t};\n\t}\n}\n","/**\n * Vercel AI SDK Event Adapter\n *\n * Converts ATP streaming events to Vercel AI SDK UIMessageStream format.\n * Use this to forward ATP events to the chat UI.\n */\n\nimport { type ATPEvent, ATPEventType } from '@mondaydotcomorg/atp-protocol';\n\n/**\n * UIMessageStreamWriter interface (subset of Vercel AI SDK's UIMessageStreamWriter)\n */\nexport interface UIMessageStreamWriter {\n\twrite(event: UIStreamEvent): void;\n}\n\n/**\n * UI Stream event types that Vercel AI SDK understands\n */\nexport type UIStreamEvent =\n\t| { type: 'text-start'; id: string }\n\t| { type: 'text-delta'; id: string; delta: string }\n\t| { type: 'text-end'; id: string }\n\t| { type: 'reasoning-start'; id: string }\n\t| { type: 'reasoning-delta'; id: string; delta: string }\n\t| { type: 'reasoning-end'; id: string }\n\t| { type: 'source-url'; url: string; title: string; sourceId: string; providerMetadata?: unknown }\n\t| { type: string; data?: unknown; transient?: boolean };\n\n/**\n * Options for creating the Vercel event handler\n */\nexport interface CreateVercelEventHandlerOptions {\n\t/**\n\t * Prefix for generated text run IDs\n\t * @default 'atp-text'\n\t */\n\ttextRunIdPrefix?: string;\n}\n\n/**\n * Creates an event handler that forwards ATP events to a Vercel AI SDK UIMessageStreamWriter.\n *\n * Handles nested tool calls properly:\n * - First tool_start triggers agentStepStart\n * - Inner tool_start/end emit agentStep updates (not start/end)\n * - Last tool_end triggers agentStepEnd\n *\n * @param dataStream - The Vercel AI SDK UIMessageStreamWriter to write events to\n * @param options - Optional configuration\n * @returns An event handler function to pass to ATP's executeStream\n *\n * @example\n * ```typescript\n * const handler = createVercelEventHandler(dataStream);\n *\n * const result = await client.executeStream(code, {}, handler);\n * ```\n */\nexport function createVercelEventHandler(\n\tdataStream: UIMessageStreamWriter,\n\toptions: CreateVercelEventHandlerOptions = {}\n): (event: ATPEvent) => void {\n\tconst { textRunIdPrefix = 'atp-text' } = options;\n\n\tlet currentTextRunId: string | undefined;\n\tlet textRunCounter = 0;\n\n\t// Track reasoning state for proper start/delta/end events\n\tlet reasoningRunId: string | undefined;\n\tlet reasoningCounter = 0;\n\n\t// Track nested tool calls with a stack\n\tconst toolStack: Array<{ toolName: string; apiGroup: string }> = [];\n\n\treturn (event: ATPEvent) => {\n\t\tswitch (event.type) {\n\t\t\tcase ATPEventType.THINKING: {\n\t\t\t\tconst data = event.data as { content: string; step?: string };\n\n\t\t\t\t// Start new reasoning block if needed\n\t\t\t\tif (!reasoningRunId) {\n\t\t\t\t\treasoningRunId = `atp-reasoning-${++reasoningCounter}`;\n\t\t\t\t\tdataStream.write({\n\t\t\t\t\t\ttype: 'reasoning-start',\n\t\t\t\t\t\tid: reasoningRunId,\n\t\t\t\t\t} as UIStreamEvent);\n\t\t\t\t}\n\n\t\t\t\t// Write reasoning delta\n\t\t\t\tdataStream.write({\n\t\t\t\t\ttype: 'reasoning-delta',\n\t\t\t\t\tid: reasoningRunId,\n\t\t\t\t\tdelta: data.content + '\\n',\n\t\t\t\t} as UIStreamEvent);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase ATPEventType.TOOL_START: {\n\t\t\t\tconst data = event.data as { toolName: string; apiGroup: string; input: unknown };\n\t\t\t\tconst isFirstTool = toolStack.length === 0;\n\n\t\t\t\ttoolStack.push({ toolName: data.toolName, apiGroup: data.apiGroup });\n\n\t\t\t\tif (isFirstTool) {\n\t\t\t\t\t// First tool - emit agentStepStart\n\t\t\t\t\tdataStream.write({\n\t\t\t\t\t\ttype: 'data-agentStepStart',\n\t\t\t\t\t\tdata: `Executing ${data.apiGroup}.${data.toolName}...`,\n\t\t\t\t\t\ttransient: true,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t// Nested tool - emit progress update instead\n\t\t\t\t\tdataStream.write({\n\t\t\t\t\t\ttype: 'data-agentStep',\n\t\t\t\t\t\tdata: `→ ${data.apiGroup}.${data.toolName}`,\n\t\t\t\t\t\ttransient: true,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase ATPEventType.TOOL_END: {\n\t\t\t\tconst data = event.data as {\n\t\t\t\t\ttoolName: string;\n\t\t\t\t\tapiGroup: string;\n\t\t\t\t\toutput: unknown;\n\t\t\t\t\tduration: number;\n\t\t\t\t\tsuccess: boolean;\n\t\t\t\t\terror?: string;\n\t\t\t\t};\n\n\t\t\t\ttoolStack.pop();\n\t\t\t\tconst isLastTool = toolStack.length === 0;\n\n\t\t\t\t// Close reasoning block when outer tool ends\n\t\t\t\tif (isLastTool && reasoningRunId) {\n\t\t\t\t\tdataStream.write({\n\t\t\t\t\t\ttype: 'reasoning-end',\n\t\t\t\t\t\tid: reasoningRunId,\n\t\t\t\t\t} as UIStreamEvent);\n\t\t\t\t\treasoningRunId = undefined;\n\t\t\t\t}\n\n\t\t\t\tif (isLastTool) {\n\t\t\t\t\t// Last tool - emit agentStepEnd\n\t\t\t\t\tdataStream.write({\n\t\t\t\t\t\ttype: 'data-agentStepEnd',\n\t\t\t\t\t\tdata: data.success\n\t\t\t\t\t\t\t? `Completed ${data.apiGroup}.${data.toolName} (${data.duration}ms)`\n\t\t\t\t\t\t\t: `Failed ${data.apiGroup}.${data.toolName}: ${data.error}`,\n\t\t\t\t\t\ttransient: true,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t// Nested tool finished - emit progress update\n\t\t\t\t\tdataStream.write({\n\t\t\t\t\t\ttype: 'data-agentStep',\n\t\t\t\t\t\tdata: data.success\n\t\t\t\t\t\t\t? `✓ ${data.apiGroup}.${data.toolName} (${data.duration}ms)`\n\t\t\t\t\t\t\t: `✗ ${data.apiGroup}.${data.toolName}: ${data.error}`,\n\t\t\t\t\t\ttransient: true,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase ATPEventType.TEXT: {\n\t\t\t\tconst data = event.data as { text: string };\n\t\t\t\tconst runId = event.runId || `${textRunIdPrefix}-${++textRunCounter}`;\n\n\t\t\t\t// If we're starting a new text run, close the previous one\n\t\t\t\tif (currentTextRunId && currentTextRunId !== runId) {\n\t\t\t\t\tdataStream.write({ type: 'text-end', id: currentTextRunId });\n\t\t\t\t\tcurrentTextRunId = undefined;\n\t\t\t\t}\n\n\t\t\t\t// Start new text run if needed\n\t\t\t\tif (!currentTextRunId || currentTextRunId !== runId) {\n\t\t\t\t\tcurrentTextRunId = runId;\n\t\t\t\t\tdataStream.write({ type: 'text-start', id: currentTextRunId });\n\t\t\t\t}\n\n\t\t\t\t// Write text delta\n\t\t\t\tdataStream.write({\n\t\t\t\t\ttype: 'text-delta',\n\t\t\t\t\tid: currentTextRunId,\n\t\t\t\t\tdelta: data.text,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase ATPEventType.TEXT_END:\n\t\t\t\tif (currentTextRunId) {\n\t\t\t\t\tdataStream.write({ type: 'text-end', id: currentTextRunId });\n\t\t\t\t\tcurrentTextRunId = undefined;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase ATPEventType.SOURCE: {\n\t\t\t\tconst data = event.data as {\n\t\t\t\t\turl: string;\n\t\t\t\t\ttitle: string;\n\t\t\t\t\tsummary?: string;\n\t\t\t\t\tcreatedAt?: string;\n\t\t\t\t};\n\t\t\t\tdataStream.write({\n\t\t\t\t\ttype: 'source-url',\n\t\t\t\t\turl: data.url,\n\t\t\t\t\ttitle: data.title,\n\t\t\t\t\tsourceId: `${data.title}-${event.timestamp}`,\n\t\t\t\t\tproviderMetadata: {\n\t\t\t\t\t\taiChat: {\n\t\t\t\t\t\t\tsummary: data.summary,\n\t\t\t\t\t\t\tcreatedAt: data.createdAt,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase ATPEventType.PROGRESS: {\n\t\t\t\tconst data = event.data as { message: string; fraction: number };\n\t\t\t\tdataStream.write({\n\t\t\t\t\ttype: 'data-agentStep',\n\t\t\t\t\tdata: `${data.message} (${Math.round(data.fraction * 100)}%)`,\n\t\t\t\t\ttransient: true,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase ATPEventType.ERROR: {\n\t\t\t\tconst data = event.data as { message: string; code?: string };\n\t\t\t\tdataStream.write({\n\t\t\t\t\ttype: 'data-error',\n\t\t\t\t\tdata: data.message,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\t// Forward unknown events as custom data events\n\t\t\t\tdataStream.write({\n\t\t\t\t\ttype: `data-${event.type}`,\n\t\t\t\t\tdata: event.data,\n\t\t\t\t\ttransient: true,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t}\n\t};\n}\n\n/**\n * Creates an event handler that collects events into an array.\n * Useful for testing or post-processing events.\n *\n * @returns Object with handler function and collected events array\n */\nexport function createEventCollector(): {\n\thandler: (event: ATPEvent) => void;\n\tevents: ATPEvent[];\n\tclear: () => void;\n} {\n\tconst events: ATPEvent[] = [];\n\n\treturn {\n\t\thandler: (event: ATPEvent) => {\n\t\t\tevents.push(event);\n\t\t},\n\t\tevents,\n\t\tclear: () => {\n\t\t\tevents.length = 0;\n\t\t},\n\t};\n}\n\n","import { z } from 'zod';\nimport { VercelAIATPClient } from './client.js';\nimport type { CreateATPToolsOptions, ATPToolsResult, StreamingToolsOptions } from './types.js';\nimport {\n\tToolNames,\n\texecuteCodeInputSchema,\n\texploreApiInputSchema,\n\tsearchApiInputSchema,\n\tfetchAllApisInputSchema,\n} from '@mondaydotcomorg/atp-client';\nimport { ExecutionStatus } from '@mondaydotcomorg/atp-protocol';\nimport { tool } from 'ai';\nimport { createVercelEventHandler } from './event-adapter.js';\n\nconst TOOL_SCHEMAS = {\n\t[ToolNames.EXECUTE_CODE]: executeCodeInputSchema.pick({ code: true }),\n\t[ToolNames.EXPLORE_API]: exploreApiInputSchema,\n\t[ToolNames.SEARCH_API]: searchApiInputSchema,\n\t[ToolNames.FETCH_ALL_APIS]: fetchAllApisInputSchema,\n} as const;\n\nexport async function createATPTools(options: CreateATPToolsOptions): Promise<ATPToolsResult> {\n\tconst { defaultExecutionConfig, ...clientOptions } = options;\n\n\tconst client = new VercelAIATPClient(clientOptions);\n\tawait client.connect();\n\n\tconst underlyingClient = client.getUnderlyingClient();\n\tconst vercelTools: Record<string, any> = {};\n\n\tvercelTools.atp_execute_code = tool({\n\t\tdescription:\n\t\t\t'Execute TypeScript code in ATP sandbox with access to runtime APIs (atp.llm.*, atp.embedding.*, atp.approval.*)',\n\t\tinputSchema: TOOL_SCHEMAS[ToolNames.EXECUTE_CODE],\n\t\texecute: async ({ code }: { code: string }) => {\n\t\t\ttry {\n\t\t\t\tconst result = await client.execute(code, defaultExecutionConfig);\n\n\t\t\t\tif (result.status === ExecutionStatus.COMPLETED) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsuccess: true,\n\t\t\t\t\t\tresult: result.result,\n\t\t\t\t\t\tstats: result.stats,\n\t\t\t\t\t};\n\t\t\t\t} else if (result.status === ExecutionStatus.FAILED) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\terror: result.error,\n\t\t\t\t\t\tstats: result.stats,\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\terror: 'Execution in unexpected state: ' + result.status,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t} catch (error: any) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: error.message || 'Unknown error',\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t});\n\n\tvercelTools.atp_explore_api = tool({\n\t\tdescription:\n\t\t\t'Explore APIs using filesystem-like navigation. Navigate through directories to discover available functions.',\n\t\tinputSchema: TOOL_SCHEMAS[ToolNames.EXPLORE_API],\n\t\texecute: async ({ path }: { path: string }) => {\n\t\t\ttry {\n\t\t\t\tconst result = await underlyingClient.exploreAPI(path);\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\tresult,\n\t\t\t\t};\n\t\t\t} catch (error: any) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: error.message,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t});\n\n\tvercelTools.atp_search_api = tool({\n\t\tdescription:\n\t\t\t'Search for APIs by keyword. Provide search term as string like \"add\", \"math\", \"user\", etc.',\n\t\tinputSchema: TOOL_SCHEMAS[ToolNames.SEARCH_API],\n\t\texecute: async ({ query }: { query: string }) => {\n\t\t\ttry {\n\t\t\t\tconst results = await underlyingClient.searchAPI(query);\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\tresults: results.map((r: any) => ({\n\t\t\t\t\t\tapiGroup: r.apiGroup,\n\t\t\t\t\t\tfunctionName: r.functionName,\n\t\t\t\t\t\tdescription: r.description,\n\t\t\t\t\t\tsignature: r.signature,\n\t\t\t\t\t})),\n\t\t\t\t\tcount: results.length,\n\t\t\t\t};\n\t\t\t} catch (error: any) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: error.message,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t});\n\n\tvercelTools.atp_get_type_definitions = tool({\n\t\tdescription:\n\t\t\t'Get TypeScript type definitions for ATP runtime APIs to understand available functions',\n\t\tinputSchema: z.object({}),\n\t\texecute: async () => {\n\t\t\ttry {\n\t\t\t\tconst types = client.getTypeDefinitions();\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\ttypes,\n\t\t\t\t};\n\t\t\t} catch (error: any) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: error.message,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t});\n\n\treturn {\n\t\tclient,\n\t\ttools: vercelTools,\n\t};\n}\n\n/**\n * Creates ATP tools with streaming event support.\n * Events from tool execution will be forwarded to the provided dataStream.\n *\n * @param options - Tool creation options including dataStream for event forwarding\n * @returns Promise resolving to client and tools with streaming support\n *\n * @example\n * ```typescript\n * // In your Vercel AI SDK route handler\n * const dataStream = createUIMessageStream({...});\n *\n * const { tools } = await createATPStreamingTools({\n * serverUrl: 'http://localhost:3333',\n * model: openai('gpt-4'),\n * dataStream,\n * });\n *\n * // Use tools in streamText\n * const result = streamText({\n * model: openai('gpt-4'),\n * messages,\n * tools,\n * });\n * ```\n */\nexport async function createATPStreamingTools(\n\toptions: StreamingToolsOptions\n): Promise<ATPToolsResult> {\n\tconst { dataStream, defaultExecutionConfig, ...clientOptions } = options;\n\n\tconst client = new VercelAIATPClient(clientOptions);\n\tawait client.connect();\n\n\tconst eventHandler = createVercelEventHandler(dataStream);\n\tconst underlyingClient = client.getUnderlyingClient();\n\n\tconst vercelTools: Record<string, any> = {};\n\n\tvercelTools.atp_execute_code = tool({\n\t\tdescription:\n\t\t\t'Execute TypeScript code in ATP sandbox with streaming events for thinking, tool execution, and text output',\n\t\tinputSchema: TOOL_SCHEMAS[ToolNames.EXECUTE_CODE],\n\t\texecute: async ({ code }: { code: string }) => {\n\t\t\ttry {\n\t\t\t\tconst result = await underlyingClient.executeStream(\n\t\t\t\t\tcode,\n\t\t\t\t\tdefaultExecutionConfig,\n\t\t\t\t\teventHandler\n\t\t\t\t);\n\n\t\t\t\tif (result.status === ExecutionStatus.COMPLETED) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsuccess: true,\n\t\t\t\t\t\tresult: result.result,\n\t\t\t\t\t\tstats: result.stats,\n\t\t\t\t\t};\n\t\t\t\t} else if (result.status === ExecutionStatus.FAILED) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\terror: result.error,\n\t\t\t\t\t\tstats: result.stats,\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\terror: 'Execution in unexpected state: ' + result.status,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t} catch (error: any) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: error.message || 'Unknown error',\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t});\n\n\tvercelTools.atp_explore_api = tool({\n\t\tdescription:\n\t\t\t'Explore APIs using filesystem-like navigation. Navigate through directories to discover available functions.',\n\t\tinputSchema: TOOL_SCHEMAS[ToolNames.EXPLORE_API],\n\t\texecute: async ({ path }: { path: string }) => {\n\t\t\ttry {\n\t\t\t\tconst result = await underlyingClient.exploreAPI(path);\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\tresult,\n\t\t\t\t};\n\t\t\t} catch (error: any) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: error.message,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t});\n\n\tvercelTools.atp_search_api = tool({\n\t\tdescription:\n\t\t\t'Search for APIs by keyword. Provide search term as string like \"add\", \"math\", \"user\", etc.',\n\t\tinputSchema: TOOL_SCHEMAS[ToolNames.SEARCH_API],\n\t\texecute: async ({ query }: { query: string }) => {\n\t\t\ttry {\n\t\t\t\tconst results = await underlyingClient.searchAPI(query);\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\tresults: results.map((r: any) => ({\n\t\t\t\t\t\tapiGroup: r.apiGroup,\n\t\t\t\t\t\tfunctionName: r.functionName,\n\t\t\t\t\t\tdescription: r.description,\n\t\t\t\t\t\tsignature: r.signature,\n\t\t\t\t\t})),\n\t\t\t\t\tcount: results.length,\n\t\t\t\t};\n\t\t\t} catch (error: any) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: error.message,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t});\n\n\tvercelTools.atp_get_type_definitions = tool({\n\t\tdescription:\n\t\t\t'Get TypeScript type definitions for ATP runtime APIs to understand available functions',\n\t\tinputSchema: z.object({}),\n\t\texecute: async () => {\n\t\t\ttry {\n\t\t\t\tconst types = client.getTypeDefinitions();\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\ttypes,\n\t\t\t\t};\n\t\t\t} catch (error: any) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: error.message,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t});\n\n\treturn {\n\t\tclient,\n\t\ttools: vercelTools,\n\t};\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAqB/F,wBAAsB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC,CAkH5F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,uBAAuB,CAC5C,OAAO,EAAE,qBAAqB,GAC5B,OAAO,CAAC,cAAc,CAAC,CAwHzB"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAmB/F,wBAAsB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC,CAkH5F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,uBAAuB,CAC5C,OAAO,EAAE,qBAAqB,GAC5B,OAAO,CAAC,cAAc,CAAC,CAwHzB"}
package/dist/tools.js CHANGED
@@ -1,22 +1,14 @@
1
1
  import { z } from 'zod';
2
2
  import { VercelAIATPClient } from './client.js';
3
- import { ToolNames } from '@mondaydotcomorg/atp-client';
3
+ import { ToolNames, executeCodeInputSchema, exploreApiInputSchema, searchApiInputSchema, fetchAllApisInputSchema, } from '@mondaydotcomorg/atp-client';
4
4
  import { ExecutionStatus } from '@mondaydotcomorg/atp-protocol';
5
5
  import { tool } from 'ai';
6
6
  import { createVercelEventHandler } from './event-adapter.js';
7
7
  const TOOL_SCHEMAS = {
8
- [ToolNames.EXECUTE_CODE]: z.object({
9
- code: z.string().describe('The JavaScript/TypeScript code to execute'),
10
- }),
11
- [ToolNames.EXPLORE_API]: z.object({
12
- path: z
13
- .string()
14
- .describe('The path to explore (e.g., "/" for root, "/openapi" for OpenAPI group)'),
15
- }),
16
- [ToolNames.SEARCH_API]: z.object({
17
- query: z.string().describe('Search query string to find APIs'),
18
- }),
19
- [ToolNames.FETCH_ALL_APIS]: z.object({}),
8
+ [ToolNames.EXECUTE_CODE]: executeCodeInputSchema.pick({ code: true }),
9
+ [ToolNames.EXPLORE_API]: exploreApiInputSchema,
10
+ [ToolNames.SEARCH_API]: searchApiInputSchema,
11
+ [ToolNames.FETCH_ALL_APIS]: fetchAllApisInputSchema,
20
12
  };
21
13
  export async function createATPTools(options) {
22
14
  const { defaultExecutionConfig, ...clientOptions } = options;
@@ -26,7 +18,7 @@ export async function createATPTools(options) {
26
18
  const vercelTools = {};
27
19
  vercelTools.atp_execute_code = tool({
28
20
  description: 'Execute TypeScript code in ATP sandbox with access to runtime APIs (atp.llm.*, atp.embedding.*, atp.approval.*)',
29
- parameters: TOOL_SCHEMAS[ToolNames.EXECUTE_CODE],
21
+ inputSchema: TOOL_SCHEMAS[ToolNames.EXECUTE_CODE],
30
22
  execute: async ({ code }) => {
31
23
  try {
32
24
  const result = await client.execute(code, defaultExecutionConfig);
@@ -61,7 +53,7 @@ export async function createATPTools(options) {
61
53
  });
62
54
  vercelTools.atp_explore_api = tool({
63
55
  description: 'Explore APIs using filesystem-like navigation. Navigate through directories to discover available functions.',
64
- parameters: TOOL_SCHEMAS[ToolNames.EXPLORE_API],
56
+ inputSchema: TOOL_SCHEMAS[ToolNames.EXPLORE_API],
65
57
  execute: async ({ path }) => {
66
58
  try {
67
59
  const result = await underlyingClient.exploreAPI(path);
@@ -80,7 +72,7 @@ export async function createATPTools(options) {
80
72
  });
81
73
  vercelTools.atp_search_api = tool({
82
74
  description: 'Search for APIs by keyword. Provide search term as string like "add", "math", "user", etc.',
83
- parameters: TOOL_SCHEMAS[ToolNames.SEARCH_API],
75
+ inputSchema: TOOL_SCHEMAS[ToolNames.SEARCH_API],
84
76
  execute: async ({ query }) => {
85
77
  try {
86
78
  const results = await underlyingClient.searchAPI(query);
@@ -105,7 +97,7 @@ export async function createATPTools(options) {
105
97
  });
106
98
  vercelTools.atp_get_type_definitions = tool({
107
99
  description: 'Get TypeScript type definitions for ATP runtime APIs to understand available functions',
108
- parameters: z.object({}),
100
+ inputSchema: z.object({}),
109
101
  execute: async () => {
110
102
  try {
111
103
  const types = client.getTypeDefinitions();
@@ -162,7 +154,7 @@ export async function createATPStreamingTools(options) {
162
154
  const vercelTools = {};
163
155
  vercelTools.atp_execute_code = tool({
164
156
  description: 'Execute TypeScript code in ATP sandbox with streaming events for thinking, tool execution, and text output',
165
- parameters: TOOL_SCHEMAS[ToolNames.EXECUTE_CODE],
157
+ inputSchema: TOOL_SCHEMAS[ToolNames.EXECUTE_CODE],
166
158
  execute: async ({ code }) => {
167
159
  try {
168
160
  const result = await underlyingClient.executeStream(code, defaultExecutionConfig, eventHandler);
@@ -197,7 +189,7 @@ export async function createATPStreamingTools(options) {
197
189
  });
198
190
  vercelTools.atp_explore_api = tool({
199
191
  description: 'Explore APIs using filesystem-like navigation. Navigate through directories to discover available functions.',
200
- parameters: TOOL_SCHEMAS[ToolNames.EXPLORE_API],
192
+ inputSchema: TOOL_SCHEMAS[ToolNames.EXPLORE_API],
201
193
  execute: async ({ path }) => {
202
194
  try {
203
195
  const result = await underlyingClient.exploreAPI(path);
@@ -216,7 +208,7 @@ export async function createATPStreamingTools(options) {
216
208
  });
217
209
  vercelTools.atp_search_api = tool({
218
210
  description: 'Search for APIs by keyword. Provide search term as string like "add", "math", "user", etc.',
219
- parameters: TOOL_SCHEMAS[ToolNames.SEARCH_API],
211
+ inputSchema: TOOL_SCHEMAS[ToolNames.SEARCH_API],
220
212
  execute: async ({ query }) => {
221
213
  try {
222
214
  const results = await underlyingClient.searchAPI(query);
@@ -241,7 +233,7 @@ export async function createATPStreamingTools(options) {
241
233
  });
242
234
  vercelTools.atp_get_type_definitions = tool({
243
235
  description: 'Get TypeScript type definitions for ATP runtime APIs to understand available functions',
244
- parameters: z.object({}),
236
+ inputSchema: z.object({}),
245
237
  execute: async () => {
246
238
  try {
247
239
  const types = client.getTypeDefinitions();
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mondaydotcomorg/atp-vercel-sdk",
3
- "version": "0.20.5",
3
+ "version": "0.20.6",
4
4
  "description": "Vercel AI SDK integration for Agent Tool Protocol",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -44,16 +44,17 @@
44
44
  ],
45
45
  "license": "MIT",
46
46
  "dependencies": {
47
- "@mondaydotcomorg/atp-client": "0.19.17",
48
- "@mondaydotcomorg/atp-protocol": "0.19.16"
47
+ "@mondaydotcomorg/atp-client": "0.19.18",
48
+ "@mondaydotcomorg/atp-protocol": "0.19.17"
49
49
  },
50
50
  "peerDependencies": {
51
- "ai": "^4.0.0",
51
+ "ai": "^5.0.0",
52
52
  "zod": "^3.25.0"
53
53
  },
54
54
  "devDependencies": {
55
55
  "@jest/globals": "^29.7.0",
56
56
  "@types/jest": "^29.5.11",
57
+ "ai": "^5.0.0",
57
58
  "jest": "^29.7.0",
58
59
  "tsup": "^8.5.1",
59
60
  "typescript": "^5.3.3",
package/src/client.ts CHANGED
@@ -87,7 +87,7 @@ export class VercelAIATPClient {
87
87
  model: this.model,
88
88
  prompt,
89
89
  temperature: options?.temperature,
90
- maxTokens: options?.maxTokens,
90
+ maxOutputTokens: options?.maxTokens,
91
91
  system: options?.systemPrompt,
92
92
  });
93
93
 
@@ -101,7 +101,7 @@ export class VercelAIATPClient {
101
101
  schema,
102
102
  system: options?.systemPrompt,
103
103
  temperature: options?.temperature,
104
- maxTokens: options?.maxTokens,
104
+ maxOutputTokens: options?.maxTokens,
105
105
  });
106
106
 
107
107
  return result.object;
package/src/tools.ts CHANGED
@@ -1,24 +1,22 @@
1
1
  import { z } from 'zod';
2
2
  import { VercelAIATPClient } from './client.js';
3
3
  import type { CreateATPToolsOptions, ATPToolsResult, StreamingToolsOptions } from './types.js';
4
- import { ToolNames } from '@mondaydotcomorg/atp-client';
4
+ import {
5
+ ToolNames,
6
+ executeCodeInputSchema,
7
+ exploreApiInputSchema,
8
+ searchApiInputSchema,
9
+ fetchAllApisInputSchema,
10
+ } from '@mondaydotcomorg/atp-client';
5
11
  import { ExecutionStatus } from '@mondaydotcomorg/atp-protocol';
6
12
  import { tool } from 'ai';
7
13
  import { createVercelEventHandler } from './event-adapter.js';
8
14
 
9
15
  const TOOL_SCHEMAS = {
10
- [ToolNames.EXECUTE_CODE]: z.object({
11
- code: z.string().describe('The JavaScript/TypeScript code to execute'),
12
- }),
13
- [ToolNames.EXPLORE_API]: z.object({
14
- path: z
15
- .string()
16
- .describe('The path to explore (e.g., "/" for root, "/openapi" for OpenAPI group)'),
17
- }),
18
- [ToolNames.SEARCH_API]: z.object({
19
- query: z.string().describe('Search query string to find APIs'),
20
- }),
21
- [ToolNames.FETCH_ALL_APIS]: z.object({}),
16
+ [ToolNames.EXECUTE_CODE]: executeCodeInputSchema.pick({ code: true }),
17
+ [ToolNames.EXPLORE_API]: exploreApiInputSchema,
18
+ [ToolNames.SEARCH_API]: searchApiInputSchema,
19
+ [ToolNames.FETCH_ALL_APIS]: fetchAllApisInputSchema,
22
20
  } as const;
23
21
 
24
22
  export async function createATPTools(options: CreateATPToolsOptions): Promise<ATPToolsResult> {
@@ -33,7 +31,7 @@ export async function createATPTools(options: CreateATPToolsOptions): Promise<AT
33
31
  vercelTools.atp_execute_code = tool({
34
32
  description:
35
33
  'Execute TypeScript code in ATP sandbox with access to runtime APIs (atp.llm.*, atp.embedding.*, atp.approval.*)',
36
- parameters: TOOL_SCHEMAS[ToolNames.EXECUTE_CODE],
34
+ inputSchema: TOOL_SCHEMAS[ToolNames.EXECUTE_CODE],
37
35
  execute: async ({ code }: { code: string }) => {
38
36
  try {
39
37
  const result = await client.execute(code, defaultExecutionConfig);
@@ -68,7 +66,7 @@ export async function createATPTools(options: CreateATPToolsOptions): Promise<AT
68
66
  vercelTools.atp_explore_api = tool({
69
67
  description:
70
68
  'Explore APIs using filesystem-like navigation. Navigate through directories to discover available functions.',
71
- parameters: TOOL_SCHEMAS[ToolNames.EXPLORE_API],
69
+ inputSchema: TOOL_SCHEMAS[ToolNames.EXPLORE_API],
72
70
  execute: async ({ path }: { path: string }) => {
73
71
  try {
74
72
  const result = await underlyingClient.exploreAPI(path);
@@ -88,7 +86,7 @@ export async function createATPTools(options: CreateATPToolsOptions): Promise<AT
88
86
  vercelTools.atp_search_api = tool({
89
87
  description:
90
88
  'Search for APIs by keyword. Provide search term as string like "add", "math", "user", etc.',
91
- parameters: TOOL_SCHEMAS[ToolNames.SEARCH_API],
89
+ inputSchema: TOOL_SCHEMAS[ToolNames.SEARCH_API],
92
90
  execute: async ({ query }: { query: string }) => {
93
91
  try {
94
92
  const results = await underlyingClient.searchAPI(query);
@@ -114,7 +112,7 @@ export async function createATPTools(options: CreateATPToolsOptions): Promise<AT
114
112
  vercelTools.atp_get_type_definitions = tool({
115
113
  description:
116
114
  'Get TypeScript type definitions for ATP runtime APIs to understand available functions',
117
- parameters: z.object({}),
115
+ inputSchema: z.object({}),
118
116
  execute: async () => {
119
117
  try {
120
118
  const types = client.getTypeDefinitions();
@@ -179,7 +177,7 @@ export async function createATPStreamingTools(
179
177
  vercelTools.atp_execute_code = tool({
180
178
  description:
181
179
  'Execute TypeScript code in ATP sandbox with streaming events for thinking, tool execution, and text output',
182
- parameters: TOOL_SCHEMAS[ToolNames.EXECUTE_CODE],
180
+ inputSchema: TOOL_SCHEMAS[ToolNames.EXECUTE_CODE],
183
181
  execute: async ({ code }: { code: string }) => {
184
182
  try {
185
183
  const result = await underlyingClient.executeStream(
@@ -218,7 +216,7 @@ export async function createATPStreamingTools(
218
216
  vercelTools.atp_explore_api = tool({
219
217
  description:
220
218
  'Explore APIs using filesystem-like navigation. Navigate through directories to discover available functions.',
221
- parameters: TOOL_SCHEMAS[ToolNames.EXPLORE_API],
219
+ inputSchema: TOOL_SCHEMAS[ToolNames.EXPLORE_API],
222
220
  execute: async ({ path }: { path: string }) => {
223
221
  try {
224
222
  const result = await underlyingClient.exploreAPI(path);
@@ -238,7 +236,7 @@ export async function createATPStreamingTools(
238
236
  vercelTools.atp_search_api = tool({
239
237
  description:
240
238
  'Search for APIs by keyword. Provide search term as string like "add", "math", "user", etc.',
241
- parameters: TOOL_SCHEMAS[ToolNames.SEARCH_API],
239
+ inputSchema: TOOL_SCHEMAS[ToolNames.SEARCH_API],
242
240
  execute: async ({ query }: { query: string }) => {
243
241
  try {
244
242
  const results = await underlyingClient.searchAPI(query);
@@ -264,7 +262,7 @@ export async function createATPStreamingTools(
264
262
  vercelTools.atp_get_type_definitions = tool({
265
263
  description:
266
264
  'Get TypeScript type definitions for ATP runtime APIs to understand available functions',
267
- parameters: z.object({}),
265
+ inputSchema: z.object({}),
268
266
  execute: async () => {
269
267
  try {
270
268
  const types = client.getTypeDefinitions();