feat: propose chat-native UI artifacts via execute capability - #3054
feat: propose chat-native UI artifacts via execute capability#3054reachjalil wants to merge 13 commits into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
@reachjalil is attempting to deploy a commit to the Different AI Team on Vercel. A member of the Team first needs to authorize it. |
fraimz — ✅ PASSEDFive-frame mock lifecycle on Open the complete interactive fraimz
|
|
Updated the proposal at The latest revision makes the alpha a hard opt-in boundary:
It also consolidates Calendar into one day/agenda/week artifact and Widgets into one heterogeneous composable collection. Updated ten-frame Fraimz: https://openwork-ui-artifacts-fraimz.vercel.app
Focused verification on this exact head:
|
|
CI follow-up for The four remaining red Vercel statuses are external |
# Conflicts: # apps/app/src/components/chat/message-list.tsx # apps/app/src/react-app/domains/session/chat/session-page.tsx # apps/app/src/react-app/domains/session/surface/session-surface.tsx # ee/apps/den-api/src/mcp/agent.ts # ee/packages/den-db/drizzle/meta/0048_snapshot.json # ee/packages/den-db/drizzle/meta/_journal.json # packaging/docker/Dockerfile.den
# Conflicts: # apps/app/src/components/chat/message-list.tsx # apps/app/src/react-app/domains/session/chat/session-page.tsx








Proposal
Introduce alpha UI Artifacts: deterministic, chat-native answer cards that any compatible agent engine can discover and render through OpenWork Cloud's existing two-tool surface.
The public agent MCP remains exactly:
search_capabilitiesexecute_capabilityArtifact discovery and use are virtual capabilities executed through
execute_capability; this proposal does not add an OpenCode-only tool or expand the public MCP surface.What this adds
widgets.collectionartifact that accepts metric, progress, status, balance, and date widgets in grid, strip, or stack layouts.calendar.viewartifact with day, agenda, and week variants over the same event contract.search_artifactsanduse_artifact.execute_capabilityreceipts.revision_conflict.Hard opt-in boundary
UI Artifacts is a true member-level feature flag and defaults to
falsein both the desktop preference cache and the Den database.When it is off:
search_capabilitiesreturns no artifact virtual capabilities;artifact_disabled;The prompt design is also turn-scoped. Artifact instructions are not stored in MCP initialization even after opt-in. A bounded
agentInstructionis carried only inside a successful enabled suggestion, expires at the end of that turn, allows at most one render, carries no provider result values, and forbids inferred approval decisions.Disabling the flag therefore takes effect without depending on an OpenCode-specific restart or MCP reconnection.
Context and safety policy
execute_capabilityresults.Full lifecycle proof
The coded Fraimz drives the local Den API and real Electron renderer with deterministic mock data:
Public Fraimz with ten validated screenshots:
https://openwork-ui-artifacts-fraimz.vercel.app
Run:
2026-07-23T13-42-20-726Zon commit0d3286aa714aaf49711b30f4ee2636bba434958e.Verification
pnpm --filter @openwork-ee/den-api exec bun test test/ui-artifacts-capability.test.ts test/mcp-agent-timeouts.test.tspnpm --filter @openwork/ui-artifact-mcp checkpnpm --filter @openwork/app exec bun test --isolate tests/ui-artifacts.test.tspnpm --filter @openwork/app typecheckpnpm fraimz --flow ui-artifacts-execute-capability --cdp-url http://127.0.0.1:28903git diff --checkThe lifecycle was driven and visually inspected through Electron CDP. It has not yet been manually confirmed by the requester.
Risks and remaining work
Rollback is immediate: disable the alpha UI Artifacts preference or revert these commits. With the preference off, existing OpenWork capability and chat behavior remains active and no live provider mutation is performed by the mock lifecycle.