agentfootprint 7.10.0 → 7.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/core/Agent.js +13 -2
- package/dist/core/Agent.js.map +1 -1
- package/dist/core-flow/Graph.js +607 -0
- package/dist/core-flow/Graph.js.map +1 -0
- package/dist/debug.js +5 -2
- package/dist/debug.js.map +1 -1
- package/dist/esm/core/Agent.d.ts +6 -2
- package/dist/esm/core/Agent.js +13 -2
- package/dist/esm/core/Agent.js.map +1 -1
- package/dist/esm/core/agent/types.d.ts +25 -1
- package/dist/esm/core-flow/Graph.d.ts +272 -0
- package/dist/esm/core-flow/Graph.js +601 -0
- package/dist/esm/core-flow/Graph.js.map +1 -0
- package/dist/esm/debug.d.ts +2 -2
- package/dist/esm/debug.js +2 -2
- package/dist/esm/debug.js.map +1 -1
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/context-bisect/index.d.ts +3 -1
- package/dist/esm/lib/context-bisect/index.js +5 -0
- package/dist/esm/lib/context-bisect/index.js.map +1 -1
- package/dist/esm/lib/context-bisect/trajectory.d.ts +8 -0
- package/dist/esm/lib/context-bisect/trajectory.js +10 -3
- package/dist/esm/lib/context-bisect/trajectory.js.map +1 -1
- package/dist/esm/lib/context-bisect/variable-recall.d.ts +171 -0
- package/dist/esm/lib/context-bisect/variable-recall.js +0 -0
- package/dist/esm/lib/context-bisect/variable-recall.js.map +1 -0
- package/dist/esm/lib/context-bisect/variableToBacktrackTrace.d.ts +53 -0
- package/dist/esm/lib/context-bisect/variableToBacktrackTrace.js +142 -0
- package/dist/esm/lib/context-bisect/variableToBacktrackTrace.js.map +1 -0
- package/dist/esm/lib/context-bisect/walk-to-root.d.ts +37 -2
- package/dist/esm/lib/context-bisect/walk-to-root.js +61 -6
- package/dist/esm/lib/context-bisect/walk-to-root.js.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/context-bisect/index.js +9 -1
- package/dist/lib/context-bisect/index.js.map +1 -1
- package/dist/lib/context-bisect/trajectory.js +10 -3
- package/dist/lib/context-bisect/trajectory.js.map +1 -1
- package/dist/lib/context-bisect/variable-recall.js +0 -0
- package/dist/lib/context-bisect/variable-recall.js.map +1 -0
- package/dist/lib/context-bisect/variableToBacktrackTrace.js +146 -0
- package/dist/lib/context-bisect/variableToBacktrackTrace.js.map +1 -0
- package/dist/lib/context-bisect/walk-to-root.js +61 -6
- package/dist/lib/context-bisect/walk-to-root.js.map +1 -1
- package/dist/types/core/Agent.d.ts +6 -2
- package/dist/types/core/Agent.d.ts.map +1 -1
- package/dist/types/core/agent/types.d.ts +25 -1
- package/dist/types/core/agent/types.d.ts.map +1 -1
- package/dist/types/core-flow/Graph.d.ts +273 -0
- package/dist/types/core-flow/Graph.d.ts.map +1 -0
- package/dist/types/debug.d.ts +2 -2
- package/dist/types/debug.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/lib/context-bisect/index.d.ts +3 -1
- package/dist/types/lib/context-bisect/index.d.ts.map +1 -1
- package/dist/types/lib/context-bisect/trajectory.d.ts +8 -0
- package/dist/types/lib/context-bisect/trajectory.d.ts.map +1 -1
- package/dist/types/lib/context-bisect/variable-recall.d.ts +172 -0
- package/dist/types/lib/context-bisect/variable-recall.d.ts.map +1 -0
- package/dist/types/lib/context-bisect/variableToBacktrackTrace.d.ts +54 -0
- package/dist/types/lib/context-bisect/variableToBacktrackTrace.d.ts.map +1 -0
- package/dist/types/lib/context-bisect/walk-to-root.d.ts +37 -2
- package/dist/types/lib/context-bisect/walk-to-root.d.ts.map +1 -1
- package/package.json +3 -3
package/dist/esm/debug.js
CHANGED
|
@@ -38,11 +38,11 @@ export { buildSelfExplainSkill, buildSelfExplainToolProvider, SelfExplainBinding
|
|
|
38
38
|
// counterfactual ablation. §B2 claim tiers: scores/weights are
|
|
39
39
|
// embedding-geometry PROXIES; ablation verdicts are the ONLY causal
|
|
40
40
|
// claims; slice completeness is bounded by tracking — and says so.
|
|
41
|
-
export { ablationForSuspect, applyAblations, assembleTrajectory, assignCostVerdicts, bisectCulprits, bucketByAnchors, shortlistEarlyCulprits, walkToRoot, walkTrajectory, buildWriterFrameIndex, DEFAULT_RECENCY_DECAY, classifySuspect, findLoopHeads, CONTEXT_BISECT_DEFAULTS, defaultOutcomeComparator, defaultSuspectClassifier, findDroppedContext, formatContextBugReport, llmCallIdsFromEvents, llmEdgeWeigher, localizeContextBug, probeFlipped, removableSources, rerunWithoutSources, runAblationProbe, runRestorationProbe, stepOutputText, suspectLabel, verdictFor, } from './lib/context-bisect/index.js';
|
|
41
|
+
export { ablationForSuspect, applyAblations, assembleTrajectory, assignCostVerdicts, bisectCulprits, bucketByAnchors, shortlistEarlyCulprits, walkToRoot, walkTrajectory, buildWriterFrameIndex, joinVariableSlice, traceVariable, DEFAULT_RECENCY_DECAY, classifySuspect, findLoopHeads, CONTEXT_BISECT_DEFAULTS, defaultOutcomeComparator, defaultSuspectClassifier, findDroppedContext, formatContextBugReport, llmCallIdsFromEvents, llmEdgeWeigher, localizeContextBug, probeFlipped, removableSources, rerunWithoutSources, runAblationProbe, runRestorationProbe, stepOutputText, suspectLabel, verdictFor, } from './lib/context-bisect/index.js';
|
|
42
42
|
// BacktrackTrace serializer — feeds agentThinkingUI's <BacktrackView>
|
|
43
43
|
// (the "why?" board) straight off a localizer report. Pure mapping, no
|
|
44
44
|
// UI dependency; the interfaces mirror agentthinkingui's contract.
|
|
45
|
-
export { sliceToBacktrackTrace, toBacktrackTrace, } from './lib/context-bisect/index.js';
|
|
45
|
+
export { sliceToBacktrackTrace, toBacktrackTrace, variableToBacktrackTrace, } from './lib/context-bisect/index.js';
|
|
46
46
|
// Tool-catalog confusability lint (RFC-002 tier 1, C1–C3) — build-time,
|
|
47
47
|
// CI-gateable, framework-agnostic: plain { name, description?, inputSchema? }
|
|
48
48
|
// tools in (OpenAI/Anthropic/MCP lists coerce via coerceCatalog; the
|
package/dist/esm/debug.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/debug.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,uEAAuE;AACvE,uEAAuE;AACvE,wEAAwE;AACxE,wEAAwE;AACxE,4BAA4B;AAC5B,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,2BAA2B,EAC3B,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,6BAA6B,EAC7B,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,uBAAuB,EACvB,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,yBAAyB,EACzB,cAAc,EACd,qBAAqB,EACrB,WAAW,EACX,yBAAyB,EACzB,YAAY,EACZ,mBAAmB,GAiCpB,MAAM,+BAA+B,CAAC;AACvC,uEAAuE;AACvE,2EAA2E;AAC3E,mEAAmE;AACnE,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,EAClB,aAAa,GAGd,MAAM,+BAA+B,CAAC;AACvC,uEAAuE;AACvE,yEAAyE;AACzE,0EAA0E;AAC1E,kEAAkE;AAClE,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,kBAAkB,EAClB,eAAe,GAGhB,MAAM,+BAA+B,CAAC;AACvC,qEAAqE;AACrE,sEAAsE;AACtE,sEAAsE;AACtE,+DAA+D;AAC/D,oEAAoE;AACpE,mEAAmE;AACnE,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,UAAU,EACV,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,UAAU,
|
|
1
|
+
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/debug.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,uEAAuE;AACvE,uEAAuE;AACvE,wEAAwE;AACxE,wEAAwE;AACxE,4BAA4B;AAC5B,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,2BAA2B,EAC3B,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,6BAA6B,EAC7B,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,uBAAuB,EACvB,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,yBAAyB,EACzB,cAAc,EACd,qBAAqB,EACrB,WAAW,EACX,yBAAyB,EACzB,YAAY,EACZ,mBAAmB,GAiCpB,MAAM,+BAA+B,CAAC;AACvC,uEAAuE;AACvE,2EAA2E;AAC3E,mEAAmE;AACnE,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,EAClB,aAAa,GAGd,MAAM,+BAA+B,CAAC;AACvC,uEAAuE;AACvE,yEAAyE;AACzE,0EAA0E;AAC1E,kEAAkE;AAClE,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,kBAAkB,EAClB,eAAe,GAGhB,MAAM,+BAA+B,CAAC;AACvC,qEAAqE;AACrE,sEAAsE;AACtE,sEAAsE;AACtE,+DAA+D;AAC/D,oEAAoE;AACpE,mEAAmE;AACnE,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,UAAU,EACV,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,UAAU,GAoEX,MAAM,+BAA+B,CAAC;AACvC,sEAAsE;AACtE,uEAAuE;AACvE,mEAAmE;AACnE,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,wBAAwB,GASzB,MAAM,+BAA+B,CAAC;AACvC,wEAAwE;AACxE,8EAA8E;AAC9E,qEAAqE;AACrE,wEAAwE;AACxE,uEAAuE;AACvE,gEAAgE;AAChE,gDAAgD;AAChD,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,+BAA+B,EAC/B,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,uBAAuB,EACvB,yBAAyB,EACzB,iBAAiB,EACjB,cAAc,EACd,mBAAmB,GAepB,MAAM,0BAA0B,CAAC;AAClC,2EAA2E;AAC3E,6EAA6E;AAC7E,6EAA6E;AAC7E,uEAAuE;AACvE,2EAA2E;AAC3E,8EAA8E;AAC9E,yCAAyC;AACzC,OAAO,EACL,YAAY,GAYb,MAAM,8BAA8B,CAAC"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -31,6 +31,7 @@ export type { SelfExplainOptions } from './lib/trace-toolpack/selfExplain.js';
|
|
|
31
31
|
export type { ObserverDrainResult, ObserverStats } from 'footprintjs';
|
|
32
32
|
export type { ToolArgValidationMode } from './core/agent/toolArgsValidation.js';
|
|
33
33
|
export type { ReadSummaryMarker, ReadTrackingMode } from 'footprintjs';
|
|
34
|
+
export type { WriteProvenanceMode } from './core/agent/types.js';
|
|
34
35
|
export { OutputSchemaError, applyOutputSchema, type OutputSchemaParser, type OutputSchemaOptions, } from './core/outputSchema.js';
|
|
35
36
|
export { type OutputFallbackOptions, type OutputFallbackFn } from './core/outputFallback.js';
|
|
36
37
|
export { RunCheckpointError, type AgentRunCheckpoint } from './core/runCheckpoint.js';
|
|
@@ -43,6 +44,7 @@ export { Parallel, ParallelBuilder, type BranchOutcome, type MergeFn, type Merge
|
|
|
43
44
|
export { Conditional, ConditionalBuilder, type ConditionalInput, type ConditionalOptions, type ConditionalOutput, type Predicate, } from './core-flow/Conditional.js';
|
|
44
45
|
export { Loop, LoopBuilder, type LoopInput, type LoopOptions, type LoopOutput, type UntilGuard, } from './core-flow/Loop.js';
|
|
45
46
|
export { workflow, Workflow, type NextStepInput, type WorkflowOptions, } from './core-flow/Workflow.js';
|
|
47
|
+
export { graph, Graph, type GraphEdge, type GraphInput, type GraphNode, type GraphOptions, type GraphOutput, } from './core-flow/Graph.js';
|
|
46
48
|
export { providerFromEnv, type ProviderKind, type CreateProviderOptions, type ProviderFromEnv, } from './adapters/llm/createProvider.js';
|
|
47
49
|
export * from './patterns/index.js';
|
|
48
50
|
export { defineRAG, type DefineRAGOptions, indexDocuments, type IndexDocumentsOptions, type RagDocument, } from './lib/rag/index.js';
|
package/dist/esm/index.js
CHANGED
|
@@ -103,6 +103,7 @@ export { Parallel, ParallelBuilder, } from './core-flow/Parallel.js';
|
|
|
103
103
|
export { Conditional, ConditionalBuilder, } from './core-flow/Conditional.js';
|
|
104
104
|
export { Loop, LoopBuilder, } from './core-flow/Loop.js';
|
|
105
105
|
export { workflow, Workflow, } from './core-flow/Workflow.js';
|
|
106
|
+
export { graph, Graph, } from './core-flow/Graph.js';
|
|
106
107
|
// Adapters — LLM providers
|
|
107
108
|
// `mock(...)` is the lowercase factory equivalent to `new MockProvider(...)`.
|
|
108
109
|
// `anthropic(...)` is the real Claude provider via `@anthropic-ai/sdk`.
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,oEAAoE;AACpE,8DAA8D;AAC9D,uEAAuE;AACvE,kEAAkE;AAClE,sEAAsE;AACtE,sDAAsD;AACtD,OAAO,8CAA8C,CAAC;AACtD,OAAO,2CAA2C,CAAC;AACnD,OAAO,4CAA4C,CAAC;AAsCpD,6BAA6B;AAC7B,cAAc,qBAAqB,CAAC;AAEpC,yEAAyE;AACzE,uDAAuD;AACvD,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,cAAc;AAEd,yEAAyE;AACzE,wEAAwE;AACxE,yEAAyE;AACzE,gBAAgB;AAChB,SAAS;AAET,2EAA2E;AAC3E,6EAA6E;AAC7E,6EAA6E;AAC7E,6DAA6D;AAC7D,YAAY,GAGb,MAAM,kBAAkB,CAAC;AAC1B,oEAAoE;AACpE,yEAAyE;AACzE,wEAAwE;AACxE,qEAAqE;AACrE,kDAAkD;AAClD,OAAO,EACL,gBAAgB,GAMjB,MAAM,2BAA2B,CAAC;AAKnC,yCAAyC;AACzC,EAAE;AACF,yEAAyE;AACzE,kEAAkE;AAClE,oEAAoE;AACpE,qEAAqE;AACrE,2EAA2E;AAC3E,8EAA8E;AAC9E,0DAA0D;AAC1D,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,GAKjB,MAAM,wCAAwC,CAAC;AAIhD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAO7D,sEAAsE;AACtE,wEAAwE;AACxE,iEAAiE;AACjE,sEAAsE;AACtE,uEAAuE;AACvE,OAAO,EACL,SAAS,EACT,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,cAAc,GAEf,MAAM,iBAAiB,CAAC;AAEzB,uEAAuE;AACvE,6EAA6E;AAC7E,mEAAmE;AACnE,0EAA0E;AAC1E,oFAAoF;AACpF,OAAO,EACL,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EACzB,wBAAwB,GAgBzB,MAAM,mBAAmB,CAAC;AAM3B,6EAA6E;AAC7E,OAAO,EACL,eAAe,GAIhB,MAAM,qCAAqC,CAAC;AAY7C,qEAAqE;AACrE,kEAAkE;AAClE,kEAAkE;AAClE,OAAO,EACL,0BAA0B;AAC1B,kEAAkE;AAClE,mEAAmE;AACnE,oDAAoD;AACpD,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,GAGpB,MAAM,6DAA6D,CAAC;AAErE,gEAAgE;AAChE,sEAAsE;AACtE,uDAAuD;AACvD,sEAAsE;AACtE,+DAA+D;AAC/D,gEAAgE;AAChE,wEAAwE;AACxE,mCAAmC;AAEnC,qBAAqB;AACrB,OAAO,EACL,OAAO,EACP,cAAc,GAIf,MAAM,mBAAmB,CAAC;AAO3B,2EAA2E;AAC3E,gFAAgF;AAChF,4EAA4E;AAC5E,2EAA2E;AAC3E,OAAO,EACL,yBAAyB,GAE1B,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,KAAK,EACL,YAAY,GAKb,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,7 +27,9 @@ export { ablationForSuspect, applyAblations, costStatsFrom, defaultOutcomeCompar
|
|
|
27
27
|
export { assignCostVerdicts, classifySuspect, MIN_LOOPS_SAVED } from './cost.js';
|
|
28
28
|
export { removableSources, rerunWithoutSources, type IgnoredSource, type RemovableSource, type RerunWithoutSourcesOptions, type RerunWithoutSourcesResult, type WhatChanged, } from './rerun.js';
|
|
29
29
|
export { shortlistEarlyCulprits, DEFAULT_RECENCY_DECAY, type LoopCandidate, type LoopRecallShortlist, type ShortlistEarlyCulpritsOptions, } from './loop-recall.js';
|
|
30
|
-
export { walkToRoot, walkTrajectory, buildWriterFrameIndex, type RootCauseHop, type RootCauseNote, type RootCausePath, type WalkToRootOptions, } from './walk-to-root.js';
|
|
30
|
+
export { walkToRoot, walkTrajectory, buildWriterFrameIndex, type HopNarrowedBy, type RootCauseHop, type RootCauseNote, type RootCausePath, type WalkToRootOptions, } from './walk-to-root.js';
|
|
31
|
+
export { joinVariableSlice, traceVariable, type AgentKeyMoment, type AgentVariableSlice, type DataflowCoverage, type JoinVariableSliceOptions, type TraceVariableOptions, type VariableAblationHook, } from './variable-recall.js';
|
|
32
|
+
export { variableToBacktrackTrace, type VariableToBacktrackTraceOptions, } from './variableToBacktrackTrace.js';
|
|
31
33
|
export { assembleTrajectory, bucketByAnchors, findLoopHeads, type AnchorBucket, type AssembleTrajectoryOptions, type ContextSource, type LoopFrame, type SyntheticQuestionNode, type Trajectory, } from './trajectory.js';
|
|
32
34
|
export { bisectCulprits, type BisectCulpritsOptions, type BisectionProbe, type BisectionResult, } from './bisect.js';
|
|
33
35
|
export { CONTEXT_BISECT_DEFAULTS, type AblationRerun, type AblationRunner, type AblationRunStats, type AblationSpec, type AblationVerdict, type AblationVerdictKind, type CapturedEventLike, type ContextBugArtifacts, type ContextBugReport, type CostRange, type CostStats, type CostVerdict, type EdgePathStep, type HonestyFlag, type HonestyFlagKind, type OutcomeComparator, type QualityTriggerLookup, type RestoredCandidate, type RunCost, type SimilarityStats, type SliceStats, type Suspect, type SuspectClass, type SuspectDetail, type SuspectKind, } from './types.js';
|
|
@@ -36,6 +36,11 @@ export { removableSources, rerunWithoutSources, } from './rerun.js';
|
|
|
36
36
|
export { shortlistEarlyCulprits, DEFAULT_RECENCY_DECAY, } from './loop-recall.js';
|
|
37
37
|
// Root-cause backtracking debugger (proposal 007, L4): walk symptom → root (narrow → hop → convict).
|
|
38
38
|
export { walkToRoot, walkTrajectory, buildWriterFrameIndex, } from './walk-to-root.js';
|
|
39
|
+
// variable-recall (7.12): footprintjs's variable slices joined to agent
|
|
40
|
+
// vocabulary — loops, suspect identities, ablation hooks. Pure assembly; it is
|
|
41
|
+
// what lets the walk narrow by RECORDED dataflow instead of text similarity.
|
|
42
|
+
export { joinVariableSlice, traceVariable, } from './variable-recall.js';
|
|
43
|
+
export { variableToBacktrackTrace, } from './variableToBacktrackTrace.js';
|
|
39
44
|
// Per-loop trajectory assembler (proposal 005): segmentation core (phase 1)
|
|
40
45
|
// + the agent-flavored projection (phase 2).
|
|
41
46
|
export { assembleTrajectory, bucketByAnchors, findLoopHeads, } from './trajectory.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/context-bisect/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EACL,cAAc,EACd,cAAc,GAIf,MAAM,qBAAqB,CAAC;AAE7B,oFAAoF;AACpF,OAAO,EACL,kBAAkB,GAInB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,mBAAmB,GAIpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,GAKb,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,gBAAgB,GAOjB,MAAM,uBAAuB,CAAC;AAC/B,yEAAyE;AACzE,qEAAqE;AACrE,OAAO,EACL,qBAAqB,GAEtB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,wBAAwB,EACxB,MAAM,EACN,YAAY,EACZ,gBAAgB,EAChB,UAAU,GAGX,MAAM,eAAe,CAAC;AAEvB,8EAA8E;AAC9E,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjF,6EAA6E;AAC7E,uEAAuE;AACvE,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GAMpB,MAAM,YAAY,CAAC;AAEpB,gGAAgG;AAChG,OAAO,EACL,sBAAsB,EACtB,qBAAqB,GAItB,MAAM,kBAAkB,CAAC;AAE1B,qGAAqG;AACrG,OAAO,EACL,UAAU,EACV,cAAc,EACd,qBAAqB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/context-bisect/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EACL,cAAc,EACd,cAAc,GAIf,MAAM,qBAAqB,CAAC;AAE7B,oFAAoF;AACpF,OAAO,EACL,kBAAkB,GAInB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,mBAAmB,GAIpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,GAKb,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,gBAAgB,GAOjB,MAAM,uBAAuB,CAAC;AAC/B,yEAAyE;AACzE,qEAAqE;AACrE,OAAO,EACL,qBAAqB,GAEtB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,wBAAwB,EACxB,MAAM,EACN,YAAY,EACZ,gBAAgB,EAChB,UAAU,GAGX,MAAM,eAAe,CAAC;AAEvB,8EAA8E;AAC9E,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjF,6EAA6E;AAC7E,uEAAuE;AACvE,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GAMpB,MAAM,YAAY,CAAC;AAEpB,gGAAgG;AAChG,OAAO,EACL,sBAAsB,EACtB,qBAAqB,GAItB,MAAM,kBAAkB,CAAC;AAE1B,qGAAqG;AACrG,OAAO,EACL,UAAU,EACV,cAAc,EACd,qBAAqB,GAMtB,MAAM,mBAAmB,CAAC;AAE3B,wEAAwE;AACxE,+EAA+E;AAC/E,6EAA6E;AAC7E,OAAO,EACL,iBAAiB,EACjB,aAAa,GAOd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,wBAAwB,GAEzB,MAAM,+BAA+B,CAAC;AAEvC,4EAA4E;AAC5E,6CAA6C;AAC7C,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,aAAa,GAOd,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,cAAc,GAIf,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,uBAAuB,GA0BxB,MAAM,YAAY,CAAC"}
|
|
@@ -82,6 +82,14 @@ export interface ProximateToolSource {
|
|
|
82
82
|
readonly value: unknown;
|
|
83
83
|
/** The producing loop's tool-calls stage runtimeStageId — resolves to an EARLIER frame. */
|
|
84
84
|
readonly writerId: string | undefined;
|
|
85
|
+
/**
|
|
86
|
+
* The state key this value was materialized from (`'lastToolResult'`). Every
|
|
87
|
+
* OTHER source the walk can hop along carries its key on `ContextSource.key`;
|
|
88
|
+
* this one is not a contextSource, so the key is stamped here rather than
|
|
89
|
+
* hard-coded at the consumer (variable-recall joins on it). WALK-ONLY, like
|
|
90
|
+
* the rest of this record.
|
|
91
|
+
*/
|
|
92
|
+
readonly stateKey: string;
|
|
85
93
|
/** Honesty: the call-llm read `history`, NOT this key — an INFERRED proximate, not a direct read. */
|
|
86
94
|
readonly proximate: true;
|
|
87
95
|
}
|
|
@@ -2,6 +2,8 @@ import { commitValueAt, findLastWriter, parseRuntimeStageId, splitStageId, } fro
|
|
|
2
2
|
import { STAGE_IDS, SUBFLOW_IDS } from '../../conventions.js';
|
|
3
3
|
import { stepOutputText } from './llmEdgeWeigher.js';
|
|
4
4
|
import { CONTEXT_BISECT_DEFAULTS } from './types.js';
|
|
5
|
+
/** The state key the proximate tool result is committed under (agent chart convention). */
|
|
6
|
+
const PROXIMATE_TOOL_KEY = 'lastToolResult';
|
|
5
7
|
/**
|
|
6
8
|
* Partition a commit log by a list of HEAD runtimeStageIds (taken as data — no agent
|
|
7
9
|
* knowledge). Each frame is the half-open range `[head[k], head[k+1])`; commits before
|
|
@@ -139,11 +141,16 @@ function projectFrame(loopIndex, log, lastIdxOf, readsOf, headArrayIdx, bodyIds,
|
|
|
139
141
|
// read `history` (the aggregate), NOT this key — so it's an INFERRED proximate (`proximate: true`).
|
|
140
142
|
let proximateToolSource;
|
|
141
143
|
if (subflowScope === undefined && llmCallArrayIdx !== undefined) {
|
|
142
|
-
const w = findLastWriter(log,
|
|
144
|
+
const w = findLastWriter(log, PROXIMATE_TOOL_KEY, llmCallArrayIdx);
|
|
143
145
|
const wIdx = w !== undefined ? lastIdxOf.get(w.runtimeStageId) : undefined;
|
|
144
|
-
const v = wIdx !== undefined ? commitValueAt(log, wIdx,
|
|
146
|
+
const v = wIdx !== undefined ? commitValueAt(log, wIdx, PROXIMATE_TOOL_KEY) : undefined;
|
|
145
147
|
if (w !== undefined && v !== undefined) {
|
|
146
|
-
proximateToolSource = {
|
|
148
|
+
proximateToolSource = {
|
|
149
|
+
value: v,
|
|
150
|
+
writerId: w.runtimeStageId,
|
|
151
|
+
stateKey: PROXIMATE_TOOL_KEY,
|
|
152
|
+
proximate: true,
|
|
153
|
+
};
|
|
147
154
|
}
|
|
148
155
|
}
|
|
149
156
|
const incompleteSources = llmBundle?.untrackedSources;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trajectory.js","sourceRoot":"","sources":["../../../../src/lib/context-bisect/trajectory.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"trajectory.js","sourceRoot":"","sources":["../../../../src/lib/context-bisect/trajectory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* variable-recall — footprintjs's VARIABLE slices, joined to agent vocabulary.
|
|
3
|
+
*
|
|
4
|
+
* footprintjs answers "what happened to this variable?" in the address space it
|
|
5
|
+
* owns: commit indices, runtimeStageIds, state keys (`keyTimeline` /
|
|
6
|
+
* `forwardSliceForKey`, `footprintjs/trace`). An agent debugger asks the same
|
|
7
|
+
* question in a DIFFERENT vocabulary: which LOOP was that, which injected fact
|
|
8
|
+
* or tool result is that write, and what would REMOVING it cost. This module is
|
|
9
|
+
* the join between the two — and nothing more:
|
|
10
|
+
*
|
|
11
|
+
* - **Pure assembly.** Every fact here was already recorded. No new capture,
|
|
12
|
+
* no new scorer, no embedder, no LLM. `joinVariableSlice` re-labels; it
|
|
13
|
+
* never measures.
|
|
14
|
+
* - **Loop lifting.** Each moment gets the `loopIndex` of the frame that
|
|
15
|
+
* contains its `runtimeStageId` (the walk's own `buildWriterFrameIndex` —
|
|
16
|
+
* one resolver, not two).
|
|
17
|
+
* - **Agent identity.** A WRITE whose value the trajectory carries is run
|
|
18
|
+
* through the SAME `defaultSuspectClassifier` the localizer uses, so a
|
|
19
|
+
* write joins 1:1 with a `Suspect` (`injectionId` / `toolName`) and gets
|
|
20
|
+
* the `AblationSpec` that would remove it. Writers the classifier cannot
|
|
21
|
+
* name get NO hook — an honest absence, never a fabricated one.
|
|
22
|
+
* - **Honesty rides along verbatim.** footprintjs's `HonestyNote`s, the
|
|
23
|
+
* missing-reason, and `readsCoverage` are copied, not re-worded.
|
|
24
|
+
*
|
|
25
|
+
* The one JUDGEMENT this module makes is {@link DataflowCoverage} — see the
|
|
26
|
+
* long comment on `dataflowCoverage()`. It is what lets `walkToRoot` replace a
|
|
27
|
+
* text-similarity guess with a recorded dataflow edge, and it is deliberately
|
|
28
|
+
* strict.
|
|
29
|
+
*
|
|
30
|
+
* @beta Beta feature (RFC-003 Part B). The API works and is tested, but may
|
|
31
|
+
* change before GA.
|
|
32
|
+
*/
|
|
33
|
+
import type { ForwardSlice, HonestyNote, KeyMoment, KeyTimeline, MissingSliceReason, ReadsCoverage, StateKey } from 'footprintjs/trace';
|
|
34
|
+
import { type SuspectClassifier } from './localize.js';
|
|
35
|
+
import { type Trajectory } from './trajectory.js';
|
|
36
|
+
import type { AblationSpec, ContextBugArtifacts, SuspectKind } from './types.js';
|
|
37
|
+
/**
|
|
38
|
+
* How exactly this log records what a key's value FED — the one judgement in
|
|
39
|
+
* this module, and the gate on `walkToRoot`'s deterministic hop.
|
|
40
|
+
*
|
|
41
|
+
* - `'exact'` — every recorded `fed` edge for this key carries per-write
|
|
42
|
+
* provenance (`FedBasis: 'per-write'`, the `writeProvenance: 'reads-prefix'`
|
|
43
|
+
* dial): a downstream write is linked to this value BECAUSE that write's
|
|
44
|
+
* recorded read-prefix names the key, and a write whose prefix omits it is
|
|
45
|
+
* excluded exactly.
|
|
46
|
+
* - `'conservative'` — at least one edge is stage-level co-occurrence
|
|
47
|
+
* (`'conservative-fed-edges'`), or the log carries no recorded reads at all.
|
|
48
|
+
* Sound over-approximation; NEVER presented as exact.
|
|
49
|
+
* - `'unknown'` — no forward slice was supplied, OR the key has no recorded
|
|
50
|
+
* `fed` edge at all. The second case is the trap: with zero edges there is
|
|
51
|
+
* also zero conservative edge, so "no conservative edges" would be VACUOUSLY
|
|
52
|
+
* true and a key nothing ever read would masquerade as the most exact key in
|
|
53
|
+
* the run. It is demoted here instead.
|
|
54
|
+
*/
|
|
55
|
+
export type DataflowCoverage = 'exact' | 'conservative' | 'unknown';
|
|
56
|
+
/**
|
|
57
|
+
* One moment in a key's life ({@link KeyMoment}), lifted into agent vocabulary.
|
|
58
|
+
* The footprintjs fields are carried through UNCHANGED — this type only ADDS.
|
|
59
|
+
*/
|
|
60
|
+
export interface AgentKeyMoment {
|
|
61
|
+
readonly kind: 'write' | 'read';
|
|
62
|
+
/** Commit ARRAY position — the write's own, or the READING stage's. */
|
|
63
|
+
readonly commitIdx: number;
|
|
64
|
+
readonly runtimeStageId: string;
|
|
65
|
+
readonly stageId: string;
|
|
66
|
+
readonly stageName: string;
|
|
67
|
+
/** `'write'` moments only: the trace verb. */
|
|
68
|
+
readonly verb?: KeyMoment['verb'];
|
|
69
|
+
/** `'read'` moments only: the commitIdx of the write whose value it saw. */
|
|
70
|
+
readonly fromWriteIdx?: number;
|
|
71
|
+
/**
|
|
72
|
+
* The ReAct loop this moment happened in. ABSENT when the step is not in any
|
|
73
|
+
* frame (run prelude, root-seeded setup) — absence is information, not a gap.
|
|
74
|
+
*/
|
|
75
|
+
readonly loopIndex?: number;
|
|
76
|
+
/**
|
|
77
|
+
* `'write'` moments the classifier recognized: what KIND of agent source this
|
|
78
|
+
* write produced. When one write produced several sources (an injection slot
|
|
79
|
+
* commits an array of records), this is the FIRST one's kind and
|
|
80
|
+
* {@link AgentVariableSlice.ablations} carries them all.
|
|
81
|
+
*/
|
|
82
|
+
readonly suspectKind?: SuspectKind;
|
|
83
|
+
/** The suspect identity (`injectionId` / `toolName`) — joins a `Suspect` 1:1. */
|
|
84
|
+
readonly suspectId?: string;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* The counterfactual attached to one classifiable WRITE: "to test this write,
|
|
88
|
+
* re-run without this source". A HOOK, not a verdict — running it is the
|
|
89
|
+
* consumer's `AblationRunner` (§B2: only ablation verdicts are causal claims).
|
|
90
|
+
*/
|
|
91
|
+
export interface VariableAblationHook {
|
|
92
|
+
/** runtimeStageId of the write that introduced the source. */
|
|
93
|
+
readonly writerId: string;
|
|
94
|
+
/** `injectionId` / `toolName` — the localizer's suspect identity. */
|
|
95
|
+
readonly suspectId: string;
|
|
96
|
+
readonly kind: SuspectKind;
|
|
97
|
+
/** What to remove for the counterfactual re-run. */
|
|
98
|
+
readonly spec: AblationSpec;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* One variable's recorded life, in agent vocabulary — the artifact BOTH a human
|
|
102
|
+
* board ({@link variableToBacktrackTrace}) and the walk read.
|
|
103
|
+
*
|
|
104
|
+
* JSON-safe by construction (flat moments, no graph, no live references): the
|
|
105
|
+
* same object can be persisted, sent over the wire, or handed to an LLM tool.
|
|
106
|
+
*/
|
|
107
|
+
export interface AgentVariableSlice {
|
|
108
|
+
/** The state key asked about (footprintjs's normalised string form). */
|
|
109
|
+
readonly key: string;
|
|
110
|
+
/** Writes and reads in commit order. EMPTY when `missing`. */
|
|
111
|
+
readonly moments: readonly AgentKeyMoment[];
|
|
112
|
+
/** Present ONLY when there are no moments — footprintjs's honest absence. */
|
|
113
|
+
readonly missing?: MissingSliceReason;
|
|
114
|
+
/** How exactly this log records what the value fed — see {@link DataflowCoverage}. */
|
|
115
|
+
readonly coverage: DataflowCoverage;
|
|
116
|
+
/** One per classifiable write — see {@link VariableAblationHook}. */
|
|
117
|
+
readonly ablations: readonly VariableAblationHook[];
|
|
118
|
+
/** footprintjs's honesty notes, VERBATIM (both doors' notes, de-duplicated). */
|
|
119
|
+
readonly notes: readonly HonestyNote[];
|
|
120
|
+
/** Which `KeysReadSource` strategy resolved reads (honesty/debug). */
|
|
121
|
+
readonly keysReadKind: string;
|
|
122
|
+
/** Reads telemetry — `stepsWithReads === 0` means reads were not recorded. */
|
|
123
|
+
readonly readsCoverage?: ReadsCoverage;
|
|
124
|
+
}
|
|
125
|
+
export interface JoinVariableSliceOptions {
|
|
126
|
+
/**
|
|
127
|
+
* The FORWARD slice of the same key (`forwardSliceForKey`) — the ONLY carrier
|
|
128
|
+
* of per-edge exactness (`ForwardEdge.basis`). Without it `coverage` is
|
|
129
|
+
* `'unknown'` and the walk will not take a dataflow hop.
|
|
130
|
+
*/
|
|
131
|
+
readonly forward?: ForwardSlice;
|
|
132
|
+
/** Override the suspect classifier (default `defaultSuspectClassifier`). */
|
|
133
|
+
readonly classify?: SuspectClassifier;
|
|
134
|
+
}
|
|
135
|
+
export interface TraceVariableOptions extends JoinVariableSliceOptions {
|
|
136
|
+
/** Reuse an already-assembled trajectory (avoids re-slicing the run). */
|
|
137
|
+
readonly trajectory?: Trajectory;
|
|
138
|
+
/** Exclusive commit-array-index bound — the variable as it stood BEFORE this idx. */
|
|
139
|
+
readonly before?: number;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Join a footprintjs variable slice to the agent's loops and sources.
|
|
143
|
+
*
|
|
144
|
+
* @param slice A `keyTimeline(...)` result — the flat, JSON-safe life of one
|
|
145
|
+
* key. (Chosen over the backward `sliceForKey` deliberately: the walk needs
|
|
146
|
+
* moments in commit order, and a timeline cannot be mistaken for a DAG.)
|
|
147
|
+
* @param trajectory `assembleTrajectory(artifacts)` — supplies loop frames AND
|
|
148
|
+
* the committed values used for classification.
|
|
149
|
+
* @param opts `forward` (the exactness carrier) and `classify`.
|
|
150
|
+
*
|
|
151
|
+
* Nothing here is measured: every field is a re-label of something already
|
|
152
|
+
* recorded. See the module doc.
|
|
153
|
+
*/
|
|
154
|
+
export declare function joinVariableSlice(slice: KeyTimeline, trajectory: Trajectory, opts?: JoinVariableSliceOptions): AgentVariableSlice;
|
|
155
|
+
/**
|
|
156
|
+
* One call, from a recorded run to a variable's joined life: `keyTimeline` +
|
|
157
|
+
* `forwardSliceForKey` + `assembleTrajectory` + {@link joinVariableSlice}.
|
|
158
|
+
*
|
|
159
|
+
* Reads come from the snapshot's execution tree (zero setup, `readTracking` ≠
|
|
160
|
+
* `'off'`); exactness comes from the run's `writeProvenance` dial. Both facts
|
|
161
|
+
* ride out on the result (`readsCoverage`, `coverage`) rather than being
|
|
162
|
+
* assumed.
|
|
163
|
+
*
|
|
164
|
+
* @example
|
|
165
|
+
* ```ts
|
|
166
|
+
* const life = traceVariable({ snapshot }, 'systemPromptInjections');
|
|
167
|
+
* life.coverage; // 'exact' | 'conservative' | 'unknown'
|
|
168
|
+
* life.moments.filter((m) => m.kind === 'write').map((m) => m.loopIndex);
|
|
169
|
+
* ```
|
|
170
|
+
*/
|
|
171
|
+
export declare function traceVariable(artifacts: ContextBugArtifacts, key: StateKey, opts?: TraceVariableOptions): AgentVariableSlice;
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variable-recall.js","sourceRoot":"","sources":["../../../../src/lib/context-bisect/variable-recall.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* variableToBacktrackTrace — serialize a JOINED VARIABLE LIFE
|
|
3
|
+
* ({@link AgentVariableSlice}, from `traceVariable` / `joinVariableSlice`) onto
|
|
4
|
+
* the same BacktrackTrace board agentThinkingUI's <BacktrackView> renders.
|
|
5
|
+
*
|
|
6
|
+
* The third sibling of that board, and the most literal one:
|
|
7
|
+
* - `toBacktrackTrace` — a LOCALIZER REPORT (scored suspects, ablation
|
|
8
|
+
* verdicts): proxy ranking, causal stamps.
|
|
9
|
+
* - `sliceToBacktrackTrace` — a footprintjs DEPENDENCY SLICE: exact
|
|
10
|
+
* structure, no influence claims.
|
|
11
|
+
* - THIS ONE — one variable's recorded LIFE: every write and every read, in
|
|
12
|
+
* commit order, labeled with the loop it happened in and the agent source
|
|
13
|
+
* it introduced.
|
|
14
|
+
*
|
|
15
|
+
* Same board, honestly weakest chips:
|
|
16
|
+
* - `mode` is ALWAYS `'correlational'`. Nothing here was ablated — the join
|
|
17
|
+
* measures nothing — so the causal chip is unreachable by construction.
|
|
18
|
+
* - every card is `upperBound: true`: the score is `1/(1+age)` over write
|
|
19
|
+
* recency, a deterministic LAYOUT AID, not evidence of anything.
|
|
20
|
+
* - the claims lines say out loud that these moments are STRUCTURAL FACTS —
|
|
21
|
+
* recorded reads and writes — so a reader can tell this board apart from an
|
|
22
|
+
* influence board at a glance.
|
|
23
|
+
* - footprintjs's honesty notes ride along verbatim, and honest ABSENCE
|
|
24
|
+
* renders an empty board that says why, never a fabricated suspect.
|
|
25
|
+
*
|
|
26
|
+
* Pure mapping, no UI dependency, framework-agnostic JSON on both sides — the
|
|
27
|
+
* human and the LLM triage the SAME artifact.
|
|
28
|
+
*/
|
|
29
|
+
import type { BacktrackTrace } from './toBacktrackTrace.js';
|
|
30
|
+
import type { AgentVariableSlice } from './variable-recall.js';
|
|
31
|
+
export interface VariableToBacktrackTraceOptions {
|
|
32
|
+
/** The visible outcome being questioned (the board's answer bubble). */
|
|
33
|
+
readonly answer: {
|
|
34
|
+
readonly text: string;
|
|
35
|
+
readonly label?: string;
|
|
36
|
+
readonly tone?: 'error' | 'question';
|
|
37
|
+
};
|
|
38
|
+
/** Headline question. Default: `What happened to '<key>'?`. */
|
|
39
|
+
readonly claim?: string;
|
|
40
|
+
/** How the latest writer renders: rule diamond or LLM brain. Default 'rule'. */
|
|
41
|
+
readonly decidedAtKind?: 'llm' | 'rule';
|
|
42
|
+
/** Override the mode chip label. */
|
|
43
|
+
readonly modeLabel?: string;
|
|
44
|
+
readonly agent?: string;
|
|
45
|
+
readonly model?: string;
|
|
46
|
+
/** Max suspect cards (one per write). Default 6. The rest fold into one line. */
|
|
47
|
+
readonly maxSuspects?: number;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Serialize a joined variable life for agentThinkingUI's BacktrackView.
|
|
51
|
+
* See the module doc — structural honesty is the whole design.
|
|
52
|
+
*/
|
|
53
|
+
export declare function variableToBacktrackTrace(agentSlice: AgentVariableSlice, opts: VariableToBacktrackTraceOptions): BacktrackTrace;
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* variableToBacktrackTrace — serialize a JOINED VARIABLE LIFE
|
|
3
|
+
* ({@link AgentVariableSlice}, from `traceVariable` / `joinVariableSlice`) onto
|
|
4
|
+
* the same BacktrackTrace board agentThinkingUI's <BacktrackView> renders.
|
|
5
|
+
*
|
|
6
|
+
* The third sibling of that board, and the most literal one:
|
|
7
|
+
* - `toBacktrackTrace` — a LOCALIZER REPORT (scored suspects, ablation
|
|
8
|
+
* verdicts): proxy ranking, causal stamps.
|
|
9
|
+
* - `sliceToBacktrackTrace` — a footprintjs DEPENDENCY SLICE: exact
|
|
10
|
+
* structure, no influence claims.
|
|
11
|
+
* - THIS ONE — one variable's recorded LIFE: every write and every read, in
|
|
12
|
+
* commit order, labeled with the loop it happened in and the agent source
|
|
13
|
+
* it introduced.
|
|
14
|
+
*
|
|
15
|
+
* Same board, honestly weakest chips:
|
|
16
|
+
* - `mode` is ALWAYS `'correlational'`. Nothing here was ablated — the join
|
|
17
|
+
* measures nothing — so the causal chip is unreachable by construction.
|
|
18
|
+
* - every card is `upperBound: true`: the score is `1/(1+age)` over write
|
|
19
|
+
* recency, a deterministic LAYOUT AID, not evidence of anything.
|
|
20
|
+
* - the claims lines say out loud that these moments are STRUCTURAL FACTS —
|
|
21
|
+
* recorded reads and writes — so a reader can tell this board apart from an
|
|
22
|
+
* influence board at a glance.
|
|
23
|
+
* - footprintjs's honesty notes ride along verbatim, and honest ABSENCE
|
|
24
|
+
* renders an empty board that says why, never a fabricated suspect.
|
|
25
|
+
*
|
|
26
|
+
* Pure mapping, no UI dependency, framework-agnostic JSON on both sides — the
|
|
27
|
+
* human and the LLM triage the SAME artifact.
|
|
28
|
+
*/
|
|
29
|
+
/** The claims-discipline lines every variable board carries. */
|
|
30
|
+
const VARIABLE_CLAIMS_LINES = [
|
|
31
|
+
'every row here is a STRUCTURAL FACT — a recorded read or write from the commit log, not a similarity guess.',
|
|
32
|
+
'scores are write recency (1/(1+age)) — a layout aid, not influence; every card is an upper bound.',
|
|
33
|
+
'only ablation verdicts make causal claims; nothing on this board has been ablated.',
|
|
34
|
+
];
|
|
35
|
+
/** One custody hop per moment — the recorded rewind rail, in commit order. */
|
|
36
|
+
function custodyHop(key, m) {
|
|
37
|
+
const where = m.loopIndex !== undefined ? `loop ${m.loopIndex}` : 'run setup (no loop)';
|
|
38
|
+
const detail = m.kind === 'write'
|
|
39
|
+
? `${m.stageName} wrote '${key}'${m.verb !== undefined ? ` (${m.verb})` : ''} — ${where}` +
|
|
40
|
+
(m.suspectId !== undefined ? ` · introduced ${m.suspectKind} '${m.suspectId}'` : '')
|
|
41
|
+
: `${m.stageName} read '${key}'${m.fromWriteIdx !== undefined
|
|
42
|
+
? ` (the value written at commit ${m.fromWriteIdx})`
|
|
43
|
+
: ' (a value from before the log — initial state / run input / a closure)'} — ${where}`;
|
|
44
|
+
return { step: m.kind, detail, at: m.runtimeStageId, variable: key };
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Serialize a joined variable life for agentThinkingUI's BacktrackView.
|
|
48
|
+
* See the module doc — structural honesty is the whole design.
|
|
49
|
+
*/
|
|
50
|
+
export function variableToBacktrackTrace(agentSlice, opts) {
|
|
51
|
+
const max = opts.maxSuspects ?? 6;
|
|
52
|
+
const key = agentSlice.key;
|
|
53
|
+
const claim = opts.claim ?? `What happened to '${key}'?`;
|
|
54
|
+
const honesty = [];
|
|
55
|
+
if (agentSlice.missing === 'never-written') {
|
|
56
|
+
honesty.push(`⚠ '${key}' was never written in this run — the value came from initial state, frozen run input (args), or a closure; the commit log cannot see those.`);
|
|
57
|
+
}
|
|
58
|
+
else if (agentSlice.missing === 'empty-log') {
|
|
59
|
+
honesty.push('⚠ the commit log is empty — nothing executed.');
|
|
60
|
+
}
|
|
61
|
+
// footprintjs's own notes, VERBATIM (never re-worded, never dropped).
|
|
62
|
+
for (const note of agentSlice.notes)
|
|
63
|
+
honesty.push(`⚠ ${note.detail}`);
|
|
64
|
+
if (agentSlice.readsCoverage &&
|
|
65
|
+
agentSlice.readsCoverage.steps > 1 &&
|
|
66
|
+
agentSlice.readsCoverage.stepsWithReads === 0) {
|
|
67
|
+
honesty.push('⚠ reads were not recorded (readTracking off) — who consumed this value is unknowable, NOT nobody.');
|
|
68
|
+
}
|
|
69
|
+
honesty.push(agentSlice.coverage === 'exact'
|
|
70
|
+
? "this key's dataflow is recorded per-write (writeProvenance: 'reads-prefix') — what it fed is exact, not inferred."
|
|
71
|
+
: agentSlice.coverage === 'conservative'
|
|
72
|
+
? "this key's dataflow is stage-level only — what it fed is a sound over-approximation; turn on writeProvenance: 'reads-prefix' for exact edges."
|
|
73
|
+
: "this key has no recorded dataflow (nothing read it, or no forward slice was supplied) — 'what it fed' is unknown here, not empty.");
|
|
74
|
+
const writes = agentSlice.moments.filter((m) => m.kind === 'write');
|
|
75
|
+
// Honest absence: an empty board whose honesty says why.
|
|
76
|
+
if (writes.length === 0) {
|
|
77
|
+
return {
|
|
78
|
+
claim,
|
|
79
|
+
mode: 'correlational',
|
|
80
|
+
modeLabel: opts.modeLabel ?? 'no recorded writes — see honesty',
|
|
81
|
+
agent: opts.agent,
|
|
82
|
+
model: opts.model,
|
|
83
|
+
answer: opts.answer,
|
|
84
|
+
decidedAt: {
|
|
85
|
+
id: key,
|
|
86
|
+
label: `'${key}' (no recorded writer)`,
|
|
87
|
+
kind: opts.decidedAtKind ?? 'rule',
|
|
88
|
+
},
|
|
89
|
+
suspects: [],
|
|
90
|
+
honesty: [...honesty, ...VARIABLE_CLAIMS_LINES],
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
// Latest write first — the value's current author is the board's decision point.
|
|
94
|
+
const latest = writes[writes.length - 1];
|
|
95
|
+
const ordered = [...writes].reverse();
|
|
96
|
+
const cards = ordered.map((w, age) => {
|
|
97
|
+
const readers = agentSlice.moments.filter((m) => m.kind === 'read' && m.fromWriteIdx === w.commitIdx);
|
|
98
|
+
return {
|
|
99
|
+
kind: w.suspectKind ?? 'stage',
|
|
100
|
+
name: w.suspectId ?? w.stageName,
|
|
101
|
+
score: Number((1 / (1 + age)).toFixed(2)),
|
|
102
|
+
rank: age + 1,
|
|
103
|
+
upperBound: true,
|
|
104
|
+
edge: { key, kind: 'data' },
|
|
105
|
+
bornAt: {
|
|
106
|
+
id: w.runtimeStageId,
|
|
107
|
+
label: w.stageName,
|
|
108
|
+
via: w.loopIndex !== undefined ? `loop ${w.loopIndex} commit` : 'run setup commit',
|
|
109
|
+
},
|
|
110
|
+
custody: [custodyHop(key, w), ...readers.map((r) => custodyHop(key, r))],
|
|
111
|
+
};
|
|
112
|
+
});
|
|
113
|
+
const selected = cards.slice(0, max);
|
|
114
|
+
const dropped = cards.slice(max);
|
|
115
|
+
const folded = dropped.length > 0
|
|
116
|
+
? `${dropped.length} more write${dropped.length === 1 ? '' : 's'} folded — ` +
|
|
117
|
+
dropped.map((c) => `#${c.rank} ${c.bornAt.id}`).join(' · ') +
|
|
118
|
+
' — every id drillable with the trace toolpack'
|
|
119
|
+
: undefined;
|
|
120
|
+
return {
|
|
121
|
+
claim,
|
|
122
|
+
mode: 'correlational',
|
|
123
|
+
modeLabel: opts.modeLabel ?? 'recorded life of a variable — structure, not influence',
|
|
124
|
+
agent: opts.agent,
|
|
125
|
+
model: opts.model,
|
|
126
|
+
answer: opts.answer,
|
|
127
|
+
decidedAt: {
|
|
128
|
+
id: latest.runtimeStageId,
|
|
129
|
+
label: latest.stageName,
|
|
130
|
+
kind: opts.decidedAtKind ?? 'rule',
|
|
131
|
+
},
|
|
132
|
+
suspects: selected,
|
|
133
|
+
trail: {
|
|
134
|
+
title: `'${key}' — every recorded write and read`,
|
|
135
|
+
custody: agentSlice.moments.map((m) => custodyHop(key, m)),
|
|
136
|
+
claim: 'commit-log facts in order; no influence was measured.',
|
|
137
|
+
},
|
|
138
|
+
folded,
|
|
139
|
+
honesty: [...honesty, ...VARIABLE_CLAIMS_LINES],
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=variableToBacktrackTrace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variableToBacktrackTrace.js","sourceRoot":"","sources":["../../../../src/lib/context-bisect/variableToBacktrackTrace.ts"],"names":[],"mappings":"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"}
|