import { Effect, Ref } from "effect"; import { AgentError, ToolNameCollision } from "./agent-event.js"; import type { AnyToolCall } from "./agent-tool-result.js"; import { FrameworkFailure, type Outcome } from "../tools/tool-executor.js"; import { type Registry } from "../tools/tool-registry.js"; import type { Skill, SkillSourceError } from "../context/skill-source.js"; /** @internal Mutable per-run tool state shared by the executing turn. */ export interface ToolState { readonly registry: Registry; readonly activatedSkillBodies: Map; } interface SkillActivationContext { readonly skillRuntime: { readonly source: { readonly get: (name: string) => Effect.Effect; }; } | undefined; readonly toolState: Ref.Ref; readonly skillError: (turn: number, error: SkillSourceError) => AgentError; } /** @internal Resolve one `activate_skill` call, registering the skill's tools and body in the run's tool state. */ export declare const makeActivateSkillOutcome: (context: SkillActivationContext) => (turn: number, call: AnyToolCall) => Effect.Effect; export {};