UNPKG

agentfootprint

Version:

The explainable agent framework — backtrack a wrong answer to the exact context that caused it (evidence, not guesses). Built on footprintjs.

760 lines • 76.4 kB
"use strict";
/*
 * agentfootprint — public barrel.
 *
 * Pattern: Facade (GoF) over the typed sublayers.
 * Role:    Single entry point consumers import from.
 * Emits:   N/A.
 *
 * A plain block comment, not TSDoc: nothing separates it from the first
 * export below, and TypeDoc would otherwise attach this text to the
 * re-exported footprintjs types as their documentation.
 */
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    var desc = Object.getOwnPropertyDescriptor(m, k);
    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
      desc = { enumerable: true, get: function() { return m[k]; } };
    }
    Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.StaleDecisionError = exports.DecisionRequiredError = exports.pauseDemandsDecision = exports.isAskPause = exports.isCheckInPause = exports.isPaused = exports.isPauseRequest = exports.isInputPause = exports.requestInput = exports.askHuman = exports.pauseHere = exports.makeRunId = exports.RunnerBase = exports.BASELINE_SOURCES = exports.ENGINEERED_SOURCES = exports.isBaselineSource = exports.isEngineeredSource = exports.contextEngineering = exports.COMPOSITION_KEYS = exports.UNGAPPED_FIELDS = exports.SERVED_GAPS = exports.TRANSFORM_HASH_PREFIX = exports.RECEIPT_BOUNDARY = exports.transformHashOf = exports.servedViews = exports.servedAt = exports.receiptHash = exports.receiptAt = exports.toolDigestInput = exports.messageDigestInput = exports.keyedFold = exports.epochLocations = exports.epochAt = exports.milestoneStopsStrategy = exports.milestoneStops = exports.milestoneOf = exports.isReservedSubflowSegment = exports.RESERVED_SUBFLOW_PREFIX = exports.milestoneFromTags = exports.milestoneTagsFor = exports.milestoneTags = exports.milestoneTag = exports.MILESTONE_LABEL_TAG_PREFIX = exports.MILESTONE_TAG_PREFIX = exports.MILESTONE_KINDS = exports.milestoneFor = exports.stageRole = exports.isInjectionKey = exports.injectionKeyForSlot = exports.INJECTION_KEYS = void 0;
exports.COLUMN_TYPES = exports.readRowset = exports.COLUMN_TYPE_CEILING = exports.EMPTY_LOOKUP_CEILING = exports.isTruncatedToolResult = exports.LIBRARY_NOTE_OPENING = exports.LIBRARY_AUTHORED_PREFIXES = exports.isSaidByPerson = exports.isLibraryAuthoredFrame = exports.tokenBudget = exports.summarizeOldest = exports.slidingWindow = exports.isDropNotice = exports.isCompactedSummary = exports.foldedSpanFor = exports.foldedMessages = exports.DROP_NOTICE_PREFIX = exports.COMPACTED_FRAME_PREFIX = exports.CompactionUnmeasurableError = exports.AgentBuilder = exports.Agent = exports.buildAgentMessageApiChart = exports.LLMCallBuilder = exports.LLMCall = exports.selectCommentaryKey = exports.renderCommentary = exports.extractCommentaryVars = exports.extractAgentName = exports.defaultCommentaryTemplates = exports.CheckInRecorder = exports.inMemoryDecisionLedger = exports.minimalEvidenceAssembler = exports.standardEvidenceAssembler = exports.lexicalDriverScorer = exports.isCheckInDecision = exports.checkInDeclined = exports.checkInApproved = exports.ACT_KEYS = exports.actKeyFor = exports.LOOP_MOMENTS = exports.MessageDeniedError = exports.deny = exports.ask = exports.allow = exports.InvalidAskComponentError = exports.assertAskComponent = exports.readAskComponent = exports.InputRequestError = exports.PauseAnswerRequiredError = exports.ResumeDecisionError = void 0;
exports.defineTool = exports.ArtifactDetailError = exports.artifactDetailTool = exports.verdictRowsOf = exports.VERDICT_RENDER_NOTE = exports.RunbookAbsenceSignal = exports.runbookAsTool = exports.renderVerdictTable = exports.recordingDispatch = exports.projectWalk = exports.probeDispatch = exports.PANEL_RENDER_NOTE = exports.DEFAULT_WALK_CAP = exports.DEFAULT_RECORDING_MAX_BYTES = exports.DEFAULT_MAX_ROWS = exports.DECLINED_VERDICT = exports.absenceSignalOf = exports.flowchartAsTool = exports.ResumeRequestConflictError = exports.ParentRunRefusedError = exports.MemberIdentityError = exports.RunInFlightError = exports.ResumeRedactionError = exports.ResumeIdentityConflictError = exports.PendingQuestionError = exports.NoConversationError = exports.SessionExpiredError = exports.sandboxPath = exports.CodeSandboxError = exports.isContextWindowExceeded = exports.ERR_CONTEXT_WINDOW_EXCEEDED = exports.ContextWindowExceededError = exports.DEFAULT_SESSION_STORAGE_KEY = exports.browserSessionId = exports.RunCheckpointError = exports.ConversationMismatchError = exports.canResume = exports.UnsupportedValuesError = exports.EVIDENCE_CHECK_FRAME_PREFIX = exports.isSchemaCheckMessage = exports.SCHEMA_TOOL_NAME = exports.SCHEMA_CHECK_FRAME_PREFIX = exports.InvalidRunInputError = exports.TOOL_CHOICE_QUESTION = exports.ALWAYS_SERVED_TOOLS = exports.RESERVED_ARGUMENT = exports.applyOutputSchema = exports.OutputSchemaError = exports.PRIOR_TURN_EVIDENCE_CEILING = exports.assertResultColumns = void 0;
exports.codeRunsOf = exports.codeShape = exports.codeRunnerTool = exports.TOOL_TEARDOWN_TIMEOUT_MS = exports.LocalSessionHandleLostError = exports.ToolTeardownTimeoutError = exports.hashSessionKey = exports.toolSessionKey = exports.semanticsForModel = exports.SEMANTICS_NOTE = exports.SEMANTICS_MARKER = exports.RESULT_CLASSES = exports.readSemantics = exports.isCounterLookingAggregation = exports.explainSemantics = exports.describedResult = exports.COUNTER_AGGREGATION_WORDS = exports.composeNotCovered = exports.IN_PROGRESS_WIRE = exports.IN_PROGRESS_SECTION_LABEL = exports.IN_PROGRESS_CLAUSE = exports.periodVerdict = exports.PERIOD_WIRE = exports.isComposedCoverage = exports.readCoverageResult = exports.readCoverageLedger = exports.readAbsence = exports.COVERAGE_NOTE = exports.COVERAGE_MARKER = exports.COVERAGE_BLOCK_HEADING = exports.coverage = exports.absent = exports.ABSENCE_NOTE = exports.ABSENCE_MARKER = exports.TOOL_RESULT_STATUSES = exports.readToolResultEnvelope = exports.explainStatusOnlyNearMiss = exports.warnIfInvalidToolName = exports.assertValidToolName = exports.HOST_FILLED_PLACEHOLDER = exports.HostFilledValueMissingError = exports.HostFilledArgumentError = exports.fromIdentity = exports.fromCredential = exports.hostFilled = exports.assertGates = exports.assertComposedOf = exports.assertResultKind = exports.assertResultClass = exports.assertResultCeiling = void 0;
exports.Sequence = exports.PRESENT_TOOL_NAME = exports.placedResultKind = exports.isPlacedToolResult = exports.assertToolWants = exports.runArtifactStoreConformance = exports.runArtifactStoreCase = exports.formatArtifactStoreReport = exports.artifactStoreConformance = exports.canStreamArtifacts = exports.canPutArtifactStream = exports.canGetArtifactStream = exports.elicitationOf = exports.answerFromElicitation = exports.defaultTimeAskMessages = exports.englishTimeReader = exports.TIME_AXIS_UNITS = exports.TIME_AXIS_AGGREGATES = exports.timeAxisIssues = exports.readTimeAxis = exports.normaliseInstants = exports.describeTimeAxis = exports.stageDatasetArtifacts = exports.withDatasetArtifacts = exports.UnreadableArtifactStoreError = exports.UnreadableArtifactFileError = exports.UnknownParentRefError = exports.unconfiguredArtifacts = exports.sqliteArtifacts = exports.s3Artifacts = exports.mintArtifactRef = exports.isArtifactRef = exports.InvalidArtifactError = exports.inMemoryArtifacts = exports.gcsArtifacts = exports.fileArtifacts = exports.DEFAULT_IN_MEMORY_ARTIFACT_RETENTION = exports.UnserializableRecordingError = exports.chartWalkPutInput = exports.CHART_WALK_ARTIFACT_KIND = exports.recordingPutInput = exports.RECORDING_MEDIA_TYPE = exports.RECORDING_ARTIFACT_KIND = exports.bindArtifacts = exports.ArtifactIntegrityError = exports.ARTIFACT_REF_PREFIX = exports.formatToolContractCheckup = exports.toolContractCheckup = exports.TOOL_SESSIONS = exports.toolSessionsOf = void 0;
exports.checkClaimRequirements = exports.AnswerValidationError = exports.topK = exports.indexDocuments = exports.DEFAULT_CORPUS_IDENTITY = exports.defineRAG = exports.providerFromEnv = exports.Graph = exports.graph = exports.Workflow = exports.workflow = exports.LoopBuilder = exports.Loop = exports.ConditionalBuilder = exports.Conditional = exports.ParallelBuilder = exports.Parallel = exports.SequenceBuilder = void 0;
// Adapter interfaces (ports)
__exportStar(require("./provider-contract/types.js"), exports);
// Injection keys + recorder authoring helpers — needed by anyone writing
// a custom recorder that switches on injection events.
var conventions_js_1 = require("./lib/conventions.js");
Object.defineProperty(exports, "INJECTION_KEYS", { enumerable: true, get: function () { return conventions_js_1.INJECTION_KEYS; } });
Object.defineProperty(exports, "injectionKeyForSlot", { enumerable: true, get: function () { return conventions_js_1.injectionKeyForSlot; } });
Object.defineProperty(exports, "isInjectionKey", { enumerable: true, get: function () { return conventions_js_1.isInjectionKey; } });
// Renderer-facing: classifies a stage's importance (hero vs plumbing) so
// visualisers (the lens, custom shells) can style the chart. Unlike the
// slot/id helpers below, this IS consumer API — it exists to be consumed
// by renderers.
Object.defineProperty(exports, "stageRole", { enumerable: true, get: function () { return conventions_js_1.stageRole; } });
// Renderer-facing: declares which stages are time-travel MILESTONES (scrub
// stops) so the lens can build a stage-by-stage slider (iteration → llm-turn
// → tool-call → decision) instead of stopping only on structural boundaries.
// Consumer API — owned by the domain, consumed by renderers.
Object.defineProperty(exports, "milestoneFor", { enumerable: true, get: function () { return conventions_js_1.milestoneFor; } });
// Declared milestones (9.90.0): the charts put the SAME table on the stage as
// footprintjs 9.21 tags — `milestone:<kind>` + `milestone-label:<label>` —
// so a recording carries its own milestones and `milestoneFor` above is the
// fallback for a bundle with no tags. One writer, one reader, no literal.
Object.defineProperty(exports, "MILESTONE_KINDS", { enumerable: true, get: function () { return conventions_js_1.MILESTONE_KINDS; } });
Object.defineProperty(exports, "MILESTONE_TAG_PREFIX", { enumerable: true, get: function () { return conventions_js_1.MILESTONE_TAG_PREFIX; } });
Object.defineProperty(exports, "MILESTONE_LABEL_TAG_PREFIX", { enumerable: true, get: function () { return conventions_js_1.MILESTONE_LABEL_TAG_PREFIX; } });
Object.defineProperty(exports, "milestoneTag", { enumerable: true, get: function () { return conventions_js_1.milestoneTag; } });
Object.defineProperty(exports, "milestoneTags", { enumerable: true, get: function () { return conventions_js_1.milestoneTags; } });
Object.defineProperty(exports, "milestoneTagsFor", { enumerable: true, get: function () { return conventions_js_1.milestoneTagsFor; } });
Object.defineProperty(exports, "milestoneFromTags", { enumerable: true, get: function () { return conventions_js_1.milestoneFromTags; } });
// The reserved subflow namespace (9.49.0): the prefix the framework names its
// own composition segments with, and the predicate downstream READERS use to
// tell library plumbing from consumer structure — exported so a viewer or a
// pattern miner imports the law instead of hardcoding 'sf-'. The refusal
// itself (assertUnreservedSubflowSegment) stays internal: it belongs to the
// declaration doors, not to consumers.
Object.defineProperty(exports, "RESERVED_SUBFLOW_PREFIX", { enumerable: true, get: function () { return conventions_js_1.RESERVED_SUBFLOW_PREFIX; } });
Object.defineProperty(exports, "isReservedSubflowSegment", { enumerable: true, get: function () { return conventions_js_1.isReservedSubflowSegment; } });
// The milestones ON the reader's cursor. `milestoneFor` above classifies ONE
// stage id; this is that classifier mapped onto a finished run's commit log as
// a footprintjs `TimeTravelStrategy`, so `timeTravel(snapshot, { strategy:
// milestoneStopsStrategy })` scrubs iteration → llm-turn → tool-call →
// decision instead of stopping on every stage. `milestoneOf(stop)` reads the
// milestone back off a stop (footprintjs's `Stop` has no slot for a
// consumer's own vocabulary). Fold: derived from the recorded log, never a
// re-walk — see src/time-travel/README.md.
var index_js_1 = require("./time-travel/index.js");
Object.defineProperty(exports, "milestoneOf", { enumerable: true, get: function () { return index_js_1.milestoneOf; } });
Object.defineProperty(exports, "milestoneStops", { enumerable: true, get: function () { return index_js_1.milestoneStops; } });
Object.defineProperty(exports, "milestoneStopsStrategy", { enumerable: true, get: function () { return index_js_1.milestoneStopsStrategy; } });
// THE RECEIPT AT THE STOP (9.88.0). The wire a model receives is assembled from
// committed pieces and is itself never committed — so `servedAt(snapshot, k)`
// REBUILDS it from those pieces, and `receiptAt(snapshot, k)` reads the
// hashes-and-references record the call left behind at the same stop. The law
// they hold together is `receiptHash(runId, servedAt(k).system.text) ===
// receiptAt(k).system.hash`; whatever the log cannot rebuild is named in
// `servedAt(k).gaps` rather than quietly missing. `epochAt` / `epochLocations`
// are the one owner of where an iteration's pieces live in either chart shape.
// `receiptAt` answers a `StoredReceipt` (9.94.1): the receipt AS STORED, by
// the release that minted it — a container a later release added may be
// absent, and a reader reads it as "cannot say", never as a throw.
var index_js_2 = require("./time-travel/index.js");
Object.defineProperty(exports, "epochAt", { enumerable: true, get: function () { return index_js_2.epochAt; } });
Object.defineProperty(exports, "epochLocations", { enumerable: true, get: function () { return index_js_2.epochLocations; } });
Object.defineProperty(exports, "keyedFold", { enumerable: true, get: function () { return index_js_2.keyedFold; } });
Object.defineProperty(exports, "messageDigestInput", { enumerable: true, get: function () { return index_js_2.messageDigestInput; } });
Object.defineProperty(exports, "toolDigestInput", { enumerable: true, get: function () { return index_js_2.toolDigestInput; } });
Object.defineProperty(exports, "receiptAt", { enumerable: true, get: function () { return index_js_2.receiptAt; } });
Object.defineProperty(exports, "receiptHash", { enumerable: true, get: function () { return index_js_2.receiptHash; } });
Object.defineProperty(exports, "servedAt", { enumerable: true, get: function () { return index_js_2.servedAt; } });
Object.defineProperty(exports, "servedViews", { enumerable: true, get: function () { return index_js_2.servedViews; } });
Object.defineProperty(exports, "transformHashOf", { enumerable: true, get: function () { return index_js_2.transformHashOf; } });
Object.defineProperty(exports, "RECEIPT_BOUNDARY", { enumerable: true, get: function () { return index_js_2.RECEIPT_BOUNDARY; } });
Object.defineProperty(exports, "TRANSFORM_HASH_PREFIX", { enumerable: true, get: function () { return index_js_2.TRANSFORM_HASH_PREFIX; } });
Object.defineProperty(exports, "SERVED_GAPS", { enumerable: true, get: function () { return index_js_2.SERVED_GAPS; } });
Object.defineProperty(exports, "UNGAPPED_FIELDS", { enumerable: true, get: function () { return index_js_2.UNGAPPED_FIELDS; } });
// `STAGE_IDS`, `SUBFLOW_IDS`, `isSlotSubflow`, `slotFromSubflowId`,
// `isKnownStage`, `isKnownSubflow` are intentionally NOT exported — they
// are the internal builder↔recorder coordination protocol, not consumer
// API. Library code reaches them via the relative `./lib/conventions.js`
// import; downstream code should never need them.
var types_js_1 = require("./recorders/core/types.js");
Object.defineProperty(exports, "COMPOSITION_KEYS", { enumerable: true, get: function () { return types_js_1.COMPOSITION_KEYS; } });
// Context-engineering + emit primitives.
//
// The observability recorder FACTORIES (ContextRecorder, streamRecorder,
// agentRecorder, compositionRecorder, costRecorder, evalRecorder,
// memoryRecorder, permissionRecorder, skillRecorder, toolsRecorder,
// contextEvaluatedRecorder, boundaryRecorder, liveStateRecorder, the
// RunStep* family, attachFlowchart/attachLogging/attachStatus, …) now live
// ONLY under `agentfootprint/observe` — the dedicated observability subpath —
// so the main barrel stays focused on the core agent API.
var contextEngineering_js_1 = require("./recorders/core/contextEngineering.js");
Object.defineProperty(exports, "contextEngineering", { enumerable: true, get: function () { return contextEngineering_js_1.contextEngineering; } });
Object.defineProperty(exports, "isEngineeredSource", { enumerable: true, get: function () { return contextEngineering_js_1.isEngineeredSource; } });
Object.defineProperty(exports, "isBaselineSource", { enumerable: true, get: function () { return contextEngineering_js_1.isBaselineSource; } });
Object.defineProperty(exports, "ENGINEERED_SOURCES", { enumerable: true, get: function () { return contextEngineering_js_1.ENGINEERED_SOURCES; } });
Object.defineProperty(exports, "BASELINE_SOURCES", { enumerable: true, get: function () { return contextEngineering_js_1.BASELINE_SOURCES; } });
var RunnerBase_js_1 = require("./core/RunnerBase.js");
Object.defineProperty(exports, "RunnerBase", { enumerable: true, get: function () { return RunnerBase_js_1.RunnerBase; } });
Object.defineProperty(exports, "makeRunId", { enumerable: true, get: function () { return RunnerBase_js_1.makeRunId; } });
// Pause/Resume primitives — consumer API for human-in-the-loop tools.
// `PauseRequest` (the throwable signal class) stays internal; consumers
// detect pauses via `isPauseRequest(err)` / `isPaused(outcome)`.
// `askHuman` is the HITL-named alias for `pauseHere` — same behavior,
// reads more naturally inside a tool that's asking a person to decide.
var pause_js_1 = require("./core/pause.js");
Object.defineProperty(exports, "pauseHere", { enumerable: true, get: function () { return pause_js_1.pauseHere; } });
Object.defineProperty(exports, "askHuman", { enumerable: true, get: function () { return pause_js_1.askHuman; } });
Object.defineProperty(exports, "requestInput", { enumerable: true, get: function () { return pause_js_1.requestInput; } });
Object.defineProperty(exports, "isInputPause", { enumerable: true, get: function () { return pause_js_1.isInputPause; } });
Object.defineProperty(exports, "isPauseRequest", { enumerable: true, get: function () { return pause_js_1.isPauseRequest; } });
Object.defineProperty(exports, "isPaused", { enumerable: true, get: function () { return pause_js_1.isPaused; } });
Object.defineProperty(exports, "isCheckInPause", { enumerable: true, get: function () { return pause_js_1.isCheckInPause; } });
Object.defineProperty(exports, "isAskPause", { enumerable: true, get: function () { return pause_js_1.isAskPause; } });
// 8.13.0 — a consent gate (a tool's `checkIn`, a middleware's `ask`) is
// answered with a decision, never a value. `pauseDemandsDecision` is how a
// consumer asks which kind of pause it is holding; `DecisionRequiredError` is
// what `agent.resume()` raises when the answer is the wrong shape, instead of
// the silent `by: 'unknown'` decline it filed before.
Object.defineProperty(exports, "pauseDemandsDecision", { enumerable: true, get: function () { return pause_js_1.pauseDemandsDecision; } });
Object.defineProperty(exports, "DecisionRequiredError", { enumerable: true, get: function () { return pause_js_1.DecisionRequiredError; } });
Object.defineProperty(exports, "StaleDecisionError", { enumerable: true, get: function () { return pause_js_1.StaleDecisionError; } });
// A decision for another request, for a call that changed after the ask, or
// for a request already answered — refused by name, the tool never runs.
Object.defineProperty(exports, "ResumeDecisionError", { enumerable: true, get: function () { return pause_js_1.ResumeDecisionError; } });
// 8.18.0 — an askHuman/pauseHere pause resumed with NO value. The answer
// becomes the tool's result, so "no answer" and "carry on" are two different
// conversations and the caller picks; the library used to pick silently and
// crash a turn later.
Object.defineProperty(exports, "PauseAnswerRequiredError", { enumerable: true, get: function () { return pause_js_1.PauseAnswerRequiredError; } });
var inputRequest_js_1 = require("./tools/inputRequest.js");
Object.defineProperty(exports, "InputRequestError", { enumerable: true, get: function () { return inputRequest_js_1.InputRequestError; } });
// Typed HITL (9.24.0) — the OPTIONAL component half of a human ask: WHICH
// registered screen component collects the answer, with small `props` inline
// and the big half as an artifact ref (`propsRef`) that rides the STORE, not
// the checkpoint. Ids and props only, never markup — the registry lives in
// the frontend (the no-eval law). Carried by `askHuman({ question, component })`,
// a middleware `ask({ question, component })`, and a tool's
// `checkInComponent`; surfaced to hosts on `PendingAsk.component`. The
// decision returns through the SAME structured field it always did.
// `readAskComponent` is the one reader of a pause payload's component (for
// anyone building a host); `InvalidAskComponentError` is the raise-time
// refusal — a dangling `propsRef` fails at its source, never on the screen.
var askComponent_js_1 = require("./tools/askComponent.js");
Object.defineProperty(exports, "readAskComponent", { enumerable: true, get: function () { return askComponent_js_1.readAskComponent; } });
Object.defineProperty(exports, "assertAskComponent", { enumerable: true, get: function () { return askComponent_js_1.assertAskComponent; } });
Object.defineProperty(exports, "InvalidAskComponentError", { enumerable: true, get: function () { return askComponent_js_1.InvalidAskComponentError; } });
// The middleware family — a typed chain around every tool dispatch
// (`.toolMiddleware()`) and around the message boundary
// (`.messageMiddleware()`): the input before the model sees it, the output
// before the caller receives it.
//
// Three verbs, and no fourth: `allow()` / `allow(value, why)`, `deny(reason)`,
// `ask({ question })`. There is no way to return a RESULT — the union has no
// arm for one — so whatever a chain decides, the answer the model finally
// reads is the real tool's output or a refusal. A transform commits both the
// original and the replacement, so a scrub is legible in the trace instead of
// silently rewriting history.
var index_js_3 = require("./core/agent/middleware/index.js");
Object.defineProperty(exports, "allow", { enumerable: true, get: function () { return index_js_3.allow; } });
Object.defineProperty(exports, "ask", { enumerable: true, get: function () { return index_js_3.ask; } });
Object.defineProperty(exports, "deny", { enumerable: true, get: function () { return index_js_3.deny; } });
Object.defineProperty(exports, "MessageDeniedError", { enumerable: true, get: function () { return index_js_3.MessageDeniedError; } });
// `.act({ input, beforeTool, afterTool, window, output })` — the five moments
// of the loop in one block, and the canonical way to say what an agent does
// about its own turn. Pure sugar over the five doors above and below; the keys
// are locked at compile time against `LoopMoment`, so the bundle cannot fall
// behind the loop.
var moments_js_1 = require("./lib/moments.js");
Object.defineProperty(exports, "LOOP_MOMENTS", { enumerable: true, get: function () { return moments_js_1.LOOP_MOMENTS; } });
Object.defineProperty(exports, "actKeyFor", { enumerable: true, get: function () { return moments_js_1.actKeyFor; } });
var act_js_1 = require("./core/agent/act.js");
Object.defineProperty(exports, "ACT_KEYS", { enumerable: true, get: function () { return act_js_1.ACT_KEYS; } });
// Check in with the receipts — evidence-carrying human consent. A tool
// declares `checkIn` (see `defineTool`); when it trips the run pauses with a
// `CheckInRequest` (the ask + evidence pack); a human answers with
// `checkInApproved` / `checkInDeclined`; the `CheckInDecision` lands as a
// typed record (`checkin.request` / `checkin.decision` events + `CheckInRecorder`).
var checkin_js_1 = require("./core/checkin.js");
Object.defineProperty(exports, "checkInApproved", { enumerable: true, get: function () { return checkin_js_1.checkInApproved; } });
Object.defineProperty(exports, "checkInDeclined", { enumerable: true, get: function () { return checkin_js_1.checkInDeclined; } });
Object.defineProperty(exports, "isCheckInDecision", { enumerable: true, get: function () { return checkin_js_1.isCheckInDecision; } });
Object.defineProperty(exports, "lexicalDriverScorer", { enumerable: true, get: function () { return checkin_js_1.lexicalDriverScorer; } });
Object.defineProperty(exports, "standardEvidenceAssembler", { enumerable: true, get: function () { return checkin_js_1.standardEvidenceAssembler; } });
Object.defineProperty(exports, "minimalEvidenceAssembler", { enumerable: true, get: function () { return checkin_js_1.minimalEvidenceAssembler; } });
// A decision answers ONE request, once: every consent pause mints a request id
// bound to the exact paused call, a decision names it, and a resume holds it
// to it (`ResumeDecisionError`). The ledger is where answered requests are
// spent — per agent by default, shared across agents via
// `Agent.create({ decisionLedger })`.
var consentRequest_js_1 = require("./core/consentRequest.js");
Object.defineProperty(exports, "inMemoryDecisionLedger", { enumerable: true, get: function () { return consentRequest_js_1.inMemoryDecisionLedger; } });
// The built-in check-in audit store — `agent.attach(new CheckInRecorder())`.
var CheckInRecorder_js_1 = require("./recorders/core/CheckInRecorder.js");
Object.defineProperty(exports, "CheckInRecorder", { enumerable: true, get: function () { return CheckInRecorder_js_1.CheckInRecorder; } });
// Commentary — bundled prose templates + engine for narrating a run.
// Consumers ship their own JSON locale / brand voice via the same
// shape; viewers (Lens, CLI tail, log file) consume this surface.
var commentaryTemplates_js_1 = require("./recorders/observability/commentary/commentaryTemplates.js");
Object.defineProperty(exports, "defaultCommentaryTemplates", { enumerable: true, get: function () { return commentaryTemplates_js_1.defaultCommentaryTemplates; } });
// Commentary engine helpers — advanced surface consumed by viewer
// libraries (agentfootprint-lens) to render run narration. Not the
// everyday API, but de-facto public: keep exported.
Object.defineProperty(exports, "extractAgentName", { enumerable: true, get: function () { return commentaryTemplates_js_1.extractAgentName; } });
Object.defineProperty(exports, "extractCommentaryVars", { enumerable: true, get: function () { return commentaryTemplates_js_1.extractCommentaryVars; } });
Object.defineProperty(exports, "renderCommentary", { enumerable: true, get: function () { return commentaryTemplates_js_1.renderCommentary; } });
Object.defineProperty(exports, "selectCommentaryKey", { enumerable: true, get: function () { return commentaryTemplates_js_1.selectCommentaryKey; } });
// Status — chat-bubble surface (separate audience: the end user
// chatting; renamed from "thinking" in 5.0.0 to disambiguate from the
// MODEL's extended-thinking reasoning). State machine:
// idle / streaming / tool / paused. Same contract shape as commentary
// (`Record<string, string>` with `{{vars}}`, partial overrides
// supported, missing keys ignored) but a different vocabulary —
// first-person status, mid-call only. Per-tool keys (`tool.<toolName>`)
// win over the generic `tool` key.
// Primitives (core/)
var LLMCall_js_1 = require("./core/LLMCall.js");
Object.defineProperty(exports, "LLMCall", { enumerable: true, get: function () { return LLMCall_js_1.LLMCall; } });
Object.defineProperty(exports, "LLMCallBuilder", { enumerable: true, get: function () { return LLMCall_js_1.LLMCallBuilder; } });
// Agent (ReAct) form of the merge-tree — Context root selector → two-stage
// convergence: [sf-message-api (system-prompt+messages → messageAPI), sf-tools]
// → Call-LLM → route → [tool-exec → loop] / final. tools + the loop are the
// only additions over buildMessageApiChart. See buildAgentMessageApiChart.
var buildAgentMessageApiChart_js_1 = require("./core/agent/buildAgentMessageApiChart.js");
Object.defineProperty(exports, "buildAgentMessageApiChart", { enumerable: true, get: function () { return buildAgentMessageApiChart_js_1.buildAgentMessageApiChart; } });
// `Agent` and `AgentBuilder` come through the trace toolpack's host, which
// plugs `.selfExplain()` into the builder's port at load — the registration
// travels with the class, so a bundler that skips this barrel cannot drop it
// (`trace-toolpack/selfExplainHost.ts` says why).
var selfExplainHost_js_1 = require("./trace-toolpack/selfExplainHost.js");
Object.defineProperty(exports, "Agent", { enumerable: true, get: function () { return selfExplainHost_js_1.Agent; } });
Object.defineProperty(exports, "AgentBuilder", { enumerable: true, get: function () { return selfExplainHost_js_1.AgentBuilder; } });
// `.window(strategy)` / `.compaction()` — keep the live context window inside
// its budget without ever losing the record. A strategy edits the WINDOW; the
// LEDGER keeps every removed turn byte-identical, and every strategy files its
// own recorded step naming the runtimeStageIds whose messages left.
//
// Three ship, over one turn segmentation and one refusal engine:
//   summarizeOldest  fold the oldest span into a summary  (what `.compaction()` is)
//   slidingWindow    keep the last N turns, drop older ones
//   tokenBudget      counted-token trigger, drop instead of summarize
//
// A commit log lives as long as the process; a conversation lives longer. So
// `.compaction({ retain })` carries the folded originals on the conversation
// checkpoint too, and `foldedSpanFor(conversation, message)` is the door back
// to them after a restart.
var index_js_4 = require("./core/agent/window/index.js");
Object.defineProperty(exports, "CompactionUnmeasurableError", { enumerable: true, get: function () { return index_js_4.CompactionUnmeasurableError; } });
Object.defineProperty(exports, "COMPACTED_FRAME_PREFIX", { enumerable: true, get: function () { return index_js_4.COMPACTED_FRAME_PREFIX; } });
Object.defineProperty(exports, "DROP_NOTICE_PREFIX", { enumerable: true, get: function () { return index_js_4.DROP_NOTICE_PREFIX; } });
Object.defineProperty(exports, "foldedMessages", { enumerable: true, get: function () { return index_js_4.foldedMessages; } });
Object.defineProperty(exports, "foldedSpanFor", { enumerable: true, get: function () { return index_js_4.foldedSpanFor; } });
Object.defineProperty(exports, "isCompactedSummary", { enumerable: true, get: function () { return index_js_4.isCompactedSummary; } });
Object.defineProperty(exports, "isDropNotice", { enumerable: true, get: function () { return index_js_4.isDropNotice; } });
Object.defineProperty(exports, "slidingWindow", { enumerable: true, get: function () { return index_js_4.slidingWindow; } });
Object.defineProperty(exports, "summarizeOldest", { enumerable: true, get: function () { return index_js_4.summarizeOldest; } });
Object.defineProperty(exports, "tokenBudget", { enumerable: true, get: function () { return index_js_4.tokenBudget; } });
// Which `role: 'user'` message a PERSON wrote (9.84.0), and the registry of
// openings it is decided against. Seven messages in a window carry that role
// without anybody having said them — a compaction frame, a drop notice, the two
// in-loop corrections, the out-of-budget wrap-up instruction, the stepped-skill
// nudge (the last two registered in 9.86.0), and a message an Injection
// delivered. This is the one test that tells them apart; the window's refusal
// engine and `saidByPerson(ctx)` on `agentfootprint/context` both call it, so
// no reader can hold a different rule. Since G17 the registry also holds
// the openings of the lines served on a REQUEST only — `LIBRARY_NOTE_OPENING`
// (the time layer's late line, on every request under `.time()`, and the
// figures dial's conclusion) and the staged-refs nudge — so a host finding
// "this turn" in what the model was sent never anchors on the library's line.
var saidByPerson_js_1 = require("./lib/saidByPerson.js");
Object.defineProperty(exports, "isLibraryAuthoredFrame", { enumerable: true, get: function () { return saidByPerson_js_1.isLibraryAuthoredFrame; } });
Object.defineProperty(exports, "isSaidByPerson", { enumerable: true, get: function () { return saidByPerson_js_1.isSaidByPerson; } });
Object.defineProperty(exports, "LIBRARY_AUTHORED_PREFIXES", { enumerable: true, get: function () { return saidByPerson_js_1.LIBRARY_AUTHORED_PREFIXES; } });
Object.defineProperty(exports, "LIBRARY_NOTE_OPENING", { enumerable: true, get: function () { return saidByPerson_js_1.LIBRARY_NOTE_OPENING; } });
// 9.11.0 — the opt-in tool-result ceiling (`AgentOptions.maxToolResultChars`).
// The marker is what a consumer reads off `stream.tool_end.result` and off the
// `role: 'tool'` message, so the shape AND the guard are public; the measuring
// helper stays internal to dispatch.
var toolResultCap_js_1 = require("./core/agent/toolResultCap.js");
Object.defineProperty(exports, "isTruncatedToolResult", { enumerable: true, get: function () { return toolResultCap_js_1.isTruncatedToolResult; } });
// The write-seam advisory (9.77.0) — `AgentOptions.noticeEmptyLookups`. The
// CEILING is exported as a string because it is quoted verbatim into every
// finding this check files: a consumer rendering findings can recognize the
// bound instead of re-wording it, and the docs, the code and the tests all
// read one owner. `LookupResultReading` is what the library could see of a
// result — the vocabulary behind a `not-applicable` row.
var check_js_1 = require("./integrity/empty-lookup/check.js");
Object.defineProperty(exports, "EMPTY_LOOKUP_CEILING", { enumerable: true, get: function () { return check_js_1.EMPTY_LOOKUP_CEILING; } });
// The COLUMN-TYPE CONTRACT (9.78.0) — `Tool.resultColumns` +
// `AgentOptions.checkColumnTypes`. The CEILING is exported for the same
// reason `EMPTY_LOOKUP_CEILING` is: it is quoted verbatim into every finding,
// so a consumer rendering findings recognizes the bound instead of re-wording
// it, and the docs, the code and the tests read one owner. `RowsetReading` is
// what the library could see of a result — the vocabulary behind a
// `not-applicable` row.
var check_js_2 = require("./integrity/column-types/check.js");
Object.defineProperty(exports, "COLUMN_TYPE_CEILING", { enumerable: true, get: function () { return check_js_2.COLUMN_TYPE_CEILING; } });
Object.defineProperty(exports, "readRowset", { enumerable: true, get: function () { return check_js_2.readRowset; } });
// The declaration's own vocabulary, so an app assembling `Tool` objects by
// hand (or typing a config) can name the words the library judges by.
var types_js_2 = require("./integrity/column-types/types.js");
Object.defineProperty(exports, "COLUMN_TYPES", { enumerable: true, get: function () { return types_js_2.COLUMN_TYPES; } });
Object.defineProperty(exports, "assertResultColumns", { enumerable: true, get: function () { return types_js_2.assertResultColumns; } });
// The claim seam's RECENCY advisory (9.83.0) — `AgentOptions.
// noticePriorTurnEvidence` beside `.namesAndNumbersFromEvidence()`. The
// CEILING is exported for the same reason the two above are: it is quoted
// verbatim into every finding, so a consumer rendering findings recognizes
// the bound instead of re-wording it, and the docs, the code and the tests
// read one owner. `AnswerGroundingReading` is what the library could see of
// an answer's grounding — the vocabulary behind an `unreachable` row.
var check_js_3 = require("./integrity/prior-turn-evidence/check.js");
Object.defineProperty(exports, "PRIOR_TURN_EVIDENCE_CEILING", { enumerable: true, get: function () { return check_js_3.PRIOR_TURN_EVIDENCE_CEILING; } });
var outputSchema_js_1 = require("./answer-validation/outputSchema.js");
Object.defineProperty(exports, "OutputSchemaError", { enumerable: true, get: function () { return outputSchema_js_1.OutputSchemaError; } });
Object.defineProperty(exports, "applyOutputSchema", { enumerable: true, get: function () { return outputSchema_js_1.applyOutputSchema; } });
// 9.101.0 — the findings ledger (`.findings()`): the row shapes
// `agent.findings()` hands back and `AgentState.findingsLedger` /
// `AgentRunCheckpoint.findingsLedger` carry, plus the reserved argument name
// so a tool author can avoid it (a registry tool declaring it is refused at
// build when the ledger is armed). The door itself is `AgentBuilder.findings`.
var types_js_3 = require("./core/agent/findings/types.js");
Object.defineProperty(exports, "RESERVED_ARGUMENT", { enumerable: true, get: function () { return types_js_3.RESERVED_ARGUMENT; } });
// 9.105.0 — tool choice by classifier (`.toolChoice()`): the row shapes
// `AgentState.toolChoices` carries (a pick before every model call, the
// outcome after it), the reasons a narrowing was skipped, and the two
// leaf constants — the question id a record reader looks for and the
// framework's doors that are never narrowed away. The asker itself is
// loaded lazily by the tools slot and is deliberately NOT a root export.
var types_js_4 = require("./core/agent/toolChoice/types.js");
Object.defineProperty(exports, "ALWAYS_SERVED_TOOLS", { enumerable: true, get: function () { return types_js_4.ALWAYS_SERVED_TOOLS; } });
Object.defineProperty(exports, "TOOL_CHOICE_QUESTION", { enumerable: true, get: function () { return types_js_4.TOOL_CHOICE_QUESTION; } });
// 8.18.0 — the input boundary every runner's `run()` goes through. A bare
// string IS the message (`run('go')` ≡ `run({ message: 'go' })`); anything
// that is not a message is refused by name before the run starts, instead of
// becoming `content: undefined` inside the messages slot.
var runInput_js_1 = require("./core/runInput.js");
Object.defineProperty(exports, "InvalidRunInputError", { enumerable: true, get: function () { return runInput_js_1.InvalidRunInputError; } });
// 7.26 — the loop's side of the output contract. `OutputAttempt` is the row
// shape `snapshot.sharedState.outputAttempts` carries; the frame prefix and
// the tool name are exported so a reader (or a test) can recognise the two
// things this feature puts into a conversation without matching on prose.
var outputEnforcement_js_1 = require("./core/agent/outputEnforcement.js");
Object.defineProperty(exports, "SCHEMA_CHECK_FRAME_PREFIX", { enumerable: true, get: function () { return outputEnforcement_js_1.SCHEMA_CHECK_FRAME_PREFIX; } });
Object.defineProperty(exports, "SCHEMA_TOOL_NAME", { enumerable: true, get: function () { return outputEnforcement_js_1.SCHEMA_TOOL_NAME; } });
Object.defineProperty(exports, "isSchemaCheckMessage", { enumerable: true, get: function () { return outputEnforcement_js_1.isSchemaCheckMessage; } });
// 9.35.0 — the evidence gate (`.namesAndNumbersFromEvidence()`). Every name
// and number in the final answer must appear in a tool result the run really
// read; one that does not was typed rather than read. It is a FABRICATION
// detector, not a correctness judge — it cannot see a false claim built out of
// real values — and it is deterministic on purpose: a guard that needed a
// bigger model to police a smaller one would invert this library's thesis.
// The frame prefix is exported so a reader (or a test) can recognise the
// correction this feature puts into a conversation without matching on prose.
var index_js_5 = require("./core/agent/evidence/index.js");
Object.defineProperty(exports, "EVIDENCE_CHECK_FRAME_PREFIX", { enumerable: true, get: function () { return index_js_5.EVIDENCE_CHECK_FRAME_PREFIX; } });
var errors_js_1 = require("./core/agent/evidence/errors.js");
Object.defineProperty(exports, "UnsupportedValuesError", { enumerable: true, get: function () { return errors_js_1.UnsupportedValuesError; } });
var runCheckpoint_js_1 = require("./core/runCheckpoint.js");
Object.defineProperty(exports, "canResume", { enumerable: true, get: function () { return runCheckpoint_js_1.canResume; } });
Object.defineProperty(exports, "ConversationMismatchError", { enumerable: true, get: function () { return runCheckpoint_js_1.ConversationMismatchError; } });
Object.defineProperty(exports, "RunCheckpointError", { enumerable: true, get: function () { return runCheckpoint_js_1.RunCheckpointError; } });
// 9.10.0 — the CLIENT half of a hosting session: one line in a page that mints
// a session id, keeps it, and hands it back. Exported from the ROOT rather than
// from `agentfootprint/hosting` on purpose — the rest of that door is Node
// (`node:http`, `node:sqlite`) and a browser bundle must not have to reach
// through it. The server half is `nodeHost({ sessionHeader | sessionCookie })`.
var browserSession_js_1 = require("./hosting/browserSession.js");
Object.defineProperty(exports, "browserSessionId", { enumerable: true, get: function () { return browserSession_js_1.browserSessionId; } });
Object.defineProperty(exports, "DEFAULT_SESSION_STORAGE_KEY", { enumerable: true, get: function () { return browserSession_js_1.DEFAULT_SESSION_STORAGE_KEY; } });
// 9.6.0 — "the request did not fit" as a typed error the adapters translate
// from every vendor's wording, carrying the numbers and the fixes. Exported
// from the ROOT (not `/llm-providers`) because the thing you catch it with is
// `agent.run()`, and because `canResume` classifies on it.
var contextWindow_js_1 = require("./provider-contract/contextWindow.js");
Object.defineProperty(exports, "ContextWindowExceededError", { enumerable: true, get: function () { return contextWindow_js_1.ContextWindowExceededError; } });
Object.defineProperty(exports, "ERR_CONTEXT_WINDOW_EXCEEDED", { enumerable: true, get: function () { return contextWindow_js_1.ERR_CONTEXT_WINDOW_EXCEEDED; } });
Object.defineProperty(exports, "isContextWindowExceeded", { enumerable: true, get: function () { return contextWindow_js_1.isContextWindowExceeded; } });
// The code-session port's refusals and its one path rule — exported from the
// ROOT with the `CodeSession` port they belong to, so a caller catches the same
// names whichever code runner is behind the port.
var codeSandbox_js_1 = require("./provider-contract/codeSandbox.js");
Object.defineProperty(exports, "CodeSandboxError", { enumerable: true, get: function () { return codeSandbox_js_1.CodeSandboxError; } });
Object.defineProperty(exports, "sandboxPath", { enumerable: true, get: function () { return codeSandbox_js_1.sandboxPath; } });
var sessionExpired_js_1 = require("./provider-contract/sessionExpired.js");
Object.defineProperty(exports, "SessionExpiredError", { enumerable: true, get: function () { return sessionExpired_js_1.SessionExpiredError; } });
// The conversation refusals (9.2.0) — `instanceof`-able so a caller can tell
// "you are already running" from "somebody is still waiting on an answer" from
// "there is nothing to follow up on".
var conversation_js_1 = require("./core/conversation.js");
Object.defineProperty(exports, "NoConversationError", { enumerable: true, get: function () { return conversation_js_1.NoConversationError; } });
Object.defineProperty(exports, "PendingQuestionError", { enumerable: true, get: function () { return conversation_js_1.PendingQuestionError; } });
Object.defineProperty(exports, "ResumeIdentityConflictError", { enumerable: true, get: function () { return conversation_js_1.ResumeIdentityConflictError; } });
Object.defineProperty(exports, "ResumeRedactionError", { enumerable: true, get: function () { return conversation_js_1.ResumeRedactionError; } });
Object.defineProperty(exports, "RunInFlightError", { enumerable: true, get: function () { return conversation_js_1.RunInFlightError; } });
// A composition member runs for the run that mounted it; one no run reached is
// refused by name (`core/memberRun.ts`).
var memberRun_js_1 = require("./core/memberRun.js");
Object.defineProperty(exports, "MemberIdentityError", { enumerable: true, get: function () { return memberRun_js_1.MemberIdentityError; } });
Object.defineProperty(exports, "ParentRunRefusedError", { enumerable: true, get: function () { return memberRun_js_1.ParentRunRefusedError; } });
Object.defineProperty(exports, "ResumeRequestConflictError", { enumerable: true, get: function () { return memberRun_js_1.ResumeRequestConflictError; } });
var flowchartAsTool_js_1 = require("./core/flowchartAsTool.js");
Object.defineProperty(exports, "flowchartAsTool", { enumerable: true, get: function () { return flowchartAsTool_js_1.flowchartAsTool; } });
// runbookAsTool (9.76.0) — the STANDARD bridge from a footprintjs procedure
// to an Agent tool: every answer is the mandatory honesty spine (coverage
// with inner-tool ledgers folded upward, provenance first, rule name+version,
// the recorded walk as a `recording/chart-walk` artifact ticket) plus an
// optional verdict/rowset projection selected by `resultKind: 'verdict/*'`.
// `flowchartAsTool` stays for compatibility (its `resultMapper` users stay
// put); new procedures start here.
var index_js_6 = require("./core/runbook/index.js");
Object.defineProperty(exports, "absenceSignalOf", { enumerable: true, get: function () { return index_js_6.absenceSignalOf; } });
Object.defineProperty(exports, "DECLINED_VERDICT", { enumerable: true, get: function () { return index_js_6.DECLINED_VERDICT; } });
Object.defineProperty(exports, "DEFAULT_MAX_ROWS", { enumerable: true, get: function () { return index_js_6.DEFAULT_MAX_ROWS; } });
// The chart-recording ceiling (9.79.0) — `walk: { recording: true }` files
// the inner chart's own `{ snapshot, events, structure }` beside the walk,
// and a bundle over this many bytes is REFUSED (never truncated) with the
// reason stated on `walk.recording_note`.
Object.defineProperty(exports, "DEFAULT_RECORDING_MAX_BYTES", { enumerable: true, get: function () { return index_js_6.DEFAULT_RECORDING_MAX_BYTES; } });
Object.defineProperty(exports, "DEFAULT_WALK_CAP", { enumerable: true, get: function () { return index_js_6.DEFAULT_WALK_CAP; } });
Object.defineProperty(exports, "PANEL_RENDER_NOTE", { enumerable: true, get: function () { return index_js_6.PANEL_RENDER_NOTE; } });
Object.defineProperty(exports, "probeDispatch", { enumerable: true, get: function () { return index_js_6.probeDispatch; } });
Object.defineProperty(exports, "projectWalk", { enumerable: true, get: function () { return index_js_6.projectWalk; } });
Object.defineProperty(exports, "recordingDispatch", { enumerable: true, get: function () { return index_js_6.recordingDispatch; } });
Object.defineProperty(exports, "renderVerdictTable", { enumerable: true, get: function () { return index_js_6.renderVerdictTable; } });
Object.defineProperty(exports, "runbookAsTool", { enumerable: true, get: function () { return index_js_6.runbookAsTool; } });
Object.defineProperty(exports, "RunbookAbsenceSignal", { enumerable: true, get: function () { return index_js_6.RunbookAbsenceSignal; } });
Object.defineProperty(exports, "VERDICT_RENDER_NOTE", { enumerable: true, get: function () { return index_js_6.VERDICT_RENDER_NOTE; } });
Object.defineProperty(exports, "verdictRowsOf", { enumerable: true, get: function () { return index_js_6.verdictRowsOf; } });
var artifactDetailTool_js_1 = require("./tools/artifactDetailTool.js");
Object.defineProperty(exports, "artifactDetailTool", { enumerable: true, get: function () { return artifactDetailTool_js_1.artifactDetailTool; } });
var detailError_js_1 = require("./artifacts/detailError.js");
Object.defineProperty(exports, "ArtifactDetailError", { enumerable: true, get: function () { return detailError_js_1.ArtifactDetailError; } });
var tools_js_1 = require("./tools/tools.js");
Object.defineProperty(exports, "defineTool", { enumerable: true, get: function () { return tools_js_1.defineTool; } });
Object.defineProperty(exports, "assertResultCeiling", { enumerable: true, get: function () { return tools_js_1.assertResultCeiling; } });
Object.defineProperty(exports, "assertResultClass", { enumerable: true, get: function () { return tools_js_1.assertResultClass; } });
// The placed-result kind (9.70.0) — `Tool.resultKind` lets a tool declare
// the artifact kind its PLACED result is minted under, so the ticket speaks
// the vocabulary a `wants` argument names. Exported beside the other two
// for consumers assembling `Tool` objects by hand.
Object.defineProperty(exports, "assertResultKind", { enumerable: true, get: function () { return tools_js_1.assertResultKind; } });
// The composition declarations (9.76.0) — `composedOf` (drift-checked at
// agent build, when the catalog is complete) and `gates` (whether the
// procedure can raise an approval gate). Exported beside the others for
// consumers assembling `Tool` objects by hand.
Object.defineProperty(exports, "assertComposedOf", { enumerable: true, get: function () { return tools_js_1.assertComposedOf; } });
Object.defineProperty(exports, "assertGates", { enumerable: true, get: function () { return tools_js_1.assertGates; } });
// Host-filled tool arguments: a field the HOST fills from the call's credential
// or the caller's identity — removed from the model's schema, a model-sent
// value refused by name, the credential scrubbed from what comes back.
var hostFilled_js_1 = require("./tools/hostFilled.js");
Object.defineProperty(exports, "hostFilled", { enumerable: true, get: function () { return hostFilled_js_1.hostFilled; } });
Object.defineProperty(exports, "fromCredential", { enumerable: true, get: function () { return hostFilled_js_1.fromCredential; } });
Object.defineProperty(exports, "fromIdentity", { enumerable: true, get: function () { return hostFilled_js_1.fromIdentity; } });
Object.defineProperty(exports, "HostFilledArgumentError", { enumerable: true, get: function () { return hostFilled_js_1.HostFilledArgumentError; } });
Object.defineProperty(exports, "HostFilledValueMissingError", { enumerable: true, get: function () { return hostFilled_js_1.HostFilledValueMissingError; } });
Object.defineProperty(exports, "HOST_FILLED_PLACEHOLDER", { enumerable: true, get: function () { return hostFilled_js_1.HOST_FILLED_PLACEHOLDER; } });
// The tool-name law (`lib/toolName.ts`): the strict check and the dev-mode
// warning `defineTool` runs, for consumers assembling `Tool` objects by hand.
var toolName_js_1 = require("./lib/toolName.js");
Object.defineProperty(exports, "assertValidToolName", { enumerable: true, get: function () { return toolName_js_1.assertValidToolName; } });
Object.defineProperty(exports, "warnIfInvalidToolName", { enumerable: true, get: function () { return toolName_js_1.warnIfInvalidToolName; } });
// Typed tool effects (9.19.0) — the result envelope a tool may return to
// steer the run with DATA instead of string conventions: propose a graph
// transition, push a registered instruction, declare an outcome status. The
// law: push mandatory procedure; pull optional knowledge; never let
// arbitrary text promote itself into control authority.
var toolEffects_js_1 = require("./semantics/toolEffects.js");
Object.defineProperty(exports, "explainStatusOnlyNearMiss", { enumerable: true, get: function () { return toolEffects_js_1.explainStatusOnlyNearMiss; } });
Object.defineProperty(exports, "readToolResultEnvelope", { enumerable: true, get: function () { return toolEffects_js_1.readToolResultEnvelope; } });
Object.defineProperty(exports, "TOOL_RESULT_STATUSES", { enumerable: true, get: function () { return toolEffects_js_1.TOOL_RESULT_STATUSES; } });
// The two coverage primitives — both invented in FIELD USE, on a live triage
// agent, because the library had no answer for either.
//
//   • `absent()` — an absence that names its own coverage. A tool that finds
//     nothing returns something, and from an empty array a model cannot tell
//     "I looked and there is nothing" from "I could not look". The confusion
//     is not symmetric: a nothing-found read as an outage costs an
//     investigation, an outage read as nothing-found declares a system
//     healthy that was never checked.
//   • `coverage()` — the ledger of what a clean result does NOT rule out:
//     checked, not checked, and can never be covered. The sibling of the
//     evidence gate — the gate catches invented VALUES, this catches unstated
//     LIMITS.
//
// Both are RECOGNIZED by the framework (status, events, evidence corpus), not
// conventions: a shape the framework does not understand cannot stop a retry
// loop or keep a value out of the evidence index.
//
// `absent({ what, among })` — a name looked up in a known list that resolves
// to nothing is a named miss over the names the tool read: the mint composes
// the names facet and an irremovable "names outside <source>" gap (for a
// partial read, "not every name in <source> was read"). The names are read
// only to check the count; none is served.
var index_js_7 = require("./semantics/coverage/index.js");
Object.defineProperty(exports, "ABSENCE_MARKER", { enumerable: true, get: function () { return index_js_7.ABSENCE_MARKER; } });
Object.defineProperty(exports, "ABSENCE_NOTE", { enumerable: true, get: function () { return index_js_7.ABSENCE_NOTE; } });
Object.defineProperty(exports, "absent", { enumerable: true, get: function () { return index_js_7.absent; } });
Object.defineProperty(exports, "coverage", { enumerable: true, get: function () { return index_js_7.coverage; } });
Object.defineProperty(exports, "COVERAGE_BLOCK_HEADING", { enumerable: true, get: function () { return index_js_7.COVERAGE_BLOCK_HEADING; } });
Object.defineProperty(exports, "COVERAGE_MARKER", { enumerable: true, get: function () { return index_js_7.COVERAGE_MARKER; } });
Object.defineProperty(exports, "COVERAGE_NOTE", { enumerable: true, get: function () { return index_js_7.COVERAGE_NOTE; } });
Object.defineProperty(exports, "readAbsence", { enumerable: true, get: function () { return index_js_7.readAbsence; } });
Object.defineProperty(exports, "readCoverageLedger", { enumerable: true, get: function () { return index_js_7.readCoverageLedger; } });
Object.defineProperty(exports, "readCoverageResult", { enumerable: true, get: function () { return index_js_7.readCoverageResult; } });
// `Tool.search` — what one call searches, declared once; and the coverage
// row the library composes from it and the arguments the call ran with.
// Three names on purpose: an item, a gap or a role is reached through these
// (`ComposedCoverage['checked'][number]`), so the public surface stays small.
Object.defineProperty(exports, "isComposedCoverage", { enumerable: true, get: function () { return index_js_7.isComposedCoverage; } });
// The one period shape (honesty layer 3, step 7b): what a result's READ
// covered in time — the instants it asked for, what the store holds (or
// 'unknown', said out loud) — declared on `absent()`, `coverage()` and
// `describedResult()`; the ONE verdict rule over it; the wire spelling as data
// (`canonical-notes.json` publishes it); and the ledger row the results layer
// files per call — a member of `FindingsRow`, returned by `agent.findings()`.
var period_js_1 = require("./semantics/coverage/period.js");
Object.defineProperty(exports, "PERIOD_WIRE", { enumerable: true, get: function () { return period_js_1.PERIOD_WIRE; } });
Object.defineProperty(exports, "periodVerdict", { enumerable: true, get: function () { return period_js_1.periodVerdict; } });
// The third outcome (honesty layer 3): what a `coverage()`'s read found still
// RUNNING — its outcome not known yet, neither a success nor a failure — as
// the TOOL declares it (`inProgress`; the library never reads a vendor's state
// name). The wire spelling as data (`canonical-notes.json` publishes it), the
// served clause, the limits block's section label, and the typed shapes.
var inProgress_js_1 = require("./semantics/coverage/inProgress.js");
Object.defineProperty(exports, "IN_PROGRESS_CLAUSE", { enumerable: true, get: function () { return inProgress_js_1.IN_PROGRESS_CLAUSE; } });
Object.defineProperty(exports, "IN_PROGRESS_SECTION_LABEL", { enumerable: true, get: function () { return inProgress_js_1.IN_PROGRESS_SECTION_LABEL; } });
Object.defineProperty(exports, "IN_PROGRESS_WIRE", { enumerable: true, get: function () { return inProgress_js_1.IN_PROGRESS_WIRE; } });
// The semantic tool-result envelope (9.53.0) — typed series/facts/edges with
// the caveats that make them honest (grain, provenance, coverage) as DATA,
// so honesty is inherited, not re-authored per tool. A sibling recognizer
// beside the effects envelope and the coverage primitives (its own
// `af_semantics` marker); the three compose on one result. The MODEL reads
// the compact rendering-free projection; the FULL envelope rides the typed
// `tools.semantics_declared` event; a declared `coverage` flows through the
// same channel `coverage()` uses. The gate half (`checkSemantics`, the
// `agentfootprint-check-semantics` bin) ships through `/observe`.
// `describedResult()` mints it from a camelCase declaration; the saved
// snake_case wire format remains unchanged.
var index_js_8 = require("./semantics/index.js");
Object.defineProperty(exports, "composeNotCovered", { enumerable: true, get: function () { return index_js_8.composeNotCovered; } });
Object.defineProperty(exports, "COUNTER_AGGREGATION_WORDS", { enumerable: true, get: function () { return index_js_8.COUNTER_AGGREGATION_WORDS; } });
Object.defineProperty(exports, "describedResult", { enumerable: true, get: function () { return index_js_8.describedResult; } });
Object.defineProperty(exports, "explainSemantics", { enumerable: true, get: function () { return index_js_8.explainSemantics; } });
Object.defineProperty(exports, "isCounterLookingAggregation", { enumerable: true, get: function () { return index_js_8.isCounterLookingAggregation; } });
Object.defineProperty(exports, "readSemantics", { enumerable: true, get: function () { return index_js_8.readSemantics; } });
Object.defineProperty(exports, "RESULT_CLASSES", { enumerable: true, get: function () { return index_js_8.RESULT_CLASSES; } });
Object.defineProperty(exports, "SEMANTICS_MARKER", { enumerable: true, get: function () { return index_js_8.SEMANTICS_MARKER; } });
Object.defineProperty(exports, "SEMANTICS_NOTE", { enumerable: true, get: function () { return index_js_8.SEMANTICS_NOTE; } });
Object.defineProperty(exports, "semanticsForModel", { enumerable: true, get: function () { return index_js_8.semanticsForModel; } });
// Tool sessions (9.7.0) — the identity a tool holds a session under, and the
// end-signal that releases it. The KEY DERIVATION is exported because it is the
// isolation boundary: one implementation, or two that disagree.
var toolSessions_js_1 = require("./tools/toolSessions.js");
Object.defineProperty(exports, "toolSessionKey", { enumerable: true, get: function () { return toolSessions_js_1.toolSessionKey; } });
Object.defineProperty(exports, "hashSessionKey", { enumerable: true, get: function () { return toolSessions_js_1.hashSessionKey; } });
Object.defineProperty(exports, "ToolTeardownTimeoutError", { enumerable: true, get: function () { return toolSessions_js_1.ToolTeardownTimeoutError; } });
// A handle this process lost — never confused with a server's expiry
// (`SessionExpiredError`, above): nothing was sent, the remote fate unknown.
Object.defineProperty(exports, "LocalSessionHandleLostError", { enumerable: true, get: function () { return toolSessions_js_1.LocalSessionHandleLostError; } });
Object.defineProperty(exports, "TOOL_TEARDOWN_TIMEOUT_MS", { enumerable: true, get: function () { return toolSessions_js_1.TOOL_TEARDOWN_TIMEOUT_MS; } });
var codeRunnerTool_js_1 = require("./core/codeRunnerTool.js");
Object.defineProperty(exports, "codeRunnerTool", { enumerable: true, get: function () { return codeRunnerTool_js_1.codeRunnerTool; } });
Object.defineProperty(exports, "codeShape", { enumerable: true, get: function () { return codeRunnerTool_js_1.codeShape; } });
Object.defineProperty(exports, "codeRunsOf", { enumerable: true, get: function () { return codeRunnerTool_js_1.codeRunsOf; } });
Object.defineProperty(exports, "toolSessionsOf", { enumerable: true, get: function () { return codeRunnerTool_js_1.toolSessionsOf; } });
Object.defineProperty(exports, "TOOL_SESSIONS", { enumerable: true, get: function () { return codeRunnerTool_js_1.TOOL_SESSIONS; } });
var toolContract_js_1 = require("./tools/toolContract.js");
Object.defineProperty(exports, "toolContractCheckup", { enumerable: true, get: function () { return toolContract_js_1.toolContractCheckup; } });
Object.defineProperty(exports, "formatToolContractCheckup", { enumerable: true, get: function () { return toolContract_js_1.formatToolContractCheckup; } });
// Artifacts (9.21.0) — the claim-check store: a tool checks a payload in and
// hands the model a ~26-char claim ticket; the model routes tickets instead
// of hauling data; a later tool redeems them under the run's own scope
// (`ctx.artifacts`, shaped exactly like `ctx.credentials`). Wired via
// `Agent.create({ ..., artifacts })`. On the MAIN barrel because the door is
// an AgentOptions port and the tool capability lives on ToolExecutionContext
// — both main-barrel citizens; the durable adapters load `node:fs` /
// `node:sqlite` lazily at CONSTRUCTION (the sqliteSessions law), so a browser
// bundle walking this barrel never sees them.
var index_js_9 = require("./artifacts/index.js");
Object.defineProperty(exports, "ARTIFACT_REF_PREFIX", { enumerable: true, get: function () { return index_js_9.ARTIFACT_REF_PREFIX; } });
Object.defineProperty(exports, "ArtifactIntegrityError", { enumerable: true, get: function () { return index_js_9.ArtifactIntegrityError; } });
Object.defineProperty(exports, "bindArtifacts", { enumerable: true, get: function () { return index_js_9.bindArtifacts; } });
// Recordings-as-artifacts (9.26.0) — a completed run's
// `{ snapshot, events, structure }` checked in under kind 'recording/run',
// so the existing artifact wire ops serve the Lens with no new operation.
Object.defineProperty(exports, "RECORDING_ARTIFACT_KIND", { enumerable: true, get: function () { return index_js_9.RECORDING_ARTIFACT_KIND; } });
Object.defineProperty(exports, "RECORDING_MEDIA_TYPE", { enumerable: true, get: function () { return index_js_9.RECORDING_MEDIA_TYPE; } });
Object.defineProperty(exports, "recordingPutInput", { enumerable: true, get: function () { return index_js_9.recordingPutInput; } });
// The chart-walk kind (9.76.0) — a runbook's inner walk, one row per
// execution step with the decide() evidence in the `condition` rows,
// checked in under 'recording/chart-walk' beside 'recording/run'.
Object.defineProperty(exports, "CHART_WALK_ARTIFACT_KIND", { enumerable: true, get: function () { return index_js_9.CHART_WALK_ARTIFACT_KIND; } });
Object.defineProperty(exports, "chartWalkPutInput", { enumerable: true, get: function () { return index_js_9.chartWalkPutInput; } });
Object.defineProperty(exports, "UnserializableRecordingError", { enumerable: true, get: function () { return index_js_9.UnserializableRecordingError; } });
Object.defineProperty(exports, "DEFAULT_IN_MEMORY_ARTIFACT_RETENTION", { enumerable: true, get: function () { return index_js_9.DEFAULT_IN_MEMORY_ARTIFACT_RETENTION; } });
Object.defineProperty(exports, "fileArtifacts", { enumerable: true, get: function () { return index_js_9.fileArtifacts; } });
Object.defineProperty(exports, "gcsArtifacts", { enumerable: true, get: function () { return index_js_9.gcsArtifacts; } });
Object.defineProperty(exports, "inMemoryArtifacts", { enumerable: true, get: function () { return index_js_9.inMemoryArtifacts; } });
Object.defineProperty(exports, "InvalidArtifactError", { enumerable: true, get: function () { return index_js_9.InvalidArtifactError; } });
Object.defineProperty(exports, "isArtifactRef", { enumerable: true, get: function () { return index_js_9.isArtifactRef; } });
Object.defineProperty(exports, "mintArtifactRef", { enumerable: true, get: function () { return index_js_9.mintArtifactRef; } });
Object.defineProperty(exports, "s3Artifacts", { enumerable: true, get: function () { return index_js_9.s3Artifacts; } });
Object.defineProperty(exports, "sqliteArtifacts", { enumerable: true, get: function () { return index_js_9.sqliteArtifacts; } });
Object.defineProperty(exports, "unconfiguredArtifacts", { enumerable: true, get: function () { return index_js_9.unconfiguredArtifacts; } });
Object.defineProperty(exports, "UnknownParentRefError", { enumerable: true, get: function () { return index_js_9.UnknownParentRefError; } });
Object.defineProperty(exports, "UnreadableArtifactFileError", { enumerable: true, get: function () { return index_js_9.UnreadableArtifactFileError; } });
Object.defineProperty(exports, "UnreadableArtifactStoreError", { enumerable: true, get: function () { return index_js_9.UnreadableArtifactStoreError; } });
Object.defineProperty(exports, "withDatasetArtifacts", { enumerable: true, get: function () { return index_js_9.withDatasetArtifacts; } });
Object.defineProperty(exports, "stageDatasetArtifacts", { enumerable: true, get: function () { return index_js_9.stageDatasetArtifacts; } });
Object.defineProperty(exports, "describeTimeAxis", { enumerable: true, get: function () { return index_js_9.describeTimeAxis; } });
Object.defineProperty(exports, "normaliseInstants", { enumerable: true, get: function () { return index_js_9.normaliseInstants; } });
Object.defineProperty(exports, "readTimeAxis", { enumerable: true, get: function () { return index_js_9.readTimeAxis; } });
Object.defineProperty(exports, "timeAxisIssues", { enumerable: true, get: function () { return index_js_9.timeAxisIssues; } });
Object.defineProperty(exports, "TIME_AXIS_AGGREGATES", { enumerable: true, get: function () { return index_js_9.TIME_AXIS_AGGREGATES; } });
Object.defineProperty(exports, "TIME_AXIS_UNITS", { enumerable: true, get: function () { return index_js_9.TIME_AXIS_UNITS; } });
// The library's careful English reader (step T6b) — a tokenizer over the v1
// phrases, "unreadable" for the rest: `.time({ reader: englishTimeReader() })`.
var english_js_1 = require("./time/readers/english.js");
Object.defineProperty(exports, "englishTimeReader", { enumerable: true, get: function () { return english_js_1.englishTimeReader; } });
var timeAsk_js_1 = require("./locales/timeAsk.js");
Object.defineProperty(exports, "defaultTimeAskMessages", { enumerable: true, get: function () { return timeAsk_js_1.defaultTimeAskMessages; } });
var elicitation_js_1 = require("./mcp/elicitation.js");
Object.defineProperty(exports, "answerFromElicitation", { enumerable: true, get: function () { return elicitation_js_1.answerFromElicitation; } });
Object.defineProperty(exports, "elicitationOf", { enumerable: true, get: function () { return elicitation_js_1.elicitationOf; } });
// Artifacts, the optional streaming leg (9.25.0) — `putStream`/`getStream` are
// FEATURE-DETECTED members of the port, so a store that cannot move bytes
// without holding them whole leaves them absent rather than faking one. The
// guards narrow the type, so calling an absent member is a compile error.
var index_js_10 = require("./artifacts/index.js");
Object.defineProperty(exports, "canGetArtifactStream", { enumerable: true, get: function () { return index_js_10.canGetArtifactStream; } });
Object.defineProperty(exports, "canPutArtifactStream", { enumerable: true, get: function () { return index_js_10.canPutArtifactStream; } });
Object.defineProperty(exports, "canStreamArtifacts", { enumerable: true, get: function () { return index_js_10.canStreamArtifacts; } });
// Artifacts, the CONFORMANCE battery — the laws a store must hold to claim the
// port, written once against the port and run against every store, in-tree or
// out. On the main barrel because that is where `ArtifactStore` itself ships:
// somebody implementing the port imports the check from the same door as the
// interface. Nothing in it imports a test framework — a case throws to fail —
// so it runs under vitest, jest, `node:test` or a plain script.
var index_js_11 = require("./artifacts/index.js");
Object.defineProperty(exports, "artifactStoreConformance", { enumerable: true, get: function () { return index_js_11.artifactStoreConformance; } });
Object.defineProperty(exports, "formatArtifactStoreReport", { enumerable: true, get: function () { return index_js_11.formatArtifactStoreReport; } });
Object.defineProperty(exports, "runArtifactStoreCase", { enumerable: true, get: function () { return index_js_11.runArtifactStoreCase; } });
Object.defineProperty(exports, "runArtifactStoreConformance", { enumerable: true, get: function () { return index_js_11.runArtifactStoreConformance; } });
// Artifacts, the data legs (9.22.0) — refs the model ROUTES: `wants` (ref
// arguments resolved at dispatch, the declare-and-push precedent applied to
// data), the auto-attached `present` tool (hand a ref to the screen with a
// description snapshot the transcript keeps), and the placement threshold
// (`artifacts: { store, placement }` — oversized results become claim
// tickets). All zero-cost without a store.
var index_js_12 = require("./artifacts/index.js");
Object.defineProperty(exports, "assertToolWants", { enumerable: true, get: function () { return index_js_12.assertToolWants; } });
Object.defineProperty(exports, "isPlacedToolResult", { enumerable: true, get: function () { return index_js_12.isPlacedToolResult; } });
Object.defineProperty(exports, "placedResultKind", { enumerable: true, get: function () { return index_js_12.placedResultKind; } });
Object.defineProperty(exports, "PRESENT_TOOL_NAME", { enumerable: true, get: function () { return index_js_12.PRESENT_TOOL_NAME; } });
// Slot subflow builders are intentionally NOT exported. They are
// internal helpers used only by `Agent.buildChart()` and
// `LLMCall.buildChart()` to construct each primitive's three-slot
// context-engineering subflow tree. Consumers compose at the
// primitive / composition level (Agent / LLMCall / Sequence / …) — they
// never construct slot subflows directly. Power-users authoring a
// custom Agent-like primitive should copy the pattern from
// `src/core/Agent.ts` rather than depend on a private helper surface.
// Compositions (core-flow/)
var Sequence_js_1 = require("./core-flow/Sequence.js");
Object.defineProperty(exports, "Sequence", { enumerable: true, get: function () { return Sequence_js_1.Sequence; } });
Object.defineProperty(exports, "SequenceBuilder", { enumerable: true, get: function () { return Sequence_js_1.SequenceBuilder; } });
var Parallel_js_1 = require("./core-flow/Parallel.js");
Object.defineProperty(exports, "Parallel", { enumerable: true, get: function () { return Parallel_js_1.Parallel; } });
Object.defineProperty(exports, "ParallelBuilder", { enumerable: true, get: function () { return Parallel_js_1.ParallelBuilder; } });
var Conditional_js_1 = require("./core-flow/Conditional.js");
Object.defineProperty(exports, "Conditional", { enumerable: true, get: function () { return Conditional_js_1.Conditional; } });
Object.defineProperty(exports, "ConditionalBuilder", { enumerable: true, get: function () { return Conditional_js_1.ConditionalBuilder; } });
var Loop_js_1 = require("./core-flow/Loop.js");
Object.defineProperty(exports, "Loop", { enumerable: true, get: function () { return Loop_js_1.Loop; } });
Object.defineProperty(exports, "LoopBuilder", { enumerable: true, get: function () { return Loop_js_1.LoopBuilder; } });
var Workflow_js_1 = require("./core-flow/Workflow.js");
Object.defineProperty(exports, "workflow", { enumerable: true, get: function () { return Workflow_js_1.workflow; } });
Object.defineProperty(exports, "Workflow", { enumerable: true, get: function () { return Workflow_js_1.Workflow; } });
var Graph_js_1 = require("./core-flow/Graph.js");
Object.defineProperty(exports, "graph", { enumerable: true, get: function () { return Graph_js_1.graph; } });
Object.defineProperty(exports, "Graph", { enumerable: true, get: function () { return Graph_js_1.Graph; } });
// Adapters — LLM providers
// `mock(...)` is the lowercase factory equivalent to `new MockProvider(...)`.
// `anthropic(...)` is the real Claude provider via `@anthropic-ai/sdk`.
// Zero-peer-dep providers — safe to re-export from the main barrel
// because bundlers walking these never touch optional peer-dep code.
//
// Vendor-SDK-backed providers (AnthropicProvider, OpenAIProvider,
// BedrockProvider) live ONLY at `agentfootprint/providers`. That
// subpath segregation means bundlers walking from `agentfootprint` main
// never see the lazy peer-dep requires for `@anthropic-ai/sdk`,
// `openai`, `@aws-sdk/client-bedrock-runtime`, etc. — automatic
// tree-shaking, no bundler-side workarounds.
//
//   import { AnthropicProvider } from 'agentfootprint';                  // ❌ not exported
//   import { AnthropicProvider } from 'agentfootprint/providers';        // ✓ canonical
var createProvider_js_1 = require("./adapters/llm/createProvider.js");
Object.defineProperty(exports, "providerFromEnv", { enumerable: true, get: function () { return createProvider_js_1.providerFromEnv; } });
// Streaming helpers — agent events → SSE for browser delivery.
// Injection Engine — the unifying primitive of context engineering.
// One Injection type, four sugar factories, one engine subflow.
// Patterns — factory functions composing primitives + core-flow into
// well-known agent patterns from the research literature.
__exportStar(require("./patterns/index.js"), exports);
// Memory subsystem — narrative beats, fact extraction, embedding-based
// retrieval, and pipelines that compose them. Top-level barrel exports
// the most-used factories; the full subsystem (including types that
// would collide with adapter types like MemoryStore) is reachable via
// the `agentfootprint/memory` subpath import.
// RAG — retrieval-augmented generation as a context-engineering flavor.
// Thin sugar over `defineMemory({ type: SEMANTIC, strategy: TOP_K })`
// plus the `indexDocuments` helper for seeding the corpus at startup.
var index_js_13 = require("./rag/retriever/index.js");
Object.defineProperty(exports, "defineRAG", { enumerable: true, get: function () { return index_js_13.defineRAG; } });
Object.defineProperty(exports, "DEFAULT_CORPUS_IDENTITY", { enumerable: true, get: function () { return index_js_13.DEFAULT_CORPUS_IDENTITY; } });
Object.defineProperty(exports, "indexDocuments", { enumerable: true, get: function () { return index_js_13.indexDocuments; } });
// The retrieval seam (8.8.0) — what a retrieval considered, and the rule
// that decided what it kept. `topK` is the rule every release before this
// one applied without naming it. The record types are here because a
// consumer reading `agentfootprint.memory.retrieved` needs them.
var index_js_14 = require("./memory/retrieval/index.js");
Object.defineProperty(exports, "topK", { enumerable: true, get: function () { return index_js_14.topK; } });
var index_js_15 = require("./answer-validation/index.js");
Object.defineProperty(exports, "AnswerValidationError", { enumerable: true, get: function () { return index_js_15.AnswerValidationError; } });
Object.defineProperty(exports, "checkClaimRequirements", { enumerable: true, get: function () { return index_js_15.checkClaimRequirements; } });
//# sourceMappingURL=index.js.map