From 64397f5b39fbe1d9a1dd153e46274122219ce32f Mon Sep 17 00:00:00 2001 From: ZiyaZhang <199893125+ZiyaZhang@users.noreply.github.com> Date: Mon, 20 Jul 2026 02:57:55 -0700 Subject: [PATCH] feat(desktop): cordis dedicated card (mount/unmount/inspect) + nested code-dispatch tree --- examples/desktop/README.md | 17 + .../docs/qa-cordis-card/01-mount-card.png | Bin 0 -> 138487 bytes .../docs/qa-cordis-card/02-inspect-fields.png | Bin 0 -> 94823 bytes .../qa-cordis-card/03-code-dispatch-open.png | Bin 0 -> 128292 bytes .../scripts/qa-cdp-shoot-cordis-card.mjs | 305 +++++++++++++++++ examples/desktop/src/renderer/cordis-card.js | 321 ++++++++++++++++++ examples/desktop/src/renderer/index.html | 10 + .../desktop/src/renderer/mock-fixtures.js | 68 ++++ examples/desktop/src/renderer/renderer.js | 35 ++ examples/desktop/src/renderer/style.css | 90 +++++ examples/desktop/src/renderer/tool-cards.js | 117 ++++++- examples/desktop/test/cordis-card.test.js | 277 +++++++++++++++ .../test/fixtures/cordis-wire-shapes.json | 284 ++++++++++++++++ examples/desktop/test/tool-cards.test.js | 91 ++++- 14 files changed, 1599 insertions(+), 16 deletions(-) create mode 100644 examples/desktop/docs/qa-cordis-card/01-mount-card.png create mode 100644 examples/desktop/docs/qa-cordis-card/02-inspect-fields.png create mode 100644 examples/desktop/docs/qa-cordis-card/03-code-dispatch-open.png create mode 100644 examples/desktop/scripts/qa-cdp-shoot-cordis-card.mjs create mode 100644 examples/desktop/src/renderer/cordis-card.js create mode 100644 examples/desktop/test/cordis-card.test.js create mode 100644 examples/desktop/test/fixtures/cordis-wire-shapes.json diff --git a/examples/desktop/README.md b/examples/desktop/README.md index 57108b3b6f..433a378824 100644 --- a/examples/desktop/README.md +++ b/examples/desktop/README.md @@ -327,6 +327,23 @@ becomes a visualiser of the runtime's actual state. render a terminal card with a scrollback pane. Both fall back to the generic collapsible-details view if the `meta` discriminant is missing. +- **Cordis self-modification card.** The three self-referential tools + (`cordis_mount` / `cordis_unmount` / `cordis_inspect`) — the model + editing its own live runtime — get a purpose-built card instead of + raw text. Mount shows the `{id, name, state}` of the new entry plus a + `+entry` delta (and the awaited services when a plugin is pending); + unmount shows the removed id with a `-entry` delta; inspect renders + the returned runtime inventory (services / plugins / tools / dynamic / + api / events) through the shared collapsible Fields tree. All three + are parsed from the tool's own plain-text result (they carry a + `generic` render intent), so the card never fabricates a shape the + runtime didn't emit — an unrecognised text falls back to raw. +- **Nested code-dispatch tree.** When Code Mode (`run_code`) fans out to + sub-tool calls, each sub-call appears as an expandable row inside the + parent's result box: collapsed it keeps the one-line + `└─ ✓ name summary` shape; expanded it reveals that sub-call's + arguments and result, and carries its own `{ }` inspector badge + anchored to the sub-call event. - **Fork & edit-rerun.** Every assistant bubble has a hover-revealed **fork from here** button; use it to mint a child session seeded at that exact seq, edit the user turn, and let a different reply diff --git a/examples/desktop/docs/qa-cordis-card/01-mount-card.png b/examples/desktop/docs/qa-cordis-card/01-mount-card.png new file mode 100644 index 0000000000000000000000000000000000000000..04ca77faedc57db847bb6bf96d910edaee05afed GIT binary patch literal 138487 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

+|_M1z;Y0rVdFm9 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 literal 0 HcmV?d00001 diff --git a/examples/desktop/docs/qa-cordis-card/03-code-dispatch-open.png b/examples/desktop/docs/qa-cordis-card/03-code-dispatch-open.png new file mode 100644 index 0000000000000000000000000000000000000000..2d4d46a12aebdf09b7b6c3be7a2f545a02599e65 GIT binary patch literal 128292 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≧QW6Bj{c!ELLDV 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

D~;0g;nzklbrbm@!h^aKD{hmP&)si=T-T@m7! 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 literal 0 HcmV?d00001 diff --git a/examples/desktop/scripts/qa-cdp-shoot-cordis-card.mjs b/examples/desktop/scripts/qa-cdp-shoot-cordis-card.mjs new file mode 100644 index 0000000000..2099940f0f --- /dev/null +++ b/examples/desktop/scripts/qa-cdp-shoot-cordis-card.mjs @@ -0,0 +1,305 @@ +// QA verification script for lane-cordis-card. Boots an isolated Electron on +// its own CDP port, drives the cordis dedicated card + the upgraded +// code-dispatch nested tree entirely through the renderer's +// `window.__dshRenderer.onSessionEvent` seam (no live model / no key), and +// captures three screenshots into docs/qa-cordis-card/: +// +// 01-mount-card.png — cordis_mount card: op glyph + id + kv block +// (id/name/state) + +dyn-1 add-delta + source fold. +// 02-inspect-fields.png — cordis_inspect card: the six sections rendered +// through the reused Fields-tree widget. +// 03-code-dispatch-open.png — a run_code block with three fan-out sub-call +// rows, the first row expanded to show its args + +// result blocks, and the { } inspector badge. +// +// Isolation follows the 2026-07-18 postmortem baked into the sibling shoots +// (scripts/qa-cdp-shoot-msg-queue.mjs / nav-optional): +// 1. --user-data-dir= isolates Chromium userdata. +// 2. DSH_DESKTOP_HOME= isolates the main-process config root. +// 3. own CDP port (≥9310) so a lingering Electron helper from another +// lane's shoot can't hijack our DevTools endpoint. +// +// Why the seam and not a real Vibe run: the cordis card + code-dispatch tree +// are pure renderer concerns (parse the tool's own text / fan-out rows). We +// inject the REAL wire shapes from test/fixtures/cordis-wire-shapes.json +// through onSessionEvent — the exact path the live wire uses — so the render +// is deterministic with no daemon round-trip and no model key. + +import { spawn } from 'node:child_process' +import { existsSync, mkdirSync, writeFileSync, readFileSync, rmSync, statSync } from 'node:fs' +import { resolve, join } from 'node:path' +import { setTimeout as sleep } from 'node:timers/promises' +import { tmpdir } from 'node:os' + +const WORKTREE = resolve(process.env.DSH_WORKTREE || process.cwd()) +const PARENT = resolve(process.env.DSH_REPO || '/Users/ziya/harness/dsh-desktop-demo') +const ELECTRON = join(PARENT, 'node_modules/.bin/electron') +const CDP_PORT = Number(process.env.DSH_CORDIS_PORT || 9310) +const OUTDIR = join(WORKTREE, 'docs/qa-cordis-card') +const FIX = JSON.parse(readFileSync(join(WORKTREE, 'test/fixtures/cordis-wire-shapes.json'), 'utf8')) + +if (!existsSync(ELECTRON)) { + console.error(`electron binary not found at ${ELECTRON}`) + process.exit(2) +} +mkdirSync(OUTDIR, { recursive: true }) + +function seedHome(dshHome) { + const seedOverlay = [ + '# QA cordis-card shoot seed overlay (tmp, per-run).', + 'plugins:', + ` - "@cordisjs/plugin-include":`, + ` path: ${join(WORKTREE, 'config/daemon-echo.yml')}`, + '', + ].join('\n') + writeFileSync(join(dshHome, 'user-overlay.cordis.yml'), seedOverlay) + writeFileSync(join(dshHome, 'config.json'), JSON.stringify({ role: 'coding', approvalMode: 'never' }, null, 2)) + writeFileSync(join(dshHome, '.onboarded'), new Date().toISOString()) +} + +async function bootElectron(dshHome, userData, port) { + const child = spawn(ELECTRON, [ + `--remote-debugging-port=${port}`, + `--user-data-dir=${userData}`, + '--disable-gpu', + '--no-sandbox', + '.', + ], { + cwd: WORKTREE, + env: { ...process.env, DSH_DESKTOP_HOME: dshHome, DSH_MAXIMIZE: '1' }, + stdio: ['ignore', 'pipe', 'pipe'], + }) + const logs = [] + child.stdout.on('data', d => logs.push(String(d))) + child.stderr.on('data', d => logs.push(String(d))) + for (let i = 0; i < 40; i++) { + await sleep(500) + try { + const r = await fetch(`http://localhost:${port}/json/list`) + if (r.ok) return { child, logs } + } catch {} + } + child.kill('SIGKILL') + console.error('electron CDP did not come up in 20s. logs:\n' + logs.join('')) + process.exit(3) +} + +async function newCdp(port) { + const targets = await (await fetch(`http://localhost:${port}/json/list`)).json() + const target = targets.find(t => t.type === 'page') + if (!target) throw new Error('no page target on port ' + port) + const ws = new WebSocket(target.webSocketDebuggerUrl) + await new Promise((ok, err) => { ws.onopen = ok; ws.onerror = e => err(e) }) + let id = 1 + const pending = new Map() + ws.onmessage = ev => { + const data = typeof ev.data === 'string' ? ev.data : String(ev.data) + let msg + try { msg = JSON.parse(data) } catch { return } + if (msg.id != null && pending.has(msg.id)) { + const [ok, err] = pending.get(msg.id); pending.delete(msg.id) + if (msg.error) err(new Error(msg.error.message)); else ok(msg.result) + } + } + const call = (m, p = {}, ms = 15000) => new Promise((ok, err) => { + const _id = id++ + const t = setTimeout(() => { pending.delete(_id); err(new Error('cdp timeout: ' + m)) }, ms) + pending.set(_id, [v => { clearTimeout(t); ok(v) }, e => { clearTimeout(t); err(e) }]) + ws.send(JSON.stringify({ id: _id, method: m, params: p })) + }) + const evj = async expr => { + const r = await call('Runtime.evaluate', { + expression: `(async()=>{try{return (${expr})}catch(e){return {__err:String(e)}}})()`, + returnByValue: true, awaitPromise: true, + }) + if (r.exceptionDetails) throw new Error(r.exceptionDetails.exception?.description || r.exceptionDetails.text) + return r.result?.value + } + return { ws, call, evj } +} + +// Clip to the chat stream so the cards are unmistakably in frame. +async function shoot(call, evj, name) { + const clip = await evj(` + (() => { + const s = document.getElementById('stream') + if (!s) return null + const r = s.getBoundingClientRect() + return { x: r.x, y: Math.max(0, r.y), width: r.width, height: Math.min(r.height, 900), scale: 1 } + })() + `) + const shotArgs = { format: 'png', captureBeyondViewport: true } + if (clip) shotArgs.clip = clip + const shot = await call('Page.captureScreenshot', shotArgs, 30000) + if (!shot || !shot.data) throw new Error('captureScreenshot returned no data') + const outPath = join(OUTDIR, name) + writeFileSync(outPath, Buffer.from(shot.data, 'base64')) + const bytes = statSync(outPath).size + console.log(` wrote ${outPath} (${bytes} bytes)`) + if (bytes < 20000) throw new Error(`screenshot ${name} is only ${bytes} bytes (<20KB) — likely blank`) + return { path: outPath, bytes } +} + +// Inject a call+result pair for a cordis tool through onSessionEvent. +function injectPairExpr(sid, pair) { + return ` + (() => { + const R = window.__dshRenderer + R.onSessionEvent(${JSON.stringify(sid)}, ${JSON.stringify(pair.call)}) + R.onSessionEvent(${JSON.stringify(sid)}, ${JSON.stringify(pair.result)}) + return true + })() + ` +} + +// Open the tool-block that hosts a given cordis op + scroll it into view so +// the card body (not the collapsed summary) fills the shot. For inspect, also +// expand the first section in the reused Fields tree so the list reads richly. +async function openCordisBlock(evj, op) { + return evj(` + (() => { + const card = document.querySelector('.card-cordis[data-cordis-op="${op}"]') + if (!card) return { opened: false } + const block = card.closest ? card.closest('.tool-block') : null + if (block) block.open = true + // Expand the first Fields-tree section for inspect so it isn't all folded. + const firstBranch = card.querySelector('.card-cordis-tree .trace-detail-json-branch') + if (firstBranch) firstBranch.open = true + ;(block || card).scrollIntoView({ block: 'center' }) + return { opened: true } + })() + `) +} + +async function main() { + const dshHome = join(tmpdir(), 'dsh-cordis-home') + const userData = join(tmpdir(), 'dsh-cordis-userdata') + for (const dir of [dshHome, userData]) { + try { rmSync(dir, { recursive: true, force: true }) } catch {} + mkdirSync(dir, { recursive: true }) + } + seedHome(dshHome) + console.log(`booting on CDP :${CDP_PORT}`) + const { child } = await bootElectron(dshHome, userData, CDP_PORT) + try { + await sleep(1500) + const { call, evj } = await newCdp(CDP_PORT) + await call('Page.enable') + + // Fresh session for the cordis cards. + const setup = await evj(` + (async () => { + const R = window.__dshRenderer + if (!R) return { __err: 'no __dshRenderer seam' } + if (!window.__dshCordisCard) return { __err: 'no __dshCordisCard module' } + R.ensureSession('qa-cordis', { title: 'Cordis card demo', header: {}, hasUserMessage: true }) + await R.selectSession('qa-cordis') + return { active: R.getActiveSessionId() } + })() + `) + console.log(' setup:', JSON.stringify(setup)) + if (setup && setup.__err) throw new Error(setup.__err) + + // --- Shot 1: mount card ------------------------------------------------- + const mountOk = await evj(injectPairExpr('qa-cordis', FIX.mount_ok)) + if (mountOk && mountOk.__err) throw new Error(mountOk.__err) + const mountCheck = await evj(` + (() => { + const c = document.querySelector('.card-cordis[data-cordis-op="cordis_mount"]') + if (!c) return { found: false } + return { + found: true, + id: (c.querySelector('.card-cordis-id') || {}).textContent || '', + kvKeys: Array.from(c.querySelectorAll('.card-cordis-kv-key')).map(n => n.textContent), + delta: !!c.querySelector('.card-cordis-delta.add'), + codeFold: !!c.querySelector('.card-cordis-code'), + } + })() + `) + console.log(' mount card:', JSON.stringify(mountCheck)) + if (!mountCheck.found || mountCheck.id !== 'dyn-1' || !mountCheck.delta) { + throw new Error('mount card missing expected shape: ' + JSON.stringify(mountCheck)) + } + // Open the enclosing tool-block + scroll it into view so the card body + // (not just the collapsed summary) is unmistakably in frame. + await openCordisBlock(evj, 'cordis_mount') + await sleep(250) + const shot1 = await shoot(call, evj, '01-mount-card.png') + + // --- Shot 2: inspect card with fields tree ------------------------------ + const inspectOk = await evj(injectPairExpr('qa-cordis', FIX.inspect_all)) + if (inspectOk && inspectOk.__err) throw new Error(inspectOk.__err) + const inspectCheck = await evj(` + (() => { + const c = document.querySelector('.card-cordis[data-cordis-op="cordis_inspect"]') + if (!c) return { found: false } + const tree = c.querySelector('.card-cordis-tree .trace-detail-json-tree') + return { + found: true, + hasTree: !!tree, + sections: tree ? Array.from(tree.querySelectorAll('.trace-detail-json-key')).map(n => n.textContent) : [], + } + })() + `) + console.log(' inspect card:', JSON.stringify(inspectCheck)) + if (!inspectCheck.found || !inspectCheck.hasTree) { + throw new Error('inspect card missing fields tree: ' + JSON.stringify(inspectCheck)) + } + await openCordisBlock(evj, 'cordis_inspect') + await sleep(250) + const shot2 = await shoot(call, evj, '02-inspect-fields.png') + + // --- Shot 3: code-dispatch nested tree, first row expanded -------------- + const cd = FIX.code_dispatch_run + const dispatchInject = await evj(` + (() => { + const R = window.__dshRenderer + const sid = 'qa-cordis' + // Order matches mock-fixtures.mockCodeDispatch: the parent call+result + // land first (the result populates the .result box), THEN each + // tool/code-dispatch appends into it. Firing dispatches before the + // result would let the generic tool/result branch overwrite the box. + R.onSessionEvent(sid, ${JSON.stringify(cd.parent_call)}) + R.onSessionEvent(sid, ${JSON.stringify(cd.parent_result)}) + ${cd.dispatches.map(d => `R.onSessionEvent(sid, ${JSON.stringify(d)})`).join('\n ')} + // Expand the first sub-call row so the args + result blocks show. + const parent = document.querySelector('.tool-block[data-call-id="run-code-1"]') + const firstRow = parent && parent.querySelector('.card-code-dispatch-row') + if (firstRow) firstRow.open = true + return { + rows: parent ? parent.querySelectorAll('.card-code-dispatch-row').length : 0, + firstOpen: firstRow ? !!firstRow.open : false, + badges: parent ? parent.querySelectorAll('.card-code-dispatch-summary-line .inspect-badge').length : 0, + detailBlocks: firstRow ? firstRow.querySelectorAll('.card-code-dispatch-detail-block').length : 0, + } + })() + `) + console.log(' code-dispatch:', JSON.stringify(dispatchInject)) + if (!dispatchInject || dispatchInject.rows !== 3 || !dispatchInject.firstOpen || dispatchInject.badges !== 3) { + throw new Error('code-dispatch tree missing expected shape: ' + JSON.stringify(dispatchInject)) + } + // Scroll the run_code block into view before shooting. + await evj(` + (() => { + const p = document.querySelector('.tool-block[data-call-id="run-code-1"]') + if (p) { p.open = true; p.scrollIntoView({ block: 'center' }) } + return true + })() + `) + await sleep(300) + const shot3 = await shoot(call, evj, '03-code-dispatch-open.png') + + console.log('\n--- SUMMARY ---') + console.log(`mount card: ${shot1.path} (${shot1.bytes} bytes)`) + console.log(`inspect fields: ${shot2.path} (${shot2.bytes} bytes)`) + console.log(`code-dispatch open:${shot3.path} (${shot3.bytes} bytes)`) + } finally { + try { child.kill('SIGKILL') } catch {} + for (let i = 0; i < 20; i++) { + await sleep(500) + try { await fetch(`http://localhost:${CDP_PORT}/json/list`) } catch { break } + } + } +} + +main().catch(err => { console.error(err); process.exit(1) }).then(() => process.exit(0)) diff --git a/examples/desktop/src/renderer/cordis-card.js b/examples/desktop/src/renderer/cordis-card.js new file mode 100644 index 0000000000..fc0a067516 --- /dev/null +++ b/examples/desktop/src/renderer/cordis-card.js @@ -0,0 +1,321 @@ +// Dedicated tool card for the self-referential cordis toolset (cordis_mount / +// cordis_unmount / cordis_inspect): the "model modifies its own runtime" +// flagship capability. Renders a purpose-built card instead of the generic +// raw-text result the family would otherwise fall through to. +// +// Wire truth (verified against packages/cordis/tool-cordis/src in the sibling +// runtime repo): all three tools declare a `generic` render intent and return +// PLAIN-TEXT content blocks — there is no structured result object on the +// wire. So this card PARSES the tool's own completed text, never fabricating a +// shape the runtime didn't emit: +// mount → `mounted dyn-1 (plugin "name", state: ACTIVE[ — waiting for service(s): …])` +// unmount → `unmounted dyn-1 (plugin "name")` +// inspect → markdown-ish `## section\n- item\n…` blocks (six sections, or one when `what` is set) +// Error results arrive with isError=true and the thrown Error's message as the +// text; we surface that verbatim rather than guessing an operation shape. +// +// Everything textual goes through `textContent`; no `innerHTML` from any +// tool-controlled field — same safety edge as tool-cards.js / widgets.js. +// +// Detection is by tool name only (the family map in tool-cards.js already +// identifies the three names); the renderer keeps its `meta.card` switch +// untouched for every other tool, and an unknown cordis-family name falls +// back to the generic renderer. + +'use strict' + +;(function () { + +// The three model-visible cordis tool names. Kept local (not imported from +// TOOL_FAMILIES) so this module stands alone under node:test without loading +// the whole tool-cards surface; the two lists are asserted consistent in the +// unit tests. +const CORDIS_TOOLS = Object.freeze(['cordis_mount', 'cordis_unmount', 'cordis_inspect']) + +// Per-operation header glyph (single monochrome column, matching the family +// glyph convention in tool-cards.js). mount/unmount/inspect read as +// add-to-runtime / remove-from-runtime / read-runtime. +const OP_GLYPH = Object.freeze({ + cordis_mount: '⊕', // ⊕ + cordis_unmount: '⊖', // ⊖ + cordis_inspect: '⊙', // ⊙ +}) + +/** + * Whether a tool name is one of the three cordis self-inspection tools. + * @param {string} name + * @returns {boolean} + */ +function isCordisTool(name) { + return typeof name === 'string' && CORDIS_TOOLS.indexOf(name) !== -1 +} + +/** + * Parse a `cordis_mount` success text into its fields. Returns null when the + * text doesn't match the mount shape (e.g. it's an error message) so the + * caller can fall back to raw text. + * Shape: `mounted (plugin "", state: [ — waiting for service(s): a, b (activates when provided)])` + * @param {string} text + * @returns {{ id: string, pluginName: string, state: string, waiting: string[] } | null} + */ +function parseMountResult(text) { + if (typeof text !== 'string') return null + const m = text.match(/^mounted\s+(\S+)\s+\(plugin\s+"([^"]*)",\s+state:\s+(\w+)/) + if (!m) return null + const waitingMatch = text.match(/waiting for service\(s\):\s+([^(]+?)\s*\(activates when provided\)/) + const waiting = waitingMatch + ? waitingMatch[1].split(',').map((s) => s.trim()).filter(Boolean) + : [] + return { id: m[1], pluginName: m[2], state: m[3], waiting } +} + +/** + * Parse a `cordis_unmount` success text. Returns null on non-match. + * Shape: `unmounted (plugin "")` + * @param {string} text + * @returns {{ id: string, pluginName: string } | null} + */ +function parseUnmountResult(text) { + if (typeof text !== 'string') return null + const m = text.match(/^unmounted\s+(\S+)\s+\(plugin\s+"([^"]*)"\)/) + if (!m) return null + return { id: m[1], pluginName: m[2] } +} + +/** + * Parse `cordis_inspect` text into a `{ section: lines[] }` object suitable for + * the Fields-tree widget. Splits on lines beginning with `## `; each section's + * body becomes an array of its non-blank lines (leading `- ` bullets kept as-is + * so the tree reads like the tool's own report). Returns an empty object when + * no `## ` heading is present. + * @param {string} text + * @returns {Record} + */ +function parseInspectSections(text) { + const out = {} + if (typeof text !== 'string' || text.length === 0) return out + // No `## ` heading anywhere → not a sectioned report; caller falls back to raw. + if (!/^##\s+/m.test(text)) return out + // Split on a heading line; the first chunk before any `## ` (usually empty) + // is dropped by the falsy-heading guard below. + const parts = text.split(/^##\s+/m) + for (const part of parts) { + if (!part || !part.trim()) continue + const nl = part.indexOf('\n') + const heading = (nl === -1 ? part : part.slice(0, nl)).trim() + if (!heading) continue + const body = nl === -1 ? '' : part.slice(nl + 1) + const lines = body.split('\n').map((l) => l.replace(/\s+$/, '')).filter((l) => l.length > 0) + out[heading] = lines + } + return out +} + +// Resolve the shared Fields-tree builder. The inspect body reuses +// trace-detail-pane's buildJsonTree (task rule: "no new tree"). Injectable so +// the unit tests can pass a stub under the node DOM shim. +function resolveBuildTree(explicit) { + if (typeof explicit === 'function') return explicit + const tdp = (typeof window !== 'undefined') ? window.__dshTraceDetailPane : null + return tdp && typeof tdp.buildJsonTree === 'function' ? tdp.buildJsonTree : null +} + +// Small helper: a key-value row `key value` inside the mount/unmount block. +function kvRow(doc, key, value) { + const row = doc.createElement('div') + row.className = 'card-cordis-kv-row' + const k = doc.createElement('span') + k.className = 'card-cordis-kv-key' + k.textContent = String(key) + const v = doc.createElement('span') + v.className = 'card-cordis-kv-val' + v.textContent = String(value) + row.append(k, v) + return row +} + +// A `+entry` / `-entry` delta line. `kind` is 'add' | 'del'. This is the ONLY +// place we assert a runtime change, and only because the operation itself is +// definitionally an add (mount) or remove (unmount) of exactly this id — never +// a synthesised before/after diff. +function deltaLine(doc, kind, entry) { + const row = doc.createElement('div') + row.className = 'card-cordis-delta ' + (kind === 'del' ? 'del' : 'add') + const sig = doc.createElement('span') + sig.className = 'card-cordis-delta-sig' + sig.textContent = kind === 'del' ? '-' : '+' // -/+ + const label = doc.createElement('span') + label.className = 'card-cordis-delta-entry' + label.textContent = String(entry) + row.append(sig, label) + return row +} + +/** + * Render a cordis tool result into a purpose-built card. + * + * @param {object} spec + * @param {string} spec.name — the tool name (cordis_mount|unmount|inspect). + * @param {object} [spec.argsObj] — the parsed `tool/call.arguments` (code/id/what). + * @param {string} [spec.text] — the tool/result text content (already flattened). + * @param {boolean} [spec.isError] — the tool/result isError flag. + * @param {Function} [spec.buildTree] — override for buildJsonTree (tests). + * @param {Document} [spec.doc] — override document (tests); defaults to global. + * @returns {HTMLElement} + */ +function renderCordisCard(spec) { + const s = spec || {} + const doc = s.doc || (typeof document !== 'undefined' ? document : null) + const name = s.name + const argsObj = s.argsObj && typeof s.argsObj === 'object' ? s.argsObj : {} + const text = typeof s.text === 'string' ? s.text : '' + const isError = !!s.isError + + const el = doc.createElement('div') + el.className = 'card-cordis' + el.setAttribute('data-tool-card-family', 'cordis') + el.setAttribute('data-cordis-op', String(name)) + + // -- header: op glyph + id + status dot ------------------------------------ + const header = doc.createElement('div') + header.className = 'card-cordis-header' + const glyph = doc.createElement('span') + glyph.className = 'card-cordis-op-glyph' + glyph.textContent = OP_GLYPH[name] || '~' + header.appendChild(glyph) + + // The most identifying token for the header, per operation. mount's id lives + // in the result (runtime-assigned dyn-N), so parse it; unmount/inspect carry + // it in args. + const mount = name === 'cordis_mount' && !isError ? parseMountResult(text) : null + const unmount = name === 'cordis_unmount' && !isError ? parseUnmountResult(text) : null + let headerId + if (name === 'cordis_mount') headerId = mount ? mount.id : 'mount' + else if (name === 'cordis_unmount') headerId = argsObj.id != null ? String(argsObj.id) : (unmount ? unmount.id : 'unmount') + else headerId = argsObj.what != null ? String(argsObj.what) : 'all sections' + + const idEl = doc.createElement('span') + idEl.className = 'card-cordis-id' + idEl.textContent = String(headerId) + header.appendChild(idEl) + + const status = doc.createElement('span') + status.className = 'card-cordis-status ' + (isError ? 'err' : 'ok') + status.setAttribute('aria-hidden', 'true') + status.textContent = isError ? '●' : '●' // ● (colour carries meaning; class-driven) + status.setAttribute('title', isError ? 'error' : 'ok') + header.appendChild(status) + el.appendChild(header) + + const body = doc.createElement('div') + body.className = 'card-cordis-body' + el.appendChild(body) + + // -- error path: surface the tool's own message verbatim ------------------ + if (isError) { + const err = doc.createElement('div') + err.className = 'card-cordis-error' + err.textContent = text || '[error]' + body.appendChild(err) + return el + } + + // -- mount ----------------------------------------------------------------- + if (name === 'cordis_mount') { + if (mount) { + const kv = doc.createElement('div') + kv.className = 'card-cordis-kv' + kv.appendChild(kvRow(doc, 'id', mount.id)) + kv.appendChild(kvRow(doc, 'name', mount.pluginName)) + kv.appendChild(kvRow(doc, 'state', mount.state)) + if (mount.waiting.length > 0) kv.appendChild(kvRow(doc, 'waiting', mount.waiting.join(', '))) + body.appendChild(kv) + // A mount definitionally adds exactly this entry. + body.appendChild(deltaLine(doc, 'add', mount.id)) + } else { + // Unrecognised success text: show what IS there rather than an empty card. + appendRawText(doc, body, text) + } + // The mount source (`code`) is the closest thing the entry carries to a + // config; keep it behind a fold so a dozen-line plugin body doesn't drown + // the card. Absent when the arg wasn't captured. + if (typeof argsObj.code === 'string' && argsObj.code.length > 0) { + body.appendChild(codeFold(doc, argsObj.code)) + } + return el + } + + // -- unmount --------------------------------------------------------------- + if (name === 'cordis_unmount') { + const removedId = unmount ? unmount.id : (argsObj.id != null ? String(argsObj.id) : null) + if (unmount) { + const kv = doc.createElement('div') + kv.className = 'card-cordis-kv' + kv.appendChild(kvRow(doc, 'id', unmount.id)) + kv.appendChild(kvRow(doc, 'name', unmount.pluginName)) + body.appendChild(kv) + } else { + appendRawText(doc, body, text) + } + if (removedId) body.appendChild(deltaLine(doc, 'del', removedId)) + return el + } + + // -- inspect --------------------------------------------------------------- + // Reuse the shared Fields-tree over the parsed sections. Falls back to raw + // text when either the tree builder is unavailable (early boot) or the text + // carried no `## ` sections to parse. + const sections = parseInspectSections(text) + const buildTree = resolveBuildTree(s.buildTree) + if (buildTree && Object.keys(sections).length > 0) { + const treeHost = doc.createElement('div') + treeHost.className = 'card-cordis-tree' + // openDepth:1 shows the section names folded; the reader expands a section + // to see its lines — matches the "collapsible list" the task asked for. + treeHost.appendChild(buildTree(doc, sections, { rootName: null, openDepth: 1 })) + body.appendChild(treeHost) + } else { + appendRawText(doc, body, text) + } + return el +} + +// A monospace fold holding the mount `code`. Closed by default. +function codeFold(doc, code) { + const det = doc.createElement('details') + det.className = 'card-cordis-code' + const sum = doc.createElement('summary') + sum.className = 'card-cordis-code-summary' + sum.textContent = 'plugin source' + det.appendChild(sum) + const pre = doc.createElement('pre') + pre.className = 'card-cordis-code-body' + pre.textContent = code + det.appendChild(pre) + return det +} + +// Fallback: raw text in a monospace block (the generic result view, scoped so +// it still reads as part of the cordis card). +function appendRawText(doc, host, text) { + const pre = doc.createElement('pre') + pre.className = 'card-cordis-raw' + pre.textContent = text || '[ok]' + host.appendChild(pre) +} + +// -- exports ----------------------------------------------------------------- +// Dual export shape mirrors tool-cards.js / widgets.js. +const api = { + CORDIS_TOOLS, + OP_GLYPH, + isCordisTool, + parseMountResult, + parseUnmountResult, + parseInspectSections, + renderCordisCard, +} +if (typeof module !== 'undefined' && module.exports) module.exports = api +if (typeof window !== 'undefined') window.__dshCordisCard = api + +})() diff --git a/examples/desktop/src/renderer/index.html b/examples/desktop/src/renderer/index.html index a4f9aed5d5..55bb70d4e3 100644 --- a/examples/desktop/src/renderer/index.html +++ b/examples/desktop/src/renderer/index.html @@ -337,6 +337,9 @@ + + + @@ -1455,6 +1458,13 @@ from any tab. --> + + diff --git a/examples/desktop/src/renderer/mock-fixtures.js b/examples/desktop/src/renderer/mock-fixtures.js index 7643f04781..6d4cfd86c4 100644 --- a/examples/desktop/src/renderer/mock-fixtures.js +++ b/examples/desktop/src/renderer/mock-fixtures.js @@ -282,6 +282,74 @@ function mockCodeDispatch() { } } +// -- cordis dedicated-card mocks (lane-cordis-card) -------------------------- +// Drive the three cordis operations through the SAME onSessionEvent dispatch +// path a real Vibe run would, using PLAIN-TEXT result content (the real wire +// shape — all three tools are generic render intents). Text strings mirror +// packages/cordis/tool-cordis/src (index.ts execute + inspect.ts renderers). + +function mockCordisMount() { + injectMockToolResult({ + name: 'cordis_mount', + args: { + code: "return {\n name: 'change-logger',\n inject: ['tools'],\n apply(ctx) {\n ctx.on('tools/change', () => console.log('tools changed'))\n },\n}", + }, + meta: undefined, + content: [{ type: 'text', text: 'mounted dyn-1 (plugin "change-logger", state: active)' }], + isError: false, + }) +} + +function mockCordisInspect() { + const report = [ + '## services', + '- tools (provided by ToolRegistry)', + '- systemPrompt (provided by SystemPrompt)', + '- bash (provided by LocalBash)', + '', + '## plugins', + '- cordis-dynamic [active]', + '- tool-cordis [active]', + '', + '## tools', + '- cordis_inspect', + '- cordis_mount', + '- cordis_unmount', + '- bash', + '- read', + '', + '## dynamic', + '- dyn-1: change-logger [active]', + '', + '## api', + '- tools — the model-facing tool registry', + ' register(definition: ToolDefinition)', + 'inherited ctx API:', + '- ctx.effect — register a disposable effect', + '', + '## events', + '- tools/change [emit] — fired when the tool registry changes', + " 'tools/change'(): void", + 'waterfall listeners receive a trailing next() and MUST call it to delegate — returning without next() vetoes the chain.', + ].join('\n') + injectMockToolResult({ + name: 'cordis_inspect', + args: {}, + meta: undefined, + content: [{ type: 'text', text: report }], + isError: false, + }) +} + +function mockCordisUnmount() { + injectMockToolResult({ + name: 'cordis_unmount', + args: { id: 'dyn-1' }, + meta: undefined, + content: [{ type: 'text', text: 'unmounted dyn-1 (plugin "change-logger")' }], + isError: false, + }) +} // -- context lane mocks ------------------------------------------ // Drive the recall card + compact card DOM without a live daemon. Same // event-injection shape as the other mocks — feeds through onSessionEvent diff --git a/examples/desktop/src/renderer/renderer.js b/examples/desktop/src/renderer/renderer.js index 31ba92d49d..3c1aab32e2 100644 --- a/examples/desktop/src/renderer/renderer.js +++ b/examples/desktop/src/renderer/renderer.js @@ -1503,6 +1503,18 @@ function safePretty(v) { try { return JSON.stringify(v, null, 2) } catch { return String(v) } } +// Parse a tool/call `arguments` value (JSON string on the wire, or already an +// object on some synthesized paths) into a plain object. Returns {} on any +// failure so consumers can read fields without a null guard. Used by the +// cordis card to reach `code` / `id` / `what` for its header + source fold. +function safeParseArgs(v) { + if (v && typeof v === 'object') return v + if (typeof v === 'string' && v) { + try { const p = JSON.parse(v); return p && typeof p === 'object' ? p : {} } catch { return {} } + } + return {} +} + // Concatenate a content-block array's text-type entries. Reasoning blocks // are streamed into their own frame via `reasoning-delta` chunks; tool_use // / tool-call blocks are rendered as tool cards from the `tool/call` event @@ -5525,6 +5537,21 @@ function onSessionEvent(sessionId, event) { // `view.exitCode`, not `isError`. resBox.textContent = '' resBox.appendChild(tc.renderTerminalCard(view)) + } else if (window.__dshCordisCard && window.__dshCordisCard.isCordisTool(toolName)) { + // cordis self-referential toolset (mount/unmount/inspect): purpose- + // built card parsed from the tool's own text (all three are generic + // render intents with plain-text results — see cordis-card.js). This + // sits AFTER the meta.card switch so a cordis tool that ever grows a + // structured widget/diff view still takes that path first; here we + // own only the generic-text case the family would otherwise dump raw. + resBox.textContent = '' + const argsObj = safeParseArgs(payload && payload.args) + resBox.appendChild(window.__dshCordisCard.renderCordisCard({ + name: toolName, + argsObj, + text: textFromContentBlocks(content), + isError: !!isError, + })) } else { resBox.textContent = textFromContentBlocks(content) || (isError ? '[error]' : '[ok]') if (isError) resBox.style.color = 'var(--error)' @@ -7099,6 +7126,14 @@ document.getElementById('mock-card-diff-write').addEventListener('click', mockCa const mockCardDiffMultiBtn = document.getElementById('mock-card-diff-multi') if (mockCardDiffMultiBtn) mockCardDiffMultiBtn.addEventListener('click', mockCardDiffMulti) document.getElementById('mock-code-dispatch').addEventListener('click', mockCodeDispatch) +// cordis dedicated-card mocks (lane-cordis-card) — guarded like the P1 batch +// below because the buttons are optional (two-file change to add them). +const mockCordisMountBtn = document.getElementById('mock-cordis-mount') +if (mockCordisMountBtn) mockCordisMountBtn.addEventListener('click', mockCordisMount) +const mockCordisInspectBtn = document.getElementById('mock-cordis-inspect') +if (mockCordisInspectBtn) mockCordisInspectBtn.addEventListener('click', mockCordisInspect) +const mockCordisUnmountBtn = document.getElementById('mock-cordis-unmount') +if (mockCordisUnmountBtn) mockCordisUnmountBtn.addEventListener('click', mockCordisUnmount) // P1 batch C mock buttons — guarded because the IDs are optional (adding // them is a two-file change: index.html + here). Missing buttons are a // silent no-op instead of a boot-time TypeError. diff --git a/examples/desktop/src/renderer/style.css b/examples/desktop/src/renderer/style.css index b729fcda0b..16dc93c3f6 100644 --- a/examples/desktop/src/renderer/style.css +++ b/examples/desktop/src/renderer/style.css @@ -1807,6 +1807,96 @@ body.layout-monitor .stream { .card-code-dispatch-row.ok .card-code-dispatch-dot { color: var(--ok); } .card-code-dispatch-row.err .card-code-dispatch-dot { color: var(--error); } +/* Expandable sub-call rows (lane-cordis-card): the row is now a

. + * The summary keeps the compact one-line look; the body reveals args + result + * on expand. Marker hidden so the branch glyph reads as the sole affordance. */ +.card-code-dispatch-row { cursor: default; } +.card-code-dispatch-summary-line { + display: flex; align-items: center; gap: 6px; padding: 2px 0; + font-family: var(--mono); font-size: 12px; cursor: pointer; + list-style: none; +} +.card-code-dispatch-summary-line::-webkit-details-marker { display: none; } +.card-code-dispatch-summary-line::marker { content: ''; } +.card-code-dispatch-summary-line .inspect-badge { margin-left: auto; } +.card-code-dispatch-detail { + margin: 2px 0 4px 18px; padding-left: 8px; + border-left: 1px dashed var(--border); + display: flex; flex-direction: column; gap: 4px; +} +.card-code-dispatch-detail-label { + color: var(--muted); font-size: 10px; letter-spacing: 0.03em; + text-transform: uppercase; +} +.card-code-dispatch-detail-body { + margin: 0; font-family: var(--mono); font-size: 11px; + white-space: pre-wrap; word-break: break-word; + color: var(--text); max-height: 200px; overflow: auto; +} +.card-code-dispatch-row.nested { border-left: 1px solid var(--border); } + +/* -- cordis dedicated card (lane-cordis-card) -------------------------------- + * The self-referential toolset (mount/unmount/inspect): the model editing its + * own runtime. Uses the cordis family accent (--muted band on the tool-block) + * plus a purpose-built header + body. */ +.card-cordis { + border-top: 1px dashed var(--border); margin-top: 4px; padding-top: 6px; + font-size: 12px; +} +.card-cordis-header { + display: flex; align-items: center; gap: 8px; margin-bottom: 6px; +} +.card-cordis-op-glyph { + font-family: var(--mono); font-size: 13px; color: var(--accent); + width: 1.2em; text-align: center; flex: 0 0 auto; +} +.card-cordis-id { + font-family: var(--mono); font-weight: 600; color: var(--text); +} +.card-cordis-status { font-size: 9px; line-height: 1; flex: 0 0 auto; } +.card-cordis-status.ok { color: var(--ok); } +.card-cordis-status.err { color: var(--error); } +.card-cordis-body { display: flex; flex-direction: column; gap: 6px; } +.card-cordis-kv { + display: grid; grid-template-columns: max-content 1fr; gap: 2px 12px; + font-family: var(--mono); font-size: 12px; +} +.card-cordis-kv-row { display: contents; } +.card-cordis-kv-key { color: var(--muted); } +.card-cordis-kv-val { color: var(--text); word-break: break-word; } +.card-cordis-delta { + display: flex; align-items: center; gap: 6px; + font-family: var(--mono); font-size: 12px; +} +.card-cordis-delta-sig { width: 1em; text-align: center; flex: 0 0 auto; } +.card-cordis-delta.add .card-cordis-delta-sig { color: var(--ok); } +.card-cordis-delta.del .card-cordis-delta-sig { color: var(--error); } +.card-cordis-delta.add .card-cordis-delta-entry { color: var(--text); } +.card-cordis-delta.del .card-cordis-delta-entry { + color: var(--muted); text-decoration: line-through; +} +.card-cordis-error { + font-family: var(--mono); font-size: 12px; color: var(--error); + white-space: pre-wrap; word-break: break-word; +} +.card-cordis-raw { + margin: 0; font-family: var(--mono); font-size: 12px; + white-space: pre-wrap; word-break: break-word; color: var(--text); +} +.card-cordis-tree { font-size: 12px; } +.card-cordis-code { margin-top: 2px; } +.card-cordis-code-summary { + cursor: pointer; color: var(--muted); font-size: 11px; + text-transform: uppercase; letter-spacing: 0.03em; +} +.card-cordis-code-body { + margin: 4px 0 0; font-family: var(--mono); font-size: 11px; + white-space: pre-wrap; word-break: break-word; + color: var(--text); max-height: 240px; overflow: auto; + background: var(--bg-elev); border: 1px solid var(--border); + border-radius: 4px; padding: 6px 8px; +} + /* --- visibility batch B (todo, prompt/blocked, turn/end, subagent finished, sandbox+preset badges, approval audit) --- */ /* Owned by visibility-controller.js; scoped to .visibility-* / .todo-* / .pb-* / .sas-* / .sandbox-* / .preset-* classes so the block adds surface without overriding anything above. */ diff --git a/examples/desktop/src/renderer/tool-cards.js b/examples/desktop/src/renderer/tool-cards.js index c5c8234662..ea53a536a6 100644 --- a/examples/desktop/src/renderer/tool-cards.js +++ b/examples/desktop/src/renderer/tool-cards.js @@ -704,11 +704,26 @@ function formatJson(v, emptyMsg) { // -- code-dispatch fan-out --------------------------------------------------- /** - * Append a sub-call row to a parent `run_code` tool block. The row is a small - * indented line summarising the sub-tool call — a full nested card would drown - * the stream when Code Mode fans out to a dozen calls. + * Append a sub-call row to a parent `run_code` tool block. Each row is a + * `
` whose collapsed `` keeps the compact one-line shape + * (branch · status · name · result gist) so a dozen fan-out calls stay + * scannable; expanding it reveals that sub-call's arguments and result summary. + * A `{ }` inspector badge on the summary opens the unified Inspector anchored + * to a reconstructed `tool/call` event for the sub-call (same affordance the + * top-level tool cards carry). + * + * Wire shape (packages/core/tools/src/code-mode.ts): the `tool/code-dispatch` + * event carries `{parentCallId, subCallId, name, arguments, isError, + * resultSummary}` — arguments AND result land in ONE event (the event fires + * after the sub-call completes), so there is no separate result event to await. + * + * Nesting: the wire carries no depth field for dispatch-within-dispatch, so + * rows render flat. If a caller ever passes a finite `event.depth > 0` we + * indent one level per depth (reusing the fused-call-row inset), leaving the + * shape ready if the runtime starts emitting depth. + * * @param {HTMLElement} parentResBox — the `.result` div of the enclosing run_code call - * @param {{ name: string, subCallId: string, isError: boolean, resultSummary?: string }} event + * @param {{ name: string, subCallId: string, arguments?: unknown, isError: boolean, resultSummary?: string, depth?: number }} event * @returns {HTMLElement} */ function appendCodeDispatch(parentResBox, event) { @@ -725,26 +740,98 @@ function appendCodeDispatch(parentResBox, event) { list.appendChild(header) parentResBox.appendChild(list) } - const row = document.createElement('div') - row.className = 'card-code-dispatch-row ' + (event && event.isError ? 'err' : 'ok') + const isError = !!(event && event.isError) + const s = event && typeof event.resultSummary === 'string' ? event.resultSummary : '' + const subName = String(event && event.name != null ? event.name : '(unknown)') + + // The row is a
so it expands in place. Class stays + // `card-code-dispatch-row ok|err` so existing probes/tests that select the + // row by class keep working across the collapsed→expandable change. + const row = document.createElement('details') + row.className = 'card-code-dispatch-row ' + (isError ? 'err' : 'ok') + if (event && event.subCallId != null) row.setAttribute('data-sub-call-id', String(event.subCallId)) + // Optional depth inset (defensive; wire has no depth today). + const depth = event && Number.isFinite(event.depth) ? Math.max(0, Math.floor(event.depth)) : 0 + if (depth > 0) { + row.classList.add('nested') + row.style.marginLeft = (depth * 12) + 'px' + } + + const summary = document.createElement('summary') + summary.className = 'card-code-dispatch-summary-line' const branch = document.createElement('span') branch.className = 'card-code-dispatch-branch' branch.textContent = '└─' // └─ - const name = document.createElement('span') - name.className = 'card-code-dispatch-name' - name.textContent = String(event && event.name != null ? event.name : '(unknown)') const dot = document.createElement('span') dot.className = 'card-code-dispatch-dot' - dot.textContent = event && event.isError ? '✗' : '✓' // ✗/✓ - const summary = document.createElement('span') - summary.className = 'card-code-dispatch-summary' - const s = event && typeof event.resultSummary === 'string' ? event.resultSummary : '' - summary.textContent = s - row.append(branch, dot, name, summary) + dot.textContent = isError ? '✗' : '✓' // ✗/✓ + const name = document.createElement('span') + name.className = 'card-code-dispatch-name' + name.textContent = subName + // The collapsed one-line result gist keeps the original class name so the + // scannable summary text is unchanged when the row is closed. + const gist = document.createElement('span') + gist.className = 'card-code-dispatch-summary' + gist.textContent = s + summary.append(branch, dot, name, gist) + + // { } inspector badge on the summary, anchored to a reconstructed tool/call + // event for this sub-call. Guarded: absent inspector (early boot / node + // tests) simply skips the badge — never throws. + const ins = (typeof window !== 'undefined') ? window.__dshInspector : null + if (ins && typeof ins.attachInspectBadge === 'function') { + const subEvent = { + type: 'tool/call', + __reconstructed: true, + data: { + callId: event && event.subCallId, + name: subName, + arguments: event ? event.arguments : undefined, + result: { isError, resultSummary: s }, + }, + } + ins.attachInspectBadge(summary, () => ({ event: subEvent, tab: 'json', title: `sub-call: ${subName}` })) + } + row.appendChild(summary) + + // Expanded body: args + result summary. Built once; the
toggle + // shows/hides it with no rebuild. + const detail = document.createElement('div') + detail.className = 'card-code-dispatch-detail' + detail.appendChild(dispatchDetailBlock('args', codeDispatchArgsText(event && event.arguments))) + detail.appendChild(dispatchDetailBlock('result', s || (isError ? '[error]' : '[ok]'))) + row.appendChild(detail) + list.appendChild(row) return row } +// A labelled monospace block inside an expanded sub-call row. +function dispatchDetailBlock(label, text) { + const wrap = document.createElement('div') + wrap.className = 'card-code-dispatch-detail-block' + const lab = document.createElement('div') + lab.className = 'card-code-dispatch-detail-label' + lab.textContent = label + const pre = document.createElement('pre') + pre.className = 'card-code-dispatch-detail-body' + pre.textContent = text + wrap.append(lab, pre) + return wrap +} + +// Flatten a sub-call's `arguments` (any JS value or JSON string) into a pretty +// block for the expanded row. Mirrors formatJson's re-parse trick so a +// JSON-string arg reads indented, not as escape soup. +function codeDispatchArgsText(args) { + if (args == null) return '(no arguments)' + if (typeof args === 'string') { + if (args === '') return '(no arguments)' + try { return JSON.stringify(JSON.parse(args), null, 2) } catch { return args } + } + try { return JSON.stringify(args, null, 2) } catch { return String(args) } +} + // -- exports ----------------------------------------------------------------- // Dual export shape mirrors widgets.js: CommonJS for node:test, window for // the renderer. The renderer script tag runs before renderer.js so the diff --git a/examples/desktop/test/cordis-card.test.js b/examples/desktop/test/cordis-card.test.js new file mode 100644 index 0000000000..c699579533 --- /dev/null +++ b/examples/desktop/test/cordis-card.test.js @@ -0,0 +1,277 @@ +// Cordis dedicated card unit tests. Runs under `node --test`, no Electron. +// Shares the hand-rolled DOM shim with tool-cards.test.js / widgets.test.js +// (see those files for why we don't pull in jsdom). Fixtures mirror the REAL +// upstream wire shapes (test/fixtures/cordis-wire-shapes.json). + +'use strict' + +const test = require('node:test') +const assert = require('node:assert/strict') +const fs = require('node:fs') +const path = require('node:path') + +const FIX = JSON.parse(fs.readFileSync(path.join(__dirname, 'fixtures/cordis-wire-shapes.json'), 'utf8')) + +function makeShim() { + function make(tagName) { + const el = { + tagName: String(tagName).toUpperCase(), + children: [], + attrs: {}, + style: {}, + dataset: {}, + classList: { + _s: new Set(), + add(...names) { for (const n of names) this._s.add(n) }, + remove(...names) { for (const n of names) this._s.delete(n) }, + contains(n) { return this._s.has(n) }, + toggle(n) { if (this._s.has(n)) this._s.delete(n); else this._s.add(n) }, + }, + _text: '', + get textContent() { return this._text }, + set textContent(v) { this._text = String(v); this.children = [] }, + set className(v) { this._className = String(v); for (const c of String(v).split(/\s+/)) this.classList.add(c) }, + get className() { return this._className || '' }, + setAttribute(k, v) { this.attrs[k] = String(v) }, + getAttribute(k) { return this.attrs[k] }, + appendChild(c) { this.children.push(c); return c }, + append(...cs) { for (const c of cs) this.children.push(c) }, + addEventListener() { /* no-op */ }, + } + return el + } + const doc = { createElement: (t) => make(t) } + return { doc } +} + +function walk(node, pred, out = []) { + if (!node || !node.tagName) return out + if (pred(node)) out.push(node) + for (const c of node.children || []) walk(c, pred, out) + return out +} +function byClass(node, cls) { return walk(node, (n) => n.classList && n.classList.contains(cls)) } +function firstText(node, cls) { const h = byClass(node, cls)[0]; return h ? h._text : undefined } + +function loadCard() { + const p = require.resolve('../src/renderer/cordis-card.js') + delete require.cache[p] + return require('../src/renderer/cordis-card.js') +} + +// ----- name detection -------------------------------------------------------- + +test('isCordisTool: only the three cordis names, and they match TOOL_FAMILIES', () => { + global.document = makeShim().doc + const { isCordisTool, CORDIS_TOOLS } = loadCard() + assert.ok(isCordisTool('cordis_mount')) + assert.ok(isCordisTool('cordis_unmount')) + assert.ok(isCordisTool('cordis_inspect')) + assert.ok(!isCordisTool('bash')) + assert.ok(!isCordisTool('cordis_frobnicate')) + assert.ok(!isCordisTool(null)) + // consistency with the family map that also identifies these names + const tc = require('../src/renderer/tool-cards.js') + for (const n of CORDIS_TOOLS) assert.equal(tc.toolFamilyFor(n).className, 'family-cordis') +}) + +// ----- parsers (pure, over real result text) -------------------------------- + +test('parseMountResult: active mount, no waiting', () => { + global.document = makeShim().doc + const { parseMountResult } = loadCard() + const text = FIX.mount_ok.result.data.content[0].text + const m = parseMountResult(text) + assert.deepEqual(m, { id: 'dyn-1', pluginName: 'change-logger', state: 'active', waiting: [] }) +}) + +test('parseMountResult: pending mount names the awaited services', () => { + global.document = makeShim().doc + const { parseMountResult } = loadCard() + const text = FIX.mount_pending_waiting.result.data.content[0].text + const m = parseMountResult(text) + assert.equal(m.id, 'dyn-2') + assert.equal(m.pluginName, 'greeter-consumer') + assert.equal(m.state, 'pending') + assert.deepEqual(m.waiting, ['greeter']) +}) + +test('parseMountResult: non-mount text yields null (falls back to raw)', () => { + global.document = makeShim().doc + const { parseMountResult } = loadCard() + assert.equal(parseMountResult('mount code returned `undefined`'), null) + assert.equal(parseMountResult(''), null) + assert.equal(parseMountResult(null), null) +}) + +test('parseUnmountResult: id + plugin name', () => { + global.document = makeShim().doc + const { parseUnmountResult } = loadCard() + const text = FIX.unmount_ok.result.data.content[0].text + assert.deepEqual(parseUnmountResult(text), { id: 'dyn-1', pluginName: 'change-logger' }) + assert.equal(parseUnmountResult('no dynamic plugin with id "dyn-9"'), null) +}) + +test('parseInspectSections: splits `## ` headings into line arrays', () => { + global.document = makeShim().doc + const { parseInspectSections } = loadCard() + const text = FIX.inspect_all.result.data.content[0].text + const secs = parseInspectSections(text) + assert.deepEqual(Object.keys(secs), ['services', 'plugins', 'tools', 'dynamic', 'api', 'events']) + assert.ok(secs.tools.includes('- cordis_mount')) + assert.ok(secs.dynamic.includes('- dyn-1: change-logger [active]')) + // no headings → empty object + assert.deepEqual(parseInspectSections('just some text'), {}) + assert.deepEqual(parseInspectSections(''), {}) +}) + +// ----- mount card ------------------------------------------------------------ + +test('renderCordisCard mount ok: header id + kv block + add delta', () => { + const { doc } = makeShim(); global.document = doc + const { renderCordisCard } = loadCard() + const el = renderCordisCard({ + name: 'cordis_mount', + argsObj: JSON.parse(FIX.mount_ok.call.data.arguments), + text: FIX.mount_ok.result.data.content[0].text, + isError: false, + doc, + }) + assert.equal(el.getAttribute('data-cordis-op'), 'cordis_mount') + assert.equal(el.getAttribute('data-tool-card-family'), 'cordis') + assert.equal(firstText(el, 'card-cordis-id'), 'dyn-1') + // status ok + assert.ok(byClass(el, 'card-cordis-status')[0].classList.contains('ok')) + // kv rows: id / name / state (no waiting) + const keys = byClass(el, 'card-cordis-kv-key').map((n) => n._text) + assert.deepEqual(keys, ['id', 'name', 'state']) + // add-delta line for the mounted id + const delta = byClass(el, 'card-cordis-delta')[0] + assert.ok(delta.classList.contains('add')) + assert.equal(firstText(delta, 'card-cordis-delta-entry'), 'dyn-1') + // plugin source fold present (code arg captured) + assert.equal(byClass(el, 'card-cordis-code').length, 1) +}) + +test('renderCordisCard mount pending: waiting row present', () => { + const { doc } = makeShim(); global.document = doc + const { renderCordisCard } = loadCard() + const el = renderCordisCard({ + name: 'cordis_mount', + argsObj: JSON.parse(FIX.mount_pending_waiting.call.data.arguments), + text: FIX.mount_pending_waiting.result.data.content[0].text, + isError: false, + doc, + }) + const keys = byClass(el, 'card-cordis-kv-key').map((n) => n._text) + assert.deepEqual(keys, ['id', 'name', 'state', 'waiting']) + const waitVal = byClass(el, 'card-cordis-kv-val').map((n) => n._text) + assert.ok(waitVal.includes('greeter')) +}) + +test('renderCordisCard mount error: verbatim message, err status, no delta', () => { + const { doc } = makeShim(); global.document = doc + const { renderCordisCard } = loadCard() + const el = renderCordisCard({ + name: 'cordis_mount', + argsObj: JSON.parse(FIX.mount_error.call.data.arguments), + text: FIX.mount_error.result.data.content[0].text, + isError: true, + doc, + }) + assert.ok(byClass(el, 'card-cordis-status')[0].classList.contains('err')) + const err = byClass(el, 'card-cordis-error')[0] + assert.ok(err._text.includes('did you forget `return`')) + assert.equal(byClass(el, 'card-cordis-delta').length, 0) + assert.equal(byClass(el, 'card-cordis-kv').length, 0) +}) + +// ----- unmount card ---------------------------------------------------------- + +test('renderCordisCard unmount ok: kv + del delta on the removed id', () => { + const { doc } = makeShim(); global.document = doc + const { renderCordisCard } = loadCard() + const el = renderCordisCard({ + name: 'cordis_unmount', + argsObj: JSON.parse(FIX.unmount_ok.call.data.arguments), + text: FIX.unmount_ok.result.data.content[0].text, + isError: false, + doc, + }) + assert.equal(firstText(el, 'card-cordis-id'), 'dyn-1') + const delta = byClass(el, 'card-cordis-delta')[0] + assert.ok(delta.classList.contains('del')) + assert.equal(firstText(delta, 'card-cordis-delta-entry'), 'dyn-1') +}) + +test('renderCordisCard unmount error: header id from args, message verbatim', () => { + const { doc } = makeShim(); global.document = doc + const { renderCordisCard } = loadCard() + const el = renderCordisCard({ + name: 'cordis_unmount', + argsObj: JSON.parse(FIX.unmount_error.call.data.arguments), + text: FIX.unmount_error.result.data.content[0].text, + isError: true, + doc, + }) + // header id still resolves from args even when the result is an error + assert.equal(firstText(el, 'card-cordis-id'), 'dyn-9') + assert.ok(byClass(el, 'card-cordis-error')[0]._text.includes('no dynamic plugin')) + assert.equal(byClass(el, 'card-cordis-delta').length, 0) +}) + +// ----- inspect card ---------------------------------------------------------- + +test('renderCordisCard inspect: reuses injected buildJsonTree over parsed sections', () => { + const { doc } = makeShim(); global.document = doc + const { renderCordisCard } = loadCard() + let seenValue = null + let seenOpts = null + const buildTree = (d, value, opts) => { seenValue = value; seenOpts = opts; const n = d.createElement('div'); n.className = 'stub-tree'; return n } + const el = renderCordisCard({ + name: 'cordis_inspect', + argsObj: {}, + text: FIX.inspect_all.result.data.content[0].text, + isError: false, + buildTree, + doc, + }) + // header id defaults to "all sections" when `what` is absent + assert.equal(firstText(el, 'card-cordis-id'), 'all sections') + // the tree host holds the stub tree (no new tree built here) + assert.equal(byClass(el, 'stub-tree').length, 1) + // buildJsonTree was fed the parsed section object + openDepth 1 + assert.deepEqual(Object.keys(seenValue), ['services', 'plugins', 'tools', 'dynamic', 'api', 'events']) + assert.equal(seenOpts.openDepth, 1) +}) + +test('renderCordisCard inspect with `what`: header shows the section, tree over one key', () => { + const { doc } = makeShim(); global.document = doc + const { renderCordisCard } = loadCard() + let seenValue = null + const buildTree = (d, value) => { seenValue = value; const n = d.createElement('div'); n.className = 'stub-tree'; return n } + const el = renderCordisCard({ + name: 'cordis_inspect', + argsObj: JSON.parse(FIX.inspect_dynamic.call.data.arguments), + text: FIX.inspect_dynamic.result.data.content[0].text, + isError: false, + buildTree, + doc, + }) + assert.equal(firstText(el, 'card-cordis-id'), 'dynamic') + assert.deepEqual(Object.keys(seenValue), ['dynamic']) +}) + +test('renderCordisCard inspect: falls back to raw text when no tree builder', () => { + const { doc } = makeShim(); global.document = doc + const { renderCordisCard } = loadCard() + const el = renderCordisCard({ + name: 'cordis_inspect', + argsObj: {}, + text: FIX.inspect_all.result.data.content[0].text, + isError: false, + buildTree: null, + doc, + }) + assert.equal(byClass(el, 'card-cordis-raw').length, 1) +}) diff --git a/examples/desktop/test/fixtures/cordis-wire-shapes.json b/examples/desktop/test/fixtures/cordis-wire-shapes.json new file mode 100644 index 0000000000..004852bc4e --- /dev/null +++ b/examples/desktop/test/fixtures/cordis-wire-shapes.json @@ -0,0 +1,284 @@ +{ + "_comment": "Realistic tool/call + tool/result wire shapes for the three cordis tools, mirroring the REAL upstream package (packages/cordis/tool-cordis/src in the sibling runtime repo). All three declare a `generic` render intent and return PLAIN-TEXT content blocks — there is no structured result object on the wire. Result text strings below are the exact formats the tool's execute() returns (index.ts) and inspect renderers emit (inspect.ts); STATE_LABELS are lowercase upstream (`active`/`pending`). meta is omitted (generic card carries none). These feed the cordis-card unit tests + the QA shoot's event-injection seam.", + + "mount_ok": { + "call": { + "type": "tool/call", + "seq": 101, + "time": 1721400000000, + "data": { + "turn": 0, + "step": 0, + "callId": "cordis-mount-1", + "name": "cordis_mount", + "arguments": "{\"code\":\"return {\\n name: 'change-logger',\\n inject: ['tools'],\\n apply(ctx) {\\n ctx.on('tools/change', () => console.log('tools changed'))\\n },\\n}\"}" + } + }, + "result": { + "type": "tool/result", + "seq": 102, + "time": 1721400001200, + "data": { + "turn": 0, + "step": 0, + "callId": "cordis-mount-1", + "isError": false, + "durationMs": 1180, + "content": [ + { "type": "text", "text": "mounted dyn-1 (plugin \"change-logger\", state: active)" } + ] + } + } + }, + + "mount_pending_waiting": { + "call": { + "type": "tool/call", + "seq": 111, + "time": 1721400010000, + "data": { + "turn": 1, + "step": 0, + "callId": "cordis-mount-2", + "name": "cordis_mount", + "arguments": "{\"code\":\"return {\\n name: 'greeter-consumer',\\n inject: ['greeter'],\\n apply(ctx) { ctx.greeter.hello() },\\n}\"}" + } + }, + "result": { + "type": "tool/result", + "seq": 112, + "time": 1721400010900, + "data": { + "turn": 1, + "step": 0, + "callId": "cordis-mount-2", + "isError": false, + "durationMs": 860, + "content": [ + { "type": "text", "text": "mounted dyn-2 (plugin \"greeter-consumer\", state: pending — waiting for service(s): greeter (activates when provided))" } + ] + } + } + }, + + "mount_error": { + "call": { + "type": "tool/call", + "seq": 121, + "time": 1721400020000, + "data": { + "turn": 2, + "step": 0, + "callId": "cordis-mount-3", + "name": "cordis_mount", + "arguments": "{\"code\":\"const x = 1\"}" + } + }, + "result": { + "type": "tool/result", + "seq": 122, + "time": 1721400020400, + "data": { + "turn": 2, + "step": 0, + "callId": "cordis-mount-3", + "isError": true, + "durationMs": 40, + "content": [ + { "type": "text", "text": "mount code returned `undefined` — did you forget `return`?\n ✓ return (ctx) => { … }\n ✓ return { name: '…', inject: […], apply(ctx) { … } }" } + ] + } + } + }, + + "unmount_ok": { + "call": { + "type": "tool/call", + "seq": 131, + "time": 1721400030000, + "data": { + "turn": 3, + "step": 0, + "callId": "cordis-unmount-1", + "name": "cordis_unmount", + "arguments": "{\"id\":\"dyn-1\"}" + } + }, + "result": { + "type": "tool/result", + "seq": 132, + "time": 1721400030500, + "data": { + "turn": 3, + "step": 0, + "callId": "cordis-unmount-1", + "isError": false, + "durationMs": 520, + "content": [ + { "type": "text", "text": "unmounted dyn-1 (plugin \"change-logger\")" } + ] + } + } + }, + + "unmount_error": { + "call": { + "type": "tool/call", + "seq": 141, + "time": 1721400040000, + "data": { + "turn": 4, + "step": 0, + "callId": "cordis-unmount-2", + "name": "cordis_unmount", + "arguments": "{\"id\":\"dyn-9\"}" + } + }, + "result": { + "type": "tool/result", + "seq": 142, + "time": 1721400040100, + "data": { + "turn": 4, + "step": 0, + "callId": "cordis-unmount-2", + "isError": true, + "durationMs": 12, + "content": [ + { "type": "text", "text": "no dynamic plugin with id \"dyn-9\" (list mounts with cordis_inspect what:\"dynamic\")" } + ] + } + } + }, + + "inspect_all": { + "call": { + "type": "tool/call", + "seq": 151, + "time": 1721400050000, + "data": { + "turn": 5, + "step": 0, + "callId": "cordis-inspect-1", + "name": "cordis_inspect", + "arguments": "{}" + } + }, + "result": { + "type": "tool/result", + "seq": 152, + "time": 1721400050700, + "data": { + "turn": 5, + "step": 0, + "callId": "cordis-inspect-1", + "isError": false, + "durationMs": 34, + "content": [ + { "type": "text", "text": "## services\n- tools (provided by ToolRegistry)\n- systemPrompt (provided by SystemPrompt)\n- bash (provided by LocalBash)\n\n## plugins\n- cordis-dynamic [active]\n- tool-cordis [active]\n\n## tools\n- cordis_inspect\n- cordis_mount\n- cordis_unmount\n- bash\n- read\n\n## dynamic\n- dyn-1: change-logger [active]\n\n## api\n- tools — the model-facing tool registry\n register(definition: ToolDefinition)\n- systemPrompt — the composed system prompt\ninherited ctx API:\n- ctx.effect — register a disposable effect\n\n## events\n- tools/change [emit] — fired when the tool registry changes\n 'tools/change'(): void\n- tools/pre-execute [waterfall] — intercept a tool call\n 'tools/pre-execute'(call, next): void\nwaterfall listeners receive a trailing next() and MUST call it to delegate — returning without next() vetoes the chain." } + ] + } + } + }, + + "inspect_dynamic": { + "call": { + "type": "tool/call", + "seq": 161, + "time": 1721400060000, + "data": { + "turn": 6, + "step": 0, + "callId": "cordis-inspect-2", + "name": "cordis_inspect", + "arguments": "{\"what\":\"dynamic\"}" + } + }, + "result": { + "type": "tool/result", + "seq": 162, + "time": 1721400060300, + "data": { + "turn": 6, + "step": 0, + "callId": "cordis-inspect-2", + "isError": false, + "durationMs": 18, + "content": [ + { "type": "text", "text": "## dynamic\n- dyn-1: change-logger [active]\n- dyn-2: greeter-consumer [pending] — waiting for: greeter" } + ] + } + } + }, + + "code_dispatch_run": { + "parent_call": { + "type": "tool/call", + "seq": 201, + "time": 1721400070000, + "data": { + "turn": 7, + "step": 0, + "callId": "run-code-1", + "name": "run_code", + "arguments": "{\"code\":\"const files = await bash({command:'ls src'});\\nconst hosts = await read({file_path:'/etc/hosts'});\\nawait edit({file_path:'src/x.ts', old_string:'foo', new_string:'bar'})\"}" + } + }, + "parent_result": { + "type": "tool/result", + "seq": 208, + "time": 1721400072500, + "data": { + "turn": 7, + "step": 0, + "callId": "run-code-1", + "isError": false, + "durationMs": 2480, + "content": [ + { "type": "text", "text": "[code mode dispatched 3 sub-calls]" } + ] + } + }, + "dispatches": [ + { + "type": "tool/code-dispatch", + "seq": 202, + "time": 1721400070600, + "data": { + "parentCallId": "run-code-1", + "subCallId": "run-code-1:code:1", + "name": "bash", + "arguments": { "command": "ls src" }, + "isError": false, + "resultSummary": "index.ts\nmount.ts\ninspect.ts\npresent.ts" + } + }, + { + "type": "tool/code-dispatch", + "seq": 204, + "time": 1721400071300, + "data": { + "parentCallId": "run-code-1", + "subCallId": "run-code-1:code:2", + "name": "read", + "arguments": { "file_path": "/etc/hosts" }, + "isError": false, + "resultSummary": "read 12 lines from /etc/hosts" + } + }, + { + "type": "tool/code-dispatch", + "seq": 206, + "time": 1721400072100, + "data": { + "parentCallId": "run-code-1", + "subCallId": "run-code-1:code:3", + "name": "edit", + "arguments": { "file_path": "src/x.ts", "old_string": "foo", "new_string": "bar" }, + "isError": true, + "resultSummary": "no match for old_string in src/x.ts" + } + } + ] + } +} diff --git a/examples/desktop/test/tool-cards.test.js b/examples/desktop/test/tool-cards.test.js index 15525f7009..e386b21349 100644 --- a/examples/desktop/test/tool-cards.test.js +++ b/examples/desktop/test/tool-cards.test.js @@ -231,12 +231,15 @@ test('appendCodeDispatch: first call clears placeholder + creates the list heade const { appendCodeDispatch } = loadCards() const box = document.createElement('div') box.textContent = '…' - appendCodeDispatch(box, { name: 'bash', subCallId: 'sc1', isError: false, resultSummary: 'ok' }) + appendCodeDispatch(box, { name: 'bash', subCallId: 'sc1', arguments: { command: 'ls' }, isError: false, resultSummary: 'ok' }) const header = walk(box, (n) => n.classList && n.classList.contains('card-code-dispatch-header')) assert.equal(header.length, 1) const rows = walk(box, (n) => n.classList && n.classList.contains('card-code-dispatch-row')) assert.equal(rows.length, 1) assert.ok(rows[0].classList.contains('ok')) + // Row is a
now (expandable) but keeps the row class + sub-call id. + assert.equal(rows[0].tagName, 'DETAILS') + assert.equal(rows[0].attrs['data-sub-call-id'], 'sc1') const name = walk(rows[0], (n) => n.classList && n.classList.contains('card-code-dispatch-name'))[0] assert.equal(name._text, 'bash') }) @@ -254,6 +257,92 @@ test('appendCodeDispatch: second call reuses the same list (no double header)', assert.ok(rows[1].classList.contains('err')) }) +test('appendCodeDispatch: expandable body carries args + result blocks', () => { + global.document = makeShim().doc + const { appendCodeDispatch } = loadCards() + const box = document.createElement('div') + appendCodeDispatch(box, { + name: 'bash', subCallId: 'sc1', + arguments: { command: 'ls src' }, isError: false, resultSummary: 'listed 4 entries', + }) + const blocks = walk(box, (n) => n.classList && n.classList.contains('card-code-dispatch-detail-block')) + assert.equal(blocks.length, 2, 'args + result blocks') + const labels = walk(box, (n) => n.classList && n.classList.contains('card-code-dispatch-detail-label')).map((n) => n._text) + assert.deepEqual(labels, ['args', 'result']) + const bodies = walk(box, (n) => n.classList && n.classList.contains('card-code-dispatch-detail-body')).map((n) => n._text) + // args pretty-printed; result summary verbatim + assert.ok(bodies[0].includes('"command"')) + assert.ok(bodies[0].includes('ls src')) + assert.equal(bodies[1], 'listed 4 entries') +}) + +test('appendCodeDispatch: string (JSON) arguments re-parsed pretty; empty args labelled', () => { + global.document = makeShim().doc + const { appendCodeDispatch } = loadCards() + const box = document.createElement('div') + appendCodeDispatch(box, { name: 'read', subCallId: 's', arguments: '{"file_path":"/x"}', isError: false, resultSummary: 'ok' }) + appendCodeDispatch(box, { name: 'noop', subCallId: 't', isError: false, resultSummary: 'ok' }) + const bodies = walk(box, (n) => n.classList && n.classList.contains('card-code-dispatch-detail-body')).map((n) => n._text) + assert.ok(bodies[0].includes('"file_path"')) + // second row's args block (index 2) is the "(no arguments)" fallback + assert.equal(bodies[2], '(no arguments)') +}) + +test('appendCodeDispatch: inspector badge anchored to a reconstructed sub-call event', () => { + global.document = makeShim().doc + global.window = { + __dshInspector: { + attachInspectBadge(el, getTarget) { + const badge = document.createElement('button') + badge.className = 'inspect-badge' + badge._getTarget = getTarget + el.appendChild(badge) + return badge + }, + }, + } + try { + const { appendCodeDispatch } = loadCards() + const box = document.createElement('div') + appendCodeDispatch(box, { + name: 'edit', subCallId: 'run-code-1:code:3', + arguments: { file_path: 'src/x.ts' }, isError: true, resultSummary: 'no match', + }) + const badge = walk(box, (n) => n.classList && n.classList.contains('inspect-badge'))[0] + assert.ok(badge, 'badge attached to the row summary') + const target = badge._getTarget() + assert.equal(target.tab, 'json') + assert.equal(target.event.type, 'tool/call') + assert.equal(target.event.__reconstructed, true) + assert.equal(target.event.data.callId, 'run-code-1:code:3') + assert.equal(target.event.data.name, 'edit') + assert.deepEqual(target.event.data.arguments, { file_path: 'src/x.ts' }) + assert.equal(target.event.data.result.isError, true) + assert.equal(target.event.data.result.resultSummary, 'no match') + } finally { + delete global.window + } +}) + +test('appendCodeDispatch: no inspector present → no badge, no throw', () => { + global.document = makeShim().doc + delete global.window + const { appendCodeDispatch } = loadCards() + const box = document.createElement('div') + appendCodeDispatch(box, { name: 'bash', subCallId: 's', isError: false, resultSummary: 'ok' }) + const badges = walk(box, (n) => n.classList && n.classList.contains('inspect-badge')) + assert.equal(badges.length, 0) +}) + +test('appendCodeDispatch: finite depth indents the row (defensive; wire has none today)', () => { + global.document = makeShim().doc + const { appendCodeDispatch } = loadCards() + const box = document.createElement('div') + const row = appendCodeDispatch(box, { name: 'bash', subCallId: 's', isError: false, resultSummary: 'ok', depth: 2 }) + assert.ok(row.classList.contains('nested')) + assert.equal(row.style.marginLeft, '24px') +}) + // ----- durationMs pill (Ticket D) ------------------------------------------- test('formatDurationLabel: sub-second stays in ms, 1s < X < 60s uses N.Ns', () => {