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,178 @@
1
+ import path from "node:path";
2
+ const CONTAINER_ROOTFS_ROOT = "container/rootfs";
3
+ const MOLTNET_NODE_CONFIG_VERSION = "moltnet.node.v1";
4
+ // src/compiler/moltnetRuntimeConfig.ts:108 — pi/daimon attachments both lower to kind "pi".
5
+ const CONTROL_URL_PATTERN = /^http:\/\/127\.0\.0\.1:\d+\/agents\/[a-z0-9-]+\/wake$/u;
6
+ const WIRING_KEYS = [
7
+ "network.wiring.node_config",
8
+ "network.wiring.control_url",
9
+ "network.wiring.network_resolves",
10
+ "network.wiring.membership"
11
+ ];
12
+ const createObservation = (input) => ({
13
+ ...input,
14
+ label: `${input.severity.toUpperCase()} ${input.key}`,
15
+ source: "compile_report"
16
+ });
17
+ const missingReportObservations = () => WIRING_KEYS.map((key) => createObservation({
18
+ key,
19
+ message: `${key} was not checked: no compile report is available`,
20
+ severity: "unknown",
21
+ subject: "compile"
22
+ }));
23
+ // node_plans[].config_path is a container-absolute path
24
+ // (toContainerRootfsPath, src/compiler/moltnetArtifactPaths.ts) — the
25
+ // physical file on disk lives under the compiled output's rootfs mirror.
26
+ const nodeConfigPhysicalPath = (outputDirectory, configPath) => path.join(outputDirectory, CONTAINER_ROOTFS_ROOT, configPath);
27
+ const readNodePlans = async (nodePlans, outputDirectory, readFile) => Promise.all(nodePlans.map(async (plan) => {
28
+ if (!outputDirectory) {
29
+ return { networkId: plan.networkId, parsed: null, physicalPath: null };
30
+ }
31
+ const physicalPath = nodeConfigPhysicalPath(outputDirectory, plan.configPath);
32
+ const content = await readFile(physicalPath);
33
+ if (content === null) {
34
+ return { networkId: plan.networkId, parsed: null, physicalPath };
35
+ }
36
+ try {
37
+ return { networkId: plan.networkId, parsed: JSON.parse(content), physicalPath };
38
+ }
39
+ catch {
40
+ return { networkId: plan.networkId, parsed: null, physicalPath };
41
+ }
42
+ }));
43
+ const isValidNodeConfig = (plan) => plan.parsed !== null && plan.parsed.version === MOLTNET_NODE_CONFIG_VERSION;
44
+ const collectNodeConfigObservations = (plans) => plans.map((plan) => {
45
+ const subject = `network:${plan.networkId}`;
46
+ if (!plan.physicalPath) {
47
+ return createObservation({
48
+ key: "network.wiring.node_config",
49
+ message: `${plan.networkId} node config has no compiled output directory to read from`,
50
+ severity: "unknown",
51
+ subject
52
+ });
53
+ }
54
+ if (plan.parsed === null) {
55
+ return createObservation({
56
+ key: "network.wiring.node_config",
57
+ message: `${plan.networkId} node config at ${plan.physicalPath} is unreadable or not valid JSON`,
58
+ severity: "error",
59
+ subject
60
+ });
61
+ }
62
+ const validVersion = isValidNodeConfig(plan);
63
+ return createObservation({
64
+ key: "network.wiring.node_config",
65
+ message: validVersion
66
+ ? `${plan.networkId} node config at ${plan.physicalPath} parses as ${MOLTNET_NODE_CONFIG_VERSION}`
67
+ : `${plan.networkId} node config at ${plan.physicalPath} does not declare version ${MOLTNET_NODE_CONFIG_VERSION}`,
68
+ severity: validVersion ? "ok" : "error",
69
+ subject
70
+ });
71
+ });
72
+ const collectControlUrlObservations = (plans) => {
73
+ const observations = [];
74
+ for (const plan of plans) {
75
+ if (!isValidNodeConfig(plan)) {
76
+ continue;
77
+ }
78
+ const subject = `network:${plan.networkId}`;
79
+ for (const attachment of plan.parsed?.attachments ?? []) {
80
+ const kind = attachment.runtime?.kind;
81
+ const agentId = typeof attachment.agent?.id === "string" ? attachment.agent.id : "unknown-agent";
82
+ if (kind === "pi") {
83
+ const controlUrl = attachment.runtime?.control_url;
84
+ const valid = typeof controlUrl === "string" && CONTROL_URL_PATTERN.test(controlUrl);
85
+ observations.push(createObservation({
86
+ key: "network.wiring.control_url",
87
+ message: valid
88
+ ? `${agentId} control_url ${String(controlUrl)} matches the expected loopback wake pattern`
89
+ : typeof controlUrl === "string"
90
+ ? `${agentId} control_url "${controlUrl}" does not match the expected loopback wake pattern`
91
+ : `${agentId} pi attachment is missing control_url`,
92
+ severity: valid ? "ok" : "error",
93
+ subject
94
+ }));
95
+ }
96
+ else if (kind === "picoclaw") {
97
+ const configPath = attachment.runtime?.config_path;
98
+ const valid = typeof configPath === "string" && configPath.length > 0;
99
+ observations.push(createObservation({
100
+ key: "network.wiring.control_url",
101
+ message: valid
102
+ ? `${agentId} picoclaw runtime declares config_path ${String(configPath)}`
103
+ : `${agentId} picoclaw attachment is missing config_path`,
104
+ severity: valid ? "ok" : "error",
105
+ subject
106
+ }));
107
+ }
108
+ }
109
+ }
110
+ return observations;
111
+ };
112
+ const collectNetworkResolvesObservations = (nodePlans, servers) => {
113
+ const serverNetworkIds = new Set(servers.map((server) => server.networkId));
114
+ return nodePlans.map((plan) => {
115
+ const resolves = serverNetworkIds.has(plan.networkId);
116
+ return createObservation({
117
+ key: "network.wiring.network_resolves",
118
+ message: resolves
119
+ ? `${plan.networkId} node plan resolves to a compiled Moltnet server plan`
120
+ : `${plan.networkId} node plan has no matching compiled Moltnet server plan`,
121
+ severity: resolves ? "ok" : "error",
122
+ subject: `network:${plan.networkId}`
123
+ });
124
+ });
125
+ };
126
+ const collectAttachmentAgentIdsByNetwork = (plans) => {
127
+ const idsByNetwork = new Map();
128
+ for (const plan of plans) {
129
+ if (!isValidNodeConfig(plan)) {
130
+ continue;
131
+ }
132
+ const ids = idsByNetwork.get(plan.networkId) ?? new Set();
133
+ for (const attachment of plan.parsed?.attachments ?? []) {
134
+ if (typeof attachment.agent?.id === "string") {
135
+ ids.add(attachment.agent.id);
136
+ }
137
+ }
138
+ idsByNetwork.set(plan.networkId, ids);
139
+ }
140
+ return idsByNetwork;
141
+ };
142
+ const collectMembershipObservations = (servers, plans) => {
143
+ const agentIdsByNetwork = collectAttachmentAgentIdsByNetwork(plans);
144
+ const observations = [];
145
+ for (const server of servers) {
146
+ const knownAgentIds = agentIdsByNetwork.get(server.networkId);
147
+ for (const room of server.rooms) {
148
+ const subject = `room:${server.networkId}:${room.id}`;
149
+ for (const memberId of room.members) {
150
+ const orphan = !knownAgentIds?.has(memberId);
151
+ observations.push(createObservation({
152
+ key: "network.wiring.membership",
153
+ message: orphan
154
+ ? `${server.networkId}/${room.id} member ${memberId} has no matching node config attachment`
155
+ : `${server.networkId}/${room.id} member ${memberId} maps to a node config attachment`,
156
+ severity: orphan ? "warn" : "ok",
157
+ subject
158
+ }));
159
+ }
160
+ }
161
+ }
162
+ return observations;
163
+ };
164
+ export const collectMoltnetWiringProbeObservations = async (options) => {
165
+ if (options.loadedReport.kind !== "loaded") {
166
+ return missingReportObservations();
167
+ }
168
+ const { report } = options.loadedReport;
169
+ const servers = report.moltnetServers ?? [];
170
+ const nodePlans = report.moltnetNodePlans ?? [];
171
+ const readPlans = await readNodePlans(nodePlans, options.outputDirectory, options.readFile);
172
+ return [
173
+ ...collectNodeConfigObservations(readPlans),
174
+ ...collectControlUrlObservations(readPlans),
175
+ ...collectNetworkResolvesObservations(nodePlans, servers),
176
+ ...collectMembershipObservations(servers, readPlans)
177
+ ];
178
+ };
@@ -0,0 +1,41 @@
1
+ import { type OpaqueTargetHandle, type TargetResourceReceipt, type TargetResourceRequest } from "./contracts.js";
2
+ import { type TargetJournalClaim, type TargetJournalStore } from "./journal.js";
3
+ type CleanupRequest = Extract<TargetResourceRequest, {
4
+ operation: "cleanup_run";
5
+ }>;
6
+ export interface CleanupRunResource {
7
+ readonly authority: unknown;
8
+ readonly handle: OpaqueTargetHandle;
9
+ }
10
+ export interface CleanupRunPlan {
11
+ readonly attachment: CleanupRunResource | null;
12
+ readonly cleanupPolicy: CleanupRequest["cleanup_policy"];
13
+ readonly dataNetwork: CleanupRunResource | null;
14
+ readonly evidence: CleanupRunResource | null;
15
+ readonly exportState: "exported" | "incomplete" | "not_requested";
16
+ readonly secrets: CleanupRunResource | null;
17
+ readonly world: CleanupRunResource | null;
18
+ }
19
+ export interface CleanupRunOperationsOptions {
20
+ readonly journal: TargetJournalStore;
21
+ readonly prepare: (input: {
22
+ readonly claim: TargetJournalClaim;
23
+ readonly request: CleanupRequest;
24
+ }) => Promise<CleanupRunPlan>;
25
+ readonly steps: {
26
+ readonly detachAttachment: (resource: CleanupRunResource) => Promise<void>;
27
+ readonly preserveEvidence: (resource: CleanupRunResource) => Promise<void>;
28
+ readonly removeDataNetwork: (resource: CleanupRunResource) => Promise<void>;
29
+ readonly removeEvidence: (resource: CleanupRunResource) => Promise<void>;
30
+ readonly removeSecrets: (resource: CleanupRunResource) => Promise<void>;
31
+ readonly removeWorld: (resource: CleanupRunResource) => Promise<void>;
32
+ };
33
+ }
34
+ export interface CleanupRunOperations {
35
+ execute(raw: unknown): Promise<{
36
+ readonly receipt: TargetResourceReceipt;
37
+ readonly receiptBytes: string;
38
+ }>;
39
+ }
40
+ export declare const createCleanupRunOperations: (options: CleanupRunOperationsOptions) => CleanupRunOperations;
41
+ export {};
@@ -0,0 +1,139 @@
1
+ import { SpawnfileError } from "../shared/index.js";
2
+ import { TARGET_RESOURCE_RECEIPT_VERSION, parseOpaqueTargetHandle, parseTargetResourceRequest } from "./contracts.js";
3
+ import { createTargetReceiptDigest } from "./handles.js";
4
+ const CLEANUP_ERROR = "Target cleanup failed";
5
+ const fail = () => { throw new SpawnfileError("runtime_error", CLEANUP_ERROR); };
6
+ const record = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
7
+ const same = (left, right) => JSON.stringify(left) === JSON.stringify(right);
8
+ const exactKeys = (value, expected) => {
9
+ const keys = Object.keys(value).sort();
10
+ return keys.length === expected.length && keys.every((key, index) => key === expected[index]);
11
+ };
12
+ const request = (raw) => {
13
+ const value = parseTargetResourceRequest(raw);
14
+ if (value.operation !== "cleanup_run"
15
+ || value.cleanup_policy === "preserve_evidence" && value.evidence_volume_handle === undefined)
16
+ return fail();
17
+ return value;
18
+ };
19
+ const resource = (raw, expected) => {
20
+ if (!record(raw) || !Object.isFrozen(raw) || !exactKeys(raw, ["authority", "handle"]))
21
+ return fail();
22
+ const handle = parseOpaqueTargetHandle(raw.handle);
23
+ if (expected !== undefined && handle !== expected)
24
+ return fail();
25
+ return raw;
26
+ };
27
+ const optionalResource = (raw, expected) => {
28
+ if (expected === undefined) {
29
+ if (raw !== null)
30
+ return fail();
31
+ return null;
32
+ }
33
+ return resource(raw, expected);
34
+ };
35
+ const plan = (raw, value) => {
36
+ if (!record(raw) || !Object.isFrozen(raw) || !exactKeys(raw, [
37
+ "attachment", "cleanupPolicy", "dataNetwork", "evidence", "exportState", "secrets", "world"
38
+ ]) || raw.cleanupPolicy !== value.cleanup_policy
39
+ || raw.exportState !== "exported" && raw.exportState !== "incomplete"
40
+ && raw.exportState !== "not_requested")
41
+ return fail();
42
+ const attachment = optionalResource(raw.attachment, value.organization_attachment_handle);
43
+ const dataNetwork = raw.dataNetwork === null ? null : resource(raw.dataNetwork);
44
+ const evidence = optionalResource(raw.evidence, value.evidence_volume_handle);
45
+ const world = optionalResource(raw.world, value.world_service_handle);
46
+ if ((evidence === null) !== (raw.exportState === "not_requested")
47
+ || dataNetwork === null && (world !== null || attachment !== null))
48
+ return fail();
49
+ return Object.freeze({
50
+ attachment,
51
+ cleanupPolicy: value.cleanup_policy,
52
+ dataNetwork,
53
+ evidence,
54
+ exportState: raw.exportState,
55
+ secrets: optionalResource(raw.secrets, value.secret_bindings_handle),
56
+ world
57
+ });
58
+ };
59
+ const receipt = (value, claim, prepared) => {
60
+ const raw = {
61
+ cleanup_state: value.cleanup_policy === "preserve_evidence" ? "preserved" : "removed",
62
+ descriptor_digest: value.descriptor_digest,
63
+ export_state: prepared.exportState,
64
+ labels: [],
65
+ operation: value.operation,
66
+ operation_handle: claim.operationHandle,
67
+ receipt_digest: `sha256:${"0".repeat(64)}`,
68
+ request_digest: claim.requestDigest,
69
+ result_handle: value.cleanup_policy === "preserve_evidence"
70
+ ? prepared.evidence.handle : null,
71
+ resulting_revision: value.expected_revision + 1,
72
+ run_id: value.run_id,
73
+ selected_target: value.selected_target,
74
+ version: TARGET_RESOURCE_RECEIPT_VERSION
75
+ };
76
+ return { ...raw, receipt_digest: createTargetReceiptDigest(raw) };
77
+ };
78
+ class Operations {
79
+ #live = new Map();
80
+ #options;
81
+ constructor(options) { this.#options = options; }
82
+ execute(raw) {
83
+ let value;
84
+ try {
85
+ value = request(raw);
86
+ }
87
+ catch {
88
+ return Promise.reject(new SpawnfileError("runtime_error", CLEANUP_ERROR));
89
+ }
90
+ const active = this.#live.get(value.idempotency_key);
91
+ if (active)
92
+ return same(active.request, value) ? active.promise
93
+ : Promise.reject(new SpawnfileError("runtime_error", CLEANUP_ERROR));
94
+ const promise = this.#owner(value).finally(() => {
95
+ if (this.#live.get(value.idempotency_key)?.promise === promise) {
96
+ this.#live.delete(value.idempotency_key);
97
+ }
98
+ });
99
+ this.#live.set(value.idempotency_key, { promise, request: value });
100
+ return promise;
101
+ }
102
+ async #owner(value) {
103
+ try {
104
+ const reservation = await this.#options.journal.reserve(value);
105
+ if (reservation.kind === "replay") {
106
+ return { receipt: reservation.receipt, receiptBytes: reservation.receiptBytes };
107
+ }
108
+ const prepared = plan(await this.#options.prepare({ claim: reservation.claim, request: value }), value);
109
+ if (prepared.world)
110
+ await this.#options.steps.removeWorld(prepared.world);
111
+ if (prepared.attachment)
112
+ await this.#options.steps.detachAttachment(prepared.attachment);
113
+ if (prepared.secrets)
114
+ await this.#options.steps.removeSecrets(prepared.secrets);
115
+ if (prepared.evidence) {
116
+ if (prepared.cleanupPolicy === "preserve_evidence") {
117
+ await this.#options.steps.preserveEvidence(prepared.evidence);
118
+ }
119
+ else {
120
+ await this.#options.steps.removeEvidence(prepared.evidence);
121
+ }
122
+ }
123
+ if (prepared.dataNetwork) {
124
+ await this.#options.steps.removeDataNetwork(prepared.dataNetwork);
125
+ }
126
+ return await this.#options.journal.complete(reservation.claim, receipt(value, reservation.claim, prepared));
127
+ }
128
+ catch {
129
+ return fail();
130
+ }
131
+ }
132
+ }
133
+ export const createCleanupRunOperations = (options) => {
134
+ if (!options?.journal || typeof options.journal.reserve !== "function"
135
+ || typeof options.journal.complete !== "function" || typeof options.prepare !== "function"
136
+ || !options.steps || Object.values(options.steps).some((step) => typeof step !== "function"))
137
+ return fail();
138
+ return new Operations(options);
139
+ };
@@ -0,0 +1,16 @@
1
+ import { type CleanupRunOperations } from "./cleanupRun.js";
2
+ import { type DockerCleanupRunPreflightOptions } from "./cleanupRunDockerPreflight.js";
3
+ import { type DockerSecretExecutor } from "./dockerSecretsProvider.js";
4
+ import { type DockerResourceExecutor } from "./dockerResourcesProvider.js";
5
+ import { type DockerWorldServiceExecutor } from "./dockerWorldServiceProvider.js";
6
+ import { type DockerOrganizationAttachmentExecutor } from "./organizationAttachmentProvider.js";
7
+ export interface DockerCleanupRunOptions extends DockerCleanupRunPreflightOptions {
8
+ readonly attachmentExecutor: DockerOrganizationAttachmentExecutor;
9
+ readonly context: string;
10
+ readonly resourceExecutor: DockerResourceExecutor;
11
+ readonly secretExecutor: DockerSecretExecutor;
12
+ readonly signal?: AbortSignal;
13
+ readonly timeoutMs: number;
14
+ readonly worldExecutor: DockerWorldServiceExecutor;
15
+ }
16
+ export declare const createDockerCleanupRunOperations: (rawOptions: DockerCleanupRunOptions) => CleanupRunOperations;
@@ -0,0 +1,66 @@
1
+ import { SpawnfileError } from "../shared/index.js";
2
+ import { createCleanupRunOperations } from "./cleanupRun.js";
3
+ import { prepareDockerCleanupRun } from "./cleanupRunDockerPreflight.js";
4
+ import { cleanupExactDockerSecretBindings } from "./dockerSecretsLifecycle.js";
5
+ import { proveExactDockerResourcePresent, removeExactDockerResource } from "./dockerResources.js";
6
+ import { removeExactDockerWorldService } from "./dockerWorldServiceLifecycle.js";
7
+ import { detachExactOrganizationAttachment } from "./organizationAttachmentLifecycle.js";
8
+ const CLEANUP_ERROR = "Target cleanup failed";
9
+ const CONTEXT = /^[a-z][a-z0-9_-]{0,63}$/u;
10
+ const fail = () => {
11
+ throw new SpawnfileError("runtime_error", CLEANUP_ERROR);
12
+ };
13
+ const validateOptions = (raw) => {
14
+ if (!raw || typeof raw.context !== "string" || !CONTEXT.test(raw.context)
15
+ || !Number.isSafeInteger(raw.timeoutMs) || raw.timeoutMs < 1
16
+ || raw.timeoutMs > 120_000 || typeof raw.attachmentExecutor !== "function"
17
+ || typeof raw.resourceExecutor !== "function"
18
+ || typeof raw.secretExecutor !== "function"
19
+ || typeof raw.worldExecutor !== "function" || !raw.journal
20
+ || typeof raw.journal.read !== "function"
21
+ || typeof raw.journal.resolveCompletedReceipt !== "function"
22
+ || !raw.attachmentStore
23
+ || typeof raw.attachmentStore.loadAttachment !== "function"
24
+ || !raw.worldStore || typeof raw.worldStore.loadService !== "function"
25
+ || !raw.evidenceExportStore
26
+ || typeof raw.evidenceExportStore.loadAdmission !== "function"
27
+ || typeof raw.evidenceExportStore.loadIndex !== "function")
28
+ return fail();
29
+ return raw;
30
+ };
31
+ export const createDockerCleanupRunOperations = (rawOptions) => {
32
+ const options = validateOptions(rawOptions);
33
+ const resourceOptions = {
34
+ context: options.context,
35
+ executor: options.resourceExecutor,
36
+ signal: options.signal,
37
+ timeoutMs: options.timeoutMs
38
+ };
39
+ return createCleanupRunOperations({
40
+ journal: options.journal,
41
+ prepare: async ({ request }) => prepareDockerCleanupRun(request, options),
42
+ steps: {
43
+ detachAttachment: async ({ authority }) => detachExactOrganizationAttachment(authority, {
44
+ context: options.context,
45
+ executor: options.attachmentExecutor,
46
+ signal: options.signal,
47
+ timeoutMs: options.timeoutMs
48
+ }),
49
+ preserveEvidence: async ({ authority }) => proveExactDockerResourcePresent(authority, resourceOptions),
50
+ removeDataNetwork: async ({ authority }) => removeExactDockerResource(authority, resourceOptions),
51
+ removeEvidence: async ({ authority }) => removeExactDockerResource(authority, resourceOptions),
52
+ removeSecrets: async ({ authority }) => cleanupExactDockerSecretBindings(authority, {
53
+ context: options.context,
54
+ executor: options.secretExecutor,
55
+ signal: options.signal,
56
+ timeoutMs: options.timeoutMs
57
+ }),
58
+ removeWorld: async ({ authority }) => removeExactDockerWorldService(authority, {
59
+ context: options.context,
60
+ executor: options.worldExecutor,
61
+ signal: options.signal,
62
+ timeoutMs: options.timeoutMs
63
+ })
64
+ }
65
+ });
66
+ };
@@ -0,0 +1,67 @@
1
+ import { type OpaqueTargetHandle } from "./contracts.js";
2
+ import { type DockerResourceExecutor, type DockerResourceSpec } from "./dockerResourcesProvider.js";
3
+ import { type WorldServiceAuthorityStore } from "./dockerWorldServiceStore.js";
4
+ import { type OrganizationAttachmentAuthorityStore } from "./organizationAttachmentStore.js";
5
+ import { type EvidenceExportAuthorityStore } from "./evidenceExportStore.js";
6
+ export declare const canonicalCleanupBindings: (input: {
7
+ readonly attachmentOperationHandle: OpaqueTargetHandle;
8
+ readonly attachmentRequestDigest: string;
9
+ readonly descriptorDigest: string;
10
+ readonly evidence: DockerResourceSpec;
11
+ readonly evidenceOperationHandle: OpaqueTargetHandle;
12
+ readonly evidenceRequestDigest: string;
13
+ readonly network: DockerResourceSpec;
14
+ readonly networkOperationHandle: OpaqueTargetHandle;
15
+ readonly networkRequestDigest: string;
16
+ readonly runId: string;
17
+ readonly secretHandle: OpaqueTargetHandle;
18
+ readonly selected: {
19
+ readonly fingerprint: string;
20
+ readonly handle: OpaqueTargetHandle;
21
+ };
22
+ readonly worldOperationHandle: OpaqueTargetHandle;
23
+ readonly worldRequestDigest: string;
24
+ }) => {
25
+ attachment: import("./organizationAttachmentStore.js").OrganizationAttachmentBinding;
26
+ world: import("./dockerWorldServiceStore.js").WorldServiceBinding;
27
+ };
28
+ export declare const canonicalCleanupScenario: (input: Parameters<typeof canonicalCleanupBindings>[0]) => {
29
+ attachmentExecutor: (_file: string, args: string[]) => Promise<{
30
+ stderr: string;
31
+ stdout: string;
32
+ }>;
33
+ bindings: {
34
+ attachment: import("./organizationAttachmentStore.js").OrganizationAttachmentBinding;
35
+ world: import("./dockerWorldServiceStore.js").WorldServiceBinding;
36
+ };
37
+ calls: {
38
+ attachment: string[][];
39
+ secret: string[][];
40
+ world: string[][];
41
+ };
42
+ drift: {
43
+ attachment: import("./organizationAttachmentStore.js").OrganizationAttachmentBinding;
44
+ world: import("./dockerWorldServiceStore.js").WorldServiceBinding;
45
+ };
46
+ secretExecutor: (_file: string, args: string[]) => Promise<never>;
47
+ worldExecutor: (_file: string, args: string[]) => Promise<never>;
48
+ };
49
+ export declare const cleanupResourceExecutor: (specs: DockerResourceSpec[]) => {
50
+ calls: string[][];
51
+ executor: DockerResourceExecutor;
52
+ present: Set<string>;
53
+ };
54
+ export declare const cleanupAuthorityStores: (input?: {
55
+ readonly admission?: unknown;
56
+ readonly attachment?: unknown;
57
+ readonly index?: unknown;
58
+ readonly world?: unknown;
59
+ }) => {
60
+ attachmentStore: OrganizationAttachmentAuthorityStore;
61
+ evidenceExportStore: EvidenceExportAuthorityStore;
62
+ loads: {
63
+ attachment: number;
64
+ world: number;
65
+ };
66
+ worldStore: WorldServiceAuthorityStore;
67
+ };