claudelink 1.3.1 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -328,6 +328,7 @@ The Command Center is a local web UI at `http://127.0.0.1:7878` — a live conso
328
328
  | **Registered agents** | Role, status, **per-agent Auto-reply toggle**, sent/received counts, last-seen. |
329
329
  | **Health** | Total agents, unread/total messages, bulletin entries, orphan blockers, FK violations. **Heal orphans** cleans dead-agent tail rows in one transaction. |
330
330
  | **Auto-nudge** | Global on/off + tick interval (1–120 min). Scheduler only fires for terminals that *actually have* unread mail — no wasted Claude turns. |
331
+ | **Recovery Watcher** *(v1.4.0+)* | Detects Anthropic API rate-limit / overload errors in agent terminals and types a recovery prompt automatically. Configurable poll interval, cooldown, and escalate-to-desktop-notification threshold. See [Recovery Watcher](#3-recovery-watcher-api-error-auto-recovery) below. |
331
332
  | **Recent messages** | Live feed of the last several messages across all agents, with priority and unread badges. |
332
333
 
333
334
  The page auto-refreshes every 2 seconds. **Kill all servers** in the header drops the entire mesh in one click.
@@ -425,6 +426,74 @@ Set any to `0` to disable. Decisions log to `~/.claudelink/auto-fire.log`.
425
426
 
426
427
  > **Honest note on Claude's safety boundary:** Claude Code's prompt-injection defense correctly flags external content steering outbound tool calls. The Stop hook reliably triggers an autonomous inbox read; Claude may decline to send the outbound reply autonomously when the reply would be unrelated to the user's most recent prompt. This is responsible safety behavior, not a bug. **The auto-nudge scheduler avoids this entirely** because the keystroke path is indistinguishable from the user typing by hand.
427
428
 
429
+ ### 3. Recovery Watcher (API-error auto-recovery)
430
+
431
+ *New in v1.4.0.* Detects when an agent's terminal has been halted by an Anthropic (or other LLM provider) API error and types a recovery prompt automatically, so you don't come back from being away to find a fleet of agents that have been stopped for hours.
432
+
433
+ #### The problem this solves
434
+
435
+ When the Anthropic API rate-limits or overloads, Claude Code surfaces an error like this and halts the agent's turn mid-flight:
436
+
437
+ ```
438
+ API Error: Server is temporarily limiting requests (not your usage limit) · Rate limited
439
+ ```
440
+
441
+ Other shapes you'll see from the same family:
442
+
443
+ | Surface | Meaning |
444
+ |---|---|
445
+ | `API Error: Server is temporarily limiting requests · Rate limited` | Anthropic short-window rate limit (most common at night) |
446
+ | `API Error: 429 Too Many Requests` | Per-token-bucket rate limit hit |
447
+ | `API Error: 529 Too Many Requests` | Anthropic-side overload (capacity, not your account) |
448
+ | `API Error: 503 Service Unavailable` | Upstream unavailable |
449
+ | `API Error: rate_limit_error` | Programmatic rate-limit error class |
450
+ | `API Error: overloaded_error` | Programmatic overload error class |
451
+
452
+ When this happens, the agent **cannot recover on its own** — the turn died with an error, and the CLI sits at a prompt waiting for human input. Without ClaudeLink, you have to walk to each affected terminal, sometimes ask another agent what the stuck one was doing, and manually type a continuation. If you're asleep or away for the weekend, the agents are stopped until you come back.
453
+
454
+ #### What Recovery Watcher does
455
+
456
+ ```mermaid
457
+ flowchart LR
458
+ TICK{{"⏱️ Poll every N sec<br/>(default 60s)"}} --> CAP["Capture last 1500 chars<br/>of each agent's terminal<br/>(iTerm2 osascript /<br/>tmux capture-pane)"]
459
+ CAP --> MATCH{"Match against<br/>error patterns?"}
460
+ MATCH -->|No| WAIT["Skip — agent is fine"]
461
+ MATCH -->|Yes| POS{"Match within<br/>last 400 chars?"}
462
+ POS -->|No| DISC["Skip — likely prose<br/>discussion, not<br/>actual error"]
463
+ POS -->|Yes| DEDUP{"New error<br/>signature?"}
464
+ DEDUP -->|No, within cooldown| QUIET["Skip — already nudged<br/>this error"]
465
+ DEDUP -->|Yes| ESC{"Consecutive fires<br/>≥ escalateAfter?"}
466
+ ESC -->|Yes| NOTIFY["Desktop notification<br/>(API is genuinely down,<br/>nudging won't help)"]
467
+ ESC -->|No| FIRE["✅ Type recovery message<br/>into terminal<br/>(default: 'check messages<br/>and continue with your<br/>current assignment')"]
468
+ ```
469
+
470
+ When a recovery prompt fires, the receiving CLI treats it as a normal user prompt, the agent calls `read_inbox` and resumes — the same path that already works for routine auto-nudge.
471
+
472
+ ![Recovery Watcher in the Command Center](docs/assets/recovery-watcher.png)
473
+
474
+ #### Configuration
475
+
476
+ Configurable directly from the Command Center (Recovery Watcher panel) or via `~/.claudelink/recovery-watcher.json`:
477
+
478
+ | Setting | Default | What it controls |
479
+ |---|---|---|
480
+ | `enabled` | `false` | Opt-in. Defaults off so existing installs see zero behavior change. |
481
+ | `intervalSec` | `60` | How often to poll each terminal. Clamped to [15, 600]. |
482
+ | `cooldownMin` | `5` | Minimum gap between recovery fires for the same agent + same error. Clamped to [1, 60]. |
483
+ | `escalateAfter` | `3` | After N consecutive fires without the error clearing, stop nudging and send a macOS desktop notification instead. Clamped to [1, 20]. |
484
+ | `recoveryMessage` | `"check messages and continue with your current assignment"` | Exact text typed into the stuck terminal. |
485
+
486
+ Audit log at `~/.claudelink/recovery-watcher.log` — every detection, fire, suppression, and escalation is recorded with the matched pattern and signature.
487
+
488
+ #### How false positives are avoided
489
+
490
+ Two-part guard built into the pattern matcher:
491
+
492
+ 1. **Context-aware patterns.** Patterns require an `API Error:`, `Error:`, or `OpenAI API error:` prefix on the same line as the rate-limit/overload keyword. Bare words alone don't match — so agents merely *discussing* rate-limiting in conversation don't trigger false fires.
493
+ 2. **Position filter.** The matched text must occur within the last 400 characters of the captured scrollback. Real CLI errors that paused execution sit at the bottom of the visible buffer, just above the prompt cursor. If the error string is buried mid-conversation with prose continuing after it, the match is rejected as "talked about, not actually happening."
494
+
495
+ The two guards together kill the noise: the watcher fires on real stuck agents, stays silent on agents that simply *mention* the topic.
496
+
428
497
  ### Per-agent opt-out
429
498
 
430
499
  Two ways to silence an agent:
package/dist/index.js CHANGED
@@ -29,7 +29,38 @@ function detectTty() {
29
29
  return null;
30
30
  }
31
31
  }
32
- function detectTerminalApp() {
32
+ function detectTerminalAppByTty(tty) {
33
+ // Fallback when env-var detection fails. Asks iTerm2 directly via
34
+ // AppleScript whether any session owns this tty. Catches the Codex CLI
35
+ // case: Codex strips environment variables (TERM_PROGRAM included) when
36
+ // spawning MCP children, so the env-based path returns null even though
37
+ // the agent is clearly running inside iTerm2.
38
+ try {
39
+ const script = `tell application "iTerm2"
40
+ repeat with w in windows
41
+ repeat with t in tabs of w
42
+ repeat with s in sessions of t
43
+ if (tty of s) is "${tty.replace(/"/g, '\\"')}" then return "iterm2"
44
+ end repeat
45
+ end repeat
46
+ end repeat
47
+ end tell
48
+ return ""`;
49
+ const result = (0, child_process_1.execFileSync)("osascript", ["-e", script], {
50
+ timeout: 2000,
51
+ stdio: ["ignore", "pipe", "ignore"],
52
+ encoding: "utf-8",
53
+ }).trim();
54
+ return result === "iterm2" ? "iterm2" : null;
55
+ }
56
+ catch {
57
+ // osascript not installed (non-mac), iTerm2 not running, timeout —
58
+ // all benign. Registration continues with terminal_app=null and the
59
+ // user can patch later or restart with a CLI that doesn't strip env.
60
+ return null;
61
+ }
62
+ }
63
+ function detectTerminalApp(tty) {
33
64
  if (process.env.TMUX)
34
65
  return "tmux";
35
66
  const tp = process.env.TERM_PROGRAM;
@@ -43,6 +74,13 @@ function detectTerminalApp() {
43
74
  return "ghostty";
44
75
  if (tp)
45
76
  return tp.toLowerCase();
77
+ // Env-based detection returned null. Try asking iTerm2 directly if we
78
+ // have a tty — handles CLIs that strip env on MCP child spawn.
79
+ if (tty) {
80
+ const byTty = detectTerminalAppByTty(tty);
81
+ if (byTty)
82
+ return byTty;
83
+ }
46
84
  return null;
47
85
  }
48
86
  function detectPaneId() {
@@ -183,9 +221,10 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
183
221
  const role = args?.role;
184
222
  const description = args?.description || null;
185
223
  const autonomousReply = args?.autonomousReply === undefined ? true : Boolean(args.autonomousReply);
224
+ const tty = detectTty();
186
225
  currentAgentId = db.registerAgent(role, description, process.pid, {
187
- tty: detectTty(),
188
- terminalApp: detectTerminalApp(),
226
+ tty,
227
+ terminalApp: detectTerminalApp(tty),
189
228
  paneId: detectPaneId(),
190
229
  autonomousReply,
191
230
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,wEAAmE;AACnE,wEAAiF;AACjF,iEAG4C;AAC5C,iDAAuD;AACvD,mCAAkC;AAClC,qDAAoD;AAEpD,MAAM,EAAE,GAAG,IAAI,eAAO,EAAE,CAAC;AACzB,IAAI,cAAc,GAAkB,IAAI,CAAC;AACzC,IAAI,WAAW,GAAkB,IAAI,CAAC;AAEtC,8EAA8E;AAC9E,kFAAkF;AAClF,8EAA8E;AAC9E,6DAA6D;AAC7D,SAAS,SAAS;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAA,wBAAQ,EAAC,SAAS,OAAO,CAAC,IAAI,UAAU,EAAE;YACpD,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QACrD,OAAO,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,GAAW;IACzC,kEAAkE;IAClE,uEAAuE;IACvE,wEAAwE;IACxE,wEAAwE;IACxE,8CAA8C;IAC9C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG;;;;gCAIa,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;;;;;cAK1C,CAAC;QACX,MAAM,MAAM,GAAG,IAAA,4BAAY,EAAC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;YACvD,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;YACnC,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,mEAAmE;QACnE,oEAAoE;QACpE,qEAAqE;QACrE,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAkB;IAC3C,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;IACpC,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IACpC,IAAI,EAAE,KAAK,WAAW;QAAE,OAAO,QAAQ,CAAC;IACxC,IAAI,EAAE,KAAK,gBAAgB;QAAE,OAAO,UAAU,CAAC;IAC/C,IAAI,EAAE,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACvC,IAAI,EAAE,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACvC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC;IAChC,sEAAsE;IACtE,+DAA+D;IAC/D,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,KAAK,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY;IACnB,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,SAAS;QACrB,OAAO,CAAC,GAAG,CAAC,gBAAgB;QAC5B,OAAO,CAAC,GAAG,CAAC,YAAY;QACxB,IAAI,CACL,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,IAAI,iBAAM,CACvB,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,EACxC,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAChC,CAAC;AAEF,SAAS,mBAAmB;IAC1B,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,oGAAoG,CACrG,CAAC;IACJ,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,qBAAqB;AACrB,MAAM,CAAC,iBAAiB,CAAC,iCAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAC5D,KAAK,EAAE;QACL;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EACT,0EAA0E;YAC5E,WAAW,EAAE;gBACX,IAAI,EAAE,QAAiB;gBACvB,UAAU,EAAE;oBACV,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,0DAA0D;qBAC7D;oBACD,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,8CAA8C;qBAC5D;oBACD,eAAe,EAAE;wBACf,IAAI,EAAE,SAAS;wBACf,WAAW,EACT,0KAA0K;qBAC7K;iBACF;gBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;aACnB;SACF;QACD;YACE,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,uDAAuD;YACpE,WAAW,EAAE;gBACX,IAAI,EAAE,QAAiB;gBACvB,UAAU,EAAE;oBACV,EAAE,EAAE;wBACF,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,mDAAmD;qBACtD;oBACD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE;oBAC/D,QAAQ,EAAE;wBACR,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC;wBAC/B,WAAW,EAAE,0CAA0C;qBACxD;oBACD,YAAY,EAAE;wBACZ,IAAI,EAAE,SAAS;wBACf,WAAW,EACT,uJAAuJ;qBAC1J;oBACD,eAAe,EAAE;wBACf,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,8JAA8J;qBACjK;iBACF;gBACD,QAAQ,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;aAC5B;SACF;QACD;YACE,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,wCAAwC;YACrD,WAAW,EAAE;gBACX,IAAI,EAAE,QAAiB;gBACvB,UAAU,EAAE;oBACV,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,wCAAwC;qBACtD;oBACD,YAAY,EAAE;wBACZ,IAAI,EAAE,SAAS;wBACf,WAAW,EACT,6FAA6F;qBAChG;iBACF;gBACD,QAAQ,EAAE,CAAC,SAAS,CAAC;aACtB;SACF;QACD;YACE,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,qDAAqD;YAClE,WAAW,EAAE;gBACX,IAAI,EAAE,QAAiB;gBACvB,UAAU,EAAE,EAAE;aACf;SACF;QACD;YACE,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,qDAAqD;YAClE,WAAW,EAAE;gBACX,IAAI,EAAE,QAAiB;gBACvB,UAAU,EAAE,EAAE;aACf;SACF;QACD;YACE,IAAI,EAAE,eAAe;YACrB,WAAW,EACT,mEAAmE;YACrE,WAAW,EAAE;gBACX,IAAI,EAAE,QAAiB;gBACvB,UAAU,EAAE;oBACV,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,sBAAsB;qBACpC;iBACF;gBACD,QAAQ,EAAE,CAAC,SAAS,CAAC;aACtB;SACF;QACD;YACE,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,gCAAgC;YAC7C,WAAW,EAAE;gBACX,IAAI,EAAE,QAAiB;gBACvB,UAAU,EAAE;oBACV,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,0DAA0D;qBAC7D;iBACF;aACF;SACF;KACF;CACF,CAAC,CAAC,CAAC;AAEJ,oBAAoB;AACpB,MAAM,CAAC,iBAAiB,CAAC,gCAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAEjD,IAAI,CAAC;QACH,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,MAAM,IAAI,GAAG,IAAI,EAAE,IAAc,CAAC;gBAClC,MAAM,WAAW,GAAI,IAAI,EAAE,WAAsB,IAAI,IAAI,CAAC;gBAC1D,MAAM,eAAe,GACnB,IAAI,EAAE,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAE7E,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;gBACxB,cAAc,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,EAAE;oBAChE,GAAG;oBACH,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC;oBACnC,MAAM,EAAE,YAAY,EAAE;oBACtB,eAAe;iBAChB,CAAC,CAAC;gBACH,WAAW,GAAG,IAAI,CAAC;gBAEnB,6BAA6B;gBAC7B,WAAW,CAAC,GAAG,EAAE;oBACf,IAAI,cAAc,EAAE,CAAC;wBACnB,IAAI,CAAC;4BACH,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;wBAC/B,CAAC;wBAAC,MAAM,CAAC;4BACP,qCAAqC;wBACvC,CAAC;oBACH,CAAC;gBACH,CAAC,EAAE,KAAK,CAAC,CAAC;gBAEV,MAAM,MAAM,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;gBAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,cAAc,CAAC,CAAC;gBAElE,IAAI,QAAQ,GAAG,kBAAkB,IAAI,UAAU,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC;gBAChF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3B,QAAQ,IAAI,4BAA4B,CAAC;oBACzC,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;wBAC5B,QAAQ,IAAI,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC;oBAChH,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,QAAQ,IAAI,2CAA2C,CAAC;gBAC1D,CAAC;gBAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;YACzD,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;gBACtC,MAAM,EAAE,GAAG,IAAI,EAAE,EAAY,CAAC;gBAC9B,MAAM,OAAO,GAAG,IAAI,EAAE,OAAiB,CAAC;gBACxC,MAAM,QAAQ,GAAI,IAAI,EAAE,QAAmB,IAAI,QAAQ,CAAC;gBACxD,MAAM,YAAY,GAChB,IAAI,EAAE,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACvE,MAAM,eAAe,GACnB,OAAO,IAAI,EAAE,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;gBAE1E,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;oBAC3D,YAAY;oBACZ,eAAe;iBAChB,CAAC,CAAC;gBACH,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,2BAA2B,CAAC;gBAC5D,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,mBAAmB,KAAK,wBAAwB,EAAE,gBAAgB,QAAQ,IAAI,GAAG,EAAE;yBAC1F;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;gBACtC,MAAM,OAAO,GAAG,IAAI,EAAE,OAAiB,CAAC;gBACxC,MAAM,YAAY,GAChB,IAAI,EAAE,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAEvE,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;gBACxD,MAAM,MAAM,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;gBAC9D,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,mBAAmB,MAAM,CAAC,MAAM,kCAAkC;yBACzE;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;gBACtC,MAAM,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBAEvC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC1B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,EAAE,CAAC;gBACtE,CAAC;gBAED,IAAI,QAAQ,GAAG,GAAG,QAAQ,CAAC,MAAM,yBAAyB,CAAC;gBAC3D,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;oBAC3B,MAAM,WAAW,GACf,GAAG,CAAC,QAAQ,KAAK,MAAM;wBACrB,CAAC,CAAC,kBAAkB;wBACpB,CAAC,CAAC,GAAG,CAAC,QAAQ,KAAK,KAAK;4BACtB,CAAC,CAAC,QAAQ;4BACV,CAAC,CAAC,EAAE,CAAC;oBACX,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;oBACvD,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACzD,QAAQ,IAAI,aAAa,IAAI,GAAG,WAAW,GAAG,MAAM,KAAK,GAAG,CAAC,UAAU,UAAU,GAAG,CAAC,OAAO,MAAM,CAAC;gBACrG,CAAC;gBAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;YACzD,CAAC;YAED,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,MAAM,MAAM,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;gBAE9B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACxB,OAAO;wBACL,OAAO,EAAE;4BACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,qCAAqC,EAAE;yBAC9D;qBACF,CAAC;gBACJ,CAAC;gBAED,IAAI,QAAQ,GAAG,GAAG,MAAM,CAAC,MAAM,2BAA2B,CAAC;gBAC3D,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;oBACvB,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,KAAK,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrD,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC9C,QAAQ,IAAI,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;oBAC5F,QAAQ,IAAI,iBAAiB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC,SAAS,MAAM,CAAC;gBACrF,CAAC;gBAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;YACzD,CAAC;YAED,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;gBACtC,MAAM,OAAO,GAAG,IAAI,EAAE,OAAiB,CAAC;gBAExC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAClC,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,2BAA2B,EAAE,CAAC;iBAC/D,CAAC;YACJ,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CACpB,IAAI,CAAC,GAAG,CAAE,IAAI,EAAE,KAAgB,IAAI,EAAE,EAAE,CAAC,CAAC,EAC1C,EAAE,CACH,CAAC;gBACF,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAEtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACzB,OAAO;wBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC;qBAC9D,CAAC;gBACJ,CAAC;gBAED,IAAI,QAAQ,GAAG,mBAAmB,OAAO,CAAC,MAAM,gBAAgB,CAAC;gBACjE,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;oBACxB,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACrD,QAAQ,IAAI,IAAI,CAAC,CAAC,UAAU,KAAK,IAAI,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC;gBAC1D,CAAC;gBAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;YACzD,CAAC;YAED;gBACE,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC;oBAC1D,OAAO,EAAE,IAAI;iBACd,CAAC;QACN,CAAC;IACH,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;YAC1D,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,uBAAuB;AACvB,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,sCAAsC,GAAG,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IAE1E,8EAA8E;IAC9E,6EAA6E;IAC7E,IAAA,iCAAgB,EAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;SACpC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QACZ,IAAI,GAAG;YAAE,OAAO,CAAC,KAAK,CAAC,6BAA6B,GAAG,GAAG,CAAC,CAAC;IAC9D,CAAC,CAAC;SACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AACrB,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;IAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,oBAAoB;AACpB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,KAAK,EAAE,CAAC;IACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,KAAK,EAAE,CAAC;IACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ export interface RecoveryWatcherSettings {
2
+ enabled: boolean;
3
+ intervalSec: number;
4
+ cooldownMin: number;
5
+ escalateAfter: number;
6
+ recoveryMessage: string;
7
+ }
8
+ export declare function readRecoveryWatcherSettings(): RecoveryWatcherSettings;
9
+ export declare function writeRecoveryWatcherSettings(partial: Partial<RecoveryWatcherSettings>): RecoveryWatcherSettings;
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ // Persistent settings for the recovery watcher. Stored as JSON at
3
+ // ~/.claudelink/recovery-watcher.json. Parallel to scheduler-settings.ts.
4
+ //
5
+ // Defaults: enabled=false (opt-in via Command Center), intervalSec=60,
6
+ // cooldownMin=5, escalateAfter=3 (consecutive fires before suppressing
7
+ // further fires and notifying via desktop instead).
8
+ //
9
+ // recoveryMessage is the exact text typed into the agent's terminal when
10
+ // an error pattern is detected and cooldown has passed. Default matches
11
+ // what Jay types by hand today.
12
+ var __importDefault = (this && this.__importDefault) || function (mod) {
13
+ return (mod && mod.__esModule) ? mod : { "default": mod };
14
+ };
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.readRecoveryWatcherSettings = readRecoveryWatcherSettings;
17
+ exports.writeRecoveryWatcherSettings = writeRecoveryWatcherSettings;
18
+ const fs_1 = __importDefault(require("fs"));
19
+ const path_1 = __importDefault(require("path"));
20
+ const os_1 = __importDefault(require("os"));
21
+ const SETTINGS_PATH = path_1.default.join(os_1.default.homedir(), ".claudelink", "recovery-watcher.json");
22
+ const DEFAULTS = {
23
+ enabled: false,
24
+ intervalSec: 60,
25
+ cooldownMin: 5,
26
+ escalateAfter: 3,
27
+ recoveryMessage: "check messages and continue with your current assignment",
28
+ };
29
+ function clampInterval(n) {
30
+ if (Number.isNaN(n))
31
+ return DEFAULTS.intervalSec;
32
+ return Math.max(15, Math.min(600, Math.floor(n)));
33
+ }
34
+ function clampCooldown(n) {
35
+ if (Number.isNaN(n))
36
+ return DEFAULTS.cooldownMin;
37
+ return Math.max(1, Math.min(60, Math.floor(n)));
38
+ }
39
+ function clampEscalate(n) {
40
+ if (Number.isNaN(n))
41
+ return DEFAULTS.escalateAfter;
42
+ return Math.max(1, Math.min(20, Math.floor(n)));
43
+ }
44
+ function readRecoveryWatcherSettings() {
45
+ try {
46
+ const raw = fs_1.default.readFileSync(SETTINGS_PATH, "utf8");
47
+ const parsed = JSON.parse(raw);
48
+ return {
49
+ enabled: Boolean(parsed.enabled),
50
+ intervalSec: clampInterval(Number(parsed.intervalSec)),
51
+ cooldownMin: clampCooldown(Number(parsed.cooldownMin)),
52
+ escalateAfter: clampEscalate(Number(parsed.escalateAfter)),
53
+ recoveryMessage: typeof parsed.recoveryMessage === "string" && parsed.recoveryMessage.length > 0
54
+ ? parsed.recoveryMessage
55
+ : DEFAULTS.recoveryMessage,
56
+ };
57
+ }
58
+ catch {
59
+ return { ...DEFAULTS };
60
+ }
61
+ }
62
+ function writeRecoveryWatcherSettings(partial) {
63
+ const current = readRecoveryWatcherSettings();
64
+ const merged = {
65
+ enabled: partial.enabled !== undefined ? Boolean(partial.enabled) : current.enabled,
66
+ intervalSec: partial.intervalSec !== undefined
67
+ ? clampInterval(Number(partial.intervalSec))
68
+ : current.intervalSec,
69
+ cooldownMin: partial.cooldownMin !== undefined
70
+ ? clampCooldown(Number(partial.cooldownMin))
71
+ : current.cooldownMin,
72
+ escalateAfter: partial.escalateAfter !== undefined
73
+ ? clampEscalate(Number(partial.escalateAfter))
74
+ : current.escalateAfter,
75
+ recoveryMessage: partial.recoveryMessage !== undefined &&
76
+ typeof partial.recoveryMessage === "string" &&
77
+ partial.recoveryMessage.length > 0
78
+ ? partial.recoveryMessage
79
+ : current.recoveryMessage,
80
+ };
81
+ const dir = path_1.default.dirname(SETTINGS_PATH);
82
+ if (!fs_1.default.existsSync(dir))
83
+ fs_1.default.mkdirSync(dir, { recursive: true });
84
+ const tmp = SETTINGS_PATH + ".tmp";
85
+ fs_1.default.writeFileSync(tmp, JSON.stringify(merged, null, 2));
86
+ fs_1.default.renameSync(tmp, SETTINGS_PATH);
87
+ return merged;
88
+ }
89
+ //# sourceMappingURL=recovery-watcher-settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recovery-watcher-settings.js","sourceRoot":"","sources":["../src/recovery-watcher-settings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export interface RecoveryWatcherHandle {
2
+ reschedule: () => void;
3
+ stop: () => void;
4
+ tickNow: () => {
5
+ checked: number;
6
+ fired: number;
7
+ suppressed: number;
8
+ escalated: number;
9
+ };
10
+ }
11
+ export declare function startRecoveryWatcher(): RecoveryWatcherHandle;
@@ -0,0 +1,326 @@
1
+ "use strict";
2
+ // Recovery Watcher — polls each registered agent's terminal scrollback for
3
+ // known API-error signatures (Anthropic rate-limit / overload / 5xx and the
4
+ // Codex/Gemini equivalents). When a NEW occurrence is detected, types a
5
+ // recovery nudge into the terminal via the same two-write keystroke dispatch
6
+ // the auto-nudge scheduler uses.
7
+ //
8
+ // Why this exists: at night, Jay's long-running agents hit Anthropic API
9
+ // rate-limiting and the agent's turn halts mid-flight. The agent can't
10
+ // recover on its own — Claude Code surfaces the error and waits. Jay had
11
+ // been typing "check messages and continue with your current assignment"
12
+ // by hand for each stuck agent. This watcher automates that nudge.
13
+ //
14
+ // State tracking is in-memory: lastErrorSignature + lastFiredAt + consecutiveFires
15
+ // per agent. If the process restarts, we lose history and may re-fire once
16
+ // per known error — acceptable for MVP.
17
+ //
18
+ // Three guards prevent runaway loops:
19
+ // 1. Cooldown (default 5 min): same agent, same error → don't re-fire.
20
+ // 2. Signature de-dup: only fire on a NEW signature (different bytes
21
+ // OR sufficient time has passed). Sitting-in-scrollback errors don't
22
+ // keep re-triggering.
23
+ // 3. Escalate-after (default 3 consecutive fires): if we've nudged 3 times
24
+ // and the error keeps coming back, stop nudging and emit a desktop
25
+ // notification instead. The API is genuinely down; nudging won't help.
26
+ var __importDefault = (this && this.__importDefault) || function (mod) {
27
+ return (mod && mod.__esModule) ? mod : { "default": mod };
28
+ };
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.startRecoveryWatcher = startRecoveryWatcher;
31
+ const path_1 = __importDefault(require("path"));
32
+ const os_1 = __importDefault(require("os"));
33
+ const fs_1 = __importDefault(require("fs"));
34
+ const crypto_1 = __importDefault(require("crypto"));
35
+ const child_process_1 = require("child_process");
36
+ const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
37
+ const scheduler_js_1 = require("./scheduler.js");
38
+ const recovery_watcher_settings_js_1 = require("./recovery-watcher-settings.js");
39
+ const NEXUS_DIR = path_1.default.join(os_1.default.homedir(), ".claudelink");
40
+ const DB_PATH = path_1.default.join(NEXUS_DIR, "nexus.db");
41
+ const LOG_PATH = path_1.default.join(NEXUS_DIR, "recovery-watcher.log");
42
+ // Patterns drawn from observed errors across Claude Code, Codex, Gemini.
43
+ // MVP is hardcoded; later releases can make this configurable per-agent.
44
+ //
45
+ // Design rule: every pattern requires CLI-error context (an "API Error:",
46
+ // "Error:", or distinctive status-line prefix) on the same visible line as
47
+ // the rate-limit/overload keyword. This is what separates real CLI error
48
+ // output from prose that merely DISCUSSES rate-limiting (agent conversations,
49
+ // docs, log inspection). Without this, the watcher false-fires whenever any
50
+ // agent talks about rate-limiting.
51
+ const ERROR_PATTERNS = [
52
+ // Claude Code's full rate-limit error line — distinctive enough to be
53
+ // its own pattern. Still subject to position filter below.
54
+ /API\s*Error:\s*Server is temporarily limiting requests/i,
55
+ // Claude Code other API errors — require "API Error:" prefix in the
56
+ // same line as the keyword.
57
+ /API\s*Error:[^\n]*\brate[ _-]?limit/i,
58
+ /API\s*Error:[^\n]*\boverload/i,
59
+ /API\s*Error:[^\n]*\b(529|503|429)\b/i,
60
+ /API\s*Error:[^\n]*\b(rate_limit_error|overloaded_error)\b/i,
61
+ // OpenAI/Codex CLI shapes — require an "error" prefix in the same line.
62
+ /\bOpenAI\s*API\s*(error|exception):[^\n]*\b(rate_limit|overload)/i,
63
+ /\berror\b[^\n]{0,60}\brate_limit_exceeded\b/i,
64
+ // Bare HTTP status lines (still distinctive because they include the
65
+ // canonical status text, which prose-mentions rarely include verbatim).
66
+ /\b(429|529)\s+Too Many Requests\b/i,
67
+ /\b503\s+Service Unavailable\b/i,
68
+ // Generic CLI-error safety net — "Error" or "Error:" prefix on the
69
+ // same line as the rate-limit token, with a tight intra-line cap.
70
+ /\bError:?\b[^\n]{0,80}\b(rate[ _-]?limited|rate_limit_error|overloaded_error|request was throttled)\b/i,
71
+ ];
72
+ // Capture only the last N characters of scrollback. Errors that paused
73
+ // execution sit at the bottom of the visible buffer. Reading more wastes
74
+ // CPU and increases the false-positive surface.
75
+ const SCROLLBACK_TAIL_CHARS = 1500;
76
+ // Matched error text must be within this many characters of the END of
77
+ // the captured scrollback. When a CLI is genuinely stuck, the error is
78
+ // the LAST thing on screen above the prompt. When an agent is merely
79
+ // discussing an error in conversation, more text follows the mention,
80
+ // pushing it away from the end. This is the key false-positive guard.
81
+ const MAX_DISTANCE_FROM_END = 400;
82
+ function logLine(line) {
83
+ try {
84
+ fs_1.default.appendFileSync(LOG_PATH, `${new Date().toISOString()} ${line}\n`);
85
+ }
86
+ catch {
87
+ // logging never breaks the watcher
88
+ }
89
+ }
90
+ function escapeForAppleScript(s) {
91
+ return s.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
92
+ }
93
+ function isProcessAlive(pid) {
94
+ try {
95
+ process.kill(pid, 0);
96
+ return true;
97
+ }
98
+ catch {
99
+ return false;
100
+ }
101
+ }
102
+ // Capture the terminal's visible scrollback for the given agent. Returns
103
+ // the last SCROLLBACK_TAIL_CHARS of the buffer, or null on failure.
104
+ function captureScrollback(c) {
105
+ const app = (c.terminal_app || "").toLowerCase();
106
+ try {
107
+ if (app === "iterm2") {
108
+ const script = `tell application "iTerm2"
109
+ repeat with w in windows
110
+ repeat with t in tabs of w
111
+ repeat with s in sessions of t
112
+ if (tty of s) is "${escapeForAppleScript(c.tty)}" then return contents of s
113
+ end repeat
114
+ end repeat
115
+ end repeat
116
+ end tell
117
+ return ""`;
118
+ const out = (0, child_process_1.execFileSync)("osascript", ["-e", script], {
119
+ timeout: 3000,
120
+ stdio: ["ignore", "pipe", "ignore"],
121
+ encoding: "utf-8",
122
+ });
123
+ return out.length > SCROLLBACK_TAIL_CHARS
124
+ ? out.slice(-SCROLLBACK_TAIL_CHARS)
125
+ : out;
126
+ }
127
+ if (app === "tmux") {
128
+ if (!c.pane_id)
129
+ return null;
130
+ const out = (0, child_process_1.execFileSync)("tmux", ["capture-pane", "-t", c.pane_id, "-p", "-S", "-50"], {
131
+ timeout: 2000,
132
+ stdio: ["ignore", "pipe", "ignore"],
133
+ encoding: "utf-8",
134
+ });
135
+ return out.length > SCROLLBACK_TAIL_CHARS
136
+ ? out.slice(-SCROLLBACK_TAIL_CHARS)
137
+ : out;
138
+ }
139
+ return null;
140
+ }
141
+ catch {
142
+ return null;
143
+ }
144
+ }
145
+ // Hash the matched error context to a short signature. We hash the matched
146
+ // substring plus a small surrounding window so de-dup compares semantic
147
+ // "same error" rather than identical byte-for-byte scrollback (which would
148
+ // always differ as the terminal repaints).
149
+ function computeSignature(scrollback, match) {
150
+ const start = Math.max(0, (match.index ?? 0) - 32);
151
+ const end = Math.min(scrollback.length, (match.index ?? 0) + match[0].length + 32);
152
+ const window = scrollback.slice(start, end);
153
+ return crypto_1.default.createHash("sha1").update(window).digest("hex").slice(0, 16);
154
+ }
155
+ // Match scrollback against the known patterns. Returns the first match's
156
+ // signature, or null if no pattern matched OR the match is too far from
157
+ // the end of the buffer (likely scrolled-up or mid-conversation prose).
158
+ function detectError(scrollback) {
159
+ for (const re of ERROR_PATTERNS) {
160
+ const m = scrollback.match(re);
161
+ if (!m)
162
+ continue;
163
+ const matchEnd = (m.index ?? 0) + m[0].length;
164
+ const distanceFromEnd = scrollback.length - matchEnd;
165
+ if (distanceFromEnd > MAX_DISTANCE_FROM_END) {
166
+ // Match exists but is too far from the bottom — almost certainly
167
+ // historical scrollback or mid-conversation prose, not the current
168
+ // stuck state. Skip and try the next pattern.
169
+ continue;
170
+ }
171
+ return { pattern: re, signature: computeSignature(scrollback, m) };
172
+ }
173
+ return null;
174
+ }
175
+ function fireDesktopNotification(role, message) {
176
+ try {
177
+ const title = "ClaudeLink Recovery Watcher";
178
+ const subtitle = role;
179
+ const script = `display notification "${escapeForAppleScript(message)}" with title "${escapeForAppleScript(title)}" subtitle "${escapeForAppleScript(subtitle)}"`;
180
+ (0, child_process_1.execFileSync)("osascript", ["-e", script], {
181
+ timeout: 2000,
182
+ stdio: ["ignore", "ignore", "ignore"],
183
+ });
184
+ }
185
+ catch {
186
+ // notification is best-effort
187
+ }
188
+ }
189
+ function selectCandidates(db) {
190
+ // Watch live agents with a known TTY and terminal_app. Unlike the
191
+ // auto-nudge scheduler, we don't filter on autonomous_reply (a stuck
192
+ // advisor still benefits from a recovery nudge) and we don't require
193
+ // unread mail (the recovery message itself is the trigger, not an inbox).
194
+ const rows = db
195
+ .prepare(`SELECT id, role, tty, terminal_app, pane_id, pid
196
+ FROM agents
197
+ WHERE tty IS NOT NULL
198
+ AND terminal_app IS NOT NULL`)
199
+ .all();
200
+ return rows.filter((c) => isProcessAlive(c.pid));
201
+ }
202
+ function startRecoveryWatcher() {
203
+ let db = null;
204
+ let timer = null;
205
+ const state = new Map();
206
+ const openDb = () => {
207
+ if (!db)
208
+ db = new better_sqlite3_1.default(DB_PATH, { readonly: true });
209
+ return db;
210
+ };
211
+ const getState = (id) => {
212
+ let s = state.get(id);
213
+ if (!s) {
214
+ s = { lastSignature: null, lastFiredAt: 0, consecutiveFires: 0, escalated: false };
215
+ state.set(id, s);
216
+ }
217
+ return s;
218
+ };
219
+ const tick = () => {
220
+ const summary = { checked: 0, fired: 0, suppressed: 0, escalated: 0 };
221
+ const settings = (0, recovery_watcher_settings_js_1.readRecoveryWatcherSettings)();
222
+ if (!settings.enabled)
223
+ return summary;
224
+ let candidates;
225
+ try {
226
+ candidates = selectCandidates(openDb());
227
+ }
228
+ catch (e) {
229
+ logLine(`tick-error: ${e?.message ?? String(e)}`);
230
+ return summary;
231
+ }
232
+ const now = Date.now();
233
+ const cooldownMs = settings.cooldownMin * 60 * 1000;
234
+ for (const c of candidates) {
235
+ summary.checked++;
236
+ const scrollback = captureScrollback(c);
237
+ if (scrollback === null)
238
+ continue;
239
+ const detected = detectError(scrollback);
240
+ if (!detected) {
241
+ // No error visible: reset the consecutive-fire counter so the agent
242
+ // can be nudged again the next time something goes wrong.
243
+ const s = getState(c.id);
244
+ if (s.consecutiveFires > 0 || s.escalated) {
245
+ logLine(`reset role=${c.role} (no error visible)`);
246
+ }
247
+ s.consecutiveFires = 0;
248
+ s.escalated = false;
249
+ s.lastSignature = null;
250
+ continue;
251
+ }
252
+ const s = getState(c.id);
253
+ // De-dup: same signature within cooldown → suppress silently.
254
+ if (s.lastSignature === detected.signature && now - s.lastFiredAt < cooldownMs) {
255
+ summary.suppressed++;
256
+ continue;
257
+ }
258
+ // Escalation: too many consecutive fires without resolution → stop
259
+ // nudging and notify the user instead.
260
+ if (s.consecutiveFires >= settings.escalateAfter) {
261
+ if (!s.escalated) {
262
+ fireDesktopNotification(c.role, `Agent ${c.role} appears API-blocked after ${s.consecutiveFires} recovery attempts. Manual intervention may be needed.`);
263
+ logLine(`escalated role=${c.role} consecutive_fires=${s.consecutiveFires} signature=${detected.signature}`);
264
+ s.escalated = true;
265
+ summary.escalated++;
266
+ }
267
+ else {
268
+ summary.suppressed++;
269
+ }
270
+ continue;
271
+ }
272
+ // Fire the recovery nudge.
273
+ const result = (0, scheduler_js_1.injectKeystroke)(c, settings.recoveryMessage);
274
+ if (result === "ok") {
275
+ summary.fired++;
276
+ s.lastSignature = detected.signature;
277
+ s.lastFiredAt = now;
278
+ s.consecutiveFires++;
279
+ logLine(`fired role=${c.role} tty=${c.tty} terminal_app=${c.terminal_app} signature=${detected.signature} consecutive=${s.consecutiveFires} pattern=${detected.pattern.source}`);
280
+ }
281
+ else {
282
+ logLine(`fire-failed role=${c.role} result=${result} pattern=${detected.pattern.source}`);
283
+ }
284
+ }
285
+ return summary;
286
+ };
287
+ const reschedule = () => {
288
+ const settings = (0, recovery_watcher_settings_js_1.readRecoveryWatcherSettings)();
289
+ if (timer) {
290
+ clearInterval(timer);
291
+ timer = null;
292
+ }
293
+ if (!settings.enabled) {
294
+ logLine(`reschedule: disabled`);
295
+ return;
296
+ }
297
+ const ms = settings.intervalSec * 1000;
298
+ timer = setInterval(() => {
299
+ try {
300
+ tick();
301
+ }
302
+ catch (e) {
303
+ logLine(`tick-uncaught: ${e?.message ?? String(e)}`);
304
+ }
305
+ }, ms);
306
+ logLine(`reschedule: enabled, intervalSec=${settings.intervalSec}, cooldownMin=${settings.cooldownMin}, escalateAfter=${settings.escalateAfter}`);
307
+ };
308
+ const stop = () => {
309
+ if (timer) {
310
+ clearInterval(timer);
311
+ timer = null;
312
+ }
313
+ if (db) {
314
+ try {
315
+ db.close();
316
+ }
317
+ catch {
318
+ // ignore
319
+ }
320
+ db = null;
321
+ }
322
+ };
323
+ reschedule();
324
+ return { reschedule, stop, tickNow: tick };
325
+ }
326
+ //# sourceMappingURL=recovery-watcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recovery-watcher.js","sourceRoot":"","sources":["../src/recovery-watcher.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,12 @@
1
+ export interface NudgeCandidate {
2
+ id: string;
3
+ role: string;
4
+ tty: string;
5
+ terminal_app: string | null;
6
+ pane_id: string | null;
7
+ pid: number;
8
+ }
9
+ export declare function injectKeystroke(c: NudgeCandidate, text: string): "ok" | "skip" | "fail";
1
10
  export interface SchedulerHandle {
2
11
  reschedule: () => void;
3
12
  stop: () => void;
package/dist/scheduler.js CHANGED
@@ -18,6 +18,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
18
18
  return (mod && mod.__esModule) ? mod : { "default": mod };
19
19
  };
20
20
  Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.injectKeystroke = injectKeystroke;
21
22
  exports.startScheduler = startScheduler;
22
23
  const path_1 = __importDefault(require("path"));
23
24
  const os_1 = __importDefault(require("os"));
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"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"}
package/dist/ui-server.js CHANGED
@@ -11,6 +11,8 @@ const fs_1 = __importDefault(require("fs"));
11
11
  const child_process_1 = require("child_process");
12
12
  const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
13
13
  const scheduler_js_1 = require("./scheduler.js");
14
+ const recovery_watcher_js_1 = require("./recovery-watcher.js");
15
+ const recovery_watcher_settings_js_1 = require("./recovery-watcher-settings.js");
14
16
  const scheduler_settings_js_1 = require("./scheduler-settings.js");
15
17
  const NEXUS_DIR = path_1.default.join(os_1.default.homedir(), ".claudelink");
16
18
  const DB_PATH = path_1.default.join(NEXUS_DIR, "nexus.db");
@@ -358,6 +360,40 @@ const HTML = String.raw `<!doctype html>
358
360
  </div>
359
361
  </section>
360
362
 
363
+ <section class="panel full">
364
+ <h2>Recovery Watcher</h2>
365
+ <div class="body">
366
+ <div class="nudge-controls">
367
+ <label class="nudge-toggle">
368
+ <input type="checkbox" id="rw-enabled" />
369
+ <span id="rw-enabled-label">Off</span>
370
+ </label>
371
+ <label class="nudge-interval">
372
+ Poll every:
373
+ <input type="number" id="rw-interval" min="15" max="600" step="15" />
374
+ <span>sec</span>
375
+ </label>
376
+ <label class="nudge-interval">
377
+ Cooldown:
378
+ <input type="number" id="rw-cooldown" min="1" max="60" step="1" />
379
+ <span>min</span>
380
+ </label>
381
+ <label class="nudge-interval">
382
+ Escalate after:
383
+ <input type="number" id="rw-escalate" min="1" max="20" step="1" />
384
+ <span>fires</span>
385
+ </label>
386
+ <span id="rw-status" class="nudge-status"></span>
387
+ </div>
388
+ <p class="nudge-hint">
389
+ Watches each agent's terminal scrollback for API rate-limit and overload errors. On a NEW detection, types your recovery message into that terminal so the agent can resume. After N consecutive fires the watcher escalates to a desktop notification instead — if the API is genuinely down, nudging won't help.
390
+ </p>
391
+ <p class="nudge-hint">
392
+ Recovery message: <span class="mono" id="rw-message">—</span>
393
+ </p>
394
+ </div>
395
+ </section>
396
+
361
397
  <section class="panel full">
362
398
  <h2>Recent messages <span class="count" id="msg-count">0</span></h2>
363
399
  <div class="body" id="msg-body"></div>
@@ -638,11 +674,53 @@ async function saveNudge() {
638
674
  $("nudge-enabled").addEventListener("change", saveNudge);
639
675
  $("nudge-interval").addEventListener("change", saveNudge);
640
676
  loadNudge();
677
+
678
+ // --- Recovery Watcher controls ---
679
+ async function loadRecoveryWatcher() {
680
+ try {
681
+ const s = await api("/api/recovery-watcher", "GET");
682
+ $("rw-enabled").checked = !!s.enabled;
683
+ $("rw-enabled-label").textContent = s.enabled ? "On" : "Off";
684
+ $("rw-interval").value = s.intervalSec;
685
+ $("rw-cooldown").value = s.cooldownMin;
686
+ $("rw-escalate").value = s.escalateAfter;
687
+ $("rw-message").textContent = s.recoveryMessage;
688
+ } catch (e) {
689
+ if (!e.disconnected) toast("Failed to load recovery-watcher settings: " + e.message, "error");
690
+ }
691
+ }
692
+ async function saveRecoveryWatcher() {
693
+ const enabled = $("rw-enabled").checked;
694
+ const intervalSec = Math.max(15, Math.min(600, parseInt($("rw-interval").value, 10) || 60));
695
+ const cooldownMin = Math.max(1, Math.min(60, parseInt($("rw-cooldown").value, 10) || 5));
696
+ const escalateAfter = Math.max(1, Math.min(20, parseInt($("rw-escalate").value, 10) || 3));
697
+ $("rw-interval").value = intervalSec;
698
+ $("rw-cooldown").value = cooldownMin;
699
+ $("rw-escalate").value = escalateAfter;
700
+ try {
701
+ const s = await api("/api/recovery-watcher", "POST", {
702
+ enabled, intervalSec, cooldownMin, escalateAfter,
703
+ });
704
+ $("rw-enabled-label").textContent = s.enabled ? "On" : "Off";
705
+ const status = $("rw-status");
706
+ status.textContent = "saved";
707
+ status.classList.add("show");
708
+ setTimeout(() => status.classList.remove("show"), 1500);
709
+ } catch (e) {
710
+ toast("Failed to save: " + e.message, "error");
711
+ }
712
+ }
713
+ $("rw-enabled").addEventListener("change", saveRecoveryWatcher);
714
+ $("rw-interval").addEventListener("change", saveRecoveryWatcher);
715
+ $("rw-cooldown").addEventListener("change", saveRecoveryWatcher);
716
+ $("rw-escalate").addEventListener("change", saveRecoveryWatcher);
717
+ loadRecoveryWatcher();
641
718
  </script>
642
719
  </body>
643
720
  </html>`;
644
721
  function startUIServer(port = 7878) {
645
722
  let schedulerHandle = null;
723
+ let recoveryWatcherHandle = null;
646
724
  const server = http_1.default.createServer((req, res) => {
647
725
  const send = (status, body, contentType = "application/json") => {
648
726
  res.statusCode = status;
@@ -734,6 +812,27 @@ function startUIServer(port = 7878) {
734
812
  req.on("error", (e) => send(400, { error: e.message }));
735
813
  return;
736
814
  }
815
+ if (req.method === "GET" && p === "/api/recovery-watcher") {
816
+ return send(200, (0, recovery_watcher_settings_js_1.readRecoveryWatcherSettings)());
817
+ }
818
+ if (req.method === "POST" && p === "/api/recovery-watcher") {
819
+ let body = "";
820
+ req.on("data", (chunk) => { body += chunk; });
821
+ req.on("end", () => {
822
+ try {
823
+ const parsed = body ? JSON.parse(body) : {};
824
+ const next = (0, recovery_watcher_settings_js_1.writeRecoveryWatcherSettings)(parsed);
825
+ if (recoveryWatcherHandle)
826
+ recoveryWatcherHandle.reschedule();
827
+ send(200, next);
828
+ }
829
+ catch (e) {
830
+ send(400, { error: e.message });
831
+ }
832
+ });
833
+ req.on("error", (e) => send(400, { error: e.message }));
834
+ return;
835
+ }
737
836
  send(404, { error: "not found" });
738
837
  }
739
838
  catch (e) {
@@ -743,6 +842,7 @@ function startUIServer(port = 7878) {
743
842
  server.listen(port, "127.0.0.1");
744
843
  const stopNotifier = startMessageNotifier();
745
844
  schedulerHandle = (0, scheduler_js_1.startScheduler)();
845
+ recoveryWatcherHandle = (0, recovery_watcher_js_1.startRecoveryWatcher)();
746
846
  const writeLock = () => {
747
847
  try {
748
848
  fs_1.default.writeFileSync(LOCK_PATH, JSON.stringify({ pid: process.pid, port, startedAt: new Date().toISOString() }), { mode: 0o600 });
@@ -762,6 +862,8 @@ function startUIServer(port = 7878) {
762
862
  stopNotifier();
763
863
  if (schedulerHandle)
764
864
  schedulerHandle.stop();
865
+ if (recoveryWatcherHandle)
866
+ recoveryWatcherHandle.stop();
765
867
  cleanup();
766
868
  };
767
869
  process.on("SIGTERM", () => { stopAll(); process.exit(0); });
@@ -1 +1 @@
1
- {"version":3,"file":"ui-server.js","sourceRoot":"","sources":["../src/ui-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui-server.js","sourceRoot":"","sources":["../src/ui-server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claudelink",
3
- "version": "1.3.1",
3
+ "version": "1.4.0",
4
4
  "description": "The hub where your AI agents connect. Multi-terminal Claude Code agent communication via MCP.",
5
5
  "main": "./dist/index.js",
6
6
  "bin": {
@@ -36,11 +36,11 @@
36
36
  "license": "MIT",
37
37
  "repository": {
38
38
  "type": "git",
39
- "url": "git+https://github.com/jaysidd/claudelink.git"
39
+ "url": "git+https://github.com/RBJGlobal/claudelink.git"
40
40
  },
41
- "homepage": "https://github.com/jaysidd/claudelink",
41
+ "homepage": "https://github.com/RBJGlobal/claudelink",
42
42
  "bugs": {
43
- "url": "https://github.com/jaysidd/claudelink/issues"
43
+ "url": "https://github.com/RBJGlobal/claudelink/issues"
44
44
  },
45
45
  "engines": {
46
46
  "node": ">=18.0.0"