agentfootprint 9.59.1 → 9.60.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/AGENTS.md +1 -1
- package/CLAUDE.md +1 -1
- package/ai-instructions/claude-code/SKILL.md +1 -1
- package/dist/adapters/llm/AnthropicProvider.js +9 -2
- package/dist/adapters/llm/AnthropicProvider.js.map +1 -1
- package/dist/adapters/llm/BrowserAnthropicProvider.js +5 -1
- package/dist/adapters/llm/BrowserAnthropicProvider.js.map +1 -1
- package/dist/adapters/llm/MockProvider.js +4 -0
- package/dist/adapters/llm/MockProvider.js.map +1 -1
- package/dist/adapters/llm/wireManifest.js +38 -0
- package/dist/adapters/llm/wireManifest.js.map +1 -0
- package/dist/adapters/types.js.map +1 -1
- package/dist/core/Agent.js +129 -1
- package/dist/core/Agent.js.map +1 -1
- package/dist/core/agent/buildAgentChart.js +11 -0
- package/dist/core/agent/buildAgentChart.js.map +1 -1
- package/dist/core/agent/buildDynamicAgentChart.js +23 -0
- package/dist/core/agent/buildDynamicAgentChart.js.map +1 -1
- package/dist/core/agent/stages/callLLM.js +83 -0
- package/dist/core/agent/stages/callLLM.js.map +1 -1
- package/dist/core/slots/buildToolsSlot.js +64 -3
- package/dist/core/slots/buildToolsSlot.js.map +1 -1
- package/dist/core/tools.js +34 -0
- package/dist/core/tools.js.map +1 -1
- package/dist/esm/adapters/llm/AnthropicProvider.js +9 -2
- package/dist/esm/adapters/llm/AnthropicProvider.js.map +1 -1
- package/dist/esm/adapters/llm/BrowserAnthropicProvider.js +5 -1
- package/dist/esm/adapters/llm/BrowserAnthropicProvider.js.map +1 -1
- package/dist/esm/adapters/llm/MockProvider.js +4 -0
- package/dist/esm/adapters/llm/MockProvider.js.map +1 -1
- package/dist/esm/adapters/llm/wireManifest.d.ts +29 -0
- package/dist/esm/adapters/llm/wireManifest.js +34 -0
- package/dist/esm/adapters/llm/wireManifest.js.map +1 -0
- package/dist/esm/adapters/types.d.ts +20 -0
- package/dist/esm/adapters/types.js.map +1 -1
- package/dist/esm/core/Agent.d.ts +27 -0
- package/dist/esm/core/Agent.js +129 -1
- package/dist/esm/core/Agent.js.map +1 -1
- package/dist/esm/core/agent/buildAgentChart.js +11 -0
- package/dist/esm/core/agent/buildAgentChart.js.map +1 -1
- package/dist/esm/core/agent/buildDynamicAgentChart.js +23 -0
- package/dist/esm/core/agent/buildDynamicAgentChart.js.map +1 -1
- package/dist/esm/core/agent/stages/callLLM.d.ts +15 -0
- package/dist/esm/core/agent/stages/callLLM.js +83 -0
- package/dist/esm/core/agent/stages/callLLM.js.map +1 -1
- package/dist/esm/core/agent/types.d.ts +17 -0
- package/dist/esm/core/slots/buildToolsSlot.d.ts +24 -0
- package/dist/esm/core/slots/buildToolsSlot.js +64 -3
- package/dist/esm/core/slots/buildToolsSlot.js.map +1 -1
- package/dist/esm/core/tools.d.ts +36 -0
- package/dist/esm/core/tools.js +34 -0
- package/dist/esm/core/tools.js.map +1 -1
- package/dist/esm/events/dispatcher.d.ts +1 -1
- package/dist/esm/events/dispatcher.js.map +1 -1
- package/dist/esm/events/payloads.d.ts +27 -0
- package/dist/esm/events/registry.d.ts +7 -1
- package/dist/esm/events/registry.js +6 -0
- package/dist/esm/events/registry.js.map +1 -1
- package/dist/esm/integrity/assertion/conflicts.d.ts +35 -0
- package/dist/esm/integrity/assertion/conflicts.js +74 -0
- package/dist/esm/integrity/assertion/conflicts.js.map +1 -0
- package/dist/esm/integrity/assertion/types.d.ts +74 -0
- package/dist/esm/integrity/assertion/types.js +0 -0
- package/dist/esm/integrity/assertion/types.js.map +1 -0
- package/dist/esm/integrity/dangling-reference/check.d.ts +45 -0
- package/dist/esm/integrity/dangling-reference/check.js +68 -0
- package/dist/esm/integrity/dangling-reference/check.js.map +1 -0
- package/dist/esm/integrity/disposition/lifecycle.d.ts +35 -0
- package/dist/esm/integrity/disposition/lifecycle.js +63 -0
- package/dist/esm/integrity/disposition/lifecycle.js.map +1 -0
- package/dist/esm/integrity/finding/types.d.ts +57 -0
- package/dist/esm/integrity/finding/types.js +47 -0
- package/dist/esm/integrity/finding/types.js.map +1 -0
- package/dist/esm/integrity/invariant-violation/check.d.ts +52 -0
- package/dist/esm/integrity/invariant-violation/check.js +82 -0
- package/dist/esm/integrity/invariant-violation/check.js.map +1 -0
- package/dist/esm/integrity/invariant-violation/wire.d.ts +43 -0
- package/dist/esm/integrity/invariant-violation/wire.js +93 -0
- package/dist/esm/integrity/invariant-violation/wire.js.map +1 -0
- package/dist/esm/recorders/core/IntegrityRecorder.d.ts +20 -0
- package/dist/esm/recorders/core/IntegrityRecorder.js +25 -0
- package/dist/esm/recorders/core/IntegrityRecorder.js.map +1 -0
- package/dist/events/dispatcher.js.map +1 -1
- package/dist/events/registry.js +6 -0
- package/dist/events/registry.js.map +1 -1
- package/dist/integrity/assertion/conflicts.js +78 -0
- package/dist/integrity/assertion/conflicts.js.map +1 -0
- package/dist/integrity/assertion/types.js +0 -0
- package/dist/integrity/assertion/types.js.map +1 -0
- package/dist/integrity/dangling-reference/check.js +72 -0
- package/dist/integrity/dangling-reference/check.js.map +1 -0
- package/dist/integrity/disposition/lifecycle.js +67 -0
- package/dist/integrity/disposition/lifecycle.js.map +1 -0
- package/dist/integrity/finding/types.js +52 -0
- package/dist/integrity/finding/types.js.map +1 -0
- package/dist/integrity/invariant-violation/check.js +86 -0
- package/dist/integrity/invariant-violation/check.js.map +1 -0
- package/dist/integrity/invariant-violation/wire.js +97 -0
- package/dist/integrity/invariant-violation/wire.js.map +1 -0
- package/dist/recorders/core/IntegrityRecorder.js +29 -0
- package/dist/recorders/core/IntegrityRecorder.js.map +1 -0
- package/dist/types/adapters/llm/AnthropicProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/BrowserAnthropicProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/MockProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/wireManifest.d.ts +30 -0
- package/dist/types/adapters/llm/wireManifest.d.ts.map +1 -0
- package/dist/types/adapters/types.d.ts +20 -0
- package/dist/types/adapters/types.d.ts.map +1 -1
- package/dist/types/core/Agent.d.ts +27 -0
- package/dist/types/core/Agent.d.ts.map +1 -1
- package/dist/types/core/agent/buildAgentChart.d.ts.map +1 -1
- package/dist/types/core/agent/buildDynamicAgentChart.d.ts.map +1 -1
- package/dist/types/core/agent/stages/callLLM.d.ts +15 -0
- package/dist/types/core/agent/stages/callLLM.d.ts.map +1 -1
- package/dist/types/core/agent/types.d.ts +17 -0
- package/dist/types/core/agent/types.d.ts.map +1 -1
- package/dist/types/core/slots/buildToolsSlot.d.ts +24 -0
- package/dist/types/core/slots/buildToolsSlot.d.ts.map +1 -1
- package/dist/types/core/tools.d.ts +36 -0
- package/dist/types/core/tools.d.ts.map +1 -1
- package/dist/types/events/dispatcher.d.ts +1 -1
- package/dist/types/events/dispatcher.d.ts.map +1 -1
- package/dist/types/events/payloads.d.ts +27 -0
- package/dist/types/events/payloads.d.ts.map +1 -1
- package/dist/types/events/registry.d.ts +7 -1
- package/dist/types/events/registry.d.ts.map +1 -1
- package/dist/types/integrity/assertion/conflicts.d.ts +36 -0
- package/dist/types/integrity/assertion/conflicts.d.ts.map +1 -0
- package/dist/types/integrity/assertion/types.d.ts +75 -0
- package/dist/types/integrity/assertion/types.d.ts.map +1 -0
- package/dist/types/integrity/dangling-reference/check.d.ts +46 -0
- package/dist/types/integrity/dangling-reference/check.d.ts.map +1 -0
- package/dist/types/integrity/disposition/lifecycle.d.ts +36 -0
- package/dist/types/integrity/disposition/lifecycle.d.ts.map +1 -0
- package/dist/types/integrity/finding/types.d.ts +58 -0
- package/dist/types/integrity/finding/types.d.ts.map +1 -0
- package/dist/types/integrity/invariant-violation/check.d.ts +53 -0
- package/dist/types/integrity/invariant-violation/check.d.ts.map +1 -0
- package/dist/types/integrity/invariant-violation/wire.d.ts +44 -0
- package/dist/types/integrity/invariant-violation/wire.d.ts.map +1 -0
- package/dist/types/recorders/core/IntegrityRecorder.d.ts +21 -0
- package/dist/types/recorders/core/IntegrityRecorder.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MockProvider.js","sourceRoot":"","sources":["../../../../src/adapters/llm/MockProvider.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"MockProvider.js","sourceRoot":"","sources":["../../../../src/adapters/llm/MockProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* wireManifest — what ACTUALLY crossed the wire, read back from the
|
|
3
|
+
* serialized request body itself.
|
|
4
|
+
*
|
|
5
|
+
* Pattern: one tiny extractor, shared by every adapter that states a
|
|
6
|
+
* manifest (the anthropicCacheWire precedent).
|
|
7
|
+
* Role: the wire seam's evidence. The recorded defect this exists for:
|
|
8
|
+
* the internal frame said a subsystem's tools were removed, and
|
|
9
|
+
* the adapter still serialized four schemas. A check that reads
|
|
10
|
+
* only the pre-serialization IR CANNOT see that bug — the IR was
|
|
11
|
+
* clean. So the manifest is read from the FINAL request body,
|
|
12
|
+
* after every transform (tool mapping, cache markers, tool_choice
|
|
13
|
+
* guards), at the last moment the adapter still holds it.
|
|
14
|
+
*
|
|
15
|
+
* HONEST ABSENCE: a provider that does not state a manifest simply leaves
|
|
16
|
+
* `LLMResponse.wireManifest` undefined, and the wire check treats that as
|
|
17
|
+
* incomparable — never as "nothing crossed". An EMPTY manifest is the
|
|
18
|
+
* opposite: a stated fact that zero tools rode the request.
|
|
19
|
+
*/
|
|
20
|
+
import type { WireToolManifest } from '../types.js';
|
|
21
|
+
export type { WireToolManifest };
|
|
22
|
+
/**
|
|
23
|
+
* Read the manifest off the final request body's tools array. `undefined`
|
|
24
|
+
* tools (the field never written — Anthropic rejects an empty array, so
|
|
25
|
+
* adapters omit it) is a stated zero: no tools crossed.
|
|
26
|
+
*/
|
|
27
|
+
export declare function toolManifestOf(tools: ReadonlyArray<{
|
|
28
|
+
readonly name?: unknown;
|
|
29
|
+
}> | undefined): WireToolManifest;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* wireManifest — what ACTUALLY crossed the wire, read back from the
|
|
3
|
+
* serialized request body itself.
|
|
4
|
+
*
|
|
5
|
+
* Pattern: one tiny extractor, shared by every adapter that states a
|
|
6
|
+
* manifest (the anthropicCacheWire precedent).
|
|
7
|
+
* Role: the wire seam's evidence. The recorded defect this exists for:
|
|
8
|
+
* the internal frame said a subsystem's tools were removed, and
|
|
9
|
+
* the adapter still serialized four schemas. A check that reads
|
|
10
|
+
* only the pre-serialization IR CANNOT see that bug — the IR was
|
|
11
|
+
* clean. So the manifest is read from the FINAL request body,
|
|
12
|
+
* after every transform (tool mapping, cache markers, tool_choice
|
|
13
|
+
* guards), at the last moment the adapter still holds it.
|
|
14
|
+
*
|
|
15
|
+
* HONEST ABSENCE: a provider that does not state a manifest simply leaves
|
|
16
|
+
* `LLMResponse.wireManifest` undefined, and the wire check treats that as
|
|
17
|
+
* incomparable — never as "nothing crossed". An EMPTY manifest is the
|
|
18
|
+
* opposite: a stated fact that zero tools rode the request.
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* Read the manifest off the final request body's tools array. `undefined`
|
|
22
|
+
* tools (the field never written — Anthropic rejects an empty array, so
|
|
23
|
+
* adapters omit it) is a stated zero: no tools crossed.
|
|
24
|
+
*/
|
|
25
|
+
export function toolManifestOf(tools) {
|
|
26
|
+
if (tools === undefined)
|
|
27
|
+
return { toolNames: [] };
|
|
28
|
+
return {
|
|
29
|
+
toolNames: tools
|
|
30
|
+
.map((t) => t.name)
|
|
31
|
+
.filter((name) => typeof name === 'string'),
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=wireManifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wireManifest.js","sourceRoot":"","sources":["../../../../src/adapters/llm/wireManifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAMH;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,KAA6D;IAE7D,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAClD,OAAO;QACL,SAAS,EAAE,KAAK;aACb,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAClB,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;KAC9D,CAAC;AACJ,CAAC"}
|
|
@@ -272,6 +272,26 @@ export interface LLMResponse {
|
|
|
272
272
|
* etc.). The thinking subflow's stage early-returns in this case.
|
|
273
273
|
*/
|
|
274
274
|
readonly rawThinking?: unknown;
|
|
275
|
+
/**
|
|
276
|
+
* 9.60.0 — what this request ACTUALLY carried, read back from the
|
|
277
|
+
* serialized body after every transform (see adapters/llm/wireManifest.ts,
|
|
278
|
+
* which builds it; the SHAPE lives here because it is part of the provider
|
|
279
|
+
* port, and the skill-graph fence rightly refuses this file reaching
|
|
280
|
+
* anything past the port).
|
|
281
|
+
*
|
|
282
|
+
* The wire seam's evidence: the recorded defect was an adapter still
|
|
283
|
+
* serializing four tool schemas after the internal frame said they were
|
|
284
|
+
* removed — invisible to any check that reads only the pre-serialization
|
|
285
|
+
* IR. Absent when the adapter states no manifest, and the wire check then
|
|
286
|
+
* treats the request as INCOMPARABLE (never as "nothing crossed"); an
|
|
287
|
+
* empty `toolNames` is the opposite — a stated zero.
|
|
288
|
+
*/
|
|
289
|
+
readonly wireManifest?: WireToolManifest;
|
|
290
|
+
}
|
|
291
|
+
/** The structural record of what one request actually carried on the wire. */
|
|
292
|
+
export interface WireToolManifest {
|
|
293
|
+
/** Tool names as they appear in the serialized body, in wire order. */
|
|
294
|
+
readonly toolNames: readonly string[];
|
|
275
295
|
}
|
|
276
296
|
export interface LLMChunk {
|
|
277
297
|
readonly tokenIndex: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/adapters/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAsHH;;;;GAIG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAwB,MAAM,CAAC,MAAM,CAAC;IAC5E,MAAM;IACN,WAAW;CACZ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/adapters/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAsHH;;;;GAIG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAwB,MAAM,CAAC,MAAM,CAAC;IAC5E,MAAM;IACN,WAAW;CACZ,CAAC,CAAC;AAqsBH;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAsC,EACtC,UAAgC;IAEhC,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,IAAI,UAAU,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;AACxD,CAAC;AAqDD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAgGpD;uDACuD;AACvD,MAAM,UAAU,kBAAkB,CAChC,OAAoB;IAEpB,OAAO,OAAO,OAAO,CAAC,WAAW,KAAK,UAAU,CAAC;AACnD,CAAC"}
|
package/dist/esm/core/Agent.d.ts
CHANGED
|
@@ -259,6 +259,17 @@ export declare class Agent extends RunnerBase<AgentInput, AgentOutput> {
|
|
|
259
259
|
/** The last-tool-result pin (9.57.0) — set only when the operator named a
|
|
260
260
|
* value other than the default 2. See AgentOptions.keepLastToolResults. */
|
|
261
261
|
private readonly keepLastToolResults?;
|
|
262
|
+
/** See AgentOptions.integrityPosture (9.60.0). Default 'observe'. */
|
|
263
|
+
private readonly integrityPosture;
|
|
264
|
+
/**
|
|
265
|
+
* The per-run disposition ledger, shared with the check sites by
|
|
266
|
+
* REFERENCE through build-time closures (the ProviderToolCache pattern —
|
|
267
|
+
* plumbing, never scope state). `run()` resets it; the run boundary
|
|
268
|
+
* files its report and clears it.
|
|
269
|
+
*/
|
|
270
|
+
private readonly integrityLedgerHolder;
|
|
271
|
+
/** Set at chart build: whether any registered tool declared `argumentsFrom`. */
|
|
272
|
+
private integrityDanglingPresent;
|
|
262
273
|
/** What a run does when a declared credential needs 3LO consent (8.6.0).
|
|
263
274
|
* Default `'pause'`. See AgentOptions.onAuthorizationRequired. */
|
|
264
275
|
private readonly onAuthorizationRequired;
|
|
@@ -1099,6 +1110,22 @@ export declare class Agent extends RunnerBase<AgentInput, AgentOutput> {
|
|
|
1099
1110
|
* there when anything is watching" — including `recordRun`, which subscribes
|
|
1100
1111
|
* with `'*'` before the run starts, so every recording carries one.
|
|
1101
1112
|
*/
|
|
1113
|
+
/** Fresh per-run ledger — see AgentOptions.integrityPosture (9.60.0). */
|
|
1114
|
+
private beginIntegrityLedger;
|
|
1115
|
+
/**
|
|
1116
|
+
* Dev posture only: throw {@link CheckerDeadError} on a run whose
|
|
1117
|
+
* registered checkers demonstrably never ran, or whose canary went
|
|
1118
|
+
* uncaught. Called on the SUCCESS path before the recording files, so the
|
|
1119
|
+
* failure is the run's result, never a masked afterthought.
|
|
1120
|
+
*/
|
|
1121
|
+
private assertIntegrityAlive;
|
|
1122
|
+
/**
|
|
1123
|
+
* File the run's disposition rows as ONE `integrity.disposition` event and
|
|
1124
|
+
* clear the ledger. On the finally path of both run doors — every exit,
|
|
1125
|
+
* before the recording stops. Listener-gated like every typed event, and
|
|
1126
|
+
* deliberately throw-proof: accounting must never change a run's outcome.
|
|
1127
|
+
*/
|
|
1128
|
+
private fileIntegrityDisposition;
|
|
1102
1129
|
private emitRunManifest;
|
|
1103
1130
|
/**
|
|
1104
1131
|
* File the DECLARED skill map (9.50.0) — `agentfootprint.skill.graph_declared`,
|
package/dist/esm/core/Agent.js
CHANGED
|
@@ -40,6 +40,7 @@ import { skillRecorder } from '../recorders/core/SkillRecorder.js';
|
|
|
40
40
|
import { validationRecorder } from '../recorders/core/ValidationRecorder.js';
|
|
41
41
|
import { credentialRecorder } from '../recorders/core/CredentialRecorder.js';
|
|
42
42
|
import { mapRecorder } from '../recorders/core/MapRecorder.js';
|
|
43
|
+
import { integrityRecorder } from '../recorders/core/IntegrityRecorder.js';
|
|
43
44
|
import { artifactsRecorder } from '../recorders/core/ArtifactsRecorder.js';
|
|
44
45
|
import { toolsRecorder } from '../recorders/core/ToolsRecorder.js';
|
|
45
46
|
import { reliabilityRecorder } from '../recorders/core/ReliabilityRecorder.js';
|
|
@@ -50,6 +51,7 @@ import { pendingDurableWrite } from './durabilityBarrier.js';
|
|
|
50
51
|
import { ToolSessionTier, TOOL_TEARDOWN_TIMEOUT_MS, } from './toolSessions.js';
|
|
51
52
|
import { buildEventMeta } from '../bridge/eventMeta.js';
|
|
52
53
|
import { buildRunManifest } from './agent/runManifest.js';
|
|
54
|
+
import { beginIntegrityRun, } from '../integrity/disposition/lifecycle.js';
|
|
53
55
|
/**
|
|
54
56
|
* The pseudo-stage a tool-teardown event is stamped with.
|
|
55
57
|
*
|
|
@@ -70,6 +72,12 @@ const TOOL_TEARDOWN_STAGE_ID = 'tool-teardown#0';
|
|
|
70
72
|
* that no traversal ever visited. This says plainly where it came from.
|
|
71
73
|
*/
|
|
72
74
|
const RUN_MANIFEST_STAGE_ID = 'run-configured#0';
|
|
75
|
+
/**
|
|
76
|
+
* Pseudo-stage for `agentfootprint.integrity.disposition` (9.60.0) — the
|
|
77
|
+
* ledger is filed at the run boundary, after the last stage committed, so it
|
|
78
|
+
* states where it came from exactly as the teardown id above does.
|
|
79
|
+
*/
|
|
80
|
+
const INTEGRITY_DISPOSITION_STAGE_ID = 'integrity-disposition#0';
|
|
73
81
|
/**
|
|
74
82
|
* Pseudo-stage for `agentfootprint.skill.graph_declared` (9.50.0) — same
|
|
75
83
|
* reasoning as the manifest id directly above: dispatched before the chart
|
|
@@ -286,6 +294,19 @@ export class Agent extends RunnerBase {
|
|
|
286
294
|
/** The last-tool-result pin (9.57.0) — set only when the operator named a
|
|
287
295
|
* value other than the default 2. See AgentOptions.keepLastToolResults. */
|
|
288
296
|
keepLastToolResults;
|
|
297
|
+
/** See AgentOptions.integrityPosture (9.60.0). Default 'observe'. */
|
|
298
|
+
integrityPosture = 'observe';
|
|
299
|
+
/**
|
|
300
|
+
* The per-run disposition ledger, shared with the check sites by
|
|
301
|
+
* REFERENCE through build-time closures (the ProviderToolCache pattern —
|
|
302
|
+
* plumbing, never scope state). `run()` resets it; the run boundary
|
|
303
|
+
* files its report and clears it.
|
|
304
|
+
*/
|
|
305
|
+
integrityLedgerHolder = {
|
|
306
|
+
current: undefined,
|
|
307
|
+
};
|
|
308
|
+
/** Set at chart build: whether any registered tool declared `argumentsFrom`. */
|
|
309
|
+
integrityDanglingPresent = false;
|
|
289
310
|
/** What a run does when a declared credential needs 3LO consent (8.6.0).
|
|
290
311
|
* Default `'pause'`. See AgentOptions.onAuthorizationRequired. */
|
|
291
312
|
onAuthorizationRequired;
|
|
@@ -606,6 +627,16 @@ export class Agent extends RunnerBase {
|
|
|
606
627
|
requireKeepLastToolResults(opts.keepLastToolResults, 'Agent');
|
|
607
628
|
this.keepLastToolResults = opts.keepLastToolResults;
|
|
608
629
|
}
|
|
630
|
+
// Refused at construction, never mid-run — a misspelled posture that was
|
|
631
|
+
// ignored would leave the liveness theorems switched off in an agent
|
|
632
|
+
// that believes they are on (the concurrency-mode precedent).
|
|
633
|
+
if (opts.integrityPosture !== undefined) {
|
|
634
|
+
if (opts.integrityPosture !== 'observe' && opts.integrityPosture !== 'dev') {
|
|
635
|
+
throw new Error(`Agent: integrityPosture must be 'observe' or 'dev', got ` +
|
|
636
|
+
`${JSON.stringify(opts.integrityPosture)}.`);
|
|
637
|
+
}
|
|
638
|
+
this.integrityPosture = opts.integrityPosture;
|
|
639
|
+
}
|
|
609
640
|
// The claim-check seam (9.21.0). One store per agent, attached at
|
|
610
641
|
// construction — idempotent by shape: there is no second door to attach a
|
|
611
642
|
// competing one through, so "one per agent" is a fact of the type rather
|
|
@@ -1097,6 +1128,10 @@ export class Agent extends RunnerBase {
|
|
|
1097
1128
|
// declared at file end via hoisting)
|
|
1098
1129
|
const executor = this.createExecutor(options);
|
|
1099
1130
|
this.inFlightRunId = this.currentRunContext.runId;
|
|
1131
|
+
// One disposition ledger per run (9.60.0) — registration mirrors what
|
|
1132
|
+
// this agent's configuration makes applicable; dev posture runs the
|
|
1133
|
+
// canaries here, BEFORE any real work, so a dead check is named first.
|
|
1134
|
+
this.beginIntegrityLedger();
|
|
1100
1135
|
// Auto-checkpoint at iteration boundaries — captures the latest
|
|
1101
1136
|
// conversation history into a per-run tracker. On error, we
|
|
1102
1137
|
// wrap the underlying error in `RunCheckpointError` carrying
|
|
@@ -1135,6 +1170,12 @@ export class Agent extends RunnerBase {
|
|
|
1135
1170
|
this.recordPendingQuestion(finalized);
|
|
1136
1171
|
await this.endRunToolSessions(finalized);
|
|
1137
1172
|
// The answer is FINISHED before this line and cannot be changed by it.
|
|
1173
|
+
// The liveness theorems (9.60.0, dev posture only) — a run that would
|
|
1174
|
+
// return green while its registered checkers demonstrably never ran
|
|
1175
|
+
// fails HERE instead, before the recording is filed. A finished run is
|
|
1176
|
+
// itself the proof work existed: the loop cannot finish without at
|
|
1177
|
+
// least one model call.
|
|
1178
|
+
this.assertIntegrityAlive();
|
|
1138
1179
|
// See `fileRunRecording` for why the write is awaited rather than left
|
|
1139
1180
|
// in flight, and why it can never fail the run.
|
|
1140
1181
|
await this.fileRunRecording(recording, finalized);
|
|
@@ -1173,7 +1214,10 @@ export class Agent extends RunnerBase {
|
|
|
1173
1214
|
// it would hand the caller a retry handle for a wall and bury the
|
|
1174
1215
|
// named values one `.cause` deep, where the person deciding what to
|
|
1175
1216
|
// do about them will not look.
|
|
1176
|
-
cause instanceof UnsupportedValuesError
|
|
1217
|
+
cause instanceof UnsupportedValuesError ||
|
|
1218
|
+
// 9.60.0 — a dead checker is a WIRING verdict on this build, not a
|
|
1219
|
+
// recoverable run state: resuming would run the same dead wiring.
|
|
1220
|
+
cause.name === 'CheckerDeadError');
|
|
1177
1221
|
if (cause instanceof Error && !isTerminalTypedError && tracker.history.length > 0) {
|
|
1178
1222
|
// Observation beats the heuristic: if a bracket was open, it says
|
|
1179
1223
|
// exactly what the run was doing. `classifyFailurePhase` only decides
|
|
@@ -1205,6 +1249,10 @@ export class Agent extends RunnerBase {
|
|
|
1205
1249
|
throw cause;
|
|
1206
1250
|
}
|
|
1207
1251
|
finally {
|
|
1252
|
+
// The run's disposition rows, on EVERY path — success, failure, pause —
|
|
1253
|
+
// and BEFORE the recording stops, so a recording carries its run's
|
|
1254
|
+
// checker accounting (9.60.0).
|
|
1255
|
+
this.fileIntegrityDisposition();
|
|
1208
1256
|
// Always released: a recording left subscribed would keep listening
|
|
1209
1257
|
// through the next run and grow a tail nobody reads.
|
|
1210
1258
|
recording?.stop();
|
|
@@ -1467,6 +1515,9 @@ export class Agent extends RunnerBase {
|
|
|
1467
1515
|
const recording = this.startRunRecording();
|
|
1468
1516
|
const executor = this.createExecutor(options);
|
|
1469
1517
|
this.inFlightRunId = this.currentRunContext.runId;
|
|
1518
|
+
// A resumed turn is two runs, and each keeps its own ledger — exactly
|
|
1519
|
+
// the recording's terms one comment up.
|
|
1520
|
+
this.beginIntegrityLedger();
|
|
1470
1521
|
this.lastRunAnswer = undefined;
|
|
1471
1522
|
// One run can never raise on another run's consent block.
|
|
1472
1523
|
this.consentOutstanding.clear();
|
|
@@ -1479,6 +1530,8 @@ export class Agent extends RunnerBase {
|
|
|
1479
1530
|
// AGAIN has asked a new one, and that one is outstanding from here.
|
|
1480
1531
|
this.recordPendingQuestion(finalized);
|
|
1481
1532
|
await this.endRunToolSessions(finalized);
|
|
1533
|
+
// Same liveness gate the fresh-run path applies (9.60.0).
|
|
1534
|
+
this.assertIntegrityAlive();
|
|
1482
1535
|
await this.fileRunRecording(recording, finalized);
|
|
1483
1536
|
return finalized;
|
|
1484
1537
|
}
|
|
@@ -1487,6 +1540,9 @@ export class Agent extends RunnerBase {
|
|
|
1487
1540
|
throw cause;
|
|
1488
1541
|
}
|
|
1489
1542
|
finally {
|
|
1543
|
+
// Same terms as the fresh-run path: rows on every exit, before the
|
|
1544
|
+
// recording stops (9.60.0).
|
|
1545
|
+
this.fileIntegrityDisposition();
|
|
1490
1546
|
recording?.stop();
|
|
1491
1547
|
this.inFlightRunId = undefined;
|
|
1492
1548
|
}
|
|
@@ -2178,6 +2234,8 @@ export class Agent extends RunnerBase {
|
|
|
2178
2234
|
attachObserver(credentialRecorder({ dispatcher, getRunContext: getRunCtx }));
|
|
2179
2235
|
// Map engagement (9.58.0). Shipped WITH the domain, same lesson as above.
|
|
2180
2236
|
attachObserver(mapRecorder({ dispatcher, getRunContext: getRunCtx }));
|
|
2237
|
+
// Context Integrity findings (9.60.0). Same lesson, applied again.
|
|
2238
|
+
attachObserver(integrityRecorder({ dispatcher, getRunContext: getRunCtx }));
|
|
2181
2239
|
// Artifact lifecycle (9.21.0). Shipped WITH the domain — the credential
|
|
2182
2240
|
// bridge above is the record of what waiting costs. Always-on and
|
|
2183
2241
|
// zero-cost: with no store attached nothing emits, and the bridge drops
|
|
@@ -2256,6 +2314,55 @@ export class Agent extends RunnerBase {
|
|
|
2256
2314
|
* there when anything is watching" — including `recordRun`, which subscribes
|
|
2257
2315
|
* with `'*'` before the run starts, so every recording carries one.
|
|
2258
2316
|
*/
|
|
2317
|
+
/** Fresh per-run ledger — see AgentOptions.integrityPosture (9.60.0). */
|
|
2318
|
+
beginIntegrityLedger() {
|
|
2319
|
+
this.integrityLedgerHolder.current = beginIntegrityRun({
|
|
2320
|
+
wire: true,
|
|
2321
|
+
composeInvariant: this.mapsPlan !== undefined,
|
|
2322
|
+
dangling: this.integrityDanglingPresent,
|
|
2323
|
+
}, this.integrityPosture);
|
|
2324
|
+
}
|
|
2325
|
+
/**
|
|
2326
|
+
* Dev posture only: throw {@link CheckerDeadError} on a run whose
|
|
2327
|
+
* registered checkers demonstrably never ran, or whose canary went
|
|
2328
|
+
* uncaught. Called on the SUCCESS path before the recording files, so the
|
|
2329
|
+
* failure is the run's result, never a masked afterthought.
|
|
2330
|
+
*/
|
|
2331
|
+
assertIntegrityAlive() {
|
|
2332
|
+
if (this.integrityPosture !== 'dev')
|
|
2333
|
+
return;
|
|
2334
|
+
this.integrityLedgerHolder.current?.assertAlive({ workExisted: true });
|
|
2335
|
+
}
|
|
2336
|
+
/**
|
|
2337
|
+
* File the run's disposition rows as ONE `integrity.disposition` event and
|
|
2338
|
+
* clear the ledger. On the finally path of both run doors — every exit,
|
|
2339
|
+
* before the recording stops. Listener-gated like every typed event, and
|
|
2340
|
+
* deliberately throw-proof: accounting must never change a run's outcome.
|
|
2341
|
+
*/
|
|
2342
|
+
fileIntegrityDisposition() {
|
|
2343
|
+
const ledger = this.integrityLedgerHolder.current;
|
|
2344
|
+
this.integrityLedgerHolder.current = undefined;
|
|
2345
|
+
if (ledger === undefined)
|
|
2346
|
+
return;
|
|
2347
|
+
try {
|
|
2348
|
+
const type = 'agentfootprint.integrity.disposition';
|
|
2349
|
+
const dispatcher = this.getDispatcher();
|
|
2350
|
+
if (!dispatcher.hasListenersFor(type))
|
|
2351
|
+
return;
|
|
2352
|
+
dispatcher.dispatch({
|
|
2353
|
+
type,
|
|
2354
|
+
payload: {
|
|
2355
|
+
posture: this.integrityPosture,
|
|
2356
|
+
workExisted: true,
|
|
2357
|
+
rows: ledger.report(),
|
|
2358
|
+
},
|
|
2359
|
+
meta: buildEventMeta({ runtimeStageId: INTEGRITY_DISPOSITION_STAGE_ID }, this.currentRunContext),
|
|
2360
|
+
});
|
|
2361
|
+
}
|
|
2362
|
+
catch {
|
|
2363
|
+
// Recorder/dispatcher failures never abort a run — the house rule.
|
|
2364
|
+
}
|
|
2365
|
+
}
|
|
2259
2366
|
emitRunManifest() {
|
|
2260
2367
|
const type = 'agentfootprint.agent.run_configured';
|
|
2261
2368
|
const dispatcher = this.getDispatcher();
|
|
@@ -2858,8 +2965,25 @@ export class Agent extends RunnerBase {
|
|
|
2858
2965
|
const providerToolCache = { current: [] };
|
|
2859
2966
|
const readSkillFor = this.readSkillOfferFor();
|
|
2860
2967
|
const hiddenSkillIds = this.hiddenSkillIdsNow();
|
|
2968
|
+
// Registration-time owner stamps (9.60.0) — the identity edges the
|
|
2969
|
+
// integrity checks read. Built once per chart from the registry.
|
|
2970
|
+
const toolOwners = new Map(registry
|
|
2971
|
+
.filter((r) => r.tool.owner !== undefined)
|
|
2972
|
+
.map((r) => [r.name, r.tool.owner]));
|
|
2973
|
+
// The declared argument-ground edges (9.60.0) — same one-build harvest as
|
|
2974
|
+
// the owner stamps; read by callLLM's dangling-reference check.
|
|
2975
|
+
const toolGrounding = new Map(registry
|
|
2976
|
+
.filter((r) => r.tool.argumentsFrom !== undefined)
|
|
2977
|
+
.map((r) => [r.name, r.tool.argumentsFrom]));
|
|
2978
|
+
this.integrityDanglingPresent = toolGrounding.size > 0;
|
|
2861
2979
|
const toolsSubflow = buildToolsSlot({
|
|
2862
2980
|
tools: toolSchemas,
|
|
2981
|
+
...(toolOwners.size > 0 && { toolOwners }),
|
|
2982
|
+
// The kernel's map cards, for the compose-seam integrity backstop.
|
|
2983
|
+
...(this.mapsPlan !== undefined && {
|
|
2984
|
+
mountedMaps: this.mapsPlan.maps.map((m) => ({ id: m.id, toolNames: m.toolNames })),
|
|
2985
|
+
}),
|
|
2986
|
+
integrityLedger: this.integrityLedgerHolder,
|
|
2863
2987
|
...(this.externalToolProvider && { toolProvider: this.externalToolProvider }),
|
|
2864
2988
|
...(this.externalToolProvider && { providerToolCache }),
|
|
2865
2989
|
...(readSkillFor && { readSkillFor }),
|
|
@@ -2882,6 +3006,10 @@ export class Agent extends RunnerBase {
|
|
|
2882
3006
|
get toolSchemas() {
|
|
2883
3007
|
return toolSchemasResolved;
|
|
2884
3008
|
},
|
|
3009
|
+
// The declared argument-ground edges (9.60.0) — value-conditional, so
|
|
3010
|
+
// an agent whose tools declare none runs the exact bytes it always did.
|
|
3011
|
+
...(toolGrounding.size > 0 && { toolGrounding }),
|
|
3012
|
+
integrityLedger: this.integrityLedgerHolder,
|
|
2885
3013
|
...(this.reliabilityConfig !== undefined && { reliability: this.reliabilityConfig }),
|
|
2886
3014
|
...(this.outputSchemaParser !== undefined && {
|
|
2887
3015
|
outputSchemaParser: this.outputSchemaParser,
|