import type { SessionGoalActivation } from '../../manager/goal/activation.js'; import { type SessionGoalStore } from '../../store/goal/index.js'; import type { HostCommandDescriptor } from '../../types/command/index.js'; import type { SessionId, TenantId } from '../../types/ids/index.js'; import type { Skill } from '../../types/skills/index.js'; import type { TaskStore } from '../../types/task/index.js'; /** * The commands whose facts the kernel already owns. * * A registry with nothing in it is a declaration, and this repo has a rule * about those. These are facts a host would otherwise have to reach into * kernel internals to answer: the current Session goal, tracked work, * operator-invocable skills, and the agents this turn may delegate to. Each is * computed or owned here and should not acquire a second host-specific source. * * Deliberately NOT here: anything that would need a decision the kernel * cannot make. `/clear` is about a transcript a host owns, `/login` about * credentials a host stores, `/model` about a picker a host draws. Adding * them would mean the SDK either rendering or refusing, and both are worse * than leaving the command with the host that can actually do it. */ export interface KernelCommandOptions { /** Absent is a real state — not every turn tracks tasks. */ readonly taskStore?: TaskStore; readonly allowedAgentIds?: readonly string[]; /** * The turn's skills, for the operator-facing half of the listing. * * Absent is a real state: a turn with no skills registry has none, which * is different from having none registered. */ readonly skills?: readonly Skill[]; /** Exact durable conversation scope behind the direct-human `/goal` command. */ readonly goal?: GoalCommandScope; } export interface GoalCommandScope { readonly store: SessionGoalStore; readonly sessionId: SessionId; readonly tenantId: TenantId; /** Process-local permission for automatic continuation. */ readonly activation?: SessionGoalActivation; } export declare function kernelHostCommands(options: KernelCommandOptions): HostCommandDescriptor[]; //# sourceMappingURL=kernel-commands.d.ts.map