Suite lanes
Each lane renders from generated suite manifests, mounted React route artifacts, and primitive-factory state evidence: app-shell navigation, route maps, page/block/component parts, install graph metadata, and long-content/empty/error states. These are local server-rendered React implementations, not a claim of hosted runtime.
Solo / general workflow (solo)
generated shell route
Solo / general-workflow suite foundation: install-graph descriptor for the calendar, forms, docs, agent, tasks, and simple CRM/content/admin lane.
manifest @jami-studio/solo-suite
schema version 2026-06-09.registry-foundation
install graph solo-suite -> jami-theme, button, panel, text-field, data-list, agent-panel, docs-source-panel, solo-app, solo-today-page, solo-docs-page, solo-agenda-block, solo-task-queue-block, solo-agent-status-block, solo-docs-sources-block, solo-forms-block
Installed registry items
jami-themeregistry:theme · v0.0.0-contract.20260609 installable buttonregistry:ui · v0.0.0-contract.20260609 installable panelregistry:ui · v0.0.0-contract.20260609 installable text-fieldregistry:ui · v0.0.0-contract.20260609 installable data-listregistry:component · v0.0.0-contract.20260609 installable agent-panelregistry:component · v0.0.0-contract.20260609 installable docs-source-panelregistry:component · v0.0.0-contract.20260609 installable solo-appregistry:app · v0.0.0-contract.20260609 installable solo-today-pageregistry:page · v0.0.0-contract.20260609 installable solo-docs-pageregistry:page · v0.0.0-contract.20260609 installable solo-agenda-blockregistry:block · v0.0.0-contract.20260609 installable solo-task-queue-blockregistry:block · v0.0.0-contract.20260609 installable solo-agent-status-blockregistry:block · v0.0.0-contract.20260609 installable solo-docs-sources-blockregistry:block · v0.0.0-contract.20260609 installable solo-forms-blockregistry:block · v0.0.0-contract.20260609 installable
app shell app.solo.shell workspace-with-rail
routes 2
pages 2
blocks 5
Route map
Today command center /solo/today
page.solo.today · block.solo.agenda, block.solo.task-queue, block.solo.agent-status
Docs and sources /solo/docs
page.solo.docs · block.solo.docs-sources, block.solo.forms
Block and component parts
agent-panel button data-list docs-source-panel panel text-field
State coverage
long content A long source title, task description, or calendar note wraps inside the shell without horizontal overflow.
empty No tasks are due; the data-list announces an empty status instead of hiding the section.
error Agent status is displayed as an error panel with no executable action wiring.
Primitive-factory implementation evidence
app implementation studio-ui/suites/solo/solo-app.implementation.json
status mounted-react-suite-app
primitive factory 2026-06-09.framework-neutral-component-factory
runtime boundary React runtime: true · hosted: false · harness execution: false
rendered parts 2 pages · 5 blocks
Agenda data-list
studio-ui/suites/solo/blocks/solo-agenda-block.block.implementation.json
ready long-content
Task queue data-list
studio-ui/suites/solo/blocks/solo-task-queue-block.block.implementation.json
ready empty
Agent status agent-panel
studio-ui/suites/solo/blocks/solo-agent-status-block.block.implementation.json
ready error
Docs sources docs-source-panel
studio-ui/suites/solo/blocks/solo-docs-sources-block.block.implementation.json
ready long-content
Quick form text-field
studio-ui/suites/solo/blocks/solo-forms-block.block.implementation.json
ready invalid
Surface vocabulary (described in generated shell; mounted React route artifacts emitted locally)
calendar forms docs agent tasks crm content admin
Business operations (business-ops)
generated shell route
Business-operations suite foundation: install-graph descriptor for the staff, scheduling, forms, training, compliance, and operational-dashboard lane.
manifest @jami-studio/business-ops-suite
schema version 2026-06-09.registry-foundation
install graph business-ops-suite -> jami-theme, button, panel, text-field, data-list, agent-panel, business-ops-app, business-ops-dashboard-page, business-ops-staff-page, business-ops-kpis-block, business-ops-exceptions-block, business-ops-agent-review-block, business-ops-staff-table-block, business-ops-training-form-block
Installed registry items
jami-themeregistry:theme · v0.0.0-contract.20260609 installable buttonregistry:ui · v0.0.0-contract.20260609 installable panelregistry:ui · v0.0.0-contract.20260609 installable text-fieldregistry:ui · v0.0.0-contract.20260609 installable data-listregistry:component · v0.0.0-contract.20260609 installable agent-panelregistry:component · v0.0.0-contract.20260609 installable business-ops-appregistry:app · v0.0.0-contract.20260609 installable business-ops-dashboard-pageregistry:page · v0.0.0-contract.20260609 installable business-ops-staff-pageregistry:page · v0.0.0-contract.20260609 installable business-ops-kpis-blockregistry:block · v0.0.0-contract.20260609 installable business-ops-exceptions-blockregistry:block · v0.0.0-contract.20260609 installable business-ops-agent-review-blockregistry:block · v0.0.0-contract.20260609 installable business-ops-staff-table-blockregistry:block · v0.0.0-contract.20260609 installable business-ops-training-form-blockregistry:block · v0.0.0-contract.20260609 installable
app shell app.business-ops.shell ops-dashboard
routes 2
pages 2
blocks 5
Route map
Operations dashboard /business-ops/dashboard
page.business-ops.dashboard · block.business-ops.kpis, block.business-ops.exceptions, block.business-ops.agent-review
Staff and training /business-ops/staff
page.business-ops.staff · block.business-ops.staff-table, block.business-ops.training-form
Block and component parts
agent-panel button data-list panel text-field
State coverage
long content A compliance exception with a long policy name wraps inside row cells and cards.
empty No open schedule exceptions are announced as an empty operational state.
error A review queue error is shown without retrying or executing harness actions.
Primitive-factory implementation evidence
app implementation studio-ui/suites/business-ops/business-ops-app.implementation.json
status mounted-react-suite-app
primitive factory 2026-06-09.framework-neutral-component-factory
runtime boundary React runtime: true · hosted: false · harness execution: false
rendered parts 2 pages · 5 blocks
Operational KPIs data-list
studio-ui/suites/business-ops/blocks/business-ops-kpis-block.block.implementation.json
ready long-content
Schedule exceptions data-list
studio-ui/suites/business-ops/blocks/business-ops-exceptions-block.block.implementation.json
ready empty error
Review queue agent-panel
studio-ui/suites/business-ops/blocks/business-ops-agent-review-block.block.implementation.json
ready error
Staff records data-list
studio-ui/suites/business-ops/blocks/business-ops-staff-table-block.block.implementation.json
ready long-content
Training form text-field
studio-ui/suites/business-ops/blocks/business-ops-training-form-block.block.implementation.json
ready invalid
Surface vocabulary (described in generated shell; mounted React route artifacts emitted locally)
staff scheduling forms training compliance operations-dashboard
Mixed media (mixed-media)
generated shell route
Mixed-media suite foundation: install-graph descriptor for the assets, generation, editing, pipelines, review, publishing, and media-library lane.
manifest @jami-studio/mixed-media-suite
schema version 2026-06-09.registry-foundation
install graph mixed-media-suite -> jami-theme, button, panel, data-list, agent-panel, media-grid, mixed-media-app, mixed-media-library-page, mixed-media-pipeline-page, mixed-media-assets-block, mixed-media-metadata-block, mixed-media-pipeline-block, mixed-media-review-agent-block
Installed registry items
jami-themeregistry:theme · v0.0.0-contract.20260609 installable buttonregistry:ui · v0.0.0-contract.20260609 installable panelregistry:ui · v0.0.0-contract.20260609 installable data-listregistry:component · v0.0.0-contract.20260609 installable agent-panelregistry:component · v0.0.0-contract.20260609 installable media-gridregistry:component · v0.0.0-contract.20260609 installable mixed-media-appregistry:app · v0.0.0-contract.20260609 installable mixed-media-library-pageregistry:page · v0.0.0-contract.20260609 installable mixed-media-pipeline-pageregistry:page · v0.0.0-contract.20260609 installable mixed-media-assets-blockregistry:block · v0.0.0-contract.20260609 installable mixed-media-metadata-blockregistry:block · v0.0.0-contract.20260609 installable mixed-media-pipeline-blockregistry:block · v0.0.0-contract.20260609 installable mixed-media-review-agent-blockregistry:block · v0.0.0-contract.20260609 installable
app shell app.mixed-media.shell media-production
routes 2
pages 2
blocks 4
Route map
Asset library /mixed-media/library
page.mixed-media.library · block.mixed-media.assets, block.mixed-media.metadata
Generation pipeline /mixed-media/pipeline
page.mixed-media.pipeline · block.mixed-media.pipeline, block.mixed-media.review-agent
Block and component parts
agent-panel button data-list media-grid panel
Assets media-grid
empty long-content
Asset metadata data-list
long-content
Pipeline runs data-list
error
Review agent agent-panel
error
State coverage
long content Generated asset filenames, prompt excerpts, and publishing notes wrap inside the media shell.
empty An empty asset collection keeps a visible media-grid state.
error Pipeline errors render as status panels without invoking provider or harness actions.
Primitive-factory implementation evidence
app implementation studio-ui/suites/mixed-media/mixed-media-app.implementation.json
status mounted-react-suite-app
primitive factory 2026-06-09.framework-neutral-component-factory
runtime boundary React runtime: true · hosted: false · harness execution: false
rendered parts 2 pages · 4 blocks
Assets media-grid
studio-ui/suites/mixed-media/blocks/mixed-media-assets-block.block.implementation.json
ready empty long-content
Asset metadata data-list
studio-ui/suites/mixed-media/blocks/mixed-media-metadata-block.block.implementation.json
ready long-content
Pipeline runs data-list
studio-ui/suites/mixed-media/blocks/mixed-media-pipeline-block.block.implementation.json
ready error
Review agent agent-panel
studio-ui/suites/mixed-media/blocks/mixed-media-review-agent-block.block.implementation.json
ready error
Surface vocabulary (described in generated shell; mounted React route artifacts emitted locally)
assets generation editing pipelines review publishing library
Research / writing (research-writing)
generated shell route
Research / writing suite foundation: install-graph descriptor for the sources, notes, citations, briefs, documents, outlines, and knowledge-work lane.
manifest @jami-studio/research-writing-suite
schema version 2026-06-09.registry-foundation
install graph research-writing-suite -> jami-theme, button, panel, text-field, data-list, agent-panel, docs-source-panel, research-writing-app, research-writing-sources-page, research-writing-brief-page, research-writing-sources-block, research-writing-citations-block, research-writing-outline-block, research-writing-agent-review-block
Installed registry items
jami-themeregistry:theme · v0.0.0-contract.20260609 installable buttonregistry:ui · v0.0.0-contract.20260609 installable panelregistry:ui · v0.0.0-contract.20260609 installable text-fieldregistry:ui · v0.0.0-contract.20260609 installable data-listregistry:component · v0.0.0-contract.20260609 installable agent-panelregistry:component · v0.0.0-contract.20260609 installable docs-source-panelregistry:component · v0.0.0-contract.20260609 installable research-writing-appregistry:app · v0.0.0-contract.20260609 installable research-writing-sources-pageregistry:page · v0.0.0-contract.20260609 installable research-writing-brief-pageregistry:page · v0.0.0-contract.20260609 installable research-writing-sources-blockregistry:block · v0.0.0-contract.20260609 installable research-writing-citations-blockregistry:block · v0.0.0-contract.20260609 installable research-writing-outline-blockregistry:block · v0.0.0-contract.20260609 installable research-writing-agent-review-blockregistry:block · v0.0.0-contract.20260609 installable
app shell app.research-writing.shell document-workbench
routes 2
pages 2
blocks 4
Route map
Sources and citations /research-writing/sources
page.research-writing.sources · block.research-writing.sources, block.research-writing.citations
Brief drafting /research-writing/brief
page.research-writing.brief · block.research-writing.outline, block.research-writing.agent-review
Block and component parts
agent-panel button data-list docs-source-panel panel text-field
State coverage
long content Long source names, citation strings, and outline sections wrap inside the writing shell.
empty No citations selected is displayed as an empty table/list state.
error Review-agent errors are presented as inert status without executing actions.
Primitive-factory implementation evidence
app implementation studio-ui/suites/research-writing/research-writing-app.implementation.json
status mounted-react-suite-app
primitive factory 2026-06-09.framework-neutral-component-factory
runtime boundary React runtime: true · hosted: false · harness execution: false
rendered parts 2 pages · 4 blocks
Sources docs-source-panel
studio-ui/suites/research-writing/blocks/research-writing-sources-block.block.implementation.json
ready long-content
Citations data-list
studio-ui/suites/research-writing/blocks/research-writing-citations-block.block.implementation.json
ready empty
Outline text-field
studio-ui/suites/research-writing/blocks/research-writing-outline-block.block.implementation.json
ready invalid
Writing review agent-panel
studio-ui/suites/research-writing/blocks/research-writing-agent-review-block.block.implementation.json
ready error
Surface vocabulary (described in generated shell; mounted React route artifacts emitted locally)
sources notes citations briefs documents outlines knowledge
Mounted React suite routes
Server-rendered React app/page/block routes from packages/ui/src/suites.mjs. These local preview artifacts use the resident wrappers and generated suite manifests; hosted suite routes, hosted runtime state, persistence, backend registration, and harness execution are not claimed.
solo
mounted React route
2026-06-12.mounted-react-suite-routes
source packages/ui/src/suites.mjs
hosted runtime false
harness execution false
business-ops
mounted React route
2026-06-12.mounted-react-suite-routes
source packages/ui/src/suites.mjs
hosted runtime false
harness execution false
mixed-media
mounted React route
2026-06-12.mounted-react-suite-routes
source packages/ui/src/suites.mjs
hosted runtime false
harness execution false
research-writing
mounted React route
2026-06-12.mounted-react-suite-routes
source packages/ui/src/suites.mjs
hosted runtime false
harness execution false
Default kit options
Selectable brand/template descriptors generated through registry theme items. They express token deltas and workbench presentation choices against the accepted token model; none claims final brand canon or redistributes the exploratory logo source.
Sharper suite-shell direction for mixed-media and business operations: blue command accents, tighter radius, and registry-first install cards.
light.accent
dark.accent
focusRing
registry item command-grid-brand
default kit role suite shell stress-test candidate
brand canon not final canon
seed use Exploratory cue reference only; no logo source or final mark is redistributed by this descriptor.
Select
CLI inspectable
Token deltas semantic.light.accent -> #315C8Esemantic.dark.accent -> #9BB7E3componentState.focusRing -> #A64B72radius.control -> 4pxspacing.control -> 7pxshell.dockWidth -> 280px
Best fit mixed-media suite business operations suite registry item choice and install inspection
Open risks can feel too cold unless paired with the soft character cue requires careful contrast checks for blue accent on dark surfaces
Editorial Studio
selectable
A restrained creator-workbench option with richer plum accent, quieter spacing, and wordmark-first presentation for docs and writing suites.
light.accent
dark.accent
focusRing
registry item editorial-studio-brand
default kit role editorial suite candidate
brand canon not final canon
seed use Exploratory cue reference only; no logo source or final mark is redistributed by this descriptor.
Select
CLI inspectable
Token deltas semantic.light.accent -> #6F3D5Fsemantic.dark.accent -> #D8A5C8componentState.focusRing -> #237C7Aradius.control -> 8pxspacing.control -> 10pxshell.dockWidth -> 340px
Best fit research-writing suite docs and source panels brand book and documentation previews
Open risks must avoid drifting into a cream-only editorial page needs sharper app-chrome treatment for dense operations screens
Studio Console
selectable
Dense workbench shell with character cues reduced to compact chrome, teal command affordances, and controlled warm-magenta emphasis.
light.accent
dark.accent
focusRing
registry item studio-console-brand
default kit role operational default candidate
brand canon not final canon
seed use Exploratory cue reference only; no logo source or final mark is redistributed by this descriptor.
Select
CLI inspectable
Token deltas semantic.light.accent -> #2F6F73semantic.dark.accent -> #76C6BEcomponentState.focusRing -> #C14D84radius.control -> 6pxspacing.control -> 8pxshell.dockWidth -> 300px
Best fit default kit install preview CLI and registry package cards operator-heavy workbench sessions
Open risks can become too utilitarian if the character cue is removed entirely needs a production small mark before package badges use it
Vocabulary schema
Resident component prop schemas and React-style descriptors loaded from packages/ui. The renderer uses this handshake to reject stale vocabulary versions and unsupported props before it emits an inert render tree.
handshake 2026-06-09.vocabulary-handshake
payload schemas 2026-06-09
prop schema 2026-06-09.ui-props
factory source packages/ui/src/primitive-components.mjs
invalid props invalid
unsupported components unsupported
button
primitive
framework-neutral-component-factory
registry item @jami-studio/button
prop schema 2026-06-09.ui-props
element button
component source packages/ui/src/primitive-components.mjs
a11y role button
label stringariaLabel stringvariant primary | secondary | ghost | dangersize compact | regulardisabled booleanloading booleanactionRef string
panel
primitive
framework-neutral-component-factory
registry item @jami-studio/panel
prop schema 2026-06-09.ui-props
element section
component source packages/ui/src/primitive-components.mjs
a11y role region
title stringariaLabel stringtone neutral | accent | dangerempty booleanerror string
text-field
primitive
framework-neutral-component-factory
registry item @jami-studio/text-field
prop schema 2026-06-09.ui-props
element input
component source packages/ui/src/primitive-components.mjs
a11y role textbox
label stringvalue stringplaceholder stringdisabled booleaninvalid booleanerrorText stringhelperText string
data-list
component
framework-neutral-component-factory
registry item @jami-studio/data-list
prop schema 2026-06-09.ui-props
element table | ul
component source packages/ui/src/primitive-components.mjs
a11y role table | list
title stringariaLabel stringcolumns arrayrows arrayempty booleanloading booleanerror string
agent-panel
component
framework-neutral-component-factory
registry item @jami-studio/agent-panel
prop schema 2026-06-09.ui-props
element section
component source packages/ui/src/primitive-components.mjs
a11y role status
title stringagentName stringstatus idle | running | needs_attention | denied | erroractionRefs arrayartifactViewRefs array
docs-source-panel
component
framework-neutral-component-factory
registry item @jami-studio/docs-source-panel
prop schema 2026-06-09.ui-props
element aside
component source packages/ui/src/primitive-components.mjs
a11y role complementary
title stringariaLabel stringsources arrayselectedSourceId stringredacted booleanempty boolean
media-grid
component
framework-neutral-component-factory
registry item @jami-studio/media-grid
prop schema 2026-06-09.ui-props
element ul
component source packages/ui/src/primitive-components.mjs
a11y role list
title stringariaLabel stringitems arrayselectedItemId stringloading booleanempty booleanerror string
Radix/React wrapper slice
Server-rendered React output from the resident wrapper slice. Button uses Radix Slot for asChild; text-field uses Radix Label; composed display components are React wrappers over source-owned tokenized markup. The data-only renderer still rejects package imports.
implemented button panel text-field data-list agent-panel docs-source-panel media-grid
source packages/ui/src/radix-react-wrappers.mjs
resident vocabulary wrappers complete-local-source
pending wrappers none in resident vocabulary
JamiButton
button
implemented-radix-react-wrapper-slice
Review evidence
example button-action
source packages/ui/src/radix-react-wrappers.mjs
role Radix Slot-compatible asChild action primitive
renderer execution false
@radix-ui/react-slot@1.2.5
Rendered HTML <button type="button" class="jami-button" data-variant="primary" data-size="regular" data-action-ref="act_review_evidence">Review evidence</button>
JamiButton
button
implemented-radix-react-wrapper-slice
example button-as-child
source packages/ui/src/radix-react-wrappers.mjs
role Radix Slot-compatible asChild action primitive
renderer execution false
@radix-ui/react-slot@1.2.5
Rendered HTML <a href="#suite-solo" class="jami-button" data-variant="secondary" data-size="regular">Open solo suite</a>
JamiPanel
panel
implemented-radix-react-wrapper-slice
Wrapper evidence React wrapper surface using token classes.
example panel-region
source packages/ui/src/radix-react-wrappers.mjs
role React ref-forwarding region primitive aligned to the resident panel schema
renderer execution false
React wrapper
Rendered HTML <section class="jami-panel" data-tone="accent" role="region" aria-label="Wrapper evidence"><h3 class="jami-panel-title">Wrapper evidence</h3>React wrapper surface using token classes.</section>
JamiTextField
text-field
implemented-radix-react-wrapper-slice
Search sources Radix Label associates the label with the input.
example text-field-labelled
source packages/ui/src/radix-react-wrappers.mjs
role Radix Label-backed labelled text input primitive
renderer execution false
@radix-ui/react-label@2.1.9
Rendered HTML <label class="jami-field" for="jami-field-search-sources"><span class="jami-field-label">Search sources</span><input id="jami-field-search-sources" type="text" placeholder="Find a source" aria-describedby="jami-field-search-sources-help" name="jami-field-search-sources"/><span id="jami-field-search-sources-help">Radix Label associates the label with the input.</span></label>
JamiDataList
data-list
implemented-radix-react-wrapper-slice
example data-list-records
source packages/ui/src/radix-react-wrappers.mjs
role React display component for dense table/list data with no runtime data execution
renderer execution false
React wrapper
Rendered HTML <section class="jami-data-list" role="region" aria-label="Evidence queue"><h3 class="jami-data-list-title">Evidence queue</h3><table class="jami-data-list-table"><thead><tr><th scope="col">Name</th></tr></thead><tbody><tr><td>Wrapper provenance</td></tr></tbody></table></section>
JamiAgentPanel
agent-panel
implemented-radix-react-wrapper-slice
Review agent needs attention
example agent-panel-display-only
source packages/ui/src/radix-react-wrappers.mjs
role React display-only action and artifact reference panel
renderer execution false
React wrapper
Rendered HTML <section class="jami-agent-panel" role="status" aria-live="polite" aria-label="Review agent" data-status="needs_attention"><h3>Review agent</h3><p>needs attention</p><ul class="jami-action-ref-list" aria-label="Action references"><li data-action-ref="act_review_evidence">act_review_evidence</li></ul><ul class="jami-artifact-ref-list" aria-label="Artifact view references"><li data-artifact-view-ref="artv_trace_review">artv_trace_review</li></ul></section>
JamiDocsSourcePanel
docs-source-panel
implemented-radix-react-wrapper-slice
example docs-source-panel-redacted
source packages/ui/src/radix-react-wrappers.mjs
role React display-only source and citation panel with redaction state
renderer execution false
React wrapper
Rendered HTML <aside class="jami-docs-source-panel" role="complementary" aria-label="Sources" data-redacted="true"><h3>Sources</h3><p role="status">Source details are redacted.</p><ul class="jami-source-list"><li data-source-id="src_foundation">Foundation alignment</li></ul></aside>
JamiMediaGrid
media-grid
implemented-radix-react-wrapper-slice
example media-grid-artifacts
source packages/ui/src/radix-react-wrappers.mjs
role React display-only media and artifact gallery component
renderer execution false
React wrapper
Rendered HTML <section class="jami-media-grid" role="region" aria-label="Artifacts"><h3>Artifacts</h3><ul class="jami-media-grid-list"><li data-media-id="art_wrapper">Wrapper screenshot placeholder</li></ul></section>
Resident renderer
Each card is a real renderer-produced render tree for a checked compatibility fixture. Valid payloads render resident components; action references render display-only (executable: false); unknown, unsafe, or malformed payloads fail closed to an inert fallback.
uiPayload.basic.buttonRenderable Save
actionRef.pending-approval.publish-releaseDisplay only
state pending_approval
risk external
policyScope release.publish
confirmationMode approval_required
executable false artifactView.basic.documentDisplay only
artifactViewId artv_theme_report
artifactId art_theme_report_001
promotionState accepted studio_ui text
suiteRef.solo.minimumDisplay only
lane custom
appShellId @jami-studio/solo-suite routeMap
routeId home
path /
routeId tasks
path /tasks Display-only reference · executable: false
themeRef.factory.jami-warmDisplay only
tokenSchemaVersion 2026-06-09.token-foundation
sourceKind factory
registryItemId @jami-studio/jami-warm-theme
restorePackage @jami-studio/ui Display-only reference · executable: false
actionRef.denied.delete-artifactDenied
state denied
risk destructive
policyScope artifact.lifecycle
confirmationMode approval_required
executable false Denied by harness policy: missing_approval
actionRef.invalid.denied-executableDenied
state denied
risk destructive
policyScope artifact.lifecycle
confirmationMode approval_required
executable false Denied by harness policy
uiPayload.unsupported.componentUnsupported This component is not supported by the resident renderer.
Why (1) component unknown-chart is not allowlisted uiPayload.invalid.bad-prop-typeInvalid (failed closed) This payload was rejected by the resident renderer.
Why (1) prop invalid must be boolean uiPayload.invalid.bad-propsInvalid (failed closed) This payload was rejected by the resident renderer.
Why (1) unsupported prop href for button uiPayload.invalid.bad-refsInvalid (failed closed) This payload was rejected by the resident renderer.
Why (3) payloadId must use uip_ prefix actionRef action.save-theme must use act_ prefix artifactViewRef artifact.theme-report must use artv_ prefix uiPayload.invalid.dangerous-htmlInvalid (failed closed) This payload was rejected by the resident renderer.
Why (3) unsafe prop dangerouslySetInnerHTML unsafe prop __html HTML-like string is not allowed uiPayload.invalid.event-handlerInvalid (failed closed) This payload was rejected by the resident renderer.
Why (1) uiPayload.invalid.foreign-namespaceInvalid (failed closed) This payload was rejected by the resident renderer.
Why (1) componentRef namespace must be @jami-studio/ui uiPayload.invalid.htmlInvalid (failed closed) This payload was rejected by the resident renderer.
Why (1) HTML-like string is not allowed uiPayload.invalid.inline-secretInvalid (failed closed) This payload was rejected by the resident renderer.
Why (1) secret-bearing prop authorization must be a harness secret reference uiPayload.invalid.invalid-enumInvalid (failed closed) This payload was rejected by the resident renderer.
Why (1) prop variant must be one of primary, secondary, ghost, danger uiPayload.invalid.javascript-urlInvalid (failed closed) This payload was rejected by the resident renderer.
Why (1) javascript: URL is not allowed uiPayload.invalid.lowercase-event-handlerInvalid (failed closed) This payload was rejected by the resident renderer.
Why (1) uiPayload.invalid.package-importInvalid (failed closed) This payload was rejected by the resident renderer.
Why (1) unsafe prop packageImport uiPayload.invalid.radix-wrapper-importInvalid (failed closed) This payload was rejected by the resident renderer.
Why (1) unsafe prop packageImport uiPayload.invalid.react-elementInvalid (failed closed) This payload was rejected by the resident renderer.
Why (1) uiPayload.invalid.stale-vocabulary-handshakeInvalid (failed closed) This payload was rejected by the resident renderer.
Why (1) unsupported vocabularyHandshakeVersion renderer.error.invalid-propsError The resident renderer reported an error.invalid_props
Workbench presentation panels
Harness-originated refs (artifact views, evidence packets, run-event traces, memory records, context packs, action refs) presented through the workbench seam as inert operational descriptors. Redaction, freshness, and denial are displayed, never decided here.
denied
type element
component action-slot props
label Publish release
risk external
policyScope release:publish
confirmationMode owner_required
state denied action
actionId act_publish_release
route harness://actions/publish-release
executable false denial
reason Actor lacks release:publish scope.
auditRef aud_denied_publish_release children
type text
value Publish release missing-source
artifactViewId artv_orphan
artifactId art_orphan_001
artifactKind report
title Orphaned artifact
promotionState draft renderer available
rendererId plain-text
mode text
componentRef —
unsupportedReason — selected
rendererId plain-text
mode text
componentRef —
unsupportedReason —
supported true
provenance — ready
artifactViewId artv_run_trace
artifactId art_run_trace_001
artifactKind trace
title Run trace
promotionState accepted renderer available
rendererId studio-ui.artifact-card
mode studio_ui
componentRef @jami-studio/ui/artifact-card
unsupportedReason —
rendererId plain-json
mode json
componentRef —
unsupportedReason — selected
rendererId studio-ui.artifact-card
mode studio_ui
componentRef @jami-studio/ui/artifact-card
unsupportedReason —
supported true provenance
runId run_contract_spine
sourceCommit contract-fixture
evidenceRef ev_contract_validation unsupported
artifactViewId artv_unsupported
artifactId art_unsupported_001
artifactKind image
title Unsupported media artifact
promotionState reviewed renderer available
rendererId vendor.canvas
mode studio_ui
componentRef @vendor/ui/canvas
unsupportedReason foreign component namespace
selected —
supported false provenance
runId run_contract_spine
sourceCommit contract-fixture
evidenceRef ev_contract_validation empty
subkind contextPack
contextPackId ctx_empty_assembly
runId run_stream4_foundation
assembledAt 2026-06-09T12:00:00.000Z
deterministicHash sha256:empty
itemCount 0
items none droppedItems
sourceRef mem_secret_adjacent_note
reason token_budget ready
subkind contextPack
contextPackId ctx_stream4_foundation
runId run_stream4_foundation
assembledAt 2026-06-09T12:00:00.000Z
deterministicHash sha256:fixture
itemCount 1 items
sourceRef mem_stream4_contract_note
kind retrieved
priority 10
inclusionReason permission and query matched
citationId cit_stream4_contract_note
freshnessClass current_run
tokenEstimate 10 droppedItems
sourceRef mem_secret_adjacent_note
reason permission_denied ready
evidenceId ev_contract_generation
subject Harness contract generation and validation
freshnessClass current_run source
repo jami-harness
commit working-tree
recordedAt 2026-06-09T12:00:00.000Z redaction
containsSecrets false
privatePayloadPolicy none commands
command pnpm contracts:validate
status passed
recordedAt 2026-06-09T12:00:00.000Z
unavailableReason — redacted
evidenceId ev_deploy_run
subject Deployment run evidence with redacted payloads
freshnessClass same_day source
repo jami-harness
commit working-tree
recordedAt 2026-06-09T13:00:00.000Z redaction
containsSecrets true
privatePayloadPolicy redacted commands
command deploy:apply
status passed
recordedAt 2026-06-09T13:00:00.000Z
unavailableReason — stale
evidenceId ev_old_audit
subject Audit evidence captured before the current source lock
freshnessClass stale source
repo jami-harness
commit 0000000
recordedAt 2026-01-01T00:00:00.000Z redaction
containsSecrets false
privatePayloadPolicy none commands
command pnpm contracts:validate
status not_run
recordedAt 2026-01-01T00:00:00.000Z
unavailableReason — missing-source
subkind memoryRecord
memoryId not_a_valid_memory_id
memoryKind project
summary Memory ref whose identifiers do not validate.
content — scope
projectId proj_jami_harness
source — freshness
class current_run
asOf 2026-06-09T12:00:00.000Z retention
policy project
forgetAfter 2026-07-09T12:00:00.000Z redaction
classification internal
mode none
redactedFields none citation
citationId cit_invalid_note
label Invalid note
freshnessClass current_run ready
subkind memoryRecord
memoryId mem_stream4_contract_note
memoryKind project
summary Stream 4 owns evidence and memory contracts, not hosted backends.
content Stream 4 adds local, replaceable foundations only. scope
projectId proj_jami_harness source
runId run_stream4_foundation
recordedAt 2026-06-09T12:00:00.000Z
artifactRef art_stream4_evidence freshness
class current_run
asOf 2026-06-09T12:00:00.000Z retention
policy project
forgetAfter 2026-07-09T12:00:00.000Z redaction
classification internal
mode none
redactedFields none citation
citationId cit_stream4_contract_note
label Stream 4 foundation note
freshnessClass current_run redacted
subkind memoryRecord
memoryId mem_secret_adjacent_note
memoryKind tool_output
summary Deploy credentials note
content — scope
projectId proj_jami_harness source
runId run_stream4_foundation
recordedAt 2026-06-09T12:00:00.000Z
artifactRef — freshness
class current_run
asOf 2026-06-09T12:00:00.000Z retention
policy session
forgetAfter 2026-06-10T12:00:00.000Z redaction
classification secret_adjacent
mode redacted citation
citationId cit_secret_adjacent_note
label Secret adjacent note
freshnessClass current_run stale
subkind memoryRecord
memoryId mem_stale_project_note
memoryKind project
summary Earlier foundation note superseded by a newer run.
content Kept for provenance; freshness is stale. scope
projectId proj_jami_harness source
runId run_earlier_foundation
recordedAt 2026-01-02T12:00:00.000Z
artifactRef — freshness
class stale
asOf 2026-01-02T12:00:00.000Z retention
policy project
forgetAfter 2026-07-09T12:00:00.000Z redaction
classification internal
mode none
redactedFields none citation
citationId cit_stale_project_note
label Stale project note
freshnessClass stale empty
runId run_contract_spine
events none error
runId run_contract_spine
eventCount 2 events
eventId evt_run_started
sequence 0
occurredAt 2026-06-09T04:00:00.000Z
eventType run.started
traceId trace_err
spanId span_0
rendererState —
policyDecision —
eventId evt_renderer_error
sequence 1
occurredAt 2026-06-09T04:00:01.000Z
eventType renderer.error
traceId trace_err
spanId span_1
rendererState error_state
policyDecision — ready
runId run_contract_spine
eventCount 3 events
eventId evt_run_started
sequence 0
occurredAt 2026-06-09T04:00:00.000Z
eventType run.started
traceId trace_abc
spanId span_0
rendererState —
policyDecision —
eventId evt_policy_decision
sequence 1
occurredAt 2026-06-09T04:00:01.000Z
eventType policy.decision
traceId trace_abc
spanId span_1
rendererState — policyDecision
decision allow
scope renderer:display
eventId evt_run_completed
sequence 2
occurredAt 2026-06-09T04:00:02.000Z
eventType run.completed
traceId trace_abc
spanId span_2
rendererState rendered
policyDecision —
Theme tokens
Color tokens and computed WCAG contrast ratios, read straight from packages/tokens/generated/jami.css.
Color tokens
Generated color variables
Swatch Token Value
--jami-color-brand-accent#C14D84--jami-color-brand-teal#237C7A--jami-color-neutral-warm0#FFF9F5--jami-color-neutral-warm950#20171B--jami-semantic-light-background#FFF9F5--jami-semantic-light-foreground#20171B--jami-semantic-light-accent#C14D84--jami-semantic-dark-background#20171B--jami-semantic-dark-foreground#FFF9F5--jami-semantic-dark-accent#C14D84--jami-componentState-focusRing#237C7A--jami-componentState-deprecatedAccentAlias#C14D84
Contrast checks
Pair Colors Ratio Target Result
Light text on light background #20171B on #FFF9F516.77:1 AA text PASS Dark text on dark background #FFF9F5 on #20171B16.77:1 AA text PASS Accent on light background #C14D84 on #FFF9F54.32:1 AA UI/large PASS Focus ring on light background #237C7A on #FFF9F54.75:1 AA non-text PASS