@sentropic/llm-mesh 0.25.0 → 0.26.1
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/README.md +14 -0
- package/dist/catalog.d.ts +92 -0
- package/dist/catalog.d.ts.map +1 -1
- package/dist/catalog.js +47 -0
- package/dist/catalog.js.map +1 -1
- package/dist/enrollment/codex.d.ts +7 -0
- package/dist/enrollment/codex.d.ts.map +1 -1
- package/dist/enrollment/codex.js +74 -19
- package/dist/enrollment/codex.js.map +1 -1
- package/dist/enrollment/seat-bundle.d.ts +104 -0
- package/dist/enrollment/seat-bundle.d.ts.map +1 -0
- package/dist/enrollment/seat-bundle.js +304 -0
- package/dist/enrollment/seat-bundle.js.map +1 -0
- package/dist/errors.d.ts +19 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +51 -4
- package/dist/errors.js.map +1 -1
- package/dist/execution-features.d.ts +34 -0
- package/dist/execution-features.d.ts.map +1 -0
- package/dist/execution-features.js +84 -0
- package/dist/execution-features.js.map +1 -0
- package/dist/generated-model-council.d.ts +2 -2
- package/dist/generated-model-council.d.ts.map +1 -1
- package/dist/generated-model-council.js +5 -1
- package/dist/generated-model-council.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/native-messages.d.ts +130 -0
- package/dist/native-messages.d.ts.map +1 -0
- package/dist/native-messages.js +66 -0
- package/dist/native-messages.js.map +1 -0
- package/dist/node/index.d.ts +2 -0
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +1 -0
- package/dist/node/index.js.map +1 -1
- package/dist/providers.d.ts +5 -5
- package/dist/providers.d.ts.map +1 -1
- package/dist/providers.js +12 -5
- package/dist/providers.js.map +1 -1
- package/dist/responses-wire.d.ts +76 -0
- package/dist/responses-wire.d.ts.map +1 -0
- package/dist/responses-wire.js +35 -0
- package/dist/responses-wire.js.map +1 -0
- package/dist/route-attempt.d.ts +4 -0
- package/dist/route-attempt.d.ts.map +1 -1
- package/dist/route-attempt.js +8 -1
- package/dist/route-attempt.js.map +1 -1
- package/dist/route-health.d.ts +11 -0
- package/dist/route-health.d.ts.map +1 -1
- package/dist/route-health.js +32 -0
- package/dist/route-health.js.map +1 -1
- package/dist/route-planner-state.d.ts +33 -2
- package/dist/route-planner-state.d.ts.map +1 -1
- package/dist/route-planner-state.js +20 -1
- package/dist/route-planner-state.js.map +1 -1
- package/dist/route-planner.d.ts +21 -1
- package/dist/route-planner.d.ts.map +1 -1
- package/dist/route-planner.js +112 -33
- package/dist/route-planner.js.map +1 -1
- package/dist/route-quote.d.ts +16 -2
- package/dist/route-quote.d.ts.map +1 -1
- package/dist/route-quote.js +31 -5
- package/dist/route-quote.js.map +1 -1
- package/dist/route-selection.d.ts +13 -0
- package/dist/route-selection.d.ts.map +1 -1
- package/dist/route-selection.js +30 -5
- package/dist/route-selection.js.map +1 -1
- package/dist/routing-contracts.d.ts +42 -3
- package/dist/routing-contracts.d.ts.map +1 -1
- package/dist/routing-targets.d.ts +26 -0
- package/dist/routing-targets.d.ts.map +1 -1
- package/dist/routing-targets.js +96 -23
- package/dist/routing-targets.js.map +1 -1
- package/dist/service/local-account-transport-service.d.ts +9 -0
- package/dist/service/local-account-transport-service.d.ts.map +1 -1
- package/dist/service/local-account-transport-service.js +56 -9
- package/dist/service/local-account-transport-service.js.map +1 -1
- package/dist/transport/codex-runtime-client.d.ts.map +1 -1
- package/dist/transport/codex-runtime-client.js +24 -4
- package/dist/transport/codex-runtime-client.js.map +1 -1
- package/dist/transport/codex-runtime-wire.d.ts.map +1 -1
- package/dist/transport/codex-runtime-wire.js +131 -27
- package/dist/transport/codex-runtime-wire.js.map +1 -1
- package/dist/transport/mistral-runtime-client.d.ts.map +1 -1
- package/dist/transport/mistral-runtime-client.js +191 -9
- package/dist/transport/mistral-runtime-client.js.map +1 -1
- package/dist/transport/muse-runtime-client.d.ts.map +1 -1
- package/dist/transport/muse-runtime-client.js +221 -10
- package/dist/transport/muse-runtime-client.js.map +1 -1
- 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
|
-
|
|
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
|
-
|
|
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":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAMnD,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;
|
|
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;
|
|
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
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
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":"AAAA,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAMrF,MAAM,QAAQ,GAAG,CAAC,KAAc,EAA0B,EAAE,CAC1D,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAmB,CAAC,CAAC,CAAC,SAAS,CAAC;AAEhG,MAAM,SAAS,GAAG,CAAC,KAAc,EAAU,EAAE;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,CAAC;QAAC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAAC,CAAC;AACnF,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,OAAuB,EAAW,EAAE;IACnD,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC;IAChE,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAClC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QAChG,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;YAAE,OAAO;gBACpC,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY;gBACjE,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC;QACF,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI;gBACrC,CAAC,CAAC,QAAQ,IAAI,CAAC,SAAS,IAAI,0BAA0B,WAAW,IAAI,CAAC,IAAI,EAAE;gBAC5E,CAAC,CAAC,EAAE,CAAC,CAAC;YACR,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;QACtD,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI;YACrC,CAAC,CAAC,QAAQ,IAAI,CAAC,SAAS,IAAI,0BAA0B,WAAW,IAAI,CAAC,IAAI,EAAE;YAC5E,CAAC,CAAC,EAAE,CAAC,CAAC;QACR,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;IAC9E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,OAAuB,EAAa,EAAE;IAC1D,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,EAAE,CAAC;IACzE,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC5B,OAAO,CAAC;gBACN,IAAI,EAAE,sBAAsB;gBAC5B,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC,UAAU;gBAC3E,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;aAC7C,CAAC,CAAC;IACL,CAAC;IACD,MAAM,KAAK,GAAc,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC9F,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACjC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;YAC9C,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,UAAU;YACtE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa;SAC/C,CAAC,CAAC,CAAC;IACN,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,MAAqC,EAAW,EAAE,CACzE,OAAO,MAAM,KAAK,QAAQ;IACxB,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE;IACzC,CAAC,CAAC,MAAM,CAAC;AAEb,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,OAAwB,EAAE,EAAE,CACnE,4BAA4B,CAAC;IAC3B,KAAK,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAClF,MAAM,EAAE,IAAI;IACZ,YAAY,EAAE,wBAAwB,CAAC,OAAO,CAAC,QAAQ,CAAC;IACxD,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC;IAC7C,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAC1B,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAClC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW;YAChE,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM;SAClD,CAAC,CAAC;KACJ,CAAC,CAAC,CAAC,EAAE,CAAC;IACP,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,GAAG,CAAC,OAAO,CAAC,iBAAiB,KAAK,SAAS;QACzC,CAAC,CAAC,EAAE,mBAAmB,EAAE,OAAO,CAAC,iBAAiB,EAAE;QACpD,CAAC,CAAC,EAAE,CAAC;IACP,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,IAAI,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE;YACzE,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzE,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7E,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACT,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAClF,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,uEAAuE;IACvE,sEAAsE;IACtE,wEAAwE;IACxE,OAAO,EAAE,CAAC,6BAA6B,CAAC;CACzC,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,KAAc,EAA0B,EAAE;IAChF,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,OAAO,MAAM,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,IAAI,IAAI,KAAK,kBAAkB,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC5C,OAAO,CAAC;gBACN,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;oBACpB,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ;oBACvC,GAAG,CAAC,OAAO,QAAQ,EAAE,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACjF;aACF,CAAC,CAAC;IACL,CAAC;IACD,IAAI,IAAI,KAAK,4BAA4B,IAAI,OAAO,MAAM,EAAE,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/E,OAAO,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,IAAI,KAAK,uCAAuC,IAAI,OAAO,MAAM,EAAE,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC1F,OAAO,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IACvF,CAAC;IACD,IAAI,IAAI,KAAK,4BAA4B,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACpC,IAAI,IAAI,EAAE,IAAI,KAAK,eAAe;YAAE,OAAO,CAAC;oBAC1C,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE;wBAC7B,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;wBACjD,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;wBACrD,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;qBAC3E;iBACF,CAAC,CAAC;IACL,CAAC;IACD,IAAI,IAAI,KAAK,wCAAwC,IAAI,OAAO,MAAM,EAAE,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC3F,OAAO,CAAC;gBACN,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE;oBAC7B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;oBAC1D,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrE,KAAK,EAAE,MAAM,CAAC,KAAK;iBACpB;aACF,CAAC,CAAC;IACL,CAAC;IACD,IAAI,IAAI,KAAK,oBAAoB,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAAC,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACrF,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;eAC9C,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,KAAK,eAAe,CAAC,CAAC;QAC9E,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;oBAC5B,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ;oBACvE,GAAG,CAAC,OAAO,QAAQ,EAAE,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAChF,KAAK,EAAE;wBACL,WAAW,EAAE,MAAM,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC,CAAC;wBAC7C,YAAY,EAAE,MAAM,CAAC,KAAK,EAAE,aAAa,IAAI,CAAC,CAAC;wBAC/C,WAAW,EAAE,MAAM,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC,CAAC,EAAE,gBAAgB,EAAE,KAAK;qBACvE;iBACF,EAAE,CAAC,CAAC;IACP,CAAC;IACD,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,iBAAiB,EAAE,CAAC;QACnD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;QACvF,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;oBAC7B,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,IAAI,sBAAsB,CAAC;oBACjF,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC;iBAC5E,EAAE,CAAC,CAAC;IACP,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC"}
|
|
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;
|
|
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
|
|
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
|
-
|
|
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: {
|
|
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: {
|
|
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: {
|
|
408
|
+
message: {
|
|
409
|
+
role: 'assistant',
|
|
410
|
+
content: text,
|
|
411
|
+
...(toolCalls.length > 0 ? { toolCalls } : {}),
|
|
412
|
+
},
|
|
235
413
|
text,
|
|
236
|
-
toolCalls
|
|
237
|
-
finishReason:
|
|
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
|
}
|