@agentdeck/bridge 1.0.20 → 1.0.22

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 (211) hide show
  1. package/dist/adapters/openclaw.d.ts +55 -1
  2. package/dist/adapters/openclaw.d.ts.map +1 -1
  3. package/dist/adapters/openclaw.js +278 -45
  4. package/dist/adapters/openclaw.js.map +1 -1
  5. package/dist/adb-reverse.d.ts +26 -3
  6. package/dist/adb-reverse.d.ts.map +1 -1
  7. package/dist/adb-reverse.js +26 -5
  8. package/dist/adb-reverse.js.map +1 -1
  9. package/dist/apme/adapters/openclaw-hook.d.ts +45 -1
  10. package/dist/apme/adapters/openclaw-hook.d.ts.map +1 -1
  11. package/dist/apme/adapters/openclaw-hook.js +84 -4
  12. package/dist/apme/adapters/openclaw-hook.js.map +1 -1
  13. package/dist/apme/claude-transcript-reader.d.ts +54 -0
  14. package/dist/apme/claude-transcript-reader.d.ts.map +1 -1
  15. package/dist/apme/claude-transcript-reader.js +77 -0
  16. package/dist/apme/claude-transcript-reader.js.map +1 -1
  17. package/dist/apme/collector.d.ts +63 -5
  18. package/dist/apme/collector.d.ts.map +1 -1
  19. package/dist/apme/collector.js +147 -10
  20. package/dist/apme/collector.js.map +1 -1
  21. package/dist/apme/store.d.ts +23 -1
  22. package/dist/apme/store.d.ts.map +1 -1
  23. package/dist/apme/store.js +81 -2
  24. package/dist/apme/store.js.map +1 -1
  25. package/dist/apme/types.d.ts +1 -1
  26. package/dist/apme/types.d.ts.map +1 -1
  27. package/dist/apme/types.js.map +1 -1
  28. package/dist/auth.d.ts +37 -0
  29. package/dist/auth.d.ts.map +1 -1
  30. package/dist/auth.js +23 -0
  31. package/dist/auth.js.map +1 -1
  32. package/dist/ble-sync-spawn.d.ts +27 -0
  33. package/dist/ble-sync-spawn.d.ts.map +1 -1
  34. package/dist/ble-sync-spawn.js +32 -0
  35. package/dist/ble-sync-spawn.js.map +1 -1
  36. package/dist/bridge-core.d.ts +21 -4
  37. package/dist/bridge-core.d.ts.map +1 -1
  38. package/dist/bridge-core.js +52 -23
  39. package/dist/bridge-core.js.map +1 -1
  40. package/dist/claude-interrupt-marker.d.ts +31 -0
  41. package/dist/claude-interrupt-marker.d.ts.map +1 -0
  42. package/dist/claude-interrupt-marker.js +58 -0
  43. package/dist/claude-interrupt-marker.js.map +1 -0
  44. package/dist/claude-turn-watchdog.d.ts +23 -0
  45. package/dist/claude-turn-watchdog.d.ts.map +1 -1
  46. package/dist/claude-turn-watchdog.js +30 -4
  47. package/dist/claude-turn-watchdog.js.map +1 -1
  48. package/dist/cli.d.ts +6 -0
  49. package/dist/cli.d.ts.map +1 -1
  50. package/dist/cli.js +411 -115
  51. package/dist/cli.js.map +1 -1
  52. package/dist/codex-rate-limits-live.d.ts +58 -9
  53. package/dist/codex-rate-limits-live.d.ts.map +1 -1
  54. package/dist/codex-rate-limits-live.js +64 -15
  55. package/dist/codex-rate-limits-live.js.map +1 -1
  56. package/dist/codex-rate-limits.d.ts +2 -2
  57. package/dist/codex-rate-limits.d.ts.map +1 -1
  58. package/dist/codex-rate-limits.js +34 -16
  59. package/dist/codex-rate-limits.js.map +1 -1
  60. package/dist/daemon-port.d.ts +90 -0
  61. package/dist/daemon-port.d.ts.map +1 -0
  62. package/dist/daemon-port.js +119 -0
  63. package/dist/daemon-port.js.map +1 -0
  64. package/dist/daemon-server.d.ts +60 -3
  65. package/dist/daemon-server.d.ts.map +1 -1
  66. package/dist/daemon-server.js +362 -109
  67. package/dist/daemon-server.js.map +1 -1
  68. package/dist/daemon-settings.d.ts +46 -0
  69. package/dist/daemon-settings.d.ts.map +1 -0
  70. package/dist/daemon-settings.js +85 -0
  71. package/dist/daemon-settings.js.map +1 -0
  72. package/dist/daemon-takeover.d.ts +75 -0
  73. package/dist/daemon-takeover.d.ts.map +1 -0
  74. package/dist/daemon-takeover.js +137 -0
  75. package/dist/daemon-takeover.js.map +1 -0
  76. package/dist/daemon.js +1 -1
  77. package/dist/hook-server.d.ts.map +1 -1
  78. package/dist/hook-server.js +17 -0
  79. package/dist/hook-server.js.map +1 -1
  80. package/dist/idotmatrix/idotmatrix-daemon-sync.d.ts.map +1 -1
  81. package/dist/idotmatrix/idotmatrix-daemon-sync.js +13 -1
  82. package/dist/idotmatrix/idotmatrix-daemon-sync.js.map +1 -1
  83. package/dist/index.d.ts +1 -1
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/index.js +34 -12
  86. package/dist/index.js.map +1 -1
  87. package/dist/kiro-diagnostics.d.ts +90 -0
  88. package/dist/kiro-diagnostics.d.ts.map +1 -0
  89. package/dist/kiro-diagnostics.js +278 -0
  90. package/dist/kiro-diagnostics.js.map +1 -0
  91. package/dist/kiro-session.d.ts +113 -0
  92. package/dist/kiro-session.d.ts.map +1 -0
  93. package/dist/kiro-session.js +688 -0
  94. package/dist/kiro-session.js.map +1 -0
  95. package/dist/kiro-timeline-feed.d.ts +45 -0
  96. package/dist/kiro-timeline-feed.d.ts.map +1 -0
  97. package/dist/kiro-timeline-feed.js +116 -0
  98. package/dist/kiro-timeline-feed.js.map +1 -0
  99. package/dist/kiro-transcript-timeline.d.ts +57 -0
  100. package/dist/kiro-transcript-timeline.d.ts.map +1 -0
  101. package/dist/kiro-transcript-timeline.js +183 -0
  102. package/dist/kiro-transcript-timeline.js.map +1 -0
  103. package/dist/linux-service.d.ts +2 -1
  104. package/dist/linux-service.d.ts.map +1 -1
  105. package/dist/linux-service.js +8 -3
  106. package/dist/linux-service.js.map +1 -1
  107. package/dist/mdns-discover.d.ts +27 -0
  108. package/dist/mdns-discover.d.ts.map +1 -1
  109. package/dist/mdns-discover.js +60 -7
  110. package/dist/mdns-discover.js.map +1 -1
  111. package/dist/mdns.d.ts.map +1 -1
  112. package/dist/mdns.js +16 -3
  113. package/dist/mdns.js.map +1 -1
  114. package/dist/modules/adb-module.d.ts.map +1 -1
  115. package/dist/modules/adb-module.js +5 -2
  116. package/dist/modules/adb-module.js.map +1 -1
  117. package/dist/modules/index.d.ts +2 -1
  118. package/dist/modules/index.d.ts.map +1 -1
  119. package/dist/modules/index.js +1 -0
  120. package/dist/modules/index.js.map +1 -1
  121. package/dist/modules/types.d.ts +34 -9
  122. package/dist/modules/types.d.ts.map +1 -1
  123. package/dist/modules/types.js +34 -1
  124. package/dist/modules/types.js.map +1 -1
  125. package/dist/network-posture.d.ts +67 -0
  126. package/dist/network-posture.d.ts.map +1 -0
  127. package/dist/network-posture.js +100 -0
  128. package/dist/network-posture.js.map +1 -0
  129. package/dist/observed-steering.d.ts +14 -0
  130. package/dist/observed-steering.d.ts.map +1 -1
  131. package/dist/observed-steering.js +18 -0
  132. package/dist/observed-steering.js.map +1 -1
  133. package/dist/observed-turn-watchdogs.d.ts +84 -0
  134. package/dist/observed-turn-watchdogs.d.ts.map +1 -0
  135. package/dist/observed-turn-watchdogs.js +134 -0
  136. package/dist/observed-turn-watchdogs.js.map +1 -0
  137. package/dist/openclaw-session.d.ts +10 -0
  138. package/dist/openclaw-session.d.ts.map +1 -1
  139. package/dist/openclaw-session.js +12 -0
  140. package/dist/openclaw-session.js.map +1 -1
  141. package/dist/passive-observer.d.ts +19 -0
  142. package/dist/passive-observer.d.ts.map +1 -1
  143. package/dist/passive-observer.js +208 -24
  144. package/dist/passive-observer.js.map +1 -1
  145. package/dist/pixoo/micro-glyphs.d.ts +1 -1
  146. package/dist/pixoo/micro-glyphs.d.ts.map +1 -1
  147. package/dist/pixoo/micro-glyphs.js +2 -0
  148. package/dist/pixoo/micro-glyphs.js.map +1 -1
  149. package/dist/pixoo/official-dot-glyphs.generated.d.ts +1 -1
  150. package/dist/pixoo/official-dot-glyphs.generated.d.ts.map +1 -1
  151. package/dist/pixoo/official-dot-glyphs.generated.js +47 -0
  152. package/dist/pixoo/official-dot-glyphs.generated.js.map +1 -1
  153. package/dist/pixoo/pixoo-discover.d.ts +8 -1
  154. package/dist/pixoo/pixoo-discover.d.ts.map +1 -1
  155. package/dist/pixoo/pixoo-discover.js +15 -8
  156. package/dist/pixoo/pixoo-discover.js.map +1 -1
  157. package/dist/pixoo/pixoo-renderer.d.ts +4 -2
  158. package/dist/pixoo/pixoo-renderer.d.ts.map +1 -1
  159. package/dist/pixoo/pixoo-renderer.js +105 -36
  160. package/dist/pixoo/pixoo-renderer.js.map +1 -1
  161. package/dist/pixoo/pixoo-settings.d.ts +19 -2
  162. package/dist/pixoo/pixoo-settings.d.ts.map +1 -1
  163. package/dist/pixoo/pixoo-settings.js +22 -4
  164. package/dist/pixoo/pixoo-settings.js.map +1 -1
  165. package/dist/pixoo/pixoo-sprites.d.ts.map +1 -1
  166. package/dist/pixoo/pixoo-sprites.js +2 -0
  167. package/dist/pixoo/pixoo-sprites.js.map +1 -1
  168. package/dist/python-ble-runtime.d.ts +2 -0
  169. package/dist/python-ble-runtime.d.ts.map +1 -1
  170. package/dist/python-ble-runtime.js +101 -7
  171. package/dist/python-ble-runtime.js.map +1 -1
  172. package/dist/session-aggregator.d.ts +9 -1
  173. package/dist/session-aggregator.d.ts.map +1 -1
  174. package/dist/session-aggregator.js +1 -1
  175. package/dist/session-aggregator.js.map +1 -1
  176. package/dist/session-registry.d.ts +71 -3
  177. package/dist/session-registry.d.ts.map +1 -1
  178. package/dist/session-registry.js +126 -19
  179. package/dist/session-registry.js.map +1 -1
  180. package/dist/subagent-timeline.d.ts +38 -7
  181. package/dist/subagent-timeline.d.ts.map +1 -1
  182. package/dist/subagent-timeline.js +154 -23
  183. package/dist/subagent-timeline.js.map +1 -1
  184. package/dist/timebox/timebox-daemon-sync.d.ts.map +1 -1
  185. package/dist/timebox/timebox-daemon-sync.js +11 -1
  186. package/dist/timebox/timebox-daemon-sync.js.map +1 -1
  187. package/dist/timeline-store.d.ts.map +1 -1
  188. package/dist/timeline-store.js +26 -1
  189. package/dist/timeline-store.js.map +1 -1
  190. package/dist/tui/renderer.d.ts.map +1 -1
  191. package/dist/tui/renderer.js +13 -1
  192. package/dist/tui/renderer.js.map +1 -1
  193. package/dist/tui/terrarium.d.ts.map +1 -1
  194. package/dist/tui/terrarium.js +10 -5
  195. package/dist/tui/terrarium.js.map +1 -1
  196. package/dist/usage-api.d.ts +28 -1
  197. package/dist/usage-api.d.ts.map +1 -1
  198. package/dist/usage-api.js +74 -33
  199. package/dist/usage-api.js.map +1 -1
  200. package/dist/usage-event.d.ts.map +1 -1
  201. package/dist/usage-event.js +2 -17
  202. package/dist/usage-event.js.map +1 -1
  203. package/dist/utils/redact-secrets.d.ts +3 -0
  204. package/dist/utils/redact-secrets.d.ts.map +1 -0
  205. package/dist/utils/redact-secrets.js +29 -0
  206. package/dist/utils/redact-secrets.js.map +1 -0
  207. package/dist/windows-service.d.ts +2 -1
  208. package/dist/windows-service.d.ts.map +1 -1
  209. package/dist/windows-service.js +6 -3
  210. package/dist/windows-service.js.map +1 -1
  211. package/package.json +3 -3
@@ -0,0 +1,46 @@
1
+ /**
2
+ * `settings.json` access for the daemon — one reader, one writer.
3
+ *
4
+ * The reader was private to `daemon-server.ts`, which meant anything else that
5
+ * needed a setting either re-implemented the cross-directory discovery or, as
6
+ * the device-settings modules do, hardcoded `homedir()/.agentdeck` and lost the
7
+ * `AGENTDECK_DATA_DIR` override (roadmap item 14). Extracted here so a second
8
+ * consumer inherits the discovery rules rather than a copy of them.
9
+ *
10
+ * Read and write are deliberately asymmetric:
11
+ *
12
+ * - **Read** looks at every candidate data dir and takes the NEWEST file. A CLI
13
+ * world and an app world can both be installed, and the most recently written
14
+ * file is the one the user last edited.
15
+ * - **Write** touches only `getDataDir()` — this process's own directory. A
16
+ * cross-directory write would reach into another install's state (and, on
17
+ * macOS, into a sandbox container this process cannot legally touch).
18
+ */
19
+ /**
20
+ * Newest `settings.json` across candidate data dirs — mirrors the
21
+ * daemon.json/sessions.json cross-dir discovery (and honors the
22
+ * AGENTDECK_DATA_DIR test override, which the hardcoded `~/.agentdeck` path in
23
+ * the device-settings modules ignores). The App Store sandbox container is
24
+ * intentionally NOT a candidate (TCC hang risk — see `getCandidateDataDirs`),
25
+ * so settings written by the sandboxed Swift app stay invisible here; that
26
+ * coexistence limit is documented in docs/appstore-feature-matrix.md.
27
+ *
28
+ * Never throws: an absent, unreadable or malformed file yields `{}`, so a
29
+ * setting's fallback is always the one its own reader defines.
30
+ */
31
+ export declare function loadDaemonSettings(): Record<string, unknown>;
32
+ /**
33
+ * Read-modify-write one key of this process's own `settings.json`.
34
+ *
35
+ * `undefined` deletes the key rather than storing a null — a persisted setting
36
+ * that has been cleared must be indistinguishable from one that was never set,
37
+ * or every reader needs a third case.
38
+ *
39
+ * The write is tmp+rename like every other file this daemon owns: settings.json
40
+ * is read by the daemon, the CLI and the device modules, and a half-written
41
+ * file reads as `{}` — which is to say, as every default at once.
42
+ */
43
+ export declare function updateDaemonSetting(key: string, value: unknown): void;
44
+ /** Absolute path of the `settings.json` this process writes to. */
45
+ export declare function ownSettingsPath(): string;
46
+ //# sourceMappingURL=daemon-settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-settings.d.ts","sourceRoot":"","sources":["../src/daemon-settings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAOH;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAa5D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAgBrE;AAED,mEAAmE;AACnE,wBAAgB,eAAe,IAAI,MAAM,CAExC"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * `settings.json` access for the daemon — one reader, one writer.
3
+ *
4
+ * The reader was private to `daemon-server.ts`, which meant anything else that
5
+ * needed a setting either re-implemented the cross-directory discovery or, as
6
+ * the device-settings modules do, hardcoded `homedir()/.agentdeck` and lost the
7
+ * `AGENTDECK_DATA_DIR` override (roadmap item 14). Extracted here so a second
8
+ * consumer inherits the discovery rules rather than a copy of them.
9
+ *
10
+ * Read and write are deliberately asymmetric:
11
+ *
12
+ * - **Read** looks at every candidate data dir and takes the NEWEST file. A CLI
13
+ * world and an app world can both be installed, and the most recently written
14
+ * file is the one the user last edited.
15
+ * - **Write** touches only `getDataDir()` — this process's own directory. A
16
+ * cross-directory write would reach into another install's state (and, on
17
+ * macOS, into a sandbox container this process cannot legally touch).
18
+ */
19
+ import { readFileSync, writeFileSync, mkdirSync, renameSync, statSync } from 'fs';
20
+ import { join } from 'path';
21
+ import { randomUUID } from 'crypto';
22
+ import { getCandidateDataDirs, getDataDir } from './session-registry.js';
23
+ /**
24
+ * Newest `settings.json` across candidate data dirs — mirrors the
25
+ * daemon.json/sessions.json cross-dir discovery (and honors the
26
+ * AGENTDECK_DATA_DIR test override, which the hardcoded `~/.agentdeck` path in
27
+ * the device-settings modules ignores). The App Store sandbox container is
28
+ * intentionally NOT a candidate (TCC hang risk — see `getCandidateDataDirs`),
29
+ * so settings written by the sandboxed Swift app stay invisible here; that
30
+ * coexistence limit is documented in docs/appstore-feature-matrix.md.
31
+ *
32
+ * Never throws: an absent, unreadable or malformed file yields `{}`, so a
33
+ * setting's fallback is always the one its own reader defines.
34
+ */
35
+ export function loadDaemonSettings() {
36
+ let best = null;
37
+ for (const dir of getCandidateDataDirs()) {
38
+ try {
39
+ const path = join(dir, 'settings.json');
40
+ const mtime = statSync(path).mtimeMs;
41
+ if (best && best.mtime >= mtime)
42
+ continue;
43
+ best = { mtime, parsed: JSON.parse(readFileSync(path, 'utf-8')) };
44
+ }
45
+ catch {
46
+ // Missing or unreadable — skip this candidate.
47
+ }
48
+ }
49
+ return best?.parsed ?? {};
50
+ }
51
+ /**
52
+ * Read-modify-write one key of this process's own `settings.json`.
53
+ *
54
+ * `undefined` deletes the key rather than storing a null — a persisted setting
55
+ * that has been cleared must be indistinguishable from one that was never set,
56
+ * or every reader needs a third case.
57
+ *
58
+ * The write is tmp+rename like every other file this daemon owns: settings.json
59
+ * is read by the daemon, the CLI and the device modules, and a half-written
60
+ * file reads as `{}` — which is to say, as every default at once.
61
+ */
62
+ export function updateDaemonSetting(key, value) {
63
+ const dir = getDataDir();
64
+ mkdirSync(dir, { recursive: true });
65
+ const path = join(dir, 'settings.json');
66
+ let settings = {};
67
+ try {
68
+ settings = JSON.parse(readFileSync(path, 'utf-8'));
69
+ }
70
+ catch {
71
+ // Missing or malformed — start from empty rather than refusing to write.
72
+ }
73
+ if (value === undefined)
74
+ delete settings[key];
75
+ else
76
+ settings[key] = value;
77
+ const tmp = join(dir, `.settings.${randomUUID()}.tmp`);
78
+ writeFileSync(tmp, JSON.stringify(settings, null, 2) + '\n', 'utf-8');
79
+ renameSync(tmp, path);
80
+ }
81
+ /** Absolute path of the `settings.json` this process writes to. */
82
+ export function ownSettingsPath() {
83
+ return join(getDataDir(), 'settings.json');
84
+ }
85
+ //# sourceMappingURL=daemon-settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-settings.js","sourceRoot":"","sources":["../src/daemon-settings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAClF,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEzE;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB;IAChC,IAAI,IAAI,GAA8D,IAAI,CAAC;IAC3E,KAAK,MAAM,GAAG,IAAI,oBAAoB,EAAE,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;YACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;YACrC,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK;gBAAE,SAAS;YAC1C,IAAI,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAA4B,EAAE,CAAC;QAC/F,CAAC;QAAC,MAAM,CAAC;YACP,+CAA+C;QACjD,CAAC;IACH,CAAC;IACD,OAAO,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAW,EAAE,KAAc;IAC7D,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;IACzB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IACxC,IAAI,QAAQ,GAA4B,EAAE,CAAC;IAC3C,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAA4B,CAAC;IAChF,CAAC;IAAC,MAAM,CAAC;QACP,yEAAyE;IAC3E,CAAC;IACD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;;QACzC,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAE3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,aAAa,UAAU,EAAE,MAAM,CAAC,CAAC;IACvD,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;IACtE,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,eAAe;IAC7B,OAAO,IAAI,CAAC,UAAU,EAAE,EAAE,eAAe,CAAC,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * What `agentdeck daemon start` does about a daemon already answering on the
3
+ * port it wants.
4
+ *
5
+ * This used to live inline in the CLI action, which made it untestable and hid
6
+ * how much trust it extends: it ADOPTS the incumbent's pairing token and can
7
+ * ask it to stand down or shut down — all on the strength of `/health`
8
+ * answering on 127.0.0.1. That was right when the only two daemons on a
9
+ * machine were the Node CLI and the macOS app belonging to the same human. On
10
+ * a shared host it is a credential leak in one direction and a denial of
11
+ * service in the other: user B's `daemon start` copies user A's token into B's
12
+ * home, then demotes A's daemon (see docs/ENTERPRISE-ROADMAP.md §1.2, §1.3).
13
+ *
14
+ * So the decision now asks who owns the incumbent process before doing either.
15
+ * Everything with an effect is a dependency, which is what lets a test drive
16
+ * this against a foreign-owned incumbent and prove the adopt and the
17
+ * stand-down never happened — a truth table over the ownership predicate would
18
+ * stay green while this function forgot to call it.
19
+ */
20
+ import { type LocalPeerOwnership } from './auth.js';
21
+ /** The subset of `/health` this decision reads. */
22
+ export interface IncumbentHealth {
23
+ mode?: string;
24
+ pid?: number;
25
+ isSwift?: boolean;
26
+ pairingToken?: string;
27
+ }
28
+ /**
29
+ * Everything with an effect is required, not optional-with-a-default. A
30
+ * defaulted `standDown` that resolves false reads as "the app refused" and a
31
+ * defaulted `waitForBindable` as "the port never came back" — so a caller that
32
+ * forgot to wire one would take a fallback port and log a hardware excuse for
33
+ * it, silently and plausibly. Making them required turns that into a type
34
+ * error. Only the two dependencies whose real implementation is always correct
35
+ * (ownership, logging) carry defaults.
36
+ */
37
+ export interface TakeoverDeps {
38
+ ownership?: (pid: number | null | undefined) => LocalPeerOwnership;
39
+ log?: (msg: string) => void;
40
+ /** Returns true when the served token actually changed. */
41
+ adoptToken: (token: unknown) => boolean;
42
+ standDown: (port: number) => Promise<boolean>;
43
+ shutdown: (port: number) => Promise<void>;
44
+ waitForExit: (port: number, timeoutMs: number) => Promise<boolean>;
45
+ waitForBindable: (port: number, timeoutMs: number) => Promise<boolean>;
46
+ }
47
+ export type TakeoverOutcome =
48
+ /** Nothing in the way (or it yielded) — go bind. */
49
+ 'proceed'
50
+ /** Our own daemon is already serving this port; exit 0. */
51
+ | 'already-running'
52
+ /** The user asked for a port we must not take. Exit 1 with the reason. */
53
+ | 'refuse';
54
+ /**
55
+ * True when a daemon answering on this machine belongs to a DIFFERENT OS user,
56
+ * and must therefore be left alone entirely: not evicted, not stood down, not
57
+ * conceded to, not adopted from.
58
+ *
59
+ * The daemon's own startup sweeps the whole port window and shuts down every
60
+ * Swift daemon it finds there, which on a shared host means shutting down a
61
+ * coworker's macOS app the moment this user starts a CLI daemon. Only
62
+ * `other-user` — a definite refusal from the OS — blocks; `unknown` stays
63
+ * permissive for the same reason it does everywhere else (see
64
+ * `localPeerOwnership`), so a peer that reports no pid keeps working exactly
65
+ * as it did before.
66
+ */
67
+ export declare function isForeignDaemon(health: {
68
+ pid?: number;
69
+ } | null | undefined, ownership?: (pid: number | null | undefined) => LocalPeerOwnership): boolean;
70
+ export declare function negotiateIncumbentDaemon(args: {
71
+ port: number;
72
+ incumbent: IncumbentHealth | null;
73
+ portWasExplicit: boolean;
74
+ }, deps: TakeoverDeps): Promise<TakeoverOutcome>;
75
+ //# sourceMappingURL=daemon-takeover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-takeover.d.ts","sourceRoot":"","sources":["../src/daemon-takeover.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAsB,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAGxE,mDAAmD;AACnD,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CAAC;IACnE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,2DAA2D;IAC3D,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IACxC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACnE,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACxE;AAED,MAAM,MAAM,eAAe;AACzB,oDAAoD;AAClD,SAAS;AACX,2DAA2D;GACzD,iBAAiB;AACnB,0EAA0E;GACxE,QAAQ,CAAC;AAEb;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,EAC3C,SAAS,GAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAuC,GACrF,OAAO,CAET;AASD,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,eAAe,GAAG,IAAI,CAAC;IAAC,eAAe,EAAE,OAAO,CAAA;CAAE,EACnF,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,eAAe,CAAC,CAmG1B"}
@@ -0,0 +1,137 @@
1
+ /**
2
+ * What `agentdeck daemon start` does about a daemon already answering on the
3
+ * port it wants.
4
+ *
5
+ * This used to live inline in the CLI action, which made it untestable and hid
6
+ * how much trust it extends: it ADOPTS the incumbent's pairing token and can
7
+ * ask it to stand down or shut down — all on the strength of `/health`
8
+ * answering on 127.0.0.1. That was right when the only two daemons on a
9
+ * machine were the Node CLI and the macOS app belonging to the same human. On
10
+ * a shared host it is a credential leak in one direction and a denial of
11
+ * service in the other: user B's `daemon start` copies user A's token into B's
12
+ * home, then demotes A's daemon (see docs/ENTERPRISE-ROADMAP.md §1.2, §1.3).
13
+ *
14
+ * So the decision now asks who owns the incumbent process before doing either.
15
+ * Everything with an effect is a dependency, which is what lets a test drive
16
+ * this against a foreign-owned incumbent and prove the adopt and the
17
+ * stand-down never happened — a truth table over the ownership predicate would
18
+ * stay green while this function forgot to call it.
19
+ */
20
+ import { localPeerOwnership } from './auth.js';
21
+ import { log as defaultLog } from './logger.js';
22
+ /**
23
+ * True when a daemon answering on this machine belongs to a DIFFERENT OS user,
24
+ * and must therefore be left alone entirely: not evicted, not stood down, not
25
+ * conceded to, not adopted from.
26
+ *
27
+ * The daemon's own startup sweeps the whole port window and shuts down every
28
+ * Swift daemon it finds there, which on a shared host means shutting down a
29
+ * coworker's macOS app the moment this user starts a CLI daemon. Only
30
+ * `other-user` — a definite refusal from the OS — blocks; `unknown` stays
31
+ * permissive for the same reason it does everywhere else (see
32
+ * `localPeerOwnership`), so a peer that reports no pid keeps working exactly
33
+ * as it did before.
34
+ */
35
+ export function isForeignDaemon(health, ownership = localPeerOwnership) {
36
+ return ownership(health?.pid) === 'other-user';
37
+ }
38
+ /** 12s: `waitForDaemonExit` only proves the daemon stopped ANSWERING. */
39
+ const EXIT_WAIT_MS = 12_000;
40
+ /** 30s, and not padding: macOS keeps a NECP reservation on a cancelled
41
+ * listener's port for ~14s, during which `lsof` shows no sockets at all and
42
+ * bind() still returns EADDRINUSE (measured 2026-08-06 — bindable at ~17s). */
43
+ const BINDABLE_WAIT_MS = 30_000;
44
+ export async function negotiateIncumbentDaemon(args, deps) {
45
+ const { port, incumbent, portWasExplicit } = args;
46
+ if (incumbent?.mode !== 'daemon')
47
+ return 'proceed';
48
+ const log = deps.log ?? defaultLog;
49
+ const ownership = (deps.ownership ?? localPeerOwnership)(incumbent.pid);
50
+ if (ownership === 'other-user') {
51
+ // Neither half of the handover is available across users. Adopting would
52
+ // copy their credential into this user's home; standing them down would
53
+ // let any local account demote any other's daemon. Both are refused
54
+ // together — a daemon we may not talk to is also one we may not take the
55
+ // port from.
56
+ log(`Port ${port} is held by a daemon belonging to another user on this machine.`);
57
+ log(`Not adopting its pairing token and not asking it to stand down — a daemon is per-user.`);
58
+ if (portWasExplicit) {
59
+ log(`Choose another port with -p, or ask that user to stop their daemon.`);
60
+ return 'refuse';
61
+ }
62
+ log(`Starting on a free port instead; clients of yours resolve it from your own daemon.json.`);
63
+ return 'proceed';
64
+ }
65
+ if (ownership === 'unknown') {
66
+ // Permissive on purpose (see `localPeerOwnership`), but never silently:
67
+ // this is the branch where a token crosses a process boundary without
68
+ // proof of who is on the other side.
69
+ log(`Could not confirm which user owns the daemon on port ${port} (it reports no pid) — `
70
+ + `proceeding as if it were yours.`);
71
+ }
72
+ // Take over the fleet's credential along with the port. The app's daemon
73
+ // keeps its token inside its sandbox container, unreadable from here, so
74
+ // this loopback answer is the only place we can learn what every paired
75
+ // board is currently holding. Adopting it BEFORE the stand-down means the
76
+ // handover costs no device its pairing.
77
+ if (deps.adoptToken(incumbent.pairingToken)) {
78
+ log(`Adopted the incumbent daemon's pairing token so paired devices survive the handover.`);
79
+ }
80
+ if (!incumbent.isSwift) {
81
+ log(`Daemon already running on port ${port}. Use 'agentdeck daemon stop' first.`);
82
+ return 'already-running';
83
+ }
84
+ // Reverse two-tier upgrade path: the macOS app may already own the canonical
85
+ // port with its in-process Swift daemon (Tier 1 — limited: no ADB devices,
86
+ // no subscription usage, …). A plain "already running → exit" would strand
87
+ // the user on Tier 1. Ask it to STAND DOWN (demote to client, app keeps
88
+ // running) so this CLI daemon can take over with the full feature set.
89
+ log(`AgentDeck app's in-process daemon holds port ${port} — requesting stand-down to take over with the full CLI feature set…`);
90
+ // Prefer /stand-down (clean demote: the app stays running as a client).
91
+ // Fall back to /shutdown for older app builds that predate the endpoint.
92
+ let acked = await deps.standDown(port);
93
+ if (!acked) {
94
+ await deps.shutdown(port);
95
+ acked = true; // shutdown is best-effort (no ack body); rely on the exit wait
96
+ }
97
+ // Two conditions, not one. `waitForDaemonExit` proves the app stopped
98
+ // answering; `waitForBindable` proves the socket is actually gone. The app
99
+ // releases the port with NWListener.cancel(), which returns before the
100
+ // teardown completes — binding on the first signal alone is what silently
101
+ // demoted this daemon to the 9121 fallback and left the canonical port
102
+ // ownerless. The app's takeover-yield window is longer (45s), so it stays
103
+ // off the port until well after this wait has claimed it.
104
+ const yielded = acked
105
+ && await deps.waitForExit(port, EXIT_WAIT_MS)
106
+ && await deps.waitForBindable(port, BINDABLE_WAIT_MS);
107
+ if (yielded) {
108
+ log(`App daemon yielded port ${port}. Starting CLI daemon…`);
109
+ return 'proceed';
110
+ }
111
+ // The app yielded but the PORT did not come back, and that is often not the
112
+ // app's doing: a WiFi device that has gone to sleep with bytes still queued
113
+ // leaves its socket in LAST_ACK on this port, and TCP holds that until it
114
+ // exhausts retransmits — minutes, sometimes. Network.framework exposes no
115
+ // SO_LINGER, so the app cannot RST out of it (measured 2026-08-06: two
116
+ // sleeping ESP32 boards, 11901 and 4 bytes queued, were the only things left
117
+ // on 9120).
118
+ //
119
+ // Carry on rather than exiting. The daemon binds a fallback port and writes
120
+ // it to daemon.json, which is what every client resolves through and what the
121
+ // app itself re-reads when its yield window ends — so the deck keeps working.
122
+ // What must NOT happen is this being silent, which is how the canonical port
123
+ // ended up owned by nobody with the CLI reporting success.
124
+ log(`The AgentDeck app yielded port ${port} but the port has not been released `
125
+ + `(usually a sleeping WiFi device holding a half-closed socket on it).`);
126
+ if (portWasExplicit) {
127
+ // The port was ASKED for, not defaulted to. Quietly binding a different one
128
+ // would answer a question the user did not ask; an explicit choice fails
129
+ // loudly instead.
130
+ log(`Quit the AgentDeck app and retry, or choose another port.`);
131
+ return 'refuse';
132
+ }
133
+ log(`Starting on a fallback port instead — clients resolve it from daemon.json. `
134
+ + `For the canonical port, quit the AgentDeck app and retry, or pass -p.`);
135
+ return 'proceed';
136
+ }
137
+ //# sourceMappingURL=daemon-takeover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-takeover.js","sourceRoot":"","sources":["../src/daemon-takeover.ts"],"names":[],"mappings":"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"}
package/dist/daemon.js CHANGED
@@ -17,7 +17,7 @@ const program = new Command();
17
17
  program
18
18
  .name('agentdeck')
19
19
  .description('AgentDeck daemon (legacy entry point — use `agentdeck daemon` instead)')
20
- .version('1.0.20');
20
+ .version('1.0.22');
21
21
  program
22
22
  .command('start', { isDefault: true })
23
23
  .description('Start monitoring daemon')
@@ -1 +1 @@
1
- {"version":3,"file":"hook-server.d.ts","sourceRoot":"","sources":["../src/hook-server.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,KAAK,MAAM,EAAuB,MAAM,MAAM,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAMtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAgB/C,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAA6C;IAChE,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,cAAc,CAA8D;IACpF,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,gBAAgB,CAAqF;IAC7G,OAAO,CAAC,mBAAmB,CAA8C;IAGzE,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,aAAa,CAA0D;IAC/E,OAAO,CAAC,iBAAiB,CAAkD;IAC3E,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,cAAc,CAA4B;IAGlD,OAAO,CAAC,IAAI,CAAoI;;IAUhJ,6DAA6D;IAC7D,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI;IAIjD,mDAAmD;IACnD,OAAO,CAAC,IAAI,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAIjJ,uDAAuD;IACvD,eAAe,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI;IAIvC,2EAA2E;IAC3E,UAAU,CAAC,MAAM,EAAE,MAAM;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAIrE,6EAA6E;IAC7E,mBAAmB,CAAC,MAAM,EAAE,MAAM,OAAO,GAAG,IAAI;IAIhD,kEAAkE;IAClE,mBAAmB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,KAAK,UAAU,GAAG,IAAI;IAIrG,iDAAiD;IACjD,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAuBtC,kEAAkE;IAClE,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,WAAW;IAuPb,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBrE,SAAS,IAAI,MAAM;IAIb,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CA+B7B;AA+ED,2EAA2E;AAC3E,wBAAgB,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAoCtE;AAID,wBAAgB,aAAa,CAC3B,IAAI,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,EAClD,UAAU,GAAE,MAAW,GACtB,MAAM,CAkJR"}
1
+ {"version":3,"file":"hook-server.d.ts","sourceRoot":"","sources":["../src/hook-server.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,KAAK,MAAM,EAAuB,MAAM,MAAM,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAMtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAgB/C,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAA6C;IAChE,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,cAAc,CAA8D;IACpF,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,gBAAgB,CAAqF;IAC7G,OAAO,CAAC,mBAAmB,CAA8C;IAGzE,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,aAAa,CAA0D;IAC/E,OAAO,CAAC,iBAAiB,CAAkD;IAC3E,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,cAAc,CAA4B;IAGlD,OAAO,CAAC,IAAI,CAAoI;;IAUhJ,6DAA6D;IAC7D,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI;IAIjD,mDAAmD;IACnD,OAAO,CAAC,IAAI,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAIjJ,uDAAuD;IACvD,eAAe,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI;IAIvC,2EAA2E;IAC3E,UAAU,CAAC,MAAM,EAAE,MAAM;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAIrE,6EAA6E;IAC7E,mBAAmB,CAAC,MAAM,EAAE,MAAM,OAAO,GAAG,IAAI;IAIhD,kEAAkE;IAClE,mBAAmB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,KAAK,UAAU,GAAG,IAAI;IAIrG,iDAAiD;IACjD,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAuBtC,kEAAkE;IAClE,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,WAAW;IAwQb,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBrE,SAAS,IAAI,MAAM;IAIb,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CA+B7B;AA+ED,2EAA2E;AAC3E,wBAAgB,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAoCtE;AAID,wBAAgB,aAAa,CAC3B,IAAI,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,EAClD,UAAU,GAAE,MAAW,GACtB,MAAM,CAkJR"}
@@ -119,6 +119,23 @@ export class HookServer extends EventEmitter {
119
119
  return;
120
120
  }
121
121
  const data = this.apiUsageGetter();
122
+ // Numbers and their age travel together, or not at all. `fetchedAt` is
123
+ // `BridgeCore.lastApiFetchTime`, which advances only on a LIVE reading —
124
+ // so a bridge whose cache came from a failed fetch's fallback has numbers
125
+ // with a 0 timestamp. This endpoint exists to be a relay SOURCE, and a
126
+ // bridge that never completed a live fetch is not one: say so with an
127
+ // explicit null rather than shipping unstamped values.
128
+ //
129
+ // Both relay consumers gate on a positive `fetchedAt` and neither handles
130
+ // the pair {numbers, 0}: Node's fetchUsageViaHttp computes a huge age and
131
+ // skips (harmless), but Swift's fetchUsageViaHTTP skips its whole
132
+ // `fetchedAt > 0` block — dropping the age gate AND the key — so
133
+ // parseRelayedUsage falls to `lastApiFetchTime = Date()` and stamps
134
+ // unknown-age data as just-fetched. Closing it at the producer fixes both.
135
+ if (!data.fetchedAt) {
136
+ res.json({ status: 'ok', usage: null, fetchedAt: 0 });
137
+ return;
138
+ }
122
139
  res.json({ status: 'ok', usage: data.usage, fetchedAt: data.fetchedAt });
123
140
  });
124
141
  // Device info endpoint (no auth — local diagnostics)
@@ -1 +1 @@
1
- {"version":3,"file":"hook-server.js","sourceRoot":"","sources":["../src/hook-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hook-server.js","sourceRoot":"","sources":["../src/hook-server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"idotmatrix-daemon-sync.d.ts","sourceRoot":"","sources":["../../src/idotmatrix/idotmatrix-daemon-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,OAAO,EAAwB,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAgCnF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CA8B1D;AAwDD;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CAAC,aAAa,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAoB7E;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,qBAAqB,EAAE,MAAM,GAAG,eAAe,CAErF"}
1
+ {"version":3,"file":"idotmatrix-daemon-sync.d.ts","sourceRoot":"","sources":["../../src/idotmatrix/idotmatrix-daemon-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAWH,OAAO,EAAwB,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAkCnF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CA+B1D;AAiED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CAAC,aAAa,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAoB7E;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,qBAAqB,EAAE,MAAM,GAAG,eAAe,CAErF"}
@@ -16,7 +16,7 @@
16
16
  * Apple 2.5.2 sandbox invariants.
17
17
  */
18
18
  import { loadIDotMatrixDevices } from './idotmatrix-settings.js';
19
- import { createSyncCycleSquelch, spawnPythonSync, terminateSyncChild } from '../ble-sync-spawn.js';
19
+ import { createSigabrtCircuitBreaker, createSyncCycleSquelch, spawnPythonSync, terminateSyncChild, } from '../ble-sync-spawn.js';
20
20
  import { createBleLinkTracker } from '../ble-sync-status.js';
21
21
  import { getBleRuntimeStatus } from '../python-ble-runtime.js';
22
22
  let child = null;
@@ -43,6 +43,8 @@ function log(msg) {
43
43
  // Repeated identical respawn cycles (panel off/out of range) collapse into an
44
44
  // hourly summary instead of flooding the daemon log all night.
45
45
  const squelch = createSyncCycleSquelch(log);
46
+ // Recreated on every startIDotMatrixSync so a daemon restart re-arms the loop.
47
+ let abortBreaker = createSigabrtCircuitBreaker('iDotMatrix BLE sync');
46
48
  /**
47
49
  * Start (or no-op if already running) the managed BLE sync for the first
48
50
  * configured iDotMatrix device, fed by the daemon at `httpPort`.
@@ -74,6 +76,7 @@ export function startIDotMatrixSync(httpPort) {
74
76
  link.noteUnavailable(`BLE sync unavailable: ${runtime.reason}`);
75
77
  return;
76
78
  }
79
+ abortBreaker = createSigabrtCircuitBreaker('iDotMatrix BLE sync');
77
80
  spawnSync(runtime.python, runtime.paths.scripts.idotmatrixSync, httpPort);
78
81
  }
79
82
  function spawnSync(venvPython, syncScript, httpPort) {
@@ -115,6 +118,15 @@ function spawnSync(venvPython, syncScript, httpPort) {
115
118
  const delay = Math.min(MAX_BACKOFF_MS, BASE_BACKOFF_MS * consecutiveFailures);
116
119
  const tail = stderrTail() || outputTail();
117
120
  const why = tail ? `; output: ${tail}` : '';
121
+ // A streak of SIGABRT kills means the OS is refusing the client (TCC on
122
+ // macOS) — respawning can only produce another crash dialog, so halt and
123
+ // say why instead of looping forever.
124
+ const halt = abortBreaker.noteExit(signal);
125
+ if (halt) {
126
+ log(halt);
127
+ link.noteUnavailable(halt);
128
+ return;
129
+ }
118
130
  link.noteExit(tail || `BLE sync exited (code=${code} signal=${signal})`, Date.now() + delay);
119
131
  squelch.logExit(code, signal, uptimeMs, tail, `BLE sync exited (code=${code} signal=${signal})${why}; respawning in ${Math.round(delay / 1000)}s`);
120
132
  respawnTimer = setTimeout(() => spawnSync(venvPython, syncScript, httpPort), delay);
@@ -1 +1 @@
1
- {"version":3,"file":"idotmatrix-daemon-sync.js","sourceRoot":"","sources":["../../src/idotmatrix/idotmatrix-daemon-sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"idotmatrix-daemon-sync.js","sourceRoot":"","sources":["../../src/idotmatrix/idotmatrix-daemon-sync.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * Exports `startSession()` called by cli.ts.
5
5
  * Uses BridgeCore for shared infrastructure.
6
6
  */
7
- import type { ModuleConfigs } from './modules/types.js';
7
+ import { type ModuleConfigs } from './modules/types.js';
8
8
  import { type AgentType } from './types.js';
9
9
  export interface SessionOptions {
10
10
  agentType: AgentType;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA6DH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAUxD,OAAO,EAOL,KAAK,SAAS,EAQf,MAAM,YAAY,CAAC;AAwDpB,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,wEAAwE;IACxE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;kFAC8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;0EACsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;gEAC4D;IAC5D,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAID,wBAAsB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAmrCtE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA4DH,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAUvE,OAAO,EAOL,KAAK,SAAS,EAQf,MAAM,YAAY,CAAC;AAwDpB,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,wEAAwE;IACxE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;kFAC8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;0EACsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;gEAC4D;IAC5D,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAID,wBAAsB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA6rCtE"}