import type { SkillManager, SkillManagerConfig } from "./types"; /** * The live ownership record captured by every skill-owned tool wrapper. `tryEnter()` performs * the retired check and active-call increment in one synchronous operation; `exit()` decrements * it and releases a retired workspace when the last call finishes. Retirement is synchronous and * is performed only while the manager mutex is held. Every skill-owned tool wrapper — module * tools, isolated JS tools and scripts alike — must close over this exact record rather than * consulting a registry, because hydrated wrappers can outlive the context they were registered * in: unregistering reaches only the context that requested the unload, so the record is the * authority on liveness and the registry is not. */ export interface SkillRecord { readonly id: string; readonly version: string; readonly retired: boolean; tryEnter(): boolean; exit(): void; } /** * Create a skills manager. Construct one manager per conversation/session, alongside its runner; * share source objects when discovery caching is desired, but never share loaded manager state. */ export declare const createSkillManager: (config: SkillManagerConfig) => Promise;