Interface: KindPort¶
WHO — identity + composition role.
Core contract + the optional KindPresentation slice. Python's twin
keeps the two apart at runtime (KindPort runtime_checkable Protocol
+ KindPresentation typing-only capability); TS folds the optional
slice in via extends — structural typing has no isinstance gate to
protect.
Extends¶
Properties¶
alias¶
apiVersion¶
asciiIcon?¶
Single emoji or character for ASCII tree / compact views.
Inherited from¶
descriptionFallbackField?¶
Spec field to derive metadata.description from when none was declared.
Inherited from¶
KindPresentation.descriptionFallbackField
displayLabel?¶
Human-friendly plural label (e.g. "Agents" for Agent).
Inherited from¶
docs?¶
Canonical prose documentation. May be overridden at load time by a DOCS.md file
alongside the extension's source. Resolved prose is cached on _resolvedDocs.
Inherited from¶
flattenInContext¶
graphStyle?¶
Colors for mermaid diagrams, graph nodes, and other visualizations.
fill¶
stroke¶
textColor¶
Inherited from¶
isOverlayable?¶
isPromptTarget¶
isRoot¶
isRuntimeArtifact¶
true for Kinds whose documents are produced by runtime workflows
(eval engine, GAIA pipeline, autolab loop, evidence-capture hooks)
rather than authored as source-of-truth. Tools that replicate "the
inputs to the system" — filesystem→Postgres seed, catalog publish,
manifest export — MUST skip Kinds where this is true so they don't
re-inject historical execution data as canonical configuration.
Default false (provided by KindBase) keeps existing extensions
unchanged.
isSchemaAffecting?¶
kind¶
origin?¶
plane?¶
promptTargetPriority¶
scope?¶
Optional tenant scope declaration. When unset (Phase 1 default), the kernel treats the kind permissively (back-compat). Phase 2 iterates through every Extension to set TENANTED or GLOBAL explicitly, flipping enforcement on per-Kind. See TenantScope.
scopeInheritable?¶
storage¶
uiSchema?¶
Per-field UI hints for Studio form rendering, keyed by spec field
name (widget/label/help/language/height/order — see
docs/KIND-UI-HINTS.md). When absent, consumers infer the widget
from the value type.
Inherited from¶
visibleInBackend?¶
Explicit backend-visibility override; unset/null falls back to
defaultVisibleInBackend(storage) — see resolveVisibleInBackend.
Inherited from¶
KindPresentation.visibleInBackend
Methods¶
dependencies()?¶
Which spec fields reference other kinds by alias. Clearer name for depFilters().
Returns¶
Record\<string, string> | null
depFilters()¶
Returns¶
Record\<string, string> | null
describe()¶
Parameters¶
| Parameter | Type |
|---|---|
doc |
Document |
Returns¶
string | null
getDefaultAgentName()¶
Parameters¶
| Parameter | Type |
|---|---|
doc |
Document |
Returns¶
string | null
getLayerPolicies()¶
Parameters¶
| Parameter | Type |
|---|---|
doc |
Document |
Returns¶
Record\<string, string> | null
graphMeta()?¶
Per-doc annotations for graph rendering and health checks. e.g. Guardrail returns {severity, scope, rules}. Agent returns {model, soul, skills_count}.
Parameters¶
| Parameter | Type |
|---|---|
doc |
Document |
Returns¶
Record\<string, unknown> | null
Inherited from¶
parse()¶
Parameters¶
| Parameter | Type |
|---|---|
raw |
Record\<string, unknown> |
Returns¶
unknown
preview()?¶
Optional: returns renderable blocks for the Studio's preview pane.
Each extension implements this for its own kinds. When undefined,
the kernel falls back to genericSpecDump from preview.ts.
Parameters¶
| Parameter | Type |
|---|---|
doc |
Document |
Returns¶
Inherited from¶
promptTemplate()¶
Returns¶
string | null
schema()?¶
JSON Schema for this kind's spec. Zod-based kinds convert their schema; declarative kinds return native JSON Schema.
Returns¶
Record\<string, unknown> | null
summary()¶
Parameters¶
| Parameter | Type |
|---|---|
doc |
Document |
Returns¶
Record\<string, unknown> | null