Manifest Reference

Field-by-field reference for xema-biome.json, generated directly from the platform manifest schema so it can never drift from what the biome host actually validates. The manifest is the wrapped { "name", "version", "xema": { … } } shape; everything under xema is discriminated on xema.target (server or web).

For the narrative guide — folder layout, worked examples, validation workflow — read Authoring first.


Top-level shape

The manifest tolerates extra top-level fields (it doubles as an npm package.json-adjacent file), but validates these:

FieldTypeRequiredNotes
namestringyespattern /^@[^/]+\/[^/]+$/
versionstringyes—
xemaobject (discriminated on target) — see Server biomes below, Web biomes belowyes—

Server biomes (xema.target: "server")

A server biome ships backend contributions — agents, skills, workflows, optional API services — that the biome host boots and supervises.

FieldTypeRequiredNotes
idstringyespattern /^[a-z][a-z0-9-]*$/
displayNamestringyes—
descriptionstringno—
displayobject — see xema.displayno—
scopeenumyesone of: kernel, system, base, platform
targetliteral "server"yes—
capabilityDomainstringnopattern /^[a-z][a-z0-9-]*$/
componentsarray of objects — see xema.components[]yes—
dependenciesstring[]noentries: pattern /^[a-z][a-z0-9-]*$/
extendsstring | string[]no—
trustTierenumnoone of: first-party, third-party
connectorRequirementsarray of objects — see xema.connectorRequirements[]no—
eventNamespacesstring[]noentries: max 256 chars; entries: pattern /^[a-z0-9][a-z0-9_-]*(?:\.[a-z0-9][a-z0-9_-]*)*$/
sharedEventTypesstring[]noentries: max 256 chars; entries: pattern /^[a-z0-9][a-z0-9_-]*(?:\.[a-z0-9][a-z0-9_-]*)*$/
provisioningarray of objects — see xema.provisioning[]no—
signatureobject — see xema.signatureno—
bundleSourceobject (discriminated on kind) — see xema.bundleSource (kind: "npm"), xema.bundleSource (kind: "tarball"), xema.bundleSource (kind: "oci")no—
signedBystringno—
contributionsobject — see xema.contributionsno—
requiresCapabilitiesstring[]noentries: pattern /^[a-z][a-z0-9-]*:[a-z][a-z0-9-]*(\.[a-z][a-z0-9-]*)*@\d+$/
requiresCapabilitiesForAgentsstring[]noentries: pattern /^[a-z][a-z0-9-]*:[a-z][a-z0-9-]*(\.[a-z][a-z0-9-]*)*@\d+$/
requiresCapabilitiesForServicestring[]noentries: pattern /^[a-z][a-z0-9-]*:[a-z][a-z0-9-]*(\.[a-z][a-z0-9-]*)*@\d+$/
exposesCapabilitiesstring[]noentries: pattern /^[a-z][a-z0-9-]*:[a-z][a-z0-9-]*(\.[a-z][a-z0-9-]*)*@\d+$/
ownsCapabilityDomainsstring[]noentries: pattern /^[a-z][a-z0-9-]*$/
workflowConfigobject — see xema.workflowConfigno—
audienceenumnoone of: org, operator
storeListedbooleanno—
kindenumnoone of: app, connector, library

xema.display

FieldTypeRequiredNotes
iconstringno—
categorystringno—
summarystringno—
accentstringno—

xema.components[]

FieldTypeRequiredNotes
keystringyespattern /^[a-z][a-z0-9-]*$/
kindenumyesone of: content, web, adapter, service, worker, job
artifactobject (discriminated on kind) — see xema.components[].artifact (kind: "package-content"), xema.components[].artifact (kind: "web-bundle"), xema.components[].artifact (kind: "host-module"), xema.components[].artifact (kind: "oci-image"), xema.components[].artifact (kind: "shared-oci-image")yes—
entrypointobject (discriminated on kind) — see xema.components[].entrypoint (kind: "materialize"), xema.components[].entrypoint (kind: "static-bundle"), xema.components[].entrypoint (kind: "module-export"), xema.components[].entrypoint (kind: "oci-default"), xema.components[].entrypoint (kind: "node-module")yes—
protocolobject (discriminated on kind) — see xema.components[].protocol (kind: "none"), xema.components[].protocol (kind: "web"), xema.components[].protocol (kind: "adapter"), xema.components[].protocol (kind: "http"), xema.components[].protocol (kind: "worker"), xema.components[].protocol (kind: "job")yes—
hostAbiobject — see xema.components[].hostAbino—
schedulerenumnoone of: platform, runtime
installationClassenumnoone of: core, agentic, optional
processFactsobject — see xema.components[].processFactsno—
dispatchesRuntimeComponentsarray of objects — see xema.components[].dispatchesRuntimeComponents[] | object — see xema.components[].dispatchesRuntimeComponents[]no—
callsRuntimeComponentsarray of objects — see xema.components[].dispatchesRuntimeComponents[]no—
requiresOperationsstring[]noentries: max 128 chars; entries: pattern /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*:[a-z][a-z0-9]*(?:[-.][a-z0-9]+)*@[1-9][0-9]{0,3}$/
hostCapabilitiesstring[]noentries: pattern /^[a-z][a-z0-9-]*:[a-z][a-z0-9-]*(\.[a-z][a-z0-9-]*)*@\d+$/
requiresWorkloadPrivilegesenum[]noentries one of: mintWorkerContexts, createUserDelegations, createOrgDelegations, createEphemeralUserDelegations
deployPlaneOperationsstring[]noentries: max 128 chars; entries: pattern /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*:[a-z][a-z0-9]*(?:[-.][a-z0-9]+)*@[1-9][0-9]{0,3}$/
delegationHolderRoleenumnoone of: armed-tool-relay
requiresAudiencesstring[]noentries: max 128 chars; entries: pattern /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*(?:\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*)+\.v[1-9][0-9]{0,3}$/
ownsAudienceNamespacesstring[]noentries: max 128 chars; entries: pattern /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*(?:\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*)*$/
hookPointsarray of objects — see xema.components[].hookPoints[]no—
optionalOperationsstring[]noentries: max 128 chars; entries: pattern /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*:[a-z][a-z0-9]*(?:[-.][a-z0-9]+)*@[1-9][0-9]{0,3}$/
callsBackOperationHoldersstring[]noentries: max 128 chars; entries: pattern /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*:[a-z][a-z0-9]*(?:[-.][a-z0-9]+)*@[1-9][0-9]{0,3}$/
requestsInstalledOperationsstring[]noentries: max 128 chars; entries: pattern /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*:[a-z][a-z0-9]*(?:[-.][a-z0-9]+)*@[1-9][0-9]{0,3}$/
requestsOnBehalfOfOperationsstring[]noentries: max 128 chars; entries: pattern /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*:[a-z][a-z0-9]*(?:[-.][a-z0-9]+)*@[1-9][0-9]{0,3}$/
subscribesEventsarray of objects — see xema.components[].subscribesEvents[]nomax 32 entries
requiresOrganizationSweepsenum[]noentries one of: erase-sweep, org-erasure, app-erasure, index-maintenance, connector-secret-custody, credential-refresh, connection-health-probe, member-notification, ended-holder-erasure, scm-project-binding-maintenance, contribution-convergence, retention-expiry-erasure, installation-cleanup, capability-catalogue-evaluation, workspace-allocation-maintenance, notification-self-heal, release-plane-reconciliation, workflow-run-evaluation, connector-delivery-evaluation, scheduled-automation-tick, workflow-blob-custody
editionInputsenum[]noentries one of: capability-domain-owners, artifact-signer-trust
imageClassenumnoone of: common, privileged, web-access
executionModesenum[]yesentries one of: materialized, web-hosted, shared-host, composed, isolated, runner
requirementsobject — see xema.components[].requirementsyes—

xema.connectorRequirements[]

FieldTypeRequiredNotes
adapterKindstringyespattern /^[a-z][a-z0-9-]*$/
optionalbooleanno—
purposestringyes—
capabilitiesstring[]yesentries: pattern /^[a-z]+(\.[a-z][a-z0-9-]*)+$/

xema.provisioning[]

FieldTypeRequiredNotes
idstringyespattern /^[a-z][a-z0-9-]*$/
kindenumyesone of: scaffold, equip
triggersenum[]yesentries one of: workspace-boot, runtime-request
guardenumyesone of: repo_empty, path_absent, marker_absent, always
selectorobject — see xema.provisioning[].selectoryes—

xema.signature

FieldTypeRequiredNotes
algorithmstringyes—
valuestringyes—
keyIdstringyes—

xema.bundleSource (kind: "npm")

FieldTypeRequiredNotes
kindliteral "npm"yes—
namestringyes—
versionstringyes—
registryUrlstringno—
authTokenEnvstringno—
integritystringnopattern `/^sha(256

xema.bundleSource (kind: "tarball")

FieldTypeRequiredNotes
kindliteral "tarball"yes—
uploadIdstringyes—
expectedSha256stringnopattern /^[a-f0-9]{64}$/

xema.bundleSource (kind: "oci")

FieldTypeRequiredNotes
kindliteral "oci"yes—
ociRefstringyes—

xema.contributions

FieldTypeRequiredNotes
inlinearray of objects — see xema.contributions.inline[]no—

xema.workflowConfig

FieldTypeRequiredNotes
runAsstringyespattern /^[a-z][a-z0-9-]*$/

xema.components[].artifact (kind: "package-content")

FieldTypeRequiredNotes
kindliteral "package-content"yes—
pathstringyes—

xema.components[].artifact (kind: "web-bundle")

FieldTypeRequiredNotes
kindliteral "web-bundle"yes—
pathstringyes—

xema.components[].artifact (kind: "host-module")

FieldTypeRequiredNotes
kindliteral "host-module"yes—
pathstringyes—

xema.components[].artifact (kind: "oci-image")

FieldTypeRequiredNotes
kindliteral "oci-image"yes—
pathstringyes—

xema.components[].artifact (kind: "shared-oci-image")

FieldTypeRequiredNotes
kindliteral "shared-oci-image"yes—
componentstringyespattern /^[a-z][a-z0-9-]*$/

xema.components[].entrypoint (kind: "materialize")

FieldTypeRequiredNotes
kindliteral "materialize"yes—

xema.components[].entrypoint (kind: "static-bundle")

FieldTypeRequiredNotes
kindliteral "static-bundle"yes—
rootstringyes—

xema.components[].entrypoint (kind: "module-export")

FieldTypeRequiredNotes
kindliteral "module-export"yes—
modulestringyes—
exportNamestringyes—

xema.components[].entrypoint (kind: "oci-default")

FieldTypeRequiredNotes
kindliteral "oci-default"yes—

xema.components[].entrypoint (kind: "node-module")

FieldTypeRequiredNotes
kindliteral "node-module"yes—
modulestringyes—

xema.components[].protocol (kind: "none")

FieldTypeRequiredNotes
kindliteral "none"yes—

xema.components[].protocol (kind: "web")

FieldTypeRequiredNotes
kindliteral "web"yes—
revisionstringyespattern /^v[1-9]\d*$/

xema.components[].protocol (kind: "adapter")

FieldTypeRequiredNotes
kindliteral "adapter"yes—
revisionstringyespattern /^v[1-9]\d*$/

xema.components[].protocol (kind: "http")

FieldTypeRequiredNotes
kindliteral "http"yes—
revisionstringyespattern /^v[1-9]\d*$/
serviceNamestringyespattern /^[a-z][a-z0-9-]*$/
displayNamestringno—
descriptionstringno—
basePathstringnopattern /^\//
openapistringno—
authScopesenum[]yesentries one of: public, org, project, installation
requiresServicesstring[]no—
optionalServicesstring[]no—
exposesCapabilitiesstring[]no—
capabilitiesarray of objects — see xema.components[].protocol.capabilities[]no—
databaseKeystringnopattern /^[a-z][a-z0-9-]*$/
databaseExtensionsstring[]noentries: max 63 chars; entries: pattern /^[a-z_][a-z0-9_-]*$/
resourcesarray of objects — see xema.components[].protocol.resources[]no—
providesResourcesarray of objects — see xema.components[].protocol.providesResources[]no—
workflowClientOfarray of objects — see xema.components[].protocol.workflowClientOf[]no—
identityobject — see xema.components[].protocol.identityno—
browserSessionobject — see xema.components[].protocol.browserSessionno—

xema.components[].protocol (kind: "worker")

FieldTypeRequiredNotes
kindliteral "worker"yes—
requiresServicesstring[]no—
optionalServicesstring[]no—
resourcesarray of objects — see xema.components[].protocol.resources[]no—
providesResourcesarray of objects — see xema.components[].protocol.providesResources[]no—
revisionliteral "v2"yes—
taskQueuesarray of objects — see xema.components[].protocol.taskQueues[]yes—
nexusobject — see xema.components[].protocol.nexusno—

xema.components[].protocol (kind: "job")

FieldTypeRequiredNotes
kindliteral "job"yes—
revisionstringyespattern /^v[1-9]\d*$/

xema.components[].hostAbi

FieldTypeRequiredNotes
nameenumyesone of: xema-web-host, xema-adapter-host, xema-service-host, xema-worker-runtime, xema-job-runner
versionRangestringyes—

xema.components[].processFacts

FieldTypeRequiredNotes
exclusiveobject — see xema.components[].processFacts.exclusiveno—
credentialCustodyliteral trueno—
foreignCodeExecutionliteral trueno—
governedEgressEdgeliteral trueno—
publicIngressEdgeliteral trueno—
ownWorkloadIdentityliteral trueno—
reachableAloneliteral trueno—

xema.components[].dispatchesRuntimeComponents[]

FieldTypeRequiredNotes
biomeIdstringyespattern /^[a-z][a-z0-9-]*$/
componentKeystringyespattern /^[a-z][a-z0-9-]*$/

xema.components[].dispatchesRuntimeComponents[]

FieldTypeRequiredNotes
supplementalRuntimeComponentIdstringyespattern /^[a-z0-9](?:[a-z0-9._-]{0,254}[a-z0-9])?$/

xema.components[].hookPoints[]

FieldTypeRequiredNotes
idstringyesmax 200 chars; pattern /^[a-z][a-z0-9-]*(?:\.[a-z][a-z0-9-]*)*$/
operationstringyesmax 200 chars; pattern /^[a-z][a-z0-9-]*(?:\.[a-z][a-z0-9-]*)*$/
modesarray of objects — see xema.components[].hookPoints[].modes[]yes—
writableFieldsstring[]yesentries: min length 2; entries: max 1024 chars
inputProjectionstring[]yesentries: min length 2; entries: max 1024 chars
participationenum[]yesentries one of: required, optional
limitsobject — see xema.components[].hookPoints[].limitsyes—
respondobject — see xema.components[].hookPoints[].respondno—
reentryobject — see xema.components[].hookPoints[].reentryno—
concurrencyScopeenumnoone of: tenant, lineage
bindingsRefusedobject — see xema.components[].hookPoints[].bindingsRefusedno—

xema.components[].subscribesEvents[]

FieldTypeRequiredNotes
typesstring | string[]yesmax 64 entries
tiersenum[]yesmax 4 entries; entries one of: internal, project, user, public
scopeobject (discriminated on kind) — see xema.components[].subscribesEvents[].scope (kind: "org"), xema.components[].subscribesEvents[].scope (kind: "realm")yes—
addressedliteral trueno—
requiredliteral trueno—

xema.components[].requirements

FieldTypeRequiredNotes
tenancyobject — see xema.components[].requirements.tenancyyes—
isolationobject — see xema.components[].requirements.isolationyes—
trustobject — see xema.components[].requirements.trustyes—
localityobject — see xema.components[].requirements.localityyes—
stateobject (discriminated on kind) — see xema.components[].requirements.state (kind: "stateless"), xema.components[].requirements.state (kind: "ephemeral"), xema.components[].requirements.state (kind: "durable")yes—
resourcesobject — see xema.components[].requirements.resourcesyes—
runtimeobject — see xema.components[].requirements.runtimeyes—
ioobject — see xema.components[].requirements.ioyes—
scalingobject — see xema.components[].requirements.scalingyes—

xema.provisioning[].selector

FieldTypeRequiredNotes
configPointerstringyes—
matchKindenumyesone of: each-app-target

xema.contributions.inline[]

FieldTypeRequiredNotes
kindstringyes—
idstringyespattern /^[a-z0-9][a-z0-9._-]*(?:\/[a-z0-9][a-z0-9._-]*)*$/
manifestunknown (free-form JSON)yes—

xema.components[].protocol.capabilities[]

FieldTypeRequiredNotes
protocolstringyespattern /^[a-z0-9][a-z0-9.-]*\/[a-z0-9][a-z0-9._-]*$/
revisionstringyes—
operationsstring[]yesentries: pattern /^[a-z][a-z0-9._-]*$/
referencesstring[]no—
endpointProtocolsenum[]noentries one of: http, grpc, event-hub, mcp

xema.components[].protocol.resources[]

FieldTypeRequiredNotes
kindstringyesmax 128 chars; pattern /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*(?:\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*)+$/
logicalNamestringyesmax 63 chars; pattern /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/
scopeenumyesone of: system, org
inclusionenumyesone of: required, optional
sharingenumnoone of: owner, shared
whyNotOrgScopedstringno—
capabilitiesstring[]noentries: pattern /^[a-z][a-z0-9-]*:[a-z][a-z0-9-]*(\.[a-z][a-z0-9-]*)*@\d+$/

xema.components[].protocol.providesResources[]

FieldTypeRequiredNotes
kindstringyesmax 128 chars; pattern /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*(?:\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*)+$/

xema.components[].protocol.workflowClientOf[]

FieldTypeRequiredNotes
biomestringnopattern /^[a-z][a-z0-9-]*$/
componentstringyespattern /^[a-z][a-z0-9-]*$/
taskQueuestring | object — see xema.components[].protocol.workflowClientOf[].taskQueueyes—

xema.components[].protocol.identity

FieldTypeRequiredNotes
applicationsstring[]noentries: pattern /^[a-z][a-z0-9-]{0,62}$/

xema.components[].protocol.browserSession

FieldTypeRequiredNotes
cookiesstring[]yesentries: pattern /^[A-Za-z0-9!#$%&'*+\-.^_
operationsarray of objects — see xema.components[].protocol.browserSession.operations[]no—

xema.components[].protocol.taskQueues[]

FieldTypeRequiredNotes
namestringyes—
placementenumnoone of: execution-target
servesenum[]yesentries one of: workflows, activities, nexus
fairnessenumyesone of: org, none

xema.components[].protocol.nexus

FieldTypeRequiredNotes
providesarray of objects — see xema.components[].protocol.nexus.provides[]no—
requiresarray of objects — see xema.components[].protocol.nexus.requires[]no—

xema.components[].processFacts.exclusive

FieldTypeRequiredNotes
reasonstringyesmin length 20

xema.components[].hookPoints[].modes[]

FieldTypeRequiredNotes
modeenumyesone of: admit, transform, defer, respond
actionKindsenum[]yesentries one of: capability, workflow, function

xema.components[].hookPoints[].limits

FieldTypeRequiredNotes
maxFanOutnumberyesinteger; min 1; max 256
maxPayloadBytesnumberyesinteger; min 1; max 1048576
maxConcurrencynumberyesinteger; min 1; max 64
deadlineMsnumberyesinteger; min 1; max 60000

xema.components[].hookPoints[].respond

FieldTypeRequiredNotes
responseSchemaIdstringyesmax 200 chars; pattern /^[a-z][a-z0-9-]*(?:\.[a-z][a-z0-9-]*)*$/
maxResponseBytesnumberyesinteger; min 1; max 1048576

xema.components[].hookPoints[].reentry

FieldTypeRequiredNotes
maxDepthnumberyesinteger; min 1; max 3

xema.components[].hookPoints[].bindingsRefused

FieldTypeRequiredNotes
refusedenumyesone of: lineage-unsealed

xema.components[].subscribesEvents[].scope (kind: "org")

FieldTypeRequiredNotes
kindliteral "org"yes—

xema.components[].subscribesEvents[].scope (kind: "realm")

FieldTypeRequiredNotes
kindliteral "realm"yes—

xema.components[].requirements.tenancy

FieldTypeRequiredNotes
allowedenum[]yesentries one of: deployment, org, project, invocation
tenantContextenumyesone of: none, verified

xema.components[].requirements.isolation

FieldTypeRequiredNotes
minimumenumyesone of: none, process, container, vm

xema.components[].requirements.trust

FieldTypeRequiredNotes
minimumenumyesone of: untrusted, verified, trusted, system

xema.components[].requirements.locality

FieldTypeRequiredNotes
allowedenum[]yesentries one of: cloud, customer-private, gpu

xema.components[].requirements.state (kind: "stateless")

FieldTypeRequiredNotes
kindliteral "stateless"yes—

xema.components[].requirements.state (kind: "ephemeral")

FieldTypeRequiredNotes
kindliteral "ephemeral"yes—
recoveryenumyesone of: rebuildable, checkpointed

xema.components[].requirements.state (kind: "durable")

FieldTypeRequiredNotes
kindliteral "durable"yes—
scopeenumyesone of: deployment, org, project
persistenceenumyesone of: database, object-store, filesystem
consistencyenumyesone of: eventual, strong
tenantFencingliteral "required"yes—

xema.components[].requirements.resources

FieldTypeRequiredNotes
minimumobject — see xema.components[].requirements.resources.minimumyes—
preferredobject — see xema.components[].requirements.resources.minimumno—
acceleratorobject — see xema.components[].requirements.resources.acceleratorno—

xema.components[].requirements.runtime

FieldTypeRequiredNotes
kindenumyesone of: none, node, python, go, wasm, native
versionRangestringno—
architecturesenum[]noentries one of: amd64, arm64
nativeLibrariesstring[]no—

xema.components[].requirements.io

FieldTypeRequiredNotes
ingressenumyesone of: none, http, webhook
egressenumyesone of: none, platform, internet
rawBodybooleanyes—
devicesenum[]yesentries one of: accelerator, camera, microphone, serial, usb

xema.components[].requirements.scaling

FieldTypeRequiredNotes
modeenumyesone of: singleton, horizontal, partitioned, invocation-only
concurrencyobject — see xema.components[].requirements.scaling.concurrencyyes—
readinessobject (discriminated on kind) — see xema.components[].requirements.scaling.readiness (kind: "none"), xema.components[].requirements.scaling.readiness (kind: "protocol"), xema.components[].requirements.scaling.readiness (kind: "host-signal")yes—
drainobject (discriminated on kind) — see xema.components[].requirements.scaling.drain (kind: "none"), xema.components[].requirements.scaling.drain (kind: "graceful")yes—
hintsobject — see xema.components[].requirements.scaling.hintsyes—

xema.components[].protocol.workflowClientOf[].taskQueue

FieldTypeRequiredNotes
nameenumyesone of: xema_default, xema_agent, xema_human
placementenumyesone of: execution-target

xema.components[].protocol.browserSession.operations[]

FieldTypeRequiredNotes
methodenumyesone of: GET, HEAD, POST, PUT, PATCH, DELETE
pathstringyes—

xema.components[].protocol.nexus.provides[]

FieldTypeRequiredNotes
servicestringyesmax 63 chars; pattern /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/
versionstringyespattern /^v[1-9]\d*$/
taskQueuestringyespattern /^[a-z][a-z0-9-]{0,40}$/
operationsarray of objects — see xema.components[].protocol.nexus.provides[].operations[]yes—

xema.components[].protocol.nexus.requires[]

FieldTypeRequiredNotes
servicestringyesmax 63 chars; pattern /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/
versionstringyespattern /^v[1-9]\d*$/
operationsstring[]yesentries: pattern /^[a-z][a-zA-Z0-9]*$/
optionalliteral trueno—

xema.components[].requirements.resources.minimum

FieldTypeRequiredNotes
cpustringyespattern `/^(?:[1-9]\d*m
memorystringyespattern `/^[1-9]\d*(?:Ki
ephemeralStoragestringyespattern `/^[1-9]\d*(?:Ki

xema.components[].requirements.resources.accelerator

FieldTypeRequiredNotes
countnumberyesinteger; > 0
preferredCountnumbernointeger; > 0
vendorstringno—
classstringno—
minimumMemorystringnopattern `/^[1-9]\d*(?:Ki
featuresstring[]no—

xema.components[].requirements.scaling.concurrency

FieldTypeRequiredNotes
handlingenumyesone of: serial, parallel
maximumPerInstancenumberyesinteger; > 0
maximumNexusOperationsPerInstancenumbernointeger; > 0

xema.components[].requirements.scaling.readiness (kind: "none")

FieldTypeRequiredNotes
kindliteral "none"yes—

xema.components[].requirements.scaling.readiness (kind: "protocol")

FieldTypeRequiredNotes
kindliteral "protocol"yes—
initialDelaySecondsnumberyesinteger; min 0

xema.components[].requirements.scaling.readiness (kind: "host-signal")

FieldTypeRequiredNotes
kindliteral "host-signal"yes—
initialDelaySecondsnumberyesinteger; min 0

xema.components[].requirements.scaling.drain (kind: "none")

FieldTypeRequiredNotes
kindliteral "none"yes—

xema.components[].requirements.scaling.drain (kind: "graceful")

FieldTypeRequiredNotes
kindliteral "graceful"yes—
maximumSecondsnumberyesinteger; > 0

xema.components[].requirements.scaling.hints

FieldTypeRequiredNotes
cpuenumyesone of: latency, throughput, batch
memoryenumyesone of: steady, burstable
startupenumyesone of: fast, warmup

xema.components[].protocol.nexus.provides[].operations[]

FieldTypeRequiredNotes
namestringyespattern /^[a-z][a-zA-Z0-9]*$/
modeenumyesone of: sync, async

Web biomes (xema.target: "web")

A web biome is a static frontend bundle the host shell loads; it contributes pages, navigation entries, and slot panels, and never runs server-side.

FieldTypeRequiredNotes
idstringyespattern /^[a-z][a-z0-9-]*$/
displayNamestringyes—
descriptionstringno—
displayobject — see xema.displayno—
scopeenumyesone of: kernel, system, base, platform
targetliteral "web"yes—
componentsarray of objects — see xema.components[]yes—
systemSurfacebooleanno—
optionalServerBiomesstring[]noentries: pattern /^[a-z][a-z0-9-]*$/
signatureobject — see xema.signatureno—
bundleSourceobject (discriminated on kind) — see xema.bundleSource (kind: "npm"), xema.bundleSource (kind: "tarball"), xema.bundleSource (kind: "oci")no—
signedBystringno—
contributionsobject — see xema.contributionsno—
requiresCapabilitiesstring[]noentries: pattern /^[a-z][a-z0-9-]*:[a-z][a-z0-9-]*(\.[a-z][a-z0-9-]*)*@\d+$/
requiresCapabilitiesForAgentsstring[]noentries: pattern /^[a-z][a-z0-9-]*:[a-z][a-z0-9-]*(\.[a-z][a-z0-9-]*)*@\d+$/
requiresCapabilitiesForServicestring[]noentries: pattern /^[a-z][a-z0-9-]*:[a-z][a-z0-9-]*(\.[a-z][a-z0-9-]*)*@\d+$/
exposesCapabilitiesstring[]noentries: pattern /^[a-z][a-z0-9-]*:[a-z][a-z0-9-]*(\.[a-z][a-z0-9-]*)*@\d+$/
ownsCapabilityDomainsstring[]noentries: pattern /^[a-z][a-z0-9-]*$/
workflowConfigobject — see xema.workflowConfigno—
audienceenumnoone of: org, operator
storeListedbooleanno—
kindenumnoone of: app, connector, library

xema.signature

FieldTypeRequiredNotes
algorithmstringyes—
valuestringyes—
keyIdstringyes—

Convention content directories

Biome content is discovered by on-disk presence — there is no per-kind declaration list in the manifest. Drop files into the conventional directory and the platform seeds them at boot/install:

Content kindDirectoryWhat goes in it
agentsagents/Agent definition files, one authoritative <slug>.md per agent; mode and metadata come from frontmatter.
artifactTypesartifact-types/Custom artifact type definitions.
biomeInstallSchemainstall-schema/Install-wizard resource-selection schema. Required when the biome declares integrationRequirements[].
deliverableSpecsdeliverable-specs/Deliverable spec bundles (structured output contracts).
iconsicons/Icon assets referenced by the biome display metadata.
mcpCatalogmcp-catalog/MCP catalog entries the biome contributes.
mcpToolsmcp-tools/MCP tool descriptors.
projectKitsproject-kits/Project kit definitions.
provisioningScaffoldsprovisioning/Workspace-provisioning scaffold recipes, one <id>.yaml per scaffold declared in xema.provisioning[].
roleCapabilitiesrole-capabilities/Role-to-capability mappings.
runtimePluginsplugins/Agent-runtime plugins, one directory per runtime id (plugins/<runtimeId>/).
runtimeToolstools/Agent-runtime custom tools, one directory per runtime id (tools/<runtimeId>/).
skillsskills/Skill folder bundles, one directory per skill with a SKILL.md at its root (sub-skills nest recursively). Runtime-agnostic.
toolProfilestool-profiles/Tool profile definitions.
workflowConfigworkflow-config/Workflow YAML definitions and configuration.
workspaceManifestTemplatesworkspace-manifest-templates/Reusable agent-workspace manifest templates.
workspaceManifestsworkspace-manifests/Agent workspace manifests, one <slug>.workspace.yaml per workspace.

One content kind pairs a presence-discovered directory with an explicit manifest roster:

  • provisioning/ ⟷ xema.provisioning[] — every provisioning/<id>.yaml must have a matching scaffold declaration.

Contribution envelopes

Single-file, typed contributions (capabilities, connector bindings, document templates, …) ship through the contribution protocol instead of a convention directory. Two equivalent forms, both validated against the same envelope shape:

  1. File-per-contribution — one *.contribution.json per entry inside the biome's conventional contributions/ directory.
  2. Inline — entries under xema.contributions.inline[] in the manifest itself.

Directory entries are read first; inline entries layer on top (last write wins on a (kind, id) collision between the two forms, and duplicate entries fail the biome's boot fast).

Each envelope carries:

json
1{
2  "kind": "capability",
3  "id": "my-contribution-slug",
4  "manifest": { }
5}
  • kind — a closed contribution-kind token from the contribution contract.
  • id — kind-local slug, unique per (kind, biome); the platform namespaces it with the biome id at install time.
  • manifest — the kind-specific body, validated by the owning platform service at boot.

Previous: ← Store

Next: Examples →