agentfootprint 9.77.0 → 9.79.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 +189 -0
- package/CLAUDE.md +2 -1
- package/dist/artifacts/recordingArtifact.js +5 -1
- package/dist/artifacts/recordingArtifact.js.map +1 -1
- package/dist/core/Agent.js +50 -0
- package/dist/core/Agent.js.map +1 -1
- package/dist/core/agent/stages/callLLM.js +14 -0
- package/dist/core/agent/stages/callLLM.js.map +1 -1
- package/dist/core/agent/stages/toolCalls.js +107 -0
- package/dist/core/agent/stages/toolCalls.js.map +1 -1
- package/dist/core/runbook/index.js +3 -1
- package/dist/core/runbook/index.js.map +1 -1
- package/dist/core/runbook/recording.js +178 -0
- package/dist/core/runbook/recording.js.map +1 -0
- package/dist/core/runbook/runbookAsTool.js +45 -2
- package/dist/core/runbook/runbookAsTool.js.map +1 -1
- package/dist/core/tools.js +9 -1
- package/dist/core/tools.js.map +1 -1
- package/dist/esm/artifacts/recordingArtifact.d.ts +9 -0
- package/dist/esm/artifacts/recordingArtifact.js +5 -1
- package/dist/esm/artifacts/recordingArtifact.js.map +1 -1
- package/dist/esm/core/Agent.d.ts +7 -0
- package/dist/esm/core/Agent.js +50 -0
- package/dist/esm/core/Agent.js.map +1 -1
- package/dist/esm/core/agent/stages/callLLM.d.ts +11 -0
- package/dist/esm/core/agent/stages/callLLM.js +14 -0
- package/dist/esm/core/agent/stages/callLLM.js.map +1 -1
- package/dist/esm/core/agent/stages/toolCalls.d.ts +20 -0
- package/dist/esm/core/agent/stages/toolCalls.js +107 -0
- package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
- package/dist/esm/core/agent/types.d.ts +63 -0
- package/dist/esm/core/runbook/index.d.ts +2 -1
- package/dist/esm/core/runbook/index.js +1 -0
- package/dist/esm/core/runbook/index.js.map +1 -1
- package/dist/esm/core/runbook/recording.d.ts +123 -0
- package/dist/esm/core/runbook/recording.js +172 -0
- package/dist/esm/core/runbook/recording.js.map +1 -0
- package/dist/esm/core/runbook/runbookAsTool.d.ts +5 -1
- package/dist/esm/core/runbook/runbookAsTool.js +45 -2
- package/dist/esm/core/runbook/runbookAsTool.js.map +1 -1
- package/dist/esm/core/runbook/types.d.ts +88 -0
- package/dist/esm/core/tools.d.ts +63 -0
- package/dist/esm/core/tools.js +17 -0
- package/dist/esm/core/tools.js.map +1 -1
- package/dist/esm/index.d.ts +3 -1
- package/dist/esm/index.js +17 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/integrity/column-types/check.d.ts +156 -0
- package/dist/esm/integrity/column-types/check.js +363 -0
- package/dist/esm/integrity/column-types/check.js.map +1 -0
- package/dist/esm/integrity/column-types/types.d.ts +121 -0
- package/dist/esm/integrity/column-types/types.js +107 -0
- package/dist/esm/integrity/column-types/types.js.map +1 -0
- package/dist/esm/integrity/disposition/lifecycle.d.ts +16 -1
- package/dist/esm/integrity/disposition/lifecycle.js +30 -1
- package/dist/esm/integrity/disposition/lifecycle.js.map +1 -1
- package/dist/esm/integrity/finding/types.d.ts +14 -2
- package/dist/esm/integrity/finding/types.js.map +1 -1
- package/dist/esm/lib/mcp/toolExtras.d.ts +17 -2
- package/dist/esm/lib/mcp/toolExtras.js +5 -2
- package/dist/esm/lib/mcp/toolExtras.js.map +1 -1
- package/dist/esm/lib/trace-toolpack/traceToolpack.js +2 -0
- package/dist/esm/lib/trace-toolpack/traceToolpack.js.map +1 -1
- package/dist/index.js +23 -3
- package/dist/index.js.map +1 -1
- package/dist/integrity/column-types/check.js +368 -0
- package/dist/integrity/column-types/check.js.map +1 -0
- package/dist/integrity/column-types/types.js +112 -0
- package/dist/integrity/column-types/types.js.map +1 -0
- package/dist/integrity/disposition/lifecycle.js +30 -1
- package/dist/integrity/disposition/lifecycle.js.map +1 -1
- package/dist/integrity/finding/types.js.map +1 -1
- package/dist/lib/mcp/toolExtras.js +4 -1
- package/dist/lib/mcp/toolExtras.js.map +1 -1
- package/dist/lib/trace-toolpack/traceToolpack.js +2 -0
- package/dist/lib/trace-toolpack/traceToolpack.js.map +1 -1
- package/dist/types/artifacts/recordingArtifact.d.ts +9 -0
- package/dist/types/artifacts/recordingArtifact.d.ts.map +1 -1
- package/dist/types/core/Agent.d.ts +7 -0
- package/dist/types/core/Agent.d.ts.map +1 -1
- package/dist/types/core/agent/stages/callLLM.d.ts +11 -0
- package/dist/types/core/agent/stages/callLLM.d.ts.map +1 -1
- package/dist/types/core/agent/stages/toolCalls.d.ts +20 -0
- package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
- package/dist/types/core/agent/types.d.ts +63 -0
- package/dist/types/core/agent/types.d.ts.map +1 -1
- package/dist/types/core/runbook/index.d.ts +2 -1
- package/dist/types/core/runbook/index.d.ts.map +1 -1
- package/dist/types/core/runbook/recording.d.ts +124 -0
- package/dist/types/core/runbook/recording.d.ts.map +1 -0
- package/dist/types/core/runbook/runbookAsTool.d.ts +5 -1
- package/dist/types/core/runbook/runbookAsTool.d.ts.map +1 -1
- package/dist/types/core/runbook/types.d.ts +88 -0
- package/dist/types/core/runbook/types.d.ts.map +1 -1
- package/dist/types/core/tools.d.ts +63 -0
- package/dist/types/core/tools.d.ts.map +1 -1
- package/dist/types/index.d.ts +3 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/integrity/column-types/check.d.ts +157 -0
- package/dist/types/integrity/column-types/check.d.ts.map +1 -0
- package/dist/types/integrity/column-types/types.d.ts +122 -0
- package/dist/types/integrity/column-types/types.d.ts.map +1 -0
- package/dist/types/integrity/disposition/lifecycle.d.ts +16 -1
- package/dist/types/integrity/disposition/lifecycle.d.ts.map +1 -1
- package/dist/types/integrity/finding/types.d.ts +14 -2
- package/dist/types/integrity/finding/types.d.ts.map +1 -1
- package/dist/types/lib/mcp/toolExtras.d.ts +17 -2
- package/dist/types/lib/mcp/toolExtras.d.ts.map +1 -1
- package/dist/types/lib/trace-toolpack/traceToolpack.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -562,6 +562,69 @@ export interface AgentOptions {
|
|
|
562
562
|
* result the tool returned.
|
|
563
563
|
*/
|
|
564
564
|
readonly noticeEmptyLookups?: boolean;
|
|
565
|
+
/**
|
|
566
|
+
* Check a tool's rows against the columns it declared (9.78.0) — the write
|
|
567
|
+
* seam's COLUMN-TYPE CONTRACT. **Default `'off'`.**
|
|
568
|
+
*
|
|
569
|
+
* THE RECORDED FAILURES, three of them, all one shape — a number became
|
|
570
|
+
* something else and nothing noticed at the seam. A mapping report wrote
|
|
571
|
+
* `str(m.get("logical_unit_number") or "")`, so LUN 0 — falsy — was stored
|
|
572
|
+
* as an EMPTY STRING on 2,094 mappings, and a host group missing the LUN an
|
|
573
|
+
* initiator probes first was indistinguishable from one that had it. A
|
|
574
|
+
* capacity view rendered an 8 MiB disk as `0.0 GB`, which reads as NO DISK
|
|
575
|
+
* during a live incident. And a whole family of tools returned their
|
|
576
|
+
* numbers as quoted strings (`"1240"`), which silently blanked every chart,
|
|
577
|
+
* because nothing downstream could tell a measure from a label.
|
|
578
|
+
*
|
|
579
|
+
* The library already lets a tool declare what its result IS
|
|
580
|
+
* (`Tool.resultKind`). This dial reads the sibling declaration —
|
|
581
|
+
* `Tool.resultColumns`, what the result CONTAINS — and checks the rows
|
|
582
|
+
* against it at the moment the tool answers.
|
|
583
|
+
*
|
|
584
|
+
* THE THREE WORDS, and they are `toolArgsValidation`'s own:
|
|
585
|
+
*
|
|
586
|
+
* • `'off'` (default) — nothing measured. Byte-identical to every release
|
|
587
|
+
* before this existed.
|
|
588
|
+
* • `'warn'` — findings are filed on
|
|
589
|
+
* `agentfootprint.integrity.context_error` and the model reads the rows
|
|
590
|
+
* EXACTLY as the tool returned them. Nothing is blocked, changed or
|
|
591
|
+
* retried.
|
|
592
|
+
* • `'enforce'` — the rows are REFUSED and the model reads a teaching
|
|
593
|
+
* sentence naming the column, what it declared, what arrived and how
|
|
594
|
+
* many rows — the `resultCeiling` idiom, not a thrown stack trace. The
|
|
595
|
+
* refusal is the whole payload, on every channel.
|
|
596
|
+
*
|
|
597
|
+
* The words are borrowed rather than invented deliberately: this is the
|
|
598
|
+
* MIRROR of `toolArgsValidation` — that boundary validates the arguments
|
|
599
|
+
* going IN against the tool's declared `inputSchema`, this one validates
|
|
600
|
+
* the rows coming OUT against the tool's declared `resultColumns`. Two
|
|
601
|
+
* validators at one seam that graded themselves in different vocabularies
|
|
602
|
+
* would be a worse defect than either could catch.
|
|
603
|
+
*
|
|
604
|
+
* TWO FINDINGS, because the field bug turned on the difference:
|
|
605
|
+
* `column-type-mismatch` (the column is there and holds the wrong thing)
|
|
606
|
+
* and `missing-column` (the declared column is in none of the rows). They
|
|
607
|
+
* send a person to two different files.
|
|
608
|
+
*
|
|
609
|
+
* THE CEILING: this judges TYPE, never MEANING. It sees that a column
|
|
610
|
+
* declared `number` holds a string; it can never see that the string should
|
|
611
|
+
* have been `0`, or that `0.0` should have been `0.0078` — so the `0.0 GB`
|
|
612
|
+
* failure above passes it cleanly. The bound ships as `COLUMN_TYPE_CEILING`
|
|
613
|
+
* and is quoted verbatim into every finding.
|
|
614
|
+
*
|
|
615
|
+
* WHAT IT REFUSES TO JUDGE: a result is read only when it is an ARRAY OF
|
|
616
|
+
* PLAIN OBJECTS with at least one row. Prose, a `null`, a bespoke
|
|
617
|
+
* `{ rows: [...] }` wrapper, a claim ticket — and the ZERO-ROW result,
|
|
618
|
+
* which has no columns to be wrong about and belongs to `empty-lookup`
|
|
619
|
+
* next door — all file an explicit `not-applicable` row and NO finding.
|
|
620
|
+
*
|
|
621
|
+
* TWO HALVES ARM IT: this dial AND at least one tool declaring
|
|
622
|
+
* `resultColumns`. Absent, the run is byte-identical; the one visible
|
|
623
|
+
* difference is the registered `column-type-mismatch` / `missing-column`
|
|
624
|
+
* rows in the disposition report, filed `not-applicable` — the family's
|
|
625
|
+
* law, not an exception to it.
|
|
626
|
+
*/
|
|
627
|
+
readonly checkColumnTypes?: 'off' | 'warn' | 'enforce';
|
|
565
628
|
/**
|
|
566
629
|
* What a turn does when its ACTION BUDGET runs out mid-task (9.56.0).
|
|
567
630
|
* Default **on**.
|
|
@@ -6,4 +6,5 @@ export { runbookAsTool } from './runbookAsTool.js';
|
|
|
6
6
|
export { absenceSignalOf, probeDispatch, recordingDispatch, RunbookAbsenceSignal, type InnerCallRecord, type RecordedDispatch, } from './dispatch.js';
|
|
7
7
|
export { DECLINED_VERDICT, DEFAULT_MAX_ROWS, renderVerdictTable, VERDICT_RENDER_NOTE, verdictRowsOf, } from './verdicts.js';
|
|
8
8
|
export { DEFAULT_WALK_CAP, projectWalk, type ProjectedWalk, type WalkRow } from './walk.js';
|
|
9
|
-
export
|
|
9
|
+
export { DEFAULT_RECORDING_MAX_BYTES } from './recording.js';
|
|
10
|
+
export type { RunbookAsToolOptions, RunbookEnvelope, RunbookProcedure, RunbookRecordingOptions, RunbookRules, RunbookVerdictsOptions, RunbookWalkOptions, VerdictRow, WalkDescriptor, } from './types.js';
|
|
@@ -6,4 +6,5 @@ export { runbookAsTool } from './runbookAsTool.js';
|
|
|
6
6
|
export { absenceSignalOf, probeDispatch, recordingDispatch, RunbookAbsenceSignal, } from './dispatch.js';
|
|
7
7
|
export { DECLINED_VERDICT, DEFAULT_MAX_ROWS, renderVerdictTable, VERDICT_RENDER_NOTE, verdictRowsOf, } from './verdicts.js';
|
|
8
8
|
export { DEFAULT_WALK_CAP, projectWalk } from './walk.js';
|
|
9
|
+
export { DEFAULT_RECORDING_MAX_BYTES } from './recording.js';
|
|
9
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/runbook/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EACL,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,oBAAoB,GAGrB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAoC,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/runbook/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EACL,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,oBAAoB,GAGrB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAoC,MAAM,WAAW,CAAC;AAC5F,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* runbook/recording — the inner chart's own recording, filed beside the walk.
|
|
3
|
+
*
|
|
4
|
+
* Pattern: one pure assembler (`chartRecordingOf`) + one guarded side effect
|
|
5
|
+
* (`mintChartRecording`, which files the artifact and NEVER fails the
|
|
6
|
+
* answer) — `walk.ts`'s shape, deliberately, because it is the same
|
|
7
|
+
* law about a different payload.
|
|
8
|
+
* Role: core/runbook. Opt-in via `walk: { recording }`.
|
|
9
|
+
* Emits: nothing (the artifact capability emits its own `artifacts.*`).
|
|
10
|
+
*
|
|
11
|
+
* WHY THIS EXISTS AT ALL
|
|
12
|
+
* ──────────────────────
|
|
13
|
+
* The walk is a ROW PROJECTION — eight declared columns per execution step,
|
|
14
|
+
* values off by construction. It is the right thing to hand a model and the
|
|
15
|
+
* wrong thing to hand a renderer: a step graph cannot be inferred from
|
|
16
|
+
* sentences about steps, and a consumer that tried would be guessing at edges.
|
|
17
|
+
* The one piece that makes a walk drawable is `structure`, the chart's
|
|
18
|
+
* build-time graph, which a finished run does not leave behind and no snapshot
|
|
19
|
+
* carries. That is the whole gap this closes, and it closes it with the shape
|
|
20
|
+
* the viewer side has consumed since 8.x: `{ snapshot, events, structure }`.
|
|
21
|
+
*
|
|
22
|
+
* THREE LAWS, and each one is a refusal somewhere
|
|
23
|
+
* ───────────────────────────────────────────────
|
|
24
|
+
* REDACTED AT THE SOURCE. The snapshot comes from `getSnapshot({ redact:
|
|
25
|
+
* true })` — the parallel redacted mirror — never the raw working memory.
|
|
26
|
+
* Whatever `redact` means for the walk means the same here, because it is
|
|
27
|
+
* the same policy read at the same moment; with no policy configured the
|
|
28
|
+
* flag is a documented no-op and costs nothing.
|
|
29
|
+
* REFUSED, NEVER TRUNCATED. Over the byte ceiling the mint does not happen
|
|
30
|
+
* and the descriptor says so with both numbers. A walk can be projected
|
|
31
|
+
* because its rows are independently meaningful; a recording is one
|
|
32
|
+
* bundle, and half of one draws a picture nobody can check.
|
|
33
|
+
* THE ABSENCE IS SPOKEN. No store, an over-size refusal, an unserializable
|
|
34
|
+
* snapshot, a store that 500s — every one of them costs the REF and
|
|
35
|
+
* returns a `recording_note` naming the reason. A failed mint has never
|
|
36
|
+
* been allowed to cost the answer, and this is not the feature that
|
|
37
|
+
* changes that.
|
|
38
|
+
*
|
|
39
|
+
* `events` IS EMPTY, BY CONSTRUCTION AND ON PURPOSE
|
|
40
|
+
* ────────────────────────────────────────────────
|
|
41
|
+
* `events` is the typed *agentfootprint* stream, and it is fired by an Agent
|
|
42
|
+
* turn. What ran here is a footprintjs chart on its own executor: it fires no
|
|
43
|
+
* agentfootprint events, so there are none to record and an empty array is the
|
|
44
|
+
* honest count rather than a shortfall. The three keys are all present, which
|
|
45
|
+
* is what `observeRecording()` reads; the walk's own story rides `snapshot`,
|
|
46
|
+
* where the narrative recorder's data already lives. The note says this out
|
|
47
|
+
* loud so nobody reads the empty array as a dropped stream.
|
|
48
|
+
*/
|
|
49
|
+
import type { Recording } from '../../recorders/observability/recordRun.js';
|
|
50
|
+
import type { ToolExecutionContext } from '../tools.js';
|
|
51
|
+
/**
|
|
52
|
+
* The default size ceiling for a filed chart recording — 5,000,000 bytes.
|
|
53
|
+
*
|
|
54
|
+
* Chosen against measured sizes rather than taste. A walk of a real triage run
|
|
55
|
+
* is tens of kilobytes; this package's own field measurement of a full
|
|
56
|
+
* `recordRun` bundle (one retrieval turn, vectors included) was 2.76 MB. Five
|
|
57
|
+
* million bytes clears the realistic runbook by more than an order of
|
|
58
|
+
* magnitude and still refuses the pathological one — a fleet sweep whose
|
|
59
|
+
* commit log carries a row per subject per stage — BEFORE it lands in somebody
|
|
60
|
+
* else's store under a retention budget they sized for tickets.
|
|
61
|
+
*
|
|
62
|
+
* It is a declared number, not a magic one: it is named on the option, printed
|
|
63
|
+
* in the refusal, and raised by whoever decides the whole bundle is worth it.
|
|
64
|
+
*/
|
|
65
|
+
export declare const DEFAULT_RECORDING_MAX_BYTES = 5000000;
|
|
66
|
+
/** The resolved recording policy — what `walk: { recording }` normalizes to. */
|
|
67
|
+
export interface ResolvedRecordingPolicy {
|
|
68
|
+
readonly maxBytes: number;
|
|
69
|
+
readonly label?: string;
|
|
70
|
+
}
|
|
71
|
+
/** What the recording mint needs from the call. */
|
|
72
|
+
export interface ChartRecordingMintFacts {
|
|
73
|
+
/** The runbook tool's name — names the default label. */
|
|
74
|
+
readonly toolName: string;
|
|
75
|
+
/** The OUTER tool call — `origin.toolCallId`, the join a consumer uses to
|
|
76
|
+
* pair this recording with the tool call that produced it (and with the
|
|
77
|
+
* walk minted beside it, which carries the same key). */
|
|
78
|
+
readonly toolCallId: string;
|
|
79
|
+
/** The outer run, when there is one — `origin.runId`. */
|
|
80
|
+
readonly runId?: string;
|
|
81
|
+
/** The resolved policy from `walk: { recording }`. */
|
|
82
|
+
readonly policy: ResolvedRecordingPolicy;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* The recording fields spread onto the `WalkDescriptor`. `recording_note` is
|
|
86
|
+
* always present — this type exists to make "the absence is stated" a thing
|
|
87
|
+
* the compiler enforces rather than a thing a reviewer has to notice.
|
|
88
|
+
*/
|
|
89
|
+
export interface RecordingDescriptorFields {
|
|
90
|
+
readonly recording_ref?: string;
|
|
91
|
+
readonly recording_kind?: string;
|
|
92
|
+
readonly recording_bytes?: number;
|
|
93
|
+
readonly recording_note: string;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Normalize `walk: { recording }` into a policy, or `undefined` for OFF.
|
|
97
|
+
*
|
|
98
|
+
* `undefined` and `false` are both off, and off means off: the caller must not
|
|
99
|
+
* take a second snapshot, measure anything, or touch the store.
|
|
100
|
+
*/
|
|
101
|
+
export declare function resolveRecordingPolicy(recording: boolean | {
|
|
102
|
+
readonly label?: string;
|
|
103
|
+
readonly maxBytes?: number;
|
|
104
|
+
} | undefined): ResolvedRecordingPolicy | undefined;
|
|
105
|
+
/**
|
|
106
|
+
* Assemble the `{ snapshot, events, structure }` bundle for one inner chart
|
|
107
|
+
* run. Pure — no store, no clock, no events.
|
|
108
|
+
*
|
|
109
|
+
* @param redactedSnapshot the run snapshot read from the REDACTED mirror
|
|
110
|
+
* (`executor.getSnapshot({ redact: true })`). Taking the raw one here would
|
|
111
|
+
* file whatever the chart wrote under a policy that was supposed to scrub
|
|
112
|
+
* it, which is the one mistake this whole module is arranged to prevent.
|
|
113
|
+
* @param structure the chart's `buildTimeStructure` — the only route to a
|
|
114
|
+
* drawable graph, and the reason this bundle beats the row projection.
|
|
115
|
+
*/
|
|
116
|
+
export declare function chartRecordingOf(redactedSnapshot: unknown, structure: unknown): Recording;
|
|
117
|
+
/**
|
|
118
|
+
* File the inner chart's recording and describe what happened.
|
|
119
|
+
*
|
|
120
|
+
* Called ONLY when `walk: { recording }` asked for one, and it never throws:
|
|
121
|
+
* every failure lands in `recording_note` and the answer travels unchanged.
|
|
122
|
+
*/
|
|
123
|
+
export declare function mintChartRecording(ctx: ToolExecutionContext, recording: Recording, facts: ChartRecordingMintFacts): Promise<RecordingDescriptorFields>;
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* runbook/recording — the inner chart's own recording, filed beside the walk.
|
|
3
|
+
*
|
|
4
|
+
* Pattern: one pure assembler (`chartRecordingOf`) + one guarded side effect
|
|
5
|
+
* (`mintChartRecording`, which files the artifact and NEVER fails the
|
|
6
|
+
* answer) — `walk.ts`'s shape, deliberately, because it is the same
|
|
7
|
+
* law about a different payload.
|
|
8
|
+
* Role: core/runbook. Opt-in via `walk: { recording }`.
|
|
9
|
+
* Emits: nothing (the artifact capability emits its own `artifacts.*`).
|
|
10
|
+
*
|
|
11
|
+
* WHY THIS EXISTS AT ALL
|
|
12
|
+
* ──────────────────────
|
|
13
|
+
* The walk is a ROW PROJECTION — eight declared columns per execution step,
|
|
14
|
+
* values off by construction. It is the right thing to hand a model and the
|
|
15
|
+
* wrong thing to hand a renderer: a step graph cannot be inferred from
|
|
16
|
+
* sentences about steps, and a consumer that tried would be guessing at edges.
|
|
17
|
+
* The one piece that makes a walk drawable is `structure`, the chart's
|
|
18
|
+
* build-time graph, which a finished run does not leave behind and no snapshot
|
|
19
|
+
* carries. That is the whole gap this closes, and it closes it with the shape
|
|
20
|
+
* the viewer side has consumed since 8.x: `{ snapshot, events, structure }`.
|
|
21
|
+
*
|
|
22
|
+
* THREE LAWS, and each one is a refusal somewhere
|
|
23
|
+
* ───────────────────────────────────────────────
|
|
24
|
+
* REDACTED AT THE SOURCE. The snapshot comes from `getSnapshot({ redact:
|
|
25
|
+
* true })` — the parallel redacted mirror — never the raw working memory.
|
|
26
|
+
* Whatever `redact` means for the walk means the same here, because it is
|
|
27
|
+
* the same policy read at the same moment; with no policy configured the
|
|
28
|
+
* flag is a documented no-op and costs nothing.
|
|
29
|
+
* REFUSED, NEVER TRUNCATED. Over the byte ceiling the mint does not happen
|
|
30
|
+
* and the descriptor says so with both numbers. A walk can be projected
|
|
31
|
+
* because its rows are independently meaningful; a recording is one
|
|
32
|
+
* bundle, and half of one draws a picture nobody can check.
|
|
33
|
+
* THE ABSENCE IS SPOKEN. No store, an over-size refusal, an unserializable
|
|
34
|
+
* snapshot, a store that 500s — every one of them costs the REF and
|
|
35
|
+
* returns a `recording_note` naming the reason. A failed mint has never
|
|
36
|
+
* been allowed to cost the answer, and this is not the feature that
|
|
37
|
+
* changes that.
|
|
38
|
+
*
|
|
39
|
+
* `events` IS EMPTY, BY CONSTRUCTION AND ON PURPOSE
|
|
40
|
+
* ────────────────────────────────────────────────
|
|
41
|
+
* `events` is the typed *agentfootprint* stream, and it is fired by an Agent
|
|
42
|
+
* turn. What ran here is a footprintjs chart on its own executor: it fires no
|
|
43
|
+
* agentfootprint events, so there are none to record and an empty array is the
|
|
44
|
+
* honest count rather than a shortfall. The three keys are all present, which
|
|
45
|
+
* is what `observeRecording()` reads; the walk's own story rides `snapshot`,
|
|
46
|
+
* where the narrative recorder's data already lives. The note says this out
|
|
47
|
+
* loud so nobody reads the empty array as a dropped stream.
|
|
48
|
+
*/
|
|
49
|
+
import { RECORDING_ARTIFACT_KIND, recordingPutInput } from '../../artifacts/recordingArtifact.js';
|
|
50
|
+
import { measureArtifactBytes } from '../../artifacts/payload.js';
|
|
51
|
+
/**
|
|
52
|
+
* The default size ceiling for a filed chart recording — 5,000,000 bytes.
|
|
53
|
+
*
|
|
54
|
+
* Chosen against measured sizes rather than taste. A walk of a real triage run
|
|
55
|
+
* is tens of kilobytes; this package's own field measurement of a full
|
|
56
|
+
* `recordRun` bundle (one retrieval turn, vectors included) was 2.76 MB. Five
|
|
57
|
+
* million bytes clears the realistic runbook by more than an order of
|
|
58
|
+
* magnitude and still refuses the pathological one — a fleet sweep whose
|
|
59
|
+
* commit log carries a row per subject per stage — BEFORE it lands in somebody
|
|
60
|
+
* else's store under a retention budget they sized for tickets.
|
|
61
|
+
*
|
|
62
|
+
* It is a declared number, not a magic one: it is named on the option, printed
|
|
63
|
+
* in the refusal, and raised by whoever decides the whole bundle is worth it.
|
|
64
|
+
*/
|
|
65
|
+
export const DEFAULT_RECORDING_MAX_BYTES = 5_000_000;
|
|
66
|
+
/**
|
|
67
|
+
* Normalize `walk: { recording }` into a policy, or `undefined` for OFF.
|
|
68
|
+
*
|
|
69
|
+
* `undefined` and `false` are both off, and off means off: the caller must not
|
|
70
|
+
* take a second snapshot, measure anything, or touch the store.
|
|
71
|
+
*/
|
|
72
|
+
export function resolveRecordingPolicy(recording) {
|
|
73
|
+
if (recording === undefined || recording === false)
|
|
74
|
+
return undefined;
|
|
75
|
+
if (recording === true)
|
|
76
|
+
return { maxBytes: DEFAULT_RECORDING_MAX_BYTES };
|
|
77
|
+
return {
|
|
78
|
+
maxBytes: recording.maxBytes ?? DEFAULT_RECORDING_MAX_BYTES,
|
|
79
|
+
...(recording.label !== undefined && { label: recording.label }),
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Assemble the `{ snapshot, events, structure }` bundle for one inner chart
|
|
84
|
+
* run. Pure — no store, no clock, no events.
|
|
85
|
+
*
|
|
86
|
+
* @param redactedSnapshot the run snapshot read from the REDACTED mirror
|
|
87
|
+
* (`executor.getSnapshot({ redact: true })`). Taking the raw one here would
|
|
88
|
+
* file whatever the chart wrote under a policy that was supposed to scrub
|
|
89
|
+
* it, which is the one mistake this whole module is arranged to prevent.
|
|
90
|
+
* @param structure the chart's `buildTimeStructure` — the only route to a
|
|
91
|
+
* drawable graph, and the reason this bundle beats the row projection.
|
|
92
|
+
*/
|
|
93
|
+
export function chartRecordingOf(redactedSnapshot, structure) {
|
|
94
|
+
return { snapshot: redactedSnapshot, events: [], structure };
|
|
95
|
+
}
|
|
96
|
+
/** The standing sentence: what a FILED recording contains that the walk's row
|
|
97
|
+
* projection does not. This is the sentence that justifies the opt-in. */
|
|
98
|
+
const RECORDING_NOTE = "The inner chart's own recording — `{ snapshot, events, structure }`, the shape a viewer " +
|
|
99
|
+
'mounts — so this walk can be drawn as the flowchart it actually ran. It carries what the ' +
|
|
100
|
+
'row projection cannot: the chart STRUCTURE (the only route to a drawable graph; a finished ' +
|
|
101
|
+
"run does not leave it behind), the run's shared state, its whole commit log, and every " +
|
|
102
|
+
"attached recorder's data — that is, whatever the chart WROTE, scrubbed by this call's " +
|
|
103
|
+
'`redact` policy and by nothing else. `events` is empty by construction: a chart run is not ' +
|
|
104
|
+
'an agent turn and fires no agentfootprint events, so there are none to record.';
|
|
105
|
+
/**
|
|
106
|
+
* File the inner chart's recording and describe what happened.
|
|
107
|
+
*
|
|
108
|
+
* Called ONLY when `walk: { recording }` asked for one, and it never throws:
|
|
109
|
+
* every failure lands in `recording_note` and the answer travels unchanged.
|
|
110
|
+
*/
|
|
111
|
+
export async function mintChartRecording(ctx, recording, facts) {
|
|
112
|
+
if (!ctx.hasArtifacts) {
|
|
113
|
+
return {
|
|
114
|
+
recording_note: RECORDING_NOTE +
|
|
115
|
+
' No artifact store is attached to this run, so the recording was assembled but not ' +
|
|
116
|
+
'filed — attach one with `Agent.create({ ..., artifacts })` to get a ref here.',
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
// Serialize FIRST, then measure, then put: the mint is where an
|
|
120
|
+
// unserializable snapshot must fail (the `recordingPutInput` law), and the
|
|
121
|
+
// ceiling is judged on the bytes that would actually be stored rather than
|
|
122
|
+
// on a guess about them.
|
|
123
|
+
let input;
|
|
124
|
+
try {
|
|
125
|
+
input = recordingPutInput(recording, {
|
|
126
|
+
toolCallId: facts.toolCallId,
|
|
127
|
+
...(facts.runId !== undefined && { runId: facts.runId }),
|
|
128
|
+
...(facts.policy.label !== undefined
|
|
129
|
+
? { label: facts.policy.label }
|
|
130
|
+
: { label: `${facts.toolName} recording` }),
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
catch (err) {
|
|
134
|
+
return {
|
|
135
|
+
recording_note: RECORDING_NOTE +
|
|
136
|
+
` This one could not be serialized (${err instanceof Error ? err.message : String(err)}), ` +
|
|
137
|
+
'so it was not filed — a recording JSON cannot carry could not cross any wire either. ' +
|
|
138
|
+
'The failure cost the ref, never the answer.',
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
const bytes = measureArtifactBytes(input.data);
|
|
142
|
+
if (bytes > facts.policy.maxBytes) {
|
|
143
|
+
return {
|
|
144
|
+
recording_bytes: bytes,
|
|
145
|
+
recording_note: RECORDING_NOTE +
|
|
146
|
+
` This one measured ${bytes} bytes, over the declared \`walk.recording.maxBytes\` ` +
|
|
147
|
+
`ceiling of ${facts.policy.maxBytes}, so it was NOT filed. It is refused rather than ` +
|
|
148
|
+
'truncated on purpose: the walk can be projected because its rows are independently ' +
|
|
149
|
+
'meaningful, but a recording is one bundle — half a commit log under a whole chart ' +
|
|
150
|
+
'draws a picture nobody can check. Raise `walk.recording.maxBytes` if the whole thing ' +
|
|
151
|
+
'is what you need. The walk above is unaffected.',
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
try {
|
|
155
|
+
const meta = await ctx.artifacts.put(input);
|
|
156
|
+
return {
|
|
157
|
+
recording_ref: meta.ref,
|
|
158
|
+
recording_kind: RECORDING_ARTIFACT_KIND,
|
|
159
|
+
recording_bytes: meta.bytes,
|
|
160
|
+
recording_note: RECORDING_NOTE,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
catch (err) {
|
|
164
|
+
return {
|
|
165
|
+
recording_bytes: bytes,
|
|
166
|
+
recording_note: RECORDING_NOTE +
|
|
167
|
+
` This one could not be filed (${err instanceof Error ? err.message : String(err)}) — ` +
|
|
168
|
+
'the mint failure cost the ref, never the answer.',
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=recording.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recording.js","sourceRoot":"","sources":["../../../../src/core/runbook/recording.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,11 @@
|
|
|
19
19
|
* - `result.walk` — the recorded walk's descriptor. The walk itself
|
|
20
20
|
* ships as an artifact ticket (kind `recording/chart-walk`), never as
|
|
21
21
|
* bytes; when it does not fit, the CONTROL FLOW survives and the
|
|
22
|
-
* projection is declared.
|
|
22
|
+
* projection is declared. Opt into `walk: { recording: true }` and the
|
|
23
|
+
* inner chart's own `{ snapshot, events, structure }` is filed beside
|
|
24
|
+
* it (kind `recording/run`) and its ref rides the SAME descriptor as
|
|
25
|
+
* `walk.recording_ref` — the row projection cannot be drawn, and this
|
|
26
|
+
* is what makes the walk mountable as the flowchart it ran.
|
|
23
27
|
*
|
|
24
28
|
* THE OPTIONAL PROJECTION (selected by `resultKind: 'verdict/*'`):
|
|
25
29
|
* verdict rows off the chart's `verdicts` state key, capped with
|
|
@@ -19,7 +19,11 @@
|
|
|
19
19
|
* - `result.walk` — the recorded walk's descriptor. The walk itself
|
|
20
20
|
* ships as an artifact ticket (kind `recording/chart-walk`), never as
|
|
21
21
|
* bytes; when it does not fit, the CONTROL FLOW survives and the
|
|
22
|
-
* projection is declared.
|
|
22
|
+
* projection is declared. Opt into `walk: { recording: true }` and the
|
|
23
|
+
* inner chart's own `{ snapshot, events, structure }` is filed beside
|
|
24
|
+
* it (kind `recording/run`) and its ref rides the SAME descriptor as
|
|
25
|
+
* `walk.recording_ref` — the row projection cannot be drawn, and this
|
|
26
|
+
* is what makes the walk mountable as the flowchart it ran.
|
|
23
27
|
*
|
|
24
28
|
* THE OPTIONAL PROJECTION (selected by `resultKind: 'verdict/*'`):
|
|
25
29
|
* verdict rows off the chart's `verdicts` state key, capped with
|
|
@@ -85,6 +89,7 @@ import { DEFAULT_INNER_RUN_LIMIT, INNER_RUN_RECORDS, innerRunStore, } from '../.
|
|
|
85
89
|
import { defineTool } from '../tools.js';
|
|
86
90
|
import { carriedProvenanceOf, chartCoverageOf, composeLedger, foldInnerCoverage, } from './coverage.js';
|
|
87
91
|
import { absenceSignalOf, probeDispatch, recordingDispatch } from './dispatch.js';
|
|
92
|
+
import { chartRecordingOf, mintChartRecording, resolveRecordingPolicy } from './recording.js';
|
|
88
93
|
import { admitReport, REPORT_NOTE_KEY, shadowedFieldsNote } from './report.js';
|
|
89
94
|
import { composeMeanings, DECLINED_VERDICT, DEFAULT_MAX_ROWS, meaningsRecorder, renderVerdictTable, resolveDecider, VERDICT_RENDER_NOTE, verdictRowsOf, } from './verdicts.js';
|
|
90
95
|
import { DEFAULT_WALK_CAP, mintWalk, projectWalk } from './walk.js';
|
|
@@ -153,6 +158,22 @@ export function runbookAsTool(opts) {
|
|
|
153
158
|
if (cap !== undefined && (!Number.isInteger(cap) || cap < 1)) {
|
|
154
159
|
throw new Error(`${label}: \`walk.cap\` must be a whole number of rows, at least 1 — got ${String(cap)}.`);
|
|
155
160
|
}
|
|
161
|
+
const recordingOpt = opts.walk?.recording;
|
|
162
|
+
if (recordingOpt !== undefined &&
|
|
163
|
+
typeof recordingOpt !== 'boolean' &&
|
|
164
|
+
(recordingOpt === null || typeof recordingOpt !== 'object' || Array.isArray(recordingOpt))) {
|
|
165
|
+
throw new Error(`${label}: \`walk.recording\` must be \`true\` (file the inner chart's recording with ` +
|
|
166
|
+
`the defaults), \`false\`/absent (do not file one), or an options bag ` +
|
|
167
|
+
`\`{ label?, maxBytes? }\` — got ${JSON.stringify(recordingOpt)}.`);
|
|
168
|
+
}
|
|
169
|
+
if (typeof recordingOpt === 'object' && recordingOpt !== null) {
|
|
170
|
+
const maxBytes = recordingOpt.maxBytes;
|
|
171
|
+
if (maxBytes !== undefined && (!Number.isInteger(maxBytes) || maxBytes < 1)) {
|
|
172
|
+
throw new Error(`${label}: \`walk.recording.maxBytes\` must be a whole number of bytes, at least 1 — ` +
|
|
173
|
+
`got ${String(maxBytes)}. It is the declared ceiling a recording is REFUSED over, ` +
|
|
174
|
+
`never truncated to.`);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
156
177
|
if (opts.keepRecordLimit !== undefined) {
|
|
157
178
|
if (opts.keepRecord !== true) {
|
|
158
179
|
throw new Error(`${label}: \`keepRecordLimit\` caps records that are never kept — add ` +
|
|
@@ -183,6 +204,11 @@ export function runbookAsTool(opts) {
|
|
|
183
204
|
const isVerdictKind = opts.resultKind?.startsWith(VERDICT_KIND_PREFIX) === true;
|
|
184
205
|
const maxRows = opts.verdicts?.maxRows ?? DEFAULT_MAX_ROWS;
|
|
185
206
|
const walkCap = opts.walk?.cap ?? DEFAULT_WALK_CAP;
|
|
207
|
+
// Resolved ONCE at definition. `undefined` is the whole off-switch: every
|
|
208
|
+
// line the recording feature adds sits behind this being defined, so an
|
|
209
|
+
// undeclared runbook takes no second snapshot, measures no bytes, and makes
|
|
210
|
+
// no store call — its envelope is byte-identical to 9.78.0.
|
|
211
|
+
const recordingPolicy = resolveRecordingPolicy(recordingOpt);
|
|
186
212
|
const store = opts.keepRecord === true
|
|
187
213
|
? innerRunStore(opts.keepRecordLimit ?? DEFAULT_INNER_RUN_LIMIT)
|
|
188
214
|
: undefined;
|
|
@@ -290,12 +316,29 @@ export function runbookAsTool(opts) {
|
|
|
290
316
|
// ── The walk ────────────────────────────────────────────────────────
|
|
291
317
|
const entries = walkRecorder.getEntries();
|
|
292
318
|
const projected = projectWalk(entries, walkCap);
|
|
293
|
-
const
|
|
319
|
+
const walkOnly = await mintWalk(ctx, projected, {
|
|
294
320
|
toolName: opts.name,
|
|
295
321
|
toolCallId: ctx.toolCallId,
|
|
296
322
|
...(ctx.runId !== undefined && { runId: ctx.runId }),
|
|
297
323
|
stepsExecuted: walkRecorder.stepCount,
|
|
298
324
|
});
|
|
325
|
+
// ── The recording, beside the walk (opt-in) ─────────────────────────
|
|
326
|
+
// The row projection cannot be drawn — `structure` is the only route to
|
|
327
|
+
// a drawable graph and no snapshot carries it. The snapshot here is the
|
|
328
|
+
// REDACTED mirror, not `raw`: the same `redact` policy that scrubs the
|
|
329
|
+
// walk must scrub this by the same rule, and `raw` is the live working
|
|
330
|
+
// memory. With no policy configured the flag is a documented no-op.
|
|
331
|
+
const walk = recordingPolicy === undefined
|
|
332
|
+
? walkOnly
|
|
333
|
+
: {
|
|
334
|
+
...walkOnly,
|
|
335
|
+
...(await mintChartRecording(ctx, chartRecordingOf(executor.getSnapshot({ redact: true }), chart.buildTimeStructure), {
|
|
336
|
+
toolName: opts.name,
|
|
337
|
+
toolCallId: ctx.toolCallId,
|
|
338
|
+
...(ctx.runId !== undefined && { runId: ctx.runId }),
|
|
339
|
+
policy: recordingPolicy,
|
|
340
|
+
})),
|
|
341
|
+
};
|
|
299
342
|
// ── The projection (verdict kinds only) ─────────────────────────────
|
|
300
343
|
let rows;
|
|
301
344
|
let shown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runbookAsTool.js","sourceRoot":"","sources":["../../../../src/core/runbook/runbookAsTool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runbookAsTool.js","sourceRoot":"","sources":["../../../../src/core/runbook/runbookAsTool.ts"],"names":[],"mappings":"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"}
|