@agentdeck/bridge 1.0.4 → 1.0.6

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 (209) hide show
  1. package/assets/fm-helper/agentdeck-fm-helper +0 -0
  2. package/dist/adapters/claude-code.d.ts.map +1 -1
  3. package/dist/adapters/claude-code.js +3 -0
  4. package/dist/adapters/claude-code.js.map +1 -1
  5. package/dist/adb-reverse.d.ts.map +1 -1
  6. package/dist/adb-reverse.js +4 -2
  7. package/dist/adb-reverse.js.map +1 -1
  8. package/dist/apme/collector.js +2 -2
  9. package/dist/apme/collector.js.map +1 -1
  10. package/dist/apme/outcome.js +2 -2
  11. package/dist/apme/outcome.js.map +1 -1
  12. package/dist/apme/runner.js +3 -3
  13. package/dist/apme/runner.js.map +1 -1
  14. package/dist/ble-sync-spawn.js +1 -1
  15. package/dist/ble-sync-spawn.js.map +1 -1
  16. package/dist/calendar.d.ts +82 -0
  17. package/dist/calendar.d.ts.map +1 -0
  18. package/dist/calendar.js +324 -0
  19. package/dist/calendar.js.map +1 -0
  20. package/dist/card-feed.d.ts +63 -5
  21. package/dist/card-feed.d.ts.map +1 -1
  22. package/dist/card-feed.js +218 -14
  23. package/dist/card-feed.js.map +1 -1
  24. package/dist/card-modules.d.ts +4 -0
  25. package/dist/card-modules.d.ts.map +1 -1
  26. package/dist/card-modules.js +5 -3
  27. package/dist/card-modules.js.map +1 -1
  28. package/dist/check-deps.js +4 -4
  29. package/dist/check-deps.js.map +1 -1
  30. package/dist/cli.d.ts +35 -0
  31. package/dist/cli.d.ts.map +1 -1
  32. package/dist/cli.js +269 -9
  33. package/dist/cli.js.map +1 -1
  34. package/dist/codex-otel.d.ts +89 -0
  35. package/dist/codex-otel.d.ts.map +1 -0
  36. package/dist/codex-otel.js +487 -0
  37. package/dist/codex-otel.js.map +1 -0
  38. package/dist/codex-rate-limits.d.ts.map +1 -1
  39. package/dist/codex-rate-limits.js +15 -3
  40. package/dist/codex-rate-limits.js.map +1 -1
  41. package/dist/daemon-server.d.ts +4 -0
  42. package/dist/daemon-server.d.ts.map +1 -1
  43. package/dist/daemon-server.js +880 -63
  44. package/dist/daemon-server.js.map +1 -1
  45. package/dist/daemon-ws-client.d.ts +108 -24
  46. package/dist/daemon-ws-client.d.ts.map +1 -1
  47. package/dist/daemon-ws-client.js +175 -39
  48. package/dist/daemon-ws-client.js.map +1 -1
  49. package/dist/daemon.js +1 -1
  50. package/dist/device-voice-reply.d.ts +1 -10
  51. package/dist/device-voice-reply.d.ts.map +1 -1
  52. package/dist/device-voice-reply.js +19 -36
  53. package/dist/device-voice-reply.js.map +1 -1
  54. package/dist/device-voice.d.ts +37 -0
  55. package/dist/device-voice.d.ts.map +1 -1
  56. package/dist/device-voice.js +130 -1
  57. package/dist/device-voice.js.map +1 -1
  58. package/dist/diag-analyzer.d.ts.map +1 -1
  59. package/dist/diag-analyzer.js +1 -0
  60. package/dist/diag-analyzer.js.map +1 -1
  61. package/dist/display-monitor.d.ts.map +1 -1
  62. package/dist/display-monitor.js +1 -0
  63. package/dist/display-monitor.js.map +1 -1
  64. package/dist/esp32-serial.d.ts +4 -0
  65. package/dist/esp32-serial.d.ts.map +1 -1
  66. package/dist/esp32-serial.js +6 -3
  67. package/dist/esp32-serial.js.map +1 -1
  68. package/dist/foundation-models-helper.d.ts +23 -0
  69. package/dist/foundation-models-helper.d.ts.map +1 -1
  70. package/dist/foundation-models-helper.js +90 -21
  71. package/dist/foundation-models-helper.js.map +1 -1
  72. package/dist/gateway-probe.js +1 -1
  73. package/dist/gateway-probe.js.map +1 -1
  74. package/dist/glance-frame.d.ts +64 -0
  75. package/dist/glance-frame.d.ts.map +1 -0
  76. package/dist/glance-frame.js +364 -0
  77. package/dist/glance-frame.js.map +1 -0
  78. package/dist/hook-codex-sessions.d.ts +40 -0
  79. package/dist/hook-codex-sessions.d.ts.map +1 -0
  80. package/dist/hook-codex-sessions.js +174 -0
  81. package/dist/hook-codex-sessions.js.map +1 -0
  82. package/dist/idotmatrix/idotmatrix-discover.d.ts.map +1 -1
  83. package/dist/idotmatrix/idotmatrix-discover.js +7 -4
  84. package/dist/idotmatrix/idotmatrix-discover.js.map +1 -1
  85. package/dist/idotmatrix/idotmatrix-settings.d.ts +15 -0
  86. package/dist/idotmatrix/idotmatrix-settings.d.ts.map +1 -1
  87. package/dist/idotmatrix/idotmatrix-settings.js +21 -0
  88. package/dist/idotmatrix/idotmatrix-settings.js.map +1 -1
  89. package/dist/index.d.ts +7 -0
  90. package/dist/index.d.ts.map +1 -1
  91. package/dist/index.js +88 -7
  92. package/dist/index.js.map +1 -1
  93. package/dist/linux-service.d.ts +52 -0
  94. package/dist/linux-service.d.ts.map +1 -0
  95. package/dist/linux-service.js +206 -0
  96. package/dist/linux-service.js.map +1 -0
  97. package/dist/logger.d.ts +6 -0
  98. package/dist/logger.d.ts.map +1 -1
  99. package/dist/logger.js +15 -0
  100. package/dist/logger.js.map +1 -1
  101. package/dist/mdns-discover.d.ts +19 -0
  102. package/dist/mdns-discover.d.ts.map +1 -0
  103. package/dist/mdns-discover.js +109 -0
  104. package/dist/mdns-discover.js.map +1 -0
  105. package/dist/model-catalog.d.ts.map +1 -1
  106. package/dist/model-catalog.js +1 -0
  107. package/dist/model-catalog.js.map +1 -1
  108. package/dist/modules/adb-module.js +1 -1
  109. package/dist/modules/adb-module.js.map +1 -1
  110. package/dist/openclaw-session.d.ts +6 -0
  111. package/dist/openclaw-session.d.ts.map +1 -1
  112. package/dist/openclaw-session.js +7 -1
  113. package/dist/openclaw-session.js.map +1 -1
  114. package/dist/output-parser.d.ts +9 -0
  115. package/dist/output-parser.d.ts.map +1 -1
  116. package/dist/output-parser.js +67 -16
  117. package/dist/output-parser.js.map +1 -1
  118. package/dist/passive-observer.d.ts +57 -8
  119. package/dist/passive-observer.d.ts.map +1 -1
  120. package/dist/passive-observer.js +210 -74
  121. package/dist/passive-observer.js.map +1 -1
  122. package/dist/pixoo/pixoo-bridge.d.ts.map +1 -1
  123. package/dist/pixoo/pixoo-bridge.js +47 -6
  124. package/dist/pixoo/pixoo-bridge.js.map +1 -1
  125. package/dist/pixoo/pixoo-renderer.d.ts +2 -1
  126. package/dist/pixoo/pixoo-renderer.d.ts.map +1 -1
  127. package/dist/pixoo/pixoo-renderer.js +137 -8
  128. package/dist/pixoo/pixoo-renderer.js.map +1 -1
  129. package/dist/pocket-autonomy.d.ts +78 -0
  130. package/dist/pocket-autonomy.d.ts.map +1 -0
  131. package/dist/pocket-autonomy.js +529 -0
  132. package/dist/pocket-autonomy.js.map +1 -0
  133. package/dist/pty-manager.d.ts.map +1 -1
  134. package/dist/pty-manager.js +3 -2
  135. package/dist/pty-manager.js.map +1 -1
  136. package/dist/python-ble-runtime.d.ts +2 -0
  137. package/dist/python-ble-runtime.d.ts.map +1 -1
  138. package/dist/python-ble-runtime.js +2 -1
  139. package/dist/python-ble-runtime.js.map +1 -1
  140. package/dist/remote-sessions.d.ts +64 -0
  141. package/dist/remote-sessions.d.ts.map +1 -0
  142. package/dist/remote-sessions.js +81 -0
  143. package/dist/remote-sessions.js.map +1 -0
  144. package/dist/review-runner.js +2 -2
  145. package/dist/review-runner.js.map +1 -1
  146. package/dist/session-aggregator.d.ts +2 -0
  147. package/dist/session-aggregator.d.ts.map +1 -1
  148. package/dist/session-aggregator.js +6 -1
  149. package/dist/session-aggregator.js.map +1 -1
  150. package/dist/session-focus-relay.d.ts +47 -1
  151. package/dist/session-focus-relay.d.ts.map +1 -1
  152. package/dist/session-focus-relay.js +130 -15
  153. package/dist/session-focus-relay.js.map +1 -1
  154. package/dist/session-push-channel.d.ts +31 -0
  155. package/dist/session-push-channel.d.ts.map +1 -0
  156. package/dist/session-push-channel.js +94 -0
  157. package/dist/session-push-channel.js.map +1 -0
  158. package/dist/session-registry.d.ts +126 -0
  159. package/dist/session-registry.d.ts.map +1 -1
  160. package/dist/session-registry.js +180 -3
  161. package/dist/session-registry.js.map +1 -1
  162. package/dist/subagent-timeline.d.ts +34 -0
  163. package/dist/subagent-timeline.d.ts.map +1 -0
  164. package/dist/subagent-timeline.js +156 -0
  165. package/dist/subagent-timeline.js.map +1 -0
  166. package/dist/timebox/timebox-discover.js +1 -1
  167. package/dist/timebox/timebox-discover.js.map +1 -1
  168. package/dist/tui/gauge.d.ts +4 -2
  169. package/dist/tui/gauge.d.ts.map +1 -1
  170. package/dist/tui/gauge.js +8 -4
  171. package/dist/tui/gauge.js.map +1 -1
  172. package/dist/tui/renderer.d.ts.map +1 -1
  173. package/dist/tui/renderer.js +28 -0
  174. package/dist/tui/renderer.js.map +1 -1
  175. package/dist/types.d.ts +1 -1
  176. package/dist/types.d.ts.map +1 -1
  177. package/dist/types.js.map +1 -1
  178. package/dist/usage-api.d.ts +43 -0
  179. package/dist/usage-api.d.ts.map +1 -1
  180. package/dist/usage-api.js +114 -9
  181. package/dist/usage-api.js.map +1 -1
  182. package/dist/usage-event.d.ts +19 -0
  183. package/dist/usage-event.d.ts.map +1 -1
  184. package/dist/usage-event.js +35 -0
  185. package/dist/usage-event.js.map +1 -1
  186. package/dist/utils/project-name.d.ts.map +1 -1
  187. package/dist/utils/project-name.js +1 -0
  188. package/dist/utils/project-name.js.map +1 -1
  189. package/dist/version-check.d.ts.map +1 -1
  190. package/dist/version-check.js +3 -2
  191. package/dist/version-check.js.map +1 -1
  192. package/dist/voice-assistant.d.ts.map +1 -1
  193. package/dist/voice-assistant.js +2 -1
  194. package/dist/voice-assistant.js.map +1 -1
  195. package/dist/voice.d.ts.map +1 -1
  196. package/dist/voice.js +1 -0
  197. package/dist/voice.js.map +1 -1
  198. package/dist/weather.d.ts +72 -0
  199. package/dist/weather.d.ts.map +1 -0
  200. package/dist/weather.js +206 -0
  201. package/dist/weather.js.map +1 -0
  202. package/dist/windows-service.js +5 -5
  203. package/dist/windows-service.js.map +1 -1
  204. package/fm-helper/AgentDeckFMHelper.swift +200 -0
  205. package/fm-helper/Info.plist +27 -0
  206. package/package.json +15 -13
  207. package/scripts/build-fm-helper.mjs +35 -3
  208. package/src/idotmatrix/identity_generated.py +50 -0
  209. package/src/idotmatrix/scan.py +33 -13
@@ -5,7 +5,7 @@ import { join } from 'path';
5
5
  import { homedir } from 'os';
6
6
  import { randomUUID } from 'crypto';
7
7
  import http from 'http';
8
- import { debug } from './logger.js';
8
+ import { debug, logError } from './logger.js';
9
9
  /** Allow tests to override the data directory via env var */
10
10
  function getDataDir() {
11
11
  return process.env.AGENTDECK_DATA_DIR || join(homedir(), '.agentdeck');
@@ -458,7 +458,7 @@ export async function findDaemonPortAsync() {
458
458
  const probePort = info.httpPort ?? info.port;
459
459
  const health = await probeDaemonHealth(probePort);
460
460
  if (health?.mode === 'daemon') {
461
- return { port: info.port, httpPort: info.httpPort };
461
+ return { port: info.port, httpPort: info.httpPort, sameSocketControl: health.sameSocketControl === true };
462
462
  }
463
463
  // Registry entry was stale (PID alive but server unresponsive).
464
464
  // Fall through to port scan.
@@ -469,9 +469,186 @@ export async function findDaemonPortAsync() {
469
469
  for (let p = DAEMON_PORT_WINDOW[0]; p <= DAEMON_PORT_WINDOW[1]; p++) {
470
470
  const health = await probeDaemonHealth(p);
471
471
  if (health?.mode === 'daemon') {
472
- return { port: p };
472
+ return { port: p, sameSocketControl: health.sameSocketControl === true };
473
473
  }
474
474
  }
475
475
  return null;
476
476
  }
477
+ // ===== Remote daemon attach (mDNS / explicit host) =====
478
+ /** True if a host string refers to this machine's loopback. */
479
+ export function isLoopbackHost(host) {
480
+ return host === '127.0.0.1' || host === '::1' || host === 'localhost';
481
+ }
482
+ /** Bracket bare IPv6 literals so they're valid in an http(s)/ws URL authority. */
483
+ export function formatHostForUrl(host) {
484
+ return host.includes(':') && !host.startsWith('[') ? `[${host}]` : host;
485
+ }
486
+ /**
487
+ * Probe `/health` at an arbitrary host:port (not just 127.0.0.1). Returns the
488
+ * full health JSON (so callers can read `mode` and `pairingToken`) or null.
489
+ */
490
+ export function probeHealthAt(host, port, timeoutMs = 2000) {
491
+ return new Promise((resolve) => {
492
+ const req = http.get(`http://${formatHostForUrl(host)}:${port}/health`, { timeout: timeoutMs }, (res) => {
493
+ let body = '';
494
+ res.on('data', (chunk) => { body += chunk; });
495
+ res.on('end', () => {
496
+ try {
497
+ resolve(JSON.parse(body));
498
+ }
499
+ catch {
500
+ resolve(null);
501
+ }
502
+ });
503
+ });
504
+ req.on('error', () => resolve(null));
505
+ req.on('timeout', () => { req.destroy(); resolve(null); });
506
+ });
507
+ }
508
+ /** Parse a `host` or `host:port` (or `[v6]:port`) hint into host + port. */
509
+ export function parseHostHint(hint) {
510
+ const trimmed = hint.trim();
511
+ // [v6]:port
512
+ const bracket = /^\[(.+)\]:(\d+)$/.exec(trimmed);
513
+ if (bracket)
514
+ return { host: bracket[1], port: parseInt(bracket[2], 10) };
515
+ // [v6] (no port)
516
+ const bracketOnly = /^\[(.+)\]$/.exec(trimmed);
517
+ if (bracketOnly)
518
+ return { host: bracketOnly[1], port: DAEMON_DEFAULT_PORT };
519
+ // host:port — only treat trailing :digits as a port (leaves bare IPv6 alone)
520
+ const hp = /^(.+):(\d+)$/.exec(trimmed);
521
+ if (hp && !hp[1].includes(':'))
522
+ return { host: hp[1], port: parseInt(hp[2], 10) };
523
+ return { host: trimmed, port: DAEMON_DEFAULT_PORT };
524
+ }
525
+ /**
526
+ * Derive the remote-attach inputs from CLI flags + env — the single source that
527
+ * both `cli.ts` (pre-PTY "ignored" warning) and `index.ts` (target resolution)
528
+ * consume, so the two derivations cannot drift. `--remote-daemon` /
529
+ * `AGENTDECK_REMOTE_DAEMON=1` is THE opt-in; a host given without it
530
+ * (`ignoredHostHint`) is inert and the CLI warns before the PTY starts
531
+ * (post-PTY, stdout logging is swallowed).
532
+ */
533
+ export function deriveRemoteAttachOpts(cliOpts, env = process.env) {
534
+ const remote = !!cliOpts.remoteDaemon || env.AGENTDECK_REMOTE_DAEMON === '1';
535
+ const hostHint = cliOpts.daemonHost
536
+ || env.AGENTDECK_DAEMON_HOST
537
+ || env.AGENTDECK_REMOTE_DAEMON_HOST
538
+ || undefined;
539
+ return { remote, hostHint, ignoredHostHint: !remote && hostHint !== undefined };
540
+ }
541
+ const remoteWarnedHosts = new Set();
542
+ /**
543
+ * Default `warn` dep: log a remote-attach warning at most once per key. The
544
+ * resolver re-runs on every reconnect backoff, and an unguarded warning would
545
+ * scribble over the agent TUI every few seconds forever.
546
+ * @internal Exported for tests only — the module-level Set has no reset, so
547
+ * tests must use keys unique to themselves.
548
+ */
549
+ export function warnRemoteOnce(key, message) {
550
+ if (remoteWarnedHosts.has(key))
551
+ return;
552
+ remoteWarnedHosts.add(key);
553
+ logError(message);
554
+ }
555
+ /**
556
+ * Resolve which daemon a session bridge should attach to, optionally on another
557
+ * machine. Precedence:
558
+ * 1. Local daemon (unchanged behavior — always preferred, never opt-in gated).
559
+ * 2. Explicit `hostHint` (cross-subnet / SSH where mDNS doesn't propagate).
560
+ * 3. mDNS browse on the LAN.
561
+ *
562
+ * OPT-IN INVARIANT (security boundary): `--remote-daemon` /
563
+ * `AGENTDECK_REMOTE_DAEMON=1` (`remote === true`) is THE opt-in switch, and it
564
+ * gates BOTH remote paths. `--daemon-host` / `AGENTDECK_DAEMON_HOST` only names
565
+ * the endpoint — without the switch it is ignored (the CLI warns pre-PTY).
566
+ * Nothing below the local check ever leaves the machine unless `remote === true`:
567
+ * with the switch absent the function returns local-or-null and the session
568
+ * stays local-only — byte-for-byte the pre-remote behavior.
569
+ *
570
+ * Within `remote === true`, EVERY accepted target must advertise the
571
+ * `sameSocketControl` capability — including a loopback one. An ssh -L
572
+ * forward of a remote daemon is indistinguishable from a genuine local
573
+ * daemon by IP, so the local-first step enforces the capability too rather
574
+ * than silently accepting a tunnel to a daemon that can never drive the
575
+ * session (plain registration: acked but unlistable/unfocusable):
576
+ * - Capable local daemon ⇒ returned (a hostHint is NOT consulted — the
577
+ * ordinary local-preferred behavior).
578
+ * - Incapable local daemon + hostHint ⇒ fall through to the explicit-host
579
+ * step: the user named a node, so probe THAT instead of dead-ending.
580
+ * - Incapable local daemon, no hostHint ⇒ one-shot warning + null. No mDNS
581
+ * fallthrough: a deliberately-built tunnel must not silently roam to
582
+ * some other LAN daemon.
583
+ * - An explicit host that is unreachable, not a daemon, or lacks the
584
+ * capability returns null WITHOUT falling through to mDNS — the user
585
+ * named a specific node and expects to hear about failure.
586
+ * - mDNS selection is limited to daemons advertising `sameSocketControl`
587
+ * (the discover step filters), so an unsupported daemon (e.g. Swift App
588
+ * Store) is never selected as a remote target.
589
+ *
590
+ * Remote targets carry the daemon's advertised pairing `token`; local targets
591
+ * need none (the daemon treats same-machine connections as authenticated).
592
+ */
593
+ export async function resolveDaemonTarget(opts, deps) {
594
+ const findLocal = deps?.findLocal ?? findDaemonPortAsync;
595
+ const probeHealth = deps?.probeHealth ?? probeHealthAt;
596
+ const discover = deps?.discover
597
+ ?? (async () => {
598
+ const { discoverDaemons } = await import('./mdns-discover.js');
599
+ return discoverDaemons();
600
+ });
601
+ const warn = deps?.warn ?? warnRemoteOnce;
602
+ // 1. Local first. Without the opt-in switch this is identical to the
603
+ // pre-remote behavior (returned unconditionally). Under remote intent the
604
+ // local daemon must ALSO advertise sameSocketControl: an ssh -L forward
605
+ // of a remote daemon arrives on loopback, and accepting an incapable one
606
+ // would silently produce a plain registration (acked but never listable
607
+ // or focusable) instead of the refusal the user can act on.
608
+ const local = await findLocal();
609
+ if (local) {
610
+ if (opts?.remote !== true || local.sameSocketControl === true) {
611
+ return {
612
+ host: '127.0.0.1', port: local.port, httpPort: local.httpPort,
613
+ sameSocketControl: local.sameSocketControl,
614
+ };
615
+ }
616
+ // Remote intent + incapable loopback daemon. If the user named a host,
617
+ // probe that instead of dead-ending here (step 2 applies its own
618
+ // capability refusal — for a tunnel the hint is typically 127.0.0.1 and
619
+ // probes this same daemon). With no hint: warn once and refuse; no mDNS
620
+ // fallthrough — a deliberately-built tunnel must not silently roam.
621
+ if (!opts?.hostHint) {
622
+ warn(`local:127.0.0.1:${local.port}`, `Daemon at 127.0.0.1:${local.port} does not support remote attach (no sameSocketControl capability — Node CLI daemon required). Not attaching. Rerun without --remote-daemon for a local-only session, or pass --daemon-host <host> to name a capable hub.`);
623
+ return null;
624
+ }
625
+ }
626
+ // Everything below leaves the machine — hard-gated on the opt-in switch.
627
+ if (opts?.remote !== true)
628
+ return null;
629
+ // 2. Explicit host. If given but unreachable or incapable, do NOT silently
630
+ // fall through to mDNS — the user named a specific node and expects to
631
+ // hear about failure.
632
+ if (opts?.hostHint) {
633
+ const { host, port } = parseHostHint(opts.hostHint);
634
+ const health = await probeHealth(host, port);
635
+ if (health?.mode === 'daemon') {
636
+ if (health.sameSocketControl !== true) {
637
+ warn(`${host}:${port}`, `Daemon at ${host}:${port} does not support remote attach (no sameSocketControl capability — Node CLI daemon required); session stays local-only.`);
638
+ return null;
639
+ }
640
+ const token = typeof health.pairingToken === 'string' ? health.pairingToken : undefined;
641
+ return { host, port, token, sameSocketControl: true };
642
+ }
643
+ return null;
644
+ }
645
+ // 3. mDNS browse. The discover step's /health confirm already filtered out
646
+ // daemons lacking sameSocketControl, so anything returned is capable.
647
+ const found = await discover();
648
+ if (found.length > 0) {
649
+ const d = found[0];
650
+ return { host: d.host, port: d.port, token: d.token, sameSocketControl: d.sameSocketControl === true };
651
+ }
652
+ return null;
653
+ }
477
654
  //# sourceMappingURL=session-registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-registry.js","sourceRoot":"","sources":["../src/session-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-registry.js","sourceRoot":"","sources":["../src/session-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { type TimelineEntry } from '@agentdeck/shared';
2
+ export interface SubagentTimelineHook {
3
+ eventName: string;
4
+ payload: Record<string, unknown>;
5
+ sessionId: string;
6
+ agentType: string;
7
+ projectName?: string;
8
+ }
9
+ export interface SubagentTimelineResult {
10
+ /**
11
+ * The hook belongs to a child agent/team lifecycle and must not enter the
12
+ * parent session's state, approval, steering, or APME pipelines.
13
+ */
14
+ childOnly: boolean;
15
+ }
16
+ type TimelineEmitter = (entry: TimelineEntry) => void;
17
+ export declare function isSubagentOnlyHook(eventName: string, payload: Record<string, unknown>): boolean;
18
+ /**
19
+ * Read-only lifecycle reducer for Claude Code/Codex child agents.
20
+ *
21
+ * It intentionally emits only existing Timeline row types. This keeps old
22
+ * macOS/iOS/Android/Node/ESP32 clients compatible and prevents child activity
23
+ * from appearing as a controllable SessionInfo entry.
24
+ */
25
+ export declare class SubagentTimelineTracker {
26
+ private readonly emit;
27
+ private readonly now;
28
+ private readonly active;
29
+ constructor(emit: TimelineEmitter, now?: () => number);
30
+ handle(hook: SubagentTimelineHook): SubagentTimelineResult;
31
+ private sweep;
32
+ }
33
+ export {};
34
+ //# sourceMappingURL=subagent-timeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent-timeline.d.ts","sourceRoot":"","sources":["../src/subagent-timeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,KAAK,eAAe,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;AAsCtD,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAYT;AA8BD;;;;;;GAMG;AACH,qBAAa,uBAAuB;IAIhC,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAJtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;gBAGzC,IAAI,EAAE,eAAe,EACrB,GAAG,GAAE,MAAM,MAAiB;IAG/C,MAAM,CAAC,IAAI,EAAE,oBAAoB,GAAG,sBAAsB;IA0E1D,OAAO,CAAC,KAAK;CAMd"}
@@ -0,0 +1,156 @@
1
+ import { extractTopicHintWithKind, promptSnippetFallback, stripUnsafeText, } from '@agentdeck/shared';
2
+ const ACTIVE_TTL_MS = 6 * 60 * 60 * 1000;
3
+ function nonEmptyString(value) {
4
+ if (typeof value !== 'string')
5
+ return null;
6
+ const cleaned = stripUnsafeText(value)
7
+ .replace(/\s+/g, ' ')
8
+ .trim();
9
+ return cleaned.length > 0 ? cleaned : null;
10
+ }
11
+ function cap(value, max) {
12
+ return value.length > max ? `${value.slice(0, max - 1).trim()}…` : value;
13
+ }
14
+ function normalizedEventName(eventName) {
15
+ switch (eventName) {
16
+ case 'SubagentStart':
17
+ case 'codex_subagent_start':
18
+ return 'subagent_start';
19
+ case 'SubagentStop':
20
+ case 'codex_subagent_stop':
21
+ return 'subagent_stop';
22
+ case 'TaskCompleted':
23
+ return 'task_completed';
24
+ case 'TeammateIdle':
25
+ return 'teammate_idle';
26
+ default:
27
+ return eventName;
28
+ }
29
+ }
30
+ export function isSubagentOnlyHook(eventName, payload) {
31
+ const event = normalizedEventName(eventName);
32
+ if (event === 'subagent_start' || event === 'subagent_stop'
33
+ || event === 'task_completed' || event === 'teammate_idle') {
34
+ return true;
35
+ }
36
+ // Claude/Codex reserve agent_id for child-agent context. Consume every
37
+ // such hook, including future Notification/Stop variants, so child
38
+ // lifecycle can never drift into parent steering or turn state.
39
+ return nonEmptyString(payload.agent_id) !== null;
40
+ }
41
+ function agentLabel(payload) {
42
+ const raw = nonEmptyString(payload.agent_type)
43
+ ?? nonEmptyString(payload.teammate_name)
44
+ ?? 'Subagent';
45
+ return cap(raw.replace(/^general-purpose$/i, 'General'), 28);
46
+ }
47
+ function completionSummary(payload) {
48
+ const response = nonEmptyString(payload.last_assistant_message)
49
+ ?? nonEmptyString(payload.task_subject)
50
+ ?? nonEmptyString(payload.task_description);
51
+ if (response) {
52
+ const hint = extractTopicHintWithKind(response);
53
+ if (hint.hint) {
54
+ return {
55
+ text: cap(hint.hint, 96),
56
+ summaryKind: hint.kind === 'topic' ? 'heuristic' : 'none',
57
+ };
58
+ }
59
+ const fallback = promptSnippetFallback(response, 96);
60
+ if (fallback)
61
+ return { text: fallback, summaryKind: 'none' };
62
+ }
63
+ return { text: 'Completed', summaryKind: 'none' };
64
+ }
65
+ /**
66
+ * Read-only lifecycle reducer for Claude Code/Codex child agents.
67
+ *
68
+ * It intentionally emits only existing Timeline row types. This keeps old
69
+ * macOS/iOS/Android/Node/ESP32 clients compatible and prevents child activity
70
+ * from appearing as a controllable SessionInfo entry.
71
+ */
72
+ export class SubagentTimelineTracker {
73
+ emit;
74
+ now;
75
+ active = new Map();
76
+ constructor(emit, now = Date.now) {
77
+ this.emit = emit;
78
+ this.now = now;
79
+ }
80
+ handle(hook) {
81
+ const event = normalizedEventName(hook.eventName);
82
+ const agentId = nonEmptyString(hook.payload.agent_id);
83
+ const childOnly = isSubagentOnlyHook(hook.eventName, hook.payload);
84
+ this.sweep();
85
+ if (event === 'subagent_start') {
86
+ const id = agentId ?? nonEmptyString(hook.payload.task_id) ?? `anonymous:${this.now()}`;
87
+ const key = `${hook.sessionId}:${id}`;
88
+ const startedAt = this.now();
89
+ const label = agentLabel(hook.payload);
90
+ this.active.set(key, { startedAt, label });
91
+ this.emit({
92
+ ts: startedAt,
93
+ type: 'tool_exec',
94
+ raw: `Subagent ${label} · Started`,
95
+ sessionId: hook.sessionId,
96
+ agentType: hook.agentType,
97
+ projectName: hook.projectName,
98
+ startedAt,
99
+ summaryKind: 'progress',
100
+ });
101
+ return { childOnly: true };
102
+ }
103
+ if (event === 'subagent_stop') {
104
+ const id = agentId ?? nonEmptyString(hook.payload.task_id) ?? '';
105
+ const key = `${hook.sessionId}:${id}`;
106
+ const active = this.active.get(key);
107
+ if (active)
108
+ this.active.delete(key);
109
+ const endedAt = this.now();
110
+ const label = active?.label ?? agentLabel(hook.payload);
111
+ const summary = completionSummary(hook.payload);
112
+ this.emit({
113
+ ts: endedAt,
114
+ type: 'tool_resolved',
115
+ raw: `Subagent ${label} · ${summary.text}`,
116
+ sessionId: hook.sessionId,
117
+ agentType: hook.agentType,
118
+ projectName: hook.projectName,
119
+ startedAt: active?.startedAt,
120
+ endedAt,
121
+ summaryKind: summary.summaryKind,
122
+ });
123
+ return { childOnly: true };
124
+ }
125
+ if (event === 'task_completed') {
126
+ const endedAt = this.now();
127
+ const label = agentLabel(hook.payload);
128
+ const summary = completionSummary(hook.payload);
129
+ this.emit({
130
+ ts: endedAt,
131
+ type: 'tool_resolved',
132
+ raw: `Team ${label} · ${summary.text}`,
133
+ sessionId: hook.sessionId,
134
+ agentType: hook.agentType,
135
+ projectName: hook.projectName,
136
+ endedAt,
137
+ summaryKind: summary.summaryKind,
138
+ });
139
+ return { childOnly: true };
140
+ }
141
+ // Idle is lifecycle metadata, not a useful Timeline row. Consume it so it
142
+ // cannot alter the parent state while respecting the user's team setup.
143
+ if (event === 'teammate_idle' || childOnly) {
144
+ return { childOnly: true };
145
+ }
146
+ return { childOnly: false };
147
+ }
148
+ sweep() {
149
+ const cutoff = this.now() - ACTIVE_TTL_MS;
150
+ for (const [key, value] of this.active) {
151
+ if (value.startedAt < cutoff)
152
+ this.active.delete(key);
153
+ }
154
+ }
155
+ }
156
+ //# sourceMappingURL=subagent-timeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent-timeline.js","sourceRoot":"","sources":["../src/subagent-timeline.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@ function log(msg) {
20
20
  /** Run scan_ble.py and parse its JSON, with a hard outer timeout. */
21
21
  function runScan(venvPython, scanScript, timeoutMs) {
22
22
  return new Promise((resolve) => {
23
- const proc = spawn(venvPython, [scanScript], { stdio: ['ignore', 'pipe', 'ignore'] });
23
+ const proc = spawn(venvPython, [scanScript], { stdio: ['ignore', 'pipe', 'ignore'], windowsHide: true });
24
24
  let out = '';
25
25
  const timer = setTimeout(() => {
26
26
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"timebox-discover.js","sourceRoot":"","sources":["../../src/timebox/timebox-discover.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"timebox-discover.js","sourceRoot":"","sources":["../../src/timebox/timebox-discover.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,10 @@
2
2
  * Unicode block gauge and density bar rendering.
3
3
  * Ports the E-ink blockGauge pattern to terminal.
4
4
  */
5
- /** Render a block gauge: [████░░░░░░] 62% */
6
- export declare function blockGauge(percent: number, width: number): string;
5
+ /** Render a block gauge: [████░░░░░░] 62%. `muted` forces the dim (grey) fill
6
+ * regardless of percent — used for an INACTIVE per-model scoped cap, which must
7
+ * stay visible but never wear the critical (red) ramp of a binding limit. */
8
+ export declare function blockGauge(percent: number, width: number, muted?: boolean): string;
7
9
  /** Format reset time: "↻1h23m" or "↻2d5h" */
8
10
  export declare function resetTimeStr(isoDate?: string): string;
9
11
  /** Format uptime from seconds */
@@ -1 +1 @@
1
- {"version":3,"file":"gauge.d.ts","sourceRoot":"","sources":["../../src/tui/gauge.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,6CAA6C;AAC7C,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAYjE;AAED,6CAA6C;AAC7C,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAYrD;AAED,iCAAiC;AACjC,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMhD;AAED,uDAAuD;AACvD,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAI9C;AAED,yEAAyE;AACzE,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAAE,EACpB,KAAK,EAAE,MAAM,EACb,SAAS,SAAM,GACd,MAAM,CA0BR"}
1
+ {"version":3,"file":"gauge.d.ts","sourceRoot":"","sources":["../../src/tui/gauge.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;8EAE8E;AAC9E,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,MAAM,CAahF;AAED,6CAA6C;AAC7C,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAYrD;AAED,iCAAiC;AACjC,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMhD;AAED,uDAAuD;AACvD,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAI9C;AAED,yEAAyE;AACzE,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAAE,EACpB,KAAK,EAAE,MAAM,EACb,SAAS,SAAM,GACd,MAAM,CA0BR"}
package/dist/tui/gauge.js CHANGED
@@ -3,14 +3,18 @@
3
3
  * Ports the E-ink blockGauge pattern to terminal.
4
4
  */
5
5
  import { sgr, RESET } from './ansi.js';
6
- /** Render a block gauge: [████░░░░░░] 62% */
7
- export function blockGauge(percent, width) {
6
+ /** Render a block gauge: [████░░░░░░] 62%. `muted` forces the dim (grey) fill
7
+ * regardless of percent — used for an INACTIVE per-model scoped cap, which must
8
+ * stay visible but never wear the critical (red) ramp of a binding limit. */
9
+ export function blockGauge(percent, width, muted = false) {
8
10
  const clamped = Math.max(0, Math.min(100, percent));
9
11
  const filled = Math.round((clamped / 100) * width);
10
12
  const empty = width - filled;
11
- // Color by threshold
13
+ // Color by threshold (an inactive scoped cap is muted, not ramped).
12
14
  let color;
13
- if (clamped >= 90)
15
+ if (muted)
16
+ color = sgr(90); // dim grey — non-binding cap
17
+ else if (clamped >= 90)
14
18
  color = sgr(31); // red
15
19
  else if (clamped >= 70)
16
20
  color = sgr(33); // yellow
@@ -1 +1 @@
1
- {"version":3,"file":"gauge.js","sourceRoot":"","sources":["../../src/tui/gauge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gauge.js","sourceRoot":"","sources":["../../src/tui/gauge.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAEvC;;8EAE8E;AAC9E,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,KAAa,EAAE,KAAK,GAAG,KAAK;IACtE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;IAE7B,oEAAoE;IACpE,IAAI,KAAa,CAAC;IAClB,IAAI,KAAK;QAAE,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAe,6BAA6B;SAClE,IAAI,OAAO,IAAI,EAAE;QAAE,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAE,MAAM;SAC3C,IAAI,OAAO,IAAI,EAAE;QAAE,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAE,SAAS;;QAC9C,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAsB,QAAQ;IAEnD,OAAO,GAAG,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC;AAC/E,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,YAAY,CAAC,OAAgB;IAC3C,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACtD,IAAI,IAAI,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IAE7B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IAEpC,IAAI,IAAI,GAAG,CAAC;QAAE,OAAO,IAAI,IAAI,IAAI,KAAK,GAAG,EAAE,GAAG,CAAC;IAC/C,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,CAAC;IAChD,OAAO,IAAI,IAAI,GAAG,CAAC;AACrB,CAAC;AAED,iCAAiC;AACjC,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,IAAI,GAAG,GAAG,EAAE;QAAE,OAAO,GAAG,GAAG,GAAG,CAAC;IAC/B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;IAC/B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7B,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;IACpC,OAAO,GAAG,CAAC,GAAG,CAAC;AACjB,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,YAAY,CAAC,CAAS;IACpC,IAAI,CAAC,GAAG,IAAI;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,CAAC,GAAG,MAAM;QAAE,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IACnD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;AACpC,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,kBAAkB,CAChC,UAAoB,EACpB,KAAa,EACb,SAAS,GAAG,GAAG;IAEf,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC;IAClC,MAAM,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,KAAK,CAAS,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEjD,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;QACrB,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,QAAQ;YAAE,SAAS;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,MAAM,CAAC;IAErB,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,GAAG,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9D,GAAG,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,CAAC;IACH,CAAC;IACD,OAAO,GAAG,GAAG,KAAK,CAAC;AACrB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/tui/renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AASjE,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAIhE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAIvE;AAyGD,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE7C;AAyED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,kEAAkE;IAClE,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,WAAW,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;IAChD,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,yEAAyE;IACzE,SAAS,EAAE,OAAO,CAAC;IACnB,sEAAsE;IACtE,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,QAAQ,EAAE,CA0HjE;AAuZD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAanG;AAwED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EACjD,cAAc,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAC5D,MAAM,CAsBR"}
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/tui/renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AASjE,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAIhE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAIvE;AAyGD,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE7C;AAyED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,kEAAkE;IAClE,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,WAAW,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;IAChD,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,yEAAyE;IACzE,SAAS,EAAE,OAAO,CAAC;IACnB,sEAAsE;IACtE,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,QAAQ,EAAE,CA0HjE;AAkbD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAanG;AAwED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EACjD,cAAc,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAC5D,MAAM,CAsBR"}
@@ -550,6 +550,32 @@ function renderAgentLines(state, maxWidth, useLogo) {
550
550
  return lines;
551
551
  }
552
552
  // ===== Status Panel: LIMITS | MODELS =====
553
+ /**
554
+ * Per-model scoped weekly caps (e.g. the "Fable" cap) shown beneath the 5h/7d
555
+ * gauges wherever both windows render. The account-wide 5h/7d can read low while
556
+ * a scoped cap is the ACTIVE binding constraint — so surface each one. An inactive
557
+ * cap stays visible but muted (dim gauge), only an active cap gets the percent
558
+ * ramp, mirroring the deck's treatment. `inlineReset` matches the host block's
559
+ * layout (reset on the same line vs a dim line beneath).
560
+ */
561
+ function renderScopedLimitLines(u, gaugeW, inlineReset) {
562
+ const lines = [];
563
+ for (const s of u.scopedLimits ?? []) {
564
+ const pct = Math.round(s.percent);
565
+ const label = truncText((s.label || 'model').replace(/\s+/g, ' ').trim(), 7);
566
+ const gauge = blockGauge(pct, gaugeW, !s.active);
567
+ const reset = resetTimeStr(s.resetsAt);
568
+ if (inlineReset) {
569
+ lines.push(` ${label} [${gauge}] ${pct}% ${colors.dim}${reset}${RESET}`);
570
+ }
571
+ else {
572
+ lines.push(` ${label} [${gauge}] ${pct}%`);
573
+ if (reset)
574
+ lines.push(`${colors.dim} ${reset}${RESET}`);
575
+ }
576
+ }
577
+ return lines;
578
+ }
553
579
  function renderStatusLimitsLines(state, width) {
554
580
  const lines = [];
555
581
  const u = state.usage;
@@ -570,6 +596,7 @@ function renderStatusLimitsLines(state, width) {
570
596
  if (reset)
571
597
  lines.push(`${colors.dim} ${reset}${RESET}`);
572
598
  }
599
+ lines.push(...renderScopedLimitLines(u, gaugeW, false));
573
600
  if (state.currentTool) {
574
601
  lines.push(` ${colors.tool}${truncText(state.currentTool, width - 2)}${RESET}`);
575
602
  }
@@ -599,6 +626,7 @@ function renderStatusLines(state, width) {
599
626
  const pct = Math.round(u.sevenDayPercent);
600
627
  lines.push(` 7d [${blockGauge(pct, gaugeW)}] ${pct}% ${colors.dim}${resetTimeStr(u.sevenDayResetsAt)}${RESET}`);
601
628
  }
629
+ lines.push(...renderScopedLimitLines(u, gaugeW, true));
602
630
  }
603
631
  if (state.currentTool)
604
632
  lines.push(` ${colors.tool}Tool: ${truncText(state.currentTool, width - 8)}${RESET}`);