@ank1015/providers 0.0.36 → 0.0.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/dist/debug-conversation.d.ts +2 -0
  2. package/dist/debug-conversation.d.ts.map +1 -0
  3. package/dist/debug-conversation.js +98 -0
  4. package/dist/debug-conversation.js.map +1 -0
  5. package/dist/debug-minimal-test.d.ts +2 -0
  6. package/dist/debug-minimal-test.d.ts.map +1 -0
  7. package/dist/debug-minimal-test.js +47 -0
  8. package/dist/debug-minimal-test.js.map +1 -0
  9. package/dist/debug-sdk-tool.d.ts +2 -0
  10. package/dist/debug-sdk-tool.d.ts.map +1 -0
  11. package/dist/debug-sdk-tool.js +99 -0
  12. package/dist/debug-sdk-tool.js.map +1 -0
  13. package/dist/debug-sdk.d.ts +2 -0
  14. package/dist/debug-sdk.d.ts.map +1 -0
  15. package/dist/debug-sdk.js +59 -0
  16. package/dist/debug-sdk.js.map +1 -0
  17. package/dist/debug-session-flow.d.ts +2 -0
  18. package/dist/debug-session-flow.d.ts.map +1 -0
  19. package/dist/debug-session-flow.js +134 -0
  20. package/dist/debug-session-flow.js.map +1 -0
  21. package/dist/debug-session-hack.d.ts +2 -0
  22. package/dist/debug-session-hack.d.ts.map +1 -0
  23. package/dist/debug-session-hack.js +143 -0
  24. package/dist/debug-session-hack.js.map +1 -0
  25. package/dist/index.d.ts +2 -0
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +2 -0
  28. package/dist/index.js.map +1 -1
  29. package/dist/llm.d.ts.map +1 -1
  30. package/dist/llm.js +19 -1
  31. package/dist/llm.js.map +1 -1
  32. package/dist/models.generated.d.ts +72 -0
  33. package/dist/models.generated.d.ts.map +1 -1
  34. package/dist/models.generated.js +72 -0
  35. package/dist/models.generated.js.map +1 -1
  36. package/dist/providers/anthropic-agents-sdk/complete.d.ts +3 -0
  37. package/dist/providers/anthropic-agents-sdk/complete.d.ts.map +1 -0
  38. package/dist/providers/anthropic-agents-sdk/complete.js +246 -0
  39. package/dist/providers/anthropic-agents-sdk/complete.js.map +1 -0
  40. package/dist/providers/anthropic-agents-sdk/index.d.ts +4 -0
  41. package/dist/providers/anthropic-agents-sdk/index.d.ts.map +1 -0
  42. package/dist/providers/anthropic-agents-sdk/index.js +4 -0
  43. package/dist/providers/anthropic-agents-sdk/index.js.map +1 -0
  44. package/dist/providers/anthropic-agents-sdk/session.d.ts +37 -0
  45. package/dist/providers/anthropic-agents-sdk/session.d.ts.map +1 -0
  46. package/dist/providers/anthropic-agents-sdk/session.js +188 -0
  47. package/dist/providers/anthropic-agents-sdk/session.js.map +1 -0
  48. package/dist/providers/anthropic-agents-sdk/stream.d.ts +3 -0
  49. package/dist/providers/anthropic-agents-sdk/stream.d.ts.map +1 -0
  50. package/dist/providers/anthropic-agents-sdk/stream.js +402 -0
  51. package/dist/providers/anthropic-agents-sdk/stream.js.map +1 -0
  52. package/dist/providers/anthropic-agents-sdk/types.d.ts +22 -0
  53. package/dist/providers/anthropic-agents-sdk/types.d.ts.map +1 -0
  54. package/dist/providers/anthropic-agents-sdk/types.js +3 -0
  55. package/dist/providers/anthropic-agents-sdk/types.js.map +1 -0
  56. package/dist/providers/anthropic-agents-sdk/utils.d.ts +39 -0
  57. package/dist/providers/anthropic-agents-sdk/utils.d.ts.map +1 -0
  58. package/dist/providers/anthropic-agents-sdk/utils.js +251 -0
  59. package/dist/providers/anthropic-agents-sdk/utils.js.map +1 -0
  60. package/dist/providers/cerebras/complete.d.ts +3 -0
  61. package/dist/providers/cerebras/complete.d.ts.map +1 -0
  62. package/dist/providers/cerebras/complete.js +58 -0
  63. package/dist/providers/cerebras/complete.js.map +1 -0
  64. package/dist/providers/cerebras/index.d.ts +5 -0
  65. package/dist/providers/cerebras/index.d.ts.map +1 -0
  66. package/dist/providers/cerebras/index.js +4 -0
  67. package/dist/providers/cerebras/index.js.map +1 -0
  68. package/dist/providers/cerebras/stream.d.ts +3 -0
  69. package/dist/providers/cerebras/stream.d.ts.map +1 -0
  70. package/dist/providers/cerebras/stream.js +321 -0
  71. package/dist/providers/cerebras/stream.js.map +1 -0
  72. package/dist/providers/cerebras/types.d.ts +14 -0
  73. package/dist/providers/cerebras/types.d.ts.map +1 -0
  74. package/dist/providers/cerebras/types.js +2 -0
  75. package/dist/providers/cerebras/types.js.map +1 -0
  76. package/dist/providers/cerebras/utils.d.ts +19 -0
  77. package/dist/providers/cerebras/utils.d.ts.map +1 -0
  78. package/dist/providers/cerebras/utils.js +274 -0
  79. package/dist/providers/cerebras/utils.js.map +1 -0
  80. package/dist/providers/google/utils.d.ts.map +1 -1
  81. package/dist/providers/google/utils.js +2 -0
  82. package/dist/providers/google/utils.js.map +1 -1
  83. package/dist/providers/google-interactions/complete.d.ts +3 -0
  84. package/dist/providers/google-interactions/complete.d.ts.map +1 -0
  85. package/dist/providers/google-interactions/complete.js +63 -0
  86. package/dist/providers/google-interactions/complete.js.map +1 -0
  87. package/dist/providers/google-interactions/index.d.ts +5 -0
  88. package/dist/providers/google-interactions/index.d.ts.map +1 -0
  89. package/dist/providers/google-interactions/index.js +4 -0
  90. package/dist/providers/google-interactions/index.js.map +1 -0
  91. package/dist/providers/google-interactions/poll.d.ts +59 -0
  92. package/dist/providers/google-interactions/poll.d.ts.map +1 -0
  93. package/dist/providers/google-interactions/poll.js +161 -0
  94. package/dist/providers/google-interactions/poll.js.map +1 -0
  95. package/dist/providers/google-interactions/stream.d.ts +3 -0
  96. package/dist/providers/google-interactions/stream.d.ts.map +1 -0
  97. package/dist/providers/google-interactions/stream.js +242 -0
  98. package/dist/providers/google-interactions/stream.js.map +1 -0
  99. package/dist/providers/google-interactions/types.d.ts +10 -0
  100. package/dist/providers/google-interactions/types.d.ts.map +1 -0
  101. package/dist/providers/google-interactions/types.js +2 -0
  102. package/dist/providers/google-interactions/types.js.map +1 -0
  103. package/dist/providers/google-interactions/utils.d.ts +61 -0
  104. package/dist/providers/google-interactions/utils.d.ts.map +1 -0
  105. package/dist/providers/google-interactions/utils.js +252 -0
  106. package/dist/providers/google-interactions/utils.js.map +1 -0
  107. package/dist/providers/zai/complete.d.ts +3 -0
  108. package/dist/providers/zai/complete.d.ts.map +1 -0
  109. package/dist/providers/zai/complete.js +58 -0
  110. package/dist/providers/zai/complete.js.map +1 -0
  111. package/dist/providers/zai/index.d.ts +5 -0
  112. package/dist/providers/zai/index.d.ts.map +1 -0
  113. package/dist/providers/zai/index.js +4 -0
  114. package/dist/providers/zai/index.js.map +1 -0
  115. package/dist/providers/zai/stream.d.ts +3 -0
  116. package/dist/providers/zai/stream.d.ts.map +1 -0
  117. package/dist/providers/zai/stream.js +321 -0
  118. package/dist/providers/zai/stream.js.map +1 -0
  119. package/dist/providers/zai/types.d.ts +13 -0
  120. package/dist/providers/zai/types.d.ts.map +1 -0
  121. package/dist/providers/zai/types.js +2 -0
  122. package/dist/providers/zai/types.js.map +1 -0
  123. package/dist/providers/zai/utils.d.ts +19 -0
  124. package/dist/providers/zai/utils.d.ts.map +1 -0
  125. package/dist/providers/zai/utils.js +253 -0
  126. package/dist/providers/zai/utils.js.map +1 -0
  127. package/dist/test-sdk-direct.d.ts +2 -0
  128. package/dist/test-sdk-direct.d.ts.map +1 -0
  129. package/dist/test-sdk-direct.js +41 -0
  130. package/dist/test-sdk-direct.js.map +1 -0
  131. package/dist/test.d.ts +2 -0
  132. package/dist/test.d.ts.map +1 -0
  133. package/dist/test.js +213 -0
  134. package/dist/test.js.map +1 -0
  135. package/dist/types.d.ts +7 -1
  136. package/dist/types.d.ts.map +1 -1
  137. package/dist/types.js +1 -1
  138. package/dist/types.js.map +1 -1
  139. package/dist/utils/oauth/google-antigravity.d.ts +25 -0
  140. package/dist/utils/oauth/google-antigravity.d.ts.map +1 -0
  141. package/dist/utils/oauth/google-antigravity.js +337 -0
  142. package/dist/utils/oauth/google-antigravity.js.map +1 -0
  143. package/dist/utils/oauth/pkce.d.ts +13 -0
  144. package/dist/utils/oauth/pkce.d.ts.map +1 -0
  145. package/dist/utils/oauth/pkce.js +31 -0
  146. package/dist/utils/oauth/pkce.js.map +1 -0
  147. package/package.json +1 -1
@@ -0,0 +1,402 @@
1
+ import { query } from "@anthropic-ai/claude-agent-sdk";
2
+ import { AssistantMessageEventStream } from "../../utils/event-stream.js";
3
+ import { SDK_SESSION_DIR } from "./types.js";
4
+ import { createToolsServer, mapStopReason, mapResultSubtypeToStopReason, getMockBetaMessage, getEmptyUsage, getResponseUsage, stripMcpToolPrefix } from "./utils.js";
5
+ import { sanitizeSurrogates } from "../../utils/sanitize-unicode.js";
6
+ import { parseStreamingJson } from "../../utils/json-parse.js";
7
+ import { findSessionToResume, injectToolResultsIntoSession, ensureSessionDir } from "./session.js";
8
+ export const streamAnthropicAgentsSdk = (model, context, options, id) => {
9
+ const stream = new AssistantMessageEventStream();
10
+ (async () => {
11
+ const startTimestamp = Date.now();
12
+ const output = {
13
+ role: "assistant",
14
+ api: model.api,
15
+ model: model,
16
+ id,
17
+ content: [],
18
+ usage: getEmptyUsage(),
19
+ stopReason: "stop",
20
+ timestamp: startTimestamp,
21
+ duration: 0
22
+ };
23
+ let finalResponse = getMockBetaMessage();
24
+ const blocks = output.content;
25
+ const accumulatedContent = [];
26
+ // Session tracking for multi-turn tool execution
27
+ let sessionId;
28
+ let assistantUuid;
29
+ const toolUseMapping = {}; // our toolCallId -> SDK tool_use_id
30
+ try {
31
+ // Ensure session directory exists
32
+ ensureSessionDir();
33
+ // Check if we need to resume a session (tool results in context)
34
+ const sessionToResume = findSessionToResume(context);
35
+ let resumeSessionId;
36
+ if (sessionToResume) {
37
+ // Inject tool results into the session file
38
+ injectToolResultsIntoSession(sessionToResume.metadata, sessionToResume.toolResults);
39
+ resumeSessionId = sessionToResume.metadata.sessionId;
40
+ }
41
+ // Build SDK options (with resume if needed)
42
+ const sdkOptions = buildSdkOptions(model, context, options, resumeSessionId);
43
+ // Build the prompt
44
+ const prompt = resumeSessionId
45
+ ? "Continue with the tool result." // Non-empty prompt for resume
46
+ : buildPrompt(context);
47
+ // Create abort controller from signal if provided
48
+ if (options?.signal) {
49
+ sdkOptions.abortController = new AbortController();
50
+ options.signal.addEventListener('abort', () => {
51
+ sdkOptions.abortController?.abort();
52
+ });
53
+ }
54
+ // Enable partial messages for streaming
55
+ sdkOptions.includePartialMessages = true;
56
+ // Run the query
57
+ const queryResult = query({ prompt, options: sdkOptions });
58
+ stream.push({ type: "start", message: { ...output, timestamp: Date.now() } });
59
+ let lastAssistantMessage;
60
+ let resultMessage;
61
+ for await (const message of queryResult) {
62
+ // Capture session ID from system init message
63
+ if (message.type === 'system' && message.subtype === 'init') {
64
+ sessionId = message.session_id;
65
+ }
66
+ if (message.type === 'stream_event') {
67
+ // Handle streaming events
68
+ const partialMessage = message;
69
+ const event = partialMessage.event;
70
+ if (event.type === "message_start") {
71
+ finalResponse.id = event.message.id;
72
+ finalResponse.model = event.message.model;
73
+ finalResponse.role = event.message.role;
74
+ output.usage.input = event.message.usage.input_tokens || 0;
75
+ output.usage.output = event.message.usage.output_tokens || 0;
76
+ output.usage.cacheRead = event.message.usage.cache_read_input_tokens || 0;
77
+ output.usage.cacheWrite = event.message.usage.cache_creation_input_tokens || 0;
78
+ output.usage.totalTokens =
79
+ output.usage.input + output.usage.output + output.usage.cacheRead + output.usage.cacheWrite;
80
+ }
81
+ else if (event.type === "content_block_start") {
82
+ accumulatedContent.push({ index: event.index, ...event.content_block });
83
+ if (event.content_block.type === "text") {
84
+ const block = {
85
+ type: "response",
86
+ content: [{ type: 'text', content: "" }],
87
+ index: event.index,
88
+ };
89
+ output.content.push(block);
90
+ stream.push({ type: "text_start", contentIndex: output.content.length - 1, message: output });
91
+ }
92
+ else if (event.content_block.type === "thinking") {
93
+ const block = {
94
+ type: "thinking",
95
+ thinkingText: "",
96
+ index: event.index,
97
+ };
98
+ output.content.push(block);
99
+ stream.push({ type: "thinking_start", contentIndex: output.content.length - 1, message: output });
100
+ }
101
+ else if (event.content_block.type === "tool_use") {
102
+ const sdkToolUseId = event.content_block.id;
103
+ const block = {
104
+ type: "toolCall",
105
+ toolCallId: sdkToolUseId,
106
+ // Strip MCP prefix so Conversation class can find the tool
107
+ name: stripMcpToolPrefix(event.content_block.name),
108
+ arguments: event.content_block.input,
109
+ partialJson: "",
110
+ index: event.index,
111
+ };
112
+ output.content.push(block);
113
+ // Map our toolCallId to SDK tool_use_id (same value, but stored for session management)
114
+ toolUseMapping[sdkToolUseId] = sdkToolUseId;
115
+ stream.push({ type: "toolcall_start", contentIndex: output.content.length - 1, message: output });
116
+ }
117
+ }
118
+ else if (event.type === "content_block_delta") {
119
+ const accumBlockIndex = accumulatedContent.findIndex(a => a.index === event.index);
120
+ if (event.delta.type === "text_delta") {
121
+ const index = blocks.findIndex((b) => b.index === event.index);
122
+ const block = blocks[index];
123
+ if (block && block.type === "response") {
124
+ const textContentIndex = block.content.findIndex((b) => b.type === 'text');
125
+ block.content[textContentIndex].content += event.delta.text;
126
+ stream.push({
127
+ type: "text_delta",
128
+ contentIndex: index,
129
+ delta: event.delta.text,
130
+ message: output,
131
+ });
132
+ }
133
+ if (accumBlockIndex !== -1) {
134
+ accumulatedContent[accumBlockIndex].text += event.delta.text;
135
+ }
136
+ }
137
+ else if (event.delta.type === "thinking_delta") {
138
+ const index = blocks.findIndex((b) => b.index === event.index);
139
+ const block = blocks[index];
140
+ if (block && block.type === "thinking") {
141
+ block.thinkingText += event.delta.thinking;
142
+ stream.push({
143
+ type: "thinking_delta",
144
+ contentIndex: index,
145
+ delta: event.delta.thinking,
146
+ message: output,
147
+ });
148
+ }
149
+ if (accumBlockIndex !== -1) {
150
+ accumulatedContent[accumBlockIndex].thinking += event.delta.thinking;
151
+ }
152
+ }
153
+ else if (event.delta.type === "input_json_delta") {
154
+ const index = blocks.findIndex((b) => b.index === event.index);
155
+ const block = blocks[index];
156
+ if (block && block.type === "toolCall") {
157
+ block.partialJson += event.delta.partial_json;
158
+ block.arguments = parseStreamingJson(block.partialJson);
159
+ stream.push({
160
+ type: "toolcall_delta",
161
+ contentIndex: index,
162
+ delta: event.delta.partial_json,
163
+ message: output,
164
+ });
165
+ }
166
+ if (accumBlockIndex !== -1) {
167
+ accumulatedContent[accumBlockIndex].partialJson =
168
+ (accumulatedContent[accumBlockIndex].partialJson || '') + event.delta.partial_json;
169
+ }
170
+ }
171
+ else if (event.delta.type === "signature_delta") {
172
+ if (accumBlockIndex !== -1) {
173
+ accumulatedContent[accumBlockIndex].signature =
174
+ (accumulatedContent[accumBlockIndex].signature || '') + event.delta.signature;
175
+ }
176
+ }
177
+ }
178
+ else if (event.type === "content_block_stop") {
179
+ const index = blocks.findIndex((b) => b.index === event.index);
180
+ const block = blocks[index];
181
+ const accumBlockIndex = accumulatedContent.findIndex(a => a.index === event.index);
182
+ if (accumBlockIndex !== -1) {
183
+ if (accumulatedContent[accumBlockIndex].type === 'tool_use') {
184
+ const partialJson = accumulatedContent[accumBlockIndex].partialJson;
185
+ if (partialJson) {
186
+ accumulatedContent[accumBlockIndex].input = parseStreamingJson(partialJson);
187
+ }
188
+ }
189
+ if (accumulatedContent[accumBlockIndex].index !== undefined) {
190
+ delete accumulatedContent[accumBlockIndex].index;
191
+ }
192
+ if (accumulatedContent[accumBlockIndex].partialJson !== undefined) {
193
+ delete accumulatedContent[accumBlockIndex].partialJson;
194
+ }
195
+ }
196
+ if (block) {
197
+ delete block.index;
198
+ if (block.type === "response") {
199
+ stream.push({
200
+ type: "text_end",
201
+ contentIndex: index,
202
+ content: block.content,
203
+ message: output,
204
+ });
205
+ }
206
+ else if (block.type === "thinking") {
207
+ stream.push({
208
+ type: "thinking_end",
209
+ contentIndex: index,
210
+ content: block.thinkingText,
211
+ message: output,
212
+ });
213
+ }
214
+ else if (block.type === "toolCall") {
215
+ block.arguments = parseStreamingJson(block.partialJson);
216
+ delete block.partialJson;
217
+ stream.push({
218
+ type: "toolcall_end",
219
+ contentIndex: index,
220
+ toolCall: block,
221
+ message: output,
222
+ });
223
+ }
224
+ }
225
+ }
226
+ else if (event.type === "message_delta") {
227
+ if (event.delta.stop_reason) {
228
+ output.stopReason = mapStopReason(event.delta.stop_reason);
229
+ finalResponse.stop_reason = event.delta.stop_reason;
230
+ }
231
+ output.usage.output = event.usage.output_tokens || 0;
232
+ output.usage.totalTokens =
233
+ output.usage.input + output.usage.output + output.usage.cacheRead + output.usage.cacheWrite;
234
+ }
235
+ }
236
+ else if (message.type === 'assistant') {
237
+ lastAssistantMessage = message;
238
+ // Capture assistant UUID for session management
239
+ assistantUuid = message.uuid;
240
+ }
241
+ else if (message.type === 'result') {
242
+ resultMessage = message;
243
+ }
244
+ }
245
+ if (options?.signal?.aborted) {
246
+ throw new Error("Request was aborted");
247
+ }
248
+ // Update final response content
249
+ finalResponse.content = accumulatedContent;
250
+ // Update usage from result if available
251
+ if (resultMessage) {
252
+ output.usage = getResponseUsage(resultMessage.usage, resultMessage.total_cost_usd, model);
253
+ if (resultMessage.subtype !== 'success') {
254
+ output.stopReason = mapResultSubtypeToStopReason(resultMessage.subtype);
255
+ if ('errors' in resultMessage) {
256
+ output.errorMessage = resultMessage.errors.join('; ');
257
+ }
258
+ }
259
+ }
260
+ // Use the full assistant message if available
261
+ if (lastAssistantMessage) {
262
+ finalResponse = lastAssistantMessage.message;
263
+ }
264
+ stream.push({ type: "done", reason: output.stopReason, message: { ...output, timestamp: Date.now() } });
265
+ const baseAssistantMessage = {
266
+ ...output,
267
+ message: finalResponse,
268
+ timestamp: Date.now(),
269
+ duration: Date.now() - startTimestamp,
270
+ // Include session metadata for multi-turn tool execution
271
+ sdkMetadata: sessionId && assistantUuid ? {
272
+ sessionId,
273
+ assistantUuid,
274
+ toolUseMapping
275
+ } : undefined
276
+ };
277
+ stream.end(baseAssistantMessage);
278
+ }
279
+ catch (error) {
280
+ for (const block of output.content)
281
+ delete block.index;
282
+ output.stopReason = options?.signal?.aborted ? "aborted" : "error";
283
+ output.errorMessage = error instanceof Error ? error.message : JSON.stringify(error);
284
+ stream.push({ type: "error", reason: output.stopReason, message: { ...output, timestamp: Date.now() } });
285
+ finalResponse.content = accumulatedContent;
286
+ const baseAssistantMessage = {
287
+ ...output,
288
+ message: finalResponse,
289
+ timestamp: Date.now(),
290
+ duration: Date.now() - startTimestamp,
291
+ // Include session metadata even on error for debugging
292
+ sdkMetadata: sessionId && assistantUuid ? {
293
+ sessionId,
294
+ assistantUuid,
295
+ toolUseMapping
296
+ } : undefined
297
+ };
298
+ stream.end(baseAssistantMessage);
299
+ }
300
+ })();
301
+ return stream;
302
+ };
303
+ /**
304
+ * Builds SDK options from our context and provider options.
305
+ */
306
+ function buildSdkOptions(model, context, options, resumeSessionId) {
307
+ const { signal, ...restOptions } = options;
308
+ const sdkOptions = {
309
+ ...restOptions,
310
+ model: model.id,
311
+ // Always use single turn - Conversation class handles multi-turn
312
+ maxTurns: 1,
313
+ // Bypass permissions for programmatic use
314
+ permissionMode: options.permissionMode ?? 'bypassPermissions',
315
+ allowDangerouslySkipPermissions: options.allowDangerouslySkipPermissions ?? true,
316
+ // Use fixed session directory
317
+ cwd: SDK_SESSION_DIR,
318
+ };
319
+ // Resume session if we have tool results to continue from
320
+ if (resumeSessionId) {
321
+ sdkOptions.resume = resumeSessionId;
322
+ }
323
+ // Set system prompt - use provided or empty string to avoid default Claude Code prompt
324
+ sdkOptions.systemPrompt = context.systemPrompt
325
+ ? sanitizeSurrogates(context.systemPrompt)
326
+ : '';
327
+ // Disable all built-in tools by explicitly disallowing them
328
+ // This prevents their definitions from being loaded into context
329
+ const builtInTools = [
330
+ 'Task', 'TaskOutput', 'Bash', 'Glob', 'Grep', 'Read', 'Edit', 'Write',
331
+ 'NotebookEdit', 'WebFetch', 'TodoWrite', 'WebSearch', 'KillShell',
332
+ 'AskUserQuestion', 'Skill', 'EnterPlanMode', 'ExitPlanMode'
333
+ ];
334
+ sdkOptions.disallowedTools = builtInTools;
335
+ // Convert tools to MCP server
336
+ if (context.tools && context.tools.length > 0) {
337
+ const toolsServer = createToolsServer(context.tools);
338
+ if (toolsServer) {
339
+ sdkOptions.mcpServers = {
340
+ "custom-tools": toolsServer
341
+ };
342
+ // Only allow our custom tools
343
+ sdkOptions.allowedTools = context.tools.map(t => `mcp__custom-tools__${t.name}`);
344
+ }
345
+ }
346
+ else {
347
+ // No tools provided
348
+ sdkOptions.allowedTools = [];
349
+ }
350
+ return sdkOptions;
351
+ }
352
+ /**
353
+ * Builds the prompt string from context messages.
354
+ * For the SDK, we serialize the entire conversation history into the prompt
355
+ * since the SDK's query function only accepts a string prompt.
356
+ */
357
+ function buildPrompt(context) {
358
+ const parts = [];
359
+ for (const message of context.messages) {
360
+ if (message.role === 'user') {
361
+ const textContent = message.content
362
+ .filter(c => c.type === 'text')
363
+ .map(c => c.content)
364
+ .join('\n');
365
+ if (textContent) {
366
+ parts.push(`User: ${textContent}`);
367
+ }
368
+ }
369
+ else if (message.role === 'assistant') {
370
+ // Include assistant response text and tool calls
371
+ const assistantParts = [];
372
+ const assistantMsg = message;
373
+ for (const content of assistantMsg.content) {
374
+ if (content.type === 'response') {
375
+ const text = content.content
376
+ .filter(c => c.type === 'text')
377
+ .map(c => c.content)
378
+ .join('\n');
379
+ if (text)
380
+ assistantParts.push(text);
381
+ }
382
+ else if (content.type === 'toolCall') {
383
+ assistantParts.push(`[Tool Call: ${content.name} with args ${JSON.stringify(content.arguments)}]`);
384
+ }
385
+ }
386
+ if (assistantParts.length > 0) {
387
+ parts.push(`Assistant: ${assistantParts.join('\n')}`);
388
+ }
389
+ }
390
+ else if (message.role === 'toolResult') {
391
+ const toolResult = message;
392
+ const resultText = toolResult.content
393
+ .filter(c => c.type === 'text')
394
+ .map(c => c.content)
395
+ .join('\n');
396
+ const status = toolResult.isError ? 'Error' : 'Result';
397
+ parts.push(`Tool ${status} (${toolResult.toolName}): ${resultText}`);
398
+ }
399
+ }
400
+ return sanitizeSurrogates(parts.join('\n\n'));
401
+ }
402
+ //# sourceMappingURL=stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../../src/providers/anthropic-agents-sdk/stream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { Options } from "@anthropic-ai/claude-agent-sdk";
2
+ type SdkOptions = Omit<Options, 'systemPrompt' | 'mcpServers' | 'tools' | 'allowedTools' | 'disallowedTools' | 'cwd' | 'resume'>;
3
+ type Props = {
4
+ signal?: AbortSignal;
5
+ };
6
+ export type AnthropicAgentsSdkProviderOptions = SdkOptions & Props;
7
+ /**
8
+ * Metadata stored in assistant messages to enable session resumption.
9
+ * This allows multi-turn tool execution by tracking SDK session state.
10
+ */
11
+ export interface SdkSessionMetadata {
12
+ /** The SDK session ID for resumption */
13
+ sessionId: string;
14
+ /** UUID of the assistant message in the SDK session */
15
+ assistantUuid: string;
16
+ /** Mapping of tool call IDs to their SDK tool_use IDs */
17
+ toolUseMapping: Record<string, string>;
18
+ }
19
+ /** Fixed directory for SDK sessions - ensures predictable session file location */
20
+ export declare const SDK_SESSION_DIR = "/tmp/anthropic-sdk-sessions";
21
+ export {};
22
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/anthropic-agents-sdk/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAE9D,KAAK,UAAU,GAAG,IAAI,CAAC,OAAO,EAC3B,cAAc,GACd,YAAY,GACZ,OAAO,GACP,cAAc,GACd,iBAAiB,GACjB,KAAK,GACL,QAAQ,CACV,CAAC;AAEF,KAAK,KAAK,GAAG;IACZ,MAAM,CAAC,EAAE,WAAW,CAAC;CACrB,CAAA;AAED,MAAM,MAAM,iCAAiC,GAAG,UAAU,GAAG,KAAK,CAAC;AAEnE;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAClC,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,aAAa,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAED,mFAAmF;AACnF,eAAO,MAAM,eAAe,gCAAgC,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Fixed directory for SDK sessions - ensures predictable session file location */
2
+ export const SDK_SESSION_DIR = '/tmp/anthropic-sdk-sessions';
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/providers/anthropic-agents-sdk/types.ts"],"names":[],"mappings":"AA+BA,mFAAmF;AACnF,MAAM,CAAC,MAAM,eAAe,GAAG,6BAA6B,CAAC"}
@@ -0,0 +1,39 @@
1
+ import type { McpSdkServerConfigWithInstance, SDKResultMessage, NonNullableUsage } from "@anthropic-ai/claude-agent-sdk";
2
+ import type { BetaMessage } from "@anthropic-ai/sdk/resources/beta/messages/messages.js";
3
+ import { AssistantResponse, Model, StopReason, Tool, Usage } from "../../types.js";
4
+ /**
5
+ * Creates an MCP server with tools converted from our Tool[] format.
6
+ * The SDK uses MCP protocol for custom tools.
7
+ */
8
+ export declare function createToolsServer(tools: Tool[]): McpSdkServerConfigWithInstance | undefined;
9
+ /**
10
+ * Strips the MCP prefix from tool names.
11
+ * SDK returns tool names like "mcp__custom-tools__calculate",
12
+ * but the Conversation class expects "calculate".
13
+ */
14
+ export declare function stripMcpToolPrefix(name: string): string;
15
+ /**
16
+ * Converts a BetaMessage to our AssistantResponse format.
17
+ */
18
+ export declare function getResponseAssistantResponse(message: BetaMessage): AssistantResponse;
19
+ /**
20
+ * Converts SDK usage to our Usage format.
21
+ */
22
+ export declare function getResponseUsage(sdkUsage: NonNullableUsage, totalCostUsd: number, model: Model<'anthropic-agents-sdk'>): Usage;
23
+ /**
24
+ * Maps SDK stop reason to our StopReason type.
25
+ */
26
+ export declare function mapStopReason(stopReason: string | null): StopReason;
27
+ /**
28
+ * Maps SDK result subtype to our StopReason type.
29
+ */
30
+ export declare function mapResultSubtypeToStopReason(subtype: SDKResultMessage['subtype']): StopReason;
31
+ /**
32
+ * Creates a mock BetaMessage for error cases.
33
+ */
34
+ export declare function getMockBetaMessage(): BetaMessage;
35
+ /**
36
+ * Creates empty usage for error cases.
37
+ */
38
+ export declare function getEmptyUsage(): Usage;
39
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/providers/anthropic-agents-sdk/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,8BAA8B,EAC9B,gBAAgB,EAChB,gBAAgB,EAChB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uDAAuD,CAAC;AAEzF,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEnF;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,8BAA8B,GAAG,SAAS,CA+B3F;AA+ED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMvD;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,WAAW,GAAG,iBAAiB,CAkCpF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC/B,QAAQ,EAAE,gBAAgB,EAC1B,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,KAAK,CAAC,sBAAsB,CAAC,GAClC,KAAK,CA2BP;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,UAAU,CAanE;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,GAAG,UAAU,CAe7F;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,WAAW,CAgBhD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,KAAK,CASrC"}