@esankhan3/anvil-agent-core 0.3.0 → 0.4.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 +1 -1
- package/dist/__tests__/gemini-adapter-recording.test.d.ts +11 -0
- package/dist/__tests__/gemini-adapter-recording.test.d.ts.map +1 -0
- package/dist/__tests__/gemini-adapter-recording.test.js +108 -0
- package/dist/__tests__/gemini-adapter-recording.test.js.map +1 -0
- package/dist/__tests__/legacy-adapter-language-model.test.d.ts +11 -0
- package/dist/__tests__/legacy-adapter-language-model.test.d.ts.map +1 -0
- package/dist/__tests__/legacy-adapter-language-model.test.js +102 -0
- package/dist/__tests__/legacy-adapter-language-model.test.js.map +1 -0
- package/dist/__tests__/ollama-adapter-recording.test.d.ts +15 -0
- package/dist/__tests__/ollama-adapter-recording.test.d.ts.map +1 -0
- package/dist/__tests__/ollama-adapter-recording.test.js +128 -0
- package/dist/__tests__/ollama-adapter-recording.test.js.map +1 -0
- package/dist/__tests__/openrouter-prefill.integration.test.d.ts +19 -0
- package/dist/__tests__/openrouter-prefill.integration.test.d.ts.map +1 -0
- package/dist/__tests__/openrouter-prefill.integration.test.js +410 -0
- package/dist/__tests__/openrouter-prefill.integration.test.js.map +1 -0
- package/dist/__tests__/prefill-truncate.test.d.ts +8 -0
- package/dist/__tests__/prefill-truncate.test.d.ts.map +1 -0
- package/dist/__tests__/prefill-truncate.test.js +75 -0
- package/dist/__tests__/prefill-truncate.test.js.map +1 -0
- package/dist/__tests__/router-circuit-breaker.test.js +1 -1
- package/dist/__tests__/router-circuit-breaker.test.js.map +1 -1
- package/dist/__tests__/router-classify-unified.test.d.ts +12 -0
- package/dist/__tests__/router-classify-unified.test.d.ts.map +1 -0
- package/dist/__tests__/router-classify-unified.test.js +108 -0
- package/dist/__tests__/router-classify-unified.test.js.map +1 -0
- package/dist/__tests__/router-fallback.test.js +1 -1
- package/dist/__tests__/router-fallback.test.js.map +1 -1
- package/dist/__tests__/router-model-registry.test.js +24 -0
- package/dist/__tests__/router-model-registry.test.js.map +1 -1
- package/dist/__tests__/router-retry.test.js +3 -5
- package/dist/__tests__/router-retry.test.js.map +1 -1
- package/dist/__tests__/router-runagent.test.d.ts +14 -0
- package/dist/__tests__/router-runagent.test.d.ts.map +1 -0
- package/dist/__tests__/router-runagent.test.js +95 -0
- package/dist/__tests__/router-runagent.test.js.map +1 -0
- package/dist/__tests__/router-scaffold.test.js +2 -1
- package/dist/__tests__/router-scaffold.test.js.map +1 -1
- package/dist/__tests__/router-spend-ledger.test.js +1 -1
- package/dist/__tests__/router-spend-ledger.test.js.map +1 -1
- package/dist/__tests__/router-stream-fallback.test.d.ts +13 -0
- package/dist/__tests__/router-stream-fallback.test.d.ts.map +1 -0
- package/dist/__tests__/router-stream-fallback.test.js +129 -0
- package/dist/__tests__/router-stream-fallback.test.js.map +1 -0
- package/dist/__tests__/router-telemetry.test.js +3 -1
- package/dist/__tests__/router-telemetry.test.js.map +1 -1
- package/dist/__tests__/util/mock-upstream.d.ts +77 -0
- package/dist/__tests__/util/mock-upstream.d.ts.map +1 -0
- package/dist/__tests__/util/mock-upstream.js +219 -0
- package/dist/__tests__/util/mock-upstream.js.map +1 -0
- package/dist/adk-adapter.d.ts.map +1 -1
- package/dist/adk-adapter.js +51 -0
- package/dist/adk-adapter.js.map +1 -1
- package/dist/agent/session/adapter.d.ts +15 -0
- package/dist/agent/session/adapter.d.ts.map +1 -1
- package/dist/agent/session/adapter.js +3 -0
- package/dist/agent/session/adapter.js.map +1 -1
- package/dist/agent/session/index.d.ts +1 -0
- package/dist/agent/session/index.d.ts.map +1 -1
- package/dist/agent/session/index.js +1 -0
- package/dist/agent/session/index.js.map +1 -1
- package/dist/agent/session/language-model-bridge.d.ts.map +1 -1
- package/dist/agent/session/language-model-bridge.js +22 -0
- package/dist/agent/session/language-model-bridge.js.map +1 -1
- package/dist/agent/session/legacy-adapter-language-model.d.ts +27 -0
- package/dist/agent/session/legacy-adapter-language-model.d.ts.map +1 -0
- package/dist/agent/session/legacy-adapter-language-model.js +221 -0
- package/dist/agent/session/legacy-adapter-language-model.js.map +1 -0
- package/dist/agent/session/types.d.ts +20 -0
- package/dist/agent/session/types.d.ts.map +1 -1
- package/dist/agent/session/types.js.map +1 -1
- package/dist/claude-adapter.d.ts.map +1 -1
- package/dist/claude-adapter.js +27 -0
- package/dist/claude-adapter.js.map +1 -1
- package/dist/gemini-adapter.d.ts.map +1 -1
- package/dist/gemini-adapter.js +46 -0
- package/dist/gemini-adapter.js.map +1 -1
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/ollama-adapter.d.ts.map +1 -1
- package/dist/ollama-adapter.js +118 -8
- package/dist/ollama-adapter.js.map +1 -1
- package/dist/openrouter-adapter.d.ts.map +1 -1
- package/dist/openrouter-adapter.js +289 -15
- package/dist/openrouter-adapter.js.map +1 -1
- package/dist/prefill/strip.d.ts +49 -0
- package/dist/prefill/strip.d.ts.map +1 -0
- package/dist/prefill/strip.js +93 -0
- package/dist/prefill/strip.js.map +1 -0
- package/dist/prefill/translate.d.ts +55 -0
- package/dist/prefill/translate.d.ts.map +1 -0
- package/dist/prefill/translate.js +162 -0
- package/dist/prefill/translate.js.map +1 -0
- package/dist/prefill/truncate.d.ts +62 -0
- package/dist/prefill/truncate.d.ts.map +1 -0
- package/dist/prefill/truncate.js +77 -0
- package/dist/prefill/truncate.js.map +1 -0
- package/dist/router/errors.d.ts +24 -7
- package/dist/router/errors.d.ts.map +1 -1
- package/dist/router/errors.js +71 -14
- package/dist/router/errors.js.map +1 -1
- package/dist/router/index.d.ts +3 -2
- package/dist/router/index.d.ts.map +1 -1
- package/dist/router/index.js +2 -1
- package/dist/router/index.js.map +1 -1
- package/dist/router/model-registry.d.ts +22 -0
- package/dist/router/model-registry.d.ts.map +1 -1
- package/dist/router/model-registry.js +64 -1
- package/dist/router/model-registry.js.map +1 -1
- package/dist/router/provider-registry-resolver.d.ts +25 -0
- package/dist/router/provider-registry-resolver.d.ts.map +1 -0
- package/dist/router/provider-registry-resolver.js +84 -0
- package/dist/router/provider-registry-resolver.js.map +1 -0
- package/dist/router/retry.d.ts +3 -0
- package/dist/router/retry.d.ts.map +1 -1
- package/dist/router/retry.js +4 -1
- package/dist/router/retry.js.map +1 -1
- package/dist/router/router.d.ts +79 -1
- package/dist/router/router.d.ts.map +1 -1
- package/dist/router/router.js +256 -2
- package/dist/router/router.js.map +1 -1
- package/dist/router/types.d.ts +1 -1
- package/dist/router/types.d.ts.map +1 -1
- package/dist/router/types.js +1 -0
- package/dist/router/types.js.map +1 -1
- package/dist/turn-recorder/__tests__/turn-recorder.test.d.ts +20 -0
- package/dist/turn-recorder/__tests__/turn-recorder.test.d.ts.map +1 -0
- package/dist/turn-recorder/__tests__/turn-recorder.test.js +282 -0
- package/dist/turn-recorder/__tests__/turn-recorder.test.js.map +1 -0
- package/dist/turn-recorder/hash.d.ts +10 -0
- package/dist/turn-recorder/hash.d.ts.map +1 -0
- package/dist/turn-recorder/hash.js +35 -0
- package/dist/turn-recorder/hash.js.map +1 -0
- package/dist/turn-recorder/index.d.ts +119 -0
- package/dist/turn-recorder/index.d.ts.map +1 -0
- package/dist/turn-recorder/index.js +326 -0
- package/dist/turn-recorder/index.js.map +1 -0
- package/dist/turn-recorder/types.d.ts +227 -0
- package/dist/turn-recorder/types.d.ts.map +1 -0
- package/dist/turn-recorder/types.js +20 -0
- package/dist/turn-recorder/types.js.map +1 -0
- package/dist/types.d.ts +35 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -25,6 +25,10 @@
|
|
|
25
25
|
*/
|
|
26
26
|
import { randomUUID } from 'node:crypto';
|
|
27
27
|
import { emitContent, emitResult, emitToolResult, emitToolUse } from './stream-format.js';
|
|
28
|
+
import { createNullTurnRecorder } from './turn-recorder/index.js';
|
|
29
|
+
import { contentHashFromArgs } from './turn-recorder/hash.js';
|
|
30
|
+
import { materializePrefill, materializePriorTurns } from './prefill/translate.js';
|
|
31
|
+
import { stripForTarget } from './prefill/strip.js';
|
|
28
32
|
const DEFAULT_MAX_ITERATIONS = 32;
|
|
29
33
|
/**
|
|
30
34
|
* Re-export the shared `UpstreamError` so existing imports
|
|
@@ -158,9 +162,44 @@ export class OpenRouterAdapter {
|
|
|
158
162
|
const messages = [];
|
|
159
163
|
if (config.projectPrompt)
|
|
160
164
|
messages.push({ role: 'system', content: config.projectPrompt });
|
|
165
|
+
// §Tier 2 stateful resume: re-present COMPLETED prior turns BEFORE this
|
|
166
|
+
// phase's user message so a non-claude session keeps full conversation
|
|
167
|
+
// context across start→sendInput. materializePriorTurns emits clean
|
|
168
|
+
// target-format messages (no vendor keys), so no stripForTarget is
|
|
169
|
+
// needed. Empty/undefined → byte-identical to the single-turn path.
|
|
170
|
+
if (config.priorMessages?.length) {
|
|
171
|
+
messages.push(...materializePriorTurns(config.priorMessages, this.provider));
|
|
172
|
+
}
|
|
161
173
|
messages.push({ role: 'user', content: config.userPrompt });
|
|
174
|
+
// Prefill continuation (v2 ADR §2.3): a prior chain entry burned
|
|
175
|
+
// mid-stream. Re-present its completed tool calls + partial
|
|
176
|
+
// assistant text in this provider's wire shape so this model
|
|
177
|
+
// continues from the exact character instead of regenerating. The
|
|
178
|
+
// recorded tool results are replayed (not re-executed) — their
|
|
179
|
+
// side effects already happened on the burned model. Strip applies
|
|
180
|
+
// any cross-vendor field removal; materialize emits OpenAI-compat
|
|
181
|
+
// shape (this adapter family).
|
|
182
|
+
if (config.prefill) {
|
|
183
|
+
const materialized = materializePrefill(config.prefill, this.provider);
|
|
184
|
+
const safe = stripForTarget(materialized, {
|
|
185
|
+
sourceProvider: config.prefill.sourceProvider,
|
|
186
|
+
targetProvider: this.provider,
|
|
187
|
+
});
|
|
188
|
+
messages.push(...safe);
|
|
189
|
+
}
|
|
162
190
|
const tools = config.toolExecutor ? mapSchemasToOpenAI(config.toolExecutor.listSchemas()) : undefined;
|
|
163
191
|
const maxIter = config.maxToolIterations ?? DEFAULT_MAX_ITERATIONS;
|
|
192
|
+
// Turn-level durable recorder (v2 ADR §2.5). Defaults to a no-op
|
|
193
|
+
// recorder when the caller hasn't injected a real one — structural
|
|
194
|
+
// calls happen either way, persistence is gated on whether a real
|
|
195
|
+
// EffectRuntime + partial sink were threaded through the bridge. The
|
|
196
|
+
// no-op fallback covers single-shot / non-durable call sites (e.g. the
|
|
197
|
+
// router's thin `invoke`); the live durable pipeline always threads a
|
|
198
|
+
// real recorder.
|
|
199
|
+
const recorder = config.turnRecorder ?? createNullTurnRecorder({
|
|
200
|
+
runId: config.sessionId,
|
|
201
|
+
stepId: config.stage,
|
|
202
|
+
});
|
|
164
203
|
let aggregatedText = '';
|
|
165
204
|
let totalIn = 0;
|
|
166
205
|
let totalOut = 0;
|
|
@@ -169,9 +208,107 @@ export class OpenRouterAdapter {
|
|
|
169
208
|
let openRouterCost = 0;
|
|
170
209
|
let stopReason;
|
|
171
210
|
let providerFinishReason;
|
|
211
|
+
// Track the current turn for catch-block flushPartial. -1 means
|
|
212
|
+
// we never opened a turn (catch fired before startTurn). `activeAcc`
|
|
213
|
+
// is the live accumulator runOneTurn writes into, so the catch reads
|
|
214
|
+
// whatever streamed before a mid-turn throw. `activeTurnSseComplete`
|
|
215
|
+
// flips true the instant runOneTurn returns (the SSE finished); the
|
|
216
|
+
// catch flushes a partial ONLY when this is false — i.e. the stream
|
|
217
|
+
// itself was interrupted, NOT when a post-stream step (endTurn, tool
|
|
218
|
+
// dispatch, an effect-runtime determinism error) throws after the
|
|
219
|
+
// turn's text was already fully received. Without this guard the
|
|
220
|
+
// catch would persist a "partial" carrying the COMPLETE turn text
|
|
221
|
+
// and mislabel its reason (review finding: spurious partial flush).
|
|
222
|
+
let activeTurnIdx = -1;
|
|
223
|
+
let activeAcc = null;
|
|
224
|
+
let activeTurnSseComplete = false;
|
|
225
|
+
// §H3 burn sentinel: the provider-native messages appended SO FAR in the
|
|
226
|
+
// active turn (assistant msg + tool-result msgs). On a mid-stream burn the
|
|
227
|
+
// catch records these into a `stopReason:'burned'` assistant-end so replay
|
|
228
|
+
// re-appends them verbatim before re-burning. Reset at each live turn; []
|
|
229
|
+
// for the common case (runOneTurn burns before any message is appended).
|
|
230
|
+
let activeHistoryDelta = [];
|
|
172
231
|
try {
|
|
173
232
|
for (let iter = 0; iter < maxIter; iter++) {
|
|
174
|
-
|
|
233
|
+
// The prefill (§2.3) is consumed on the FIRST turn only — it's the
|
|
234
|
+
// continuation handed by the chain walker after a burn. Turns 1+
|
|
235
|
+
// of this same adapter run are fresh, un-prefilled generations.
|
|
236
|
+
const turnPrefill = iter === 0 ? config.prefill : undefined;
|
|
237
|
+
const { turn: turnIdx, replayed } = await recorder.startTurn({
|
|
238
|
+
model: config.model,
|
|
239
|
+
provider: this.provider,
|
|
240
|
+
system: config.projectPrompt,
|
|
241
|
+
messages: messages.slice(),
|
|
242
|
+
prefill: turnPrefill,
|
|
243
|
+
// §Tier 2: record this phase's user prompt so a stateful resume can
|
|
244
|
+
// reconstruct prior turns WITH their prompts. Every turn of one
|
|
245
|
+
// run() carries the same prompt; reconstruction de-dupes per phase.
|
|
246
|
+
userPrompt: config.userPrompt,
|
|
247
|
+
});
|
|
248
|
+
activeTurnIdx = turnIdx;
|
|
249
|
+
// ── H3 replay-skip ────────────────────────────────────────────
|
|
250
|
+
// This turn's `assistant-end` is already in the durable log (a
|
|
251
|
+
// prior process ran it). Skip the upstream call entirely; re-append
|
|
252
|
+
// the EXACT recorded native history so the FIRST live turn past the
|
|
253
|
+
// replay frontier continues from coherent conversation context, and
|
|
254
|
+
// re-issue runTool/endTurn in order so the replay cursor advances over
|
|
255
|
+
// the recorded sub-effects (exec never fires — recorded tool_results
|
|
256
|
+
// are returned verbatim; runTool's tool-arg idempotencyKey still
|
|
257
|
+
// matches because the args are replayed verbatim).
|
|
258
|
+
if (replayed) {
|
|
259
|
+
activeTurnSseComplete = true; // no live SSE happened this turn
|
|
260
|
+
// §H3 burned-turn replay: this turn burned mid-stream live (its
|
|
261
|
+
// assistant-end is a `stopReason:'burned'` sentinel). Re-issue its
|
|
262
|
+
// recorded tool sub-effects in order (advancing the replay cursor;
|
|
263
|
+
// exec NEVER fires — recorded results are returned verbatim),
|
|
264
|
+
// re-record the sentinel end, then re-throw a retryable upstream
|
|
265
|
+
// error so the chain walker burns this model and continues to the
|
|
266
|
+
// next exactly as it did live. This keeps the model→turn mapping
|
|
267
|
+
// deterministic regardless of whether the transient error cleared.
|
|
268
|
+
if (replayed.stopReason === 'burned') {
|
|
269
|
+
for (const m of replayed.historyDelta)
|
|
270
|
+
messages.push(m);
|
|
271
|
+
for (const tu of replayed.toolUses) {
|
|
272
|
+
await recorder.runTool(turnIdx, tu.name, tu.arguments, tu.idempotencyKey, async () => { throw new Error(`replay invariant: exec ran for recorded burned-turn tool ${tu.name}`); });
|
|
273
|
+
}
|
|
274
|
+
await recorder.endTurn(turnIdx, replayed.text, 'burned', replayed.usage, replayed.provenance, replayed.historyDelta);
|
|
275
|
+
throw new _UpstreamError(503, `${this.provider} replayed burn for "${config.model}" (deterministic chain re-derivation)`, { provider: this.provider, retryable: true });
|
|
276
|
+
}
|
|
277
|
+
aggregatedText += replayed.text;
|
|
278
|
+
totalIn += replayed.usage.inputTokens;
|
|
279
|
+
totalOut += replayed.usage.outputTokens;
|
|
280
|
+
totalCachedReadTokens += replayed.usage.cacheReadTokens ?? 0;
|
|
281
|
+
if (replayed.text)
|
|
282
|
+
emitContent(output, replayed.text);
|
|
283
|
+
if (replayed.toolUses.length === 0 || !config.toolExecutor) {
|
|
284
|
+
stopReason = replayed.stopReason;
|
|
285
|
+
await recorder.endTurn(turnIdx, replayed.text, replayed.stopReason, replayed.usage, replayed.provenance, replayed.historyDelta);
|
|
286
|
+
break;
|
|
287
|
+
}
|
|
288
|
+
for (const m of replayed.historyDelta)
|
|
289
|
+
messages.push(m);
|
|
290
|
+
for (const tu of replayed.toolUses) {
|
|
291
|
+
emitToolUse(output, tu.name, tu.arguments, tu.id);
|
|
292
|
+
const r = await recorder.runTool(turnIdx, tu.name, tu.arguments, tu.idempotencyKey, async () => { throw new Error(`replay invariant: exec ran for recorded tool ${tu.name}`); });
|
|
293
|
+
const rc = typeof r.content === 'string' ? r.content : JSON.stringify(r.content);
|
|
294
|
+
emitToolResult(output, { toolUseId: tu.id, content: rc, isError: !r.ok });
|
|
295
|
+
}
|
|
296
|
+
await recorder.endTurn(turnIdx, replayed.text, replayed.stopReason, replayed.usage, replayed.provenance, replayed.historyDelta);
|
|
297
|
+
if (abortController.signal.aborted) {
|
|
298
|
+
stopReason = 'aborted';
|
|
299
|
+
break;
|
|
300
|
+
}
|
|
301
|
+
continue;
|
|
302
|
+
}
|
|
303
|
+
activeTurnSseComplete = false;
|
|
304
|
+
activeHistoryDelta = [];
|
|
305
|
+
const acc = { text: '', toolCalls: new Map() };
|
|
306
|
+
activeAcc = acc;
|
|
307
|
+
const turn = await this.runOneTurn(apiKey, messages, tools, config, output, abortController.signal, acc);
|
|
308
|
+
// SSE finished cleanly for this turn — any throw past this point
|
|
309
|
+
// (endTurn, tool dispatch, effect determinism) is NOT a mid-stream
|
|
310
|
+
// burn, so the catch must not flush a spurious partial.
|
|
311
|
+
activeTurnSseComplete = true;
|
|
175
312
|
aggregatedText += turn.text;
|
|
176
313
|
totalIn += turn.inputTokens;
|
|
177
314
|
totalOut += turn.outputTokens;
|
|
@@ -180,8 +317,20 @@ export class OpenRouterAdapter {
|
|
|
180
317
|
openRouterCost += turn.cost;
|
|
181
318
|
if (turn.finishReason)
|
|
182
319
|
providerFinishReason = turn.finishReason;
|
|
320
|
+
// §2.6 prefill cost: when this turn re-injected a prior model's
|
|
321
|
+
// text, carve out those tokens so the cost rollup can bill them to
|
|
322
|
+
// a separate reinjection bucket (sourceTokens is the durable count
|
|
323
|
+
// model A reported). §2.7 provenance: two segments when prefilled.
|
|
324
|
+
const usage = {
|
|
325
|
+
inputTokens: turn.inputTokens,
|
|
326
|
+
outputTokens: turn.outputTokens,
|
|
327
|
+
cacheReadTokens: turn.cachedReadTokens,
|
|
328
|
+
...(turnPrefill ? { prefilledInputTokens: turnPrefill.sourceTokens } : {}),
|
|
329
|
+
};
|
|
330
|
+
const provenance = buildProvenance(config.model, this.provider, turn.text, turnPrefill);
|
|
183
331
|
if (turn.toolCalls.length === 0 || !config.toolExecutor) {
|
|
184
332
|
stopReason = turn.toolCalls.length === 0 ? 'end_turn' : 'tools_unsupported';
|
|
333
|
+
await recorder.endTurn(turnIdx, turn.text, stopReason, usage, provenance);
|
|
185
334
|
break;
|
|
186
335
|
}
|
|
187
336
|
// Append assistant turn to history so the model sees its own
|
|
@@ -202,7 +351,12 @@ export class OpenRouterAdapter {
|
|
|
202
351
|
// reasoning fields entirely — they're strict on unknown sibling
|
|
203
352
|
// fields. Subclasses override `stripReasoningEcho()` to return
|
|
204
353
|
// true and skip the echo. See anomalyco/opencode #14716.
|
|
205
|
-
messages
|
|
354
|
+
// §H3 historyDelta: capture the EXACT native messages appended this
|
|
355
|
+
// turn so crash-resume re-appends them verbatim (recorded in
|
|
356
|
+
// assistant-end). Order matters — assistant message first, then
|
|
357
|
+
// each tool-result message — and must mirror the live push order.
|
|
358
|
+
const historyDelta = activeHistoryDelta;
|
|
359
|
+
const assistantMsg = {
|
|
206
360
|
role: 'assistant',
|
|
207
361
|
content: turn.text || null,
|
|
208
362
|
...(this.stripReasoningEcho()
|
|
@@ -211,19 +365,36 @@ export class OpenRouterAdapter {
|
|
|
211
365
|
? { reasoning_details: turn.reasoningDetails }
|
|
212
366
|
: (turn.reasoning ? { reasoning: turn.reasoning } : {})),
|
|
213
367
|
tool_calls: turn.toolCalls,
|
|
214
|
-
}
|
|
368
|
+
};
|
|
369
|
+
messages.push(assistantMsg);
|
|
370
|
+
historyDelta.push(assistantMsg);
|
|
215
371
|
for (const tc of turn.toolCalls) {
|
|
216
372
|
const args = parseArgs(tc.function.arguments);
|
|
217
373
|
const call = { id: tc.id, name: tc.function.name, arguments: args };
|
|
218
374
|
emitToolUse(output, call.name, args, tc.id);
|
|
219
|
-
const
|
|
220
|
-
|
|
221
|
-
|
|
375
|
+
const idempotencyKey = contentHashFromArgs({ name: call.name, arguments: args });
|
|
376
|
+
const neutralResult = await recorder.runTool(turnIdx, call.name, args, idempotencyKey, async () => {
|
|
377
|
+
const r = await invokeTool(config.toolExecutor, call, config.workingDir, abortController.signal);
|
|
378
|
+
return {
|
|
379
|
+
toolUseId: tc.id,
|
|
380
|
+
toolName: call.name,
|
|
381
|
+
ok: !r.isError,
|
|
382
|
+
content: r.content,
|
|
383
|
+
};
|
|
384
|
+
});
|
|
385
|
+
const resultContent = typeof neutralResult.content === 'string'
|
|
386
|
+
? neutralResult.content
|
|
387
|
+
: JSON.stringify(neutralResult.content);
|
|
388
|
+
emitToolResult(output, { toolUseId: tc.id, content: resultContent, isError: !neutralResult.ok });
|
|
389
|
+
const toolMsg = {
|
|
222
390
|
role: 'tool',
|
|
223
|
-
content:
|
|
391
|
+
content: resultContent,
|
|
224
392
|
tool_call_id: tc.id,
|
|
225
|
-
}
|
|
393
|
+
};
|
|
394
|
+
messages.push(toolMsg);
|
|
395
|
+
historyDelta.push(toolMsg);
|
|
226
396
|
}
|
|
397
|
+
await recorder.endTurn(turnIdx, turn.text, turn.toolCalls.length > 0 ? 'tool_use' : 'end_turn', usage, provenance, historyDelta);
|
|
227
398
|
if (abortController.signal.aborted) {
|
|
228
399
|
stopReason = 'aborted';
|
|
229
400
|
break;
|
|
@@ -232,6 +403,44 @@ export class OpenRouterAdapter {
|
|
|
232
403
|
if (stopReason === undefined)
|
|
233
404
|
stopReason = 'iteration_limit';
|
|
234
405
|
}
|
|
406
|
+
catch (err) {
|
|
407
|
+
// Best-effort partial flush: capture whatever the current turn
|
|
408
|
+
// managed to stream before the throw. NullTurnRecorder no-ops
|
|
409
|
+
// this; real recorders durably persist it for the chain walker
|
|
410
|
+
// to read. We swallow no errors — the upstream throw proceeds
|
|
411
|
+
// after the (synchronous) flushPartial returns.
|
|
412
|
+
//
|
|
413
|
+
// §2.1.1 truncation rule: only count tool_use blocks whose
|
|
414
|
+
// streamed `arguments` parse as clean JSON. A tool call cut off
|
|
415
|
+
// mid-args (unparseable) is NOT counted and NOT replayed — model
|
|
416
|
+
// B re-decides whether to call it. `text` is whatever streamed.
|
|
417
|
+
if (activeTurnIdx >= 0 && activeAcc && !activeTurnSseComplete) {
|
|
418
|
+
// Only a genuine mid-stream interruption gets a partial. By the
|
|
419
|
+
// time we flush, any non-abort failure is an upstream/network
|
|
420
|
+
// interruption (a socket drop surfaces as a bare TypeError from
|
|
421
|
+
// consumeSSE's reader, NOT an UpstreamError — so the old
|
|
422
|
+
// `err.name === 'UpstreamError'` check mislabeled those as
|
|
423
|
+
// 'timeout'). Collapse to abort-vs-upstream.
|
|
424
|
+
const reason = abortController.signal.aborted ? 'abort' : 'upstream';
|
|
425
|
+
recorder.flushPartial(activeTurnIdx, activeAcc.text, countParsedToolUses(activeAcc.toolCalls), reason);
|
|
426
|
+
// §H3 burn sentinel: record a `stopReason:'burned'` assistant-end for
|
|
427
|
+
// the interrupted turn so crash-resume replays it deterministically.
|
|
428
|
+
// On replay startTurn sees this end → the replay-skip branch re-issues
|
|
429
|
+
// the recorded tool sub-effects (advancing the cursor), re-appends
|
|
430
|
+
// historyDelta, then re-throws so chain-fallback re-derives the SAME
|
|
431
|
+
// model→turn mapping it had live — independent of whether the
|
|
432
|
+
// transient upstream error has since cleared. Without it a recovered
|
|
433
|
+
// model would complete the turn live (writing a NEW assistant-end) and
|
|
434
|
+
// collide with the recorded continuation turn → DeterminismViolation.
|
|
435
|
+
// Only genuine upstream burns get a sentinel; an abort (cancellation)
|
|
436
|
+
// must stay resumable as a fresh turn. usage:{} so the per-model cost
|
|
437
|
+
// rollup prices the burn via the partial (output estimate), not twice.
|
|
438
|
+
if (reason === 'upstream') {
|
|
439
|
+
await recorder.endTurn(activeTurnIdx, activeAcc.text, 'burned', { inputTokens: 0, outputTokens: 0 }, { segments: [] }, activeHistoryDelta);
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
throw err;
|
|
443
|
+
}
|
|
235
444
|
finally {
|
|
236
445
|
this.activeControllers.delete(abortController);
|
|
237
446
|
}
|
|
@@ -288,7 +497,11 @@ export class OpenRouterAdapter {
|
|
|
288
497
|
};
|
|
289
498
|
}
|
|
290
499
|
// -- Per-turn round-trip --------------------------------------------------
|
|
291
|
-
async runOneTurn(apiKey, messages, tools, config, output, signal
|
|
500
|
+
async runOneTurn(apiKey, messages, tools, config, output, signal,
|
|
501
|
+
/** Live working state — written as deltas stream so a mid-stream
|
|
502
|
+
* throw still leaves the partial text/tool_calls readable by the
|
|
503
|
+
* caller's catch block. */
|
|
504
|
+
acc) {
|
|
292
505
|
const url = `${this.getBaseUrl()}/chat/completions`;
|
|
293
506
|
const body = {
|
|
294
507
|
model: config.model,
|
|
@@ -341,15 +554,14 @@ export class OpenRouterAdapter {
|
|
|
341
554
|
}
|
|
342
555
|
if (!response.body)
|
|
343
556
|
throw new _UpstreamError(0, `${this.provider} returned no response body`, { provider: this.provider });
|
|
344
|
-
return this.consumeSSE(response, output);
|
|
557
|
+
return this.consumeSSE(response, output, signal, acc);
|
|
345
558
|
}
|
|
346
559
|
/**
|
|
347
560
|
* Drain the SSE stream. Reassembles `tool_calls` from streamed deltas
|
|
348
561
|
* (OpenAI sends arguments as multiple chunks indexed by tool-call
|
|
349
562
|
* `index`). Emits text deltas to the output stream as they arrive.
|
|
350
563
|
*/
|
|
351
|
-
async consumeSSE(response, output) {
|
|
352
|
-
let text = '';
|
|
564
|
+
async consumeSSE(response, output, signal, acc) {
|
|
353
565
|
let reasoning = '';
|
|
354
566
|
const reasoningDetails = [];
|
|
355
567
|
let inputTokens = 0;
|
|
@@ -358,7 +570,9 @@ export class OpenRouterAdapter {
|
|
|
358
570
|
let reasoningTokens = 0;
|
|
359
571
|
let cost = 0;
|
|
360
572
|
let finishReason;
|
|
361
|
-
|
|
573
|
+
// Text + tool_calls live on the shared accumulator (not locals) so a
|
|
574
|
+
// mid-stream throw leaves them readable by run()'s catch (§2.1 / §2.5).
|
|
575
|
+
const toolCallsByIndex = acc.toolCalls;
|
|
362
576
|
const reader = response.body.getReader();
|
|
363
577
|
const decoder = new TextDecoder();
|
|
364
578
|
let buffer = '';
|
|
@@ -383,6 +597,14 @@ export class OpenRouterAdapter {
|
|
|
383
597
|
const lines = buffer.split('\n');
|
|
384
598
|
buffer = lines.pop() ?? '';
|
|
385
599
|
for (const line of lines) {
|
|
600
|
+
// Abort latch (§2.1.2): once the per-call signal has aborted,
|
|
601
|
+
// drop every remaining delta. A pull-reader normally rejects on
|
|
602
|
+
// abort, but a final frame can still be buffered in `lines` from
|
|
603
|
+
// the last successful read() — this guarantees post-abort deltas
|
|
604
|
+
// never mutate the accumulator (which would corrupt the partial
|
|
605
|
+
// we're about to flush).
|
|
606
|
+
if (signal.aborted)
|
|
607
|
+
break;
|
|
386
608
|
const trimmed = line.trim();
|
|
387
609
|
if (!trimmed || trimmed.startsWith(':'))
|
|
388
610
|
continue; // empty / SSE comment
|
|
@@ -401,7 +623,7 @@ export class OpenRouterAdapter {
|
|
|
401
623
|
const choice = chunk.choices?.[0];
|
|
402
624
|
const delta = choice?.delta;
|
|
403
625
|
if (delta?.content) {
|
|
404
|
-
text += delta.content;
|
|
626
|
+
acc.text += delta.content;
|
|
405
627
|
pendingText += delta.content;
|
|
406
628
|
// Split the accumulated buffer on newlines so the flush is
|
|
407
629
|
// always anchored at a natural line boundary; emit each
|
|
@@ -484,7 +706,7 @@ export class OpenRouterAdapter {
|
|
|
484
706
|
.sort(([a], [b]) => a - b)
|
|
485
707
|
.map(([, v]) => v);
|
|
486
708
|
return {
|
|
487
|
-
text,
|
|
709
|
+
text: acc.text,
|
|
488
710
|
reasoning,
|
|
489
711
|
reasoningDetails: reasoningDetails.filter(Boolean),
|
|
490
712
|
toolCalls,
|
|
@@ -544,4 +766,56 @@ function countToolCalls(messages) {
|
|
|
544
766
|
}
|
|
545
767
|
return n;
|
|
546
768
|
}
|
|
769
|
+
/**
|
|
770
|
+
* §2.1.1 mid-`tool_use` truncation rule. Counts only the streamed
|
|
771
|
+
* tool_calls whose `arguments` parse as clean, complete JSON AND that
|
|
772
|
+
* carry a non-empty name. A tool call cut off mid-args (e.g. the stream
|
|
773
|
+
* died at `{"path": "src/fo`) is unparseable and excluded — it must NOT
|
|
774
|
+
* be replayed against partial JSON; the next model re-decides. Empty
|
|
775
|
+
* `arguments` is treated as the valid empty-object call `{}`.
|
|
776
|
+
*/
|
|
777
|
+
function countParsedToolUses(toolCalls) {
|
|
778
|
+
let n = 0;
|
|
779
|
+
for (const tc of toolCalls.values()) {
|
|
780
|
+
if (!tc.function.name)
|
|
781
|
+
continue;
|
|
782
|
+
const raw = tc.function.arguments;
|
|
783
|
+
if (raw === '') {
|
|
784
|
+
n += 1;
|
|
785
|
+
continue;
|
|
786
|
+
}
|
|
787
|
+
try {
|
|
788
|
+
const parsed = JSON.parse(raw);
|
|
789
|
+
if (parsed !== null && typeof parsed === 'object')
|
|
790
|
+
n += 1;
|
|
791
|
+
}
|
|
792
|
+
catch {
|
|
793
|
+
// unparseable / truncated args — drop per §2.1.1
|
|
794
|
+
}
|
|
795
|
+
}
|
|
796
|
+
return n;
|
|
797
|
+
}
|
|
798
|
+
/**
|
|
799
|
+
* §2.7 provenance. Without a prefill: one `live` segment covering the
|
|
800
|
+
* model's full output. WITH a prefill (a chain-fallback resume): two
|
|
801
|
+
* segments over the LOGICAL combined text — `[0, prefill.len)` attributed
|
|
802
|
+
* to the source model as `prefill`, `[prefill.len, prefill.len+live.len)`
|
|
803
|
+
* attributed to the live model. Ranges are CHARACTER offsets, contiguous
|
|
804
|
+
* and non-overlapping (replay reads them back verbatim). An empty live
|
|
805
|
+
* continuation yields a zero-width live segment, which is valid.
|
|
806
|
+
*/
|
|
807
|
+
function buildProvenance(model, provider, liveText, prefill) {
|
|
808
|
+
if (prefill && prefill.text.length > 0) {
|
|
809
|
+
const cut = prefill.text.length;
|
|
810
|
+
return {
|
|
811
|
+
segments: [
|
|
812
|
+
{ model: prefill.sourceModel ?? 'unknown', provider: prefill.sourceProvider, range: [0, cut], source: 'prefill' },
|
|
813
|
+
{ model, provider, range: [cut, cut + liveText.length], source: 'live' },
|
|
814
|
+
],
|
|
815
|
+
};
|
|
816
|
+
}
|
|
817
|
+
return {
|
|
818
|
+
segments: [{ model, provider, range: [0, liveText.length], source: 'live' }],
|
|
819
|
+
};
|
|
820
|
+
}
|
|
547
821
|
//# sourceMappingURL=openrouter-adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openrouter-adapter.js","sourceRoot":"","sources":["../src/openrouter-adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"openrouter-adapter.js","sourceRoot":"","sources":["../src/openrouter-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-provider strip policy (v2 ADR §2.3.1).
|
|
3
|
+
*
|
|
4
|
+
* Vendor-specific message blocks DO NOT survive a chain-fallback swap
|
|
5
|
+
* across providers. `stripForTarget` removes fields the target provider
|
|
6
|
+
* would reject (or silently misinterpret) when the conversation
|
|
7
|
+
* originated on a different vendor.
|
|
8
|
+
*
|
|
9
|
+
* The matrix (§2.3.1):
|
|
10
|
+
* - reasoning_details[] / reasoning — OpenRouter reasoning models;
|
|
11
|
+
* strip when source !== target (Anthropic + OpenAI reject them).
|
|
12
|
+
* - cache_control — Anthropic; strip when target is non-Anthropic.
|
|
13
|
+
* - prompt_cache_key — OpenAI; strip when target is non-OpenAI.
|
|
14
|
+
*
|
|
15
|
+
* Same-vendor swaps short-circuit: nothing is stripped (hot path), and
|
|
16
|
+
* they additionally qualify for the §5.1 prefix-cache fast-path.
|
|
17
|
+
*
|
|
18
|
+
* The function is shape-agnostic: it walks each message object and
|
|
19
|
+
* deletes the known vendor keys (including inside content-block arrays
|
|
20
|
+
* for Anthropic's `cache_control`). It never mutates the input — every
|
|
21
|
+
* message is shallow-cloned before a key is removed.
|
|
22
|
+
*/
|
|
23
|
+
import type { ProviderName } from '../types.js';
|
|
24
|
+
export interface StripContext {
|
|
25
|
+
sourceProvider: ProviderName;
|
|
26
|
+
targetProvider: ProviderName;
|
|
27
|
+
}
|
|
28
|
+
/** Anthropic family: native `messages` API consumers.
|
|
29
|
+
*
|
|
30
|
+
* NOTE on 'adk': ADK is provider-agnostic at runtime (claude-via-adk =
|
|
31
|
+
* Anthropic wire; gemini-via-adk = Google wire). Per ADR §2.8, ADK
|
|
32
|
+
* prefill is materialized via `Session.appendEvent`, NOT through
|
|
33
|
+
* `materializePrefill`/`stripForTarget` — so this predicate is NOT
|
|
34
|
+
* exercised for ADK targets in the H2 path. When ADK is ported (H4),
|
|
35
|
+
* its wire format must be detected from the underlying model id, not
|
|
36
|
+
* assumed Anthropic here. Kept in the Anthropic bucket only so the
|
|
37
|
+
* §5.1 same-vendor cache fast-path can recognise `claude`↔`claude`;
|
|
38
|
+
* revisit when ADK joins the prefill path. */
|
|
39
|
+
declare function isAnthropic(p: ProviderName): boolean;
|
|
40
|
+
/** OpenAI-compatible chat-completions consumers. */
|
|
41
|
+
declare function isOpenAICompat(p: ProviderName): boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Return a new message array safe to send to `targetProvider` given it
|
|
44
|
+
* originated on `sourceProvider`. Same-vendor → returned as a shallow
|
|
45
|
+
* copy untouched.
|
|
46
|
+
*/
|
|
47
|
+
export declare function stripForTarget(messages: readonly unknown[], ctx: StripContext): unknown[];
|
|
48
|
+
export { isAnthropic, isOpenAICompat };
|
|
49
|
+
//# sourceMappingURL=strip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strip.d.ts","sourceRoot":"","sources":["../../src/prefill/strip.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,YAAY,CAAC;IAC7B,cAAc,EAAE,YAAY,CAAC;CAC9B;AAED;;;;;;;;;;8CAU8C;AAC9C,iBAAS,WAAW,CAAC,CAAC,EAAE,YAAY,GAAG,OAAO,CAE7C;AAED,oDAAoD;AACpD,iBAAS,cAAc,CAAC,CAAC,EAAE,YAAY,GAAG,OAAO,CAEhD;AAID;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,EAAE,CAqCzF;AAcD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC"}
|