Skip to main content
The React hooks and providers every feature builds on — API access, theme, auth, and the interactions stream.

ApiProvider

Related: ApiClient

AuthProvider

Parameters Related: AuthState

AuthState

Properties

Breakpoint

BreakpointState

Properties Related: Breakpoint

CapabilityContextValue

Properties Related: CapabilityState

CapabilityProvider

Parameters Related: CapabilityContextValue

CapabilityState

ExecutionKeyBinding

How a form binds the execution key a stored record runs as, read from the session’s projection. Related: OwnIdentity

InteractionsStreamOptions

The inputs the caller drives the tail-only stream with. Properties

InteractionsStreamState

Properties Related: StreamInteraction

OwnIdentity

The session’s own identity, as the execution-key pickers offer it. Properties

StreamInteraction

A live interaction plus the client-maintained answered flag.

SystemKindsProvider

Fetch the kind-status table once the caller is authenticated and hold it as SDK state. Gated on isAuthenticated (the table is an authed read), so the login screen never fires a doomed request; a fetch failure settles into failed QUIETLY — no unauthorized routing, no loud error — because the consuming affordance falls back to its reactive OFF handling. Parameters

SystemKindsState

Theme

ThemePreference

ThemeProvider

Parameters Related: ThemeState

ThemeState

Properties Related: Theme, ThemePreference

ToolDisplayNamesContextValue

Properties Related: ToolDisplayNamesState

ToolDisplayNamesProvider

Fetch the tool-meta overlay once the caller is authenticated and hold its display-name map as SDK state. Gated on isAuthenticated (the overlay is an authed read), so the login screen never fires a doomed request; a fetch failure settles into failed QUIETLY, because the consuming pickers fall back to the bare raw name. reload re-fetches on demand, so an app-level display-name write refreshes every picker without a remount. Parameters Related: ToolDisplayNamesContextValue

ToolDisplayNamesState

UnauthorizedProvider

boundExecutionKey

The key a write sends: the form’s value; with access control off and a blank value, the fill key. Parameters Related: ExecutionKeyBinding

coversAnyRoute

Whether the projection reaches ANY route under one of prefixes — the declarative test behind nav filtering and plugin requiredCapabilities. A routes[].path (a concrete path, or a route template such as /api/presets/{name}) covers a prefix when it is that prefix or a segment-nested descendant of it; a dynamic route_patterns[] entry covers a prefix through its served open_prefix — the literal the server rules every path starting with is reachable — when it overlaps the prefix at a segment boundary. A null open prefix (a pattern whose matched set is not a clean prefix) covers nothing by prefix: under-showing is safe, over-showing is the bug. Parameters

coversRoute

Whether the projection reaches a specific WRITE route — an EXACT path whose admitted methods include method. A templated route is listed under its template path (/api/presets/{name}) with the methods the caller’s grant admits on a representative instance of it, so a caller names the template on both sides. This is the method-aware companion to coversAnyRoute: a read/nav surface gates path-only (any method reaching a prefix means the surface is navigable), but an action that issues method path must gate on the method too, or a caller whose jq fence admits only GET on path would be shown a control that 403s on submit (projection ⊆ gate). Only routes are consulted: dynamic route_patterns carry no method, so no write capability can be soundly inferred from them, and a synthetic TOTAL (admin) projection carries no concrete routes at all — callers short-circuit it with isFullProjection before reaching here. Under-showing is safe (the server stays the authority); over-showing an action the gate denies is the bug. Parameters

coversWrite

Whether a WRITE control may be shown/enabled for this caller — the fail-closed, method-aware gate the features fold together with any deployment-level read-only flag (the projection ⊆ gate invariant, in one place). It is true ONLY once the projection is ready AND either it is a full (admin / gate-off) projection or it reaches method path. While the projection is loading/failed it is false — a write control never enables before the gate is known (fail closed; not-ready ⇒ disabled/read-only). A templated write route is gated by its template path: the projection lists it with the methods the caller’s grant admits on a representative instance. A credential fenced per instance is decided at the server, which answers 403 on submit where the fence denies that instance. Under-showing is safe (the server stays the authority); over-showing a write the gate denies is the bug. Parameters Related: CapabilityState

isFullProjection

Whether the projection is the synthetic TOTAL projection — the admin session (the condition-free "*" discriminator) and the gate-off local-dev projection alike. This is projection.admin === true and NOTHING else: a seeded editor/viewer carries ["*"] scopes PLUS a jq fence, so keying on "*" scopes would hand every editor/viewer the unfiltered nav and a wall of 403s on the admin routes their fence denies. Keying on admin makes editor/viewer SCOPED sessions whose nav is filtered by their projected routes, which is exactly right — and the gate-off synthetic projection (admin: true, empty routes) still reads as full, so an AC-disabled deployment shows everything. Parameters

toolDisplayLabel

The option label for a raw tool name under a display-name map: Display (raw) when a display name maps the name and is non-empty AND differs from the raw name, else the bare raw name. Shared so every tool picker labels identically. Parameters

useApi

Related: ApiClient

useAuth

Related: AuthState

useBreakpoint

Related: BreakpointState

useCanWrite

Whether a WRITE control may be shown for the current caller — the single boundary primitive a feature calls to hide a control whose method path the caller’s projection cannot reach. It reads the live capability state and folds it through coversWrite: true only once the projection is ready AND it is a full (admin / gate-off) projection or it reaches method path; while the projection is loading/failed it is false (fail closed — no write control before the gate is known). method defaults to POST, the common write verb; pass the exact verb for a PUT/PATCH/DELETE control. Parameters

useCapabilities

Related: CapabilityContextValue

useExecutionKeyBinding

The execution-key binding of the live session. Related: ExecutionKeyBinding

useFeatureOff

Whether kind is OFF — the single predicate a write affordance folds in to hide itself before a doomed write. It is true once the table is ready AND that kind’s row carries state: 'off', or once a write refusal revealed the kind OFF (useReportFeatureOff). Otherwise — the table loading/failed, no provider mounted, the kind unknown — it is false (not-off until known: under-hiding is safe, a write’s 501 refusal still reveals a genuinely-off feature). Parameters

useFeatureOffMessage

The OFF row’s server detail for kind — the proactive counterpart to a write refusal’s message, so a proactively-hidden surface shows the SERVER’s own remediation line rather than a client-composed env-var string; for a kind only a write refusal revealed OFF, that refusal’s message. null whenever the kind is not OFF, mirroring useFeatureOff’s not-off-until-known default. Parameters

useInteractionsStream

Props Related: InteractionsStreamOptions, InteractionsStreamState

useOnUnauthorized

useReloadToolDisplayNames

Re-fetch the display-name overlay. A surface that writes a display name calls this so the app-level provider — and every picker reading it — refreshes alongside the surface’s own list invalidation. A no-op when no provider is mounted.

useSystemKinds

The live kind-status state. Falls back to loading when no provider is mounted, so a consumer rendered outside the shell reads every kind as not-off rather than throwing — the fail-open default this proactive-hiding idiom relies on. Related: SystemKindsState

useTheme

Related: ThemeState

useToolDisplayNames

The live raw-name → display-name map — {} while the overlay is loading/failed, no provider is mounted, or no row carries a display name. A tool picker folds this into its option labels; an unmapped name reads the bare raw name.