/**
 * `SkillExecutor` — the Dependency-Inversion (DIP) seam for the GenKit-phase
 * skill dispatcher (P1 · T11476 · E-SKILL-EXECUTOR-CONTRACT · epic T11391).
 *
 * A **skill** is a multi-step capability composed from the atomic tool
 * primitives ({@link ./atomic.js}) — read/write/search/shell/etc. The atomic
 * tool layer is pure side-effect plumbing; the SKILLS layer is where those
 * primitives are sequenced into a unit of agent work (run a lint, scaffold a
 * file, summarize a tree). This module declares the ABSTRACTION the dispatcher
 * depends on so the concrete in-process implementation
 * (`SkillExecutorAdapter`, T11477) can be INJECTED rather than imported. That is
 * the classic DIP move: high-level dispatch policy and low-level execution
 * mechanism both depend on this contract, not on each other.
 *
 * ## Why it lives in `@cleocode/contracts`
 *
 * The skill dispatcher (a high-level orchestration concern) and the executor
 * adapter (a low-level mechanism wiring an LLM/GenKit flow over the guarded
 * tools) must agree on ONE shape without either importing the other. Putting the
 * interface here — alongside the atomic-tool I/O shapes it builds on — lets
 * `core`, `mcp-adapter`, `caamp`, and `cleo-os` bind to a single seam and lets
 * tests substitute a fake executor with no runtime dependency.
 *
 * ## Boundary contract (T11476 acceptance)
 *
 * - **AC1** — `execute({ skillId, context, tools }) -> Promise<{ status, output,
 *   error }>`. The result envelope intentionally mirrors the playbook runtime's
 *   `AgentDispatcher.dispatch()` result so a `SkillExecutor` reads as an
 *   in-process `AgentDispatcher` specialization (NOT a clone of it).
 * - **AC2** — depends ONLY on the guarded-tool surface ({@link GuardedToolSurface},
 *   itself derived purely from {@link ./atomic.js} I/O shapes) and contract-local
 *   types. ZERO `@cleocode/*` runtime coupling: the `tools` dependency is the
 *   structural shape of `@cleocode/core`'s `createToolGuard()` result, declared
 *   here so neither contracts nor the dispatcher import `core`.
 * - **AC3** — deliberately NOT named `SessionEngine` (that collides with
 *   `core/src/sessions/`). A `SkillExecutor` is an in-process
 *   `AgentDispatcher`-shaped executor, not a session lifecycle owner.
 *
 * Types-only — no runtime logic (Gate 10 `contracts-purity`).
 *
 * @epic T11391
 * @task T11476
 * @saga T11387
 * @see ./atomic.js — the tool I/O shapes this seam composes over
 */
export {};
//# sourceMappingURL=skill-executor.js.map