@straiffi/archon 1.11.8 → 1.11.10

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 (142) hide show
  1. package/dist/client/assets/{ActivityView-BKLYfPXE.js → ActivityView-RnE0983a.js} +1 -1
  2. package/dist/client/assets/{GitHubActionsDialog-yqqwcP8z.js → GitHubActionsDialog-PaNJhVzv.js} +1 -1
  3. package/dist/client/assets/{VerificationDialog-DhyIDs1V.js → VerificationDialog-PGrCJ1DJ.js} +1 -1
  4. package/dist/client/assets/{architectureDiagram-3BPJPVTR-5krjaOU4.js → architectureDiagram-3BPJPVTR-CKd1Dmpz.js} +1 -1
  5. package/dist/client/assets/{blockDiagram-GPEHLZMM-Duo2q2gn.js → blockDiagram-GPEHLZMM-M3OjRhA0.js} +1 -1
  6. package/dist/client/assets/{c4Diagram-AAUBKEIU-D2lxLmwB.js → c4Diagram-AAUBKEIU-VWBcGTXO.js} +1 -1
  7. package/dist/client/assets/channel-CBQk1IQf.js +1 -0
  8. package/dist/client/assets/{chunk-2J33WTMH-Dbo5lbSs.js → chunk-2J33WTMH-C4WpCUzU.js} +1 -1
  9. package/dist/client/assets/{chunk-3OPIFGDE-mjZrNxCg.js → chunk-3OPIFGDE-BQ-j87T6.js} +1 -1
  10. package/dist/client/assets/{chunk-5ZQYHXKU-C2nUnqLh.js → chunk-5ZQYHXKU-BCZvyT9u.js} +1 -1
  11. package/dist/client/assets/{chunk-727SXJPM-7eUgm0cn.js → chunk-727SXJPM-DZP_PMNz.js} +1 -1
  12. package/dist/client/assets/{chunk-AQP2D5EJ-DouWpaE0.js → chunk-AQP2D5EJ-Cejit8wh.js} +1 -1
  13. package/dist/client/assets/{chunk-CSCIHK7Q-DesC0Fd7.js → chunk-CSCIHK7Q-CvXC4rkf.js} +1 -1
  14. package/dist/client/assets/{chunk-KSCS5N6A-DAsFowjn.js → chunk-KSCS5N6A-hTgJWrr3.js} +1 -1
  15. package/dist/client/assets/{chunk-L5ZTLDWV-w7V9r0Cw.js → chunk-L5ZTLDWV-bSK1mut3.js} +1 -1
  16. package/dist/client/assets/{chunk-LZXEDZCA-BCnxdvaJ.js → chunk-LZXEDZCA-Y2hnSpRr.js} +2 -2
  17. package/dist/client/assets/{chunk-ND2GUHAM-DO8HdZCX.js → chunk-ND2GUHAM-BiHH5lS5.js} +1 -1
  18. package/dist/client/assets/{chunk-NZK2D7GU-37Rbzvm9.js → chunk-NZK2D7GU-DdxcwTTc.js} +1 -1
  19. package/dist/client/assets/{chunk-O5CBEL6O-DTjB0GGI.js → chunk-O5CBEL6O-BZIbgKJr.js} +1 -1
  20. package/dist/client/assets/{chunk-WU5MYG2G-CAonpz-x.js → chunk-WU5MYG2G-D3yvqt9P.js} +1 -1
  21. package/dist/client/assets/classDiagram-4FO5ZUOK-BjizLQoS.js +1 -0
  22. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-B6qpU-kO.js +1 -0
  23. package/dist/client/assets/{dagre-BM42HDAG-DDET9pbe.js → dagre-BM42HDAG-CZQZPoaH.js} +1 -1
  24. package/dist/client/assets/{diagram-2AECGRRQ-r_bu5Cgo.js → diagram-2AECGRRQ-DU7zsX_b.js} +1 -1
  25. package/dist/client/assets/{diagram-5GNKFQAL-QlPCzkUJ.js → diagram-5GNKFQAL-BCCoHKlp.js} +1 -1
  26. package/dist/client/assets/{diagram-KO2AKTUF-D5SzFOzP.js → diagram-KO2AKTUF-BR_GNJLN.js} +1 -1
  27. package/dist/client/assets/{diagram-LMA3HP47-BJcWw3_s.js → diagram-LMA3HP47-B6LZOUTc.js} +1 -1
  28. package/dist/client/assets/{diagram-OG6HWLK6-CpsR9p94.js → diagram-OG6HWLK6-w89pjkBe.js} +1 -1
  29. package/dist/client/assets/{erDiagram-TEJ5UH35-Dq-K6YrY.js → erDiagram-TEJ5UH35-BReR8ngL.js} +1 -1
  30. package/dist/client/assets/{flowDiagram-I6XJVG4X-39hKkH4n.js → flowDiagram-I6XJVG4X-CGwpJ9iQ.js} +1 -1
  31. package/dist/client/assets/{ganttDiagram-6RSMTGT7-DaeBYOLz.js → ganttDiagram-6RSMTGT7-BcOPz4K9.js} +1 -1
  32. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-CCeo9Czy.js → gitGraphDiagram-PVQCEYII-m6-x38H5.js} +1 -1
  33. package/dist/client/assets/index-D_brbG-0.css +2 -0
  34. package/dist/client/assets/index-yUckGfMu.js +293 -0
  35. package/dist/client/assets/{infoDiagram-5YYISTIA-jgHH1Ta7.js → infoDiagram-5YYISTIA-11iWCl_6.js} +1 -1
  36. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-gYPsFHRd.js → ishikawaDiagram-YF4QCWOH-DbeJ14eh.js} +1 -1
  37. package/dist/client/assets/{journeyDiagram-JHISSGLW-C5m8h46L.js → journeyDiagram-JHISSGLW-BYFdU9SL.js} +1 -1
  38. package/dist/client/assets/{kanban-definition-UN3LZRKU-rag4UxAB.js → kanban-definition-UN3LZRKU-Dyc52bol.js} +1 -1
  39. package/dist/client/assets/{line-CAWxQrG3.js → line-CBauYkto.js} +1 -1
  40. package/dist/client/assets/{mermaid-parser.core-C5Hj2V3U.js → mermaid-parser.core-BBbL8arn.js} +1 -1
  41. package/dist/client/assets/{mermaid.core-BxRoDLxv.js → mermaid.core-CB2mIiiP.js} +3 -3
  42. package/dist/client/assets/{mindmap-definition-RKZ34NQL-BUV37aab.js → mindmap-definition-RKZ34NQL-CvWYGfWn.js} +1 -1
  43. package/dist/client/assets/{pieDiagram-4H26LBE5-CMwVVhpZ.js → pieDiagram-4H26LBE5-BsbIF0rU.js} +1 -1
  44. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-DYHRB097.js → quadrantDiagram-W4KKPZXB-Bvs09UnJ.js} +1 -1
  45. package/dist/client/assets/{requirementDiagram-4Y6WPE33-BLtNTWtR.js → requirementDiagram-4Y6WPE33-B3U5xSYZ.js} +1 -1
  46. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-Bcd-UVHZ.js → sankeyDiagram-5OEKKPKP-Dds8cy2g.js} +1 -1
  47. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-Die4-puP.js → sequenceDiagram-3UESZ5HK-BoMb08Ay.js} +1 -1
  48. package/dist/client/assets/{stateDiagram-AJRCARHV-TBbOyQST.js → stateDiagram-AJRCARHV-atm7kYDg.js} +1 -1
  49. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-EYJsus1Q.js +1 -0
  50. package/dist/client/assets/{timeline-definition-PNZ67QCA-CZ3E6e1X.js → timeline-definition-PNZ67QCA-C7U--kCB.js} +1 -1
  51. package/dist/client/assets/{vennDiagram-CIIHVFJN-CY_kofMf.js → vennDiagram-CIIHVFJN-BoPWwPSI.js} +1 -1
  52. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-TzBIV1Er.js → wardleyDiagram-YWT4CUSO-CJ6Y7g3b.js} +1 -1
  53. package/dist/client/assets/{xychartDiagram-2RQKCTM6-BTvKU2GO.js → xychartDiagram-2RQKCTM6-rN5shXue.js} +1 -1
  54. package/dist/client/index.html +2 -2
  55. package/dist/server/db.js +2 -0
  56. package/dist/server/db.js.map +1 -1
  57. package/dist/server/index.js +212 -238
  58. package/dist/server/index.js.map +1 -1
  59. package/dist/server/lib/agent.js +23 -7
  60. package/dist/server/lib/agent.js.map +1 -1
  61. package/dist/server/lib/agentProvider.js +62 -15
  62. package/dist/server/lib/agentProvider.js.map +1 -1
  63. package/dist/server/lib/bundleCleanupManagement.js +181 -0
  64. package/dist/server/lib/bundleCleanupManagement.js.map +1 -0
  65. package/dist/server/lib/bundleCleanupRoutes.js +36 -0
  66. package/dist/server/lib/bundleCleanupRoutes.js.map +1 -0
  67. package/dist/server/lib/bundleDeletion.js +257 -0
  68. package/dist/server/lib/bundleDeletion.js.map +1 -0
  69. package/dist/server/lib/bundleDeletionRoutes.js +73 -0
  70. package/dist/server/lib/bundleDeletionRoutes.js.map +1 -0
  71. package/dist/server/lib/bundleDeletionSchema.js +134 -0
  72. package/dist/server/lib/bundleDeletionSchema.js.map +1 -0
  73. package/dist/server/lib/bundleDeletionStore.js +18 -0
  74. package/dist/server/lib/bundleDeletionStore.js.map +1 -0
  75. package/dist/server/lib/bundleWorktreeCleanup.js +160 -0
  76. package/dist/server/lib/bundleWorktreeCleanup.js.map +1 -0
  77. package/dist/server/lib/codexAgentProvider.js +186 -123
  78. package/dist/server/lib/codexAgentProvider.js.map +1 -1
  79. package/dist/server/lib/diffExplanation.js +485 -0
  80. package/dist/server/lib/diffExplanation.js.map +1 -0
  81. package/dist/server/lib/diffExplanationJobs.js +605 -0
  82. package/dist/server/lib/diffExplanationJobs.js.map +1 -0
  83. package/dist/server/lib/diffExplanationRoutes.js +236 -0
  84. package/dist/server/lib/diffExplanationRoutes.js.map +1 -0
  85. package/dist/server/lib/dockerSandboxCleanup.js +68 -0
  86. package/dist/server/lib/dockerSandboxCleanup.js.map +1 -0
  87. package/dist/server/lib/dockerSandboxEnvironmentOperations.js +4 -3
  88. package/dist/server/lib/dockerSandboxEnvironmentOperations.js.map +1 -1
  89. package/dist/server/lib/dockerSandboxExecutionEnvironment.js +35 -59
  90. package/dist/server/lib/dockerSandboxExecutionEnvironment.js.map +1 -1
  91. package/dist/server/lib/dockerSandboxReleaseProfiles.js +1 -1
  92. package/dist/server/lib/dockerSandboxReleaseProfiles.js.map +1 -1
  93. package/dist/server/lib/executionEnvironmentOperations.js +7 -2
  94. package/dist/server/lib/executionEnvironmentOperations.js.map +1 -1
  95. package/dist/server/lib/executionEnvironmentReconciliation.js +34 -169
  96. package/dist/server/lib/executionEnvironmentReconciliation.js.map +1 -1
  97. package/dist/server/lib/executionEnvironmentTargetCleanup.js +232 -0
  98. package/dist/server/lib/executionEnvironmentTargetCleanup.js.map +1 -0
  99. package/dist/server/lib/executionEnvironments.js +1 -0
  100. package/dist/server/lib/executionEnvironments.js.map +1 -1
  101. package/dist/server/lib/executionTargets.js +1 -1
  102. package/dist/server/lib/executionTargets.js.map +1 -1
  103. package/dist/server/lib/git.js +205 -35
  104. package/dist/server/lib/git.js.map +1 -1
  105. package/dist/server/lib/i18n/resources.js +10 -0
  106. package/dist/server/lib/i18n/resources.js.map +1 -1
  107. package/dist/server/lib/lightweightPrompt.js +284 -52
  108. package/dist/server/lib/lightweightPrompt.js.map +1 -1
  109. package/dist/server/lib/oneShotCancellation.js +54 -0
  110. package/dist/server/lib/oneShotCancellation.js.map +1 -0
  111. package/dist/server/lib/opencodeExecutionReliability.js +46 -2
  112. package/dist/server/lib/opencodeExecutionReliability.js.map +1 -1
  113. package/dist/server/lib/projectMemoryScan.js +3 -46
  114. package/dist/server/lib/projectMemoryScan.js.map +1 -1
  115. package/dist/server/lib/promptDiffSafety.js +53 -0
  116. package/dist/server/lib/promptDiffSafety.js.map +1 -0
  117. package/dist/server/lib/repositorySecrets.js +69 -0
  118. package/dist/server/lib/repositorySecrets.js.map +1 -0
  119. package/dist/server/lib/tickets.js +3 -2
  120. package/dist/server/lib/tickets.js.map +1 -1
  121. package/dist/server/lib/types.js.map +1 -1
  122. package/dist/server/lib/unifiedDiff.js +459 -0
  123. package/dist/server/lib/unifiedDiff.js.map +1 -0
  124. package/dist/server/lib/workspaceDiff.js +156 -0
  125. package/dist/server/lib/workspaceDiff.js.map +1 -0
  126. package/dist/server/lib/workspaceDiffRoutes.js +63 -0
  127. package/dist/server/lib/workspaceDiffRoutes.js.map +1 -0
  128. package/dist/server/lib/workspaceTargets.js +88 -0
  129. package/dist/server/lib/workspaceTargets.js.map +1 -0
  130. package/dist/server/workers/chat.js +71 -1
  131. package/dist/server/workers/chat.js.map +1 -1
  132. package/dist/server/workers/plan.js +24 -2
  133. package/dist/server/workers/plan.js.map +1 -1
  134. package/dist/server/workers/review.js +19 -13
  135. package/dist/server/workers/review.js.map +1 -1
  136. package/package.json +1 -1
  137. package/dist/client/assets/channel-Cf2U7nU4.js +0 -1
  138. package/dist/client/assets/classDiagram-4FO5ZUOK-CK8VsU-L.js +0 -1
  139. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-RvySOEwt.js +0 -1
  140. package/dist/client/assets/index-B9-M1vEw.js +0 -287
  141. package/dist/client/assets/index-CbYT3N3U.css +0 -2
  142. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-BRotXz7h.js +0 -1
@@ -4,6 +4,16 @@ export const serverResources = {
4
4
  common: {
5
5
  appName: 'Archon',
6
6
  requestFailed: 'Request failed.',
7
+ bundleCleanup: {
8
+ notFound: 'Cleanup job not found',
9
+ active: 'Cleanup is active; wait for the current attempt to finish',
10
+ resourcesBusy: 'Cleanup resources are still owned by an active execution or operation',
11
+ retryNotAllowed: 'Only pending or blocked cleanup in an existing project can be retried',
12
+ statusChanged: 'Cleanup status changed; refresh the cleanup list',
13
+ claimLost: 'Cleanup claim was lost',
14
+ archiveUnverified: 'Archived sandbox ownership cannot be verified; the workspace remains quarantined',
15
+ terminationUnverified: 'Sandbox termination is still unverified; the workspace remains quarantined',
16
+ },
7
17
  },
8
18
  },
9
19
  };
@@ -1 +1 @@
1
- {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../../server/lib/i18n/resources.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAA;AAEzC,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,EAAE,EAAE;QACF,MAAM,EAAE;YACN,OAAO,EAAE,QAAQ;YACjB,aAAa,EAAE,iBAAiB;SACjC;KACF;CACO,CAAA"}
1
+ {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../../server/lib/i18n/resources.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAA;AAEzC,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,EAAE,EAAE;QACF,MAAM,EAAE;YACN,OAAO,EAAE,QAAQ;YACjB,aAAa,EAAE,iBAAiB;YAChC,aAAa,EAAE;gBACb,QAAQ,EAAE,uBAAuB;gBACjC,MAAM,EAAE,2DAA2D;gBACnE,aAAa,EAAE,uEAAuE;gBACtF,eAAe,EAAE,uEAAuE;gBACxF,aAAa,EAAE,kDAAkD;gBACjE,SAAS,EAAE,wBAAwB;gBACnC,iBAAiB,EAAE,kFAAkF;gBACrG,qBAAqB,EAAE,4EAA4E;aACpG;SACF;KACF;CACO,CAAA"}
@@ -1,17 +1,66 @@
1
1
  import { requireExecutableAgent } from './agentCatalog.js';
2
2
  import { runOneShotAgentForTool } from './oneShotAgent.js';
3
+ import { getAbortReason, observeChildProcessClose, OneShotCancellationTerminationError, terminateOneShotProcess, } from './oneShotCancellation.js';
3
4
  import { createExecutionRun, transitionExecutionRun } from './executionRuns.js';
4
5
  import { createExecutionProfileSelectionMetadata } from './executionRunAuthority.js';
5
6
  import { createExecutionTargetKey, resolveExecutionTarget } from './executionTargets.js';
6
7
  import { resolveWorkloadExecutionEnvironment, WorkloadExecutionEnvironmentFailure } from './workloadExecutionEnvironment.js';
7
8
  import { createWorkspaceProcessEnvironment } from './workspaceProcessEnvironment.js';
9
+ class LightweightPromptShutdownError extends Error {
10
+ constructor() {
11
+ super('Server shutdown interrupted the helper prompt.');
12
+ this.name = 'LightweightPromptShutdownError';
13
+ }
14
+ }
8
15
  const LIGHTWEIGHT_PROMPT_LEASE_WAIT_TIMEOUT_MS = 30 * 60 * 1000;
9
16
  const LIGHTWEIGHT_PROMPT_LEASE_RETRY_MS = 100;
17
+ const LIGHTWEIGHT_PROMPT_CLEANUP_TIMEOUT_MS = 10_000;
10
18
  const lightweightPromptQueues = new Map();
11
19
  const runningLightweightPromptQueues = new Set();
20
+ const activeLightweightPrompts = new Set();
12
21
  let lightweightPromptSequence = 0;
13
- const waitForLeaseRetry = () => new Promise(resolve => {
14
- setTimeout(resolve, LIGHTWEIGHT_PROMPT_LEASE_RETRY_MS);
22
+ let lightweightPromptAdmissionsOpen = false;
23
+ const throwIfAborted = (signal) => {
24
+ if (signal?.aborted) {
25
+ throw getAbortReason(signal);
26
+ }
27
+ };
28
+ const createCleanupSignal = (signal) => {
29
+ const timeoutSignal = AbortSignal.timeout(LIGHTWEIGHT_PROMPT_CLEANUP_TIMEOUT_MS);
30
+ return signal && !signal.aborted ? AbortSignal.any([signal, timeoutSignal]) : timeoutSignal;
31
+ };
32
+ const createAcquisitionSignal = (signal) => {
33
+ const controller = new AbortController();
34
+ const onAbort = () => controller.abort(getAbortReason(signal));
35
+ if (signal?.aborted) {
36
+ onAbort();
37
+ }
38
+ else {
39
+ signal?.addEventListener('abort', onAbort, { once: true });
40
+ }
41
+ return {
42
+ signal: controller.signal,
43
+ dispose: () => signal?.removeEventListener('abort', onAbort),
44
+ };
45
+ };
46
+ const waitForLeaseRetry = (signal) => new Promise((resolve, reject) => {
47
+ if (signal?.aborted) {
48
+ reject(getAbortReason(signal));
49
+ return;
50
+ }
51
+ const finish = (error) => {
52
+ clearTimeout(timer);
53
+ signal?.removeEventListener('abort', onAbort);
54
+ if (error !== undefined) {
55
+ reject(error);
56
+ return;
57
+ }
58
+ resolve();
59
+ };
60
+ const onAbort = () => finish(getAbortReason(signal));
61
+ const timer = setTimeout(() => finish(), LIGHTWEIGHT_PROMPT_LEASE_RETRY_MS);
62
+ timer.unref?.();
63
+ signal?.addEventListener('abort', onAbort, { once: true });
15
64
  });
16
65
  const getPromptPriority = (initiatedBy) => {
17
66
  if (initiatedBy === 'user') {
@@ -40,25 +89,55 @@ const drainLightweightPromptQueue = async (key) => {
40
89
  runningLightweightPromptQueues.delete(key);
41
90
  }
42
91
  };
43
- const enqueueLightweightPrompt = (key, priority, task) => new Promise((resolve, reject) => {
92
+ const enqueueLightweightPrompt = (key, priority, signal, task, onQueuedAbort) => new Promise((resolve, reject) => {
93
+ if (signal?.aborted) {
94
+ onQueuedAbort();
95
+ reject(getAbortReason(signal));
96
+ return;
97
+ }
44
98
  const queue = lightweightPromptQueues.get(key) ?? [];
45
- queue.push({
99
+ let queued = true;
100
+ const cleanup = () => signal?.removeEventListener('abort', onAbort);
101
+ const pending = {
46
102
  priority,
47
103
  sequence: lightweightPromptSequence++,
48
104
  run: async () => {
105
+ queued = false;
106
+ cleanup();
49
107
  try {
108
+ throwIfAborted(signal);
50
109
  resolve(await task());
51
110
  }
52
111
  catch (error) {
53
112
  reject(error);
54
113
  }
55
114
  },
56
- });
115
+ };
116
+ const onAbort = () => {
117
+ if (!queued) {
118
+ return;
119
+ }
120
+ queued = false;
121
+ cleanup();
122
+ const index = queue.indexOf(pending);
123
+ if (index >= 0) {
124
+ queue.splice(index, 1);
125
+ }
126
+ onQueuedAbort();
127
+ reject(getAbortReason(signal));
128
+ };
129
+ signal?.addEventListener('abort', onAbort, { once: true });
130
+ queue.push(pending);
57
131
  lightweightPromptQueues.set(key, queue);
58
132
  void drainLightweightPromptQueue(key);
59
133
  });
60
- const runExecutionContextCommand = (context, command, args) => new Promise((resolve, reject) => {
134
+ const runExecutionContextCommand = (context, command, args, signal) => new Promise((resolve, reject) => {
135
+ if (signal?.aborted) {
136
+ reject(getAbortReason(signal));
137
+ return;
138
+ }
61
139
  let settled = false;
140
+ let cancellationRequested = false;
62
141
  const handle = context.provider.execute({
63
142
  phase: 'setup',
64
143
  target: context.target,
@@ -71,47 +150,100 @@ const runExecutionContextCommand = (context, command, args) => new Promise((reso
71
150
  detached: false,
72
151
  placementExecutionRunId: context.placementExecutionRunId,
73
152
  });
153
+ const childCloseObservation = observeChildProcessClose(handle.child);
154
+ const childClose = childCloseObservation.promise;
74
155
  const stderr = [];
75
- handle.child.stderr?.on('data', chunk => stderr.push(Buffer.from(chunk)));
76
- void handle.placementFailure.then(failure => {
77
- if (failure && !settled) {
78
- settled = true;
79
- reject(failure);
156
+ const onStderrData = (chunk) => stderr.push(Buffer.from(chunk));
157
+ const cleanup = () => {
158
+ signal?.removeEventListener('abort', onAbort);
159
+ handle.child.stderr?.removeListener('data', onStderrData);
160
+ handle.child.removeListener('error', onError);
161
+ handle.child.removeListener('close', onClose);
162
+ childCloseObservation.dispose();
163
+ };
164
+ const rejectOnce = (error) => {
165
+ if (settled || cancellationRequested) {
166
+ return;
80
167
  }
81
- });
82
- handle.child.on('error', error => {
83
- if (!settled) {
84
- settled = true;
85
- reject(error);
168
+ settled = true;
169
+ cleanup();
170
+ reject(error);
171
+ };
172
+ const onAbort = () => {
173
+ if (settled || cancellationRequested) {
174
+ return;
86
175
  }
87
- });
88
- handle.child.on('close', code => {
89
- if (settled) {
176
+ cancellationRequested = true;
177
+ const reason = getAbortReason(signal);
178
+ void terminateOneShotProcess(handle.interrupt, childClose).then(() => {
179
+ if (settled) {
180
+ return;
181
+ }
182
+ settled = true;
183
+ cleanup();
184
+ reject(reason);
185
+ }, error => {
186
+ if (settled) {
187
+ return;
188
+ }
189
+ settled = true;
190
+ cleanup();
191
+ reject(new OneShotCancellationTerminationError(reason, { cause: error }));
192
+ });
193
+ };
194
+ const onError = (error) => rejectOnce(error);
195
+ const onClose = (code) => {
196
+ if (settled || cancellationRequested) {
90
197
  return;
91
198
  }
92
199
  settled = true;
200
+ cleanup();
93
201
  if (code === 0) {
94
202
  resolve();
95
203
  return;
96
204
  }
97
205
  reject(new Error(Buffer.concat(stderr).toString().trim() || `${command} exited with code ${code}`));
206
+ };
207
+ handle.child.stderr?.on('data', onStderrData);
208
+ handle.child.on('error', onError);
209
+ handle.child.on('close', onClose);
210
+ signal?.addEventListener('abort', onAbort, { once: true });
211
+ if (signal?.aborted) {
212
+ onAbort();
213
+ }
214
+ void handle.placementFailure.then(failure => {
215
+ if (failure) {
216
+ rejectOnce(failure);
217
+ }
98
218
  });
99
219
  });
100
- export const resolveLightweightPromptExecutionContext = async ({ project, executionRunId, execution, target: descriptor, }) => {
101
- const target = await resolveExecutionTarget({ project, descriptor });
220
+ export const resolveLightweightPromptExecutionContext = async ({ project, executionRunId, execution, target: descriptor, signal, }) => {
221
+ throwIfAborted(signal);
222
+ const target = await resolveExecutionTarget({ project, descriptor, signal });
102
223
  const lease = { release: null };
224
+ const acquisition = createAcquisitionSignal(signal);
103
225
  try {
104
- const environment = await resolveWorkloadExecutionEnvironment({
105
- project,
106
- executionRunId,
107
- agent: execution.tool,
108
- model: execution.model ?? null,
109
- target,
110
- workload: 'plan',
111
- onLeaseAcquired: release => {
112
- lease.release = release;
113
- },
114
- });
226
+ throwIfAborted(signal);
227
+ const environment = await (async () => {
228
+ try {
229
+ return await resolveWorkloadExecutionEnvironment({
230
+ project,
231
+ executionRunId,
232
+ agent: execution.tool,
233
+ model: execution.model ?? null,
234
+ target,
235
+ workload: 'plan',
236
+ signal: acquisition.signal,
237
+ onLeaseAcquired: release => {
238
+ lease.release = release;
239
+ },
240
+ });
241
+ }
242
+ finally {
243
+ acquisition.dispose();
244
+ }
245
+ })();
246
+ throwIfAborted(signal);
115
247
  lease.release = null;
116
248
  return {
117
249
  context: {
@@ -126,13 +258,22 @@ export const resolveLightweightPromptExecutionContext = async ({ project, execut
126
258
  };
127
259
  }
128
260
  catch (error) {
129
- await lease.release?.();
261
+ try {
262
+ await lease.release?.();
263
+ }
264
+ catch (releaseError) {
265
+ console.error('[lightweight-prompt] environment release after acquisition failure failed', {
266
+ executionRunId,
267
+ releaseError,
268
+ });
269
+ }
130
270
  throw error;
131
271
  }
132
272
  };
133
273
  const resolveQueuedLightweightPromptExecutionContext = async (input) => {
134
274
  const deadline = Date.now() + LIGHTWEIGHT_PROMPT_LEASE_WAIT_TIMEOUT_MS;
135
275
  while (true) {
276
+ throwIfAborted(input.signal);
136
277
  try {
137
278
  return await resolveLightweightPromptExecutionContext(input);
138
279
  }
@@ -143,11 +284,12 @@ const resolveQueuedLightweightPromptExecutionContext = async (input) => {
143
284
  if (Date.now() >= deadline) {
144
285
  throw new Error('Timed out waiting for the Docker Sandbox to become available for the helper prompt.', { cause: error });
145
286
  }
146
- await waitForLeaseRetry();
287
+ await waitForLeaseRetry(input.signal);
147
288
  }
148
289
  }
149
290
  };
150
- export const runLightweightPrompt = async ({ tool, model, variant }, prompt, context, workingDirectory = context.target?.workspacePath) => {
291
+ export const runLightweightPrompt = async ({ tool, model, variant }, prompt, context, workingDirectory = context.target?.workspacePath, signal) => {
292
+ throwIfAborted(signal);
151
293
  requireExecutableAgent(tool);
152
294
  if (!workingDirectory) {
153
295
  throw new Error('A lightweight prompt requires a working directory');
@@ -164,9 +306,10 @@ export const runLightweightPrompt = async ({ tool, model, variant }, prompt, con
164
306
  opencodeRuntimeIdentity: context.provider.kind === 'docker_sandbox'
165
307
  ? context.opencodeRuntimeIdentity ?? null
166
308
  : null,
309
+ signal,
167
310
  }, context);
168
311
  };
169
- export const runTrackedLightweightPrompt = async ({ project, execution, target, initiatedBy = 'user', workingDirectory, parentRunId = null, sourceReference, }, prompt) => {
312
+ const executeTrackedLightweightPrompt = async ({ project, execution, target, initiatedBy = 'user', workingDirectory, parentRunId = null, sourceReference, helperPurpose, signal, }, prompt) => {
170
313
  const { tool, model, variant } = execution;
171
314
  requireExecutableAgent(tool);
172
315
  const run = createExecutionRun({
@@ -185,12 +328,27 @@ export const runTrackedLightweightPrompt = async ({ project, execution, target,
185
328
  helper_variant: variant ?? null,
186
329
  target_kind: target.kind,
187
330
  target_bundle_id: target.bundleId,
331
+ ...(helperPurpose ? { helper_purpose: helperPurpose } : {}),
188
332
  ...createExecutionProfileSelectionMetadata(project.id),
189
333
  },
190
334
  eventType: 'helper_prompt_created',
191
335
  });
336
+ if (signal?.aborted) {
337
+ const interrupted = getAbortReason(signal) instanceof LightweightPromptShutdownError;
338
+ transitionExecutionRun({
339
+ projectId: project.id,
340
+ runId: run.id,
341
+ status: interrupted ? 'interrupted' : 'cancelled',
342
+ domainStatus: interrupted ? 'interrupted' : 'cancelled',
343
+ failure: interrupted
344
+ ? { code: 'server_shutdown', message: 'Server shutdown interrupted the helper prompt.' }
345
+ : null,
346
+ eventType: interrupted ? 'helper_prompt_interrupted' : 'helper_prompt_cancelled',
347
+ });
348
+ throw getAbortReason(signal);
349
+ }
192
350
  const queueKey = createExecutionTargetKey(project.id, target);
193
- return enqueueLightweightPrompt(queueKey, getPromptPriority(initiatedBy), async () => {
351
+ return enqueueLightweightPrompt(queueKey, getPromptPriority(initiatedBy), signal, async () => {
194
352
  let release = null;
195
353
  let resolvedContext = null;
196
354
  let removeProviderWorkingDirectory = false;
@@ -200,7 +358,11 @@ export const runTrackedLightweightPrompt = async ({ project, execution, target,
200
358
  executionRunId: run.id,
201
359
  execution,
202
360
  target,
361
+ signal,
203
362
  });
363
+ release = resolved.release;
364
+ resolvedContext = resolved.context;
365
+ throwIfAborted(signal);
204
366
  transitionExecutionRun({
205
367
  projectId: project.id,
206
368
  runId: run.id,
@@ -208,19 +370,17 @@ export const runTrackedLightweightPrompt = async ({ project, execution, target,
208
370
  domainStatus: 'running',
209
371
  eventType: 'helper_prompt_started',
210
372
  });
211
- release = resolved.release;
212
- resolvedContext = resolved.context;
213
373
  if (workingDirectory && resolved.context.provider.kind === 'docker_sandbox') {
214
374
  if (!/^\/tmp\/archon-context-scan-[^/]+$/.test(workingDirectory)) {
215
375
  throw new Error('Docker Sandbox isolated helper directories must use the project context scan namespace');
216
376
  }
217
- await runExecutionContextCommand(resolved.context, 'mkdir', ['-p', workingDirectory]);
218
377
  removeProviderWorkingDirectory = true;
378
+ await runExecutionContextCommand(resolved.context, 'mkdir', ['-p', workingDirectory], signal);
219
379
  resolvedContext = { ...resolved.context, isolatedWorkingDirectory: workingDirectory };
220
380
  }
221
- const output = await runLightweightPrompt(execution, prompt, resolvedContext, workingDirectory);
381
+ const output = await runLightweightPrompt(execution, prompt, resolvedContext, workingDirectory, signal);
222
382
  if (removeProviderWorkingDirectory) {
223
- await runExecutionContextCommand(resolved.context, 'rm', ['-rf', workingDirectory]);
383
+ await runExecutionContextCommand(resolved.context, 'rm', ['-rf', workingDirectory], createCleanupSignal(signal));
224
384
  removeProviderWorkingDirectory = false;
225
385
  }
226
386
  await release();
@@ -235,30 +395,65 @@ export const runTrackedLightweightPrompt = async ({ project, execution, target,
235
395
  return output;
236
396
  }
237
397
  catch (error) {
238
- if (removeProviderWorkingDirectory && resolvedContext) {
398
+ const resolveInterruptionReason = () => {
399
+ const signalReason = signal?.aborted ? getAbortReason(signal) : null;
400
+ return error === signalReason
401
+ ? signalReason
402
+ : error instanceof OneShotCancellationTerminationError
403
+ ? error.reason
404
+ : null;
405
+ };
406
+ let interruptionReason = resolveInterruptionReason();
407
+ const terminationConfirmed = !(error instanceof OneShotCancellationTerminationError);
408
+ if (removeProviderWorkingDirectory && resolvedContext && terminationConfirmed) {
239
409
  try {
240
- await runExecutionContextCommand(resolvedContext, 'rm', ['-rf', workingDirectory]);
410
+ await runExecutionContextCommand(resolvedContext, 'rm', ['-rf', workingDirectory], createCleanupSignal(signal));
241
411
  }
242
- catch {
243
- // The original failure remains authoritative; provider release below still runs.
412
+ catch (cleanupError) {
413
+ if (cleanupError instanceof OneShotCancellationTerminationError) {
414
+ error = cleanupError;
415
+ }
244
416
  }
245
417
  }
246
- if (release) {
418
+ interruptionReason = resolveInterruptionReason();
419
+ const cleanupTerminationConfirmed = !(error instanceof OneShotCancellationTerminationError);
420
+ if (release && terminationConfirmed && cleanupTerminationConfirmed) {
247
421
  try {
248
422
  await release();
249
423
  }
250
424
  catch (releaseError) {
251
- error = new Error('Helper execution environment could not be released', { cause: releaseError });
425
+ if (!interruptionReason) {
426
+ error = new Error('Helper execution environment could not be released', { cause: releaseError });
427
+ }
252
428
  }
253
429
  }
430
+ interruptionReason = resolveInterruptionReason();
431
+ const interrupted = interruptionReason instanceof LightweightPromptShutdownError;
432
+ const cancelled = interruptionReason !== null && !interrupted;
254
433
  transitionExecutionRun({
255
434
  projectId: project.id,
256
435
  runId: run.id,
257
- status: 'failed',
258
- domainStatus: 'failed',
259
- failure: { code: 'helper_prompt_failed', message: error instanceof Error ? error.message : String(error) },
260
- eventType: 'helper_prompt_failed',
436
+ status: interrupted ? 'interrupted' : cancelled ? 'cancelled' : 'failed',
437
+ domainStatus: interrupted ? 'interrupted' : cancelled ? 'cancelled' : 'failed',
438
+ failure: interrupted
439
+ ? { code: 'server_shutdown', message: 'Server shutdown interrupted the helper prompt.' }
440
+ : cancelled
441
+ ? null
442
+ : {
443
+ code: 'helper_prompt_failed',
444
+ message: helperPurpose === 'workspace_change_explanation'
445
+ ? 'Workspace change explanation helper failed.'
446
+ : error instanceof Error ? error.message : String(error),
447
+ },
448
+ eventType: interrupted
449
+ ? 'helper_prompt_interrupted'
450
+ : cancelled
451
+ ? 'helper_prompt_cancelled'
452
+ : 'helper_prompt_failed',
261
453
  });
454
+ if (interruptionReason) {
455
+ throw error;
456
+ }
262
457
  if (!model) {
263
458
  throw error;
264
459
  }
@@ -266,6 +461,43 @@ export const runTrackedLightweightPrompt = async ({ project, execution, target,
266
461
  const selection = variant ? `${model} (${variant})` : model;
267
462
  throw new Error(`Configured Helper model "${selection}" for ${agent} could not run. Verify that the model is available or select another Helper model. ${error instanceof Error ? error.message : String(error)}`, { cause: error });
268
463
  }
464
+ }, () => {
465
+ const interrupted = getAbortReason(signal) instanceof LightweightPromptShutdownError;
466
+ transitionExecutionRun({
467
+ projectId: project.id,
468
+ runId: run.id,
469
+ status: interrupted ? 'interrupted' : 'cancelled',
470
+ domainStatus: interrupted ? 'interrupted' : 'cancelled',
471
+ failure: interrupted
472
+ ? { code: 'server_shutdown', message: 'Server shutdown interrupted the helper prompt.' }
473
+ : null,
474
+ eventType: interrupted ? 'helper_prompt_interrupted' : 'helper_prompt_cancelled',
475
+ });
269
476
  });
270
477
  };
478
+ export const runTrackedLightweightPrompt = (input, prompt) => {
479
+ if (!lightweightPromptAdmissionsOpen) {
480
+ return Promise.reject(new LightweightPromptShutdownError());
481
+ }
482
+ const controller = new AbortController();
483
+ const signal = input.signal
484
+ ? AbortSignal.any([input.signal, controller.signal])
485
+ : controller.signal;
486
+ const completion = executeTrackedLightweightPrompt({ ...input, signal }, prompt);
487
+ const active = { controller, completion };
488
+ activeLightweightPrompts.add(active);
489
+ void completion.then(() => activeLightweightPrompts.delete(active), () => activeLightweightPrompts.delete(active));
490
+ return completion;
491
+ };
492
+ export const openLightweightPromptAdmissions = () => {
493
+ lightweightPromptAdmissionsOpen = true;
494
+ };
495
+ export const shutdownLightweightPrompts = async () => {
496
+ lightweightPromptAdmissionsOpen = false;
497
+ const active = [...activeLightweightPrompts];
498
+ for (const prompt of active) {
499
+ prompt.controller.abort(new LightweightPromptShutdownError());
500
+ }
501
+ await Promise.allSettled(active.map(prompt => prompt.completion));
502
+ };
271
503
  //# sourceMappingURL=lightweightPrompt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lightweightPrompt.js","sourceRoot":"","sources":["../../../server/lib/lightweightPrompt.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC/E,OAAO,EAAE,uCAAuC,EAAE,MAAM,4BAA4B,CAAA;AACpF,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAkC,MAAM,uBAAuB,CAAA;AACxH,OAAO,EAAE,mCAAmC,EAAE,mCAAmC,EAAE,MAAM,mCAAmC,CAAA;AAC5H,OAAO,EAAE,iCAAiC,EAAE,MAAM,kCAAkC,CAAA;AAqCpF,MAAM,wCAAwC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AAC/D,MAAM,iCAAiC,GAAG,GAAG,CAAA;AAC7C,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAsC,CAAA;AAC7E,MAAM,8BAA8B,GAAG,IAAI,GAAG,EAAU,CAAA;AACxD,IAAI,yBAAyB,GAAG,CAAC,CAAA;AAEjC,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;IAC1D,UAAU,CAAC,OAAO,EAAE,iCAAiC,CAAC,CAAA;AACxD,CAAC,CAAC,CAAA;AAEF,MAAM,iBAAiB,GAAG,CAAC,WAAkC,EAAE,EAAE;IAC/D,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,CAAA;IACV,CAAC;IACD,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;QACjC,OAAO,CAAC,CAAA;IACV,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AAED,MAAM,2BAA2B,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE;IACxD,IAAI,8BAA8B,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5C,OAAM;IACR,CAAC;IACD,8BAA8B,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACvC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;YAC7F,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;YAC7B,MAAM,OAAO,EAAE,GAAG,EAAE,CAAA;QACtB,CAAC;IACH,CAAC;YAAS,CAAC;QACT,uBAAuB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACnC,8BAA8B,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC5C,CAAC;AACH,CAAC,CAAA;AAED,MAAM,wBAAwB,GAAG,CAC/B,GAAW,EACX,QAAgB,EAChB,IAAsB,EACtB,EAAE,CAAC,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IACtC,MAAM,KAAK,GAAG,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;IACpD,KAAK,CAAC,IAAI,CAAC;QACT,QAAQ;QACR,QAAQ,EAAE,yBAAyB,EAAE;QACrC,GAAG,EAAE,KAAK,IAAI,EAAE;YACd,IAAI,CAAC;gBACH,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAA;YACvB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,CAAA;YACf,CAAC;QACH,CAAC;KACF,CAAC,CAAA;IACF,uBAAuB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IACvC,KAAK,2BAA2B,CAAC,GAAG,CAAC,CAAA;AACvC,CAAC,CAAC,CAAA;AAEF,MAAM,0BAA0B,GAAG,CACjC,OAA0C,EAC1C,OAAe,EACf,IAAuB,EACvB,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IACzC,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;QACtC,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO;QACP,IAAI;QACJ,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,aAAa,IAAI,GAAG;QACzC,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;QACnC,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;QAChD,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,QAAQ,EAAE,KAAK;QACf,uBAAuB,EAAE,OAAO,CAAC,uBAAuB;KACzD,CAAC,CAAA;IACF,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACzE,KAAK,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;QAC1C,IAAI,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;YACxB,OAAO,GAAG,IAAI,CAAA;YACd,MAAM,CAAC,OAAO,CAAC,CAAA;QACjB,CAAC;IACH,CAAC,CAAC,CAAA;IACF,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;QAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,IAAI,CAAA;YACd,MAAM,CAAC,KAAK,CAAC,CAAA;QACf,CAAC;IACH,CAAC,CAAC,CAAA;IACF,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;QAC9B,IAAI,OAAO,EAAE,CAAC;YACZ,OAAM;QACR,CAAC;QACD,OAAO,GAAG,IAAI,CAAA;QACd,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,OAAO,EAAE,CAAA;YACT,OAAM;QACR,CAAC;QACD,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,qBAAqB,IAAI,EAAE,CAAC,CAAC,CAAA;IACrG,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,wCAAwC,GAAG,KAAK,EAAE,EAC7D,OAAO,EACP,cAAc,EACd,SAAS,EACT,MAAM,EAAE,UAAU,GACI,EAAE,EAAE;IAC1B,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAA;IACpE,MAAM,KAAK,GAAG,EAAE,OAAO,EAAE,IAAoC,EAAE,CAAA;IAC/D,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,mCAAmC,CAAC;YAC5D,OAAO;YACP,cAAc;YACd,KAAK,EAAE,SAAS,CAAC,IAAI;YACrB,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,IAAI;YAC9B,MAAM;YACN,QAAQ,EAAE,MAAM;YAChB,eAAe,EAAE,OAAO,CAAC,EAAE;gBACzB,KAAK,CAAC,OAAO,GAAG,OAAO,CAAA;YACzB,CAAC;SACF,CAAC,CAAA;QACF,KAAK,CAAC,OAAO,GAAG,IAAI,CAAA;QACpB,OAAO;YACL,OAAO,EAAE;gBACP,QAAQ,EAAE,WAAW,CAAC,QAAQ;gBAC9B,MAAM;gBACN,mBAAmB,EAAE,WAAW,CAAC,mBAAmB;gBACpD,kBAAkB,EAAE,WAAW,CAAC,kBAAkB;gBAClD,uBAAuB,EAAE,cAAc;gBACvC,uBAAuB,EAAE,WAAW,CAAC,uBAAuB,IAAI,IAAI;aACzB;YAC7C,OAAO,EAAE,WAAW,CAAC,OAAO;SAC7B,CAAA;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,CAAA;QACvB,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC,CAAA;AAED,MAAM,8CAA8C,GAAG,KAAK,EAAE,KAA4B,EAAE,EAAE;IAC5F,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,wCAAwC,CAAA;IACtE,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,OAAO,MAAM,wCAAwC,CAAC,KAAK,CAAC,CAAA;QAC9D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,CAAC,KAAK,YAAY,mCAAmC,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;gBACnG,MAAM,KAAK,CAAA;YACb,CAAC;YACD,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,qFAAqF,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;YAC1H,CAAC;YACD,MAAM,iBAAiB,EAAE,CAAA;QAC3B,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAA8B,EACpD,MAAc,EACd,OAA0C,EAC1C,gBAAgB,GAAG,OAAO,CAAC,MAAM,EAAE,aAAa,EAC/B,EAAE;IACnB,sBAAsB,CAAC,IAAI,CAAC,CAAA;IAC5B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;IACtE,CAAC;IACD,OAAO,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE;QACpD,GAAG,EAAE,gBAAgB;QACrB,GAAG,EAAE,iCAAiC,CAAC,gBAAgB,CAAC;QACxD,MAAM;QACN,KAAK;QACL,OAAO;QACP,SAAS,EAAE,IAAI;QACf,kBAAkB,EAAE,kDAAkD;QACtE,0BAA0B,EAAE,IAAI,KAAK,UAAU;QAC/C,uBAAuB,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,gBAAgB;YACjE,CAAC,CAAC,OAAO,CAAC,uBAAuB,IAAI,IAAI;YACzC,CAAC,CAAC,IAAI;KACT,EAAE,OAAO,CAAC,CAAA;AACb,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,EAAE,EAChD,OAAO,EACP,SAAS,EACT,MAAM,EACN,WAAW,GAAG,MAAM,EACpB,gBAAgB,EAChB,WAAW,GAAG,IAAI,EAClB,eAAe,GACO,EAAE,MAAc,EAAmB,EAAE;IAC3D,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,SAAS,CAAA;IAC1C,sBAAsB,CAAC,IAAI,CAAC,CAAA;IAC5B,MAAM,GAAG,GAAG,kBAAkB,CAAC;QAC7B,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,IAAI,EAAE,gBAAgB;QACtB,YAAY,EAAE,QAAQ;QACtB,eAAe,EAAE,eAAe,KAAK,SAAS;YAC5C,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE;YAC1D,CAAC,CAAC,eAAe;QACnB,WAAW;QACX,WAAW;QACX,QAAQ,EAAE;YACR,aAAa,EAAE,IAAI;YACnB,WAAW,EAAE,IAAI;YACjB,YAAY,EAAE,KAAK,IAAI,IAAI;YAC3B,cAAc,EAAE,OAAO,IAAI,IAAI;YAC/B,WAAW,EAAE,MAAM,CAAC,IAAI;YACxB,gBAAgB,EAAE,MAAM,CAAC,QAAQ;YACjC,GAAG,uCAAuC,CAAC,OAAO,CAAC,EAAE,CAAC;SACvD;QACD,SAAS,EAAE,uBAAuB;KACnC,CAAC,CAAA;IACF,MAAM,QAAQ,GAAG,wBAAwB,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;IAC7D,OAAO,wBAAwB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,WAAW,CAAC,EAAE,KAAK,IAAI,EAAE;QACnF,IAAI,OAAO,GAAiC,IAAI,CAAA;QAChD,IAAI,eAAe,GAA6C,IAAI,CAAA;QACpE,IAAI,8BAA8B,GAAG,KAAK,CAAA;QAC1C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,8CAA8C,CAAC;gBACpE,OAAO;gBACP,cAAc,EAAE,GAAG,CAAC,EAAE;gBACtB,SAAS;gBACT,MAAM;aACP,CAAC,CAAA;YACF,sBAAsB,CAAC;gBACrB,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,KAAK,EAAE,GAAG,CAAC,EAAE;gBACb,MAAM,EAAE,SAAS;gBACjB,YAAY,EAAE,SAAS;gBACvB,SAAS,EAAE,uBAAuB;aACnC,CAAC,CAAA;YACF,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAA;YAC1B,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAA;YAClC,IAAI,gBAAgB,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBAC5E,IAAI,CAAC,oCAAoC,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBACjE,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAA;gBAC3G,CAAC;gBACD,MAAM,0BAA0B,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAA;gBACrF,8BAA8B,GAAG,IAAI,CAAA;gBACrC,eAAe,GAAG,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,CAAA;YACvF,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAA;YAC/F,IAAI,8BAA8B,EAAE,CAAC;gBACnC,MAAM,0BAA0B,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,gBAAiB,CAAC,CAAC,CAAA;gBACpF,8BAA8B,GAAG,KAAK,CAAA;YACxC,CAAC;YACD,MAAM,OAAO,EAAE,CAAA;YACf,OAAO,GAAG,IAAI,CAAA;YACd,sBAAsB,CAAC;gBACrB,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,KAAK,EAAE,GAAG,CAAC,EAAE;gBACb,MAAM,EAAE,WAAW;gBACnB,YAAY,EAAE,WAAW;gBACzB,SAAS,EAAE,yBAAyB;aACrC,CAAC,CAAA;YACF,OAAO,MAAM,CAAA;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,8BAA8B,IAAI,eAAe,EAAE,CAAC;gBACtD,IAAI,CAAC;oBACH,MAAM,0BAA0B,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,gBAAiB,CAAC,CAAC,CAAA;gBACrF,CAAC;gBAAC,MAAM,CAAC;oBACP,iFAAiF;gBACnF,CAAC;YACH,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC;oBACH,MAAM,OAAO,EAAE,CAAA;gBACjB,CAAC;gBAAC,OAAO,YAAY,EAAE,CAAC;oBACtB,KAAK,GAAG,IAAI,KAAK,CAAC,oDAAoD,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAA;gBAClG,CAAC;YACH,CAAC;YACD,sBAAsB,CAAC;gBACrB,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,KAAK,EAAE,GAAG,CAAC,EAAE;gBACb,MAAM,EAAE,QAAQ;gBAChB,YAAY,EAAE,QAAQ;gBACtB,OAAO,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBAC1G,SAAS,EAAE,sBAAsB;aAClC,CAAC,CAAA;YACF,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,KAAK,CAAA;YACb,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAA;YACpF,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,CAAA;YAC3D,MAAM,IAAI,KAAK,CAAC,4BAA4B,SAAS,SAAS,KAAK,sFAAsF,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;QACtO,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"lightweightPrompt.js","sourceRoot":"","sources":["../../../server/lib/lightweightPrompt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ export const ONE_SHOT_TERMINATION_TIMEOUT_MS = 1_000;
2
+ export class OneShotCancellationTerminationError extends Error {
3
+ reason;
4
+ constructor(reason, options = {}) {
5
+ super(reason instanceof Error ? reason.message : 'The one-shot execution was cancelled.', options);
6
+ this.name = 'OneShotCancellationTerminationError';
7
+ this.reason = reason;
8
+ }
9
+ }
10
+ export const getAbortReason = (signal) => (signal.reason ?? new DOMException('This operation was aborted', 'AbortError'));
11
+ export const observeChildProcessClose = (child) => {
12
+ let onClose;
13
+ const promise = new Promise(resolve => {
14
+ onClose = (code, signal) => resolve({ code, signal });
15
+ child.once('close', onClose);
16
+ });
17
+ return {
18
+ promise,
19
+ dispose: () => child.removeListener?.('close', onClose),
20
+ };
21
+ };
22
+ export const waitForChildProcessClose = (childClose, timeoutMs = ONE_SHOT_TERMINATION_TIMEOUT_MS) => new Promise(resolve => {
23
+ let settled = false;
24
+ const finish = (closed) => {
25
+ if (settled) {
26
+ return;
27
+ }
28
+ settled = true;
29
+ clearTimeout(timer);
30
+ resolve(closed);
31
+ };
32
+ const timer = setTimeout(() => finish(false), timeoutMs);
33
+ timer.unref?.();
34
+ void childClose.then(() => finish(true));
35
+ });
36
+ export const terminateOneShotProcess = async (interrupt, childClose) => {
37
+ const requestInterrupt = (signal) => {
38
+ try {
39
+ void Promise.resolve(interrupt(signal)).catch(() => { });
40
+ }
41
+ catch {
42
+ // Cancellation remains authoritative when a provider interrupt fails.
43
+ }
44
+ };
45
+ requestInterrupt('SIGTERM');
46
+ if (!await waitForChildProcessClose(childClose)) {
47
+ requestInterrupt('SIGKILL');
48
+ }
49
+ if (!await waitForChildProcessClose(childClose)) {
50
+ throw new Error('The one-shot provider process did not terminate after SIGKILL.');
51
+ }
52
+ return childClose;
53
+ };
54
+ //# sourceMappingURL=oneShotCancellation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oneShotCancellation.js","sourceRoot":"","sources":["../../../server/lib/oneShotCancellation.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,+BAA+B,GAAG,KAAK,CAAA;AAOpD,MAAM,OAAO,mCAAoC,SAAQ,KAAK;IACnD,MAAM,CAAS;IAExB,YAAY,MAAe,EAAE,UAAwB,EAAE;QACrD,KAAK,CAAC,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,uCAAuC,EAAE,OAAO,CAAC,CAAA;QAClG,IAAI,CAAC,IAAI,GAAG,qCAAqC,CAAA;QACjD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAmB,EAAW,EAAE,CAAC,CAC9D,MAAM,CAAC,MAAM,IAAI,IAAI,YAAY,CAAC,4BAA4B,EAAE,YAAY,CAAC,CAC9E,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,KAAmB,EAAE,EAAE;IAC9D,IAAI,OAAqE,CAAA;IACzE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAmB,OAAO,CAAC,EAAE;QACtD,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;QACrD,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC9B,CAAC,CAAC,CAAA;IACF,OAAO;QACL,OAAO;QACP,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;KACxD,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,UAAqC,EACrC,SAAS,GAAG,+BAA+B,EACzB,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;IAC3C,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,MAAM,MAAM,GAAG,CAAC,MAAe,EAAE,EAAE;QACjC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAM;QACR,CAAC;QACD,OAAO,GAAG,IAAI,CAAA;QACd,YAAY,CAAC,KAAK,CAAC,CAAA;QACnB,OAAO,CAAC,MAAM,CAAC,CAAA;IACjB,CAAC,CAAA;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAA;IACxD,KAAK,CAAC,KAAK,EAAE,EAAE,CAAA;IACf,KAAK,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;AAC1C,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAC1C,SAA6B,EAC7B,UAAqC,EACV,EAAE;IAC7B,MAAM,gBAAgB,GAAG,CAAC,MAAsB,EAAE,EAAE;QAClD,IAAI,CAAC;YACH,KAAK,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,sEAAsE;QACxE,CAAC;IACH,CAAC,CAAA;IAED,gBAAgB,CAAC,SAAS,CAAC,CAAA;IAE3B,IAAI,CAAC,MAAM,wBAAwB,CAAC,UAAU,CAAC,EAAE,CAAC;QAChD,gBAAgB,CAAC,SAAS,CAAC,CAAA;IAC7B,CAAC;IAED,IAAI,CAAC,MAAM,wBAAwB,CAAC,UAAU,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAA;IACnF,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA"}