@ank1015/providers 0.0.35 → 0.0.37

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 (130) hide show
  1. package/README.md +35 -19
  2. package/dist/agent/runner.d.ts +1 -1
  3. package/dist/agent/runner.d.ts.map +1 -1
  4. package/dist/agent/runner.js +9 -5
  5. package/dist/agent/runner.js.map +1 -1
  6. package/dist/agent/types.d.ts +9 -1
  7. package/dist/agent/types.d.ts.map +1 -1
  8. package/dist/debug-conversation.d.ts +2 -0
  9. package/dist/debug-conversation.d.ts.map +1 -0
  10. package/dist/debug-conversation.js +98 -0
  11. package/dist/debug-conversation.js.map +1 -0
  12. package/dist/debug-minimal-test.d.ts +2 -0
  13. package/dist/debug-minimal-test.d.ts.map +1 -0
  14. package/dist/debug-minimal-test.js +47 -0
  15. package/dist/debug-minimal-test.js.map +1 -0
  16. package/dist/debug-sdk-tool.d.ts +2 -0
  17. package/dist/debug-sdk-tool.d.ts.map +1 -0
  18. package/dist/debug-sdk-tool.js +99 -0
  19. package/dist/debug-sdk-tool.js.map +1 -0
  20. package/dist/debug-sdk.d.ts +2 -0
  21. package/dist/debug-sdk.d.ts.map +1 -0
  22. package/dist/debug-sdk.js +59 -0
  23. package/dist/debug-sdk.js.map +1 -0
  24. package/dist/debug-session-flow.d.ts +2 -0
  25. package/dist/debug-session-flow.d.ts.map +1 -0
  26. package/dist/debug-session-flow.js +134 -0
  27. package/dist/debug-session-flow.js.map +1 -0
  28. package/dist/debug-session-hack.d.ts +2 -0
  29. package/dist/debug-session-hack.d.ts.map +1 -0
  30. package/dist/debug-session-hack.js +143 -0
  31. package/dist/debug-session-hack.js.map +1 -0
  32. package/dist/llm.d.ts.map +1 -1
  33. package/dist/llm.js +10 -1
  34. package/dist/llm.js.map +1 -1
  35. package/dist/models.generated.d.ts +19 -0
  36. package/dist/models.generated.d.ts.map +1 -1
  37. package/dist/models.generated.js +19 -0
  38. package/dist/models.generated.js.map +1 -1
  39. package/dist/providers/anthropic-agents-sdk/complete.d.ts +3 -0
  40. package/dist/providers/anthropic-agents-sdk/complete.d.ts.map +1 -0
  41. package/dist/providers/anthropic-agents-sdk/complete.js +246 -0
  42. package/dist/providers/anthropic-agents-sdk/complete.js.map +1 -0
  43. package/dist/providers/anthropic-agents-sdk/index.d.ts +4 -0
  44. package/dist/providers/anthropic-agents-sdk/index.d.ts.map +1 -0
  45. package/dist/providers/anthropic-agents-sdk/index.js +4 -0
  46. package/dist/providers/anthropic-agents-sdk/index.js.map +1 -0
  47. package/dist/providers/anthropic-agents-sdk/session.d.ts +37 -0
  48. package/dist/providers/anthropic-agents-sdk/session.d.ts.map +1 -0
  49. package/dist/providers/anthropic-agents-sdk/session.js +188 -0
  50. package/dist/providers/anthropic-agents-sdk/session.js.map +1 -0
  51. package/dist/providers/anthropic-agents-sdk/stream.d.ts +3 -0
  52. package/dist/providers/anthropic-agents-sdk/stream.d.ts.map +1 -0
  53. package/dist/providers/anthropic-agents-sdk/stream.js +402 -0
  54. package/dist/providers/anthropic-agents-sdk/stream.js.map +1 -0
  55. package/dist/providers/anthropic-agents-sdk/types.d.ts +22 -0
  56. package/dist/providers/anthropic-agents-sdk/types.d.ts.map +1 -0
  57. package/dist/providers/anthropic-agents-sdk/types.js +3 -0
  58. package/dist/providers/anthropic-agents-sdk/types.js.map +1 -0
  59. package/dist/providers/anthropic-agents-sdk/utils.d.ts +39 -0
  60. package/dist/providers/anthropic-agents-sdk/utils.d.ts.map +1 -0
  61. package/dist/providers/anthropic-agents-sdk/utils.js +251 -0
  62. package/dist/providers/anthropic-agents-sdk/utils.js.map +1 -0
  63. package/dist/providers/google/utils.d.ts.map +1 -1
  64. package/dist/providers/google/utils.js +2 -0
  65. package/dist/providers/google/utils.js.map +1 -1
  66. package/dist/providers/google-interactions/complete.d.ts +3 -0
  67. package/dist/providers/google-interactions/complete.d.ts.map +1 -0
  68. package/dist/providers/google-interactions/complete.js +63 -0
  69. package/dist/providers/google-interactions/complete.js.map +1 -0
  70. package/dist/providers/google-interactions/index.d.ts +5 -0
  71. package/dist/providers/google-interactions/index.d.ts.map +1 -0
  72. package/dist/providers/google-interactions/index.js +4 -0
  73. package/dist/providers/google-interactions/index.js.map +1 -0
  74. package/dist/providers/google-interactions/poll.d.ts +59 -0
  75. package/dist/providers/google-interactions/poll.d.ts.map +1 -0
  76. package/dist/providers/google-interactions/poll.js +161 -0
  77. package/dist/providers/google-interactions/poll.js.map +1 -0
  78. package/dist/providers/google-interactions/stream.d.ts +3 -0
  79. package/dist/providers/google-interactions/stream.d.ts.map +1 -0
  80. package/dist/providers/google-interactions/stream.js +242 -0
  81. package/dist/providers/google-interactions/stream.js.map +1 -0
  82. package/dist/providers/google-interactions/types.d.ts +10 -0
  83. package/dist/providers/google-interactions/types.d.ts.map +1 -0
  84. package/dist/providers/google-interactions/types.js +2 -0
  85. package/dist/providers/google-interactions/types.js.map +1 -0
  86. package/dist/providers/google-interactions/utils.d.ts +61 -0
  87. package/dist/providers/google-interactions/utils.d.ts.map +1 -0
  88. package/dist/providers/google-interactions/utils.js +252 -0
  89. package/dist/providers/google-interactions/utils.js.map +1 -0
  90. package/dist/providers/zai/complete.d.ts +3 -0
  91. package/dist/providers/zai/complete.d.ts.map +1 -0
  92. package/dist/providers/zai/complete.js +58 -0
  93. package/dist/providers/zai/complete.js.map +1 -0
  94. package/dist/providers/zai/index.d.ts +5 -0
  95. package/dist/providers/zai/index.d.ts.map +1 -0
  96. package/dist/providers/zai/index.js +4 -0
  97. package/dist/providers/zai/index.js.map +1 -0
  98. package/dist/providers/zai/stream.d.ts +3 -0
  99. package/dist/providers/zai/stream.d.ts.map +1 -0
  100. package/dist/providers/zai/stream.js +321 -0
  101. package/dist/providers/zai/stream.js.map +1 -0
  102. package/dist/providers/zai/types.d.ts +13 -0
  103. package/dist/providers/zai/types.d.ts.map +1 -0
  104. package/dist/providers/zai/types.js +2 -0
  105. package/dist/providers/zai/types.js.map +1 -0
  106. package/dist/providers/zai/utils.d.ts +19 -0
  107. package/dist/providers/zai/utils.d.ts.map +1 -0
  108. package/dist/providers/zai/utils.js +253 -0
  109. package/dist/providers/zai/utils.js.map +1 -0
  110. package/dist/test-sdk-direct.d.ts +2 -0
  111. package/dist/test-sdk-direct.d.ts.map +1 -0
  112. package/dist/test-sdk-direct.js +41 -0
  113. package/dist/test-sdk-direct.js.map +1 -0
  114. package/dist/test.d.ts +2 -0
  115. package/dist/test.d.ts.map +1 -0
  116. package/dist/test.js +213 -0
  117. package/dist/test.js.map +1 -0
  118. package/dist/types.d.ts +4 -1
  119. package/dist/types.d.ts.map +1 -1
  120. package/dist/types.js +1 -1
  121. package/dist/types.js.map +1 -1
  122. package/dist/utils/oauth/google-antigravity.d.ts +25 -0
  123. package/dist/utils/oauth/google-antigravity.d.ts.map +1 -0
  124. package/dist/utils/oauth/google-antigravity.js +337 -0
  125. package/dist/utils/oauth/google-antigravity.js.map +1 -0
  126. package/dist/utils/oauth/pkce.d.ts +13 -0
  127. package/dist/utils/oauth/pkce.d.ts.map +1 -0
  128. package/dist/utils/oauth/pkce.js +31 -0
  129. package/dist/utils/oauth/pkce.js.map +1 -0
  130. package/package.json +1 -1
@@ -0,0 +1,246 @@
1
+ import { query } from "@anthropic-ai/claude-agent-sdk";
2
+ import { SDK_SESSION_DIR } from "./types.js";
3
+ import { createToolsServer, getResponseAssistantResponse, getResponseUsage, mapStopReason, mapResultSubtypeToStopReason, getMockBetaMessage, getEmptyUsage, stripMcpToolPrefix } from "./utils.js";
4
+ import { sanitizeSurrogates } from "../../utils/sanitize-unicode.js";
5
+ import { findSessionToResume, injectToolResultsIntoSession, ensureSessionDir } from "./session.js";
6
+ export const completeAnthropicAgentsSdk = async (model, context, options, id) => {
7
+ const startTimestamp = Date.now();
8
+ // Session tracking for multi-turn tool execution
9
+ let sessionId;
10
+ let assistantUuid;
11
+ const toolUseMapping = {};
12
+ try {
13
+ // Ensure session directory exists
14
+ ensureSessionDir();
15
+ // Check if we need to resume a session (tool results in context)
16
+ const sessionToResume = findSessionToResume(context);
17
+ let resumeSessionId;
18
+ if (sessionToResume) {
19
+ // Inject tool results into the session file
20
+ injectToolResultsIntoSession(sessionToResume.metadata, sessionToResume.toolResults);
21
+ resumeSessionId = sessionToResume.metadata.sessionId;
22
+ }
23
+ // Build SDK options (with resume if needed)
24
+ const sdkOptions = buildSdkOptions(model, context, options, resumeSessionId);
25
+ // Build the prompt
26
+ const prompt = resumeSessionId
27
+ ? "Continue with the tool result." // Non-empty prompt for resume
28
+ : buildPrompt(context);
29
+ // Create abort controller from signal if provided
30
+ if (options?.signal) {
31
+ sdkOptions.abortController = new AbortController();
32
+ options.signal.addEventListener('abort', () => {
33
+ sdkOptions.abortController?.abort();
34
+ });
35
+ }
36
+ // Run the query
37
+ const queryResult = query({ prompt, options: sdkOptions });
38
+ // Collect all messages
39
+ let lastAssistantMessage;
40
+ let resultMessage;
41
+ for await (const message of queryResult) {
42
+ // Capture session ID from system init message
43
+ if (message.type === 'system' && message.subtype === 'init') {
44
+ sessionId = message.session_id;
45
+ }
46
+ if (message.type === 'assistant') {
47
+ lastAssistantMessage = message;
48
+ // Capture assistant UUID for session management
49
+ assistantUuid = message.uuid;
50
+ // Build toolUseMapping from tool_use blocks
51
+ const assistantMsg = message;
52
+ for (const block of assistantMsg.message?.content || []) {
53
+ if (block.type === 'tool_use') {
54
+ toolUseMapping[block.id] = block.id;
55
+ }
56
+ }
57
+ }
58
+ else if (message.type === 'result') {
59
+ resultMessage = message;
60
+ }
61
+ }
62
+ // If we have a result, use it to build the response
63
+ if (resultMessage) {
64
+ const betaMessage = lastAssistantMessage?.message ?? getMockBetaMessage();
65
+ const content = getResponseAssistantResponse(betaMessage);
66
+ // Strip MCP tool prefix from tool call names
67
+ for (const item of content) {
68
+ if (item.type === 'toolCall') {
69
+ item.name = stripMcpToolPrefix(item.name);
70
+ }
71
+ }
72
+ const usage = getResponseUsage(resultMessage.usage, resultMessage.total_cost_usd, model);
73
+ const stopReason = resultMessage.subtype === 'success'
74
+ ? mapStopReason(betaMessage.stop_reason)
75
+ : mapResultSubtypeToStopReason(resultMessage.subtype);
76
+ const response = {
77
+ role: "assistant",
78
+ message: betaMessage,
79
+ id,
80
+ api: model.api,
81
+ model,
82
+ timestamp: Date.now(),
83
+ duration: Date.now() - startTimestamp,
84
+ stopReason,
85
+ content,
86
+ usage,
87
+ // Include session metadata for multi-turn tool execution
88
+ sdkMetadata: sessionId && assistantUuid ? {
89
+ sessionId,
90
+ assistantUuid,
91
+ toolUseMapping
92
+ } : undefined
93
+ };
94
+ // Add error message if result indicates error
95
+ if (resultMessage.subtype !== 'success' && 'errors' in resultMessage) {
96
+ response.errorMessage = resultMessage.errors.join('; ');
97
+ }
98
+ return response;
99
+ }
100
+ // Fallback if no result message (shouldn't happen normally)
101
+ const betaMessage = lastAssistantMessage?.message ?? getMockBetaMessage();
102
+ const content = getResponseAssistantResponse(betaMessage);
103
+ // Strip MCP tool prefix from tool call names
104
+ for (const item of content) {
105
+ if (item.type === 'toolCall') {
106
+ item.name = stripMcpToolPrefix(item.name);
107
+ }
108
+ }
109
+ return {
110
+ role: "assistant",
111
+ message: betaMessage,
112
+ id,
113
+ api: model.api,
114
+ model,
115
+ timestamp: Date.now(),
116
+ duration: Date.now() - startTimestamp,
117
+ stopReason: mapStopReason(betaMessage.stop_reason),
118
+ content,
119
+ usage: getEmptyUsage(),
120
+ // Include session metadata for multi-turn tool execution
121
+ sdkMetadata: sessionId && assistantUuid ? {
122
+ sessionId,
123
+ assistantUuid,
124
+ toolUseMapping
125
+ } : undefined
126
+ };
127
+ }
128
+ catch (error) {
129
+ const errorMessage = error instanceof Error ? error.message : String(error);
130
+ const isAborted = options?.signal?.aborted;
131
+ const stopReason = isAborted ? "aborted" : "error";
132
+ return {
133
+ role: "assistant",
134
+ message: getMockBetaMessage(),
135
+ id,
136
+ api: model.api,
137
+ model,
138
+ errorMessage,
139
+ timestamp: Date.now(),
140
+ duration: Date.now() - startTimestamp,
141
+ stopReason,
142
+ content: [],
143
+ usage: getEmptyUsage()
144
+ };
145
+ }
146
+ };
147
+ /**
148
+ * Builds SDK options from our context and provider options.
149
+ */
150
+ function buildSdkOptions(model, context, options, resumeSessionId) {
151
+ const { signal, ...restOptions } = options;
152
+ const sdkOptions = {
153
+ ...restOptions,
154
+ model: model.id,
155
+ // Always use single turn - Conversation class handles multi-turn
156
+ maxTurns: 1,
157
+ // Bypass permissions for programmatic use
158
+ permissionMode: options.permissionMode ?? 'bypassPermissions',
159
+ allowDangerouslySkipPermissions: options.allowDangerouslySkipPermissions ?? true,
160
+ // Use fixed session directory
161
+ cwd: SDK_SESSION_DIR,
162
+ };
163
+ // Resume session if we have tool results to continue from
164
+ if (resumeSessionId) {
165
+ sdkOptions.resume = resumeSessionId;
166
+ }
167
+ // Set system prompt - use provided or empty string to avoid default Claude Code prompt
168
+ sdkOptions.systemPrompt = context.systemPrompt
169
+ ? sanitizeSurrogates(context.systemPrompt)
170
+ : '';
171
+ // Disable all built-in tools by explicitly disallowing them
172
+ // This prevents their definitions from being loaded into context
173
+ const builtInTools = [
174
+ 'Task', 'TaskOutput', 'Bash', 'Glob', 'Grep', 'Read', 'Edit', 'Write',
175
+ 'NotebookEdit', 'WebFetch', 'TodoWrite', 'WebSearch', 'KillShell',
176
+ 'AskUserQuestion', 'Skill', 'EnterPlanMode', 'ExitPlanMode'
177
+ ];
178
+ sdkOptions.disallowedTools = builtInTools;
179
+ // Convert tools to MCP server
180
+ if (context.tools && context.tools.length > 0) {
181
+ const toolsServer = createToolsServer(context.tools);
182
+ if (toolsServer) {
183
+ sdkOptions.mcpServers = {
184
+ "custom-tools": toolsServer
185
+ };
186
+ // Only allow our custom tools
187
+ sdkOptions.allowedTools = context.tools.map(t => `mcp__custom-tools__${t.name}`);
188
+ }
189
+ }
190
+ else {
191
+ // No tools provided
192
+ sdkOptions.allowedTools = [];
193
+ }
194
+ return sdkOptions;
195
+ }
196
+ /**
197
+ * Builds the prompt string from context messages.
198
+ * For the SDK, we serialize the entire conversation history into the prompt
199
+ * since the SDK's query function only accepts a string prompt.
200
+ */
201
+ function buildPrompt(context) {
202
+ const parts = [];
203
+ for (const message of context.messages) {
204
+ if (message.role === 'user') {
205
+ const textContent = message.content
206
+ .filter(c => c.type === 'text')
207
+ .map(c => c.content)
208
+ .join('\n');
209
+ if (textContent) {
210
+ parts.push(`User: ${textContent}`);
211
+ }
212
+ }
213
+ else if (message.role === 'assistant') {
214
+ // Include assistant response text and tool calls
215
+ const assistantParts = [];
216
+ const assistantMsg = message;
217
+ for (const content of assistantMsg.content) {
218
+ if (content.type === 'response') {
219
+ const text = content.content
220
+ .filter(c => c.type === 'text')
221
+ .map(c => c.content)
222
+ .join('\n');
223
+ if (text)
224
+ assistantParts.push(text);
225
+ }
226
+ else if (content.type === 'toolCall') {
227
+ assistantParts.push(`[Tool Call: ${content.name} with args ${JSON.stringify(content.arguments)}]`);
228
+ }
229
+ }
230
+ if (assistantParts.length > 0) {
231
+ parts.push(`Assistant: ${assistantParts.join('\n')}`);
232
+ }
233
+ }
234
+ else if (message.role === 'toolResult') {
235
+ const toolResult = message;
236
+ const resultText = toolResult.content
237
+ .filter(c => c.type === 'text')
238
+ .map(c => c.content)
239
+ .join('\n');
240
+ const status = toolResult.isError ? 'Error' : 'Result';
241
+ parts.push(`Tool ${status} (${toolResult.toolName}): ${resultText}`);
242
+ }
243
+ }
244
+ return sanitizeSurrogates(parts.join('\n\n'));
245
+ }
246
+ //# sourceMappingURL=complete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"complete.js","sourceRoot":"","sources":["../../../src/providers/anthropic-agents-sdk/complete.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from './complete.js';
2
+ export * from './stream.js';
3
+ export * from './types.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/anthropic-agents-sdk/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './complete.js';
2
+ export * from './stream.js';
3
+ export * from './types.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/anthropic-agents-sdk/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { SdkSessionMetadata } from "./types.js";
2
+ import { Context, ToolResultMessage } from "../../types.js";
3
+ /**
4
+ * Gets the SDK's actual session directory path.
5
+ * The SDK stores sessions in ~/.claude/projects/{sanitized-cwd}/
6
+ * where sanitized-cwd replaces / with -
7
+ */
8
+ export declare function getSdkSessionDir(): string;
9
+ /**
10
+ * Ensures the SDK session directory exists.
11
+ */
12
+ export declare function ensureSessionDir(): void;
13
+ /**
14
+ * Gets the JSONL file path for a session (SDK's actual location).
15
+ */
16
+ export declare function getSessionFilePath(sessionId: string): string;
17
+ /**
18
+ * Appends a tool result to the session JSONL file.
19
+ * This injects the tool result into the SDK's session history so it can be resumed.
20
+ */
21
+ export declare function appendToolResultToSession(sessionId: string, toolUseId: string, result: string, parentUuid: string, isError?: boolean): string;
22
+ /**
23
+ * Looks for SDK session metadata in the context messages.
24
+ * Returns the metadata from the most recent assistant message that has tool calls
25
+ * and corresponding tool results that need to be injected.
26
+ */
27
+ export declare function findSessionToResume(context: Context): {
28
+ metadata: SdkSessionMetadata;
29
+ toolResults: ToolResultMessage[];
30
+ } | null;
31
+ /**
32
+ * Injects tool results into the SDK session file.
33
+ * Maps our tool call IDs to SDK tool_use IDs using the metadata.
34
+ * Replaces placeholder content in-place to preserve parent chain.
35
+ */
36
+ export declare function injectToolResultsIntoSession(metadata: SdkSessionMetadata, toolResults: ToolResultMessage[]): void;
37
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/providers/anthropic-agents-sdk/session.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmB,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAwB,MAAM,gBAAgB,CAAC;AAElF;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAMzC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAMvC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACxC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,OAAe,GACtB,MAAM,CAiCR;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG;IACtD,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,WAAW,EAAE,iBAAiB,EAAE,CAAC;CACjC,GAAG,IAAI,CA+BP;AAsED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC3C,QAAQ,EAAE,kBAAkB,EAC5B,WAAW,EAAE,iBAAiB,EAAE,GAC9B,IAAI,CA4BN"}
@@ -0,0 +1,188 @@
1
+ import * as fs from "fs";
2
+ import * as path from "path";
3
+ import { randomUUID } from "crypto";
4
+ import { SDK_SESSION_DIR } from "./types.js";
5
+ /**
6
+ * Gets the SDK's actual session directory path.
7
+ * The SDK stores sessions in ~/.claude/projects/{sanitized-cwd}/
8
+ * where sanitized-cwd replaces / with -
9
+ */
10
+ export function getSdkSessionDir() {
11
+ // Resolve the cwd to handle symlinks (e.g., /tmp -> /private/tmp on macOS)
12
+ const resolvedCwd = fs.realpathSync(SDK_SESSION_DIR);
13
+ const sanitizedCwd = resolvedCwd.replace(/\//g, '-');
14
+ const homeDir = process.env.HOME || '~';
15
+ return path.join(homeDir, '.claude', 'projects', sanitizedCwd);
16
+ }
17
+ /**
18
+ * Ensures the SDK session directory exists.
19
+ */
20
+ export function ensureSessionDir() {
21
+ // Ensure our working directory exists (for SDK's cwd option)
22
+ if (!fs.existsSync(SDK_SESSION_DIR)) {
23
+ fs.mkdirSync(SDK_SESSION_DIR, { recursive: true });
24
+ }
25
+ // Note: SDK creates its own session dir, we don't need to create it
26
+ }
27
+ /**
28
+ * Gets the JSONL file path for a session (SDK's actual location).
29
+ */
30
+ export function getSessionFilePath(sessionId) {
31
+ return path.join(getSdkSessionDir(), `${sessionId}.jsonl`);
32
+ }
33
+ /**
34
+ * Appends a tool result to the session JSONL file.
35
+ * This injects the tool result into the SDK's session history so it can be resumed.
36
+ */
37
+ export function appendToolResultToSession(sessionId, toolUseId, result, parentUuid, isError = false) {
38
+ ensureSessionDir();
39
+ const jsonlPath = getSessionFilePath(sessionId);
40
+ // Use the resolved cwd to match what the SDK uses
41
+ const resolvedCwd = fs.realpathSync(SDK_SESSION_DIR);
42
+ const uuid = randomUUID();
43
+ const entry = {
44
+ parentUuid,
45
+ isSidechain: false,
46
+ userType: "external",
47
+ cwd: resolvedCwd,
48
+ sessionId,
49
+ version: "2.1.3",
50
+ type: "user",
51
+ message: {
52
+ role: "user",
53
+ content: [{
54
+ tool_use_id: toolUseId,
55
+ type: "tool_result",
56
+ content: result, // Must be a string, not an array
57
+ is_error: isError
58
+ }]
59
+ },
60
+ uuid,
61
+ timestamp: new Date().toISOString(),
62
+ toolUseResult: result, // Match real session format
63
+ sourceToolAssistantUUID: parentUuid
64
+ };
65
+ fs.appendFileSync(jsonlPath, JSON.stringify(entry) + '\n');
66
+ return uuid;
67
+ }
68
+ /**
69
+ * Looks for SDK session metadata in the context messages.
70
+ * Returns the metadata from the most recent assistant message that has tool calls
71
+ * and corresponding tool results that need to be injected.
72
+ */
73
+ export function findSessionToResume(context) {
74
+ // Find the last assistant message with sdkMetadata
75
+ const messages = context.messages;
76
+ for (let i = messages.length - 1; i >= 0; i--) {
77
+ const msg = messages[i];
78
+ if (msg.role === 'assistant') {
79
+ const assistantMsg = msg;
80
+ if (assistantMsg.sdkMetadata) {
81
+ // Collect all tool results that come after this assistant message
82
+ const toolResults = [];
83
+ for (let j = i + 1; j < messages.length; j++) {
84
+ if (messages[j].role === 'toolResult') {
85
+ toolResults.push(messages[j]);
86
+ }
87
+ else if (messages[j].role === 'user') {
88
+ // Stop at the next user message - that's a new turn
89
+ break;
90
+ }
91
+ }
92
+ if (toolResults.length > 0) {
93
+ return {
94
+ metadata: assistantMsg.sdkMetadata,
95
+ toolResults
96
+ };
97
+ }
98
+ }
99
+ }
100
+ }
101
+ return null;
102
+ }
103
+ /**
104
+ * Replaces the SDK's placeholder tool result content with actual results in-place.
105
+ * This preserves the parentUuid chain which is critical for SDK to traverse history.
106
+ *
107
+ * We modify entries in-place rather than removing them to avoid breaking the
108
+ * parent chain that the SDK uses to reconstruct conversation history.
109
+ */
110
+ function replaceToolResultsInPlace(sessionId, toolResultMap) {
111
+ const jsonlPath = getSessionFilePath(sessionId);
112
+ if (!fs.existsSync(jsonlPath)) {
113
+ return;
114
+ }
115
+ const content = fs.readFileSync(jsonlPath, 'utf-8');
116
+ const lines = content.trim().split('\n');
117
+ const modifiedLines = [];
118
+ for (const line of lines) {
119
+ try {
120
+ const entry = JSON.parse(line);
121
+ // Replace placeholder tool result content with real result
122
+ if (entry.type === 'user' && entry.message?.content?.[0]?.type === 'tool_result') {
123
+ const toolUseId = entry.message.content[0].tool_use_id;
124
+ const replacement = toolResultMap.get(toolUseId);
125
+ if (replacement) {
126
+ // Update the content in-place - must be a string, not an array
127
+ entry.message.content[0].content = replacement.text;
128
+ entry.message.content[0].is_error = replacement.isError;
129
+ // Also update the toolUseResult field if present
130
+ if (entry.toolUseResult) {
131
+ entry.toolUseResult = replacement.text;
132
+ }
133
+ modifiedLines.push(JSON.stringify(entry));
134
+ continue;
135
+ }
136
+ }
137
+ // Replace "No response requested." synthetic messages with empty text
138
+ // These messages poison the context by telling the model not to respond
139
+ if (entry.type === 'assistant' &&
140
+ entry.message?.content?.[0]?.type === 'text' &&
141
+ entry.message?.content?.[0]?.text === 'No response requested.') {
142
+ // Replace with benign content that doesn't discourage responding
143
+ entry.message.content[0].text = '';
144
+ modifiedLines.push(JSON.stringify(entry));
145
+ continue;
146
+ }
147
+ // Keep all other entries as-is
148
+ modifiedLines.push(line);
149
+ }
150
+ catch {
151
+ // Keep unparseable lines as-is
152
+ modifiedLines.push(line);
153
+ }
154
+ }
155
+ // Write back the modified content
156
+ fs.writeFileSync(jsonlPath, modifiedLines.join('\n') + '\n');
157
+ }
158
+ /**
159
+ * Injects tool results into the SDK session file.
160
+ * Maps our tool call IDs to SDK tool_use IDs using the metadata.
161
+ * Replaces placeholder content in-place to preserve parent chain.
162
+ */
163
+ export function injectToolResultsIntoSession(metadata, toolResults) {
164
+ // Build a map of tool_use_id -> replacement content
165
+ const toolResultMap = new Map();
166
+ for (const toolResult of toolResults) {
167
+ // Map our toolCallId to SDK's tool_use_id
168
+ const sdkToolUseId = metadata.toolUseMapping[toolResult.toolCallId];
169
+ if (!sdkToolUseId) {
170
+ console.warn(`No SDK tool_use_id mapping for toolCallId: ${toolResult.toolCallId}`);
171
+ continue;
172
+ }
173
+ // Get the result text
174
+ const resultText = toolResult.content
175
+ .filter(c => c.type === 'text')
176
+ .map(c => c.content)
177
+ .join('\n');
178
+ toolResultMap.set(sdkToolUseId, {
179
+ text: resultText,
180
+ isError: toolResult.isError
181
+ });
182
+ }
183
+ // Replace placeholder tool results with real results in-place
184
+ if (toolResultMap.size > 0) {
185
+ replaceToolResultsInPlace(metadata.sessionId, toolResultMap);
186
+ }
187
+ }
188
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/providers/anthropic-agents-sdk/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { StreamFunction } from "../../types.js";
2
+ export declare const streamAnthropicAgentsSdk: StreamFunction<'anthropic-agents-sdk'>;
3
+ //# sourceMappingURL=stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../../src/providers/anthropic-agents-sdk/stream.ts"],"names":[],"mappings":"AASA,OAAO,EACN,cAAc,EAUd,MAAM,gBAAgB,CAAC;AAgBxB,eAAO,MAAM,wBAAwB,EAAE,cAAc,CAAC,sBAAsB,CA4T3E,CAAC"}