Interface: Extension<API>
Defined in: packages/sdk/src/types.ts:1193
The shape of a Silo extension: a stable id plus an activate function the host calls once, passing the ExtensionContext. This is the unit the host loads — built-ins today, external packages later.
Type Parameters
API
API = unknown
the type of the API this extension publishes, if any (the return type of Extension.activate). Defaults to unknown; omit it for extensions that publish nothing.
Properties
id
id: string;Defined in: packages/sdk/src/types.ts:1199
Unique extension id, conventionally namespaced: core.* for Silo's core feature set, silo.* for its optional bundled features, <vendor>.* for third parties (e.g. "core.editor", "silo.git", "acme.foo").
manifest?
optional manifest?: ExtensionManifest;Defined in: packages/sdk/src/types.ts:1206
Optional display metadata for the Extensions settings page. Built-in extensions declare it here so they can be listed (and disabled) with a name and description; third-party extensions supply the equivalent through their package manifest instead. See ExtensionManifest.
Methods
activate()
activate(ctx): void | API;Defined in: packages/sdk/src/types.ts:1213
Called once by the host; register contributions against ctx here. Optionally return an API object to publish it for other extensions to consume via ExtensionContext.getExtension. Return nothing if the extension publishes no API.
Parameters
ctx
Returns
void | API
deactivate()?
optional deactivate(): void;Defined in: packages/sdk/src/types.ts:1215
Optional cleanup hook (reserved for dynamic load/unload).
Returns
void