aoaoe 0.44.0 → 0.45.0

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.
Files changed (162) hide show
  1. package/README.md +6 -0
  2. package/package.json +5 -2
  3. package/dist/abort-signal.test.d.ts +0 -2
  4. package/dist/abort-signal.test.d.ts.map +0 -1
  5. package/dist/abort-signal.test.js +0 -86
  6. package/dist/abort-signal.test.js.map +0 -1
  7. package/dist/activity.d.ts.map +0 -1
  8. package/dist/activity.js.map +0 -1
  9. package/dist/activity.test.d.ts +0 -2
  10. package/dist/activity.test.d.ts.map +0 -1
  11. package/dist/activity.test.js +0 -57
  12. package/dist/activity.test.js.map +0 -1
  13. package/dist/chat.d.ts.map +0 -1
  14. package/dist/chat.js.map +0 -1
  15. package/dist/chat.test.d.ts +0 -2
  16. package/dist/chat.test.d.ts.map +0 -1
  17. package/dist/chat.test.js +0 -293
  18. package/dist/chat.test.js.map +0 -1
  19. package/dist/colors.d.ts.map +0 -1
  20. package/dist/colors.js.map +0 -1
  21. package/dist/config.d.ts.map +0 -1
  22. package/dist/config.js.map +0 -1
  23. package/dist/config.test.d.ts +0 -2
  24. package/dist/config.test.d.ts.map +0 -1
  25. package/dist/config.test.js +0 -401
  26. package/dist/config.test.js.map +0 -1
  27. package/dist/console.d.ts.map +0 -1
  28. package/dist/console.js.map +0 -1
  29. package/dist/console.test.d.ts +0 -2
  30. package/dist/console.test.d.ts.map +0 -1
  31. package/dist/console.test.js +0 -478
  32. package/dist/console.test.js.map +0 -1
  33. package/dist/context.d.ts.map +0 -1
  34. package/dist/context.js.map +0 -1
  35. package/dist/context.test.d.ts +0 -2
  36. package/dist/context.test.d.ts.map +0 -1
  37. package/dist/context.test.js +0 -424
  38. package/dist/context.test.js.map +0 -1
  39. package/dist/daemon-state.d.ts.map +0 -1
  40. package/dist/daemon-state.js.map +0 -1
  41. package/dist/daemon-state.test.d.ts +0 -2
  42. package/dist/daemon-state.test.d.ts.map +0 -1
  43. package/dist/daemon-state.test.js +0 -317
  44. package/dist/daemon-state.test.js.map +0 -1
  45. package/dist/dashboard.d.ts.map +0 -1
  46. package/dist/dashboard.js.map +0 -1
  47. package/dist/dashboard.test.d.ts +0 -2
  48. package/dist/dashboard.test.d.ts.map +0 -1
  49. package/dist/dashboard.test.js +0 -234
  50. package/dist/dashboard.test.js.map +0 -1
  51. package/dist/executor.d.ts.map +0 -1
  52. package/dist/executor.js.map +0 -1
  53. package/dist/executor.test.d.ts +0 -2
  54. package/dist/executor.test.d.ts.map +0 -1
  55. package/dist/executor.test.js +0 -30
  56. package/dist/executor.test.js.map +0 -1
  57. package/dist/index.d.ts.map +0 -1
  58. package/dist/index.js.map +0 -1
  59. package/dist/init.d.ts.map +0 -1
  60. package/dist/init.js.map +0 -1
  61. package/dist/input.d.ts.map +0 -1
  62. package/dist/input.js.map +0 -1
  63. package/dist/input.test.d.ts +0 -2
  64. package/dist/input.test.d.ts.map +0 -1
  65. package/dist/input.test.js +0 -70
  66. package/dist/input.test.js.map +0 -1
  67. package/dist/integration-test.d.ts +0 -22
  68. package/dist/integration-test.d.ts.map +0 -1
  69. package/dist/integration-test.js +0 -366
  70. package/dist/integration-test.js.map +0 -1
  71. package/dist/ipc.test.d.ts +0 -2
  72. package/dist/ipc.test.d.ts.map +0 -1
  73. package/dist/ipc.test.js +0 -53
  74. package/dist/ipc.test.js.map +0 -1
  75. package/dist/loop.d.ts.map +0 -1
  76. package/dist/loop.js.map +0 -1
  77. package/dist/loop.test.d.ts +0 -2
  78. package/dist/loop.test.d.ts.map +0 -1
  79. package/dist/loop.test.js +0 -573
  80. package/dist/loop.test.js.map +0 -1
  81. package/dist/message.d.ts.map +0 -1
  82. package/dist/message.js.map +0 -1
  83. package/dist/message.test.d.ts +0 -2
  84. package/dist/message.test.d.ts.map +0 -1
  85. package/dist/message.test.js +0 -236
  86. package/dist/message.test.js.map +0 -1
  87. package/dist/poller.d.ts.map +0 -1
  88. package/dist/poller.js.map +0 -1
  89. package/dist/poller.test.d.ts +0 -2
  90. package/dist/poller.test.d.ts.map +0 -1
  91. package/dist/poller.test.js +0 -143
  92. package/dist/poller.test.js.map +0 -1
  93. package/dist/prompt-watcher.d.ts.map +0 -1
  94. package/dist/prompt-watcher.js.map +0 -1
  95. package/dist/prompt-watcher.test.d.ts +0 -2
  96. package/dist/prompt-watcher.test.d.ts.map +0 -1
  97. package/dist/prompt-watcher.test.js +0 -107
  98. package/dist/prompt-watcher.test.js.map +0 -1
  99. package/dist/reasoner/claude-code.d.ts.map +0 -1
  100. package/dist/reasoner/claude-code.js.map +0 -1
  101. package/dist/reasoner/claude-code.test.d.ts +0 -2
  102. package/dist/reasoner/claude-code.test.d.ts.map +0 -1
  103. package/dist/reasoner/claude-code.test.js +0 -93
  104. package/dist/reasoner/claude-code.test.js.map +0 -1
  105. package/dist/reasoner/index.d.ts.map +0 -1
  106. package/dist/reasoner/index.js.map +0 -1
  107. package/dist/reasoner/opencode.d.ts.map +0 -1
  108. package/dist/reasoner/opencode.js.map +0 -1
  109. package/dist/reasoner/opencode.test.d.ts +0 -2
  110. package/dist/reasoner/opencode.test.d.ts.map +0 -1
  111. package/dist/reasoner/opencode.test.js +0 -493
  112. package/dist/reasoner/opencode.test.js.map +0 -1
  113. package/dist/reasoner/parse.d.ts.map +0 -1
  114. package/dist/reasoner/parse.js.map +0 -1
  115. package/dist/reasoner/prompt.d.ts.map +0 -1
  116. package/dist/reasoner/prompt.js.map +0 -1
  117. package/dist/reasoner/prompt.test.d.ts +0 -2
  118. package/dist/reasoner/prompt.test.d.ts.map +0 -1
  119. package/dist/reasoner/prompt.test.js +0 -441
  120. package/dist/reasoner/prompt.test.js.map +0 -1
  121. package/dist/reasoner/reasoner-factory.test.d.ts +0 -2
  122. package/dist/reasoner/reasoner-factory.test.d.ts.map +0 -1
  123. package/dist/reasoner/reasoner-factory.test.js +0 -45
  124. package/dist/reasoner/reasoner-factory.test.js.map +0 -1
  125. package/dist/shell.d.ts.map +0 -1
  126. package/dist/shell.js.map +0 -1
  127. package/dist/shell.test.d.ts +0 -2
  128. package/dist/shell.test.d.ts.map +0 -1
  129. package/dist/shell.test.js +0 -115
  130. package/dist/shell.test.js.map +0 -1
  131. package/dist/task-cli.d.ts.map +0 -1
  132. package/dist/task-cli.js.map +0 -1
  133. package/dist/task-cli.test.d.ts +0 -2
  134. package/dist/task-cli.test.d.ts.map +0 -1
  135. package/dist/task-cli.test.js +0 -71
  136. package/dist/task-cli.test.js.map +0 -1
  137. package/dist/task-manager.d.ts.map +0 -1
  138. package/dist/task-manager.js.map +0 -1
  139. package/dist/task-manager.test.d.ts +0 -2
  140. package/dist/task-manager.test.d.ts.map +0 -1
  141. package/dist/task-manager.test.js +0 -126
  142. package/dist/task-manager.test.js.map +0 -1
  143. package/dist/task-parser.d.ts.map +0 -1
  144. package/dist/task-parser.js.map +0 -1
  145. package/dist/task-parser.test.d.ts +0 -2
  146. package/dist/task-parser.test.d.ts.map +0 -1
  147. package/dist/task-parser.test.js +0 -137
  148. package/dist/task-parser.test.js.map +0 -1
  149. package/dist/tui.d.ts.map +0 -1
  150. package/dist/tui.js.map +0 -1
  151. package/dist/tui.test.d.ts +0 -2
  152. package/dist/tui.test.d.ts.map +0 -1
  153. package/dist/tui.test.js +0 -152
  154. package/dist/tui.test.js.map +0 -1
  155. package/dist/types.d.ts.map +0 -1
  156. package/dist/types.js.map +0 -1
  157. package/dist/wake.d.ts.map +0 -1
  158. package/dist/wake.js.map +0 -1
  159. package/dist/wake.test.d.ts +0 -2
  160. package/dist/wake.test.d.ts.map +0 -1
  161. package/dist/wake.test.js +0 -131
  162. package/dist/wake.test.js.map +0 -1
package/README.md CHANGED
@@ -208,6 +208,8 @@ Once inside the chat UI (via `aoe` -> select "aoaoe"):
208
208
  | `/dashboard` | Request full dashboard output from daemon |
209
209
  | `/pause` | Pause the daemon (stops reasoning) |
210
210
  | `/resume` | Resume after pause |
211
+ | `/sessions` | Instant session list from daemon state (no tmux capture needed) |
212
+ | `/explain` | Ask the AI to explain what's happening right now in plain English |
211
213
  | `/verbose` | Toggle verbose logging |
212
214
  | `/clear` | Clear the screen |
213
215
  | `/help` | Show all commands |
@@ -318,6 +320,7 @@ Config lives at `~/.aoaoe/aoaoe.config.json` (canonical, written by `aoaoe init`
318
320
  | `protectedSessions` | Session titles that are observe-only (no actions) | `[]` |
319
321
  | `sessionDirs` | Map session titles to project directories (relative to cwd or absolute). Bypasses heuristic directory search. | `{}` |
320
322
  | `contextFiles` | Extra AI instruction file paths to load from each project root | `[]` |
323
+ | `captureLinesCount` | Number of tmux lines to capture per session (`-S` flag) | `100` |
321
324
 
322
325
  Also reads `.aoaoe.json` as an alternative config filename.
323
326
 
@@ -457,8 +460,10 @@ src/
457
460
  tui.ts # in-place terminal UI (alternate screen, scroll regions)
458
461
  input.ts # stdin readline listener with inject() for post-interrupt
459
462
  init.ts # `aoaoe init`: auto-discover tools, sessions, generate config
463
+ colors.ts # shared ANSI color/style constants
460
464
  context.ts # discoverContextFiles, resolveProjectDir, loadSessionContext
461
465
  activity.ts # detect human keystrokes in tmux sessions
466
+ prompt-watcher.ts # reactive permission prompt clearing via tmux pipe-pane
462
467
  task-manager.ts # task orchestration: definitions, persistent state
463
468
  task-cli.ts # `aoaoe task` subcommand: list, start, stop, new, rm, edit
464
469
  task-parser.ts # parse OpenCode TODO patterns, model, tokens, cost from tmux
@@ -468,6 +473,7 @@ src/
468
473
  reasoner/
469
474
  index.ts # common Reasoner interface + factory
470
475
  prompt.ts # system prompt + observation formatting
476
+ parse.ts # response parsing, JSON extraction, action validation
471
477
  opencode.ts # OpenCode SDK backend
472
478
  claude-code.ts # Claude Code CLI backend
473
479
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aoaoe",
3
- "version": "0.44.0",
3
+ "version": "0.45.0",
4
4
  "description": "Autonomous supervisor for agent-of-empires sessions using OpenCode or Claude Code",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -9,7 +9,10 @@
9
9
  "aoaoe-chat": "dist/chat.js"
10
10
  },
11
11
  "files": [
12
- "dist",
12
+ "dist/**/*.js",
13
+ "dist/**/*.d.ts",
14
+ "!dist/**/*.test.*",
15
+ "!dist/integration-test.*",
13
16
  "LICENSE",
14
17
  "README.md"
15
18
  ],
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=abort-signal.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"abort-signal.test.d.ts","sourceRoot":"","sources":["../src/abort-signal.test.ts"],"names":[],"mappings":""}
@@ -1,86 +0,0 @@
1
- import { describe, it } from "node:test";
2
- import assert from "node:assert/strict";
3
- // Minimal helper for the fetch-timeout test — mirrors the private
4
- // withTimeoutAndAbort in index.ts (race a factory against a timer).
5
- function withTimeoutAndAbort(factory, ms, fallback) {
6
- return new Promise((resolve) => {
7
- let settled = false;
8
- const ac = new AbortController();
9
- const timer = setTimeout(() => {
10
- if (settled)
11
- return;
12
- settled = true;
13
- ac.abort();
14
- resolve({ result: fallback, timedOut: true });
15
- }, ms);
16
- factory(ac.signal)
17
- .then((result) => {
18
- if (settled)
19
- return;
20
- settled = true;
21
- clearTimeout(timer);
22
- resolve({ result, timedOut: false });
23
- })
24
- .catch(() => {
25
- if (settled)
26
- return;
27
- settled = true;
28
- clearTimeout(timer);
29
- resolve({ result: fallback, timedOut: false });
30
- });
31
- });
32
- }
33
- describe("AbortSignal — Reasoner.decide() interface contract", () => {
34
- it("signal parameter is optional (backward compatible)", async () => {
35
- const mockReasoner = {
36
- async decide(_obs, signal) {
37
- return { actions: [{ action: "wait" }], signalPresent: signal !== undefined };
38
- },
39
- };
40
- // call without signal (backward compat)
41
- const r1 = await mockReasoner.decide({});
42
- assert.deepEqual(r1.actions, [{ action: "wait" }]);
43
- assert.equal(r1.signalPresent, false);
44
- // call with signal
45
- const ac = new AbortController();
46
- const r2 = await mockReasoner.decide({}, ac.signal);
47
- assert.equal(r2.signalPresent, true);
48
- });
49
- it("early abort returns wait action", async () => {
50
- const mockDecide = async (_prompt, signal) => {
51
- await new Promise((r) => setTimeout(r, 10));
52
- if (signal?.aborted)
53
- return { actions: [{ action: "wait", reason: "aborted" }] };
54
- await new Promise((r) => setTimeout(r, 10));
55
- if (signal?.aborted)
56
- return { actions: [{ action: "wait", reason: "aborted" }] };
57
- return { actions: [{ action: "send_input", session: "s1", text: "hello" }] };
58
- };
59
- // without abort — returns full result
60
- const r1 = await mockDecide("test");
61
- assert.equal(r1.actions[0].action, "send_input");
62
- // with pre-aborted signal — returns early
63
- const ac = new AbortController();
64
- ac.abort();
65
- const r2 = await mockDecide("test", ac.signal);
66
- assert.equal(r2.actions[0].action, "wait");
67
- });
68
- });
69
- describe("AbortSignal — fetch() integration pattern", () => {
70
- it("fetch signal is aborted on timeout", async () => {
71
- let fetchSignal;
72
- const mockFetch = async (_url, opts) => {
73
- fetchSignal = opts?.signal;
74
- await new Promise((r) => setTimeout(r, 200));
75
- return { ok: true, json: async () => ({}) };
76
- };
77
- await withTimeoutAndAbort(async (signal) => {
78
- await mockFetch("http://localhost:4097/session/test/message", { signal });
79
- return "response";
80
- }, 50, "timeout-fallback");
81
- await new Promise((r) => setTimeout(r, 10));
82
- assert.ok(fetchSignal, "signal should have been passed");
83
- assert.equal(fetchSignal.aborted, true, "signal should be aborted on timeout");
84
- });
85
- });
86
- //# sourceMappingURL=abort-signal.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"abort-signal.test.js","sourceRoot":"","sources":["../src/abort-signal.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../src/activity.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAGD,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,WAAW,SAAuB,GACjC,OAAO,CAAC,YAAY,CAAC,CA4CvB;AAGD,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EAAE,EACnB,WAAW,SAAuB,GACjC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAwBpC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"activity.js","sourceRoot":"","sources":["../src/activity.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=activity.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"activity.test.d.ts","sourceRoot":"","sources":["../src/activity.test.ts"],"names":[],"mappings":""}
@@ -1,57 +0,0 @@
1
- import { describe, it } from "node:test";
2
- import assert from "node:assert/strict";
3
- import { getSessionActivity, getActivityForSessions } from "./activity.js";
4
- // these tests call real tmux — in CI without tmux, exec returns exitCode 1
5
- // and the function returns the noClients fallback (graceful degradation).
6
- describe("getSessionActivity", () => {
7
- it("returns noClients for nonexistent session", async () => {
8
- const info = await getSessionActivity("nonexistent_session_xyz_999");
9
- assert.equal(info.userActive, false);
10
- assert.equal(info.clientCount, 0);
11
- assert.equal(info.lastActivityMs, Infinity);
12
- assert.equal(info.tmuxName, "nonexistent_session_xyz_999");
13
- });
14
- it("returns noClients for empty tmux name", async () => {
15
- const info = await getSessionActivity("");
16
- assert.equal(info.userActive, false);
17
- assert.equal(info.clientCount, 0);
18
- });
19
- it("respects threshold parameter", async () => {
20
- const info = await getSessionActivity("nonexistent_session_xyz_999", 0);
21
- assert.equal(info.userActive, false);
22
- });
23
- it("returns correct shape", async () => {
24
- const info = await getSessionActivity("any_session");
25
- assert.equal(typeof info.userActive, "boolean");
26
- assert.equal(typeof info.clientCount, "number");
27
- assert.equal(typeof info.lastActivityMs, "number");
28
- assert.equal(typeof info.tmuxName, "string");
29
- });
30
- });
31
- describe("getActivityForSessions", () => {
32
- it("returns a map for all requested sessions", async () => {
33
- const result = await getActivityForSessions(["session_a", "session_b"]);
34
- assert.equal(result.size, 2);
35
- assert.ok(result.has("session_a"));
36
- assert.ok(result.has("session_b"));
37
- });
38
- it("each entry has correct shape", async () => {
39
- const result = await getActivityForSessions(["fake_session"]);
40
- const info = result.get("fake_session");
41
- assert.equal(typeof info.userActive, "boolean");
42
- assert.equal(typeof info.clientCount, "number");
43
- assert.equal(typeof info.lastActivityMs, "number");
44
- assert.equal(info.tmuxName, "fake_session");
45
- });
46
- it("handles empty array", async () => {
47
- const result = await getActivityForSessions([]);
48
- assert.equal(result.size, 0);
49
- });
50
- it("handles single session", async () => {
51
- const result = await getActivityForSessions(["one_session"]);
52
- assert.equal(result.size, 1);
53
- const info = result.get("one_session");
54
- assert.equal(info.userActive, false);
55
- });
56
- });
57
- //# sourceMappingURL=activity.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"activity.test.js","sourceRoot":"","sources":["../src/activity.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":";AAeA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAoR9C,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAa7D;AAmED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,EAAE,GAAG,SAAa,GAAG,OAAO,CAS7F;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,SAAa,GAAG,MAAM,GAAG,IAAI,CAOxH;AAsBD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,UAAQ,EAAE,GAAG,SAAa,GAAG,MAAM,GAAG,IAAI,CAuB7I;AAED,4EAA4E;AAC5E,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC,GAAG,MAAM,CAM/E;AAmBD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAmB7C"}
package/dist/chat.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"chat.js","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=chat.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chat.test.d.ts","sourceRoot":"","sources":["../src/chat.test.ts"],"names":[],"mappings":""}
package/dist/chat.test.js DELETED
@@ -1,293 +0,0 @@
1
- import { describe, it } from "node:test";
2
- import assert from "node:assert/strict";
3
- import { colorize, isDaemonRunningFromState, getCountdownFromState, buildStatusLineFromState, formatCompactSessions, formatSessionsList } from "./chat.js";
4
- // --- helpers ---
5
- function makeState(overrides) {
6
- return {
7
- tickStartedAt: Date.now(),
8
- nextTickAt: Date.now() + 10_000,
9
- pollIntervalMs: 10_000,
10
- phase: "sleeping",
11
- phaseStartedAt: Date.now(),
12
- pollCount: 5,
13
- paused: false,
14
- sessionCount: 3,
15
- changeCount: 1,
16
- sessions: [],
17
- ...overrides,
18
- };
19
- }
20
- // --- colorize ---
21
- describe("colorize", () => {
22
- it("colorizes observation tags", () => {
23
- const input = "[12:00:00] [observation] 3 sessions, 1 changed";
24
- const output = colorize(input);
25
- assert.ok(output.includes("\x1b[2m"), "should contain DIM escape code");
26
- assert.ok(output.includes("observation"), "should contain the tag text");
27
- });
28
- it("colorizes 'you' tags in green", () => {
29
- const input = "[12:00:00] [you] check on agent-a please";
30
- const output = colorize(input);
31
- assert.ok(output.includes("\x1b[32m"), "should contain GREEN escape code");
32
- });
33
- it("colorizes 'reasoner' tags in cyan", () => {
34
- const input = "[12:00:00] [reasoner] all agents are progressing well";
35
- const output = colorize(input);
36
- assert.ok(output.includes("\x1b[36m"), "should contain CYAN escape code");
37
- });
38
- it("colorizes '+ action' tags in yellow", () => {
39
- const input = "[12:00:00] [+ action] send_input to session-1";
40
- const output = colorize(input);
41
- assert.ok(output.includes("\x1b[33m"), "should contain YELLOW escape code");
42
- });
43
- it("colorizes '! action' tags in red", () => {
44
- const input = "[12:00:00] [! action] failed to send input";
45
- const output = colorize(input);
46
- assert.ok(output.includes("\x1b[31m"), "should contain RED escape code");
47
- });
48
- it("colorizes 'system' tags as dim", () => {
49
- const input = "[12:00:00] [system] verbose toggled on";
50
- const output = colorize(input);
51
- assert.ok(output.includes("\x1b[2m"), "should contain DIM escape code");
52
- });
53
- it("colorizes 'status' tags as dim", () => {
54
- const input = "[12:00:00] [status] reasoning...";
55
- const output = colorize(input);
56
- assert.ok(output.includes("\x1b[2m"), "should contain DIM escape code");
57
- assert.ok(output.includes("status"), "should contain the tag text");
58
- });
59
- it("handles multiline text", () => {
60
- const input = "[12:00:00] [you] hello\n[12:00:01] [reasoner] hi back\nplain line";
61
- const output = colorize(input);
62
- assert.ok(output.includes("\x1b[32m"), "should colorize 'you' line");
63
- assert.ok(output.includes("\x1b[36m"), "should colorize 'reasoner' line");
64
- assert.ok(output.includes("plain line"), "should preserve plain lines");
65
- });
66
- it("colorizes status receipts", () => {
67
- const input = "[12:00:00] [status] received (1/2): fix the bug";
68
- const output = colorize(input);
69
- assert.ok(output.includes("\x1b[2m"), "receipt should be dim");
70
- assert.ok(output.includes("fix the bug"), "should preserve content");
71
- });
72
- });
73
- // --- isDaemonRunningFromState ---
74
- describe("isDaemonRunningFromState", () => {
75
- it("returns false for null state", () => {
76
- assert.equal(isDaemonRunningFromState(null), false);
77
- });
78
- it("returns true when state is recent", () => {
79
- const now = Date.now();
80
- const state = makeState({ phaseStartedAt: now - 5_000, pollIntervalMs: 10_000 });
81
- assert.equal(isDaemonRunningFromState(state, now), true);
82
- });
83
- it("returns false when state is stale (beyond stale threshold)", () => {
84
- const now = Date.now();
85
- // pollIntervalMs=10_000 -> staleMs = max(20_000, 120_000) = 120_000
86
- // 125s > 120s -> stale
87
- const state = makeState({ phaseStartedAt: now - 125_000, pollIntervalMs: 10_000 });
88
- assert.equal(isDaemonRunningFromState(state, now), false);
89
- });
90
- it("uses 120s minimum staleness threshold (covers reasoning phase)", () => {
91
- const now = Date.now();
92
- // pollInterval is 5s -> 2x = 10s, but minimum is 120s to cover 90s+ reasoning calls
93
- const state = makeState({ phaseStartedAt: now - 90_000, pollIntervalMs: 5_000 });
94
- assert.equal(isDaemonRunningFromState(state, now), true, "90s should be within 120s minimum");
95
- });
96
- it("returns false when beyond 120s minimum threshold", () => {
97
- const now = Date.now();
98
- const state = makeState({ phaseStartedAt: now - 125_000, pollIntervalMs: 5_000 });
99
- assert.equal(isDaemonRunningFromState(state, now), false, "125s exceeds 120s minimum");
100
- });
101
- it("handles high poll intervals correctly", () => {
102
- const now = Date.now();
103
- // pollInterval is 120s -> staleMs = max(240_000, 120_000) = 240_000
104
- const state = makeState({ phaseStartedAt: now - 200_000, pollIntervalMs: 120_000 });
105
- assert.equal(isDaemonRunningFromState(state, now), true, "200s within 240s threshold");
106
- });
107
- it("does not false-positive stale during long reasoning calls", () => {
108
- const now = Date.now();
109
- // reasoning can take 90s — daemon at 85s into reasoning should still be "running"
110
- const state = makeState({ phaseStartedAt: now - 85_000, pollIntervalMs: 10_000, phase: "reasoning" });
111
- assert.equal(isDaemonRunningFromState(state, now), true, "85s reasoning should not be stale");
112
- });
113
- });
114
- // --- getCountdownFromState ---
115
- describe("getCountdownFromState", () => {
116
- it("returns null when phase is not sleeping", () => {
117
- const state = makeState({ phase: "reasoning", nextTickAt: Date.now() + 10_000 });
118
- assert.equal(getCountdownFromState(state, true), null);
119
- });
120
- it("returns remaining seconds when sleeping with nextTickAt", () => {
121
- const now = Date.now();
122
- const state = makeState({ phase: "sleeping", nextTickAt: now + 7_500 });
123
- const countdown = getCountdownFromState(state, true, now);
124
- assert.equal(countdown, 8); // ceil(7500/1000)
125
- });
126
- it("returns 0 when nextTickAt is in the past", () => {
127
- const now = Date.now();
128
- const state = makeState({ phase: "sleeping", nextTickAt: now - 1_000 });
129
- assert.equal(getCountdownFromState(state, true, now), 0);
130
- });
131
- it("returns exact seconds for round numbers", () => {
132
- const now = Date.now();
133
- const state = makeState({ phase: "sleeping", nextTickAt: now + 5_000 });
134
- assert.equal(getCountdownFromState(state, true, now), 5);
135
- });
136
- });
137
- // --- buildStatusLineFromState ---
138
- describe("buildStatusLineFromState", () => {
139
- it("returns offline string when daemon not running and forTitle", () => {
140
- assert.equal(buildStatusLineFromState(null, false, true), "aoaoe (daemon offline)");
141
- });
142
- it("shows countdown when sleeping", () => {
143
- const now = Date.now();
144
- const state = makeState({ phase: "sleeping", nextTickAt: now + 7_000, sessionCount: 3, pollCount: 10 });
145
- const line = buildStatusLineFromState(state, true, false, now);
146
- assert.ok(line?.includes("next: 7s"), `expected 'next: 7s' in '${line}'`);
147
- assert.ok(line?.includes("3 sessions"));
148
- assert.ok(line?.includes("poll #10"));
149
- });
150
- it("shows elapsed time when reasoning", () => {
151
- const now = Date.now();
152
- const state = makeState({ phase: "reasoning", phaseStartedAt: now - 5_000, sessionCount: 2, pollCount: 3 });
153
- const line = buildStatusLineFromState(state, true, false, now);
154
- assert.ok(line?.includes("reasoning: 5s"), `expected 'reasoning: 5s' in '${line}'`);
155
- });
156
- it("shows phase name for other phases", () => {
157
- const now = Date.now();
158
- const state = makeState({ phase: "executing", sessionCount: 1, pollCount: 7 });
159
- const line = buildStatusLineFromState(state, true, false, now);
160
- assert.ok(line?.includes("executing"), `expected 'executing' in '${line}'`);
161
- });
162
- it("shows PAUSED when paused", () => {
163
- const now = Date.now();
164
- const state = makeState({ phase: "sleeping", nextTickAt: now + 5_000, paused: true });
165
- const line = buildStatusLineFromState(state, true, false, now);
166
- assert.ok(line?.includes("PAUSED"), `expected 'PAUSED' in '${line}'`);
167
- });
168
- it("does not show PAUSED when not paused", () => {
169
- const now = Date.now();
170
- const state = makeState({ phase: "sleeping", nextTickAt: now + 5_000, paused: false });
171
- const line = buildStatusLineFromState(state, true, false, now);
172
- assert.ok(!line?.includes("PAUSED"), `should not contain 'PAUSED' in '${line}'`);
173
- });
174
- it("formats all parts with pipe separator", () => {
175
- const now = Date.now();
176
- const state = makeState({ phase: "polling", sessionCount: 4, pollCount: 15 });
177
- const line = buildStatusLineFromState(state, true, false, now);
178
- const pipes = (line?.match(/\|/g) ?? []).length;
179
- assert.ok(pipes >= 2, `expected at least 2 pipe separators in '${line}'`);
180
- });
181
- it("returns offline for forTitle when daemon not running", () => {
182
- const now = Date.now();
183
- const state = makeState({ phaseStartedAt: now - 100_000, pollIntervalMs: 10_000 });
184
- // daemon is stale, but we pass daemonRunning=false
185
- assert.equal(buildStatusLineFromState(state, false, true), "aoaoe (daemon offline)");
186
- });
187
- it("shows session names and statuses when sessions available", () => {
188
- const now = Date.now();
189
- const sessions = [
190
- { id: "1", title: "adventure", tool: "opencode", status: "working" },
191
- { id: "2", title: "chv", tool: "opencode", status: "idle" },
192
- ];
193
- const state = makeState({ phase: "sleeping", nextTickAt: now + 5_000, sessions, sessionCount: 2, pollCount: 10 });
194
- const line = buildStatusLineFromState(state, true, false, now);
195
- assert.ok(line?.includes("adventure: working"), `expected session info in '${line}'`);
196
- assert.ok(line?.includes("chv: idle"), `expected session info in '${line}'`);
197
- });
198
- it("falls back to session count for forTitle mode", () => {
199
- const now = Date.now();
200
- const sessions = [
201
- { id: "1", title: "adventure", tool: "opencode", status: "working" },
202
- ];
203
- const state = makeState({ phase: "sleeping", nextTickAt: now + 5_000, sessions, sessionCount: 1, pollCount: 5 });
204
- const line = buildStatusLineFromState(state, true, true, now);
205
- assert.ok(line?.includes("1 sessions"), `forTitle should use count, got '${line}'`);
206
- });
207
- });
208
- // --- formatCompactSessions ---
209
- describe("formatCompactSessions", () => {
210
- it("formats multiple sessions", () => {
211
- const sessions = [
212
- { id: "1", title: "adventure", tool: "opencode", status: "working" },
213
- { id: "2", title: "cloud-hyp", tool: "opencode", status: "idle" },
214
- ];
215
- const result = formatCompactSessions(sessions);
216
- assert.ok(result.includes("adventure: working"));
217
- assert.ok(result.includes("cloud-hyp: idle"));
218
- });
219
- it("truncates long titles to 12 chars", () => {
220
- const sessions = [
221
- { id: "1", title: "a-very-long-session-name", tool: "opencode", status: "working" },
222
- ];
223
- const result = formatCompactSessions(sessions);
224
- assert.ok(result.includes("a-very-lon.."), `expected truncated title in '${result}'`);
225
- assert.ok(!result.includes("a-very-long-session-name"), "full title should not appear");
226
- });
227
- it("returns '0 sessions' for empty array", () => {
228
- assert.equal(formatCompactSessions([]), "0 sessions");
229
- });
230
- });
231
- // --- formatSessionsList ---
232
- describe("formatSessionsList", () => {
233
- it("shows session details with icons", () => {
234
- const state = makeState({
235
- sessions: [
236
- { id: "1", title: "adventure", tool: "opencode", status: "working", lastActivity: "editing auth.tsx" },
237
- { id: "2", title: "chv", tool: "opencode", status: "idle", lastActivity: "cargo build done" },
238
- ],
239
- });
240
- const result = formatSessionsList(state);
241
- assert.ok(result.includes("~ adventure"), "working session should have ~ icon");
242
- assert.ok(result.includes(". chv"), "idle session should have . icon");
243
- assert.ok(result.includes("editing auth.tsx"));
244
- assert.ok(result.includes("cargo build done"));
245
- });
246
- it("shows current task when present", () => {
247
- const state = makeState({
248
- sessions: [
249
- { id: "1", title: "proj", tool: "opencode", status: "working", currentTask: "fix bug #123", lastActivity: "running tests" },
250
- ],
251
- });
252
- const result = formatSessionsList(state);
253
- assert.ok(result.includes("task: fix bug #123"));
254
- });
255
- it("shows '(no output)' when no lastActivity", () => {
256
- const state = makeState({
257
- sessions: [
258
- { id: "1", title: "proj", tool: "opencode", status: "working" },
259
- ],
260
- });
261
- const result = formatSessionsList(state);
262
- assert.ok(result.includes("(no output)"));
263
- });
264
- it("returns '(no sessions)' for empty sessions", () => {
265
- const state = makeState({ sessions: [] });
266
- const result = formatSessionsList(state);
267
- assert.ok(result.includes("(no sessions)"));
268
- });
269
- });
270
- // --- colorize tick separators ---
271
- describe("colorize tick separators", () => {
272
- it("colorizes tick separator lines as dim", () => {
273
- const input = "──── tick #42 ────";
274
- const output = colorize(input);
275
- assert.ok(output.includes("\x1b[2m"), "separator should have DIM escape code");
276
- assert.ok(output.includes("tick #42"));
277
- });
278
- it("colorizes separator mixed with other entries", () => {
279
- const input = "──── tick #5 ────\n10:30:00 [you] hello\n──── tick #6 ────";
280
- const output = colorize(input);
281
- // both separators should be dim
282
- const dimCount = (output.match(/\x1b\[2m/g) ?? []).length;
283
- assert.ok(dimCount >= 2, `expected at least 2 DIM codes, got ${dimCount}`);
284
- // user message should be green
285
- assert.ok(output.includes("\x1b[32m"), "user message should be green");
286
- });
287
- it("does not colorize lines with only a few dashes", () => {
288
- const input = "- a list item";
289
- const output = colorize(input);
290
- assert.equal(output, input, "single dash should not trigger separator coloring");
291
- });
292
- });
293
- //# sourceMappingURL=chat.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chat.test.js","sourceRoot":"","sources":["../src/chat.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../src/colors.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,KAAK,cAAY,CAAC;AAC/B,eAAO,MAAM,IAAI,cAAY,CAAC;AAC9B,eAAO,MAAM,GAAG,cAAY,CAAC;AAC7B,eAAO,MAAM,GAAG,eAAa,CAAC;AAC9B,eAAO,MAAM,KAAK,eAAa,CAAC;AAChC,eAAO,MAAM,MAAM,eAAa,CAAC;AACjC,eAAO,MAAM,IAAI,eAAa,CAAC;AAC/B,eAAO,MAAM,OAAO,eAAa,CAAC;AAClC,eAAO,MAAM,KAAK,eAAa,CAAC;AAChC,eAAO,MAAM,OAAO,qBAAmB,CAAC"}