cli-jaw 2.2.19 → 2.2.20

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 (95) hide show
  1. package/README.md +94 -3
  2. package/dist/server.js +11 -0
  3. package/dist/server.js.map +1 -1
  4. package/dist/src/agent/spawn/process-kill.js +96 -2
  5. package/dist/src/agent/spawn/process-kill.js.map +1 -1
  6. package/dist/src/agent/spawn.js +34 -65
  7. package/dist/src/agent/spawn.js.map +1 -1
  8. package/dist/src/bgtask/runner.js +26 -21
  9. package/dist/src/bgtask/runner.js.map +1 -1
  10. package/dist/src/cli/acp-client.js +11 -5
  11. package/dist/src/cli/acp-client.js.map +1 -1
  12. package/dist/src/cli/employee-handler.js +3 -2
  13. package/dist/src/cli/employee-handler.js.map +1 -1
  14. package/dist/src/code-mode/acp-host.js +22 -10
  15. package/dist/src/code-mode/acp-host.js.map +1 -1
  16. package/dist/src/core/config.js +14 -0
  17. package/dist/src/core/config.js.map +1 -1
  18. package/dist/src/core/db.js +16 -0
  19. package/dist/src/core/db.js.map +1 -1
  20. package/dist/src/core/employees.js +22 -4
  21. package/dist/src/core/employees.js.map +1 -1
  22. package/dist/src/core/windows-shell.js +63 -0
  23. package/dist/src/core/windows-shell.js.map +1 -0
  24. package/dist/src/discord/bot.js +199 -147
  25. package/dist/src/discord/bot.js.map +1 -1
  26. package/dist/src/discord/gateway-supervisor.js +303 -0
  27. package/dist/src/discord/gateway-supervisor.js.map +1 -0
  28. package/dist/src/discord/rest-scheduler.js +448 -0
  29. package/dist/src/discord/rest-scheduler.js.map +1 -0
  30. package/dist/src/discord/send-only-client.js +59 -43
  31. package/dist/src/discord/send-only-client.js.map +1 -1
  32. package/dist/src/manager/lifecycle.js +7 -2
  33. package/dist/src/manager/lifecycle.js.map +1 -1
  34. package/dist/src/manager/notes/capabilities.js +9 -7
  35. package/dist/src/manager/notes/capabilities.js.map +1 -1
  36. package/dist/src/memory/bootstrap.js +5 -1
  37. package/dist/src/memory/bootstrap.js.map +1 -1
  38. package/dist/src/memory/host-toolchain.js +156 -0
  39. package/dist/src/memory/host-toolchain.js.map +1 -0
  40. package/dist/src/messaging/channel-capabilities.js +30 -0
  41. package/dist/src/messaging/channel-capabilities.js.map +1 -0
  42. package/dist/src/messaging/delivery-outcome.js +73 -0
  43. package/dist/src/messaging/delivery-outcome.js.map +1 -0
  44. package/dist/src/messaging/draft-stream.js +154 -0
  45. package/dist/src/messaging/draft-stream.js.map +1 -0
  46. package/dist/src/messaging/runtime.js +3 -9
  47. package/dist/src/messaging/runtime.js.map +1 -1
  48. package/dist/src/messaging/send.js +40 -8
  49. package/dist/src/messaging/send.js.map +1 -1
  50. package/dist/src/messaging/types.js +22 -1
  51. package/dist/src/messaging/types.js.map +1 -1
  52. package/dist/src/notes/search.js +6 -4
  53. package/dist/src/notes/search.js.map +1 -1
  54. package/dist/src/prompt/builder.js +110 -6
  55. package/dist/src/prompt/builder.js.map +1 -1
  56. package/dist/src/prompt/conversation-context.js +23 -0
  57. package/dist/src/prompt/conversation-context.js.map +1 -0
  58. package/dist/src/prompt/templates/a1-system.md +28 -12
  59. package/dist/src/prompt/templates/control-system.md +19 -6
  60. package/dist/src/prompt/templates/employee.md +16 -3
  61. package/dist/src/security/path-guards.js +124 -27
  62. package/dist/src/security/path-guards.js.map +1 -1
  63. package/dist/src/slack/api.js +38 -5
  64. package/dist/src/slack/api.js.map +1 -1
  65. package/dist/src/slack/bot.js +214 -35
  66. package/dist/src/slack/bot.js.map +1 -1
  67. package/dist/src/slack/context.js +192 -0
  68. package/dist/src/slack/context.js.map +1 -0
  69. package/dist/src/slack/conversation.js +275 -0
  70. package/dist/src/slack/conversation.js.map +1 -0
  71. package/dist/src/slack/enrichment-cache.js +334 -0
  72. package/dist/src/slack/enrichment-cache.js.map +1 -0
  73. package/dist/src/slack/history.js +47 -8
  74. package/dist/src/slack/history.js.map +1 -1
  75. package/dist/src/slack/identity.js +99 -190
  76. package/dist/src/slack/identity.js.map +1 -1
  77. package/dist/src/slack/ingress.js +78 -2
  78. package/dist/src/slack/ingress.js.map +1 -1
  79. package/dist/src/slack/progress.js +39 -51
  80. package/dist/src/slack/progress.js.map +1 -1
  81. package/dist/src/slack/thread-tracker.js +78 -0
  82. package/dist/src/slack/thread-tracker.js.map +1 -1
  83. package/dist/src/telegram/bot.js +105 -56
  84. package/dist/src/telegram/bot.js.map +1 -1
  85. package/dist/src/telegram/update-offset.js +152 -0
  86. package/dist/src/telegram/update-offset.js.map +1 -0
  87. package/package.json +1 -1
  88. package/public/dist/assets/Agent-C5EvX-_v.js +1 -0
  89. package/public/dist/assets/{manager-Bjuh1jpq.js → manager-CP-Au860.js} +1 -1
  90. package/public/dist/manager/index.html +1 -1
  91. package/public/manager/src/settings/cli-status-polling.ts +84 -0
  92. package/public/manager/src/settings/pages/Agent.tsx +84 -5
  93. package/scripts/install-officecli.ps1 +38 -2
  94. package/scripts/install.ps1 +1 -1
  95. package/public/dist/assets/Agent-nMPZsMfN.js +0 -1
package/README.md CHANGED
@@ -108,6 +108,97 @@ wsl.exe -d Ubuntu -- bash -lc "jaw dashboard"
108
108
 
109
109
  </details>
110
110
 
111
+ <details>
112
+ <summary><b>Native Windows (PowerShell beta)</b> — detached server logs</summary>
113
+
114
+ `jaw serve` writes to the stdout and stderr streams it inherits. It does not
115
+ create or open `serve.out.log`, and native Windows does not have a registered
116
+ `jaw service` logging backend. PowerShell's
117
+ `Start-Process -RedirectStandardOutput/-RedirectStandardError` creates or
118
+ truncates its target files on every launch.
119
+
120
+ Run the redirection inside a child PowerShell process instead. This example
121
+ appends operator-owned logs under `<JAW_HOME>\logs`:
122
+
123
+ ```powershell
124
+ $jawHome = 'C:\jaw\worker-a'
125
+ $port = 3458
126
+ $logDir = Join-Path $jawHome 'logs'
127
+ $outLog = Join-Path $logDir 'serve.out.log'
128
+ $errLog = Join-Path $logDir 'serve.err.log'
129
+ New-Item -ItemType Directory -Force -Path $logDir -ErrorAction Stop | Out-Null
130
+ foreach ($path in @($outLog, $errLog)) {
131
+ # OpenOrCreate preserves existing content while proving that the child can append.
132
+ $probe = [IO.File]::Open($path, 'OpenOrCreate', 'Write', 'ReadWrite')
133
+ $probe.Dispose()
134
+ }
135
+
136
+ $jaw = (Get-Command jaw.cmd -ErrorAction Stop).Source
137
+ $childCommand = "& '$jaw' --home '$jawHome' serve --port $port --no-open 1>> '$outLog' 2>> '$errLog'"
138
+ $encoded = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($childCommand))
139
+ Start-Process -FilePath powershell.exe -ArgumentList '-NoProfile', '-EncodedCommand', $encoded -WindowStyle Hidden | Out-Null
140
+ ```
141
+
142
+ Read each stream from a separate PowerShell terminal (`Get-Content -Wait`
143
+ occupies its terminal). These commands use explicit paths because variables
144
+ from the launch terminal are not available in a new PowerShell session:
145
+
146
+ ```powershell
147
+ # Terminal 1
148
+ Get-Content -LiteralPath 'C:\jaw\worker-a\logs\serve.out.log' -Tail 100 -Wait
149
+
150
+ # Terminal 2
151
+ Get-Content -LiteralPath 'C:\jaw\worker-a\logs\serve.err.log' -Tail 100 -Wait
152
+ ```
153
+
154
+ Lifecycle commands are home-scoped and verify `<JAW_HOME>\jaw.pid.json`
155
+ before signalling:
156
+
157
+ ```powershell
158
+ & $jaw --home $jawHome service stop --port $port
159
+ & $jaw --home $jawHome service restart --port $port
160
+ ```
161
+
162
+ A standalone `service restart` safely relaunches the instance detached, but
163
+ cannot recreate the operator's file redirection. To preserve file capture,
164
+ `stop`, optionally rotate the closed logs, and run the launch block again:
165
+
166
+ ```powershell
167
+ $pidFile = Join-Path $jawHome 'jaw.pid.json'
168
+ $serverProcess = $null
169
+ if (Test-Path -LiteralPath $pidFile -PathType Leaf) {
170
+ $record = Get-Content -LiteralPath $pidFile -Raw -ErrorAction Stop | ConvertFrom-Json
171
+ $serverProcess = Get-Process -Id ([int]$record.pid) -ErrorAction SilentlyContinue
172
+ }
173
+
174
+ & $jaw --home $jawHome service stop --port $port
175
+ if ($LASTEXITCODE -ne 0) {
176
+ throw "jaw service stop failed with exit code $LASTEXITCODE"
177
+ }
178
+ if ($serverProcess) {
179
+ try {
180
+ if (-not $serverProcess.WaitForExit(5000)) {
181
+ throw "jaw serve pid $($serverProcess.Id) did not exit within 5000ms"
182
+ }
183
+ } finally {
184
+ $serverProcess.Dispose()
185
+ }
186
+ }
187
+
188
+ $stamp = Get-Date -Format 'yyyyMMdd-HHmmss'
189
+ foreach ($path in @($outLog, $errLog)) {
190
+ if (Test-Path -LiteralPath $path) {
191
+ Move-Item -LiteralPath $path -Destination "$path.$stamp" -ErrorAction Stop
192
+ }
193
+ }
194
+ # Run the Start-Process launch block above again.
195
+ ```
196
+
197
+ Do not use `Get-Process node | Stop-Process`; it can terminate unrelated
198
+ cli-jaw instances and AI runtime processes.
199
+
200
+ </details>
201
+
111
202
  <details>
112
203
  <summary><b>Fresh-machine evidence</b> — maintainer release check</summary>
113
204
 
@@ -485,7 +576,7 @@ jaw skill list # see what's available
485
576
  | **Web-AI vendors** | `jaw browser web-ai --vendor chatgpt\|gemini\|grok` with session lifecycle, diagnostics, source-audit/answer-artifact support, and ChatGPT code-mode zip recovery |
486
577
  | **Diagram Skill** | Generate SVG diagrams and interactive visualizations, rendered inline in chat |
487
578
 
488
- Computer Use lets you control any macOS app — Finder, Safari, System Settings, Xcode — through natural language. Point it at your localhost dev server in Safari and you get a full visual testing loop.
579
+ Computer Use lets you control desktop apps — Finder, Safari, System Settings, Xcode on macOS; any window on Windows — through natural language. Point it at your localhost dev server in a browser and you get a full visual testing loop. The two hosts expose different APIs (macOS is app-scoped, Windows is window-scoped), and the `desktop-control` skill routes between them.
489
580
 
490
581
  ---
491
582
 
@@ -514,7 +605,7 @@ Same capabilities as Telegram — text, files, commands. Channel/thread routing,
514
605
 
515
606
  ### Slack
516
607
 
517
- Socket Mode bot with the same shared command catalog — mentions, DMs, slash commands, file/image relay, thread replies.
608
+ Socket Mode bot with the same shared command catalog — mentions, DMs, slash commands, file/image relay, thread replies. Each Slack-triggered agent turn receives the current conversation ID and parent thread timestamp explicitly, so history/member lookups and targeted replies do not depend on parsing an internal session label or enabling multi-session.
518
609
 
519
610
  <details>
520
611
  <summary>Setup (guided wizard)</summary>
@@ -690,7 +781,7 @@ Architecture details: [ARCHITECTURE.md](docs/ARCHITECTURE.md) · Pre-prompt cont
690
781
  | Browser commands fail | Install Chrome/Chromium. Run `jaw browser start` first |
691
782
  | Employee dispatch hangs | Run `jaw employee list`, ensure the employee CLI is authenticated (`jaw doctor`), then retry with `jaw dispatch --watch` |
692
783
  | Employee dispatch returns non-JSON or HTML | The server may be stale or missing the route. Run `npm run build` or restart the manager/dashboard process. |
693
- | Computer Use not working | macOS only. Codex CLI required. Check Automation permission in System Settings |
784
+ | Computer Use not working | macOS or Windows; Codex CLI required. macOS: check Automation permission in System Settings. Windows: run calls inside `node_repl` and keep the Codex desktop app running in the logged-on session — an empty `list_windows()` means you are not on the pipe, not that no windows are open |
694
785
 
695
786
  ---
696
787
 
package/dist/server.js CHANGED
@@ -59,6 +59,7 @@ import { initBossToken } from './src/core/boss-auth.js';
59
59
  import { createRateLimiter, createRateLimitMiddleware } from './src/core/rate-limit.js';
60
60
  import * as browser from './src/browser/index.js';
61
61
  import { ensureMemoryRuntimeReady, hasSoulFile } from './src/memory/runtime.js';
62
+ import { refreshHostToolchain } from './src/memory/host-toolchain.js';
62
63
  import { loadLocales } from './src/core/i18n.js';
63
64
  import { PROMPTS_DIR, DB_PATH, JAW_HOME, settings, loadSettings, saveSettings, ensureDirs, runMigration, TOKEN_PATH, APP_VERSION, } from './src/core/config.js';
64
65
  import { clearPidfileIfOurs, defaultLifecycleDeps, processStartedAt, writePidfile } from './src/core/instance-lifecycle.js';
@@ -153,6 +154,16 @@ try {
153
154
  catch (e) {
154
155
  console.warn('[jaw:memory-init]', e.message);
155
156
  }
157
+ // #299: resolve the host toolchain ONCE per start, before the first AGENTS.md
158
+ // is generated below. Not inside the prompt builder — regenerateB() runs on
159
+ // every agent spawn, and probing there would put subprocess lookups in a hot
160
+ // path. A failed scan keeps whatever the previous run learned.
161
+ try {
162
+ refreshHostToolchain();
163
+ }
164
+ catch (e) {
165
+ console.warn('[jaw:toolchain]', e.message);
166
+ }
156
167
  // Phase 3.1: safe → auto 강제 마이그레이션 (기존 사용자 대응)
157
168
  if (settings["permissions"] === 'safe') {
158
169
  settings["permissions"] = 'auto';
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../server.ts"],"names":[],"mappings":"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"}
@@ -46,15 +46,109 @@ export function hasChildExited(child) {
46
46
  * `killProcessTree` walks `pgrep -P` it would take an unrelated process tree
47
47
  * down with it.
48
48
  */
49
- export function killProcessTreeIfAlive(child, pid) {
49
+ export function killProcessTreeIfAlive(child, pid, terminateTree = killProcessTree) {
50
50
  if (hasChildExited(child))
51
51
  return;
52
52
  const target = pid ?? child?.pid;
53
53
  if (!target)
54
54
  return;
55
55
  try {
56
- killProcessTree(target, 'SIGKILL');
56
+ terminateTree(target, 'SIGKILL');
57
57
  }
58
58
  catch { /* already dead */ }
59
59
  }
60
+ function defaultPolicy(reason) {
61
+ return {
62
+ initialSignal: 'SIGTERM',
63
+ // Preserves the existing generic watchdog grace in spawn.ts. Owners with
64
+ // stricter semantics (bgtask's stall kill) pass their own policy.
65
+ graceMs: reason === 'stall' ? 5_000 : 2_000,
66
+ };
67
+ }
68
+ /**
69
+ * Lifetime ownership for one spawned child.
70
+ *
71
+ * Composition over the helpers above, not a second tree algorithm. The problem
72
+ * it solves is that termination logic was duplicated across timeout, cancel,
73
+ * shutdown, and startup-failure paths, so each owner re-derived escalation and
74
+ * some forgot the tree entirely.
75
+ *
76
+ * Invariants:
77
+ * - the PID is captured ONCE at construction and never retargeted, so a
78
+ * delayed escalation can never hit a recycled PID;
79
+ * - the first termination reason wins;
80
+ * - `terminate()` and `complete()` are idempotent;
81
+ * - escalation re-checks the ORIGINAL child before firing.
82
+ *
83
+ * Honest limit: Node cannot spawn suspended and assign a Job Object, so a
84
+ * descendant that escapes before the first tree walk is not guaranteed
85
+ * contained. See devlog/_plan/260812_windows_and_channels_parity/050.
86
+ */
87
+ export class OwnedProcess {
88
+ child;
89
+ pid;
90
+ #options;
91
+ #state = 'running';
92
+ #reason = null;
93
+ #escalation = null;
94
+ constructor(child, options = {}) {
95
+ this.child = child;
96
+ this.pid = child.pid;
97
+ this.#options = options;
98
+ child.once('exit', () => this.complete());
99
+ child.once('error', () => this.complete());
100
+ }
101
+ get reason() { return this.#reason; }
102
+ get state() { return this.#state; }
103
+ terminate(reason) {
104
+ if (this.#state !== 'running')
105
+ return;
106
+ this.#state = 'terminating';
107
+ this.#reason = reason;
108
+ if (!this.pid || hasChildExited(this.child)) {
109
+ this.complete();
110
+ return;
111
+ }
112
+ const terminateTree = this.#options.terminateTree ?? killProcessTree;
113
+ const policy = this.#options.policy?.(reason) ?? defaultPolicy(reason);
114
+ try {
115
+ terminateTree(this.pid, policy.initialSignal);
116
+ }
117
+ catch { /* best effort */ }
118
+ if (policy.graceMs === null || policy.initialSignal === 'SIGKILL')
119
+ return;
120
+ const setTimer = this.#options.setTimer ?? setTimeout;
121
+ this.#escalation = setTimer(() => {
122
+ this.#escalation = null;
123
+ killProcessTreeIfAlive(this.child, this.pid, terminateTree);
124
+ }, policy.graceMs);
125
+ this.#escalation.unref?.();
126
+ }
127
+ /** The child settled (or we no longer own it). Cancels pending escalation. */
128
+ complete() {
129
+ if (this.#state === 'complete')
130
+ return;
131
+ this.#state = 'complete';
132
+ if (this.#escalation) {
133
+ (this.#options.clearTimer ?? clearTimeout)(this.#escalation);
134
+ this.#escalation = null;
135
+ }
136
+ }
137
+ }
138
+ const ownedProcesses = new WeakMap();
139
+ /**
140
+ * Obtain the owner for a child, creating it on first call.
141
+ *
142
+ * Memoized by ChildProcess identity so a concrete owner and generic
143
+ * bookkeeping can never install competing escalation timers. The FIRST call
144
+ * must therefore sit next to the real spawn, where the correct policy is known.
145
+ */
146
+ export function ownProcess(child, options) {
147
+ const existing = ownedProcesses.get(child);
148
+ if (existing)
149
+ return existing;
150
+ const owned = new OwnedProcess(child, options);
151
+ ownedProcesses.set(child, owned);
152
+ return owned;
153
+ }
60
154
  //# sourceMappingURL=process-kill.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"process-kill.js","sourceRoot":"","sources":["../../../../src/agent/spawn/process-kill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,SAAyB,SAAS;IAC3E,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC;YAAC,YAAY,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QACrH,OAAO;IACX,CAAC;IACD,IAAI,SAAS,GAAa,EAAE,CAAC;IAC7B,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5F,SAAS,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACtF,CAAC;IAAC,MAAM,CAAC,CAAC,iCAAiC,CAAC,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC3B,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;AACnE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,KAAsC;IACjE,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;AAChE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAsC,EAAE,GAAY;IACvF,IAAI,cAAc,CAAC,KAAK,CAAC;QAAE,OAAO;IAClC,MAAM,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,GAAG,CAAC;IACjC,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,IAAI,CAAC;QAAC,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAC5E,CAAC"}
1
+ {"version":3,"file":"process-kill.js","sourceRoot":"","sources":["../../../../src/agent/spawn/process-kill.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@ import { buildTaskSnapshot } from '../memory/runtime.js';
20
20
  import { getActiveChatSession } from '../core/chat-sessions.js';
21
21
  import { currentSessionScope } from '../core/session-context.js';
22
22
  import { getSystemPrompt, regenerateB } from '../prompt/builder.js';
23
+ import { prependRemoteConversationContext } from '../prompt/conversation-context.js';
23
24
  import { extractSessionId, extractFromEvent, extractFromAcpUpdate, extractOutputChunk, logEventSummary, flushClaudeBuffers, flushOpenCodeBuffers } from './events.js';
24
25
  import { detectSmokeResponse } from './smoke-detector.js';
25
26
  import { saveUpload as _saveUpload, buildMediaPrompt, buildMediaPromptMany } from '../../lib/upload.js';
@@ -61,6 +62,10 @@ const DUP_REGISTRATION_KILL_REASON = 'dup-registration';
61
62
  /** Grace before escalating that kill to SIGKILL, matching the sibling kill paths. */
62
63
  const DUP_REGISTRATION_KILL_GRACE_MS = 2_000;
63
64
  function registerActiveProcess(agentLabel, child) {
65
+ // Defensive: the concrete spawn site should already own this child, and
66
+ // ownProcess is memoized, so this returns that existing owner rather than
67
+ // installing a second escalation timer.
68
+ ownProcess(child);
64
69
  const prev = activeProcesses.get(agentLabel);
65
70
  if (prev && prev !== child) {
66
71
  // `killed` only records that a signal was delivered, so it is not a
@@ -81,22 +86,12 @@ function registerActiveProcess(agentLabel, child) {
81
86
  // Record a kill reason so the stale exit handler classifies this
82
87
  // as an intentional kill rather than a genuine agent error.
83
88
  killReasons.set(prevPid, DUP_REGISTRATION_KILL_REASON);
84
- try {
85
- killProcessTree(prevPid, 'SIGTERM');
86
- }
87
- catch (error) {
88
- console.warn(`[spawn:dup] failed to kill previous child for ${agentLabel}:`, error?.message ?? error);
89
- }
90
- // Escalate like every sibling kill path does: a CLI that traps
91
- // SIGTERM would otherwise survive with no map entry to find it.
92
- // Route through killProcessTreeIfAlive so a child that exited
93
- // during the grace period cannot have its recycled PID killed:
94
- // killProcessTree walks `pgrep -P`, so a blind escalation would
95
- // take an unrelated process tree down with it.
96
- const escalate = setTimeout(() => {
97
- killProcessTreeIfAlive(prev, prevPid);
98
- }, DUP_REGISTRATION_KILL_GRACE_MS);
99
- escalate.unref?.();
89
+ // The owner performs the SIGTERM tree walk, schedules the same
90
+ // grace, and re-checks the original child before escalating —
91
+ // so a PID recycled during the grace is never signalled.
92
+ ownProcess(prev, {
93
+ policy: () => ({ initialSignal: 'SIGTERM', graceMs: DUP_REGISTRATION_KILL_GRACE_MS }),
94
+ }).terminate('duplicate-registration');
100
95
  }
101
96
  }
102
97
  }
@@ -156,7 +151,7 @@ export function buildAiERuntimeStatusMeta(cli, provider, model) {
156
151
  },
157
152
  };
158
153
  }
159
- import { hasChildExited, killProcessTree, killProcessTreeIfAlive } from './spawn/process-kill.js';
154
+ import { hasChildExited, killProcessTree, killProcessTreeIfAlive, ownProcess } from './spawn/process-kill.js';
160
155
  import { releaseChildOutputAfterExit } from './spawn/exit-drain.js';
161
156
  import { clampPendingLine } from './spawn/line-buffer.js';
162
157
  import { appendBoundedFullText } from './events/fulltext-bound.js';
@@ -427,37 +422,26 @@ export function killActiveAgent(scopeKeyOrReason = 'user', scopedReason) {
427
422
  console.log(`[jaw:kill] reason=${reason} scope=${scopeKey} cli=${getActiveMainCli(scopeKey) || 'unknown'} signal=${policy.signal} escalationMs=${policy.escalationMs}`);
428
423
  if (activeProcess.pid)
429
424
  killReasons.set(activeProcess.pid, reason);
430
- try {
431
- if (activeProcess.pid) {
432
- killProcessTree(activeProcess.pid, policy.signal);
433
- }
434
- else {
435
- activeProcess.kill(policy.signal);
436
- }
437
- }
438
- catch (e) {
439
- console.warn(`[agent:kill] ${policy.signal} failed`, { pid: activeProcess?.pid, error: e.message });
440
- }
441
425
  const proc = activeProcess;
426
+ // One owner runs the whole termination: tree walk with the policy signal,
427
+ // then escalation after policy.escalationMs that re-checks the ORIGINAL
428
+ // child. The previous escalation guarded on `!proc.killed`, which only
429
+ // records that a signal was delivered — a CLI that traps SIGTERM stays
430
+ // alive with killed set, and was therefore never escalated.
431
+ ownProcess(proc, {
432
+ policy: () => ({ initialSignal: policy.signal, graceMs: policy.escalationMs }),
433
+ }).terminate(reason === 'steer' ? 'steer' : 'cancel');
442
434
  // Immediately sever stdio to stop late output from reaching broadcast handlers
443
435
  proc.stdout?.removeAllListeners('data');
444
436
  proc.stderr?.removeAllListeners('data');
445
- setTimeout(() => {
446
- try {
447
- if (proc && !proc.killed) {
448
- if (proc.pid)
449
- killProcessTree(proc.pid, 'SIGKILL');
450
- else
451
- proc.kill('SIGKILL');
452
- }
453
- }
454
- catch (e) {
455
- console.warn('[agent:kill] SIGKILL failed', { pid: proc?.pid, error: e.message });
456
- }
437
+ // Stdio teardown stays on its own timer: it must happen even when the
438
+ // owner short-circuits because the child had already exited.
439
+ const teardown = setTimeout(() => {
457
440
  proc.stdin?.destroy();
458
441
  proc.stdout?.destroy();
459
442
  proc.stderr?.destroy();
460
443
  }, policy.escalationMs);
444
+ teardown.unref?.();
461
445
  // Fix C1: 사용자 stop/steer 시 해당 scope busy가 즉시 false가 되도록 참조를 동기 해제.
462
446
  // 실제 child 종료는 위 setTimeout SIGKILL이 백그라운드에서 마무리.
463
447
  // exit handler의 setActiveProcess(null) / activeProcesses.delete 는 idempotent.
@@ -480,35 +464,19 @@ export function killAllAgents(reason = 'user') {
480
464
  console.log(`[jaw:killAll] killing ${id}, reason=${reason}`);
481
465
  if (proc.pid)
482
466
  killReasons.set(proc.pid, reason);
483
- try {
484
- if (proc.pid) {
485
- killProcessTree(proc.pid, 'SIGTERM');
486
- }
487
- else {
488
- proc.kill('SIGTERM');
489
- }
490
- killed++;
491
- }
492
- catch (e) {
493
- console.warn(`[agent:killAll] SIGTERM failed for ${id}`, e.message);
494
- }
467
+ // Same owner contract as killActiveAgent: tree walk now, escalation
468
+ // after the grace, guarded by real exit state rather than `killed`.
469
+ ownProcess(proc, {
470
+ policy: () => ({ initialSignal: 'SIGTERM', graceMs: 2000 }),
471
+ }).terminate('shutdown');
472
+ killed++;
495
473
  const ref = proc;
496
- setTimeout(() => {
497
- try {
498
- if (ref && !ref.killed) {
499
- if (ref.pid) {
500
- killProcessTree(ref.pid, 'SIGKILL');
501
- }
502
- else {
503
- ref.kill('SIGKILL');
504
- }
505
- }
506
- }
507
- catch { /* already dead */ }
474
+ const teardown = setTimeout(() => {
508
475
  ref.stdin?.destroy();
509
476
  ref.stdout?.destroy();
510
477
  ref.stderr?.destroy();
511
478
  }, 2000);
479
+ teardown.unref?.();
512
480
  }
513
481
  if (reason === 'api' || reason === 'user') {
514
482
  activeProcesses.clear();
@@ -1047,7 +1015,8 @@ export function spawnAgent(prompt, opts = {}) {
1047
1015
  const memoryNudge = (!opts._isSmokeContinuation && !opts._isGoalContinuation)
1048
1016
  ? '\n(need history? L1: cli-jaw chat/memory search/context | L2: cli-jaw dashboard memory search, cli-jaw dashboard chat search)'
1049
1017
  : '';
1050
- prompt = `${ts}\n${projLine}${prompt}${memoryNudge}`;
1018
+ const promptWithConversation = prependRemoteConversationContext(prompt, opts.target);
1019
+ prompt = `${ts}\n${projLine}${promptWithConversation}${memoryNudge}`;
1051
1020
  }
1052
1021
  const resumeSessionId = empSid || (isResume ? bucketSessionId : null);
1053
1022
  const needsHistory = shouldBuildHistoryBlock({