@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.
- package/dist/debug-conversation.d.ts +2 -0
- package/dist/debug-conversation.d.ts.map +1 -0
- package/dist/debug-conversation.js +98 -0
- package/dist/debug-conversation.js.map +1 -0
- package/dist/debug-minimal-test.d.ts +2 -0
- package/dist/debug-minimal-test.d.ts.map +1 -0
- package/dist/debug-minimal-test.js +47 -0
- package/dist/debug-minimal-test.js.map +1 -0
- package/dist/debug-sdk-tool.d.ts +2 -0
- package/dist/debug-sdk-tool.d.ts.map +1 -0
- package/dist/debug-sdk-tool.js +99 -0
- package/dist/debug-sdk-tool.js.map +1 -0
- package/dist/debug-sdk.d.ts +2 -0
- package/dist/debug-sdk.d.ts.map +1 -0
- package/dist/debug-sdk.js +59 -0
- package/dist/debug-sdk.js.map +1 -0
- package/dist/debug-session-flow.d.ts +2 -0
- package/dist/debug-session-flow.d.ts.map +1 -0
- package/dist/debug-session-flow.js +134 -0
- package/dist/debug-session-flow.js.map +1 -0
- package/dist/debug-session-hack.d.ts +2 -0
- package/dist/debug-session-hack.d.ts.map +1 -0
- package/dist/debug-session-hack.js +143 -0
- package/dist/debug-session-hack.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/llm.d.ts.map +1 -1
- package/dist/llm.js +19 -1
- package/dist/llm.js.map +1 -1
- package/dist/models.generated.d.ts +72 -0
- package/dist/models.generated.d.ts.map +1 -1
- package/dist/models.generated.js +72 -0
- package/dist/models.generated.js.map +1 -1
- package/dist/providers/anthropic-agents-sdk/complete.d.ts +3 -0
- package/dist/providers/anthropic-agents-sdk/complete.d.ts.map +1 -0
- package/dist/providers/anthropic-agents-sdk/complete.js +246 -0
- package/dist/providers/anthropic-agents-sdk/complete.js.map +1 -0
- package/dist/providers/anthropic-agents-sdk/index.d.ts +4 -0
- package/dist/providers/anthropic-agents-sdk/index.d.ts.map +1 -0
- package/dist/providers/anthropic-agents-sdk/index.js +4 -0
- package/dist/providers/anthropic-agents-sdk/index.js.map +1 -0
- package/dist/providers/anthropic-agents-sdk/session.d.ts +37 -0
- package/dist/providers/anthropic-agents-sdk/session.d.ts.map +1 -0
- package/dist/providers/anthropic-agents-sdk/session.js +188 -0
- package/dist/providers/anthropic-agents-sdk/session.js.map +1 -0
- package/dist/providers/anthropic-agents-sdk/stream.d.ts +3 -0
- package/dist/providers/anthropic-agents-sdk/stream.d.ts.map +1 -0
- package/dist/providers/anthropic-agents-sdk/stream.js +402 -0
- package/dist/providers/anthropic-agents-sdk/stream.js.map +1 -0
- package/dist/providers/anthropic-agents-sdk/types.d.ts +22 -0
- package/dist/providers/anthropic-agents-sdk/types.d.ts.map +1 -0
- package/dist/providers/anthropic-agents-sdk/types.js +3 -0
- package/dist/providers/anthropic-agents-sdk/types.js.map +1 -0
- package/dist/providers/anthropic-agents-sdk/utils.d.ts +39 -0
- package/dist/providers/anthropic-agents-sdk/utils.d.ts.map +1 -0
- package/dist/providers/anthropic-agents-sdk/utils.js +251 -0
- package/dist/providers/anthropic-agents-sdk/utils.js.map +1 -0
- package/dist/providers/cerebras/complete.d.ts +3 -0
- package/dist/providers/cerebras/complete.d.ts.map +1 -0
- package/dist/providers/cerebras/complete.js +58 -0
- package/dist/providers/cerebras/complete.js.map +1 -0
- package/dist/providers/cerebras/index.d.ts +5 -0
- package/dist/providers/cerebras/index.d.ts.map +1 -0
- package/dist/providers/cerebras/index.js +4 -0
- package/dist/providers/cerebras/index.js.map +1 -0
- package/dist/providers/cerebras/stream.d.ts +3 -0
- package/dist/providers/cerebras/stream.d.ts.map +1 -0
- package/dist/providers/cerebras/stream.js +321 -0
- package/dist/providers/cerebras/stream.js.map +1 -0
- package/dist/providers/cerebras/types.d.ts +14 -0
- package/dist/providers/cerebras/types.d.ts.map +1 -0
- package/dist/providers/cerebras/types.js +2 -0
- package/dist/providers/cerebras/types.js.map +1 -0
- package/dist/providers/cerebras/utils.d.ts +19 -0
- package/dist/providers/cerebras/utils.d.ts.map +1 -0
- package/dist/providers/cerebras/utils.js +274 -0
- package/dist/providers/cerebras/utils.js.map +1 -0
- package/dist/providers/google/utils.d.ts.map +1 -1
- package/dist/providers/google/utils.js +2 -0
- package/dist/providers/google/utils.js.map +1 -1
- package/dist/providers/google-interactions/complete.d.ts +3 -0
- package/dist/providers/google-interactions/complete.d.ts.map +1 -0
- package/dist/providers/google-interactions/complete.js +63 -0
- package/dist/providers/google-interactions/complete.js.map +1 -0
- package/dist/providers/google-interactions/index.d.ts +5 -0
- package/dist/providers/google-interactions/index.d.ts.map +1 -0
- package/dist/providers/google-interactions/index.js +4 -0
- package/dist/providers/google-interactions/index.js.map +1 -0
- package/dist/providers/google-interactions/poll.d.ts +59 -0
- package/dist/providers/google-interactions/poll.d.ts.map +1 -0
- package/dist/providers/google-interactions/poll.js +161 -0
- package/dist/providers/google-interactions/poll.js.map +1 -0
- package/dist/providers/google-interactions/stream.d.ts +3 -0
- package/dist/providers/google-interactions/stream.d.ts.map +1 -0
- package/dist/providers/google-interactions/stream.js +242 -0
- package/dist/providers/google-interactions/stream.js.map +1 -0
- package/dist/providers/google-interactions/types.d.ts +10 -0
- package/dist/providers/google-interactions/types.d.ts.map +1 -0
- package/dist/providers/google-interactions/types.js +2 -0
- package/dist/providers/google-interactions/types.js.map +1 -0
- package/dist/providers/google-interactions/utils.d.ts +61 -0
- package/dist/providers/google-interactions/utils.d.ts.map +1 -0
- package/dist/providers/google-interactions/utils.js +252 -0
- package/dist/providers/google-interactions/utils.js.map +1 -0
- package/dist/providers/zai/complete.d.ts +3 -0
- package/dist/providers/zai/complete.d.ts.map +1 -0
- package/dist/providers/zai/complete.js +58 -0
- package/dist/providers/zai/complete.js.map +1 -0
- package/dist/providers/zai/index.d.ts +5 -0
- package/dist/providers/zai/index.d.ts.map +1 -0
- package/dist/providers/zai/index.js +4 -0
- package/dist/providers/zai/index.js.map +1 -0
- package/dist/providers/zai/stream.d.ts +3 -0
- package/dist/providers/zai/stream.d.ts.map +1 -0
- package/dist/providers/zai/stream.js +321 -0
- package/dist/providers/zai/stream.js.map +1 -0
- package/dist/providers/zai/types.d.ts +13 -0
- package/dist/providers/zai/types.d.ts.map +1 -0
- package/dist/providers/zai/types.js +2 -0
- package/dist/providers/zai/types.js.map +1 -0
- package/dist/providers/zai/utils.d.ts +19 -0
- package/dist/providers/zai/utils.d.ts.map +1 -0
- package/dist/providers/zai/utils.js +253 -0
- package/dist/providers/zai/utils.js.map +1 -0
- package/dist/test-sdk-direct.d.ts +2 -0
- package/dist/test-sdk-direct.d.ts.map +1 -0
- package/dist/test-sdk-direct.js +41 -0
- package/dist/test-sdk-direct.js.map +1 -0
- package/dist/test.d.ts +2 -0
- package/dist/test.d.ts.map +1 -0
- package/dist/test.js +213 -0
- package/dist/test.js.map +1 -0
- package/dist/types.d.ts +7 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/oauth/google-antigravity.d.ts +25 -0
- package/dist/utils/oauth/google-antigravity.d.ts.map +1 -0
- package/dist/utils/oauth/google-antigravity.js +337 -0
- package/dist/utils/oauth/google-antigravity.js.map +1 -0
- package/dist/utils/oauth/pkce.d.ts +13 -0
- package/dist/utils/oauth/pkce.d.ts.map +1 -0
- package/dist/utils/oauth/pkce.js +31 -0
- package/dist/utils/oauth/pkce.js.map +1 -0
- 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 @@
|
|
|
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"}
|