@straiffi/archon 1.8.23 → 1.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (221) hide show
  1. package/dist/client/assets/{ActivityView-BaIZ8eHC.js → ActivityView-C5OrI0uK.js} +1 -1
  2. package/dist/client/assets/GitHubActionsDialog-BABPYwJP.js +1 -0
  3. package/dist/client/assets/VerificationDialog-LN87YY0r.js +4 -0
  4. package/dist/client/assets/{architectureDiagram-3BPJPVTR-Dl5UF67P.js → architectureDiagram-3BPJPVTR-DBXhcjPI.js} +1 -1
  5. package/dist/client/assets/{blockDiagram-GPEHLZMM-DCcERfrZ.js → blockDiagram-GPEHLZMM-c3auwNH7.js} +1 -1
  6. package/dist/client/assets/{c4Diagram-AAUBKEIU-BGhbASFm.js → c4Diagram-AAUBKEIU-DH2YznEQ.js} +1 -1
  7. package/dist/client/assets/channel-CYsnLOcX.js +1 -0
  8. package/dist/client/assets/{chunk-2J33WTMH-C1ARozTV.js → chunk-2J33WTMH-D0_MoyXZ.js} +1 -1
  9. package/dist/client/assets/{chunk-3OPIFGDE-BEovLizF.js → chunk-3OPIFGDE-DLvSp1DN.js} +1 -1
  10. package/dist/client/assets/{chunk-5ZQYHXKU-C5MmlLa_.js → chunk-5ZQYHXKU-B4sX8Htk.js} +1 -1
  11. package/dist/client/assets/{chunk-727SXJPM-8y8jBk4n.js → chunk-727SXJPM-CkdnShG1.js} +1 -1
  12. package/dist/client/assets/{chunk-AQP2D5EJ-q-mByAd3.js → chunk-AQP2D5EJ-BdPfgkcs.js} +1 -1
  13. package/dist/client/assets/{chunk-CSCIHK7Q-BOx2mLSz.js → chunk-CSCIHK7Q-CK-DpVF6.js} +1 -1
  14. package/dist/client/assets/{chunk-KSCS5N6A-zEwQFq7q.js → chunk-KSCS5N6A-DSbTWVl2.js} +1 -1
  15. package/dist/client/assets/{chunk-L5ZTLDWV-C80z6rY_.js → chunk-L5ZTLDWV-DuQ4EPLl.js} +1 -1
  16. package/dist/client/assets/{chunk-LZXEDZCA-BLaEsGPd.js → chunk-LZXEDZCA-CtpoXWMY.js} +2 -2
  17. package/dist/client/assets/{chunk-ND2GUHAM-x26BZ95L.js → chunk-ND2GUHAM-CDfNOP6o.js} +1 -1
  18. package/dist/client/assets/{chunk-NZK2D7GU-D2WAxr1p.js → chunk-NZK2D7GU-s6ReY4ev.js} +1 -1
  19. package/dist/client/assets/{chunk-O5CBEL6O-DDPCrzKh.js → chunk-O5CBEL6O-DxqYGKhS.js} +1 -1
  20. package/dist/client/assets/{chunk-WU5MYG2G-CE-JcvIc.js → chunk-WU5MYG2G-BvrhxyV8.js} +1 -1
  21. package/dist/client/assets/classDiagram-4FO5ZUOK-CElk31Q4.js +1 -0
  22. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-lnAahwmt.js +1 -0
  23. package/dist/client/assets/{dagre-BM42HDAG-Bf7wpUk_.js → dagre-BM42HDAG-DEK_rftr.js} +1 -1
  24. package/dist/client/assets/{diagram-2AECGRRQ-BQoKmc3B.js → diagram-2AECGRRQ-CpobcZnv.js} +1 -1
  25. package/dist/client/assets/{diagram-5GNKFQAL-D2jarPLn.js → diagram-5GNKFQAL-zL1D1L_8.js} +1 -1
  26. package/dist/client/assets/{diagram-KO2AKTUF-Bcbbjvsl.js → diagram-KO2AKTUF-gyW-Vc7c.js} +1 -1
  27. package/dist/client/assets/{diagram-LMA3HP47-t862RRBQ.js → diagram-LMA3HP47-DDEYc8sh.js} +1 -1
  28. package/dist/client/assets/{diagram-OG6HWLK6-CacbMcO0.js → diagram-OG6HWLK6-BtUrfJnE.js} +1 -1
  29. package/dist/client/assets/{erDiagram-TEJ5UH35-DRQ79baI.js → erDiagram-TEJ5UH35-qGrmpmmk.js} +1 -1
  30. package/dist/client/assets/{flowDiagram-I6XJVG4X-BfW4KEdc.js → flowDiagram-I6XJVG4X-DO1Nm1FA.js} +1 -1
  31. package/dist/client/assets/{ganttDiagram-6RSMTGT7-BPIl0TAj.js → ganttDiagram-6RSMTGT7-DGuMVCAc.js} +1 -1
  32. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-CRIusBMV.js → gitGraphDiagram-PVQCEYII-CehPAc8-.js} +1 -1
  33. package/dist/client/assets/index-1CokwSFm.css +2 -0
  34. package/dist/client/assets/index-DtefHOHC.js +276 -0
  35. package/dist/client/assets/{infoDiagram-5YYISTIA-DTKzK8EJ.js → infoDiagram-5YYISTIA-BkRaMDId.js} +1 -1
  36. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-DVIHZLvL.js → ishikawaDiagram-YF4QCWOH-B45ubODJ.js} +1 -1
  37. package/dist/client/assets/{journeyDiagram-JHISSGLW-CQBZ4tCx.js → journeyDiagram-JHISSGLW-BLxrlitK.js} +1 -1
  38. package/dist/client/assets/{kanban-definition-UN3LZRKU-D7naegR0.js → kanban-definition-UN3LZRKU-DmyeJDyy.js} +1 -1
  39. package/dist/client/assets/{line-CizZlaeV.js → line-BhwjsX6t.js} +1 -1
  40. package/dist/client/assets/{mermaid-parser.core-NrDqgpZa.js → mermaid-parser.core-CPvivy_u.js} +1 -1
  41. package/dist/client/assets/{mermaid.core-CwVO3oX0.js → mermaid.core-Dr0kld-g.js} +3 -3
  42. package/dist/client/assets/{mindmap-definition-RKZ34NQL-BWxy3Aa_.js → mindmap-definition-RKZ34NQL-dfudPzBR.js} +1 -1
  43. package/dist/client/assets/{pieDiagram-4H26LBE5-B3gXpmBn.js → pieDiagram-4H26LBE5-BhsIQVNX.js} +1 -1
  44. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-Dpp4g8Al.js → quadrantDiagram-W4KKPZXB-CAKxScLD.js} +1 -1
  45. package/dist/client/assets/{requirementDiagram-4Y6WPE33-lFKXnxml.js → requirementDiagram-4Y6WPE33-Br6jIbke.js} +1 -1
  46. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-BBdtwqrS.js → sankeyDiagram-5OEKKPKP-BqujNgnY.js} +1 -1
  47. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-ANpVZzqm.js → sequenceDiagram-3UESZ5HK-Dr_VM_ei.js} +1 -1
  48. package/dist/client/assets/{stateDiagram-AJRCARHV-D58ZxmKY.js → stateDiagram-AJRCARHV-CDbSbbTW.js} +1 -1
  49. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-p-kfFJi7.js +1 -0
  50. package/dist/client/assets/{timeline-definition-PNZ67QCA-B6FK8IQC.js → timeline-definition-PNZ67QCA-CnuLuWDs.js} +1 -1
  51. package/dist/client/assets/{vennDiagram-CIIHVFJN-lFWtZEEY.js → vennDiagram-CIIHVFJN-CVAhxdBZ.js} +1 -1
  52. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-DteAVp4l.js → wardleyDiagram-YWT4CUSO-Dmczey27.js} +1 -1
  53. package/dist/client/assets/{xychartDiagram-2RQKCTM6-CNcDlRLN.js → xychartDiagram-2RQKCTM6-Bl6JGLCU.js} +1 -1
  54. package/dist/client/index.html +2 -2
  55. package/dist/server/db.js +225 -12
  56. package/dist/server/db.js.map +1 -1
  57. package/dist/server/index.js +88 -27
  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 +255 -58
  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/claudeValidationOutput.js +4 -4
  89. package/dist/server/lib/claudeValidationOutput.js.map +1 -1
  90. package/dist/server/lib/completedAssistantOutput.js +38 -0
  91. package/dist/server/lib/completedAssistantOutput.js.map +1 -0
  92. package/dist/server/lib/consequentialActionAuthority.js +99 -8
  93. package/dist/server/lib/consequentialActionAuthority.js.map +1 -1
  94. package/dist/server/lib/consequentialActions.js +42 -2
  95. package/dist/server/lib/consequentialActions.js.map +1 -1
  96. package/dist/server/lib/dockerSandboxCredentials.js +10 -3
  97. package/dist/server/lib/dockerSandboxCredentials.js.map +1 -1
  98. package/dist/server/lib/dockerSandboxEnvironmentOperations.js +9 -8
  99. package/dist/server/lib/dockerSandboxEnvironmentOperations.js.map +1 -1
  100. package/dist/server/lib/dockerSandboxExecutionEnvironment.js +197 -81
  101. package/dist/server/lib/dockerSandboxExecutionEnvironment.js.map +1 -1
  102. package/dist/server/lib/dockerSandboxExecutionProvider.js +22 -14
  103. package/dist/server/lib/dockerSandboxExecutionProvider.js.map +1 -1
  104. package/dist/server/lib/dockerSandboxNetworkPolicy.js +23 -14
  105. package/dist/server/lib/dockerSandboxNetworkPolicy.js.map +1 -1
  106. package/dist/server/lib/dockerSandboxReleaseProfiles.js +91 -0
  107. package/dist/server/lib/dockerSandboxReleaseProfiles.js.map +1 -0
  108. package/dist/server/lib/dockerSandboxRuntimeController.js +16 -1
  109. package/dist/server/lib/dockerSandboxRuntimeController.js.map +1 -1
  110. package/dist/server/lib/executionCredentialCapabilities.js +9 -6
  111. package/dist/server/lib/executionCredentialCapabilities.js.map +1 -1
  112. package/dist/server/lib/executionEnvironment.js.map +1 -1
  113. package/dist/server/lib/executionEnvironmentLifecycle.js +7 -0
  114. package/dist/server/lib/executionEnvironmentLifecycle.js.map +1 -1
  115. package/dist/server/lib/executionEnvironmentOperations.js +241 -0
  116. package/dist/server/lib/executionEnvironmentOperations.js.map +1 -0
  117. package/dist/server/lib/executionEnvironmentReconciliation.js +98 -3
  118. package/dist/server/lib/executionEnvironmentReconciliation.js.map +1 -1
  119. package/dist/server/lib/executionEnvironmentRoutes.js +66 -27
  120. package/dist/server/lib/executionEnvironmentRoutes.js.map +1 -1
  121. package/dist/server/lib/executionEnvironmentValidation.js +21 -12
  122. package/dist/server/lib/executionEnvironmentValidation.js.map +1 -1
  123. package/dist/server/lib/executionEnvironmentValidationOperations.js +58 -31
  124. package/dist/server/lib/executionEnvironmentValidationOperations.js.map +1 -1
  125. package/dist/server/lib/executionEnvironments.js +187 -9
  126. package/dist/server/lib/executionEnvironments.js.map +1 -1
  127. package/dist/server/lib/executionProfileCheckPolicy.js +14 -0
  128. package/dist/server/lib/executionProfileCheckPolicy.js.map +1 -0
  129. package/dist/server/lib/executionProfileRoutes.js +9 -1
  130. package/dist/server/lib/executionProfileRoutes.js.map +1 -1
  131. package/dist/server/lib/executionProfileStore.js +5 -3
  132. package/dist/server/lib/executionProfileStore.js.map +1 -1
  133. package/dist/server/lib/executionProfiles.js +97 -15
  134. package/dist/server/lib/executionProfiles.js.map +1 -1
  135. package/dist/server/lib/executionReconciliation.js +43 -6
  136. package/dist/server/lib/executionReconciliation.js.map +1 -1
  137. package/dist/server/lib/executionRunAuthority.js +145 -24
  138. package/dist/server/lib/executionRunAuthority.js.map +1 -1
  139. package/dist/server/lib/executionTargets.js +30 -4
  140. package/dist/server/lib/executionTargets.js.map +1 -1
  141. package/dist/server/lib/executionWorkloads.js +75 -0
  142. package/dist/server/lib/executionWorkloads.js.map +1 -0
  143. package/dist/server/lib/git.js +10 -1
  144. package/dist/server/lib/git.js.map +1 -1
  145. package/dist/server/lib/opencodeAgentProvider.js +3 -1
  146. package/dist/server/lib/opencodeAgentProvider.js.map +1 -1
  147. package/dist/server/lib/opencodeSessionOperations.js +5 -3
  148. package/dist/server/lib/opencodeSessionOperations.js.map +1 -1
  149. package/dist/server/lib/planQuestions.js +2 -1
  150. package/dist/server/lib/planQuestions.js.map +1 -1
  151. package/dist/server/lib/postBuildCheckRuns.js +88 -7
  152. package/dist/server/lib/postBuildCheckRuns.js.map +1 -1
  153. package/dist/server/lib/preview.js +47 -6
  154. package/dist/server/lib/preview.js.map +1 -1
  155. package/dist/server/lib/previewProxy.js +11 -3
  156. package/dist/server/lib/previewProxy.js.map +1 -1
  157. package/dist/server/lib/productionCheckApprovals.js +97 -35
  158. package/dist/server/lib/productionCheckApprovals.js.map +1 -1
  159. package/dist/server/lib/projectMemorySuggestions.js +29 -6
  160. package/dist/server/lib/projectMemorySuggestions.js.map +1 -1
  161. package/dist/server/lib/requiredCheckPolicy.js +3 -40
  162. package/dist/server/lib/requiredCheckPolicy.js.map +1 -1
  163. package/dist/server/lib/reviewAgentWatchdog.js +75 -0
  164. package/dist/server/lib/reviewAgentWatchdog.js.map +1 -0
  165. package/dist/server/lib/reviewFindingReconciliation.js +176 -0
  166. package/dist/server/lib/reviewFindingReconciliation.js.map +1 -0
  167. package/dist/server/lib/reviewFindings.js +33 -11
  168. package/dist/server/lib/reviewFindings.js.map +1 -1
  169. package/dist/server/lib/run.js +370 -80
  170. package/dist/server/lib/run.js.map +1 -1
  171. package/dist/server/lib/serviceRuns.js +196 -0
  172. package/dist/server/lib/serviceRuns.js.map +1 -0
  173. package/dist/server/lib/sessionTargets.js +34 -0
  174. package/dist/server/lib/sessionTargets.js.map +1 -1
  175. package/dist/server/lib/shell.js +20 -0
  176. package/dist/server/lib/shell.js.map +1 -1
  177. package/dist/server/lib/specArtifact.js +36 -15
  178. package/dist/server/lib/specArtifact.js.map +1 -1
  179. package/dist/server/lib/specBundleGroups.js +4 -4
  180. package/dist/server/lib/specBundleGroups.js.map +1 -1
  181. package/dist/server/lib/specOperations.js +2 -0
  182. package/dist/server/lib/specOperations.js.map +1 -1
  183. package/dist/server/lib/specReviewOperations.js +2 -0
  184. package/dist/server/lib/specReviewOperations.js.map +1 -1
  185. package/dist/server/lib/specTicketMaterialization.js +37 -24
  186. package/dist/server/lib/specTicketMaterialization.js.map +1 -1
  187. package/dist/server/lib/ticketFollowUpOperations.js +28 -7
  188. package/dist/server/lib/ticketFollowUpOperations.js.map +1 -1
  189. package/dist/server/lib/ticketRunOperations.js +1 -0
  190. package/dist/server/lib/ticketRunOperations.js.map +1 -1
  191. package/dist/server/lib/types.js +1 -0
  192. package/dist/server/lib/types.js.map +1 -1
  193. package/dist/server/lib/workloadExecutionEnvironment.js +2 -0
  194. package/dist/server/lib/workloadExecutionEnvironment.js.map +1 -0
  195. package/dist/server/lib/workspaceIdentity.js +30 -6
  196. package/dist/server/lib/workspaceIdentity.js.map +1 -1
  197. package/dist/server/workers/build.js +150 -9
  198. package/dist/server/workers/build.js.map +1 -1
  199. package/dist/server/workers/chat.js +142 -15
  200. package/dist/server/workers/chat.js.map +1 -1
  201. package/dist/server/workers/followUp.js +97 -28
  202. package/dist/server/workers/followUp.js.map +1 -1
  203. package/dist/server/workers/plan.js +295 -48
  204. package/dist/server/workers/plan.js.map +1 -1
  205. package/dist/server/workers/planFollowUp.js +77 -7
  206. package/dist/server/workers/planFollowUp.js.map +1 -1
  207. package/dist/server/workers/review.js +149 -38
  208. package/dist/server/workers/review.js.map +1 -1
  209. package/dist/server/workers/specReview.js +43 -5
  210. package/dist/server/workers/specReview.js.map +1 -1
  211. package/dist/server/workers/specSession.js +156 -31
  212. package/dist/server/workers/specSession.js.map +1 -1
  213. package/package.json +1 -1
  214. package/dist/client/assets/GitHubActionsDialog-BFCqikDY.js +0 -1
  215. package/dist/client/assets/VerificationDialog-B1_6HMdt.js +0 -4
  216. package/dist/client/assets/channel-BfskvH2B.js +0 -1
  217. package/dist/client/assets/classDiagram-4FO5ZUOK-D4HPfxL3.js +0 -1
  218. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-DQQ_WqAU.js +0 -1
  219. package/dist/client/assets/index-CZ1z72fo.js +0 -276
  220. package/dist/client/assets/index-SMj5ZmMs.css +0 -2
  221. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-Cv8cmDfz.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"dockerSandboxEnvironmentOperations.js","sourceRoot":"","sources":["../../../server/lib/dockerSandboxEnvironmentOperations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dockerSandboxEnvironmentOperations.js","sourceRoot":"","sources":["../../../server/lib/dockerSandboxEnvironmentOperations.ts"],"names":[],"mappings":"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"}
@@ -6,38 +6,20 @@ import { promisify } from 'node:util';
6
6
  import { networkDestinationTarget } from './executionEnvironmentLifecycle.js';
7
7
  import { requireExecutionCapabilities } from './executionEnvironmentLifecycle.js';
8
8
  import { assertExactSandboxNetworkAllowlist, applyScopedNetworkRules as applyScopedSandboxNetworkRules, checkDestinationAccess as checkSandboxDestinationAccess, inspectGlobalNetworkPosture as inspectSandboxGlobalNetworkPosture, inspectSandboxNetworkRules as inspectScopedSandboxNetworkRules, removeScopedNetworkRules as removeScopedSandboxNetworkRules, } from './dockerSandboxNetworkPolicy.js';
9
+ import { RECOMMENDED_DOCKER_SANDBOX_RELEASE, inspectDockerSandboxRelease, isDockerSandboxReleaseHostQualified, resolveDockerSandboxReleaseProfile, } from './dockerSandboxReleaseProfiles.js';
9
10
  export const DOCKER_SANDBOX_PROVIDER = 'docker_sandbox';
10
- export const QUALIFIED_SBX_VERSION = '0.38.0';
11
- export const QUALIFIED_SBX_BUILD = 'c022b14634c4bea846ca12870d1d5e97d5868b54';
12
- export const DOCKER_SANDBOX_ADAPTER_CONTRACT_VERSION = '6';
11
+ export const QUALIFIED_SBX_VERSION = RECOMMENDED_DOCKER_SANDBOX_RELEASE.version;
12
+ export const QUALIFIED_SBX_BUILD = RECOMMENDED_DOCKER_SANDBOX_RELEASE.acceptedBuilds[0];
13
+ export const DOCKER_SANDBOX_ADAPTER_CONTRACT_VERSION = RECOMMENDED_DOCKER_SANDBOX_RELEASE.adapterContractVersion;
13
14
  export const DOCKER_SANDBOX_MAX_NAME_BYTES = 63;
14
- export const QUALIFIED_DOCKER_SANDBOX_TEMPLATES = {
15
- opencode: 'docker.io/docker/sandbox-templates@sha256:b2176d0fdd0cf17754b3b9dff13a69bff003d608e43360687b00ce86d2c749d9',
16
- claude: 'docker.io/docker/sandbox-templates@sha256:7fa049b8d7a0cf10f6a4200148ee475e94fc4fb5ef50dfacc4257699cb9a34bc',
17
- };
15
+ export const QUALIFIED_DOCKER_SANDBOX_TEMPLATES = RECOMMENDED_DOCKER_SANDBOX_RELEASE.templates;
18
16
  const DEFAULT_TIMEOUT_MS = 15_000;
19
17
  const DEFAULT_OUTPUT_LIMIT_BYTES = 256 * 1024;
20
18
  const SANDBOX_NAME_HASH_LENGTH = 16;
21
- const MINIMUM_MACOS_MAJOR = 14;
22
19
  const KVM_DEVICE_PATH = '/dev/kvm';
23
20
  const execFile = promisify(execFileCallback);
24
- const QUALIFIED_DOCKER_SANDBOX_HOSTS = [
25
- { platform: 'linux', architecture: 'x64' },
26
- { platform: 'darwin', architecture: 'arm64' },
27
- ];
28
- export const isQualifiedDockerSandboxHost = (platform, architecture) => QUALIFIED_DOCKER_SANDBOX_HOSTS.some(host => host.platform === platform && host.architecture === architecture);
29
- export const dockerSandboxExecutionEnvironmentCapabilities = {
30
- isolation: 'microvm',
31
- directWritableWorkspace: 'supported',
32
- transparentHeadlessStreams: 'supported',
33
- credentialBrokering: 'supported',
34
- enforcedNetworkAllowlist: 'unknown',
35
- persistentEnvironments: 'supported',
36
- resourceIsolation: 'unknown',
37
- nestedContainers: 'unsupported',
38
- publishedPorts: 'unsupported',
39
- resourceControls: 'unsupported',
40
- };
21
+ export const isQualifiedDockerSandboxHost = (platform, architecture) => isDockerSandboxReleaseHostQualified(RECOMMENDED_DOCKER_SANDBOX_RELEASE, platform, architecture);
22
+ export const dockerSandboxExecutionEnvironmentCapabilities = RECOMMENDED_DOCKER_SANDBOX_RELEASE.capabilities;
41
23
  export const deriveDockerSandboxGlobalNetworkPosture = (readiness) => readiness.observations.some(observation => (observation.code === 'network_policy' && observation.state === 'ready'))
42
24
  ? 'restrictive'
43
25
  : 'unobserved';
@@ -45,9 +27,12 @@ export const deriveDockerSandboxExecutionEnvironmentCapabilities = (posture) =>
45
27
  ...dockerSandboxExecutionEnvironmentCapabilities,
46
28
  enforcedNetworkAllowlist: posture === 'restrictive' ? 'supported' : 'unknown',
47
29
  });
48
- export const dockerSandboxExecutionEnvironmentObservation = (posture = 'unobserved') => ({
49
- providerVersion: QUALIFIED_SBX_VERSION,
50
- capabilities: deriveDockerSandboxExecutionEnvironmentCapabilities(posture),
30
+ export const dockerSandboxExecutionEnvironmentObservation = (posture = 'unobserved', profile = RECOMMENDED_DOCKER_SANDBOX_RELEASE) => ({
31
+ providerVersion: profile.version,
32
+ capabilities: {
33
+ ...profile.capabilities,
34
+ enforcedNetworkAllowlist: posture === 'restrictive' ? 'supported' : 'unknown',
35
+ },
51
36
  degradationReasons: posture === 'restrictive'
52
37
  ? []
53
38
  : ['The selected direct workspace remains writable from the sandbox.'],
@@ -209,20 +194,31 @@ export const parseJsonObject = (command, output) => {
209
194
  }
210
195
  return record;
211
196
  };
212
- export const parseQualifiedSbxVersion = (output) => {
197
+ export const parseSbxVersionIdentity = (output) => {
213
198
  const match = /^sbx version: v(\d+\.\d+\.\d+) ([0-9a-f]{40})\r?\n?$/.exec(output);
214
199
  if (!match) {
215
200
  throw new SbxContractFailure('version', 'sbx version output did not match the qualified contract');
216
201
  }
217
- if (match[1] !== QUALIFIED_SBX_VERSION) {
218
- throw new SbxContractFailure('version', `Unsupported sbx version ${match[1]}; Archon requires exactly ${QUALIFIED_SBX_VERSION}`);
219
- }
220
- if (match[2] !== QUALIFIED_SBX_BUILD) {
221
- throw new SbxContractFailure('version', `Unsupported sbx build ${match[2]}; Archon requires exactly ${QUALIFIED_SBX_BUILD}`);
202
+ return { version: match[1], build: match[2] };
203
+ };
204
+ export const parseQualifiedSbxRelease = (output) => {
205
+ const identity = parseSbxVersionIdentity(output);
206
+ const profile = resolveDockerSandboxReleaseProfile(identity.version, identity.build);
207
+ if (!profile) {
208
+ const release = inspectDockerSandboxRelease(identity.version, identity.build);
209
+ throw new SbxContractFailure('version', release.status === 'security_blocked'
210
+ ? release.reason ?? `Docker Sandbox ${identity.version} is blocked due to a security issue.`
211
+ : release.reason ?? `Unsupported sbx release ${identity.version} build ${identity.build}`);
222
212
  }
223
- return match[1];
213
+ return profile;
224
214
  };
225
- export const parseSbxDiagnostics = (output) => {
215
+ export const parseQualifiedSbxVersion = (output) => {
216
+ return parseQualifiedSbxRelease(output).version;
217
+ };
218
+ export const parseSbxDiagnostics = (output, profile = RECOMMENDED_DOCKER_SANDBOX_RELEASE) => {
219
+ if (profile.parserContracts.diagnostics !== 'v0.38.0') {
220
+ throw new SbxContractFailure('diagnose', `No diagnostics parser is registered for ${profile.id}`);
221
+ }
226
222
  const record = parseJsonObject('diagnose', output);
227
223
  if (record.version !== '1.0' || !Array.isArray(record.checks)) {
228
224
  throw new SbxContractFailure('diagnose', 'sbx diagnose returned an unsupported schema');
@@ -272,7 +268,10 @@ const QUALIFIED_NETWORK_POLICY_STRING_FIELDS = [
272
268
  'layer',
273
269
  'status',
274
270
  ];
275
- export const parseSbxNetworkPolicy = (output) => {
271
+ export const parseSbxNetworkPolicy = (output, profile = RECOMMENDED_DOCKER_SANDBOX_RELEASE) => {
272
+ if (profile.parserContracts.networkPolicy !== 'v0.38.0') {
273
+ throw new SbxContractFailure('policy list', `No network policy parser is registered for ${profile.id}`);
274
+ }
276
275
  const record = parseJsonObject('policy list', output);
277
276
  if (Object.keys(record).some(field => field !== 'rules')
278
277
  || !Array.isArray(record.rules)
@@ -336,8 +335,8 @@ const macOsMajorVersion = (version) => {
336
335
  const match = /^(\d+)(?:\.|$)/.exec(version);
337
336
  return match ? Number(match[1]) : null;
338
337
  };
339
- const probeDockerSandboxPlatformReadiness = async (platform, architecture, options) => {
340
- if (!isQualifiedDockerSandboxHost(platform, architecture)) {
338
+ const probeDockerSandboxPlatformReadiness = async (platform, architecture, options, profile) => {
339
+ if (!isDockerSandboxReleaseHostQualified(profile, platform, architecture)) {
341
340
  return {
342
341
  code: 'platform',
343
342
  state: 'unsupported',
@@ -365,7 +364,7 @@ const probeDockerSandboxPlatformReadiness = async (platform, architecture, optio
365
364
  remediation: 'Run macOS Sonoma 14 or later on Apple silicon, then recheck.',
366
365
  };
367
366
  }
368
- if (majorVersion < MINIMUM_MACOS_MAJOR) {
367
+ if (majorVersion < profile.minimumMacosMajor) {
369
368
  return {
370
369
  code: 'platform',
371
370
  state: 'unsupported',
@@ -464,6 +463,9 @@ export const probeDockerSandboxReadiness = async (runner, options = {}) => {
464
463
  const architecture = options.architecture ?? process.arch;
465
464
  const observations = [];
466
465
  let providerVersion = null;
466
+ let providerBuild = null;
467
+ let releaseStatus = null;
468
+ let releaseProfile = null;
467
469
  let versionResult;
468
470
  try {
469
471
  versionResult = await runner.run(['version'], options);
@@ -473,6 +475,9 @@ export const probeDockerSandboxReadiness = async (runner, options = {}) => {
473
475
  if (error instanceof SbxCommandFailure && error.kind === 'missing_cli') {
474
476
  return {
475
477
  providerVersion: null,
478
+ providerBuild: null,
479
+ releaseStatus: null,
480
+ recommendedVersion: RECOMMENDED_DOCKER_SANDBOX_RELEASE.version,
476
481
  observations: [
477
482
  { code: 'cli', state: 'not_ready', summary: 'sbx CLI is not installed.', remediation: 'Install the qualified sbx release from Docker.' },
478
483
  ...['version', 'platform', 'virtualization', 'daemon', 'docker_login', 'network_policy', 'opencode_template', 'claude_template']
@@ -486,8 +491,25 @@ export const probeDockerSandboxReadiness = async (runner, options = {}) => {
486
491
  if (versionResult.exitCode !== 0) {
487
492
  throw new SbxContractFailure('version', `sbx version exited with code ${versionResult.exitCode}`);
488
493
  }
489
- providerVersion = parseQualifiedSbxVersion(versionResult.stdout);
490
- observations.push({ code: 'version', state: 'ready', summary: `sbx ${providerVersion} is qualified.`, remediation: null });
494
+ const identity = parseSbxVersionIdentity(versionResult.stdout);
495
+ providerVersion = identity.version;
496
+ providerBuild = identity.build;
497
+ const release = inspectDockerSandboxRelease(identity.version, identity.build);
498
+ releaseStatus = release.status;
499
+ releaseProfile = release.profile;
500
+ if (!releaseProfile || release.status === 'security_blocked') {
501
+ throw new SbxContractFailure('version', release.reason ?? `Docker Sandbox ${identity.version} is unsupported.`);
502
+ }
503
+ observations.push({
504
+ code: 'version',
505
+ state: 'ready',
506
+ summary: release.status === 'deprecated'
507
+ ? `sbx ${providerVersion} is qualified but deprecated.`
508
+ : `sbx ${providerVersion} is qualified and recommended.`,
509
+ remediation: release.status === 'deprecated'
510
+ ? `Upgrade to sbx ${RECOMMENDED_DOCKER_SANDBOX_RELEASE.version}.`
511
+ : null,
512
+ });
491
513
  }
492
514
  catch (error) {
493
515
  observations.push({
@@ -497,14 +519,30 @@ export const probeDockerSandboxReadiness = async (runner, options = {}) => {
497
519
  remediation: `Install sbx ${QUALIFIED_SBX_VERSION}.`,
498
520
  });
499
521
  }
500
- const platformObservation = await probeDockerSandboxPlatformReadiness(platform, architecture, options);
522
+ if (!releaseProfile || releaseStatus === 'security_blocked') {
523
+ observations.push(...['platform', 'virtualization', 'daemon', 'docker_login', 'network_policy', 'opencode_template', 'claude_template']
524
+ .map(code => ({
525
+ code,
526
+ state: 'unknown',
527
+ summary: 'Not checked because the installed sbx release is not supported.',
528
+ remediation: null,
529
+ })));
530
+ return {
531
+ providerVersion,
532
+ providerBuild,
533
+ releaseStatus: releaseStatus ?? 'unsupported',
534
+ recommendedVersion: RECOMMENDED_DOCKER_SANDBOX_RELEASE.version,
535
+ observations,
536
+ };
537
+ }
538
+ const platformObservation = await probeDockerSandboxPlatformReadiness(platform, architecture, options, releaseProfile);
501
539
  observations.push(platformObservation);
502
540
  observations.push(await probeDockerSandboxVirtualizationReadiness(platform, architecture, platformObservation, options.kvmAccess));
503
541
  const diagnose = await runner.run(['diagnose', '--output', 'json'], options);
504
542
  if (diagnose.exitCode !== 0 && diagnose.stdout.trim().length === 0) {
505
543
  throw new SbxContractFailure('diagnose', 'sbx diagnose failed without structured output');
506
544
  }
507
- const checks = parseSbxDiagnostics(diagnose.stdout);
545
+ const checks = parseSbxDiagnostics(diagnose.stdout, releaseProfile);
508
546
  observations.push(diagnosticObservation(checks, 'daemon', ['daemon'], 'Daemon readiness was not reported.'));
509
547
  observations.push(diagnosticObservation(checks, 'docker_login', ['authentication'], 'Docker login readiness was not reported.'));
510
548
  const daemonReady = observations.some(observation => observation.code === 'daemon' && observation.state === 'ready');
@@ -521,7 +559,7 @@ export const probeDockerSandboxReadiness = async (runner, options = {}) => {
521
559
  }
522
560
  else {
523
561
  try {
524
- const rules = parseSbxNetworkPolicy(policy.stdout);
562
+ const rules = parseSbxNetworkPolicy(policy.stdout, releaseProfile);
525
563
  const activeGlobalNetworkRules = rules.filter(rule => (rule.scope === 'global'
526
564
  && rule.resourceType === 'network'
527
565
  && rule.status === 'active')).length;
@@ -564,7 +602,13 @@ export const probeDockerSandboxReadiness = async (runner, options = {}) => {
564
602
  remediation: 'Review qualified template output before enabling this capability.',
565
603
  });
566
604
  }
567
- return { providerVersion, observations };
605
+ return {
606
+ providerVersion,
607
+ providerBuild,
608
+ releaseStatus,
609
+ recommendedVersion: RECOMMENDED_DOCKER_SANDBOX_RELEASE.version,
610
+ observations,
611
+ };
568
612
  };
569
613
  const slug = (value, maximum) => {
570
614
  const normalized = value.toLowerCase().replace(/[^a-z0-9.-]+/g, '-').replace(/^[^a-z0-9]+|[^a-z0-9]+$/g, '');
@@ -630,7 +674,10 @@ const resolveInspectionTemplate = (image, imageDigest) => {
630
674
  : image;
631
675
  return `${repository}@${imageDigest}`;
632
676
  };
633
- export const parseDockerSandboxInspection = (output) => {
677
+ export const parseDockerSandboxInspection = (output, profile = RECOMMENDED_DOCKER_SANDBOX_RELEASE) => {
678
+ if (profile.parserContracts.inspection !== 'v0.38.0') {
679
+ throw new SbxContractFailure('inspect', `No inspection parser is registered for ${profile.id}`);
680
+ }
634
681
  const record = parseJsonObject('inspect', output);
635
682
  const fields = Object.keys(record).sort();
636
683
  const workspace = record.workspace;
@@ -670,12 +717,22 @@ export const requireSuccessfulCommand = (command, result) => {
670
717
  throw new SbxContractFailure(command, exitCodeFailureMessage(command, result));
671
718
  }
672
719
  };
673
- const isQualifiedMissingSandboxResult = (result) => (result.args[0] === 'inspect'
674
- && typeof result.args[1] === 'string'
675
- && result.args[1].length > 0
676
- && result.exitCode === 1
677
- && result.stdout === ''
678
- && result.stderr === `ERROR: sandbox '${result.args[1]}' not found\n`);
720
+ const requireReleaseCommandContract = (profile, contract) => {
721
+ if (!profile.commandContracts.includes(contract)) {
722
+ throw new SbxContractFailure(contract, `Docker Sandbox release ${profile.id} does not qualify the ${contract} command`);
723
+ }
724
+ };
725
+ const isQualifiedMissingSandboxResult = (result, profile) => {
726
+ if (profile.parserContracts.missingSandbox !== 'v0.38.0') {
727
+ return false;
728
+ }
729
+ return result.args[0] === 'inspect'
730
+ && typeof result.args[1] === 'string'
731
+ && result.args[1].length > 0
732
+ && result.exitCode === 1
733
+ && result.stdout === ''
734
+ && result.stderr === `ERROR: sandbox '${result.args[1]}' not found\n`;
735
+ };
679
736
  export const createDockerSandboxAdapter = (runner, qualificationOptions = {}) => {
680
737
  let qualification = null;
681
738
  const waitForQualification = (operation, signal) => {
@@ -690,9 +747,9 @@ export const createDockerSandboxAdapter = (runner, qualificationOptions = {}) =>
690
747
  reject(new SbxCommandFailure('cancelled', ['version'], 'sbx version qualification was cancelled'));
691
748
  };
692
749
  signal.addEventListener('abort', onAbort, { once: true });
693
- operation.then(() => {
750
+ operation.then(profile => {
694
751
  signal.removeEventListener('abort', onAbort);
695
- resolve();
752
+ resolve(profile);
696
753
  }, error => {
697
754
  signal.removeEventListener('abort', onAbort);
698
755
  reject(error);
@@ -702,9 +759,6 @@ export const createDockerSandboxAdapter = (runner, qualificationOptions = {}) =>
702
759
  const ensureQualified = (options) => {
703
760
  const platform = qualificationOptions.platform ?? process.platform;
704
761
  const architecture = qualificationOptions.architecture ?? process.arch;
705
- if (!isQualifiedDockerSandboxHost(platform, architecture)) {
706
- throw new SbxContractFailure('platform', `Unsupported sbx platform ${platform}/${architecture}; Archon requires linux/x64 or darwin/arm64`);
707
- }
708
762
  if (!qualification) {
709
763
  const qualificationCommandOptions = {
710
764
  timeoutMs: options.timeoutMs,
@@ -713,7 +767,11 @@ export const createDockerSandboxAdapter = (runner, qualificationOptions = {}) =>
713
767
  };
714
768
  const attempt = runner.run(['version'], qualificationCommandOptions).then(result => {
715
769
  requireSuccessfulCommand('version', result);
716
- parseQualifiedSbxVersion(result.stdout);
770
+ const profile = parseQualifiedSbxRelease(result.stdout);
771
+ if (!isDockerSandboxReleaseHostQualified(profile, platform, architecture)) {
772
+ throw new SbxContractFailure('platform', `Unsupported sbx platform ${platform}/${architecture} for ${profile.version}`);
773
+ }
774
+ return profile;
717
775
  });
718
776
  qualification = attempt.catch(error => {
719
777
  qualification = null;
@@ -723,25 +781,34 @@ export const createDockerSandboxAdapter = (runner, qualificationOptions = {}) =>
723
781
  return waitForQualification(qualification, options.signal);
724
782
  };
725
783
  const inspect = async (name, options = {}) => {
726
- await ensureQualified(options);
784
+ const profile = await ensureQualified(options);
785
+ requireReleaseCommandContract(profile, 'inspect');
727
786
  const result = await runner.run(['inspect', name, '--json'], options);
728
787
  if (result.exitCode !== 0) {
729
- if (isQualifiedMissingSandboxResult(result)) {
788
+ if (isQualifiedMissingSandboxResult(result, profile)) {
730
789
  return null;
731
790
  }
732
791
  throw new SbxContractFailure('inspect', exitCodeFailureMessage('inspect', result));
733
792
  }
734
- return parseDockerSandboxInspection(result.stdout);
793
+ return parseDockerSandboxInspection(result.stdout, profile);
735
794
  };
736
- const requireExpected = async (expected, options) => {
795
+ const inspectExpected = async (expected, options) => {
737
796
  const observed = await inspect(expected.name, options);
797
+ if (observed) {
798
+ assertInspectionMatches(expected, observed);
799
+ }
800
+ return observed;
801
+ };
802
+ const requireExpected = async (expected, options) => {
803
+ const observed = await inspectExpected(expected, options);
738
804
  if (!observed) {
739
805
  throw new SbxContractFailure('inspect', `Sandbox ${expected.name} does not exist`);
740
806
  }
741
- assertInspectionMatches(expected, observed);
742
807
  return observed;
743
808
  };
744
809
  const reconnect = async (expected, options = {}) => {
810
+ const profile = await ensureQualified(options);
811
+ requireReleaseCommandContract(profile, 'exec');
745
812
  let observed = await requireExpected(expected, options);
746
813
  if (observed.state === 'stopped') {
747
814
  const result = await runner.run(['exec', observed.name, '--', 'true'], options);
@@ -752,6 +819,8 @@ export const createDockerSandboxAdapter = (runner, qualificationOptions = {}) =>
752
819
  };
753
820
  return {
754
821
  create: async (request, options = {}) => {
822
+ const profile = await ensureQualified(options);
823
+ requireReleaseCommandContract(profile, 'create');
755
824
  const name = createDockerSandboxName(request.identity);
756
825
  const existing = await inspect(name, options);
757
826
  const expected = { name, agent: request.agent, workspacePath: request.workspacePath, template: request.template };
@@ -768,43 +837,89 @@ export const createDockerSandboxAdapter = (runner, qualificationOptions = {}) =>
768
837
  inspect,
769
838
  reconnect,
770
839
  exec: async (expected, command, args, options = {}) => {
840
+ const profile = await ensureQualified(options);
841
+ requireReleaseCommandContract(profile, 'exec');
771
842
  await requireExpected(expected, options);
772
843
  const workdir = options.cwd === undefined ? [] : ['--workdir', options.cwd];
773
844
  return runner.run(['exec', ...workdir, expected.name, '--', command, ...args], options);
774
845
  },
775
846
  stop: async (expected, options = {}) => {
776
- let observed = await requireExpected(expected, options);
847
+ const profile = await ensureQualified(options);
848
+ requireReleaseCommandContract(profile, 'stop');
849
+ let observed = await inspectExpected(expected, options);
850
+ if (!observed) {
851
+ return;
852
+ }
777
853
  if (observed.state === 'running') {
778
- requireSuccessfulCommand('stop', await runner.run(['stop', expected.name], options));
779
- observed = await requireExpected(expected, options);
854
+ try {
855
+ requireSuccessfulCommand('stop', await runner.run(['stop', expected.name], options));
856
+ }
857
+ catch (error) {
858
+ try {
859
+ if (!await inspectExpected(expected, options)) {
860
+ return;
861
+ }
862
+ }
863
+ catch {
864
+ // Preserve the original stop failure when the follow-up inspection cannot be completed.
865
+ }
866
+ throw error;
867
+ }
868
+ observed = await inspectExpected(expected, options);
869
+ if (!observed) {
870
+ return;
871
+ }
780
872
  }
781
873
  if (observed.state !== 'stopped') {
782
874
  throw new DockerSandboxStopVerificationFailure(`Sandbox ${expected.name} did not reach the stopped state`);
783
875
  }
784
876
  },
785
877
  remove: async (expected, options = {}) => {
786
- await requireExpected(expected, options);
787
- requireSuccessfulCommand('rm', await runner.run(['rm', '--force', expected.name], options));
878
+ const profile = await ensureQualified(options);
879
+ requireReleaseCommandContract(profile, 'remove');
880
+ const observed = await inspectExpected(expected, options);
881
+ if (!observed) {
882
+ return;
883
+ }
884
+ try {
885
+ requireSuccessfulCommand('rm', await runner.run(['rm', '--force', expected.name], options));
886
+ }
887
+ catch (error) {
888
+ try {
889
+ if (!await inspectExpected(expected, options)) {
890
+ return;
891
+ }
892
+ }
893
+ catch {
894
+ // Preserve the original removal failure when the follow-up inspection cannot be completed.
895
+ }
896
+ throw error;
897
+ }
788
898
  },
789
899
  applyScopedNetworkRules: async (sandboxName, resources, options = {}) => {
790
- await ensureQualified(options);
791
- return applyScopedSandboxNetworkRules(runner, sandboxName, resources, options);
900
+ const profile = await ensureQualified(options);
901
+ requireReleaseCommandContract(profile, 'policy-allow');
902
+ return applyScopedSandboxNetworkRules(runner, sandboxName, resources, options, profile);
792
903
  },
793
904
  inspectSandboxNetworkRules: async (sandboxName, options = {}) => {
794
- await ensureQualified(options);
795
- return inspectScopedSandboxNetworkRules(runner, sandboxName, options);
905
+ const profile = await ensureQualified(options);
906
+ requireReleaseCommandContract(profile, 'policy-list');
907
+ return inspectScopedSandboxNetworkRules(runner, sandboxName, options, profile);
796
908
  },
797
909
  inspectGlobalNetworkPosture: async (options = {}) => {
798
- await ensureQualified(options);
799
- return inspectSandboxGlobalNetworkPosture(runner, options);
910
+ const profile = await ensureQualified(options);
911
+ requireReleaseCommandContract(profile, 'policy-list');
912
+ return inspectSandboxGlobalNetworkPosture(runner, options, profile);
800
913
  },
801
914
  checkDestinationAccess: async (sandboxName, target, options = {}) => {
802
- await ensureQualified(options);
803
- return checkSandboxDestinationAccess(runner, sandboxName, target, options);
915
+ const profile = await ensureQualified(options);
916
+ requireReleaseCommandContract(profile, 'policy-check');
917
+ return checkSandboxDestinationAccess(runner, sandboxName, target, options, profile);
804
918
  },
805
919
  removeScopedNetworkRules: async (sandboxName, ruleIds, options = {}) => {
806
- await ensureQualified(options);
807
- return removeScopedSandboxNetworkRules(runner, sandboxName, ruleIds, options);
920
+ const profile = await ensureQualified(options);
921
+ requireReleaseCommandContract(profile, 'policy-remove');
922
+ return removeScopedSandboxNetworkRules(runner, sandboxName, ruleIds, options, profile);
808
923
  },
809
924
  };
810
925
  };
@@ -896,6 +1011,7 @@ export const removeScopedRulesBestEffort = async (adapter, sandboxName, ownedRul
896
1011
  return failures;
897
1012
  };
898
1013
  export const createDockerSandboxExecutionEnvironmentLifecycle = (dependencies) => {
1014
+ const releaseProfile = dependencies.releaseProfile ?? RECOMMENDED_DOCKER_SANDBOX_RELEASE;
899
1015
  const appliedNetworkPolicies = new Map();
900
1016
  const inspect = async (environment, options = {}) => {
901
1017
  const expected = dependencies.resolveExpected(environment);
@@ -942,7 +1058,7 @@ export const createDockerSandboxExecutionEnvironmentLifecycle = (dependencies) =
942
1058
  };
943
1059
  return {
944
1060
  prepare: async (request) => {
945
- requireExecutionCapabilities(DOCKER_SANDBOX_PROVIDER, dockerSandboxExecutionEnvironmentObservation(), request.requiredCapabilities);
1061
+ requireExecutionCapabilities(DOCKER_SANDBOX_PROVIDER, dockerSandboxExecutionEnvironmentObservation('unobserved', releaseProfile), request.requiredCapabilities);
946
1062
  if (!request.persistent) {
947
1063
  throw new SbxContractFailure('create', 'Docker Sandbox lifecycle requires persistent environments');
948
1064
  }
@@ -958,7 +1074,7 @@ export const createDockerSandboxExecutionEnvironmentLifecycle = (dependencies) =
958
1074
  return {
959
1075
  id: preparation.id,
960
1076
  provider: DOCKER_SANDBOX_PROVIDER,
961
- providerVersion: QUALIFIED_SBX_VERSION,
1077
+ providerVersion: releaseProfile.version,
962
1078
  externalId: sandbox.name,
963
1079
  target: request.target,
964
1080
  state: 'ready',