AdapterCompileResult
AdapterMapping
Related: AdapterMappingProps
AdapterMappingProps
Related: BindingSourceSchemas, TemplateJqSuggestion
ApiClient
BindingJqField
Related: BindingJqFieldProps
BindingJqFieldProps
Related: TemplateJqSuggestion
BindingSourceSchemas
output and input fields (the state’s fields ride each
BindingStateOption). Absent roots offer no picked field — the author uses
a literal or a jq expression instead.
Properties
Related: SchemaFieldPath
BindingStateOption
Related: SchemaFieldPath
BindingTemplateJqOption
BindingTemplateOption
Related: BindingTemplateJqOption
BindingTemplatedJqField
Related: BindingTemplatedJqFieldProps
BindingTemplatedJqFieldProps
Related: TemplateJqSuggestion, TemplatedTextCatalog
ENV_MARKER_PREFIX
!ENV marker.
EnvRef
FeatureDisabled
role="status" EmptyState (never the loud alert ErrorState): the
feature is not broken, it is simply off, and the copy shows the server’s own
remediation message.
Props
Related: FeatureDisabledProps
FeatureDisabledProps
FieldRoot
.) or the run input ($input).
FieldSource
Related: FieldRoot
INSTALL_NO_GRANT
InheritedSubject
InjectionList
Related: InjectionListProps
InjectionListProps
Related: ResolvedTemplateJq, TemplateJqSuggestion, TemplatedTextCatalog
InstallAction
Related: InstallActionState
InstallActionState
JqSource
.), with the run input bound as $input.
Properties
LiteralSource
"a", 42, true, {…}).
Properties
MappingRow
Related: MappingSource
MappingSource
MountInstallDialog
Related: MountInstallDialogProps
MountInstallDialogProps
Related: RouteItem
MountInstallForm
Related: MountInstallDialogProps
PluginInstallDialog
Related: PluginInstallProps
PluginInstallPanel
Related: PluginInstallProps
PluginInstallProps
ReferenceHolder
useApi().runTool resolves with: the run-tool door’s answer, read by its kind.
ResolvedTemplateJq
Related: BindingTemplateJqOption
RouteItem
RunAnswer
useApi().runTool resolves with: the run-tool door’s answer, read by its kind.
SchemaEditor
Related: SchemaEditorProps
SchemaEditorChange
SchemaEditor reports up on every edit.
Properties
Related: SchemaEditorDraft
SchemaEditorDraft
SchemaEditor.
Properties
SchemaEditorProps
Related: SchemaEditorChange
SchemaFieldPath
SchemaLintResult
StateAttachRow
Related: StateAttachRowProps
StateAttachRowProps
Related: BindingSourceSchemas, BindingStateOption, BindingTemplateOption, InheritedSubject, TemplatedTextCatalog
StateBindingEditor
Related: StateBindingEditorProps
StateBindingEditorProps
Related: BindingSourceSchemas, BindingStateOption, BindingTemplateOption, TemplatedTextCatalog
StateBindingSection
Related: StateBindingSectionProps
StateBindingSectionProps
Related: BindingSourceSchemas, BindingStateOption, BindingTemplateOption, StateBindingEditorProps, TemplatedTextCatalog
StoragePresenceQueryLike
GET /api/storage) fields this helper reads.
Properties
SubjectScopeFields
Related: SubjectScopeFieldsProps
SubjectScopeFieldsProps
Related: TemplateJqSuggestion, TemplatedTextCatalog
TemplateJqSuggestion
TemplateNamesQueryLike
GET /api/templates) fields this helper reads.
Properties
TemplatedText
TemplatedTextCatalog
TemplatedText field’s id picker offers, with the
fetch’s loading/error state — resolved by the door screen and passed to the
editor, which holds no data edge of its own. Absent leaves every templated-text
field with the inline source only.
Properties
Related: TemplatedTextTemplateOption
UpdateList
Related: UpdateListProps
UpdateListProps
Related: BindingSourceSchemas, ResolvedTemplateJq, TemplateJqSuggestion, TemplatedTextCatalog
agentsListKey
GET /api/agents): the agents feature and the conversations feature’s route form.
appendTjq
tjq_<name>({…}) template call to the current expression (space-separated when non-empty).
Parameters
channelsListKey
GET /api/channels): the interactions feature’s Delivery channels card and the
conversations feature’s route form read it under this one key.
collectEnvRefs
value references.
Parameters
comboElementNames
config).
Parameters
compileAdapter
$input. An empty form compiles to the
empty object {}; a blank target, a duplicate target, or an invalid source is a
loud error.
Parameters
Related: AdapterCompileResult, MappingRow
defaultRowsForInput
output field.
Parameters
Related: MappingRow
deliveryOf
delivery field (that is server-computed and rides the installed
rows and the install preview), so the detail is read off the listing’s package:
null (a descriptor listing that names none) ⇒ descriptor, else package.
Parameters
downloadBlob
Blob (an export- or content-route response) to the user as a file
download via a transient object URL. The object URL is revoked on the next tick —
revoking it synchronously can cancel the download before the browser commits it.
Parameters
effectiveHidden
overlayHidden is the overlay’s
hidden (true/false), or null/undefined when the overlay defers or has
no row; declaredHidden is the plugin’s own hidden. Overlay opinion wins;
absence defers to the declaration.
Parameters
encodeTemplateSegment
- becomes _. Under the slug
invariant (no consecutive or trailing hyphens) the result carries no __ and no
trailing _, which is what makes the first __ in a call name the template boundary.
Parameters
envConfigKey
GET /api/config/env → { env, secret_keys }).
errorMessage
error, a
rejected mutation, a zod/ApiError) into a human-readable string for the loud
ErrorState / Field surfaces. This only turns a caught value into
displayable text — it never swallows the failure; the caller decides where to
show it, and the message is always shown, never blank.
Parameters
extensionElementName
config).
Parameters
extensionsQueryKey
GET /api/extensions). The manifest feature keys its
loaded-extensions list on it; a tool’s extension-combo save (in the tools feature)
invalidates it too — a cross-feature reference that must resolve to one
authoritative constant.
featureDisabledMessage
message (which names the
missing configuration), else its machine code. The client NEVER composes this —
a refusal carrying neither is a contract breach and raises.
Parameters
fieldPathToJq
.user.name, .["odd key"], the whole output .), an input field off the bound run
input ($input.user.name, the whole input $input).
Parameters
Related: FieldRoot
fieldPathsFromSchema
properties into selectable field paths (top-level and
every nested object level), each labelled with its dotted path — the picker source
for the adapter’s output/input roots. A non-object or property-less schema
yields no fields (the field control then falls back to a free path input).
Parameters
Related: SchemaFieldPath
findByRef
Related: ResolvedTemplateJq
formatEnvMarker
key, carrying defaultValue when given. Throws when
parseEnvMarker would not read the marker back as (key, defaultValue): a name is
non-empty and carries no {, } or :; a default is non-empty and carries no }.
Parameters
generateTemplateCall
tjq_<enc(template)>__<name>({…}) for a qualified ref, tjq_<name>({…}) for a bare
one (see the module note on the __ boundary invariant).
Parameters
Related: MappingRow
hiddenToolNames
listToolTags) merged with the tool_meta overlay (listToolMeta).
A picker excludes exactly these names from its options; the server stays the
authority (a slipped-through name is rejected loudly there), so a name in the set
that is not among a picker’s options is simply inert.
The union of both sources is walked so an overlay row that force-hides a tool
carrying no native tag entry is still caught, and an overlay false on a
plugin-hidden tool correctly keeps it OUT of the set (unhidden).
Parameters
installedMarketplacePluginsKey
GET /api/marketplace/installed).
isBlankSearch
query holds nothing but blanks, so it matches every text: a list that
draws itself differently while no search is active asks this.
Parameters
isEmptyResult
null, a blank
string, an empty array or an object with no keys. 0 and false are values, never
empty. The tools feature’s result viewer and the observability span detail (its
input and its output) read through this rule, so both say “empty” for the same
values; the observability runs table’s one-line previews do not use it.
Parameters
isFeatureDisabled
error is a disabled-feature refusal from the skeleton: an HTTP 501, or
a code ending -not-configured. The code is authoritative; the 501 status is
the fallback signal — either alone is enough.
Parameters
isForbiddenError
error is a refusal for want of a grant: an object whose status is
403. Duck-typed, so it reads an ApiError and any error shaped like one.
Parameters
jqKey
lintSchemaText
- Empty text is VALID (an unset, optional schema) with a
nullschema. - Malformed JSON is INVALID; the parser message is surfaced verbatim.
- A top-level value that is not a JSON object (an array or a scalar) is INVALID.
- When
requireTitle, a top-level string"title"is REQUIRED (theresponse_formatcontract the backend enforces); its absence is INVALID.
$defs/anyOf round-trips exactly.
Parameters
Related: SchemaLintResult
marketplacePluginKey
GET /api/marketplace/plugins/{ns}/{name}), by its ref.
Parameters
matchesSearch
texts contains query, ignoring case and the query’s
surrounding blanks; a blank query matches every row. Each text is tested on its own,
so a row searched by several fields (a name and a display name) never matches across
the seam between two of them.
Parameters
mcpAdvertisedToolsKey
GET /api/mcp-status/{title}/advertised-tools).
Parameters
mcpConfigSchemaKey
GET /api/mcp-config/schema).
mcpEnvRefsKey
!ENV marker refs (GET /api/manifest/mcp-env-refs):
names and set/unset booleans only, never values.
mcpExtensionsKey
GET /api/extensions).
mcpFailedKey
GET /api/mcp-status/failed). A reload or
deregister invalidates it together with mcpStatusKey, since a re-attached
server moves between the two views.
mcpStatusKey
GET /api/mcp-status).
mergeToolBadges
parseAdapter
null if it is not the generated shape.
Parameters
Related: MappingRow
parseEnvMarker
value when it is exactly !ENV ${KEY} or !ENV ${KEY:default}, else null.
Parameters
Related: EnvRef
parseFieldPath
null if it is not one.
Parameters
Related: FieldSource
parseTemplateCall
{ callName, adapter } from a tjq_<callName>(<adapter>) call, or null
otherwise. callName is the RAW jq identifier — NEVER split here (a jq name may carry
its own __ past the template boundary); resolve it to a catalog ref with
resolveCallName.
Parameters
preservedManifestKey
GET /api/manifest/preserved): !ENV ${KEY} markers intact,
no resolved secrets. Its own key, never the resolved manifest’s, so the two views
never collide in the cache.
resolveCallName
enc(template)__name, or a bare name) back to the catalog
ref, driven by the catalog — never by string splitting, since a jq name may carry its
own __ past the template boundary and enc maps -→_. Under the template-slug
invariant (no consecutive/trailing hyphens ⇒ enc(template) has no __ and no
trailing _) the FIRST __ is the one true boundary, so the longest encoded-template
prefix whose remainder is a jq the template declares is the unique qualified match;
failing that, a bare name a single template declares. null when nothing claims it.
Parameters
Related: BindingTemplateOption
resolveTemplateJq
purpose is omitted), each carrying the reference a binding stores.
Parameters
Related: BindingTemplateOption, ResolvedTemplateJq
routeItemsOf
Related: RouteItem
rowValueJq
Related: AdapterCompileResult, MappingSource
stateTemplateRefereesKey
template from state
(GET /api/states/{name}/attachments/{template}/referees), read by the detach confirm.
Parameters
stateTemplatesKey
GET /api/state-templates). Read by the states
feature AND every state-binding door screen (the templates a binding attaches),
keyed here so the two never fetch the same catalog under diverging tuples.
statesCatalogFromList
listStates(); per-state attachments are resolved lazily elsewhere.
Parameters
Related: BindingStateOption
statesListKey
GET /api/states). The states feature owns it, and every door
screen that hosts the state-binding editor (a preset, a route, a hook, a schedule)
reads the same catalog to populate the binding’s state picker — so both key the one
authoritative tuple and a single fetch serves both.
subMcpKey
GET /api/sub-mcp). The settings feature reads
this map (its scope mapper lists the mounts) while the manifest feature owns the
create/delete controls that mutate it; both must key and invalidate the exact
same tuple, so it lives here rather than as a literal duplicated across the two
features (which cannot import each other).
templatedTextCatalog
Related: StoragePresenceQueryLike, TemplateNamesQueryLike, TemplatedTextCatalog
templatesCatalogFromList
listStateTemplates().
Parameters
Related: BindingTemplateOption
tokensPayloadKey
toolBadgesByName
listToolTags) merged with the tool_meta
overlay (listToolMeta) — the SAME union the tools list shows. Only tools with at
least one badge appear; a name with none is simply absent (the picker shows no
chips). Both sources’ names are walked, so an overlay row that badges a tool
carrying no native tag entry is still surfaced.
Parameters
toolDescriptionsByName
toolDescriptions). Only
tools that declare a non-empty description appear; a tool that declares none is
simply absent (its option draws no description line).
Parameters
toolMetaKey
GET /api/tool-meta): the folder tree plus the per-tool
display name, tags, folder and visibility rows. Every screen that files or labels
tools by the overlay (tools, presets, agents, the schedule picker) reads it under
this one key, and every overlay or folder write invalidates it, so a move made on
one screen shows on every other without a reload.
toolTagsKey
GET /api/tools/tags): its description, native tags,
visibility and badges. A screen that reads them under this key shares its cached read
with the Tools screen, which reads them here. The key sits under toolsListKey,
so an invalidation of the registered-tool population refreshes it too.
toolsListKey
GET /api/tools).
useDebouncedValue
delayMs after it last changed. The first
value settles immediately, so a read keyed on it fires on mount before any edit.
Parameters
useInstallAction
Related: InstallAction

