@sentropic/llm-mesh 0.13.0 → 0.14.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.
- package/README.md +105 -6
- package/dist/account-transports.d.ts +14 -1
- package/dist/account-transports.d.ts.map +1 -1
- package/dist/account-transports.js +37 -3
- package/dist/account-transports.js.map +1 -1
- package/dist/codex.d.ts +43 -0
- package/dist/codex.d.ts.map +1 -0
- package/dist/codex.js +62 -0
- package/dist/codex.js.map +1 -0
- package/dist/enrollment/cloud-code.d.ts +6 -1
- package/dist/enrollment/cloud-code.d.ts.map +1 -1
- package/dist/enrollment/cloud-code.js +53 -25
- package/dist/enrollment/cloud-code.js.map +1 -1
- package/dist/enrollment/codex.d.ts +1 -0
- package/dist/enrollment/codex.d.ts.map +1 -1
- package/dist/enrollment/codex.js +1 -0
- package/dist/enrollment/codex.js.map +1 -1
- package/dist/enrollment/contracts.d.ts +10 -0
- package/dist/enrollment/contracts.d.ts.map +1 -1
- package/dist/equivalence-council.d.ts +61 -0
- package/dist/equivalence-council.d.ts.map +1 -0
- package/dist/equivalence-council.js +119 -0
- package/dist/equivalence-council.js.map +1 -0
- package/dist/generated-model-council.d.ts +10 -0
- package/dist/generated-model-council.d.ts.map +1 -0
- package/dist/generated-model-council.js +32 -0
- package/dist/generated-model-council.js.map +1 -0
- package/dist/generation.d.ts +3 -0
- package/dist/generation.d.ts.map +1 -1
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/messages.d.ts +8 -1
- package/dist/messages.d.ts.map +1 -1
- package/dist/node/index.d.ts +1 -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/node/keyring/encrypted-file-keyring.d.ts +13 -0
- package/dist/node/keyring/encrypted-file-keyring.d.ts.map +1 -0
- package/dist/node/keyring/encrypted-file-keyring.js +134 -0
- package/dist/node/keyring/encrypted-file-keyring.js.map +1 -0
- package/dist/route-attempt.d.ts +18 -0
- package/dist/route-attempt.d.ts.map +1 -0
- package/dist/route-attempt.js +70 -0
- package/dist/route-attempt.js.map +1 -0
- package/dist/route-health.d.ts +14 -0
- package/dist/route-health.d.ts.map +1 -0
- package/dist/route-health.js +69 -0
- package/dist/route-health.js.map +1 -0
- package/dist/route-planner-state.d.ts +37 -0
- package/dist/route-planner-state.d.ts.map +1 -0
- package/dist/route-planner-state.js +27 -0
- package/dist/route-planner-state.js.map +1 -0
- package/dist/route-planner.d.ts +48 -0
- package/dist/route-planner.d.ts.map +1 -0
- package/dist/route-planner.js +327 -0
- package/dist/route-planner.js.map +1 -0
- package/dist/route-selection.d.ts +17 -0
- package/dist/route-selection.d.ts.map +1 -0
- package/dist/route-selection.js +127 -0
- package/dist/route-selection.js.map +1 -0
- package/dist/routing-contracts.d.ts +130 -0
- package/dist/routing-contracts.d.ts.map +1 -0
- package/dist/routing-contracts.js +2 -0
- package/dist/routing-contracts.js.map +1 -0
- package/dist/routing-policy.d.ts +68 -0
- package/dist/routing-policy.d.ts.map +1 -0
- package/dist/routing-policy.js +93 -0
- package/dist/routing-policy.js.map +1 -0
- package/dist/routing-targets.d.ts +25 -0
- package/dist/routing-targets.d.ts.map +1 -0
- package/dist/routing-targets.js +48 -0
- package/dist/routing-targets.js.map +1 -0
- package/dist/service/facade.d.ts +31 -0
- package/dist/service/facade.d.ts.map +1 -1
- package/dist/service/facade.js +11 -2
- package/dist/service/facade.js.map +1 -1
- package/dist/service/local-account-transport-service.d.ts +15 -2
- package/dist/service/local-account-transport-service.d.ts.map +1 -1
- package/dist/service/local-account-transport-service.js +279 -17
- package/dist/service/local-account-transport-service.js.map +1 -1
- package/dist/transport/cloud-code-runtime-client.d.ts +22 -0
- package/dist/transport/cloud-code-runtime-client.d.ts.map +1 -0
- package/dist/transport/cloud-code-runtime-client.js +306 -0
- package/dist/transport/cloud-code-runtime-client.js.map +1 -0
- package/dist/transport/cloud-code-transport.d.ts +3 -0
- package/dist/transport/cloud-code-transport.d.ts.map +1 -1
- package/dist/transport/cloud-code-transport.js +39 -10
- package/dist/transport/cloud-code-transport.js.map +1 -1
- package/dist/transport/codex-runtime-client.d.ts +17 -0
- package/dist/transport/codex-runtime-client.d.ts.map +1 -0
- package/dist/transport/codex-runtime-client.js +121 -0
- package/dist/transport/codex-runtime-client.js.map +1 -0
- package/dist/transport/codex-runtime-wire.d.ts +5 -0
- package/dist/transport/codex-runtime-wire.d.ts.map +1 -0
- package/dist/transport/codex-runtime-wire.js +144 -0
- package/dist/transport/codex-runtime-wire.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
import { getSecretAuthMaterial } from '../auth.js';
|
|
2
|
+
import { CloudCodeProviderAdapter } from './cloud-code-transport.js';
|
|
3
|
+
const asSchema = (value) => value && typeof value === 'object' && !Array.isArray(value)
|
|
4
|
+
? value
|
|
5
|
+
: undefined;
|
|
6
|
+
/**
|
|
7
|
+
* Project JSON Schema onto the Cloud Code subset and return every lossy step.
|
|
8
|
+
* The provider request carries only `schema`; diagnostics travel on the local
|
|
9
|
+
* canonical stream so weakening is observable without sending unknown fields
|
|
10
|
+
* to Google.
|
|
11
|
+
*/
|
|
12
|
+
export const projectCloudCodeSchema = (value, path = '$') => {
|
|
13
|
+
const input = asSchema(value);
|
|
14
|
+
if (!input)
|
|
15
|
+
return { schema: {}, droppedConstraints: [`${path}:non-object-schema`] };
|
|
16
|
+
const output = {};
|
|
17
|
+
const dropped = [];
|
|
18
|
+
const handled = new Set([
|
|
19
|
+
'type', 'format', 'title', 'description', 'nullable', 'minItems', 'maxItems',
|
|
20
|
+
'minimum', 'maximum', 'enum', 'const', 'items', 'properties', 'required',
|
|
21
|
+
'anyOf', 'oneOf', 'default', 'examples',
|
|
22
|
+
]);
|
|
23
|
+
const declaredTypes = Array.isArray(input.type) ? input.type : undefined;
|
|
24
|
+
const type = declaredTypes?.find((entry) => entry !== 'null') ?? input.type;
|
|
25
|
+
if (typeof type === 'string')
|
|
26
|
+
output.type = type;
|
|
27
|
+
if (declaredTypes?.includes('null'))
|
|
28
|
+
output.nullable = true;
|
|
29
|
+
for (const key of ['format', 'title', 'description']) {
|
|
30
|
+
if (typeof input[key] === 'string')
|
|
31
|
+
output[key] = input[key];
|
|
32
|
+
}
|
|
33
|
+
for (const key of ['nullable', 'minItems', 'maxItems', 'minimum', 'maximum']) {
|
|
34
|
+
if (typeof input[key] === 'boolean' || typeof input[key] === 'number') {
|
|
35
|
+
output[key] = input[key];
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (Array.isArray(input.enum) && input.enum.every((entry) => typeof entry === 'string')) {
|
|
39
|
+
output.enum = input.enum;
|
|
40
|
+
}
|
|
41
|
+
else if (typeof input.const === 'string') {
|
|
42
|
+
output.enum = [input.const];
|
|
43
|
+
}
|
|
44
|
+
if (input.items !== undefined) {
|
|
45
|
+
const projected = projectCloudCodeSchema(input.items, `${path}.items`);
|
|
46
|
+
output.items = projected.schema;
|
|
47
|
+
dropped.push(...projected.droppedConstraints);
|
|
48
|
+
}
|
|
49
|
+
const properties = asSchema(input.properties);
|
|
50
|
+
if (properties) {
|
|
51
|
+
output.properties = Object.fromEntries(Object.entries(properties).map(([key, schema]) => {
|
|
52
|
+
const projected = projectCloudCodeSchema(schema, `${path}.properties.${key}`);
|
|
53
|
+
dropped.push(...projected.droppedConstraints);
|
|
54
|
+
return [key, projected.schema];
|
|
55
|
+
}));
|
|
56
|
+
}
|
|
57
|
+
if (Array.isArray(input.required)) {
|
|
58
|
+
output.required = input.required.filter((entry) => typeof entry === 'string');
|
|
59
|
+
}
|
|
60
|
+
const alternatives = Array.isArray(input.anyOf)
|
|
61
|
+
? input.anyOf
|
|
62
|
+
: Array.isArray(input.oneOf) ? input.oneOf : undefined;
|
|
63
|
+
if (alternatives) {
|
|
64
|
+
output.anyOf = alternatives.map((alternative, index) => {
|
|
65
|
+
const projected = projectCloudCodeSchema(alternative, `${path}.anyOf[${index}]`);
|
|
66
|
+
dropped.push(...projected.droppedConstraints);
|
|
67
|
+
return projected.schema;
|
|
68
|
+
});
|
|
69
|
+
if (Array.isArray(input.oneOf))
|
|
70
|
+
dropped.push(`${path}:oneOf->anyOf`);
|
|
71
|
+
}
|
|
72
|
+
if (Array.isArray(input.enum) && !input.enum.every((entry) => typeof entry === 'string')) {
|
|
73
|
+
dropped.push(`${path}:non-string-enum`);
|
|
74
|
+
}
|
|
75
|
+
if (input.const !== undefined && typeof input.const !== 'string') {
|
|
76
|
+
dropped.push(`${path}:non-string-const`);
|
|
77
|
+
}
|
|
78
|
+
for (const key of Object.keys(input)) {
|
|
79
|
+
if (!handled.has(key))
|
|
80
|
+
dropped.push(`${path}:${key}`);
|
|
81
|
+
}
|
|
82
|
+
return { schema: output, droppedConstraints: [...new Set(dropped)].sort() };
|
|
83
|
+
};
|
|
84
|
+
const messageParts = (message) => {
|
|
85
|
+
if (typeof message.content === 'string')
|
|
86
|
+
return [{ text: message.content }];
|
|
87
|
+
return message.content.map((part) => {
|
|
88
|
+
if (part.type === 'text')
|
|
89
|
+
return { text: part.text };
|
|
90
|
+
if (part.type === 'reasoning')
|
|
91
|
+
return {
|
|
92
|
+
text: part.text,
|
|
93
|
+
thought: true,
|
|
94
|
+
...(part.signature ? { thoughtSignature: part.signature } : {}),
|
|
95
|
+
};
|
|
96
|
+
if (part.type === 'image')
|
|
97
|
+
return part.data
|
|
98
|
+
? { inlineData: { mimeType: part.mediaType ?? 'application/octet-stream', data: part.data } }
|
|
99
|
+
: { fileData: { mimeType: part.mediaType, fileUri: part.url } };
|
|
100
|
+
return part.data
|
|
101
|
+
? { inlineData: { mimeType: part.mediaType ?? 'application/octet-stream', data: part.data } }
|
|
102
|
+
: { fileData: { mimeType: part.mediaType, fileUri: part.url } };
|
|
103
|
+
});
|
|
104
|
+
};
|
|
105
|
+
const cloudCodeToolConfig = (request) => {
|
|
106
|
+
if (!request.toolChoice)
|
|
107
|
+
return undefined;
|
|
108
|
+
const choice = request.toolChoice;
|
|
109
|
+
const mode = choice === 'required' || (typeof choice === 'object' && choice.type === 'tool')
|
|
110
|
+
? 'ANY'
|
|
111
|
+
: choice === 'none' ? 'NONE' : 'AUTO';
|
|
112
|
+
return {
|
|
113
|
+
functionCallingConfig: {
|
|
114
|
+
mode,
|
|
115
|
+
...(typeof choice === 'object' && choice.type === 'tool'
|
|
116
|
+
? { allowedFunctionNames: [choice.name] }
|
|
117
|
+
: {}),
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
};
|
|
121
|
+
const cloudCodeThinkingConfig = (request) => {
|
|
122
|
+
if (!request.reasoning)
|
|
123
|
+
return undefined;
|
|
124
|
+
const config = {
|
|
125
|
+
...(request.reasoning.effort && request.reasoning.effort !== 'none'
|
|
126
|
+
? {
|
|
127
|
+
thinkingLevel: request.reasoning.effort === 'low'
|
|
128
|
+
? 'LOW'
|
|
129
|
+
: request.reasoning.effort === 'medium' ? 'MEDIUM' : 'HIGH',
|
|
130
|
+
}
|
|
131
|
+
: {}),
|
|
132
|
+
...(request.reasoning.enabled !== undefined
|
|
133
|
+
? { includeThoughts: request.reasoning.enabled }
|
|
134
|
+
: {}),
|
|
135
|
+
...(request.reasoning.budgetTokens !== undefined
|
|
136
|
+
? { thinkingBudget: request.reasoning.budgetTokens }
|
|
137
|
+
: {}),
|
|
138
|
+
};
|
|
139
|
+
return Object.keys(config).length > 0 ? config : undefined;
|
|
140
|
+
};
|
|
141
|
+
const functionResponse = (output) => asSchema(output) ?? { output: output ?? null };
|
|
142
|
+
const contents = (messages) => messages.flatMap((message) => {
|
|
143
|
+
if (message.role === 'system' || message.role === 'developer')
|
|
144
|
+
return [];
|
|
145
|
+
if (message.role === 'tool')
|
|
146
|
+
return [{
|
|
147
|
+
role: 'user', parts: [{ functionResponse: {
|
|
148
|
+
id: message.toolResult.providerCallId ?? message.toolResult.toolCallId,
|
|
149
|
+
name: message.toolResult.name, response: functionResponse(message.toolResult.output),
|
|
150
|
+
} }],
|
|
151
|
+
}];
|
|
152
|
+
const parts = messageParts(message);
|
|
153
|
+
if (message.role === 'assistant')
|
|
154
|
+
message.toolCalls?.forEach((call) => parts.push({
|
|
155
|
+
...(typeof call.metadata?.thoughtSignature === 'string'
|
|
156
|
+
? { thoughtSignature: call.metadata.thoughtSignature }
|
|
157
|
+
: {}),
|
|
158
|
+
functionCall: {
|
|
159
|
+
id: call.providerCallId ?? call.toolCallId, name: call.name,
|
|
160
|
+
args: call.arguments ?? (() => {
|
|
161
|
+
try {
|
|
162
|
+
return JSON.parse(call.argumentsText);
|
|
163
|
+
}
|
|
164
|
+
catch {
|
|
165
|
+
return call.argumentsText;
|
|
166
|
+
}
|
|
167
|
+
})(),
|
|
168
|
+
},
|
|
169
|
+
}));
|
|
170
|
+
return [{ role: message.role === 'assistant' ? 'model' : 'user', parts }];
|
|
171
|
+
});
|
|
172
|
+
const providerRequest = (request) => {
|
|
173
|
+
const projections = request.tools?.map((tool) => ({
|
|
174
|
+
tool,
|
|
175
|
+
projection: projectCloudCodeSchema(tool.inputSchema, `tools.${tool.name}`),
|
|
176
|
+
})) ?? [];
|
|
177
|
+
const droppedConstraints = projections.flatMap(({ projection }) => projection.droppedConstraints);
|
|
178
|
+
return {
|
|
179
|
+
modelId: request.modelId ?? (typeof request.model === 'string' ? request.model : ''),
|
|
180
|
+
contents: contents(request.messages),
|
|
181
|
+
systemInstruction: {
|
|
182
|
+
parts: request.messages
|
|
183
|
+
.filter((message) => message.role === 'system' || message.role === 'developer')
|
|
184
|
+
.flatMap(messageParts),
|
|
185
|
+
},
|
|
186
|
+
...(projections.length ? { tools: [{ functionDeclarations: projections.map(({ tool, projection }) => ({
|
|
187
|
+
name: tool.name, description: tool.description, parameters: projection.schema,
|
|
188
|
+
})) }] } : {}),
|
|
189
|
+
...(droppedConstraints.length > 0 ? { diagnostics: [{
|
|
190
|
+
code: 'cloud-code-schema-projection-loss',
|
|
191
|
+
message: `Cloud Code schema projection omitted ${droppedConstraints.length} constraint(s)`,
|
|
192
|
+
metadata: { droppedConstraints },
|
|
193
|
+
}] } : {}),
|
|
194
|
+
...(cloudCodeToolConfig(request) ? { toolConfig: cloudCodeToolConfig(request) } : {}),
|
|
195
|
+
generationConfig: {
|
|
196
|
+
...(request.temperature !== undefined ? { temperature: request.temperature } : {}),
|
|
197
|
+
...(request.topP !== undefined ? { topP: request.topP } : {}),
|
|
198
|
+
...(request.maxOutputTokens !== undefined ? { maxOutputTokens: request.maxOutputTokens } : {}),
|
|
199
|
+
...(cloudCodeThinkingConfig(request)
|
|
200
|
+
? { thinkingConfig: cloudCodeThinkingConfig(request) }
|
|
201
|
+
: {}),
|
|
202
|
+
},
|
|
203
|
+
};
|
|
204
|
+
};
|
|
205
|
+
const usage = (value) => {
|
|
206
|
+
const record = value && typeof value === 'object' ? value : {};
|
|
207
|
+
const inputTokens = Number(record.promptTokenCount ?? record.promptTokens ?? 0);
|
|
208
|
+
const outputTokens = Number(record.candidatesTokenCount ?? record.outputTokens ?? 0);
|
|
209
|
+
return {
|
|
210
|
+
inputTokens, outputTokens,
|
|
211
|
+
totalTokens: Number(record.totalTokenCount ?? inputTokens + outputTokens),
|
|
212
|
+
providerRawUsage: value,
|
|
213
|
+
};
|
|
214
|
+
};
|
|
215
|
+
export class CloudCodeRuntimeClient {
|
|
216
|
+
adapter;
|
|
217
|
+
constructor(fetchFn = fetch) { this.adapter = new CloudCodeProviderAdapter(fetchFn); }
|
|
218
|
+
async stream(request, context) {
|
|
219
|
+
const auth = getSecretAuthMaterial(context?.auth);
|
|
220
|
+
if (!auth || auth.type !== 'account-transport' || !auth.accessToken) {
|
|
221
|
+
throw Object.assign(new Error('Cloud Code account token is missing'), { status: 401 });
|
|
222
|
+
}
|
|
223
|
+
const material = auth;
|
|
224
|
+
const metadata = material.metadata;
|
|
225
|
+
const acquisition = {
|
|
226
|
+
material,
|
|
227
|
+
descriptor: { sourceType: 'account-transport', accountProviderId: material.provider },
|
|
228
|
+
lease: {
|
|
229
|
+
leaseId: String(metadata?.leaseId ?? 'route'), accountId: material.accountId ?? 'route',
|
|
230
|
+
stableSessionId: String(metadata?.stableSessionId ?? 'route'),
|
|
231
|
+
createdAt: new Date().toISOString(),
|
|
232
|
+
},
|
|
233
|
+
reservation: {
|
|
234
|
+
reservationId: 'route', accountId: material.accountId ?? 'route', leaseId: 'route',
|
|
235
|
+
expiresAt: new Date().toISOString(),
|
|
236
|
+
},
|
|
237
|
+
runtime: { stableSessionId: String(metadata?.stableSessionId ?? 'route'), metadata },
|
|
238
|
+
async recordOutcome() { },
|
|
239
|
+
};
|
|
240
|
+
return this.events(this.adapter.execute(acquisition, providerRequest(request), request.signal ?? new AbortController().signal));
|
|
241
|
+
}
|
|
242
|
+
async *events(source) {
|
|
243
|
+
let sawToolCall = false;
|
|
244
|
+
for await (const event of source) {
|
|
245
|
+
if (event.kind === 'content')
|
|
246
|
+
yield { type: 'content_delta', data: { delta: event.delta } };
|
|
247
|
+
else if (event.kind === 'reasoning')
|
|
248
|
+
yield {
|
|
249
|
+
type: 'reasoning_delta', data: { delta: event.delta, kind: 'summary' },
|
|
250
|
+
};
|
|
251
|
+
else if (event.kind === 'tool-call') {
|
|
252
|
+
sawToolCall = true;
|
|
253
|
+
yield { type: 'tool_call_start', data: {
|
|
254
|
+
toolCallId: event.id, providerCallId: event.id, name: event.name,
|
|
255
|
+
argumentsText: JSON.stringify(event.arguments), arguments: event.arguments,
|
|
256
|
+
...(event.metadata ? { metadata: event.metadata } : {}),
|
|
257
|
+
} };
|
|
258
|
+
}
|
|
259
|
+
else if (event.kind === 'diagnostic')
|
|
260
|
+
yield {
|
|
261
|
+
type: 'status', data: {
|
|
262
|
+
status: 'schema_projection', providerId: 'gemini',
|
|
263
|
+
message: event.message,
|
|
264
|
+
metadata: { code: event.code, ...(event.metadata ?? {}) },
|
|
265
|
+
},
|
|
266
|
+
};
|
|
267
|
+
else if (event.kind === 'error')
|
|
268
|
+
yield { type: 'error', data: {
|
|
269
|
+
providerId: 'gemini', message: event.message, code: event.code,
|
|
270
|
+
retryable: event.statusCode === 429 || Boolean(event.statusCode && event.statusCode >= 500),
|
|
271
|
+
...(event.statusCode ? { statusCode: event.statusCode } : {}),
|
|
272
|
+
...(event.retryAfterMs ? { retryAfterMs: event.retryAfterMs } : {}),
|
|
273
|
+
} };
|
|
274
|
+
else
|
|
275
|
+
yield { type: 'done', data: {
|
|
276
|
+
finishReason: sawToolCall || event.finishReason === 'FUNCTION_CALL'
|
|
277
|
+
? 'tool_calls'
|
|
278
|
+
: event.finishReason === 'MAX_TOKENS' ? 'length' : 'stop',
|
|
279
|
+
usage: usage(event.usage),
|
|
280
|
+
} };
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
async generate(request, context) {
|
|
284
|
+
let text = '';
|
|
285
|
+
let finalUsage;
|
|
286
|
+
const calls = [];
|
|
287
|
+
for await (const event of await this.stream(request, context)) {
|
|
288
|
+
if (event.type === 'content_delta')
|
|
289
|
+
text += event.data.delta;
|
|
290
|
+
else if (event.type === 'tool_call_start')
|
|
291
|
+
calls.push(event.data);
|
|
292
|
+
else if (event.type === 'error')
|
|
293
|
+
throw Object.assign(new Error(event.data.message), event.data);
|
|
294
|
+
else if (event.type === 'done')
|
|
295
|
+
finalUsage = event.data.usage;
|
|
296
|
+
}
|
|
297
|
+
return {
|
|
298
|
+
id: 'cloud_code_response', providerId: 'gemini',
|
|
299
|
+
modelId: request.modelId ?? 'gemini-3.5-flash',
|
|
300
|
+
message: { role: 'assistant', content: text, ...(calls.length ? { toolCalls: calls } : {}) },
|
|
301
|
+
text, toolCalls: calls, finishReason: calls.length ? 'tool_calls' : 'stop',
|
|
302
|
+
...(finalUsage ? { usage: finalUsage } : {}),
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
//# sourceMappingURL=cloud-code-runtime-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud-code-runtime-client.js","sourceRoot":"","sources":["../../src/transport/cloud-code-runtime-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,9 @@ export interface CloudCodeEnvelope {
|
|
|
10
10
|
request: {
|
|
11
11
|
contents: unknown[];
|
|
12
12
|
generationConfig?: unknown;
|
|
13
|
+
systemInstruction?: unknown;
|
|
14
|
+
tools?: unknown[];
|
|
15
|
+
toolConfig?: unknown;
|
|
13
16
|
};
|
|
14
17
|
}
|
|
15
18
|
export declare function buildCloudCodeRequest(acquisition: AccountTransportAcquisition, request: ProviderRequest): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-code-transport.d.ts","sourceRoot":"","sources":["../../src/transport/cloud-code-transport.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAE9B,eAAO,MAAM,qBAAqB,uFACoD,CAAC;AACvF,eAAO,MAAM,qBAAqB,2FACwD,CAAC;AAE3F,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE;QACP,QAAQ,EAAE,OAAO,EAAE,CAAC;QACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"cloud-code-transport.d.ts","sourceRoot":"","sources":["../../src/transport/cloud-code-transport.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAE9B,eAAO,MAAM,qBAAqB,uFACoD,CAAC;AACvF,eAAO,MAAM,qBAAqB,2FACwD,CAAC;AAE3F,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE;QACP,QAAQ,EAAE,OAAO,EAAE,CAAC;QACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;QAClB,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,CAAC;CACH;AAED,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,2BAA2B,EACxC,OAAO,EAAE,eAAe,GACvB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAyC3E;AAED,wBAAuB,iBAAiB,CACtC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACjC,aAAa,CAAC,aAAa,CAAC,CAsF9B;AAED,qBAAa,wBAAyB,YAAW,eAAe;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,GAAE,OAAO,KAAa;IAEnD,OAAO,CACZ,WAAW,EAAE,2BAA2B,EACxC,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,WAAW,GAClB,aAAa,CAAC,aAAa,CAAC;CAqIhC"}
|
|
@@ -24,6 +24,9 @@ export function buildCloudCodeRequest(acquisition, request) {
|
|
|
24
24
|
request: {
|
|
25
25
|
contents: request.contents,
|
|
26
26
|
...(request.generationConfig ? { generationConfig: request.generationConfig } : {}),
|
|
27
|
+
...(request.systemInstruction ? { systemInstruction: request.systemInstruction } : {}),
|
|
28
|
+
...(request.tools?.length ? { tools: request.tools } : {}),
|
|
29
|
+
...(request.toolConfig ? { toolConfig: request.toolConfig } : {}),
|
|
27
30
|
},
|
|
28
31
|
};
|
|
29
32
|
return {
|
|
@@ -37,6 +40,7 @@ export async function* parseCloudCodeSSE(stream) {
|
|
|
37
40
|
const decoder = new TextDecoder();
|
|
38
41
|
let buffer = '';
|
|
39
42
|
let lastUsage = null;
|
|
43
|
+
let lastFinishReason;
|
|
40
44
|
try {
|
|
41
45
|
while (true) {
|
|
42
46
|
const { done, value } = await reader.read();
|
|
@@ -54,24 +58,39 @@ export async function* parseCloudCodeSSE(stream) {
|
|
|
54
58
|
continue;
|
|
55
59
|
try {
|
|
56
60
|
const parsed = JSON.parse(dataStr);
|
|
57
|
-
|
|
61
|
+
const payload = parsed.response ?? parsed;
|
|
62
|
+
if (payload.error) {
|
|
58
63
|
yield {
|
|
59
64
|
kind: 'error',
|
|
60
|
-
code: String(
|
|
61
|
-
message:
|
|
65
|
+
code: String(payload.error.code ?? 'sse_error'),
|
|
66
|
+
message: payload.error.message ?? 'Cloud Code SSE stream error',
|
|
62
67
|
};
|
|
63
68
|
return;
|
|
64
69
|
}
|
|
65
|
-
const parts =
|
|
70
|
+
const parts = payload.candidates?.[0]?.content?.parts;
|
|
66
71
|
if (parts) {
|
|
67
72
|
for (const part of parts) {
|
|
68
|
-
if (part.text)
|
|
69
|
-
yield {
|
|
70
|
-
|
|
73
|
+
if (part.text)
|
|
74
|
+
yield {
|
|
75
|
+
kind: part.thought ? 'reasoning' : 'content', delta: part.text,
|
|
76
|
+
};
|
|
77
|
+
if (part.functionCall?.name)
|
|
78
|
+
yield {
|
|
79
|
+
kind: 'tool-call',
|
|
80
|
+
id: part.functionCall.id ?? part.functionCall.name,
|
|
81
|
+
name: part.functionCall.name,
|
|
82
|
+
arguments: part.functionCall.args ?? {},
|
|
83
|
+
...(part.thoughtSignature
|
|
84
|
+
? { metadata: { thoughtSignature: part.thoughtSignature } }
|
|
85
|
+
: {}),
|
|
86
|
+
};
|
|
71
87
|
}
|
|
72
88
|
}
|
|
73
|
-
if (
|
|
74
|
-
lastUsage =
|
|
89
|
+
if (payload.usageMetadata) {
|
|
90
|
+
lastUsage = payload.usageMetadata;
|
|
91
|
+
}
|
|
92
|
+
if (typeof payload.candidates?.[0]?.finishReason === 'string') {
|
|
93
|
+
lastFinishReason = payload.candidates[0].finishReason;
|
|
75
94
|
}
|
|
76
95
|
}
|
|
77
96
|
catch {
|
|
@@ -80,7 +99,10 @@ export async function* parseCloudCodeSSE(stream) {
|
|
|
80
99
|
}
|
|
81
100
|
}
|
|
82
101
|
// P1-1: Yield done event exactly once after stream completion
|
|
83
|
-
yield {
|
|
102
|
+
yield {
|
|
103
|
+
kind: 'done', usage: lastUsage ?? {},
|
|
104
|
+
...(lastFinishReason ? { finishReason: lastFinishReason } : {}),
|
|
105
|
+
};
|
|
84
106
|
}
|
|
85
107
|
finally {
|
|
86
108
|
reader.releaseLock();
|
|
@@ -97,6 +119,9 @@ export class CloudCodeProviderAdapter {
|
|
|
97
119
|
return;
|
|
98
120
|
}
|
|
99
121
|
const { url, headers, body } = buildCloudCodeRequest(acquisition, request);
|
|
122
|
+
for (const diagnostic of request.diagnostics ?? []) {
|
|
123
|
+
yield { kind: 'diagnostic', ...diagnostic };
|
|
124
|
+
}
|
|
100
125
|
let response;
|
|
101
126
|
try {
|
|
102
127
|
response = await this.fetchFn(url, {
|
|
@@ -134,6 +159,7 @@ export class CloudCodeProviderAdapter {
|
|
|
134
159
|
kind: 'error',
|
|
135
160
|
code: 'auth_failed',
|
|
136
161
|
message: `Cloud Code authentication failed (${response.status})`,
|
|
162
|
+
statusCode: response.status,
|
|
137
163
|
};
|
|
138
164
|
return;
|
|
139
165
|
}
|
|
@@ -155,6 +181,8 @@ export class CloudCodeProviderAdapter {
|
|
|
155
181
|
kind: 'error',
|
|
156
182
|
code: 'rate_limited',
|
|
157
183
|
message: 'Cloud Code rate limit exceeded (429)',
|
|
184
|
+
statusCode: 429,
|
|
185
|
+
retryAfterMs,
|
|
158
186
|
};
|
|
159
187
|
return;
|
|
160
188
|
}
|
|
@@ -167,6 +195,7 @@ export class CloudCodeProviderAdapter {
|
|
|
167
195
|
kind: 'error',
|
|
168
196
|
code: 'http_error',
|
|
169
197
|
message: `Cloud Code HTTP error (${response.status})`,
|
|
198
|
+
statusCode: response.status,
|
|
170
199
|
};
|
|
171
200
|
return;
|
|
172
201
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-code-transport.js","sourceRoot":"","sources":["../../src/transport/cloud-code-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAQpC,MAAM,CAAC,MAAM,qBAAqB,GAChC,oFAAoF,CAAC;AACvF,MAAM,CAAC,MAAM,qBAAqB,GAChC,wFAAwF,CAAC;
|
|
1
|
+
{"version":3,"file":"cloud-code-transport.js","sourceRoot":"","sources":["../../src/transport/cloud-code-transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { GenerateRequest, GenerateResponse, StreamRequest, StreamResult } from '../generation.js';
|
|
2
|
+
import type { OpenAIAdapterClient } from '../adapters.js';
|
|
3
|
+
import type { ProviderRuntimeContext } from '../registry.js';
|
|
4
|
+
export interface CodexRuntimeClientOptions {
|
|
5
|
+
readonly fetch?: typeof fetch;
|
|
6
|
+
readonly originator?: string;
|
|
7
|
+
readonly userAgent?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare class CodexRuntimeClient implements OpenAIAdapterClient {
|
|
10
|
+
private readonly fetchFn;
|
|
11
|
+
private readonly originator;
|
|
12
|
+
private readonly userAgent;
|
|
13
|
+
constructor(options?: CodexRuntimeClientOptions);
|
|
14
|
+
stream(request: StreamRequest, context?: ProviderRuntimeContext): Promise<StreamResult>;
|
|
15
|
+
generate(request: GenerateRequest, context?: ProviderRuntimeContext): Promise<GenerateResponse>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=codex-runtime-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-runtime-client.d.ts","sourceRoot":"","sources":["../../src/transport/codex-runtime-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACvG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAK7D,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAwBD,qBAAa,kBAAmB,YAAW,mBAAmB;IAC5D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,OAAO,GAAE,yBAA8B;IAM7C,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,YAAY,CAAC;IAqCvF,QAAQ,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAmCtG"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { getSecretAuthMaterial } from '../auth.js';
|
|
2
|
+
import { buildCodexRuntimeRequest, decodeCodexRuntimeEvent } from './codex-runtime-wire.js';
|
|
3
|
+
const parseSse = async function* (body) {
|
|
4
|
+
const reader = body.getReader();
|
|
5
|
+
const decoder = new TextDecoder();
|
|
6
|
+
let buffer = '';
|
|
7
|
+
try {
|
|
8
|
+
while (true) {
|
|
9
|
+
const result = await reader.read();
|
|
10
|
+
if (result.done)
|
|
11
|
+
break;
|
|
12
|
+
buffer += decoder.decode(result.value, { stream: true });
|
|
13
|
+
let boundary = buffer.indexOf('\n\n');
|
|
14
|
+
while (boundary >= 0) {
|
|
15
|
+
const block = buffer.slice(0, boundary);
|
|
16
|
+
buffer = buffer.slice(boundary + 2);
|
|
17
|
+
const payload = block.split('\n').filter((line) => line.startsWith('data:'))
|
|
18
|
+
.map((line) => line.slice(5).trim()).join('\n');
|
|
19
|
+
if (payload && payload !== '[DONE]')
|
|
20
|
+
yield JSON.parse(payload);
|
|
21
|
+
boundary = buffer.indexOf('\n\n');
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
finally {
|
|
26
|
+
reader.releaseLock();
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
const tokenUsage = (event) => event.type === 'done' ? event.data.usage : undefined;
|
|
30
|
+
export class CodexRuntimeClient {
|
|
31
|
+
fetchFn;
|
|
32
|
+
originator;
|
|
33
|
+
userAgent;
|
|
34
|
+
constructor(options = {}) {
|
|
35
|
+
this.fetchFn = options.fetch ?? fetch;
|
|
36
|
+
this.originator = options.originator ?? 'sentropic-llm-mesh';
|
|
37
|
+
this.userAgent = options.userAgent ?? '@sentropic/llm-mesh';
|
|
38
|
+
}
|
|
39
|
+
async stream(request, context) {
|
|
40
|
+
const auth = getSecretAuthMaterial(context?.auth);
|
|
41
|
+
if (!auth || !('accessToken' in auth) || !auth.accessToken) {
|
|
42
|
+
throw Object.assign(new Error('Codex account token is missing'), { status: 401 });
|
|
43
|
+
}
|
|
44
|
+
const prepared = buildCodexRuntimeRequest(request);
|
|
45
|
+
const metadata = 'metadata' in auth ? auth.metadata : undefined;
|
|
46
|
+
const stableSessionId = typeof metadata?.stableSessionId === 'string'
|
|
47
|
+
? metadata.stableSessionId : undefined;
|
|
48
|
+
const accountId = 'accountId' in auth ? auth.accountId : undefined;
|
|
49
|
+
const response = await this.fetchFn(prepared.url, {
|
|
50
|
+
method: 'POST', signal: request.signal,
|
|
51
|
+
headers: {
|
|
52
|
+
authorization: `Bearer ${auth.accessToken}`,
|
|
53
|
+
'content-type': 'application/json', accept: 'text/event-stream',
|
|
54
|
+
originator: this.originator, 'user-agent': this.userAgent,
|
|
55
|
+
session_id: stableSessionId ?? `codex_${Date.now().toString(36)}`,
|
|
56
|
+
...(accountId ? { 'chatgpt-account-id': accountId } : {}),
|
|
57
|
+
},
|
|
58
|
+
body: JSON.stringify(prepared.body),
|
|
59
|
+
});
|
|
60
|
+
if (!response.ok || !response.body) {
|
|
61
|
+
const retryAfter = Number(response.headers.get('retry-after'));
|
|
62
|
+
throw Object.assign(new Error(`Codex HTTP error (${response.status})`), {
|
|
63
|
+
status: response.status,
|
|
64
|
+
...(Number.isFinite(retryAfter) && retryAfter > 0
|
|
65
|
+
? { retryAfterMs: retryAfter * 1_000 }
|
|
66
|
+
: {}),
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
return (async function* () {
|
|
70
|
+
for await (const raw of parseSse(response.body)) {
|
|
71
|
+
for (const event of decodeCodexRuntimeEvent(raw))
|
|
72
|
+
yield event;
|
|
73
|
+
}
|
|
74
|
+
})();
|
|
75
|
+
}
|
|
76
|
+
async generate(request, context) {
|
|
77
|
+
const stream = await this.stream(request, context);
|
|
78
|
+
let text = '';
|
|
79
|
+
let usage;
|
|
80
|
+
let responseId = 'codex_response';
|
|
81
|
+
let finishReason = 'unknown';
|
|
82
|
+
const toolCalls = new Map();
|
|
83
|
+
for await (const event of stream) {
|
|
84
|
+
if (event.type === 'content_delta')
|
|
85
|
+
text += event.data.delta;
|
|
86
|
+
else if (event.type === 'tool_call_start')
|
|
87
|
+
toolCalls.set(event.data.toolCallId, event.data);
|
|
88
|
+
else if (event.type === 'tool_call_delta') {
|
|
89
|
+
const current = toolCalls.get(event.data.toolCallId);
|
|
90
|
+
if (current)
|
|
91
|
+
toolCalls.set(event.data.toolCallId, {
|
|
92
|
+
...current, argumentsText: `${current.argumentsText}${event.data.delta}`,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
else if (event.type === 'error') {
|
|
96
|
+
throw Object.assign(new Error(event.data.message), event.data);
|
|
97
|
+
}
|
|
98
|
+
else if (event.type === 'done') {
|
|
99
|
+
usage = tokenUsage(event);
|
|
100
|
+
responseId = event.data.providerResponseId ?? responseId;
|
|
101
|
+
finishReason = event.data.finishReason ?? 'unknown';
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
const calls = [...toolCalls.values()];
|
|
105
|
+
// The live Codex backend can emit function-call items incrementally while
|
|
106
|
+
// omitting them from response.completed.output. Collected calls are the
|
|
107
|
+
// authoritative terminal signal for the canonical response.
|
|
108
|
+
if (calls.length > 0)
|
|
109
|
+
finishReason = 'tool_calls';
|
|
110
|
+
return {
|
|
111
|
+
id: responseId, providerId: 'openai',
|
|
112
|
+
modelId: request.modelId ?? 'gpt-5.6-terra',
|
|
113
|
+
message: {
|
|
114
|
+
role: 'assistant', content: text,
|
|
115
|
+
...(calls.length > 0 ? { toolCalls: calls } : {}),
|
|
116
|
+
},
|
|
117
|
+
text, toolCalls: calls, finishReason, ...(usage ? { usage } : {}),
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=codex-runtime-client.js.map
|