condukt 0.25.0 → 0.27.0

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 (96) hide show
  1. package/dist/runtimes/claude/bridge-cache.d.ts +58 -0
  2. package/dist/runtimes/claude/bridge-cache.d.ts.map +1 -0
  3. package/dist/runtimes/claude/bridge-cache.js +257 -0
  4. package/dist/runtimes/claude/bridge-cache.js.map +1 -0
  5. package/dist/runtimes/claude/claude-runtime.d.ts +30 -0
  6. package/dist/runtimes/claude/claude-runtime.d.ts.map +1 -0
  7. package/dist/runtimes/claude/claude-runtime.js +88 -0
  8. package/dist/runtimes/claude/claude-runtime.js.map +1 -0
  9. package/dist/runtimes/claude/claude-session.d.ts +154 -0
  10. package/dist/runtimes/claude/claude-session.d.ts.map +1 -0
  11. package/dist/runtimes/claude/claude-session.js +851 -0
  12. package/dist/runtimes/claude/claude-session.js.map +1 -0
  13. package/dist/runtimes/claude/config-mapper.d.ts +69 -0
  14. package/dist/runtimes/claude/config-mapper.d.ts.map +1 -0
  15. package/dist/runtimes/claude/config-mapper.js +458 -0
  16. package/dist/runtimes/claude/config-mapper.js.map +1 -0
  17. package/dist/runtimes/claude/epoch-store.d.ts +28 -0
  18. package/dist/runtimes/claude/epoch-store.d.ts.map +1 -0
  19. package/dist/runtimes/claude/epoch-store.js +199 -0
  20. package/dist/runtimes/claude/epoch-store.js.map +1 -0
  21. package/dist/runtimes/claude/fallback-runtime.d.ts +14 -0
  22. package/dist/runtimes/claude/fallback-runtime.d.ts.map +1 -0
  23. package/dist/runtimes/claude/fallback-runtime.js +64 -0
  24. package/dist/runtimes/claude/fallback-runtime.js.map +1 -0
  25. package/dist/runtimes/claude/index.d.ts +24 -0
  26. package/dist/runtimes/claude/index.d.ts.map +1 -0
  27. package/dist/runtimes/claude/index.js +61 -0
  28. package/dist/runtimes/claude/index.js.map +1 -0
  29. package/dist/runtimes/claude/message-mapper.d.ts +135 -0
  30. package/dist/runtimes/claude/message-mapper.d.ts.map +1 -0
  31. package/dist/runtimes/claude/message-mapper.js +504 -0
  32. package/dist/runtimes/claude/message-mapper.js.map +1 -0
  33. package/dist/runtimes/claude/one-shot.d.ts +48 -0
  34. package/dist/runtimes/claude/one-shot.d.ts.map +1 -0
  35. package/dist/runtimes/claude/one-shot.js +186 -0
  36. package/dist/runtimes/claude/one-shot.js.map +1 -0
  37. package/dist/runtimes/claude/protocol-bridge.d.ts +138 -0
  38. package/dist/runtimes/claude/protocol-bridge.d.ts.map +1 -0
  39. package/dist/runtimes/claude/protocol-bridge.js +1170 -0
  40. package/dist/runtimes/claude/protocol-bridge.js.map +1 -0
  41. package/dist/runtimes/claude/protocol-router.d.ts +113 -0
  42. package/dist/runtimes/claude/protocol-router.d.ts.map +1 -0
  43. package/dist/runtimes/claude/protocol-router.js +514 -0
  44. package/dist/runtimes/claude/protocol-router.js.map +1 -0
  45. package/dist/runtimes/claude/session-epoch.d.ts +156 -0
  46. package/dist/runtimes/claude/session-epoch.d.ts.map +1 -0
  47. package/dist/runtimes/claude/session-epoch.js +365 -0
  48. package/dist/runtimes/claude/session-epoch.js.map +1 -0
  49. package/dist/runtimes/claude/session-recovery.d.ts +78 -0
  50. package/dist/runtimes/claude/session-recovery.d.ts.map +1 -0
  51. package/dist/runtimes/claude/session-recovery.js +259 -0
  52. package/dist/runtimes/claude/session-recovery.js.map +1 -0
  53. package/dist/runtimes/claude/sse.d.ts +16 -0
  54. package/dist/runtimes/claude/sse.d.ts.map +1 -0
  55. package/dist/runtimes/claude/sse.js +46 -0
  56. package/dist/runtimes/claude/sse.js.map +1 -0
  57. package/dist/runtimes/claude/translate-chat.d.ts +106 -0
  58. package/dist/runtimes/claude/translate-chat.d.ts.map +1 -0
  59. package/dist/runtimes/claude/translate-chat.js +857 -0
  60. package/dist/runtimes/claude/translate-chat.js.map +1 -0
  61. package/dist/runtimes/claude/translate-responses.d.ts +76 -0
  62. package/dist/runtimes/claude/translate-responses.d.ts.map +1 -0
  63. package/dist/runtimes/claude/translate-responses.js +625 -0
  64. package/dist/runtimes/claude/translate-responses.js.map +1 -0
  65. package/dist/runtimes/claude/usage-ledger.d.ts +108 -0
  66. package/dist/runtimes/claude/usage-ledger.d.ts.map +1 -0
  67. package/dist/runtimes/claude/usage-ledger.js +189 -0
  68. package/dist/runtimes/claude/usage-ledger.js.map +1 -0
  69. package/dist/runtimes/copilot/copilot-backend.d.ts +8 -0
  70. package/dist/runtimes/copilot/copilot-backend.d.ts.map +1 -1
  71. package/dist/runtimes/copilot/sdk-backend.d.ts.map +1 -1
  72. package/dist/runtimes/copilot/sdk-backend.js +314 -135
  73. package/dist/runtimes/copilot/sdk-backend.js.map +1 -1
  74. package/dist/runtimes/mcp-env.d.ts +24 -0
  75. package/dist/runtimes/mcp-env.d.ts.map +1 -0
  76. package/dist/runtimes/mcp-env.js +81 -0
  77. package/dist/runtimes/mcp-env.js.map +1 -0
  78. package/dist/runtimes/mock/mock-runtime.d.ts +2 -2
  79. package/dist/runtimes/mock/mock-runtime.d.ts.map +1 -1
  80. package/dist/runtimes/mock/mock-runtime.js +38 -1
  81. package/dist/runtimes/mock/mock-runtime.js.map +1 -1
  82. package/dist/src/agent.d.ts.map +1 -1
  83. package/dist/src/agent.js +171 -3
  84. package/dist/src/agent.js.map +1 -1
  85. package/dist/src/index.d.ts +1 -1
  86. package/dist/src/index.d.ts.map +1 -1
  87. package/dist/src/index.js.map +1 -1
  88. package/dist/src/session-recovery-policy.d.ts +19 -0
  89. package/dist/src/session-recovery-policy.d.ts.map +1 -0
  90. package/dist/src/session-recovery-policy.js +43 -0
  91. package/dist/src/session-recovery-policy.js.map +1 -0
  92. package/dist/src/types.d.ts +118 -1
  93. package/dist/src/types.d.ts.map +1 -1
  94. package/dist/src/types.js +11 -1
  95. package/dist/src/types.js.map +1 -1
  96. package/package.json +20 -4
@@ -0,0 +1,625 @@
1
+ "use strict";
2
+ /**
3
+ * Anthropic ⇄ OpenAI Responses translation (reference-proxy parity).
4
+ *
5
+ * Pure functions plus a streaming state machine that consumes Responses
6
+ * SSE event dicts and emits Anthropic SSE frames. Fail-closed semantics:
7
+ * unknown terminal states, hollow completions, and invalid tool arguments
8
+ * raise instead of reading as clean turns.
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.ResponsesStreamTranslator = exports.StreamTranslationError = void 0;
12
+ exports.mapResponsesToolChoice = mapResponsesToolChoice;
13
+ exports.responsesReasoning = responsesReasoning;
14
+ exports.anthropicToResponses = anthropicToResponses;
15
+ exports.responsesToAnthropic = responsesToAnthropic;
16
+ const bridge_cache_1 = require("./bridge-cache");
17
+ const protocol_router_1 = require("./protocol-router");
18
+ const sse_1 = require("./sse");
19
+ const translate_chat_1 = require("./translate-chat");
20
+ const DEFAULT_MAX_OUTPUT_TOKENS = 16384;
21
+ /** Responses events index streams by number; a malformed one falls back to a
22
+ * key that can never be in the accumulator, which callers treat as "no item". */
23
+ function numericIndex(value) {
24
+ return typeof value === 'number' && Number.isFinite(value) ? value : -1;
25
+ }
26
+ /**
27
+ * Map an Anthropic tool_choice to Responses.
28
+ * auto → "auto" (omitted on the wire; every verified family accepts it)
29
+ * none → null sentinel: callers omit the tools array entirely
30
+ * named → only families verified to accept it (gpt/grok), else loud
31
+ * any/required → loud (unverified on every family)
32
+ */
33
+ function mapResponsesToolChoice(choice, model) {
34
+ if (choice === null || choice === undefined || choice === 'auto')
35
+ return 'auto';
36
+ if (typeof choice === 'object') {
37
+ const c = choice;
38
+ const t = c['type'];
39
+ if (t === 'auto')
40
+ return 'auto';
41
+ if (t === 'none')
42
+ return null;
43
+ if (t === 'tool' || t === 'function') {
44
+ const name = String(c['name'] ?? (0, translate_chat_1.asObject)(c['function'])?.['name'] ?? '');
45
+ if (!(0, protocol_router_1.supportsToolChoice)(model, { type: 'function', name })) {
46
+ throw new Error(`model ${model} does not accept a named tool_choice (${JSON.stringify(name)}); use auto (verified surface)`);
47
+ }
48
+ return { type: 'function', name };
49
+ }
50
+ }
51
+ throw new Error(`tool_choice ${JSON.stringify(choice)} is not supported on the Responses path; use auto or none`);
52
+ }
53
+ // ── reasoning mapping ────────────────────────────────────────────────
54
+ function responsesReasoning(body, model) {
55
+ const thinking = (0, translate_chat_1.asObject)(body?.['thinking']);
56
+ let effort = null;
57
+ if (thinking !== null && (thinking['type'] === 'enabled' || thinking['type'] === 'adaptive')) {
58
+ effort = thinking['effort'] ?? null;
59
+ }
60
+ else {
61
+ effort = body?.['effort'] ?? (0, translate_chat_1.asObject)(body?.['output_config'])?.['effort'] ?? null;
62
+ }
63
+ const wire = (0, protocol_router_1.mapResponsesEffort)(model, effort);
64
+ if (wire === null)
65
+ return null;
66
+ return { effort: String(wire) };
67
+ }
68
+ // ── request translation ──────────────────────────────────────────────
69
+ function extractText(content) {
70
+ if (typeof content === 'string')
71
+ return content;
72
+ if (Array.isArray(content)) {
73
+ return content
74
+ .map((c) => {
75
+ if (typeof c === 'string')
76
+ return c;
77
+ const x = (c ?? {});
78
+ if (typeof x['text'] === 'string')
79
+ return x['text'];
80
+ if (typeof x['content'] === 'string')
81
+ return x['content'];
82
+ try {
83
+ return JSON.stringify(c);
84
+ }
85
+ catch {
86
+ return String(c);
87
+ }
88
+ })
89
+ .join('\n');
90
+ }
91
+ if (content && typeof content === 'object') {
92
+ try {
93
+ return JSON.stringify(content);
94
+ }
95
+ catch {
96
+ return String(content);
97
+ }
98
+ }
99
+ return '';
100
+ }
101
+ function itemText(role, text) {
102
+ if (role === 'assistant') {
103
+ return { type: 'message', role: 'assistant', content: [{ type: 'output_text', text }] };
104
+ }
105
+ return { type: 'message', role: 'user', content: [{ type: 'input_text', text }] };
106
+ }
107
+ /**
108
+ * Convert an Anthropic messages body to an OpenAI Responses body.
109
+ * Raises on shapes the Responses conversion cannot express (images,
110
+ * documents, server tools, unsupported tool_choice/effort) — loud, never
111
+ * silently dropped.
112
+ */
113
+ function anthropicToResponses(body, model) {
114
+ const items = [];
115
+ const systems = [];
116
+ const system = body?.['system'] ?? '';
117
+ if (typeof system === 'string') {
118
+ if (system)
119
+ systems.push(system);
120
+ }
121
+ else if (Array.isArray(system)) {
122
+ for (const b of system) {
123
+ if (b && typeof b === 'object' && b['type'] === 'text' && b['text']) {
124
+ systems.push(String(b['text']));
125
+ }
126
+ }
127
+ }
128
+ const pendingStableIds = [];
129
+ const messages = Array.isArray(body?.['messages']) ? body['messages'] : [];
130
+ for (let mi = 0; mi < messages.length; mi += 1) {
131
+ const msg = messages[mi];
132
+ if (!msg || typeof msg !== 'object')
133
+ continue;
134
+ const role = String(msg['role'] ?? 'user');
135
+ const content = msg['content'] ?? '';
136
+ if (typeof content === 'string') {
137
+ if (content)
138
+ items.push(itemText(role, content));
139
+ continue;
140
+ }
141
+ if (!Array.isArray(content))
142
+ continue;
143
+ for (let bi = 0; bi < content.length; bi += 1) {
144
+ const block = content[bi];
145
+ if (typeof block === 'string') {
146
+ if (block)
147
+ items.push(itemText(role, block));
148
+ continue;
149
+ }
150
+ if (!block || typeof block !== 'object')
151
+ continue;
152
+ const b = block;
153
+ const btype = b['type'];
154
+ if (btype === 'text') {
155
+ const t = String(b['text'] ?? '');
156
+ if (t)
157
+ items.push(itemText(role, t));
158
+ }
159
+ else if (btype === 'thinking' || btype === 'redacted_thinking') {
160
+ continue;
161
+ }
162
+ else if (btype === 'image' || btype === 'document') {
163
+ throw new Error(`model ${model} does not accept ${btype} content (Responses conversion is text-only in this build)`);
164
+ }
165
+ else if (btype === 'tool_use' || btype === 'server_tool_use') {
166
+ const name = typeof b['name'] === 'string' ? b['name'] : '';
167
+ if (!name)
168
+ continue;
169
+ const input = b['input'] && typeof b['input'] === 'object' ? b['input'] : {};
170
+ const cid = (0, bridge_cache_1.normalizeToolCallId)(b['id'], 'call', `${mi}.${bi}`, input);
171
+ if (!(typeof b['id'] === 'string' && b['id']))
172
+ pendingStableIds.push(cid);
173
+ items.push({ type: 'function_call', call_id: cid, name, arguments: (0, bridge_cache_1.stableJson)(input) });
174
+ }
175
+ else if (btype === 'tool_result' || btype === 'web_search_tool_result') {
176
+ let cid = typeof b['tool_use_id'] === 'string' && b['tool_use_id'] ? b['tool_use_id'] : null;
177
+ if (!cid && pendingStableIds.length > 0)
178
+ cid = pendingStableIds.shift() ?? null;
179
+ if (!cid)
180
+ cid = (0, bridge_cache_1.normalizeToolCallId)(undefined, 'call', `${mi}.${bi}`, 'tool_result');
181
+ items.push({
182
+ type: 'function_call_output',
183
+ call_id: cid,
184
+ output: extractText(b['content']),
185
+ });
186
+ }
187
+ // unknown blocks drop (mirrors chat conversion)
188
+ }
189
+ }
190
+ const out = {
191
+ model,
192
+ input: items,
193
+ max_output_tokens: body?.['max_tokens'] ?? DEFAULT_MAX_OUTPUT_TOKENS,
194
+ stream: !!body?.['stream'],
195
+ };
196
+ if (systems.length > 0)
197
+ out['instructions'] = systems.join('\n\n');
198
+ const tools = [];
199
+ for (const t of Array.isArray(body?.['tools']) ? body['tools'] : []) {
200
+ if (!t || typeof t !== 'object')
201
+ continue;
202
+ const name = t['name'];
203
+ if (typeof name !== 'string' || !name)
204
+ continue;
205
+ const ttype = t['type'];
206
+ if (typeof ttype === 'string' && ttype.startsWith('web_search_')) {
207
+ throw new Error('web search (server tool) is not supported directly on the Responses path; ' +
208
+ 'remove the tool or route to an Anthropic-protocol model');
209
+ }
210
+ tools.push({
211
+ type: 'function',
212
+ name,
213
+ description: t['description'] ?? '',
214
+ parameters: t['input_schema'] && typeof t['input_schema'] === 'object' ? t['input_schema'] : {},
215
+ });
216
+ }
217
+ if (tools.length > 0) {
218
+ const choice = mapResponsesToolChoice(body?.['tool_choice'] ?? 'auto', model);
219
+ if (choice !== null) {
220
+ out['tools'] = tools;
221
+ if (choice !== 'auto')
222
+ out['tool_choice'] = choice;
223
+ }
224
+ // choice === null ("none"): omit tools entirely → zero calls.
225
+ }
226
+ const reasoning = responsesReasoning(body, model);
227
+ if (reasoning)
228
+ out['reasoning'] = reasoning;
229
+ return out;
230
+ }
231
+ // ── non-streaming response translation ───────────────────────────────
232
+ function responsesToAnthropic(resp, requested, messageId) {
233
+ if (!resp || typeof resp !== 'object') {
234
+ throw new Error('upstream returned a malformed response envelope');
235
+ }
236
+ const blocks = [];
237
+ const dropped = [];
238
+ const output = Array.isArray(resp['output']) ? resp['output'] : [];
239
+ for (const outItem of output) {
240
+ if (!outItem || typeof outItem !== 'object') {
241
+ dropped.push('non-dict');
242
+ continue;
243
+ }
244
+ const otype = outItem['type'];
245
+ if (otype === 'message') {
246
+ const parts = Array.isArray(outItem['content']) ? outItem['content'] : [];
247
+ for (const part of parts) {
248
+ if (part && typeof part === 'object' && part['type'] === 'output_text') {
249
+ const t = String(part['text'] ?? '');
250
+ if (t)
251
+ blocks.push({ type: 'text', text: t });
252
+ }
253
+ }
254
+ }
255
+ else if (otype === 'function_call') {
256
+ const name = outItem['name'];
257
+ if (typeof name !== 'string' || !name)
258
+ continue;
259
+ let input;
260
+ try {
261
+ input = (0, translate_chat_1.parseToolArgs)(String(outItem['arguments'] ?? ''));
262
+ }
263
+ catch {
264
+ throw new Error('upstream returned invalid function-call arguments');
265
+ }
266
+ blocks.push({
267
+ type: 'tool_use',
268
+ id: (0, bridge_cache_1.normalizeToolCallId)(outItem['call_id'], name, blocks.length, input),
269
+ name,
270
+ input,
271
+ });
272
+ }
273
+ else {
274
+ dropped.push(String(otype));
275
+ }
276
+ }
277
+ const status = String(resp['status'] ?? 'completed');
278
+ let stop;
279
+ if (status === 'completed') {
280
+ stop = blocks.some((b) => b['type'] === 'tool_use') ? 'tool_use' : 'end_turn';
281
+ }
282
+ else if (status === 'incomplete') {
283
+ const reason = String((0, translate_chat_1.asObject)(resp['incomplete_details'])?.['reason'] ?? '');
284
+ if (reason === 'max_output_tokens')
285
+ stop = 'max_tokens';
286
+ else if (reason === 'content_filter')
287
+ stop = 'content_filter';
288
+ else
289
+ throw new Error(`upstream response incomplete with unknown reason: ${JSON.stringify(reason)}`);
290
+ }
291
+ else {
292
+ const msg = (0, translate_chat_1.asObject)(resp['error'])?.['message'] ?? status;
293
+ throw new Error(`upstream response failed: ${msg}`);
294
+ }
295
+ if (blocks.length === 0 && status === 'completed') {
296
+ const seen = [...new Set(dropped)].sort();
297
+ const detail = seen.length > 0 ? ` (dropped: ${seen.join(',')})` : '';
298
+ throw new Error(`upstream response completed with no content blocks${detail}`);
299
+ }
300
+ const usage = (0, translate_chat_1.asObject)(resp['usage']) ?? {};
301
+ const details = (0, translate_chat_1.asObject)(usage['input_tokens_details']);
302
+ const cacheRead = details?.['cached_tokens'] || (0, bridge_cache_1.extractCacheReadTokens)(usage);
303
+ const cacheCreate = usage['cache_write_tokens'] || (0, bridge_cache_1.extractCacheCreationTokens)(usage);
304
+ const outUsage = (0, bridge_cache_1.withReasoningSplit)({
305
+ input_tokens: Number(usage['input_tokens'] ?? 0) || 0,
306
+ output_tokens: (0, bridge_cache_1.getOutputTokens)(usage),
307
+ cache_creation_input_tokens: cacheCreate,
308
+ cache_read_input_tokens: cacheRead,
309
+ }, usage);
310
+ return {
311
+ id: messageId ?? `msg_${Math.random().toString(16).slice(2, 26)}`,
312
+ type: 'message',
313
+ role: 'assistant',
314
+ content: blocks,
315
+ model: requested,
316
+ stop_reason: stop,
317
+ stop_sequence: null,
318
+ usage: outUsage,
319
+ };
320
+ }
321
+ // ── streaming translator ─────────────────────────────────────────────
322
+ class StreamTranslationError extends Error {
323
+ frames;
324
+ constructor(message, frames = []) {
325
+ super(message);
326
+ this.name = 'StreamTranslationError';
327
+ this.frames = frames;
328
+ }
329
+ }
330
+ exports.StreamTranslationError = StreamTranslationError;
331
+ class ResponsesStreamTranslator {
332
+ requestedModel;
333
+ estimatedInput;
334
+ messageId;
335
+ onFinalUsage;
336
+ started = false;
337
+ textBlockIdx = null;
338
+ nextBlockIdx = 0;
339
+ openBlocks = new Set();
340
+ toolAcc = new Map();
341
+ validated = new Set();
342
+ calledTools = false;
343
+ terminal = false;
344
+ constructor(opts) {
345
+ this.requestedModel = opts.requestedModel;
346
+ this.estimatedInput = opts.estimatedInput ?? 0;
347
+ this.messageId = opts.messageId ?? `msg_${Math.random().toString(16).slice(2, 26)}`;
348
+ this.onFinalUsage = opts.onFinalUsage;
349
+ }
350
+ get messageStarted() {
351
+ return this.started;
352
+ }
353
+ get isTerminal() {
354
+ return this.terminal;
355
+ }
356
+ /** Feed one parsed upstream event; returns frames to forward. */
357
+ push(event) {
358
+ if (this.terminal)
359
+ return [];
360
+ const frames = [];
361
+ try {
362
+ this.handle(event, frames);
363
+ return frames;
364
+ }
365
+ catch (e) {
366
+ throw new StreamTranslationError(e instanceof Error ? e.message : String(e), frames);
367
+ }
368
+ }
369
+ /** Upstream transport failure: reference error close. */
370
+ fail(message) {
371
+ if (this.terminal)
372
+ return [];
373
+ this.terminal = true;
374
+ const frames = [];
375
+ if (this.messageStarted) {
376
+ for (const idx of [...this.openBlocks]) {
377
+ frames.push((0, sse_1.sseFrame)('content_block_stop', { type: 'content_block_stop', index: idx }));
378
+ }
379
+ this.openBlocks.clear();
380
+ }
381
+ frames.push((0, sse_1.sseFrame)('error', { type: 'error', error: { type: 'api_error', message } }));
382
+ return frames;
383
+ }
384
+ /** Upstream EOF without a terminal event: fail closed. */
385
+ endOfStream() {
386
+ if (this.terminal)
387
+ return [];
388
+ return this.fail('upstream stream ended without a terminal event');
389
+ }
390
+ // ── internals ──────────────────────────────────────────────────────
391
+ startMessage(frames) {
392
+ if (this.started)
393
+ return;
394
+ this.started = true;
395
+ frames.push((0, sse_1.sseFrame)('message_start', {
396
+ type: 'message_start',
397
+ message: {
398
+ id: this.messageId,
399
+ type: 'message',
400
+ role: 'assistant',
401
+ content: [],
402
+ model: this.requestedModel,
403
+ stop_reason: null,
404
+ stop_sequence: null,
405
+ usage: {
406
+ input_tokens: this.estimatedInput,
407
+ output_tokens: 0,
408
+ cache_creation_input_tokens: 0,
409
+ cache_read_input_tokens: 0,
410
+ },
411
+ },
412
+ }));
413
+ }
414
+ openBlock(frames, block) {
415
+ const idx = this.nextBlockIdx++;
416
+ this.openBlocks.add(idx);
417
+ frames.push((0, sse_1.sseFrame)('content_block_start', { type: 'content_block_start', index: idx, content_block: block }));
418
+ return idx;
419
+ }
420
+ closeBlock(frames, idx) {
421
+ if (idx === null)
422
+ return;
423
+ if (!this.openBlocks.has(idx))
424
+ return;
425
+ this.openBlocks.delete(idx);
426
+ frames.push((0, sse_1.sseFrame)('content_block_stop', { type: 'content_block_stop', index: idx }));
427
+ }
428
+ handle(event, frames) {
429
+ const etype = event['type'];
430
+ if (etype === 'response.created' || etype === 'response.in_progress')
431
+ return;
432
+ if (etype === 'response.output_item.added') {
433
+ const item = (0, translate_chat_1.asObject)(event['item']) ?? {};
434
+ const itype = item['type'];
435
+ if (itype === 'message')
436
+ return; // text opens lazily on first delta
437
+ if (itype === 'function_call') {
438
+ const name = item['name'];
439
+ if (typeof name !== 'string' || !name)
440
+ return;
441
+ this.startMessage(frames);
442
+ this.closeBlock(frames, this.textBlockIdx);
443
+ this.textBlockIdx = null;
444
+ this.calledTools = true;
445
+ const cid = typeof item['call_id'] === 'string' && item['call_id']
446
+ ? item['call_id']
447
+ : `toolu_${Math.random().toString(16).slice(2, 10)}`;
448
+ const blockIdx = this.openBlock(frames, { type: 'tool_use', id: cid, name, input: {} });
449
+ const oidx = typeof event['output_index'] === 'number' ? event['output_index'] : this.toolAcc.size;
450
+ this.toolAcc.set(oidx, {
451
+ blockIdx,
452
+ id: cid,
453
+ name,
454
+ args: typeof item['arguments'] === 'string' ? item['arguments'] : '',
455
+ });
456
+ }
457
+ return;
458
+ }
459
+ if (etype === 'response.content_part.added') {
460
+ const part = (0, translate_chat_1.asObject)(event['part']) ?? {};
461
+ if (part['type'] === 'output_text' && this.textBlockIdx === null) {
462
+ this.startMessage(frames);
463
+ this.textBlockIdx = this.openBlock(frames, { type: 'text', text: '' });
464
+ }
465
+ return;
466
+ }
467
+ if (etype === 'response.output_text.delta') {
468
+ const delta = String(event['delta'] ?? '');
469
+ this.startMessage(frames);
470
+ if (this.textBlockIdx === null) {
471
+ this.textBlockIdx = this.openBlock(frames, { type: 'text', text: '' });
472
+ }
473
+ if (delta) {
474
+ frames.push((0, sse_1.sseFrame)('content_block_delta', {
475
+ type: 'content_block_delta',
476
+ index: this.textBlockIdx,
477
+ delta: { type: 'text_delta', text: delta },
478
+ }));
479
+ }
480
+ return;
481
+ }
482
+ if (etype === 'response.content_part.done' || etype === 'response.output_text.done') {
483
+ if (this.textBlockIdx !== null) {
484
+ this.closeBlock(frames, this.textBlockIdx);
485
+ this.textBlockIdx = null;
486
+ }
487
+ return;
488
+ }
489
+ if (etype === 'response.function_call_arguments.delta') {
490
+ const acc = this.toolAcc.get(numericIndex(event['output_index']));
491
+ if (!acc)
492
+ return;
493
+ const delta = String(event['delta'] ?? '');
494
+ if (delta) {
495
+ acc.args += delta;
496
+ frames.push((0, sse_1.sseFrame)('content_block_delta', {
497
+ type: 'content_block_delta',
498
+ index: acc.blockIdx,
499
+ delta: { type: 'input_json_delta', partial_json: delta },
500
+ }));
501
+ }
502
+ return;
503
+ }
504
+ if (etype === 'response.function_call_arguments.done') {
505
+ const oidx = numericIndex(event['output_index']);
506
+ const acc = this.toolAcc.get(oidx);
507
+ if (acc) {
508
+ if (!acc.args && typeof event['arguments'] === 'string' && event['arguments']) {
509
+ acc.args = event['arguments'];
510
+ frames.push((0, sse_1.sseFrame)('content_block_delta', {
511
+ type: 'content_block_delta',
512
+ index: acc.blockIdx,
513
+ delta: { type: 'input_json_delta', partial_json: acc.args },
514
+ }));
515
+ }
516
+ (0, translate_chat_1.parseToolArgs)(acc.args); // loud on invalid arguments
517
+ this.validated.add(oidx);
518
+ }
519
+ return;
520
+ }
521
+ if (etype === 'response.output_item.done') {
522
+ const item = (0, translate_chat_1.asObject)(event['item']) ?? {};
523
+ const itype = item['type'];
524
+ if (itype === 'message') {
525
+ this.closeBlock(frames, this.textBlockIdx);
526
+ this.textBlockIdx = null;
527
+ }
528
+ else if (itype === 'function_call') {
529
+ const oidx = numericIndex(event['output_index']);
530
+ const acc = this.toolAcc.get(oidx);
531
+ if (acc) {
532
+ if (!acc.args && typeof item['arguments'] === 'string' && item['arguments']) {
533
+ acc.args = item['arguments'];
534
+ frames.push((0, sse_1.sseFrame)('content_block_delta', {
535
+ type: 'content_block_delta',
536
+ index: acc.blockIdx,
537
+ delta: { type: 'input_json_delta', partial_json: acc.args },
538
+ }));
539
+ }
540
+ if (!this.validated.has(oidx)) {
541
+ (0, translate_chat_1.parseToolArgs)(acc.args);
542
+ this.validated.add(oidx);
543
+ }
544
+ this.closeBlock(frames, acc.blockIdx);
545
+ }
546
+ }
547
+ return;
548
+ }
549
+ if (etype === 'response.completed') {
550
+ const resp = (0, translate_chat_1.asObject)(event['response']) ?? {};
551
+ const usage = (0, translate_chat_1.asObject)(resp['usage']);
552
+ this.finish(frames, this.calledTools ? 'tool_use' : 'end_turn', usage);
553
+ this.terminal = true;
554
+ return;
555
+ }
556
+ if (etype === 'response.incomplete') {
557
+ const resp = (0, translate_chat_1.asObject)(event['response']) ?? {};
558
+ const reason = String((0, translate_chat_1.asObject)(resp['incomplete_details'])?.['reason'] ?? '');
559
+ if (reason === 'max_output_tokens' || reason === 'content_filter') {
560
+ if (this.calledTools && reason === 'max_output_tokens') {
561
+ let bad = 0;
562
+ for (const acc of this.toolAcc.values()) {
563
+ try {
564
+ (0, translate_chat_1.parseToolArgs)(acc.args);
565
+ }
566
+ catch {
567
+ bad += 1;
568
+ }
569
+ }
570
+ if (bad > 0) {
571
+ throw new Error(`upstream truncated a turn with ${this.toolAcc.size} incomplete tool call(s) (max_output_tokens): ` +
572
+ 'raise max_tokens or shorten context');
573
+ }
574
+ }
575
+ const stop = reason === 'max_output_tokens' ? 'max_tokens' : 'content_filter';
576
+ const usage = (0, translate_chat_1.asObject)(resp['usage']);
577
+ this.finish(frames, stop, usage);
578
+ this.terminal = true;
579
+ return;
580
+ }
581
+ throw new Error(`upstream stream incomplete with unknown reason: ${JSON.stringify(reason)}`);
582
+ }
583
+ if (etype === 'response.failed') {
584
+ const resp = (0, translate_chat_1.asObject)(event['response']) ?? {};
585
+ const msg = (0, translate_chat_1.asObject)(resp['error'])?.['message'] ?? 'upstream response failed';
586
+ throw new Error(String(msg));
587
+ }
588
+ if (etype === 'error') {
589
+ throw new Error(String(event['message'] ?? '') || 'upstream streaming error');
590
+ }
591
+ // Unknown event types are ignored (forward compatible).
592
+ }
593
+ finish(frames, stop, usage) {
594
+ try {
595
+ this.onFinalUsage?.((0, bridge_cache_1.upstreamUsageFromResponses)(usage));
596
+ }
597
+ catch {
598
+ /* observability only: never fail the stream on a usage callback */
599
+ }
600
+ this.startMessage(frames);
601
+ this.closeBlock(frames, this.textBlockIdx);
602
+ this.textBlockIdx = null;
603
+ for (const idx of [...this.openBlocks])
604
+ this.closeBlock(frames, idx);
605
+ const u = usage ?? {};
606
+ const details = (0, translate_chat_1.asObject)(u['input_tokens_details']);
607
+ const cacheRead = details?.['cached_tokens'] || (0, bridge_cache_1.extractCacheReadTokens)(u);
608
+ const cacheCreate = u['cache_write_tokens'] || (0, bridge_cache_1.extractCacheCreationTokens)(u);
609
+ const inTok = Number(u['input_tokens'] ?? 0) || this.estimatedInput;
610
+ const outTok = (0, bridge_cache_1.getOutputTokens)(u);
611
+ frames.push((0, sse_1.sseFrame)('message_delta', {
612
+ type: 'message_delta',
613
+ delta: { stop_reason: stop },
614
+ usage: (0, bridge_cache_1.withReasoningSplit)({
615
+ output_tokens: outTok,
616
+ input_tokens: inTok,
617
+ cache_read_input_tokens: cacheRead,
618
+ cache_creation_input_tokens: cacheCreate,
619
+ }, u),
620
+ }));
621
+ frames.push((0, sse_1.sseFrame)('message_stop', { type: 'message_stop' }));
622
+ }
623
+ }
624
+ exports.ResponsesStreamTranslator = ResponsesStreamTranslator;
625
+ //# sourceMappingURL=translate-responses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translate-responses.js","sourceRoot":"","sources":["../../../runtimes/claude/translate-responses.ts"],"names":[],"mappings":"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"}