import type { Message } from "../types.js"; import { type ActiveSkillState } from "./skill-policy-enforcement.js"; /** * The single owner of the request-scoped active-skill state for one agent loop * attempt: which skill is active, which of its files are advertised, and how * that changes when a skill activates or a form input is submitted. * * Construct one instance per attempt via `hydrate`. Mutate it in place as tool * results arrive. Never share an instance across concurrent runs. This module * holds no module-level or static mutable state. `executeAgentLoop` and * `executeAgentLoopStreaming` each construct their own instance instead of * maintaining separate copies of the same transitions. */ export declare class AgentLoopSkillState { activeSkillId: ActiveSkillState["activeSkillId"]; activeSkillToolAvailability: ActiveSkillState["activeSkillToolAvailability"]; activeSkillDelegationOverrides: ActiveSkillState["activeSkillDelegationOverrides"]; hasSubmittedFormInput: boolean; private constructor(); /** Hydrate request-scoped skill state from replay history. */ static hydrate(messages: readonly Message[], runtimeContext: Record | undefined): AgentLoopSkillState; /** Fold a successful skill-activation tool result into the active skill state. */ applySuccessfulResult(result: unknown): void; /** * Record that a form_input result reported an actual submission. Callers * compute `submitted` with a broader predicate than this class applies * internally; they can disagree, so the flag cannot be recomputed here * without changing behavior. */ markFormInputSubmitted(submitted: boolean): void; } //# sourceMappingURL=agent-loop-skill-state.d.ts.map