spawnfile 0.1.12 → 0.1.14

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 (620) hide show
  1. package/README.md +58 -12
  2. package/dist/audit/auditCli.d.ts +19 -0
  3. package/dist/audit/auditCli.js +63 -0
  4. package/dist/audit/checks.d.ts +100 -0
  5. package/dist/audit/checks.js +279 -0
  6. package/dist/audit/checksShared.d.ts +74 -0
  7. package/dist/audit/checksShared.js +37 -0
  8. package/dist/audit/generateAudit.d.ts +19 -0
  9. package/dist/audit/generateAudit.js +122 -0
  10. package/dist/audit/index.d.ts +4 -0
  11. package/dist/audit/index.js +4 -0
  12. package/dist/audit/readAudit.d.ts +50 -0
  13. package/dist/audit/readAudit.js +59 -0
  14. package/dist/audit/types.d.ts +40 -0
  15. package/dist/audit/types.js +8 -0
  16. package/dist/auth/credentialEnvFile.d.ts +11 -0
  17. package/dist/auth/credentialEnvFile.js +60 -0
  18. package/dist/auth/credentialProvisioning.d.ts +15 -0
  19. package/dist/auth/credentialProvisioning.js +75 -0
  20. package/dist/auth/credentialProvisioningReceipt.d.ts +28 -0
  21. package/dist/auth/credentialProvisioningReceipt.js +70 -0
  22. package/dist/auth/credentialProvisioningRequest.d.ts +51 -0
  23. package/dist/auth/credentialProvisioningRequest.js +169 -0
  24. package/dist/auth/credentialWorldBindings.d.ts +21 -0
  25. package/dist/auth/credentialWorldBindings.js +104 -0
  26. package/dist/auth/index.d.ts +7 -0
  27. package/dist/auth/index.js +7 -0
  28. package/dist/auth/paths.d.ts +11 -0
  29. package/dist/auth/paths.js +21 -0
  30. package/dist/auth/runtimeCredentials.js +18 -2
  31. package/dist/auth/targetSecretSourceAuthor.d.ts +18 -0
  32. package/dist/auth/targetSecretSourceAuthor.js +52 -0
  33. package/dist/auth/targetSecretSourceFsPublish.d.ts +15 -0
  34. package/dist/auth/targetSecretSourceFsPublish.js +49 -0
  35. package/dist/auth/targetSecretSourceFsPublishImmutable.d.ts +16 -0
  36. package/dist/auth/targetSecretSourceFsPublishImmutable.js +435 -0
  37. package/dist/auth/targetSecretSourceFsRead.d.ts +14 -0
  38. package/dist/auth/targetSecretSourceFsRead.js +198 -0
  39. package/dist/auth/targetSecretSourceGrant.d.ts +16 -0
  40. package/dist/auth/targetSecretSourceGrant.js +99 -0
  41. package/dist/auth/targetSecretSourceGrantRecords.d.ts +84 -0
  42. package/dist/auth/targetSecretSourceGrantRecords.js +214 -0
  43. package/dist/auth/targetSecretSourceLifecycle.d.ts +30 -0
  44. package/dist/auth/targetSecretSourceLifecycle.js +52 -0
  45. package/dist/auth/targetSecretSourceOwnerEntropy.d.ts +6 -0
  46. package/dist/auth/targetSecretSourceOwnerEntropy.js +28 -0
  47. package/dist/auth/targetSecretSourceRecordCommon.d.ts +14 -0
  48. package/dist/auth/targetSecretSourceRecordCommon.js +100 -0
  49. package/dist/auth/targetSecretSourceRecordPublish.d.ts +10 -0
  50. package/dist/auth/targetSecretSourceRecordPublish.js +104 -0
  51. package/dist/auth/targetSecretSourceResolver.d.ts +10 -0
  52. package/dist/auth/targetSecretSourceResolver.js +137 -0
  53. package/dist/auth/targetSecretSourceRevoke.d.ts +20 -0
  54. package/dist/auth/targetSecretSourceRevoke.js +92 -0
  55. package/dist/auth/targetSecretSourceRotate.d.ts +19 -0
  56. package/dist/auth/targetSecretSourceRotate.js +121 -0
  57. package/dist/auth/targetSecretSourceVersionRecords.d.ts +49 -0
  58. package/dist/auth/targetSecretSourceVersionRecords.js +166 -0
  59. package/dist/cli/artifactsCommands.d.ts +27 -0
  60. package/dist/cli/artifactsCommands.js +132 -0
  61. package/dist/cli/authCommands.d.ts +5 -0
  62. package/dist/cli/authCommands.js +221 -0
  63. package/dist/cli/compileBuildCommands.d.ts +3 -0
  64. package/dist/cli/compileBuildCommands.js +35 -0
  65. package/dist/cli/containerBundleCommand.d.ts +6 -0
  66. package/dist/cli/containerBundleCommand.js +116 -0
  67. package/dist/cli/devCommands.d.ts +3 -0
  68. package/dist/cli/devCommands.js +115 -0
  69. package/dist/cli/downCommand.d.ts +25 -0
  70. package/dist/cli/downCommand.js +134 -0
  71. package/dist/cli/index.js +6 -3
  72. package/dist/cli/lifecycleCommands.d.ts +1 -1
  73. package/dist/cli/lifecycleCommands.js +11 -179
  74. package/dist/cli/lifecycleMachine.d.ts +19 -0
  75. package/dist/cli/lifecycleMachine.js +78 -0
  76. package/dist/cli/lifecyclePlan.d.ts +35 -0
  77. package/dist/cli/lifecyclePlan.js +240 -0
  78. package/dist/cli/lifecyclePlanningCommands.d.ts +3 -0
  79. package/dist/cli/lifecyclePlanningCommands.js +30 -0
  80. package/dist/cli/runCli.d.ts +15 -2
  81. package/dist/cli/runCli.js +31 -71
  82. package/dist/cli/runPublishCommands.d.ts +3 -0
  83. package/dist/cli/runPublishCommands.js +70 -0
  84. package/dist/cli/statusCommand.d.ts +3 -32
  85. package/dist/cli/statusCommand.js +37 -233
  86. package/dist/cli/statusCommandLive.d.ts +20 -0
  87. package/dist/cli/statusCommandLive.js +188 -0
  88. package/dist/cli/statusCommandOptions.d.ts +40 -0
  89. package/dist/cli/statusCommandOptions.js +42 -0
  90. package/dist/cli/targetCliRoute.d.ts +2 -0
  91. package/dist/cli/targetCliRoute.js +30 -0
  92. package/dist/cli/targetCommands.d.ts +33 -0
  93. package/dist/cli/targetCommands.js +257 -0
  94. package/dist/cli/targetComposedPreparationCommand.d.ts +6 -0
  95. package/dist/cli/targetComposedPreparationCommand.js +39 -0
  96. package/dist/cli/targetDefaultArtifactAuthority.d.ts +5 -0
  97. package/dist/cli/targetDefaultArtifactAuthority.js +28 -0
  98. package/dist/cli/targetDefaultAuthorities.d.ts +53 -0
  99. package/dist/cli/targetDefaultAuthorities.js +210 -0
  100. package/dist/cli/targetDefaultConfig.d.ts +68 -0
  101. package/dist/cli/targetDefaultConfig.js +317 -0
  102. package/dist/cli/targetDefaultConfigStdin.d.ts +13 -0
  103. package/dist/cli/targetDefaultConfigStdin.js +215 -0
  104. package/dist/cli/targetDefaultEnvelope.d.ts +1 -0
  105. package/dist/cli/targetDefaultEnvelope.js +13 -0
  106. package/dist/cli/targetDefaultHandlerFactory.d.ts +28 -0
  107. package/dist/cli/targetDefaultHandlerFactory.js +247 -0
  108. package/dist/cli/targetDefaultHandlers.d.ts +21 -0
  109. package/dist/cli/targetDefaultHandlers.js +72 -0
  110. package/dist/cli/targetDefaultJournalAuthority.d.ts +35 -0
  111. package/dist/cli/targetDefaultJournalAuthority.js +135 -0
  112. package/dist/cli/targetDefaultWorldClock.d.ts +4 -0
  113. package/dist/cli/targetDefaultWorldClock.js +14 -0
  114. package/dist/cli/targetDefaultWorldQueries.d.ts +5 -0
  115. package/dist/cli/targetDefaultWorldQueries.js +11 -0
  116. package/dist/cli/targetDefaultWorldReadiness.d.ts +4 -0
  117. package/dist/cli/targetDefaultWorldReadiness.js +17 -0
  118. package/dist/cli/targetEvidenceHelperResolution.d.ts +14 -0
  119. package/dist/cli/targetEvidenceHelperResolution.js +23 -0
  120. package/dist/cli/targetLookupCli.d.ts +3 -0
  121. package/dist/cli/targetLookupCli.js +31 -0
  122. package/dist/cli/targetLookupCommands.d.ts +12 -0
  123. package/dist/cli/targetLookupCommands.js +69 -0
  124. package/dist/cli/targetOperationDispatch.d.ts +58 -0
  125. package/dist/cli/targetOperationDispatch.js +21 -0
  126. package/dist/cli/targetReceiptOutput.d.ts +14 -0
  127. package/dist/cli/targetReceiptOutput.js +21 -0
  128. package/dist/cli/targetRequestFile.d.ts +14 -0
  129. package/dist/cli/targetRequestFile.js +63 -0
  130. package/dist/cli/targetSecretSourceInput.d.ts +28 -0
  131. package/dist/cli/targetSecretSourceInput.js +121 -0
  132. package/dist/cli/targetWorldClockCommand.d.ts +10 -0
  133. package/dist/cli/targetWorldClockCommand.js +42 -0
  134. package/dist/cli/targetWorldClockCrossProcess.test-helper.d.ts +13 -0
  135. package/dist/cli/targetWorldClockCrossProcess.test-helper.js +109 -0
  136. package/dist/cli/targetWorldReadinessCommand.d.ts +10 -0
  137. package/dist/cli/targetWorldReadinessCommand.js +43 -0
  138. package/dist/cli/upCommand.d.ts +3 -0
  139. package/dist/cli/upCommand.js +133 -0
  140. package/dist/cli/upImageCommand.d.ts +11 -0
  141. package/dist/cli/upImageCommand.js +41 -0
  142. package/dist/cli/upLifecycleInvocation.d.ts +41 -0
  143. package/dist/cli/upLifecycleInvocation.js +48 -0
  144. package/dist/cli/upLifecycleRecovery.d.ts +4 -0
  145. package/dist/cli/upLifecycleRecovery.js +53 -0
  146. package/dist/compiler/agentNodeMerge.d.ts +2 -0
  147. package/dist/compiler/agentNodeMerge.js +79 -0
  148. package/dist/compiler/agentSurfaces.js +11 -1
  149. package/dist/compiler/buildCompilePlan.js +17 -0
  150. package/dist/compiler/buildCompilePlanAgent.d.ts +11 -0
  151. package/dist/compiler/buildCompilePlanAgent.js +56 -0
  152. package/dist/compiler/buildCompilePlanTeams.d.ts +1 -0
  153. package/dist/compiler/buildCompilePlanTeams.js +4 -1
  154. package/dist/compiler/buildCompilePlanTraversal.js +75 -82
  155. package/dist/compiler/buildProject.d.ts +20 -1
  156. package/dist/compiler/buildProject.js +121 -7
  157. package/dist/compiler/compilePlanHelpers.js +2 -0
  158. package/dist/compiler/compileProject.d.ts +15 -0
  159. package/dist/compiler/compileProject.js +29 -75
  160. package/dist/compiler/compileProjectPolicy.d.ts +5 -0
  161. package/dist/compiler/compileProjectPolicy.js +21 -0
  162. package/dist/compiler/compileProjectReports.d.ts +9 -0
  163. package/dist/compiler/compileProjectReports.js +52 -0
  164. package/dist/compiler/containerArtifactSummaries.d.ts +7 -0
  165. package/dist/compiler/containerArtifactSummaries.js +138 -0
  166. package/dist/compiler/containerArtifacts.d.ts +10 -0
  167. package/dist/compiler/containerArtifacts.js +126 -125
  168. package/dist/compiler/containerArtifactsPlans.d.ts +5 -3
  169. package/dist/compiler/containerArtifactsPlans.js +31 -118
  170. package/dist/compiler/containerArtifactsRender.d.ts +3 -1
  171. package/dist/compiler/containerArtifactsRender.js +40 -81
  172. package/dist/compiler/containerArtifactsTypes.d.ts +12 -0
  173. package/dist/compiler/containerConfigEnvRender.d.ts +3 -0
  174. package/dist/compiler/containerConfigEnvRender.js +54 -0
  175. package/dist/compiler/containerEntrypointRender.d.ts +1 -0
  176. package/dist/compiler/containerEntrypointRender.js +60 -53
  177. package/dist/compiler/containerEntrypointShell.d.ts +5 -0
  178. package/dist/compiler/containerEntrypointShell.js +29 -0
  179. package/dist/compiler/containerPackageOverrides.d.ts +27 -0
  180. package/dist/compiler/containerPackageOverrides.js +63 -0
  181. package/dist/compiler/containerPackageRender.d.ts +15 -0
  182. package/dist/compiler/containerPackageRender.js +63 -0
  183. package/dist/compiler/containerTargetPlanResolution.d.ts +20 -0
  184. package/dist/compiler/containerTargetPlanResolution.js +97 -0
  185. package/dist/compiler/containerTargetResources.js +3 -1
  186. package/dist/compiler/daimonTelemetryArtifacts.d.ts +22 -0
  187. package/dist/compiler/daimonTelemetryArtifacts.js +61 -0
  188. package/dist/compiler/dockerBuildContext.d.ts +16 -0
  189. package/dist/compiler/dockerBuildContext.js +159 -0
  190. package/dist/compiler/dockerBuildSkip.d.ts +30 -0
  191. package/dist/compiler/dockerBuildSkip.js +81 -0
  192. package/dist/compiler/index.d.ts +4 -0
  193. package/dist/compiler/index.js +4 -0
  194. package/dist/compiler/memoryArtifacts.d.ts +26 -0
  195. package/dist/compiler/memoryArtifacts.js +134 -0
  196. package/dist/compiler/memoryResolution.d.ts +4 -0
  197. package/dist/compiler/memoryResolution.js +147 -0
  198. package/dist/compiler/modelEnv.d.ts +2 -0
  199. package/dist/compiler/modelEnv.js +6 -0
  200. package/dist/compiler/moltnetAllowedWakeSendersValidation.d.ts +2 -0
  201. package/dist/compiler/moltnetAllowedWakeSendersValidation.js +42 -0
  202. package/dist/compiler/moltnetArtifactPaths.d.ts +26 -0
  203. package/dist/compiler/moltnetArtifactPaths.js +49 -0
  204. package/dist/compiler/moltnetArtifactTypes.d.ts +46 -0
  205. package/dist/compiler/moltnetArtifactTypes.js +1 -0
  206. package/dist/compiler/moltnetArtifacts.d.ts +2 -40
  207. package/dist/compiler/moltnetArtifacts.js +56 -95
  208. package/dist/compiler/moltnetBinaries.d.ts +21 -1
  209. package/dist/compiler/moltnetBinaries.js +156 -28
  210. package/dist/compiler/moltnetClientConfig.js +18 -2
  211. package/dist/compiler/moltnetConfigLowering.d.ts +16 -1
  212. package/dist/compiler/moltnetConfigLowering.js +67 -5
  213. package/dist/compiler/moltnetExternalParticipantArtifact.d.ts +38 -0
  214. package/dist/compiler/moltnetExternalParticipantArtifact.js +188 -0
  215. package/dist/compiler/moltnetNodeConfig.js +7 -2
  216. package/dist/compiler/moltnetReleaseAuthority.d.ts +17 -0
  217. package/dist/compiler/moltnetReleaseAuthority.js +73 -0
  218. package/dist/compiler/moltnetReleaseDownload.d.ts +12 -0
  219. package/dist/compiler/moltnetReleaseDownload.js +85 -0
  220. package/dist/compiler/moltnetRepresentativeResolution.d.ts +1 -0
  221. package/dist/compiler/moltnetRepresentativeResolution.js +16 -2
  222. package/dist/compiler/moltnetResolution.js +72 -20
  223. package/dist/compiler/moltnetRoomMemberships.js +37 -9
  224. package/dist/compiler/moltnetRuntimeConfig.js +11 -0
  225. package/dist/compiler/moltnetServerPlans.d.ts +9 -0
  226. package/dist/compiler/moltnetServerPlans.js +132 -0
  227. package/dist/compiler/organizationIdentity.d.ts +27 -0
  228. package/dist/compiler/organizationIdentity.js +297 -0
  229. package/dist/compiler/organizationReadyEvidence.d.ts +49 -0
  230. package/dist/compiler/organizationReadyEvidence.js +261 -0
  231. package/dist/compiler/projectManifestGraph.d.ts +4 -0
  232. package/dist/compiler/projectManifestGraph.js +24 -0
  233. package/dist/compiler/runProject.d.ts +4 -0
  234. package/dist/compiler/runProject.js +37 -22
  235. package/dist/compiler/runProjectAuth.d.ts +7 -1
  236. package/dist/compiler/runProjectAuth.js +87 -9
  237. package/dist/compiler/runProjectDocker.d.ts +7 -0
  238. package/dist/compiler/runProjectDocker.js +187 -19
  239. package/dist/compiler/runProjectLifecycle.d.ts +7 -0
  240. package/dist/compiler/runProjectLifecycle.js +40 -0
  241. package/dist/compiler/syncProjectAuth.js +4 -1
  242. package/dist/compiler/teamContextActiveEnvironments.d.ts +13 -0
  243. package/dist/compiler/teamContextActiveEnvironments.js +255 -0
  244. package/dist/compiler/teamContextSupport.js +32 -40
  245. package/dist/compiler/teamContextTypes.d.ts +2 -0
  246. package/dist/compiler/types.d.ts +82 -1
  247. package/dist/compiler/upProject.d.ts +5 -0
  248. package/dist/compiler/upProject.js +257 -20
  249. package/dist/compiler/upReceipt.d.ts +36 -0
  250. package/dist/compiler/upReceipt.js +82 -0
  251. package/dist/compiler/updateProjectModels.js +42 -60
  252. package/dist/compiler/updateProjectRuntime.js +22 -35
  253. package/dist/compiler/updateProjectSurfaces.js +53 -47
  254. package/dist/compiler/worldBindings.d.ts +39 -0
  255. package/dist/compiler/worldBindings.js +247 -0
  256. package/dist/compiler/worldBindingsFile.d.ts +5 -0
  257. package/dist/compiler/worldBindingsFile.js +162 -0
  258. package/dist/deployment/artifactsExport.d.ts +49 -0
  259. package/dist/deployment/artifactsExport.js +217 -0
  260. package/dist/deployment/artifactsExportDocker.d.ts +48 -0
  261. package/dist/deployment/artifactsExportDocker.js +91 -0
  262. package/dist/deployment/artifactsExportPlan.d.ts +24 -0
  263. package/dist/deployment/artifactsExportPlan.js +135 -0
  264. package/dist/deployment/artifactsExportTypes.d.ts +50 -0
  265. package/dist/deployment/artifactsExportTypes.js +52 -0
  266. package/dist/deployment/buildImageCacheStore.d.ts +23 -0
  267. package/dist/deployment/buildImageCacheStore.js +54 -0
  268. package/dist/deployment/deploymentLifecycleCorrelation.d.ts +11 -0
  269. package/dist/deployment/deploymentLifecycleCorrelation.js +33 -0
  270. package/dist/deployment/dockerInspect.d.ts +9 -0
  271. package/dist/deployment/dockerInspect.js +24 -1
  272. package/dist/deployment/dockerLabels.d.ts +2 -0
  273. package/dist/deployment/dockerLabels.js +2 -0
  274. package/dist/deployment/dockerLogs.js +2 -10
  275. package/dist/deployment/dockerManager.d.ts +51 -0
  276. package/dist/deployment/dockerManager.js +118 -1
  277. package/dist/deployment/dockerProbeGateway.js +64 -5
  278. package/dist/deployment/dockerRecover.d.ts +17 -0
  279. package/dist/deployment/dockerRecover.js +137 -0
  280. package/dist/deployment/dockerTeardown.d.ts +32 -0
  281. package/dist/deployment/dockerTeardown.js +61 -0
  282. package/dist/deployment/downDeployment.d.ts +34 -0
  283. package/dist/deployment/downDeployment.js +147 -0
  284. package/dist/deployment/downReceiptTypes.d.ts +21 -0
  285. package/dist/deployment/downReceiptTypes.js +30 -0
  286. package/dist/deployment/index.d.ts +17 -0
  287. package/dist/deployment/index.js +18 -0
  288. package/dist/deployment/lifecycleCompletion.d.ts +37 -0
  289. package/dist/deployment/lifecycleCompletion.js +236 -0
  290. package/dist/deployment/lifecycleCompletionContracts.d.ts +158 -0
  291. package/dist/deployment/lifecycleCompletionContracts.js +106 -0
  292. package/dist/deployment/lifecycleCompletionHeartbeat.d.ts +2 -0
  293. package/dist/deployment/lifecycleCompletionHeartbeat.js +50 -0
  294. package/dist/deployment/lifecycleCompletionLookup.d.ts +18 -0
  295. package/dist/deployment/lifecycleCompletionLookup.js +88 -0
  296. package/dist/deployment/lifecycleCompletionOwner.d.ts +8 -0
  297. package/dist/deployment/lifecycleCompletionOwner.js +31 -0
  298. package/dist/deployment/lifecycleCompletionParsing.d.ts +12 -0
  299. package/dist/deployment/lifecycleCompletionParsing.js +108 -0
  300. package/dist/deployment/lifecycleCompletionPaths.d.ts +9 -0
  301. package/dist/deployment/lifecycleCompletionPaths.js +16 -0
  302. package/dist/deployment/lifecycleCompletionPublication.d.ts +5 -0
  303. package/dist/deployment/lifecycleCompletionPublication.js +35 -0
  304. package/dist/deployment/lifecycleCompletionRecovery.d.ts +21 -0
  305. package/dist/deployment/lifecycleCompletionRecovery.js +56 -0
  306. package/dist/deployment/lifecycleCompletionRoot.d.ts +21 -0
  307. package/dist/deployment/lifecycleCompletionRoot.js +243 -0
  308. package/dist/deployment/lifecycleCompletionStore.d.ts +6 -0
  309. package/dist/deployment/lifecycleCompletionStore.js +151 -0
  310. package/dist/deployment/organizationHandoffAuthorityFsClient.d.ts +17 -0
  311. package/dist/deployment/organizationHandoffAuthorityFsClient.js +132 -0
  312. package/dist/deployment/organizationHandoffAuthorityFsWorker.d.ts +1 -0
  313. package/dist/deployment/organizationHandoffAuthorityFsWorker.js +285 -0
  314. package/dist/deployment/organizationHandoffAuthorityFsWorkerParent.fixture.d.ts +1 -0
  315. package/dist/deployment/organizationHandoffAuthorityFsWorkerParent.fixture.js +26 -0
  316. package/dist/deployment/organizationHandoffAuthorityStore.d.ts +41 -0
  317. package/dist/deployment/organizationHandoffAuthorityStore.js +348 -0
  318. package/dist/deployment/organizationHandoffAuthorityTypes.d.ts +76 -0
  319. package/dist/deployment/organizationHandoffAuthorityTypes.js +148 -0
  320. package/dist/deployment/organizationHandoffTypes.d.ts +29 -0
  321. package/dist/deployment/organizationHandoffTypes.js +80 -0
  322. package/dist/deployment/organizationReady.d.ts +52 -0
  323. package/dist/deployment/organizationReady.js +200 -0
  324. package/dist/deployment/privateArtifactsExport.d.ts +18 -0
  325. package/dist/deployment/privateArtifactsExport.js +80 -0
  326. package/dist/deployment/providerRuntimeBoundaryScanner.test-helper.d.ts +8 -0
  327. package/dist/deployment/providerRuntimeBoundaryScanner.test-helper.js +60 -0
  328. package/dist/deployment/record.d.ts +26 -1
  329. package/dist/deployment/record.js +49 -4
  330. package/dist/deployment/simfileFixtureBoundary.test-helper.d.ts +8 -0
  331. package/dist/deployment/simfileFixtureBoundary.test-helper.js +103 -0
  332. package/dist/deployment/target.d.ts +1 -35
  333. package/dist/deployment/target.js +1 -96
  334. package/dist/deployment/upReceiptTypes.d.ts +111 -0
  335. package/dist/deployment/upReceiptTypes.js +164 -0
  336. package/dist/dev/activity.d.ts +14 -0
  337. package/dist/dev/activity.js +48 -0
  338. package/dist/dev/docker.d.ts +16 -0
  339. package/dist/dev/docker.js +71 -0
  340. package/dist/dev/index.d.ts +2 -0
  341. package/dist/dev/index.js +2 -0
  342. package/dist/dev/project.d.ts +35 -0
  343. package/dist/dev/project.js +170 -0
  344. package/dist/distribution/buildDistributionReport.d.ts +2 -1
  345. package/dist/distribution/buildDistributionReport.js +2 -1
  346. package/dist/distribution/distributionReportSchema.d.ts +5 -0
  347. package/dist/distribution/distributionReportSchema.js +7 -2
  348. package/dist/distribution/index.d.ts +2 -2
  349. package/dist/distribution/index.js +1 -1
  350. package/dist/distribution/types.d.ts +7 -0
  351. package/dist/distribution/types.js +1 -0
  352. package/dist/filesystem/paths.js +10 -1
  353. package/dist/ledger/causalConformanceCli.d.ts +1 -0
  354. package/dist/ledger/causalConformanceCli.js +41 -0
  355. package/dist/ledger/causeNamespace.d.ts +8 -0
  356. package/dist/ledger/causeNamespace.js +24 -0
  357. package/dist/ledger/conformance.d.ts +83 -0
  358. package/dist/ledger/conformance.js +259 -0
  359. package/dist/ledger/emitters.d.ts +76 -0
  360. package/dist/ledger/emitters.js +188 -0
  361. package/dist/ledger/index.d.ts +4 -0
  362. package/dist/ledger/index.js +4 -0
  363. package/dist/ledger/principal.d.ts +96 -0
  364. package/dist/ledger/principal.js +121 -0
  365. package/dist/manifest/externalParticipantSchemas.d.ts +18 -0
  366. package/dist/manifest/externalParticipantSchemas.js +17 -0
  367. package/dist/manifest/index.d.ts +1 -0
  368. package/dist/manifest/index.js +1 -0
  369. package/dist/manifest/inlineAgentMember.d.ts +2 -0
  370. package/dist/manifest/inlineAgentMember.js +9 -0
  371. package/dist/manifest/loadManifest.js +14 -8
  372. package/dist/manifest/mcpSchemas.d.ts +17 -0
  373. package/dist/manifest/mcpSchemas.js +41 -0
  374. package/dist/manifest/memorySchemas.d.ts +245 -0
  375. package/dist/manifest/memorySchemas.js +148 -0
  376. package/dist/manifest/renderSpawnfile.js +22 -131
  377. package/dist/manifest/renderSpawnfileNetworks.js +9 -2
  378. package/dist/manifest/renderSpawnfileSurfaces.d.ts +2 -0
  379. package/dist/manifest/renderSpawnfileSurfaces.js +134 -0
  380. package/dist/manifest/schemas.d.ts +1868 -99
  381. package/dist/manifest/schemas.js +78 -32
  382. package/dist/manifest/surfaceSchemas.d.ts +17 -0
  383. package/dist/manifest/surfaceSchemas.js +24 -1
  384. package/dist/manifest/teamNetworkAccessSchemas.d.ts +1 -1
  385. package/dist/manifest/teamNetworkAuthSchemas.d.ts +48 -0
  386. package/dist/manifest/teamNetworkAuthSchemas.js +103 -0
  387. package/dist/manifest/teamNetworkSchemas.d.ts +8 -187
  388. package/dist/manifest/teamNetworkSchemas.js +3 -317
  389. package/dist/manifest/teamNetworkServerSchemas.d.ts +150 -0
  390. package/dist/manifest/teamNetworkServerSchemas.js +199 -0
  391. package/dist/ownership/siblingBuildFreshness.d.ts +20 -0
  392. package/dist/ownership/siblingBuildFreshness.js +20 -0
  393. package/dist/ownership/simfileRunOperatorInputs.d.ts +103 -0
  394. package/dist/ownership/simfileRunOperatorInputs.js +139 -0
  395. package/dist/report/types.d.ts +142 -0
  396. package/dist/runtime/common.d.ts +37 -0
  397. package/dist/runtime/common.js +56 -1
  398. package/dist/runtime/container.d.ts +29 -1
  399. package/dist/runtime/container.js +127 -11
  400. package/dist/runtime/containerPackageOverrides.d.ts +37 -0
  401. package/dist/runtime/containerPackageOverrides.js +33 -0
  402. package/dist/runtime/index.d.ts +2 -0
  403. package/dist/runtime/index.js +2 -0
  404. package/dist/runtime/install.d.ts +1 -1
  405. package/dist/runtime/install.js +43 -1
  406. package/dist/runtime/mnemeMcp.d.ts +15 -0
  407. package/dist/runtime/mnemeMcp.js +109 -0
  408. package/dist/runtime/openclaw/adapter.js +15 -4
  409. package/dist/runtime/openclaw/mcp.d.ts +10 -0
  410. package/dist/runtime/openclaw/mcp.js +69 -0
  411. package/dist/runtime/openclaw/runAuth.js +2 -2
  412. package/dist/runtime/openclaw/scaffold.js +1 -1
  413. package/dist/runtime/openclaw/schedules.d.ts +38 -0
  414. package/dist/runtime/openclaw/schedules.js +74 -0
  415. package/dist/runtime/pi/adapter.d.ts +4 -0
  416. package/dist/runtime/pi/adapter.js +231 -0
  417. package/dist/runtime/pi/appActivitySource.d.ts +1 -0
  418. package/dist/runtime/pi/appActivitySource.js +199 -0
  419. package/dist/runtime/pi/appAgentConfig.d.ts +11 -0
  420. package/dist/runtime/pi/appAgentConfig.js +264 -0
  421. package/dist/runtime/pi/appCliEnginesSource.d.ts +1 -0
  422. package/dist/runtime/pi/appCliEnginesSource.js +183 -0
  423. package/dist/runtime/pi/appCliSource.d.ts +1 -0
  424. package/dist/runtime/pi/appCliSource.js +353 -0
  425. package/dist/runtime/pi/appControlSource.d.ts +1 -0
  426. package/dist/runtime/pi/appControlSource.js +390 -0
  427. package/dist/runtime/pi/appControlWakeIdentitySource.d.ts +1 -0
  428. package/dist/runtime/pi/appControlWakeIdentitySource.js +19 -0
  429. package/dist/runtime/pi/appCoreSource.d.ts +4 -0
  430. package/dist/runtime/pi/appCoreSource.js +244 -0
  431. package/dist/runtime/pi/appPreludeSource.d.ts +1 -0
  432. package/dist/runtime/pi/appPreludeSource.js +191 -0
  433. package/dist/runtime/pi/appScheduleSource.d.ts +1 -0
  434. package/dist/runtime/pi/appScheduleSource.js +80 -0
  435. package/dist/runtime/pi/appScriptedEngine.d.ts +31 -0
  436. package/dist/runtime/pi/appScriptedEngine.js +42 -0
  437. package/dist/runtime/pi/appSource.d.ts +4 -0
  438. package/dist/runtime/pi/appSource.js +12 -0
  439. package/dist/runtime/pi/appTemplate.d.ts +14 -0
  440. package/dist/runtime/pi/appTemplate.js +27 -0
  441. package/dist/runtime/pi/appTemplateTypes.d.ts +64 -0
  442. package/dist/runtime/pi/appTemplateTypes.js +18 -0
  443. package/dist/runtime/pi/appWakeContextSource.d.ts +1 -0
  444. package/dist/runtime/pi/appWakeContextSource.js +398 -0
  445. package/dist/runtime/pi/containerTargets.d.ts +4 -0
  446. package/dist/runtime/pi/containerTargets.js +57 -0
  447. package/dist/runtime/pi/runAuth.d.ts +2 -0
  448. package/dist/runtime/pi/runAuth.js +185 -0
  449. package/dist/runtime/pi/testHelpers.d.ts +2 -0
  450. package/dist/runtime/pi/testHelpers.js +40 -0
  451. package/dist/runtime/picoclaw/adapter.js +23 -27
  452. package/dist/runtime/picoclaw/mcp.d.ts +4 -0
  453. package/dist/runtime/picoclaw/mcp.js +43 -0
  454. package/dist/runtime/picoclaw/memory.d.ts +7 -0
  455. package/dist/runtime/picoclaw/memory.js +17 -0
  456. package/dist/runtime/picoclaw/runAuth.js +1 -1
  457. package/dist/runtime/picoclaw/scaffold.js +1 -1
  458. package/dist/runtime/picoclaw/schedules.d.ts +26 -0
  459. package/dist/runtime/picoclaw/schedules.js +62 -3
  460. package/dist/runtime/registry.js +3 -0
  461. package/dist/runtime/scheduleUtils.d.ts +2 -0
  462. package/dist/runtime/scheduleUtils.js +15 -0
  463. package/dist/runtime/types.d.ts +26 -2
  464. package/dist/shared/errors.d.ts +1 -1
  465. package/dist/shared/errors.js +2 -2
  466. package/dist/shared/index.d.ts +1 -0
  467. package/dist/shared/index.js +1 -0
  468. package/dist/shared/redaction.d.ts +2 -0
  469. package/dist/shared/redaction.js +10 -0
  470. package/dist/status/buildStatus.d.ts +1 -0
  471. package/dist/status/buildStatus.js +2 -0
  472. package/dist/status/compileReport.d.ts +22 -0
  473. package/dist/status/compileReport.js +16 -2
  474. package/dist/status/compiledProbeCollection.d.ts +21 -0
  475. package/dist/status/compiledProbeCollection.js +27 -0
  476. package/dist/status/deployments.js +5 -12
  477. package/dist/status/imageStatusReport.js +6 -0
  478. package/dist/status/index.d.ts +3 -0
  479. package/dist/status/index.js +3 -0
  480. package/dist/status/lifecycleProbes.d.ts +19 -0
  481. package/dist/status/lifecycleProbes.js +174 -0
  482. package/dist/status/moltnetProbes.d.ts +7 -8
  483. package/dist/status/moltnetProbes.js +27 -198
  484. package/dist/status/moltnetWiringProbes.d.ts +19 -0
  485. package/dist/status/moltnetWiringProbes.js +178 -0
  486. package/dist/target/cleanupRun.d.ts +41 -0
  487. package/dist/target/cleanupRun.js +139 -0
  488. package/dist/target/cleanupRunDocker.d.ts +16 -0
  489. package/dist/target/cleanupRunDocker.js +66 -0
  490. package/dist/target/cleanupRunDocker.test-helper.d.ts +67 -0
  491. package/dist/target/cleanupRunDocker.test-helper.js +238 -0
  492. package/dist/target/cleanupRunDockerPreflight.d.ts +17 -0
  493. package/dist/target/cleanupRunDockerPreflight.js +224 -0
  494. package/dist/target/composedPreparation.d.ts +205 -0
  495. package/dist/target/composedPreparation.js +223 -0
  496. package/dist/target/containerBundle.d.ts +82 -0
  497. package/dist/target/containerBundle.js +243 -0
  498. package/dist/target/containerBundleArchive.d.ts +31 -0
  499. package/dist/target/containerBundleArchive.js +140 -0
  500. package/dist/target/containerBundleAuthority.d.ts +25 -0
  501. package/dist/target/containerBundleAuthority.js +65 -0
  502. package/dist/target/containerBundleContracts.d.ts +114 -0
  503. package/dist/target/containerBundleContracts.js +173 -0
  504. package/dist/target/containerBundleFilesystemStore.d.ts +3 -0
  505. package/dist/target/containerBundleFilesystemStore.js +247 -0
  506. package/dist/target/containerBundlePolicy.d.ts +33 -0
  507. package/dist/target/containerBundlePolicy.js +64 -0
  508. package/dist/target/containerBundleStore.d.ts +127 -0
  509. package/dist/target/containerBundleStore.js +284 -0
  510. package/dist/target/contracts.d.ts +538 -0
  511. package/dist/target/contracts.js +373 -0
  512. package/dist/target/dockerArtifactIdentityTypes.d.ts +56 -0
  513. package/dist/target/dockerArtifactIdentityTypes.js +1 -0
  514. package/dist/target/dockerArtifactInspection.d.ts +40 -0
  515. package/dist/target/dockerArtifactInspection.js +125 -0
  516. package/dist/target/dockerArtifacts.d.ts +21 -0
  517. package/dist/target/dockerArtifacts.js +110 -0
  518. package/dist/target/dockerArtifactsProvider.d.ts +41 -0
  519. package/dist/target/dockerArtifactsProvider.js +449 -0
  520. package/dist/target/dockerCommandExecutor.d.ts +27 -0
  521. package/dist/target/dockerCommandExecutor.js +200 -0
  522. package/dist/target/dockerCommandExecutorCore.d.ts +34 -0
  523. package/dist/target/dockerCommandExecutorCore.js +273 -0
  524. package/dist/target/dockerContainerBundleBuilder.d.ts +8 -0
  525. package/dist/target/dockerContainerBundleBuilder.js +256 -0
  526. package/dist/target/dockerContextSnapshot.d.ts +21 -0
  527. package/dist/target/dockerContextSnapshot.js +158 -0
  528. package/dist/target/dockerEndpointFingerprint.d.ts +1 -0
  529. package/dist/target/dockerEndpointFingerprint.js +9 -0
  530. package/dist/target/dockerPreparedArtifact.d.ts +48 -0
  531. package/dist/target/dockerPreparedArtifact.js +131 -0
  532. package/dist/target/dockerProjectionJson.d.ts +1 -0
  533. package/dist/target/dockerProjectionJson.js +80 -0
  534. package/dist/target/dockerPublicArtifactSnapshot.d.ts +17 -0
  535. package/dist/target/dockerPublicArtifactSnapshot.js +99 -0
  536. package/dist/target/dockerResources.d.ts +26 -0
  537. package/dist/target/dockerResources.js +162 -0
  538. package/dist/target/dockerResourcesProvider.d.ts +44 -0
  539. package/dist/target/dockerResourcesProvider.js +207 -0
  540. package/dist/target/dockerSecrets.d.ts +39 -0
  541. package/dist/target/dockerSecrets.js +249 -0
  542. package/dist/target/dockerSecretsAuthority.d.ts +26 -0
  543. package/dist/target/dockerSecretsAuthority.js +216 -0
  544. package/dist/target/dockerSecretsLifecycle.d.ts +25 -0
  545. package/dist/target/dockerSecretsLifecycle.js +133 -0
  546. package/dist/target/dockerSecretsProvider.d.ts +68 -0
  547. package/dist/target/dockerSecretsProvider.js +329 -0
  548. package/dist/target/dockerTarget.d.ts +52 -0
  549. package/dist/target/dockerTarget.js +48 -0
  550. package/dist/target/dockerTargetBinding.d.ts +14 -0
  551. package/dist/target/dockerTargetBinding.js +96 -0
  552. package/dist/target/dockerWorldClock.d.ts +17 -0
  553. package/dist/target/dockerWorldClock.js +111 -0
  554. package/dist/target/dockerWorldReadiness.d.ts +17 -0
  555. package/dist/target/dockerWorldReadiness.js +119 -0
  556. package/dist/target/dockerWorldService.d.ts +23 -0
  557. package/dist/target/dockerWorldService.js +216 -0
  558. package/dist/target/dockerWorldServiceAuthority.d.ts +80 -0
  559. package/dist/target/dockerWorldServiceAuthority.js +182 -0
  560. package/dist/target/dockerWorldServiceLifecycle.d.ts +41 -0
  561. package/dist/target/dockerWorldServiceLifecycle.js +275 -0
  562. package/dist/target/dockerWorldServiceProvider.d.ts +60 -0
  563. package/dist/target/dockerWorldServiceProvider.js +318 -0
  564. package/dist/target/dockerWorldServiceStore.d.ts +73 -0
  565. package/dist/target/dockerWorldServiceStore.js +367 -0
  566. package/dist/target/evidenceExport.d.ts +55 -0
  567. package/dist/target/evidenceExport.js +518 -0
  568. package/dist/target/evidenceExportArchive.d.ts +10 -0
  569. package/dist/target/evidenceExportArchive.js +302 -0
  570. package/dist/target/evidenceExportContract.d.ts +27 -0
  571. package/dist/target/evidenceExportContract.js +40 -0
  572. package/dist/target/evidenceExportOperationsTestKit.d.ts +87 -0
  573. package/dist/target/evidenceExportOperationsTestKit.js +312 -0
  574. package/dist/target/evidenceExportProvider.d.ts +85 -0
  575. package/dist/target/evidenceExportProvider.js +187 -0
  576. package/dist/target/evidenceExportPublicationTypes.d.ts +16 -0
  577. package/dist/target/evidenceExportPublicationTypes.js +1 -0
  578. package/dist/target/evidenceExportStore.d.ts +70 -0
  579. package/dist/target/evidenceExportStore.js +498 -0
  580. package/dist/target/evidenceExportStorePublication.d.ts +7 -0
  581. package/dist/target/evidenceExportStorePublication.js +395 -0
  582. package/dist/target/handles.d.ts +20 -0
  583. package/dist/target/handles.js +56 -0
  584. package/dist/target/index.d.ts +12 -0
  585. package/dist/target/index.js +11 -0
  586. package/dist/target/journal.d.ts +59 -0
  587. package/dist/target/journal.js +529 -0
  588. package/dist/target/journalFilesystem.d.ts +3 -0
  589. package/dist/target/journalFilesystem.js +111 -0
  590. package/dist/target/journalRoot.d.ts +4 -0
  591. package/dist/target/journalRoot.js +6 -0
  592. package/dist/target/organizationAttachment.d.ts +23 -0
  593. package/dist/target/organizationAttachment.js +263 -0
  594. package/dist/target/organizationAttachmentAuthority.d.ts +65 -0
  595. package/dist/target/organizationAttachmentAuthority.js +161 -0
  596. package/dist/target/organizationAttachmentLifecycle.d.ts +17 -0
  597. package/dist/target/organizationAttachmentLifecycle.js +101 -0
  598. package/dist/target/organizationAttachmentProvider.d.ts +76 -0
  599. package/dist/target/organizationAttachmentProvider.js +289 -0
  600. package/dist/target/organizationAttachmentStore.d.ts +51 -0
  601. package/dist/target/organizationAttachmentStore.js +316 -0
  602. package/dist/target/publicArtifactSnapshot.d.ts +41 -0
  603. package/dist/target/publicArtifactSnapshot.js +150 -0
  604. package/dist/target/topologyActivation.d.ts +51 -0
  605. package/dist/target/topologyActivation.js +149 -0
  606. package/dist/target/topologyAttestation.d.ts +37 -0
  607. package/dist/target/topologyAttestation.js +300 -0
  608. package/dist/target/topologyAttestationErrors.d.ts +1 -0
  609. package/dist/target/topologyAttestationErrors.js +1 -0
  610. package/dist/target/worldClock.d.ts +60 -0
  611. package/dist/target/worldClock.js +129 -0
  612. package/dist/target/worldReadiness.d.ts +103 -0
  613. package/dist/target/worldReadiness.js +153 -0
  614. package/moltnet-releases.json +20 -0
  615. package/package.json +29 -8
  616. package/runtimes.yaml +28 -27
  617. package/dist/runtime/openclaw/scaffold-assets/CLAUDE.md +0 -5
  618. package/dist/runtime/picoclaw/scaffold-assets/CLAUDE.md +0 -5
  619. /package/dist/runtime/openclaw/scaffold-assets/{AGENTS.md → WORKSPACE_AGENTS.md} +0 -0
  620. /package/dist/runtime/picoclaw/scaffold-assets/{AGENTS.md → WORKSPACE_AGENTS.md} +0 -0
@@ -0,0 +1,28 @@
1
+ const fail = () => { throw new Error("Target authority initialization failed"); };
2
+ export const completedTargetArtifacts = async (journal, identities) => {
3
+ const snapshot = await journal.read();
4
+ const bindings = [];
5
+ for (const entry of snapshot.entries) {
6
+ if (entry.operation !== "resolve_world_artifact" || entry.state !== "completed")
7
+ continue;
8
+ const completed = await journal.resolveCompletedReceipt({ operationHandle: entry.operation_handle, requestDigest: entry.request_digest });
9
+ if (!completed || completed.receipt.operation !== "resolve_world_artifact" || completed.receipt.operation_handle !== entry.operation_handle
10
+ || completed.receipt.request_digest !== entry.request_digest || completed.receipt.result_handle === null)
11
+ return fail();
12
+ const binding = await identities.resolveOperation(entry.operation_handle, entry.request_digest);
13
+ if (!binding || binding.operationHandle !== entry.operation_handle || binding.requestDigest !== entry.request_digest
14
+ || binding.resultHandle !== completed.receipt.result_handle || binding.selectedTargetHandle !== snapshot.selected_target.handle)
15
+ return fail();
16
+ bindings.push(binding);
17
+ }
18
+ return Object.freeze(bindings);
19
+ };
20
+ export const exactTargetArtifactMapping = (config, binding) => {
21
+ if (binding.identityKind !== "oci_image_manifest")
22
+ return fail();
23
+ const matches = config.artifactMappings.filter((mapping) => mapping.artifact_manifest_digest === binding.artifactManifestDigest
24
+ && mapping.image_digest === binding.imageDigest && mapping.image_reference === binding.imageReference);
25
+ if (matches.length !== 1)
26
+ return fail();
27
+ return matches[0];
28
+ };
@@ -0,0 +1,53 @@
1
+ import { type DockerArtifactIdentityBinding, type DockerArtifactIdentityStore, type DockerArtifactMapping } from "../target/dockerArtifactsProvider.js";
2
+ import { type DockerTargetExecutors } from "../target/dockerCommandExecutor.js";
3
+ import { type TargetSecretVersionAuthorityStore } from "../target/dockerSecretsAuthority.js";
4
+ import { type WorldServiceResolver } from "../target/dockerWorldServiceAuthority.js";
5
+ import { type WorldServiceAuthorityStore } from "../target/dockerWorldServiceStore.js";
6
+ import { type EvidenceExportAuthorityStore } from "../target/evidenceExportStore.js";
7
+ import { type OrganizationAttachmentAuthorityStore } from "../target/organizationAttachmentStore.js";
8
+ import { type TargetTopologyAttestor } from "../target/topologyAttestation.js";
9
+ import type { TargetSecretSourceResolver } from "../target/dockerSecrets.js";
10
+ import type { OrganizationAttachmentResolver } from "../target/organizationAttachmentAuthority.js";
11
+ import type { TargetDefaultConfig } from "./targetDefaultConfig.js";
12
+ import { type TargetJournalResolver } from "./targetDefaultJournalAuthority.js";
13
+ export { TARGET_DEFAULT_AUTHORITIES_ERROR, type TargetJournalResolver, type TargetMutationAuthority } from "./targetDefaultJournalAuthority.js";
14
+ export interface HelperArtifactAuthority {
15
+ readonly artifactIdentity: DockerArtifactIdentityBinding;
16
+ readonly bundle: {
17
+ readonly operation_handle: DockerArtifactIdentityBinding["operationHandle"];
18
+ readonly request_digest: string;
19
+ readonly result_handle: DockerArtifactIdentityBinding["resultHandle"];
20
+ };
21
+ readonly mapping: DockerArtifactMapping;
22
+ }
23
+ export interface HelperArtifactResolver {
24
+ resolve(input: {
25
+ readonly context: unknown;
26
+ readonly request: unknown;
27
+ }): Promise<HelperArtifactAuthority>;
28
+ }
29
+ export interface TargetDefaultAuthorities {
30
+ readonly artifactIdentityStore: DockerArtifactIdentityStore;
31
+ readonly attachmentAuthorityStore: OrganizationAttachmentAuthorityStore;
32
+ readonly evidenceExportAuthorityStore: EvidenceExportAuthorityStore;
33
+ readonly executors: DockerTargetExecutors;
34
+ readonly handoffResolver: OrganizationAttachmentResolver;
35
+ /** Omitted when this invocation cannot export evidence. */
36
+ readonly helperArtifactResolver?: HelperArtifactResolver;
37
+ readonly journals: TargetJournalResolver;
38
+ readonly secretAuthorityStore: TargetSecretVersionAuthorityStore;
39
+ readonly secretResolver: TargetSecretSourceResolver;
40
+ readonly topologyAttestor: TargetTopologyAttestor;
41
+ readonly worldAuthorityStore: WorldServiceAuthorityStore;
42
+ readonly worldResolver: WorldServiceResolver;
43
+ }
44
+ /**
45
+ * The production authority graph owns B114 worker clients and directory file
46
+ * handles. It is therefore deliberately a session, rather than an ambient
47
+ * process singleton: the caller that starts the graph must close it.
48
+ */
49
+ export interface TargetDefaultAuthoritySession {
50
+ readonly authorities: TargetDefaultAuthorities;
51
+ dispose(): Promise<void>;
52
+ }
53
+ export declare const initializeTargetDefaultAuthoritySession: (config: TargetDefaultConfig) => Promise<TargetDefaultAuthoritySession>;
@@ -0,0 +1,210 @@
1
+ import { initializeDockerArtifactIdentityStore } from "../target/dockerArtifactsProvider.js";
2
+ import { createDockerTargetExecutors } from "../target/dockerCommandExecutor.js";
3
+ import { initializeTargetSecretVersionAuthorityStore } from "../target/dockerSecretsAuthority.js";
4
+ import { parseWorldServiceAuthorization, parseWorldServiceResolution } from "../target/dockerWorldServiceAuthority.js";
5
+ import { initializeWorldServiceAuthorityStore } from "../target/dockerWorldServiceStore.js";
6
+ import { initializeEvidenceExportAuthorityStore } from "../target/evidenceExportStore.js";
7
+ import { initializeOrganizationAttachmentAuthorityStore } from "../target/organizationAttachmentStore.js";
8
+ import { createTargetTopologyAttestor } from "../target/topologyAttestation.js";
9
+ import { initializeTargetSecretSourceResolver } from "../auth/targetSecretSourceResolver.js";
10
+ import { initializeOrganizationHandoffAuthorityStore } from "../deployment/organizationHandoffAuthorityStore.js";
11
+ import { completedTargetArtifacts, exactTargetArtifactMapping } from "./targetDefaultArtifactAuthority.js";
12
+ import { targetDefaultEnvelope as envelope } from "./targetDefaultEnvelope.js";
13
+ import { createDockerTargetLocalBundleBuilder } from "../target/dockerContainerBundleBuilder.js";
14
+ import { attestPreparedArtifactIdentity } from "../target/dockerPreparedArtifact.js";
15
+ import { initializeFilesystemTargetLocalBundleStore } from "../target/containerBundleFilesystemStore.js";
16
+ import { createTargetJournalAccess, TARGET_DEFAULT_AUTHORITIES_ERROR } from "./targetDefaultJournalAuthority.js";
17
+ export { TARGET_DEFAULT_AUTHORITIES_ERROR } from "./targetDefaultJournalAuthority.js";
18
+ const fail = () => { throw new Error(TARGET_DEFAULT_AUTHORITIES_ERROR); };
19
+ const same = (left, right) => JSON.stringify(left) === JSON.stringify(right);
20
+ export const initializeTargetDefaultAuthoritySession = async (config) => {
21
+ let handoffAuthority;
22
+ try {
23
+ const journalAccess = createTargetJournalAccess(config);
24
+ const journals = journalAccess.resolver;
25
+ const [artifactIdentityStore, secretAuthorityStore, attachmentAuthorityStore, worldAuthorityStore, evidenceExportAuthorityStore, secretResolver] = await Promise.all([
26
+ initializeDockerArtifactIdentityStore(config.paths.artifactIdentities),
27
+ initializeTargetSecretVersionAuthorityStore(config.paths.secretAuthority),
28
+ initializeOrganizationAttachmentAuthorityStore(config.paths.attachmentAuthority),
29
+ initializeWorldServiceAuthorityStore(config.paths.worldAuthority),
30
+ initializeEvidenceExportAuthorityStore(config.paths.evidenceExport),
31
+ // Production always resolves grants from the B113 host-local authority
32
+ // store. It deliberately has no configuration or ambient override seam.
33
+ initializeTargetSecretSourceResolver()
34
+ ]);
35
+ // The B114 store owns its anchored filesystem workers. Keep the store
36
+ // alive through its resolver rather than accepting a caller-provided one.
37
+ handoffAuthority = await initializeOrganizationHandoffAuthorityStore();
38
+ const handoffResolver = handoffAuthority.resolver;
39
+ const executors = createDockerTargetExecutors({ dockerCommand: config.dockerCommand });
40
+ const preparedBuilder = createDockerTargetLocalBundleBuilder({ context: config.context,
41
+ executor: executors.artifact, timeoutMs: config.timeoutMs });
42
+ const preparedStore = await initializeFilesystemTargetLocalBundleStore(config.paths.containerBundles);
43
+ const worldResolver = Object.freeze({
44
+ resolve: async (raw) => {
45
+ const input = envelope(raw, ["authorization"], ["signal"]);
46
+ let authorization;
47
+ try {
48
+ authorization = parseWorldServiceAuthorization(input.authorization);
49
+ }
50
+ catch {
51
+ return fail();
52
+ }
53
+ const journal = await journalAccess.resolveIdentity({
54
+ context: config.context,
55
+ descriptorDigest: authorization.descriptor_digest,
56
+ runId: authorization.run_id,
57
+ selectedTarget: authorization.selected_target
58
+ });
59
+ const bindings = (await completedTargetArtifacts(journal, artifactIdentityStore))
60
+ .filter((binding) => binding.resultHandle === authorization.world_artifact_handle);
61
+ if (bindings.length !== 1)
62
+ return fail();
63
+ const binding = bindings[0];
64
+ try {
65
+ let artifact;
66
+ if (binding.identityKind === "oci_image_manifest") {
67
+ artifact = {
68
+ artifact_manifest_digest: binding.artifactManifestDigest,
69
+ identity_kind: binding.identityKind,
70
+ image_digest: binding.imageDigest,
71
+ image_reference: binding.imageReference,
72
+ operation_handle: binding.operationHandle,
73
+ request_digest: binding.requestDigest,
74
+ result_handle: binding.resultHandle
75
+ };
76
+ }
77
+ else if (binding.identityKind === "docker_image_config_digest") {
78
+ const prepared = await preparedStore.resolve({
79
+ operation_handle: binding.preparedOperationHandle,
80
+ request_digest: binding.preparedRequestDigest
81
+ });
82
+ if (!prepared || !same(prepared, {
83
+ archive_digest: binding.archiveDigest,
84
+ artifact_digest: binding.artifactManifestDigest,
85
+ base_image_config_digest: binding.baseImageConfigDigest,
86
+ build_policy_digest: binding.buildPolicyDigest,
87
+ bundle_digest: binding.bundleDigest,
88
+ config_id: binding.configId,
89
+ daemon_epoch: binding.daemonEpoch,
90
+ entrypoint: binding.entrypoint,
91
+ gc_tag: binding.gcTag,
92
+ identity_kind: binding.identityKind,
93
+ launcher_digest: binding.launcherDigest,
94
+ network_alias: binding.networkAlias,
95
+ operation_handle: binding.preparedOperationHandle,
96
+ platform: binding.platform,
97
+ platform_digest: binding.platformDigest,
98
+ request_digest: binding.preparedRequestDigest,
99
+ selected_target: authorization.selected_target
100
+ }))
101
+ return fail();
102
+ await attestPreparedArtifactIdentity(preparedBuilder, binding, prepared, authorization.selected_target);
103
+ artifact = {
104
+ archive_digest: binding.archiveDigest,
105
+ artifact_manifest_digest: binding.artifactManifestDigest,
106
+ base_image_config_digest: binding.baseImageConfigDigest,
107
+ build_policy_digest: binding.buildPolicyDigest,
108
+ bundle_digest: binding.bundleDigest,
109
+ config_id: binding.configId,
110
+ daemon_epoch: binding.daemonEpoch,
111
+ entrypoint: binding.entrypoint,
112
+ gc_tag: binding.gcTag,
113
+ identity_kind: binding.identityKind,
114
+ image_digest: binding.configId,
115
+ image_reference: binding.configId,
116
+ launcher_digest: binding.launcherDigest,
117
+ network_alias: binding.networkAlias,
118
+ operation_handle: binding.operationHandle,
119
+ platform: binding.platform,
120
+ platform_digest: binding.platformDigest,
121
+ prepared_operation_handle: binding.preparedOperationHandle,
122
+ prepared_request_digest: binding.preparedRequestDigest,
123
+ request_digest: binding.requestDigest,
124
+ result_handle: binding.resultHandle
125
+ };
126
+ }
127
+ else
128
+ return fail();
129
+ return parseWorldServiceResolution({
130
+ artifact,
131
+ authorization
132
+ });
133
+ }
134
+ catch {
135
+ return fail();
136
+ }
137
+ }
138
+ });
139
+ const helperArtifactResolver = config.helperArtifact
140
+ ? Object.freeze({
141
+ resolve: async (raw) => {
142
+ const input = envelope(raw, ["context", "request"]);
143
+ const authority = await journals.resolve({
144
+ context: input.context,
145
+ request: input.request
146
+ });
147
+ const bindings = (await completedTargetArtifacts(authority.journal, artifactIdentityStore))
148
+ .filter((binding) => binding.identityKind === "oci_image_manifest"
149
+ && binding.artifactManifestDigest === config.helperArtifact.artifact_manifest_digest);
150
+ if (bindings.length !== 1)
151
+ return fail();
152
+ const artifactIdentity = bindings[0];
153
+ if (artifactIdentity.identityKind !== "oci_image_manifest")
154
+ return fail();
155
+ const mapping = exactTargetArtifactMapping(config, artifactIdentity);
156
+ return Object.freeze({
157
+ artifactIdentity,
158
+ bundle: Object.freeze({
159
+ operation_handle: artifactIdentity.operationHandle,
160
+ request_digest: artifactIdentity.requestDigest,
161
+ result_handle: artifactIdentity.resultHandle
162
+ }),
163
+ mapping
164
+ });
165
+ }
166
+ }) : undefined;
167
+ const topologyAttestor = createTargetTopologyAttestor({
168
+ attachmentExecutor: executors.attachment,
169
+ attachmentStore: attachmentAuthorityStore,
170
+ context: config.context,
171
+ resolveJournal: async (input) => journalAccess.resolveExistingIdentity({
172
+ context: config.context,
173
+ descriptorDigest: input.descriptorDigest,
174
+ runId: input.runId,
175
+ selectedTarget: input.selectedTarget
176
+ }),
177
+ resourceExecutor: executors.resource,
178
+ timeoutMs: config.timeoutMs,
179
+ worldExecutor: executors.world,
180
+ worldStore: worldAuthorityStore
181
+ });
182
+ const authorities = Object.freeze({
183
+ artifactIdentityStore,
184
+ attachmentAuthorityStore,
185
+ evidenceExportAuthorityStore,
186
+ executors,
187
+ handoffResolver,
188
+ ...(helperArtifactResolver ? { helperArtifactResolver } : {}),
189
+ journals,
190
+ secretAuthorityStore,
191
+ secretResolver,
192
+ topologyAttestor,
193
+ worldAuthorityStore,
194
+ worldResolver
195
+ });
196
+ let disposal;
197
+ const dispose = async () => {
198
+ disposal ??= handoffAuthority.dispose();
199
+ await disposal;
200
+ };
201
+ return Object.freeze({ authorities, dispose });
202
+ }
203
+ catch {
204
+ // Do not orphan B114's worker clients if a later authority fails to
205
+ // initialize. A successfully-created session transfers that ownership
206
+ // to its explicit disposer instead.
207
+ await handoffAuthority?.dispose().catch(() => undefined);
208
+ return fail();
209
+ }
210
+ };
@@ -0,0 +1,68 @@
1
+ import { type DockerArtifactMapping } from "../target/dockerArtifactsProvider.js";
2
+ export { resolveTargetDefaultJournalRoot } from "../target/journalRoot.js";
3
+ export declare const TARGET_DEFAULT_CONFIG_ERROR = "Target configuration failed";
4
+ export interface TargetDefaultConfigInputs {
5
+ /**
6
+ * Immutable artifact identities are configuration, not a late-bound provider
7
+ * input. Keeping them here makes the complete production input JSON data.
8
+ */
9
+ readonly artifactMappings?: readonly DockerArtifactMapping[];
10
+ /**
11
+ * Optional durable authority for immutable target-local container bundles.
12
+ * It is deliberately independent from per-run lifecycle and secret roots.
13
+ */
14
+ readonly containerBundleStoreRoot?: string;
15
+ readonly context: string;
16
+ readonly dockerCommand: string;
17
+ readonly evidenceDestination: string;
18
+ readonly helperArtifactManifestDigest?: string;
19
+ /** Local-Daemon prepared images, admitted only by manifest/bundle/policy. */
20
+ readonly preparedArtifactMappings?: readonly PreparedArtifactMapping[];
21
+ readonly timeoutMs: number;
22
+ }
23
+ export interface PreparedArtifactMapping {
24
+ readonly archive_digest: string;
25
+ readonly artifact_manifest_digest: string;
26
+ readonly base_image_config_digest: string;
27
+ readonly build_policy_digest: string;
28
+ readonly bundle_digest: string;
29
+ readonly entrypoint: string;
30
+ readonly launcher_digest: string;
31
+ readonly network_alias: string;
32
+ readonly platform: {
33
+ readonly architecture: "amd64" | "arm64";
34
+ readonly os: "linux";
35
+ };
36
+ readonly platform_digest: string;
37
+ }
38
+ export interface TargetDefaultConfig {
39
+ readonly artifactMappings: readonly DockerArtifactMapping[];
40
+ readonly context: string;
41
+ readonly dockerCommand: string;
42
+ readonly evidenceDestination: string;
43
+ /** Present only when the private evidence-export helper was configured. */
44
+ readonly helperArtifact?: DockerArtifactMapping;
45
+ readonly preparedArtifactMappings: readonly PreparedArtifactMapping[];
46
+ readonly paths: {
47
+ readonly artifactIdentities: string;
48
+ readonly attachmentAuthority: string;
49
+ readonly evidenceExport: string;
50
+ readonly containerBundles: string;
51
+ readonly journals: string;
52
+ readonly root: string;
53
+ readonly secretAuthority: string;
54
+ readonly worldAuthority: string;
55
+ };
56
+ readonly timeoutMs: number;
57
+ }
58
+ export interface TargetDefaultWorldReadinessConfig {
59
+ readonly context: string;
60
+ readonly dockerCommand: string;
61
+ readonly paths: {
62
+ readonly worldAuthority: string;
63
+ };
64
+ readonly timeoutMs: number;
65
+ }
66
+ export declare const loadTargetDefaultConfig: (raw: TargetDefaultConfigInputs) => Promise<TargetDefaultConfig>;
67
+ /** Resolves only the paths required by a world-readiness query; performs no I/O. */
68
+ export declare const resolveTargetDefaultWorldReadinessConfig: (raw: TargetDefaultConfigInputs) => TargetDefaultWorldReadinessConfig;
@@ -0,0 +1,317 @@
1
+ import { constants } from "node:fs";
2
+ import { lstat, mkdir, open, realpath } from "node:fs/promises";
3
+ import path from "node:path";
4
+ import { types as nodeTypes } from "node:util";
5
+ import { resolveSpawnfileHome } from "../auth/index.js";
6
+ import { parseDockerArtifactMappings } from "../target/dockerArtifactsProvider.js";
7
+ export { resolveTargetDefaultJournalRoot } from "../target/journalRoot.js";
8
+ export const TARGET_DEFAULT_CONFIG_ERROR = "Target configuration failed";
9
+ const MAX_PATH_BYTES = 4_096;
10
+ const CONTEXT = /^[a-z][a-z0-9_-]{0,63}$/u;
11
+ const DIGEST = /^sha256:[0-9a-f]{64}$/u;
12
+ const COMMAND_NAME = /^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/u;
13
+ const CHILD_ROOTS = Object.freeze([
14
+ "journals",
15
+ "artifact-identities",
16
+ "secret-authority",
17
+ "attachment-authority",
18
+ "world-authority",
19
+ "evidence-export"
20
+ ]);
21
+ const fail = () => { throw new Error(TARGET_DEFAULT_CONFIG_ERROR); };
22
+ const byteLength = (value) => Buffer.byteLength(value, "utf8");
23
+ const descriptorValues = (raw) => {
24
+ if (!raw || typeof raw !== "object" || Array.isArray(raw) || nodeTypes.isProxy(raw)
25
+ || Object.getPrototypeOf(raw) !== Object.prototype)
26
+ return fail();
27
+ const expected = [
28
+ "artifactMappings", "containerBundleStoreRoot", "context", "dockerCommand", "evidenceDestination",
29
+ "helperArtifactManifestDigest", "preparedArtifactMappings", "timeoutMs"
30
+ ];
31
+ const required = ["context", "dockerCommand", "evidenceDestination", "timeoutMs"];
32
+ const keys = Reflect.ownKeys(raw);
33
+ if (keys.some((key) => typeof key !== "string" || !expected.includes(key))
34
+ || required.some((key) => !keys.includes(key)))
35
+ return fail();
36
+ const descriptors = Object.getOwnPropertyDescriptors(raw);
37
+ if (Object.values(descriptors).some((item) => !item.enumerable || !("value" in item)))
38
+ return fail();
39
+ return Object.fromEntries(expected.filter((key) => Object.hasOwn(descriptors, key)).map((key) => [key, descriptors[key].value]));
40
+ };
41
+ const preparedMappings = (raw) => {
42
+ if (raw === undefined)
43
+ return Object.freeze([]);
44
+ if (!Array.isArray(raw) || raw.length > 32)
45
+ return fail();
46
+ const manifests = new Set();
47
+ const mappings = raw.map((item) => {
48
+ if (!item || typeof item !== "object" || Array.isArray(item) || nodeTypes.isProxy(item)
49
+ || Object.getPrototypeOf(item) !== Object.prototype)
50
+ return fail();
51
+ const descriptors = Object.getOwnPropertyDescriptors(item);
52
+ if (Object.values(descriptors).some((descriptor) => !descriptor.enumerable || !("value" in descriptor)))
53
+ return fail();
54
+ const value = Object.fromEntries(Object.entries(descriptors).map(([key, descriptor]) => [key, descriptor.value]));
55
+ if (Object.keys(value).sort().join("\0") !== "archive_digest\0artifact_manifest_digest\0base_image_config_digest\0build_policy_digest\0bundle_digest\0entrypoint\0launcher_digest\0network_alias\0platform\0platform_digest"
56
+ || typeof value.artifact_manifest_digest !== "string" || !DIGEST.test(value.artifact_manifest_digest)
57
+ || typeof value.archive_digest !== "string" || !DIGEST.test(value.archive_digest)
58
+ || typeof value.base_image_config_digest !== "string" || !DIGEST.test(value.base_image_config_digest)
59
+ || typeof value.bundle_digest !== "string" || !DIGEST.test(value.bundle_digest)
60
+ || typeof value.build_policy_digest !== "string" || !DIGEST.test(value.build_policy_digest)
61
+ || typeof value.launcher_digest !== "string" || !DIGEST.test(value.launcher_digest)
62
+ || typeof value.platform_digest !== "string" || !DIGEST.test(value.platform_digest)
63
+ || typeof value.entrypoint !== "string" || !/^[A-Za-z0-9][A-Za-z0-9._/-]{0,239}$/u.test(value.entrypoint)
64
+ || value.entrypoint.includes("//") || value.entrypoint.split("/").some((part) => part === "." || part === "..")
65
+ || typeof value.network_alias !== "string" || !/^[a-z][a-z0-9-]{0,62}$/u.test(value.network_alias)
66
+ || !value.platform || typeof value.platform !== "object" || Array.isArray(value.platform) || nodeTypes.isProxy(value.platform)
67
+ || Object.getPrototypeOf(value.platform) !== Object.prototype
68
+ || Object.keys(value.platform).sort().join("\0") !== "architecture\0os"
69
+ || Object.values(Object.getOwnPropertyDescriptors(value.platform)).some((descriptor) => !descriptor.enumerable || !("value" in descriptor))
70
+ || value.platform.os !== "linux"
71
+ || !["amd64", "arm64"].includes(value.platform.architecture)
72
+ || manifests.has(value.artifact_manifest_digest))
73
+ return fail();
74
+ manifests.add(value.artifact_manifest_digest);
75
+ return Object.freeze({ archive_digest: value.archive_digest, artifact_manifest_digest: value.artifact_manifest_digest,
76
+ base_image_config_digest: value.base_image_config_digest, build_policy_digest: value.build_policy_digest,
77
+ bundle_digest: value.bundle_digest, entrypoint: value.entrypoint, launcher_digest: value.launcher_digest,
78
+ network_alias: value.network_alias, platform: Object.freeze({ ...value.platform }),
79
+ platform_digest: value.platform_digest });
80
+ });
81
+ return Object.freeze(mappings);
82
+ };
83
+ const exactPath = (raw) => {
84
+ if (typeof raw !== "string" || raw.length < 1 || raw.includes("\0")
85
+ || byteLength(raw) > MAX_PATH_BYTES || !path.isAbsolute(raw)
86
+ || path.normalize(raw) !== raw)
87
+ return fail();
88
+ return raw;
89
+ };
90
+ const command = (raw) => {
91
+ if (typeof raw !== "string" || raw.includes("\0") || byteLength(raw) > 1_024)
92
+ return fail();
93
+ if (COMMAND_NAME.test(raw))
94
+ return raw;
95
+ if (!path.isAbsolute(raw) || path.normalize(raw) !== raw)
96
+ return fail();
97
+ return raw;
98
+ };
99
+ const ensureOwnedRoot = async (root) => {
100
+ let info;
101
+ try {
102
+ info = await lstat(root);
103
+ }
104
+ catch (error) {
105
+ if (error.code !== "ENOENT")
106
+ return fail();
107
+ try {
108
+ await mkdir(root, { mode: 0o700 });
109
+ }
110
+ catch {
111
+ return fail();
112
+ }
113
+ try {
114
+ info = await lstat(root);
115
+ }
116
+ catch {
117
+ return fail();
118
+ }
119
+ }
120
+ const owner = process.getuid?.();
121
+ if (!info.isDirectory() || info.isSymbolicLink()
122
+ || owner !== undefined && info.uid !== owner)
123
+ return fail();
124
+ let handle;
125
+ try {
126
+ handle = await open(root, constants.O_RDONLY | constants.O_DIRECTORY | constants.O_NOFOLLOW);
127
+ await handle.chmod(0o700);
128
+ info = await handle.stat();
129
+ }
130
+ catch {
131
+ return fail();
132
+ }
133
+ finally {
134
+ await handle?.close().catch(() => undefined);
135
+ }
136
+ if (!info.isDirectory() || (info.mode & 0o777) !== 0o700
137
+ || owner !== undefined && info.uid !== owner)
138
+ return fail();
139
+ return root;
140
+ };
141
+ const isWithin = (candidate, root) => candidate === root || candidate.startsWith(`${root}${path.sep}`);
142
+ const prepareExplicitContainerBundleRoot = async (raw, lifecycleRoot) => {
143
+ const requested = exactPath(raw);
144
+ if (path.parse(requested).root === requested
145
+ || isWithin(requested, lifecycleRoot)
146
+ || isWithin(lifecycleRoot, requested))
147
+ return fail();
148
+ try {
149
+ const existing = await lstat(requested);
150
+ if (!existing.isDirectory() || existing.isSymbolicLink()
151
+ || await realpath(requested) !== requested)
152
+ return fail();
153
+ }
154
+ catch (error) {
155
+ if (error.code !== "ENOENT")
156
+ return fail();
157
+ const parent = path.dirname(requested);
158
+ let parentInfo;
159
+ try {
160
+ parentInfo = await lstat(parent);
161
+ }
162
+ catch {
163
+ return fail();
164
+ }
165
+ const owner = process.getuid?.();
166
+ if (!parentInfo.isDirectory() || parentInfo.isSymbolicLink()
167
+ || owner !== undefined && parentInfo.uid !== owner)
168
+ return fail();
169
+ try {
170
+ if (await realpath(parent) !== parent)
171
+ return fail();
172
+ }
173
+ catch {
174
+ return fail();
175
+ }
176
+ }
177
+ const root = await ensureOwnedRoot(requested);
178
+ try {
179
+ if (await realpath(root) !== root)
180
+ return fail();
181
+ }
182
+ catch {
183
+ return fail();
184
+ }
185
+ return root;
186
+ };
187
+ const prepareRoots = async (containerBundleStoreRoot) => {
188
+ const home = resolveSpawnfileHome();
189
+ let homeInfo;
190
+ try {
191
+ homeInfo = await lstat(home);
192
+ }
193
+ catch {
194
+ return fail();
195
+ }
196
+ if (!homeInfo.isDirectory() || homeInfo.isSymbolicLink())
197
+ return fail();
198
+ const owner = process.getuid?.();
199
+ if (owner !== undefined && homeInfo.uid !== owner)
200
+ return fail();
201
+ try {
202
+ if (await realpath(home) !== home)
203
+ return fail();
204
+ }
205
+ catch {
206
+ return fail();
207
+ }
208
+ const root = await ensureOwnedRoot(path.join(home, "target"));
209
+ const childRoots = containerBundleStoreRoot === undefined
210
+ ? [...CHILD_ROOTS, "container-bundles"]
211
+ : CHILD_ROOTS;
212
+ const created = await Promise.all(childRoots.map((name) => ensureOwnedRoot(path.join(root, name))));
213
+ const containerBundles = containerBundleStoreRoot === undefined
214
+ ? created[6]
215
+ : await prepareExplicitContainerBundleRoot(containerBundleStoreRoot, root);
216
+ return Object.freeze({
217
+ root,
218
+ journals: created[0],
219
+ artifactIdentities: created[1],
220
+ secretAuthority: created[2],
221
+ attachmentAuthority: created[3],
222
+ worldAuthority: created[4],
223
+ evidenceExport: created[5],
224
+ containerBundles
225
+ });
226
+ };
227
+ const validateDestination = async (raw) => {
228
+ const destination = exactPath(raw);
229
+ const parent = path.dirname(destination);
230
+ let parentInfo;
231
+ try {
232
+ parentInfo = await lstat(parent);
233
+ }
234
+ catch {
235
+ return fail();
236
+ }
237
+ const owner = process.getuid?.();
238
+ if (!parentInfo.isDirectory() || parentInfo.isSymbolicLink()
239
+ || (parentInfo.mode & 0o777) !== 0o700
240
+ || owner !== undefined && parentInfo.uid !== owner)
241
+ return fail();
242
+ try {
243
+ if (await realpath(parent) !== parent)
244
+ return fail();
245
+ }
246
+ catch {
247
+ return fail();
248
+ }
249
+ try {
250
+ const existing = await lstat(destination);
251
+ if (!existing.isFile() || existing.isSymbolicLink()
252
+ || owner !== undefined && existing.uid !== owner
253
+ || (existing.mode & 0o777) !== 0o600)
254
+ return fail();
255
+ }
256
+ catch (error) {
257
+ if (error.code !== "ENOENT")
258
+ return fail();
259
+ }
260
+ return destination;
261
+ };
262
+ export const loadTargetDefaultConfig = async (raw) => {
263
+ const value = descriptorValues(raw);
264
+ if (typeof value.context !== "string" || !CONTEXT.test(value.context)
265
+ || !Number.isSafeInteger(value.timeoutMs) || value.timeoutMs < 1
266
+ || value.timeoutMs > 120_000
267
+ || (Object.hasOwn(value, "artifactMappings") !== Object.hasOwn(value, "helperArtifactManifestDigest"))
268
+ || (Object.hasOwn(value, "helperArtifactManifestDigest") &&
269
+ (typeof value.helperArtifactManifestDigest !== "string"
270
+ || !DIGEST.test(value.helperArtifactManifestDigest))))
271
+ return fail();
272
+ const dockerCommand = command(value.dockerCommand);
273
+ let artifactMappings;
274
+ try {
275
+ artifactMappings = value.artifactMappings === undefined
276
+ ? Object.freeze([]) : parseDockerArtifactMappings(value.artifactMappings);
277
+ }
278
+ catch {
279
+ return fail();
280
+ }
281
+ const preparedArtifactMappings = preparedMappings(value.preparedArtifactMappings);
282
+ if (preparedArtifactMappings.some((prepared) => artifactMappings.some((artifact) => artifact.artifact_manifest_digest === prepared.artifact_manifest_digest)))
283
+ return fail();
284
+ const evidenceDestination = await validateDestination(value.evidenceDestination);
285
+ const matches = value.helperArtifactManifestDigest === undefined ? [] : artifactMappings.filter((mapping) => mapping.artifact_manifest_digest === value.helperArtifactManifestDigest);
286
+ if (value.helperArtifactManifestDigest !== undefined && matches.length !== 1)
287
+ return fail();
288
+ const paths = await prepareRoots(value.containerBundleStoreRoot);
289
+ const config = {
290
+ artifactMappings,
291
+ context: value.context,
292
+ dockerCommand,
293
+ evidenceDestination,
294
+ ...(matches.length === 1 ? { helperArtifact: matches[0] } : {}),
295
+ preparedArtifactMappings,
296
+ paths,
297
+ timeoutMs: value.timeoutMs
298
+ };
299
+ return Object.freeze(config);
300
+ };
301
+ /** Resolves only the paths required by a world-readiness query; performs no I/O. */
302
+ export const resolveTargetDefaultWorldReadinessConfig = (raw) => {
303
+ const value = descriptorValues(raw);
304
+ if (typeof value.context !== "string" || !CONTEXT.test(value.context)
305
+ || !Number.isSafeInteger(value.timeoutMs) || value.timeoutMs < 1
306
+ || value.timeoutMs > 120_000)
307
+ return fail();
308
+ const home = resolveSpawnfileHome();
309
+ return Object.freeze({
310
+ context: value.context,
311
+ dockerCommand: command(value.dockerCommand),
312
+ paths: Object.freeze({
313
+ worldAuthority: path.join(home, "target", "world-authority")
314
+ }),
315
+ timeoutMs: value.timeoutMs
316
+ });
317
+ };