agent-dag 1.35.12 → 1.35.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# ccdeck
|
|
4
4
|
|
|
5
|
-
**A live canvas for your AI agents.** Watch Claude Code and OpenAI Codex
|
|
5
|
+
**A live canvas for your AI agents.** Watch Claude Code and OpenAI Codex call tools and finish — every Claude Code subagent on a node of its own — all on one calm graph, in real time.
|
|
6
6
|
|
|
7
7
|
[](https://www.npmjs.com/package/ccdeck)
|
|
8
8
|
[](https://www.npmjs.com/package/agents-deck)
|
package/bin/deck.js
CHANGED
|
@@ -10,7 +10,8 @@ import { existsSync, readFileSync } from "node:fs";
|
|
|
10
10
|
import { dieOfSignal } from "../src/server/supervisor.mjs";
|
|
11
11
|
import {
|
|
12
12
|
CURSOR_HIDE, CURSOR_SHOW, colorProfile, fit, glyphs, labelColumn, link, motionOK, palette,
|
|
13
|
-
pulseText, spinnerFrames, statusLine, supportsHyperlinks, termColumns, unicodeOK,
|
|
13
|
+
pulseText, spinnerFrames, statusLine, supportsHyperlinks, termColumns, unicodeOK,
|
|
14
|
+
unregisteredDetail, wordmark,
|
|
14
15
|
} from "../src/server/term.mjs";
|
|
15
16
|
import { PRODUCT } from "../src/server/brand.mjs";
|
|
16
17
|
import { invokedName, renameNotice } from "../src/server/invoked-as.mjs";
|
|
@@ -600,9 +601,13 @@ if (openBrowser && !RESPAWN) {
|
|
|
600
601
|
if (MOTION) {
|
|
601
602
|
let pi = 0;
|
|
602
603
|
setInterval(() => {
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
604
|
+
// The colour follows the words. A Codex-only deck keeps saying "listening"
|
|
605
|
+
// when it is unregistered — see pulseText — and painting that sentence in
|
|
606
|
+
// the warning tone would restore the alarm the sentence just retired.
|
|
607
|
+
const alarm = !registered && wantClaude;
|
|
608
|
+
const text = pulseText({ registered, claude: wantClaude, columns: cols(), unicode: UNICODE });
|
|
609
|
+
const dot = pi++ % 2 === 0 ? (alarm ? P.warn : P.ok) : P.muted;
|
|
610
|
+
const tone = alarm ? P.warn : P.muted;
|
|
606
611
|
write(`\r ${dot}${G.pulse}${P.reset} ${tone}${text}${P.reset}`);
|
|
607
612
|
}, 800).unref();
|
|
608
613
|
}
|
|
@@ -637,14 +642,17 @@ process.on("beforeExit", () => { discovery.stop(); removeDiscovery(discoveryFile
|
|
|
637
642
|
|
|
638
643
|
// ── helpers ───────────────────────────────────────────────────────────────────
|
|
639
644
|
|
|
640
|
-
// The deck is up and the
|
|
641
|
-
// reason — because the alternative is what this replaced: an
|
|
642
|
-
// deck that simply never shows a session.
|
|
645
|
+
// The deck is up and the discovery file could not be written. Said in full —
|
|
646
|
+
// the path, the reason — because the alternative is what this replaced: an
|
|
647
|
+
// ordinary-looking deck that simply never shows a session.
|
|
648
|
+
//
|
|
649
|
+
// What that costs depends on which CLI this deck watches, so the sentence comes
|
|
650
|
+
// from term.mjs, where both answers are written down and tested.
|
|
643
651
|
function reportUnregistered({ file, error }) {
|
|
644
652
|
const why = error?.message ? ` ${G.dash} ${error.message}` : "";
|
|
645
653
|
write(
|
|
646
654
|
`\n ${P.warn}${G.warn}${P.reset} ${P.bold}not registered${P.reset}${P.muted}${why}${P.reset}\n` +
|
|
647
|
-
` ${P.muted}
|
|
655
|
+
` ${P.muted}${unregisteredDetail({ file, claude: wantClaude })}${P.reset}\n`,
|
|
648
656
|
);
|
|
649
657
|
}
|
|
650
658
|
|