For AI agents: the complete documentation index is available at https://scriptedalchemy.github.io/agent-bundle/llms.txt, the full documentation bundle is available at https://scriptedalchemy.github.io/agent-bundle/llms-full.txt, and this page is available as Markdown at https://scriptedalchemy.github.io/agent-bundle/api/index-1.md.
Skip to main content
  • English
  • Module: index

    Interfaces

    AfterToolHookEvent

    The payload fields every handler event carries. Fields are required only when every host's wrapper guarantees them; sessionId is the one identity every host names. transcriptPath is null on Codex when no rollout exists yet.

    Extends

    Properties

    cwd?

    readonly optional cwd?: string

    Inherited from

    BeforeToolHookEvent.cwd

    effort?

    readonly optional effort?: string

    Inherited from

    BeforeToolHookEvent.effort

    hookEventName?

    readonly optional hookEventName?: string

    Inherited from

    BeforeToolHookEvent.hookEventName

    model?

    readonly optional model?: string

    Inherited from

    BeforeToolHookEvent.model

    permissionMode?

    readonly optional permissionMode?: string

    Inherited from

    BeforeToolHookEvent.permissionMode

    promptId?

    readonly optional promptId?: string

    Inherited from

    BeforeToolHookEvent.promptId

    sessionId

    readonly sessionId: string

    Inherited from

    BeforeToolHookEvent.sessionId

    toolInput

    readonly toolInput: JsonValue

    The pending call's input; an object on Claude and Cursor, any JSON value on Codex.

    Inherited from

    BeforeToolHookEvent.toolInput

    toolName

    readonly toolName: string

    Inherited from

    BeforeToolHookEvent.toolName

    toolResponse

    readonly toolResponse: JsonValue

    The completed call's response; Claude delivers an MCP tool's response as a plain string.

    toolUseId

    readonly toolUseId: string

    Inherited from

    BeforeToolHookEvent.toolUseId

    transcriptPath?

    readonly optional transcriptPath?: string | null

    Inherited from

    BeforeToolHookEvent.transcriptPath

    turnId?

    readonly optional turnId?: string

    Inherited from

    BeforeToolHookEvent.turnId


    AgentBundleConfigExtensions

    Adapter-owned config is contributed by declaration merging, not compiler core.

    Properties

    claude?

    optional claude?: ClaudeHostConfig

    codex?

    optional codex?: CodexHostConfig

    cursor?

    optional cursor?: CursorHostConfig

    portable?

    optional portable?: AgentBundlePortableConfig & PortableManifestConfig


    AgentBundleDevConfig

    Development-only settings that never become part of a built artifact.

    Properties

    agentApi?

    optional agentApi?: boolean

    Exposes the authenticated, loopback-only Agent API from agent-bundle dev.

    contracts?

    readonly optional contracts?: AgentBundleDevContractsConfig

    runtime?

    readonly optional runtime?: AgentBundleDevRuntimeConfig


    AgentBundleDevContractsConfig

    Development-only generated-server contract checks run before host adoption.

    Properties

    fixtures

    readonly fixtures: string

    Project-relative module default-exporting route-id keyed contract fixtures.

    server?

    readonly optional server?: string

    MCP server to check; optional only when the project compiles exactly one server.


    AgentBundleHookEntry

    Properties

    args?

    optional args?: readonly string[]

    Extra command arguments. Only prebuilt handlers accept arguments.

    handler

    handler: string | AgentBundlePrebuiltEntry

    targets?

    optional targets?: readonly string[]

    timeout?

    optional timeout?: number

    Native hook timeout in seconds. Omit it to use the selected host's default.

    tools?

    optional tools?: readonly string[]


    AgentBundleHostConfig

    Properties

    nativeHooks?

    optional nativeHooks?: string


    AgentBundleMcpApp

    Properties

    _meta?

    optional _meta?: Readonly<Record<string, unknown>>

    entry

    entry: string

    resourceUri

    resourceUri: string

    targets?

    optional targets?: readonly string[]

    template?

    optional template?: string


    AgentBundleMcpConfig

    Properties

    servers

    servers: Readonly<Record<string, AgentBundleMcpServer>>


    AgentBundleMcpServer

    Properties

    apps?

    optional apps?: Readonly<Record<string, AgentBundleMcpApp>>

    args?

    optional args?: readonly string[]

    command?

    optional command?: string

    cwd?

    optional cwd?: string

    entry?

    optional entry?: string | AgentBundlePrebuiltEntry

    env?

    optional env?: Readonly<Record<string, string>>

    Extra environment for stdio servers. Adapters inject the well-known plugin-root anchor (see pluginRootEnvAnchor) beneath these entries, so a declared key with that name wins over the injected value.

    headers?

    optional headers?: Readonly<Record<string, string>>

    targets?

    optional targets?: readonly string[]

    transport?

    optional transport?: McpTransport

    url?

    optional url?: string


    AgentBundleNoticeRetentionConfig

    Retention policy of the notice ledger a stateful project co-mounts beside src/state.ts (#99). Omitted fields keep the runtime defaults: seven days, 500 terminal notices, a 16 MiB journal.

    Properties

    maxJournalBytes?

    readonly optional maxJournalBytes?: number

    Retained journal bytes above which the ledger compacts its store onto the head.

    maxTerminal?

    readonly optional maxTerminal?: number

    Most terminal notices kept regardless of age.

    terminalTtl?

    readonly optional terminalTtl?: string | number

    How long a terminal notice is kept after it settled: milliseconds, or a duration such as '7d', '12h', '30m', '90s'.


    AgentBundleNoticesConfig

    Properties

    retention?

    readonly optional retention?: AgentBundleNoticeRetentionConfig


    AgentBundlePayloadEntry

    One declared prebuilt payload directory with an optional target restriction.

    Properties

    runtimeDependencies?

    optional runtimeDependencies?: readonly string[]

    Bare package names the payload's files load at run time. The compiler never opens a payload file, so this declaration is the only evidence that a package.json dependency is used by the payload (AB7014); each name must be one a consumer's npm installs — dependencies, optionalDependencies, or a peer not marked optional (AB4751).

    source

    source: string

    targets?

    optional targets?: readonly string[]


    AgentBundlePrebuiltEntry

    The prebuilt marker: names an already-built file the framework packages as-is instead of compiling. The file must live inside a directory declared in the top-level payload block; its artifact path is the payload destination plus the file's payload-relative path, so consumer-pinned stable paths survive packaging.

    Properties

    prebuilt

    prebuilt: string


    AgentBundleRuntimeConfig

    Runtime requirements for generated executable artifacts.

    Properties

    node

    node: string

    Minimum supported Node.js version in major.minor[.patch] form.


    AgentEventPayloadField

    One canonical payload field as a route receives it: the decoded value plus the host's own key it was read from, so a consumer can tell a mapped field from a missing one and still name the native spelling in its own output.

    Type Parameters

    Value

    Value

    Properties

    nativeKey

    readonly nativeKey: string

    value

    readonly value: Value


    AgentEventPayloadFieldTypes

    The canonical payload vocabulary of event routes (#466): every field a route may read from canonical.payload, with the JSON shape it carries on every host. A field is admitted only when at least two hosts report it for the same family (or the family exists on one host only, in which case its defining fields are admitted); everything else stays host-specific and is read from native. The per-host spelling of each field lives in agentEventPayloadNativeKeys, and the generated events reference renders the same table per host from the pinned capability JSON.

    Properties

    agentId

    readonly agentId: string

    The subagent the event belongs to (Claude and Codex name it on every hook fired inside one).

    agentTranscriptPath

    readonly agentTranscriptPath: string | null

    The subagent's own transcript, null before the host has written it.

    agentType

    readonly agentType: string

    cwd

    readonly cwd: string

    error

    readonly error: string

    The failed tool's error text (tool/failure) or the API error string (stop/failure).

    filePath

    readonly filePath: string

    fromModel

    readonly fromModel: string

    The model in use before a switch (model-switch/*, Claude from_model).

    isInterrupt

    readonly isInterrupt: boolean

    lastAssistantMessage

    readonly lastAssistantMessage: string | null

    The turn's final assistant text; null when the host reports none.

    model

    readonly model: string

    permissionMode

    readonly permissionMode: string

    prompt

    readonly prompt: string

    reason

    readonly reason: string

    reason on session/end: the host's own vocabulary (clear, other, completed, …).

    reentry

    readonly reentry: boolean

    Whether this stop hook is already running for the turn — Claude and Codex stop_hook_active, Cursor loop_count > 0. Check it before returning deny from a stop route, or the continuation loops until the host caps it.

    requestedModel

    readonly requestedModel: string | null

    The model name as the user typed it (model-switch/*, Claude requested_model); null when the switch was not user-initiated.

    sessionId

    readonly sessionId: string

    The conversation id: session_id on Claude and Codex, conversation_id on Cursor.

    source

    readonly source: string

    How the session began (session/start), which settings layer changed (config/change), or what triggered a model switch (model-switch/*).

    taskDescription

    readonly taskDescription: string

    taskId

    readonly taskId: string

    taskSubject

    readonly taskSubject: string

    teammateName

    readonly teammateName: string

    teamName

    readonly teamName: string

    toModel

    readonly toModel: string

    The canonical name of the model being switched to (model-switch/*, Claude to_model).

    toolInput

    readonly toolInput: JsonValue

    The pending call's input; an object on Claude and Cursor, any JSON value on Codex.

    toolName

    readonly toolName: string

    toolResponse

    readonly toolResponse: JsonValue

    The completed call's response. Claude and Codex deliver tool_response as JSON (a plain string for MCP tools on Claude); Cursor's tool_output JSON string is parsed when it is valid JSON and kept as the string otherwise.

    toolUseId

    readonly toolUseId: string

    transcriptPath

    readonly transcriptPath: string | null

    trigger

    readonly trigger: "manual" | "auto"

    workspaceRoots

    readonly workspaceRoots: readonly string[]


    AgentEventPayloadNativeKey

    How a host spells one canonical field. decode names a transformation beyond reading the key: json-string parses a JSON-encoded string (Cursor tool_output), positive-count reads a counter as a boolean (Cursor loop_count → reentry). Absent means the value is taken as is.

    Properties

    decode?

    readonly optional decode?: "json-string" | "positive-count"

    nativeKey

    readonly nativeKey: string


    AgentStartHookEvent

    The payload fields every handler event carries. Fields are required only when every host's wrapper guarantees them; sessionId is the one identity every host names. transcriptPath is null on Codex when no rollout exists yet.

    Extends

    Properties

    agentId

    readonly agentId: string

    agentType

    readonly agentType: string

    cwd?

    readonly optional cwd?: string

    Inherited from

    HookEventBase.cwd

    effort?

    readonly optional effort?: string

    Inherited from

    HookEventBase.effort

    hookEventName?

    readonly optional hookEventName?: string

    Inherited from

    HookEventBase.hookEventName

    model?

    readonly optional model?: string

    Inherited from

    HookEventBase.model

    permissionMode?

    readonly optional permissionMode?: string

    Inherited from

    HookEventBase.permissionMode

    promptId?

    readonly optional promptId?: string

    Inherited from

    HookEventBase.promptId

    sessionId

    readonly sessionId: string

    Inherited from

    HookEventBase.sessionId

    toolUseId?

    readonly optional toolUseId?: string

    The spawning tool call on Cursor.

    transcriptPath?

    readonly optional transcriptPath?: string | null

    Inherited from

    HookEventBase.transcriptPath

    turnId?

    readonly optional turnId?: string

    Inherited from

    HookEventBase.turnId


    AgentStopHookEvent

    The payload fields every handler event carries. Fields are required only when every host's wrapper guarantees them; sessionId is the one identity every host names. transcriptPath is null on Codex when no rollout exists yet.

    Extends

    Properties

    agentId?

    readonly optional agentId?: string

    Absent on Cursor, whose subagentStop names no agent id.

    agentTranscriptPath?

    readonly optional agentTranscriptPath?: string | null

    agentType

    readonly agentType: string

    cwd?

    readonly optional cwd?: string

    Inherited from

    HookEventBase.cwd

    effort?

    readonly optional effort?: string

    Inherited from

    HookEventBase.effort

    hookEventName?

    readonly optional hookEventName?: string

    Inherited from

    HookEventBase.hookEventName

    lastAssistantMessage?

    readonly optional lastAssistantMessage?: string | null

    model?

    readonly optional model?: string

    Inherited from

    HookEventBase.model

    permissionMode?

    readonly optional permissionMode?: string

    Inherited from

    HookEventBase.permissionMode

    promptId?

    readonly optional promptId?: string

    Inherited from

    HookEventBase.promptId

    sessionId

    readonly sessionId: string

    Inherited from

    HookEventBase.sessionId

    stopHookActive

    readonly stopHookActive: boolean

    transcriptPath?

    readonly optional transcriptPath?: string | null

    Inherited from

    HookEventBase.transcriptPath

    turnId?

    readonly optional turnId?: string

    Inherited from

    HookEventBase.turnId


    AgentTerminal

    What a route or script may assume about the process's output streams. Information only, never a writer: under the routed CLI and rendered scripts machine output owns stdout, so stdout describes where the rendered document lands and stderr the channel a route may write to itself; a plain main script owns both.

    Properties

    hostSurface

    readonly hostSurface: AgentTerminalSurface

    sharesTarget

    readonly sharesTarget: boolean

    Whether stdout and stderr name the same open file (2>&1, one shared terminal).

    stderr

    readonly stderr: AgentTerminalStream

    stdout

    readonly stdout: AgentTerminalStream


    AgentTerminalStream

    Properties

    color

    readonly color: AgentTerminalColor

    columns?

    readonly optional columns?: number

    Present when the stream is a terminal or COLUMNS overrides it.

    kind

    readonly kind: AgentTerminalStreamKind

    rows?

    readonly optional rows?: number

    Present when the stream is a terminal or LINES overrides it.


    AmpSkillExtension

    Properties

    builtinTools?

    readonly optional builtinTools?: readonly string[]

    mcpServers?

    readonly optional mcpServers?: Readonly<Record<string, unknown>>


    ArtifactEpoch

    A fully emitted and validated immutable artifact publication.

    Properties

    configDigest

    readonly configDigest: string

    createdAt

    readonly createdAt: string

    diagnostics

    readonly diagnostics: DiagnosticSummary

    id

    readonly id: string

    manifestPath

    readonly manifestPath: string

    modelDigest

    readonly modelDigest: string

    packageName?

    readonly optional packageName?: string

    The npm package name axis of the published project, when packaged.

    packageVersion?

    readonly optional packageVersion?: string

    The semantic release-version axis of the published project, when packaged.

    projectRevision

    readonly projectRevision: string

    targetDigests

    readonly targetDigests: Readonly<Record<string, string>>


    ArtifactManifest

    Properties

    application

    readonly application: ArtifactManifestApplication

    compiler

    readonly compiler: ArtifactManifestCompiler

    distribution

    readonly distribution: ArtifactManifestDistribution

    executables

    readonly executables: ArtifactManifestExecutables

    files

    readonly files: readonly ArtifactManifestFile[]

    manifestVersion

    readonly manifestVersion: 6

    projections

    readonly projections: readonly ArtifactManifestProjection[]

    routes

    readonly routes: ArtifactManifestRoutes

    runtime

    readonly runtime: ArtifactManifestRuntime

    web?

    readonly optional web?: WebManifest


    ArtifactManifestAgentSkills

    Properties

    schemaSha256

    readonly schemaSha256: string

    sourceRevision

    readonly sourceRevision: string

    specification

    readonly specification: string


    ArtifactManifestApplication

    The application identity, once and host-independent: what install, doctor, and uninstall act on. Host documents and this manifest are serialized from the same compiled model in one build.

    Properties

    description?

    readonly optional description?: string

    id

    readonly id: string

    name

    readonly name: string

    version

    readonly version: string


    ArtifactManifestBin

    The routed CLI executable (bin/<name>.mjs) and its Flight worker.

    Properties

    hosts

    readonly hosts: readonly string[]

    name

    readonly name: string

    path

    readonly path: string

    worker?

    readonly optional worker?: string


    ArtifactManifestCli

    Properties

    commands?

    readonly optional commands?: readonly ArtifactManifestCliCommand[]

    Present only in generated mode, matching the compiler surface.

    mode

    readonly mode: CompiledCliMode

    routes

    readonly routes: readonly ArtifactManifestRoute[]

    The custom cli routes plus every MCP tool route routes.mcpCommands projects into the executable.


    ArtifactManifestCliCommand

    One executable command compiled from a custom CLI route or projected MCP tool.

    Properties

    aliases

    readonly aliases: readonly string[]

    description?

    readonly optional description?: string

    exitCode

    readonly exitCode: "result" | "zero"

    input?

    readonly optional input?: "json"

    mcp?

    readonly optional mcp?: ArtifactManifestCliCommandMcp

    options

    readonly options: readonly ArtifactManifestCliOption[]

    path

    readonly path: readonly string[]

    projection?

    readonly optional projection?: ArtifactManifestCliProjection

    Present for a command compiled from a tool's CLI projection module.

    routeId

    readonly routeId: string


    ArtifactManifestCliCommandMcp

    Properties

    confirm

    readonly confirm: boolean

    server

    readonly server: string

    tool

    readonly tool: string


    ArtifactManifestCliOption

    One argv projection of a CLI route's input schema, without editor defaults.

    Properties

    aliases?

    readonly optional aliases?: readonly string[]

    Extra long-form --spellings a CLI projection declared (flags.<key>.aliases); sorted, unique.

    choices?

    readonly optional choices?: readonly string[]

    description?

    readonly optional description?: string

    key

    readonly key: string

    kind

    readonly kind: "string" | "number" | "boolean" | "enum"

    option

    readonly option: string

    positional?

    readonly optional positional?: number

    repeated

    readonly repeated: boolean

    required

    readonly required: boolean


    ArtifactManifestCliProjection

    Mirrors CompiledCliProjection: what a tool's <tool>.cli.{ts,tsx} module (#596) contributes beyond the argv grammar options already spell.

    Properties

    defaults?

    readonly optional defaults?: Readonly<Record<string, CliProjectionFlagDefault>>

    Canonical key → the projection's flags.<key>.default literal.

    input?

    readonly optional input?: "json"

    'json' when the command takes the tool's canonical input as one JSON object through --input (manifestVersion 5).

    mapInput

    readonly mapInput: boolean

    True when the module exports mapInput.

    module

    readonly module: string

    Project-relative POSIX path of the projection module.

    relaxed?

    readonly optional relaxed?: readonly string[]

    Canonical-required keys the projection made optional on the CLI; sorted, unique.


    ArtifactManifestCompiler

    Operational record of the compiler run. Versioned by recordVersion independently of manifestVersion: a change here is not a change to the artifact contract consumers read.

    Properties

    adapters

    readonly adapters: readonly ArtifactManifestCompilerAdapter[]

    agentSkills

    readonly agentSkills: ArtifactManifestAgentSkills

    producer

    readonly producer: ArtifactManifestProducer

    project

    readonly project: ArtifactManifestProject

    provenance

    readonly provenance: readonly ArtifactManifestProvenance[]

    recordVersion

    readonly recordVersion: 1

    validation

    readonly validation: ArtifactManifestValidation


    ArtifactManifestCompilerAdapter

    Operational adapter facts for one projection; lives on compiler.adapters.

    Properties

    adapterRevision

    readonly adapterRevision: string

    host

    readonly host: string

    observedVersion

    readonly observedVersion: string

    schemas

    readonly schemas: readonly ArtifactManifestProjectionSchema[]


    ArtifactManifestDistribution

    How the artifact reaches a host (gap 7 of #592 step 3).

    Properties

    channels

    readonly channels: readonly ArtifactManifestDistributionChannel[]

    local always; npm when the project carries a package identity.

    install?

    readonly optional install?: ArtifactManifestDistributionInstall

    payloads

    readonly payloads: readonly ArtifactManifestPayload[]

    Prebuilt payload directories, sorted by name.


    ArtifactManifestDistributionInstall

    Root-relative pointers at the install surface (#555 W2/S5 owns the contents).

    Properties

    instructions?

    readonly optional instructions?: string

    script?

    readonly optional script?: string


    ArtifactManifestEventExecution

    Properties

    fallback

    readonly fallback: "none" | "standalone"

    handler?

    readonly optional handler?: string

    Project-relative POSIX path of the event route's handler module.

    runtime

    readonly runtime: "standalone" | "shared"


    ArtifactManifestExecutables

    Every process the artifact can start (gap 6 of #592 step 3).

    Properties

    bins

    readonly bins: readonly ArtifactManifestBin[]

    hooks

    readonly hooks: readonly ArtifactManifestHook[]

    mcpServers

    readonly mcpServers: readonly ArtifactManifestMcpServer[]

    scripts

    readonly scripts: readonly ArtifactManifestScript[]


    ArtifactManifestFile

    Properties

    bytes

    readonly bytes: number

    kind

    readonly kind: "bundle" | "prebuilt" | "copy" | "generated"

    mode?

    readonly optional mode?: number

    path

    readonly path: string

    sha256

    readonly sha256: string


    ArtifactManifestHook

    One compiler wrapper a host's hooks document runs: event-route wrappers dispatch a conventional src/hooks/** route, config wrappers run a hook declared in the configuration. Native commands an author writes directly into a host document and prebuilt-payload commands are Projection IR and are not rows here; the validator proves every wrapper a host document names is exactly one row (AB6018).

    Properties

    event

    readonly event: string

    host

    readonly host: string

    id

    readonly id: string

    kind

    readonly kind: "event-route" | "config"

    name

    readonly name: string

    path

    readonly path: string

    routeId?

    readonly optional routeId?: string

    The routes.events[] row an event-route wrapper dispatches; present exactly for that kind.

    timeout?

    readonly optional timeout?: number

    Native hook timeout in seconds. Omit it to use the host default.


    ArtifactManifestLaunch

    The one launch record of a compiled or prebuilt MCP server (executables.mcpServers[] with kind: 'compiled' or 'prebuilt'): what <plugin> web starts and what every host MCP document projects. Tokens in args and env are expanded by the launcher, never by the manifest.

    Properties

    args

    readonly args: readonly ArtifactManifestLaunchArgument[]

    Arguments after the entry, in order.

    entry

    readonly entry: string

    Root-relative POSIX path of the entry (a files[] row).

    env

    readonly env: Readonly<Record<string, string>>

    Declared environment; values may carry agent-bundle:path:* tokens.

    worker?

    readonly optional worker?: string

    Root-relative POSIX path of the Flight worker the entry spawns (a files[] row).


    ArtifactManifestLayout

    Properties

    id

    readonly id: string

    layout:root or layout:mcp:<server>.

    scope

    readonly scope: CompiledLayoutScope

    serverId?

    readonly optional serverId?: string

    The owning MCP server id; server scope only.

    source

    readonly source: string

    Project-relative POSIX module path.


    ArtifactManifestMcpApp

    Properties

    id

    readonly id: string

    name

    readonly name: string

    path?

    readonly optional path?: string

    The emitted self-contained HTML; absent for a prebuilt app whose payload already serves it.

    prebuilt?

    readonly optional prebuilt?: true

    resourceUri

    readonly resourceUri: string


    ArtifactManifestMcpServer

    One MCP server the artifact declares: compiled and prebuilt servers carry the one launch record the artifact starts them from, command servers name a host-run command, remote servers a URL — the last two live only in the host MCP documents.

    Properties

    apps

    readonly apps: readonly ArtifactManifestMcpApp[]

    hosts

    readonly hosts: readonly string[]

    id

    readonly id: string

    kind

    readonly kind: "command" | "compiled" | "prebuilt" | "remote"

    launch?

    readonly optional launch?: ArtifactManifestLaunch

    Present exactly for compiled and prebuilt servers.

    name

    readonly name: string

    transport

    readonly transport: string


    ArtifactManifestPayload

    One prebuilt payload directory the artifact packages byte-for-byte (definePrebuilt, #630). The compiler never opens its files, so the author's runtimeDependencies declaration is the only record of what the tree loads from a consumer's install; files[] rows under <name>/ carry kind prebuilt.

    Properties

    hosts

    readonly hosts: readonly string[]

    Declared projections the payload is packaged for; sorted.

    name

    readonly name: string

    Artifact-root directory name.

    runtimeDependencies

    readonly runtimeDependencies: readonly string[]

    Bare package names the payload loads at run time; sorted, unique.


    ArtifactManifestProducer

    Properties

    name

    readonly name: "agent-bundle"

    version

    readonly version: string


    ArtifactManifestProject

    Properties

    configDigest

    readonly configDigest: string

    configPath

    readonly configPath: string

    modelDigest

    readonly modelDigest: string

    packageName?

    readonly optional packageName?: string

    The validated npm package name axis; absent for unpackaged development projects.

    packageVersion?

    readonly optional packageVersion?: string

    The validated semantic release-version axis; absent for unpackaged development projects.

    revision

    readonly revision: string

    sourceInputs

    readonly sourceInputs: readonly ArtifactManifestSourceInput[]


    ArtifactManifestProjection

    Properties

    builtInHost?

    readonly optional builtInHost?: ArtifactManifestBuiltInHost

    The shipped adapter that planned this projection; absent for an advanced-registry adapter.

    documents

    readonly documents: ArtifactManifestProjectionDocuments

    host

    readonly host: string

    The target name the project selected the projection under (its directory key in targets).

    marketplace?

    readonly optional marketplace?: ArtifactManifestProjectionMarketplace

    The marketplace the projection's marketplace document registers; absent when none was emitted.


    ArtifactManifestProjectionDocuments

    Root-relative paths of the host entry/documents one projection derived: an executable plugin entry or the host's plugin, marketplace, MCP, and hooks documents when emitted. Every path is a files[] entry.

    Properties

    entry?

    readonly optional entry?: string

    The host's executable plugin entry when it has no JSON plugin manifest.

    hooks?

    readonly optional hooks?: string

    marketplace?

    readonly optional marketplace?: string

    mcp?

    readonly optional mcp?: string

    plugin?

    readonly optional plugin?: string

    The host plugin manifest; absent when the projection emits none (install/doctor then fail AB7001).


    ArtifactManifestProjectionMarketplace

    Properties

    name

    readonly name: string


    ArtifactManifestProjectionSchema

    Properties

    name

    readonly name: string

    revision

    readonly revision: string

    sha256

    readonly sha256: string


    ArtifactManifestProjectionValidation

    Extends

    Properties

    host

    readonly host: string

    status

    readonly status: "passed"

    Inherited from

    ArtifactManifestValidationRecord.status


    ArtifactManifestProvenance

    One files[] row's source-input provenance; lives on compiler.provenance.

    Properties

    path

    readonly path: string

    sourceInputs

    readonly sourceInputs: readonly string[]


    ArtifactManifestProvider

    Properties

    id

    readonly id: string

    name

    readonly name: string

    source

    readonly source: string

    Project-relative POSIX module path.


    ArtifactManifestRoute

    One compiled route of the Application IR, host-independent.

    Properties

    contract?

    readonly optional contract?: string

    Id of the routes.contracts[] row this route binds (#593); absent when no static contract was extracted.

    description?

    readonly optional description?: string

    config.description when it is a string.

    event?

    readonly optional event?: string

    Canonical event identity; event-route routes only.

    execution?

    readonly optional execution?: ArtifactManifestEventExecution

    Event execution metadata; present exactly for event-route routes.

    id

    readonly id: string

    inputSchema?

    readonly optional inputSchema?: RouteInputSchema

    Bounded JSON Schema projection; absent when the route schema is richer than the static grammar.

    kind

    readonly kind: CompiledRouteKind

    provenance

    readonly provenance: ArtifactManifestRouteProvenance

    serverId?

    readonly optional serverId?: string

    The owning MCP server id (mcp:<name>); MCP route kinds only.

    source

    readonly source: string

    Project-relative POSIX module path: the route's portable identity.


    ArtifactManifestRouteContract

    Frozen input metadata identified by contract:#inputJsonSchema.

    Properties

    id

    readonly id: string

    input

    readonly input: RouteInputSchema

    origin

    readonly origin: ArtifactManifestRouteContractOrigin

    routes

    readonly routes: readonly string[]


    ArtifactManifestRouteContractOrigin

    Location of literal inputJsonSchema metadata in the route module.

    Properties

    binding

    readonly binding: string

    module

    readonly module: string


    ArtifactManifestRouteProvenance

    How a route entered the graph. Only conventional filesystem discovery exists today; the discriminant is where a projected route (#596) attaches later.

    Properties

    kind

    readonly kind: "conventional"


    ArtifactManifestRoutes

    Properties

    cli?

    readonly optional cli?: ArtifactManifestCli

    contracts?

    readonly optional contracts?: readonly ArtifactManifestRouteContract[]

    Sorted by id; present exactly when some route binds a contract.

    digest

    readonly digest: string

    sha256 over the graph's project-relative identity.

    events

    readonly events: readonly ArtifactManifestRoute[]

    layouts

    readonly layouts: readonly ArtifactManifestLayout[]

    providers

    readonly providers: readonly ArtifactManifestProvider[]

    scripts

    readonly scripts: readonly ArtifactManifestRoute[]

    servers

    readonly servers: readonly ArtifactManifestServer[]


    ArtifactManifestRuntime

    The selected generated-executable runtime floor recorded with the artifact.

    Properties

    node

    readonly node: string


    ArtifactManifestScript

    Properties

    hosts

    readonly hosts: readonly string[]

    id

    readonly id: string

    mode

    readonly mode: "bundle" | "copy"

    name

    readonly name: string

    path

    readonly path: string

    rendered?

    readonly optional rendered?: ArtifactManifestScriptRendered

    The conventional rendered-script route this entry renders.

    worker?

    readonly optional worker?: string


    ArtifactManifestScriptRendered

    Properties

    routeId

    readonly routeId: string


    ArtifactManifestServer

    Properties

    id

    readonly id: string

    mode

    readonly mode: CompiledServerMode

    name

    readonly name: string

    routes

    readonly routes: readonly ArtifactManifestRoute[]


    ArtifactManifestSourceInput

    Properties

    executable?

    readonly optional executable?: boolean

    path

    readonly path: string

    sha256

    readonly sha256: string


    ArtifactManifestValidation

    Properties

    artifact

    readonly artifact: ArtifactManifestValidationRecord

    projections

    readonly projections: readonly ArtifactManifestProjectionValidation[]

    source

    readonly source: ArtifactManifestValidationRecord


    ArtifactManifestValidationRecord

    Extended by

    Properties

    status

    readonly status: "passed"


    ArtifactOutputProvenance

    Properties

    kind

    readonly kind: ArtifactOutputKind

    path

    readonly path: string

    POSIX path relative to the published artifact root, including its target.

    sourceInputs

    readonly sourceInputs: readonly string[]

    Sorted, unique POSIX paths relative to the project root.


    AssembledArtifactManifest

    Properties

    bytes

    readonly bytes: string

    manifest

    readonly manifest: ArtifactManifest


    BeforeToolHookEvent

    The payload fields every handler event carries. Fields are required only when every host's wrapper guarantees them; sessionId is the one identity every host names. transcriptPath is null on Codex when no rollout exists yet.

    Extends

    Extended by

    Properties

    cwd?

    readonly optional cwd?: string

    Inherited from

    HookEventBase.cwd

    effort?

    readonly optional effort?: string

    Inherited from

    HookEventBase.effort

    hookEventName?

    readonly optional hookEventName?: string

    Inherited from

    HookEventBase.hookEventName

    model?

    readonly optional model?: string

    Inherited from

    HookEventBase.model

    permissionMode?

    readonly optional permissionMode?: string

    Inherited from

    HookEventBase.permissionMode

    promptId?

    readonly optional promptId?: string

    Inherited from

    HookEventBase.promptId

    sessionId

    readonly sessionId: string

    Inherited from

    HookEventBase.sessionId

    toolInput

    readonly toolInput: JsonValue

    The pending call's input; an object on Claude and Cursor, any JSON value on Codex.

    toolName

    readonly toolName: string

    toolUseId

    readonly toolUseId: string

    transcriptPath?

    readonly optional transcriptPath?: string | null

    Inherited from

    HookEventBase.transcriptPath

    turnId?

    readonly optional turnId?: string

    Inherited from

    HookEventBase.turnId


    BuildResult

    Properties

    compiledCliBins

    readonly compiledCliBins: readonly CompiledCliBin[]

    The routed-CLI executables emitted into host artifacts (#387), one per hosting target.

    compiledEntries

    readonly compiledEntries: readonly CompiledEntry[]

    compiledHooks

    readonly compiledHooks: readonly CompiledHookEntry[]

    compiledMcpApps

    readonly compiledMcpApps: readonly CompiledMcpApp[]

    compiledMcpEntries

    readonly compiledMcpEntries: readonly CompiledMcpEntry[]

    compileEvidence

    readonly compileEvidence: CompileEvidenceRecord

    diagnostics

    readonly diagnostics: readonly Diagnostic[]

    Non-fatal compiler findings the artifact survived — MCP App view compile warnings and size advisories. Errors never reach here: a failing compile throws a DiagnosticError carrying them.

    manifest

    readonly manifest: ArtifactManifest

    outputProvenance

    readonly outputProvenance: readonly ArtifactOutputProvenance[]

    outputRoot

    readonly outputRoot: string


    CapabilityRow

    A row from a pinned host capability table.

    Properties

    availability?

    readonly optional availability?: Readonly<Record<string, { reason?: string; state?: string; }>>

    evidence?

    readonly optional evidence?: readonly string[]

    nativeEvent?

    readonly optional nativeEvent?: string

    payload?

    readonly optional payload?: JsonObject

    reason?

    readonly optional reason?: string

    state?

    readonly optional state?: string


    ClaudeSkillExtension

    Properties

    agent?

    readonly optional agent?: string

    allowedTools?

    readonly optional allowedTools?: string | readonly string[]

    argumentHint?

    readonly optional argumentHint?: string

    arguments?

    readonly optional arguments?: readonly string[]

    background?

    readonly optional background?: boolean

    context?

    readonly optional context?: "fork"

    disableModelInvocation?

    readonly optional disableModelInvocation?: boolean

    disallowedTools?

    readonly optional disallowedTools?: string | readonly string[]

    effort?

    readonly optional effort?: "low" | "high" | "max" | "medium" | "xhigh"

    hooks?

    readonly optional hooks?: Readonly<Record<string, unknown>>

    model?

    readonly optional model?: string

    paths?

    readonly optional paths?: readonly string[]

    shell?

    readonly optional shell?: "bash" | "powershell"

    userInvocable?

    readonly optional userInvocable?: boolean

    whenToUse?

    readonly optional whenToUse?: string


    CodexCommandInput

    Properties

    args

    readonly args: readonly string[]

    cwd

    readonly cwd: string

    environment

    readonly environment: ProcessEnv

    signal?

    readonly optional signal?: AbortSignal

    timeoutMs

    readonly timeoutMs: number


    CodexCommandResult

    Properties

    exitCode

    readonly exitCode: number

    failure?

    readonly optional failure?: "timeout" | "output-limit" | "cancelled"

    stderr

    readonly stderr: string

    stdout

    readonly stdout: string


    CodexEvalHarness

    Properties

    host

    readonly host: "codex"

    kind

    readonly kind: "native-codex"

    name

    readonly name: string

    runTrial

    readonly runTrial: (options) => Promise<EvalTrialRecord>

    Parameters
    options

    RunCodexEvalTrialOptions

    Returns

    Promise<EvalTrialRecord>


    CodexSkillExtension

    Properties

    dependencies?

    readonly optional dependencies?: object

    tools?

    readonly optional tools?: readonly CodexSkillToolDependency[]

    interface?

    readonly optional interface?: object

    brandColor?

    readonly optional brandColor?: string

    defaultPrompt?

    readonly optional defaultPrompt?: string

    displayName?

    readonly optional displayName?: string

    iconLarge?

    readonly optional iconLarge?: string

    iconSmall?

    readonly optional iconSmall?: string

    shortDescription?

    readonly optional shortDescription?: string

    policy?

    readonly optional policy?: object

    allowImplicitInvocation?

    readonly optional allowImplicitInvocation?: boolean


    ConfigFactoryContext

    Properties

    command

    command: string

    mode

    mode: string

    projectRoot

    projectRoot: string

    selectedTargets

    selectedTargets: readonly string[]


    CreateEventTracerOptions

    Properties

    execution

    readonly execution: EventTraceExecution

    now?

    readonly optional now?: () => number

    Monotonic clock in milliseconds; performance.now when absent.

    Returns

    number

    observer?

    readonly optional observer?: EventTraceObserver

    When absent, each emission reads the process-local observer.


    CursorSkillExtension

    Properties

    color?

    readonly optional color?: string

    disableModelInvocation?

    readonly optional disableModelInvocation?: boolean

    globs?

    readonly optional globs?: string | readonly string[]

    icon?

    readonly optional icon?: string

    paths?

    readonly optional paths?: readonly string[]


    DefinedSkill

    Properties

    description

    readonly description: string

    name

    readonly name: string

    targets?

    readonly optional targets?: DefinedSkillTargets


    DevServerSession

    Properties

    url

    readonly url: string

    Methods

    close()

    close(): Promise<void>

    Returns

    Promise<void>

    status()

    status(): ProjectStatus

    Returns

    ProjectStatus


    DiagnosticSummary

    Properties

    errors

    readonly errors: number

    infos

    readonly infos: number

    warnings

    readonly warnings: number


    EvalAssertionSummary

    Properties

    id

    readonly id: string

    kind

    readonly kind: EvalAssertionKind

    skill?

    readonly optional skill?: string

    The Skill an activation assertion references; absent for blanket and non-Skill assertions.


    EvalCaseSummary

    Properties

    assertions

    readonly assertions: readonly EvalAssertionSummary[]

    digest

    readonly digest: string

    hosts

    readonly hosts: readonly string[]

    id

    readonly id: string

    invocation

    readonly invocation: EvalInvocation

    prompt

    readonly prompt: string

    trials

    readonly trials: number


    EvalComparison

    Properties

    baselineRunId

    readonly baselineRunId: string

    candidateRunId

    readonly candidateRunId: string

    rows

    readonly rows: readonly EvalComparisonRow[]

    sampleSize

    readonly sampleSize: number

    summary

    readonly summary: EvalComparisonSummary


    EvalHarness

    Properties

    kind

    readonly kind: "native-codex" | "deterministic" | "native-claude"

    name

    readonly name: string


    EvalRunResult

    Properties

    aggregates

    readonly aggregates: readonly EvalCaseAggregate[]

    diagnostics

    readonly diagnostics: readonly Diagnostic[]

    run

    readonly run: EvalRunRecord

    trials

    readonly trials: readonly EvalTrialRecord[]


    EvalRunSelection

    Extended by

    Properties

    caseIds?

    readonly optional caseIds?: readonly string[]

    suites?

    readonly optional suites?: readonly string[]


    EvalSemanticGraderContext

    The grader sees the task, its assertions, the response, the trace, and the workspace: never a condition label.

    Properties

    assertions

    readonly assertions: readonly EvalAssertion[]

    finalResponse

    readonly finalResponse: string

    prompt

    readonly prompt: string

    trace

    readonly trace: readonly ClaudeTraceEvent[]

    workspacePath

    readonly workspacePath: string


    EvalSemanticGraderSpec

    Properties

    grade

    readonly grade: EvalSemanticGrader

    id

    readonly id: string


    EvalServiceNativeOptions

    Properties

    claudeRun?

    readonly optional claudeRun?: NativeClaudeProcessRunner

    codexRun?

    readonly optional codexRun?: CodexCommandRunner

    environment?

    readonly optional environment?: Readonly<ProcessEnv>


    EvalSuiteListing

    Properties

    diagnostics

    readonly diagnostics: readonly Diagnostic[]

    suites

    readonly suites: readonly EvalSuiteSummary[]


    EvalSuiteSummary

    Properties

    cases

    readonly cases: readonly EvalCaseSummary[]

    digest

    readonly digest: string

    name

    readonly name: string

    sourcePath

    readonly sourcePath: string

    Project-relative so no caller, browser included, learns an absolute location.


    EventTraceErrorSummary

    What an observer learns about a thrown value: name, message, string code. Never the value itself.

    Properties

    code?

    readonly optional code?: string

    message

    readonly message: string

    name

    readonly name: string


    EventTraceExecuteStart

    The gate returned render: the kernel now loads the rendered route runtime.

    Extends

    • EventTraceEventBase<"execute.start", "execute">

    Properties

    at

    readonly at: number

    Monotonic milliseconds from the tracer's clock (performance.now() by default).

    Inherited from

    EventTraceFailure.at

    execution

    readonly execution: EventTraceExecution

    Inherited from

    EventTraceFailure.execution

    kind

    readonly kind: "execute.start"

    Inherited from

    EventTraceEventBase.kind

    phase

    readonly phase: "execute"

    Inherited from

    EventTraceEventBase.phase

    runtime

    readonly runtime: EventTraceRuntime

    sequence

    readonly sequence: number

    Inherited from

    EventTraceFailure.sequence


    EventTraceExecution

    Identity shared by every event of one execution. executionId is unique per hook execution; host is the compiled target name, nativeEvent the host's own event name for the canonical event.

    Properties

    event

    readonly event: "session/start" | "tool/before" | "tool/after" | "stop" | "agent/start" | "agent/stop" | "workspace/open" | "session/end" | "prompt/submit" | "tool/failure" | "compact/before" | "compact/after" | "permission/request" | "permission/denied" | "stop/failure" | "file/change" | "config/change" | "task/create" | "task/complete" | "agent/idle" | "model-switch/before" | "model-switch/after"

    executionId

    readonly executionId: string

    host

    readonly host: string

    nativeEvent

    readonly nativeEvent: string


    EventTraceFailure

    Terminal: the execution failed in phase. Nothing follows this event.

    Extends

    Properties

    at

    readonly at: number

    Monotonic milliseconds from the tracer's clock (performance.now() by default).

    Inherited from

    EventTraceEventBase.at

    durationMs?

    readonly optional durationMs?: number

    Elapsed since the first event of this trace; absent when the failure is the first event.

    error

    readonly error: EventTraceErrorSummary

    execution

    readonly execution: EventTraceExecution

    Inherited from

    EventTraceEventBase.execution

    kind

    readonly kind: "failure"

    Inherited from

    EventTraceEventBase.kind

    phase

    readonly phase: "handler" | "execute" | "providers" | "render"

    Inherited from

    EventTraceEventBase.phase

    sequence

    readonly sequence: number

    Inherited from

    EventTraceEventBase.sequence


    EventTraceHandlerOutcomeEvent

    Extends

    • EventTraceEventBase<"handler.outcome", "handler">

    Properties

    at

    readonly at: number

    Monotonic milliseconds from the tracer's clock (performance.now() by default).

    Inherited from

    EventTraceEventBase.at

    durationMs?

    readonly optional durationMs?: number

    Present when handler.start was observed on this tracer.

    execution

    readonly execution: EventTraceExecution

    Inherited from

    EventTraceEventBase.execution

    kind

    readonly kind: "handler.outcome"

    Inherited from

    EventTraceEventBase.kind

    outcome

    readonly outcome: EventTraceHandlerOutcome

    phase

    readonly phase: "handler"

    Inherited from

    EventTraceEventBase.phase

    sequence

    readonly sequence: number

    Inherited from

    EventTraceEventBase.sequence


    EventTraceProvidersFinish

    Extends

    • EventTraceEventBase<"providers.finish", "providers">

    Properties

    at

    readonly at: number

    Monotonic milliseconds from the tracer's clock (performance.now() by default).

    Inherited from

    EventTraceEventBase.at

    count

    readonly count: number

    durationMs?

    readonly optional durationMs?: number

    Present when providers.start was observed on this tracer.

    execution

    readonly execution: EventTraceExecution

    Inherited from

    EventTraceEventBase.execution

    kind

    readonly kind: "providers.finish"

    Inherited from

    EventTraceEventBase.kind

    phase

    readonly phase: "providers"

    Inherited from

    EventTraceEventBase.phase

    sequence

    readonly sequence: number

    Inherited from

    EventTraceEventBase.sequence


    EventTracer

    The framework-owned emitter the kernel calls at each phase boundary. Every method is safe to call at any time and never throws.

    Properties

    closed

    readonly closed: boolean

    True once failure was recorded; later calls are dropped.

    enabled

    readonly enabled: boolean

    Whether an explicit or process-local observer is currently available.

    execution

    readonly execution: EventTraceExecution

    Methods

    executeStart()

    executeStart(runtime): void

    Parameters
    runtime

    EventTraceRuntime

    Returns

    void

    failure()

    failure(phase, error): void

    Parameters
    phase

    "handler" | "execute" | "providers" | "render"

    error

    unknown

    Returns

    void

    handlerOutcome()

    handlerOutcome(result): void

    Parameters
    result

    EventHandlerResult

    Returns

    void

    handlerStart()

    handlerStart(): void

    Returns

    void

    providersFinish()

    providersFinish(count): void

    Parameters
    count

    number

    Returns

    void

    providersStart()

    providersStart(): void

    Returns

    void

    renderFinish()

    renderFinish(): void

    Returns

    void

    renderStart()

    renderStart(): void

    Returns

    void


    EventTraceRenderFinish

    Extends

    • EventTraceEventBase<"render.finish", "render">

    Properties

    at

    readonly at: number

    Monotonic milliseconds from the tracer's clock (performance.now() by default).

    Inherited from

    EventTraceEventBase.at

    durationMs?

    readonly optional durationMs?: number

    Present when render.start was observed on this tracer.

    execution

    readonly execution: EventTraceExecution

    Inherited from

    EventTraceEventBase.execution

    kind

    readonly kind: "render.finish"

    Inherited from

    EventTraceEventBase.kind

    phase

    readonly phase: "render"

    Inherited from

    EventTraceEventBase.phase

    sequence

    readonly sequence: number

    Inherited from

    EventTraceEventBase.sequence


    FailedBuildAttempt

    Properties

    completedAt

    readonly completedAt: string

    diagnostics

    readonly diagnostics: readonly [Diagnostic, Diagnostic]

    id

    readonly id: string

    outcome

    readonly outcome: "failed"

    result?

    readonly optional result?: undefined

    sourceRevision

    readonly sourceRevision: string

    startedAt

    readonly startedAt: string


    HookEventBase

    The payload fields every handler event carries. Fields are required only when every host's wrapper guarantees them; sessionId is the one identity every host names. transcriptPath is null on Codex when no rollout exists yet.

    Extended by

    Properties

    cwd?

    readonly optional cwd?: string

    effort?

    readonly optional effort?: string

    hookEventName?

    readonly optional hookEventName?: string

    model?

    readonly optional model?: string

    permissionMode?

    readonly optional permissionMode?: string

    promptId?

    readonly optional promptId?: string

    sessionId

    readonly sessionId: string

    transcriptPath?

    readonly optional transcriptPath?: string | null

    turnId?

    readonly optional turnId?: string


    HookEventPayloads

    The per-event payload a config hook handler receives, keyed by handler event.

    Properties

    afterTool

    readonly afterTool: AfterToolHookEvent

    agentStart

    readonly agentStart: AgentStartHookEvent

    agentStop

    readonly agentStop: AgentStopHookEvent

    beforeTool

    readonly beforeTool: BeforeToolHookEvent

    sessionStart

    readonly sessionStart: SessionStartHookEvent

    stop

    readonly stop: StopHookEvent


    HookHandlerContext

    What the generated wrapper hands a handler beside the decoded event: the host that invoked it, that host's native event name, and the validated native input verbatim, for a handler that needs a host-specific field.

    Properties

    nativeEvent

    readonly nativeEvent: string

    nativeInput

    readonly nativeInput: Readonly<Record<string, unknown>>

    target

    readonly target: "claude" | "amp" | "codex" | "cursor"


    HookResultRule

    What a hook result may carry for one handler event, on every host.

    Properties

    additionalContext

    readonly additionalContext: boolean

    additionalContext is accepted and projected into the agent's context on every host.

    deny

    readonly deny: boolean

    { outcome: 'deny', reason } is a legal result (a denial always needs a non-empty reason). Cursor consumes an agentStop denial only for a subagent that completed (nativeInput.status === "completed"); denying an errored or aborted one fails the hook there, so a handler targeting Cursor checks context.nativeInput.status first.

    updatedInput

    readonly updatedInput: boolean

    A continuing result may replace the pending call's input with updatedInput.


    HostCapabilityTable

    A loaded pinned host capability table and its source identity.

    Properties

    data

    readonly data: JsonObject

    fileName

    readonly fileName: string

    host

    readonly host: string

    version

    readonly version: string


    Invalidation

    A debounced batch of source paths which requires project work to be reconsidered.

    Properties

    occurredAt

    readonly occurredAt: string

    paths

    readonly paths: readonly string[]

    reason

    readonly reason: InvalidationReason


    NormalizationConfigExtension

    Properties

    key

    readonly key: string

    target

    readonly target: string


    NormalizationTargetRegistry

    Methods

    binSources()?

    optional binSources(config, targetNames): readonly NormalizationHostBinSource[]

    Parameters
    config

    Readonly<AgentBundleConfig>

    targetNames

    readonly string[]

    Returns

    readonly NormalizationHostBinSource[]

    builtInHost()?

    optional builtInHost(name): string | undefined

    The built-in host the adapter registered under name is, judged by adapter identity rather than name (TargetRegistry.builtInHost); a registry that cannot tell judges by name. undefined for a custom adapter or an unknown name.

    Parameters
    name

    string

    Returns

    string | undefined

    capabilityState()?

    optional capabilityState(name, capability): CapabilityState | undefined

    Parameters
    name

    string

    capability

    string

    Returns

    CapabilityState | undefined

    componentCapabilityState()?

    optional componentCapabilityState(name, capability): CapabilityState | undefined

    The judgment that decides component emission for one target: the adapter's componentCapabilities override when it publishes one (a key it omits reads as no row), otherwise its capabilities. Emission and inspect accounting must consult the same judgment.

    Parameters
    name

    string

    capability

    string

    Returns

    CapabilityState | undefined

    configExtensions()

    configExtensions(): readonly NormalizationConfigExtension[]

    Returns

    readonly NormalizationConfigExtension[]

    defaultTargetNames()

    defaultTargetNames(): readonly string[]

    Returns

    readonly string[]

    has()

    has(name): boolean

    Parameters
    name

    string

    Returns

    boolean

    nativeHookSources()?

    optional nativeHookSources(config, targetNames): readonly NormalizationNativeHookSource[]

    Parameters
    config

    Readonly<AgentBundleConfig>

    targetNames

    readonly string[]

    Returns

    readonly NormalizationNativeHookSource[]

    outputStyleSources()?

    optional outputStyleSources(config, targetNames): readonly NormalizationHostBinSource[]

    Parameters
    config

    Readonly<AgentBundleConfig>

    targetNames

    readonly string[]

    Returns

    readonly NormalizationHostBinSource[]

    supports()

    supports(name, capability): boolean

    Parameters
    name

    string

    capability

    string

    Returns

    boolean

    workflowSources()?

    optional workflowSources(config, targetNames): readonly NormalizationHostBinSource[]

    Parameters
    config

    Readonly<AgentBundleConfig>

    targetNames

    readonly string[]

    Returns

    readonly NormalizationHostBinSource[]


    NormalizedAsset

    One project-level static file copied byte-for-byte into selected target artifacts.

    Properties

    bytes

    readonly bytes: number

    id

    readonly id: string

    name

    readonly name: string

    provenance

    readonly provenance: SourceProvenance

    relativePath

    readonly relativePath: string

    The POSIX destination path under the artifact's assets/ directory.

    source

    readonly source: string

    The absolute source file path.

    targets

    readonly targets: readonly string[]


    NormalizedConfigExtension

    Properties

    id

    readonly id: string

    key

    readonly key: string

    provenance

    readonly provenance: SourceProvenance

    target

    readonly target: string

    value

    readonly value: unknown


    NormalizedPayload

    One declared prebuilt payload directory packaged verbatim into target artifacts.

    Properties

    files

    readonly files: readonly NormalizedPayloadFile[]

    id

    readonly id: string

    name

    readonly name: string

    The artifact-root destination directory name.

    provenance

    readonly provenance: SourceProvenance

    runtimeDependencies

    readonly runtimeDependencies: readonly string[]

    Declared bare package names the payload loads at run time, sorted and unique.

    source

    readonly source: string

    Absolute payload source directory.

    targets

    readonly targets: readonly string[]


    NormalizedPayloadFile

    One file of a prebuilt payload directory, copied byte-for-byte.

    Properties

    bytes

    readonly bytes: number

    relativePath

    readonly relativePath: string

    POSIX path relative to the payload source directory (and its artifact destination).

    source

    readonly source: string

    Absolute source file path.


    NormalizedPlugin

    Properties

    assets?

    readonly optional assets?: readonly NormalizedAsset[]

    Project-level copied assets. Normalizers always provide this collection; it remains optional so hand-constructed models stay valid without assets.

    commands?

    readonly optional commands?: readonly NormalizedCommand[]

    Conventional src/commands/*.md documents. Present only when commands are discovered; optional so hand-constructed models predating commands remain valid.

    extensions

    readonly extensions: Readonly<Record<string, NormalizedConfigExtension>>

    hooks

    readonly hooks: readonly NormalizedHook[]

    hostBins?

    readonly optional hostBins?: readonly NormalizedHostPayloadDirectory[]

    Adapter-declared host-native executable directories, enumerated during normalization.

    hostOutputStyles?

    readonly optional hostOutputStyles?: readonly NormalizedHostPayloadDirectory[]

    Adapter-declared host-native output-style directories, enumerated during normalization.

    hostWorkflows?

    readonly optional hostWorkflows?: readonly NormalizedHostPayloadDirectory[]

    Adapter-declared host-native workflow directories, enumerated during normalization.

    layouts?

    readonly optional layouts?: readonly CompiledLayout[]

    Conventional layout modules composed around every rendered route (root first, then the owning server's).

    lspServers?

    readonly optional lspServers?: readonly NormalizedLspServer[]

    Language-server components declared through host config extensions. Present only when a selected host extension declares lspServers; optional so hand-constructed models predating the kind remain valid.

    marketplace?

    readonly optional marketplace?: true

    mcpApps?

    readonly optional mcpApps?: readonly NormalizedMcpApp[]

    Compiler-owned local MCP Apps. Normalizers always provide this collection; it remains optional so pre-Apps consumers can continue to provide a hand-constructed normalized model.

    mcpServers

    readonly mcpServers: readonly NormalizedMcpServer[]

    metadata

    readonly metadata: NormalizedMetadata

    nativeHooks?

    readonly optional nativeHooks?: readonly NormalizedNativeHook[]

    notices?

    readonly optional notices?: NormalizedNotices

    Notice ledger policy declared by notices config; absent means runtime defaults.

    packageBuild?

    readonly optional packageBuild?: NormalizedPackageBuild

    The framework-owned npm package build (bin + lib outputs). Present only when configured or discovered by convention; optional so hand-constructed models predating the package build stay valid.

    payloads?

    readonly optional payloads?: readonly NormalizedPayload[]

    Declared prebuilt payload directories packaged verbatim. Present only when the config declares a payload block; optional so hand-constructed models predating prebuilt payloads stay valid.

    projectRoot

    readonly projectRoot: string

    The absolute project root the model's absolute paths lie under; excluded from model identity.

    providers?

    readonly optional providers?: readonly CompiledProvider[]

    Conventional context providers executed for every generated render request.

    repositoryMarketplace?

    readonly optional repositoryMarketplace?: true

    rules?

    readonly optional rules?: readonly NormalizedRule[]

    Conventional src/rules/*.mdc documents. Present only when rules are discovered; optional so hand-constructed models predating rules remain valid.

    runtime

    readonly runtime: NormalizedRuntime

    The generated-executable runtime floor selected during normalization.

    scripts

    readonly scripts: readonly NormalizedScript[]

    skills

    readonly skills: readonly NormalizedSkill[]

    sourceMap?

    readonly optional sourceMap?: true

    True when output.sourceMap opted the generated-executable compiler profile in. Absent means source maps stay off.

    state?

    readonly optional state?: NormalizedStateDefinition

    targets

    readonly targets: readonly NormalizedTarget[]

    web?

    readonly optional web?: NormalizedWeb


    NormalizedRuntime

    The selected runtime floor for generated executables, written to artifact metadata.

    Properties

    node

    readonly node: string


    PortableAuthorConfig

    Agent Plugins 1.0.0 §5.4 author object: optional name, email, and url strings.

    Properties

    email?

    readonly optional email?: string

    name?

    readonly optional name?: string

    url?

    readonly optional url?: string


    PortableManifestConfig

    Portable-only manifest metadata layered onto the emitted root plugin.json (Agent Plugins 1.0.0 §5.4 metadata fields and §5.6/§8.1 extensions). Every field is optional; omitted fields are omitted from the manifest.

    Properties

    author?

    readonly optional author?: PortableAuthorConfig | null

    Descriptive fields default to the shared plugin.metadata layer; null opts this manifest out.

    extensions?

    readonly optional extensions?: Readonly<Record<string, Readonly<Record<string, unknown>>>>

    Client extension namespaces (reverse-domain, §8) mapped to their opaque object payloads.

    homepage?

    readonly optional homepage?: string | null

    keywords?

    readonly optional keywords?: readonly string[] | null

    license?

    readonly optional license?: string | null

    repository?

    readonly optional repository?: string | null


    ProjectEventPayloadMap

    Properties

    artifact.available

    readonly artifact.available: ActiveArtifactStatus

    artifact.status

    readonly artifact.status: ArtifactStatus

    build.failed

    readonly build.failed: FailedBuildAttempt

    build.started

    readonly build.started: RunningBuildAttempt

    dev.contract.status

    readonly dev.contract.status: DevContractStatusEvent

    dev.host.sync

    readonly dev.host.sync: DevHostSyncEvent

    invalidation

    readonly invalidation: Invalidation

    route.invocation

    readonly route.invocation: RouteInvocationEventPayload

    runtime.event

    readonly runtime.event: RuntimeEvent

    source.changed

    readonly source.changed: Invalidation

    source.status

    readonly source.status: SourceStatus


    ProjectReplayGap

    Properties

    earliestAvailableSequence

    readonly earliestAvailableSequence: number

    latestDroppedSequence

    readonly latestDroppedSequence: number

    requestedAfterSequence

    readonly requestedAfterSequence: number

    type

    readonly type: "replay.gap"


    ProjectStatus

    Properties

    artifact

    readonly artifact: ArtifactStatus

    build

    readonly build: BuildStatus

    hostAdoption?

    readonly optional hostAdoption?: HostAdoptionStatus

    runtime?

    readonly optional runtime?: ProjectRuntimeTopology

    source

    readonly source: SourceStatus


    RunClaudeTrialOptions

    Extends

    • ClaudeProcessOptions

    Properties

    artifact

    readonly artifact: PreparedEvalArtifact

    configuredSemanticGrader?

    readonly optional configuredSemanticGrader?: NormalizedEvalSemanticGrader

    Server-normalized configuration; callers cannot provide an id, command, environment, or cwd.

    environment?

    readonly optional environment?: Readonly<ProcessEnv>

    evalCase

    readonly evalCase: EvalCase

    fixturePlan

    readonly fixturePlan: EvalFixturePlan

    gracePeriodMs?

    readonly optional gracePeriodMs?: number

    Inherited from

    ClaudeProcessOptions.gracePeriodMs

    graders?

    readonly optional graders?: readonly EvalGraderSpec[]

    host?

    readonly optional host?: string

    maxOutputBytes?

    readonly optional maxOutputBytes?: number

    Inherited from

    ClaudeProcessOptions.maxOutputBytes

    now?

    readonly optional now?: () => Date

    Returns

    Date

    onCompleted?

    readonly optional onCompleted?: (result) => void | Promise<void>

    Narrow server-owned native Playground seam; no raw process output crosses it.

    Parameters
    result

    Readonly<{ hookEvents?: readonly string[]; response?: string; workspacePath?: string; }>

    Returns

    void | Promise<void>

    onProgress?

    readonly optional onProgress?: (phase) => void | Promise<void>

    Parameters
    phase

    "fixture.materialized" | "host.started" | "preflight"

    Returns

    void | Promise<void>

    run?

    readonly optional run?: NativeClaudeProcessRunner

    Injected for tests; production always spawns the installed CLI.

    Inherited from

    ClaudeProcessOptions.run

    semanticGrader?

    readonly optional semanticGrader?: EvalSemanticGraderSpec

    signal?

    readonly optional signal?: AbortSignal

    Inherited from

    ClaudeProcessOptions.signal

    suiteDir

    readonly suiteDir: string

    target?

    readonly optional target?: string

    timeoutMs?

    readonly optional timeoutMs?: number

    Inherited from

    ClaudeProcessOptions.timeoutMs

    trialIndex

    readonly trialIndex: number

    workspaceRoot

    readonly workspaceRoot: string

    writer

    readonly writer: EvalTrialWriter


    RunCodexEvalTrialOptions

    Properties

    artifact

    readonly artifact: Pick<PreparedEvalArtifact, "binding" | "root">

    environment?

    readonly optional environment?: Readonly<ProcessEnv>

    evalCase

    readonly evalCase: EvalCase

    fixturePlan

    readonly fixturePlan: EvalFixturePlan

    graders?

    readonly optional graders?: readonly EvalGraderSpec[]

    host?

    readonly optional host?: string

    normalCodexHome?

    readonly optional normalCodexHome?: string

    now?

    readonly optional now?: () => Date

    Returns

    Date

    onCompleted?

    readonly optional onCompleted?: (result) => void | Promise<void>

    Narrow server-owned native Playground seam; no raw process output crosses it.

    Parameters
    result

    Readonly<{ response?: string; workspacePath: string; }>

    Returns

    void | Promise<void>

    onProgress?

    readonly optional onProgress?: (phase) => void | Promise<void>

    Parameters
    phase

    "fixture.materialized" | "host.started" | "preflight" | "codex.setup"

    Returns

    void | Promise<void>

    run?

    readonly optional run?: CodexCommandRunner

    signal?

    readonly optional signal?: AbortSignal

    suiteDir

    readonly suiteDir: string

    target?

    readonly optional target?: string

    timeoutMs?

    readonly optional timeoutMs?: number

    trialIndex

    readonly trialIndex: number

    workspaceRoot

    readonly workspaceRoot: string

    writer

    readonly writer: EvalTrialWriter


    RunningBuildAttempt

    Properties

    completedAt?

    readonly optional completedAt?: undefined

    diagnostics

    readonly diagnostics: readonly Diagnostic[]

    id

    readonly id: string

    outcome

    readonly outcome: "running"

    result?

    readonly optional result?: undefined

    sourceRevision

    readonly sourceRevision: string

    startedAt

    readonly startedAt: string


    RuntimeEvent

    Properties

    correlationId?

    readonly optional correlationId?: string

    details?

    readonly optional details?: Readonly<{[key: string]: JsonValue; }>

    providerSessionId

    readonly providerSessionId: string

    runId?

    readonly optional runId?: string

    runtimeGenerationId?

    readonly optional runtimeGenerationId?: string

    type

    readonly type: "runtime.status" | "runtime.generation.compiling" | "runtime.generation.activated" | "runtime.generation.failed" | "runtime.run.started" | "runtime.run.completed" | "runtime.run.failed"


    SessionStartHookEvent

    The payload fields every handler event carries. Fields are required only when every host's wrapper guarantees them; sessionId is the one identity every host names. transcriptPath is null on Codex when no rollout exists yet.

    Extends

    Properties

    cwd?

    readonly optional cwd?: string

    Inherited from

    HookEventBase.cwd

    effort?

    readonly optional effort?: string

    Inherited from

    HookEventBase.effort

    hookEventName?

    readonly optional hookEventName?: string

    Inherited from

    HookEventBase.hookEventName

    model?

    readonly optional model?: string

    Inherited from

    HookEventBase.model

    permissionMode?

    readonly optional permissionMode?: string

    Inherited from

    HookEventBase.permissionMode

    promptId?

    readonly optional promptId?: string

    Inherited from

    HookEventBase.promptId

    sessionId

    readonly sessionId: string

    Inherited from

    HookEventBase.sessionId

    source?

    readonly optional source?: string

    How the session began (startup, resume, …); absent on Cursor.

    transcriptPath?

    readonly optional transcriptPath?: string | null

    Inherited from

    HookEventBase.transcriptPath

    turnId?

    readonly optional turnId?: string

    Inherited from

    HookEventBase.turnId


    SkillIr

    Properties

    authoredTargets?

    readonly optional authoredTargets?: unknown

    body

    readonly body: string

    diagnostics

    readonly diagnostics: readonly Diagnostic[]

    extensions

    readonly extensions: SkillIrExtensions

    markdown

    readonly markdown: string

    passThrough

    readonly passThrough: boolean

    placeholders

    readonly placeholders: readonly SkillIrPlaceholder[]

    portable

    readonly portable: PortableSkillMetadata

    resources

    readonly resources: readonly SkillResourceRef[]

    sidecars

    readonly sidecars: readonly SkillSidecarRef[]

    source

    readonly source: string


    SkillTreeLayoutDecision

    Properties

    decision

    readonly decision: "shared" | "per-host-required"

    evidence

    readonly evidence: string

    feeds

    readonly feeds: "#101"

    reason

    readonly reason: string


    SourceStatus

    Properties

    diagnostics

    readonly diagnostics: readonly Diagnostic[]

    packageName?

    readonly optional packageName?: string

    The npm package name axis derived from package.json, when valid.

    packageVersion?

    readonly optional packageVersion?: string

    The semantic release-version axis derived from package.json, when valid.

    revision?

    readonly optional revision?: string

    state

    readonly state: SourceState


    StartDevServerOptions

    Properties

    agentApi?

    readonly optional agentApi?: boolean

    Enables the optional agent-facing MCP endpoint for this foreground session.

    agentApiToken?

    readonly optional agentApiToken?: string

    Internal

    Trusted test seam for the fixed Agent API bearer secret.

    assets?

    readonly optional assets?: WorkbenchAssetSource

    Supplied by integration tests; published callers use the packaged assets.

    installHosts?

    readonly optional installHosts?: readonly DevInstallHost[]

    Hosts whose installed development variant follows successful artifact epochs.

    open?

    readonly optional open?: boolean

    Launch the foreground URL after it has started. Defaults to false.

    openBrowser?

    readonly optional openBrowser?: OpenBrowser

    Injectable browser launcher for embedding and deterministic tests.

    port?

    readonly optional port?: number

    registry?

    readonly optional registry?: TargetRegistry

    Advanced adapter registry shared by all development project and runtime services.

    root

    readonly root: string

    testing?

    readonly optional testing?: DevServerTesting

    Test-only listener and sandbox factories; production always uses the built-in loopback services.

    workbenchDevOrigins?

    readonly optional workbenchDevOrigins?: readonly string[]

    Contributor HMR only: loopback origins of a Workbench Rsbuild dev server that proxies /api to this foreground server; never set by default.


    StopHookEvent

    The payload fields every handler event carries. Fields are required only when every host's wrapper guarantees them; sessionId is the one identity every host names. transcriptPath is null on Codex when no rollout exists yet.

    Extends

    Properties

    cwd?

    readonly optional cwd?: string

    Inherited from

    HookEventBase.cwd

    effort?

    readonly optional effort?: string

    Inherited from

    HookEventBase.effort

    hookEventName?

    readonly optional hookEventName?: string

    Inherited from

    HookEventBase.hookEventName

    lastAssistantMessage?

    readonly optional lastAssistantMessage?: string | null

    model?

    readonly optional model?: string

    Inherited from

    HookEventBase.model

    permissionMode?

    readonly optional permissionMode?: string

    Inherited from

    HookEventBase.permissionMode

    promptId?

    readonly optional promptId?: string

    Inherited from

    HookEventBase.promptId

    sessionId

    readonly sessionId: string

    Inherited from

    HookEventBase.sessionId

    stopHookActive

    readonly stopHookActive: boolean

    Whether this stop hook is already running for the turn (loop guard).

    transcriptPath?

    readonly optional transcriptPath?: string | null

    Inherited from

    HookEventBase.transcriptPath

    turnId?

    readonly optional turnId?: string

    Inherited from

    HookEventBase.turnId


    SucceededBuildAttempt

    Properties

    completedAt

    readonly completedAt: string

    diagnostics

    readonly diagnostics: readonly Diagnostic[]

    id

    readonly id: string

    outcome

    readonly outcome: "succeeded"

    result

    readonly result: Readonly<{ epoch: ArtifactEpoch; }>

    sourceRevision

    readonly sourceRevision: string

    startedAt

    readonly startedAt: string

    Type Aliases

    ActiveArtifactStatus

    ActiveArtifactStatus = Extract<ArtifactStatus, { state: "active"; }>


    AgentBundleConfig

    AgentBundleConfig = CoreAgentBundleConfig & ClaudeConfigExtension & CodexConfigExtension & CursorConfigExtension & PortableConfigExtension


    AgentBundleHookInput

    AgentBundleHookInput = string | AgentBundleHookEntry | readonly (string | AgentBundleHookEntry)[]


    AgentBundlePayloadConfig

    AgentBundlePayloadConfig = Readonly<Record<string, AgentBundlePayloadInput>>

    Prebuilt payload trees packaged byte-for-byte into selected target artifacts. Key = artifact-root destination directory (a safe single path segment outside the compiler-owned namespaces), value = the already-built source directory. Every file keeps its exact relative path — payload trees are opaque to the compiler, which cannot rewrite their internal sibling references, so stable names are the correctness contract; integrity stays content-addressed through the artifact manifest and project source inputs.


    AgentBundlePayloadInput

    AgentBundlePayloadInput = string | AgentBundlePayloadEntry


    AgentEventPayload

    AgentEventPayload<E> = { readonly [Field in AgentEventPayloadFields[E][number]]?: AgentEventPayloadField<AgentEventPayloadFieldTypes[Field]> }

    The canonical payload of event family E: each admitted field is present with its provenance when the host sent it and absent (undefined) when the host did not — never fabricated. For the wide CanonicalAgentEvent the payload admits every field of every family, all optional.

    Type Parameters

    E

    E extends CanonicalAgentEvent = CanonicalAgentEvent


    AgentEventPayloadFieldKind

    AgentEventPayloadFieldKind = "boolean" | "json" | "nullable-string" | "string" | "string-array" | "trigger"

    The JSON shape each canonical payload field is decoded as; the runtime twin of AgentEventPayloadFieldTypes.


    AgentEventPayloadFieldName

    AgentEventPayloadFieldName = keyof AgentEventPayloadFieldTypes


    AgentEventPayloadFields

    AgentEventPayloadFields = typeof agentEventPayloadFields


    AgentEventPayloadHost

    AgentEventPayloadHost = "amp" | "claude" | "codex" | "cursor"

    The hosts whose native envelopes the framework maps into canonical payloads.


    AgentTerminalColor

    AgentTerminalColor = "none" | "basic" | "256" | "truecolor"

    basic is 16 colors, 256 the xterm palette, truecolor 24-bit.


    AgentTerminalStreamKind

    AgentTerminalStreamKind = "tty" | "pipe" | "none"

    tty is an interactive terminal; pipe any other open descriptor (a pipe, a file, a socket, /dev/null); none means no human-facing stream exists for the route on this surface — an MCP server's stdout is the protocol wire and a hook's is its host envelope.


    AgentTerminalSurface

    AgentTerminalSurface = "cli" | "mcp" | "hook" | "script" | "workbench"

    The projection a request runs under. cli, script, and workbench own a probed process; mcp and hook never have a terminal and always report none.


    ArtifactManifestBuiltInHost

    ArtifactManifestBuiltInHost = "amp" | "claude" | "codex" | "cursor" | "portable"

    The shipped adapters, by identity. A projection planned by one of them records which, so a consumer holding only the manifest judges "is this the Claude projection" the way the build did — by adapter, never by the name the project selected it under (#578 audit: names are selection, not identity).


    ArtifactManifestDistributionChannel

    ArtifactManifestDistributionChannel = "local" | "npm"


    ArtifactManifestFileKind

    ArtifactManifestFileKind = typeof artifactManifestFileKinds[number]


    ArtifactManifestLaunchArgument

    ArtifactManifestLaunchArgument = { kind: "artifact"; path: string; } | { kind: "literal"; value: string; }

    One argument of a server launch record, after the entry. An author argument written as agent-bundle:path:plugin-root/<path> is an artifact reference — a root-relative POSIX path inside the composite root (a files[] row, or a path under a declared payload directory). Every other argument is a literal the launcher passes through with its remaining agent-bundle:path:* tokens expanded; a literal that merely looks like a path stays a literal, because the manifest records the author's declaration and cwd-relative normalization is a projection concern (#633).


    ArtifactManifestReadResult

    ArtifactManifestReadResult = Readonly<{ manifest: ArtifactManifest; path: string; root: string; status: "ok"; }> | Readonly<{ path: string; root: string; status: "missing"; }> | Readonly<{ detail: string; path: string; root: string; status: "invalid"; }>

    The one way a consumer opens a built artifact: agent-bundle.manifest.json at the root it was handed. install, doctor, uninstall, eval, serve-app, and the test harness all read the root through this result and map it to their own diagnostic; none probes a host document to learn what the root contains (#592 step 3, #555 W2/S3).


    ArtifactManifestRouteKind

    ArtifactManifestRouteKind = CompiledRouteKind

    Mirrors CompiledRouteKind: the manifest groups by the compiler's own kinds.


    ArtifactManifestValidationStatus

    ArtifactManifestValidationStatus = "passed"


    ArtifactOutputKind

    ArtifactOutputKind = "bundle" | "copy" | "generated" | "prebuilt"


    ArtifactState

    ArtifactState = ArtifactStatus["state"]


    ArtifactStatus

    ArtifactStatus = Readonly<{ activeEpoch?: never; currentSourceRevision?: string; state: "missing"; }> | Readonly<{ activeEpoch: ArtifactEpoch; currentSourceRevision: string; state: "active"; }> | Readonly<{ activeEpoch: ArtifactEpoch; currentSourceRevision: string; state: "stale"; }>


    BuildAttempt

    BuildAttempt = RunningBuildAttempt | SucceededBuildAttempt | FailedBuildAttempt


    BuildAttemptOutcome

    BuildAttemptOutcome = BuildAttempt["outcome"]


    BuildState

    BuildState = BuildStatus["state"]


    BuildStatus

    BuildStatus = Readonly<{ lastAttempt?: CompletedBuildAttempt; state: "idle"; }> | Readonly<{ activeAttempt: RunningBuildAttempt; lastAttempt?: CompletedBuildAttempt; state: "building"; }> | Readonly<{ lastAttempt: FailedBuildAttempt; state: "failed"; }>


    CanonicalAgentEvent

    CanonicalAgentEvent = typeof canonicalAgentEvents[number]


    CanonicalHookEvent

    CanonicalHookEvent = typeof canonicalHookEvents[number]


    CodexCommandRunner

    CodexCommandRunner = (command) => Promise<CodexCommandResult>

    Parameters

    command

    CodexCommandInput

    Returns

    Promise<CodexCommandResult>


    CompletedBuildAttempt

    CompletedBuildAttempt = Exclude<BuildAttempt, RunningBuildAttempt>


    ConfigFactory

    ConfigFactory = (context) => AgentBundleConfig | Promise<AgentBundleConfig>

    Parameters

    context

    ConfigFactoryContext

    Returns

    AgentBundleConfig | Promise<AgentBundleConfig>


    EvalSemanticGrader

    EvalSemanticGrader = (context) => EvalScriptOutcome | Promise<EvalScriptOutcome>

    Parameters

    context

    EvalSemanticGraderContext

    Returns

    EvalScriptOutcome | Promise<EvalScriptOutcome>


    EventTraceEvent

    EventTraceEvent = EventTraceHandlerStart | EventTraceHandlerOutcomeEvent | EventTraceExecuteStart | EventTraceProvidersStart | EventTraceProvidersFinish | EventTraceRenderStart | EventTraceRenderFinish | EventTraceFailure


    EventTraceEventKind

    EventTraceEventKind = typeof eventTraceEventKinds[number]


    EventTraceHandlerOutcome

    EventTraceHandlerOutcome = "render" | "continue" | "deny"

    The gate decision without its reason text: deny is enough for a trace.


    EventTraceHandlerStart

    EventTraceHandlerStart = EventTraceEventBase<"handler.start", "handler">


    EventTraceObserver

    EventTraceObserver = (event) => void

    A consumer's sink. Called synchronously with a frozen event; exceptions are swallowed.

    Parameters

    event

    EventTraceEvent

    Returns

    void


    EventTracePhase

    EventTracePhase = typeof eventTracePhases[number]


    EventTraceProvidersStart

    EventTraceProvidersStart = EventTraceEventBase<"providers.start", "providers">


    EventTraceRenderStart

    EventTraceRenderStart = EventTraceEventBase<"render.start", "render">


    EventTraceRuntime

    EventTraceRuntime = "shared" | "standalone"

    Which runtime the deferred execute step loads the route in.


    HookContinueResult

    HookContinueResult<E> = object & WithAdditionalContext<E> & WithUpdatedInput<E>

    A continuing result: outcome may be omitted, and reason is never legal here.

    Type Declaration

    outcome?

    readonly optional outcome?: "continue"

    reason?

    readonly optional reason?: never

    Type Parameters

    E

    E extends HookHandlerEventName


    HookDenyResult

    HookDenyResult<E> = HookResultContract[E]["deny"] extends true ? object & WithAdditionalContext<E> : never

    A denying result, for the events whose hosts honour a denial; updatedInput is never legal while denying.

    Type Parameters

    E

    E extends HookHandlerEventName


    HookEvent

    HookEvent<E> = HookEventPayloads[E]

    The event payload a handler for event E receives.

    Type Parameters

    E

    E extends HookHandlerEventName


    HookHandler

    HookHandler<E> = (event, context) => HookResult<E> | undefined | void | Promise<HookResult<E> | undefined | void>

    A config-declared hook handler module's default export for event E. Author it as export default ((event) => ({ ... })) satisfies HookHandler<'sessionStart'>; and an illegal result — a denying sessionStart, a reason beside continue, updatedInput on a stop hook — is rejected by tsc instead of by the wrapper at hook time. The wrapper's runtime validation is unchanged, so a JavaScript or prebuilt handler is held to the same contract.

    Type Parameters

    E

    E extends HookHandlerEventName

    Parameters

    event

    HookEvent<E>

    context

    HookHandlerContext

    Returns

    HookResult<E> | undefined | void | Promise<HookResult<E> | undefined | void>


    HookHandlerEventName

    HookHandlerEventName = typeof hookHandlerEventNames[number]


    HookResult

    HookResult<E> = HookContinueResult<E> | HookDenyResult<E>

    The result a handler for event E may return. Returning nothing (void) continues; the generated wrapper still validates every returned object at hook time, so JavaScript and prebuilt handlers keep the same runtime contract.

    Type Parameters

    E

    E extends HookHandlerEventName


    HookResultContract

    HookResultContract = typeof hookResultContract


    InspectArtifactResult

    InspectArtifactResult = Readonly<{ application: ApplicationExplorer; manifest: InspectManifestSummary; }>


    InvalidationReason

    InvalidationReason = "initial" | "manual" | "source-change"


    JsonArray

    JsonArray = readonly JsonValue[]


    JsonObject

    JsonObject = Readonly<{[key: string]: JsonValue; }>


    JsonPrimitive

    JsonPrimitive = boolean | null | number | string


    JsonValue

    JsonValue = JsonArray | JsonObject | JsonPrimitive


    McpTransport

    McpTransport = "stdio" | "streamable-http"


    ProjectEvent

    ProjectEvent = { readonly [TType in ProjectEventType]: ProjectEventFor<TType> }[ProjectEventType]

    Stable envelope for each published project event.


    ProjectEventMessage

    ProjectEventMessage = ProjectEvent | ProjectReplayGap


    ProjectEventOf

    ProjectEventOf<TType> = ProjectEventFor<TType>

    Type Parameters

    TType

    TType extends ProjectEventType


    ProjectEventType

    ProjectEventType = keyof ProjectEventPayloadMap


    SkillHost

    SkillHost = "amp" | "claude" | "codex" | "cursor" | "portable"


    SkillTokenId

    SkillTokenId = keyof typeof skillTokenSpellings


    SourceState

    SourceState = "unknown" | "ready" | "invalid"


    StaleArtifactStatus

    StaleArtifactStatus = Extract<ArtifactStatus, { state: "stale"; }>

    Variables

    agentEventPayloadFieldKinds

    const agentEventPayloadFieldKinds: object

    Type Declaration

    agentId

    readonly agentId: "string"

    agentTranscriptPath

    readonly agentTranscriptPath: "nullable-string"

    agentType

    readonly agentType: "string"

    cwd

    readonly cwd: "string"

    error

    readonly error: "string"

    filePath

    readonly filePath: "string"

    fromModel

    readonly fromModel: "string"

    isInterrupt

    readonly isInterrupt: "boolean"

    lastAssistantMessage

    readonly lastAssistantMessage: "nullable-string"

    model

    readonly model: "string"

    permissionMode

    readonly permissionMode: "string"

    prompt

    readonly prompt: "string"

    reason

    readonly reason: "string"

    reentry

    readonly reentry: "boolean"

    requestedModel

    readonly requestedModel: "nullable-string"

    sessionId

    readonly sessionId: "string"

    source

    readonly source: "string"

    taskDescription

    readonly taskDescription: "string"

    taskId

    readonly taskId: "string"

    taskSubject

    readonly taskSubject: "string"

    teammateName

    readonly teammateName: "string"

    teamName

    readonly teamName: "string"

    toModel

    readonly toModel: "string"

    toolInput

    readonly toolInput: "json"

    toolName

    readonly toolName: "string"

    toolResponse

    readonly toolResponse: "json"

    toolUseId

    readonly toolUseId: "string"

    transcriptPath

    readonly transcriptPath: "nullable-string"

    trigger

    readonly trigger: "trigger"

    workspaceRoots

    readonly workspaceRoots: "string-array"


    agentEventPayloadFields

    const agentEventPayloadFields: object

    The canonical payload fields of every event-route family, in the order the payload object carries them. This is the one per-family table; the types (AgentEventPayload) and the runtime projection derive from it. Frozen through (the family arrays share instances), so a consumer holding the export cannot change what later invocations project.

    Type Declaration

    agent/idle

    readonly agent/idle: readonly ["sessionId", "cwd", "transcriptPath", "permissionMode", "agentId", "agentType", "teammateName", "teamName"]

    agent/start

    readonly agent/start: readonly ["sessionId", "cwd", "transcriptPath", "permissionMode", "agentId", "agentType", "model"]

    agent/stop

    readonly agent/stop: readonly ["sessionId", "cwd", "transcriptPath", "permissionMode", "agentId", "agentType", "model", "agentTranscriptPath", "reentry", "lastAssistantMessage"]

    compact/after

    readonly compact/after: readonly ["sessionId", "cwd", "transcriptPath", "permissionMode", "agentId", "agentType", "trigger"]

    compact/before

    readonly compact/before: readonly ["sessionId", "cwd", "transcriptPath", "permissionMode", "agentId", "agentType", "model", "trigger"]

    config/change

    readonly config/change: readonly ["sessionId", "cwd", "transcriptPath", "permissionMode", "agentId", "agentType", "source", "filePath"]

    file/change

    readonly file/change: readonly ["sessionId", "cwd", "transcriptPath", "permissionMode", "agentId", "agentType", "filePath"]

    model-switch/after

    readonly model-switch/after: readonly ["sessionId", "cwd", "transcriptPath", "permissionMode", "agentId", "agentType", "fromModel", "toModel", "requestedModel", "source"]

    model-switch/before

    readonly model-switch/before: readonly ["sessionId", "cwd", "transcriptPath", "permissionMode", "agentId", "agentType", "fromModel", "toModel", "requestedModel", "source"]

    permission/denied

    readonly permission/denied: readonly ["sessionId", "cwd", "transcriptPath", "permissionMode", "agentId", "agentType", "toolName", "toolInput"]

    permission/request

    readonly permission/request: readonly ["sessionId", "cwd", "transcriptPath", "permissionMode", "agentId", "agentType", "toolName", "toolInput"]

    prompt/submit

    readonly prompt/submit: readonly ["sessionId", "cwd", "transcriptPath", "permissionMode", "agentId", "agentType", "model", "prompt"]

    session/end

    readonly session/end: readonly ["sessionId", "cwd", "transcriptPath", "permissionMode", "agentId", "agentType", "model", "reason"]

    session/start

    readonly session/start: readonly ["sessionId", "cwd", "transcriptPath", "permissionMode", "agentId", "agentType", "model", "source"]

    stop

    readonly stop: readonly ["sessionId", "cwd", "transcriptPath", "permissionMode", "agentId", "agentType", "model", "reentry", "lastAssistantMessage"]

    stop/failure

    readonly stop/failure: readonly ["sessionId", "cwd", "transcriptPath", "permissionMode", "agentId", "agentType", "error", "reentry", "lastAssistantMessage"]

    task/complete

    readonly task/complete: readonly ["sessionId", "cwd", "transcriptPath", "permissionMode", "agentId", "agentType", "taskId", "taskSubject", "taskDescription", "teammateName", "teamName"]

    task/create

    readonly task/create: readonly ["sessionId", "cwd", "transcriptPath", "permissionMode", "agentId", "agentType", "taskId", "taskSubject", "taskDescription", "teammateName", "teamName"]

    tool/after

    readonly tool/after: readonly ["sessionId", "cwd", "transcriptPath", "permissionMode", "agentId", "agentType", "model", "toolName", "toolInput", "toolUseId", "toolResponse"]

    tool/before

    readonly tool/before: readonly ["sessionId", "cwd", "transcriptPath", "permissionMode", "agentId", "agentType", "model", "toolName", "toolInput", "toolUseId"]

    tool/failure

    readonly tool/failure: readonly ["sessionId", "cwd", "transcriptPath", "toolName", "toolInput", "toolUseId", "error", "isInterrupt"]

    workspace/open

    readonly workspace/open: readonly ["workspaceRoots"]


    agentEventPayloadNativeKeys

    const agentEventPayloadNativeKeys: Readonly<Record<AgentEventPayloadHost, Readonly<Partial<Record<CanonicalAgentEvent, NativeKeyTable>>>>>

    The per-host native spelling of each canonical payload field, per family: the one mapping table the runtime projection reads. A family a host does not support has no entry; a field a host never sends for a family is absent from its entry, so the table doubles as the coverage matrix the generated events reference renders. The pinned capability tables mirror it under hooks.eventRoutes.<event>.payload, held equal by tests/event-payload.test.ts.


    artifactCompilerRecordVersion

    const artifactCompilerRecordVersion: 1 = 1


    artifactManifestName

    const artifactManifestName: "agent-bundle.manifest.json" = "agent-bundle.manifest.json"


    artifactManifestSchema

    const artifactManifestSchema: JsonObject

    The published JSON Schema (draft 2020-12) for agent-bundle.manifest.json, also shipped verbatim as agent-bundle/schemas/agent-bundle.manifest.schema.json.

    It mirrors the structural rules of parseArtifactManifest — closed keys at every level, required keys, literal unions, SHA-256 and relative-path shapes, and the "present exactly when" conditionals. The parser remains the authority for what a schema cannot state: canonical bytes, sorted arrays, cross-references between sections, digests, and the runtime floor.


    artifactManifestVersion

    const artifactManifestVersion: 6 = 6

    The manifestVersion every reader of agent-bundle.manifest.json requires, declared here so the lean web reader bundled into generated bins and the full parser in build/manifest.ts refuse the same set of documents.


    assembleArtifactManifest

    const assembleArtifactManifest: (manifest) => AssembledArtifactManifest

    Parameters

    manifest

    ArtifactManifest

    Returns

    AssembledArtifactManifest


    canonicalAgentEvents

    const canonicalAgentEvents: readonly ["session/start", "tool/before", "tool/after", "stop", "agent/start", "agent/stop", "workspace/open", "session/end", "prompt/submit", "tool/failure", "compact/before", "compact/after", "permission/request", "permission/denied", "stop/failure", "file/change", "config/change", "task/create", "task/complete", "agent/idle", "model-switch/before", "model-switch/after"]

    The event-route families admitted by the recorded #97 v1/G10 decision.


    classifySkillToken

    const classifySkillToken: (token, host, document) => SkillTokenClassification

    Parameters

    token

    SkillTokenId

    host

    SkillHost

    document

    SkillDocumentKind

    Returns

    SkillTokenClassification


    createCodexEvalHarness

    const createCodexEvalHarness: (name?) => CodexEvalHarness

    The native Codex harness; its trials are model-backed, so it never claims a deterministic kind.

    Parameters

    name?

    string

    Returns

    CodexEvalHarness


    createEvalHarness

    const createEvalHarness: (name) => EvalHarness

    An unknown harness is rejected explicitly rather than falling back to a stub.

    Parameters

    name

    string

    Returns

    EvalHarness


    createEventTracer

    const createEventTracer: (options) => EventTracer

    Creates the emitter for one execution. An explicit observer is fixed for the tracer's lifetime; otherwise every emission reads the process slot so a framework-created tracer can outlive observer installation. With an observer, each method builds a frozen event, assigns the next sequence, stamps at from now, and hands it to the observer inside a try/catch: a throwing observer, clock, or re-entry never changes what the caller sees.

    Parameters

    options

    CreateEventTracerOptions

    Returns

    EventTracer


    defineConfig

    const defineConfig: (config) => AgentBundleConfig | ConfigFactory

    Parameters

    config

    AgentBundleConfig | ConfigFactory

    Returns

    AgentBundleConfig | ConfigFactory


    definePrebuilt

    const definePrebuilt: (entry) => AgentBundlePayloadEntry

    Declares one prebuilt payload directory for the payload block: a tree the project compiled itself, packaged byte-for-byte, with the package names its files load at run time. The compiler treats the tree as opaque, so runtimeDependencies is what keeps those packages out of AB7014.

    Parameters

    entry

    AgentBundlePayloadEntry

    Returns

    AgentBundlePayloadEntry


    defineSkill

    const defineSkill: <Skill>(skill) => Skill

    Identity helper so authors can type a Skill definition next to a rendered source.

    Type Parameters

    Skill

    Skill extends DefinedSkill

    Parameters

    skill

    Skill

    Returns

    Skill


    eventTraceEventKinds

    const eventTraceEventKinds: readonly ["handler.start", "handler.outcome", "execute.start", "providers.start", "providers.finish", "render.start", "render.finish", "failure"]

    Every discriminant of EventTraceEvent, for consumers that switch or filter.


    eventTraceExecution

    const eventTraceExecution: (input) => EventTraceExecution

    Builds the frozen per-execution identity, minting a UUID executionId when none is given.

    Parameters

    input

    Readonly<{ event: CanonicalAgentEvent; executionId?: string; host: string; nativeEvent: string; }>

    Returns

    EventTraceExecution


    eventTraceObserver

    const eventTraceObserver: () => EventTraceObserver | undefined

    Returns the process-local observer currently installed for kernel traces.

    Returns

    EventTraceObserver | undefined


    eventTracePhases

    const eventTracePhases: readonly ["handler", "execute", "providers", "render"]

    The kernel phases a trace can attribute time or a failure to.


    hookEventFields

    const hookEventFields: object

    The payload fields per canonical event, as the wrappers decode them: the runtime twin of HookEventPayloads, so a test can hold a generated wrapper's decoder to the same field set the types declare. required fields are present on every host; optional ones are host-dependent.

    Type Declaration

    afterTool

    readonly afterTool: object

    afterTool.optional

    readonly optional: readonly ["cwd", "effort", "hookEventName", "model", "permissionMode", "promptId", "transcriptPath", "turnId"]

    afterTool.required

    readonly required: readonly ["sessionId", "toolInput", "toolName", "toolResponse", "toolUseId"]

    agentStart

    readonly agentStart: object

    agentStart.optional

    readonly optional: readonly ["cwd", "effort", "hookEventName", "model", "permissionMode", "promptId", "toolUseId", "transcriptPath", "turnId"]

    agentStart.required

    readonly required: readonly ["agentId", "agentType", "sessionId"]

    agentStop

    readonly agentStop: object

    agentStop.optional

    readonly optional: readonly ["agentId", "agentTranscriptPath", "cwd", "effort", "hookEventName", "lastAssistantMessage", "model", "permissionMode", "promptId", "transcriptPath", "turnId"]

    agentStop.required

    readonly required: readonly ["agentType", "sessionId", "stopHookActive"]

    beforeTool

    readonly beforeTool: object

    beforeTool.optional

    readonly optional: readonly ["cwd", "effort", "hookEventName", "model", "permissionMode", "promptId", "transcriptPath", "turnId"]

    beforeTool.required

    readonly required: readonly ["sessionId", "toolInput", "toolName", "toolUseId"]

    sessionStart

    readonly sessionStart: object

    sessionStart.optional

    readonly optional: readonly ["cwd", "effort", "hookEventName", "model", "permissionMode", "promptId", "source", "transcriptPath", "turnId"]

    sessionStart.required

    readonly required: readonly ["sessionId"]

    stop

    readonly stop: object

    stop.optional

    readonly optional: readonly ["cwd", "effort", "hookEventName", "lastAssistantMessage", "model", "permissionMode", "promptId", "transcriptPath", "turnId"]

    stop.required

    readonly required: readonly ["sessionId", "stopHookActive"]


    hookHandlerEventNames

    const hookHandlerEventNames: readonly ["sessionStart", "beforeTool", "afterTool", "stop", "agentStart", "agentStop"]

    The canonical events a config hook (hooks.<event>.handler) can be declared for: the events every production host maps to a native plain hook. workspaceOpen is a CanonicalHookEvent but no host maps it as a plain hook — it is served by an event route — so it has no handler contract.


    hookResultContract

    const hookResultContract: object

    The per-event result contract the generated wrappers enforce, as the portable intersection across hosts. No event admits outcome: 'stop'; reason is legal only beside outcome: 'deny'; updatedInput is never legal while denying.

    Type Declaration

    afterTool

    readonly afterTool: object

    afterTool.additionalContext

    readonly additionalContext: true

    afterTool.deny

    readonly deny: false

    afterTool.updatedInput

    readonly updatedInput: false

    agentStart

    readonly agentStart: object

    agentStart.additionalContext

    readonly additionalContext: false

    agentStart.deny

    readonly deny: false

    agentStart.updatedInput

    readonly updatedInput: false

    agentStop

    readonly agentStop: object

    agentStop.additionalContext

    readonly additionalContext: false

    agentStop.deny

    readonly deny: true

    agentStop.updatedInput

    readonly updatedInput: false

    beforeTool

    readonly beforeTool: object

    beforeTool.additionalContext

    readonly additionalContext: false

    beforeTool.deny

    readonly deny: true

    beforeTool.updatedInput

    readonly updatedInput: true

    sessionStart

    readonly sessionStart: object

    sessionStart.additionalContext

    readonly additionalContext: true

    sessionStart.deny

    readonly deny: false

    sessionStart.updatedInput

    readonly updatedInput: false

    stop

    readonly stop: object

    stop.additionalContext

    readonly additionalContext: false

    stop.deny

    readonly deny: true

    stop.updatedInput

    readonly updatedInput: false


    inspectArtifact

    const inspectArtifact: (root) => Promise<InspectArtifactResult>

    Inspects a copied built composite root through agent-bundle.manifest.json alone — the same application projection the Workbench renders. The only filesystem touch under root is that one file.

    Parameters

    root

    string

    Returns

    Promise<InspectArtifactResult>


    installEventTraceObserver

    const installEventTraceObserver: (observer) => () => void

    Installs the process-local observer used by framework-created tracers. The disposer restores the previous observer without disturbing a newer one.

    Parameters

    observer

    EventTraceObserver

    Returns

    () => void


    parseArtifactManifest

    const parseArtifactManifest: (bytes) => ArtifactManifest

    Parameters

    bytes

    string

    Returns

    ArtifactManifest


    pathTokens

    const pathTokens: Readonly<{ pluginData: "agent-bundle:path:plugin-data"; pluginRoot: "agent-bundle:path:plugin-root"; workspaceRoot: "agent-bundle:path:workspace-root"; }>


    pluginRootEnvAnchor

    const pluginRootEnvAnchor: "AGENT_BUNDLE_PLUGIN_ROOT" = "AGENT_BUNDLE_PLUGIN_ROOT"

    Well-known environment variable every adapter injects into emitted stdio MCP server entries, holding the plugin install root in the target's native representation (${CLAUDE_PLUGIN_ROOT}, ${PLUGIN_ROOT}, ${CURSOR_PLUGIN_ROOT}, or Codex's ./ resolved against the entry's plugin-root cwd). Server runtime code should resolve bundled assets against it instead of the process working directory, which not every host anchors to the plugin root. A user-declared env entry with this key always wins over the injected value.


    pluginStateRootEnvAnchor

    const pluginStateRootEnvAnchor: "AGENT_BUNDLE_STATE_ROOT" = "AGENT_BUNDLE_STATE_ROOT"

    Explicit override of the framework state root; the runtime exports the same name as PLUGIN_STATE_ROOT_ENV_ANCHOR.


    readArtifactManifest

    const readArtifactManifest: (from) => Promise<ArtifactManifestReadResult>

    Parameters

    from

    string

    Returns

    Promise<ArtifactManifestReadResult>


    runClaudeTrial

    const runClaudeTrial: (options) => Promise<EvalTrialRecord>

    Runs one model-backed trial through the installed, signed-in Claude Code CLI with an explicit generated plugin directory. No provider API key is ever accepted or injected, and --bare is never passed, so the CLI can only use its existing session state.

    Parameters

    options

    RunClaudeTrialOptions

    Returns

    Promise<EvalTrialRecord>


    runCodexEvalTrial

    const runCodexEvalTrial: (options) => Promise<EvalTrialRecord>

    Runs one Codex trial in a throwaway CODEX_HOME: the candidate is installed from a local marketplace, verified through plugin state, and exercised with codex exec --ephemeral --json. No provider API key is accepted, requested, or forwarded; the CLI's own session is the only auth.

    Parameters

    options

    RunCodexEvalTrialOptions

    Returns

    Promise<EvalTrialRecord>


    serializeArtifactManifest

    const serializeArtifactManifest: (manifest) => string

    Serializes a valid manifest. Caller arrays must already be sorted and unique; this function validates rather than reordering them.

    Parameters

    manifest

    ArtifactManifest

    Returns

    string


    Skill

    const Skill: Readonly<{ Arguments: () => string; PluginData: () => string; PluginRoot: () => string; ProjectRoot: () => string; Resource: ({ path }) => string; SessionIdentity: () => string; SkillRoot: () => string; }>

    Rendered-skill components that emit canonical tokens. The Markdown renderer resolves function components to strings; host syntax is applied only during lowering, never here.


    skillTokenSpellings

    const skillTokenSpellings: Readonly<{ arguments: "agent-bundle:token:arguments"; pluginData: "agent-bundle:path:plugin-data"; pluginRoot: "agent-bundle:path:plugin-root"; projectRoot: "agent-bundle:path:workspace-root"; sessionIdentity: "agent-bundle:token:session-identity"; skillRoot: "agent-bundle:token:skill-root"; }>

    Canonical Skill / plugin-surface tokens. Build-time lowering substitutes host syntax only; runtime values are never resolved here.

    Plugin/project-root spellings are the same bytes as pathTokens in core/types.ts so MCP, hooks, and skills share one registry (#108 / #107 R12). This module must not import core/types.ts — NormalizedSkill lives there and imports the Skill IR types.


    startDevServer

    const startDevServer: (options) => Promise<DevServerSession>

    Starts one loopback foreground session over the current project services.

    Parameters

    options

    StartDevServerOptions

    Returns

    Promise<DevServerSession>


    summarizeEventTraceError

    const summarizeEventTraceError: (error) => EventTraceErrorSummary

    Projects any thrown value into a frozen, JSON-safe EventTraceErrorSummary. Never throws, never returns the error object, its stack, or its cause.

    Parameters

    error

    unknown

    Returns

    EventTraceErrorSummary


    validateArtifactManifestSchema

    const validateArtifactManifestSchema: (value) => readonly string[]

    Validates a parsed JSON value against artifactManifestSchema. Returns no issues when the value conforms, otherwise one formatted line per issue in deterministic order (/routes must NOT have additional properties: zzz). Conformance here is necessary but not sufficient: parseArtifactManifest still decides whether a document is a manifest.

    Parameters

    value

    unknown

    Returns

    readonly string[]

    References

    AgentEventCanonicalIdentity

    Re-exports AgentEventCanonicalIdentity


    AgentEventDelivery

    Re-exports AgentEventDelivery


    AgentEventFallbackMode

    Re-exports AgentEventFallbackMode


    AgentEventNativePayload

    Re-exports AgentEventNativePayload


    AgentEventProvenance

    Re-exports AgentEventProvenance


    AgentEventRouteConfig

    Re-exports AgentEventRouteConfig


    AgentEventRouteProps

    Re-exports AgentEventRouteProps


    AgentEventRuntimeMode

    Re-exports AgentEventRuntimeMode


    AgentLayoutRoute

    Re-exports AgentLayoutRoute


    AgentLayoutRouteKind

    Re-exports AgentLayoutRouteKind


    AgentProviderContext

    Re-exports AgentProviderContext


    AgentProviderFactory

    Re-exports AgentProviderFactory


    AgentProviderHostIdentity

    Re-exports AgentProviderHostIdentity


    AgentProviderLineage

    Re-exports AgentProviderLineage


    AgentProviderLineagePeer

    Re-exports AgentProviderLineagePeer


    AgentProviderLineageResolution

    Re-exports AgentProviderLineageResolution


    AgentProviderLineageSubagent

    Re-exports AgentProviderLineageSubagent


    AgentProviderLineageTree

    Re-exports AgentProviderLineageTree


    AgentProviderNotice

    Re-exports AgentProviderNotice


    AgentProviderNoticeAttempt

    Re-exports AgentProviderNoticeAttempt


    AgentProviderNoticePublisher

    Re-exports AgentProviderNoticePublisher


    AgentProviderNoticeRecipient

    Re-exports AgentProviderNoticeRecipient


    AgentProviderNoticesHandle

    Re-exports AgentProviderNoticesHandle


    AgentProviderNoticeState

    Re-exports AgentProviderNoticeState


    AgentProviderNoticeWithholding

    Re-exports AgentProviderNoticeWithholding


    AgentProviderObserved

    Re-exports AgentProviderObserved


    AgentProviderObservedPluginRoot

    Re-exports AgentProviderObservedPluginRoot


    AgentProviderPluginRoot

    Re-exports AgentProviderPluginRoot


    AgentProviderSessionIdentity

    Re-exports AgentProviderSessionIdentity


    AgentProviderStateHandle

    Re-exports AgentProviderStateHandle


    AgentProviderStateSnapshot

    Re-exports AgentProviderStateSnapshot


    AgentProviderWorkspaceIdentity

    Re-exports AgentProviderWorkspaceIdentity


    AppRouteConfig

    Re-exports AppRouteConfig


    CliRouteConfig

    Re-exports CliRouteConfig


    CliRouteProps

    Re-exports CliRouteProps


    compareEvals

    Re-exports compareEvals


    CompareEvalsOptions

    Re-exports CompareEvalsOptions


    ExecutableMainContext

    Re-exports ExecutableMainContext


    MAX_ROUTE_RENDER_ELAPSED_MS

    Re-exports MAX_ROUTE_RENDER_ELAPSED_MS


    PromptConfig

    Re-exports PromptConfig


    ResourceConfig

    Re-exports ResourceConfig


    RouteMeta

    Re-exports RouteMeta


    RouteRenderConfig

    Re-exports RouteRenderConfig


    RouteSchema

    Re-exports RouteSchema


    RouteSchemaOutput

    Re-exports RouteSchemaOutput


    RouteUiMeta

    Re-exports RouteUiMeta


    runEvals

    Re-exports runEvals


    RunEvalsOptions

    Re-exports RunEvalsOptions


    ScriptRouteProps

    Re-exports ScriptRouteProps


    ToolConfig

    Re-exports ToolConfig


    ToolExecutionConfig

    Re-exports ToolExecutionConfig


    ToolRouteProps

    Re-exports ToolRouteProps


    ToolTaskSupport

    Re-exports ToolTaskSupport