{ "steps": [ { "stdout": "{\n \"ok\": true,\n \"serverPort\": ,\n \"serverToken\": \"\",\n \"pageFiles\": [\n \"index.html\",\n \"public/no-body.html\",\n \"public/docs/guide.html\"\n ],\n \"liveConfigPath\": \"/.impeccable/live/config.json\",\n \"configDrift\": {\n \"orphans\": [\n \"src/cards.html\"\n ],\n \"orphanCount\": 1,\n \"hint\": \"1 HTML file(s) exist but aren't in config.files. Consider adding them, or use a glob pattern like \\\"public/**/*.html\\\".\"\n },\n \"targetPath\": null,\n \"projectRoot\": \"\",\n \"repoRoot\": \"\",\n \"roots\": {\n \"version\": 1,\n \"appRoot\": \"\",\n \"repoRoot\": \"\",\n \"contextRoot\": \"\",\n \"sessionRoot\": \"/.impeccable/live\",\n \"productPath\": \"/PRODUCT.md\",\n \"designPath\": \"/DESIGN.md\",\n \"resolvedFrom\": \"cwd\"\n },\n \"hasProduct\": true,\n \"product\": \"\\n# Product\\n\\n## What it is\\nA fixture app used by the oracle harness for live mode.\\n\\n## Platform\\nweb\\n\",\n \"productPath\": \"PRODUCT.md\",\n \"hasDesign\": true,\n \"design\": \"---\\nname: Oracle Live Fixture\\ndescription: A one-page fixture set in plain type on paper-white surfaces.\\ncolors:\\n ink: \\\"#142720\\\"\\n paper: \\\"#ffffff\\\"\\ntypography:\\n body:\\n fontFamily: \\\"system-ui, sans-serif\\\"\\n fontWeight: 400\\n lineHeight: 1.5\\n---\\n\",\n \"designPath\": \"DESIGN.md\",\n \"hasSurfaceBrief\": false,\n \"surfaceBrief\": null,\n \"surfaceBriefPath\": null,\n \"_instructions\": \"Open the app URL that serves a pageFiles entry (never serverPort; that is the helper). Then start the poll loop per your harness policy in live.md and re-run live-poll immediately after every event or reply. Every event carries _instructions: follow them; they are the authoritative next step with real ids and paths filled in. A poll that is running is a poll you are SERVICING: never announce you are waiting and idle your turn; stay on the exec session until it returns an event, and never end a turn while a poll is outstanding.\"\n}\n", "stderr": "", "exit": 0, "signal": null }, { "stdout": "{\"ok\":true,\"config\":{\"files\":[\"index.html\",\"public/**/*.html\"],\"insertBefore\":\"\",\"commentSyntax\":\"html\"},\"path\":\"/.impeccable/live/config.json\"}\n", "stderr": "", "exit": 0, "signal": null }, { "stdout": "Stopped live server on port .\n", "stderr": "", "exit": 0, "signal": null } ], "files": { ".gitignore": "# impeccable-live-ignore-start\n.impeccable/hook.cache.json\n.impeccable/hook.pending.json\n.impeccable/config.local.json\n.impeccable/live/server.json\n.impeccable/live/roots.json\n.impeccable/live/app-root.json\n.impeccable/live/inject-journal.json\n.impeccable/live/sessions/\n.impeccable/live/previews/\n.impeccable/live/annotations/\n.impeccable/live/artifacts/\n.impeccable/live/accept-receipts/\n.impeccable/live/locks/\n.impeccable/live/cache/\n.impeccable/live/manual-edit-apply-transaction.json\n.impeccable/live/manual-edit-events.jsonl\n.impeccable/live/manual-edit-evidence/\n.impeccable/live/pending-manual-edits.json\n.impeccable/live/deferred-svelte-component-accepts.json\n.impeccable-live.json\n.impeccable-live/\napp/.impeccable-live/\nsrc/.impeccable-live/\nnode_modules/.impeccable-live/\nsrc/lib/impeccable/ImpeccableLiveRoot.svelte\nsrc/lib/impeccable/__runtime.js\nsrc/lib/impeccable/[0-9a-f]*/\nplugins/impeccable-live.client.ts\napp/plugins/impeccable-live.client.ts\nsrc/plugins/impeccable-live.client.ts\n# impeccable-live-ignore-end\n", ".impeccable/live/config.json": "{\n \"files\": [\"index.html\", \"public/**/*.html\"],\n \"insertBefore\": \"\",\n \"commentSyntax\": \"html\"\n}\n", ".impeccable/live/roots.json": "{\n \"version\": 1,\n \"appRoot\": \"\",\n \"repoRoot\": \"\",\n \"contextRoot\": \"\",\n \"sessionRoot\": \"/.impeccable/live\",\n \"productPath\": \"/PRODUCT.md\",\n \"designPath\": \"/DESIGN.md\",\n \"resolvedFrom\": \"cwd\"\n}", "index.html": "\n\n \n \n Oracle Live HTML Fixture\n \n \n \n
\n

Oracle Fixture

\n

Minimal static page for oracle live-mode goldens.

\n
\n
One
\n
Two
\n
\n \n
\n \n\n", "public/docs/guide.html": "\n\n \n \n Guide\n \n \n
\n

Guide

\n

A second page covered by the config glob.

\n
\n \n\n", "public/no-body.html": "\n\n No body tag\n

This file has no closing body tag.

\n\n" } }