Interface: ExtensionHost¶
The registration-time surface the Kernel offers to Extension.register().
This is the explicit contract of what an extension may call while it is being loaded (s-dna-extension-host-contract). It is a narrow slice of the Kernel — the registration vocabulary — NOT the whole Kernel API. Derived from actual usage across every builtin extension:
kind(kp)— register a KindPort (identity + composition)kindFromDescriptor()— register a record Kind from akinds/*.kind.yamldescriptor (F3 — Kinds as data). Pair withloadDescriptors()from./descriptor-loader.js.reader(r)— register a ReaderPort (detect/scan a format)writer(w)— register a WriterPort (write a format)on(hook, fn)— subscribe to an event (e.g.post_save)onVeto(hook, fn)— register a veto listener (e.g.pre_savewrite guards — throwing vetoes the operation)tool(td)— register a ToolDefinition (DNA tool discovery metadata; queried viakernel.getTools())compositionProfile()— register orchestrator kind wiringhooks— the HookRegistry itself, for advanced listener management (kernel.hooks.onVeto(..., {key}))
The real Kernel satisfies this interface structurally (statically
asserted in tests/extension-host-contract.test.ts). Py twin:
ExtensionHost in dna/kernel/protocols.py.
Properties¶
hooks¶
The HookRegistry the on/onVeto conveniences delegate to.
Methods¶
compositionProfile()¶
Parameters¶
| Parameter | Type |
|---|---|
profile |
CompositionProfile |
Returns¶
void
kind()¶
Parameters¶
| Parameter | Type |
|---|---|
kp |
KindPort |
Returns¶
void
kindFromDescriptor()¶
Parameters¶
| Parameter | Type |
|---|---|
raw |
Record\<string, unknown> |
Returns¶
on()¶
Parameters¶
| Parameter | Type |
|---|---|
hook |
HookNameArg |
fn |
(ctx) => void |
Returns¶
void
onVeto()¶
Parameters¶
| Parameter | Type |
|---|---|
hook |
HookNameArg |
fn |
VetoHandler |
opts? |
{ key?: string; priority?: number; } |
opts.key? |
string |
opts.priority? |
number |
Returns¶
void
reader()¶
Parameters¶
| Parameter | Type |
|---|---|
r |
ReaderPort |
Returns¶
void
tool()¶
Parameters¶
| Parameter | Type |
|---|---|
td |
ToolDefinition |
Returns¶
void
writer()¶
Parameters¶
| Parameter | Type |
|---|---|
w |
WriterPort |
Returns¶
void