@omarestrella/ai-sdk-agent-sdk 1.0.0-beta.2 → 1.0.0-beta.3

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/messages.js DELETED
@@ -1,92 +0,0 @@
1
- import { safeJsonStringify } from "./json";
2
- import { logger } from "./logger";
3
- /**
4
- * Converts an AI SDK LanguageModelV2 prompt (array of system/user/assistant/tool messages)
5
- * into a system prompt string and a user prompt string for the Claude Agent SDK's query().
6
- *
7
- * Since we use maxTurns: 1, the Agent SDK makes a single LLM call. We serialize the full
8
- * conversation history into the prompt so the LLM has context from prior turns.
9
- */
10
- export function convertMessages(messages) {
11
- logger.debug("Converting messages:", { count: messages.length });
12
- const systemParts = [];
13
- const conversationParts = [];
14
- for (const message of messages) {
15
- logger.debug("Processing message:", { role: message.role });
16
- switch (message.role) {
17
- case "system": {
18
- systemParts.push(message.content);
19
- break;
20
- }
21
- case "user": {
22
- const parts = [];
23
- logger.debug("Processing user message parts:", { count: message.content.length });
24
- for (const part of message.content) {
25
- switch (part.type) {
26
- case "text":
27
- parts.push(part.text);
28
- break;
29
- case "file":
30
- parts.push(`[File: ${part.filename ?? part.mediaType}]`);
31
- break;
32
- }
33
- }
34
- if (parts.length > 0) {
35
- conversationParts.push(`[user]\n${parts.join("\n")}`);
36
- }
37
- break;
38
- }
39
- case "assistant": {
40
- const parts = [];
41
- logger.debug("Processing assistant message parts:", { count: message.content.length });
42
- for (const part of message.content) {
43
- switch (part.type) {
44
- case "text":
45
- parts.push(part.text);
46
- break;
47
- case "tool-call":
48
- parts.push(`[tool_call: ${part.toolName}(${safeJsonStringify(part.input)})]`);
49
- break;
50
- case "reasoning":
51
- parts.push(`[thinking]\n${part.text}\n[/thinking]`);
52
- break;
53
- }
54
- }
55
- if (parts.length > 0) {
56
- conversationParts.push(`[assistant]\n${parts.join("\n")}`);
57
- }
58
- break;
59
- }
60
- case "tool": {
61
- const parts = [];
62
- for (const part of message.content) {
63
- const output = part.output;
64
- let outputText;
65
- if (Array.isArray(output)) {
66
- // Output is LanguageModelV2ToolResultOutput (array of parts)
67
- outputText = output
68
- .map((o) => {
69
- if (o.type === "text")
70
- return o.text;
71
- return `[${o.type}]`;
72
- })
73
- .join("\n");
74
- }
75
- else {
76
- outputText = typeof output === "string" ? output : safeJsonStringify(output);
77
- }
78
- parts.push(`[tool_result: ${part.toolName} (id: ${part.toolCallId})]\n${outputText}`);
79
- }
80
- if (parts.length > 0) {
81
- conversationParts.push(parts.join("\n"));
82
- }
83
- break;
84
- }
85
- }
86
- }
87
- return {
88
- systemPrompt: systemParts.join("\n\n"),
89
- prompt: conversationParts.join("\n\n"),
90
- };
91
- }
92
- //# sourceMappingURL=messages.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import type { LanguageModelV2 } from "@ai-sdk/provider";
2
- export interface ClaudeAgentProviderSettings {
3
- name?: string;
4
- /**
5
- * Working directory for the Agent SDK.
6
- * @default process.cwd()
7
- */
8
- cwd?: string;
9
- }
10
- export interface ClaudeAgentProvider {
11
- (modelId: string): LanguageModelV2;
12
- languageModel(modelId: string): LanguageModelV2;
13
- }
14
- export declare function createClaudeAgent(options?: ClaudeAgentProviderSettings): ClaudeAgentProvider;
15
- //# sourceMappingURL=provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAQxD,MAAM,WAAW,2BAA2B;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAAC;IACnC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAAC;CACjD;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,GAAE,2BAAgC,GACxC,mBAAmB,CAmBrB"}
package/dist/provider.js DELETED
@@ -1,19 +0,0 @@
1
- import { ClaudeAgentLanguageModel, } from "./language-model";
2
- import { safeJsonStringify } from "./json";
3
- import { logger } from "./logger";
4
- export function createClaudeAgent(options = {}) {
5
- const config = {
6
- provider: options.name ?? "claude-agent",
7
- cwd: options.cwd,
8
- };
9
- logger.debug("Creating agent with:", safeJsonStringify(options));
10
- const createLanguageModel = (modelId) => {
11
- return new ClaudeAgentLanguageModel(modelId, config);
12
- };
13
- const provider = function (modelId) {
14
- return createLanguageModel(modelId);
15
- };
16
- provider.languageModel = createLanguageModel;
17
- return provider;
18
- }
19
- //# sourceMappingURL=provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AACA,OAAO,EACL,wBAAwB,GAEzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAiBlC,MAAM,UAAU,iBAAiB,CAC/B,UAAuC,EAAE;IAEzC,MAAM,MAAM,GAAmC;QAC7C,QAAQ,EAAE,OAAO,CAAC,IAAI,IAAI,cAAc;QACxC,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC;IAEF,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;IAEjE,MAAM,mBAAmB,GAAG,CAAC,OAAe,EAAmB,EAAE;QAC/D,OAAO,IAAI,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,UAAU,OAAe;QACxC,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC,CAAC;IAEF,QAAQ,CAAC,aAAa,GAAG,mBAAmB,CAAC;IAE7C,OAAO,QAA+B,CAAC;AACzC,CAAC"}
package/dist/tools.d.ts DELETED
@@ -1,21 +0,0 @@
1
- import type { LanguageModelV2FunctionTool } from "@ai-sdk/provider";
2
- import { type McpServerConfig } from "@anthropic-ai/claude-agent-sdk";
3
- /**
4
- * The name of the MCP server that hosts AI SDK tools.
5
- * This is used to identify tools when the Agent SDK returns them
6
- * in the format: mcp__{SERVER_NAME}__{tool_name}
7
- */
8
- export declare const AI_SDK_MCP_SERVER_NAME = "ai-sdk-tools";
9
- /**
10
- * Converts AI SDK function tool definitions into an in-process Agent SDK MCP server.
11
- *
12
- * Each AI SDK tool becomes an MCP tool with proper parameter validation.
13
- * Since we use maxTurns: 1, the Agent SDK will report tool_use blocks in the
14
- * assistant message but won't execute them. The AI SDK caller handles actual
15
- * tool execution.
16
- */
17
- export declare function convertTools(tools: LanguageModelV2FunctionTool[] | undefined): {
18
- mcpServer: McpServerConfig;
19
- allowedTools: string[];
20
- } | undefined;
21
- //# sourceMappingURL=tools.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,gCAAgC,CAAC;AAKxC;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,iBAAiB,CAAC;AA8BrD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,2BAA2B,EAAE,GAAG,SAAS,GACzE;IACE,SAAS,EAAE,eAAe,CAAC;IAC3B,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,GACD,SAAS,CAqDZ"}
package/dist/tools.js DELETED
@@ -1,82 +0,0 @@
1
- import { createSdkMcpServer, tool, } from "@anthropic-ai/claude-agent-sdk";
2
- import * as z from "zod";
3
- import { safeJsonStringify } from "./json";
4
- import { logger } from "./logger";
5
- /**
6
- * The name of the MCP server that hosts AI SDK tools.
7
- * This is used to identify tools when the Agent SDK returns them
8
- * in the format: mcp__{SERVER_NAME}__{tool_name}
9
- */
10
- export const AI_SDK_MCP_SERVER_NAME = "ai-sdk-tools";
11
- /**
12
- * Extracts Zod schema from AI SDK tool inputSchema using Zod 4's native
13
- * JSON Schema conversion.
14
- */
15
- function extractZodSchema(tool) {
16
- const inputSchema = tool.inputSchema;
17
- if (!inputSchema || typeof inputSchema !== "object") {
18
- return {};
19
- }
20
- try {
21
- const zodSchema = z.fromJSONSchema(inputSchema);
22
- if (zodSchema instanceof z.ZodObject) {
23
- return zodSchema.shape;
24
- }
25
- return { value: zodSchema };
26
- }
27
- catch (error) {
28
- logger.error("Failed to convert JSON Schema to Zod:", {
29
- tool: tool.name,
30
- error,
31
- });
32
- return {};
33
- }
34
- }
35
- /**
36
- * Converts AI SDK function tool definitions into an in-process Agent SDK MCP server.
37
- *
38
- * Each AI SDK tool becomes an MCP tool with proper parameter validation.
39
- * Since we use maxTurns: 1, the Agent SDK will report tool_use blocks in the
40
- * assistant message but won't execute them. The AI SDK caller handles actual
41
- * tool execution.
42
- */
43
- export function convertTools(tools) {
44
- if (!tools || tools.length === 0)
45
- return undefined;
46
- logger.debug("Converting tools:", {
47
- count: tools.length,
48
- tools: tools.map((t) => t.name),
49
- });
50
- const mcpTools = tools.map((aiTool) => {
51
- const zodSchema = extractZodSchema(aiTool);
52
- logger.debug("Creating tool:", {
53
- name: aiTool.name,
54
- schemaKeys: Object.keys(zodSchema),
55
- });
56
- return tool(aiTool.name, aiTool.description ?? "", zodSchema, async () => {
57
- // Stub handler — tool execution is deferred to the AI SDK caller.
58
- // This should rarely (if ever) be called with maxTurns: 1.
59
- return {
60
- content: [
61
- {
62
- type: "text",
63
- text: safeJsonStringify({
64
- _deferred: true,
65
- message: "Tool execution deferred to AI SDK caller",
66
- }),
67
- },
68
- ],
69
- };
70
- });
71
- });
72
- logger.info("Created MCP server with", mcpTools.length, "tools");
73
- const mcpServer = createSdkMcpServer({
74
- name: AI_SDK_MCP_SERVER_NAME,
75
- tools: mcpTools,
76
- });
77
- // Generate the allowed tool names with MCP prefix format
78
- const allowedTools = tools.map((t) => `mcp__${AI_SDK_MCP_SERVER_NAME}__${t.name}`);
79
- logger.debug("Allowed tools:", allowedTools);
80
- return { mcpServer, allowedTools };
81
- }
82
- //# sourceMappingURL=tools.js.map
package/dist/tools.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}