spawnfile 0.1.13 → 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 (598) hide show
  1. package/README.md +50 -11
  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/targetSecretSourceAuthor.d.ts +18 -0
  31. package/dist/auth/targetSecretSourceAuthor.js +52 -0
  32. package/dist/auth/targetSecretSourceFsPublish.d.ts +15 -0
  33. package/dist/auth/targetSecretSourceFsPublish.js +49 -0
  34. package/dist/auth/targetSecretSourceFsPublishImmutable.d.ts +16 -0
  35. package/dist/auth/targetSecretSourceFsPublishImmutable.js +435 -0
  36. package/dist/auth/targetSecretSourceFsRead.d.ts +14 -0
  37. package/dist/auth/targetSecretSourceFsRead.js +198 -0
  38. package/dist/auth/targetSecretSourceGrant.d.ts +16 -0
  39. package/dist/auth/targetSecretSourceGrant.js +99 -0
  40. package/dist/auth/targetSecretSourceGrantRecords.d.ts +84 -0
  41. package/dist/auth/targetSecretSourceGrantRecords.js +214 -0
  42. package/dist/auth/targetSecretSourceLifecycle.d.ts +30 -0
  43. package/dist/auth/targetSecretSourceLifecycle.js +52 -0
  44. package/dist/auth/targetSecretSourceOwnerEntropy.d.ts +6 -0
  45. package/dist/auth/targetSecretSourceOwnerEntropy.js +28 -0
  46. package/dist/auth/targetSecretSourceRecordCommon.d.ts +14 -0
  47. package/dist/auth/targetSecretSourceRecordCommon.js +100 -0
  48. package/dist/auth/targetSecretSourceRecordPublish.d.ts +10 -0
  49. package/dist/auth/targetSecretSourceRecordPublish.js +104 -0
  50. package/dist/auth/targetSecretSourceResolver.d.ts +10 -0
  51. package/dist/auth/targetSecretSourceResolver.js +137 -0
  52. package/dist/auth/targetSecretSourceRevoke.d.ts +20 -0
  53. package/dist/auth/targetSecretSourceRevoke.js +92 -0
  54. package/dist/auth/targetSecretSourceRotate.d.ts +19 -0
  55. package/dist/auth/targetSecretSourceRotate.js +121 -0
  56. package/dist/auth/targetSecretSourceVersionRecords.d.ts +49 -0
  57. package/dist/auth/targetSecretSourceVersionRecords.js +166 -0
  58. package/dist/cli/artifactsCommands.d.ts +27 -0
  59. package/dist/cli/artifactsCommands.js +132 -0
  60. package/dist/cli/authCommands.d.ts +5 -0
  61. package/dist/cli/authCommands.js +221 -0
  62. package/dist/cli/compileBuildCommands.d.ts +3 -0
  63. package/dist/cli/compileBuildCommands.js +35 -0
  64. package/dist/cli/containerBundleCommand.d.ts +6 -0
  65. package/dist/cli/containerBundleCommand.js +116 -0
  66. package/dist/cli/downCommand.d.ts +25 -0
  67. package/dist/cli/downCommand.js +134 -0
  68. package/dist/cli/index.js +6 -3
  69. package/dist/cli/lifecycleCommands.d.ts +1 -1
  70. package/dist/cli/lifecycleCommands.js +11 -181
  71. package/dist/cli/lifecycleMachine.d.ts +19 -0
  72. package/dist/cli/lifecycleMachine.js +78 -0
  73. package/dist/cli/lifecyclePlan.d.ts +35 -0
  74. package/dist/cli/lifecyclePlan.js +240 -0
  75. package/dist/cli/lifecyclePlanningCommands.d.ts +3 -0
  76. package/dist/cli/lifecyclePlanningCommands.js +30 -0
  77. package/dist/cli/runCli.d.ts +9 -2
  78. package/dist/cli/runCli.js +27 -71
  79. package/dist/cli/runPublishCommands.d.ts +3 -0
  80. package/dist/cli/runPublishCommands.js +70 -0
  81. package/dist/cli/statusCommand.d.ts +3 -33
  82. package/dist/cli/statusCommand.js +19 -249
  83. package/dist/cli/statusCommandLive.d.ts +20 -0
  84. package/dist/cli/statusCommandLive.js +188 -0
  85. package/dist/cli/statusCommandOptions.d.ts +40 -0
  86. package/dist/cli/statusCommandOptions.js +42 -0
  87. package/dist/cli/targetCliRoute.d.ts +2 -0
  88. package/dist/cli/targetCliRoute.js +30 -0
  89. package/dist/cli/targetCommands.d.ts +33 -0
  90. package/dist/cli/targetCommands.js +257 -0
  91. package/dist/cli/targetComposedPreparationCommand.d.ts +6 -0
  92. package/dist/cli/targetComposedPreparationCommand.js +39 -0
  93. package/dist/cli/targetDefaultArtifactAuthority.d.ts +5 -0
  94. package/dist/cli/targetDefaultArtifactAuthority.js +28 -0
  95. package/dist/cli/targetDefaultAuthorities.d.ts +53 -0
  96. package/dist/cli/targetDefaultAuthorities.js +210 -0
  97. package/dist/cli/targetDefaultConfig.d.ts +68 -0
  98. package/dist/cli/targetDefaultConfig.js +317 -0
  99. package/dist/cli/targetDefaultConfigStdin.d.ts +13 -0
  100. package/dist/cli/targetDefaultConfigStdin.js +215 -0
  101. package/dist/cli/targetDefaultEnvelope.d.ts +1 -0
  102. package/dist/cli/targetDefaultEnvelope.js +13 -0
  103. package/dist/cli/targetDefaultHandlerFactory.d.ts +28 -0
  104. package/dist/cli/targetDefaultHandlerFactory.js +247 -0
  105. package/dist/cli/targetDefaultHandlers.d.ts +21 -0
  106. package/dist/cli/targetDefaultHandlers.js +72 -0
  107. package/dist/cli/targetDefaultJournalAuthority.d.ts +35 -0
  108. package/dist/cli/targetDefaultJournalAuthority.js +135 -0
  109. package/dist/cli/targetDefaultWorldClock.d.ts +4 -0
  110. package/dist/cli/targetDefaultWorldClock.js +14 -0
  111. package/dist/cli/targetDefaultWorldQueries.d.ts +5 -0
  112. package/dist/cli/targetDefaultWorldQueries.js +11 -0
  113. package/dist/cli/targetDefaultWorldReadiness.d.ts +4 -0
  114. package/dist/cli/targetDefaultWorldReadiness.js +17 -0
  115. package/dist/cli/targetEvidenceHelperResolution.d.ts +14 -0
  116. package/dist/cli/targetEvidenceHelperResolution.js +23 -0
  117. package/dist/cli/targetLookupCli.d.ts +3 -0
  118. package/dist/cli/targetLookupCli.js +31 -0
  119. package/dist/cli/targetLookupCommands.d.ts +12 -0
  120. package/dist/cli/targetLookupCommands.js +69 -0
  121. package/dist/cli/targetOperationDispatch.d.ts +58 -0
  122. package/dist/cli/targetOperationDispatch.js +21 -0
  123. package/dist/cli/targetReceiptOutput.d.ts +14 -0
  124. package/dist/cli/targetReceiptOutput.js +21 -0
  125. package/dist/cli/targetRequestFile.d.ts +14 -0
  126. package/dist/cli/targetRequestFile.js +63 -0
  127. package/dist/cli/targetSecretSourceInput.d.ts +28 -0
  128. package/dist/cli/targetSecretSourceInput.js +121 -0
  129. package/dist/cli/targetWorldClockCommand.d.ts +10 -0
  130. package/dist/cli/targetWorldClockCommand.js +42 -0
  131. package/dist/cli/targetWorldClockCrossProcess.test-helper.d.ts +13 -0
  132. package/dist/cli/targetWorldClockCrossProcess.test-helper.js +109 -0
  133. package/dist/cli/targetWorldReadinessCommand.d.ts +10 -0
  134. package/dist/cli/targetWorldReadinessCommand.js +43 -0
  135. package/dist/cli/upCommand.d.ts +3 -0
  136. package/dist/cli/upCommand.js +133 -0
  137. package/dist/cli/upImageCommand.d.ts +11 -0
  138. package/dist/cli/upImageCommand.js +41 -0
  139. package/dist/cli/upLifecycleInvocation.d.ts +41 -0
  140. package/dist/cli/upLifecycleInvocation.js +48 -0
  141. package/dist/cli/upLifecycleRecovery.d.ts +4 -0
  142. package/dist/cli/upLifecycleRecovery.js +53 -0
  143. package/dist/compiler/agentNodeMerge.d.ts +2 -0
  144. package/dist/compiler/agentNodeMerge.js +79 -0
  145. package/dist/compiler/agentSurfaces.js +11 -1
  146. package/dist/compiler/buildCompilePlan.js +17 -0
  147. package/dist/compiler/buildCompilePlanAgent.d.ts +11 -0
  148. package/dist/compiler/buildCompilePlanAgent.js +56 -0
  149. package/dist/compiler/buildCompilePlanTeams.d.ts +1 -0
  150. package/dist/compiler/buildCompilePlanTeams.js +4 -1
  151. package/dist/compiler/buildCompilePlanTraversal.js +75 -82
  152. package/dist/compiler/buildProject.d.ts +11 -0
  153. package/dist/compiler/buildProject.js +77 -2
  154. package/dist/compiler/compilePlanHelpers.js +2 -0
  155. package/dist/compiler/compileProject.d.ts +13 -0
  156. package/dist/compiler/compileProject.js +26 -74
  157. package/dist/compiler/compileProjectPolicy.d.ts +5 -0
  158. package/dist/compiler/compileProjectPolicy.js +21 -0
  159. package/dist/compiler/compileProjectReports.d.ts +9 -0
  160. package/dist/compiler/compileProjectReports.js +52 -0
  161. package/dist/compiler/containerArtifactSummaries.d.ts +7 -0
  162. package/dist/compiler/containerArtifactSummaries.js +138 -0
  163. package/dist/compiler/containerArtifacts.d.ts +10 -0
  164. package/dist/compiler/containerArtifacts.js +126 -125
  165. package/dist/compiler/containerArtifactsPlans.d.ts +5 -3
  166. package/dist/compiler/containerArtifactsPlans.js +31 -118
  167. package/dist/compiler/containerArtifactsRender.d.ts +3 -1
  168. package/dist/compiler/containerArtifactsRender.js +15 -12
  169. package/dist/compiler/containerArtifactsTypes.d.ts +12 -0
  170. package/dist/compiler/containerConfigEnvRender.d.ts +3 -0
  171. package/dist/compiler/containerConfigEnvRender.js +54 -0
  172. package/dist/compiler/containerEntrypointRender.d.ts +1 -0
  173. package/dist/compiler/containerEntrypointRender.js +56 -52
  174. package/dist/compiler/containerEntrypointShell.d.ts +5 -0
  175. package/dist/compiler/containerEntrypointShell.js +29 -0
  176. package/dist/compiler/containerPackageOverrides.d.ts +27 -0
  177. package/dist/compiler/containerPackageOverrides.js +63 -0
  178. package/dist/compiler/containerTargetPlanResolution.d.ts +20 -0
  179. package/dist/compiler/containerTargetPlanResolution.js +97 -0
  180. package/dist/compiler/daimonTelemetryArtifacts.d.ts +22 -0
  181. package/dist/compiler/daimonTelemetryArtifacts.js +61 -0
  182. package/dist/compiler/dockerBuildContext.d.ts +16 -0
  183. package/dist/compiler/dockerBuildContext.js +159 -0
  184. package/dist/compiler/dockerBuildSkip.d.ts +30 -0
  185. package/dist/compiler/dockerBuildSkip.js +81 -0
  186. package/dist/compiler/index.d.ts +4 -0
  187. package/dist/compiler/index.js +4 -0
  188. package/dist/compiler/memoryArtifacts.d.ts +26 -0
  189. package/dist/compiler/memoryArtifacts.js +134 -0
  190. package/dist/compiler/memoryResolution.d.ts +4 -0
  191. package/dist/compiler/memoryResolution.js +147 -0
  192. package/dist/compiler/modelEnv.d.ts +2 -0
  193. package/dist/compiler/modelEnv.js +6 -0
  194. package/dist/compiler/moltnetAllowedWakeSendersValidation.d.ts +2 -0
  195. package/dist/compiler/moltnetAllowedWakeSendersValidation.js +42 -0
  196. package/dist/compiler/moltnetArtifactPaths.d.ts +26 -0
  197. package/dist/compiler/moltnetArtifactPaths.js +49 -0
  198. package/dist/compiler/moltnetArtifactTypes.d.ts +46 -0
  199. package/dist/compiler/moltnetArtifactTypes.js +1 -0
  200. package/dist/compiler/moltnetArtifacts.d.ts +2 -40
  201. package/dist/compiler/moltnetArtifacts.js +43 -97
  202. package/dist/compiler/moltnetBinaries.d.ts +21 -4
  203. package/dist/compiler/moltnetBinaries.js +134 -27
  204. package/dist/compiler/moltnetClientConfig.js +7 -2
  205. package/dist/compiler/moltnetConfigLowering.d.ts +16 -1
  206. package/dist/compiler/moltnetConfigLowering.js +67 -5
  207. package/dist/compiler/moltnetExternalParticipantArtifact.d.ts +38 -0
  208. package/dist/compiler/moltnetExternalParticipantArtifact.js +188 -0
  209. package/dist/compiler/moltnetNodeConfig.js +7 -2
  210. package/dist/compiler/moltnetReleaseAuthority.d.ts +17 -0
  211. package/dist/compiler/moltnetReleaseAuthority.js +73 -0
  212. package/dist/compiler/moltnetReleaseDownload.d.ts +12 -0
  213. package/dist/compiler/moltnetReleaseDownload.js +85 -0
  214. package/dist/compiler/moltnetRepresentativeResolution.d.ts +1 -0
  215. package/dist/compiler/moltnetRepresentativeResolution.js +16 -2
  216. package/dist/compiler/moltnetResolution.js +72 -20
  217. package/dist/compiler/moltnetRoomMemberships.js +37 -9
  218. package/dist/compiler/moltnetServerPlans.d.ts +9 -0
  219. package/dist/compiler/moltnetServerPlans.js +132 -0
  220. package/dist/compiler/organizationIdentity.d.ts +27 -0
  221. package/dist/compiler/organizationIdentity.js +297 -0
  222. package/dist/compiler/organizationReadyEvidence.d.ts +49 -0
  223. package/dist/compiler/organizationReadyEvidence.js +261 -0
  224. package/dist/compiler/projectManifestGraph.d.ts +4 -0
  225. package/dist/compiler/projectManifestGraph.js +24 -0
  226. package/dist/compiler/runProject.d.ts +4 -0
  227. package/dist/compiler/runProject.js +30 -21
  228. package/dist/compiler/runProjectAuth.d.ts +7 -1
  229. package/dist/compiler/runProjectAuth.js +87 -9
  230. package/dist/compiler/runProjectDocker.d.ts +7 -0
  231. package/dist/compiler/runProjectDocker.js +31 -8
  232. package/dist/compiler/runProjectLifecycle.d.ts +7 -0
  233. package/dist/compiler/runProjectLifecycle.js +40 -0
  234. package/dist/compiler/syncProjectAuth.js +4 -1
  235. package/dist/compiler/teamContextActiveEnvironments.d.ts +13 -0
  236. package/dist/compiler/teamContextActiveEnvironments.js +255 -0
  237. package/dist/compiler/teamContextSupport.js +32 -40
  238. package/dist/compiler/teamContextTypes.d.ts +2 -0
  239. package/dist/compiler/types.d.ts +82 -1
  240. package/dist/compiler/upProject.d.ts +5 -0
  241. package/dist/compiler/upProject.js +256 -20
  242. package/dist/compiler/upReceipt.d.ts +36 -0
  243. package/dist/compiler/upReceipt.js +82 -0
  244. package/dist/compiler/updateProjectModels.js +42 -60
  245. package/dist/compiler/updateProjectRuntime.js +22 -35
  246. package/dist/compiler/updateProjectSurfaces.js +53 -47
  247. package/dist/compiler/worldBindings.d.ts +39 -0
  248. package/dist/compiler/worldBindings.js +247 -0
  249. package/dist/compiler/worldBindingsFile.d.ts +5 -0
  250. package/dist/compiler/worldBindingsFile.js +162 -0
  251. package/dist/deployment/artifactsExport.d.ts +49 -0
  252. package/dist/deployment/artifactsExport.js +217 -0
  253. package/dist/deployment/artifactsExportDocker.d.ts +48 -0
  254. package/dist/deployment/artifactsExportDocker.js +91 -0
  255. package/dist/deployment/artifactsExportPlan.d.ts +24 -0
  256. package/dist/deployment/artifactsExportPlan.js +135 -0
  257. package/dist/deployment/artifactsExportTypes.d.ts +50 -0
  258. package/dist/deployment/artifactsExportTypes.js +52 -0
  259. package/dist/deployment/buildImageCacheStore.d.ts +23 -0
  260. package/dist/deployment/buildImageCacheStore.js +54 -0
  261. package/dist/deployment/deploymentLifecycleCorrelation.d.ts +11 -0
  262. package/dist/deployment/deploymentLifecycleCorrelation.js +33 -0
  263. package/dist/deployment/dockerInspect.d.ts +9 -0
  264. package/dist/deployment/dockerInspect.js +24 -1
  265. package/dist/deployment/dockerLabels.d.ts +2 -0
  266. package/dist/deployment/dockerLabels.js +2 -0
  267. package/dist/deployment/dockerLogs.js +2 -10
  268. package/dist/deployment/dockerManager.d.ts +51 -0
  269. package/dist/deployment/dockerManager.js +118 -1
  270. package/dist/deployment/dockerProbeGateway.js +64 -5
  271. package/dist/deployment/dockerRecover.js +9 -1
  272. package/dist/deployment/dockerTeardown.d.ts +32 -0
  273. package/dist/deployment/dockerTeardown.js +61 -0
  274. package/dist/deployment/downDeployment.d.ts +34 -0
  275. package/dist/deployment/downDeployment.js +147 -0
  276. package/dist/deployment/downReceiptTypes.d.ts +21 -0
  277. package/dist/deployment/downReceiptTypes.js +30 -0
  278. package/dist/deployment/index.d.ts +16 -0
  279. package/dist/deployment/index.js +17 -0
  280. package/dist/deployment/lifecycleCompletion.d.ts +37 -0
  281. package/dist/deployment/lifecycleCompletion.js +236 -0
  282. package/dist/deployment/lifecycleCompletionContracts.d.ts +158 -0
  283. package/dist/deployment/lifecycleCompletionContracts.js +106 -0
  284. package/dist/deployment/lifecycleCompletionHeartbeat.d.ts +2 -0
  285. package/dist/deployment/lifecycleCompletionHeartbeat.js +50 -0
  286. package/dist/deployment/lifecycleCompletionLookup.d.ts +18 -0
  287. package/dist/deployment/lifecycleCompletionLookup.js +88 -0
  288. package/dist/deployment/lifecycleCompletionOwner.d.ts +8 -0
  289. package/dist/deployment/lifecycleCompletionOwner.js +31 -0
  290. package/dist/deployment/lifecycleCompletionParsing.d.ts +12 -0
  291. package/dist/deployment/lifecycleCompletionParsing.js +108 -0
  292. package/dist/deployment/lifecycleCompletionPaths.d.ts +9 -0
  293. package/dist/deployment/lifecycleCompletionPaths.js +16 -0
  294. package/dist/deployment/lifecycleCompletionPublication.d.ts +5 -0
  295. package/dist/deployment/lifecycleCompletionPublication.js +35 -0
  296. package/dist/deployment/lifecycleCompletionRecovery.d.ts +21 -0
  297. package/dist/deployment/lifecycleCompletionRecovery.js +56 -0
  298. package/dist/deployment/lifecycleCompletionRoot.d.ts +21 -0
  299. package/dist/deployment/lifecycleCompletionRoot.js +243 -0
  300. package/dist/deployment/lifecycleCompletionStore.d.ts +6 -0
  301. package/dist/deployment/lifecycleCompletionStore.js +151 -0
  302. package/dist/deployment/organizationHandoffAuthorityFsClient.d.ts +17 -0
  303. package/dist/deployment/organizationHandoffAuthorityFsClient.js +132 -0
  304. package/dist/deployment/organizationHandoffAuthorityFsWorker.d.ts +1 -0
  305. package/dist/deployment/organizationHandoffAuthorityFsWorker.js +285 -0
  306. package/dist/deployment/organizationHandoffAuthorityFsWorkerParent.fixture.d.ts +1 -0
  307. package/dist/deployment/organizationHandoffAuthorityFsWorkerParent.fixture.js +26 -0
  308. package/dist/deployment/organizationHandoffAuthorityStore.d.ts +41 -0
  309. package/dist/deployment/organizationHandoffAuthorityStore.js +348 -0
  310. package/dist/deployment/organizationHandoffAuthorityTypes.d.ts +76 -0
  311. package/dist/deployment/organizationHandoffAuthorityTypes.js +148 -0
  312. package/dist/deployment/organizationHandoffTypes.d.ts +29 -0
  313. package/dist/deployment/organizationHandoffTypes.js +80 -0
  314. package/dist/deployment/organizationReady.d.ts +52 -0
  315. package/dist/deployment/organizationReady.js +200 -0
  316. package/dist/deployment/privateArtifactsExport.d.ts +18 -0
  317. package/dist/deployment/privateArtifactsExport.js +80 -0
  318. package/dist/deployment/providerRuntimeBoundaryScanner.test-helper.d.ts +8 -0
  319. package/dist/deployment/providerRuntimeBoundaryScanner.test-helper.js +60 -0
  320. package/dist/deployment/record.d.ts +26 -1
  321. package/dist/deployment/record.js +49 -4
  322. package/dist/deployment/simfileFixtureBoundary.test-helper.d.ts +8 -0
  323. package/dist/deployment/simfileFixtureBoundary.test-helper.js +103 -0
  324. package/dist/deployment/target.d.ts +1 -35
  325. package/dist/deployment/target.js +1 -96
  326. package/dist/deployment/upReceiptTypes.d.ts +111 -0
  327. package/dist/deployment/upReceiptTypes.js +164 -0
  328. package/dist/dev/project.js +15 -9
  329. package/dist/distribution/buildDistributionReport.d.ts +2 -1
  330. package/dist/distribution/buildDistributionReport.js +2 -1
  331. package/dist/distribution/distributionReportSchema.d.ts +5 -0
  332. package/dist/distribution/distributionReportSchema.js +7 -2
  333. package/dist/distribution/index.d.ts +2 -2
  334. package/dist/distribution/index.js +1 -1
  335. package/dist/distribution/types.d.ts +7 -0
  336. package/dist/distribution/types.js +1 -0
  337. package/dist/filesystem/paths.js +10 -1
  338. package/dist/ledger/causalConformanceCli.d.ts +1 -0
  339. package/dist/ledger/causalConformanceCli.js +41 -0
  340. package/dist/ledger/causeNamespace.d.ts +8 -0
  341. package/dist/ledger/causeNamespace.js +24 -0
  342. package/dist/ledger/conformance.d.ts +83 -0
  343. package/dist/ledger/conformance.js +259 -0
  344. package/dist/ledger/emitters.d.ts +76 -0
  345. package/dist/ledger/emitters.js +188 -0
  346. package/dist/ledger/index.d.ts +4 -0
  347. package/dist/ledger/index.js +4 -0
  348. package/dist/ledger/principal.d.ts +96 -0
  349. package/dist/ledger/principal.js +121 -0
  350. package/dist/manifest/externalParticipantSchemas.d.ts +18 -0
  351. package/dist/manifest/externalParticipantSchemas.js +17 -0
  352. package/dist/manifest/index.d.ts +1 -0
  353. package/dist/manifest/index.js +1 -0
  354. package/dist/manifest/inlineAgentMember.d.ts +2 -0
  355. package/dist/manifest/inlineAgentMember.js +9 -0
  356. package/dist/manifest/loadManifest.js +14 -8
  357. package/dist/manifest/mcpSchemas.d.ts +17 -0
  358. package/dist/manifest/mcpSchemas.js +41 -0
  359. package/dist/manifest/memorySchemas.d.ts +245 -0
  360. package/dist/manifest/memorySchemas.js +148 -0
  361. package/dist/manifest/renderSpawnfile.js +22 -131
  362. package/dist/manifest/renderSpawnfileNetworks.js +9 -2
  363. package/dist/manifest/renderSpawnfileSurfaces.d.ts +2 -0
  364. package/dist/manifest/renderSpawnfileSurfaces.js +134 -0
  365. package/dist/manifest/schemas.d.ts +1868 -99
  366. package/dist/manifest/schemas.js +78 -32
  367. package/dist/manifest/surfaceSchemas.d.ts +17 -0
  368. package/dist/manifest/surfaceSchemas.js +24 -1
  369. package/dist/manifest/teamNetworkAccessSchemas.d.ts +1 -1
  370. package/dist/manifest/teamNetworkAuthSchemas.d.ts +48 -0
  371. package/dist/manifest/teamNetworkAuthSchemas.js +103 -0
  372. package/dist/manifest/teamNetworkSchemas.d.ts +8 -187
  373. package/dist/manifest/teamNetworkSchemas.js +3 -317
  374. package/dist/manifest/teamNetworkServerSchemas.d.ts +150 -0
  375. package/dist/manifest/teamNetworkServerSchemas.js +199 -0
  376. package/dist/ownership/siblingBuildFreshness.d.ts +20 -0
  377. package/dist/ownership/siblingBuildFreshness.js +20 -0
  378. package/dist/ownership/simfileRunOperatorInputs.d.ts +103 -0
  379. package/dist/ownership/simfileRunOperatorInputs.js +139 -0
  380. package/dist/report/types.d.ts +142 -0
  381. package/dist/runtime/common.d.ts +35 -0
  382. package/dist/runtime/common.js +55 -0
  383. package/dist/runtime/container.d.ts +28 -1
  384. package/dist/runtime/container.js +38 -5
  385. package/dist/runtime/containerPackageOverrides.d.ts +37 -0
  386. package/dist/runtime/containerPackageOverrides.js +33 -0
  387. package/dist/runtime/index.d.ts +2 -0
  388. package/dist/runtime/index.js +2 -0
  389. package/dist/runtime/mnemeMcp.d.ts +15 -0
  390. package/dist/runtime/mnemeMcp.js +109 -0
  391. package/dist/runtime/openclaw/adapter.js +15 -4
  392. package/dist/runtime/openclaw/mcp.d.ts +10 -0
  393. package/dist/runtime/openclaw/mcp.js +69 -0
  394. package/dist/runtime/openclaw/runAuth.js +2 -2
  395. package/dist/runtime/openclaw/scaffold.js +1 -1
  396. package/dist/runtime/openclaw/schedules.d.ts +38 -0
  397. package/dist/runtime/openclaw/schedules.js +74 -0
  398. package/dist/runtime/pi/adapter.d.ts +1 -1
  399. package/dist/runtime/pi/adapter.js +86 -53
  400. package/dist/runtime/pi/appActivitySource.js +114 -2
  401. package/dist/runtime/pi/appAgentConfig.d.ts +11 -0
  402. package/dist/runtime/pi/appAgentConfig.js +264 -0
  403. package/dist/runtime/pi/appCliEnginesSource.d.ts +1 -0
  404. package/dist/runtime/pi/appCliEnginesSource.js +183 -0
  405. package/dist/runtime/pi/appCliSource.d.ts +1 -0
  406. package/dist/runtime/pi/appCliSource.js +353 -0
  407. package/dist/runtime/pi/appControlSource.d.ts +1 -0
  408. package/dist/runtime/pi/appControlSource.js +390 -0
  409. package/dist/runtime/pi/appControlWakeIdentitySource.d.ts +1 -0
  410. package/dist/runtime/pi/appControlWakeIdentitySource.js +19 -0
  411. package/dist/runtime/pi/appCoreSource.d.ts +4 -1
  412. package/dist/runtime/pi/appCoreSource.js +104 -214
  413. package/dist/runtime/pi/appPreludeSource.js +140 -52
  414. package/dist/runtime/pi/appScheduleSource.d.ts +1 -0
  415. package/dist/runtime/pi/appScheduleSource.js +80 -0
  416. package/dist/runtime/pi/appScriptedEngine.d.ts +31 -0
  417. package/dist/runtime/pi/appScriptedEngine.js +42 -0
  418. package/dist/runtime/pi/appSource.d.ts +4 -1
  419. package/dist/runtime/pi/appSource.js +6 -2
  420. package/dist/runtime/pi/appTemplate.d.ts +8 -22
  421. package/dist/runtime/pi/appTemplate.js +9 -126
  422. package/dist/runtime/pi/appTemplateTypes.d.ts +64 -0
  423. package/dist/runtime/pi/appTemplateTypes.js +18 -0
  424. package/dist/runtime/pi/appWakeContextSource.d.ts +1 -0
  425. package/dist/runtime/pi/appWakeContextSource.js +398 -0
  426. package/dist/runtime/pi/containerTargets.d.ts +4 -0
  427. package/dist/runtime/pi/containerTargets.js +57 -0
  428. package/dist/runtime/pi/runAuth.js +126 -9
  429. package/dist/runtime/pi/testHelpers.d.ts +2 -0
  430. package/dist/runtime/pi/testHelpers.js +40 -0
  431. package/dist/runtime/picoclaw/adapter.js +23 -27
  432. package/dist/runtime/picoclaw/mcp.d.ts +4 -0
  433. package/dist/runtime/picoclaw/mcp.js +43 -0
  434. package/dist/runtime/picoclaw/memory.d.ts +7 -0
  435. package/dist/runtime/picoclaw/memory.js +17 -0
  436. package/dist/runtime/picoclaw/runAuth.js +1 -1
  437. package/dist/runtime/picoclaw/scaffold.js +1 -1
  438. package/dist/runtime/picoclaw/schedules.d.ts +26 -0
  439. package/dist/runtime/picoclaw/schedules.js +62 -3
  440. package/dist/runtime/scheduleUtils.d.ts +2 -0
  441. package/dist/runtime/scheduleUtils.js +15 -0
  442. package/dist/runtime/types.d.ts +25 -2
  443. package/dist/shared/errors.d.ts +1 -1
  444. package/dist/shared/errors.js +2 -2
  445. package/dist/shared/index.d.ts +1 -0
  446. package/dist/shared/index.js +1 -0
  447. package/dist/shared/redaction.d.ts +2 -0
  448. package/dist/shared/redaction.js +10 -0
  449. package/dist/status/buildStatus.d.ts +1 -0
  450. package/dist/status/buildStatus.js +2 -0
  451. package/dist/status/compileReport.d.ts +22 -0
  452. package/dist/status/compileReport.js +16 -2
  453. package/dist/status/compiledProbeCollection.d.ts +21 -0
  454. package/dist/status/compiledProbeCollection.js +27 -0
  455. package/dist/status/imageStatusReport.js +6 -0
  456. package/dist/status/index.d.ts +3 -0
  457. package/dist/status/index.js +3 -0
  458. package/dist/status/lifecycleProbes.d.ts +19 -0
  459. package/dist/status/lifecycleProbes.js +174 -0
  460. package/dist/status/moltnetProbes.d.ts +7 -8
  461. package/dist/status/moltnetProbes.js +27 -198
  462. package/dist/status/moltnetWiringProbes.d.ts +19 -0
  463. package/dist/status/moltnetWiringProbes.js +178 -0
  464. package/dist/target/cleanupRun.d.ts +41 -0
  465. package/dist/target/cleanupRun.js +139 -0
  466. package/dist/target/cleanupRunDocker.d.ts +16 -0
  467. package/dist/target/cleanupRunDocker.js +66 -0
  468. package/dist/target/cleanupRunDocker.test-helper.d.ts +67 -0
  469. package/dist/target/cleanupRunDocker.test-helper.js +238 -0
  470. package/dist/target/cleanupRunDockerPreflight.d.ts +17 -0
  471. package/dist/target/cleanupRunDockerPreflight.js +224 -0
  472. package/dist/target/composedPreparation.d.ts +205 -0
  473. package/dist/target/composedPreparation.js +223 -0
  474. package/dist/target/containerBundle.d.ts +82 -0
  475. package/dist/target/containerBundle.js +243 -0
  476. package/dist/target/containerBundleArchive.d.ts +31 -0
  477. package/dist/target/containerBundleArchive.js +140 -0
  478. package/dist/target/containerBundleAuthority.d.ts +25 -0
  479. package/dist/target/containerBundleAuthority.js +65 -0
  480. package/dist/target/containerBundleContracts.d.ts +114 -0
  481. package/dist/target/containerBundleContracts.js +173 -0
  482. package/dist/target/containerBundleFilesystemStore.d.ts +3 -0
  483. package/dist/target/containerBundleFilesystemStore.js +247 -0
  484. package/dist/target/containerBundlePolicy.d.ts +33 -0
  485. package/dist/target/containerBundlePolicy.js +64 -0
  486. package/dist/target/containerBundleStore.d.ts +127 -0
  487. package/dist/target/containerBundleStore.js +284 -0
  488. package/dist/target/contracts.d.ts +538 -0
  489. package/dist/target/contracts.js +373 -0
  490. package/dist/target/dockerArtifactIdentityTypes.d.ts +56 -0
  491. package/dist/target/dockerArtifactIdentityTypes.js +1 -0
  492. package/dist/target/dockerArtifactInspection.d.ts +40 -0
  493. package/dist/target/dockerArtifactInspection.js +125 -0
  494. package/dist/target/dockerArtifacts.d.ts +21 -0
  495. package/dist/target/dockerArtifacts.js +110 -0
  496. package/dist/target/dockerArtifactsProvider.d.ts +41 -0
  497. package/dist/target/dockerArtifactsProvider.js +449 -0
  498. package/dist/target/dockerCommandExecutor.d.ts +27 -0
  499. package/dist/target/dockerCommandExecutor.js +200 -0
  500. package/dist/target/dockerCommandExecutorCore.d.ts +34 -0
  501. package/dist/target/dockerCommandExecutorCore.js +273 -0
  502. package/dist/target/dockerContainerBundleBuilder.d.ts +8 -0
  503. package/dist/target/dockerContainerBundleBuilder.js +256 -0
  504. package/dist/target/dockerContextSnapshot.d.ts +21 -0
  505. package/dist/target/dockerContextSnapshot.js +158 -0
  506. package/dist/target/dockerEndpointFingerprint.d.ts +1 -0
  507. package/dist/target/dockerEndpointFingerprint.js +9 -0
  508. package/dist/target/dockerPreparedArtifact.d.ts +48 -0
  509. package/dist/target/dockerPreparedArtifact.js +131 -0
  510. package/dist/target/dockerProjectionJson.d.ts +1 -0
  511. package/dist/target/dockerProjectionJson.js +80 -0
  512. package/dist/target/dockerPublicArtifactSnapshot.d.ts +17 -0
  513. package/dist/target/dockerPublicArtifactSnapshot.js +99 -0
  514. package/dist/target/dockerResources.d.ts +26 -0
  515. package/dist/target/dockerResources.js +162 -0
  516. package/dist/target/dockerResourcesProvider.d.ts +44 -0
  517. package/dist/target/dockerResourcesProvider.js +207 -0
  518. package/dist/target/dockerSecrets.d.ts +39 -0
  519. package/dist/target/dockerSecrets.js +249 -0
  520. package/dist/target/dockerSecretsAuthority.d.ts +26 -0
  521. package/dist/target/dockerSecretsAuthority.js +216 -0
  522. package/dist/target/dockerSecretsLifecycle.d.ts +25 -0
  523. package/dist/target/dockerSecretsLifecycle.js +133 -0
  524. package/dist/target/dockerSecretsProvider.d.ts +68 -0
  525. package/dist/target/dockerSecretsProvider.js +329 -0
  526. package/dist/target/dockerTarget.d.ts +52 -0
  527. package/dist/target/dockerTarget.js +48 -0
  528. package/dist/target/dockerTargetBinding.d.ts +14 -0
  529. package/dist/target/dockerTargetBinding.js +96 -0
  530. package/dist/target/dockerWorldClock.d.ts +17 -0
  531. package/dist/target/dockerWorldClock.js +111 -0
  532. package/dist/target/dockerWorldReadiness.d.ts +17 -0
  533. package/dist/target/dockerWorldReadiness.js +119 -0
  534. package/dist/target/dockerWorldService.d.ts +23 -0
  535. package/dist/target/dockerWorldService.js +216 -0
  536. package/dist/target/dockerWorldServiceAuthority.d.ts +80 -0
  537. package/dist/target/dockerWorldServiceAuthority.js +182 -0
  538. package/dist/target/dockerWorldServiceLifecycle.d.ts +41 -0
  539. package/dist/target/dockerWorldServiceLifecycle.js +275 -0
  540. package/dist/target/dockerWorldServiceProvider.d.ts +60 -0
  541. package/dist/target/dockerWorldServiceProvider.js +318 -0
  542. package/dist/target/dockerWorldServiceStore.d.ts +73 -0
  543. package/dist/target/dockerWorldServiceStore.js +367 -0
  544. package/dist/target/evidenceExport.d.ts +55 -0
  545. package/dist/target/evidenceExport.js +518 -0
  546. package/dist/target/evidenceExportArchive.d.ts +10 -0
  547. package/dist/target/evidenceExportArchive.js +302 -0
  548. package/dist/target/evidenceExportContract.d.ts +27 -0
  549. package/dist/target/evidenceExportContract.js +40 -0
  550. package/dist/target/evidenceExportOperationsTestKit.d.ts +87 -0
  551. package/dist/target/evidenceExportOperationsTestKit.js +312 -0
  552. package/dist/target/evidenceExportProvider.d.ts +85 -0
  553. package/dist/target/evidenceExportProvider.js +187 -0
  554. package/dist/target/evidenceExportPublicationTypes.d.ts +16 -0
  555. package/dist/target/evidenceExportPublicationTypes.js +1 -0
  556. package/dist/target/evidenceExportStore.d.ts +70 -0
  557. package/dist/target/evidenceExportStore.js +498 -0
  558. package/dist/target/evidenceExportStorePublication.d.ts +7 -0
  559. package/dist/target/evidenceExportStorePublication.js +395 -0
  560. package/dist/target/handles.d.ts +20 -0
  561. package/dist/target/handles.js +56 -0
  562. package/dist/target/index.d.ts +12 -0
  563. package/dist/target/index.js +11 -0
  564. package/dist/target/journal.d.ts +59 -0
  565. package/dist/target/journal.js +529 -0
  566. package/dist/target/journalFilesystem.d.ts +3 -0
  567. package/dist/target/journalFilesystem.js +111 -0
  568. package/dist/target/journalRoot.d.ts +4 -0
  569. package/dist/target/journalRoot.js +6 -0
  570. package/dist/target/organizationAttachment.d.ts +23 -0
  571. package/dist/target/organizationAttachment.js +263 -0
  572. package/dist/target/organizationAttachmentAuthority.d.ts +65 -0
  573. package/dist/target/organizationAttachmentAuthority.js +161 -0
  574. package/dist/target/organizationAttachmentLifecycle.d.ts +17 -0
  575. package/dist/target/organizationAttachmentLifecycle.js +101 -0
  576. package/dist/target/organizationAttachmentProvider.d.ts +76 -0
  577. package/dist/target/organizationAttachmentProvider.js +289 -0
  578. package/dist/target/organizationAttachmentStore.d.ts +51 -0
  579. package/dist/target/organizationAttachmentStore.js +316 -0
  580. package/dist/target/publicArtifactSnapshot.d.ts +41 -0
  581. package/dist/target/publicArtifactSnapshot.js +150 -0
  582. package/dist/target/topologyActivation.d.ts +51 -0
  583. package/dist/target/topologyActivation.js +149 -0
  584. package/dist/target/topologyAttestation.d.ts +37 -0
  585. package/dist/target/topologyAttestation.js +300 -0
  586. package/dist/target/topologyAttestationErrors.d.ts +1 -0
  587. package/dist/target/topologyAttestationErrors.js +1 -0
  588. package/dist/target/worldClock.d.ts +60 -0
  589. package/dist/target/worldClock.js +129 -0
  590. package/dist/target/worldReadiness.d.ts +103 -0
  591. package/dist/target/worldReadiness.js +153 -0
  592. package/moltnet-releases.json +20 -0
  593. package/package.json +27 -11
  594. package/runtimes.yaml +8 -23
  595. package/dist/runtime/openclaw/scaffold-assets/CLAUDE.md +0 -5
  596. package/dist/runtime/picoclaw/scaffold-assets/CLAUDE.md +0 -5
  597. /package/dist/runtime/openclaw/scaffold-assets/{AGENTS.md → WORKSPACE_AGENTS.md} +0 -0
  598. /package/dist/runtime/picoclaw/scaffold-assets/{AGENTS.md → WORKSPACE_AGENTS.md} +0 -0
@@ -0,0 +1,316 @@
1
+ import { Buffer } from "node:buffer";
2
+ import { createHash, randomUUID } from "node:crypto";
3
+ import { constants } from "node:fs";
4
+ import { chmod, link, lstat, mkdir, open, unlink } from "node:fs/promises";
5
+ import path from "node:path";
6
+ import { assertOrdinaryJsonGraph, parseOpaqueTargetHandle } from "./contracts.js";
7
+ import { ORGANIZATION_ATTACHMENT_ERROR, createDockerOrganizationAttachmentSpec, parseOrganizationContainerId } from "./organizationAttachmentProvider.js";
8
+ import { parseOrganizationAttachmentResolution } from "./organizationAttachmentAuthority.js";
9
+ const RESOLUTION_VERSION = "spawnfile.target-organization-attachment.private-resolution.v1";
10
+ const ATTACHMENT_VERSION = "spawnfile.target-organization-attachment.private-binding.v1";
11
+ const MUTATION_ADMISSION_VERSION = "spawnfile.target-organization-attachment.private-mutation-admission.v1";
12
+ const MAX_RECORD_BYTES = 32_768;
13
+ const DIGEST_PATTERN = /^sha256:[a-f0-9]{64}$/u;
14
+ const NAME_PATTERN = /^spfn_[a-f0-9]{58}$/u;
15
+ const fail = () => { throw new Error(ORGANIZATION_ATTACHMENT_ERROR); };
16
+ const ordinary = (raw) => {
17
+ try {
18
+ assertOrdinaryJsonGraph(raw);
19
+ }
20
+ catch {
21
+ return fail();
22
+ }
23
+ };
24
+ const bytes = (value) => Buffer.byteLength(value, "utf8");
25
+ const exactRecord = (value) => value !== null && typeof value === "object" && !Array.isArray(value)
26
+ && Object.getPrototypeOf(value) === Object.prototype;
27
+ const exactKeys = (value, expected) => {
28
+ const actual = Object.keys(value).sort();
29
+ const sorted = [...expected].sort();
30
+ return actual.length === sorted.length
31
+ && actual.every((key, index) => key === sorted[index]);
32
+ };
33
+ const exactStringRecord = (raw) => {
34
+ if (!exactRecord(raw))
35
+ return fail();
36
+ for (const [key, value] of Object.entries(raw)) {
37
+ if (typeof value !== "string" || key.length < 1 || key.length > 128
38
+ || value.length < 1 || value.length > 128)
39
+ return fail();
40
+ }
41
+ return Object.freeze({ ...raw });
42
+ };
43
+ const same = (left, right) => JSON.stringify(left) === JSON.stringify(right);
44
+ const key = (domain, value) => createHash("sha256")
45
+ .update(`spawnfile.target-organization-attachment.${domain}.v1\0`, "utf8")
46
+ .update(value, "utf8")
47
+ .digest("hex");
48
+ export const createOrganizationAttachmentBinding = (input) => {
49
+ const resolution = parseOrganizationAttachmentResolution(input.resolution);
50
+ const networkId = parseOrganizationContainerId(input.networkId);
51
+ if (!DIGEST_PATTERN.test(input.dataNetworkRequestDigest))
52
+ return fail();
53
+ const expected = createDockerOrganizationAttachmentSpec({
54
+ containerId: resolution.network_attachment.container_id,
55
+ dataNetworkOperationHandle: input.dataNetworkOperationHandle,
56
+ dataNetworkRequestDigest: input.dataNetworkRequestDigest,
57
+ deploymentLabels: resolution.network_attachment.deployment_labels,
58
+ operationHandle: resolution.authorization.operation_handle,
59
+ organizationHandoffHandle: resolution.authorization.organization_handoff_handle,
60
+ requestDigest: resolution.authorization.request_digest,
61
+ runId: resolution.authorization.run_id,
62
+ selectedTargetHandle: resolution.authorization.selected_target.handle
63
+ });
64
+ if (!same(expected, input.spec))
65
+ return fail();
66
+ return Object.freeze({
67
+ attachment_handle: expected.resultHandle,
68
+ data_network: Object.freeze({
69
+ handle: expected.network.resultHandle,
70
+ id: networkId,
71
+ labels: expected.network.labels,
72
+ name: expected.network.name,
73
+ operation_handle: parseOpaqueTargetHandle(input.dataNetworkOperationHandle),
74
+ request_digest: input.dataNetworkRequestDigest
75
+ }),
76
+ receipt_labels: expected.receiptLabels,
77
+ resolution,
78
+ version: ATTACHMENT_VERSION
79
+ });
80
+ };
81
+ export const parseOrganizationAttachmentBinding = (raw) => {
82
+ ordinary(raw);
83
+ if (!exactRecord(raw) || !exactKeys(raw, [
84
+ "attachment_handle", "data_network", "receipt_labels", "resolution", "version"
85
+ ]) || raw.version !== ATTACHMENT_VERSION || !exactRecord(raw.data_network)
86
+ || !exactKeys(raw.data_network, [
87
+ "handle", "id", "labels", "name", "operation_handle", "request_digest"
88
+ ]) || typeof raw.data_network.name !== "string"
89
+ || !NAME_PATTERN.test(raw.data_network.name)
90
+ || typeof raw.data_network.request_digest !== "string"
91
+ || !DIGEST_PATTERN.test(raw.data_network.request_digest))
92
+ return fail();
93
+ const resolution = parseOrganizationAttachmentResolution(raw.resolution);
94
+ const spec = createDockerOrganizationAttachmentSpec({
95
+ containerId: resolution.network_attachment.container_id,
96
+ dataNetworkOperationHandle: parseOpaqueTargetHandle(raw.data_network.operation_handle),
97
+ dataNetworkRequestDigest: raw.data_network.request_digest,
98
+ deploymentLabels: resolution.network_attachment.deployment_labels,
99
+ operationHandle: resolution.authorization.operation_handle,
100
+ organizationHandoffHandle: resolution.authorization.organization_handoff_handle,
101
+ requestDigest: resolution.authorization.request_digest,
102
+ runId: resolution.authorization.run_id,
103
+ selectedTargetHandle: resolution.authorization.selected_target.handle
104
+ });
105
+ const networkLabels = exactStringRecord(raw.data_network.labels);
106
+ const receiptLabels = exactStringRecord(raw.receipt_labels);
107
+ if (raw.attachment_handle !== spec.resultHandle
108
+ || raw.data_network.handle !== spec.network.resultHandle
109
+ || raw.data_network.name !== spec.network.name
110
+ || !same(networkLabels, spec.network.labels)
111
+ || !same(receiptLabels, spec.receiptLabels))
112
+ return fail();
113
+ return Object.freeze({
114
+ attachment_handle: parseOpaqueTargetHandle(raw.attachment_handle),
115
+ data_network: Object.freeze({
116
+ handle: parseOpaqueTargetHandle(raw.data_network.handle),
117
+ id: parseOrganizationContainerId(raw.data_network.id),
118
+ labels: networkLabels,
119
+ name: raw.data_network.name,
120
+ operation_handle: parseOpaqueTargetHandle(raw.data_network.operation_handle),
121
+ request_digest: raw.data_network.request_digest
122
+ }),
123
+ receipt_labels: receiptLabels,
124
+ resolution,
125
+ version: ATTACHMENT_VERSION
126
+ });
127
+ };
128
+ export const createOrganizationAttachmentMutationAdmission = (input) => {
129
+ const binding = parseOrganizationAttachmentBinding(input.binding);
130
+ if (input.operation !== "attach_organization" && input.operation !== "detach_organization"
131
+ || !DIGEST_PATTERN.test(input.requestDigest))
132
+ return fail();
133
+ const operationHandle = parseOpaqueTargetHandle(input.operationHandle);
134
+ if (input.operation === "attach_organization"
135
+ && (operationHandle !== binding.resolution.authorization.operation_handle
136
+ || input.requestDigest !== binding.resolution.authorization.request_digest))
137
+ return fail();
138
+ return Object.freeze({
139
+ attachment_handle: binding.attachment_handle,
140
+ container_id: binding.resolution.network_attachment.container_id,
141
+ data_network_id: binding.data_network.id,
142
+ operation: input.operation,
143
+ operation_handle: operationHandle,
144
+ request_digest: input.requestDigest,
145
+ version: MUTATION_ADMISSION_VERSION
146
+ });
147
+ };
148
+ const parseMutationAdmission = (raw) => {
149
+ ordinary(raw);
150
+ if (!exactRecord(raw) || !exactKeys(raw, [
151
+ "attachment_handle", "container_id", "data_network_id", "operation",
152
+ "operation_handle", "request_digest", "version"
153
+ ]) || raw.version !== MUTATION_ADMISSION_VERSION
154
+ || raw.operation !== "attach_organization" && raw.operation !== "detach_organization"
155
+ || typeof raw.request_digest !== "string" || !DIGEST_PATTERN.test(raw.request_digest)) {
156
+ return fail();
157
+ }
158
+ return Object.freeze({
159
+ attachment_handle: parseOpaqueTargetHandle(raw.attachment_handle),
160
+ container_id: parseOrganizationContainerId(raw.container_id),
161
+ data_network_id: parseOrganizationContainerId(raw.data_network_id),
162
+ operation: raw.operation,
163
+ operation_handle: parseOpaqueTargetHandle(raw.operation_handle),
164
+ request_digest: raw.request_digest,
165
+ version: MUTATION_ADMISSION_VERSION
166
+ });
167
+ };
168
+ const checkRoot = async (raw) => {
169
+ if (typeof raw !== "string" || raw.length < 1 || bytes(raw) > 4_096)
170
+ return fail();
171
+ const root = path.resolve(raw);
172
+ const parsed = path.parse(root);
173
+ let current = parsed.root;
174
+ for (const part of root.slice(parsed.root.length).split(path.sep).filter(Boolean)) {
175
+ current = path.join(current, part);
176
+ let stats;
177
+ try {
178
+ stats = await lstat(current);
179
+ }
180
+ catch (error) {
181
+ if (error.code !== "ENOENT")
182
+ return fail();
183
+ await mkdir(current, { mode: 0o700 }).catch((mkdirError) => {
184
+ if (mkdirError.code !== "EEXIST")
185
+ return fail();
186
+ });
187
+ stats = await lstat(current).catch(fail);
188
+ }
189
+ if (!stats.isDirectory() || stats.isSymbolicLink())
190
+ return fail();
191
+ }
192
+ await chmod(root, 0o700).catch(fail);
193
+ return root;
194
+ };
195
+ const readPrivate = async (filePath) => {
196
+ let stats;
197
+ try {
198
+ stats = await lstat(filePath);
199
+ }
200
+ catch (error) {
201
+ if (error.code === "ENOENT")
202
+ return null;
203
+ return fail();
204
+ }
205
+ if (!stats.isFile() || stats.isSymbolicLink() || stats.size > MAX_RECORD_BYTES
206
+ || (stats.mode & 0o077) !== 0)
207
+ return fail();
208
+ let handle;
209
+ try {
210
+ handle = await open(filePath, constants.O_RDONLY | constants.O_NOFOLLOW);
211
+ }
212
+ catch {
213
+ return fail();
214
+ }
215
+ try {
216
+ const current = await handle.stat();
217
+ if (!current.isFile() || current.size > MAX_RECORD_BYTES || (current.mode & 0o077) !== 0)
218
+ return fail();
219
+ return await handle.readFile({ encoding: "utf8" });
220
+ }
221
+ catch {
222
+ return fail();
223
+ }
224
+ finally {
225
+ await handle.close().catch(() => undefined);
226
+ }
227
+ };
228
+ const syncDirectory = async (directory) => {
229
+ const handle = await open(directory, constants.O_RDONLY);
230
+ try {
231
+ await handle.sync();
232
+ }
233
+ finally {
234
+ await handle.close();
235
+ }
236
+ };
237
+ const createImmutable = async (root, fileName, content) => {
238
+ if (bytes(content) > MAX_RECORD_BYTES)
239
+ return fail();
240
+ const finalPath = path.join(root, fileName);
241
+ const existing = await readPrivate(finalPath);
242
+ if (existing !== null) {
243
+ if (existing !== content)
244
+ return fail();
245
+ return;
246
+ }
247
+ const temporaryPath = path.join(root, `.${fileName}.${process.pid}.${randomUUID()}.tmp`);
248
+ let handle;
249
+ try {
250
+ handle = await open(temporaryPath, constants.O_CREAT | constants.O_EXCL | constants.O_WRONLY | constants.O_NOFOLLOW, 0o600);
251
+ await handle.chmod(0o600);
252
+ await handle.writeFile(content, "utf8");
253
+ await handle.sync();
254
+ await handle.close();
255
+ handle = undefined;
256
+ try {
257
+ await link(temporaryPath, finalPath);
258
+ await syncDirectory(root);
259
+ }
260
+ catch (error) {
261
+ if (error.code !== "EEXIST")
262
+ throw error;
263
+ }
264
+ }
265
+ finally {
266
+ if (handle)
267
+ await handle.close().catch(() => undefined);
268
+ await unlink(temporaryPath).catch((error) => {
269
+ if (error.code !== "ENOENT")
270
+ throw error;
271
+ });
272
+ await syncDirectory(root);
273
+ }
274
+ if (await readPrivate(finalPath) !== content)
275
+ return fail();
276
+ };
277
+ class FileOrganizationAttachmentAuthorityStore {
278
+ #root;
279
+ constructor(root) { this.#root = root; }
280
+ async bindResolution(raw) {
281
+ const resolution = parseOrganizationAttachmentResolution(raw);
282
+ const content = JSON.stringify({ resolution, version: RESOLUTION_VERSION });
283
+ const fileName = `${key("resolution", resolution.authorization.organization_handoff_handle)}.resolution.json`;
284
+ await createImmutable(this.#root, fileName, content);
285
+ }
286
+ async bindAttachment(raw) {
287
+ const binding = parseOrganizationAttachmentBinding(raw);
288
+ const fileName = `${key("binding", binding.attachment_handle)}.attachment.json`;
289
+ await createImmutable(this.#root, fileName, JSON.stringify(binding));
290
+ }
291
+ async bindMutationAdmission(raw) {
292
+ const admission = parseMutationAdmission(raw);
293
+ const fileName = `${key("mutation-admission", admission.operation_handle)}.admission.json`;
294
+ await createImmutable(this.#root, fileName, JSON.stringify(admission));
295
+ }
296
+ async loadAttachment(handle) {
297
+ const parsed = parseOpaqueTargetHandle(handle);
298
+ const fileName = `${key("binding", parsed)}.attachment.json`;
299
+ const content = await readPrivate(path.join(this.#root, fileName));
300
+ if (content === null)
301
+ return fail();
302
+ try {
303
+ return parseOrganizationAttachmentBinding(JSON.parse(content));
304
+ }
305
+ catch {
306
+ return fail();
307
+ }
308
+ }
309
+ async requireMutationAdmission(raw) {
310
+ const admission = parseMutationAdmission(raw);
311
+ const fileName = `${key("mutation-admission", admission.operation_handle)}.admission.json`;
312
+ if (await readPrivate(path.join(this.#root, fileName)) !== JSON.stringify(admission))
313
+ return fail();
314
+ }
315
+ }
316
+ export const initializeOrganizationAttachmentAuthorityStore = async (root) => new FileOrganizationAttachmentAuthorityStore(await checkRoot(root));
@@ -0,0 +1,41 @@
1
+ import { z } from "zod";
2
+ export declare const TARGET_PUBLIC_ARTIFACT_SNAPSHOT_REQUEST_VERSION: "spawnfile.target-public-artifact-snapshot.request.v1";
3
+ export declare const TARGET_PUBLIC_ARTIFACT_SNAPSHOT_VERSION: "spawnfile.target-public-artifact-snapshot.v1";
4
+ export declare const TARGET_PUBLIC_ARTIFACT_ROOT: "/tmp/spawnfile-public";
5
+ export declare const MAX_TARGET_PUBLIC_ARTIFACT_BYTES = 131072;
6
+ export declare const targetPublicArtifactSnapshotRequestSchema: z.ZodObject<{
7
+ artifact: z.ZodObject<{
8
+ id: z.ZodString;
9
+ max_bytes: z.ZodNumber;
10
+ media_type: z.ZodString;
11
+ path: z.ZodString;
12
+ }, z.core.$strict>;
13
+ descriptor_digest: z.ZodString;
14
+ run_id: z.ZodPipe<z.ZodString, z.ZodTransform<import("./contracts.js").RunId, string>>;
15
+ selected_target: z.ZodObject<{
16
+ fingerprint: z.ZodString;
17
+ handle: z.ZodPipe<z.ZodString, z.ZodTransform<import("./contracts.js").OpaqueTargetHandle, string>>;
18
+ }, z.core.$strict>;
19
+ version: z.ZodLiteral<"spawnfile.target-public-artifact-snapshot.request.v1">;
20
+ world_service_handle: z.ZodPipe<z.ZodString, z.ZodTransform<import("./contracts.js").OpaqueTargetHandle, string>>;
21
+ }, z.core.$strict>;
22
+ export declare const targetPublicArtifactSnapshotSchema: z.ZodObject<{
23
+ artifact_id: z.ZodString;
24
+ content_base64: z.ZodString;
25
+ content_digest: z.ZodString;
26
+ media_type: z.ZodString;
27
+ request_digest: z.ZodString;
28
+ run_id: z.ZodPipe<z.ZodString, z.ZodTransform<import("./contracts.js").RunId, string>>;
29
+ size_bytes: z.ZodNumber;
30
+ version: z.ZodLiteral<"spawnfile.target-public-artifact-snapshot.v1">;
31
+ }, z.core.$strict>;
32
+ export type TargetPublicArtifactSnapshotRequest = z.infer<typeof targetPublicArtifactSnapshotRequestSchema>;
33
+ export type TargetPublicArtifactSnapshot = z.infer<typeof targetPublicArtifactSnapshotSchema>;
34
+ export declare const parseTargetPublicArtifactSnapshotRequest: (raw: unknown) => TargetPublicArtifactSnapshotRequest;
35
+ export declare const parseTargetPublicArtifactSnapshot: (raw: unknown) => TargetPublicArtifactSnapshot;
36
+ export declare const createTargetPublicArtifactSnapshotRequestDigest: (raw: unknown) => `sha256:${string}`;
37
+ export declare const createTargetPublicArtifactSnapshot: (input: {
38
+ readonly content: Uint8Array;
39
+ readonly request: TargetPublicArtifactSnapshotRequest;
40
+ }) => TargetPublicArtifactSnapshot;
41
+ export declare const createCanonicalTargetPublicArtifactSnapshotBytes: (raw: unknown) => string;
@@ -0,0 +1,150 @@
1
+ import { Buffer } from "node:buffer";
2
+ import { createHash } from "node:crypto";
3
+ import { types as nodeTypes } from "node:util";
4
+ import { z } from "zod";
5
+ import { assertOrdinaryJsonGraph, opaqueTargetHandleSchema, runIdSchema, selectedTargetSchema } from "./contracts.js";
6
+ export const TARGET_PUBLIC_ARTIFACT_SNAPSHOT_REQUEST_VERSION = "spawnfile.target-public-artifact-snapshot.request.v1";
7
+ export const TARGET_PUBLIC_ARTIFACT_SNAPSHOT_VERSION = "spawnfile.target-public-artifact-snapshot.v1";
8
+ export const TARGET_PUBLIC_ARTIFACT_ROOT = "/tmp/spawnfile-public";
9
+ export const MAX_TARGET_PUBLIC_ARTIFACT_BYTES = 131_072;
10
+ const digestSchema = z.string().regex(/^sha256:[0-9a-f]{64}$/u);
11
+ const identifierSchema = z.string().regex(/^[a-z][a-z0-9_-]{0,63}$/u);
12
+ const mediaTypeSchema = z.string()
13
+ .max(127)
14
+ .regex(/^[a-z][a-z0-9!#$&^_.+-]*\/[a-z0-9][a-z0-9!#$&^_.+-]*$/u);
15
+ const publicPathSchema = z.string().max(255)
16
+ .regex(/^\/tmp\/spawnfile-public\/[A-Za-z0-9][A-Za-z0-9._/-]*$/u)
17
+ .refine((value) => !value.includes("//") && !value.endsWith("/")
18
+ && !value.split("/").some((part) => part === "." || part === ".."));
19
+ export const targetPublicArtifactSnapshotRequestSchema = z.object({
20
+ artifact: z.object({
21
+ id: identifierSchema,
22
+ max_bytes: z.number().int().min(1).max(MAX_TARGET_PUBLIC_ARTIFACT_BYTES),
23
+ media_type: mediaTypeSchema,
24
+ path: publicPathSchema
25
+ }).strict(),
26
+ descriptor_digest: digestSchema,
27
+ run_id: runIdSchema,
28
+ selected_target: selectedTargetSchema,
29
+ version: z.literal(TARGET_PUBLIC_ARTIFACT_SNAPSHOT_REQUEST_VERSION),
30
+ world_service_handle: opaqueTargetHandleSchema
31
+ }).strict();
32
+ export const targetPublicArtifactSnapshotSchema = z.object({
33
+ artifact_id: identifierSchema,
34
+ content_base64: z.string().max(Math.ceil(MAX_TARGET_PUBLIC_ARTIFACT_BYTES / 3) * 4),
35
+ content_digest: digestSchema,
36
+ media_type: mediaTypeSchema,
37
+ request_digest: digestSchema,
38
+ run_id: runIdSchema,
39
+ size_bytes: z.number().int().min(0).max(MAX_TARGET_PUBLIC_ARTIFACT_BYTES),
40
+ version: z.literal(TARGET_PUBLIC_ARTIFACT_SNAPSHOT_VERSION)
41
+ }).strict().superRefine((value, context) => {
42
+ let bytes;
43
+ try {
44
+ bytes = Buffer.from(value.content_base64, "base64");
45
+ }
46
+ catch {
47
+ context.addIssue({ code: z.ZodIssueCode.custom, message: "invalid base64 content" });
48
+ return;
49
+ }
50
+ if (bytes.toString("base64") !== value.content_base64
51
+ || bytes.byteLength !== value.size_bytes
52
+ || `sha256:${createHash("sha256").update(bytes).digest("hex")}` !== value.content_digest) {
53
+ context.addIssue({ code: z.ZodIssueCode.custom, message: "artifact content mismatch" });
54
+ }
55
+ });
56
+ const canonicalJsonValue = (value) => {
57
+ if (Array.isArray(value))
58
+ return `[${value.map(canonicalJsonValue).join(",")}]`;
59
+ if (value !== null && typeof value === "object") {
60
+ const record = value;
61
+ return `{${Object.keys(record).sort().map((key) => `${JSON.stringify(key)}:${canonicalJsonValue(record[key])}`).join(",")}}`;
62
+ }
63
+ return JSON.stringify(value);
64
+ };
65
+ const canonicalJson = (value) => {
66
+ assertOrdinaryJsonGraph(value);
67
+ return canonicalJsonValue(value);
68
+ };
69
+ /*
70
+ * Public artifact snapshots are deliberately one flat envelope. Their base64
71
+ * payload can be larger than the generic JSON graph's aggregate 64 KiB string
72
+ * allowance, so admit that one field without relaxing the shared graph guard.
73
+ * Descriptor inspection happens before Zod is allowed to read any property.
74
+ */
75
+ const assertOrdinaryPublicArtifactSnapshot = (raw) => {
76
+ try {
77
+ if (raw === null || typeof raw !== "object" || Array.isArray(raw)
78
+ || nodeTypes.isProxy(raw))
79
+ throw new Error();
80
+ const prototype = Object.getPrototypeOf(raw);
81
+ if (prototype !== Object.prototype && prototype !== null)
82
+ throw new Error();
83
+ const keys = Reflect.ownKeys(raw);
84
+ if (keys.length > 8)
85
+ throw new Error();
86
+ let ordinaryStringBytes = 0;
87
+ for (const key of keys) {
88
+ if (typeof key !== "string")
89
+ throw new Error();
90
+ const descriptor = Object.getOwnPropertyDescriptor(raw, key);
91
+ if (!descriptor || !("value" in descriptor) || !descriptor.enumerable) {
92
+ throw new Error();
93
+ }
94
+ ordinaryStringBytes += Buffer.byteLength(key, "utf8");
95
+ const value = descriptor.value;
96
+ if (typeof value === "string") {
97
+ if (key === "content_base64") {
98
+ if (Buffer.byteLength(value, "utf8")
99
+ > Math.ceil(MAX_TARGET_PUBLIC_ARTIFACT_BYTES / 3) * 4)
100
+ throw new Error();
101
+ }
102
+ else {
103
+ ordinaryStringBytes += Buffer.byteLength(value, "utf8");
104
+ }
105
+ }
106
+ else if (typeof value === "number") {
107
+ if (!Number.isFinite(value))
108
+ throw new Error();
109
+ }
110
+ else if (value !== null && typeof value !== "boolean") {
111
+ throw new Error();
112
+ }
113
+ }
114
+ if (ordinaryStringBytes > 65_536)
115
+ throw new Error();
116
+ }
117
+ catch {
118
+ throw new TypeError("invalid JSON-like graph");
119
+ }
120
+ };
121
+ export const parseTargetPublicArtifactSnapshotRequest = (raw) => {
122
+ assertOrdinaryJsonGraph(raw);
123
+ return targetPublicArtifactSnapshotRequestSchema.parse(raw);
124
+ };
125
+ export const parseTargetPublicArtifactSnapshot = (raw) => {
126
+ assertOrdinaryPublicArtifactSnapshot(raw);
127
+ return targetPublicArtifactSnapshotSchema.parse(raw);
128
+ };
129
+ export const createTargetPublicArtifactSnapshotRequestDigest = (raw) => `sha256:${createHash("sha256")
130
+ .update("spawnfile.target-public-artifact-snapshot.request.v1\0", "utf8")
131
+ .update(canonicalJson(parseTargetPublicArtifactSnapshotRequest(raw)), "utf8")
132
+ .digest("hex")}`;
133
+ export const createTargetPublicArtifactSnapshot = (input) => {
134
+ const request = parseTargetPublicArtifactSnapshotRequest(input.request);
135
+ const bytes = Buffer.from(input.content);
136
+ if (bytes.byteLength > request.artifact.max_bytes) {
137
+ throw new TypeError("Public artifact exceeds its declared bound");
138
+ }
139
+ return parseTargetPublicArtifactSnapshot({
140
+ artifact_id: request.artifact.id,
141
+ content_base64: bytes.toString("base64"),
142
+ content_digest: `sha256:${createHash("sha256").update(bytes).digest("hex")}`,
143
+ media_type: request.artifact.media_type,
144
+ request_digest: createTargetPublicArtifactSnapshotRequestDigest(request),
145
+ run_id: request.run_id,
146
+ size_bytes: bytes.byteLength,
147
+ version: TARGET_PUBLIC_ARTIFACT_SNAPSHOT_VERSION
148
+ });
149
+ };
150
+ export const createCanonicalTargetPublicArtifactSnapshotBytes = (raw) => canonicalJsonValue(parseTargetPublicArtifactSnapshot(raw));
@@ -0,0 +1,51 @@
1
+ import { z } from "zod";
2
+ import { type TargetTopologyReceipt } from "./contracts.js";
3
+ import { type DockerWorldServiceExecutor } from "./dockerWorldServiceProvider.js";
4
+ import type { WorldServiceBinding } from "./dockerWorldServiceStore.js";
5
+ export declare const WORLD_SERVICE_ACTIVATION_VERSION: "spawnfile.world-service-activation.v1";
6
+ export declare const TARGET_TOPOLOGY_ACTIVATION_RECEIPT_VERSION: "spawnfile.target-topology-activation-receipt.v1";
7
+ export declare const WORLD_SERVICE_ACTIVATION_RELATIVE_PATH: ".spawnfile/world-service-activated.v1";
8
+ declare const markerSchema: z.ZodObject<{
9
+ bundle_digest: z.ZodString;
10
+ run_id: z.ZodString;
11
+ state: z.ZodLiteral<"activated">;
12
+ topology_receipt_digest: z.ZodString;
13
+ topology_request_digest: z.ZodString;
14
+ version: z.ZodLiteral<"spawnfile.world-service-activation.v1">;
15
+ }, z.core.$strict>;
16
+ declare const receiptSchema: z.ZodObject<{
17
+ activation_digest: z.ZodString;
18
+ bundle_digest: z.ZodString;
19
+ receipt_digest: z.ZodString;
20
+ run_id: z.ZodString;
21
+ state: z.ZodLiteral<"activated">;
22
+ topology_receipt_digest: z.ZodString;
23
+ topology_request_digest: z.ZodString;
24
+ version: z.ZodLiteral<"spawnfile.target-topology-activation-receipt.v1">;
25
+ }, z.core.$strict>;
26
+ export type WorldServiceActivation = z.infer<typeof markerSchema>;
27
+ export type TargetTopologyActivationReceipt = z.infer<typeof receiptSchema>;
28
+ export interface TargetTopologyActivationResult {
29
+ readonly receipt: TargetTopologyActivationReceipt;
30
+ readonly receiptBytes: string;
31
+ }
32
+ export declare const parseWorldServiceActivation: (raw: unknown) => WorldServiceActivation;
33
+ export declare const parseTargetTopologyActivationReceipt: (raw: unknown) => TargetTopologyActivationReceipt;
34
+ export declare const createCanonicalWorldServiceActivationBytes: (raw: unknown) => string;
35
+ export declare const createCanonicalTargetTopologyActivationReceiptBytes: (raw: unknown) => string;
36
+ export declare const createWorldServiceActivationDigest: (raw: unknown) => string;
37
+ export declare const createTargetTopologyActivationReceiptDigest: (raw: unknown) => string;
38
+ /**
39
+ * Publishes the owner-only lifecycle release through the service's existing
40
+ * evidence mount. Docker copies exact canonical bytes; no provider traffic or
41
+ * agent-reachable endpoint participates in activation.
42
+ */
43
+ export declare const activateDockerWorldService: (input: {
44
+ readonly executor: DockerWorldServiceExecutor;
45
+ readonly signal?: AbortSignal;
46
+ readonly target: readonly string[];
47
+ readonly timeoutMs: number;
48
+ readonly topology: TargetTopologyReceipt;
49
+ readonly world: WorldServiceBinding;
50
+ }) => Promise<TargetTopologyActivationResult>;
51
+ export {};