agentfootprint
Version:
The explainable agent framework — backtrack a wrong answer to the exact context that caused it (evidence, not guesses). Built on footprintjs.
218 lines • 25.7 kB
JavaScript
;
/**
* debug — diagnosis tools for a BROKEN run.
*
* Where `agentfootprint/observe` watches a HEALTHY run (recorders), this
* subpath is the autopsy kit for a wrong answer. Split out of `observe` in
* the surface cleanup — same code, dedicated home, so the import path now
* matches the Debug docs category. The honesty discipline is unchanged:
* scores/weights are embedding-geometry PROXIES; ablation verdicts are the
* ONLY causal claims; slice completeness is bounded by tracking — and says so.
*
* Four libraries:
* • influence-core — embedding-based scoring (proxy, never causal)
* • trace-toolpack — traceToolpack + traceDebugAgent + `.selfExplain()`
* • context-bisect — localizeContextBug + ablation/restoration probes
* • tool-lint — build-time tool-catalog confusability lint
*
* For backward compatibility these are ALSO re-exported (deprecated) from
* `agentfootprint/observe` for one transition version.
*
* Not an import path of its own since 9.0.0. This is the implementation barrel
* behind `agentfootprint/observe`, which re-exports every name here — same
* symbols, one door. Import from the door.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.applyAblations = exports.ablationForSuspect = exports.traceDebugAgent = exports.SelfExplainBinding = exports.SELF_EXPLAIN_MAX_EVENTS = exports.buildSelfExplainToolProvider = exports.buildSelfExplainSkill = exports.mergeInnerRuns = exports.innerRunsOf = exports.innerRunStore = exports.INNER_RUN_RECORDS = exports.DEFAULT_INNER_RUN_LIMIT = exports.openRecording = exports.readStoredCauseArtifacts = exports.traceCauseTools = exports.traceToolpack = exports.TRACE_TOOL_NAMES = exports.TOOLPACK_HARD_CAPS = exports.NO_COMPLETED_RUN_MESSAGE = exports.lazyTraceToolpack = exports.callTraceTool = exports.structuralProximity = exports.snippetUnits = exports.semanticAlignmentStrategy = exports.scoreMargin = exports.scoreLexicalInfluence = exports.scoreInfluence = exports.scoreContrastiveInfluence = exports.ratioStrategy = exports.rankingConfidence = exports.persistence = exports.pairwiseSimilarity = exports.marginStrategy = exports.listInfluenceStrategies = exports.lexicalOverlapStrategy = exports.explainChoice = exports.attributeChoice = exports.finalAnswerSimilarity = exports.embeddingCache = exports.EmbeddingCache = exports.DEFAULT_SHORTLIST_BAND = exports.DEFAULT_PERSISTENCE_THRESHOLD = exports.DEFAULT_MARGIN_THRESHOLD = exports.DEFAULT_INFLUENCE_WEIGHTS = exports.DEFAULT_CLEAR_WINNER_RATIO = exports.DEFAULT_CLEAR_WINNER_MARGIN = exports.contentHash = exports.compositeScore = exports.averageRelevancy = exports.adaptWeights = void 0;
exports.catalogFromTools = exports.analyzeToolCatalog = exports.variableToBacktrackTrace = exports.toBacktrackTrace = exports.sliceToBacktrackTrace = exports.verdictForArm = exports.validateStrategyArms = exports.scoreArmRuns = exports.RUN_CONFIGURED_EVENT = exports.nullBandFrom = exports.matchArm = exports.manifestFromEvents = exports.declaredFacetCount = exports.compareStrategyArms = exports.collectArmRuns = exports.checkArmApplied = exports.checkArmApplication = exports.armLabel = exports.armFacetsFromManifest = exports.armConfigKey = exports.applyArm = exports.verdictFor = exports.suspectLabel = exports.stepOutputText = exports.runRestorationProbe = exports.runAblationProbe = exports.rerunWithoutSources = exports.removableSources = exports.probeFlipped = exports.localizeContextBug = exports.llmEdgeWeigher = exports.llmCallIdsFromEvents = exports.formatContextBugReport = exports.findDroppedContext = exports.defaultSuspectClassifier = exports.defaultOutcomeComparator = exports.CONTEXT_BISECT_DEFAULTS = exports.findLoopHeads = exports.classifySuspect = exports.DEFAULT_RECENCY_DECAY = exports.traceVariable = exports.joinVariableSlice = exports.buildWriterFrameIndex = exports.walkTrajectory = exports.walkToRoot = exports.shortlistEarlyCulprits = exports.bucketByAnchors = exports.bisectCulprits = exports.assignCostVerdicts = exports.assembleTrajectory = void 0;
exports.recordedChat = exports.runCheckSemanticsCli = exports.formatSemanticsReport = exports.coerceSemanticsCatalog = exports.checkSemantics = exports.saysWhatNotWhenRule = exports.runToolLintCli = exports.optionalParamRule = exports.MOCK_EMBEDDER_CALIBRATION = exports.formatToolCatalogReport = exports.enumInProseRule = exports.differentiationHint = exports.descriptionRule = exports.defaultStructuralRules = exports.DEFAULT_WHEN_CUES = exports.DEFAULT_WATCH_BAND = exports.DEFAULT_OMISSION_CUES = exports.DEFAULT_CONFUSABILITY_THRESHOLD = exports.confusabilityText = exports.coerceCatalog = void 0;
// influence-core — the ONE embedding-based scoring engine (RFC-002/003
// block D6). Not a recorder: pure, embedder-injected scoring functions
// + the shared bounded embedding cache. Honest claim: every score is an
// embedding-geometry PROXY — semantic alignment, never model internals,
// never causal attribution.
var index_js_1 = require("./influence-core/index.js");
Object.defineProperty(exports, "adaptWeights", { enumerable: true, get: function () { return index_js_1.adaptWeights; } });
Object.defineProperty(exports, "averageRelevancy", { enumerable: true, get: function () { return index_js_1.averageRelevancy; } });
Object.defineProperty(exports, "compositeScore", { enumerable: true, get: function () { return index_js_1.compositeScore; } });
Object.defineProperty(exports, "contentHash", { enumerable: true, get: function () { return index_js_1.contentHash; } });
Object.defineProperty(exports, "DEFAULT_CLEAR_WINNER_MARGIN", { enumerable: true, get: function () { return index_js_1.DEFAULT_CLEAR_WINNER_MARGIN; } });
Object.defineProperty(exports, "DEFAULT_CLEAR_WINNER_RATIO", { enumerable: true, get: function () { return index_js_1.DEFAULT_CLEAR_WINNER_RATIO; } });
Object.defineProperty(exports, "DEFAULT_INFLUENCE_WEIGHTS", { enumerable: true, get: function () { return index_js_1.DEFAULT_INFLUENCE_WEIGHTS; } });
Object.defineProperty(exports, "DEFAULT_MARGIN_THRESHOLD", { enumerable: true, get: function () { return index_js_1.DEFAULT_MARGIN_THRESHOLD; } });
Object.defineProperty(exports, "DEFAULT_PERSISTENCE_THRESHOLD", { enumerable: true, get: function () { return index_js_1.DEFAULT_PERSISTENCE_THRESHOLD; } });
Object.defineProperty(exports, "DEFAULT_SHORTLIST_BAND", { enumerable: true, get: function () { return index_js_1.DEFAULT_SHORTLIST_BAND; } });
Object.defineProperty(exports, "EmbeddingCache", { enumerable: true, get: function () { return index_js_1.EmbeddingCache; } });
Object.defineProperty(exports, "embeddingCache", { enumerable: true, get: function () { return index_js_1.embeddingCache; } });
Object.defineProperty(exports, "finalAnswerSimilarity", { enumerable: true, get: function () { return index_js_1.finalAnswerSimilarity; } });
Object.defineProperty(exports, "attributeChoice", { enumerable: true, get: function () { return index_js_1.attributeChoice; } });
Object.defineProperty(exports, "explainChoice", { enumerable: true, get: function () { return index_js_1.explainChoice; } });
Object.defineProperty(exports, "lexicalOverlapStrategy", { enumerable: true, get: function () { return index_js_1.lexicalOverlapStrategy; } });
Object.defineProperty(exports, "listInfluenceStrategies", { enumerable: true, get: function () { return index_js_1.listInfluenceStrategies; } });
Object.defineProperty(exports, "marginStrategy", { enumerable: true, get: function () { return index_js_1.marginStrategy; } });
Object.defineProperty(exports, "pairwiseSimilarity", { enumerable: true, get: function () { return index_js_1.pairwiseSimilarity; } });
Object.defineProperty(exports, "persistence", { enumerable: true, get: function () { return index_js_1.persistence; } });
Object.defineProperty(exports, "rankingConfidence", { enumerable: true, get: function () { return index_js_1.rankingConfidence; } });
Object.defineProperty(exports, "ratioStrategy", { enumerable: true, get: function () { return index_js_1.ratioStrategy; } });
Object.defineProperty(exports, "scoreContrastiveInfluence", { enumerable: true, get: function () { return index_js_1.scoreContrastiveInfluence; } });
Object.defineProperty(exports, "scoreInfluence", { enumerable: true, get: function () { return index_js_1.scoreInfluence; } });
Object.defineProperty(exports, "scoreLexicalInfluence", { enumerable: true, get: function () { return index_js_1.scoreLexicalInfluence; } });
Object.defineProperty(exports, "scoreMargin", { enumerable: true, get: function () { return index_js_1.scoreMargin; } });
Object.defineProperty(exports, "semanticAlignmentStrategy", { enumerable: true, get: function () { return index_js_1.semanticAlignmentStrategy; } });
Object.defineProperty(exports, "snippetUnits", { enumerable: true, get: function () { return index_js_1.snippetUnits; } });
Object.defineProperty(exports, "structuralProximity", { enumerable: true, get: function () { return index_js_1.structuralProximity; } });
// Introspection toolpack (RFC-003 Part C) — footprintjs trace evidence
// exposed as TOOLS a debugging LLM calls over a COMPLETED run's artifacts.
// Bounded, honest (⚠ markers), redaction-respecting, id-navigable.
var index_js_2 = require("./trace-toolpack/index.js");
Object.defineProperty(exports, "callTraceTool", { enumerable: true, get: function () { return index_js_2.callTraceTool; } });
Object.defineProperty(exports, "lazyTraceToolpack", { enumerable: true, get: function () { return index_js_2.lazyTraceToolpack; } });
Object.defineProperty(exports, "NO_COMPLETED_RUN_MESSAGE", { enumerable: true, get: function () { return index_js_2.NO_COMPLETED_RUN_MESSAGE; } });
Object.defineProperty(exports, "TOOLPACK_HARD_CAPS", { enumerable: true, get: function () { return index_js_2.TOOLPACK_HARD_CAPS; } });
Object.defineProperty(exports, "TRACE_TOOL_NAMES", { enumerable: true, get: function () { return index_js_2.TRACE_TOOL_NAMES; } });
Object.defineProperty(exports, "traceToolpack", { enumerable: true, get: function () { return index_js_2.traceToolpack; } });
Object.defineProperty(exports, "traceCauseTools", { enumerable: true, get: function () { return index_js_2.traceCauseTools; } });
Object.defineProperty(exports, "readStoredCauseArtifacts", { enumerable: true, get: function () { return index_js_2.readStoredCauseArtifacts; } });
// `openRecording` — a saved run (`recordRun(...).toRecording()`, live or
// parsed back from JSON) reopened as toolpack artifacts. The one adapter
// between the recording shape the viewers read and the artifact bag the
// trace tools read; pure, and honest about the two things a serialized
// run cannot carry back (control edges, and a narrative nobody recorded).
var index_js_3 = require("./trace-toolpack/index.js");
Object.defineProperty(exports, "openRecording", { enumerable: true, get: function () { return index_js_3.openRecording; } });
// The record a TOOL keeps of its OWN run — `flowchartAsTool({ keepRecord:
// true })` files one per invocation under the outer `toolCallId`, and
// `inspect_tool_run` opens it. The Agent builder collects the stores at
// `.build()`, so these are for consumers assembling artifacts by hand.
var index_js_4 = require("./trace-toolpack/index.js");
Object.defineProperty(exports, "DEFAULT_INNER_RUN_LIMIT", { enumerable: true, get: function () { return index_js_4.DEFAULT_INNER_RUN_LIMIT; } });
Object.defineProperty(exports, "INNER_RUN_RECORDS", { enumerable: true, get: function () { return index_js_4.INNER_RUN_RECORDS; } });
Object.defineProperty(exports, "innerRunStore", { enumerable: true, get: function () { return index_js_4.innerRunStore; } });
Object.defineProperty(exports, "innerRunsOf", { enumerable: true, get: function () { return index_js_4.innerRunsOf; } });
Object.defineProperty(exports, "mergeInnerRuns", { enumerable: true, get: function () { return index_js_4.mergeInnerRuns; } });
// The two conversational doors over the toolpack: a DEDICATED debugger
// agent (separate session, any provider — cheap models welcome), and the
// in-conversation `.selfExplain()` builder option's types. Same evidence,
// same honesty discipline as the UI doors (BacktrackView / Lens).
var index_js_5 = require("./trace-toolpack/index.js");
Object.defineProperty(exports, "buildSelfExplainSkill", { enumerable: true, get: function () { return index_js_5.buildSelfExplainSkill; } });
Object.defineProperty(exports, "buildSelfExplainToolProvider", { enumerable: true, get: function () { return index_js_5.buildSelfExplainToolProvider; } });
Object.defineProperty(exports, "SELF_EXPLAIN_MAX_EVENTS", { enumerable: true, get: function () { return index_js_5.SELF_EXPLAIN_MAX_EVENTS; } });
Object.defineProperty(exports, "SelfExplainBinding", { enumerable: true, get: function () { return index_js_5.SelfExplainBinding; } });
Object.defineProperty(exports, "traceDebugAgent", { enumerable: true, get: function () { return index_js_5.traceDebugAgent; } });
// Contextual-bug localizer (RFC-003 Part B, D7–D9) — "git bisect for
// context". Assembly: footprintjs causal DAG (control edges + honesty
// markers + EdgeWeigher) × influence-core scoring (D6) × consumer-run
// counterfactual ablation. §B2 claim tiers: scores/weights are
// embedding-geometry PROXIES; ablation verdicts are the ONLY causal
// claims; slice completeness is bounded by tracking — and says so.
var index_js_6 = require("./context-bisect/index.js");
Object.defineProperty(exports, "ablationForSuspect", { enumerable: true, get: function () { return index_js_6.ablationForSuspect; } });
Object.defineProperty(exports, "applyAblations", { enumerable: true, get: function () { return index_js_6.applyAblations; } });
Object.defineProperty(exports, "assembleTrajectory", { enumerable: true, get: function () { return index_js_6.assembleTrajectory; } });
Object.defineProperty(exports, "assignCostVerdicts", { enumerable: true, get: function () { return index_js_6.assignCostVerdicts; } });
Object.defineProperty(exports, "bisectCulprits", { enumerable: true, get: function () { return index_js_6.bisectCulprits; } });
Object.defineProperty(exports, "bucketByAnchors", { enumerable: true, get: function () { return index_js_6.bucketByAnchors; } });
Object.defineProperty(exports, "shortlistEarlyCulprits", { enumerable: true, get: function () { return index_js_6.shortlistEarlyCulprits; } });
Object.defineProperty(exports, "walkToRoot", { enumerable: true, get: function () { return index_js_6.walkToRoot; } });
Object.defineProperty(exports, "walkTrajectory", { enumerable: true, get: function () { return index_js_6.walkTrajectory; } });
Object.defineProperty(exports, "buildWriterFrameIndex", { enumerable: true, get: function () { return index_js_6.buildWriterFrameIndex; } });
Object.defineProperty(exports, "joinVariableSlice", { enumerable: true, get: function () { return index_js_6.joinVariableSlice; } });
Object.defineProperty(exports, "traceVariable", { enumerable: true, get: function () { return index_js_6.traceVariable; } });
Object.defineProperty(exports, "DEFAULT_RECENCY_DECAY", { enumerable: true, get: function () { return index_js_6.DEFAULT_RECENCY_DECAY; } });
Object.defineProperty(exports, "classifySuspect", { enumerable: true, get: function () { return index_js_6.classifySuspect; } });
Object.defineProperty(exports, "findLoopHeads", { enumerable: true, get: function () { return index_js_6.findLoopHeads; } });
Object.defineProperty(exports, "CONTEXT_BISECT_DEFAULTS", { enumerable: true, get: function () { return index_js_6.CONTEXT_BISECT_DEFAULTS; } });
Object.defineProperty(exports, "defaultOutcomeComparator", { enumerable: true, get: function () { return index_js_6.defaultOutcomeComparator; } });
Object.defineProperty(exports, "defaultSuspectClassifier", { enumerable: true, get: function () { return index_js_6.defaultSuspectClassifier; } });
Object.defineProperty(exports, "findDroppedContext", { enumerable: true, get: function () { return index_js_6.findDroppedContext; } });
Object.defineProperty(exports, "formatContextBugReport", { enumerable: true, get: function () { return index_js_6.formatContextBugReport; } });
Object.defineProperty(exports, "llmCallIdsFromEvents", { enumerable: true, get: function () { return index_js_6.llmCallIdsFromEvents; } });
Object.defineProperty(exports, "llmEdgeWeigher", { enumerable: true, get: function () { return index_js_6.llmEdgeWeigher; } });
Object.defineProperty(exports, "localizeContextBug", { enumerable: true, get: function () { return index_js_6.localizeContextBug; } });
Object.defineProperty(exports, "probeFlipped", { enumerable: true, get: function () { return index_js_6.probeFlipped; } });
Object.defineProperty(exports, "removableSources", { enumerable: true, get: function () { return index_js_6.removableSources; } });
Object.defineProperty(exports, "rerunWithoutSources", { enumerable: true, get: function () { return index_js_6.rerunWithoutSources; } });
Object.defineProperty(exports, "runAblationProbe", { enumerable: true, get: function () { return index_js_6.runAblationProbe; } });
Object.defineProperty(exports, "runRestorationProbe", { enumerable: true, get: function () { return index_js_6.runRestorationProbe; } });
Object.defineProperty(exports, "stepOutputText", { enumerable: true, get: function () { return index_js_6.stepOutputText; } });
Object.defineProperty(exports, "suspectLabel", { enumerable: true, get: function () { return index_js_6.suspectLabel; } });
Object.defineProperty(exports, "verdictFor", { enumerable: true, get: function () { return index_js_6.verdictFor; } });
// Strategy arms — the SUBSTITUTION half of the counterfactual engine
// ("scorer A vs scorer B", "topK vs a re-ranker"). Deliberately a SIBLING of
// `AblationSpec` rather than a fifth arm on it: ablation removes, an arm
// replaces, and the union feeds a subset search substitutions do not compose
// under. Wired to 9.41.0's run manifest, so a run says which arm it belonged to
// instead of the experimenter asserting it. See context-bisect/arms/README.md.
var index_js_7 = require("./context-bisect/index.js");
Object.defineProperty(exports, "applyArm", { enumerable: true, get: function () { return index_js_7.applyArm; } });
Object.defineProperty(exports, "armConfigKey", { enumerable: true, get: function () { return index_js_7.armConfigKey; } });
Object.defineProperty(exports, "armFacetsFromManifest", { enumerable: true, get: function () { return index_js_7.armFacetsFromManifest; } });
Object.defineProperty(exports, "armLabel", { enumerable: true, get: function () { return index_js_7.armLabel; } });
Object.defineProperty(exports, "checkArmApplication", { enumerable: true, get: function () { return index_js_7.checkArmApplication; } });
Object.defineProperty(exports, "checkArmApplied", { enumerable: true, get: function () { return index_js_7.checkArmApplied; } });
Object.defineProperty(exports, "collectArmRuns", { enumerable: true, get: function () { return index_js_7.collectArmRuns; } });
Object.defineProperty(exports, "compareStrategyArms", { enumerable: true, get: function () { return index_js_7.compareStrategyArms; } });
Object.defineProperty(exports, "declaredFacetCount", { enumerable: true, get: function () { return index_js_7.declaredFacetCount; } });
Object.defineProperty(exports, "manifestFromEvents", { enumerable: true, get: function () { return index_js_7.manifestFromEvents; } });
Object.defineProperty(exports, "matchArm", { enumerable: true, get: function () { return index_js_7.matchArm; } });
Object.defineProperty(exports, "nullBandFrom", { enumerable: true, get: function () { return index_js_7.nullBandFrom; } });
Object.defineProperty(exports, "RUN_CONFIGURED_EVENT", { enumerable: true, get: function () { return index_js_7.RUN_CONFIGURED_EVENT; } });
Object.defineProperty(exports, "scoreArmRuns", { enumerable: true, get: function () { return index_js_7.scoreArmRuns; } });
Object.defineProperty(exports, "validateStrategyArms", { enumerable: true, get: function () { return index_js_7.validateStrategyArms; } });
Object.defineProperty(exports, "verdictForArm", { enumerable: true, get: function () { return index_js_7.verdictForArm; } });
// BacktrackTrace serializer — feeds agentThinkingUI's <BacktrackView>
// (the "why?" board) straight off a localizer report. Pure mapping, no
// UI dependency; the interfaces mirror agentthinkingui's contract.
var index_js_8 = require("./context-bisect/index.js");
Object.defineProperty(exports, "sliceToBacktrackTrace", { enumerable: true, get: function () { return index_js_8.sliceToBacktrackTrace; } });
Object.defineProperty(exports, "toBacktrackTrace", { enumerable: true, get: function () { return index_js_8.toBacktrackTrace; } });
Object.defineProperty(exports, "variableToBacktrackTrace", { enumerable: true, get: function () { return index_js_8.variableToBacktrackTrace; } });
// Tool-catalog confusability lint (RFC-002 tier 1, C1–C3) — build-time,
// CI-gateable, framework-agnostic: plain { name, description?, inputSchema? }
// tools in (OpenAI/Anthropic/MCP lists coerce via coerceCatalog; the
// library's Tool[] via catalogFromTools), a report with a gateable `ok`
// out. Pluggable structural rule pack; thresholds + embedder consumer-
// injected with our defaults. Bin: `agentfootprint-lint-tools`.
// Front door: https://agentfootprint.dev/docs/debug/tool-catalog-lint/
var index_js_9 = require("./tool-lint/index.js");
Object.defineProperty(exports, "analyzeToolCatalog", { enumerable: true, get: function () { return index_js_9.analyzeToolCatalog; } });
Object.defineProperty(exports, "catalogFromTools", { enumerable: true, get: function () { return index_js_9.catalogFromTools; } });
Object.defineProperty(exports, "coerceCatalog", { enumerable: true, get: function () { return index_js_9.coerceCatalog; } });
Object.defineProperty(exports, "confusabilityText", { enumerable: true, get: function () { return index_js_9.confusabilityText; } });
Object.defineProperty(exports, "DEFAULT_CONFUSABILITY_THRESHOLD", { enumerable: true, get: function () { return index_js_9.DEFAULT_CONFUSABILITY_THRESHOLD; } });
Object.defineProperty(exports, "DEFAULT_OMISSION_CUES", { enumerable: true, get: function () { return index_js_9.DEFAULT_OMISSION_CUES; } });
Object.defineProperty(exports, "DEFAULT_WATCH_BAND", { enumerable: true, get: function () { return index_js_9.DEFAULT_WATCH_BAND; } });
Object.defineProperty(exports, "DEFAULT_WHEN_CUES", { enumerable: true, get: function () { return index_js_9.DEFAULT_WHEN_CUES; } });
Object.defineProperty(exports, "defaultStructuralRules", { enumerable: true, get: function () { return index_js_9.defaultStructuralRules; } });
Object.defineProperty(exports, "descriptionRule", { enumerable: true, get: function () { return index_js_9.descriptionRule; } });
Object.defineProperty(exports, "differentiationHint", { enumerable: true, get: function () { return index_js_9.differentiationHint; } });
Object.defineProperty(exports, "enumInProseRule", { enumerable: true, get: function () { return index_js_9.enumInProseRule; } });
Object.defineProperty(exports, "formatToolCatalogReport", { enumerable: true, get: function () { return index_js_9.formatToolCatalogReport; } });
Object.defineProperty(exports, "MOCK_EMBEDDER_CALIBRATION", { enumerable: true, get: function () { return index_js_9.MOCK_EMBEDDER_CALIBRATION; } });
Object.defineProperty(exports, "optionalParamRule", { enumerable: true, get: function () { return index_js_9.optionalParamRule; } });
Object.defineProperty(exports, "runToolLintCli", { enumerable: true, get: function () { return index_js_9.runToolLintCli; } });
Object.defineProperty(exports, "saysWhatNotWhenRule", { enumerable: true, get: function () { return index_js_9.saysWhatNotWhenRule; } });
// check:semantics (9.53.0) — the tool-lint pattern applied to RESULT shapes:
// judge sample results (your mock tools' returns, dumped to JSON) against
// the semantic-envelope vocabulary and the per-class rules declared on
// defineTool({ resultClass }). A triage tool whose sample declares no
// coverage fails the build NAMING the tool and the field. The authoring
// half (describedResult(), readSemantics, the types) ships on the main barrel.
// The overclaim rules — a refusal or an absence never asserts more than was
// read — warn by default; `strict` or `rules: ['overclaim']` make them errors.
var index_js_10 = require("./semantics/index.js");
Object.defineProperty(exports, "checkSemantics", { enumerable: true, get: function () { return index_js_10.checkSemantics; } });
Object.defineProperty(exports, "coerceSemanticsCatalog", { enumerable: true, get: function () { return index_js_10.coerceSemanticsCatalog; } });
Object.defineProperty(exports, "formatSemanticsReport", { enumerable: true, get: function () { return index_js_10.formatSemanticsReport; } });
Object.defineProperty(exports, "runCheckSemanticsCli", { enumerable: true, get: function () { return index_js_10.runCheckSemanticsCli; } });
// recorded-chat — the session-scoped turn recorder. Wraps a consumer agent
// factory into a recorded conversation: send() freezes each turn's evidence,
// reason(k)/rerunTurn(k)/fork(k) are the per-turn transparency loop. Absorbs
// the three glue traps (per-turn artifact freezing, byte-exact history
// threading, same-factory runner derivation) while COMPOSING with the loop
// above (localizeContextBug + rerunWithoutSources returned UNMODIFIED), never
// duplicating it. Branch, never rewrite.
var index_js_11 = require("./recorded-chat/index.js");
Object.defineProperty(exports, "recordedChat", { enumerable: true, get: function () { return index_js_11.recordedChat; } });
//# sourceMappingURL=debug.js.map