@straiffi/archon 1.8.22 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. package/dist/client/assets/{ActivityView-CdEPjmqD.js → ActivityView-Y5IaJiim.js} +1 -1
  2. package/dist/client/assets/GitHubActionsDialog-GWVxWGPK.js +1 -0
  3. package/dist/client/assets/VerificationDialog-C4RMuI4y.js +4 -0
  4. package/dist/client/assets/{architectureDiagram-3BPJPVTR-BrZ08mqq.js → architectureDiagram-3BPJPVTR-CeM6gbLN.js} +1 -1
  5. package/dist/client/assets/{blockDiagram-GPEHLZMM-b93XwJ6Z.js → blockDiagram-GPEHLZMM-BP4hta96.js} +1 -1
  6. package/dist/client/assets/{c4Diagram-AAUBKEIU-BKOdbZ_v.js → c4Diagram-AAUBKEIU-5aJScvhn.js} +1 -1
  7. package/dist/client/assets/channel-B3DjZXbm.js +1 -0
  8. package/dist/client/assets/{chunk-2J33WTMH-D7Vxn_1m.js → chunk-2J33WTMH-BKc2IelV.js} +1 -1
  9. package/dist/client/assets/{chunk-3OPIFGDE-B1zo2UZq.js → chunk-3OPIFGDE-DCc15la5.js} +1 -1
  10. package/dist/client/assets/{chunk-5ZQYHXKU-BajvkDdQ.js → chunk-5ZQYHXKU-DSD9HbTp.js} +1 -1
  11. package/dist/client/assets/{chunk-727SXJPM-CSH7cVpV.js → chunk-727SXJPM-DrAjnKiA.js} +1 -1
  12. package/dist/client/assets/{chunk-AQP2D5EJ-DE-wgUNP.js → chunk-AQP2D5EJ-DxKnpHfQ.js} +1 -1
  13. package/dist/client/assets/{chunk-CSCIHK7Q-Ba7JgCEf.js → chunk-CSCIHK7Q-DLejrAB_.js} +1 -1
  14. package/dist/client/assets/{chunk-KSCS5N6A-0o3YWkHM.js → chunk-KSCS5N6A-BWRNmF8S.js} +1 -1
  15. package/dist/client/assets/{chunk-L5ZTLDWV-DihWczP8.js → chunk-L5ZTLDWV-D48i966f.js} +1 -1
  16. package/dist/client/assets/{chunk-LZXEDZCA-Bxnu-hme.js → chunk-LZXEDZCA-DLhg6Bok.js} +2 -2
  17. package/dist/client/assets/{chunk-ND2GUHAM-CoaR5kmP.js → chunk-ND2GUHAM-B4-7cOEq.js} +1 -1
  18. package/dist/client/assets/{chunk-NZK2D7GU-By92Rd3d.js → chunk-NZK2D7GU-D2ttXA_d.js} +1 -1
  19. package/dist/client/assets/{chunk-O5CBEL6O-D83Pkgfu.js → chunk-O5CBEL6O-BrWrOVCq.js} +1 -1
  20. package/dist/client/assets/{chunk-WU5MYG2G-v8OVf5Lz.js → chunk-WU5MYG2G-CLcPwxPe.js} +1 -1
  21. package/dist/client/assets/classDiagram-4FO5ZUOK-DproSkn2.js +1 -0
  22. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-JVMMzJxJ.js +1 -0
  23. package/dist/client/assets/{dagre-BM42HDAG-Dq1ALF7Z.js → dagre-BM42HDAG-DIXN8_VX.js} +1 -1
  24. package/dist/client/assets/{diagram-2AECGRRQ-1t1_TKtu.js → diagram-2AECGRRQ-D2wjdCij.js} +1 -1
  25. package/dist/client/assets/{diagram-5GNKFQAL-DtvYRL6f.js → diagram-5GNKFQAL-E1Og_PHE.js} +1 -1
  26. package/dist/client/assets/{diagram-KO2AKTUF-PRNrSX5F.js → diagram-KO2AKTUF-B6P1Ud8a.js} +1 -1
  27. package/dist/client/assets/{diagram-LMA3HP47-DaTX0DhT.js → diagram-LMA3HP47-C3Jxq56v.js} +1 -1
  28. package/dist/client/assets/{diagram-OG6HWLK6-C2p9p-92.js → diagram-OG6HWLK6-Do9LVhdL.js} +1 -1
  29. package/dist/client/assets/{erDiagram-TEJ5UH35-DKzLtnp-.js → erDiagram-TEJ5UH35-DLb5E4-f.js} +1 -1
  30. package/dist/client/assets/{flowDiagram-I6XJVG4X-GdL8lm6e.js → flowDiagram-I6XJVG4X-CcTs_wU9.js} +1 -1
  31. package/dist/client/assets/{ganttDiagram-6RSMTGT7-Ok-4XYwT.js → ganttDiagram-6RSMTGT7-q9ez5fri.js} +1 -1
  32. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-DSMrOCK7.js → gitGraphDiagram-PVQCEYII-BcaKiz4c.js} +1 -1
  33. package/dist/client/assets/index-1CokwSFm.css +2 -0
  34. package/dist/client/assets/index-CSOKbu3w.js +276 -0
  35. package/dist/client/assets/{infoDiagram-5YYISTIA-Dl4hRXis.js → infoDiagram-5YYISTIA-Cu0w4frE.js} +1 -1
  36. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-C1Dc1fTT.js → ishikawaDiagram-YF4QCWOH-CJ47Z-ak.js} +1 -1
  37. package/dist/client/assets/{journeyDiagram-JHISSGLW-CUscmJze.js → journeyDiagram-JHISSGLW-fAL_Zcvs.js} +1 -1
  38. package/dist/client/assets/{kanban-definition-UN3LZRKU-C0nwYjQV.js → kanban-definition-UN3LZRKU-BTNIybMC.js} +1 -1
  39. package/dist/client/assets/{line-ByiuEIg_.js → line-BvsadeZR.js} +1 -1
  40. package/dist/client/assets/{mermaid-parser.core-B-XdAyDR.js → mermaid-parser.core-C0EkH2y_.js} +1 -1
  41. package/dist/client/assets/{mermaid.core-D_bIfuZD.js → mermaid.core-BU5QIIbY.js} +3 -3
  42. package/dist/client/assets/{mindmap-definition-RKZ34NQL-BGNiPJDK.js → mindmap-definition-RKZ34NQL-CWbSYK8f.js} +1 -1
  43. package/dist/client/assets/{pieDiagram-4H26LBE5-CP6FpAoO.js → pieDiagram-4H26LBE5-t4w2cB-y.js} +1 -1
  44. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-dsAWBAQn.js → quadrantDiagram-W4KKPZXB-Cqasvrpa.js} +1 -1
  45. package/dist/client/assets/{requirementDiagram-4Y6WPE33-DJH-zHqF.js → requirementDiagram-4Y6WPE33-_l-mY-tb.js} +1 -1
  46. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-BJMnZrqH.js → sankeyDiagram-5OEKKPKP-Cr9YrZ-Y.js} +1 -1
  47. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-CzNjUSlM.js → sequenceDiagram-3UESZ5HK-DvzZhQpb.js} +1 -1
  48. package/dist/client/assets/{stateDiagram-AJRCARHV-jppMhOwh.js → stateDiagram-AJRCARHV-cFjPpAO3.js} +1 -1
  49. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-btHMH5Cg.js +1 -0
  50. package/dist/client/assets/{timeline-definition-PNZ67QCA-BX2CI5H_.js → timeline-definition-PNZ67QCA-BjRNrEJY.js} +1 -1
  51. package/dist/client/assets/{vennDiagram-CIIHVFJN-Bd1KZaXh.js → vennDiagram-CIIHVFJN-xs9afjrw.js} +1 -1
  52. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-D-0BNz49.js → wardleyDiagram-YWT4CUSO-DH68ZYti.js} +1 -1
  53. package/dist/client/assets/{xychartDiagram-2RQKCTM6-DbYa0ZWK.js → xychartDiagram-2RQKCTM6-DLW5ktTU.js} +1 -1
  54. package/dist/client/index.html +2 -2
  55. package/dist/server/db.js +231 -14
  56. package/dist/server/db.js.map +1 -1
  57. package/dist/server/index.js +93 -9
  58. package/dist/server/index.js.map +1 -1
  59. package/dist/server/lib/agent.js +368 -143
  60. package/dist/server/lib/agent.js.map +1 -1
  61. package/dist/server/lib/agentProvider.js.map +1 -1
  62. package/dist/server/lib/approvalReconciliation.js +14 -2
  63. package/dist/server/lib/approvalReconciliation.js.map +1 -1
  64. package/dist/server/lib/buildExecutionEnvironment.js +251 -57
  65. package/dist/server/lib/buildExecutionEnvironment.js.map +1 -1
  66. package/dist/server/lib/chatOperations.js +125 -3
  67. package/dist/server/lib/chatOperations.js.map +1 -1
  68. package/dist/server/lib/chatPostBuildRuns.js +12 -6
  69. package/dist/server/lib/chatPostBuildRuns.js.map +1 -1
  70. package/dist/server/lib/chatTargets.js +2 -1
  71. package/dist/server/lib/chatTargets.js.map +1 -1
  72. package/dist/server/lib/checkDefinitionCwd.js +34 -0
  73. package/dist/server/lib/checkDefinitionCwd.js.map +1 -0
  74. package/dist/server/lib/checkExecutionEnvironment.js +95 -0
  75. package/dist/server/lib/checkExecutionEnvironment.js.map +1 -0
  76. package/dist/server/lib/checkPolicyDefinitionIds.js +41 -0
  77. package/dist/server/lib/checkPolicyDefinitionIds.js.map +1 -0
  78. package/dist/server/lib/checkRepairDispatch.js +2 -0
  79. package/dist/server/lib/checkRepairDispatch.js.map +1 -1
  80. package/dist/server/lib/checkRunner.js +371 -175
  81. package/dist/server/lib/checkRunner.js.map +1 -1
  82. package/dist/server/lib/checkRuns.js +99 -8
  83. package/dist/server/lib/checkRuns.js.map +1 -1
  84. package/dist/server/lib/claudeAgentProvider.js +3 -6
  85. package/dist/server/lib/claudeAgentProvider.js.map +1 -1
  86. package/dist/server/lib/claudeStdin.js +27 -0
  87. package/dist/server/lib/claudeStdin.js.map +1 -0
  88. package/dist/server/lib/completedAssistantOutput.js +38 -0
  89. package/dist/server/lib/completedAssistantOutput.js.map +1 -0
  90. package/dist/server/lib/consequentialActionAuthority.js +99 -8
  91. package/dist/server/lib/consequentialActionAuthority.js.map +1 -1
  92. package/dist/server/lib/consequentialActions.js +42 -2
  93. package/dist/server/lib/consequentialActions.js.map +1 -1
  94. package/dist/server/lib/dockerSandboxCredentials.js +10 -3
  95. package/dist/server/lib/dockerSandboxCredentials.js.map +1 -1
  96. package/dist/server/lib/dockerSandboxEnvironmentOperations.js +9 -8
  97. package/dist/server/lib/dockerSandboxEnvironmentOperations.js.map +1 -1
  98. package/dist/server/lib/dockerSandboxExecutionEnvironment.js +167 -75
  99. package/dist/server/lib/dockerSandboxExecutionEnvironment.js.map +1 -1
  100. package/dist/server/lib/dockerSandboxExecutionProvider.js +22 -14
  101. package/dist/server/lib/dockerSandboxExecutionProvider.js.map +1 -1
  102. package/dist/server/lib/dockerSandboxNetworkPolicy.js +23 -14
  103. package/dist/server/lib/dockerSandboxNetworkPolicy.js.map +1 -1
  104. package/dist/server/lib/dockerSandboxReleaseProfiles.js +91 -0
  105. package/dist/server/lib/dockerSandboxReleaseProfiles.js.map +1 -0
  106. package/dist/server/lib/dockerSandboxRuntimeController.js +16 -1
  107. package/dist/server/lib/dockerSandboxRuntimeController.js.map +1 -1
  108. package/dist/server/lib/executionCredentialCapabilities.js +9 -6
  109. package/dist/server/lib/executionCredentialCapabilities.js.map +1 -1
  110. package/dist/server/lib/executionEnvironment.js.map +1 -1
  111. package/dist/server/lib/executionEnvironmentLifecycle.js +7 -0
  112. package/dist/server/lib/executionEnvironmentLifecycle.js.map +1 -1
  113. package/dist/server/lib/executionEnvironmentOperations.js +241 -0
  114. package/dist/server/lib/executionEnvironmentOperations.js.map +1 -0
  115. package/dist/server/lib/executionEnvironmentReconciliation.js +98 -3
  116. package/dist/server/lib/executionEnvironmentReconciliation.js.map +1 -1
  117. package/dist/server/lib/executionEnvironmentRoutes.js +83 -29
  118. package/dist/server/lib/executionEnvironmentRoutes.js.map +1 -1
  119. package/dist/server/lib/executionEnvironmentValidation.js +19 -5
  120. package/dist/server/lib/executionEnvironmentValidation.js.map +1 -1
  121. package/dist/server/lib/executionEnvironmentValidationOperations.js +58 -31
  122. package/dist/server/lib/executionEnvironmentValidationOperations.js.map +1 -1
  123. package/dist/server/lib/executionEnvironments.js +187 -9
  124. package/dist/server/lib/executionEnvironments.js.map +1 -1
  125. package/dist/server/lib/executionProfileCheckPolicy.js +14 -0
  126. package/dist/server/lib/executionProfileCheckPolicy.js.map +1 -0
  127. package/dist/server/lib/executionProfileRoutes.js +9 -1
  128. package/dist/server/lib/executionProfileRoutes.js.map +1 -1
  129. package/dist/server/lib/executionProfileStore.js +5 -3
  130. package/dist/server/lib/executionProfileStore.js.map +1 -1
  131. package/dist/server/lib/executionProfiles.js +97 -15
  132. package/dist/server/lib/executionProfiles.js.map +1 -1
  133. package/dist/server/lib/executionReconciliation.js +43 -6
  134. package/dist/server/lib/executionReconciliation.js.map +1 -1
  135. package/dist/server/lib/executionRunAuthority.js +115 -24
  136. package/dist/server/lib/executionRunAuthority.js.map +1 -1
  137. package/dist/server/lib/executionTargets.js +30 -4
  138. package/dist/server/lib/executionTargets.js.map +1 -1
  139. package/dist/server/lib/executionWorkloads.js +75 -0
  140. package/dist/server/lib/executionWorkloads.js.map +1 -0
  141. package/dist/server/lib/git.js +10 -1
  142. package/dist/server/lib/git.js.map +1 -1
  143. package/dist/server/lib/opencodeAgentProvider.js +3 -1
  144. package/dist/server/lib/opencodeAgentProvider.js.map +1 -1
  145. package/dist/server/lib/opencodeSessionOperations.js +5 -3
  146. package/dist/server/lib/opencodeSessionOperations.js.map +1 -1
  147. package/dist/server/lib/planQuestions.js +2 -1
  148. package/dist/server/lib/planQuestions.js.map +1 -1
  149. package/dist/server/lib/postBuildCheckRuns.js +9 -5
  150. package/dist/server/lib/postBuildCheckRuns.js.map +1 -1
  151. package/dist/server/lib/preview.js +47 -6
  152. package/dist/server/lib/preview.js.map +1 -1
  153. package/dist/server/lib/previewProxy.js +11 -3
  154. package/dist/server/lib/previewProxy.js.map +1 -1
  155. package/dist/server/lib/productionCheckApprovals.js +97 -35
  156. package/dist/server/lib/productionCheckApprovals.js.map +1 -1
  157. package/dist/server/lib/projectMemorySuggestions.js +29 -6
  158. package/dist/server/lib/projectMemorySuggestions.js.map +1 -1
  159. package/dist/server/lib/requiredCheckPolicy.js +3 -40
  160. package/dist/server/lib/requiredCheckPolicy.js.map +1 -1
  161. package/dist/server/lib/reviewAgentWatchdog.js +75 -0
  162. package/dist/server/lib/reviewAgentWatchdog.js.map +1 -0
  163. package/dist/server/lib/reviewFindingReconciliation.js +176 -0
  164. package/dist/server/lib/reviewFindingReconciliation.js.map +1 -0
  165. package/dist/server/lib/reviewFindings.js +45 -17
  166. package/dist/server/lib/reviewFindings.js.map +1 -1
  167. package/dist/server/lib/run.js +370 -80
  168. package/dist/server/lib/run.js.map +1 -1
  169. package/dist/server/lib/serviceRuns.js +196 -0
  170. package/dist/server/lib/serviceRuns.js.map +1 -0
  171. package/dist/server/lib/sessionTargets.js +34 -0
  172. package/dist/server/lib/sessionTargets.js.map +1 -1
  173. package/dist/server/lib/shell.js +20 -0
  174. package/dist/server/lib/shell.js.map +1 -1
  175. package/dist/server/lib/specArtifact.js +36 -15
  176. package/dist/server/lib/specArtifact.js.map +1 -1
  177. package/dist/server/lib/specBundleGroups.js +4 -4
  178. package/dist/server/lib/specBundleGroups.js.map +1 -1
  179. package/dist/server/lib/specOperations.js +2 -0
  180. package/dist/server/lib/specOperations.js.map +1 -1
  181. package/dist/server/lib/specReviewOperations.js +2 -0
  182. package/dist/server/lib/specReviewOperations.js.map +1 -1
  183. package/dist/server/lib/specTicketMaterialization.js +37 -24
  184. package/dist/server/lib/specTicketMaterialization.js.map +1 -1
  185. package/dist/server/lib/ticketFollowUpOperations.js +9 -4
  186. package/dist/server/lib/ticketFollowUpOperations.js.map +1 -1
  187. package/dist/server/lib/ticketRunOperations.js +1 -0
  188. package/dist/server/lib/ticketRunOperations.js.map +1 -1
  189. package/dist/server/lib/types.js +1 -0
  190. package/dist/server/lib/types.js.map +1 -1
  191. package/dist/server/lib/workloadExecutionEnvironment.js +2 -0
  192. package/dist/server/lib/workloadExecutionEnvironment.js.map +1 -0
  193. package/dist/server/lib/workspaceIdentity.js +30 -6
  194. package/dist/server/lib/workspaceIdentity.js.map +1 -1
  195. package/dist/server/workers/build.js +39 -8
  196. package/dist/server/workers/build.js.map +1 -1
  197. package/dist/server/workers/chat.js +142 -15
  198. package/dist/server/workers/chat.js.map +1 -1
  199. package/dist/server/workers/followUp.js +77 -20
  200. package/dist/server/workers/followUp.js.map +1 -1
  201. package/dist/server/workers/plan.js +295 -48
  202. package/dist/server/workers/plan.js.map +1 -1
  203. package/dist/server/workers/planFollowUp.js +77 -7
  204. package/dist/server/workers/planFollowUp.js.map +1 -1
  205. package/dist/server/workers/review.js +153 -40
  206. package/dist/server/workers/review.js.map +1 -1
  207. package/dist/server/workers/specReview.js +43 -5
  208. package/dist/server/workers/specReview.js.map +1 -1
  209. package/dist/server/workers/specSession.js +156 -31
  210. package/dist/server/workers/specSession.js.map +1 -1
  211. package/package.json +1 -1
  212. package/dist/client/assets/GitHubActionsDialog-CA189pr2.js +0 -1
  213. package/dist/client/assets/VerificationDialog-BPVkhKRj.js +0 -4
  214. package/dist/client/assets/channel-D0zqzBT_.js +0 -1
  215. package/dist/client/assets/classDiagram-4FO5ZUOK-ChhyvHH2.js +0 -1
  216. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-Cl02kurK.js +0 -1
  217. package/dist/client/assets/index-Bs8KsdV9.js +0 -276
  218. package/dist/client/assets/index-DdwM8Wgt.css +0 -2
  219. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-CLR1WgdV.js +0 -1
@@ -1,4 +1,5 @@
1
- import { SbxCommandFailure, probeDockerSandboxReadiness, } from './dockerSandboxExecutionEnvironment.js';
1
+ import { SbxCommandFailure, parseQualifiedSbxRelease, probeDockerSandboxReadiness, requireSuccessfulCommand, } from './dockerSandboxExecutionEnvironment.js';
2
+ import { resolveDockerSandboxReleaseProfile, } from './dockerSandboxReleaseProfiles.js';
2
3
  const START_DAEMON_ARGS = ['daemon', 'start', '--detach'];
3
4
  const HARD_PREREQUISITES = ['cli', 'version', 'platform', 'virtualization', 'docker_login'];
4
5
  const DAEMON_START_TIMEOUT_MS = 180_000;
@@ -144,6 +145,12 @@ export const createDockerSandboxRuntimeController = (dependencies) => {
144
145
  if (eligibility.state === 'blocked') {
145
146
  throw new DockerSandboxRuntimeFailure('unsupported_prerequisite', eligibility.observationCodes);
146
147
  }
148
+ const releaseProfile = initial.providerVersion && initial.providerBuild
149
+ ? resolveDockerSandboxReleaseProfile(initial.providerVersion, initial.providerBuild)
150
+ : null;
151
+ if (!releaseProfile?.commandContracts.includes('daemon-start')) {
152
+ throw new DockerSandboxRuntimeFailure('unsupported_prerequisite', ['version']);
153
+ }
147
154
  let startResult;
148
155
  try {
149
156
  startResult = await dependencies.runner.run(START_DAEMON_ARGS, startOptions);
@@ -176,6 +183,14 @@ export const createDockerSandboxRuntimeController = (dependencies) => {
176
183
  return inFlight;
177
184
  };
178
185
  return {
186
+ detectRelease: async (options) => {
187
+ const result = await dependencies.runner.run(['version'], {
188
+ signal: options?.signal,
189
+ timeoutMs: PROBE_TIMEOUT_MS,
190
+ });
191
+ requireSuccessfulCommand('version', result);
192
+ return parseQualifiedSbxRelease(result.stdout);
193
+ },
179
194
  ensureReady: options => {
180
195
  if (options?.signal?.aborted) {
181
196
  return Promise.reject(new DockerSandboxRuntimeFailure('cancelled'));
@@ -1 +1 @@
1
- {"version":3,"file":"dockerSandboxRuntimeController.js","sourceRoot":"","sources":["../../../server/lib/dockerSandboxRuntimeController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dockerSandboxRuntimeController.js","sourceRoot":"","sources":["../../../server/lib/dockerSandboxRuntimeController.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { QUALIFIED_DOCKER_SANDBOX_TEMPLATES, QUALIFIED_SBX_VERSION, } from './dockerSandboxExecutionEnvironment.js';
1
+ import { EXECUTION_WORKLOADS } from './executionWorkloads.js';
2
+ import { DOCKER_SANDBOX_RELEASE_PROFILES } from './dockerSandboxReleaseProfiles.js';
2
3
  const QUALIFIED_OPENCODE_API_KEY_SERVICES = [
3
4
  'anthropic',
4
5
  'google',
@@ -10,17 +11,19 @@ const QUALIFIED_OPENCODE_API_KEY_SERVICES = [
10
11
  'openrouter',
11
12
  'xai',
12
13
  ];
13
- export const QUALIFIED_EXECUTION_CREDENTIAL_TUPLES = (QUALIFIED_OPENCODE_API_KEY_SERVICES.map(modelProvider => ({
14
+ export const QUALIFIED_EXECUTION_CREDENTIAL_TUPLES = (DOCKER_SANDBOX_RELEASE_PROFILES
15
+ .filter(profile => profile.status !== 'security_blocked')
16
+ .flatMap(profile => EXECUTION_WORKLOADS.flatMap(workload => QUALIFIED_OPENCODE_API_KEY_SERVICES.map(modelProvider => ({
14
17
  executionProvider: 'docker_sandbox',
15
- providerVersion: QUALIFIED_SBX_VERSION,
16
- template: QUALIFIED_DOCKER_SANDBOX_TEMPLATES.opencode,
18
+ providerVersion: profile.version,
19
+ template: profile.templates.opencode,
17
20
  agent: 'opencode',
18
21
  modelProvider,
19
22
  authenticationMode: 'api_key',
20
- workload: 'build',
23
+ workload,
21
24
  inventoryState: 'stored',
22
25
  classification: 'brokered_api_key',
23
- })));
26
+ })))));
24
27
  const normalizedId = (value) => value?.trim().toLowerCase() || null;
25
28
  const findQualifiedTuple = (input) => {
26
29
  const modelProvider = normalizedId(input.modelProvider);
@@ -1 +1 @@
1
- {"version":3,"file":"executionCredentialCapabilities.js","sourceRoot":"","sources":["../../../server/lib/executionCredentialCapabilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executionCredentialCapabilities.js","sourceRoot":"","sources":["../../../server/lib/executionCredentialCapabilities.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAA0B,MAAM,yBAAyB,CAAA;AACrF,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAA;AAsEnF,MAAM,mCAAmC,GAAG;IAC1C,WAAW;IACX,QAAQ;IACR,MAAM;IACN,SAAS;IACT,UAAU;IACV,aAAa;IACb,QAAQ;IACR,YAAY;IACZ,KAAK;CACG,CAAA;AAEV,MAAM,CAAC,MAAM,qCAAqC,GAAwC,CACxF,+BAA+B;KAC5B,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,kBAAkB,CAAC;KACxD,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,mCAAmC,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACpH,iBAAiB,EAAE,gBAAyB;IAC5C,eAAe,EAAE,OAAO,CAAC,OAAO;IAChC,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ;IACpC,KAAK,EAAE,UAAmB;IAC1B,aAAa;IACb,kBAAkB,EAAE,SAAkB;IACtC,QAAQ;IACR,cAAc,EAAE,QAAiB;IACjC,cAAc,EAAE,kBAA2B;CAC5C,CAAC,CAAC,CAAC,CAAC,CACR,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,KAAoB,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,IAAI,CAAA;AAElF,MAAM,kBAAkB,GAAG,CAAC,KAAyC,EAAE,EAAE;IACvE,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IACvD,MAAM,gBAAgB,GAAG,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IAC9D,OAAO,qCAAqC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CACzD,KAAK,CAAC,iBAAiB,KAAK,KAAK,CAAC,iBAAiB;WAChD,KAAK,CAAC,eAAe,KAAK,KAAK,CAAC,eAAe;WAC/C,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ;WACjC,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;WAC3B,KAAK,CAAC,aAAa,KAAK,aAAa;WACrC,KAAK,CAAC,aAAa,KAAK,gBAAgB;WACxC,KAAK,CAAC,kBAAkB,KAAK,KAAK,CAAC,kBAAkB;WACrD,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ;WACjC,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,SAAS,CAAC,KAAK;WAC9C,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,KAAK,eAAe,CAAC,CACrF,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,CAAC,KAAyC,EAAqC,EAAE;IAC1G,IAAI,KAAK,CAAC,iBAAiB,KAAK,MAAM,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC,mBAAmB,KAAK,yBAAyB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,aAAa,CAAA;IAC1G,CAAC;IACD,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,kBAAkB,CAAA;IAC3B,CAAC;IACD,IAAI,KAAK,CAAC,aAAa,KAAK,MAAM,EAAE,CAAC;QACnC,OAAO,cAAc,CAAA;IACvB,CAAC;IACD,IAAI,KAAK,CAAC,aAAa,KAAK,aAAa,EAAE,CAAC;QAC1C,OAAO,qBAAqB,CAAA;IAC9B,CAAC;IACD,IAAI,KAAK,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,cAAc,CAAA;IACvB,CAAC;IACD,IACE,CAAC,KAAK,CAAC,eAAe;WACnB,CAAC,KAAK,CAAC,QAAQ;WACf,CAAC,KAAK,CAAC,aAAa;WACpB,CAAC,KAAK,CAAC,kBAAkB;WACzB,KAAK,CAAC,SAAS,CAAC,WAAW,KAAK,aAAa;WAC7C,KAAK,CAAC,SAAS,CAAC,KAAK,KAAK,SAAS;WACnC,KAAK,CAAC,SAAS,CAAC,KAAK,KAAK,SAAS;WACnC,KAAK,CAAC,aAAa,KAAK,SAAS,EACpC,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,aAAa,CAAA;AACtB,CAAC,CAAA;AAED,MAAM,mBAAmB,GAAG,CAC1B,cAAiD,EACjD,mBAA8E,EAC9E,EAAE,CAAC,mBAAmB,KAAK,IAAI;OAC5B,CAAC,mBAAmB,KAAK,iBAAiB;WACxC,CAAC,cAAc,KAAK,kBAAkB,IAAI,cAAc,KAAK,gBAAgB,CAAC,CAAC;OACjF,CAAC,mBAAmB,KAAK,yBAAyB,IAAI,cAAc,KAAK,uBAAuB,CAAC,CAAA;AAEtG,MAAM,cAAc,GAAG,CACrB,KAAyC,EACzC,cAAiD,EACjD,4BAAqC,EACrC,EAAE;IACF,IAAI,4BAA4B,IAAI,cAAc,KAAK,SAAS,IAAI,cAAc,KAAK,aAAa,EAAE,CAAC;QACrG,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IAAI,KAAK,CAAC,SAAS,CAAC,WAAW,KAAK,aAAa,EAAE,CAAC;QAClD,OAAO,qHAAqH,CAAA;IAC9H,CAAC;IACD,IAAI,KAAK,CAAC,kBAAkB,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;QACvE,OAAO,yHAAyH,CAAA;IAClI,CAAC;IACD,IAAI,cAAc,KAAK,aAAa,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QAC5D,OAAO,yBAAyB,KAAK,CAAC,aAAa,kEAAkE,CAAA;IACvH,CAAC;IACD,OAAO,2GAA2G,CAAA;AACpH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAClD,KAAyC,EACV,EAAE;IACjC,MAAM,cAAc,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAA;IAChD,MAAM,4BAA4B,GAAG,mBAAmB,CAAC,cAAc,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAA;IACnG,OAAO;QACL,kBAAkB,EAAE,KAAK,CAAC,iBAAiB;QAC3C,gBAAgB,EAAE,KAAK,CAAC,eAAe;QACvC,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,cAAc,EAAE,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC;QACjD,mBAAmB,EAAE,KAAK,CAAC,kBAAkB;QAC7C,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,oBAAoB,EAAE,KAAK,CAAC,mBAAmB;QAC/C,uBAAuB,EAAE,KAAK,CAAC,sBAAsB;QACrD,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,cAAc;QACd,8BAA8B,EAAE,4BAA4B;QAC5D,WAAW,EAAE,cAAc,CAAC,KAAK,EAAE,cAAc,EAAE,4BAA4B,CAAC;KACjF,CAAA;AACH,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"executionEnvironment.js","sourceRoot":"","sources":["../../../server/lib/executionEnvironment.ts"],"names":[],"mappings":"AAqGA,MAAM,OAAO,oCAAqC,SAAQ,KAAK;IACpD,QAAQ,CAA4B;IAE7C,YAAY,QAAoC,EAAE,OAAe,EAAE,UAAwB,EAAE;QAC3F,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACvB,IAAI,CAAC,IAAI,GAAG,sCAAsC,CAAA;QAClD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;CACF;AAgBD,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IAC3C,IAAI,CAAiC;IACrC,QAAQ,CAAQ;IAEzB,YACE,IAAqC,EACrC,QAAgB,EAChB,OAAe,EACf,OAAqB;QAErB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACvB,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAA;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;CACF;AAED,MAAM,OAAO,sCAAuC,SAAQ,2BAA2B;IACrF,YAAY,QAAgB,EAAE,OAAe,EAAE,UAAwB,EAAE;QACvE,KAAK,CAAC,sBAAsB,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;QACzD,IAAI,CAAC,IAAI,GAAG,wCAAwC,CAAA;IACtD,CAAC;CACF;AAED,MAAM,OAAO,sCAAuC,SAAQ,2BAA2B;IAC5E,UAAU,CAAQ;IAE3B,YAAY,QAAgB,EAAE,UAAkB,EAAE,OAAe,EAAE,UAAwB,EAAE;QAC3F,KAAK,CAAC,wBAAwB,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;QAC3D,IAAI,CAAC,IAAI,GAAG,wCAAwC,CAAA;QACpD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;CACF;AAED,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAClD,QAAgB,EAChB,OAAe,EACf,KAAc,EACd,EAAE;IACF,MAAM,IAAI,GAAI,KAAsC,EAAE,IAAI,KAAK,QAAQ;QACrE,CAAC,CAAC,wBAAwB;QAC1B,CAAC,CAAC,kBAAkB,CAAA;IACtB,MAAM,OAAO,GAAG,IAAI,KAAK,wBAAwB;QAC/C,CAAC,CAAC,uBAAuB,QAAQ,gCAAgC,OAAO,GAAG;QAC3E,CAAC,CAAC,uBAAuB,QAAQ,sBAAsB,OAAO,GAAG,CAAA;IAEnE,OAAO,IAAI,2BAA2B,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;AACnF,CAAC,CAAA"}
1
+ {"version":3,"file":"executionEnvironment.js","sourceRoot":"","sources":["../../../server/lib/executionEnvironment.ts"],"names":[],"mappings":"AAsGA,MAAM,OAAO,oCAAqC,SAAQ,KAAK;IACpD,QAAQ,CAA4B;IAE7C,YAAY,QAAoC,EAAE,OAAe,EAAE,UAAwB,EAAE;QAC3F,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACvB,IAAI,CAAC,IAAI,GAAG,sCAAsC,CAAA;QAClD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;CACF;AAgBD,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IAC3C,IAAI,CAAiC;IACrC,QAAQ,CAAQ;IAEzB,YACE,IAAqC,EACrC,QAAgB,EAChB,OAAe,EACf,OAAqB;QAErB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACvB,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAA;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;CACF;AAED,MAAM,OAAO,sCAAuC,SAAQ,2BAA2B;IACrF,YAAY,QAAgB,EAAE,OAAe,EAAE,UAAwB,EAAE;QACvE,KAAK,CAAC,sBAAsB,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;QACzD,IAAI,CAAC,IAAI,GAAG,wCAAwC,CAAA;IACtD,CAAC;CACF;AAED,MAAM,OAAO,sCAAuC,SAAQ,2BAA2B;IAC5E,UAAU,CAAQ;IAE3B,YAAY,QAAgB,EAAE,UAAkB,EAAE,OAAe,EAAE,UAAwB,EAAE;QAC3F,KAAK,CAAC,wBAAwB,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;QAC3D,IAAI,CAAC,IAAI,GAAG,wCAAwC,CAAA;QACpD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;CACF;AAED,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAClD,QAAgB,EAChB,OAAe,EACf,KAAc,EACd,EAAE;IACF,MAAM,IAAI,GAAI,KAAsC,EAAE,IAAI,KAAK,QAAQ;QACrE,CAAC,CAAC,wBAAwB;QAC1B,CAAC,CAAC,kBAAkB,CAAA;IACtB,MAAM,OAAO,GAAG,IAAI,KAAK,wBAAwB;QAC/C,CAAC,CAAC,uBAAuB,QAAQ,gCAAgC,OAAO,GAAG;QAC3E,CAAC,CAAC,uBAAuB,QAAQ,sBAAsB,OAAO,GAAG,CAAA;IAEnE,OAAO,IAAI,2BAA2B,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;AACnF,CAAC,CAAA"}
@@ -57,6 +57,9 @@ export const canonicalizeEnvironmentValidationFingerprintInput = (input) => {
57
57
  assertFingerprintComponent(input.validationSuiteSchemaVersion, 'Validation-suite schema version');
58
58
  assertFingerprintComponent(input.adapterContractVersion, 'Adapter contract version');
59
59
  assertFingerprintComponent(input.qualifiedSbxVersion, 'Qualified sbx version');
60
+ if (input.releaseProfileId !== undefined) {
61
+ assertFingerprintComponent(input.releaseProfileId, 'Release profile ID');
62
+ }
60
63
  const compatibleAgents = [...new Set(input.compatibleAgents)].sort();
61
64
  if (compatibleAgents.length === 0
62
65
  || compatibleAgents.some(agent => agent !== 'opencode' && agent !== 'claude')) {
@@ -69,6 +72,7 @@ export const canonicalizeEnvironmentValidationFingerprintInput = (input) => {
69
72
  validationSuiteSchemaVersion: input.validationSuiteSchemaVersion,
70
73
  adapterContractVersion: input.adapterContractVersion,
71
74
  qualifiedSbxVersion: input.qualifiedSbxVersion,
75
+ ...(input.releaseProfileId === undefined ? {} : { releaseProfileId: input.releaseProfileId }),
72
76
  };
73
77
  };
74
78
  export const createEnvironmentValidationFingerprint = (input) => {
@@ -84,6 +88,9 @@ export const createEnvironmentValidationFingerprint = (input) => {
84
88
  appendFingerprintComponent(hash, 'validation_suite_schema_version', canonical.validationSuiteSchemaVersion);
85
89
  appendFingerprintComponent(hash, 'adapter_contract_version', canonical.adapterContractVersion);
86
90
  appendFingerprintComponent(hash, 'qualified_sbx_version', canonical.qualifiedSbxVersion);
91
+ if (canonical.releaseProfileId !== undefined) {
92
+ appendFingerprintComponent(hash, 'release_profile_id', canonical.releaseProfileId);
93
+ }
87
94
  return hash.digest('hex');
88
95
  };
89
96
  export const requireExecutionCapabilities = (provider, observation, requiredCapabilities) => {
@@ -1 +1 @@
1
- {"version":3,"file":"executionEnvironmentLifecycle.js","sourceRoot":"","sources":["../../../server/lib/executionEnvironmentLifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executionEnvironmentLifecycle.js","sourceRoot":"","sources":["../../../server/lib/executionEnvironmentLifecycle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,241 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { statfs } from 'node:fs/promises';
3
+ import { DockerSandboxCollisionFailure, } from './dockerSandboxExecutionEnvironment.js';
4
+ import { defaultDockerSandboxEnvironmentDependencies, resolveExpectedDockerSandboxIdentity, stopAndVerifyDockerSandbox, } from './dockerSandboxEnvironmentOperations.js';
5
+ import { appendExecutionEnvironmentEvent, claimExecutionEnvironmentOperation, getExecutionEnvironment, releaseExecutionEnvironmentOperation, requestExecutionEnvironmentRetirement, scheduleExecutionEnvironmentCleanupRetry, transitionExecutionEnvironment, } from './executionEnvironments.js';
6
+ export class ExecutionEnvironmentOperationConflict extends Error {
7
+ reason;
8
+ constructor(reason, message, options = {}) {
9
+ super(message, options);
10
+ this.name = 'ExecutionEnvironmentOperationConflict';
11
+ this.reason = reason;
12
+ }
13
+ }
14
+ const requireEnvironment = (projectId, environmentId) => {
15
+ const environment = getExecutionEnvironment(projectId, environmentId);
16
+ if (!environment) {
17
+ throw new ExecutionEnvironmentOperationConflict('environment_not_found', 'Execution environment was not found.');
18
+ }
19
+ if (environment.provider_kind !== 'docker_sandbox') {
20
+ throw new ExecutionEnvironmentOperationConflict('provider_unsupported', 'This environment provider does not support lifecycle operations.');
21
+ }
22
+ return environment;
23
+ };
24
+ const claimOperation = (projectId, environmentId, kind) => {
25
+ const claimId = randomUUID();
26
+ try {
27
+ const environment = claimExecutionEnvironmentOperation({ projectId, environmentId, kind, claimId });
28
+ return { claimId, environment };
29
+ }
30
+ catch (error) {
31
+ throw new ExecutionEnvironmentOperationConflict('environment_operation_conflict', error instanceof Error ? error.message : 'The environment has a conflicting lease or lifecycle operation.', { cause: error });
32
+ }
33
+ };
34
+ const recordStopped = (environment, providerState, eventType) => {
35
+ const current = requireEnvironment(environment.project_id, environment.id);
36
+ if (providerState === 'absent') {
37
+ if (current.lifecycle_state === 'unavailable') {
38
+ return current;
39
+ }
40
+ return transitionExecutionEnvironment({
41
+ projectId: current.project_id,
42
+ environmentId: current.id,
43
+ state: 'unavailable',
44
+ eventType,
45
+ failure: { code: 'sandbox_missing', message: 'The exact Docker Sandbox is absent.' },
46
+ metadata: { providerState },
47
+ });
48
+ }
49
+ if (current.lifecycle_state === 'stopped') {
50
+ appendExecutionEnvironmentEvent({
51
+ projectId: current.project_id,
52
+ environmentId: current.id,
53
+ eventType,
54
+ fromState: 'stopped',
55
+ toState: 'stopped',
56
+ metadata: { providerState },
57
+ });
58
+ return current;
59
+ }
60
+ return transitionExecutionEnvironment({
61
+ projectId: current.project_id,
62
+ environmentId: current.id,
63
+ state: 'stopped',
64
+ eventType,
65
+ metadata: { providerState },
66
+ });
67
+ };
68
+ export const stopExecutionEnvironment = async (input) => {
69
+ requireEnvironment(input.projectId, input.environmentId);
70
+ const { claimId, environment } = claimOperation(input.projectId, input.environmentId, 'stop');
71
+ try {
72
+ const providerState = await stopAndVerifyDockerSandbox(environment, input.dependencies ?? defaultDockerSandboxEnvironmentDependencies);
73
+ return recordStopped(environment, providerState, input.eventType ?? 'environment_stop_completed');
74
+ }
75
+ catch (error) {
76
+ const current = requireEnvironment(input.projectId, input.environmentId);
77
+ const message = error instanceof Error ? error.message : String(error);
78
+ const failure = {
79
+ code: error instanceof DockerSandboxCollisionFailure ? 'identity_mismatch' : 'termination_unverified',
80
+ message,
81
+ };
82
+ if (current.lifecycle_state === 'failed' || current.lifecycle_state === 'unavailable') {
83
+ appendExecutionEnvironmentEvent({
84
+ projectId: current.project_id,
85
+ environmentId: current.id,
86
+ eventType: 'environment_stop_failed',
87
+ fromState: current.lifecycle_state,
88
+ toState: current.lifecycle_state,
89
+ message,
90
+ metadata: { failureCode: failure.code },
91
+ });
92
+ }
93
+ else {
94
+ transitionExecutionEnvironment({
95
+ projectId: current.project_id,
96
+ environmentId: current.id,
97
+ state: 'unavailable',
98
+ eventType: 'environment_stop_failed',
99
+ failure,
100
+ });
101
+ }
102
+ throw error;
103
+ }
104
+ finally {
105
+ releaseExecutionEnvironmentOperation({ projectId: input.projectId, environmentId: input.environmentId, claimId });
106
+ }
107
+ };
108
+ const removeAndVerifyAbsent = async (environment, adapter, providerState) => {
109
+ const expected = resolveExpectedDockerSandboxIdentity(environment);
110
+ if (providerState === 'stopped') {
111
+ await adapter.remove(expected);
112
+ }
113
+ const remaining = await adapter.inspect(expected.name);
114
+ if (remaining) {
115
+ throw new Error(`Docker Sandbox ${expected.name} still exists after removal.`);
116
+ }
117
+ };
118
+ const retireClaimedEnvironment = async (input) => {
119
+ let current = requireEnvironment(input.environment.project_id, input.environment.id);
120
+ if (current.lifecycle_state !== 'retiring' && current.lifecycle_state !== 'cleanup_pending') {
121
+ current = transitionExecutionEnvironment({
122
+ projectId: current.project_id,
123
+ environmentId: current.id,
124
+ state: 'retiring',
125
+ eventType: `environment_${input.operation}_started`,
126
+ });
127
+ }
128
+ const providerState = await stopAndVerifyDockerSandbox(current, input.dependencies);
129
+ await removeAndVerifyAbsent(current, input.dependencies.adapter, providerState);
130
+ current = requireEnvironment(current.project_id, current.id);
131
+ if (current.lifecycle_state !== 'cleanup_pending') {
132
+ current = transitionExecutionEnvironment({
133
+ projectId: current.project_id,
134
+ environmentId: current.id,
135
+ state: 'cleanup_pending',
136
+ eventType: `environment_${input.operation}_cleanup_started`,
137
+ });
138
+ }
139
+ return transitionExecutionEnvironment({
140
+ projectId: current.project_id,
141
+ environmentId: current.id,
142
+ state: 'retired',
143
+ eventType: `environment_${input.operation}_completed`,
144
+ message: 'The exact Docker Sandbox was removed and verified absent.',
145
+ });
146
+ };
147
+ const destructiveOperation = async (input) => {
148
+ const existing = requireEnvironment(input.projectId, input.environmentId);
149
+ if (existing.lifecycle_state === 'retired') {
150
+ return existing;
151
+ }
152
+ if (input.operation === 'retire') {
153
+ const requested = requestExecutionEnvironmentRetirement({
154
+ projectId: input.projectId,
155
+ environmentId: input.environmentId,
156
+ });
157
+ if (requested.lifecycle_state !== 'retiring') {
158
+ return requested;
159
+ }
160
+ }
161
+ const { claimId, environment } = claimOperation(input.projectId, input.environmentId, input.operation);
162
+ try {
163
+ return await retireClaimedEnvironment({
164
+ environment,
165
+ claimId,
166
+ dependencies: input.dependencies ?? defaultDockerSandboxEnvironmentDependencies,
167
+ operation: input.operation,
168
+ });
169
+ }
170
+ catch (error) {
171
+ let current = getExecutionEnvironment(input.projectId, input.environmentId);
172
+ if (current && current.lifecycle_state === 'retiring') {
173
+ current = transitionExecutionEnvironment({
174
+ projectId: current.project_id,
175
+ environmentId: current.id,
176
+ state: 'cleanup_pending',
177
+ eventType: `environment_${input.operation}_failed`,
178
+ failure: {
179
+ code: error instanceof DockerSandboxCollisionFailure ? 'identity_mismatch' : `${input.operation}_failed`,
180
+ message: error instanceof Error ? error.message : 'Environment cleanup failed.',
181
+ },
182
+ });
183
+ }
184
+ if (current?.lifecycle_state === 'cleanup_pending') {
185
+ scheduleExecutionEnvironmentCleanupRetry({
186
+ projectId: current.project_id,
187
+ environmentId: current.id,
188
+ failure: {
189
+ code: error instanceof DockerSandboxCollisionFailure ? 'identity_mismatch' : `${input.operation}_failed`,
190
+ message: error instanceof Error ? error.message : 'Environment cleanup failed.',
191
+ },
192
+ });
193
+ }
194
+ throw error;
195
+ }
196
+ finally {
197
+ const current = getExecutionEnvironment(input.projectId, input.environmentId);
198
+ if (current?.operation_claim_id === claimId) {
199
+ releaseExecutionEnvironmentOperation({ projectId: input.projectId, environmentId: input.environmentId, claimId });
200
+ }
201
+ }
202
+ };
203
+ export const retireExecutionEnvironmentOperation = (input) => destructiveOperation({ ...input, operation: 'retire' });
204
+ export const resetExecutionEnvironmentOperation = (input) => destructiveOperation({ ...input, operation: 'reset' });
205
+ export const retryExecutionEnvironmentCleanup = (input) => {
206
+ const environment = requireEnvironment(input.projectId, input.environmentId);
207
+ if (!['retiring', 'cleanup_pending', 'failed', 'unavailable'].includes(environment.lifecycle_state)) {
208
+ throw new ExecutionEnvironmentOperationConflict('cleanup_retry_not_allowed', 'Cleanup retry is only available for an environment with pending cleanup.');
209
+ }
210
+ return destructiveOperation({ ...input, operation: 'cleanup_retry' });
211
+ };
212
+ export const inspectExecutionEnvironmentDisk = async (environment) => {
213
+ try {
214
+ const storage = await statfs(environment.target_workspace_path, { bigint: true });
215
+ const availableBytes = storage.bavail * storage.bsize;
216
+ const capacityBytes = storage.blocks * storage.bsize;
217
+ return {
218
+ machine_storage: {
219
+ state: availableBytes > 0n ? 'ready' : 'not_ready',
220
+ available_bytes: Number(availableBytes),
221
+ capacity_bytes: Number(capacityBytes),
222
+ },
223
+ private_environment_usage: {
224
+ state: 'unsupported',
225
+ used_bytes: null,
226
+ reason: 'The qualified Docker Sandbox provider does not expose per-environment private disk usage.',
227
+ },
228
+ };
229
+ }
230
+ catch {
231
+ return {
232
+ machine_storage: { state: 'unknown', available_bytes: null, capacity_bytes: null },
233
+ private_environment_usage: {
234
+ state: 'unsupported',
235
+ used_bytes: null,
236
+ reason: 'The qualified Docker Sandbox provider does not expose per-environment private disk usage.',
237
+ },
238
+ };
239
+ }
240
+ };
241
+ //# sourceMappingURL=executionEnvironmentOperations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executionEnvironmentOperations.js","sourceRoot":"","sources":["../../../server/lib/executionEnvironmentOperations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EACL,6BAA6B,GAE9B,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EACL,2CAA2C,EAC3C,oCAAoC,EACpC,0BAA0B,GAE3B,MAAM,yCAAyC,CAAA;AAChD,OAAO,EACL,+BAA+B,EAC/B,kCAAkC,EAClC,uBAAuB,EACvB,oCAAoC,EACpC,qCAAqC,EACrC,wCAAwC,EACxC,8BAA8B,GAC/B,MAAM,4BAA4B,CAAA;AAGnC,MAAM,OAAO,qCAAsC,SAAQ,KAAK;IACrD,MAAM,CAAQ;IAEvB,YAAY,MAAc,EAAE,OAAe,EAAE,UAAwB,EAAE;QACrE,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACvB,IAAI,CAAC,IAAI,GAAG,uCAAuC,CAAA;QACnD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;CACF;AAED,MAAM,kBAAkB,GAAG,CAAC,SAAiB,EAAE,aAAqB,EAAE,EAAE;IACtE,MAAM,WAAW,GAAG,uBAAuB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;IACrE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,qCAAqC,CAAC,uBAAuB,EAAE,sCAAsC,CAAC,CAAA;IAClH,CAAC;IACD,IAAI,WAAW,CAAC,aAAa,KAAK,gBAAgB,EAAE,CAAC;QACnD,MAAM,IAAI,qCAAqC,CAAC,sBAAsB,EAAE,kEAAkE,CAAC,CAAA;IAC7I,CAAC;IACD,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA;AAED,MAAM,cAAc,GAAG,CACrB,SAAiB,EACjB,aAAqB,EACrB,IAAmD,EACnD,EAAE;IACF,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;IAC5B,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,kCAAkC,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;QACnG,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAA;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,qCAAqC,CAC7C,gCAAgC,EAChC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,iEAAiE,EAC1G,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAA;IACH,CAAC;AACH,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,CACpB,WAAiC,EACjC,aAAmC,EACnC,SAAiB,EACjB,EAAE;IACF,MAAM,OAAO,GAAG,kBAAkB,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC,CAAA;IAC1E,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,eAAe,KAAK,aAAa,EAAE,CAAC;YAC9C,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,OAAO,8BAA8B,CAAC;YACpC,SAAS,EAAE,OAAO,CAAC,UAAU;YAC7B,aAAa,EAAE,OAAO,CAAC,EAAE;YACzB,KAAK,EAAE,aAAa;YACpB,SAAS;YACT,OAAO,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,qCAAqC,EAAE;YACpF,QAAQ,EAAE,EAAE,aAAa,EAAE;SAC5B,CAAC,CAAA;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QAC1C,+BAA+B,CAAC;YAC9B,SAAS,EAAE,OAAO,CAAC,UAAU;YAC7B,aAAa,EAAE,OAAO,CAAC,EAAE;YACzB,SAAS;YACT,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,EAAE,aAAa,EAAE;SAC5B,CAAC,CAAA;QACF,OAAO,OAAO,CAAA;IAChB,CAAC;IACD,OAAO,8BAA8B,CAAC;QACpC,SAAS,EAAE,OAAO,CAAC,UAAU;QAC7B,aAAa,EAAE,OAAO,CAAC,EAAE;QACzB,KAAK,EAAE,SAAS;QAChB,SAAS;QACT,QAAQ,EAAE,EAAE,aAAa,EAAE;KAC5B,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAAE,KAK7C,EAAE,EAAE;IACJ,kBAAkB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,CAAA;IACxD,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;IAC7F,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,0BAA0B,CACpD,WAAW,EACX,KAAK,CAAC,YAAY,IAAI,2CAA2C,CAClE,CAAA;QACD,OAAO,aAAa,CAAC,WAAW,EAAE,aAAa,EAAE,KAAK,CAAC,SAAS,IAAI,4BAA4B,CAAC,CAAA;IACnG,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,CAAA;QACxE,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACtE,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,KAAK,YAAY,6BAA6B,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,wBAAwB;YACrG,OAAO;SACR,CAAA;QACD,IAAI,OAAO,CAAC,eAAe,KAAK,QAAQ,IAAI,OAAO,CAAC,eAAe,KAAK,aAAa,EAAE,CAAC;YACtF,+BAA+B,CAAC;gBAC9B,SAAS,EAAE,OAAO,CAAC,UAAU;gBAC7B,aAAa,EAAE,OAAO,CAAC,EAAE;gBACzB,SAAS,EAAE,yBAAyB;gBACpC,SAAS,EAAE,OAAO,CAAC,eAAe;gBAClC,OAAO,EAAE,OAAO,CAAC,eAAe;gBAChC,OAAO;gBACP,QAAQ,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE;aACxC,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,8BAA8B,CAAC;gBAC7B,SAAS,EAAE,OAAO,CAAC,UAAU;gBAC7B,aAAa,EAAE,OAAO,CAAC,EAAE;gBACzB,KAAK,EAAE,aAAa;gBACpB,SAAS,EAAE,yBAAyB;gBACpC,OAAO;aACR,CAAC,CAAA;QACJ,CAAC;QACD,MAAM,KAAK,CAAA;IACb,CAAC;YAAS,CAAC;QACT,oCAAoC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,CAAA;IACnH,CAAC;AACH,CAAC,CAAA;AAED,MAAM,qBAAqB,GAAG,KAAK,EACjC,WAAiC,EACjC,OAA6B,EAC7B,aAAmC,EACnC,EAAE;IACF,MAAM,QAAQ,GAAG,oCAAoC,CAAC,WAAW,CAAC,CAAA;IAClE,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAChC,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IACtD,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,kBAAkB,QAAQ,CAAC,IAAI,8BAA8B,CAAC,CAAA;IAChF,CAAC;AACH,CAAC,CAAA;AAED,MAAM,wBAAwB,GAAG,KAAK,EAAE,KAKtC,EAAE,EAAE;IACJ,IAAI,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;IACpF,IAAI,OAAO,CAAC,eAAe,KAAK,UAAU,IAAI,OAAO,CAAC,eAAe,KAAK,iBAAiB,EAAE,CAAC;QAC5F,OAAO,GAAG,8BAA8B,CAAC;YACvC,SAAS,EAAE,OAAO,CAAC,UAAU;YAC7B,aAAa,EAAE,OAAO,CAAC,EAAE;YACzB,KAAK,EAAE,UAAU;YACjB,SAAS,EAAE,eAAe,KAAK,CAAC,SAAS,UAAU;SACpD,CAAC,CAAA;IACJ,CAAC;IACD,MAAM,aAAa,GAAG,MAAM,0BAA0B,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;IACnF,MAAM,qBAAqB,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;IAC/E,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;IAC5D,IAAI,OAAO,CAAC,eAAe,KAAK,iBAAiB,EAAE,CAAC;QAClD,OAAO,GAAG,8BAA8B,CAAC;YACvC,SAAS,EAAE,OAAO,CAAC,UAAU;YAC7B,aAAa,EAAE,OAAO,CAAC,EAAE;YACzB,KAAK,EAAE,iBAAiB;YACxB,SAAS,EAAE,eAAe,KAAK,CAAC,SAAS,kBAAkB;SAC5D,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,8BAA8B,CAAC;QACpC,SAAS,EAAE,OAAO,CAAC,UAAU;QAC7B,aAAa,EAAE,OAAO,CAAC,EAAE;QACzB,KAAK,EAAE,SAAS;QAChB,SAAS,EAAE,eAAe,KAAK,CAAC,SAAS,YAAY;QACrD,OAAO,EAAE,2DAA2D;KACrE,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,KAAK,EAAE,KAKlC,EAAE,EAAE;IACJ,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,CAAA;IACzE,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QAC3C,OAAO,QAAQ,CAAA;IACjB,CAAC;IACD,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,qCAAqC,CAAC;YACtD,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;SACnC,CAAC,CAAA;QACF,IAAI,SAAS,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;YAC7C,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC;IACD,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;IACtG,IAAI,CAAC;QACH,OAAO,MAAM,wBAAwB,CAAC;YACpC,WAAW;YACX,OAAO;YACP,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,2CAA2C;YAC/E,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,CAAA;QAC3E,IAAI,OAAO,IAAI,OAAO,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;YACtD,OAAO,GAAG,8BAA8B,CAAC;gBACvC,SAAS,EAAE,OAAO,CAAC,UAAU;gBAC7B,aAAa,EAAE,OAAO,CAAC,EAAE;gBACzB,KAAK,EAAE,iBAAiB;gBACxB,SAAS,EAAE,eAAe,KAAK,CAAC,SAAS,SAAS;gBAClD,OAAO,EAAE;oBACP,IAAI,EAAE,KAAK,YAAY,6BAA6B,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,SAAS;oBACxG,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B;iBAChF;aACF,CAAC,CAAA;QACJ,CAAC;QACD,IAAI,OAAO,EAAE,eAAe,KAAK,iBAAiB,EAAE,CAAC;YACnD,wCAAwC,CAAC;gBACvC,SAAS,EAAE,OAAO,CAAC,UAAU;gBAC7B,aAAa,EAAE,OAAO,CAAC,EAAE;gBACzB,OAAO,EAAE;oBACP,IAAI,EAAE,KAAK,YAAY,6BAA6B,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,SAAS;oBACxG,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B;iBAChF;aACF,CAAC,CAAA;QACJ,CAAC;QACD,MAAM,KAAK,CAAA;IACb,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,CAAA;QAC7E,IAAI,OAAO,EAAE,kBAAkB,KAAK,OAAO,EAAE,CAAC;YAC5C,oCAAoC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,CAAA;QACnH,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,KAIlD,EAAE,EAAE,CAAC,oBAAoB,CAAC,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAA;AAE9D,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,KAIjD,EAAE,EAAE,CAAC,oBAAoB,CAAC,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAA;AAE7D,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,KAI/C,EAAE,EAAE;IACJ,MAAM,WAAW,GAAG,kBAAkB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,CAAA;IAC5E,IAAI,CAAC,CAAC,UAAU,EAAE,iBAAiB,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,CAAC;QACpG,MAAM,IAAI,qCAAqC,CAC7C,2BAA2B,EAC3B,0EAA0E,CAC3E,CAAA;IACH,CAAC;IACD,OAAO,oBAAoB,CAAC,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAA;AACvE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,+BAA+B,GAAG,KAAK,EAClD,WAAiC,EACgC,EAAE;IACnE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QACjF,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAA;QACrD,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAA;QACpD,OAAO;YACL,eAAe,EAAE;gBACf,KAAK,EAAE,cAAc,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW;gBAClD,eAAe,EAAE,MAAM,CAAC,cAAc,CAAC;gBACvC,cAAc,EAAE,MAAM,CAAC,aAAa,CAAC;aACtC;YACD,yBAAyB,EAAE;gBACzB,KAAK,EAAE,aAAa;gBACpB,UAAU,EAAE,IAAI;gBAChB,MAAM,EAAE,2FAA2F;aACpG;SACF,CAAA;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,eAAe,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAClF,yBAAyB,EAAE;gBACzB,KAAK,EAAE,aAAa;gBACpB,UAAU,EAAE,IAAI;gBAChB,MAAM,EAAE,2FAA2F;aACpG;SACF,CAAA;IACH,CAAC;AACH,CAAC,CAAA"}
@@ -1,8 +1,11 @@
1
1
  import db from '../db.js';
2
2
  import { randomUUID } from 'crypto';
3
- import { createDockerSandboxAdapter, createDockerSandboxName, createSbxCommandRunner, DOCKER_SANDBOX_PROVIDER, QUALIFIED_DOCKER_SANDBOX_TEMPLATES, DockerSandboxCollisionFailure, DockerSandboxStopVerificationFailure, SbxCommandFailure, } from './dockerSandboxExecutionEnvironment.js';
3
+ import { createDockerSandboxAdapter, createDockerSandboxName, createSbxCommandRunner, DOCKER_SANDBOX_PROVIDER, DockerSandboxCollisionFailure, DockerSandboxStopVerificationFailure, SbxCommandFailure, } from './dockerSandboxExecutionEnvironment.js';
4
+ import { resolveDockerSandboxReleaseForPersistedEnvironment } from './dockerSandboxReleaseProfiles.js';
4
5
  import { appendExecutionEnvironmentEvent, claimExecutionEnvironmentsForCleanup, completeExecutionEnvironmentCleanup, failExecutionEnvironmentCleanup, getExecutionEnvironment, releaseExecutionEnvironmentLease, transitionExecutionEnvironment, } from './executionEnvironments.js';
5
6
  import { getExecutionRun, transitionExecutionRun } from './executionRuns.js';
7
+ import { defaultDockerSandboxEnvironmentDependencies } from './dockerSandboxEnvironmentOperations.js';
8
+ import { retryExecutionEnvironmentCleanup, stopExecutionEnvironment, } from './executionEnvironmentOperations.js';
6
9
  const VALIDATION_CLEANUP_TIMEOUT_MS = 30_000;
7
10
  const VALIDATION_CLEANUP_REMEDIATION = 'Verify the persisted sandbox identity and stop it manually before retrying validation.';
8
11
  export class ExecutionEnvironmentCleanupError extends Error {
@@ -395,6 +398,10 @@ export const reconcileProductionExecutionEnvironmentBindings = async (adapter =
395
398
  if (!authority) {
396
399
  throw new Error('The immutable execution authority is malformed or does not match its lease');
397
400
  }
401
+ const releaseProfile = resolveDockerSandboxReleaseForPersistedEnvironment(environment.provider_version, environment.template_identity, authority.agent);
402
+ if (!releaseProfile) {
403
+ throw new Error('The persisted Docker Sandbox release is unsupported or security-blocked');
404
+ }
398
405
  if (binding.placement_json !== null && !parsedPlacement) {
399
406
  throw new Error('The immutable execution placement is malformed or does not match its lease');
400
407
  }
@@ -419,7 +426,7 @@ export const reconcileProductionExecutionEnvironmentBindings = async (adapter =
419
426
  name: externalId,
420
427
  agent: authority.agent,
421
428
  workspacePath: authority.target.workspace_path,
422
- template: QUALIFIED_DOCKER_SANDBOX_TEMPLATES[authority.agent],
429
+ template: releaseProfile.templates[authority.agent],
423
430
  };
424
431
  const before = await adapter.inspect(expected.name);
425
432
  if (before && !inspectionMatches(expected, before)) {
@@ -525,14 +532,102 @@ const recordObservation = (environment, observed) => {
525
532
  metadata: { providerState: observed.state },
526
533
  });
527
534
  };
535
+ export const reconcileExecutionEnvironmentLifecycleOperations = async (adapter = createDefaultDockerSandboxAdapter()) => {
536
+ const summary = { idle_stopped: 0, cleanup_retried: 0, failed: 0, recovered_claims: 0 };
537
+ const now = new Date().toISOString();
538
+ const staleClaimBefore = new Date(Date.now() - 5 * 60_000).toISOString();
539
+ const staleClaims = db.prepare(`
540
+ SELECT id, project_id, lifecycle_state, operation_claim_id, operation_kind
541
+ FROM execution_environments
542
+ WHERE operation_claim_id IS NOT NULL AND operation_claimed_at < ?
543
+ `).all(staleClaimBefore);
544
+ for (const claim of staleClaims) {
545
+ const result = db.prepare(`
546
+ UPDATE execution_environments
547
+ SET operation_claim_id = NULL, operation_kind = NULL, operation_claimed_at = NULL, updated_at = ?
548
+ WHERE id = ? AND project_id = ? AND operation_claim_id = ?
549
+ `).run(now, claim.id, claim.project_id, claim.operation_claim_id);
550
+ if (result.changes !== 1) {
551
+ continue;
552
+ }
553
+ appendExecutionEnvironmentEvent({
554
+ projectId: claim.project_id,
555
+ environmentId: claim.id,
556
+ eventType: 'environment_operation_claim_recovered',
557
+ fromState: claim.lifecycle_state,
558
+ toState: claim.lifecycle_state,
559
+ metadata: { claimId: claim.operation_claim_id, operationKind: claim.operation_kind },
560
+ });
561
+ summary.recovered_claims += 1;
562
+ }
563
+ const due = db.prepare(`
564
+ SELECT id, project_id
565
+ FROM execution_environments environment
566
+ WHERE provider_kind = ? AND lifecycle_state <> 'retired'
567
+ AND operation_claim_id IS NULL
568
+ AND NOT EXISTS (
569
+ SELECT 1 FROM execution_environment_run_bindings binding
570
+ WHERE binding.environment_id = environment.id
571
+ AND binding.project_id = environment.project_id
572
+ AND binding.released_at IS NULL
573
+ )
574
+ AND (
575
+ (
576
+ lifecycle_state IN ('retiring', 'cleanup_pending', 'failed', 'unavailable')
577
+ AND (retirement_requested_at IS NOT NULL OR lifecycle_state = 'cleanup_pending')
578
+ AND (cleanup_retry_at IS NULL OR cleanup_retry_at <= ?)
579
+ )
580
+ OR (idle_stop_at IS NOT NULL AND idle_stop_at <= ? AND lifecycle_state IN ('ready', 'running'))
581
+ )
582
+ ORDER BY COALESCE(cleanup_retry_at, idle_stop_at, updated_at) ASC, id ASC
583
+ `).all(DOCKER_SANDBOX_PROVIDER, now, now);
584
+ for (const row of due) {
585
+ const environment = getExecutionEnvironment(row.project_id, row.id);
586
+ if (!environment) {
587
+ continue;
588
+ }
589
+ try {
590
+ if (environment.idle_stop_at !== null && ['ready', 'running'].includes(environment.lifecycle_state)) {
591
+ await stopExecutionEnvironment({
592
+ projectId: environment.project_id,
593
+ environmentId: environment.id,
594
+ dependencies: { ...defaultDockerSandboxEnvironmentDependencies, adapter },
595
+ eventType: 'environment_idle_stop_completed',
596
+ });
597
+ summary.idle_stopped += 1;
598
+ }
599
+ else {
600
+ await retryExecutionEnvironmentCleanup({
601
+ projectId: environment.project_id,
602
+ environmentId: environment.id,
603
+ dependencies: { ...defaultDockerSandboxEnvironmentDependencies, adapter },
604
+ });
605
+ summary.cleanup_retried += 1;
606
+ }
607
+ }
608
+ catch {
609
+ summary.failed += 1;
610
+ }
611
+ }
612
+ return summary;
613
+ };
528
614
  export const reconcileExecutionEnvironments = async (adapter = createDefaultDockerSandboxAdapter()) => {
615
+ const lifecycleSummary = await reconcileExecutionEnvironmentLifecycleOperations(adapter);
529
616
  const rows = db.prepare(`
530
617
  SELECT id, project_id
531
618
  FROM execution_environments
532
619
  WHERE lifecycle_state <> 'retired'
533
620
  ORDER BY created_at ASC, id ASC
534
621
  `).all();
535
- const summary = { observed_running: 0, observed_stopped: 0, observed_missing: 0, unavailable: 0, deferred: 0 };
622
+ const summary = {
623
+ observed_running: 0,
624
+ observed_stopped: 0,
625
+ observed_missing: 0,
626
+ unavailable: 0,
627
+ deferred: 0,
628
+ idle_stopped: lifecycleSummary.idle_stopped,
629
+ cleanup_retried: lifecycleSummary.cleanup_retried,
630
+ };
536
631
  for (const row of rows) {
537
632
  const environment = getExecutionEnvironment(row.project_id, row.id);
538
633
  if (!environment || environment.provider_kind !== DOCKER_SANDBOX_PROVIDER) {