/* Generated by @deepseek-ai/dsh-typert-generator from FaceModel — do not edit. */
import { z } from 'zod'

const _deepseek_ai_dsh_agent_presets_agentPresets_copy_parameter_0$schema = z.string()
const _deepseek_ai_dsh_agent_presets_agentPresets_copy_parameter_1$schema = z.string()
const _deepseek_ai_dsh_agent_presets_agentPresets_copy_parameter_2$schema = z.union([z.undefined(), z.string()])
const _deepseek_ai_dsh_agent_presets_agentPresets_copy_result$schema = z.void()
const _deepseek_ai_dsh_agent_presets_agentPresets_deletePreset_parameter_0$schema = z.string()
const _deepseek_ai_dsh_agent_presets_agentPresets_deletePreset_result$schema = z.void()
const _deepseek_ai_dsh_agent_presets_agentPresets_list_result$schema = z.object({
  'presets': z.array(z.object({
  'id': z.string().readonly(),
  'trust': z.union([z.literal("system"), z.literal("user")]).readonly(),
  'isDefault': z.boolean().readonly(),
  'name': z.string().readonly().optional(),
  'description': z.string().readonly().optional(),
  'broken': z.string().readonly().optional(),
})).readonly(),
  'authorable': z.boolean().readonly(),
})
const _deepseek_ai_dsh_agent_presets_agentPresets_read_parameter_0$schema = z.string()
const _deepseek_ai_dsh_agent_presets_agentPresets_read_result$schema = z.object({
  'agentPreset': z.string().readonly(),
  'trust': z.union([z.literal("system"), z.literal("user")]).readonly(),
  'content': z.string().readonly(),
  'name': z.string().readonly().optional(),
  'description': z.string().readonly().optional(),
})
const _deepseek_ai_dsh_agent_presets_agentPresets_select_parameter_0$schema = z.intersection(z.string(), z.unknown())
const _deepseek_ai_dsh_agent_presets_agentPresets_select_parameter_1$schema = z.string()
const _deepseek_ai_dsh_agent_presets_agentPresets_select_result$schema = z.string()

export const TYPERT = {
  package: '@deepseek-ai/dsh-agent-presets',
  face: 'host',
  schemas: [
  ],
  invocations: [
    {
      id: '@deepseek-ai/dsh-agent-presets#agentPresets/copy',
      service: 'agentPresets',
      namespace: 'agentPresets',
      method: 'copy',
      implementation: 'remoteExportCopy',
      invocation: { kind: 'direct' },
      parameters: [
        {
          name: 'from',
          wire: 'from',
          source: 'json',
          codec: {
            mode: 'strict',
            typeSymbol: '@deepseek-ai/dsh-agent-presets#agentPresets/copy:from',
            schema: _deepseek_ai_dsh_agent_presets_agentPresets_copy_parameter_0$schema,
          },
        },
        {
          name: 'id',
          wire: 'id',
          source: 'json',
          codec: {
            mode: 'strict',
            typeSymbol: '@deepseek-ai/dsh-agent-presets#agentPresets/copy:id',
            schema: _deepseek_ai_dsh_agent_presets_agentPresets_copy_parameter_1$schema,
          },
        },
        {
          name: 'name',
          wire: 'name',
          source: 'json',
          acceptsUndefined: true,
          codec: {
            mode: 'strict',
            typeSymbol: '@deepseek-ai/dsh-agent-presets#agentPresets/copy:name',
            schema: _deepseek_ai_dsh_agent_presets_agentPresets_copy_parameter_2$schema,
          },
        },
      ],
      result: {
        mode: 'strict',
        typeSymbol: '@deepseek-ai/dsh-agent-presets#agentPresets/copy:result',
        schema: _deepseek_ai_dsh_agent_presets_agentPresets_copy_result$schema,
      },
      sourceLocation: {"file":"packages/preset/agent-presets/src/index.ts","line":560,"column":9},
    },
    {
      id: '@deepseek-ai/dsh-agent-presets#agentPresets/deletePreset',
      service: 'agentPresets',
      namespace: 'agentPresets',
      method: 'deletePreset',
      implementation: 'remoteExportDelete',
      invocation: { kind: 'direct' },
      parameters: [
        {
          name: 'id',
          wire: 'id',
          source: 'json',
          codec: {
            mode: 'strict',
            typeSymbol: '@deepseek-ai/dsh-agent-presets#agentPresets/deletePreset:id',
            schema: _deepseek_ai_dsh_agent_presets_agentPresets_deletePreset_parameter_0$schema,
          },
        },
      ],
      result: {
        mode: 'strict',
        typeSymbol: '@deepseek-ai/dsh-agent-presets#agentPresets/deletePreset:result',
        schema: _deepseek_ai_dsh_agent_presets_agentPresets_deletePreset_result$schema,
      },
      sourceLocation: {"file":"packages/preset/agent-presets/src/index.ts","line":602,"column":9},
    },
    {
      id: '@deepseek-ai/dsh-agent-presets#agentPresets/list',
      service: 'agentPresets',
      namespace: 'agentPresets',
      method: 'list',
      implementation: 'remoteExportList',
      invocation: { kind: 'direct' },
      parameters: [
      ],
      result: {
        mode: 'strict',
        typeSymbol: '@deepseek-ai/dsh-agent-presets/types#AgentPresetRoster',
        schema: _deepseek_ai_dsh_agent_presets_agentPresets_list_result$schema,
      },
      sourceLocation: {"file":"packages/preset/agent-presets/src/index.ts","line":318,"column":9},
    },
    {
      id: '@deepseek-ai/dsh-agent-presets#agentPresets/read',
      service: 'agentPresets',
      namespace: 'agentPresets',
      method: 'read',
      implementation: 'readDocument',
      invocation: { kind: 'direct' },
      parameters: [
        {
          name: 'agentPreset',
          wire: 'agentPreset',
          source: 'json',
          codec: {
            mode: 'strict',
            typeSymbol: '@deepseek-ai/dsh-agent-presets#agentPresets/read:agentPreset',
            schema: _deepseek_ai_dsh_agent_presets_agentPresets_read_parameter_0$schema,
          },
        },
      ],
      result: {
        mode: 'strict',
        typeSymbol: '@deepseek-ai/dsh-agent-presets/types#AgentPresetDocument',
        schema: _deepseek_ai_dsh_agent_presets_agentPresets_read_result$schema,
      },
      sourceLocation: {"file":"packages/preset/agent-presets/src/index.ts","line":504,"column":9},
    },
    {
      id: '@deepseek-ai/dsh-agent-presets#agentPresets/select',
      service: 'agentPresets',
      namespace: 'agentPresets',
      method: 'select',
      invocation: { kind: 'direct' },
      scope: {
        context: 'agent',
        wire: 'agentId',
      },
      parameters: [
        {
          name: 'agent',
          wire: 'agentId',
          source: 'lookup',
          lookup: 'agent',
          codec: {
            mode: 'strict',
            typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
            schema: _deepseek_ai_dsh_agent_presets_agentPresets_select_parameter_0$schema,
          },
        },
        {
          name: 'agentPreset',
          wire: 'agentPreset',
          source: 'json',
          codec: {
            mode: 'strict',
            typeSymbol: '@deepseek-ai/dsh-agent-presets#agentPresets/select:agentPreset',
            schema: _deepseek_ai_dsh_agent_presets_agentPresets_select_parameter_1$schema,
          },
        },
      ],
      result: {
        mode: 'strict',
        typeSymbol: '@deepseek-ai/dsh-agent-presets#agentPresets/select:result',
        schema: _deepseek_ai_dsh_agent_presets_agentPresets_select_result$schema,
      },
      sourceLocation: {"file":"packages/preset/agent-presets/src/index.ts","line":698,"column":9},
    },
  ],
  model: {
    "services": [
      {
        "description": "Registry over the deployment's agent presets. Discovery is unmemoized: `list()` and `resolve()` re-read the roots on every call so a preset authored while the process runs is visible immediately, and a preset deleted underneath a picker disappears from the next read.",
        "summary": "Registry over the deployment's agent presets.",
        "tags": [],
        "jsDoc": "/**\n * Registry over the deployment's agent presets.\n *\n * Discovery is unmemoized: `list()` and `resolve()` re-read the roots on every\n * call so a preset authored while the process runs is visible immediately,\n * and a preset deleted underneath a picker disappears from the next read.\n */",
        "key": "agentPresets",
        "exportName": "AgentPresets",
        "members": [
          {
            "kind": "getter",
            "name": "defaultId",
            "signature": "get defaultId(): string",
            "summary": "The preset id mounted when a caller names none.",
            "jsDoc": "/**\n * The preset id mounted when a caller names none.\n *\n * Read per call rather than cached: the settings document is hot-reloaded, so\n * changing the default takes effect on the next session created and leaves\n * every running session on the preset it was composed from.\n */"
          },
          {
            "kind": "method",
            "name": "list",
            "signature": "async list(): Promise<AgentPreset[]>",
            "summary": "Every preset the configured roots currently supply.",
            "jsDoc": "/**\n * Every preset the configured roots currently supply.\n * @returns the presets, first-root-wins per id.\n */"
          },
          {
            "kind": "method",
            "name": "remoteExportList",
            "signature": "@Remote('list') async remoteExportList(): Promise<AgentPresetRoster>",
            "summary": "The roster off the Host: {@link list} projected to path-free rows, with the default marked and this deployment's authoring capability beside it.",
            "jsDoc": "/**\n * The roster off the Host: {@link list} projected to path-free rows, with\n * the default marked and this deployment's authoring capability beside it.\n *\n * Whether a client can open a preset's directory is the Host's own opener\n * capability, not a roster property — a caller needing both joins them.\n * @returns the rows and the authoring capability.\n */"
          },
          {
            "kind": "method",
            "name": "resolve",
            "signature": "async resolve(id?: string): Promise<AgentPreset>",
            "summary": "Resolve one preset by id.",
            "jsDoc": "/**\n * Resolve one preset by id.\n *\n * A broken preset resolves — deleting one, reading one, and reporting one\n * all need the row — and the mounting paths refuse it AFTER resolution\n * through {@link resolveMountable}.\n * @param id - the preset id, or `undefined` for {@link defaultId}.\n * @returns the resolved preset.\n * @throws when no configured root supplies that id.\n */"
          },
          {
            "kind": "method",
            "name": "mount",
            "signature": "async mount(agentCtx: Context, id?: string): Promise<AgentPreset>",
            "summary": "Compose one agent from a preset: ensure the preset's standing mount, then parent the agent's scope key to it so the mount's registrations and listeners cover this agent.",
            "jsDoc": "/**\n * Compose one agent from a preset: ensure the preset's standing mount, then\n * parent the agent's scope key to it so the mount's registrations and\n * listeners cover this agent.\n *\n * Call from the agent factory's `setup(agentCtx)`; a rejection there rolls\n * the agent creation back, so a broken preset never yields a half-composed\n * session.\n * @param agentCtx - the agent's scope context.\n * @param id - the preset id, or `undefined` for {@link defaultId}.\n * @returns the preset that was composed, for the caller to record.\n * @throws when the preset is unknown or its composition is unusable.\n */"
          },
          {
            "kind": "method",
            "name": "composeFrom",
            "signature": "composeFrom(agentCtx: Context, parentCtx: Context): string | undefined",
            "summary": "Join one agent to the SAME standing composition another already runs on.",
            "jsDoc": "/**\n * Join one agent to the SAME standing composition another already runs on.\n *\n * This is how a child agent inherits its parent's capabilities. It is a bind,\n * not a mount: the parent's generation is already composed, so the child gets\n * that exact instance — the same plugin objects, the same tool registrations,\n * the same prompt sections. Re-resolving the parent's preset by id instead\n * would re-read the roster, and a composition file edited since the parent\n * started would hand the child a DIFFERENT generation than the one its\n * parent's history was produced under (and a preset deleted since would fail\n * the child outright while its parent keeps running).\n *\n * Synchronous, and with no composition failure mode of its own — it reads no\n * roster, mounts nothing, and touches no file — which is what lets a child\n * creation window use it: the two in-process subagent drivers compose their\n * children inside a synchronous `setup`. It still rejects a caller error, as\n * the `@throws` below record.\n *\n * A parent that joined no preset — a rosterless deployment — yields no join\n * and no error: there, the model-facing rows sit in the host composition and\n * the child already sees them through the global layer.\n * @param agentCtx - the joining agent's scope context.\n * @param parentCtx - the scope context of the agent whose composition to join.\n * @returns the preset id joined, or undefined when the parent joined none.\n * @throws when `agentCtx` carries no scope, or has already joined a preset.\n */"
          },
          {
            "kind": "method",
            "name": "composedPreset",
            "signature": "composedPreset(agentCtx: Context): string | undefined",
            "summary": "The preset one live agent runs on.",
            "jsDoc": "/**\n * The preset one live agent runs on.\n *\n * Read from the live scope chain rather than from the session, so it answers\n * for an agent whose session has not recorded a preset yet — a child agent\n * whose durable header is being built from its parent's composition.\n * @param agentCtx - the agent's scope context.\n * @returns the preset id, or undefined when the agent joined none.\n */"
          },
          {
            "kind": "getter",
            "name": "roots",
            "signature": "get roots(): readonly PresetRoot[]",
            "summary": "The roots this roster scans, which is not `config.roots`: the package's shipped root unless `includeShippedRoot` is false, every configured root in order, then the harness-home user root unless `includeUserRoot` is false.",
            "jsDoc": "/**\n * The roots this roster scans, which is not `config.roots`: the package's\n * shipped root unless `includeShippedRoot` is false, every configured root\n * in order, then the harness-home user root unless `includeUserRoot` is\n * false. Read this — not the config field — to answer whether a roster is\n * composed at all, so one derivation decides it.\n */"
          },
          {
            "kind": "getter",
            "name": "authorable",
            "signature": "get authorable(): boolean",
            "summary": "Whether this deployment has a root locally authored presets go to.",
            "jsDoc": "/** Whether this deployment has a root locally authored presets go to. */"
          },
          {
            "kind": "method",
            "name": "read",
            "signature": "async read(id: string): Promise<string>",
            "summary": "Read one preset's composition text.",
            "jsDoc": "/**\n * Read one preset's composition text.\n * @param id - the preset id.\n * @returns the composition exactly as stored.\n * @throws when no configured root supplies that id.\n */"
          },
          {
            "kind": "method",
            "name": "readDocument",
            "signature": "@Remote('read') async readDocument(agentPreset: string): Promise<AgentPresetDocument>",
            "summary": "One preset's composition text with the roster row it belongs to.",
            "jsDoc": "/**\n * One preset's composition text with the roster row it belongs to.\n * @param agentPreset - the preset id.\n * @returns the composition beside its trust and published metadata.\n * @throws {TypertRemoteFailure} `bad-request` for an empty id, or\n * `agent-preset-not-found` when no configured root supplies it.\n */"
          },
          {
            "kind": "method",
            "name": "copy",
            "signature": "async copy(from: string, id: string, name?: string): Promise<void>",
            "summary": "Create a locally authored preset by copying an existing one whole.",
            "jsDoc": "/**\n * Create a locally authored preset by copying an existing one whole.\n *\n * Copy is the only authoring write. Composition text never crosses this\n * seam: the source is named by id and its directory is copied as it stands,\n * so the copy is exactly as loadable as its source and authoring grants no\n * capability the roster did not already carry. The copy is NOT mounted to\n * validate — a source that mounts today yields a copy that mounts today.\n * @param from - the preset the copy starts from; shipped presets are the\n * primary source, so any trust is accepted.\n * @param id - the new preset's id, which becomes its directory name.\n * @param name - display name for the copy; absent falls back to the id.\n * @throws when the source is unknown, the id is unusable or already taken,\n * or the deployment configures no writable root.\n */"
          },
          {
            "kind": "method",
            "name": "remoteExportCopy",
            "signature": "@Remote('copy') async remoteExportCopy(from: string, id: string, name?: string): Promise<void>",
            "summary": "Copy one preset through the Remote API.",
            "jsDoc": "/**\n * Copy one preset through the Remote API.\n * @param from - the source preset id.\n * @param id - the new preset id.\n * @param name - the copy's optional display name.\n * @returns once the copy is stored.\n * @throws {TypertRemoteFailure} with the corresponding stable preset code\n * and details when the copy is refused.\n */"
          },
          {
            "kind": "method",
            "name": "remove",
            "signature": "async remove(id: string): Promise<void>",
            "summary": "Delete a locally authored preset.",
            "jsDoc": "/**\n * Delete a locally authored preset.\n *\n * @param id - the preset id.\n * @throws when the preset is unknown or ships with the deployment.\n */"
          },
          {
            "kind": "method",
            "name": "remoteExportDelete",
            "signature": "@Remote('deletePreset') async remoteExportDelete(id: string): Promise<void>",
            "summary": "Delete one preset through the Remote API.",
            "jsDoc": "/**\n * Delete one preset through the Remote API.\n * @param id - the preset id.\n * @returns once the preset is deleted.\n * @throws {TypertRemoteFailure} with the corresponding stable preset code\n * and details when deletion is refused.\n */"
          },
          {
            "kind": "method",
            "name": "serviceFor",
            "signature": "serviceFor<K extends string & keyof Context>(agent: { ctx: Context }, name: K): Context[K] | undefined",
            "summary": "One agent's instance of a service its preset mounted.",
            "jsDoc": "/**\n * One agent's instance of a service its preset mounted.\n *\n * A preset publishes services behind `isolate` realms, which are invisible\n * outside the group that declares them — including to the host. This is how a\n * caller holding the agent reads one anyway: a request that is ABOUT a\n * session but arrives from outside it, which is every browser RPC.\n *\n * Read addressing only. A host row that `inject`s a service cannot use this,\n * because injection resolves before any session exists and has no agent to\n * key by; such a service belongs on the host plane instead.\n * @param agent - the agent whose composition to look inside.\n * @param name - the service name as the preset's rows resolve it.\n * @returns the agent's instance, or undefined when its preset mounts none.\n */"
          },
          {
            "kind": "method",
            "name": "recompose",
            "signature": "async recompose(agentCtx: Context, id: string): Promise<AgentPreset>",
            "summary": "Re-link one agent to a different preset's standing composition.",
            "jsDoc": "/**\n * Re-link one agent to a different preset's standing composition.\n *\n * Only valid while the agent has produced nothing: swapping tools mid\n * conversation would leave logged tool calls the new composition cannot\n * make. The CALLER owns that check — this method does not read session\n * history.\n *\n * The swap is a parent re-link, not an unmount: standing mounts are shared\n * and permanent, so the old composition stays for its other agents and the\n * new one is ensured BEFORE the link moves. An unknown or unusable preset\n * therefore throws with the agent exactly as it was — there is no torn-down\n * state to restore. The re-link runs through the binding this roster kept\n * from the agent's mount — dsh-scope's only re-link authority. An agent\n * that never composed one has nothing to re-link: the switch is then the\n * agent's first bind, exactly a mount. A committed re-link emits\n * `tools/change` because changing the parent scope changes the Agent's\n * resolved tool set without adding or removing registry entries.\n * @param agentCtx - the agent's scope context.\n * @param id - the preset to compose the agent from instead.\n * @returns the preset now installed.\n * @throws when the preset is unknown or its composition is unusable.\n */"
          },
          {
            "kind": "method",
            "name": "select",
            "signature": "@Remote('select') async select(agent: Agent, agentPreset: string): Promise<string>",
            "summary": "Compose a blank session's agent from a different preset and record it.",
            "jsDoc": "/**\n * Compose a blank session's agent from a different preset and record it.\n * @param agent - the session's live agent, resolved from the wire identity.\n * @param agentPreset - the preset to compose the agent from instead.\n * @returns the preset id that was recorded.\n * @throws {TypertRemoteFailure} with `bad-request`, `agent-preset-locked`,\n * `agent-preset-not-found`, or `agent-preset-invalid` when refused.\n */"
          },
          {
            "kind": "method",
            "name": "standingKeyFor",
            "signature": "async standingKeyFor(id?: string): Promise<ScopeKey>",
            "summary": "The standing scope key of one preset, for a host reader with no agent.",
            "jsDoc": "/**\n * The standing scope key of one preset, for a host reader with no agent.\n *\n * A cold transcript read resolves tool presenters against the composition\n * the session recorded, and the standing mount makes that possible without\n * resuming anything: ensuring the mount composes plugins but starts no\n * agent, no session, and no turn.\n * @param id - the preset id, or `undefined` for {@link defaultId}.\n * @returns the standing scope key readers pass as a registry view scope.\n * @throws when the preset is unknown or its composition is unusable.\n */"
          }
        ],
        "types": [
          {
            "name": "Agent",
            "declaration": "export interface Agent {\n    readonly id: SessionId;\n    readonly options: AgentOptions;\n    readonly session: Session;\n    readonly inbox: Inbox;\n    readonly status: AgentStatus;\n    readonly ctx: Context;\n    cancel(cause: AgentCancelCause, options?: CancelOptions): void;\n    whenIdle(): Promise<void>;\n    runMaintenance<T>(task: (signal: AbortSignal) => Promise<T>): Promise<T>;\n    send(message: UserMessage, target: InboxTarget, wakeup: boolean): void;\n    followup(message: UserMessage): void;\n    steer(message: UserMessage): void;\n    inject(message: UserMessage): void;\n}"
          },
          {
            "name": "AgentCancelCause",
            "declaration": "export type AgentCancelCause = { readonly kind: 'user'; } | { readonly kind: 'parent'; } | { readonly kind: 'hook'; readonly reason: string; } | { readonly kind: 'disposed'; };"
          },
          {
            "name": "AgentOptions",
            "declaration": "export interface AgentOptions {\n    provider?: string;\n    model?: string;\n    reasoningEffort?: ReasoningEffortId;\n    maxTokens?: number;\n    subagentDepth?: number;\n}"
          },
          {
            "name": "AgentPreset",
            "declaration": "export interface AgentPreset {\n    readonly id: string;\n    readonly trust: PresetTrust;\n    readonly path: string;\n    readonly name?: string;\n    readonly description?: string;\n    readonly order?: number;\n    readonly broken?: string;\n}"
          },
          {
            "name": "AgentPresetDocument",
            "declaration": "export interface AgentPresetDocument {\n    readonly agentPreset: string;\n    readonly trust: PresetTrust;\n    readonly content: string;\n    readonly name?: string;\n    readonly description?: string;\n}"
          },
          {
            "name": "AgentPresetRoster",
            "declaration": "export interface AgentPresetRoster {\n    readonly presets: readonly AgentPresetRow[];\n    readonly authorable: boolean;\n}"
          },
          {
            "name": "AgentPresetRow",
            "declaration": "export interface AgentPresetRow {\n    readonly id: string;\n    readonly trust: PresetTrust;\n    readonly isDefault: boolean;\n    readonly name?: string;\n    readonly description?: string;\n    readonly broken?: string;\n}"
          },
          {
            "name": "AgentStatus",
            "declaration": "export type AgentStatus = 'idle' | 'running';"
          },
          {
            "name": "ApprovalOutcome",
            "declaration": "export type ApprovalOutcome = 'allowed-once' | 'rejected' | 'cancelled' | 'unavailable';"
          },
          {
            "name": "ApprovalPolicy",
            "declaration": "export type ApprovalPolicy = 'ask' | 'never';"
          },
          {
            "name": "ApprovalRequestId",
            "declaration": "export type ApprovalRequestId = Branded<'ApprovalRequestId'>;"
          },
          {
            "name": "AssistantMessage",
            "declaration": "export interface AssistantMessage extends Message {\n    readonly role: 'assistant';\n    readonly source: ModelMessageSource;\n}"
          },
          {
            "name": "AssistantProvenance",
            "declaration": "export interface AssistantProvenance {\n    provider: string;\n    model: string;\n    replayState?: unknown;\n}"
          },
          {
            "name": "AttachmentId",
            "declaration": "export type AttachmentId = Branded<'AttachmentId'>;"
          },
          {
            "name": "Branded",
            "declaration": "export type Branded<B extends string> = string & { readonly [BRAND]: B; };"
          },
          {
            "name": "CancelOptions",
            "declaration": "export interface CancelOptions {\n    keepInbox?: boolean | undefined;\n}"
          },
          {
            "name": "CommandId",
            "declaration": "export type CommandId = Branded<'CommandId'>;"
          },
          {
            "name": "CommandSource",
            "declaration": "export type CommandSource = CommandSourceMap[keyof CommandSourceMap];"
          },
          {
            "name": "CommandSourceMap",
            "declaration": "export interface CommandSourceMap {\n    user: { kind: 'user'; };\n}"
          },
          {
            "name": "CompactionId",
            "declaration": "export type CompactionId = Branded<'CompactionId'>;"
          },
          {
            "name": "ContentBlock",
            "declaration": "export type ContentBlock = ContentBlockMap[ContentBlockType];"
          },
          {
            "name": "ContentBlockMap",
            "declaration": "export interface ContentBlockMap {\n    text: TextBlock;\n    reasoning: ReasoningBlock;\n    image: ImageBlock;\n    'tool-call': ToolCallBlock;\n    'tool-result': ToolResultBlock;\n}"
          },
          {
            "name": "ContentBlockType",
            "declaration": "export type ContentBlockType = keyof ContentBlockMap;"
          },
          {
            "name": "ContextFormed",
            "declaration": "export type ContextFormed = { readonly form?: never; } | { readonly form: 'instructions'; } | { readonly form: 'catalog'; } | { readonly form: 'snapshot'; readonly sections: readonly ContextSnapshotSection[]; } | { readonly form: 'notice'; readonly summary: string; } | { readonly form: 'relay'; } | { readonly form: 'recall'; };"
          },
          {
            "name": "ContextSnapshotSection",
            "declaration": "export interface ContextSnapshotSection {\n    readonly name: string;\n    readonly text: string;\n}"
          },
          {
            "name": "ContinuableSubagentDescriptorData",
            "declaration": "export interface ContinuableSubagentDescriptorData extends SubagentDescriptorBase {\n    readonly mode: 'continuable';\n    readonly label: string;\n    readonly agentProvider?: string;\n    readonly agentModel?: string;\n    readonly agentReasoningEffort?: ReasoningEffortId;\n    readonly persona?: string;\n    readonly toolFilter?: ToolRestriction;\n}"
          },
          {
            "name": "CoordinatorMessageSource",
            "declaration": "export interface CoordinatorMessageSource {\n    readonly kind: 'coordinator';\n    readonly form: 'relay';\n    readonly senderSessionId: SessionId;\n}"
          },
          {
            "name": "EpochHeader",
            "declaration": "export interface EpochHeader {\n    config: LlmCallConfig;\n    adapterDefaults?: LlmCallConfigAdapterDefaults;\n    system?: string;\n    tools?: ToolSchema[];\n}"
          },
          {
            "name": "FinishReason",
            "declaration": "export type FinishReason = FinishReasonMap[keyof FinishReasonMap];"
          },
          {
            "name": "FinishReasonMap",
            "declaration": "export interface FinishReasonMap {\n    stop: { kind: 'stop'; };\n    'tool-calls': { kind: 'tool-calls'; };\n    'max-tokens': { kind: 'max-tokens'; };\n    aborted: { kind: 'aborted'; failure: LlmFailure; };\n    error: { kind: 'error'; failure: LlmFailure; };\n}"
          },
          {
            "name": "GoalBlockReason",
            "declaration": "export interface GoalBlockReason {\n    readonly code: string;\n    readonly message: string;\n}"
          },
          {
            "name": "GoalChangeMeta",
            "declaration": "export type GoalChangeMeta = GoalSnapshotChangeMeta | GoalClearChangeMeta;"
          },
          {
            "name": "GoalClearChangeMeta",
            "declaration": "export interface GoalClearChangeMeta {\n    readonly kind: 'goal/change';\n    readonly version: 1;\n    readonly operation: 'clear';\n    readonly cleared: GoalRef;\n    readonly clearedAt: number;\n}"
          },
          {
            "name": "GoalId",
            "declaration": "export type GoalId = Branded<'GoalId'>;"
          },
          {
            "name": "GoalMessageSource",
            "declaration": "export interface GoalMessageSource {\n    readonly kind: 'goal';\n    readonly goalId: GoalId;\n    readonly revision: number;\n    readonly round: number;\n}"
          },
          {
            "name": "GoalOperation",
            "declaration": "export type GoalOperation = 'create' | 'edit' | 'pause' | 'resume' | 'complete' | 'block' | 'clear';"
          },
          {
            "name": "GoalPhase",
            "declaration": "export type GoalPhase = 'active' | 'paused' | 'blocked' | 'complete';"
          },
          {
            "name": "GoalRef",
            "declaration": "export interface GoalRef {\n    readonly id: GoalId;\n    readonly revision: number;\n}"
          },
          {
            "name": "GoalSnapshot",
            "declaration": "export interface GoalSnapshot extends GoalRef {\n    readonly objective: string;\n    readonly phase: GoalPhase;\n    readonly blockedReason?: GoalBlockReason;\n    readonly maxGoalRounds: number;\n}"
          },
          {
            "name": "GoalSnapshotChangeMeta",
            "declaration": "export interface GoalSnapshotChangeMeta {\n    readonly kind: 'goal/change';\n    readonly version: 1;\n    readonly operation: Exclude<GoalOperation, 'clear'>;\n    readonly goal: GoalSnapshot;\n    readonly roundsStarted: number;\n    readonly createdAt: number;\n    readonly updatedAt: number;\n}"
          },
          {
            "name": "ImageAttachmentRef",
            "declaration": "export interface ImageAttachmentRef {\n    attachmentId: AttachmentId;\n    mediaType: ImageMediaType;\n    bytes: number;\n    width: number;\n    height: number;\n    name?: string;\n    originalDimensions?: { width: number; height: number; };\n}"
          },
          {
            "name": "ImageBlock",
            "declaration": "export interface ImageBlock {\n    type: 'image';\n    attachment: ImageAttachmentRef;\n}"
          },
          {
            "name": "ImageMediaType",
            "declaration": "export type ImageMediaType = 'image/png' | 'image/jpeg' | 'image/webp' | 'image/gif';"
          },
          {
            "name": "Inbox",
            "declaration": "export class Inbox {\n    get nextTurn(): readonly UserMessage[];\n    get nextStep(): readonly UserMessage[];\n    get hasPending(): boolean;\n    clear(): void;\n    claim(target: InboxTarget, turn: number): UserMessage[];\n    append(target: InboxTarget, message: UserMessage): void;\n    prepend(target: InboxTarget, message: UserMessage): void;\n    replace(messageId: MessageId, newMessage: UserMessage): boolean;\n    remove(messageId: MessageId): boolean;\n    splice(target: InboxTarget, start: number, deleteCount: number, inserted: UserMessage[]): UserMessage[];\n}"
          },
          {
            "name": "InboxTarget",
            "declaration": "export type InboxTarget = 'next-turn' | 'next-step';"
          },
          {
            "name": "JsonValue",
            "declaration": "export type JsonValue = null | boolean | number | string | JsonValue[] | { [key: string]: JsonValue; };"
          },
          {
            "name": "LlmCallConfig",
            "declaration": "export interface LlmCallConfig {\n    provider: string;\n    model: string;\n    reasoningEffort?: ReasoningEffortId;\n    temperature?: number;\n    maxTokens?: number;\n    stop?: string[];\n}"
          },
          {
            "name": "LlmCallConfigAdapterDefaults",
            "declaration": "export interface LlmCallConfigAdapterDefaults {\n    reasoningEffort?: true;\n    maxTokens?: true;\n}"
          },
          {
            "name": "LlmFailure",
            "declaration": "export interface LlmFailure {\n    readonly message: string;\n    readonly code: string;\n    readonly status?: number;\n    readonly providerRetryAfterMs?: number;\n    readonly requestId?: ProviderRequestId;\n}"
          },
          {
            "name": "Message",
            "declaration": "export interface Message {\n    readonly id: MessageId;\n    readonly role: 'system' | 'user' | 'assistant';\n    readonly content: ContentBlock[];\n    readonly source: MessageSource;\n}"
          },
          {
            "name": "MessageId",
            "declaration": "export type MessageId = Branded<'MessageId'>;"
          },
          {
            "name": "MessageSource",
            "declaration": "export type MessageSource = MessageSourceMap[keyof MessageSourceMap];"
          },
          {
            "name": "MessageSourceMap",
            "declaration": "export interface MessageSourceMap {\n    user: { kind: 'user'; };\n    plugin: { kind: 'plugin'; plugin: string; } & ContextFormed;\n    model: ModelMessageSource;\n    tool: ToolMessageSource;\n    'user-rpc': { kind: 'user'; rpcId: SessionRequestId; clientTimeZone?: string; };\n    coordinator: CoordinatorMessageSource;\n    'subagent-report': SubagentReportMessageSource;\n    'subagent-settled': SubagentSettledMessageSource;\n    'skill-invocation': SkillInvocationSource;\n    'team-message': TeamMessageSource;\n    goal: GoalMessageSource;\n    'session-reference': SessionReferenceSource;\n}"
          },
          {
            "name": "ModelMessageSource",
            "declaration": "export interface ModelMessageSource extends AssistantProvenance {\n    kind: 'model';\n}"
          },
          {
            "name": "ModelSelection",
            "declaration": "export interface ModelSelection {\n    readonly provider: string;\n    readonly model: string;\n    readonly reasoningEffort?: string;\n}"
          },
          {
            "name": "OneShotSubagentDescriptorData",
            "declaration": "export interface OneShotSubagentDescriptorData extends SubagentDescriptorBase {\n    readonly mode: 'one-shot';\n    readonly label?: string;\n}"
          },
          {
            "name": "PresetRoot",
            "declaration": "export interface PresetRoot {\n    path: string;\n    trust: PresetTrust;\n}"
          },
          {
            "name": "PresetTrust",
            "declaration": "export type PresetTrust = 'system' | 'user';"
          },
          {
            "name": "ProviderRequestId",
            "declaration": "export type ProviderRequestId = Branded<'ProviderRequestId'>;"
          },
          {
            "name": "PtcDispatchEventData",
            "declaration": "export interface PtcDispatchEventData extends PtcDispatchStartEventData {\n    isError: boolean;\n    content: ContentBlock[];\n}"
          },
          {
            "name": "PtcDispatchStartEventData",
            "declaration": "export interface PtcDispatchStartEventData {\n    rootCallId: ToolCallId;\n    parentCallId: ToolCallId;\n    subCallId: ToolCallId;\n    name: string;\n    arguments: unknown;\n}"
          },
          {
            "name": "ReasoningBlock",
            "declaration": "export interface ReasoningBlock {\n    type: 'reasoning';\n    text: string;\n}"
          },
          {
            "name": "ReasoningEffortId",
            "declaration": "export type ReasoningEffortId = Branded<'ReasoningEffortId'>;"
          },
          {
            "name": "ReplayEnvelope",
            "declaration": "export interface ReplayEnvelope {\n    response: unknown;\n    blocks?: readonly unknown[];\n}"
          },
          {
            "name": "RequestContext",
            "declaration": "export interface RequestContext {\n    provider: string;\n    model: string;\n    contextWindow?: number;\n}"
          },
          {
            "name": "RequestHeaderReason",
            "declaration": "export type RequestHeaderReason = 'initial' | 'resume' | 'change' | 'series';"
          },
          {
            "name": "SandboxMode",
            "declaration": "export type SandboxMode = 'read-only' | 'workspace-write' | 'danger-full-access';"
          },
          {
            "name": "ScopeKey",
            "declaration": "export type ScopeKey = object;"
          },
          {
            "name": "Session",
            "declaration": "export class Session {\n    get surface(): SessionSurface;\n    readonly header: SessionHeader;\n    get id(): SessionId;\n    readonly firstLiveSeq: number;\n    get events(): readonly SessionEvent[];\n    get seq(): number;\n    append<T extends SessionEventType>(type: T, data: SessionEventMap[T], ...opts: T extends SurfaceEventType ? [opts: SurfaceIntent] : []): SessionEvent<T>;\n    requestHeader(): EpochHeader | undefined;\n    requestContext(): RequestContext | undefined;\n    deriveMessages(): Message[];\n    deriveEventMessage(event: SessionEvent): Message | null;\n}"
          },
          {
            "name": "SessionEvent",
            "declaration": "export type SessionEvent<T extends SessionEventType = SessionEventType> = { [K in SessionEventType]: { type: K; seq: number; time: number; data: SessionEventMap[K]; } & (K extends SurfaceEventType ? { sourceEventSeqs?: number[]; surfaceOp?: SurfaceOp; } : object) }[T];"
          },
          {
            "name": "SessionEventMap",
            "declaration": "export interface SessionEventMap {\n    'turn/start': { turn: number; };\n    'turn/end': { turn: number; reason: TurnEndReason; };\n    'step/start': { turn: number; step: number; };\n    'step/end': { turn: number; step: number; };\n    'user/message': UserMessage;\n    'assistant/chunk': { turn: number; step: number; chunk: StreamChunk; };\n    'assistant/message': { turn: number; step: number; message: AssistantMessage; usage?: TokenUsage; interrupted?: true; };\n    'tool/call': { turn: number; step: number; callId: ToolCallId; name: string; arguments: string; };\n    'tool/result': { turn: number; step: number; message: ToolResultMessage; error?: { name: string; code: string; }; meta?: JsonValue; };\n    'request/header': { header: EpochHeader; reason: RequestHeaderReason; startsSeries?: true; };\n    'request/context': RequestContext;\n    'session/end-seed': Record<string, never>;\n    'agent/inbox/spliced': { target: InboxTarget; start: number; removedCount?: number; inserted: UserMessage[]; outcome?: 'canceled'; };\n    'approval/asked': { id: ApprovalRequestId; toolName: string; callId?: ToolCallId; reason?: string; };\n    'approval/decided': { id: ApprovalRequestId; outcome: ApprovalOutcome; };\n    'approval/policy': { policy: ApprovalPolicy; source?: 'delegation'; };\n    'tool/code-dispatch-start': PtcDispatchStartEventData;\n    'tool/code-dispatch': PtcDispatchEventData;\n    'agent-preset/selected': { agentPreset: string; };\n    'session/title': SessionTitleEventData;\n    'todo/write': { todos: TodoItem[]; };\n    'model/selection': ModelSelection;\n    'subagent/descriptor': SubagentDescriptorData;\n    'sandbox/mode': { mode: SandboxMode; source?: 'delegation'; };\n    'command/run': { commandId: CommandId; name: string; args?: string; source: CommandSource; };\n    'command/done': { commandId: CommandId; kind: 'success' | 'error'; text?: string; sourceEventSeq?: number; };\n    'team/member': { version: 1; teamId: TeamId; member: TeamMemberSnapshot; };\n    'team/task': { version: 1; teamId: TeamId; task: TeamTaskSnapshot; };\n    'team/message/queued': { version: 1; teamId: TeamId; message: TeamMessageSnapshot; };\n    'team/message/delivered': { version: 1; teamId: TeamId; messageId: TeamMessageId; targetId: SessionId; };\n    'goal/change': GoalChangeMeta;\n    'compaction/start': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; };\n    'compaction/summary': { compactionId: CompactionId; sourceCommandId?: CommandId; summary: ContentBlock[]; shadowedRange: { start: number; end: number; }; shadowedSeqs: number[]; shadowedTokenCount: number; provider: string; model: string; maxTokens?: number; usage?: TokenUsage; } & ({ rawOutput: ContentBlock[]; llmStreamCall: true; } | { rawOutput?: ContentBlock[]; llmStreamCall?: never; });\n    'compaction/end': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; error?: string; };\n    'compaction/prune': { shadowedRange: { start: number; end: number; }; shadowedSeqs: number[]; shadowedTokenCount: number; };\n}"
          },
          {
            "name": "SessionEventType",
            "declaration": "export type SessionEventType = keyof SessionEventMap;"
          },
          {
            "name": "SessionHeader",
            "declaration": "export interface SessionHeader {\n    readonly version: number;\n    readonly id: SessionId;\n    readonly createdAt: number;\n    readonly cwd?: string;\n    readonly parentSession?: SessionId;\n    readonly seedLength?: number;\n    readonly origin?: 'subagent';\n    readonly delegationDepth?: number;\n    readonly agentPreset?: string;\n}"
          },
          {
            "name": "SessionId",
            "declaration": "export type SessionId = Branded<'SessionId'>;"
          },
          {
            "name": "SessionReferenceSource",
            "declaration": "export interface SessionReferenceSource {\n    kind: 'session-reference';\n    form: 'recall';\n    version: 1;\n    references: { sessionId: string; label: string; capturedThroughSeq: number | null; compacted: boolean; originalMessages: number; retainedMessages: number; omittedMessages: number; omittedBytes: number; truncated: boolean; inputIndex: number; }[];\n}"
          },
          {
            "name": "SessionRequestId",
            "declaration": "export type SessionRequestId = Branded<'session-request-id'>;"
          },
          {
            "name": "SessionSurface",
            "declaration": "export interface SessionSurface {\n    readonly nodes: readonly number[];\n    readonly replaceGeneration: number;\n}"
          },
          {
            "name": "SessionTitleEventData",
            "declaration": "export interface SessionTitleEventData {\n    readonly title: string;\n    readonly messageSeqs: number[];\n    readonly source: SessionTitleSource;\n}"
          },
          {
            "name": "SessionTitleModelProvenance",
            "declaration": "export interface SessionTitleModelProvenance {\n    readonly provider: string;\n    readonly model: string;\n}"
          },
          {
            "name": "SessionTitleProviderId",
            "declaration": "export type SessionTitleProviderId = Branded<'SessionTitleProviderId'>;"
          },
          {
            "name": "SessionTitleSource",
            "declaration": "export type SessionTitleSource = { readonly kind: 'fallback'; } | { readonly kind: 'provider'; readonly provider: SessionTitleProviderId; readonly model?: SessionTitleModelProvenance; } | { readonly kind: 'user'; };"
          },
          {
            "name": "SkillInvocationSource",
            "declaration": "export interface SkillInvocationSource {\n    readonly kind: 'skill-invocation';\n    readonly name: string;\n    readonly form: 'instructions';\n}"
          },
          {
            "name": "StreamChunk",
            "declaration": "export type StreamChunk = { type: 'block-start'; index: number; blockType: ContentBlockType; } | { type: 'text-delta'; index: number; text: string; } | { type: 'reasoning-delta'; index: number; text: string; } | { type: 'tool-call-delta'; index: number; id: ToolCallId; name?: string; argumentsDelta: string; } | { type: 'block-end'; index: number; block: ContentBlock; } | { type: 'usage'; usage: TokenUsage; } | { type: 'finish'; reason: FinishReason; replayState?: ReplayEnvelope; };"
          },
          {
            "name": "SubagentDescriptorBase",
            "declaration": "export interface SubagentDescriptorBase {\n    readonly version: number;\n    readonly mode: 'one-shot' | 'continuable';\n    readonly provider: string;\n}"
          },
          {
            "name": "SubagentDescriptorData",
            "declaration": "export type SubagentDescriptorData = OneShotSubagentDescriptorData | ContinuableSubagentDescriptorData;"
          },
          {
            "name": "SubagentReportMessageSource",
            "declaration": "export interface SubagentReportMessageSource {\n    readonly kind: 'subagent-report';\n    readonly form: 'relay';\n    readonly senderSessionId: SessionId;\n}"
          },
          {
            "name": "SubagentSettledMessageSource",
            "declaration": "export interface SubagentSettledMessageSource {\n    readonly kind: 'subagent-settled';\n    readonly form: 'notice';\n    readonly summary: string;\n    readonly senderSessionId: SessionId;\n}"
          },
          {
            "name": "SurfaceEventType",
            "declaration": "export type SurfaceEventType = 'user/message' | 'assistant/message' | 'tool/result';"
          },
          {
            "name": "SurfaceIntent",
            "declaration": "export interface SurfaceIntent {\n    surfaceOp: SurfaceOp;\n    sourceEventSeqs?: number[];\n}"
          },
          {
            "name": "SurfaceOp",
            "declaration": "export type SurfaceOp = 'append' | { op: 'replace'; start: number; end: number; };"
          },
          {
            "name": "TeamId",
            "declaration": "export type TeamId = Branded<'TeamId'>;"
          },
          {
            "name": "TeamMemberPhase",
            "declaration": "export type TeamMemberPhase = 'provisioning' | 'active' | 'failed';"
          },
          {
            "name": "TeamMemberSnapshot",
            "declaration": "export interface TeamMemberSnapshot {\n    readonly id: SessionId;\n    readonly name: string;\n    readonly description: string;\n    readonly provider: string;\n    readonly context: 'fresh' | 'fork';\n    readonly phase: TeamMemberPhase;\n    readonly error?: string;\n}"
          },
          {
            "name": "TeamMessageId",
            "declaration": "export type TeamMessageId = Branded<'TeamMessageId'>;"
          },
          {
            "name": "TeamMessageSnapshot",
            "declaration": "export interface TeamMessageSnapshot {\n    readonly id: TeamMessageId;\n    readonly senderId: SessionId;\n    readonly senderName: string;\n    readonly targetId: SessionId;\n    readonly delivery: 'quiet' | 'wakeup';\n    readonly content: ContentBlock[];\n}"
          },
          {
            "name": "TeamMessageSource",
            "declaration": "export interface TeamMessageSource {\n    readonly kind: 'team-message';\n    readonly teamId: TeamId;\n    readonly messageId: TeamMessageId;\n    readonly senderId: SessionId;\n    readonly senderName: string;\n}"
          },
          {
            "name": "TeamTaskId",
            "declaration": "export type TeamTaskId = Branded<'TeamTaskId'>;"
          },
          {
            "name": "TeamTaskSnapshot",
            "declaration": "export interface TeamTaskSnapshot {\n    readonly id: TeamTaskId;\n    readonly revision: number;\n    readonly subject: string;\n    readonly description: string;\n    readonly status: TeamTaskStatus;\n    readonly ownerId?: SessionId;\n    readonly blockedBy: TeamTaskId[];\n    readonly writeScopes: string[];\n}"
          },
          {
            "name": "TeamTaskStatus",
            "declaration": "export type TeamTaskStatus = 'pending' | 'in_progress' | 'completed' | 'deleted';"
          },
          {
            "name": "TextBlock",
            "declaration": "export interface TextBlock {\n    type: 'text';\n    text: string;\n}"
          },
          {
            "name": "TodoItem",
            "declaration": "export interface TodoItem {\n    content: string;\n    status: 'pending' | 'in_progress' | 'completed';\n}"
          },
          {
            "name": "TokenUsage",
            "declaration": "export interface TokenUsage {\n    inputTokens: number;\n    outputTokens: number;\n    totalTokens?: number;\n    cacheReadTokens?: number;\n    cacheWriteTokens?: number;\n    reasoningTokens?: number;\n}"
          },
          {
            "name": "ToolCallBlock",
            "declaration": "export interface ToolCallBlock {\n    type: 'tool-call';\n    id: ToolCallId;\n    name: string;\n    arguments: string;\n}"
          },
          {
            "name": "ToolCallId",
            "declaration": "export type ToolCallId = Branded<'ToolCallId'>;"
          },
          {
            "name": "ToolMessageSource",
            "declaration": "export interface ToolMessageSource {\n    kind: 'tool';\n    callId: ToolCallId;\n}"
          },
          {
            "name": "ToolRestriction",
            "declaration": "export interface ToolRestriction {\n    readonly allow?: readonly string[];\n    readonly deny?: readonly string[];\n}"
          },
          {
            "name": "ToolResultBlock",
            "declaration": "export interface ToolResultBlock {\n    type: 'tool-result';\n    toolCallId: ToolCallId;\n    content: ContentBlock[];\n    isError?: boolean;\n}"
          },
          {
            "name": "ToolResultMessage",
            "declaration": "export interface ToolResultMessage extends Message {\n    readonly role: 'user';\n    readonly content: [ToolResultBlock];\n    readonly source: ToolMessageSource;\n}"
          },
          {
            "name": "ToolSchema",
            "declaration": "export interface ToolSchema {\n    name: string;\n    description: string;\n    parameters: Record<string, unknown>;\n}"
          },
          {
            "name": "TurnEndCancelCause",
            "declaration": "export type TurnEndCancelCause = AgentCancelCause | { readonly kind: 'legacy'; };"
          },
          {
            "name": "TurnEndReason",
            "declaration": "export type TurnEndReason = TurnEndReasonMap[keyof TurnEndReasonMap];"
          },
          {
            "name": "TurnEndReasonMap",
            "declaration": "export interface TurnEndReasonMap {\n    completed: { kind: 'completed'; };\n    aborted: { kind: 'aborted'; reason: TurnEndCancelCause; };\n    blocked: { kind: 'blocked'; };\n    error: { kind: 'error'; error: LlmFailure; };\n    'max-tokens': { kind: 'max-tokens'; };\n    interrupted: { kind: 'interrupted'; };\n}"
          },
          {
            "name": "UserMessage",
            "declaration": "export interface UserMessage extends Message {\n    readonly role: 'user';\n}"
          }
        ]
      }
    ],
    "events": [
      {
        "description": "One session committed a different agent preset to its durable log. Consumers invalidate only state derived from that session's composition.",
        "summary": "One session committed a different agent preset to its durable log.",
        "tags": [
          {
            "name": "mode",
            "comment": "emit",
            "text": "@mode emit\n     *"
          },
          {
            "name": "param",
            "argument": "sessionId",
            "comment": "- the session whose composition changed.",
            "text": "@param sessionId - the session whose composition changed.\n     *"
          },
          {
            "name": "param",
            "argument": "agentPreset",
            "comment": "- the preset recorded by the committed selection.",
            "text": "@param agentPreset - the preset recorded by the committed selection."
          }
        ],
        "jsDoc": "/**\n * One session committed a different agent preset to its durable log.\n * Consumers invalidate only state derived from that session's composition.\n * @mode emit\n * @param sessionId - the session whose composition changed.\n * @param agentPreset - the preset recorded by the committed selection.\n */",
        "name": "agent-preset/selected",
        "mode": "emit",
        "signature": "'agent-preset/selected'(sessionId: SessionId, agentPreset: string): void"
      }
    ],
    "objects": []
  },
}
