LLM Registry API: schemas

The request and response bodies of the operations in this API.

AgentAuthoringResponseDto

PropertyTypeRequiredDescription
abilitiesarray of stringyes
capabilityAgentCapabilityLayerDto or nullno
descriptionstring or nullno
displayNamestringyes
draftUpdatedAtstring (date-time)yesMutable draft concurrency token.
durableWorkspaceDurableWorkspaceRefDto or nullno
idstringyesStable Agent identity id.
internetEgressCeilingWorkerInternetEgressnoCeiling on whether the worker pod running this agent may open sockets to the public internet. A ceiling the agent ACCEPTS, never a grant: the effective mode is the most restrictive of the deployment, the owning Space, this value and the session, so open here widens nothing. What THIS agent itself states — NOT joined with the agent it extends; the resolved-agent and agent-blocks responses carry the joined value. ABSENT when it declares none — there is no default.
liveRevisionAgentLiveRevisionDto or nullno
reachTierAgentReachTieryes
rootAgentNodeDtoyes
scopeScopeSourceyes
sessionLifecycleAgentSessionLifecycle or nullno
slugstringyes
standingSessionStandingSessionRefDto or nullno
stateone of "draft", "live"yes
workspaceAgentWorkspaceDto or nullno
workspaceSharingWorkspaceSharingPolicyyes

AgentAuthoringResponseDtoDataArrayEnvelope

PropertyTypeRequiredDescription
dataarray of AgentAuthoringResponseDtoyes

AgentAuthoringResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataAgentAuthoringResponseDtoyes

AgentBiomeAvailabilityDto

PropertyTypeRequiredDescription
excludearray of stringnoDeny-list of biome ids. A contribution whose owning biome is listed is always dropped, even if it also appears in include. Absent/empty ⇒ nothing force-excluded.
includearray of stringnoAllow-list of biome ids. When non-empty, ONLY contributions whose owning biome is listed survive (non-biome contributions always pass). Absent/empty ⇒ all biomes allowed unless excluded.

AgentCapabilityAnalysisDto

PropertyTypeRequiredDescription
reachTierAgentReachTieryesThe agent's reach-tier ceiling — the provisioning input.
requiredCapabilitiesarray of stringyesDeduped, sorted union of every CapabilityRef the agent needs to drive its armed tools + skills across the whole sub-agent tree.
slugstringyes
unresolvedSkillSlugsarray of stringyesArmed skill slugs with no capability data available — see the skill-registry surfacing gap in capability-derivation.ts.
unresolvedToolsarray of UnresolvedToolDtoyesArmed tool refs not resolvable to capabilities from the canonical MCP catalog (flagged, never silently dropped).
versionstringyes

AgentCapabilityAnalysisDtoDataEnvelope

PropertyTypeRequiredDescription
dataAgentCapabilityAnalysisDtoyes

AgentCapabilityApertureDto

PropertyTypeRequiredDescription
defaultEffectone of "read", "write", "admin" or nullno
domainsmap of one of "read", "write", "admin"no
kindone of "unrestricted", "armed", "scoped", "representative"yes
refsarray of stringno

AgentCapabilityLayerDto

PropertyTypeRequiredDescription
apertureAgentCapabilityApertureDtoyesExplicit, closed aperture union; never inferred from omission.
mayEditReposone of "never", "when-granted"no
mayWriteKnowledgeBasebooleanno
writePolicyone of "read-only", "own-pages-only", "full-write"no

AgentCapabilitySetExpressionDto

PropertyTypeRequiredDescription
excludearray of stringyes
includearray of stringyes

AgentCredentialDto

PropertyTypeRequiredDescription
kindCredentialKindyes
namestringyes
requiredbooleanyesWhen true the run fails fast if the credential is unresolvable.
sourceRefstringyesOpaque source ref the credential broker resolves the secret from.

AgentDraftRingEntryDto

PropertyTypeRequiredDescription
baseRevisionIdstring or nullyes
contentHashstringyesCanonical content hash. Two entries never share one — the ring only appends when the hash changes.
createdAtstring (date-time)yes
idstringyes
isCurrentbooleanyesTrue for the entry the Agent identity currently points at.
restoredFromRevisionIdstring or nullyes
updatedAtstring (date-time)yes
updatedBystringyes

AgentDraftRingEntryDtoDataArrayEnvelope

PropertyTypeRequiredDescription
dataarray of AgentDraftRingEntryDtoyes

AgentEnvVarDto

PropertyTypeRequiredDescription
namestringyes
valuestringyesAuthored value. May contain ${input.x} interpolation — the resolution service resolves it before projecting onto WorkspaceSpec.

AgentExecutionMode

Type: one of "primary", "subagent"

AgentKernelResponseDto

PropertyTypeRequiredDescription
avatarSeedstring or nullno
avatarStylestringyes
biomeIdstring or nullnoBiome id when source='biome', otherwise null.
capabilityAgentCapabilityLayerDtoyesThe agent's resolved capability envelope and explicit aperture. Always present.
createdAtstring (date-time)yes
createdBystringyes
definitionHashobject or nullno
descriptionstring or nullno
displayNamestringyes
executionModeAgentExecutionModeyes
forkedFromstring or nullnoOrigin reference (<source>:<biomeId|""">:<slug>) when this row was forked from a biome/system row. Survives uninstall — UI surfaces "fork without origin" if the origin is gone.
hiddenbooleanyesHidden from user-facing pickers. Stays invocable via task delegation and workflow agentRef:.
idstringyes
identityVersionnumberyes
isActivebooleanyes
mcpServicesarray of stringyes
modelLanestring or nullyesThe model LANE this agent routes on — rules select on it. An OPEN vocabulary: every key is declared by a model-lane contribution, and GET /work-kinds?kind=model-lane enumerates what this organisation may use. Distinct from AgentRunRole (permissions).
orgIdstring or nullyesThe owning organisation, or null for a platform-owned agent (system / biome tier).
ownerUserIdstring or nullnoOwning user id when source='user', otherwise null.
projectIdstring or nullno
revisionNumbernumberyesServer-generated immutable revision number.
skillsarray of stringyes
slugstringyes
sourceScopeSourceyes5-tier owner-scope label for UI source-filter and fork CTA. Matches the source column on the row; defaults to org for legacy rows.
supportsAgentSessionsbooleanyes
systemPromptstringyes
temperaturenumber or nullnonull defers to the engine/model default.
updatedAtstring (date-time)yes
workspaceAgentWorkspaceDto or nullnoAuthored workspace intent for launch compatibility checks.

AgentKernelResponseDtoDataArrayEnvelope

PropertyTypeRequiredDescription
dataarray of AgentKernelResponseDtoyes

AgentKernelResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataAgentKernelResponseDtoyes

AgentKernelResponseDtoPaginatedEnvelope

PropertyTypeRequiredDescription
dataarray of AgentKernelResponseDtoyes
paginationPaginationMetayes

AgentLiveRevisionDto

PropertyTypeRequiredDescription
contentHashstringyes
createdAtstring (date-time)yes
idstringyes
numbernumberyes

AgentModelOverrideDto

PropertyTypeRequiredDescription
kindone of "concrete", "strategy"yes
modelIdstringno
modelLanestringnoWork kind this node's model resolves through (kind=strategy). OPEN vocabulary with no kernel core: every lane is declared by a model-lane contribution, so GET /work-kinds?kind=model-lane enumerates the lanes this organisation may use. Checked against the org's visible set on write.
providerSlugstringno
temperaturenumberno

AgentModelOverrideResponseDto

PropertyTypeRequiredDescription
agentSlugstringyes
createdAtstringyes
idstringyes
modelobjectnoResolved model info (included when fetching).
modelIdstringyes
orgIdstringyes
scopeone of "org", "user", "project"yes
scopeIdstringyes
temperaturenumber or nullno
updatedAtstringyes

AgentModelOverrideResponseDtoDataArrayEnvelope

PropertyTypeRequiredDescription
dataarray of AgentModelOverrideResponseDtoyes

AgentModelOverrideResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataAgentModelOverrideResponseDtoyes

AgentMountLayoutDto

PropertyTypeRequiredDescription
agentRunConfigAgentRunConfigDtoyes
inputsobjectyesRaw spec.inputs block — manifest DSL ManifestInputDeclaration map.
mountsobjectyesRaw spec.mounts block — manifest DSL ManifestMountDeclaration map keyed by AWP slot key.
seedFilesarray of objectyesRaw spec.seedFiles array — manifest DSL ManifestSeedFile entries.

AgentNodeDto

PropertyTypeRequiredDescription
agentContentHashstringnoServer-stamped, resolve-only: SHA-256 of the STABLE revision of the agent this node references. Rejected on write.
aliasstringnoAlias when the same agent appears more than once.
biomeAvailabilityAgentBiomeAvailabilityDtonoPer-node biome opt-in/opt-out (DBM.2). A POST-scope filter the resolver applies over this node's biome-contributed references — its child agents (and, downstream, skills/tools). exclude wins; a non-empty include is an allow-list; absent ⇒ no filtering (implicit-by-scope). Mirrors the kernel BiomeAvailabilityScoped mixin on AgentNode.
childrenarray of AgentNodeDtoyesSub-agents — recursive composition nodes.
delegationBoundaryAgentCapabilitySetExpressionDtonoDELEGATION BOUNDARY — a ceiling on the authority this node may be granted by the agent that delegates to it (kernel AgentNode.delegationBoundary). effective(this) = effective(parent) ∩ own(this) ∩ delegationBoundary; absent ⇒ no ADDITIONAL attenuation — the parent's authority still bounds this node. Meaningless on the ROOT node (nothing delegates to it) and refused there by AgentNodeValidator.
instructionsstringnoPer-node instructions appended after the referenced agent definition's systemPrompt. Extends (does not replace) the agent prompt for this node only — sibling and child nodes are unaffected. Length is the author’s decision — no product cap; coarse abuse bounding is handled by the HTTP body-size limit.
kernelAgentRefDtoyes
modelOverrideAgentModelOverrideDtono
permissionobjectnoPer-node permission override map (action or per-target map per key), deep-merged over the referenced agent definition permission. e.g. { edit: "deny", webfetch: "deny", task: { "*": "deny", "kb-researcher": "allow" } }
promptModeone of "append", "replace"noHow this node’s instructions combine with the referenced agent systemPrompt. "append" (default) appends after the base prompt; "replace" makes instructions the prompt body (config still inherited).
skillsarray of AgentSkillRefDtoyes
toolsarray of AgentToolRefDtoyes

AgentOutputSurfaceDto

PropertyTypeRequiredDescription
autoOpenbooleannoAuto-open the output surface pane on first ready signal.
defaultDocumentstringnoDefault document name served for directory requests when kind === 'static'. Defaults to index.html.
healthPathstringno
kindOutputSurfaceKindyes
modeone of "single", "multi"no
portnumberno
rootstringnoWorkspace-relative directory served by the baked static-artifact-server. Required when kind === 'static', rejected for other kinds.

AgentOwnerSpaceDto

PropertyTypeRequiredDescription
appIdstringno
biomeIdstringno
orgIdstringno
projectIdstringno
sessionIdstringno
tierone of "system", "org", "project", "app", "session", "biome", "user"yes
userIdstringno

AgentOwnerSpaceRefDto

PropertyTypeRequiredDescription
fenceone of "global", "tenant"yes
orgIdstring or nullyes
spaceAgentOwnerSpaceDtoyes

AgentPermissionsDto

PropertyTypeRequiredDescription
toolsAgentPermissionsToolsDtoyes

AgentPermissionsToolsDto

PropertyTypeRequiredDescription
allowarray of ToolsetKeyyes
denyarray of ToolsetKeyyes

AgentPersistenceDto

PropertyTypeRequiredDescription
overridesobjectnoPer-slot persistence-policy overrides keyed by AWP slot key. Values are the SlotPersistencePolicy union; only git-push slots are overridable.
pathsarray of stringyesWorkspace-relative paths. No leading "/", no "..".

AgentProfileDto

PropertyTypeRequiredDescription
avatarSeedobject or nullno
avatarStylestringyes
biomeIdstring or nullnoBiome id when source='biome', otherwise null. Used by the FE talent-pool view to group biome-contributed agents under a single category bucket.
descriptionobject or nullno
displayNamestringyes
executionModeAgentExecutionModeyesRole hint resolved from the agent's source manifest mode: frontmatter. primary agents lead a session; subagent agents are designed to be invoked via a primary's task tool. The distinction is a UI hint — any agent may be bound in either role at session/step time.
idstringyes
identityVersionnumberyes
isActivebooleanyes
modelLanestring or nullyesThe model LANE this agent routes on — rules select on it. An OPEN vocabulary: every key is declared by a model-lane contribution, and GET /work-kinds?kind=model-lane enumerates what this organisation may use. Distinct from AgentRunRole (permissions).
skillsarray of stringyes
slugstringyes
sourcestringyesScope tier the row lives in. system rows ship with the platform; biome rows are contributed by an installed biome and grouped by biomeId; org rows are authored in the org; project rows are scoped to a single project.

AgentProfileDtoDataEnvelope

PropertyTypeRequiredDescription
dataAgentProfileDtoyes

AgentProfileDtoPaginatedEnvelope

PropertyTypeRequiredDescription
dataarray of AgentProfileDtoyes
paginationPaginationMetayes

AgentReachTier

The root composition agent's reach-tier permission ceiling (Chunk 2). A composition row with no explicit tier resolves to as-owner (the default), so this field is always populated. agent-session-api persists it onto the session and stamps it onto ExecutionContext.reachTier so authorization-api applies the tier constraint inside the verdict.

Type: one of "sandbox", "as-owner", "connected", "full"

AgentRefDto

PropertyTypeRequiredDescription
slugstringyes
versionstringnoPinned version; omitted = latest.

AgentRevisionHistoryEntryDto

PropertyTypeRequiredDescription
contentHashstringyes
createdAtstring (date-time)yes
createdBystringyes
idstringyes
numbernumberyes
restoredFromRevisionIdstring or nullno
sourceProvenanceobject or nullnoAdvanced provenance only. May contain sourceVersion/sourceCommit; it is not a version selector.

AgentRevisionHistoryEntryDtoDataArrayEnvelope

PropertyTypeRequiredDescription
dataarray of AgentRevisionHistoryEntryDtoyes

AgentRollbackResponseDto

PropertyTypeRequiredDescription
expectedChannelVersionnumberyes
identityIdstringyes
priorReleaseSetIdstringyes
releaseIntentIdstringyes
statusone of "pending", "reconciling", "applied", "failed"yes

AgentRollbackResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataAgentRollbackResponseDtoyes

AgentRunConfigDto

PropertyTypeRequiredDescription
deliverableSpecRefstringnoDeliverable-spec ref. May carry a ${input.x} token — resolved downstream by the workspace pipeline against the run bind inputs.
rolestringyesCanonical AgentRunRole — drives renderer + system-overlay framing.
stagestringyesStage key.

AgentSessionLifecycle

The resolved agent's declared default session lifecycle (ephemeral|persistent), or null when it declares no preference. agent-session-api inherits this as the session lifecyclePolicy unless the launch passes an explicit override; null ⇒ agent-session applies its own ephemeral default last.

Type: one of "ephemeral", "persistent"

AgentSkillRefDto

PropertyTypeRequiredDescription
slugstringyes
versionstringnoPinned version; omitted = latest approved.

AgentTalentPoolStatsDto

PropertyTypeRequiredDescription
avgDurationMsnumberyesMean wall-clock duration per invocation, in milliseconds. Always 0 while source is unavailable.
avgTokensPerInvocationnumberyesMean tokens per invocation. Always 0 while source is unavailable.
invocationCountnumberyesRecorded invocations. Always 0 while source is unavailable.
lastUsedAtstring (date-time) or nullnoWhen the agent was last invoked. Always null while source is unavailable.
slugstringyesSlug of the agent these stats describe.
sourceAgentTalentPoolStatsSourceyesProvenance of the numbers above. Read this before rendering them — unavailable means no telemetry exists, not that the agent was never used.

AgentTalentPoolStatsDtoDataEnvelope

PropertyTypeRequiredDescription
dataAgentTalentPoolStatsDtoyes

AgentTalentPoolStatsSource

Provenance of the numbers above. Read this before rendering them — unavailable means no telemetry exists, not that the agent was never used.

Type: one of "unavailable"

AgentToolRefDto

PropertyTypeRequiredDescription
kindone of "provider", "tool"yes
providerKindstringyesTool provider kind (see ToolProviderKind).
resourceIdstringyes
toolNamestringnoCanonical MCP tool name. Required when kind = tool.

AgentWorkingFileDto

PropertyTypeRequiredDescription
formatone of "markdown", "html", "json", "yaml", "text"yes
pathstringyes
slugstringyes
sourceKindstringyes
sourceRefmap of stringyes
syncDirectionone of "down-only", "up-only", "bidirectional"yes

AgentWorkspaceDto

PropertyTypeRequiredDescription
credentialsarray of AgentCredentialDtonoDeclared credential requirements projected from the source manifest compiled spec.credentials[]. Read by the runtime EnvironmentResolver (snapshot + resume drift detection). Present only when the source manifest authored at least one credential.
envarray of AgentEnvVarDtono
mountLayoutAgentMountLayoutDtono
outputSurfaceAgentOutputSurfaceDtono
permissionsAgentPermissionsDtonoCoarse toolset allow/deny gate projected from the source manifest compiled spec.permissions. Read by the runtime EnvironmentResolver (snapshot + resume drift detection). Present only when the source manifest authored a non-empty allow or deny list.
persistenceAgentPersistenceDtono
workingFilesarray of AgentWorkingFileDtonoWorking files the platform materialises for sessions on this composition. Raw form — path / sourceRef values may carry ${input.x} tokens that the bundle-apply path resolves against the session's customConfig.manifestInputs.

BindModelStrategyDto

PropertyTypeRequiredDescription
strategyIdstringyesStrategy ID to bind to the project

CatalogModelDto

PropertyTypeRequiredDescription
capabilitiesarray of stringyesModel capabilities
contextWindownumberyesContext window in tokens
costInputnumbernoCost per 1M input tokens (USD)
costOutputnumbernoCost per 1M output tokens (USD)
deprecatedbooleanyesWhether the model is deprecated
displayNamestringyesDisplay name
familystringyesModel family
modelIdstringyesModel identifier
outputWindownumbernoOutput window in tokens
popularbooleanyesWhether this is a popular model
reasoningbooleanyesWhether the model supports reasoning
releaseDatestringnoRelease date (ISO)
visionbooleanyesWhether the model supports vision

CatalogModelDtoDataArrayEnvelope

PropertyTypeRequiredDescription
dataarray of CatalogModelDtoyes

CatalogProviderDto

PropertyTypeRequiredDescription
apiTypeone of "openai-compatible", "anthropic", "google"yesSDK / API type
authTypeone of "bearer", "api-key-header"yes
baseUrlstringyesDefault base URL
descriptionstringyes
keyHelpUrlstringyes
keyPlaceholderstringyes
logoUrlstringyesLogo URL (SVG)
namestringyesDisplay name
slugstringyesProvider slug
syncSupportedbooleanyesWhether live /models sync is supported
tierone of "featured", "popular"yes

CatalogProviderDtoDataArrayEnvelope

PropertyTypeRequiredDescription
dataarray of CatalogProviderDtoyes

CodeStandardResponseDto

PropertyTypeRequiredDescription
categorystringyesStandard category
contentstringyesStandard content
createdAtstring (date-time)yes
createdBystringyesCreator ID
idstringyesUnique ID
isActivebooleanyesWhether the standard is active
namestringyesStandard name
orgIdstringyesOrganization ID
projectIdstringnoProject ID (null for org-wide standards)
updatedAtstring (date-time)yes

CodeStandardResponseDtoDataArrayEnvelope

PropertyTypeRequiredDescription
dataarray of CodeStandardResponseDtoyes

CodeStandardResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataCodeStandardResponseDtoyes

CreateAgentDto

PropertyTypeRequiredDescription
abilitiesarray of stringnoSpecial-ability CapabilityRefs granted on top of the reach tier; unioned into the auto-grant manifest.
capabilityAgentCapabilityLayerDtonoCapability envelope applied at runtime. When omitted, a read-only default is applied at publish time.
descriptionstringno
displayNamestringyes
durableWorkspaceDurableWorkspaceRefDto or nullnoDeclares that every session this agent launches attaches to ONE durable, NAMED workspace shared across independent sessions/pods (multi-pod WorkspaceSharingPolicy.Shared) keyed by workspaceRef — its files are the source of truth and cross-session mutating turns serialize through a write-lease. Omitted / null ⇒ a private per-session workspace (the default).
internetEgressCeilingWorkerInternetEgressnoCeiling on whether the worker pod running this agent may open sockets to the public internet. A ceiling the agent ACCEPTS, never a grant: the effective mode is the most restrictive of the deployment, the owning Space, this value and the session, so open here widens nothing. Omitted ⇒ the agent states nothing and no default is substituted.
reachTierAgentReachTiernoThe agent's permission ceiling. Omitted ⇒ as-owner (the agent's authority equals its owner's — today's acts-as behavior). Enforcement lives in authz; this service only owns + exposes the field.
rootAgentNodeDtoyesThe recursive root (primary agent) node.
scopeScopeSourceyesOwner tier. Customer-authorable tiers only — org (default) or user. project is reached via re-scope; biome/system are platform-seeded.
sessionLifecycleAgentSessionLifecyclenoThe agent's default session lifecycle — ephemeral (idle-auto-pauses) or persistent (always-on). A launched session inherits this unless the launch passes an explicit override. Omitted ⇒ the agent declares no preference and agent-session-api applies its own ephemeral default.
slugstringyesStable slug; lowercase, hyphenated.
standingSessionStandingSessionRefDto or nullnoDeclares that every launch of this agent runs in ONE reusable "standing" session keyed by pinKey — agent-session-api adopts a non-terminal existing session for (orgId, projectId, pinKey) instead of minting a fresh one. Omitted / null ⇒ a fresh session per launch (the default).
workspaceAgentWorkspaceDtonoAuthored workspace-layout config — persist-paths + per-slot overrides, env vars, output surface. Optional + additive: a composition with no workspace block runs on the AWP base slots alone. Projected onto the run's WorkspaceSpec by the resolution service.
workspaceSharingWorkspaceSharingPolicynoWhether a session launch of this agent may POOL onto a compatible, already-running pod as a new thread (shareable) or must always run in its own isolated worker (isolated). Omitted ⇒ the DB default isolated (the fail-safe) — mark shareable ONLY for workspace-stateless / chat-style agents that never mutate /workspace.

CreateAgentKernelDto

PropertyTypeRequiredDescription
avatarSeedstringnoDiceBear avatar seed (defaults to slug).
avatarStylestringnoDiceBear avatar style family.
descriptionstringnoFree-text description rendered on the agent profile.
displayNamestringyesDisplay name for the agent.
forkedFromstringnoOrigin reference set when this row was forked from a biome/system agent. Format: <source>:<biomeId|"">:<slug>. Survives uninstall — UI surfaces "fork without origin" if the origin is gone.
mcpServicesarray of stringnoMCP service keys this agent can access.
modelLanestringyesThe model LANE this agent routes on — rules select on it. An OPEN vocabulary: every key is declared by a model-lane contribution, and GET /work-kinds?kind=model-lane enumerates what this organisation may use. Distinct from AgentRunRole (permissions).
scopeScopeSourcenoOwner tier the agent is created under. Customer-authorable tiers only — org (the org owns it; default) or user (private to the creator, promotable later via re-scope). biome and system rows are seeded by the platform, never created through this endpoint; project rows are created via re-scope from user/org.
skillsarray of stringnoOpen-world skill tags.
slugstringyesUnique slug for the agent definition.
systemPromptstringyesBase system prompt.
temperaturenumbernoLLM temperature override.

CreateCodeStandardDto

PropertyTypeRequiredDescription
categoryone of "code_style", "api_conventions", "testing", "security", "naming", "documentation"yes
contentstringyes
isActivebooleanno
namestringyes
projectIdstring or nullnoProject ID — null for org-wide standard

CreateModelDto

PropertyTypeRequiredDescription
capabilitiesarray of stringnoModel capabilities
contextWindownumberyesRequired. Max input tokens the model supports (no silent fallback).
displayNamestringyes
embeddingDimensionnumbernoEmbedding vector dimension (for embedding models only)
isActivebooleanno
modalitiesarray of ModelModalitynoClosed-enum INPUT modalities the model accepts, recorded with source operator. Omitted or empty means unknown (a provider sync may fill it). Consumed by the model-modality capability provider-binding.
modelIdstringyes

CreateModelResolutionRuleDto

PropertyTypeRequiredDescription
prioritynumbernoTie-break hint when two rules match the same number of dimensions and the fixed dimension-priority ladder does not separate them. Higher wins. Defaults to 0.
selectorModelResolutionSelectorDtonoDimensional selector. At least one dimension is required: an empty selector is refused (set the org default via the org model default).
targetModelIdstringyesRegistry model record id (LlmModel.id) the rule routes to. It must be an active model on an active provider the organisation or the platform owns; otherwise the write is refused with 422 MODEL_NOT_SERVED.
targetReasoningEffortstringnoOptional reasoning effort carried by the resolved model, forwarded verbatim to the provider. OPEN vocabulary owned by the provider (e.g. minimal/low/medium/high, or low/medium/high/xhigh/max) — not an enum here, so a new provider spelling is not refused at the door.
targetTemperaturenumbernoOptional temperature override carried by the resolved model.

CreateModelStrategyDto

PropertyTypeRequiredDescription
descriptionstringno
displayNamestringyes
rulesarray of CreateModelResolutionRuleDtoyesThe strategy's rules. A strategy holds only rules: each has the same shape and validation as an org-level model resolution rule, and applies to the projects this strategy is bound to.
slugstringyes

CreateProjectAgentOverrideDto

PropertyTypeRequiredDescription
agentIdentityIdstringyesStable AgentIdentity ID to override for this project.
mcpServicesAddarray of stringnoAdditional MCP services to enable.
mcpServicesRemovearray of stringnoMCP services to disable for this project.
systemPromptAppendstringnoText appended to the base system prompt.
temperaturenumberno

CreateProviderDto

PropertyTypeRequiredDescription
apiKeystringnoOptional enrolment transport: when supplied, the key is sealed in the credential plane and becomes the organisation's default credential (org_default pointer) for this provider's key; the provider row never stores it. Omit it when members use their own keys.
apiTypeone of "openai-compatible", "anthropic", "google"yes
authTypeone of "bearer", "api-key-header", "none"noHow the provider authenticates upstream. Omitted = bearer. none declares a keyless endpoint (openai-compatible only): apiKey may then not be supplied, and no credential header is sent.
baseUrlstringyes
catalogSlugstringnoCatalog provider slug — used to seed known models on creation
maxConcurrentRequestsnumbernoMaximum concurrent requests allowed to this provider. Null = unlimited.
namestringyes
slugstringyesURL-safe identifier

CredentialKind

Type: one of "llm-provider", "scm-token", "oauth-bearer", "mcp-auth", "wallet-entry", "generic-secret"

DelegatedAgentRefDto

PropertyTypeRequiredDescription
slugstringyes
versionstringyesGenerated revision number (decimal string).

DelegatedAgentSubjectDto

PropertyTypeRequiredDescription
idstringyes
kindone of "agent"yes

DelegatedApertureConstraintsDto

PropertyTypeRequiredDescription
aperturesarray of AgentCapabilityApertureDtoyes
boundariesarray of AgentCapabilitySetExpressionDtoyes

DurableWorkspaceRefDto

PropertyTypeRequiredDescription
workspaceRefstringyesStable identity of the durable shared workspace. Every session of every agent that resolves this ref within the same (orgId, projectId) mounts the SAME durable /workspace (its files are the source of truth; a session is a disposable cache).

EmbeddingCommitmentActivationDto

PropertyTypeRequiredDescription
activatedbooleanyesTrue when this call flipped the commitment proposed → active; false when it was already active.

EmbeddingCommitmentActivationDtoDataEnvelope

PropertyTypeRequiredDescription
dataEmbeddingCommitmentActivationDtoyes

EmbeddingCommitmentDto

PropertyTypeRequiredDescription
committedAtstring (date-time) or nullno
createdAtstring (date-time)yes
createdBystringyes
dimensionnumberyes
idstringyes
modelIdstringyes
orgIdstringyes
pendingMigrationEmbeddingMigrationDto or nullno
providerEmbeddingProviderSummaryDtoyes
providerIdstringyes
stateone of "proposed", "active", "migrating"yes
updatedAtstring (date-time)yes

EmbeddingCommitmentDtoDataEnvelope

PropertyTypeRequiredDescription
dataEmbeddingCommitmentDtoyes

EmbeddingConsumer

Type: one of "search_api", "memory_api"

EmbeddingDimensionVerdict

What this deployment's vector storage would do with this model's dimension. indexed is fully served; stored_unindexed works and is a linear scan; unsupported cannot be stored and must not be offered; unverified means NO consumer has declared what it can hold — which is an ANSWER, not a synonym for "fine". A client MUST render this rather than deciding from a local list of dimensions: a local list is how 4096 came to be offered with no storage behind it.

Type: one of "indexed", "stored_unindexed", "unsupported", "unverified"

EmbeddingMigrationDto

PropertyTypeRequiredDescription
approvedAtstring (date-time)yes
approvedBystringyes
completedAtstring (date-time) or nullno
consumerStatesarray of MigrationConsumerProgressDtoyes
failedAtstring (date-time) or nullno
failureReasonstring or nullno
fromDimensionnumberyes
fromModelIdstringyes
fromProviderIdstringyes
idstringyes
orgIdstringyes
rolledBackAtstring (date-time) or nullno
startedAtstring (date-time) or nullno
stateone of "approved", "in_progress", "completed", "failed", "rolled_back"yes
toDimensionnumberyes
toModelIdstringyes
toProviderIdstringyes

EmbeddingMigrationDtoDataEnvelope

PropertyTypeRequiredDescription
dataEmbeddingMigrationDtoyes

EmbeddingMigrationRollbackDto

PropertyTypeRequiredDescription
rolledBackbooleanyesAlways true — the rollback either completed or the request failed with an error envelope.

EmbeddingMigrationRollbackDtoDataEnvelope

PropertyTypeRequiredDescription
dataEmbeddingMigrationRollbackDtoyes

EmbeddingModelOptionDto

PropertyTypeRequiredDescription
capabilitiesarray of stringyes
contextWindownumberyes
dimensionVerdictEmbeddingDimensionVerdictyesWhat this deployment's vector storage would do with this model's dimension. indexed is fully served; stored_unindexed works and is a linear scan; unsupported cannot be stored and must not be offered; unverified means NO consumer has declared what it can hold — which is an ANSWER, not a synonym for "fine". A client MUST render this rather than deciding from a local list of dimensions: a local list is how 4096 came to be offered with no storage behind it.
displayNamestringyes
embeddingDimensionnumberyes
idstringyes
modelIdstringyes
providerEmbeddingProviderSummaryDtoyes

EmbeddingModelOptionDtoDataArrayEnvelope

PropertyTypeRequiredDescription
dataarray of EmbeddingModelOptionDtoyes

EmbeddingProviderSummaryDto

PropertyTypeRequiredDescription
apiTypestringyes
baseUrlstringyes
idstringyes
isSystembooleanyes
namestringyes
slugstringyes

EmbeddingStorageDeclarationAckDto

PropertyTypeRequiredDescription
declaredAtstring (date-time)yesWhen THIS service recorded it, from its own clock rather than the caller's. It is what makes a consumer that stopped re-declaring visible: its row simply stops moving.
recordedbooleanyes

EmbeddingStorageDeclarationAckDtoDataEnvelope

PropertyTypeRequiredDescription
dataEmbeddingStorageDeclarationAckDtoyes

EmbeddingStorageDeclarationDto

PropertyTypeRequiredDescription
backendstringyes
backendVersionstringyesProvenance for the sets above. A bare capability is a fact with no source; naming the backend and version makes it checkable, and makes a backend change visible instead of silently keeping an old answer.
consumerEmbeddingConsumeryes
indexedDimensionsarray of numberyesThe SUBSET of storableDimensions this consumer can also serve from an ANN index. Outside it recall is an exact scan: correct, and slower. It is advisory and never causes a refusal — conflating the two is what made 4096 look unsupported when it was merely unindexable. May be empty, which honestly means nothing is ANN-indexed.
storableDimensionsarray of numberyesEXACT SET of dimensions this consumer can store — every one backed by real storage it has verified, not an interval. A dimension absent from this list is unsupported, including one that falls between two members. Must be non-empty: a consumer that cannot establish its own capability declares NOTHING and is reported unverified, which is a different answer from "stores nothing" and refuses nothing.

ExactAgentRevisionAuthorityResponseDto

PropertyTypeRequiredDescription
capabilityApertureAgentCapabilityApertureDtoyes
contentHashstring (sha256)yes
delegatedAperturesarray of ResolvedDelegatedApertureDtoyesEvery agent reachable by DELEGATION from the primary agent (composition children and intrinsic delegates, cycles resolved to a fixed point, bounded by the platform delegation depth), each with its effective authority parent ∩ own ∩ boundary. Sorted by agentKey; exactly one entry (the primary agent) has a null parent.
internetEgressCeilingWorkerInternetEgressnoCeiling on whether the worker pod running the PRIMARY agent may open sockets to the public internet. A ceiling the agent ACCEPTS, never a grant: the effective mode is the most restrictive of the deployment, the owning Space, this value and the session, so open here widens nothing. RESOLVED: the agent's own declaration joined along its extends chain, so a child never widens its base. ABSENT when nothing in the chain declares one — there is no default.
ownerSpaceRefAgentOwnerSpaceRefDtoyes
preparationGenerationIdstringyes
reachTierone of "sandbox", "as-owner", "connected", "full"yes
resolvedGraphExactAgentRevisionResolvedGraphDtoyes
resourceIdstringyes
revisionIdstringyes

ExactAgentRevisionAuthorityResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataExactAgentRevisionAuthorityResponseDtoyes

ExactAgentRevisionResolvedGraphDto

PropertyTypeRequiredDescription
rootAgentNodeDtoyes

InputArtifactEntryDto

PropertyTypeRequiredDescription
contentTypestringno
pathstringyes
sourceArtifactIdstringyes
sourceVersionnumberyes

ListedModelProviderDto

PropertyTypeRequiredDescription
authTypeone of "bearer", "api-key-header", "none"yesHow the provider authenticates upstream. none = a keyless endpoint.
idstringyes
isActivebooleanyesWhether the provider is active. An inactive provider serves no model.
namestringyes
slugstringyes

ListedModelResponseDto

PropertyTypeRequiredDescription
audioInputPerSecondnumber or nullnoPer-input-audio-second price (USD per second).
cacheReadPerMTokennumber or nullnoCache-read price (USD per 1M tokens).
cacheWritePerMTokennumber or nullnoCache-write price (USD per 1M tokens).
capabilitiesarray of stringyes
contextWindowobject or nullno
contextWindowSourceModelFactSource or nullyesWhere a model size fact came from, highest rank first: operator (a person set it; no provider sync ever overwrites it), provider (provider discovery reported it), curated_catalog (the curated per-provider catalogue). For contextWindow, null = provenance not recorded (a model registered before sources were tracked).
contextWindowVerifiedAtstring (date-time) or nullyesWhen the source of contextWindow last asserted this value (ISO 8601). Null exactly when its source is null.
createdAtstringyes
deprecatedbooleanyesModel has rolled out of the current window.
deprecationDatestring or nullnoThe operator-set retirement instant (ISO 8601); null when the model is not retired. From it on, resolutions that pick this model serve successorModelId instead, or refuse with MODEL_RETIRED_NO_SUCCESSOR when there is none. No catalogue sync writes it.
displayNamestringyes
embeddingDimensionnumber or nullnoEmbedding output vector dimension (only for embedding models).
factConflictsarray of ModelFactConflictDtoyesEvery violated size-fact bound, with both sides' sources. Empty when consistent.
factsConsistentbooleanyesFalse when the effective size facts conflict (see factConflicts). An inconsistent model is refused for selection and use with MODEL_FACTS_CONFLICT until an admin changes or clears the overriding value.
idstringyes
imageInputPerUnitnumber or nullnoPer-input-image price (USD per unit).
inputPricePerMTokennumber or nullnoInput price (USD per 1M tokens).
isActivebooleanyes
maxInputTokensnumber or nullyesMax prompt (input) tokens, when the service caps input below the context window. Null when no source declares a cap (only the context window applies).
maxInputTokensSourceModelFactSource or nullyesWhere a model size fact came from, highest rank first: operator (a person set it; no provider sync ever overwrites it), provider (provider discovery reported it), curated_catalog (the curated per-provider catalogue). For maxInputTokens, null = the fact is unknown.
maxInputTokensVerifiedAtstring (date-time) or nullyesWhen the source of maxInputTokens last asserted this value (ISO 8601). Null exactly when its source is null.
maxOutputTokensnumber or nullnoMax generation/output tokens. Bounded by contextWindow, which is the TOTAL budget (prompt + reasoning + answer). Null when no authoritative source declares one.
maxOutputTokensSourceModelFactSource or nullyesWhere a model size fact came from, highest rank first: operator (a person set it; no provider sync ever overwrites it), provider (provider discovery reported it), curated_catalog (the curated per-provider catalogue). For maxOutputTokens, null with a null value = the fact is unknown; null beside a value = provenance not recorded (a model registered before sources were tracked).
maxOutputTokensVerifiedAtstring (date-time) or nullyesWhen the source of maxOutputTokens last asserted this value (ISO 8601). Null exactly when its source is null.
modalitiesarray of ModelModalityyesClosed-enum INPUT modalities the model accepts — a capability fact (see modalitiesSource). Empty when nobody declared any.
modalitiesSourceModelFactSource or nullyesWhere the modalities capability fact came from, highest rank first: operator (no sync overwrites it), provider (the provider declared it), curated_catalog. an empty set with a null source = the fact is unknown (nobody declared it); a non-default value with a null source = provenance not recorded.
modalitiesVerifiedAtstring (date-time) or nullyesWhen the source of modalities last asserted it (ISO 8601). Null exactly when its source is null.
modeModelMode or nullnoOperating mode of the model. Null when no signal resolved one.
modelIdstringyes
outputPricePerMTokennumber or nullnoOutput price (USD per 1M tokens).
priceCurrencystring or nullnoCurrency of the price columns ('USD' when any price is present, null otherwise).
providerListedModelProviderDtoyes
providerIdstringyes
servablebooleanyesTrue iff model resolution would serve this model to the organisation: the model is active, its provider is active and usable by the org (the same predicate resolution refuses with MODEL_NOT_SERVED), and its size facts agree (else resolution refuses with MODEL_FACTS_CONFLICT). Model pickers offer only servable models.
successorModelIdstring or nullnoThe model record id resolutions serve instead of this one from deprecationDate; null when none.
supportsAudioInputbooleanyesModel accepts audio inputs.
supportsAudioInputSourceModelFactSource or nullyesWhere the supportsAudioInput capability fact came from, highest rank first: operator (no sync overwrites it), provider (the provider declared it), curated_catalog. false with a null source = the fact is unknown (nobody declared it); a non-default value with a null source = provenance not recorded.
supportsAudioInputVerifiedAtstring (date-time) or nullyesWhen the source of supportsAudioInput last asserted it (ISO 8601). Null exactly when its source is null.
supportsJsonModebooleanyesModel supports structured JSON output mode.
supportsJsonModeSourceModelFactSource or nullyesWhere the supportsJsonMode capability fact came from, highest rank first: operator (no sync overwrites it), provider (the provider declared it), curated_catalog. false with a null source = the fact is unknown (nobody declared it); a non-default value with a null source = provenance not recorded.
supportsJsonModeVerifiedAtstring (date-time) or nullyesWhen the source of supportsJsonMode last asserted it (ISO 8601). Null exactly when its source is null.
supportsPdfInputbooleanyesModel accepts PDF inputs.
supportsPdfInputSourceModelFactSource or nullyesWhere the supportsPdfInput capability fact came from, highest rank first: operator (no sync overwrites it), provider (the provider declared it), curated_catalog. false with a null source = the fact is unknown (nobody declared it); a non-default value with a null source = provenance not recorded.
supportsPdfInputVerifiedAtstring (date-time) or nullyesWhen the source of supportsPdfInput last asserted it (ISO 8601). Null exactly when its source is null.
supportsPromptCachingbooleanyesModel supports prompt caching.
supportsPromptCachingSourceModelFactSource or nullyesWhere the supportsPromptCaching capability fact came from, highest rank first: operator (no sync overwrites it), provider (the provider declared it), curated_catalog. false with a null source = the fact is unknown (nobody declared it); a non-default value with a null source = provenance not recorded.
supportsPromptCachingVerifiedAtstring (date-time) or nullyesWhen the source of supportsPromptCaching last asserted it (ISO 8601). Null exactly when its source is null.
supportsReasoningbooleanyesModel performs explicit reasoning.
supportsReasoningSourceModelFactSource or nullyesWhere the supportsReasoning capability fact came from, highest rank first: operator (no sync overwrites it), provider (the provider declared it), curated_catalog. false with a null source = the fact is unknown (nobody declared it); a non-default value with a null source = provenance not recorded.
supportsReasoningVerifiedAtstring (date-time) or nullyesWhen the source of supportsReasoning last asserted it (ISO 8601). Null exactly when its source is null.
supportsToolsbooleanyesModel exposes function/tool calling.
supportsToolsSourceModelFactSource or nullyesWhere the supportsTools capability fact came from, highest rank first: operator (no sync overwrites it), provider (the provider declared it), curated_catalog. false with a null source = the fact is unknown (nobody declared it); a non-default value with a null source = provenance not recorded.
supportsToolsVerifiedAtstring (date-time) or nullyesWhen the source of supportsTools last asserted it (ISO 8601). Null exactly when its source is null.
supportsVisionbooleanyesModel accepts image inputs.
supportsVisionSourceModelFactSource or nullyesWhere the supportsVision capability fact came from, highest rank first: operator (no sync overwrites it), provider (the provider declared it), curated_catalog. false with a null source = the fact is unknown (nobody declared it); a non-default value with a null source = provenance not recorded.
supportsVisionVerifiedAtstring (date-time) or nullyesWhen the source of supportsVision last asserted it (ISO 8601). Null exactly when its source is null.
supportsWebSearchbooleanyesModel supports built-in web search.
supportsWebSearchSourceModelFactSource or nullyesWhere the supportsWebSearch capability fact came from, highest rank first: operator (no sync overwrites it), provider (the provider declared it), curated_catalog. false with a null source = the fact is unknown (nobody declared it); a non-default value with a null source = provenance not recorded.
supportsWebSearchVerifiedAtstring (date-time) or nullyesWhen the source of supportsWebSearch last asserted it (ISO 8601). Null exactly when its source is null.
tieredPricingarray of ModelPricingTierDto or nullnoContext-tier pricing overlay sorted ascending by minInputTokens. Null when no tier is published.

ListedModelResponseDtoDataArrayEnvelope

PropertyTypeRequiredDescription
dataarray of ListedModelResponseDtoyes

LlmReadinessDetailsDto

PropertyTypeRequiredDescription
missingModelSlugsarray of stringnoModel slugs that need to be synced
missingProviderSlugsarray of stringnoProvider slugs that need to be added
strategyIdstringnoRelated strategy ID
strategyNamestringnoRelated strategy name
unresolvedLanesarray of UnresolvedLaneDtonoPresent on required_lane_unresolved: every agent whose own model lane resolves to no usable model at the scope, ordered by agent slug then lane. The agents considered are those from a biome enabled for the organisation, not hidden, and supporting agent sessions. Agent-lane resolution only: a launch definition's own model intent and project scope are judged at launch, not here.

LlmReadinessResponseDto

PropertyTypeRequiredDescription
actionone of "add_provider", "sync_models", "set_default_model", "fix_routed_models", "fix_project_strategy", "bind_required_lanes" or nullnoSuggested remediation action. bind_required_lanes means an agent's own model lane has no resolution at the requested scope; it does not speak for a launch definition's own model intent, which is judged at launch.
detailsLlmReadinessDetailsDtonoAdditional diagnostic details
messagestringyesHuman-readable status message
readybooleanyesWhether LLM is ready to use
statusone of "ready", "missing_provider", "missing_models", "missing_model_routing", "routed_models_unavailable", "project_strategy_unavailable", "required_lane_unresolved"yesrequired_lane_unresolved reports agent-lane resolution at the requested scope only (each agent's own model lane); a launch definition's own model intent and project scope are judged at launch, not here.

LlmReadinessResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataLlmReadinessResponseDtoyes

MigrationAcknowledgementDto

PropertyTypeRequiredDescription
acknowledgedbooleanyesAlways true — the report was recorded. A failure surfaces as an error envelope, never as false.

MigrationAcknowledgementDtoDataEnvelope

PropertyTypeRequiredDescription
dataMigrationAcknowledgementDtoyes

MigrationConsumerDelegationDto

PropertyTypeRequiredDescription
carrierIdstringyesThe carrier bound to the child delegation: what the consumer mints each delegated context from, and renews on its own tick.
consumerone of "search_api", "memory_api"yes
delegationIdstringyesThe consumer’s child delegation id. Lends model:gateway-session.mint@1 for the org, presentable only by this consumer’s workload.
stateMigrationConsumerStateyesThis consumer’s own progress on the migration. A consumer whose state is completed has finished its part and must not provision it again: provisioning a completed consumer is refused with a 409.

MigrationConsumerDoneDto

PropertyTypeRequiredDescription
consumerone of "search_api", "memory_api"yesWhich consumer has finished its backfill.

MigrationConsumerFailedDto

PropertyTypeRequiredDescription
consumerone of "search_api", "memory_api"yes
reasonstringyesReason the consumer gave up.

MigrationConsumerProgressDto

PropertyTypeRequiredDescription
consumerone of "search_api", "memory_api"yes
failedItemsnumberyes
failureReasonstring or nullno
idstringyes
lastHeartbeatAtstring (date-time) or nullno
lastProcessedIdstring or nullno
processedItemsnumberyes
sourceCursorstring or nullno
stateone of "pending", "provisioning", "dual_writing", "completed", "failed"yes
totalItemsnumberyes

MigrationConsumerState

This consumer’s own progress on the migration. A consumer whose state is completed has finished its part and must not provision it again: provisioning a completed consumer is refused with a 409.

Type: one of "pending", "provisioning", "dual_writing", "completed", "failed"

MigrationHeartbeatDto

PropertyTypeRequiredDescription
consumerone of "search_api", "memory_api"yesWhich consumer is reporting progress.
failedDeltanumbernoNumber of items that failed since the last heartbeat.
lastProcessedIdstringyesLast source row id processed.
processedDeltanumberyesNumber of new items processed since the last heartbeat.

MigrationProvisionDto

PropertyTypeRequiredDescription
consumerone of "search_api", "memory_api"yesWhich consumer is provisioning.
sourceCursorstringyesHigh-water-mark cursor snapshot taken at provision time.
totalItemsnumberyesTotal source items the consumer plans to process.

MigrationTargetDto

PropertyTypeRequiredDescription
consumersarray of MigrationConsumerDelegationDtoyesThe durable CHILD delegation each consumer re-embeds under, lent by the migration’s root delegation (anchored on the migration, originated by the approving admin at migration start). A consumer mints a delegated context per use from ITS OWN entry (a delegation names exactly one presenting workload) with mintDurableDelegatedToken(identity, { delegationId, organizationId, carrierId }), never caches it, and renews that carrier on its own tick (DurableDelegationHolderClient.renewCarrier). Entries with no child yet are omitted. Every entry ends when the migration completes, fails or is rolled back: authorization-api ends the delegations of an anchor that is no longer active.
migrationIdstringyes
toDimensionnumberyes
toModelIdstringyes
toProviderApiTypestringyes
toProviderBaseUrlstringyes
toProviderIdstringyes
toProviderIsSystembooleanyes
toProviderSlugstringyes

ModelCapability

A modality this invocation REQUIRES — the Matrix modelCapability dimension, so one rule can route every vision-needing invocation to a multimodal model without pinning a provider. It is ALSO a requirement on whatever the resolution selects: a resolved model that does not provide it is refused with 422 MODEL_CAPABILITY_UNSUPPORTED rather than returned, and no other model is substituted. Closed kernel set; an unknown value is a 400.

Type: one of "vision", "long_context", "reasoning", "function_calling", "audio", "embedding"

ModelFactConflictDto

PropertyTypeRequiredDescription
factModelFactNameyesA model size fact (ModelResponseDto property name). Here: the capped fact (maxInputTokens or maxOutputTokens) that exceeds its bound.
limitFactModelFactNameyesThe bounding fact (always contextWindow today).
limitSourceModelFactSource or nullyesWhere the bound came from; null = provenance not recorded.
limitValuenumberyesIts effective value.
sourceModelFactSource or nullyesWhere that value came from; null = provenance not recorded.
valuenumberyesIts effective value.

ModelFactName

A model size fact (ModelResponseDto property name). Here: the capped fact (maxInputTokens or maxOutputTokens) that exceeds its bound.

Type: one of "contextWindow", "maxInputTokens", "maxOutputTokens"

ModelFactSource

Where a model size fact came from, highest rank first: operator (a person set it; no provider sync ever overwrites it), provider (provider discovery reported it), curated_catalog (the curated per-provider catalogue). For contextWindow, null = provenance not recorded (a model registered before sources were tracked).

Type: one of "operator", "provider", "curated_catalog"

ModelModality

Closed-enum INPUT modalities the model accepts — a capability fact (see modalitiesSource). Empty when nobody declared any.

Type: one of "text", "image", "pdf", "audio", "video"

ModelMode

Operating mode of the model. Null when no signal resolved one.

Type: one of "chat", "embedding"

ModelPricingTierDto

PropertyTypeRequiredDescription
cacheReadPerMTokennumbernoCache-read price (USD per 1M tokens), when the band declares one.
cacheWritePerMTokennumbernoCache-write price (USD per 1M tokens), when the band declares one.
inputPricePerMTokennumberyesInput price (USD per 1M tokens) within this band.
minInputTokensnumberyesLower input-token bound this band applies from.
outputPricePerMTokennumberyesOutput price (USD per 1M tokens) within this band.

ModelResolutionErrorCode

The code a launch of this agent is refused with — the same value the resolve doors put on the refusal.

Type: one of "MODEL_NOT_CONFIGURED", "MODEL_NOT_SERVED", "MODEL_TARGET_NOT_A_MODEL", "MODEL_PROVIDER_PIN_MISMATCH", "MODEL_FACTS_CONFLICT", "MODEL_CAPABILITY_UNSUPPORTED", "MODEL_RETIRED_NO_SUCCESSOR"

ModelResolutionPreviewOutcome

Type: one of "resolved", "refused"

ModelResolutionPreviewResponseDto

PropertyTypeRequiredDescription
outcomeModelResolutionPreviewOutcomeyes
refusalModelResolutionRefusalDtonoWhy resolution refused. Present exactly when outcome is refused.
resolvedResolvedPhaseConfigDtonoThe resolved model. Present exactly when outcome is resolved.

ModelResolutionPreviewResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataModelResolutionPreviewResponseDtoyes

ModelResolutionRefusalCode

Type: one of "MODEL_NOT_CONFIGURED", "MODEL_NOT_SERVED", "MODEL_RETIRED_NO_SUCCESSOR"

ModelResolutionRefusalDto

PropertyTypeRequiredDescription
codeModelResolutionRefusalCodeyes
messagestringyesWhat is missing and how to fix it.

ModelResolutionRuleResponseDto

PropertyTypeRequiredDescription
createdAtstringyes
createdBystringyes
idstringyes
managedBystring or nullnoResourceManagedBy ownership KIND (ui/iac/seeder/runtime_registered/system). NULL for a plain user/org-admin-authored rule.
managedKeystring or nullnoThe owner's stable natural key. NULL for authored rules; non-null for managed/reconciler rows.
managedOwnerstring or nullnoOwning service identity for a service-actor-upserted rule (derived from the service subject). NULL for authored/reconciler rules.
orgIdstringyes
prioritynumberyes
selectorModelResolutionSelectorResponseDtoyes
strategyIdstring or nullnoThe model strategy that owns this rule; null for an org-level rule.
targetModelIdstringyesRegistry model record id (LlmModel.id) the rule routes to.
targetReasoningEffortstring or nullno
targetTemperaturenumber or nullno
updatedAtstringyes

ModelResolutionRuleResponseDtoDataArrayEnvelope

PropertyTypeRequiredDescription
dataarray of ModelResolutionRuleResponseDtoyes

ModelResolutionRuleResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataModelResolutionRuleResponseDtoyes

ModelResolutionSelectorDto

PropertyTypeRequiredDescription
agentstringnoMatch when the resolving agent slug equals this value.
extramap of stringnoForward-compat bag of additional registry dimensions → required literal. Omit / {} when only structured dimensions are used.
modelCapabilityone of "vision", "long_context", "reasoning", "function_calling", "audio", "embedding"noMatch when the invocation REQUIRES this model capability/modality (the modelCapability dimension — one rule routes e.g. every vision-requiring invocation to a multimodal model without pinning a provider).
modelLanestringnoMatch when the resolving agent's work kind equals this value (the modelLane dimension — one rule routes e.g. every review-kind agent). OPEN vocabulary with no kernel core: every lane is declared by a model-lane contribution, so GET /work-kinds?kind=model-lane enumerates the lanes this organisation may use. Checked against the org's visible set on write.
projectstringnoMatch when the invocation project id equals this value.
purposestringnoMatch when the non-agent invocation purpose equals this value. Used by system flows that route LLM calls outside the agent/skill model (memory summarization, embedding, reorganization). Closed value set is owned per consumer (see MemoryMatrixPurpose in memory-api).
skillstringnoMatch when the active/launched skill slug equals this value.
stagestringnoMatch when the invocation pipeline stage key equals this value.

ModelResolutionSelectorResponseDto

PropertyTypeRequiredDescription
agentstring or nullno
extramap of stringyesAdditional registry dimensions. {} when none.
modelCapabilityone of "vision", "long_context", "reasoning", "function_calling", "audio", "embedding" or nullno
modelLanestring or nullno
projectstring or nullno
purposestring or nullno
skillstring or nullno
stagestring or nullno

ModelResolutionSource

Which resolution path produced this selection.

Type: one of "matrix", "override", "org_default", "unresolved"

ModelResponseDto

PropertyTypeRequiredDescription
audioInputPerSecondnumber or nullnoPer-input-audio-second price (USD per second).
cacheReadPerMTokennumber or nullnoCache-read price (USD per 1M tokens).
cacheWritePerMTokennumber or nullnoCache-write price (USD per 1M tokens).
capabilitiesarray of stringyes
contextWindowobject or nullno
contextWindowSourceModelFactSource or nullyesWhere a model size fact came from, highest rank first: operator (a person set it; no provider sync ever overwrites it), provider (provider discovery reported it), curated_catalog (the curated per-provider catalogue). For contextWindow, null = provenance not recorded (a model registered before sources were tracked).
contextWindowVerifiedAtstring (date-time) or nullyesWhen the source of contextWindow last asserted this value (ISO 8601). Null exactly when its source is null.
createdAtstringyes
deprecatedbooleanyesModel has rolled out of the current window.
deprecationDatestring or nullnoThe operator-set retirement instant (ISO 8601); null when the model is not retired. From it on, resolutions that pick this model serve successorModelId instead, or refuse with MODEL_RETIRED_NO_SUCCESSOR when there is none. No catalogue sync writes it.
displayNamestringyes
embeddingDimensionnumber or nullnoEmbedding output vector dimension (only for embedding models).
factConflictsarray of ModelFactConflictDtoyesEvery violated size-fact bound, with both sides' sources. Empty when consistent.
factsConsistentbooleanyesFalse when the effective size facts conflict (see factConflicts). An inconsistent model is refused for selection and use with MODEL_FACTS_CONFLICT until an admin changes or clears the overriding value.
idstringyes
imageInputPerUnitnumber or nullnoPer-input-image price (USD per unit).
inputPricePerMTokennumber or nullnoInput price (USD per 1M tokens).
isActivebooleanyes
maxInputTokensnumber or nullyesMax prompt (input) tokens, when the service caps input below the context window. Null when no source declares a cap (only the context window applies).
maxInputTokensSourceModelFactSource or nullyesWhere a model size fact came from, highest rank first: operator (a person set it; no provider sync ever overwrites it), provider (provider discovery reported it), curated_catalog (the curated per-provider catalogue). For maxInputTokens, null = the fact is unknown.
maxInputTokensVerifiedAtstring (date-time) or nullyesWhen the source of maxInputTokens last asserted this value (ISO 8601). Null exactly when its source is null.
maxOutputTokensnumber or nullnoMax generation/output tokens. Bounded by contextWindow, which is the TOTAL budget (prompt + reasoning + answer). Null when no authoritative source declares one.
maxOutputTokensSourceModelFactSource or nullyesWhere a model size fact came from, highest rank first: operator (a person set it; no provider sync ever overwrites it), provider (provider discovery reported it), curated_catalog (the curated per-provider catalogue). For maxOutputTokens, null with a null value = the fact is unknown; null beside a value = provenance not recorded (a model registered before sources were tracked).
maxOutputTokensVerifiedAtstring (date-time) or nullyesWhen the source of maxOutputTokens last asserted this value (ISO 8601). Null exactly when its source is null.
modalitiesarray of ModelModalityyesClosed-enum INPUT modalities the model accepts — a capability fact (see modalitiesSource). Empty when nobody declared any.
modalitiesSourceModelFactSource or nullyesWhere the modalities capability fact came from, highest rank first: operator (no sync overwrites it), provider (the provider declared it), curated_catalog. an empty set with a null source = the fact is unknown (nobody declared it); a non-default value with a null source = provenance not recorded.
modalitiesVerifiedAtstring (date-time) or nullyesWhen the source of modalities last asserted it (ISO 8601). Null exactly when its source is null.
modeModelMode or nullnoOperating mode of the model. Null when no signal resolved one.
modelIdstringyes
outputPricePerMTokennumber or nullnoOutput price (USD per 1M tokens).
priceCurrencystring or nullnoCurrency of the price columns ('USD' when any price is present, null otherwise).
providerIdstringyes
successorModelIdstring or nullnoThe model record id resolutions serve instead of this one from deprecationDate; null when none.
supportsAudioInputbooleanyesModel accepts audio inputs.
supportsAudioInputSourceModelFactSource or nullyesWhere the supportsAudioInput capability fact came from, highest rank first: operator (no sync overwrites it), provider (the provider declared it), curated_catalog. false with a null source = the fact is unknown (nobody declared it); a non-default value with a null source = provenance not recorded.
supportsAudioInputVerifiedAtstring (date-time) or nullyesWhen the source of supportsAudioInput last asserted it (ISO 8601). Null exactly when its source is null.
supportsJsonModebooleanyesModel supports structured JSON output mode.
supportsJsonModeSourceModelFactSource or nullyesWhere the supportsJsonMode capability fact came from, highest rank first: operator (no sync overwrites it), provider (the provider declared it), curated_catalog. false with a null source = the fact is unknown (nobody declared it); a non-default value with a null source = provenance not recorded.
supportsJsonModeVerifiedAtstring (date-time) or nullyesWhen the source of supportsJsonMode last asserted it (ISO 8601). Null exactly when its source is null.
supportsPdfInputbooleanyesModel accepts PDF inputs.
supportsPdfInputSourceModelFactSource or nullyesWhere the supportsPdfInput capability fact came from, highest rank first: operator (no sync overwrites it), provider (the provider declared it), curated_catalog. false with a null source = the fact is unknown (nobody declared it); a non-default value with a null source = provenance not recorded.
supportsPdfInputVerifiedAtstring (date-time) or nullyesWhen the source of supportsPdfInput last asserted it (ISO 8601). Null exactly when its source is null.
supportsPromptCachingbooleanyesModel supports prompt caching.
supportsPromptCachingSourceModelFactSource or nullyesWhere the supportsPromptCaching capability fact came from, highest rank first: operator (no sync overwrites it), provider (the provider declared it), curated_catalog. false with a null source = the fact is unknown (nobody declared it); a non-default value with a null source = provenance not recorded.
supportsPromptCachingVerifiedAtstring (date-time) or nullyesWhen the source of supportsPromptCaching last asserted it (ISO 8601). Null exactly when its source is null.
supportsReasoningbooleanyesModel performs explicit reasoning.
supportsReasoningSourceModelFactSource or nullyesWhere the supportsReasoning capability fact came from, highest rank first: operator (no sync overwrites it), provider (the provider declared it), curated_catalog. false with a null source = the fact is unknown (nobody declared it); a non-default value with a null source = provenance not recorded.
supportsReasoningVerifiedAtstring (date-time) or nullyesWhen the source of supportsReasoning last asserted it (ISO 8601). Null exactly when its source is null.
supportsToolsbooleanyesModel exposes function/tool calling.
supportsToolsSourceModelFactSource or nullyesWhere the supportsTools capability fact came from, highest rank first: operator (no sync overwrites it), provider (the provider declared it), curated_catalog. false with a null source = the fact is unknown (nobody declared it); a non-default value with a null source = provenance not recorded.
supportsToolsVerifiedAtstring (date-time) or nullyesWhen the source of supportsTools last asserted it (ISO 8601). Null exactly when its source is null.
supportsVisionbooleanyesModel accepts image inputs.
supportsVisionSourceModelFactSource or nullyesWhere the supportsVision capability fact came from, highest rank first: operator (no sync overwrites it), provider (the provider declared it), curated_catalog. false with a null source = the fact is unknown (nobody declared it); a non-default value with a null source = provenance not recorded.
supportsVisionVerifiedAtstring (date-time) or nullyesWhen the source of supportsVision last asserted it (ISO 8601). Null exactly when its source is null.
supportsWebSearchbooleanyesModel supports built-in web search.
supportsWebSearchSourceModelFactSource or nullyesWhere the supportsWebSearch capability fact came from, highest rank first: operator (no sync overwrites it), provider (the provider declared it), curated_catalog. false with a null source = the fact is unknown (nobody declared it); a non-default value with a null source = provenance not recorded.
supportsWebSearchVerifiedAtstring (date-time) or nullyesWhen the source of supportsWebSearch last asserted it (ISO 8601). Null exactly when its source is null.
tieredPricingarray of ModelPricingTierDto or nullnoContext-tier pricing overlay sorted ascending by minInputTokens. Null when no tier is published.

ModelResponseDtoDataArrayEnvelope

PropertyTypeRequiredDescription
dataarray of ModelResponseDtoyes

ModelResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataModelResponseDtoyes

ModelRetirementSubstitutionDto

PropertyTypeRequiredDescription
reasonModelSubstitutionReasonyesWhy the pick was substituted.
retiredModelRetirementModelRefDtoyesThe model the rule, default or override picked; retired at resolution time.
successorAppliedRetirementModelRefDtoyesThe first non-retired successor, which the resolution serves.

ModelStatusDto

PropertyTypeRequiredDescription
deprecatedbooleanyesWhether the model is deprecated
existsbooleanyesWhether the model exists in the catalog
familystringnoModel family
latestInFamilystringnoLatest model in the family
providerstringnoProvider slug

ModelStatusDtoDataEnvelope

PropertyTypeRequiredDescription
dataModelStatusDtoyes

ModelStrategyResponseDto

PropertyTypeRequiredDescription
createdAtstringyes
createdBystringyes
descriptionstring or nullno
displayNamestringyes
idstringyes
orgIdstringyes
rulesarray of ModelResolutionRuleResponseDtonoThe strategy's rules: a strategy holds only rules, and they apply to the projects it is bound to.
slugstringyes
sourceModelStrategySourceyesWho authored this strategy. Always org today: the platform predefines no strategy, and no contribution kind lets a biome contribute one. A biome-contributed strategy would add a biome member (with its biomeId) when that contribution path exists.
updatedAtstringyes
versionnumberyesThe rule set's concurrency counter. Send it back as expectedVersion when replacing the whole rule set. Moves on every write that changes the rules — including a per-lane write — and not on an unrelated metadata edit.

ModelStrategyResponseDtoDataArrayEnvelope

PropertyTypeRequiredDescription
dataarray of ModelStrategyResponseDtoyes

ModelStrategyResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataModelStrategyResponseDtoyes

ModelStrategySource

Who authored this strategy. Always org today: the platform predefines no strategy, and no contribution kind lets a biome contribute one. A biome-contributed strategy would add a biome member (with its biomeId) when that contribution path exists.

Type: one of "org"

ModelSubstitutionReason

Why the pick was substituted.

Type: one of "model-retired"

ModelVocabularyKeyDto

PropertyTypeRequiredDescription
declaringBiomeIdsarray of stringyesThe biome(s) that declare this key, among the declarations visible to the caller — sorted, de-duplicated, and EVERY declarer rather than one: two biomes may declare the same key, and both are reported. Empty for a key no biome declared. PROVENANCE, NOT IDENTITY: the key alone is the stable identifier, and this list moves when a biome is renamed or replaced — group or explain by it, never key a binding on it.
descriptionstringyesWhat work this key names, in the reader's words.
keystringyesThe routing key. Lower-kebab and NOT namespaced by the declaring biome: a key that encoded it would move when that biome is renamed or replaced, silently invalidating every rule and strategy entry that names it.
kindModelVocabularyKindyesWhich Matrix dimension this key may select, and which contribution kind declared it. model-lane — work an agent does, selecting modelLane. model-purpose — a use the platform or a biome makes of a model on nobody's behalf, selecting purpose.
titlestringyes

ModelVocabularyKind

Which Matrix dimension this key may select, and which contribution kind declared it. model-lane — work an agent does, selecting modelLane. model-purpose — a use the platform or a biome makes of a model on nobody's behalf, selecting purpose.

Type: one of "model-lane", "model-purpose"

ModelVocabularyListDto

PropertyTypeRequiredDescription
keysarray of ModelVocabularyKeyDtoyes

ModelVocabularyListDtoDataEnvelope

PropertyTypeRequiredDescription
dataModelVocabularyListDtoyes

MountEntryDto

PropertyTypeRequiredDescription
modeone of "read-only", "read-write"yes
mountstringyes
sourcestringnoSource URI the activity resolves at mount time. Schemes: artifact-store://, deliverable-spec://, scm://, literal://. Omitted when the renderer only needs (mount, mode) (e.g. compose-time mount-plan summarization).

MoveRevisionPinsDto

PropertyTypeRequiredDescription
fromRevisionIdstringyesThe revision pins are currently held on.
toRevisionIdstringyesThe revision movable pins should point at.

OrgModelDefaultResponseDto

PropertyTypeRequiredDescription
configuredbooleanyesTrue when the organisation has set a default model.
modelIdstringnoThe registry model record id; present only when configured.
setByActorIdstringnoThe actor who last set the default; present only when configured.
updatedAtstringnoWhen the default was last set (ISO 8601); present only when configured.

OrgModelDefaultResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataOrgModelDefaultResponseDtoyes

OutputSurfaceKind

Type: one of "none", "web", "static", "app", "tunnel"

PaginationMeta

PropertyTypeRequiredDescription
hasMorebooleanno
limitnumberno
nextCursorstring or nullno
pagenumberno
previousCursorstring or nullno
totalnumberno
totalPagesnumberno

PreviewModelResolutionDto

PropertyTypeRequiredDescription
modelLanestringyesThe model lane to resolve — the Matrix modelLane dimension. Must be a declared lane.
spacestringyesThe Space to resolve in: xema://orgs/<id> or xema://orgs/<id>/projects/<id>. It must name the organisation the caller is an admin of; it selects a Space inside it and never widens it.

ProbeProviderDto

PropertyTypeRequiredDescription
apiKeystringnoThe key to probe with. Required unless authType is none.
apiTypeone of "openai-compatible", "anthropic", "google"yes
authTypeone of "bearer", "api-key-header", "none"noOmitted = bearer. none probes a keyless endpoint (openai-compatible only): apiKey must then be absent and no credential header is sent.
baseUrlstringyes

ProbedModelDto

PropertyTypeRequiredDescription
contextWindownumbernoTOTAL context window (prompt + answer) resolved from the provider /models response or gateway metadata — never an input cap. Absent when no authoritative total was found.
displayNamestringnoHuman-readable model name, when the provider reports one.
idstringyesModel ID as reported by the provider /models endpoint.

ProblemActionableBy

Who can act on this refusal: user (correct the input, sign in), org-admin (an administrator of the organisation), platform (the operators of this installation), none (nobody — it cannot succeed). ABSENT when not known; never guessed.

Type: one of "user", "org-admin", "platform", "none"

ProblemDetailsDto

RFC 9457 problem document. The declared members are the reserved core; extension members are TOP-LEVEL and OPEN, owned by the refusing plane.

PropertyTypeRequiredDescription
actionableByProblemActionableBynoWho can act on this refusal: user (correct the input, sign in), org-admin (an administrator of the organisation), platform (the operators of this installation), none (nobody — it cannot succeed). ABSENT when not known; never guessed.
codestringyesSCREAMING_SNAKE_CASE. The machine-branchable refusal, and the value a policy rule, a retry predicate and a UI branch all name.
detailstringnoHuman-readable and specific to THIS occurrence.
errorsarray of ProblemFieldIssueDtonoField-level issues, when the refusal is about the request body.
instancestringnoURI reference identifying the occurrence — a request path, a run, a row.
paramsmap of string or number or booleannoSafe i18n interpolation values for the message keyed by code — typed and allowlisted per code by its declaration. Never server-authored copy, never internal diagnostics.
retryProblemRetrynoWhat a retry can achieve: transient (later, unchanged), after-change (only after someone changes something), never (a defect until a fixed version ships). ABSENT when not known.
statusnumberyesThe HTTP status code, repeated in the body so a logged document is self-contained.
titlestringyesShort, human-readable, and STABLE for a given type. Never per-occurrence — that is detail.
traceIdstringnoW3C trace-context trace-id, present when the caller sent a traceparent. Omitted rather than invented when it did not.
typestringyesAbsolute URI identifying the refusal TYPE. Derived one-to-one from code, so a caller may branch on either and can never be told two different things. Never about:blank.

ProblemFieldIssueDto

PropertyTypeRequiredDescription
codestringnoSCREAMING_SNAKE_CASE code of THIS issue, for a frontend i18n key. Present when the issue was minted by a declared problem.
detailstringyesProse for logs and developers. A frontend localises from code + params instead.
paramsmap of string or number or booleannoSafe i18n interpolation values for this issue's code.
pointerstringyesRFC 6901 JSON Pointer into the request body. Root is "/".

ProblemRetry

What a retry can achieve: transient (later, unchanged), after-change (only after someone changes something), never (a defect until a fixed version ships). ABSENT when not known.

Type: one of "transient", "after-change", "never"

ProjectAgentOverrideResponseDto

PropertyTypeRequiredDescription
agentContentHashstringyesSHA-256 of the pinned AgentRevision content.
agentRevisionIdstringyesImmutable AgentRevision id pinned by this override.
createdAtstring (date-time)yes
createdBystringyes
idstringyes
isActivebooleanyes
mcpServicesAddarray of stringyes
mcpServicesRemovearray of stringyes
orgIdstringyes
projectIdstringyes
systemPromptAppendobject or nullno
temperatureobject or nullno
updatedAtstring (date-time)yes

ProjectAgentOverrideResponseDtoDataArrayEnvelope

PropertyTypeRequiredDescription
dataarray of ProjectAgentOverrideResponseDtoyes

ProjectAgentOverrideResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataProjectAgentOverrideResponseDtoyes

ProjectKitAuthDto

PropertyTypeRequiredDescription
tokenEnvVarstringyesEnv-var key, within the resolved wallet, holding the token.
walletNamestringyesWallet name that holds the auth token.

ProjectKitDefinitionDto

PropertyTypeRequiredDescription
compatibleTargetsarray of stringyesTech-stack tags the kit is valid for.
defaultForTargetsarray of stringyesTech-stack tags for which the kit is pre-selected on a new project.
descriptionstringnoOne-line kit summary.
displayNamestringyesHuman-readable kit name.
enrichmentSkillSlugstringnoSkill slug mounted so the agent knows how to use the kit.
kitKindProjectKitKindyesHow the kit is installed into the project.
purposeProjectKitPurposeyesWhat the kit is, from the code-producing agent’s point of view.
slugstringyesKebab-case unique kit slug.
sourceProjectKitSourceDtoyes
visibilityTierRegistryVisibilityTiernoVisibility tier of this kit in the registry.

ProjectKitDefinitionDtoDataEnvelope

PropertyTypeRequiredDescription
dataProjectKitDefinitionDtoyes

ProjectKitDefinitionDtoPaginatedEnvelope

PropertyTypeRequiredDescription
dataarray of ProjectKitDefinitionDtoyes
paginationPaginationMetayes

ProjectKitKind

How the kit is installed into the project.

Type: one of "npm-dependency", "shadcn-registry"

ProjectKitPurpose

What the kit is, from the code-producing agent’s point of view.

Type: one of "component-library", "generic-dependency"

ProjectKitSourceDto

PropertyTypeRequiredDescription
authProjectKitAuthDtonoWallet-backed auth for a private registry/git source.
baseColorstringnoshadcn-registry source: base color palette.
componentsarray of stringnoshadcn-registry source: component names to install (e.g. ["button", "card"]).
gitUrlstringnogit source: HTTPS git URL.
iconLibrarystringnoshadcn-registry source: icon library (lucide | radix).
kindProjectKitSourceKindyesSource discriminator.
packagestringnonpm-registry source: package name.
packageNamestringnogit source: npm package name the repository publishes.
refstringnogit source: tag / branch / commit.
registryUrlstringnonpm-registry source: custom registry URL (scoped/private).
rscbooleannoshadcn-registry source: enable React Server Components.
scopestringnonpm-registry source: npm scope the registry serves.
stylestringnoshadcn-registry source: style preset.
typescriptbooleannoshadcn-registry source: use TypeScript.
versionRangestringnonpm-registry source: semver range.

ProjectKitSourceKind

Source discriminator.

Type: one of "npm-registry", "git", "shadcn-registry"

ProjectModelStrategyBindingResponseDto

PropertyTypeRequiredDescription
createdAtstringyes
idstringyes
orgIdstringyes
projectIdstringyes
strategyModelStrategyResponseDtono
strategyIdstringyes
updatedAtstringyes

ProjectModelStrategyBindingResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataProjectModelStrategyBindingResponseDtoyes

ProviderDeletionAffectedStrategyDto

PropertyTypeRequiredDescription
namestringyes
strategyIdstringyes

ProviderDeletionImpactResponseDto

PropertyTypeRequiredDescription
affectedOrgDefaultCountnumberyesOrg default models (0 or 1) pointing at a removed model. Confirming the delete unsets it.
affectedProjectIdsarray of stringyesProjects bound to an affected strategy. Deduplicated: a project bound to two affected strategies appears once.
affectedRuleCountnumberyesEvery resolution RULE referencing a removed model, strategy rules and org-level rules alike. Confirming the delete removes them.
affectedStrategiesarray of ProviderDeletionAffectedStrategyDtoyes
canDeletebooleanyesWhether the delete is permitted at all. False for system providers.
isSystembooleanyesSystem providers are platform-managed and cannot be deleted; this is what canDelete reflects.
modelCountnumberyesModels removed along with the provider.
providerIdstringyes
providerNamestringyes

ProviderDeletionImpactResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataProviderDeletionImpactResponseDtoyes

ProviderEgressUnavailableCode

PROVIDER_EGRESS_POLICY_UNAVAILABLE: the installation destination policy could not be read; nothing was sent.

Type: one of "PROVIDER_EGRESS_POLICY_UNAVAILABLE"

ProviderEgressUnavailableProblemDto

RFC 9457 problem document of an unreadable egress destination policy. code is closed.

PropertyTypeRequiredDescription
actionableByProblemActionableBynoWho can act on this refusal: user (correct the input, sign in), org-admin (an administrator of the organisation), platform (the operators of this installation), none (nobody — it cannot succeed). ABSENT when not known; never guessed.
codeProviderEgressUnavailableCodeyesPROVIDER_EGRESS_POLICY_UNAVAILABLE: the installation destination policy could not be read; nothing was sent.
detailstringnoHuman-readable and specific to THIS occurrence.
errorsarray of ProblemFieldIssueDtonoField-level issues, when the refusal is about the request body.
instancestringnoURI reference identifying the occurrence — a request path, a run, a row.
paramsmap of string or number or booleannoSafe i18n interpolation values for the message keyed by code — typed and allowlisted per code by its declaration. Never server-authored copy, never internal diagnostics.
retryProblemRetrynoWhat a retry can achieve: transient (later, unchanged), after-change (only after someone changes something), never (a defect until a fixed version ships). ABSENT when not known.
statusnumberyesThe HTTP status code, repeated in the body so a logged document is self-contained.
titlestringyesShort, human-readable, and STABLE for a given type. Never per-occurrence — that is detail.
traceIdstringnoW3C trace-context trace-id, present when the caller sent a traceparent. Omitted rather than invented when it did not.
typestringyesAbsolute URI identifying the refusal TYPE. Derived one-to-one from code, so a caller may branch on either and can never be told two different things. Never about:blank.

ProviderFetchBodyRefusedCode

PROVIDER_BASE_URL_NOT_ADMITTED: the provider baseUrl is outside the destinations the installation admits. PROVIDER_BASE_URL_REDIRECTED: the provider baseUrl answered with a redirect, which is never followed. REQUEST_VALIDATION_FAILED: the request body failed validation.

Type: one of "PROVIDER_BASE_URL_NOT_ADMITTED", "PROVIDER_BASE_URL_REDIRECTED", "REQUEST_VALIDATION_FAILED"

ProviderFetchBodyRefusedProblemDto

RFC 9457 problem document of a 422 from a provider probe. code is closed.

PropertyTypeRequiredDescription
actionableByProblemActionableBynoWho can act on this refusal: user (correct the input, sign in), org-admin (an administrator of the organisation), platform (the operators of this installation), none (nobody — it cannot succeed). ABSENT when not known; never guessed.
codeProviderFetchBodyRefusedCodeyesPROVIDER_BASE_URL_NOT_ADMITTED: the provider baseUrl is outside the destinations the installation admits. PROVIDER_BASE_URL_REDIRECTED: the provider baseUrl answered with a redirect, which is never followed. REQUEST_VALIDATION_FAILED: the request body failed validation.
detailstringnoHuman-readable and specific to THIS occurrence.
errorsarray of ProblemFieldIssueDtonoField-level issues, when the refusal is about the request body.
instancestringnoURI reference identifying the occurrence — a request path, a run, a row.
paramsmap of string or number or booleannoSafe i18n interpolation values for the message keyed by code — typed and allowlisted per code by its declaration. Never server-authored copy, never internal diagnostics.
retryProblemRetrynoWhat a retry can achieve: transient (later, unchanged), after-change (only after someone changes something), never (a defect until a fixed version ships). ABSENT when not known.
statusnumberyesThe HTTP status code, repeated in the body so a logged document is self-contained.
titlestringyesShort, human-readable, and STABLE for a given type. Never per-occurrence — that is detail.
traceIdstringnoW3C trace-context trace-id, present when the caller sent a traceparent. Omitted rather than invented when it did not.
typestringyesAbsolute URI identifying the refusal TYPE. Derived one-to-one from code, so a caller may branch on either and can never be told two different things. Never about:blank.

ProviderFetchRefusedCode

PROVIDER_BASE_URL_NOT_ADMITTED: the provider baseUrl is outside the destinations the installation admits. PROVIDER_BASE_URL_REDIRECTED: the provider baseUrl answered with a redirect, which is never followed.

Type: one of "PROVIDER_BASE_URL_NOT_ADMITTED", "PROVIDER_BASE_URL_REDIRECTED"

ProviderFetchRefusedProblemDto

RFC 9457 problem document of a provider baseUrl egress refusal. code is closed.

PropertyTypeRequiredDescription
actionableByProblemActionableBynoWho can act on this refusal: user (correct the input, sign in), org-admin (an administrator of the organisation), platform (the operators of this installation), none (nobody — it cannot succeed). ABSENT when not known; never guessed.
codeProviderFetchRefusedCodeyesPROVIDER_BASE_URL_NOT_ADMITTED: the provider baseUrl is outside the destinations the installation admits. PROVIDER_BASE_URL_REDIRECTED: the provider baseUrl answered with a redirect, which is never followed.
detailstringnoHuman-readable and specific to THIS occurrence.
errorsarray of ProblemFieldIssueDtonoField-level issues, when the refusal is about the request body.
instancestringnoURI reference identifying the occurrence — a request path, a run, a row.
paramsmap of string or number or booleannoSafe i18n interpolation values for the message keyed by code — typed and allowlisted per code by its declaration. Never server-authored copy, never internal diagnostics.
retryProblemRetrynoWhat a retry can achieve: transient (later, unchanged), after-change (only after someone changes something), never (a defect until a fixed version ships). ABSENT when not known.
statusnumberyesThe HTTP status code, repeated in the body so a logged document is self-contained.
titlestringyesShort, human-readable, and STABLE for a given type. Never per-occurrence — that is detail.
traceIdstringnoW3C trace-context trace-id, present when the caller sent a traceparent. Omitted rather than invented when it did not.
typestringyesAbsolute URI identifying the refusal TYPE. Derived one-to-one from code, so a caller may branch on either and can never be told two different things. Never about:blank.

ProviderOwnerSpaceKind

Owner tier: system (platform-owned) or org.

Type: one of "system", "org"

ProviderProbeResponseDto

PropertyTypeRequiredDescription
modelsarray of ProbedModelDtoyesModels discovered at the probed endpoint (server-side, before the provider is saved).

ProviderProbeResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataProviderProbeResponseDtoyes

ProviderResponseDto

PropertyTypeRequiredDescription
apiTypeone of "openai-compatible", "anthropic", "google"yes
authTypeone of "bearer", "api-key-header", "none"yes
baseUrlstringyes
createdAtstringyes
createdBystringyes
idstringyes
isActivebooleanyes
isSystembooleanyes
maxConcurrentRequestsnumber or nullnoMaximum concurrent requests allowed for this provider. Null = unlimited.
modelsarray of ModelResponseDtoyes
namestringyes
orgIdstring or nullyesThe owning organisation, or null for a PLATFORM-owned provider (ownerSpaceKind = system).
ownerSpaceKindProviderOwnerSpaceKindyesOwner tier: system (platform-owned) or org.
slugstringyes

ProviderResponseDtoDataArrayEnvelope

PropertyTypeRequiredDescription
dataarray of ProviderResponseDtoyes

ProviderResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataProviderResponseDtoyes

ProviderTestResponseDto

PropertyTypeRequiredDescription
modelCountnumberyesNumber of models returned by provider /models endpoint.

ProviderTestResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataProviderTestResponseDtoyes

ProviderWriteRefusedCode

PROVIDER_BASE_URL_NOT_ADMITTED: the provider baseUrl is outside the destinations the installation admits. REQUEST_VALIDATION_FAILED: the request body failed validation.

Type: one of "PROVIDER_BASE_URL_NOT_ADMITTED", "REQUEST_VALIDATION_FAILED"

ProviderWriteRefusedProblemDto

RFC 9457 problem document of a 422 from a provider write. code is closed.

PropertyTypeRequiredDescription
actionableByProblemActionableBynoWho can act on this refusal: user (correct the input, sign in), org-admin (an administrator of the organisation), platform (the operators of this installation), none (nobody — it cannot succeed). ABSENT when not known; never guessed.
codeProviderWriteRefusedCodeyesPROVIDER_BASE_URL_NOT_ADMITTED: the provider baseUrl is outside the destinations the installation admits. REQUEST_VALIDATION_FAILED: the request body failed validation.
detailstringnoHuman-readable and specific to THIS occurrence.
errorsarray of ProblemFieldIssueDtonoField-level issues, when the refusal is about the request body.
instancestringnoURI reference identifying the occurrence — a request path, a run, a row.
paramsmap of string or number or booleannoSafe i18n interpolation values for the message keyed by code — typed and allowlisted per code by its declaration. Never server-authored copy, never internal diagnostics.
retryProblemRetrynoWhat a retry can achieve: transient (later, unchanged), after-change (only after someone changes something), never (a defect until a fixed version ships). ABSENT when not known.
statusnumberyesThe HTTP status code, repeated in the body so a logged document is self-contained.
titlestringyesShort, human-readable, and STABLE for a given type. Never per-occurrence — that is detail.
traceIdstringnoW3C trace-context trace-id, present when the caller sent a traceparent. Omitted rather than invented when it did not.
typestringyesAbsolute URI identifying the refusal TYPE. Derived one-to-one from code, so a caller may branch on either and can never be told two different things. Never about:blank.

ProviderWriteUnavailableCode

PROVIDER_EGRESS_POLICY_UNAVAILABLE: the installation destination policy could not be read; nothing was sent. PROVIDER_TIER_POLICY_UNAVAILABLE: the organization credential policy could not be read.

Type: one of "PROVIDER_EGRESS_POLICY_UNAVAILABLE", "PROVIDER_TIER_POLICY_UNAVAILABLE"

ProviderWriteUnavailableProblemDto

RFC 9457 problem document of an unreadable policy on a provider write. code is closed.

PropertyTypeRequiredDescription
actionableByProblemActionableBynoWho can act on this refusal: user (correct the input, sign in), org-admin (an administrator of the organisation), platform (the operators of this installation), none (nobody — it cannot succeed). ABSENT when not known; never guessed.
codeProviderWriteUnavailableCodeyesPROVIDER_EGRESS_POLICY_UNAVAILABLE: the installation destination policy could not be read; nothing was sent. PROVIDER_TIER_POLICY_UNAVAILABLE: the organization credential policy could not be read.
detailstringnoHuman-readable and specific to THIS occurrence.
errorsarray of ProblemFieldIssueDtonoField-level issues, when the refusal is about the request body.
instancestringnoURI reference identifying the occurrence — a request path, a run, a row.
paramsmap of string or number or booleannoSafe i18n interpolation values for the message keyed by code — typed and allowlisted per code by its declaration. Never server-authored copy, never internal diagnostics.
retryProblemRetrynoWhat a retry can achieve: transient (later, unchanged), after-change (only after someone changes something), never (a defect until a fixed version ships). ABSENT when not known.
statusnumberyesThe HTTP status code, repeated in the body so a logged document is self-contained.
titlestringyesShort, human-readable, and STABLE for a given type. Never per-occurrence — that is detail.
traceIdstringnoW3C trace-context trace-id, present when the caller sent a traceparent. Omitted rather than invented when it did not.
typestringyesAbsolute URI identifying the refusal TYPE. Derived one-to-one from code, so a caller may branch on either and can never be told two different things. Never about:blank.

PublishAgentRevisionDto

PropertyTypeRequiredDescription
expectedDraftUpdatedAtstringyesCurrent draft concurrency token. Publication fails if another author changed the draft.
idempotencyKeystringyesCaller-stable key for retry-safe publication of this exact draft.
releaseNotesstringno
sourceCommitstringnoOptional source commit retained as provenance only.
sourceVersionstringnoOptional source-system version retained as provenance only.

RegistryVisibilityTier

Visibility tier of this kit in the registry.

Type: one of "system", "system-shareable", "org", "external"

RenderAgentRunContextRequestDto

PropertyTypeRequiredDescription
agentSlugstringyes
changeUnitIdstring or nullno
correlationIdstring or nullno
deliverableSpecRefstring or nullno
hasRetryContextbooleannoWhen true, the renderer seeds retry-oriented context pointers so the session knows /workspace/deliverables/pages/ is pre-populated.
inputArtifactsarray of InputArtifactEntryDtonoFiles materialised into the workspace from upstream artifact-store versions. Surfaced in AGENTS.md # Inputs so the agent can read them directly without first ls'ing the slot.
jobRunIdstring or nullno
mountsarray of MountEntryDtono
priorAttemptRefstring or nullno
projectIdstringyes
rolestringyesThe role this invocation takes: the key of a role-capability profile some installed biome contributes. An OPEN vocabulary (contracts 0.46 deleted the closed AGENT_RUN_ROLES list), so the DTO validates the GRAMMAR only — the same RESOURCE_ROLE_PATTERN the kernel's AgentRunRoleSchema uses. A well-formed role no visible biome declares is refused by RoleCapabilityRegistryService.getByRole, which names the declared roles.
sessionIdstring or nullnoInteractive-surface analogue of workflowRunId. Set by workspace-proxy when composing mount sources for an interactive session (chat / brainstorming) so contextJson.invocation.sessionId is populated instead of runId. Pipeline flows leave this null.
workflowInputsobjectnoWorkflow job inputs (passed through from the DSL with: block).
workflowRunIdstring or nullno
workingFilesarray of WorkingFileEntryDtonoWorking files the platform materialises before the agent's first turn. Each entry's absolute path is added to authority.mayWriteWorkspace so the agent may write to it; the full structured list is emitted on context.json.workingFiles for agent introspection.

RenderAgentRunContextResponseDto

PropertyTypeRequiredDescription
agentsMdstringyesFull markdown body of Xema's AGENTS.md, written verbatim to the runtime-config mount (/run/xema-runtime-config/AGENTS.md), never to /workspace.
appliedOverlaysarray of stringyes
contextJsonobjectyesParsed /workspace/context.json payload. Serialized to JSON at write time.
mountPlanRenderedMountPlanDtoyes
renderedContextHashstringyes
resolvedAgentSnapshotHashstringyes
systemOverlaystringyesMarkdown body written verbatim to the runtime-config mount (/run/xema-runtime-config/system-overlay.md), never to /workspace. The runtime bridge plugin appends it to the LLM system prompt so the agent sees the AWP base layer + deliverable contract + authority + retry context as platform-level context, not project-level prose.
toolAllowlistarray of stringyes

RenderAgentRunContextResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataRenderAgentRunContextResponseDtoyes

RenderedMountPlanDto

PropertyTypeRequiredDescription
entriesarray of MountEntryDtoyes

RescopeDto

PropertyTypeRequiredDescription
targetProjectIdstringnoProject that becomes the new owner. Required when targetScope = project; rejected for any other target.
targetScopeScopeSourceyesTarget owner tier. Must be a legal promotion from the row's current tier (user → project|org, project → org). Demotion and moves into/out of biome/system are rejected with 400.

ResolveFullResponseDto

PropertyTypeRequiredDescription
descriptionstring or nullnoAgent description.
displayNamestringyesAgent display name.
executionModeAgentExecutionModeyesExecution mode (primary, subagent).
hasProjectOverridebooleanyesWhether a project-level override was applied.
identityVersionnumberyesDefinition identity version.
intrinsicSubAgentPinsmap of stringyesDefinition PIN per intrinsic sub-agent slug: the content address of the agent definition that slug resolves to in this org/project scope, folded over its extends chain — the same value the resolver stamps as AgentNodeDto.agentContentHash. It reaches the warm-pool static template fingerprint, so editing an intrinsic delegate's prompt retires the pods primed against the previous one instead of serving it silently for the whole idle TTL. A slug with no active definition in scope is ABSENT from the map rather than carrying a substituted value: absent is the pre-pin identity, and an invented one would name a definition that does not exist.
intrinsicSubAgentsarray of stringyesSub-agent slugs the primary may delegate to (parsed from its source manifest's permission.task map). These are intrinsic to the agent's design and form the FLOOR of the runtime sub-agent set — workspace/session/step bindings layer on top but never remove from this list.
intrinsicToolsarray of stringyesBuilt-in OpenCode tool keys the agent may invoke directly (parsed from its source manifest's permission.<toolKey> map, excluding task). Tools like edit / write / read / bash / glob / grep / webfetch / question. Separate from toolProfiles which carries the MCP-served catalog bindings.
mcpServicesarray of stringyesEffective MCP service keys after project override merge.
modelResolvedModelStubDtoyesResolved LLM model.
modelLanestring or nullyesThe model LANE this agent routes on; null when the agent names none. An OPEN vocabulary: every key is declared by a model-lane contribution, so there is no closed set to publish here. GET /work-kinds?kind=model-lane enumerates what this organisation may use. Distinct from AgentRunRole (permissions).
modelSelectionResolvedModelSelectionDtoyesFull LLM routing record (modelId + providerSlug + opencodeProviderId + temperature + contextWindow). Carries the same data as model plus the worker-side opencodeProviderId. Decoupled from structuralConfigHash on purpose.
resolvedConfigHashstringyesSHA-256 hash of the canonical resolved config. Stable identity fingerprint of the full agent payload at resolve time — used by snapshot integrity checks, mcp-gateway attribution, and agent-run-context render audit. agent-session resume does NOT gate on this (resume is best-effort with a field-level drift report on the SessionResumed event); workflow runs are deterministic and rely on the snapshot identity differently.
skillsarray of ResolvedSkillEntryDtoyesSkills resolved (system-wide + base + pinned).
slugstringyesAgent definition slug.
snapshotIdstring or nullnoFrozen resolved snapshot ID for this top-level resolution.
systemPromptstringyesMerged system prompt (base + project override append).
temperaturenumber or nullnoEffective temperature. null defers to the engine/model default.
toolProfilesarray of ResolvedAgentToolProfileDtoyesMerged tool profiles.
workspaceAgentWorkspaceDto or nullnoThe agent's compiled workspace block — mount layout, persist paths, env and output surface — merged from its SELF-WRAP workspace manifest at biome discovery and stored verbatim on the agent. null for an agent that ships no self-wrap manifest: a sub-agent-only leaf is never launched as an interactive session and needs no user-data layout.

ResolveFullResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataResolveFullResponseDtoyes

ResolveModelForInvocationDto

PropertyTypeRequiredDescription
agentSlugstringnoThe resolving agent — the Matrix agent dimension.
modelCapabilityModelCapabilitynoA modality this invocation REQUIRES — the Matrix modelCapability dimension, so one rule can route every vision-needing invocation to a multimodal model without pinning a provider. It is ALSO a requirement on whatever the resolution selects: a resolved model that does not provide it is refused with 422 MODEL_CAPABILITY_UNSUPPORTED rather than returned, and no other model is substituted. Closed kernel set; an unknown value is a 400.
modelIdstringnoABOVE-RULES concrete-model override. Pins this credentialed model and skips the strategy cascade.
modelLanestringnoThe model lane this invocation runs in — the Matrix modelLane CONTEXT dimension. Lane rules decide; it is not an override. When both this and preferredModelLane are supplied, this wins.
preferredModelLanestringnoPer-session "smartness" preference — the Matrix modelLane MATCHED dimension, NOT an above-rules override. It populates the resolution context so a tier-injected managed rule can CLAMP it, and an unmapped kind matches no lane rule. Ignored when an explicit modelLane/modelId override is present. An AGENT-axis work kind: the kernel core plus every key a biome or this organisation has declared. Lower-kebab; an undeclared value is a 400 so a typo never silently lands on the no-match path — the same posture purpose has one field up.
providerSlugstringnoDisambiguates modelId when one model id is credentialed under two providers. Optional partner to modelId.
purposestringnoNon-agent invocation purpose — the Matrix purpose dimension, and the MACHINE half of the contributed work-kind vocabulary. Must be a declared machine-axis work kind (GET /work-kinds?axis=machine); an undeclared value is a 400 so a typo never silently lands as the default rule's match path.
skillSlugstringnoThe active/launched skill — the Matrix skill dimension. Free-form: the skill vocabulary is open and owned by skill-registry-api, so an unknown value simply matches no rule rather than being refused.
spacestringyesThe Space this invocation happens in, as a canonical xema:// SpaceRef. xema://orgs/<orgId> for an org-scoped invocation (a Canopy turn, a memory summarization, an org-layer session); xema://orgs/<orgId>/projects/<projectId> when the invocation genuinely belongs to a project. The org segment MUST match the calling context's org — it selects a Space inside the tenant the token already proved, and never widens it. Only the project form contributes the Matrix's project dimension; an org-scoped resolve carries no project dimension at all, so a project selector rule cannot match it.
stageKeystringnoThe Matrix stage dimension. Omit it when the call has no stage: the resolve then runs on the lane rules and the org default only, and no stage rule can match. (A caller that passes its agent slug here is treated the same: the resolver drops the dimension when the two are equal.)

ResolvedAgentKernelResponseDto

PropertyTypeRequiredDescription
displayNamestringyes
hasProjectOverridebooleanno
mcpServicesarray of stringyes
modelLanestring or nullyesThe model LANE this agent routes on — rules select on it. An OPEN vocabulary: every key is declared by a model-lane contribution, and GET /work-kinds?kind=model-lane enumerates what this organisation may use. Distinct from AgentRunRole (permissions).
slugstringyes
sourcestringyes
systemPromptstringyes
temperaturenumber or nullnonull defers to the engine/model default.

ResolvedAgentKernelResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataResolvedAgentKernelResponseDtoyes

ResolvedAgentModelResponseDto

PropertyTypeRequiredDescription
agentSlugstringyes
modelDisplayNamestringyes
modelIdstringyes
modelRecordIdstringyes
providerNamestringyes
providerSlugstringyes
sourceone of "project", "user", "org", "strategy", "default"yes
temperaturenumber or nullno

ResolvedAgentModelResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataResolvedAgentModelResponseDtoyes

ResolvedAgentResponseDto

PropertyTypeRequiredDescription
abilitiesarray of stringyesSpecial-ability CapabilityRefs granted on top of the reach tier; unioned into the auto-grant manifest (so they also appear in requiredCapabilities). Always present (defaults to []).
agentContentHashstring or nullnoSHA-256 of the immutable AgentRevision content. Null only for mutable Studio drafts.
agentRevisionIdstring or nullnoImmutable AgentRevision id selected at published resolution. Null only for mutable Studio drafts.
capabilityAgentCapabilityLayerDtoyesCapability envelope applied to the whole composition at runtime. Always present.
channelVersionnumberno
compiledLaunchPlanHashstring or nullnoContent address of the prepared immutable session launch plan.
displayNamestringyes
durableWorkspaceDurableWorkspaceRefDto or nullnoResolved durable shared-workspace binding — present only when the agent declares one. When present, agent-session-api stores workspaceRef on Session.workspaceRef so the session attaches to the SHARED, workspaceRef-keyed durable workspace (multi-pod WorkspaceSharingPolicy.Shared) instead of a private per-session one. Absent ⇒ a private per-session workspace.
internetEgressCeilingWorkerInternetEgressnoCeiling on whether the worker pod running this agent may open sockets to the public internet. A ceiling the agent ACCEPTS, never a grant: the effective mode is the most restrictive of the deployment, the owning Space, this value and the session, so open here widens nothing. RESOLVED: the agent's own declaration joined along its extends chain, so a child never widens its base. ABSENT when nothing in the chain declares one — there is no default.
preparationGenerationIdstring or nullno
reachTierAgentReachTieryesThe root composition agent's reach-tier permission ceiling (Chunk 2). A composition row with no explicit tier resolves to as-owner (the default), so this field is always populated. agent-session-api persists it onto the session and stamps it onto ExecutionContext.reachTier so authorization-api applies the tier constraint inside the verdict.
releaseSetIdstringno
requiredCapabilitiesarray of stringyesChunk 3 — the deduped, sorted union of every CapabilityRef the agent needs to drive its armed tools + skills across the whole sub-agent tree (the auto-grant-from-arming manifest). Derived at resolve time from the MCP catalog (tools) + skill frontmatter (skills). Empty when nothing armed declares a capability — the default-safe no-op. The capability-analysis endpoint returns the same union plus the unresolved-ref diagnostics.
resourceIdstringyesStable Agent AuthoredResource identity selected by resolution.
rootAgentNodeDtoyesResolved root node — Agent fully revision-pinned, recursive children resolved.
runtimeTemplateHashstring or nullnoHash of the prepared plan RuntimeTemplateKey.
scopeScopeSourceyes
sessionLifecycleAgentSessionLifecycle or nullnoThe resolved agent's declared default session lifecycle (ephemeral|persistent), or null when it declares no preference. agent-session-api inherits this as the session lifecyclePolicy unless the launch passes an explicit override; null ⇒ agent-session applies its own ephemeral default last.
slugstringyes
standingSessionStandingSessionRefDto or nullnoResolved standing-session pin — present only when the agent declares one. When present, agent-session-api does a (orgId, projectId, pinKey) get-or-create at POST /sessions and ADOPTS a non-terminal existing session instead of minting a fresh one. Absent ⇒ a fresh session per launch.
versionstringyesServer-generated immutable revision number.
workspaceAgentWorkspaceDtonoResolved workspace-layout config — present when the source composition declared a workspace block. The ${input.x} interpolation in env values is already resolved here. The workspace pipeline projects this onto the run's WorkspaceSpec.
workspaceSharingWorkspaceSharingPolicyyesResolved workspace-sharing policy — whether a session launch of this agent may POOL onto a compatible running pod as a new thread (shareable) or must always run in its own isolated worker (isolated). Always populated: a row with no stored value resolves to isolated (WORKSPACE_SHARING_DEFAULT). agent-session-api reads this to gate session-thread pooling at launch.

ResolvedAgentResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataResolvedAgentResponseDtoyes

ResolvedAgentToolProfileDto

PropertyTypeRequiredDescription
allowedToolsarray of stringyesExplicitly allowed tools.
catalogIdstring or nullnoCatalog ID for the tool source.
isOptionalbooleanyesWhether this tool profile is optional.
mcpServiceKeystringyesMCP service key.
toolGroupsarray of stringyesTool groups enabled for this service.

ResolvedConfigSnapshotResponseDto

PropertyTypeRequiredDescription
agentSlugstringyesAgent slug captured by this snapshot.
canonicalizationVersionnumberyesCanonicalization version.
createdAtstring (date-time)yesSnapshot creation timestamp.
idstringyesSnapshot ID.
invocationIdstringyesInvocation ID associated with this snapshot.
payloadobject or nullnoInline snapshot payload stored in the database.
payloadObjectKeyobject or nullnoExternal payload object key when the snapshot is offloaded from the database.
resolvedConfigHashstringyesResolved config hash captured by this snapshot.
snapshotSchemaVersionnumberyesSnapshot schema version.

ResolvedConfigSnapshotResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataResolvedConfigSnapshotResponseDtoyes

ResolvedDelegatedApertureDto

PropertyTypeRequiredDescription
agentKeystringyes
agentRefDelegatedAgentRefDtoyes
authoredPatharray of DelegatedAgentSubjectDtoyes
constraintsDelegatedApertureConstraintsDtoyes
delegateAgentKeysarray of stringyesEvery entry this authority may delegate to (all routes, not only the canonical parent), sorted.
depthnumberyes
parentAgentKeystring or nullyes
reachTierone of "sandbox", "as-owner", "connected", "full"yes

ResolvedEmbeddingCommitmentDto

PropertyTypeRequiredDescription
commitmentIdstringyes
dimensionnumberyes
migrationMigrationTargetDto or nullnoPresent only when state = migrating. Consumers must dual-write to both the current model/dimension and this target.
modelIdstringyes
providerApiTypestringyes
providerBaseUrlstringyes
providerIdstringyes
providerIsSystembooleanyes
providerNamestringyes
providerSlugstringyes
stateone of "proposed", "active", "migrating"yes

ResolvedEmbeddingCommitmentDtoDataEnvelope

PropertyTypeRequiredDescription
dataResolvedEmbeddingCommitmentDtoyes

ResolvedModelDecisionDto

PropertyTypeRequiredDescription
matchedDimensionsarray of stringyesDimensions the winning rule matched on.
matchedRuleIdstring or nullnoId of the rule that won; null when the implicit default fallback was used.
modelResolvedModelRefDtoyesThe resolved model reference.
overriddenbooleanyesTrue when a run/realtime override pre-empted the matrix.
reasonstringyesHuman-readable win reason.

ResolvedModelRefDto

PropertyTypeRequiredDescription
kindone of "concrete"yesAlways concrete: a rule targets a model.
modelIdstring or nullnoConcrete model id.
providerSlugstring or nullnoProvider slug pinned by the rule.
reasoningEffortstring or nullno
temperaturenumber or nullno

ResolvedModelSelectionDto

PropertyTypeRequiredDescription
capabilitiesarray of stringnoModel capabilities (e.g. vision).
contextWindownumber or nullnoContext window (tokens).
modelIdstring or nullno
opencodeProviderIdstring or nullnoOpenCode provider ID (worker-side routing).
providerFamilystringnollm-gateway provider family (open vocabulary). OMITTED when unknown; an absent value means unknown.
providerSlugstring or nullno
sourceone of "matrix", "override", "org_default", "unresolved"yesSource of the model resolution.
temperaturenumber or nullnonull defers to the engine/model default.

ResolvedModelStubDto

PropertyTypeRequiredDescription
modelIdstring or nullnoResolved model ID (null when unresolved).
providerSlugstring or nullnoProvider slug (null when unresolved).
sourceone of "matrix", "override", "org_default", "unresolved"yesSource of the model resolution.
temperaturenumber or nullnoTemperature for the model. null defers to the engine/model default.

ResolvedPhaseConfigDto

PropertyTypeRequiredDescription
contextWindownumber or nullnoThe model's TOTAL token budget (prompt + reasoning + answer). Never an input cap.
decisionResolvedModelDecisionDto or nullnoModel Resolution Matrix win-reason trace — which rule won and why. Null only for the persisted per-agent override path.
llmModelIdstringyesThe registry model record id (LlmModel.id) the resolution selected — the id a rule or the org default targets.
maxInputTokensnumber or nullnoA declared cap on the PROMPT alone, independent of the window. Null = none declared; only the window bounds the prompt.
maxOutputTokensnumber or nullnoDeclared ceiling on one answer. Null = UNKNOWN — never "unlimited", never "the rest of the window".
modelDisplayNamestringyes
modelIdstringyesThe provider's own model id.
providerApiTypestringyes
providerBaseUrlstringyes
providerFamilystringnollm-gateway provider family of the provider (open vocabulary). OMITTED when unknown; an absent value means unknown.
providerIdstringyes
providerNamestringyes
reasoningEffortstring or nullnoReasoning effort the resolution path selected, forwarded verbatim to the provider. null defers to the model default — never a substituted value.
retirementModelRetirementSubstitutionDtonoPresent only when the picked model was retired and its successor was served instead; decision still names the pick.
sourcestringyes
stageKeystringyes
temperaturenumber or nullnonull defers to the engine/model default.

ResolvedPhaseConfigDtoDataEnvelope

PropertyTypeRequiredDescription
dataResolvedPhaseConfigDtoyes

ResolvedSkillEntryDto

PropertyTypeRequiredDescription
displayNamestring or nullnoDisplay name.
keystringyesSkill key/slug.
sourceone of "system", "base"yesHow this skill was selected (resolution layer).

ResolvedStageModelConfigDto

PropertyTypeRequiredDescription
apiTypestringyesWire protocol the provider speaks, as stored on the provider row.
baseUrlstringyesProvider base URL the invocation would call.
decisionResolvedModelDecisionDto or nullnoModel Resolution Matrix win-reason trace — which rule won and why. Null only for the persisted per-agent override path.
modelIdstringyesProvider-native model id this stage currently routes to.
providerIdstringyesRegistry id of the provider serving the model.
providerNamestringyesProvider display name.
providerSlugstringyesProvider slug.
reasoningEffortstring or nullnoReasoning effort this stage currently resolves to. null defers to the model default.
retirementModelRetirementSubstitutionDtonoPresent only when the stage's picked model was retired and its successor is served instead; decision still names the pick.
sourceModelResolutionSourceyesWhich resolution path produced this selection.
temperaturenumber or nullnonull defers to the engine/model default.

ResolvedToolProfileDto

PropertyTypeRequiredDescription
allowedToolsarray of stringyes
catalogIdobject or nullno
isOptionalbooleanyes
mcpServiceKeystringyes
sourceScopeSourceyesOwner tier that resolved this profile.
toolGroupsarray of stringyes

ResolvedToolProfileDtoDataArrayEnvelope

PropertyTypeRequiredDescription
dataarray of ResolvedToolProfileDtoyes

RestoreAgentRevisionDto

PropertyTypeRequiredDescription
expectedDraftUpdatedAtstringyesCurrent draft concurrency token. Restore fails if another author changed the draft.

RetirementModelRefDto

PropertyTypeRequiredDescription
modelIdstringyesThe provider's model id.
recordIdstringyesThe model record id (LlmModel.id).

RevisionPinDto

PropertyTypeRequiredDescription
holderRevisionPinHolderyesWhat may be DONE with this pin. Only mutable pins are movable; immutable needs the holder republished, and provenance records what happened and is never touched.
holderIdstringyes
holderKindstringyesWhich kind of consumer holds it, e.g. project-agent-override.
labelstring or nullyes
resourceIdstringyesThe Agent identity that owns the revision.
revisionIdstringyes

RevisionPinDtoDataArrayEnvelope

PropertyTypeRequiredDescription
dataarray of RevisionPinDtoyes

RevisionPinHolder

What may be DONE with this pin. Only mutable pins are movable; immutable needs the holder republished, and provenance records what happened and is never touched.

Type: one of "mutable", "immutable", "provenance"

RevisionPinMovePlanDto

PropertyTypeRequiredDescription
immovablearray of RevisionPinDtoyesPins that record what DID run. Never moved: moving one would not re-point a consumer, it would rewrite history.
movearray of RevisionPinDtoyesPins that were moved.
republishRequiredarray of RevisionPinDtoyesPins embedded inside a published revision. Republish the holder to change them — rewriting one would mutate an immutable revision.

RevisionPinMovePlanDtoDataEnvelope

PropertyTypeRequiredDescription
dataRevisionPinMovePlanDtoyes

RoleCapabilityProfileDto

PropertyTypeRequiredDescription
mayEditReposone of "never", "when-granted"yesWhether the role may edit repositories
mayWriteKnowledgeBasebooleanyesKnowledge-base write capability
rolestringyesAgentRunRole slug — kebab-case
surfaceone of "pipeline-run", "agent-session", "gate-review"yesWhere this role may run
writePolicyone of "read-only", "own-pages-only", "full-write"yesWorkspace write policy

RoleCapabilityProfileDtoDataEnvelope

PropertyTypeRequiredDescription
dataRoleCapabilityProfileDtoyes

RoleCapabilityProfileDtoPaginatedEnvelope

PropertyTypeRequiredDescription
dataarray of RoleCapabilityProfileDtoyes
paginationPaginationMetayes

RollbackAgentRevisionDto

PropertyTypeRequiredDescription
expectedChannelVersionnumberyes
priorReleaseSetIdstringyesOwner-fenced immutable ReleaseSet whose stable state should be replayed.

ScopeSource

Type: one of "system", "biome", "org", "project", "user"

SetModelRetirementDto

PropertyTypeRequiredDescription
retiresAtstring (date-time)yesThe retirement instant (ISO 8601). From this instant on the model is never served as picked.
successorModelIdstring or nullnoThe model record id (LlmModel.id) resolutions use instead from retiresAt. Must be served to the organisation, must not be the model itself, and its own successor chain must reach a model not retired at retiresAt without cycling. Omit or null: the model is refused from retiresAt.

SetOrgModelDefaultDto

PropertyTypeRequiredDescription
modelIdstringyesThe registry model record id (LlmModel.id) the organisation routes to when nothing more specific applies. Must be served by an active provider.

StandingSessionRefDto

PropertyTypeRequiredDescription
pinKeystringyesStable key identifying the standing session for a purpose/biome, e.g. {biomeId}:{purpose}. Two launches of the same agent within the same (orgId, projectId) that resolve this key reuse ONE session row.

StartEmbeddingMigrationDto

PropertyTypeRequiredDescription
acknowledgeReprocessingbooleanyesThe user must explicitly tick a checkbox acknowledging that all existing vectors will be reprocessed. Sent as true; the backend rejects the migration if false.
targetModelIdstringyesTarget embedding model id.
targetProviderIdstringyesTarget provider id.
typedOrgSlugstringyesRequired confirmation: the org slug typed by the user. The backend rejects the migration if this does not match the actual org slug.

StrategyDeletionAffectedProjectDto

PropertyTypeRequiredDescription
projectIdstringyesProject whose binding cascade-deletes.

StrategyDeletionImpactResponseDto

PropertyTypeRequiredDescription
affectedProjectsarray of StrategyDeletionAffectedProjectDtoyes
boundProjectCountnumberyesProjects explicitly bound to this strategy. Their bindings cascade-delete.
displayNamestringyes
strategyIdstringyes

StrategyDeletionImpactResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataStrategyDeletionImpactResponseDtoyes

SurfaceKindDto

PropertyTypeRequiredDescription
biomeIdstringnoPresent only for biome-contributed kinds.
displayNamestringyesHuman-readable display name.
kindstringyesFully-namespaced kind slug the FE registry keys by. A first-party kind is its bare enum value (e.g. markdown); a biome kind is <biomeId>:<kind>.
payloadSchemaobjectyesJSON Schema for the surface payload (passed through verbatim; the FE derives its generic renderer from it).
sourceSurfaceKindSourceyesProvenance of this kind.
summarystringyesWhat the surface shows and when to open it.
versionnumberyesMonotonic payload schema version.

SurfaceKindListDto

PropertyTypeRequiredDescription
surfaceKindsarray of SurfaceKindDtoyes

SurfaceKindListDtoDataEnvelope

PropertyTypeRequiredDescription
dataSurfaceKindListDtoyes

SurfaceKindSource

Provenance of this kind.

Type: one of "first-party", "biome"

SyncModelsResponseDto

PropertyTypeRequiredDescription
discoveredCountnumberyesTotal number of models discovered from provider /models.
existingCountnumberyesNumber of discovered models already registered in llm-model table.
existingModelIdsarray of stringyesModel IDs that were already present before this sync.
modelIdsarray of stringyesModel IDs newly inserted during this sync.
skippedCountnumberyesNumber of discovered models skipped because required metadata was missing.
skippedModelIdsarray of stringyesModel IDs skipped due to missing required metadata (e.g. contextWindow).
syncedCountnumberyesNumber of new models inserted into llm-model table.

SyncModelsResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataSyncModelsResponseDtoyes

ToolProfileResponseDto

PropertyTypeRequiredDescription
agentSlugstringyes
allowedToolsarray of stringyes
biomeIdstring or nullnoBiome id when source='biome', otherwise null.
catalogIdstring or nullno
createdAtstring (date-time)yes
forkedFromstring or nullnoOrigin reference (<source>:<biomeId|"">:<key>) when this row was forked from a biome/system tool profile.
idstringyes
isActivebooleanyes
isOptionalbooleanyes
mcpServiceKeystringyes
orgIdstring or nullno
ownerUserIdstring or nullnoOwning user id when source='user', otherwise null.
projectIdstring or nullno
sourceScopeSourceyesOwner tier — the kernel's SpaceKind, narrowed to the five tiers this registry owns. The wire schema keeps the name ScopeSource. Resolution precedence at read time: user > project > org > biome > system.
toolGroupsarray of stringyes
updatedAtstring (date-time)yes
versionnumberyes

ToolProfileResponseDtoDataArrayEnvelope

PropertyTypeRequiredDescription
dataarray of ToolProfileResponseDtoyes

ToolProfileResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataToolProfileResponseDtoyes

ToolsetKey

Type: one of "read", "write", "exec", "web", "mcp", "delegate"

UnresolvedLaneDto

PropertyTypeRequiredDescription
agentSlugstringyesSlug of the agent whose model cannot be resolved.
messagestringyesHuman-readable statement of what is missing.
modelLanestring or nullyesThe model lane the agent asks for; null when it asks for none (only lane-less rules and the organisation default can answer it).
reasonModelResolutionErrorCodeyesThe code a launch of this agent is refused with — the same value the resolve doors put on the refusal.

UnresolvedToolDto

PropertyTypeRequiredDescription
providerKindstringyes
resourceIdstringyes
toolNamestringno

UpdateAgentDraftDto

PropertyTypeRequiredDescription
abilitiesarray of stringnoSpecial-ability CapabilityRefs granted on top of the reach tier; unioned into the auto-grant manifest.
capabilityAgentCapabilityLayerDtono
descriptionstringno
displayNamestringno
durableWorkspaceDurableWorkspaceRefDto or nullnoDurable shared-workspace binding. Omitted leaves the stored value unchanged; set { workspaceRef } to attach every session this agent launches to ONE durable shared workspace; pass null to clear it (the agent reverts to a private per-session workspace).
expectedDraftUpdatedAtstringyesCurrent draft concurrency token. The update fails on stale writes.
internetEgressCeilingWorkerInternetEgress or nullnoCeiling on whether the worker pod running this agent may open sockets to the public internet. A ceiling the agent ACCEPTS, never a grant: the effective mode is the most restrictive of the deployment, the owning Space, this value and the session, so open here widens nothing. Omitted leaves the stored value unchanged; null CLEARS it, so the agent states nothing again.
reachTierAgentReachTiernoThe agent's permission ceiling. Omitted leaves the stored value unchanged; a NULL stored value reads as as-owner.
rootAgentNodeDtono
sessionLifecycleAgentSessionLifecyclenoThe agent's default session lifecycle (ephemeral|persistent). Omitted leaves the stored value unchanged; a NULL stored value means the agent declares no preference.
standingSessionStandingSessionRefDto or nullnoStanding-session pin. Omitted leaves the stored value unchanged; set { pinKey } to make every launch reuse ONE session keyed by pinKey; pass null to clear the pin (the agent stops being a standing agent).
workspaceAgentWorkspaceDtonoAuthored workspace-layout config — persist-paths + per-slot overrides, env vars, output surface.
workspaceSharingWorkspaceSharingPolicynoWhether a session launch may POOL onto a compatible running pod (shareable) or must always run isolated (isolated). Omitted leaves the stored value unchanged; the column default is isolated.

UpdateAgentKernelDto

PropertyTypeRequiredDescription
avatarSeedstringno
avatarStylestringno
descriptionstringno
displayNamestringno
isActivebooleanno
mcpServicesarray of stringno
modelLanestringnoThe model LANE this agent routes on — rules select on it. An OPEN vocabulary: every key is declared by a model-lane contribution, and GET /work-kinds?kind=model-lane enumerates what this organisation may use. Distinct from AgentRunRole (permissions).
skillsarray of stringno
systemPromptstringno
temperaturenumberno

UpdateCodeStandardDto

PropertyTypeRequiredDescription
contentstringno
isActivebooleanno
namestringno

UpdateModelDto

PropertyTypeRequiredDescription
capabilitiesarray of stringnoModel capabilities
contextWindownumbernoContext window (max input tokens). Recorded with source operator; the provider sync never overwrites an operator value. Not nullable — a model always has a context window. Omit to leave it unchanged.
displayNamestringnoHuman-friendly display name
embeddingDimensionnumbernoEmbedding vector dimension (for embedding models only)
isActivebooleannoWhether the model is active and available for selection
maxInputTokensnumber or nullnoMax prompt (input) tokens, when the service caps input below the context window. A positive integer is recorded with source operator. null clears the fact to unknown (value and source). Omit to leave it unchanged.
maxOutputTokensnumber or nullnoMax generation/output tokens. A positive integer is recorded with source operator and the provider sync never overwrites it. null clears the fact to unknown (value and source), so the next provider sync may fill it again. Omit to leave it unchanged.
modalitiesarray of ModelModalitynoClosed-enum INPUT modalities the model accepts — an operator declaration recorded with source operator, which no sync overwrites. An empty array clears the fact to unknown so the next sync may fill it. Omit to leave it unchanged.
supportsAudioInputboolean or nullnoThe model accepts audio inputs. true/false is recorded with source operator, which no sync overwrites. null clears the fact to unknown so the next sync may fill it. Omit to leave it unchanged.
supportsJsonModeboolean or nullnoThe model supports structured JSON output. true/false is recorded with source operator, which no sync overwrites. null clears the fact to unknown so the next sync may fill it. Omit to leave it unchanged.
supportsPdfInputboolean or nullnoThe model accepts PDF inputs. true/false is recorded with source operator, which no sync overwrites. null clears the fact to unknown so the next sync may fill it. Omit to leave it unchanged.
supportsPromptCachingboolean or nullnoThe model supports prompt caching. true/false is recorded with source operator, which no sync overwrites. null clears the fact to unknown so the next sync may fill it. Omit to leave it unchanged.
supportsReasoningboolean or nullnoThe model performs explicit reasoning. true/false is recorded with source operator, which no sync overwrites. null clears the fact to unknown so the next sync may fill it. Omit to leave it unchanged.
supportsToolsboolean or nullnoThe model exposes function/tool calling. true/false is recorded with source operator, which no sync overwrites. null clears the fact to unknown so the next sync may fill it. Omit to leave it unchanged.
supportsVisionboolean or nullnoThe model accepts image inputs. true/false is recorded with source operator, which no sync overwrites. null clears the fact to unknown so the next sync may fill it. Omit to leave it unchanged.
supportsWebSearchboolean or nullnoThe model supports built-in web search. true/false is recorded with source operator, which no sync overwrites. null clears the fact to unknown so the next sync may fill it. Omit to leave it unchanged.

UpdateModelResolutionRuleDto

PropertyTypeRequiredDescription
prioritynumberno
selectorModelResolutionSelectorDtono
targetModelIdstringno
targetReasoningEffortstringno
targetTemperaturenumberno

UpdateModelStrategyDto

PropertyTypeRequiredDescription
descriptionstring or nullno
displayNamestringno

UpdateProjectAgentOverrideDto

PropertyTypeRequiredDescription
isActivebooleanno
mcpServicesAddarray of stringno
mcpServicesRemovearray of stringno
systemPromptAppendstringno
temperaturenumberno

UpdateProviderDto

PropertyTypeRequiredDescription
apiKeystringnoOptional enrolment transport: when supplied, the key is sealed in the credential plane and becomes the organisation's default credential (org_default pointer) for this provider's key; the provider row never stores it. Omit it when members use their own keys.
apiTypeone of "openai-compatible", "anthropic", "google"no
authTypeone of "bearer", "api-key-header", "none"no
baseUrlstringno
isActivebooleanno
maxConcurrentRequestsnumber or nullnoMaximum concurrent requests. Set to null to remove the limit.
namestringno
slugstringno

UpsertAgentModelOverrideDto

PropertyTypeRequiredDescription
agentSlugstringyesAgent slug to override the model for.
modelIdstringyesLLM model ID to assign to this agent.
scopeone of "org", "user", "project"yesOverride scope: "org" (org-wide default), "user" (personal preference), "project" (project-specific).
scopeIdstringyesScope identifier: orgId for "org", userId for "user", projectId for "project".
temperaturenumbernoOptional temperature override (0.0 - 2.0).

UpsertEmbeddingCommitmentDto

PropertyTypeRequiredDescription
modelIdstringyesEmbedding model id (e.g. "text-embedding-3-small"). The model must be registered in the org's providers and have the "embeddings" capability.
providerIdstringyesProvider id that hosts the model.

UpsertModelStrategyLaneRuleDto

PropertyTypeRequiredDescription
prioritynumbernoTie-break hint when two rules match the same number of dimensions and the fixed dimension-priority ladder does not separate them. Higher wins. Defaults to 0.
targetModelIdstringyesRegistry model record id (LlmModel.id) the rule routes to. It must be an active model on an active provider the organisation or the platform owns; otherwise the write is refused with 422 MODEL_NOT_SERVED.
targetReasoningEffortstringnoOptional reasoning effort carried by the resolved model, forwarded verbatim to the provider. OPEN vocabulary owned by the provider (e.g. minimal/low/medium/high, or low/medium/high/xhigh/max) — not an enum here, so a new provider spelling is not refused at the door.
targetTemperaturenumbernoOptional temperature override carried by the resolved model.

UpsertModelStrategyRulesDto

PropertyTypeRequiredDescription
expectedVersionnumbernoThe version read from this strategy. When sent, a stale value is refused with 409 MODEL_STRATEGY_VERSION_MISMATCH, which carries currentVersion to retry with. Send it: it is optional only for one transition and will become REQUIRED — without it this route replaces the whole rule set unconditionally, so a concurrent edit to a DIFFERENT lane is silently discarded. To change one lane, use PUT /model-strategies/:id/rules/lane/:lane, which needs no version.
rulesarray of CreateModelResolutionRuleDtoyesThe strategy's rules (replaces the whole rule set). Each rule has the same shape and the same validation as an org-level model resolution rule.

UpsertOrgLaneRuleDto

PropertyTypeRequiredDescription
prioritynumbernoTie-break hint when two rules match the same number of dimensions and the fixed dimension-priority ladder does not separate them. Higher wins. Defaults to 0.
targetModelIdstringyesRegistry model record id (LlmModel.id) the rule routes to. It must be an active model on an active provider the organisation or the platform owns; otherwise the write is refused with 422 MODEL_NOT_SERVED.
targetReasoningEffortstringnoOptional reasoning effort carried by the resolved model, forwarded verbatim to the provider. OPEN vocabulary owned by the provider (e.g. minimal/low/medium/high, or low/medium/high/xhigh/max) — not an enum here, so a new provider spelling is not refused at the door.
targetTemperaturenumbernoOptional temperature override carried by the resolved model.

UpsertToolProfileDto

PropertyTypeRequiredDescription
allowedToolsarray of stringnoExplicitly allowed tool names.
catalogIdstringnoCatalog identifier for tool discovery.
expectedVersionnumberyesOptimistic concurrency version. Use 0 for create.
isOptionalbooleannoWhether this MCP service is optional for the agent.
toolGroupsarray of stringnoTool group identifiers.

WidgetKindDto

PropertyTypeRequiredDescription
biomeIdstringnoPresent only for biome-contributed kinds.
displayNamestringyesHuman-readable display name.
kindstringyesFully-namespaced kind slug the FE registry keys by. A first-party kind is its bare enum value (e.g. plan); a biome kind is <biomeId>:<kind>.
payloadSchemaobjectyesJSON Schema for the widget payload (passed through verbatim).
sourceWidgetKindSourceyesProvenance of this kind.
summarystringyesWhat the widget shows and when to use it.
versionnumberyesMonotonic payload schema version.

WidgetKindListDto

PropertyTypeRequiredDescription
widgetKindsarray of WidgetKindDtoyes

WidgetKindListDtoDataEnvelope

PropertyTypeRequiredDescription
dataWidgetKindListDtoyes

WidgetKindSource

Provenance of this kind.

Type: one of "first-party", "biome"

WorkerInternetEgress

Ceiling on whether the worker pod running this agent may open sockets to the public internet. A ceiling the agent ACCEPTS, never a grant: the effective mode is the most restrictive of the deployment, the owning Space, this value and the session, so open here widens nothing. RESOLVED: the agent's own declaration joined along its extends chain, so a child never widens its base. ABSENT when nothing in the chain declares one — there is no default.

Type: one of "open", "governed"

WorkingFileEntryDto

PropertyTypeRequiredDescription
formatstringyes
pathstringyes
slugstringyes
sourceKindstringyes
sourceRefmap of stringyes
syncDirectionstringyes

WorkspaceSharingPolicy

Resolved workspace-sharing policy — whether a session launch of this agent may POOL onto a compatible running pod as a new thread (shareable) or must always run in its own isolated worker (isolated). Always populated: a row with no stored value resolves to isolated (WORKSPACE_SHARING_DEFAULT). agent-session-api reads this to gate session-thread pooling at launch.

Type: one of "isolated", "shareable", "shared"