mirror of
https://github.com/vercel-labs/json-render.git
synced 2026-10-31 08:03:10 +08:00
* Add harness-chat example: json-render as the UI for agent harnesses A Claude Code agent runs in a Vercel Sandbox via AI SDK 7's experimental HarnessAgent and reports its work (steps, file changes, terminal output, test results) as a streamed json-render spec. Because HarnessAgent.stream() returns a standard StreamTextResult, the existing pipeJsonRender -> useJsonRenderMessage pipeline works unchanged. The example pins matching AI SDK 7 canary packages so the harness adapter, React hooks, and Vercel sandbox transport resolve together. * harness-chat: fix dev-runtime issues found in live run - allowedDevOrigins for the portless proxy origin (Next 16 silently fails to hydrate on non-allowlisted cross-origin dev requests) - serverExternalPackages for the harness adapter, which loads its sandbox bridge via new URL(..., import.meta.url) and cannot be bundled - README: document CLI-login (TTY) vs OIDC sandbox auth paths * harness-chat: agent picker, charts, and design polish - Add a UI agent selector (Claude Code / Codex / Pi) with per-agent harness sessions and monochrome brand marks - Add monochrome bar/line chart components to the catalog and registry - Polish the chat shell: minimalist Geist/Geist-Mono design, tool-call icons + containers, inline-code shading, and a working text shimmer * harness-chat: add mermaid diagrams to README - Replace the ASCII data-flow sketch with a mermaid flowchart and a sequence diagram of a turn - Update prose/setup to reflect the three-agent selector (Claude Code / Codex / Pi) * Fix harness chat reset and signed charts
45 lines
1.4 KiB
JSON
45 lines
1.4 KiB
JSON
{
|
|
"name": "example-harness-chat",
|
|
"version": "0.1.0",
|
|
"type": "module",
|
|
"private": true,
|
|
"scripts": {
|
|
"predev": "command -v portless >/dev/null 2>&1 || (echo '\\nportless is required but not installed. Run: npm i -g portless\\nSee: https://github.com/vercel-labs/portless\\n' && exit 1)",
|
|
"dev": "portless harness-chat-demo.json-render next dev --turbopack",
|
|
"build": "next build",
|
|
"start": "next start",
|
|
"lint": "eslint --max-warnings 0",
|
|
"check-types": "tsc --noEmit"
|
|
},
|
|
"dependencies": {
|
|
"@ai-sdk/harness": "1.0.0-canary.9",
|
|
"@ai-sdk/harness-claude-code": "1.0.0-canary.5",
|
|
"@ai-sdk/harness-codex": "1.0.0-canary.5",
|
|
"@ai-sdk/harness-pi": "1.0.0-canary.5",
|
|
"@ai-sdk/react": "4.0.0-canary.176",
|
|
"@ai-sdk/sandbox-vercel": "1.0.0-canary.9",
|
|
"@json-render/core": "workspace:*",
|
|
"@json-render/react": "workspace:*",
|
|
"@streamdown/code": "^1.1.1",
|
|
"ai": "7.0.0-canary.173",
|
|
"lucide-react": "^0.563.0",
|
|
"next": "16.2.9",
|
|
"react": "19.2.4",
|
|
"react-dom": "19.2.4",
|
|
"streamdown": "^2.5.0",
|
|
"zod": "4.3.6"
|
|
},
|
|
"devDependencies": {
|
|
"@internal/eslint-config": "workspace:*",
|
|
"@tailwindcss/postcss": "^4.1.18",
|
|
"@types/node": "^22.10.0",
|
|
"@types/react": "19.2.3",
|
|
"@types/react-dom": "19.2.3",
|
|
"eslint": "^9.39.1",
|
|
"postcss": "^8.5.6",
|
|
"tailwindcss": "^4.1.18",
|
|
"tw-animate-css": "^1.4.0",
|
|
"typescript": "^5.7.2"
|
|
}
|
|
}
|