cli-jaw 2.2.0 → 2.2.1

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 (123) hide show
  1. package/README.ko.md +1 -1
  2. package/README.md +22 -3
  3. package/README.zh-CN.md +1 -1
  4. package/dist/bin/cli-jaw.js +5 -1
  5. package/dist/bin/cli-jaw.js.map +1 -1
  6. package/dist/bin/commands/bgtask.js +2 -1
  7. package/dist/bin/commands/bgtask.js.map +1 -1
  8. package/dist/bin/commands/dispatch-batch-summary.js +38 -0
  9. package/dist/bin/commands/dispatch-batch-summary.js.map +1 -0
  10. package/dist/bin/commands/dispatch.js +91 -52
  11. package/dist/bin/commands/dispatch.js.map +1 -1
  12. package/dist/bin/commands/jwc.js +237 -0
  13. package/dist/bin/commands/jwc.js.map +1 -0
  14. package/dist/bin/commands/skill.js +17 -4
  15. package/dist/bin/commands/skill.js.map +1 -1
  16. package/dist/bin/commands/worker.js +162 -4
  17. package/dist/bin/commands/worker.js.map +1 -1
  18. package/dist/lib/mcp/skills-distribution.js +17 -19
  19. package/dist/lib/mcp/skills-distribution.js.map +1 -1
  20. package/dist/server.js +2 -1
  21. package/dist/server.js.map +1 -1
  22. package/dist/src/agent/jwc-runtime.js +12 -3
  23. package/dist/src/agent/jwc-runtime.js.map +1 -1
  24. package/dist/src/bgtask/registry.js +12 -2
  25. package/dist/src/bgtask/registry.js.map +1 -1
  26. package/dist/src/browser/adaptive-fetch/browser-escalation.js +122 -0
  27. package/dist/src/browser/adaptive-fetch/browser-escalation.js.map +1 -1
  28. package/dist/src/browser/adaptive-fetch/browser-flow.js +57 -0
  29. package/dist/src/browser/adaptive-fetch/browser-flow.js.map +1 -0
  30. package/dist/src/browser/adaptive-fetch/candidate-discovery.js +116 -0
  31. package/dist/src/browser/adaptive-fetch/candidate-discovery.js.map +1 -0
  32. package/dist/src/browser/adaptive-fetch/feed-parser.js +152 -0
  33. package/dist/src/browser/adaptive-fetch/feed-parser.js.map +1 -0
  34. package/dist/src/browser/adaptive-fetch/index.js +9 -59
  35. package/dist/src/browser/adaptive-fetch/index.js.map +1 -1
  36. package/dist/src/browser/adaptive-fetch/live-smoke-manifest.js +43 -0
  37. package/dist/src/browser/adaptive-fetch/live-smoke-manifest.js.map +1 -0
  38. package/dist/src/browser/adaptive-fetch/metadata.js +74 -5
  39. package/dist/src/browser/adaptive-fetch/metadata.js.map +1 -1
  40. package/dist/src/browser/adaptive-fetch/public-endpoint-normalizers.js +414 -0
  41. package/dist/src/browser/adaptive-fetch/public-endpoint-normalizers.js.map +1 -0
  42. package/dist/src/browser/adaptive-fetch/reader-adapters.js +36 -0
  43. package/dist/src/browser/adaptive-fetch/reader-adapters.js.map +1 -1
  44. package/dist/src/cli/commands.js +2 -0
  45. package/dist/src/cli/commands.js.map +1 -1
  46. package/dist/src/cli/handlers-search.js +28 -0
  47. package/dist/src/cli/handlers-search.js.map +1 -0
  48. package/dist/src/cli/handlers.js +12 -1
  49. package/dist/src/cli/handlers.js.map +1 -1
  50. package/dist/src/code-mode/acp-host.js +1 -8
  51. package/dist/src/code-mode/acp-host.js.map +1 -1
  52. package/dist/src/orchestrator/pipeline.js +2 -4
  53. package/dist/src/orchestrator/pipeline.js.map +1 -1
  54. package/dist/src/orchestrator/worker-output-store.js +64 -0
  55. package/dist/src/orchestrator/worker-output-store.js.map +1 -0
  56. package/dist/src/orchestrator/worker-progress.js.map +1 -1
  57. package/dist/src/orchestrator/worker-registry.js +91 -10
  58. package/dist/src/orchestrator/worker-registry.js.map +1 -1
  59. package/dist/src/orchestrator/worker-replay-notice.js +28 -0
  60. package/dist/src/orchestrator/worker-replay-notice.js.map +1 -0
  61. package/dist/src/orchestrator/worker-run-store.js +142 -0
  62. package/dist/src/orchestrator/worker-run-store.js.map +1 -0
  63. package/dist/src/routes/bgtask.js +13 -4
  64. package/dist/src/routes/bgtask.js.map +1 -1
  65. package/dist/src/routes/orchestrate.js +53 -4
  66. package/dist/src/routes/orchestrate.js.map +1 -1
  67. package/dist/src/shared/runtime-observability.js +20 -0
  68. package/dist/src/shared/runtime-observability.js.map +1 -0
  69. package/dist/src/workflows/search.js +34 -0
  70. package/dist/src/workflows/search.js.map +1 -0
  71. package/package.json +6 -7
  72. package/public/dist/assets/{app-BsVpXeLC.js → app-BbBXyLe3.js} +4 -4
  73. package/public/dist/assets/{bgtask-badge-DqMU3pM3.js → bgtask-badge-BioRIkPz.js} +1 -1
  74. package/public/dist/assets/bgtask-badge-BwMVGFG_.js +1 -0
  75. package/public/dist/assets/{employees-BhkR2-xi.js → employees-B8cUYBRx.js} +1 -1
  76. package/public/dist/assets/manager-Ceg2x8D0.js +13 -0
  77. package/public/dist/assets/{manager-U147AWWu.css → manager-CwAlpgV7.css} +1 -1
  78. package/public/dist/assets/{memory-DERWDVjI.js → memory-3J4rzlxy.js} +1 -1
  79. package/public/dist/assets/memory-B5CQnDFI.js +1 -0
  80. package/public/dist/assets/message-history-BYswFI5p.js +1 -0
  81. package/public/dist/assets/{message-history-CK0ah3pB.js → message-history-Vv3aIRWS.js} +2 -2
  82. package/public/dist/assets/{render-CqzsW5KN.js → render-BVZ1xMEu.js} +1 -1
  83. package/public/dist/assets/{settings-DdwmhI5a.js → settings-C5FVzFpn.js} +1 -1
  84. package/public/dist/assets/settings-DZ4wz5SY.js +1 -0
  85. package/public/dist/assets/{settings-core-AiF7o3Ns.js → settings-core-5lL6lIyu.js} +1 -1
  86. package/public/dist/assets/settings-core-DYnePZHe.js +1 -0
  87. package/public/dist/assets/{sidebar-Bhtk2fPc.js → sidebar-jRPFidCd.js} +3 -3
  88. package/public/dist/assets/{skills-Cs8byPIx.js → skills-BjOjT5sG.js} +1 -1
  89. package/public/dist/assets/skills-CH0wHfkw.js +1 -0
  90. package/public/dist/assets/{slash-commands-C5erv0KS.js → slash-commands-B2oqpz-B.js} +1 -1
  91. package/public/dist/assets/slash-commands-C_9y_-8B.js +1 -0
  92. package/public/dist/assets/{trace-drawer-CtmD6jwj.js → trace-drawer-BQIdKFZx.js} +1 -1
  93. package/public/dist/assets/{ui-DaFl446W.js → ui-B9KmU-Qr.js} +1 -1
  94. package/public/dist/assets/ui-BCJ4lcQ4.js +1 -0
  95. package/public/dist/index.html +1 -1
  96. package/public/dist/manager/index.html +2 -2
  97. package/public/js/features/command-info.ts +1 -0
  98. package/public/locales/en.json +2 -0
  99. package/public/locales/ja.json +2 -0
  100. package/public/locales/ko.json +2 -0
  101. package/public/locales/zh.json +2 -0
  102. package/public/manager/src/SidebarRailRouter.tsx +7 -3
  103. package/public/manager/src/background-tasks/background-task-client.ts +21 -1
  104. package/public/manager/src/main.tsx +2 -0
  105. package/public/manager/src/workers/WorkerProgressMonitorPanel.tsx +2 -0
  106. package/public/manager/src/workers/WorkerRunsPanel.tsx +152 -0
  107. package/public/manager/src/workers/useWorkerRuns.ts +138 -0
  108. package/public/manager/src/workers/worker-runs-client.ts +112 -0
  109. package/public/manager/src/workers/worker-runs.css +208 -0
  110. package/scripts/bundle-sidecar.sh +2 -64
  111. package/scripts/check-electron-sidecar-no-jwc.cjs +57 -0
  112. package/scripts/install-risk-gate.mjs +3 -2
  113. package/scripts/jwc-no-global-smoke.mjs +14 -22
  114. package/public/dist/assets/bgtask-badge-YR8SMYrp.js +0 -1
  115. package/public/dist/assets/manager-ycX0r7uL.js +0 -13
  116. package/public/dist/assets/memory-CfeG2ViL.js +0 -1
  117. package/public/dist/assets/message-history-BaI36ciH.js +0 -1
  118. package/public/dist/assets/settings-VeoQiKpd.js +0 -1
  119. package/public/dist/assets/settings-core-DlfGtuWD.js +0 -1
  120. package/public/dist/assets/skills-Z0rMlwnf.js +0 -1
  121. package/public/dist/assets/slash-commands-CZKlw4A6.js +0 -1
  122. package/public/dist/assets/ui-WRcA4tUT.js +0 -1
  123. package/scripts/check-electron-sidecar-jwc.cjs +0 -117
@@ -1 +1 @@
1
- {"version":3,"file":"worker-progress.js","sourceRoot":"","sources":["../../../src/orchestrator/worker-progress.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gCAAgC,GAEnC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACH,mBAAmB,EACnB,yBAAyB,GAC5B,MAAM,oCAAoC,CAAC;AA0C5C,MAAM,UAAU,eAAe,CAAC,KAAiE;IAC7F,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACxD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACtD,OAAO,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACnH,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,OAAgB;IACxD,MAAM,SAAS,GAAG,gCAAgC,CAAC,OAAO,CAAC,CAAC;IAC5D,OAAO,SAAS;SACX,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;SAC1C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACX,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM;YACvB,CAAC,CAAC,yBAAyB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YACnF,CAAC,CAAC,EAAE,CAAC;QACT,OAAO;YACH,GAAG,KAAK;YACR,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC;YACvC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChC,CAAC;IACN,CAAC,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAc,EAAE,GAAG,GAAG,GAAG;IACjD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7D,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACnE,CAAC"}
1
+ {"version":3,"file":"worker-progress.js","sourceRoot":"","sources":["../../../src/orchestrator/worker-progress.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gCAAgC,GAEnC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACH,mBAAmB,EACnB,yBAAyB,GAC5B,MAAM,oCAAoC,CAAC;AA+C5C,MAAM,UAAU,eAAe,CAAC,KAAiE;IAC7F,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACxD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACtD,OAAO,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACnH,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,OAAgB;IACxD,MAAM,SAAS,GAAG,gCAAgC,CAAC,OAAO,CAAC,CAAC;IAC5D,OAAO,SAAS;SACX,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;SAC1C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACX,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM;YACvB,CAAC,CAAC,yBAAyB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YACnF,CAAC,CAAC,EAAE,CAAC;QACT,OAAO;YACH,GAAG,KAAK;YACR,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC;YACvC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChC,CAAC;IACN,CAAC,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAc,EAAE,GAAG,GAAG,GAAG;IACjD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7D,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACnE,CAAC"}
@@ -1,9 +1,12 @@
1
1
  // ─── Worker Registry ────────────────────────────────
2
2
  // In-memory registry tracking worker ownership and result handoff.
3
+ import { randomUUID } from 'node:crypto';
3
4
  import { stripUndefined } from '../core/strip-undefined.js';
4
5
  import { previewText, sanitizeWorkerProgressTools, } from './worker-progress.js';
6
+ import { completeWorkerRun, createWorkerRunRecord, recordWorkerRunAttention, recordWorkerRunProgress, } from './worker-run-store.js';
5
7
  const workers = new Map();
6
8
  const previousRuns = new Map();
9
+ const previousRunIdsByAgentId = new Map();
7
10
  // Phase 7: thrown when a worker slot with the same agentId is already running.
8
11
  // Prevents double-dispatch from overwriting the in-flight slot and losing results.
9
12
  export class WorkerBusyError extends Error {
@@ -14,12 +17,16 @@ export class WorkerBusyError extends Error {
14
17
  this.existing = existing;
15
18
  }
16
19
  }
20
+ function createWorkerRunId(agentId) {
21
+ return `wr_${agentId}_${Date.now().toString(36)}_${randomUUID().slice(0, 8)}`;
22
+ }
17
23
  export function claimWorker(emp, task, replayMeta) {
18
24
  const existing = workers.get(emp.id);
19
25
  if (existing && existing.state === 'running') {
20
26
  throw new WorkerBusyError(existing);
21
27
  }
22
28
  const slot = stripUndefined({
29
+ runId: createWorkerRunId(emp.id),
23
30
  agentId: emp.id,
24
31
  employeeId: emp.id,
25
32
  employeeName: emp.name || emp.id,
@@ -39,10 +46,17 @@ export function claimWorker(emp, task, replayMeta) {
39
46
  replayMeta: replayMeta && Object.keys(replayMeta).length ? { ...replayMeta } : undefined,
40
47
  });
41
48
  workers.set(emp.id, slot);
49
+ createWorkerRunRecord({
50
+ runId: slot.runId,
51
+ agentId: slot.agentId,
52
+ employeeName: slot.employeeName,
53
+ taskPreview: previewText(slot.task, 200) || '',
54
+ startedAt: slot.startedAt,
55
+ });
42
56
  return slot;
43
57
  }
44
58
  export function getWorkerSlot(agentId) {
45
- return workers.get(agentId);
59
+ return workers.get(agentId) || [...workers.values()].find(slot => slot.runId === agentId);
46
60
  }
47
61
  export function updateWorkerPhase(agentId, phase, phaseLabel) {
48
62
  const slot = workers.get(agentId);
@@ -52,9 +66,12 @@ export function updateWorkerPhase(agentId, phase, phaseLabel) {
52
66
  slot.phaseLabel = phaseLabel;
53
67
  }
54
68
  function toProgressRun(slot) {
69
+ const now = Date.now();
55
70
  const resultPreview = previewText(slot.result, 240);
56
71
  const attention = progressAttention(slot);
72
+ const endAt = slot.completedAt ?? now;
57
73
  return {
74
+ runId: slot.runId,
58
75
  agentId: slot.agentId,
59
76
  employeeName: slot.employeeName,
60
77
  state: slot.state,
@@ -64,6 +81,8 @@ function toProgressRun(slot) {
64
81
  startedAt: slot.startedAt,
65
82
  completedAt: slot.completedAt,
66
83
  progressUpdatedAt: slot.progressUpdatedAt,
84
+ elapsedMs: Math.max(0, endAt - slot.startedAt),
85
+ lastUpdateAgeMs: slot.progressUpdatedAt ? Math.max(0, now - slot.progressUpdatedAt) : null,
67
86
  ...(resultPreview ? { resultPreview } : {}),
68
87
  ...(attention ? { attention } : {}),
69
88
  tools: slot.tools,
@@ -90,6 +109,7 @@ function setWorkerAttention(agentId, attention) {
90
109
  return;
91
110
  slot.attention = attention;
92
111
  slot.progressUpdatedAt = Date.now();
112
+ recordWorkerRunAttention(slot.runId, attention);
93
113
  }
94
114
  export function markWorkerStalled(agentId) {
95
115
  setWorkerAttention(agentId, {
@@ -126,13 +146,39 @@ const PREVIOUS_RUNS_MAX = 100;
126
146
  function rememberCompletedRun(slot) {
127
147
  if (slot.state === 'running')
128
148
  return;
129
- previousRuns.set(slot.agentId, toProgressRun(slot));
149
+ previousRuns.set(slot.runId, toProgressRun(slot));
150
+ const ids = previousRunIdsByAgentId.get(slot.agentId) || [];
151
+ if (!ids.includes(slot.runId))
152
+ ids.push(slot.runId);
153
+ previousRunIdsByAgentId.set(slot.agentId, ids);
130
154
  while (previousRuns.size > PREVIOUS_RUNS_MAX) {
131
155
  const oldest = previousRuns.keys().next().value;
132
156
  if (!oldest)
133
157
  break;
158
+ const oldestRun = previousRuns.get(oldest);
134
159
  previousRuns.delete(oldest);
160
+ if (oldestRun) {
161
+ const agentRunIds = previousRunIdsByAgentId.get(oldestRun.agentId) || [];
162
+ const filtered = agentRunIds.filter(id => id !== oldest);
163
+ if (filtered.length > 0)
164
+ previousRunIdsByAgentId.set(oldestRun.agentId, filtered);
165
+ else
166
+ previousRunIdsByAgentId.delete(oldestRun.agentId);
167
+ }
168
+ }
169
+ }
170
+ function latestPreviousRunForAgent(agentId) {
171
+ const ids = previousRunIdsByAgentId.get(agentId) || [];
172
+ for (let index = ids.length - 1; index >= 0; index--) {
173
+ const run = previousRuns.get(ids[index]);
174
+ if (run)
175
+ return run;
135
176
  }
177
+ return null;
178
+ }
179
+ function previousRunsForAgent(agentId) {
180
+ const ids = previousRunIdsByAgentId.get(agentId) || [];
181
+ return ids.map(id => previousRuns.get(id)).filter((run) => Boolean(run));
136
182
  }
137
183
  export function setWorkerOrchestration(agentId, orchestration) {
138
184
  const slot = workers.get(agentId);
@@ -148,6 +194,7 @@ export function updateWorkerTools(agentId, tools) {
148
194
  slot.attention = null;
149
195
  slot.tools = sanitizeWorkerProgressTools(tools);
150
196
  slot.progressUpdatedAt = Date.now();
197
+ recordWorkerRunProgress(slot.runId, slot.tools);
151
198
  }
152
199
  export function finishWorker(agentId, result, tools = []) {
153
200
  const slot = workers.get(agentId);
@@ -158,6 +205,7 @@ export function finishWorker(agentId, result, tools = []) {
158
205
  slot.result = result;
159
206
  if (tools.length > 0)
160
207
  updateWorkerTools(agentId, tools);
208
+ completeWorkerRun(slot.runId, 'done', result);
161
209
  rememberCompletedRun(slot);
162
210
  slot.pendingReplay = true;
163
211
  }
@@ -168,6 +216,7 @@ export function failWorker(agentId, result) {
168
216
  slot.state = 'failed';
169
217
  slot.completedAt = Date.now();
170
218
  slot.result = result;
219
+ completeWorkerRun(slot.runId, 'failed', result);
171
220
  rememberCompletedRun(slot);
172
221
  slot.pendingReplay = false; // Failed workers don't need replay — no result to feed back to Boss
173
222
  }
@@ -178,27 +227,53 @@ export function cancelWorker(agentId) {
178
227
  slot.state = 'cancelled';
179
228
  slot.completedAt = Date.now();
180
229
  slot.pendingReplay = false;
230
+ completeWorkerRun(slot.runId, 'cancelled', slot.result || '');
181
231
  rememberCompletedRun(slot);
182
232
  workers.delete(agentId);
183
233
  }
184
234
  export function getWorkerProgressSnapshot(agentId) {
185
235
  const slot = workers.get(agentId);
186
- const previous = previousRuns.get(agentId) || null;
187
- if (!slot && !previous)
236
+ const runSlot = slot || [...workers.values()].find(value => value.runId === agentId);
237
+ const previousByRunId = previousRuns.get(agentId) || null;
238
+ const previousByAgent = latestPreviousRunForAgent(agentId);
239
+ const previous = previousByRunId || (runSlot ? latestPreviousRunForAgent(runSlot.agentId) : previousByAgent);
240
+ const currentRun = runSlot?.state === 'running' ? toProgressRun(runSlot) : null;
241
+ const previousRun = runSlot && runSlot.state !== 'running' ? toProgressRun(runSlot) : previous;
242
+ if (!runSlot && !previousRun)
188
243
  return null;
189
244
  return {
190
- agentId,
191
- employeeName: slot?.employeeName || previous?.employeeName || agentId,
192
- current: slot?.state === 'running' ? toProgressRun(slot) : null,
193
- previous: slot && slot.state !== 'running' ? toProgressRun(slot) : previous,
245
+ runId: currentRun?.runId || previousRun?.runId || null,
246
+ agentId: runSlot?.agentId || previousRun?.agentId || agentId,
247
+ employeeName: runSlot?.employeeName || previousRun?.employeeName || agentId,
248
+ current: currentRun,
249
+ previous: previousRun,
250
+ ...(previousRunsForAgent(runSlot?.agentId || previousRun?.agentId || agentId).length > 1
251
+ ? { previousRuns: previousRunsForAgent(runSlot?.agentId || previousRun?.agentId || agentId) }
252
+ : {}),
194
253
  generatedAt: Date.now(),
195
254
  };
196
255
  }
197
256
  export function listWorkerProgressSnapshots() {
198
- const ids = new Set([...workers.keys(), ...previousRuns.keys()]);
199
- return [...ids]
257
+ const snapshots = [...workers.keys()]
200
258
  .map(getWorkerProgressSnapshot)
201
259
  .filter((value) => Boolean(value));
260
+ const seenRunIds = new Set(snapshots.flatMap(snapshot => [
261
+ snapshot.current?.runId,
262
+ snapshot.previous?.runId,
263
+ ]).filter((value) => Boolean(value)));
264
+ for (const run of previousRuns.values()) {
265
+ if (seenRunIds.has(run.runId))
266
+ continue;
267
+ snapshots.push({
268
+ runId: run.runId,
269
+ agentId: run.agentId,
270
+ employeeName: run.employeeName,
271
+ current: null,
272
+ previous: run,
273
+ generatedAt: Date.now(),
274
+ });
275
+ }
276
+ return snapshots;
202
277
  }
203
278
  export function getActiveWorkers() {
204
279
  return [...workers.values()].filter((slot) => slot.state === 'running');
@@ -223,6 +298,9 @@ export function listPendingWorkerResults() {
223
298
  if (slot.state === 'done' && slot.pendingReplay && !slot.replayClaimed && slot.result !== null) {
224
299
  results.push(stripUndefined({
225
300
  agentId: slot.agentId,
301
+ runId: slot.runId,
302
+ employeeName: slot.employeeName,
303
+ taskPreview: previewText(slot.task, 200) || '',
226
304
  text: slot.result,
227
305
  tools: slot.tools.length > 0 ? slot.tools : undefined,
228
306
  meta: slot.replayMeta,
@@ -263,11 +341,14 @@ export function releaseWorkerReplay(agentId) {
263
341
  occurredAt: Date.now(),
264
342
  attempts: slot.replayAttempts,
265
343
  };
344
+ recordWorkerRunAttention(slot.runId, slot.attention);
345
+ completeWorkerRun(slot.runId, 'failed', slot.result || '');
266
346
  rememberCompletedRun(slot);
267
347
  }
268
348
  }
269
349
  export function clearAllWorkers() {
270
350
  workers.clear();
271
351
  previousRuns.clear();
352
+ previousRunIdsByAgentId.clear();
272
353
  }
273
354
  //# sourceMappingURL=worker-registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker-registry.js","sourceRoot":"","sources":["../../../src/orchestrator/worker-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-registry.js","sourceRoot":"","sources":["../../../src/orchestrator/worker-registry.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,mEAAmE;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EACH,WAAW,EACX,2BAA2B,GAI9B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACH,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,GAC1B,MAAM,uBAAuB,CAAC;AAE/B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;AAC9C,MAAM,YAAY,GAAG,IAAI,GAAG,EAA6B,CAAC;AAC1D,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAoB,CAAC;AAyC5D,+EAA+E;AAC/E,mFAAmF;AACnF,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAC/B,QAAQ,CAAa;IAC5B,YAAY,QAAoB;QAC5B,KAAK,CAAC,UAAU,QAAQ,CAAC,YAAY,2BAA2B,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QAChG,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;CACJ;AAID,SAAS,iBAAiB,CAAC,OAAe;IACtC,OAAO,MAAM,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAsB,EAAE,IAAY,EAAE,UAA6B;IAC3F,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrC,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC3C,MAAM,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IACD,MAAM,IAAI,GAAe,cAAc,CAAC;QACpC,KAAK,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,GAAG,CAAC,EAAE;QACf,UAAU,EAAE,GAAG,CAAC,EAAE;QAClB,YAAY,EAAE,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE;QAChC,IAAI;QACJ,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,IAAI;QAChB,KAAK,EAAE,SAAS;QAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,WAAW,EAAE,IAAI;QACjB,aAAa,EAAE,KAAK;QACpB,aAAa,EAAE,KAAK;QACpB,cAAc,EAAE,CAAC;QACjB,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,EAAE;QACT,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,IAAI;QACf,UAAU,EAAE,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS;KAC3F,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC1B,qBAAqB,CAAC;QAClB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE;QAC9C,SAAS,EAAE,IAAI,CAAC,SAAS;KAC5B,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAe;IACzC,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC;AAC9F,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,KAAa,EAAE,UAAkB;IAChF,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AACjC,CAAC;AAED,SAAS,aAAa,CAAC,IAAgB;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC;IACtC,OAAO;QACH,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE;QAC9C,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9C,eAAe,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI;QAC1F,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,KAAK,EAAE,IAAI,CAAC,KAAK;KACpB,CAAC;AACN,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAgB;IACvC,IAAI,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1C,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QAC9C,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB;YAC9D,OAAO,EAAE,IAAI,CAAC,aAAa;gBACvB,CAAC,CAAC,wCAAwC;gBAC1C,CAAC,CAAC,+CAA+C;YACrD,UAAU,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE;YAC1C,QAAQ,EAAE,IAAI,CAAC,cAAc;SAChC,CAAC;IACN,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAe,EAAE,SAAyC;IAClF,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC3B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACpC,wBAAwB,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC7C,kBAAkB,CAAC,OAAO,EAAE;QACxB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,6DAA6D;QACtE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;KACzB,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,KAAK,SAAS;QAAE,OAAO;IACxD,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAe,EAAE,QAAuB;IAC3E,kBAAkB,CAAC,OAAO,EAAE;QACxB,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,wDAAwD;QACjE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;QACtB,QAAQ;KACX,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAC9C,kBAAkB,CAAC,OAAO,EAAE;QACxB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,8DAA8D;QACvE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;KACzB,CAAC,CAAC;AACP,CAAC;AAED,0EAA0E;AAC1E,uEAAuE;AACvE,4CAA4C;AAC5C,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B,SAAS,oBAAoB,CAAC,IAAgB;IAC1C,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO;IACrC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAC5D,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpD,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC/C,OAAO,YAAY,CAAC,IAAI,GAAG,iBAAiB,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QAChD,IAAI,CAAC,MAAM;YAAE,MAAM;QACnB,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3C,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5B,IAAI,SAAS,EAAE,CAAC;YACZ,MAAM,WAAW,GAAG,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACzE,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;YACzD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;gBAAE,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;;gBAC7E,uBAAuB,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;AACL,CAAC;AAED,SAAS,yBAAyB,CAAC,OAAe;IAC9C,MAAM,GAAG,GAAG,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACvD,KAAK,IAAI,KAAK,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;QACnD,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,CAAC;QAC1C,IAAI,GAAG;YAAE,OAAO,GAAG,CAAC;IACxB,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAe;IACzC,MAAM,GAAG,GAAG,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACvD,OAAO,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAA4B,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AACvG,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAe,EAAE,aAAsC;IAC1F,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,KAAgB;IAC/D,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,KAAK,SAAS;QAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC9D,IAAI,CAAC,KAAK,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACpC,uBAAuB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,MAAc,EAAE,QAAmB,EAAE;IAC/E,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;IACpB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACrB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACxD,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,MAAc;IACtD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;IACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACrB,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAChD,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,CAAE,oEAAoE;AACrG,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAe;IACxC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;IACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC9B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC3B,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAC9D,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAAe;IACrD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC;IACrF,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;IAC1D,MAAM,eAAe,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,eAAe,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;IAC7G,MAAM,UAAU,GAAG,OAAO,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChF,MAAM,WAAW,GAAG,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC/F,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAC1C,OAAO;QACH,KAAK,EAAE,UAAU,EAAE,KAAK,IAAI,WAAW,EAAE,KAAK,IAAI,IAAI;QACtD,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,IAAI,OAAO;QAC5D,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,WAAW,EAAE,YAAY,IAAI,OAAO;QAC3E,OAAO,EAAE,UAAU;QACnB,QAAQ,EAAE,WAAW;QACrB,GAAG,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,IAAI,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC;YACpF,CAAC,CAAC,EAAE,YAAY,EAAE,oBAAoB,CAAC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,IAAI,OAAO,CAAC,EAAE;YAC7F,CAAC,CAAC,EAAE,CAAC;QACT,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;KAC1B,CAAC;AACN,CAAC;AAED,MAAM,UAAU,2BAA2B;IACvC,MAAM,SAAS,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;SAChC,GAAG,CAAC,yBAAyB,CAAC;SAC9B,MAAM,CAAC,CAAC,KAAK,EAAmC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IACxE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrD,QAAQ,CAAC,OAAO,EAAE,KAAK;QACvB,QAAQ,CAAC,QAAQ,EAAE,KAAK;KAC3B,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvD,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;QACtC,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,SAAS;QACxC,SAAS,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,GAAG;YACb,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;SAC1B,CAAC,CAAC;IACP,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC5B,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,kBAAkB;IAC9B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;IAC9C,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,uBAAuB;IACnC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO,IAAI,CAAC;IACxC,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,wBAAwB;IACpC,MAAM,OAAO,GAAiK,EAAE,CAAC;IACjL,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC7F,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;gBACxB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE;gBAC9C,IAAI,EAAE,IAAI,CAAC,MAAM;gBACjB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;gBACrD,IAAI,EAAE,IAAI,CAAC,UAAU;aACxB,CAAC,CAAC,CAAC;QACR,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa;QAAE,OAAO,KAAK,CAAC;IACrE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC1B,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC3B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC3B,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAe;IAC/C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC3B,IAAI,CAAC,cAAc,EAAE,CAAC;IACtB,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,qBAAqB,OAAO,4CAA4C,CAAC,CAAC;QACxF,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG;YACb,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,+CAA+C;YACxD,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;YACtB,QAAQ,EAAE,IAAI,CAAC,cAAc;SAChC,CAAC;QACF,wBAAwB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACrD,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QAC3D,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;AACL,CAAC;AAED,MAAM,UAAU,eAAe;IAC3B,OAAO,CAAC,KAAK,EAAE,CAAC;IAChB,YAAY,CAAC,KAAK,EAAE,CAAC;IACrB,uBAAuB,CAAC,KAAK,EAAE,CAAC;AACpC,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { previewText } from './worker-progress.js';
2
+ const MAX_NOTICE_CHARS = 1200;
3
+ const MAX_PREVIEW_CHARS = 600;
4
+ function compactLine(value, max) {
5
+ return previewText(value, max) || '';
6
+ }
7
+ export function buildWorkerReplayNotice(input) {
8
+ const preview = compactLine(input.text, MAX_PREVIEW_CHARS);
9
+ const task = compactLine(input.taskPreview, 180);
10
+ const name = input.employeeName && input.employeeName !== input.agentId
11
+ ? ` (${input.employeeName})`
12
+ : '';
13
+ const toolCount = input.tools?.length ? `\nTool steps captured: ${input.tools.length}` : '';
14
+ const notice = [
15
+ `[worker-replay agent=${input.agentId}${name} run=${input.runId} — delayed result available]`,
16
+ `The original dispatch connection dropped before delivery. The full worker output is not injected here by default.`,
17
+ task ? `Task: ${task}` : '',
18
+ preview ? `Preview: ${preview}` : 'Preview: (empty result)',
19
+ toolCount,
20
+ `Recovery:`,
21
+ `- cli-jaw worker status ${input.runId}`,
22
+ `- cli-jaw worker read ${input.runId} --tail 120`,
23
+ ].filter(Boolean).join('\n');
24
+ return notice.length > MAX_NOTICE_CHARS
25
+ ? `${notice.slice(0, MAX_NOTICE_CHARS - 1)}…`
26
+ : notice;
27
+ }
28
+ //# sourceMappingURL=worker-replay-notice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-replay-notice.js","sourceRoot":"","sources":["../../../src/orchestrator/worker-replay-notice.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAWnD,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC9B,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B,SAAS,WAAW,CAAC,KAAc,EAAE,GAAW;IAC5C,OAAO,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAA8B;IAClE,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,KAAK,KAAK,CAAC,OAAO;QACnE,CAAC,CAAC,KAAK,KAAK,CAAC,YAAY,GAAG;QAC5B,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,0BAA0B,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5F,MAAM,MAAM,GAAG;QACX,wBAAwB,KAAK,CAAC,OAAO,GAAG,IAAI,QAAQ,KAAK,CAAC,KAAK,8BAA8B;QAC7F,mHAAmH;QACnH,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;QAC3B,OAAO,CAAC,CAAC,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC,CAAC,yBAAyB;QAC3D,SAAS;QACT,WAAW;QACX,2BAA2B,KAAK,CAAC,KAAK,EAAE;QACxC,yBAAyB,KAAK,CAAC,KAAK,aAAa;KACpD,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE7B,OAAO,MAAM,CAAC,MAAM,GAAG,gBAAgB;QACnC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,GAAG,CAAC,CAAC,GAAG;QAC7C,CAAC,CAAC,MAAM,CAAC;AACjB,CAAC"}
@@ -0,0 +1,142 @@
1
+ import fs from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { broadcast } from '../core/bus.js';
4
+ import { normalizeWorkerRunStatus, } from '../shared/runtime-observability.js';
5
+ import { previewText } from './worker-progress.js';
6
+ import { ensureWorkerRunDir, readWorkerOutput, WORKER_RUNS_DIR, writeWorkerOutput, workerRunDir, } from './worker-output-store.js';
7
+ const LIST_LIMIT = 100;
8
+ function metaPath(runId) { return join(workerRunDir(runId), 'meta.json'); }
9
+ function eventsPath(runId) { return join(workerRunDir(runId), 'events.jsonl'); }
10
+ function toPublicRecord(record) {
11
+ const { outputFile: _outputFile, ...safe } = record;
12
+ void _outputFile;
13
+ return {
14
+ ...safe,
15
+ hasOutput: record.outputBytes > 0,
16
+ statusCategory: normalizeWorkerRunStatus(record.status),
17
+ };
18
+ }
19
+ function readRecord(runId) {
20
+ try {
21
+ const file = metaPath(runId);
22
+ if (!fs.existsSync(file))
23
+ return null;
24
+ return JSON.parse(fs.readFileSync(file, 'utf8'));
25
+ }
26
+ catch {
27
+ return null;
28
+ }
29
+ }
30
+ function writeRecord(record) {
31
+ ensureWorkerRunDir(record.runId);
32
+ fs.writeFileSync(metaPath(record.runId), `${JSON.stringify(record, null, 2)}\n`);
33
+ }
34
+ function updateRecord(runId, update) {
35
+ const existing = readRecord(runId);
36
+ if (!existing)
37
+ return null;
38
+ const next = { ...existing, ...update, updatedAt: Date.now() };
39
+ writeRecord(next);
40
+ return next;
41
+ }
42
+ function safeEventData(record, extra) {
43
+ return {
44
+ runId: record.runId,
45
+ agentId: record.agentId,
46
+ employeeName: record.employeeName,
47
+ status: record.status,
48
+ statusCategory: normalizeWorkerRunStatus(record.status),
49
+ outputBytes: record.outputBytes,
50
+ ...extra,
51
+ };
52
+ }
53
+ export function createWorkerRunRecord(input) {
54
+ const now = Date.now();
55
+ const record = {
56
+ ...input,
57
+ status: 'running',
58
+ updatedAt: now,
59
+ completedAt: null,
60
+ outputBytes: 0,
61
+ eventSeq: 0,
62
+ };
63
+ writeRecord(record);
64
+ appendWorkerRunEvent(input.runId, 'worker_run_started', { taskPreview: input.taskPreview });
65
+ return toPublicRecord(readRecord(input.runId) || record);
66
+ }
67
+ export function appendWorkerRunEvent(runId, event, data = {}) {
68
+ const record = readRecord(runId);
69
+ if (!record)
70
+ return null;
71
+ const seq = record.eventSeq + 1;
72
+ const entry = { runId, seq, event, ts: Date.now(), data };
73
+ fs.appendFileSync(eventsPath(runId), `${JSON.stringify(entry)}\n`);
74
+ const updated = updateRecord(runId, { eventSeq: seq }) || record;
75
+ broadcast(event, safeEventData(updated, { seq, ...data }));
76
+ return entry;
77
+ }
78
+ export function recordWorkerRunProgress(runId, tools) {
79
+ const safeTools = tools.slice(-20);
80
+ appendWorkerRunEvent(runId, 'worker_run_progress', { tools: safeTools, toolCount: tools.length });
81
+ }
82
+ export function recordWorkerRunAttention(runId, attention) {
83
+ appendWorkerRunEvent(runId, 'worker_run_attention', { attention });
84
+ }
85
+ export function completeWorkerRun(runId, status, outputText) {
86
+ const record = readRecord(runId);
87
+ if (!record)
88
+ return;
89
+ const output = outputText ? writeWorkerOutput(runId, outputText) : { outputFile: undefined, outputBytes: 0 };
90
+ const completedAt = Date.now();
91
+ const safeSummary = output.outputBytes > 0
92
+ ? `${status} output captured (${output.outputBytes} bytes)`
93
+ : previewText(status, 240);
94
+ const update = {
95
+ status,
96
+ completedAt,
97
+ outputBytes: output.outputBytes,
98
+ };
99
+ if (safeSummary)
100
+ update.safeSummary = safeSummary;
101
+ if (output.outputFile)
102
+ update.outputFile = output.outputFile;
103
+ const updated = updateRecord(runId, update) || record;
104
+ const event = status === 'done'
105
+ ? 'worker_run_done'
106
+ : status === 'failed'
107
+ ? 'worker_run_failed'
108
+ : 'worker_run_cancelled';
109
+ appendWorkerRunEvent(runId, event, {
110
+ completedAt,
111
+ outputBytes: updated.outputBytes,
112
+ ...(safeSummary ? { safeSummary } : {}),
113
+ });
114
+ }
115
+ export function listWorkerRunRecords() {
116
+ if (!fs.existsSync(WORKER_RUNS_DIR))
117
+ return [];
118
+ return fs.readdirSync(WORKER_RUNS_DIR, { withFileTypes: true })
119
+ .filter(entry => entry.isDirectory())
120
+ .map(entry => readRecord(entry.name))
121
+ .filter((record) => Boolean(record))
122
+ .sort((a, b) => b.updatedAt - a.updatedAt)
123
+ .slice(0, LIST_LIMIT)
124
+ .map(toPublicRecord);
125
+ }
126
+ export function getWorkerRunRecord(runId) {
127
+ const record = readRecord(runId);
128
+ return record ? toPublicRecord(record) : null;
129
+ }
130
+ export function listWorkerRunEvents(runId) {
131
+ const file = eventsPath(runId);
132
+ if (!fs.existsSync(file))
133
+ return [];
134
+ return fs.readFileSync(file, 'utf8')
135
+ .split('\n')
136
+ .filter(Boolean)
137
+ .map(line => JSON.parse(line));
138
+ }
139
+ export function readWorkerRunOutput(runId, input = {}) {
140
+ return readWorkerOutput(runId, input);
141
+ }
142
+ //# sourceMappingURL=worker-run-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-run-store.js","sourceRoot":"","sources":["../../../src/orchestrator/worker-run-store.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import { startTask, cancelTask, isTaskRunnerActive } from '../bgtask/runner.js';
7
7
  import { notifyTask } from '../bgtask/notifier.js';
8
8
  import { webAiPreset } from '../bgtask/presets.js';
9
9
  import { validateBgTaskSpec } from '../bgtask/types.js';
10
+ import { normalizeBgTaskStatus } from '../shared/runtime-observability.js';
10
11
  import { getCurrentMainMeta } from '../agent/spawn.js';
11
12
  const VALID_STATUSES = new Set(['running', 'complete', 'failed', 'cancelled', 'orphaned']);
12
13
  function onTerminal(taskId) {
@@ -14,6 +15,13 @@ function onTerminal(taskId) {
14
15
  console.error(`[bgtask:${taskId}] notify failed:`, err.message);
15
16
  });
16
17
  }
18
+ function toPublicTask(task) {
19
+ return {
20
+ ...task,
21
+ runnerActive: isTaskRunnerActive(task.id),
22
+ statusCategory: normalizeBgTaskStatus(task.status),
23
+ };
24
+ }
17
25
  export function registerBgtaskRoutes(app, requireAuth) {
18
26
  app.get('/api/bgtask', requireAuth, (req, res) => {
19
27
  const statusRaw = typeof req.query['status'] === 'string' ? req.query['status'] : undefined;
@@ -23,7 +31,7 @@ export function registerBgtaskRoutes(app, requireAuth) {
23
31
  }
24
32
  const limit = Number(req.query['limit']) > 0 ? Number(req.query['limit']) : 100;
25
33
  const tasks = listTasks({ ...(statusRaw ? { status: statusRaw } : {}), limit });
26
- res.json({ tasks: tasks.map((t) => ({ ...t, runnerActive: isTaskRunnerActive(t.id) })) });
34
+ res.json({ tasks: tasks.map(toPublicTask) });
27
35
  });
28
36
  app.get('/api/bgtask/:id', requireAuth, (req, res) => {
29
37
  const task = getTask(String(req.params['id']));
@@ -31,7 +39,7 @@ export function registerBgtaskRoutes(app, requireAuth) {
31
39
  res.status(404).json({ error: 'task not found' });
32
40
  return;
33
41
  }
34
- res.json({ task: { ...task, runnerActive: isTaskRunnerActive(task.id) } });
42
+ res.json({ task: toPublicTask(task) });
35
43
  });
36
44
  app.post('/api/bgtask', requireAuth, async (req, res) => {
37
45
  try {
@@ -75,7 +83,7 @@ export function registerBgtaskRoutes(app, requireAuth) {
75
83
  : getCurrentMainMeta() ?? {};
76
84
  const row = createTask({ kind, spec, originMeta });
77
85
  startTask(row, onTerminal);
78
- res.json({ ok: true, task: row, warnings });
86
+ res.json({ ok: true, task: toPublicTask(row), warnings });
79
87
  }
80
88
  catch (err) {
81
89
  if (err instanceof DuplicateBgTaskError) {
@@ -93,7 +101,8 @@ export function registerBgtaskRoutes(app, requireAuth) {
93
101
  return;
94
102
  }
95
103
  const cancelled = cancelTask(id);
96
- res.json({ ok: true, cancelled, task: getTask(id) });
104
+ const next = getTask(id);
105
+ res.json({ ok: true, cancelled, task: next ? toPublicTask(next) : null });
97
106
  });
98
107
  }
99
108
  //# sourceMappingURL=bgtask.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bgtask.js","sourceRoot":"","sources":["../../../src/routes/bgtask.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bgtask.js","sourceRoot":"","sources":["../../../src/routes/bgtask.ts"],"names":[],"mappings":"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"}