@sentropic/llm-mesh 0.24.1 → 0.26.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 (99) hide show
  1. package/README.md +192 -0
  2. package/dist/catalog.d.ts +92 -0
  3. package/dist/catalog.d.ts.map +1 -1
  4. package/dist/catalog.js +47 -0
  5. package/dist/catalog.js.map +1 -1
  6. package/dist/enrollment/claude-code.d.ts +27 -5
  7. package/dist/enrollment/claude-code.d.ts.map +1 -1
  8. package/dist/enrollment/claude-code.js +224 -10
  9. package/dist/enrollment/claude-code.js.map +1 -1
  10. package/dist/enrollment/codex.d.ts +7 -0
  11. package/dist/enrollment/codex.d.ts.map +1 -1
  12. package/dist/enrollment/codex.js +74 -19
  13. package/dist/enrollment/codex.js.map +1 -1
  14. package/dist/enrollment/index.d.ts +1 -1
  15. package/dist/enrollment/index.d.ts.map +1 -1
  16. package/dist/enrollment/pkce.js +1 -1
  17. package/dist/errors.d.ts +19 -0
  18. package/dist/errors.d.ts.map +1 -1
  19. package/dist/errors.js +51 -4
  20. package/dist/errors.js.map +1 -1
  21. package/dist/execution-features.d.ts +34 -0
  22. package/dist/execution-features.d.ts.map +1 -0
  23. package/dist/execution-features.js +84 -0
  24. package/dist/execution-features.js.map +1 -0
  25. package/dist/generated-model-council.d.ts +2 -2
  26. package/dist/generated-model-council.d.ts.map +1 -1
  27. package/dist/generated-model-council.js +5 -1
  28. package/dist/generated-model-council.js.map +1 -1
  29. package/dist/index.d.ts +4 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +4 -0
  32. package/dist/index.js.map +1 -1
  33. package/dist/native-messages.d.ts +130 -0
  34. package/dist/native-messages.d.ts.map +1 -0
  35. package/dist/native-messages.js +66 -0
  36. package/dist/native-messages.js.map +1 -0
  37. package/dist/providers.d.ts +5 -5
  38. package/dist/providers.d.ts.map +1 -1
  39. package/dist/providers.js +12 -5
  40. package/dist/providers.js.map +1 -1
  41. package/dist/responses-wire.d.ts +76 -0
  42. package/dist/responses-wire.d.ts.map +1 -0
  43. package/dist/responses-wire.js +35 -0
  44. package/dist/responses-wire.js.map +1 -0
  45. package/dist/route-attempt.d.ts +4 -0
  46. package/dist/route-attempt.d.ts.map +1 -1
  47. package/dist/route-attempt.js +8 -1
  48. package/dist/route-attempt.js.map +1 -1
  49. package/dist/route-health.d.ts +11 -0
  50. package/dist/route-health.d.ts.map +1 -1
  51. package/dist/route-health.js +32 -0
  52. package/dist/route-health.js.map +1 -1
  53. package/dist/route-planner-state.d.ts +33 -2
  54. package/dist/route-planner-state.d.ts.map +1 -1
  55. package/dist/route-planner-state.js +20 -1
  56. package/dist/route-planner-state.js.map +1 -1
  57. package/dist/route-planner.d.ts +21 -1
  58. package/dist/route-planner.d.ts.map +1 -1
  59. package/dist/route-planner.js +112 -33
  60. package/dist/route-planner.js.map +1 -1
  61. package/dist/route-quote.d.ts +16 -2
  62. package/dist/route-quote.d.ts.map +1 -1
  63. package/dist/route-quote.js +31 -5
  64. package/dist/route-quote.js.map +1 -1
  65. package/dist/route-selection.d.ts +13 -0
  66. package/dist/route-selection.d.ts.map +1 -1
  67. package/dist/route-selection.js +30 -5
  68. package/dist/route-selection.js.map +1 -1
  69. package/dist/routing-contracts.d.ts +42 -3
  70. package/dist/routing-contracts.d.ts.map +1 -1
  71. package/dist/routing-targets.d.ts +26 -0
  72. package/dist/routing-targets.d.ts.map +1 -1
  73. package/dist/routing-targets.js +96 -23
  74. package/dist/routing-targets.js.map +1 -1
  75. package/dist/service/facade.d.ts +3 -0
  76. package/dist/service/facade.d.ts.map +1 -1
  77. package/dist/service/facade.js +7 -1
  78. package/dist/service/facade.js.map +1 -1
  79. package/dist/service/local-account-transport-service.d.ts +18 -0
  80. package/dist/service/local-account-transport-service.d.ts.map +1 -1
  81. package/dist/service/local-account-transport-service.js +284 -46
  82. package/dist/service/local-account-transport-service.js.map +1 -1
  83. package/dist/transport/claude-code-runtime-client.d.ts +88 -0
  84. package/dist/transport/claude-code-runtime-client.d.ts.map +1 -0
  85. package/dist/transport/claude-code-runtime-client.js +305 -0
  86. package/dist/transport/claude-code-runtime-client.js.map +1 -0
  87. package/dist/transport/codex-runtime-client.d.ts.map +1 -1
  88. package/dist/transport/codex-runtime-client.js +24 -4
  89. package/dist/transport/codex-runtime-client.js.map +1 -1
  90. package/dist/transport/codex-runtime-wire.d.ts.map +1 -1
  91. package/dist/transport/codex-runtime-wire.js +131 -27
  92. package/dist/transport/codex-runtime-wire.js.map +1 -1
  93. package/dist/transport/mistral-runtime-client.d.ts.map +1 -1
  94. package/dist/transport/mistral-runtime-client.js +191 -9
  95. package/dist/transport/mistral-runtime-client.js.map +1 -1
  96. package/dist/transport/muse-runtime-client.d.ts.map +1 -1
  97. package/dist/transport/muse-runtime-client.js +221 -10
  98. package/dist/transport/muse-runtime-client.js.map +1 -1
  99. package/package.json +1 -1
@@ -1,5 +1,6 @@
1
1
  import { getSecretAuthMaterial } from '../auth.js';
2
2
  import { buildCodexRuntimeRequest, decodeCodexRuntimeEvent } from './codex-runtime-wire.js';
3
+ import { requalifyResponseToolName, responsesCarrierOf } from '../responses-wire.js';
3
4
  const parseSse = async function* (body) {
4
5
  const reader = body.getReader();
5
6
  const decoder = new TextDecoder();
@@ -66,10 +67,20 @@ export class CodexRuntimeClient {
66
67
  : {}),
67
68
  });
68
69
  }
70
+ const carrier = responsesCarrierOf(request.providerOptions);
69
71
  return (async function* () {
70
72
  for await (const raw of parseSse(response.body)) {
71
- for (const event of decodeCodexRuntimeEvent(raw))
72
- yield event;
73
+ for (const event of decodeCodexRuntimeEvent(raw)) {
74
+ // Providers echo the bare canonical name; the client declared the
75
+ // qualified `namespace.name` (spec §16.3).
76
+ if (event.type === 'tool_call_start') {
77
+ yield { type: event.type, data: {
78
+ ...event.data, name: requalifyResponseToolName(event.data.name, carrier)
79
+ } };
80
+ }
81
+ else
82
+ yield event;
83
+ }
73
84
  }
74
85
  })();
75
86
  }
@@ -83,8 +94,17 @@ export class CodexRuntimeClient {
83
94
  for await (const event of stream) {
84
95
  if (event.type === 'content_delta')
85
96
  text += event.data.delta;
86
- else if (event.type === 'tool_call_start')
87
- toolCalls.set(event.data.toolCallId, event.data);
97
+ else if (event.type === 'tool_call_start') {
98
+ // A repeated start carries the done-item argument snapshot: its
99
+ // arguments win over streamed fragments (never appended). An empty
100
+ // repeat never wipes accumulated fragments.
101
+ const current = toolCalls.get(event.data.toolCallId);
102
+ if (!current)
103
+ toolCalls.set(event.data.toolCallId, event.data);
104
+ else if (event.data.argumentsText) {
105
+ toolCalls.set(event.data.toolCallId, { ...current, ...event.data });
106
+ }
107
+ }
88
108
  else if (event.type === 'tool_call_delta') {
89
109
  const current = toolCalls.get(event.data.toolCallId);
90
110
  if (current)
@@ -1 +1 @@
1
- {"version":3,"file":"codex-runtime-client.js","sourceRoot":"","sources":["../../src/transport/codex-runtime-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-runtime-client.js","sourceRoot":"","sources":["../../src/transport/codex-runtime-client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"codex-runtime-wire.d.ts","sourceRoot":"","sources":["../../src/transport/codex-runtime-wire.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AA0DnD,eAAO,MAAM,wBAAwB,YAAa,eAAe,wDA0B7D,CAAC;AAEL,eAAO,MAAM,uBAAuB,UAAW,OAAO,KAAG,SAAS,WAAW,EA2D5E,CAAC"}
1
+ {"version":3,"file":"codex-runtime-wire.d.ts","sourceRoot":"","sources":["../../src/transport/codex-runtime-wire.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAOxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAoHnD,eAAO,MAAM,wBAAwB,YAAa,eAAe,wDAsChE,CAAC;AAEF,eAAO,MAAM,uBAAuB,UAAW,OAAO,KAAG,SAAS,WAAW,EA+F5E,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { collectCodexInstructions, prepareCodexResponsesRequest } from '../codex.js';
2
+ import { responsesCarrierOf } from '../responses-wire.js';
2
3
  const asRecord = (value) => value && typeof value === 'object' && !Array.isArray(value) ? value : undefined;
3
4
  const stringify = (value) => {
4
5
  if (typeof value === 'string')
@@ -56,32 +57,97 @@ const messageInput = (message) => {
56
57
  const codexToolChoice = (choice) => typeof choice === 'object'
57
58
  ? { type: 'function', name: choice.name }
58
59
  : choice;
59
- export const buildCodexRuntimeRequest = (request) => prepareCodexResponsesRequest({
60
- model: request.modelId ?? (typeof request.model === 'string' ? request.model : ''),
61
- stream: true,
62
- instructions: collectCodexInstructions(request.messages),
63
- input: request.messages.flatMap(messageInput),
64
- ...(request.tools?.length ? {
65
- tools: request.tools.map((tool) => ({
66
- type: 'function', name: tool.name, description: tool.description,
67
- parameters: tool.inputSchema, strict: tool.strict,
68
- })),
69
- } : {}),
70
- ...(request.toolChoice ? { tool_choice: codexToolChoice(request.toolChoice) } : {}),
71
- ...(request.parallelToolCalls !== undefined
72
- ? { parallel_tool_calls: request.parallelToolCalls }
73
- : {}),
74
- ...(request.reasoning?.effort || request.reasoning?.summary ? { reasoning: {
75
- ...(request.reasoning.effort ? { effort: request.reasoning.effort } : {}),
76
- ...(request.reasoning.summary ? { summary: request.reasoning.summary } : {}),
77
- } } : {}),
78
- ...(request.temperature !== undefined ? { temperature: request.temperature } : {}),
79
- ...(request.topP !== undefined ? { top_p: request.topP } : {}),
80
- // maxOutputTokens is intentionally NOT sent: the Codex backend answers
81
- // 400 `Unsupported parameter: max_output_tokens` (live-proven). Other
82
- // transports keep their own limit mapping; the cap is not applied here.
83
- include: ['reasoning.encrypted_content'],
84
- });
60
+ /**
61
+ * Validated Responses carrier on a canonical request (spec §16.3): custom
62
+ * tools, reasoning context/verbosity, cache hints and completed reasoning
63
+ * artifacts carried opaquely for native execution only. Absent on
64
+ * non-Responses wires; translated adapters never read it.
65
+ */
66
+ const responsesCarrier = (request) => responsesCarrierOf(request.providerOptions);
67
+ /**
68
+ * Custom/freeform tools regrouped by declaring namespace (spec §16.3): the
69
+ * inverse of the ingress flattening — one `additional_tools` input item
70
+ * carrying `namespace` groups plus unnamespaced custom tools verbatim.
71
+ */
72
+ const customToolsInput = (customTools) => {
73
+ if (customTools.length === 0)
74
+ return [];
75
+ const grouped = new Map();
76
+ for (const tool of customTools) {
77
+ const entries = grouped.get(tool.namespace) ?? [];
78
+ entries.push(tool);
79
+ grouped.set(tool.namespace, entries);
80
+ }
81
+ const tools = [];
82
+ for (const [namespace, entries] of grouped) {
83
+ if (namespace === undefined) {
84
+ for (const tool of entries) {
85
+ tools.push({
86
+ type: 'custom', name: tool.name,
87
+ ...(tool.description !== undefined ? { description: tool.description } : {}),
88
+ ...(tool.format !== undefined ? { format: tool.format } : {}),
89
+ });
90
+ }
91
+ }
92
+ else {
93
+ tools.push({
94
+ type: 'namespace', name: namespace, description: '',
95
+ tools: entries.map((tool) => ({
96
+ type: 'custom', name: tool.name,
97
+ ...(tool.description !== undefined ? { description: tool.description } : {}),
98
+ ...(tool.format !== undefined ? { format: tool.format } : {}),
99
+ })),
100
+ });
101
+ }
102
+ }
103
+ return [{ type: 'additional_tools', role: 'developer', tools }];
104
+ };
105
+ /** Completed reasoning history items re-emitted in carrier order (spec §16.3). */
106
+ const reasoningInput = (artifacts) => artifacts.map((artifact) => ({
107
+ type: 'reasoning',
108
+ ...(artifact.itemId !== undefined ? { id: artifact.itemId } : {}),
109
+ ...(artifact.summary !== undefined ? { summary: artifact.summary } : {}),
110
+ ...(artifact.encryptedContent !== undefined ? { encrypted_content: artifact.encryptedContent } : {}),
111
+ }));
112
+ export const buildCodexRuntimeRequest = (request) => {
113
+ const carrier = responsesCarrier(request);
114
+ const context = carrier?.reasoningContext;
115
+ const verbosity = carrier?.verbosity;
116
+ const promptCacheKey = carrier?.promptCacheKey;
117
+ return prepareCodexResponsesRequest({
118
+ model: request.modelId ?? (typeof request.model === 'string' ? request.model : ''),
119
+ stream: true,
120
+ instructions: collectCodexInstructions(request.messages),
121
+ input: [
122
+ ...customToolsInput(carrier?.customTools ?? []),
123
+ ...reasoningInput(carrier?.reasoningArtifacts ?? []),
124
+ ...request.messages.flatMap(messageInput),
125
+ ],
126
+ ...(request.tools?.length ? {
127
+ tools: request.tools.map((tool) => ({
128
+ type: 'function', name: tool.name, description: tool.description,
129
+ parameters: tool.inputSchema, strict: tool.strict,
130
+ })),
131
+ } : {}),
132
+ ...(request.toolChoice ? { tool_choice: codexToolChoice(request.toolChoice) } : {}),
133
+ ...(request.parallelToolCalls !== undefined
134
+ ? { parallel_tool_calls: request.parallelToolCalls }
135
+ : {}),
136
+ ...(request.reasoning?.effort || request.reasoning?.summary || context ? { reasoning: {
137
+ ...(request.reasoning?.effort ? { effort: request.reasoning.effort } : {}),
138
+ ...(request.reasoning?.summary ? { summary: request.reasoning.summary } : {}),
139
+ ...(context ? { context } : {}),
140
+ } } : {}),
141
+ ...(verbosity ? { text: { verbosity } } : {}),
142
+ ...(promptCacheKey ? { prompt_cache_key: promptCacheKey } : {}),
143
+ ...(request.temperature !== undefined ? { temperature: request.temperature } : {}),
144
+ ...(request.topP !== undefined ? { top_p: request.topP } : {}),
145
+ // maxOutputTokens is intentionally NOT sent: the Codex backend answers
146
+ // 400 `Unsupported parameter: max_output_tokens` (live-proven). Other
147
+ // transports keep their own limit mapping; the cap is not applied here.
148
+ include: ['reasoning.encrypted_content'],
149
+ });
150
+ };
85
151
  export const decodeCodexRuntimeEvent = (event) => {
86
152
  const record = asRecord(event);
87
153
  const type = typeof record?.type === 'string' ? record.type : '';
@@ -100,8 +166,12 @@ export const decodeCodexRuntimeEvent = (event) => {
100
166
  if (type === 'response.reasoning_summary_text.delta' && typeof record?.delta === 'string') {
101
167
  return [{ type: 'reasoning_delta', data: { delta: record.delta, kind: 'summary' } }];
102
168
  }
103
- if (type === 'response.output_item.added') {
169
+ if (type === 'response.output_item.added' || type === 'response.output_item.done') {
104
170
  const item = asRecord(record?.item);
171
+ // A done function_call item carries the authoritative final arguments
172
+ // snapshot; the client accumulator lets it win over streamed fragments
173
+ // instead of appending (no duplication). Non-function done snapshots
174
+ // (message/reasoning/output_text) duplicate streamed deltas — dropped.
105
175
  if (item?.type === 'function_call')
106
176
  return [{
107
177
  type: 'tool_call_start', data: {
@@ -110,6 +180,22 @@ export const decodeCodexRuntimeEvent = (event) => {
110
180
  name: String(item.name ?? ''), argumentsText: String(item.arguments ?? ''),
111
181
  },
112
182
  }];
183
+ // A completed reasoning item is the authoritative summary artifact
184
+ // (spec §16.4): surface its summary text once as summary_done so JSON
185
+ // collection and streaming agree. Encrypted content is never rendered
186
+ // as visible text and has no event slot here.
187
+ if (item?.type === 'reasoning' && Array.isArray(item.summary)) {
188
+ const text = item.summary
189
+ .map((part) => {
190
+ const entry = asRecord(part);
191
+ return entry?.type === 'summary_text' && typeof entry.text === 'string'
192
+ ? entry.text
193
+ : '';
194
+ })
195
+ .join('');
196
+ if (text)
197
+ return [{ type: 'reasoning_delta', data: { delta: text, kind: 'summary_done' } }];
198
+ }
113
199
  }
114
200
  if (type === 'response.function_call_arguments.delta' && typeof record?.delta === 'string') {
115
201
  return [{
@@ -135,6 +221,24 @@ export const decodeCodexRuntimeEvent = (event) => {
135
221
  },
136
222
  } }];
137
223
  }
224
+ if (type === 'response.incomplete') {
225
+ // An incomplete terminal is served, never success: map the provider
226
+ // reason onto the canonical finish vocabulary and keep usage + id.
227
+ const response = asRecord(record?.response);
228
+ const usage = asRecord(response?.usage);
229
+ const reason = asRecord(response?.incomplete_details)?.reason;
230
+ const finishReason = reason === 'max_output_tokens' ? 'length'
231
+ : reason === 'content_filter' ? 'content_filter' : 'unknown';
232
+ return [{ type: 'done', data: {
233
+ finishReason, providerId: 'openai',
234
+ ...(typeof response?.id === 'string' ? { providerResponseId: response.id } : {}),
235
+ usage: {
236
+ inputTokens: Number(usage?.input_tokens ?? 0),
237
+ outputTokens: Number(usage?.output_tokens ?? 0),
238
+ totalTokens: Number(usage?.total_tokens ?? 0), providerRawUsage: usage,
239
+ },
240
+ } }];
241
+ }
138
242
  if (type === 'error' || type === 'response.failed') {
139
243
  const failure = asRecord(record?.error) ?? asRecord(asRecord(record?.response)?.error);
140
244
  return [{ type: 'error', data: {
@@ -1 +1 @@
1
- {"version":3,"file":"codex-runtime-wire.js","sourceRoot":"","sources":["../../src/transport/codex-runtime-wire.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-runtime-wire.js","sourceRoot":"","sources":["../../src/transport/codex-runtime-wire.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mistral-runtime-client.d.ts","sourceRoot":"","sources":["../../src/transport/mistral-runtime-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACvG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAG7D,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AA2ID,qBAAa,oBAAqB,YAAW,oBAAoB;IAC/D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,OAAO,GAAE,2BAAgC;YAOvC,IAAI;IAwDZ,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,YAAY,CAAC;IA8BvF,QAAQ,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAoBtG"}
1
+ {"version":3,"file":"mistral-runtime-client.d.ts","sourceRoot":"","sources":["../../src/transport/mistral-runtime-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACvG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AA8E7D,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAuJD,qBAAa,oBAAqB,YAAW,oBAAoB;IAC/D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,OAAO,GAAE,2BAAgC;YAOvC,IAAI;IAgEZ,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,YAAY,CAAC;IAoFvF,QAAQ,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CA0CtG"}
@@ -1,4 +1,88 @@
1
1
  import { getSecretAuthMaterial } from '../auth.js';
2
+ import { requalifyResponseToolName, responsesCarrierOf } from '../responses-wire.js';
3
+ /** Canonical terminal reason: provider finish_reason wins over inference (spec §16.4). */
4
+ const terminalFinish = (args) => {
5
+ if (args.sawToolCalls || args.rawFinish === 'tool_calls')
6
+ return 'tool_calls';
7
+ if (args.rawFinish === 'length')
8
+ return 'length';
9
+ if (args.rawFinish === 'content_filter')
10
+ return 'content_filter';
11
+ // Spec §16.4 (R4-MIN-3): a stream that ends without finish_reason is a
12
+ // proven completion only behind the SSE clean terminator (`[DONE]`). A
13
+ // truncated close after text is `unknown`, never a `stop` success.
14
+ return args.sawText && args.sawCleanEnd ? 'stop' : 'unknown';
15
+ };
16
+ /** Latest string `choices[0].finish_reason` on a Chat JSON/SSE payload, if any. */
17
+ const rawFinishOf = (payload) => {
18
+ if (!payload || typeof payload !== 'object')
19
+ return undefined;
20
+ const choices = payload.choices;
21
+ if (!Array.isArray(choices) || choices.length === 0)
22
+ return undefined;
23
+ const first = choices[0];
24
+ if (!first || typeof first !== 'object')
25
+ return undefined;
26
+ const reason = first.finish_reason;
27
+ return typeof reason === 'string' && reason ? reason : undefined;
28
+ };
29
+ /** Decode OpenAI Chat `message.tool_calls` — malformed entries are skipped, never fatal (spec §16.3). */
30
+ const extractToolCalls = (message) => {
31
+ if (!message || typeof message !== 'object')
32
+ return [];
33
+ const calls = message.tool_calls;
34
+ if (!Array.isArray(calls))
35
+ return [];
36
+ const decoded = [];
37
+ for (const entry of calls) {
38
+ if (!entry || typeof entry !== 'object')
39
+ continue;
40
+ const record = entry;
41
+ const fn = record.function && typeof record.function === 'object'
42
+ ? record.function
43
+ : {};
44
+ if (typeof record.id !== 'string' || typeof fn.name !== 'string')
45
+ continue;
46
+ decoded.push({
47
+ toolCallId: record.id,
48
+ providerCallId: record.id,
49
+ name: fn.name,
50
+ argumentsText: typeof fn.arguments === 'string' ? fn.arguments : '',
51
+ });
52
+ }
53
+ return decoded;
54
+ };
55
+ /** Decode OpenAI Chat SSE `choices[].delta.tool_calls[]` fragments keyed by stream index. */
56
+ const extractToolDeltas = (raw) => {
57
+ if (!raw || typeof raw !== 'object')
58
+ return [];
59
+ const choices = raw.choices;
60
+ if (!Array.isArray(choices) || choices.length === 0)
61
+ return [];
62
+ const delta = choices[0]?.delta;
63
+ if (!delta || typeof delta !== 'object')
64
+ return [];
65
+ const calls = delta.tool_calls;
66
+ if (!Array.isArray(calls))
67
+ return [];
68
+ const out = [];
69
+ for (const entry of calls) {
70
+ if (!entry || typeof entry !== 'object')
71
+ continue;
72
+ const record = entry;
73
+ const index = typeof record.index === 'number' ? record.index : out.length;
74
+ const fn = record.function && typeof record.function === 'object'
75
+ ? record.function
76
+ : {};
77
+ const name = typeof fn.name === 'string' && fn.name ? fn.name : undefined;
78
+ const id = typeof record.id === 'string' && record.id ? record.id : undefined;
79
+ const fragment = typeof fn.arguments === 'string' ? fn.arguments : '';
80
+ if (!id && !name && !fragment)
81
+ continue;
82
+ out.push({ index, id, name, fragment });
83
+ }
84
+ return out;
85
+ };
2
86
  // Serving wire facts [DOCUMENTED] from the Mistral API reference
3
87
  // (api.mistral.ai, OpenAI-compatible chat completions): POST
4
88
  // /v1/chat/completions, Authorization: Bearer <api_key>, request body
@@ -11,6 +95,13 @@ import { getSecretAuthMaterial } from '../auth.js';
11
95
  // runtime credential is that key as the Bearer token.
12
96
  const MISTRAL_DEFAULT_BASE_URL = 'https://api.mistral.ai';
13
97
  const MISTRAL_SERVING_PATH = '/v1/chat/completions';
98
+ // Canonical ToolChoice uses { type: 'tool' }; the Chat Completions wire
99
+ // takes the nested OpenAI shape { type: 'function', function: { name } }
100
+ // (spec §16.4) — the flat { type: 'function', name } form is Responses-only.
101
+ // Strings pass through untouched.
102
+ const openAiToolChoice = (choice) => choice && typeof choice === 'object' && choice.type === 'tool'
103
+ ? { type: 'function', function: { name: choice.name } }
104
+ : choice;
14
105
  const toWireMessage = (message) => {
15
106
  const content = typeof message.content === 'string'
16
107
  ? message.content
@@ -93,7 +184,7 @@ const extractUsage = (payload) => {
93
184
  ...(totalTokens !== undefined ? { totalTokens } : {}),
94
185
  };
95
186
  };
96
- const parseSseJson = async function* (body) {
187
+ const parseSseJson = async function* (body, state) {
97
188
  const reader = body.getReader();
98
189
  const decoder = new TextDecoder();
99
190
  let buffer = '';
@@ -112,7 +203,11 @@ const parseSseJson = async function* (body) {
112
203
  .filter((line) => line.startsWith('data:'))
113
204
  .map((line) => line.slice(5).trim())
114
205
  .join('\n');
115
- if (payload && payload !== '[DONE]') {
206
+ if (payload === '[DONE]') {
207
+ if (state)
208
+ state.sawCleanEnd = true;
209
+ }
210
+ else if (payload) {
116
211
  try {
117
212
  yield JSON.parse(payload);
118
213
  }
@@ -153,6 +248,7 @@ export class MistralRuntimeClient {
153
248
  name: tool.name,
154
249
  ...(tool.description ? { description: tool.description } : {}),
155
250
  parameters: tool.inputSchema,
251
+ ...(tool.strict !== undefined ? { strict: tool.strict } : {}),
156
252
  },
157
253
  }));
158
254
  const body = {
@@ -160,10 +256,17 @@ export class MistralRuntimeClient {
160
256
  messages: request.messages.map(toWireMessage),
161
257
  ...(stream ? { stream: true } : {}),
162
258
  ...(openAiTools?.length ? { tools: openAiTools } : {}),
163
- ...(request.toolChoice ? { tool_choice: request.toolChoice } : {}),
259
+ ...(request.toolChoice ? { tool_choice: openAiToolChoice(request.toolChoice) } : {}),
260
+ ...(request.parallelToolCalls !== undefined
261
+ ? { parallel_tool_calls: request.parallelToolCalls } : {}),
164
262
  ...(request.maxOutputTokens !== undefined ? { max_tokens: request.maxOutputTokens } : {}),
165
263
  ...(request.temperature !== undefined ? { temperature: request.temperature } : {}),
166
264
  ...(request.topP !== undefined ? { top_p: request.topP } : {}),
265
+ // Proven slot: Vibe 2.26.1 itself sends reasoning_effort on this wire.
266
+ // 'none' means no reasoning — omit rather than send it. Summary has no
267
+ // Chat expression (validated upstream, never fabricated here).
268
+ ...(request.reasoning?.effort && request.reasoning.effort !== 'none'
269
+ ? { reasoning_effort: request.reasoning.effort } : {}),
167
270
  };
168
271
  const response = await this.fetchFn(`${this.baseUrl}${MISTRAL_SERVING_PATH}`, {
169
272
  method: 'POST',
@@ -190,6 +293,7 @@ export class MistralRuntimeClient {
190
293
  return response;
191
294
  }
192
295
  async stream(request, context) {
296
+ const carrier = responsesCarrierOf(request.providerOptions);
193
297
  const response = await this.post(request, context, 'text/event-stream', true);
194
298
  if (!response.body) {
195
299
  const done = { type: 'done', data: { finishReason: 'unknown' } };
@@ -197,24 +301,80 @@ export class MistralRuntimeClient {
197
301
  }
198
302
  return (async function* () {
199
303
  let sawText = false;
200
- for await (const raw of parseSseJson(response.body)) {
304
+ let sawToolCalls = false;
305
+ let rawFinish;
306
+ let stashedUsage;
307
+ const sseState = {};
308
+ const toolCallIds = new Map();
309
+ for await (const raw of parseSseJson(response.body, sseState)) {
201
310
  const text = extractText(raw);
202
311
  const usage = extractUsage(raw);
312
+ const finish = rawFinishOf(raw);
313
+ if (finish)
314
+ rawFinish = finish;
203
315
  if (text) {
204
316
  sawText = true;
205
317
  yield { type: 'content_delta', data: { delta: text } };
206
318
  }
319
+ for (const toolDelta of extractToolDeltas(raw)) {
320
+ const known = toolCallIds.get(toolDelta.index);
321
+ const toolCallId = known ?? toolDelta.id ?? `mistral-call-${toolDelta.index}`;
322
+ if (!known) {
323
+ toolCallIds.set(toolDelta.index, toolCallId);
324
+ sawToolCalls = true;
325
+ yield {
326
+ type: 'tool_call_start',
327
+ data: {
328
+ toolCallId,
329
+ providerCallId: toolDelta.id ?? toolCallId,
330
+ name: requalifyResponseToolName(toolDelta.name ?? '', carrier),
331
+ argumentsText: '',
332
+ },
333
+ };
334
+ // A first fragment carrying only an id/name emits no empty
335
+ // delta; argument text arrives as real fragments.
336
+ if (!toolDelta.fragment)
337
+ continue;
338
+ }
339
+ else if (!toolDelta.fragment && !toolDelta.name) {
340
+ continue;
341
+ }
342
+ yield {
343
+ type: 'tool_call_delta',
344
+ data: {
345
+ toolCallId,
346
+ providerCallId: toolDelta.id ?? toolCallId,
347
+ delta: toolDelta.fragment,
348
+ ...(toolDelta.name ? { name: requalifyResponseToolName(toolDelta.name, carrier) } : {}),
349
+ },
350
+ };
351
+ }
207
352
  if (usage) {
353
+ // Only a usage chunk carrying a finish reason terminates (the
354
+ // live shape). A finish-less usage chunk is accounting: stash the
355
+ // latest and continue (spec §16.4, R4-MIN-3).
356
+ if (!rawFinish) {
357
+ stashedUsage = usage;
358
+ continue;
359
+ }
208
360
  yield {
209
361
  type: 'done',
210
- data: { finishReason: 'stop', usage },
362
+ data: {
363
+ finishReason: terminalFinish({ sawToolCalls, rawFinish, sawText }),
364
+ ...(rawFinish ? { providerRawFinishReason: rawFinish } : {}),
365
+ usage,
366
+ },
211
367
  };
212
368
  return;
213
369
  }
214
370
  }
215
371
  yield {
216
372
  type: 'done',
217
- data: { finishReason: sawText ? 'stop' : 'unknown' },
373
+ data: {
374
+ finishReason: terminalFinish({ sawToolCalls, rawFinish, sawText, sawCleanEnd: sseState.sawCleanEnd }),
375
+ ...(rawFinish ? { providerRawFinishReason: rawFinish } : {}),
376
+ ...(stashedUsage ? { usage: stashedUsage } : {}),
377
+ },
218
378
  };
219
379
  })();
220
380
  }
@@ -227,15 +387,37 @@ export class MistralRuntimeClient {
227
387
  ? textOf(payload.id)
228
388
  : null;
229
389
  const id = rawId ?? 'mistral_response';
390
+ const firstChoice = payload && typeof payload === 'object'
391
+ && Array.isArray(payload.choices)
392
+ ? payload.choices[0]
393
+ : undefined;
394
+ const choiceMessage = firstChoice && typeof firstChoice === 'object'
395
+ ? firstChoice.message
396
+ : undefined;
397
+ const carrier = responsesCarrierOf(request.providerOptions);
398
+ const toolCalls = extractToolCalls(choiceMessage).map((call) => ({
399
+ ...call, name: requalifyResponseToolName(call.name, carrier),
400
+ }));
401
+ const rawFinish = firstChoice && typeof firstChoice === 'object'
402
+ ? textOf(firstChoice.finish_reason)
403
+ : null;
230
404
  return {
231
405
  id,
232
406
  providerId: 'mistral',
233
407
  modelId: request.modelId ?? 'mistral-small-2603',
234
- message: { role: 'assistant', content: text },
408
+ message: {
409
+ role: 'assistant',
410
+ content: text,
411
+ ...(toolCalls.length > 0 ? { toolCalls } : {}),
412
+ },
235
413
  text,
236
- toolCalls: [],
237
- finishReason: text ? 'stop' : 'unknown',
414
+ toolCalls,
415
+ finishReason: toolCalls.length > 0 ? 'tool_calls'
416
+ : rawFinish === 'length' ? 'length'
417
+ : rawFinish === 'content_filter' ? 'content_filter'
418
+ : text ? 'stop' : 'unknown',
238
419
  ...(usage ? { usage } : {}),
420
+ ...(rawFinish ? { providerRawFinishReason: rawFinish } : {}),
239
421
  };
240
422
  }
241
423
  }