@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.
Files changed (100) hide show
  1. package/README.md +105 -6
  2. package/dist/account-transports.d.ts +14 -1
  3. package/dist/account-transports.d.ts.map +1 -1
  4. package/dist/account-transports.js +37 -3
  5. package/dist/account-transports.js.map +1 -1
  6. package/dist/codex.d.ts +43 -0
  7. package/dist/codex.d.ts.map +1 -0
  8. package/dist/codex.js +62 -0
  9. package/dist/codex.js.map +1 -0
  10. package/dist/enrollment/cloud-code.d.ts +6 -1
  11. package/dist/enrollment/cloud-code.d.ts.map +1 -1
  12. package/dist/enrollment/cloud-code.js +53 -25
  13. package/dist/enrollment/cloud-code.js.map +1 -1
  14. package/dist/enrollment/codex.d.ts +1 -0
  15. package/dist/enrollment/codex.d.ts.map +1 -1
  16. package/dist/enrollment/codex.js +1 -0
  17. package/dist/enrollment/codex.js.map +1 -1
  18. package/dist/enrollment/contracts.d.ts +10 -0
  19. package/dist/enrollment/contracts.d.ts.map +1 -1
  20. package/dist/equivalence-council.d.ts +61 -0
  21. package/dist/equivalence-council.d.ts.map +1 -0
  22. package/dist/equivalence-council.js +119 -0
  23. package/dist/equivalence-council.js.map +1 -0
  24. package/dist/generated-model-council.d.ts +10 -0
  25. package/dist/generated-model-council.d.ts.map +1 -0
  26. package/dist/generated-model-council.js +32 -0
  27. package/dist/generated-model-council.js.map +1 -0
  28. package/dist/generation.d.ts +3 -0
  29. package/dist/generation.d.ts.map +1 -1
  30. package/dist/index.d.ts +9 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +9 -0
  33. package/dist/index.js.map +1 -1
  34. package/dist/messages.d.ts +8 -1
  35. package/dist/messages.d.ts.map +1 -1
  36. package/dist/node/index.d.ts +1 -0
  37. package/dist/node/index.d.ts.map +1 -1
  38. package/dist/node/index.js +1 -0
  39. package/dist/node/index.js.map +1 -1
  40. package/dist/node/keyring/encrypted-file-keyring.d.ts +13 -0
  41. package/dist/node/keyring/encrypted-file-keyring.d.ts.map +1 -0
  42. package/dist/node/keyring/encrypted-file-keyring.js +134 -0
  43. package/dist/node/keyring/encrypted-file-keyring.js.map +1 -0
  44. package/dist/route-attempt.d.ts +18 -0
  45. package/dist/route-attempt.d.ts.map +1 -0
  46. package/dist/route-attempt.js +70 -0
  47. package/dist/route-attempt.js.map +1 -0
  48. package/dist/route-health.d.ts +14 -0
  49. package/dist/route-health.d.ts.map +1 -0
  50. package/dist/route-health.js +69 -0
  51. package/dist/route-health.js.map +1 -0
  52. package/dist/route-planner-state.d.ts +37 -0
  53. package/dist/route-planner-state.d.ts.map +1 -0
  54. package/dist/route-planner-state.js +27 -0
  55. package/dist/route-planner-state.js.map +1 -0
  56. package/dist/route-planner.d.ts +48 -0
  57. package/dist/route-planner.d.ts.map +1 -0
  58. package/dist/route-planner.js +327 -0
  59. package/dist/route-planner.js.map +1 -0
  60. package/dist/route-selection.d.ts +17 -0
  61. package/dist/route-selection.d.ts.map +1 -0
  62. package/dist/route-selection.js +127 -0
  63. package/dist/route-selection.js.map +1 -0
  64. package/dist/routing-contracts.d.ts +130 -0
  65. package/dist/routing-contracts.d.ts.map +1 -0
  66. package/dist/routing-contracts.js +2 -0
  67. package/dist/routing-contracts.js.map +1 -0
  68. package/dist/routing-policy.d.ts +68 -0
  69. package/dist/routing-policy.d.ts.map +1 -0
  70. package/dist/routing-policy.js +93 -0
  71. package/dist/routing-policy.js.map +1 -0
  72. package/dist/routing-targets.d.ts +25 -0
  73. package/dist/routing-targets.d.ts.map +1 -0
  74. package/dist/routing-targets.js +48 -0
  75. package/dist/routing-targets.js.map +1 -0
  76. package/dist/service/facade.d.ts +31 -0
  77. package/dist/service/facade.d.ts.map +1 -1
  78. package/dist/service/facade.js +11 -2
  79. package/dist/service/facade.js.map +1 -1
  80. package/dist/service/local-account-transport-service.d.ts +15 -2
  81. package/dist/service/local-account-transport-service.d.ts.map +1 -1
  82. package/dist/service/local-account-transport-service.js +279 -17
  83. package/dist/service/local-account-transport-service.js.map +1 -1
  84. package/dist/transport/cloud-code-runtime-client.d.ts +22 -0
  85. package/dist/transport/cloud-code-runtime-client.d.ts.map +1 -0
  86. package/dist/transport/cloud-code-runtime-client.js +306 -0
  87. package/dist/transport/cloud-code-runtime-client.js.map +1 -0
  88. package/dist/transport/cloud-code-transport.d.ts +3 -0
  89. package/dist/transport/cloud-code-transport.d.ts.map +1 -1
  90. package/dist/transport/cloud-code-transport.js +39 -10
  91. package/dist/transport/cloud-code-transport.js.map +1 -1
  92. package/dist/transport/codex-runtime-client.d.ts +17 -0
  93. package/dist/transport/codex-runtime-client.d.ts.map +1 -0
  94. package/dist/transport/codex-runtime-client.js +121 -0
  95. package/dist/transport/codex-runtime-client.js.map +1 -0
  96. package/dist/transport/codex-runtime-wire.d.ts +5 -0
  97. package/dist/transport/codex-runtime-wire.d.ts.map +1 -0
  98. package/dist/transport/codex-runtime-wire.js +144 -0
  99. package/dist/transport/codex-runtime-wire.js.map +1 -0
  100. 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;KAC5B,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,CAsC3E;AAED,wBAAuB,iBAAiB,CACtC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACjC,aAAa,CAAC,aAAa,CAAC,CA+D9B;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;CA6HhC"}
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
- if (parsed.error) {
61
+ const payload = parsed.response ?? parsed;
62
+ if (payload.error) {
58
63
  yield {
59
64
  kind: 'error',
60
- code: String(parsed.error.code ?? 'sse_error'),
61
- message: parsed.error.message ?? 'Cloud Code SSE stream error',
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 = parsed.candidates?.[0]?.content?.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 { kind: 'content', delta: part.text };
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 (parsed.usageMetadata) {
74
- lastUsage = parsed.usageMetadata;
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 { kind: 'done', usage: lastUsage ?? {} };
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":"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"}
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