Skip to content

kernel:extension

FieldValue
Prefixkernel:extension
Namespace constantExtensionNamespace
Subjects constantExtensionSubjects
Kindbus
Schema recordExtensionSchemas
Tierframework
Package@makaio/kernel
Defined inpackages/kernel/src/observability/extension-namespace.ts
KeyWireTypeSchema
contributions.catalogkernel:extension.contributions.catalogrpc
enabledChangedkernel:extension.enabledChangedevent
getkernel:extension.getrpc
listkernel:extension.listrpc
setEnabledkernel:extension.setEnabledrpc
stateChangedkernel:extension.stateChangedevent
warnings.changedkernel:extension.warnings.changedeventextension-warning.ts
warnings.listkernel:extension.warnings.listrpc

kernel:extension.contributions.catalog (rpc)

Section titled “kernel:extension.contributions.catalog (rpc)”

Request active extension-owned provider and client contributions.

Subject: kernel:extension.contributions.catalog Type: RPC (request/response) Purpose: Exposes boot/runtime contribution metadata through a typed bus seam without passing the coordinator object through lifecycle phase payloads.

Request:

Empty object.

Response:

FieldTypeRequired
clients{ packageName: string; definition: { id: string; name: string; nativeTools: { name: string; friendlyName: string; capabilities: { tag: string; description?: string | undefined; }[]; description?: string | undefined; category?: string | undefined; }[]; defaultApprovalPolicy: "reject" | "always-ask" | "full-access"; runtimeCapabilities: { supportsHooks: boolean; supportsStatusline: boolean; supportsSupervisorLaunch: boolean; supportsManagedBinary: boolean; hookEvents: { name: string; frameworkSubject?: string | undefined; }[]; }; description?: string | undefined; binaryName?: string | undefined; minimumVersion?: string | undefined; logSources?: { id: string; name: string; description?: string | undefined; glob?: string | undefined; }[] | undefined; defaultProviderId?: string | undefined; managedInstall?: { type: "manifest-bucket"; config: { baseUrl: string; versionIndex: { latest: string; }; manifestPath: string; manifestChecksumField: string; binaryPath: string; archiveFormat?: "raw" | "tar.gz" | "zip" | undefined; }; } | { type: "npm"; package: string; } | { type: "github-release"; repo: string; assetPattern: Record<string, string>; archiveFormat: "tar.gz" | "zip"; } | undefined; versionCommand?: string[] | undefined; postInstall?: { kind: string; payload?: Record<string, unknown> | undefined; } | undefined; configIsolation?: { envVar: string; defaultPath: string; pathKind: "file" | "directory"; } | undefined; }; }[]yes
providers{ packageName: string; definition: { id: string; name: string; availableModels: { name: string; contextWindowSize: number; labId: string; friendlyName?: string | undefined; family?: string | undefined; supportedReasoningLevels?: { none?: string | number | undefined; low?: string | number | undefined; medium?: string | number | undefined; high?: string | number | undefined; 'extra-high'?: string | number | undefined; } | undefined; metadata?: { maxOutputTokens?: number | undefined; capabilities?: { vision?: boolean | undefined; toolCalling?: boolean | undefined; parallelToolCalls?: boolean | undefined; structuredOutput?: boolean | undefined; pdfUpload?: boolean | undefined; speechToText?: { modes: ("batch" | "streaming")[]; vocabularyBiasing?: boolean | undefined; } | undefined; textToSpeech?: { modes: ("streaming" | "buffered")[]; voiceSelection?: boolean | undefined; voiceInstructions?: boolean | undefined; outputFormats?: string[] | undefined; } | undefined; } | undefined; pricing?: { token?: { inputPerMillion: number; outputPerMillion: number; inputCachedPerMillion?: number | undefined; cacheWritePerMillion?: number | undefined; } | undefined; request?: { multiplier: number; } | undefined; } | undefined; includedInSubscription?: boolean | undefined; description?: string | undefined; } | undefined; }[]; description?: string | undefined; endpoints?: { anthropic?: string | undefined; openai?: string | undefined; } | undefined; defaultModel?: string | undefined; fastModel?: string | undefined; defaultModelFilterMode?: "allowlist" | "show-all" | undefined; credentialEnvVars?: Record<string, string> | undefined; }; }[]yes

Signal that an extension’s enabled state has changed.

Subject: kernel:extension.enabledChanged Type: Event (fire-and-forget) Purpose: Emitted after a successful kernel:extension.setEnabled call so observers can react to enable/disable changes without polling.

FieldTypeRequired
enabledbooleanyes
namestringyes

Request info for a single extension by name.

Subject: kernel:extension.get Type: RPC (request/response) Purpose: Allows targeted lookup of a single extension’s state and metadata. Returns { extension: null } when no extension with the given name is registered.

Request:

FieldTypeRequired
namestringyes

Response:

FieldTypeRequired
extension{ name: string; displayName: string; state: "discovered" | "active" | "skipped" | "failed" | "stopped" | "initializing"; enabled: boolean; error?: string | undefined; surface?: "any" | "interactive" | "headless" | undefined; browser?: { entrypoint: string; } | undefined; } | nullyes

Request the current state of all registered extensions.

Subject: kernel:extension.list Type: RPC (request/response) Purpose: Allows late subscribers (e.g. CLI status commands, debug panels) to retrieve the full extension list with current lifecycle states without waiting for incremental stateChanged events.

Request:

Empty object.

Response:

FieldTypeRequired
extensions{ name: string; displayName: string; state: "discovered" | "active" | "skipped" | "failed" | "stopped" | "initializing"; enabled: boolean; error?: string | undefined; surface?: "any" | "interactive" | "headless" | undefined; browser?: { entrypoint: string; } | undefined; }[]yes

Enable or disable an extension at runtime.

Subject: kernel:extension.setEnabled Type: RPC (request/response) Purpose: Allows the user or platform config to toggle an extension without a full restart. The coordinator re-enters the load path on enable, or runs cleanup and transitions to stopped on disable.

Request:

FieldTypeRequired
enabledbooleanyes
namestringyes

Response:

FieldTypeRequired
successbooleanyes

Signal that an extension has transitioned between lifecycle states.

Subject: kernel:extension.stateChanged Type: Event (fire-and-forget) Purpose: Emitted by the ExtensionCoordinator whenever an extension moves from one lifecycle state to another. Observers (e.g. debug logging, boot progress UI, adapter subsystem) subscribe to track extension health.

FieldTypeRequired
contributes{ adapters: boolean; tools: boolean; triggers: boolean; providers: boolean; clients: boolean; ui: boolean; storage: boolean; sessionEventActions: boolean; } | undefinedno
displayNamestringyes
errorstring | undefinedno
from"discovered" | "active" | "skipped" | "failed" | "stopped" | "initializing"yes
namestringyes
to"discovered" | "active" | "skipped" | "failed" | "stopped" | "initializing"yes

Snapshot of an extension’s health warnings after a health-check run.

Subject: kernel:extension.warnings.changed Type: Event (fire-and-forget) Purpose: Emitted by the ExtensionCoordinator after every health-check run, regardless of whether the warning set actually changed. This unconditional emission simplifies subscriber logic — consumers always receive the latest snapshot without needing to diff against a prior state.

FieldTypeRequired
extensionNamestringyes
warnings{ severity: "info" | "recommended" | "degraded"; title: string; message: string; action?: { kind: "configure-integration"; clientId: string; bundle: string; } | { kind: "install-extension"; extensionName: string; } | { kind: "open-url"; url: string; } | { kind: "run-command"; command: string; } | undefined; }[]yes

Request the current health warnings for all (or a specific) extension.

Subject: kernel:extension.warnings.list Type: RPC (request/response) Purpose: Allows late subscribers (e.g. notification panels, CLI health commands) to retrieve a snapshot of active extension warnings without waiting for incremental warnings.changed events.

Request:

FieldTypeRequired
extensionNamestring | undefinedno

Response:

FieldTypeRequired
entries{ extensionName: string; warnings: { severity: "info" | "recommended" | "degraded"; title: string; message: string; action?: { kind: "configure-integration"; clientId: string; bundle: string; } | { kind: "install-extension"; extensionName: string; } | { kind: "open-url"; url: string; } | { kind: "run-command"; command: string; } | undefined; }[]; }[]yes

Auto-generated by yarn docs:bus. Do not edit manually.