@songsid/agend 2.1.2-beta.14 → 2.1.2-beta.16

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 (122) hide show
  1. package/dist/access-path.js +15 -6
  2. package/dist/access-path.js.map +1 -1
  3. package/dist/backend/claude-code.d.ts +37 -0
  4. package/dist/backend/claude-code.js +43 -1
  5. package/dist/backend/claude-code.js.map +1 -1
  6. package/dist/backend/codex.js +22 -0
  7. package/dist/backend/codex.js.map +1 -1
  8. package/dist/backend/grok.d.ts +23 -0
  9. package/dist/backend/grok.js +25 -0
  10. package/dist/backend/grok.js.map +1 -1
  11. package/dist/backend/kiro.d.ts +20 -0
  12. package/dist/backend/kiro.js +59 -0
  13. package/dist/backend/kiro.js.map +1 -1
  14. package/dist/backend/types.d.ts +27 -0
  15. package/dist/backend/types.js +1 -1
  16. package/dist/backend/types.js.map +1 -1
  17. package/dist/channel/adapters/discord.d.ts +15 -0
  18. package/dist/channel/adapters/discord.js +90 -1
  19. package/dist/channel/adapters/discord.js.map +1 -1
  20. package/dist/channel/adapters/telegram.d.ts +21 -0
  21. package/dist/channel/adapters/telegram.js +82 -0
  22. package/dist/channel/adapters/telegram.js.map +1 -1
  23. package/dist/channel/ipc-bridge.d.ts +9 -1
  24. package/dist/channel/ipc-bridge.js +12 -3
  25. package/dist/channel/ipc-bridge.js.map +1 -1
  26. package/dist/channel/ipc-timeouts.d.ts +40 -0
  27. package/dist/channel/ipc-timeouts.js +58 -0
  28. package/dist/channel/ipc-timeouts.js.map +1 -0
  29. package/dist/channel/mcp-server.js +25 -14
  30. package/dist/channel/mcp-server.js.map +1 -1
  31. package/dist/channel/mcp-tools.js +4 -2
  32. package/dist/channel/mcp-tools.js.map +1 -1
  33. package/dist/channel/reconnect-backoff.d.ts +17 -0
  34. package/dist/channel/reconnect-backoff.js +21 -0
  35. package/dist/channel/reconnect-backoff.js.map +1 -0
  36. package/dist/channel/types.d.ts +29 -0
  37. package/dist/classic-channel-manager.js +1 -5
  38. package/dist/classic-channel-manager.js.map +1 -1
  39. package/dist/cli.js +129 -50
  40. package/dist/cli.js.map +1 -1
  41. package/dist/completion.d.ts +27 -0
  42. package/dist/completion.js +121 -0
  43. package/dist/completion.js.map +1 -0
  44. package/dist/config-validator.js +9 -0
  45. package/dist/config-validator.js.map +1 -1
  46. package/dist/config.js +1 -0
  47. package/dist/config.js.map +1 -1
  48. package/dist/cost-guard.d.ts +3 -1
  49. package/dist/cost-guard.js +3 -1
  50. package/dist/cost-guard.js.map +1 -1
  51. package/dist/daemon.d.ts +164 -5
  52. package/dist/daemon.js +711 -290
  53. package/dist/daemon.js.map +1 -1
  54. package/dist/event-log.d.ts +31 -0
  55. package/dist/event-log.js +96 -0
  56. package/dist/event-log.js.map +1 -1
  57. package/dist/fleet-manager.d.ts +188 -1
  58. package/dist/fleet-manager.js +712 -67
  59. package/dist/fleet-manager.js.map +1 -1
  60. package/dist/general-knowledge/skills/model-discovery/SKILL.md +1 -1
  61. package/dist/hang-detector.d.ts +19 -13
  62. package/dist/hang-detector.js +19 -49
  63. package/dist/hang-detector.js.map +1 -1
  64. package/dist/instance-lifecycle.js +25 -0
  65. package/dist/instance-lifecycle.js.map +1 -1
  66. package/dist/locale.js +1 -0
  67. package/dist/locale.js.map +1 -1
  68. package/dist/mcp-liveness.d.ts +21 -0
  69. package/dist/mcp-liveness.js +27 -0
  70. package/dist/mcp-liveness.js.map +1 -0
  71. package/dist/outbound-handlers.d.ts +7 -0
  72. package/dist/outbound-handlers.js +79 -5
  73. package/dist/outbound-handlers.js.map +1 -1
  74. package/dist/outbound-schemas.d.ts +7 -2
  75. package/dist/outbound-schemas.js +13 -2
  76. package/dist/outbound-schemas.js.map +1 -1
  77. package/dist/pane-write-lock.d.ts +48 -0
  78. package/dist/pane-write-lock.js +73 -0
  79. package/dist/pane-write-lock.js.map +1 -0
  80. package/dist/process-memory.d.ts +31 -0
  81. package/dist/process-memory.js +79 -0
  82. package/dist/process-memory.js.map +1 -0
  83. package/dist/quickstart.js +17 -16
  84. package/dist/quickstart.js.map +1 -1
  85. package/dist/scheduler/db.js +3 -0
  86. package/dist/scheduler/db.js.map +1 -1
  87. package/dist/sd-notify.d.ts +27 -0
  88. package/dist/sd-notify.js +33 -1
  89. package/dist/sd-notify.js.map +1 -1
  90. package/dist/secret-file.d.ts +33 -0
  91. package/dist/secret-file.js +36 -0
  92. package/dist/secret-file.js.map +1 -0
  93. package/dist/setup-wizard.js +9 -7
  94. package/dist/setup-wizard.js.map +1 -1
  95. package/dist/tmux-control.d.ts +58 -5
  96. package/dist/tmux-control.js +102 -14
  97. package/dist/tmux-control.js.map +1 -1
  98. package/dist/tmux-manager.d.ts +31 -1
  99. package/dist/tmux-manager.js +40 -11
  100. package/dist/tmux-manager.js.map +1 -1
  101. package/dist/topic-commands.d.ts +22 -2
  102. package/dist/topic-commands.js +104 -22
  103. package/dist/topic-commands.js.map +1 -1
  104. package/dist/types.d.ts +6 -0
  105. package/dist/ui/view.html +123 -2
  106. package/dist/usage/providers.d.ts +50 -0
  107. package/dist/usage/providers.js +611 -0
  108. package/dist/usage/providers.js.map +1 -0
  109. package/dist/usage/usage-api.d.ts +50 -0
  110. package/dist/usage/usage-api.js +111 -0
  111. package/dist/usage/usage-api.js.map +1 -0
  112. package/dist/view-api.js +1 -0
  113. package/dist/view-api.js.map +1 -1
  114. package/dist/web-api.js +5 -2
  115. package/dist/web-api.js.map +1 -1
  116. package/package.json +4 -1
  117. package/dist/channel/tool-tracker.d.ts +0 -13
  118. package/dist/channel/tool-tracker.js +0 -58
  119. package/dist/channel/tool-tracker.js.map +0 -1
  120. package/dist/daemon-entry.d.ts +0 -1
  121. package/dist/daemon-entry.js +0 -30
  122. package/dist/daemon-entry.js.map +0 -1
@@ -0,0 +1,121 @@
1
+ /**
2
+ * Shell completion scripts, emitted by `agend completion <shell>`.
3
+ *
4
+ * Instance names come from `agend ls --names-only`, which shares its name list
5
+ * with `attach`'s fuzzy resolver — so the candidates offered are exactly the
6
+ * ones `attach` will accept.
7
+ *
8
+ * Both scripts complete subcommands at the first position too. A `complete -F`
9
+ * / `compdef` registration REPLACES the shell's default completion for the
10
+ * command, so a script that only handled `attach` would leave every other
11
+ * position completing nothing at all — worse than no script.
12
+ */
13
+ export const COMPLETION_SHELLS = ["bash", "zsh"];
14
+ /** Reject anything that could break out of the generated script's quoting. */
15
+ function words(list) {
16
+ const safe = list.filter(w => /^[A-Za-z0-9_-]+$/.test(w));
17
+ return safe.join(" ");
18
+ }
19
+ export function bashCompletion(spec) {
20
+ return `# agend bash completion — eval "$(agend completion bash)"
21
+
22
+ # Instance names are one per line, so IFS must be newline while reading them.
23
+ # It is scoped to this helper on purpose: a function-wide IFS=$'\\n' would make
24
+ # compgen treat the space-separated subcommand lists below as a single word,
25
+ # which silently breaks subcommand completion.
26
+ _agend_complete_instances() {
27
+ local IFS=$'\\n'
28
+ COMPREPLY=($(compgen -W "$("$1" ls --names-only 2>/dev/null)" -- "$2"))
29
+ }
30
+
31
+ _agend_completion() {
32
+ local cur cmd sub agend_bin
33
+ COMPREPLY=() # never inherit a previous invocation's list
34
+ cur="\${COMP_WORDS[COMP_CWORD]}"
35
+ cmd="\${COMP_WORDS[1]}"
36
+ sub="\${COMP_WORDS[2]}"
37
+ agend_bin="\${COMP_WORDS[0]:-agend}"
38
+
39
+ if [ "$COMP_CWORD" -eq 1 ]; then
40
+ COMPREPLY=($(compgen -W "${words(spec.topLevel)}" -- "$cur"))
41
+ return
42
+ fi
43
+
44
+ if [ "$cmd" = "completion" ] && [ "$COMP_CWORD" -eq 2 ]; then
45
+ COMPREPLY=($(compgen -W "${words([...COMPLETION_SHELLS])}" -- "$cur"))
46
+ return
47
+ fi
48
+
49
+ if [ "$cmd" = "fleet" ]; then
50
+ if [ "$COMP_CWORD" -eq 2 ]; then
51
+ COMPREPLY=($(compgen -W "${words(spec.fleetSub)}" -- "$cur"))
52
+ return
53
+ fi
54
+ case " ${words(spec.fleetInstanceCommands)} " in
55
+ *" $sub "*)
56
+ if [ "$COMP_CWORD" -eq 3 ]; then
57
+ _agend_complete_instances "$agend_bin" "$cur"
58
+ fi
59
+ ;;
60
+ esac
61
+ return
62
+ fi
63
+
64
+ case " ${words(spec.instanceCommands)} " in
65
+ *" $cmd "*)
66
+ if [ "$COMP_CWORD" -eq 2 ]; then
67
+ _agend_complete_instances "$agend_bin" "$cur"
68
+ fi
69
+ ;;
70
+ esac
71
+ }
72
+ complete -F _agend_completion agend
73
+ `;
74
+ }
75
+ export function zshCompletion(spec) {
76
+ return `# agend zsh completion — eval "$(agend completion zsh)"
77
+ # Requires compinit to have run first (put \`autoload -Uz compinit && compinit\`
78
+ # above this line in ~/.zshrc).
79
+ #
80
+ # compadd is used rather than _values/_describe because it is the lowest-level
81
+ # primitive and filters by the current prefix on its own — fewer moving parts.
82
+ _agend() {
83
+ local -a instances
84
+ local agend_bin="\${words[1]:-agend}"
85
+ # \${(f)...} splits on newlines only, so a name is never split on whitespace.
86
+ local -a lines
87
+
88
+ if (( CURRENT == 2 )); then
89
+ compadd -- ${words(spec.topLevel)}
90
+ return
91
+ fi
92
+
93
+ if [[ "\${words[2]}" == "completion" ]] && (( CURRENT == 3 )); then
94
+ compadd -- ${words([...COMPLETION_SHELLS])}
95
+ return
96
+ fi
97
+
98
+ if [[ "\${words[2]}" == "fleet" ]]; then
99
+ if (( CURRENT == 3 )); then
100
+ compadd -- ${words(spec.fleetSub)}
101
+ return
102
+ fi
103
+ if (( CURRENT == 4 )) && [[ " ${words(spec.fleetInstanceCommands)} " == *" \${words[3]} "* ]]; then
104
+ instances=(\${(f)"$("$agend_bin" ls --names-only 2>/dev/null)"})
105
+ (( \${#instances} )) && compadd -a instances
106
+ fi
107
+ return
108
+ fi
109
+
110
+ if (( CURRENT == 3 )) && [[ " ${words(spec.instanceCommands)} " == *" \${words[2]} "* ]]; then
111
+ instances=(\${(f)"$("$agend_bin" ls --names-only 2>/dev/null)"})
112
+ (( \${#instances} )) && compadd -a instances
113
+ fi
114
+ }
115
+ compdef _agend agend
116
+ `;
117
+ }
118
+ export function completionScript(shell, spec) {
119
+ return shell === "zsh" ? zshCompletion(spec) : bashCompletion(spec);
120
+ }
121
+ //# sourceMappingURL=completion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion.js","sourceRoot":"","sources":["../src/completion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,KAAK,CAAU,CAAC;AAc1D,8EAA8E;AAC9E,SAAS,KAAK,CAAC,IAAc;IAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAoB;IACjD,OAAO;;;;;;;;;;;;;;;;;;;;+BAoBsB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;;;;;+BAKpB,KAAK,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC;;;;;;iCAM3B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;;;aAGxC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC;;;;;;;;;;WAUnC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;;;;;;;;;CAStC,CAAC;AACF,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAoB;IAChD,OAAO;;;;;;;;;;;;;iBAaQ,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;;;;;iBAKpB,KAAK,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC;;;;;;mBAM3B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;;;oCAGH,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC;;;;;;;kCAOnC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;;;;;;CAM7D,CAAC;AACF,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAsB,EAAE,IAAoB;IAC3E,OAAO,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AACtE,CAAC"}
@@ -130,6 +130,15 @@ export function validateFleetConfig(config) {
130
130
  err(`${at}.access.mode`, "must be open, locked, or pairing");
131
131
  }
132
132
  });
133
+ // ── Web UI ────────────────────────────────────────────────
134
+ if (config.web !== undefined && !isObj(config.web)) {
135
+ err("web", "must be a mapping");
136
+ }
137
+ else if (isObj(config.web)) {
138
+ if (config.web.usage_panel !== undefined && typeof config.web.usage_panel !== "boolean") {
139
+ err("web.usage_panel", "must be a boolean");
140
+ }
141
+ }
133
142
  // ── Defaults ──────────────────────────────────────────────
134
143
  if (config.defaults !== undefined && !isObj(config.defaults)) {
135
144
  err("defaults", "must be a mapping");
@@ -1 +1 @@
1
- {"version":3,"file":"config-validator.js","sourceRoot":"","sources":["../src/config-validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-validator.js","sourceRoot":"","sources":["../src/config-validator.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -121,6 +121,7 @@ export function loadFleetConfig(configPath) {
121
121
  templates,
122
122
  profiles: parsed.profiles,
123
123
  health_port: parsed.health_port,
124
+ web: parsed.web,
124
125
  };
125
126
  }
126
127
  /** Read the user-authored config without applying defaults or normalization. */
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -19,10 +19,12 @@ export declare function formatCents(cents: number): string;
19
19
  export declare function msUntilMidnight(timezone: string): number;
20
20
  export declare class CostGuard extends EventEmitter {
21
21
  private config;
22
+ /** Null when the event log could not be opened — cost tracking still works,
23
+ * only the cost_snapshot history rows are skipped. */
22
24
  private eventLog;
23
25
  private trackers;
24
26
  private timer;
25
- constructor(config: CostGuardConfig, eventLog: EventLog);
27
+ constructor(config: CostGuardConfig, eventLog: EventLog | null);
26
28
  private getTracker;
27
29
  updateCost(instance: string, costUsd: number): void;
28
30
  snapshotAndReset(instance: string): void;
@@ -38,6 +38,8 @@ export function msUntilMidnight(timezone) {
38
38
  }
39
39
  export class CostGuard extends EventEmitter {
40
40
  config;
41
+ /** Null when the event log could not be opened — cost tracking still works,
42
+ * only the cost_snapshot history rows are skipped. */
41
43
  eventLog;
42
44
  trackers = new Map();
43
45
  timer = null;
@@ -97,7 +99,7 @@ export class CostGuard extends EventEmitter {
97
99
  // can fire each event at most once.
98
100
  tracker.warnEmitted = false;
99
101
  tracker.limitEmitted = false;
100
- this.eventLog.insert(instance, "cost_snapshot", {
102
+ this.eventLog?.insert(instance, "cost_snapshot", {
101
103
  session_cost_usd: previousUsd,
102
104
  accumulated_cents: tracker.accumulatedCents,
103
105
  });
@@ -1 +1 @@
1
- {"version":3,"file":"cost-guard.js","sourceRoot":"","sources":["../src/cost-guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cost-guard.js","sourceRoot":"","sources":["../src/cost-guard.ts"],"names":[],"mappings":"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"}
package/dist/daemon.d.ts CHANGED
@@ -11,8 +11,6 @@ export declare function buildInstructionReloadNotice(binaryName: string, instanc
11
11
  export declare const DEFAULT_STUCK_TIMEOUT_MS: number;
12
12
  export declare const DEFAULT_STATE_IDLE_DEBOUNCE_MS = 2000;
13
13
  export declare const DEFAULT_STATE_SAFETY_SWEEP_MS = 60000;
14
- /** @deprecated State detection is event-driven; this now aliases the safety sweep. */
15
- export declare const DEFAULT_STATE_POLL_INTERVAL_MS = 60000;
16
14
  /**
17
15
  * Whether two working directories belong to the same project, so a fleet-scoped
18
16
  * decision recorded in one reaches the other. Covers the worktree/checkout
@@ -42,6 +40,26 @@ export declare function selectRelevantDecisions<T extends {
42
40
  export declare function readLastInboundAt(instanceDir: string, now?: number): number | null;
43
41
  /** Atomically persist the last real channel inbound timestamp. */
44
42
  export declare function writeLastInboundAt(instanceDir: string, timestamp: number): void;
43
+ /**
44
+ * Render the handoff/routing metadata that rides along with an inbound message
45
+ * into the block actually pasted into the agent's pane.
46
+ *
47
+ * These fields were all populated by the sender (outbound-handlers builds them
48
+ * into `ipcMeta`) and delivered over IPC, but never rendered — so the receiving
49
+ * agent could not see them, and several documented flows could not work:
50
+ *
51
+ * - `report_result` requires a `correlation_id` the agent had no way to know, so
52
+ * the "correlation_id not recognized" warning fired on essentially every call.
53
+ * - Delegation cancel buttons are retired by correlation id, so they never retired.
54
+ * - `react`, `edit_message` and `reply.reply_to` need `message_id`, which the tool
55
+ * descriptions tell the agent to take "from the inbound block".
56
+ * - `download_attachment` needs `attachment_file_id`.
57
+ * - `requires_reply` was invisible, so a delegated task looked like an FYI.
58
+ *
59
+ * Only non-empty fields are emitted, so a plain user message gains at most a
60
+ * message_id line.
61
+ */
62
+ export declare function renderHandoffMetadata(meta: Record<string, string>): string;
45
63
  /** Headless inactivity timer used by the daemon and unit tests. */
46
64
  export declare class AutoPauseController {
47
65
  private readonly thresholdMs;
@@ -62,16 +80,32 @@ export declare class AutoPauseController {
62
80
  * Pane motion wins over a ready match because several backends keep their ready
63
81
  * marker in a persistent header/footer while generating. A stable ready pane is
64
82
  * idle; changing content is working; stable non-ready content eventually sticks.
83
+ *
84
+ * ## Why an optional busy pattern exists
85
+ *
86
+ * "Motion wins" degrades badly when a backend's ready marker is *always* on
87
+ * screen. `stuck` requires `!ready`, so for such a backend the state can only ever
88
+ * be idle or working — the stuck edge, and with it `handleStuckTransition` and the
89
+ * hang notification, is unreachable. A frozen CLI is then reported as idle, which
90
+ * also clears pending work: the message the user sent is quietly booked as done.
91
+ *
92
+ * claude-code was exactly this case (see ClaudeCodeBackend.getReadyPattern). A
93
+ * backend that can point at a marker meaning "generating right now" supplies
94
+ * `getBusyPattern()`, and that match vetoes ready regardless of what the ready
95
+ * pattern says.
65
96
  */
66
97
  export declare class PaneStateMachine {
67
98
  private readonly stuckTimeoutMs;
68
99
  private readonly readyPattern;
100
+ private readonly busyPattern;
69
101
  private lastPaneHash;
70
102
  private lastPaneChangeAt;
71
103
  private lastObservedAt;
72
104
  private stateChangedAt;
73
105
  private currentState;
74
- constructor(readyPattern: RegExp, stuckTimeoutMs?: number, now?: number);
106
+ constructor(readyPattern: RegExp, stuckTimeoutMs?: number, now?: number, busyPattern?: RegExp | null);
107
+ /** Ready, unless the backend can positively see that it is still generating. */
108
+ private isReady;
75
109
  observe(pane: string, now?: number): InstanceStateSnapshot;
76
110
  /** Record pane motion from tmux control mode without capturing pane content. */
77
111
  recordOutput(now?: number): InstanceStateSnapshot;
@@ -116,7 +150,6 @@ export declare class Daemon extends EventEmitter {
116
150
  private ipcServer;
117
151
  private messageBus;
118
152
  private transcriptMonitor;
119
- private toolTracker;
120
153
  private guardian;
121
154
  private adapter;
122
155
  private pendingIpcRequests;
@@ -124,6 +157,8 @@ export declare class Daemon extends EventEmitter {
124
157
  private lastThreadId;
125
158
  private lastAdapterId;
126
159
  private pendingAckMessage;
160
+ /** Last activity published to the fleet manager; null when nothing is running. */
161
+ private currentActivity;
127
162
  private toolStatusMessageId;
128
163
  private toolStatusLines;
129
164
  private toolStatusDebounce;
@@ -137,9 +172,19 @@ export declare class Daemon extends EventEmitter {
137
172
  private lastSpawnAt;
138
173
  private crashTimestamps;
139
174
  private healthCheckPaused;
175
+ private lastHealthErrorNotifyAt;
140
176
  /** CLI pane availability, independent from the daemon process and tri-state. */
141
177
  private processStatus;
142
178
  private spawning;
179
+ /**
180
+ * Resolves when the in-flight spawn finishes; null when none is running.
181
+ *
182
+ * `spawning` alone can only be polled. Delivery needs to *wait*, and a boolean
183
+ * poll would either busy-loop or race the flag being cleared.
184
+ */
185
+ private spawnSettled;
186
+ private resolveSpawnSettled;
187
+ private spawnDepth;
143
188
  private skipResume;
144
189
  private backgroundSessionRecoveryAttempted;
145
190
  /** Whether the last spawn started a fresh session (not resumed). */
@@ -161,6 +206,7 @@ export declare class Daemon extends EventEmitter {
161
206
  private instanceStateIdleDebounceMs;
162
207
  private instanceStateStuckTimeoutMs;
163
208
  private instanceStateReadyPattern;
209
+ private instanceStateBusyPattern;
164
210
  private instanceStateMonitorActive;
165
211
  private statePollInFlight;
166
212
  private autoPauseController;
@@ -179,7 +225,13 @@ export declare class Daemon extends EventEmitter {
179
225
  private recentEvents;
180
226
  private recentToolActivity;
181
227
  private snapshotConsumed;
228
+ /** Orders inbound channel messages against each other (queue-depth accounting
229
+ * and ⏳/👀/✅ reactions live here). It does NOT cover the other writers that
230
+ * reach the pane — {@link paneWriteLock} does. */
182
231
  private pasteLock;
232
+ /** Mutual exclusion for *every* write into the pane, whichever subsystem it
233
+ * comes from. See PaneWriteLock for why interleaving is destructive. */
234
+ private readonly paneWriteLock;
183
235
  private pendingInstructionsUpdate;
184
236
  private pendingInstructionsNotice;
185
237
  private warmupNeeded;
@@ -187,6 +239,10 @@ export declare class Daemon extends EventEmitter {
187
239
  private pasteQueueDepth;
188
240
  private firstDeliveryDelay;
189
241
  private errorMonitorTimer;
242
+ /** Same 5-min gate the error monitor uses, so a dead MCP server alerts once. */
243
+ private static readonly MCP_DEATH_COOLDOWN_MS;
244
+ private lastMcpDeathNotifiedAt;
245
+ private mcpDeathNotifiedForPid;
190
246
  /** Prevent in-flight monitor callbacks from re-arming after a pause. */
191
247
  private runtimeMonitorsFrozen;
192
248
  private errorWaitingForRecovery;
@@ -213,12 +269,40 @@ export declare class Daemon extends EventEmitter {
213
269
  private clearErrorRecoveryGate;
214
270
  constructor(name: string, config: InstanceConfig, instanceDir: string, topicMode?: boolean, backend?: CliBackend | undefined, controlClient?: TmuxControlClient | undefined, rootLogger?: Logger, runtimeIdentity?: FleetInstructionsParams["runtimeIdentity"]);
215
271
  start(): Promise<void>;
272
+ /**
273
+ * Detect a CRASHED MCP server and report it once.
274
+ *
275
+ * The MCP server writes its pid to channel.mcp.pid at startup and unlinks it on
276
+ * a clean exit, so "file present + pid dead" specifically means it died without
277
+ * cleaning up (crash / OOM / SIGKILL). A missing file is either "not started
278
+ * yet" or "exited cleanly" — neither is an incident, and an orphan exit implies
279
+ * the CLI itself died, which the crash detector already covers.
280
+ *
281
+ * The daemon deliberately does NOT try to respawn it: MCP is a stdio protocol
282
+ * where the CLI spawns the server and owns its pipes, so a daemon-spawned
283
+ * process would have no client reading it. Only the CLI can restore its own
284
+ * tools — hence notify, and let the operator decide about restarting.
285
+ */
286
+ private checkMcpServerAlive;
216
287
  private startHealthCheck;
217
288
  /**
218
289
  * Publish pane-process availability separately from idle/working/stuck.
219
290
  * A dead remain-on-exit pane still contains the old ready prompt, so allowing
220
291
  * the pane monitor to capture it would re-create a false idle state.
221
292
  */
293
+ /**
294
+ * Announce that this instance is no longer being supervised.
295
+ *
296
+ * Four health-check exits set `healthCheckPaused = true` and returned without
297
+ * telling anyone: a clean CLI exit, `max_retries <= 0`, crash retries exhausted,
298
+ * and the instance directory being deleted. Only the crash-LOOP case emitted an
299
+ * event, so a fleet could quietly contain a dead instance that still looked fine
300
+ * on the dashboard — while messages routed to it queued or failed with a bare ❌.
301
+ *
302
+ * `crash_loop` already had this treatment; this is the same bridge for the other
303
+ * four, carrying a human-readable cause and the operator's next step.
304
+ */
305
+ private emitSupervisionEnded;
222
306
  private setProcessStatus;
223
307
  /**
224
308
  * Periodically scan PTY output for backend-defined error patterns.
@@ -245,6 +329,12 @@ export declare class Daemon extends EventEmitter {
245
329
  * Interrupt the CLI's current generation (cancel button / `/cancel`).
246
330
  * Direct tmux key event (not a paste) so it registers as the interrupt key.
247
331
  * kiro-cli interrupts on Ctrl+C; the others (claude-code, codex, …) on Escape.
332
+ *
333
+ * Deliberately NOT taken through `paneWriteLock`. Cancel is the user's way out
334
+ * of a pane that is busy or wedged — queueing it behind the very delivery chain
335
+ * it exists to unblock would make the button useless exactly when it is needed.
336
+ * The cost is accepted: an Escape landing between a paste and its Enter discards
337
+ * that message, which is what the user asked for anyway.
248
338
  */
249
339
  sendEscape(): Promise<void>;
250
340
  /** Send the backend-specific graceful quit command/key sequence. */
@@ -279,6 +369,28 @@ export declare class Daemon extends EventEmitter {
279
369
  /** Restore the same monitor objects after wake without adding event listeners. */
280
370
  private resumeRuntimeMonitors;
281
371
  getMessageBus(): MessageBus;
372
+ /**
373
+ * Tell the fleet manager what this instance is doing right now, for the live
374
+ * progress line on the cancel button.
375
+ *
376
+ * Purely cosmetic — nothing decides anything from it, so it is fine that only
377
+ * backends with a transcript feed report at all (claude-code today). For the
378
+ * rest the progress line keeps showing just elapsed time.
379
+ *
380
+ * Repeats are dropped: the ticker only edits the channel message when the text
381
+ * changes, and a stream of identical broadcasts would defeat that.
382
+ */
383
+ private publishActivity;
384
+ /**
385
+ * Options for every system-initiated paste (startup notice, session snapshot,
386
+ * runtime-dialog keys).
387
+ *
388
+ * One place, so the three call sites cannot drift apart on it. Backends with a
389
+ * native input queue do not get the retry Enter: on those, a second bare Enter
390
+ * is not the no-op the retry assumed but a queue mutation — the same reason
391
+ * `deliverMessage` refuses to probe for busy with one.
392
+ */
393
+ private systemPasteOptions;
282
394
  private summarizeTool;
283
395
  private addToolStatus;
284
396
  /** Debounce tool status updates to avoid channel rate limits */
@@ -309,6 +421,14 @@ export declare class Daemon extends EventEmitter {
309
421
  * serial in both cases so separate PTY writes can never overlap.
310
422
  */
311
423
  private deliverMessage;
424
+ /**
425
+ * The write half of a delivery: paste → Enter → confirm, with retries.
426
+ *
427
+ * Always called under {@link paneWriteLock}. Split out from `deliverMessage`
428
+ * precisely so the lock's scope is visible at the call site rather than being
429
+ * an invariant maintained by comments.
430
+ */
431
+ private writeMessageToPane;
312
432
  /**
313
433
  * True when a busy native-queue paste appears to have landed: Codex shows a
314
434
  * `↳` queue marker, or a distinctive slice of the pasted text is on screen.
@@ -317,7 +437,21 @@ export declare class Daemon extends EventEmitter {
317
437
  private nativeQueuePasteVisible;
318
438
  /** Re-resolve this instance's tmux window by name (stale id after crash/respawn). */
319
439
  private recoverWindow;
320
- /** Poll up to ~2s (200ms × 10) for the pane to emit output after `since`. */
440
+ /**
441
+ * Poll up to ~2s (200ms × 10) for the pane to emit output after `since`.
442
+ *
443
+ * A `false` here is not "no output" — it is read as **"the message was pasted but
444
+ * never submitted"**, which re-sends Enter and then reports ❌ to the user. So a
445
+ * false negative costs a possible double submit and a failure notice for a
446
+ * message that actually arrived.
447
+ *
448
+ * That is exactly what a control-mode reconnect used to produce. `connect()`
449
+ * drops every output timestamp, so `hasOutputSince` answers `false` for a pane
450
+ * that did react — the evidence was thrown away, not absent. Blind time is
451
+ * therefore not counted against the budget: after a reset the poll restarts from
452
+ * the moment observation resumed. A hard wall-clock cap keeps a reconnect loop
453
+ * from extending this forever.
454
+ */
321
455
  private confirmBusyAfterEnter;
322
456
  private getWindowId;
323
457
  /** Find the IPC socket for a given sessionName */
@@ -335,6 +469,31 @@ export declare class Daemon extends EventEmitter {
335
469
  * This replaces the old system-prompt injection approach.
336
470
  */
337
471
  private injectSnapshotMessage;
472
+ /**
473
+ * Depth, not a flag: the wake path marks a spawn and then calls trySpawn, which
474
+ * marks another. With a plain boolean the inner one's completion would clear the
475
+ * latch while the outer spawn was still dismissing dialogs, releasing delivery
476
+ * into exactly the window this exists to close.
477
+ */
478
+ private beginSpawn;
479
+ private endSpawn;
480
+ /**
481
+ * Hold until the CLI has finished starting up.
482
+ *
483
+ * Startup is not a quiet period: `dismissDialogsUntilReady` is clicking through
484
+ * trust prompts and session pickers. A pane showing a modal dialog produces no
485
+ * output, so `waitUntilIdle` reports it idle and a queued message gets pasted
486
+ * *into the dialog* — where the text is discarded and the Enter picks a menu
487
+ * item. The paste and the Enter both "succeed", so this loses the message
488
+ * without even a ❌.
489
+ *
490
+ * The pane write lock (#414) does not cover this: it serialises each key
491
+ * sequence, but it is released between one dialog and the next.
492
+ *
493
+ * Bounded, and called BEFORE the pane lock is taken — waiting on the spawn while
494
+ * holding the lock the spawn itself needs would deadlock.
495
+ */
496
+ private waitForSpawnToSettle;
338
497
  /** Spawn a CLI window. Returns true if --resume was used successfully. */
339
498
  private spawnClaudeWindow;
340
499
  /** Kill the entire process tree of the current tmux pane (CLI + MCP server). */