UNPKG

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
"use strict"; /** * 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