agentfootprint 9.90.0 → 9.91.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/CHANGELOG.md +90 -0
- package/dist/core/LLMCall.js +62 -7
- package/dist/core/LLMCall.js.map +1 -1
- package/dist/core/agent/buildAgentMessageApiChart.js +26 -3
- package/dist/core/agent/buildAgentMessageApiChart.js.map +1 -1
- package/dist/core/agent/buildMessageApiChart.js +26 -3
- package/dist/core/agent/buildMessageApiChart.js.map +1 -1
- package/dist/core/agent/messageApiReceipt.js +77 -0
- package/dist/core/agent/messageApiReceipt.js.map +1 -0
- package/dist/core/agent/stages/callLLM.js +1 -5
- package/dist/core/agent/stages/callLLM.js.map +1 -1
- package/dist/esm/core/LLMCall.d.ts +18 -0
- package/dist/esm/core/LLMCall.js +63 -8
- package/dist/esm/core/LLMCall.js.map +1 -1
- package/dist/esm/core/agent/buildAgentMessageApiChart.d.ts +22 -0
- package/dist/esm/core/agent/buildAgentMessageApiChart.js +27 -4
- package/dist/esm/core/agent/buildAgentMessageApiChart.js.map +1 -1
- package/dist/esm/core/agent/buildMessageApiChart.d.ts +32 -0
- package/dist/esm/core/agent/buildMessageApiChart.js +27 -4
- package/dist/esm/core/agent/buildMessageApiChart.js.map +1 -1
- package/dist/esm/core/agent/messageApiReceipt.d.ts +82 -0
- package/dist/esm/core/agent/messageApiReceipt.js +73 -0
- package/dist/esm/core/agent/messageApiReceipt.js.map +1 -0
- package/dist/esm/core/agent/stages/callLLM.js +3 -7
- package/dist/esm/core/agent/stages/callLLM.js.map +1 -1
- package/dist/esm/lib/time-travel/receipt.d.ts +45 -13
- package/dist/esm/lib/time-travel/receipt.js +41 -10
- package/dist/esm/lib/time-travel/receipt.js.map +1 -1
- package/dist/esm/lib/time-travel/servedView.d.ts +36 -35
- package/dist/esm/lib/time-travel/servedView.js +64 -43
- package/dist/esm/lib/time-travel/servedView.js.map +1 -1
- package/dist/lib/time-travel/receipt.js +43 -11
- package/dist/lib/time-travel/receipt.js.map +1 -1
- package/dist/lib/time-travel/servedView.js +64 -43
- package/dist/lib/time-travel/servedView.js.map +1 -1
- package/dist/types/core/LLMCall.d.ts +18 -0
- package/dist/types/core/LLMCall.d.ts.map +1 -1
- package/dist/types/core/agent/buildAgentMessageApiChart.d.ts +22 -0
- package/dist/types/core/agent/buildAgentMessageApiChart.d.ts.map +1 -1
- package/dist/types/core/agent/buildMessageApiChart.d.ts +32 -0
- package/dist/types/core/agent/buildMessageApiChart.d.ts.map +1 -1
- package/dist/types/core/agent/messageApiReceipt.d.ts +83 -0
- package/dist/types/core/agent/messageApiReceipt.d.ts.map +1 -0
- package/dist/types/core/agent/stages/callLLM.d.ts.map +1 -1
- package/dist/types/lib/time-travel/receipt.d.ts +45 -13
- package/dist/types/lib/time-travel/receipt.d.ts.map +1 -1
- package/dist/types/lib/time-travel/servedView.d.ts +36 -35
- package/dist/types/lib/time-travel/servedView.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -79,6 +79,22 @@ export interface LLMCallOptions {
|
|
|
79
79
|
* `systemPromptChars` (the length) is on the record.
|
|
80
80
|
*/
|
|
81
81
|
readonly recordSystemPrompt?: boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Mint a receipt on the call (9.91.0). Default ON — the LLMCall twin of
|
|
84
|
+
* `AgentOptions.recordReceipt`, same field, same contract, same default.
|
|
85
|
+
*
|
|
86
|
+
* A receipt is the fingerprint of what the model was actually handed,
|
|
87
|
+
* committed at the call so a reader can check the rebuilt view against it.
|
|
88
|
+
* `false` declines it, for the reason the agent's switch exists: the mint is
|
|
89
|
+
* a SHA-256 per system piece, per message and per tool schema, plus one
|
|
90
|
+
* commit-log value. Declining does not make the log unreadable — `servedAt`
|
|
91
|
+
* still rebuilds the view; what is gone is the witness, and `servedAt` says
|
|
92
|
+
* so with the same gap a pre-9.88 recording raises.
|
|
93
|
+
*
|
|
94
|
+
* @example decline the receipt in a bulk eval loop
|
|
95
|
+
* new LLMCall({ provider, model, recordReceipt: false })
|
|
96
|
+
*/
|
|
97
|
+
readonly recordReceipt?: boolean;
|
|
82
98
|
/**
|
|
83
99
|
* Pricing adapter. When set, LLMCall emits `agentfootprint.cost.tick`
|
|
84
100
|
* after every LLM response with per-call and cumulative USD. Run-scoped
|
|
@@ -138,6 +154,8 @@ export declare class LLMCall extends RunnerBase<LLMCallInput, LLMCallOutput> {
|
|
|
138
154
|
private readonly contextBudget?;
|
|
139
155
|
/** `LLMCallOptions.recordSystemPrompt` (9.50.0) — opt-in, default OFF. */
|
|
140
156
|
private readonly recordSystemPromptValue;
|
|
157
|
+
/** `LLMCallOptions.recordReceipt` (9.91.0) — opt-OUT, default ON. */
|
|
158
|
+
private readonly recordReceiptValue;
|
|
141
159
|
private readonly structureRecorders?;
|
|
142
160
|
private readonly groupTranslator?;
|
|
143
161
|
/** Auto-resolved from provider.name at construction time (same
|
package/dist/esm/core/LLMCall.js
CHANGED
|
@@ -51,6 +51,7 @@ import { skillRecorder } from '../recorders/core/SkillRecorder.js';
|
|
|
51
51
|
import { typedEmit } from '../recorders/core/typedEmit.js';
|
|
52
52
|
import { resilienceHooks } from '../recorders/core/resilienceHooks.js';
|
|
53
53
|
import { resilienceRecorder } from '../recorders/core/ResilienceRecorder.js';
|
|
54
|
+
import { buildReceipt, receiptPieces, RECEIPT_KEY, } from '../lib/time-travel/receipt.js';
|
|
54
55
|
import { assertCostBudgetHasPricing, emitCostTick, resolveCostBudget, } from './cost.js';
|
|
55
56
|
import { RunnerBase, makeRunId } from './RunnerBase.js';
|
|
56
57
|
import { normalizeRunInput } from './runInput.js';
|
|
@@ -58,7 +59,7 @@ import { buildSystemPromptSlot } from './slots/buildSystemPromptSlot.js';
|
|
|
58
59
|
import { buildMessagesSlot } from './slots/buildMessagesSlot.js';
|
|
59
60
|
import { buildThinkingSubflow } from './slots/buildThinkingSubflow.js';
|
|
60
61
|
import { findThinkingHandler } from '../thinking/registry.js';
|
|
61
|
-
import { joinSystemPrompt, messagesFromInjections } from './agent/composeRequest.js';
|
|
62
|
+
import { joinSystemPrompt, messagesFromInjections, stripFrameworkFields, } from './agent/composeRequest.js';
|
|
62
63
|
export class LLMCall extends RunnerBase {
|
|
63
64
|
name;
|
|
64
65
|
id;
|
|
@@ -74,6 +75,8 @@ export class LLMCall extends RunnerBase {
|
|
|
74
75
|
contextBudget;
|
|
75
76
|
/** `LLMCallOptions.recordSystemPrompt` (9.50.0) — opt-in, default OFF. */
|
|
76
77
|
recordSystemPromptValue = false;
|
|
78
|
+
/** `LLMCallOptions.recordReceipt` (9.91.0) — opt-OUT, default ON. */
|
|
79
|
+
recordReceiptValue = true;
|
|
77
80
|
structureRecorders;
|
|
78
81
|
groupTranslator;
|
|
79
82
|
/** Auto-resolved from provider.name at construction time (same
|
|
@@ -111,6 +114,8 @@ export class LLMCall extends RunnerBase {
|
|
|
111
114
|
this.contextBudget = opts.contextBudget;
|
|
112
115
|
if (opts.recordSystemPrompt === true)
|
|
113
116
|
this.recordSystemPromptValue = true;
|
|
117
|
+
if (opts.recordReceipt === false)
|
|
118
|
+
this.recordReceiptValue = false;
|
|
114
119
|
if (opts.structureRecorders)
|
|
115
120
|
this.structureRecorders = opts.structureRecorders;
|
|
116
121
|
if (opts.groupTranslator)
|
|
@@ -248,6 +253,12 @@ export class LLMCall extends RunnerBase {
|
|
|
248
253
|
const pricingTable = this.pricingTable;
|
|
249
254
|
const costBudget = this.costBudget;
|
|
250
255
|
const thinkingHandler = this.thinkingHandler;
|
|
256
|
+
const recordReceipt = this.recordReceiptValue;
|
|
257
|
+
// THE SALT (9.91.0). `createExecutor` mints a fresh run id on every run and
|
|
258
|
+
// every resume, and the chart is built once — so the receipt reads it
|
|
259
|
+
// through `this` AT CALL TIME rather than closing over a value that would
|
|
260
|
+
// be one run stale on the second run of the same LLMCall.
|
|
261
|
+
const getRunId = () => this.currentRunContext.runId;
|
|
251
262
|
// ─── Outer Client stage ─────────────────────────────────────────
|
|
252
263
|
// First visit: receives args, sets userMessage on outer scope.
|
|
253
264
|
// Second visit (post-loop): scope.answer has been populated by the
|
|
@@ -312,7 +323,12 @@ export class LLMCall extends RunnerBase {
|
|
|
312
323
|
// reason the system-prompt join is one: `LLMCall` has no `history`, so
|
|
313
324
|
// these records ARE the committed conversation, and `servedAt` rebuilds
|
|
314
325
|
// it by calling this identical function over the identical records.
|
|
315
|
-
|
|
326
|
+
//
|
|
327
|
+
// The framework-field strip rides with it (9.91.0) — the third rule of
|
|
328
|
+
// the one assembly. It is identity on what this slot composes today, and
|
|
329
|
+
// it is here so the two sides cannot drift the day that changes: the
|
|
330
|
+
// rebuild applies it, so the mint applies it.
|
|
331
|
+
const messages = stripFrameworkFields(messagesFromInjections(messagesInjections));
|
|
316
332
|
typedEmit(scope, 'agentfootprint.stream.llm_start', {
|
|
317
333
|
iteration,
|
|
318
334
|
provider: provider.name,
|
|
@@ -326,17 +342,56 @@ export class LLMCall extends RunnerBase {
|
|
|
326
342
|
...(temperature !== undefined && { temperature }),
|
|
327
343
|
});
|
|
328
344
|
const startMs = Date.now();
|
|
329
|
-
//
|
|
330
|
-
//
|
|
331
|
-
//
|
|
332
|
-
//
|
|
333
|
-
const
|
|
345
|
+
// ONE request object, built once and both sent and fingerprinted —
|
|
346
|
+
// never assembled twice (9.91.0). A second literal at the mint would be
|
|
347
|
+
// a second assembly, and the whole point of a receipt is that it
|
|
348
|
+
// describes THIS one.
|
|
349
|
+
const request = {
|
|
334
350
|
systemPrompt: systemPrompt.length > 0 ? systemPrompt : undefined,
|
|
335
351
|
messages,
|
|
336
352
|
model,
|
|
337
353
|
...(temperature !== undefined && { temperature }),
|
|
338
354
|
...(maxTokens !== undefined && { maxTokens }),
|
|
339
|
-
}
|
|
355
|
+
};
|
|
356
|
+
// ── THE RECEIPT (9.91.0) ─────────────────────────────────────────
|
|
357
|
+
// Written immediately before the provider is called, so it is committed
|
|
358
|
+
// in the call-llm bundle that already exists — and before rather than
|
|
359
|
+
// after on purpose: the stage commits on the error path too, so a call
|
|
360
|
+
// that throws still leaves the record of what it was about to send.
|
|
361
|
+
//
|
|
362
|
+
// The mint is `receipt.ts` · `buildReceipt`, the same one the agent's
|
|
363
|
+
// `call-llm` calls, salted with this run's own id. There is no cache
|
|
364
|
+
// strategy on this chart, so the request handed out is the request
|
|
365
|
+
// assembled: `baseRequest` and `preparedRequest` are the same object and
|
|
366
|
+
// `cache.transform` records `'unchanged'` — exactly what an agent
|
|
367
|
+
// running a pass-through strategy records, and true for the same reason.
|
|
368
|
+
//
|
|
369
|
+
// NOT HERE: `omittedForAttention`. A slot's budget drops live in
|
|
370
|
+
// `slotCompositions` inside the slot's own subflow and no boundary
|
|
371
|
+
// bubbles them out, so the key is absent at this scope. A receipt
|
|
372
|
+
// records what the run knows; it does not go looking.
|
|
373
|
+
if (recordReceipt) {
|
|
374
|
+
scope[RECEIPT_KEY] = buildReceipt({
|
|
375
|
+
runId: getRunId(),
|
|
376
|
+
epoch: iteration,
|
|
377
|
+
model,
|
|
378
|
+
provider: provider.name,
|
|
379
|
+
systemText: systemPrompt,
|
|
380
|
+
systemPieces: receiptPieces(systemPromptInjections),
|
|
381
|
+
messages,
|
|
382
|
+
requestOnly: [],
|
|
383
|
+
tools: [],
|
|
384
|
+
forced: null,
|
|
385
|
+
withheld: null,
|
|
386
|
+
baseRequest: request,
|
|
387
|
+
preparedRequest: request,
|
|
388
|
+
});
|
|
389
|
+
}
|
|
390
|
+
// Raw provider errors propagate untouched (reliability + merge
|
|
391
|
+
// layers classify on the raw message). The friendly translation
|
|
392
|
+
// for non-developers happens once at the terminal boundary —
|
|
393
|
+
// ErrorBridge humanizes the `error.fatal` event the monitor reads.
|
|
394
|
+
const response = await provider.complete(request,
|
|
340
395
|
// Resilience-report channel: a decorated provider's fallback /
|
|
341
396
|
// retry / recovery becomes an in-run typed event here.
|
|
342
397
|
resilienceHooks(scope));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LLMCall.js","sourceRoot":"","sources":["../../../src/core/LLMCall.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LLMCall.js","sourceRoot":"","sources":["../../../src/core/LLMCall.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,28 @@ export interface AgentMessageApiChartDeps {
|
|
|
33
33
|
readonly tools: readonly LLMToolSchema[];
|
|
34
34
|
readonly maxIterations?: number;
|
|
35
35
|
readonly structureRecorders?: readonly import('footprintjs').StructureRecorder[];
|
|
36
|
+
/**
|
|
37
|
+
* The id of the run this chart is about to make (9.91.0) — supply it and
|
|
38
|
+
* Call-LLM mints a receipt on every turn of the loop, the fingerprint of
|
|
39
|
+
* what the model was handed, committed at each call for `receiptAt` and
|
|
40
|
+
* `servedAt` to read. The twin of `MessageApiChartDeps.getRunId`, and for
|
|
41
|
+
* the same reason: this is a chart BUILDER handed to an executor the caller
|
|
42
|
+
* owns, so the salt has to come from whoever starts the run.
|
|
43
|
+
*
|
|
44
|
+
* OMIT IT AND NO RECEIPT IS MINTED — never an unsalted one. The rule and its
|
|
45
|
+
* reason live in `messageApiReceipt.ts`; `servedAt` declares the absence and
|
|
46
|
+
* rebuilds the view as it always did.
|
|
47
|
+
*
|
|
48
|
+
* @example (internal — `buildAgentMessageApiChart` is not on the package's
|
|
49
|
+
* public surface; the type is, so a caller composing this chart inside the
|
|
50
|
+
* library reads the contract here)
|
|
51
|
+
* ```ts
|
|
52
|
+
* const runId = `run-${Date.now()}`;
|
|
53
|
+
* const chart = buildAgentMessageApiChart({ ...deps, getRunId: () => runId });
|
|
54
|
+
* await new FlowChartExecutor(chart).run({ input: { message: 'hi' } });
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
readonly getRunId?: () => string | undefined;
|
|
36
58
|
}
|
|
37
59
|
/**
|
|
38
60
|
* Build the Agent merge-tree chart as one flat ReAct flowchart.
|
|
@@ -25,13 +25,15 @@
|
|
|
25
25
|
* which slots the Context selector lights per iteration differs.
|
|
26
26
|
*/
|
|
27
27
|
import { flowChartSelector, select } from 'footprintjs';
|
|
28
|
+
import { RECEIPT_KEY } from '../../lib/time-travel/receipt.js';
|
|
29
|
+
import { messageApiReceipt } from './messageApiReceipt.js';
|
|
28
30
|
import { SUBFLOW_IDS, STAGE_IDS, milestoneTagsFor } from '../../conventions.js';
|
|
29
31
|
import { typedEmit } from '../../recorders/core/typedEmit.js';
|
|
30
32
|
import { resilienceHooks } from '../../recorders/core/resilienceHooks.js';
|
|
31
33
|
import { buildSystemPromptSlot } from '../slots/buildSystemPromptSlot.js';
|
|
32
34
|
import { buildMessagesSlot } from '../slots/buildMessagesSlot.js';
|
|
33
35
|
import { buildToolsSlot } from '../slots/buildToolsSlot.js';
|
|
34
|
-
import { joinSystemPrompt } from './composeRequest.js';
|
|
36
|
+
import { joinSystemPrompt, stripFrameworkFields } from './composeRequest.js';
|
|
35
37
|
/** Route branch ids. */
|
|
36
38
|
const ROUTE_TOOL_CALLS = 'tool-calls';
|
|
37
39
|
const ROUTE_FINAL = SUBFLOW_IDS.FINAL;
|
|
@@ -76,7 +78,7 @@ export function buildAgentMessageApiChart(deps) {
|
|
|
76
78
|
// ── Call-LLM: send the assembled payload + the tool schemas. ──
|
|
77
79
|
const callLLM = async (scope) => {
|
|
78
80
|
const system = scope.assembledSystem;
|
|
79
|
-
const messages = (scope.assembledMessages ?? []);
|
|
81
|
+
const messages = stripFrameworkFields((scope.assembledMessages ?? []));
|
|
80
82
|
const toolSchemas = (scope.toolSchemas ?? []);
|
|
81
83
|
typedEmit(scope, 'agentfootprint.stream.llm_start', {
|
|
82
84
|
iteration: scope.iteration,
|
|
@@ -93,12 +95,33 @@ export function buildAgentMessageApiChart(deps) {
|
|
|
93
95
|
}),
|
|
94
96
|
});
|
|
95
97
|
const startMs = Date.now();
|
|
96
|
-
|
|
98
|
+
// ONE request object, sent and fingerprinted — never assembled twice.
|
|
99
|
+
const request = {
|
|
97
100
|
...(system.length > 0 && { systemPrompt: system }),
|
|
98
101
|
messages,
|
|
99
102
|
...(toolSchemas.length > 0 && { tools: toolSchemas }),
|
|
100
103
|
model,
|
|
101
|
-
}
|
|
104
|
+
};
|
|
105
|
+
// ── THE RECEIPT (9.91.0) ───────────────────────────────────────────
|
|
106
|
+
// Minted immediately before the port is called, so it is committed in the
|
|
107
|
+
// call-llm bundle that already exists — and before rather than after on
|
|
108
|
+
// purpose: the stage commits on the error path too, so a call that throws
|
|
109
|
+
// still leaves the record of what it was about to send. No run id ⇒ no
|
|
110
|
+
// receipt; the rule and its reason live in `messageApiReceipt.ts`.
|
|
111
|
+
const receipt = messageApiReceipt({
|
|
112
|
+
runId: deps.getRunId?.(),
|
|
113
|
+
epoch: scope.iteration,
|
|
114
|
+
model,
|
|
115
|
+
provider: provider.name,
|
|
116
|
+
systemText: system,
|
|
117
|
+
systemPieces: (scope.systemPromptInjections ?? []),
|
|
118
|
+
messages,
|
|
119
|
+
tools: toolSchemas,
|
|
120
|
+
request,
|
|
121
|
+
});
|
|
122
|
+
if (receipt !== undefined)
|
|
123
|
+
scope[RECEIPT_KEY] = receipt;
|
|
124
|
+
const response = await provider.complete(request,
|
|
102
125
|
// Resilience-report channel: a decorated provider's fallback /
|
|
103
126
|
// retry / recovery becomes an in-run typed event here.
|
|
104
127
|
//
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildAgentMessageApiChart.js","sourceRoot":"","sources":["../../../../src/core/agent/buildAgentMessageApiChart.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEhF,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"buildAgentMessageApiChart.js","sourceRoot":"","sources":["../../../../src/core/agent/buildAgentMessageApiChart.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,6 +41,38 @@ export interface MessageApiChartDeps {
|
|
|
41
41
|
readonly model: string;
|
|
42
42
|
readonly systemPrompt: string;
|
|
43
43
|
readonly structureRecorders?: readonly import('footprintjs').StructureRecorder[];
|
|
44
|
+
/**
|
|
45
|
+
* The id of the run this chart is about to make (9.91.0) — supply it and
|
|
46
|
+
* Call-LLM mints a receipt, the fingerprint of what the model was handed,
|
|
47
|
+
* committed at the call for `receiptAt` and `servedAt` to read.
|
|
48
|
+
*
|
|
49
|
+
* IT IS A DEP BECAUSE THIS IS A CHART BUILDER, NOT A RUNNER. `Agent` and
|
|
50
|
+
* `LLMCall` own their executor and mint a run id per run; this chart is
|
|
51
|
+
* handed to a `FlowChartExecutor` the caller owns, and nothing in a stage's
|
|
52
|
+
* scope carries that executor's run id. So the one value the receipt cannot
|
|
53
|
+
* do without has to come from whoever starts the run.
|
|
54
|
+
*
|
|
55
|
+
* OMIT IT AND NO RECEIPT IS MINTED — deliberately, rather than minting an
|
|
56
|
+
* unsalted one. Every hash on a receipt is salted with the run id precisely
|
|
57
|
+
* so a short system prompt or a two-word turn cannot be fingerprinted across
|
|
58
|
+
* runs (`receipt.ts`, the third law), and a receipt is committed state that
|
|
59
|
+
* travels in recordings. A chart that minted with an empty salt would ship
|
|
60
|
+
* dictionary-attackable fingerprints by default. `servedAt` then declares
|
|
61
|
+
* the absence — `no-receipt-on-chart`, cause `'no-receipt-committed'` — and
|
|
62
|
+
* rebuilds the view as it always did.
|
|
63
|
+
*
|
|
64
|
+
* @example (internal — `buildMessageApiChart` is not on the package's public
|
|
65
|
+
* surface; the type is, so a caller composing this chart inside the library
|
|
66
|
+
* reads the contract here)
|
|
67
|
+
* ```ts
|
|
68
|
+
* const runId = `run-${Date.now()}`;
|
|
69
|
+
* const chart = buildMessageApiChart({ provider, model, systemPrompt, getRunId: () => runId });
|
|
70
|
+
* const executor = new FlowChartExecutor(chart);
|
|
71
|
+
* await executor.run({ input: { message: 'hi' } });
|
|
72
|
+
* receiptAt(executor.getSnapshot(), 1)?.basis.runId; // runId
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
readonly getRunId?: () => string | undefined;
|
|
44
76
|
}
|
|
45
77
|
/**
|
|
46
78
|
* Build the LLM-only messageAPI merge-tree chart.
|
|
@@ -35,12 +35,14 @@
|
|
|
35
35
|
* emits context.injected and Lens renders them — no bespoke collapser.
|
|
36
36
|
*/
|
|
37
37
|
import { flowChartSelector, select } from 'footprintjs';
|
|
38
|
+
import { RECEIPT_KEY } from '../../lib/time-travel/receipt.js';
|
|
39
|
+
import { messageApiReceipt } from './messageApiReceipt.js';
|
|
38
40
|
import { SUBFLOW_IDS, STAGE_IDS, milestoneTagsFor } from '../../conventions.js';
|
|
39
41
|
import { typedEmit } from '../../recorders/core/typedEmit.js';
|
|
40
42
|
import { resilienceHooks } from '../../recorders/core/resilienceHooks.js';
|
|
41
43
|
import { buildSystemPromptSlot } from '../slots/buildSystemPromptSlot.js';
|
|
42
44
|
import { buildMessagesSlot } from '../slots/buildMessagesSlot.js';
|
|
43
|
-
import { joinSystemPrompt } from './composeRequest.js';
|
|
45
|
+
import { joinSystemPrompt, stripFrameworkFields } from './composeRequest.js';
|
|
44
46
|
/**
|
|
45
47
|
* Build the LLM-only messageAPI merge-tree chart.
|
|
46
48
|
*/
|
|
@@ -92,7 +94,7 @@ export function buildMessageApiChart(deps) {
|
|
|
92
94
|
// ── Call-LLM: send the assembled payload, write the answer. ──
|
|
93
95
|
const callLLM = async (scope) => {
|
|
94
96
|
const system = scope.assembledSystem;
|
|
95
|
-
const messages = (scope.assembledMessages ?? []);
|
|
97
|
+
const messages = stripFrameworkFields((scope.assembledMessages ?? []));
|
|
96
98
|
typedEmit(scope, 'agentfootprint.stream.llm_start', {
|
|
97
99
|
iteration: scope.iteration,
|
|
98
100
|
provider: provider.name,
|
|
@@ -102,11 +104,32 @@ export function buildMessageApiChart(deps) {
|
|
|
102
104
|
toolsCount: 0,
|
|
103
105
|
});
|
|
104
106
|
const startMs = Date.now();
|
|
105
|
-
|
|
107
|
+
// ONE request object, sent and fingerprinted — see the receipt below.
|
|
108
|
+
const request = {
|
|
106
109
|
...(system.length > 0 && { systemPrompt: system }),
|
|
107
110
|
messages,
|
|
108
111
|
model,
|
|
109
|
-
}
|
|
112
|
+
};
|
|
113
|
+
// ── THE RECEIPT (9.91.0) ───────────────────────────────────────────
|
|
114
|
+
// Minted immediately before the port is called, so it is committed in the
|
|
115
|
+
// call-llm bundle that already exists — and before rather than after on
|
|
116
|
+
// purpose: the stage commits on the error path too, so a call that throws
|
|
117
|
+
// still leaves the record of what it was about to send. No run id ⇒ no
|
|
118
|
+
// receipt; the rule and its reason live in `messageApiReceipt.ts`.
|
|
119
|
+
const receipt = messageApiReceipt({
|
|
120
|
+
runId: deps.getRunId?.(),
|
|
121
|
+
epoch: scope.iteration,
|
|
122
|
+
model,
|
|
123
|
+
provider: provider.name,
|
|
124
|
+
systemText: system,
|
|
125
|
+
systemPieces: (scope.systemPromptInjections ?? []),
|
|
126
|
+
messages,
|
|
127
|
+
tools: [],
|
|
128
|
+
request,
|
|
129
|
+
});
|
|
130
|
+
if (receipt !== undefined)
|
|
131
|
+
scope[RECEIPT_KEY] = receipt;
|
|
132
|
+
const response = await provider.complete(request,
|
|
110
133
|
// Resilience-report channel — see buildAgentMessageApiChart.
|
|
111
134
|
resilienceHooks(scope));
|
|
112
135
|
scope.answer = response.content;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildMessageApiChart.js","sourceRoot":"","sources":["../../../../src/core/agent/buildMessageApiChart.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEhF,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"buildMessageApiChart.js","sourceRoot":"","sources":["../../../../src/core/agent/buildMessageApiChart.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAgB,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEhF,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AA4D7E;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAyB;IAC5D,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAE/C,2EAA2E;IAC3E,4EAA4E;IAC5E,wEAAwE;IACxE,EAAE;IACF,6EAA6E;IAC7E,2EAA2E;IAC3E,4EAA4E;IAC5E,4EAA4E;IAC5E,8DAA8D;IAC9D,MAAM,eAAe,GAAG,CAAC,KAAkC,EAAE,EAAE;QAC7D,sEAAsE;QACtE,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAuB,CAAC;QACnD,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;QACjC,KAAK,CAAC,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1D,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;QACpB,KAAK,CAAC,sBAAsB,GAAG,EAAE,CAAC;QAClC,KAAK,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC9B,KAAK,CAAC,eAAe,GAAG,EAAE,CAAC;QAC3B,KAAK,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC7B,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;QAElB,OAAO,MAAM,CAAC,KAAK,EAAE;YACnB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,aAAa,EAAE,KAAK,EAAE,wBAAwB,EAAE;YACtF,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,mBAAmB,EAAE;SAC7E,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,wEAAwE;IACxE,0EAA0E;IAC1E,MAAM,eAAe,GAAG,CAAC,KAAkC,EAAQ,EAAE;QACnE,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,sBAAsB,IAAI,EAAE,CAA+B,CAAC;QACzF,KAAK,CAAC,eAAe,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACxD,mEAAmE;QACnE,qEAAqE;QACrE,+DAA+D;QAC/D,KAAK,CAAC,iBAAiB,GAAG,CAAC,GAAI,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAA2B,CAAC,CAAC;QAChF,SAAS,CAAC,KAAK,EAAE,sCAAsC,EAAE;YACvD,IAAI,EAAE,UAAU;YAChB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;YAC7C,eAAe,EAAE,EAAE;YACnB,YAAY,EAAE,CAAC;YACf,gBAAgB,EAAE,EAAE;SACrB,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,gEAAgE;IAChE,MAAM,OAAO,GAAG,KAAK,EAAE,KAAkC,EAAiB,EAAE;QAC1E,MAAM,MAAM,GAAG,KAAK,CAAC,eAAe,CAAC;QACrC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,CAAC,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAA0B,CAAC,CAAC;QAChG,SAAS,CAAC,KAAK,EAAE,iCAAiC,EAAE;YAClD,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,QAAQ,EAAE,QAAQ,CAAC,IAAI;YACvB,KAAK;YACL,iBAAiB,EAAE,MAAM,CAAC,MAAM;YAChC,aAAa,EAAE,QAAQ,CAAC,MAAM;YAC9B,UAAU,EAAE,CAAC;SACd,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,sEAAsE;QACtE,MAAM,OAAO,GAAe;YAC1B,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;YAClD,QAAQ;YACR,KAAK;SACN,CAAC;QACF,sEAAsE;QACtE,0EAA0E;QAC1E,wEAAwE;QACxE,0EAA0E;QAC1E,uEAAuE;QACvE,mEAAmE;QACnE,MAAM,OAAO,GAAG,iBAAiB,CAAC;YAChC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE;YACxB,KAAK,EAAE,KAAK,CAAC,SAAS;YACtB,KAAK;YACL,QAAQ,EAAE,QAAQ,CAAC,IAAI;YACvB,UAAU,EAAE,MAAM;YAClB,YAAY,EAAE,CAAC,KAAK,CAAC,sBAAsB,IAAI,EAAE,CAA+B;YAChF,QAAQ;YACR,KAAK,EAAE,EAAE;YACT,OAAO;SACR,CAAC,CAAC;QACH,IAAI,OAAO,KAAK,SAAS;YAAE,KAAK,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,QAAQ,CACtC,OAAO;QACP,6DAA6D;QAC7D,eAAe,CAAC,KAAK,CAAC,CACvB,CAAC;QACF,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC;QAChC,SAAS,CAAC,KAAK,EAAE,+BAA+B,EAAE;YAChD,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,aAAa,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM;YACxC,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;SACjC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,uEAAuE;IACvE,MAAM,OAAO,GAAG,iBAAiB,CAC/B,SAAS,EACT,eAAwB,EACxB,SAAS,EACT;QACE,GAAG,CAAC,IAAI,CAAC,kBAAkB,KAAK,SAAS,IAAI;YAC3C,kBAAkB,EAAE,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;SACjD,CAAC;QACF,kEAAkE;QAClE,WAAW,EAAE,gCAAgC;KAC9C,CACF;SACE,qBAAqB,CACpB,WAAW,CAAC,aAAa,EACzB,qBAAqB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,EAC3E,eAAe,EACf;QACE,IAAI,EAAE,gBAAgB,CAAC,WAAW,CAAC,aAAa,CAAC;QACjD,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACxB,WAAW,EAAG,MAA0B,CAAC,WAAW;YACpD,SAAS,EAAG,MAA0B,CAAC,SAAS;SACjD,CAAC;QACF,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACrB,sBAAsB,EAAG,EAAsB,CAAC,sBAAsB;SACvE,CAAC;KACH,CACF;SACA,qBAAqB,CAAC,WAAW,CAAC,QAAQ,EAAE,iBAAiB,EAAE,EAAE,UAAU,EAAE;QAC5E,IAAI,EAAE,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC;QAC5C,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACxB,QAAQ,EAAG,MAA0B,CAAC,OAAO;YAC7C,SAAS,EAAG,MAA0B,CAAC,SAAS;SACjD,CAAC;QACF,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,kBAAkB,EAAG,EAAsB,CAAC,kBAAkB,EAAE,CAAC;KAC3F,CAAC;SACD,GAAG,EAAE;QACN,+DAA+D;SAC9D,WAAW,CACV,YAAY,EACZ,eAAwB,EACxB,aAAa,EACb,iDAAiD,CAClD;SACA,WAAW,CAAC,SAAS,EAAE,OAAgB,EAAE,UAAU,EAAE,uCAAuC,CAAC;QAC9F,qEAAqE;QACrE,0CAA0C;SACzC,GAAG,CAAC,GAAG,gBAAgB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEhD,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* messageApiReceipt — the one mint the two message-API charts share, and the
|
|
3
|
+
* one place that says when a chart may not mint at all.
|
|
4
|
+
*
|
|
5
|
+
* Role: Lens. One pure function over what a `call-llm` stage already holds.
|
|
6
|
+
* It reads no scope, emits nothing and commits nothing — the caller
|
|
7
|
+
* commits what it returns, under `receipt.ts` · `RECEIPT_KEY`.
|
|
8
|
+
* Reads: its arguments.
|
|
9
|
+
* Emits: N/A.
|
|
10
|
+
*
|
|
11
|
+
* WHY THIS FILE EXISTS. `buildMessageApiChart` and `buildAgentMessageApiChart`
|
|
12
|
+
* are deliberate twins — the second is the first plus tools, a router and a
|
|
13
|
+
* loop — and a mint written out in both is two chances to disagree about what
|
|
14
|
+
* the model was handed on charts whose whole job is to be the same shape. The
|
|
15
|
+
* arguments differ per chart (one has tools, one does not); the RULE does not,
|
|
16
|
+
* and the rule is what lives here.
|
|
17
|
+
*
|
|
18
|
+
* THE RULE: NO RUN ID, NO RECEIPT. Every hash a receipt carries is salted with
|
|
19
|
+
* the run id (`receipt.ts`, the third law) so a short system prompt or a
|
|
20
|
+
* two-word turn cannot be fingerprinted across runs, and a receipt is committed
|
|
21
|
+
* state that travels inside recordings. These two charts are exported BUILDERS
|
|
22
|
+
* handed to an executor the caller owns — nothing in a stage's scope carries
|
|
23
|
+
* that executor's run id — so the salt has to be supplied, and when it is not
|
|
24
|
+
* this returns `undefined` rather than minting with an empty one. `servedAt`
|
|
25
|
+
* then declares the absence (`no-receipt-on-chart`, cause
|
|
26
|
+
* `'no-receipt-committed'`) and rebuilds the view exactly as it always did: a
|
|
27
|
+
* Lens may omit, never deny.
|
|
28
|
+
*/
|
|
29
|
+
import type { LLMMessage, LLMRequest, LLMToolSchema } from '../../adapters/types.js';
|
|
30
|
+
import { type Receipt, type SystemPieceRecord } from '../../lib/time-travel/receipt.js';
|
|
31
|
+
/** What a message-API chart's `call-llm` stage hands the mint. */
|
|
32
|
+
export interface MessageApiReceiptInput {
|
|
33
|
+
/** The run this call belongs to, from the chart's `getRunId` dep. Absent or
|
|
34
|
+
* empty ⇒ no receipt — see the rule in this file's header. */
|
|
35
|
+
readonly runId: string | undefined;
|
|
36
|
+
/** The committed `iteration` at this call. */
|
|
37
|
+
readonly epoch: number;
|
|
38
|
+
readonly model: string;
|
|
39
|
+
/** `LLMProvider.name` — the port the request went out through. */
|
|
40
|
+
readonly provider: string;
|
|
41
|
+
/** The joined system string, exactly as sent. */
|
|
42
|
+
readonly systemText: string;
|
|
43
|
+
/** The injection records it was joined from, in slot order. */
|
|
44
|
+
readonly systemPieces: readonly SystemPieceRecord[];
|
|
45
|
+
/** The conversation as sent, post-strip. */
|
|
46
|
+
readonly messages: readonly LLMMessage[];
|
|
47
|
+
/** The tool list as sent. Empty on a chart that serves none. */
|
|
48
|
+
readonly tools: readonly LLMToolSchema[];
|
|
49
|
+
/**
|
|
50
|
+
* The request object the provider port is handed — the SAME object, not a
|
|
51
|
+
* second literal built to describe it.
|
|
52
|
+
*
|
|
53
|
+
* It stands for both halves of the cache comparison because neither chart
|
|
54
|
+
* runs a cache strategy: nothing rewrote the request between assembly and
|
|
55
|
+
* the port, so `cache.transform` records `'unchanged'`. That is the verdict
|
|
56
|
+
* an agent running a pass-through strategy records today, and it is true
|
|
57
|
+
* here for the same reason — the request that went out is the request that
|
|
58
|
+
* was assembled.
|
|
59
|
+
*/
|
|
60
|
+
readonly request: LLMRequest;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Mint one message-API chart's receipt, or `undefined` when the chart was
|
|
64
|
+
* given no run id to salt it with.
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```ts
|
|
68
|
+
* const receipt = messageApiReceipt({
|
|
69
|
+
* runId: deps.getRunId?.(),
|
|
70
|
+
* epoch: 1,
|
|
71
|
+
* model,
|
|
72
|
+
* provider: provider.name,
|
|
73
|
+
* systemText: system,
|
|
74
|
+
* systemPieces: scope.systemPromptInjections ?? [],
|
|
75
|
+
* messages,
|
|
76
|
+
* tools: [],
|
|
77
|
+
* request,
|
|
78
|
+
* });
|
|
79
|
+
* if (receipt !== undefined) scope[RECEIPT_KEY] = receipt;
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
export declare function messageApiReceipt(input: MessageApiReceiptInput): Receipt | undefined;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* messageApiReceipt — the one mint the two message-API charts share, and the
|
|
3
|
+
* one place that says when a chart may not mint at all.
|
|
4
|
+
*
|
|
5
|
+
* Role: Lens. One pure function over what a `call-llm` stage already holds.
|
|
6
|
+
* It reads no scope, emits nothing and commits nothing — the caller
|
|
7
|
+
* commits what it returns, under `receipt.ts` · `RECEIPT_KEY`.
|
|
8
|
+
* Reads: its arguments.
|
|
9
|
+
* Emits: N/A.
|
|
10
|
+
*
|
|
11
|
+
* WHY THIS FILE EXISTS. `buildMessageApiChart` and `buildAgentMessageApiChart`
|
|
12
|
+
* are deliberate twins — the second is the first plus tools, a router and a
|
|
13
|
+
* loop — and a mint written out in both is two chances to disagree about what
|
|
14
|
+
* the model was handed on charts whose whole job is to be the same shape. The
|
|
15
|
+
* arguments differ per chart (one has tools, one does not); the RULE does not,
|
|
16
|
+
* and the rule is what lives here.
|
|
17
|
+
*
|
|
18
|
+
* THE RULE: NO RUN ID, NO RECEIPT. Every hash a receipt carries is salted with
|
|
19
|
+
* the run id (`receipt.ts`, the third law) so a short system prompt or a
|
|
20
|
+
* two-word turn cannot be fingerprinted across runs, and a receipt is committed
|
|
21
|
+
* state that travels inside recordings. These two charts are exported BUILDERS
|
|
22
|
+
* handed to an executor the caller owns — nothing in a stage's scope carries
|
|
23
|
+
* that executor's run id — so the salt has to be supplied, and when it is not
|
|
24
|
+
* this returns `undefined` rather than minting with an empty one. `servedAt`
|
|
25
|
+
* then declares the absence (`no-receipt-on-chart`, cause
|
|
26
|
+
* `'no-receipt-committed'`) and rebuilds the view exactly as it always did: a
|
|
27
|
+
* Lens may omit, never deny.
|
|
28
|
+
*/
|
|
29
|
+
import { buildReceipt, receiptPieces, } from '../../lib/time-travel/receipt.js';
|
|
30
|
+
/**
|
|
31
|
+
* Mint one message-API chart's receipt, or `undefined` when the chart was
|
|
32
|
+
* given no run id to salt it with.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```ts
|
|
36
|
+
* const receipt = messageApiReceipt({
|
|
37
|
+
* runId: deps.getRunId?.(),
|
|
38
|
+
* epoch: 1,
|
|
39
|
+
* model,
|
|
40
|
+
* provider: provider.name,
|
|
41
|
+
* systemText: system,
|
|
42
|
+
* systemPieces: scope.systemPromptInjections ?? [],
|
|
43
|
+
* messages,
|
|
44
|
+
* tools: [],
|
|
45
|
+
* request,
|
|
46
|
+
* });
|
|
47
|
+
* if (receipt !== undefined) scope[RECEIPT_KEY] = receipt;
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export function messageApiReceipt(input) {
|
|
51
|
+
if (input.runId === undefined || input.runId.length === 0)
|
|
52
|
+
return undefined;
|
|
53
|
+
return buildReceipt({
|
|
54
|
+
runId: input.runId,
|
|
55
|
+
epoch: input.epoch,
|
|
56
|
+
model: input.model,
|
|
57
|
+
provider: input.provider,
|
|
58
|
+
systemText: input.systemText,
|
|
59
|
+
systemPieces: receiptPieces(input.systemPieces),
|
|
60
|
+
messages: input.messages,
|
|
61
|
+
// Neither chart composes a line that exists on the request only, forces an
|
|
62
|
+
// answer tool, or withholds the tool list for a wrap-up. Three facts about
|
|
63
|
+
// these charts, written as the values they are rather than left for a
|
|
64
|
+
// reader to infer from an absence.
|
|
65
|
+
requestOnly: [],
|
|
66
|
+
tools: input.tools,
|
|
67
|
+
forced: null,
|
|
68
|
+
withheld: null,
|
|
69
|
+
baseRequest: input.request,
|
|
70
|
+
preparedRequest: input.request,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=messageApiReceipt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messageApiReceipt.js","sourceRoot":"","sources":["../../../../src/core/agent/messageApiReceipt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,EACL,YAAY,EACZ,aAAa,GAGd,MAAM,kCAAkC,CAAC;AAkC1C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAA6B;IAC7D,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5E,OAAO,YAAY,CAAC;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,YAAY,EAAE,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC;QAC/C,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,2EAA2E;QAC3E,2EAA2E;QAC3E,sEAAsE;QACtE,mCAAmC;QACnC,WAAW,EAAE,EAAE;QACf,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,KAAK,CAAC,OAAO;QAC1B,eAAe,EAAE,KAAK,CAAC,OAAO;KAC/B,CAAC,CAAC;AACL,CAAC"}
|