@sapiom/harness 0.1.0 → 0.1.2

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 (135) hide show
  1. package/CHANGELOG.md +162 -0
  2. package/README.md +36 -0
  3. package/dist/cli/bin.js +26 -2
  4. package/dist/cli/bin.js.map +1 -1
  5. package/dist/cli/consent.d.ts +29 -1
  6. package/dist/cli/consent.d.ts.map +1 -1
  7. package/dist/cli/consent.js +33 -11
  8. package/dist/cli/consent.js.map +1 -1
  9. package/dist/core/adapters/adapter.d.ts +72 -0
  10. package/dist/core/adapters/adapter.d.ts.map +1 -0
  11. package/dist/core/adapters/adapter.js +18 -0
  12. package/dist/core/adapters/adapter.js.map +1 -0
  13. package/dist/core/adapters/claude-code-info.d.ts +11 -0
  14. package/dist/core/adapters/claude-code-info.d.ts.map +1 -0
  15. package/dist/core/adapters/claude-code-info.js +27 -0
  16. package/dist/core/adapters/claude-code-info.js.map +1 -0
  17. package/dist/core/adapters/claude-code.d.ts.map +1 -1
  18. package/dist/core/adapters/claude-code.js +9 -8
  19. package/dist/core/adapters/claude-code.js.map +1 -1
  20. package/dist/core/adapters/codex-info.d.ts +10 -0
  21. package/dist/core/adapters/codex-info.d.ts.map +1 -0
  22. package/dist/core/adapters/codex-info.js +32 -0
  23. package/dist/core/adapters/codex-info.js.map +1 -0
  24. package/dist/core/adapters/conductor.d.ts +8 -0
  25. package/dist/core/adapters/conductor.d.ts.map +1 -0
  26. package/dist/core/adapters/conductor.js +57 -0
  27. package/dist/core/adapters/conductor.js.map +1 -0
  28. package/dist/core/adapters/detect.d.ts +15 -0
  29. package/dist/core/adapters/detect.d.ts.map +1 -0
  30. package/dist/core/adapters/detect.js +62 -0
  31. package/dist/core/adapters/detect.js.map +1 -0
  32. package/dist/core/adapters/opencode.d.ts +8 -0
  33. package/dist/core/adapters/opencode.d.ts.map +1 -0
  34. package/dist/core/adapters/opencode.js +35 -0
  35. package/dist/core/adapters/opencode.js.map +1 -0
  36. package/dist/core/adapters/pi.d.ts +8 -0
  37. package/dist/core/adapters/pi.d.ts.map +1 -0
  38. package/dist/core/adapters/pi.js +24 -0
  39. package/dist/core/adapters/pi.js.map +1 -0
  40. package/dist/core/adapters/registry.d.ts +42 -0
  41. package/dist/core/adapters/registry.d.ts.map +1 -0
  42. package/dist/core/adapters/registry.js +67 -0
  43. package/dist/core/adapters/registry.js.map +1 -0
  44. package/dist/core/canvas-enrich.d.ts +9 -0
  45. package/dist/core/canvas-enrich.d.ts.map +1 -1
  46. package/dist/core/canvas-enrich.js +8 -0
  47. package/dist/core/canvas-enrich.js.map +1 -1
  48. package/dist/core/collector/analytics-emitter.d.ts +57 -0
  49. package/dist/core/collector/analytics-emitter.d.ts.map +1 -0
  50. package/dist/core/collector/analytics-emitter.js +131 -0
  51. package/dist/core/collector/analytics-emitter.js.map +1 -0
  52. package/dist/core/collector/identity-migration.d.ts +25 -0
  53. package/dist/core/collector/identity-migration.d.ts.map +1 -0
  54. package/dist/core/collector/identity-migration.js +68 -0
  55. package/dist/core/collector/identity-migration.js.map +1 -0
  56. package/dist/core/collector/store-retention.d.ts +51 -0
  57. package/dist/core/collector/store-retention.d.ts.map +1 -0
  58. package/dist/core/collector/store-retention.js +117 -0
  59. package/dist/core/collector/store-retention.js.map +1 -0
  60. package/dist/core/collector/store.d.ts +17 -1
  61. package/dist/core/collector/store.d.ts.map +1 -1
  62. package/dist/core/collector/store.js +24 -3
  63. package/dist/core/collector/store.js.map +1 -1
  64. package/dist/core/errors.d.ts +71 -0
  65. package/dist/core/errors.d.ts.map +1 -0
  66. package/dist/core/errors.js +86 -0
  67. package/dist/core/errors.js.map +1 -0
  68. package/dist/core/inject/claude-settings.d.ts +3 -1
  69. package/dist/core/inject/claude-settings.d.ts.map +1 -1
  70. package/dist/core/inject/claude-settings.js +3 -1
  71. package/dist/core/inject/claude-settings.js.map +1 -1
  72. package/dist/core/inject/skills-plugin.d.ts +44 -0
  73. package/dist/core/inject/skills-plugin.d.ts.map +1 -0
  74. package/dist/core/inject/skills-plugin.js +146 -0
  75. package/dist/core/inject/skills-plugin.js.map +1 -0
  76. package/dist/core/macro-runner.d.ts.map +1 -1
  77. package/dist/core/macro-runner.js +20 -1
  78. package/dist/core/macro-runner.js.map +1 -1
  79. package/dist/core/macros.d.ts.map +1 -1
  80. package/dist/core/macros.js +3 -0
  81. package/dist/core/macros.js.map +1 -1
  82. package/dist/core/session-manager.d.ts +37 -18
  83. package/dist/core/session-manager.d.ts.map +1 -1
  84. package/dist/core/session-manager.js +85 -34
  85. package/dist/core/session-manager.js.map +1 -1
  86. package/dist/core/task-manager.d.ts +25 -4
  87. package/dist/core/task-manager.d.ts.map +1 -1
  88. package/dist/core/task-manager.js +118 -6
  89. package/dist/core/task-manager.js.map +1 -1
  90. package/dist/core/workflow-registry.d.ts +7 -0
  91. package/dist/core/workflow-registry.d.ts.map +1 -1
  92. package/dist/core/workflow-registry.js +74 -50
  93. package/dist/core/workflow-registry.js.map +1 -1
  94. package/dist/core/workspace-watcher.d.ts +13 -1
  95. package/dist/core/workspace-watcher.d.ts.map +1 -1
  96. package/dist/core/workspace-watcher.js +78 -4
  97. package/dist/core/workspace-watcher.js.map +1 -1
  98. package/dist/index.d.ts +3 -0
  99. package/dist/index.d.ts.map +1 -1
  100. package/dist/index.js +2 -0
  101. package/dist/index.js.map +1 -1
  102. package/dist/server/index.d.ts +16 -1
  103. package/dist/server/index.d.ts.map +1 -1
  104. package/dist/server/index.js +0 -0
  105. package/dist/server/index.js.map +1 -1
  106. package/dist/server/ingest.d.ts +8 -0
  107. package/dist/server/ingest.d.ts.map +1 -1
  108. package/dist/server/ingest.js +4 -0
  109. package/dist/server/ingest.js.map +1 -1
  110. package/dist/server/macros.d.ts +5 -2
  111. package/dist/server/macros.d.ts.map +1 -1
  112. package/dist/server/macros.js +5 -2
  113. package/dist/server/macros.js.map +1 -1
  114. package/dist/server/rest.d.ts +26 -1
  115. package/dist/server/rest.d.ts.map +1 -1
  116. package/dist/server/rest.js +139 -6
  117. package/dist/server/rest.js.map +1 -1
  118. package/dist/server/skills.d.ts +45 -0
  119. package/dist/server/skills.d.ts.map +1 -0
  120. package/dist/server/skills.js +286 -0
  121. package/dist/server/skills.js.map +1 -0
  122. package/dist/shared/types.d.ts +75 -2
  123. package/dist/shared/types.d.ts.map +1 -1
  124. package/dist/shared/types.js +12 -1
  125. package/dist/shared/types.js.map +1 -1
  126. package/dist/web/assets/index-BTm-QNRt.css +32 -0
  127. package/dist/web/assets/index-CvNiFngP.js +204 -0
  128. package/dist/web/index.html +2 -2
  129. package/package.json +20 -8
  130. package/dist/core/collector/batcher.d.ts +0 -57
  131. package/dist/core/collector/batcher.d.ts.map +0 -1
  132. package/dist/core/collector/batcher.js +0 -143
  133. package/dist/core/collector/batcher.js.map +0 -1
  134. package/dist/web/assets/index-B9R4TzH7.css +0 -32
  135. package/dist/web/assets/index-Dh97QAgq.js +0 -192
@@ -11,6 +11,9 @@ import { basename, dirname, join } from "node:path";
11
11
  import { createRequire } from "node:module";
12
12
  import { ENV, HARNESS_PATHS, } from "../shared/types.js";
13
13
  import { expandHome } from "./paths.js";
14
+ import { AdapterNotFoundError, ExternalHarnessError, SessionAlreadyLiveError, SessionNotReadyError, SessionNotResumeableError, UnknownSessionError, } from "./errors.js";
15
+ import { listHarnessAdapters } from "./adapters/registry.js";
16
+ export { AdapterNotFoundError, ExternalHarnessError, SessionAlreadyLiveError, SessionNotReadyError, SessionNotResumeableError, UnknownSessionError, } from "./errors.js";
14
17
  let defaultSpawn;
15
18
  let defaultSpawnError;
16
19
  /**
@@ -125,20 +128,6 @@ const defaultIsPidAlive = (pid) => {
125
128
  return err.code === "EPERM";
126
129
  }
127
130
  };
128
- /**
129
- * Thrown by `submitInput()` when a session's pty is alive but never became
130
- * ready (see `HarnessSession.ready`) within `READY_GRACE_MS` — the trust-
131
- * dialog race this whole readiness mechanism exists to catch. Callers
132
- * (rest.ts, macros.ts) catch this specifically and surface it as a 409 with
133
- * a UI-visible reason, rather than letting it fall into a generic 500 or
134
- * (worse, the bug this fixes) silently writing into a non-interactive TUI.
135
- */
136
- export class SessionNotReadyError extends Error {
137
- constructor(id) {
138
- super(`Session "${id}" is not ready yet — check the terminal, it may be asking to trust the folder.`);
139
- this.name = "SessionNotReadyError";
140
- }
141
- }
142
131
  function sleep(ms) {
143
132
  return new Promise((resolve) => setTimeout(resolve, ms));
144
133
  }
@@ -208,8 +197,18 @@ export class SessionManager {
208
197
  }
209
198
  getAdapter(harness) {
210
199
  const adapter = this.adapters[harness];
211
- if (!adapter)
212
- throw new Error(`No adapter registered for harness "${harness}"`);
200
+ if (!adapter) {
201
+ // Before surfacing a generic "adapter not found", check whether this id
202
+ // belongs to a known external-mode adapter — if so, the 409 with a human
203
+ // message ("X sessions are managed by the X app") is far more actionable
204
+ // than "no adapter registered for harness X". A sessions.json entry
205
+ // with harness="conductor" (written by an earlier build, hand-edited, or
206
+ // a future registration) hits this path on resume/submitInput.
207
+ const info = listHarnessAdapters().find((a) => a.id === harness);
208
+ if (info?.mode === "external")
209
+ throw new ExternalHarnessError(harness, info.label);
210
+ throw new AdapterNotFoundError(harness);
211
+ }
213
212
  return adapter;
214
213
  }
215
214
  async create(req) {
@@ -283,12 +282,12 @@ export class SessionManager {
283
282
  async resume(id) {
284
283
  const session = this.sessions.get(id);
285
284
  if (!session)
286
- throw new Error(`Unknown session "${id}"`);
285
+ throw new UnknownSessionError(id);
287
286
  if (!session.agentSessionId) {
288
- throw new Error(`Session "${id}" has no agentSessionId to resume from`);
287
+ throw new SessionNotResumeableError(id);
289
288
  }
290
289
  if (this.ptys.has(id)) {
291
- throw new Error(`Session "${id}" already has a live pty`);
290
+ throw new SessionAlreadyLiveError(id);
292
291
  }
293
292
  const adapter = this.getAdapter(session.harness);
294
293
  const opts = {
@@ -325,6 +324,30 @@ export class SessionManager {
325
324
  }
326
325
  return session;
327
326
  }
327
+ /**
328
+ * Signals the session's pty to exit and returns a Promise that resolves
329
+ * once the process is **actually gone** — not fire-and-forget.
330
+ *
331
+ * Resolution source (either one unblocks the promise):
332
+ * 1. node-pty's own `onExit` event → markExited() → `handle.exited` resolves.
333
+ * 2. Synthesized exit: kill()'s escalation fallback (SIGTERM → SIGKILL →
334
+ * pid liveness check) → markExited() → `handle.exited` resolves.
335
+ * 3. Synthesized exit from an external `sweepDeadSessions()` call that
336
+ * happens to run during the escalation window → same path.
337
+ *
338
+ * The promise is bounded: after `KILL_ESCALATION_MS` the escalation sends
339
+ * SIGKILL; after a further `KILL_ESCALATION_CONFIRM_MS` it synthesizes the
340
+ * exit from an OS-level pid check regardless of node-pty's event. So the
341
+ * worst-case resolution time is `KILL_ESCALATION_MS + KILL_ESCALATION_CONFIRM_MS`
342
+ * (2500 ms at current constants), never infinite.
343
+ *
344
+ * Existing fire-and-forget callers keep working: an unawaited Promise is
345
+ * fine and produces no floating-promise lint warnings when suppressed with
346
+ * `void`.
347
+ *
348
+ * Returns false (resolved immediately) when the session has no live pty.
349
+ * Returns true (resolved on actual death) when a pty was signalled.
350
+ */
328
351
  kill(id) {
329
352
  const handle = this.ptys.get(id);
330
353
  if (!handle) {
@@ -335,9 +358,9 @@ export class SessionManager {
335
358
  const session = this.sessions.get(id);
336
359
  if (session && session.status !== "exited") {
337
360
  void this.transitionExited(session, null);
338
- return true;
361
+ return Promise.resolve(true);
339
362
  }
340
- return false;
363
+ return Promise.resolve(false);
341
364
  }
342
365
  handle.pty.kill();
343
366
  // Root-caused via instrumented real-process runs: node-pty's `onExit`
@@ -359,20 +382,34 @@ export class SessionManager {
359
382
  if (this.isPidAlive(pid))
360
383
  handle.pty.kill("SIGKILL");
361
384
  setTimeout(() => {
362
- if (this.ptys.get(id) === handle && !this.isPidAlive(pid))
385
+ // Synthesize unconditionally: SIGKILL was already sent; after the
386
+ // confirm window the session is over regardless of isPidAlive. An
387
+ // EPERM-alive zombie (a process that exists but can't be signalled)
388
+ // would leave handle.exited pending forever if we gated on liveness.
389
+ if (this.ptys.get(id) === handle)
363
390
  this.markExited(id, handle, null);
364
391
  }, KILL_ESCALATION_CONFIRM_MS).unref?.();
365
392
  }, KILL_ESCALATION_MS);
366
393
  escalate.unref?.();
367
- return true;
394
+ // Return a promise that resolves on actual death — either the real onExit
395
+ // event or a synthesized exit from the escalation above or sweepDeadSessions.
396
+ // `handle.exited` is resolved by markExited(), which is the single
397
+ // convergence point for all three paths — it never hangs.
398
+ return handle.exited.then(() => true);
368
399
  }
369
- /** Kills every currently-live pty. Call this on server shutdown — without
370
- * it, spawned agent processes (claude/codex) outlive the harness server
371
- * itself, e.g. after Ctrl+C, since closing the HTTP/WS server doesn't
372
- * touch unrelated child processes on its own. */
373
- killAll() {
374
- for (const id of [...this.ptys.keys()])
375
- this.kill(id);
400
+ /**
401
+ * Kills every currently-live pty and returns a Promise that resolves when
402
+ * all of them have actually exited (real or synthesized). Bounded by the
403
+ * same escalation window as `kill()` — never hangs.
404
+ *
405
+ * Call this on server shutdown so the process actually exits instead of
406
+ * waiting on orphaned claude/codex children. A bounded timeout can be layered
407
+ * on top via `Promise.race` when callers need a hard deadline:
408
+ * `await Promise.race([sessionManager.killAll(), sleep(5_000)])`
409
+ */
410
+ async killAll() {
411
+ const kills = [...this.ptys.keys()].map((id) => this.kill(id));
412
+ await Promise.all(kills);
376
413
  }
377
414
  /**
378
415
  * Defensive liveness backstop, run periodically by the server: any
@@ -436,12 +473,19 @@ export class SessionManager {
436
473
  * instead of the input just vanishing.
437
474
  */
438
475
  async submitInput(id, text, submit = true) {
439
- const handle = this.ptys.get(id);
440
- if (!handle)
441
- return false;
442
476
  const session = this.sessions.get(id);
443
477
  if (!session)
444
478
  return false;
479
+ // An external-harness session (e.g. conductor) never has a pty — surfacing
480
+ // HARNESS_EXTERNAL here gives a 409 "managed by the X app" instead of a
481
+ // misleading 404 "session not found or has no live pty".
482
+ const handle = this.ptys.get(id);
483
+ if (!handle) {
484
+ const info = listHarnessAdapters().find((a) => a.id === session.harness);
485
+ if (info?.mode === "external")
486
+ throw new ExternalHarnessError(session.harness, info.label);
487
+ return false;
488
+ }
445
489
  if (!this.isReadyEnough(session, handle)) {
446
490
  const becameReady = await this.waitUntilReady(id, READY_GRACE_MS);
447
491
  if (!becameReady)
@@ -656,7 +700,11 @@ export class SessionManager {
656
700
  });
657
701
  const emitter = new EventEmitter();
658
702
  emitter.setMaxListeners(0);
659
- const handle = { pty, buffer: "", emitter, spawnedAt: Date.now() };
703
+ let resolveExited;
704
+ const exited = new Promise((resolve) => {
705
+ resolveExited = resolve;
706
+ });
707
+ const handle = { pty, buffer: "", emitter, spawnedAt: Date.now(), exited, resolveExited };
660
708
  this.ptys.set(session.id, handle);
661
709
  session.status = "running";
662
710
  // A resumed session may carry `ready: true` from its previous life —
@@ -687,6 +735,9 @@ export class SessionManager {
687
735
  return;
688
736
  this.ptys.delete(id);
689
737
  this.lastActivityBroadcast.delete(id);
738
+ // Resolve after the pty map is cleaned up. transitionExited runs
739
+ // synchronously to set status before any awaiting continuation resumes.
740
+ handle.resolveExited();
690
741
  const session = this.sessions.get(id);
691
742
  if (!session)
692
743
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/core/session-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/core/session-manager.ts"],"names":[],"mappings":"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"}
@@ -110,9 +110,20 @@ export declare class TaskManager {
110
110
  * as `resultText`, so a structured task's caller can parse the answer. */
111
111
  private readonly resultTexts;
112
112
  private readonly statusEmitter;
113
+ /**
114
+ * Per-task exit promises: each resolves when `finish()` runs for that task
115
+ * (whether via a normal exit, an error event, or a killAll() escalation).
116
+ * `killAll()` awaits these to confirm actual death before resolving.
117
+ */
118
+ private readonly exitedPromises;
119
+ private readonly resolveExited;
113
120
  constructor(options: TaskManagerOptions);
114
121
  list(): BackgroundTask[];
115
122
  get(id: string): BackgroundTask | undefined;
123
+ /** Returns true when any registered task with the given macroId is currently
124
+ * running against the given workflowPath — used by forceRefresh to check
125
+ * before destroying caches so a second Visualize click is a true no-op. */
126
+ isRunning(macroId: string, workflowPath: string): boolean;
116
127
  onStatusChange(listener: TaskStatusListener): () => void;
117
128
  /**
118
129
  * Spawns one background task. Resolves once the process is launched (not
@@ -122,10 +133,20 @@ export declare class TaskManager {
122
133
  * generation failure) propagates as-is.
123
134
  */
124
135
  run(req: RunTaskRequest): Promise<BackgroundTask>;
125
- /** Kills every still-running task process. Call on server shutdown, same
126
- * reason as SessionManager.killAll child processes aren't torn down by
127
- * the HTTP server closing. */
128
- killAll(): void;
136
+ /**
137
+ * Kills every still-running task process and returns a Promise that resolves
138
+ * when all of them have actually exited. Bounded and never hangs:
139
+ *
140
+ * 1. SIGTERM all running tasks.
141
+ * 2. Wait up to `TASK_KILL_ESCALATION_MS` for graceful exits.
142
+ * 3. SIGKILL any survivors.
143
+ * 4. Wait up to `TASK_KILL_CONFIRM_MS` for SIGKILL exits.
144
+ * 5. Synthesize `finish(id, null)` for any still-registered processes —
145
+ * a zombie that never emits "exit" would otherwise leave allExited
146
+ * pending forever. finish()'s idempotence guard (status !== "running")
147
+ * makes a double-call harmless if the exit event arrives concurrently.
148
+ */
149
+ killAll(): Promise<void>;
129
150
  private handleStdoutLine;
130
151
  /** The single running→finished transition — shared by "exit" and "error",
131
152
  * which can both fire for one process, so it's idempotent. */
@@ -1 +1 @@
1
- {"version":3,"file":"task-manager.d.ts","sourceRoot":"","sources":["../../src/core/task-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-manager.d.ts","sourceRoot":"","sources":["../../src/core/task-manager.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,8 @@ import { spawn as spawnChildProcess } from "node:child_process";
23
23
  import { createInterface } from "node:readline";
24
24
  import { ENV, } from "../shared/types.js";
25
25
  import { parseTaskStreamLine } from "./task-stream.js";
26
+ import { AdapterNotFoundError, ExternalHarnessError } from "./errors.js";
27
+ import { listHarnessAdapters } from "./adapters/registry.js";
26
28
  /** Rolling status-line window kept per task — enough for the activity view's
27
29
  * recent-history list without unbounded growth on a chatty run. */
28
30
  const MAX_STATUS_LINES = 24;
@@ -31,6 +33,21 @@ const MAX_STDERR_CHARS = 2000;
31
33
  /** Finished tasks retained (per whole manager) for late-mounting clients;
32
34
  * running tasks are always retained regardless. */
33
35
  const MAX_FINISHED_TASKS = 20;
36
+ /**
37
+ * How long killAll() waits for a graceful SIGTERM to take effect before
38
+ * escalating to SIGKILL. Mirrors SessionManager's KILL_ESCALATION_MS — tasks
39
+ * are headless child processes (claude -p) so they typically die faster than
40
+ * interactive ptys, but the same bounded escalation semantics apply.
41
+ */
42
+ const TASK_KILL_ESCALATION_MS = 2000;
43
+ /**
44
+ * How long killAll() waits after sending SIGKILL before synthesizing finish()
45
+ * for any still-registered process. Mirrors SessionManager's
46
+ * KILL_ESCALATION_CONFIRM_MS. After this window the task is declared dead
47
+ * regardless — a zombie that never emits "exit" would otherwise leave
48
+ * allExited pending forever.
49
+ */
50
+ const TASK_KILL_CONFIRM_MS = 500;
34
51
  const defaultSpawn = (command, args, options) => spawnChildProcess(command, args, { ...options, stdio: ["ignore", "pipe", "pipe"] });
35
52
  /** Thrown when the session's harness adapter has no `launchTask` (codex,
36
53
  * today) — the macros router surfaces this as a 400 with this message. */
@@ -69,6 +86,13 @@ export class TaskManager {
69
86
  * as `resultText`, so a structured task's caller can parse the answer. */
70
87
  this.resultTexts = new Map();
71
88
  this.statusEmitter = new EventEmitter();
89
+ /**
90
+ * Per-task exit promises: each resolves when `finish()` runs for that task
91
+ * (whether via a normal exit, an error event, or a killAll() escalation).
92
+ * `killAll()` awaits these to confirm actual death before resolving.
93
+ */
94
+ this.exitedPromises = new Map();
95
+ this.resolveExited = new Map();
72
96
  this.adapters = options.adapters;
73
97
  this.ingestUrl = options.ingestUrl;
74
98
  this.ingestToken = options.ingestToken;
@@ -86,6 +110,17 @@ export class TaskManager {
86
110
  get(id) {
87
111
  return this.tasks.get(id);
88
112
  }
113
+ /** Returns true when any registered task with the given macroId is currently
114
+ * running against the given workflowPath — used by forceRefresh to check
115
+ * before destroying caches so a second Visualize click is a true no-op. */
116
+ isRunning(macroId, workflowPath) {
117
+ for (const task of this.tasks.values()) {
118
+ if (task.status === "running" && task.macroId === macroId && task.workflowPath === workflowPath) {
119
+ return true;
120
+ }
121
+ }
122
+ return false;
123
+ }
89
124
  onStatusChange(listener) {
90
125
  this.statusEmitter.on("status", listener);
91
126
  return () => {
@@ -101,8 +136,15 @@ export class TaskManager {
101
136
  */
102
137
  async run(req) {
103
138
  const adapter = this.adapters[req.harness];
104
- if (!adapter)
105
- throw new Error(`No adapter registered for harness "${req.harness}"`);
139
+ if (!adapter) {
140
+ // Same external-mode check as SessionManager.getAdapter(): a persisted
141
+ // session with harness="conductor" must surface a 409 HARNESS_EXTERNAL,
142
+ // not a generic "adapter not found".
143
+ const info = listHarnessAdapters().find((a) => a.id === req.harness);
144
+ if (info?.mode === "external")
145
+ throw new ExternalHarnessError(req.harness, info.label);
146
+ throw new AdapterNotFoundError(req.harness);
147
+ }
106
148
  if (!adapter.launchTask)
107
149
  throw new TaskNotSupportedError(req.harness, req.label);
108
150
  const reqWorkflowPath = req.workflowPath ?? null;
@@ -190,6 +232,11 @@ export class TaskManager {
190
232
  // Registered — the running-task check owns dedupe from here.
191
233
  releasePending();
192
234
  this.processes.set(id, child);
235
+ // Set up the per-task exit promise so killAll() can await actual death.
236
+ const exited = new Promise((resolve) => {
237
+ this.resolveExited.set(id, resolve);
238
+ });
239
+ this.exitedPromises.set(id, exited);
193
240
  this.trimFinished();
194
241
  this.emitStatus(task);
195
242
  if (child.stdout) {
@@ -212,18 +259,76 @@ export class TaskManager {
212
259
  child.on("exit", (code) => this.finish(id, code));
213
260
  return task;
214
261
  }
215
- /** Kills every still-running task process. Call on server shutdown, same
216
- * reason as SessionManager.killAll child processes aren't torn down by
217
- * the HTTP server closing. */
218
- killAll() {
262
+ /**
263
+ * Kills every still-running task process and returns a Promise that resolves
264
+ * when all of them have actually exited. Bounded and never hangs:
265
+ *
266
+ * 1. SIGTERM all running tasks.
267
+ * 2. Wait up to `TASK_KILL_ESCALATION_MS` for graceful exits.
268
+ * 3. SIGKILL any survivors.
269
+ * 4. Wait up to `TASK_KILL_CONFIRM_MS` for SIGKILL exits.
270
+ * 5. Synthesize `finish(id, null)` for any still-registered processes —
271
+ * a zombie that never emits "exit" would otherwise leave allExited
272
+ * pending forever. finish()'s idempotence guard (status !== "running")
273
+ * makes a double-call harmless if the exit event arrives concurrently.
274
+ */
275
+ async killAll() {
276
+ const runningIds = [...this.processes.keys()];
277
+ if (runningIds.length === 0)
278
+ return;
279
+ // Snapshot the exit promises before sending signals — `finish()` deletes
280
+ // them from the map, so we must capture them now while all are present.
281
+ const exitWaiters = runningIds
282
+ .map((id) => this.exitedPromises.get(id))
283
+ .filter((p) => p !== undefined);
284
+ // Phase 1: SIGTERM all running tasks.
219
285
  for (const child of this.processes.values()) {
220
286
  try {
221
287
  child.kill("SIGTERM");
222
288
  }
289
+ catch {
290
+ // Already gone — finish() will handle it when the exit event arrives.
291
+ }
292
+ }
293
+ // Wait for graceful exits or escalation window.
294
+ const allExited = Promise.all(exitWaiters);
295
+ let escalationHandle;
296
+ const escalationTimer = new Promise((resolve) => {
297
+ escalationHandle = setTimeout(resolve, TASK_KILL_ESCALATION_MS);
298
+ // Unref so the timer never holds the event loop when processes exit
299
+ // before the window expires — mirrors SessionManager.kill()'s pattern.
300
+ escalationHandle.unref();
301
+ });
302
+ await Promise.race([allExited, escalationTimer]);
303
+ if (escalationHandle !== undefined)
304
+ clearTimeout(escalationHandle);
305
+ // Phase 2: SIGKILL any still-alive processes after the grace window.
306
+ for (const child of this.processes.values()) {
307
+ try {
308
+ child.kill("SIGKILL");
309
+ }
223
310
  catch {
224
311
  // Already gone.
225
312
  }
226
313
  }
314
+ // Wait for SIGKILL exits or the confirm window, then synthesize for zombies.
315
+ // Using a separate timer (not reusing escalationTimer which already fired)
316
+ // so the SIGKILL phase gets its own full window.
317
+ let confirmHandle;
318
+ const confirmTimer = new Promise((resolve) => {
319
+ confirmHandle = setTimeout(resolve, TASK_KILL_CONFIRM_MS);
320
+ confirmHandle.unref();
321
+ });
322
+ await Promise.race([allExited, confirmTimer]);
323
+ if (confirmHandle !== undefined)
324
+ clearTimeout(confirmHandle);
325
+ // Synthesize finish() for any process that still hasn't emitted an exit
326
+ // event — a zombie or a process whose exit event was lost. finish()'s
327
+ // idempotence guard (task.status !== "running") prevents a double-fire if
328
+ // the real exit event arrives concurrently or slightly later.
329
+ for (const id of [...this.processes.keys()]) {
330
+ this.finish(id, null);
331
+ }
227
332
  }
228
333
  handleStdoutLine(id, line) {
229
334
  const task = this.tasks.get(id);
@@ -265,6 +370,13 @@ export class TaskManager {
265
370
  this.stderrTails.delete(id);
266
371
  this.resultErrors.delete(id);
267
372
  this.resultTexts.delete(id);
373
+ // Resolve the per-task exit promise so killAll() waiters unblock.
374
+ const resolve = this.resolveExited.get(id);
375
+ if (resolve) {
376
+ resolve();
377
+ this.resolveExited.delete(id);
378
+ this.exitedPromises.delete(id);
379
+ }
268
380
  this.emitStatus(task);
269
381
  this.onCleanup(id);
270
382
  }
@@ -1 +1 @@
1
- {"version":3,"file":"task-manager.js","sourceRoot":"","sources":["../../src/core/task-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-manager.js","sourceRoot":"","sources":["../../src/core/task-manager.ts"],"names":[],"mappings":"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"}
@@ -14,9 +14,16 @@ export declare class WorkflowRegistry {
14
14
  private readonly registryPath;
15
15
  private workflows;
16
16
  private loaded;
17
+ /** Serializes mutations so concurrent prune/scan/connectPath calls can't
18
+ * interleave and drop entries from the persisted file. Mirrors the pattern
19
+ * used by SessionManager.persist() (session-manager.ts:278,851-853). */
20
+ private writeQueue;
17
21
  constructor(registryPath?: string);
18
22
  private ensureLoaded;
19
23
  private persist;
24
+ /** Chains `run` onto the write queue so concurrent mutations never
25
+ * interleave — a failed run never poisons later ones. */
26
+ private enqueue;
20
27
  list(): Promise<WorkflowInfo[]>;
21
28
  /**
22
29
  * Drops entries whose `path` no longer exists on disk and persists the
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-registry.d.ts","sourceRoot":"","sources":["../../src/core/workflow-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,EAAU,KAAK,MAAM,IAAI,aAAa,EAAE,MAAM,SAAS,CAAC;AAE/D,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAmFtE,qBAAa,gBAAgB;IAIf,OAAO,CAAC,QAAQ,CAAC,YAAY;IAHzC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,MAAM,CAAS;gBAEM,YAAY,GAAE,MAA4C;YAEzE,YAAY;YAWZ,OAAO;IAKf,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAKrC;;;;;;;OAOG;IACG,KAAK,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAqBtC,+EAA+E;IACzE,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAiBjD,8FAA8F;IACxF,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CAgB5D;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,aAAa,CAkC/E"}
1
+ {"version":3,"file":"workflow-registry.d.ts","sourceRoot":"","sources":["../../src/core/workflow-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,EAAU,KAAK,MAAM,IAAI,aAAa,EAAE,MAAM,SAAS,CAAC;AAE/D,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAmFtE,qBAAa,gBAAgB;IAQf,OAAO,CAAC,QAAQ,CAAC,YAAY;IAPzC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,MAAM,CAAS;IACvB;;6EAEyE;IACzE,OAAO,CAAC,UAAU,CAAoC;gBAEzB,YAAY,GAAE,MAA4C;YAEzE,YAAY;YAWZ,OAAO;IAYrB;8DAC0D;IAC1D,OAAO,CAAC,OAAO;IAST,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAKrC;;;;;;;OAOG;IACG,KAAK,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAuBtC,+EAA+E;IACzE,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAmBjD,8FAA8F;IACxF,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CAkB5D;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,aAAa,CAkC/E"}