spawnfile 0.1.12 → 0.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (620) hide show
  1. package/README.md +58 -12
  2. package/dist/audit/auditCli.d.ts +19 -0
  3. package/dist/audit/auditCli.js +63 -0
  4. package/dist/audit/checks.d.ts +100 -0
  5. package/dist/audit/checks.js +279 -0
  6. package/dist/audit/checksShared.d.ts +74 -0
  7. package/dist/audit/checksShared.js +37 -0
  8. package/dist/audit/generateAudit.d.ts +19 -0
  9. package/dist/audit/generateAudit.js +122 -0
  10. package/dist/audit/index.d.ts +4 -0
  11. package/dist/audit/index.js +4 -0
  12. package/dist/audit/readAudit.d.ts +50 -0
  13. package/dist/audit/readAudit.js +59 -0
  14. package/dist/audit/types.d.ts +40 -0
  15. package/dist/audit/types.js +8 -0
  16. package/dist/auth/credentialEnvFile.d.ts +11 -0
  17. package/dist/auth/credentialEnvFile.js +60 -0
  18. package/dist/auth/credentialProvisioning.d.ts +15 -0
  19. package/dist/auth/credentialProvisioning.js +75 -0
  20. package/dist/auth/credentialProvisioningReceipt.d.ts +28 -0
  21. package/dist/auth/credentialProvisioningReceipt.js +70 -0
  22. package/dist/auth/credentialProvisioningRequest.d.ts +51 -0
  23. package/dist/auth/credentialProvisioningRequest.js +169 -0
  24. package/dist/auth/credentialWorldBindings.d.ts +21 -0
  25. package/dist/auth/credentialWorldBindings.js +104 -0
  26. package/dist/auth/index.d.ts +7 -0
  27. package/dist/auth/index.js +7 -0
  28. package/dist/auth/paths.d.ts +11 -0
  29. package/dist/auth/paths.js +21 -0
  30. package/dist/auth/runtimeCredentials.js +18 -2
  31. package/dist/auth/targetSecretSourceAuthor.d.ts +18 -0
  32. package/dist/auth/targetSecretSourceAuthor.js +52 -0
  33. package/dist/auth/targetSecretSourceFsPublish.d.ts +15 -0
  34. package/dist/auth/targetSecretSourceFsPublish.js +49 -0
  35. package/dist/auth/targetSecretSourceFsPublishImmutable.d.ts +16 -0
  36. package/dist/auth/targetSecretSourceFsPublishImmutable.js +435 -0
  37. package/dist/auth/targetSecretSourceFsRead.d.ts +14 -0
  38. package/dist/auth/targetSecretSourceFsRead.js +198 -0
  39. package/dist/auth/targetSecretSourceGrant.d.ts +16 -0
  40. package/dist/auth/targetSecretSourceGrant.js +99 -0
  41. package/dist/auth/targetSecretSourceGrantRecords.d.ts +84 -0
  42. package/dist/auth/targetSecretSourceGrantRecords.js +214 -0
  43. package/dist/auth/targetSecretSourceLifecycle.d.ts +30 -0
  44. package/dist/auth/targetSecretSourceLifecycle.js +52 -0
  45. package/dist/auth/targetSecretSourceOwnerEntropy.d.ts +6 -0
  46. package/dist/auth/targetSecretSourceOwnerEntropy.js +28 -0
  47. package/dist/auth/targetSecretSourceRecordCommon.d.ts +14 -0
  48. package/dist/auth/targetSecretSourceRecordCommon.js +100 -0
  49. package/dist/auth/targetSecretSourceRecordPublish.d.ts +10 -0
  50. package/dist/auth/targetSecretSourceRecordPublish.js +104 -0
  51. package/dist/auth/targetSecretSourceResolver.d.ts +10 -0
  52. package/dist/auth/targetSecretSourceResolver.js +137 -0
  53. package/dist/auth/targetSecretSourceRevoke.d.ts +20 -0
  54. package/dist/auth/targetSecretSourceRevoke.js +92 -0
  55. package/dist/auth/targetSecretSourceRotate.d.ts +19 -0
  56. package/dist/auth/targetSecretSourceRotate.js +121 -0
  57. package/dist/auth/targetSecretSourceVersionRecords.d.ts +49 -0
  58. package/dist/auth/targetSecretSourceVersionRecords.js +166 -0
  59. package/dist/cli/artifactsCommands.d.ts +27 -0
  60. package/dist/cli/artifactsCommands.js +132 -0
  61. package/dist/cli/authCommands.d.ts +5 -0
  62. package/dist/cli/authCommands.js +221 -0
  63. package/dist/cli/compileBuildCommands.d.ts +3 -0
  64. package/dist/cli/compileBuildCommands.js +35 -0
  65. package/dist/cli/containerBundleCommand.d.ts +6 -0
  66. package/dist/cli/containerBundleCommand.js +116 -0
  67. package/dist/cli/devCommands.d.ts +3 -0
  68. package/dist/cli/devCommands.js +115 -0
  69. package/dist/cli/downCommand.d.ts +25 -0
  70. package/dist/cli/downCommand.js +134 -0
  71. package/dist/cli/index.js +6 -3
  72. package/dist/cli/lifecycleCommands.d.ts +1 -1
  73. package/dist/cli/lifecycleCommands.js +11 -179
  74. package/dist/cli/lifecycleMachine.d.ts +19 -0
  75. package/dist/cli/lifecycleMachine.js +78 -0
  76. package/dist/cli/lifecyclePlan.d.ts +35 -0
  77. package/dist/cli/lifecyclePlan.js +240 -0
  78. package/dist/cli/lifecyclePlanningCommands.d.ts +3 -0
  79. package/dist/cli/lifecyclePlanningCommands.js +30 -0
  80. package/dist/cli/runCli.d.ts +15 -2
  81. package/dist/cli/runCli.js +31 -71
  82. package/dist/cli/runPublishCommands.d.ts +3 -0
  83. package/dist/cli/runPublishCommands.js +70 -0
  84. package/dist/cli/statusCommand.d.ts +3 -32
  85. package/dist/cli/statusCommand.js +37 -233
  86. package/dist/cli/statusCommandLive.d.ts +20 -0
  87. package/dist/cli/statusCommandLive.js +188 -0
  88. package/dist/cli/statusCommandOptions.d.ts +40 -0
  89. package/dist/cli/statusCommandOptions.js +42 -0
  90. package/dist/cli/targetCliRoute.d.ts +2 -0
  91. package/dist/cli/targetCliRoute.js +30 -0
  92. package/dist/cli/targetCommands.d.ts +33 -0
  93. package/dist/cli/targetCommands.js +257 -0
  94. package/dist/cli/targetComposedPreparationCommand.d.ts +6 -0
  95. package/dist/cli/targetComposedPreparationCommand.js +39 -0
  96. package/dist/cli/targetDefaultArtifactAuthority.d.ts +5 -0
  97. package/dist/cli/targetDefaultArtifactAuthority.js +28 -0
  98. package/dist/cli/targetDefaultAuthorities.d.ts +53 -0
  99. package/dist/cli/targetDefaultAuthorities.js +210 -0
  100. package/dist/cli/targetDefaultConfig.d.ts +68 -0
  101. package/dist/cli/targetDefaultConfig.js +317 -0
  102. package/dist/cli/targetDefaultConfigStdin.d.ts +13 -0
  103. package/dist/cli/targetDefaultConfigStdin.js +215 -0
  104. package/dist/cli/targetDefaultEnvelope.d.ts +1 -0
  105. package/dist/cli/targetDefaultEnvelope.js +13 -0
  106. package/dist/cli/targetDefaultHandlerFactory.d.ts +28 -0
  107. package/dist/cli/targetDefaultHandlerFactory.js +247 -0
  108. package/dist/cli/targetDefaultHandlers.d.ts +21 -0
  109. package/dist/cli/targetDefaultHandlers.js +72 -0
  110. package/dist/cli/targetDefaultJournalAuthority.d.ts +35 -0
  111. package/dist/cli/targetDefaultJournalAuthority.js +135 -0
  112. package/dist/cli/targetDefaultWorldClock.d.ts +4 -0
  113. package/dist/cli/targetDefaultWorldClock.js +14 -0
  114. package/dist/cli/targetDefaultWorldQueries.d.ts +5 -0
  115. package/dist/cli/targetDefaultWorldQueries.js +11 -0
  116. package/dist/cli/targetDefaultWorldReadiness.d.ts +4 -0
  117. package/dist/cli/targetDefaultWorldReadiness.js +17 -0
  118. package/dist/cli/targetEvidenceHelperResolution.d.ts +14 -0
  119. package/dist/cli/targetEvidenceHelperResolution.js +23 -0
  120. package/dist/cli/targetLookupCli.d.ts +3 -0
  121. package/dist/cli/targetLookupCli.js +31 -0
  122. package/dist/cli/targetLookupCommands.d.ts +12 -0
  123. package/dist/cli/targetLookupCommands.js +69 -0
  124. package/dist/cli/targetOperationDispatch.d.ts +58 -0
  125. package/dist/cli/targetOperationDispatch.js +21 -0
  126. package/dist/cli/targetReceiptOutput.d.ts +14 -0
  127. package/dist/cli/targetReceiptOutput.js +21 -0
  128. package/dist/cli/targetRequestFile.d.ts +14 -0
  129. package/dist/cli/targetRequestFile.js +63 -0
  130. package/dist/cli/targetSecretSourceInput.d.ts +28 -0
  131. package/dist/cli/targetSecretSourceInput.js +121 -0
  132. package/dist/cli/targetWorldClockCommand.d.ts +10 -0
  133. package/dist/cli/targetWorldClockCommand.js +42 -0
  134. package/dist/cli/targetWorldClockCrossProcess.test-helper.d.ts +13 -0
  135. package/dist/cli/targetWorldClockCrossProcess.test-helper.js +109 -0
  136. package/dist/cli/targetWorldReadinessCommand.d.ts +10 -0
  137. package/dist/cli/targetWorldReadinessCommand.js +43 -0
  138. package/dist/cli/upCommand.d.ts +3 -0
  139. package/dist/cli/upCommand.js +133 -0
  140. package/dist/cli/upImageCommand.d.ts +11 -0
  141. package/dist/cli/upImageCommand.js +41 -0
  142. package/dist/cli/upLifecycleInvocation.d.ts +41 -0
  143. package/dist/cli/upLifecycleInvocation.js +48 -0
  144. package/dist/cli/upLifecycleRecovery.d.ts +4 -0
  145. package/dist/cli/upLifecycleRecovery.js +53 -0
  146. package/dist/compiler/agentNodeMerge.d.ts +2 -0
  147. package/dist/compiler/agentNodeMerge.js +79 -0
  148. package/dist/compiler/agentSurfaces.js +11 -1
  149. package/dist/compiler/buildCompilePlan.js +17 -0
  150. package/dist/compiler/buildCompilePlanAgent.d.ts +11 -0
  151. package/dist/compiler/buildCompilePlanAgent.js +56 -0
  152. package/dist/compiler/buildCompilePlanTeams.d.ts +1 -0
  153. package/dist/compiler/buildCompilePlanTeams.js +4 -1
  154. package/dist/compiler/buildCompilePlanTraversal.js +75 -82
  155. package/dist/compiler/buildProject.d.ts +20 -1
  156. package/dist/compiler/buildProject.js +121 -7
  157. package/dist/compiler/compilePlanHelpers.js +2 -0
  158. package/dist/compiler/compileProject.d.ts +15 -0
  159. package/dist/compiler/compileProject.js +29 -75
  160. package/dist/compiler/compileProjectPolicy.d.ts +5 -0
  161. package/dist/compiler/compileProjectPolicy.js +21 -0
  162. package/dist/compiler/compileProjectReports.d.ts +9 -0
  163. package/dist/compiler/compileProjectReports.js +52 -0
  164. package/dist/compiler/containerArtifactSummaries.d.ts +7 -0
  165. package/dist/compiler/containerArtifactSummaries.js +138 -0
  166. package/dist/compiler/containerArtifacts.d.ts +10 -0
  167. package/dist/compiler/containerArtifacts.js +126 -125
  168. package/dist/compiler/containerArtifactsPlans.d.ts +5 -3
  169. package/dist/compiler/containerArtifactsPlans.js +31 -118
  170. package/dist/compiler/containerArtifactsRender.d.ts +3 -1
  171. package/dist/compiler/containerArtifactsRender.js +40 -81
  172. package/dist/compiler/containerArtifactsTypes.d.ts +12 -0
  173. package/dist/compiler/containerConfigEnvRender.d.ts +3 -0
  174. package/dist/compiler/containerConfigEnvRender.js +54 -0
  175. package/dist/compiler/containerEntrypointRender.d.ts +1 -0
  176. package/dist/compiler/containerEntrypointRender.js +60 -53
  177. package/dist/compiler/containerEntrypointShell.d.ts +5 -0
  178. package/dist/compiler/containerEntrypointShell.js +29 -0
  179. package/dist/compiler/containerPackageOverrides.d.ts +27 -0
  180. package/dist/compiler/containerPackageOverrides.js +63 -0
  181. package/dist/compiler/containerPackageRender.d.ts +15 -0
  182. package/dist/compiler/containerPackageRender.js +63 -0
  183. package/dist/compiler/containerTargetPlanResolution.d.ts +20 -0
  184. package/dist/compiler/containerTargetPlanResolution.js +97 -0
  185. package/dist/compiler/containerTargetResources.js +3 -1
  186. package/dist/compiler/daimonTelemetryArtifacts.d.ts +22 -0
  187. package/dist/compiler/daimonTelemetryArtifacts.js +61 -0
  188. package/dist/compiler/dockerBuildContext.d.ts +16 -0
  189. package/dist/compiler/dockerBuildContext.js +159 -0
  190. package/dist/compiler/dockerBuildSkip.d.ts +30 -0
  191. package/dist/compiler/dockerBuildSkip.js +81 -0
  192. package/dist/compiler/index.d.ts +4 -0
  193. package/dist/compiler/index.js +4 -0
  194. package/dist/compiler/memoryArtifacts.d.ts +26 -0
  195. package/dist/compiler/memoryArtifacts.js +134 -0
  196. package/dist/compiler/memoryResolution.d.ts +4 -0
  197. package/dist/compiler/memoryResolution.js +147 -0
  198. package/dist/compiler/modelEnv.d.ts +2 -0
  199. package/dist/compiler/modelEnv.js +6 -0
  200. package/dist/compiler/moltnetAllowedWakeSendersValidation.d.ts +2 -0
  201. package/dist/compiler/moltnetAllowedWakeSendersValidation.js +42 -0
  202. package/dist/compiler/moltnetArtifactPaths.d.ts +26 -0
  203. package/dist/compiler/moltnetArtifactPaths.js +49 -0
  204. package/dist/compiler/moltnetArtifactTypes.d.ts +46 -0
  205. package/dist/compiler/moltnetArtifactTypes.js +1 -0
  206. package/dist/compiler/moltnetArtifacts.d.ts +2 -40
  207. package/dist/compiler/moltnetArtifacts.js +56 -95
  208. package/dist/compiler/moltnetBinaries.d.ts +21 -1
  209. package/dist/compiler/moltnetBinaries.js +156 -28
  210. package/dist/compiler/moltnetClientConfig.js +18 -2
  211. package/dist/compiler/moltnetConfigLowering.d.ts +16 -1
  212. package/dist/compiler/moltnetConfigLowering.js +67 -5
  213. package/dist/compiler/moltnetExternalParticipantArtifact.d.ts +38 -0
  214. package/dist/compiler/moltnetExternalParticipantArtifact.js +188 -0
  215. package/dist/compiler/moltnetNodeConfig.js +7 -2
  216. package/dist/compiler/moltnetReleaseAuthority.d.ts +17 -0
  217. package/dist/compiler/moltnetReleaseAuthority.js +73 -0
  218. package/dist/compiler/moltnetReleaseDownload.d.ts +12 -0
  219. package/dist/compiler/moltnetReleaseDownload.js +85 -0
  220. package/dist/compiler/moltnetRepresentativeResolution.d.ts +1 -0
  221. package/dist/compiler/moltnetRepresentativeResolution.js +16 -2
  222. package/dist/compiler/moltnetResolution.js +72 -20
  223. package/dist/compiler/moltnetRoomMemberships.js +37 -9
  224. package/dist/compiler/moltnetRuntimeConfig.js +11 -0
  225. package/dist/compiler/moltnetServerPlans.d.ts +9 -0
  226. package/dist/compiler/moltnetServerPlans.js +132 -0
  227. package/dist/compiler/organizationIdentity.d.ts +27 -0
  228. package/dist/compiler/organizationIdentity.js +297 -0
  229. package/dist/compiler/organizationReadyEvidence.d.ts +49 -0
  230. package/dist/compiler/organizationReadyEvidence.js +261 -0
  231. package/dist/compiler/projectManifestGraph.d.ts +4 -0
  232. package/dist/compiler/projectManifestGraph.js +24 -0
  233. package/dist/compiler/runProject.d.ts +4 -0
  234. package/dist/compiler/runProject.js +37 -22
  235. package/dist/compiler/runProjectAuth.d.ts +7 -1
  236. package/dist/compiler/runProjectAuth.js +87 -9
  237. package/dist/compiler/runProjectDocker.d.ts +7 -0
  238. package/dist/compiler/runProjectDocker.js +187 -19
  239. package/dist/compiler/runProjectLifecycle.d.ts +7 -0
  240. package/dist/compiler/runProjectLifecycle.js +40 -0
  241. package/dist/compiler/syncProjectAuth.js +4 -1
  242. package/dist/compiler/teamContextActiveEnvironments.d.ts +13 -0
  243. package/dist/compiler/teamContextActiveEnvironments.js +255 -0
  244. package/dist/compiler/teamContextSupport.js +32 -40
  245. package/dist/compiler/teamContextTypes.d.ts +2 -0
  246. package/dist/compiler/types.d.ts +82 -1
  247. package/dist/compiler/upProject.d.ts +5 -0
  248. package/dist/compiler/upProject.js +257 -20
  249. package/dist/compiler/upReceipt.d.ts +36 -0
  250. package/dist/compiler/upReceipt.js +82 -0
  251. package/dist/compiler/updateProjectModels.js +42 -60
  252. package/dist/compiler/updateProjectRuntime.js +22 -35
  253. package/dist/compiler/updateProjectSurfaces.js +53 -47
  254. package/dist/compiler/worldBindings.d.ts +39 -0
  255. package/dist/compiler/worldBindings.js +247 -0
  256. package/dist/compiler/worldBindingsFile.d.ts +5 -0
  257. package/dist/compiler/worldBindingsFile.js +162 -0
  258. package/dist/deployment/artifactsExport.d.ts +49 -0
  259. package/dist/deployment/artifactsExport.js +217 -0
  260. package/dist/deployment/artifactsExportDocker.d.ts +48 -0
  261. package/dist/deployment/artifactsExportDocker.js +91 -0
  262. package/dist/deployment/artifactsExportPlan.d.ts +24 -0
  263. package/dist/deployment/artifactsExportPlan.js +135 -0
  264. package/dist/deployment/artifactsExportTypes.d.ts +50 -0
  265. package/dist/deployment/artifactsExportTypes.js +52 -0
  266. package/dist/deployment/buildImageCacheStore.d.ts +23 -0
  267. package/dist/deployment/buildImageCacheStore.js +54 -0
  268. package/dist/deployment/deploymentLifecycleCorrelation.d.ts +11 -0
  269. package/dist/deployment/deploymentLifecycleCorrelation.js +33 -0
  270. package/dist/deployment/dockerInspect.d.ts +9 -0
  271. package/dist/deployment/dockerInspect.js +24 -1
  272. package/dist/deployment/dockerLabels.d.ts +2 -0
  273. package/dist/deployment/dockerLabels.js +2 -0
  274. package/dist/deployment/dockerLogs.js +2 -10
  275. package/dist/deployment/dockerManager.d.ts +51 -0
  276. package/dist/deployment/dockerManager.js +118 -1
  277. package/dist/deployment/dockerProbeGateway.js +64 -5
  278. package/dist/deployment/dockerRecover.d.ts +17 -0
  279. package/dist/deployment/dockerRecover.js +137 -0
  280. package/dist/deployment/dockerTeardown.d.ts +32 -0
  281. package/dist/deployment/dockerTeardown.js +61 -0
  282. package/dist/deployment/downDeployment.d.ts +34 -0
  283. package/dist/deployment/downDeployment.js +147 -0
  284. package/dist/deployment/downReceiptTypes.d.ts +21 -0
  285. package/dist/deployment/downReceiptTypes.js +30 -0
  286. package/dist/deployment/index.d.ts +17 -0
  287. package/dist/deployment/index.js +18 -0
  288. package/dist/deployment/lifecycleCompletion.d.ts +37 -0
  289. package/dist/deployment/lifecycleCompletion.js +236 -0
  290. package/dist/deployment/lifecycleCompletionContracts.d.ts +158 -0
  291. package/dist/deployment/lifecycleCompletionContracts.js +106 -0
  292. package/dist/deployment/lifecycleCompletionHeartbeat.d.ts +2 -0
  293. package/dist/deployment/lifecycleCompletionHeartbeat.js +50 -0
  294. package/dist/deployment/lifecycleCompletionLookup.d.ts +18 -0
  295. package/dist/deployment/lifecycleCompletionLookup.js +88 -0
  296. package/dist/deployment/lifecycleCompletionOwner.d.ts +8 -0
  297. package/dist/deployment/lifecycleCompletionOwner.js +31 -0
  298. package/dist/deployment/lifecycleCompletionParsing.d.ts +12 -0
  299. package/dist/deployment/lifecycleCompletionParsing.js +108 -0
  300. package/dist/deployment/lifecycleCompletionPaths.d.ts +9 -0
  301. package/dist/deployment/lifecycleCompletionPaths.js +16 -0
  302. package/dist/deployment/lifecycleCompletionPublication.d.ts +5 -0
  303. package/dist/deployment/lifecycleCompletionPublication.js +35 -0
  304. package/dist/deployment/lifecycleCompletionRecovery.d.ts +21 -0
  305. package/dist/deployment/lifecycleCompletionRecovery.js +56 -0
  306. package/dist/deployment/lifecycleCompletionRoot.d.ts +21 -0
  307. package/dist/deployment/lifecycleCompletionRoot.js +243 -0
  308. package/dist/deployment/lifecycleCompletionStore.d.ts +6 -0
  309. package/dist/deployment/lifecycleCompletionStore.js +151 -0
  310. package/dist/deployment/organizationHandoffAuthorityFsClient.d.ts +17 -0
  311. package/dist/deployment/organizationHandoffAuthorityFsClient.js +132 -0
  312. package/dist/deployment/organizationHandoffAuthorityFsWorker.d.ts +1 -0
  313. package/dist/deployment/organizationHandoffAuthorityFsWorker.js +285 -0
  314. package/dist/deployment/organizationHandoffAuthorityFsWorkerParent.fixture.d.ts +1 -0
  315. package/dist/deployment/organizationHandoffAuthorityFsWorkerParent.fixture.js +26 -0
  316. package/dist/deployment/organizationHandoffAuthorityStore.d.ts +41 -0
  317. package/dist/deployment/organizationHandoffAuthorityStore.js +348 -0
  318. package/dist/deployment/organizationHandoffAuthorityTypes.d.ts +76 -0
  319. package/dist/deployment/organizationHandoffAuthorityTypes.js +148 -0
  320. package/dist/deployment/organizationHandoffTypes.d.ts +29 -0
  321. package/dist/deployment/organizationHandoffTypes.js +80 -0
  322. package/dist/deployment/organizationReady.d.ts +52 -0
  323. package/dist/deployment/organizationReady.js +200 -0
  324. package/dist/deployment/privateArtifactsExport.d.ts +18 -0
  325. package/dist/deployment/privateArtifactsExport.js +80 -0
  326. package/dist/deployment/providerRuntimeBoundaryScanner.test-helper.d.ts +8 -0
  327. package/dist/deployment/providerRuntimeBoundaryScanner.test-helper.js +60 -0
  328. package/dist/deployment/record.d.ts +26 -1
  329. package/dist/deployment/record.js +49 -4
  330. package/dist/deployment/simfileFixtureBoundary.test-helper.d.ts +8 -0
  331. package/dist/deployment/simfileFixtureBoundary.test-helper.js +103 -0
  332. package/dist/deployment/target.d.ts +1 -35
  333. package/dist/deployment/target.js +1 -96
  334. package/dist/deployment/upReceiptTypes.d.ts +111 -0
  335. package/dist/deployment/upReceiptTypes.js +164 -0
  336. package/dist/dev/activity.d.ts +14 -0
  337. package/dist/dev/activity.js +48 -0
  338. package/dist/dev/docker.d.ts +16 -0
  339. package/dist/dev/docker.js +71 -0
  340. package/dist/dev/index.d.ts +2 -0
  341. package/dist/dev/index.js +2 -0
  342. package/dist/dev/project.d.ts +35 -0
  343. package/dist/dev/project.js +170 -0
  344. package/dist/distribution/buildDistributionReport.d.ts +2 -1
  345. package/dist/distribution/buildDistributionReport.js +2 -1
  346. package/dist/distribution/distributionReportSchema.d.ts +5 -0
  347. package/dist/distribution/distributionReportSchema.js +7 -2
  348. package/dist/distribution/index.d.ts +2 -2
  349. package/dist/distribution/index.js +1 -1
  350. package/dist/distribution/types.d.ts +7 -0
  351. package/dist/distribution/types.js +1 -0
  352. package/dist/filesystem/paths.js +10 -1
  353. package/dist/ledger/causalConformanceCli.d.ts +1 -0
  354. package/dist/ledger/causalConformanceCli.js +41 -0
  355. package/dist/ledger/causeNamespace.d.ts +8 -0
  356. package/dist/ledger/causeNamespace.js +24 -0
  357. package/dist/ledger/conformance.d.ts +83 -0
  358. package/dist/ledger/conformance.js +259 -0
  359. package/dist/ledger/emitters.d.ts +76 -0
  360. package/dist/ledger/emitters.js +188 -0
  361. package/dist/ledger/index.d.ts +4 -0
  362. package/dist/ledger/index.js +4 -0
  363. package/dist/ledger/principal.d.ts +96 -0
  364. package/dist/ledger/principal.js +121 -0
  365. package/dist/manifest/externalParticipantSchemas.d.ts +18 -0
  366. package/dist/manifest/externalParticipantSchemas.js +17 -0
  367. package/dist/manifest/index.d.ts +1 -0
  368. package/dist/manifest/index.js +1 -0
  369. package/dist/manifest/inlineAgentMember.d.ts +2 -0
  370. package/dist/manifest/inlineAgentMember.js +9 -0
  371. package/dist/manifest/loadManifest.js +14 -8
  372. package/dist/manifest/mcpSchemas.d.ts +17 -0
  373. package/dist/manifest/mcpSchemas.js +41 -0
  374. package/dist/manifest/memorySchemas.d.ts +245 -0
  375. package/dist/manifest/memorySchemas.js +148 -0
  376. package/dist/manifest/renderSpawnfile.js +22 -131
  377. package/dist/manifest/renderSpawnfileNetworks.js +9 -2
  378. package/dist/manifest/renderSpawnfileSurfaces.d.ts +2 -0
  379. package/dist/manifest/renderSpawnfileSurfaces.js +134 -0
  380. package/dist/manifest/schemas.d.ts +1868 -99
  381. package/dist/manifest/schemas.js +78 -32
  382. package/dist/manifest/surfaceSchemas.d.ts +17 -0
  383. package/dist/manifest/surfaceSchemas.js +24 -1
  384. package/dist/manifest/teamNetworkAccessSchemas.d.ts +1 -1
  385. package/dist/manifest/teamNetworkAuthSchemas.d.ts +48 -0
  386. package/dist/manifest/teamNetworkAuthSchemas.js +103 -0
  387. package/dist/manifest/teamNetworkSchemas.d.ts +8 -187
  388. package/dist/manifest/teamNetworkSchemas.js +3 -317
  389. package/dist/manifest/teamNetworkServerSchemas.d.ts +150 -0
  390. package/dist/manifest/teamNetworkServerSchemas.js +199 -0
  391. package/dist/ownership/siblingBuildFreshness.d.ts +20 -0
  392. package/dist/ownership/siblingBuildFreshness.js +20 -0
  393. package/dist/ownership/simfileRunOperatorInputs.d.ts +103 -0
  394. package/dist/ownership/simfileRunOperatorInputs.js +139 -0
  395. package/dist/report/types.d.ts +142 -0
  396. package/dist/runtime/common.d.ts +37 -0
  397. package/dist/runtime/common.js +56 -1
  398. package/dist/runtime/container.d.ts +29 -1
  399. package/dist/runtime/container.js +127 -11
  400. package/dist/runtime/containerPackageOverrides.d.ts +37 -0
  401. package/dist/runtime/containerPackageOverrides.js +33 -0
  402. package/dist/runtime/index.d.ts +2 -0
  403. package/dist/runtime/index.js +2 -0
  404. package/dist/runtime/install.d.ts +1 -1
  405. package/dist/runtime/install.js +43 -1
  406. package/dist/runtime/mnemeMcp.d.ts +15 -0
  407. package/dist/runtime/mnemeMcp.js +109 -0
  408. package/dist/runtime/openclaw/adapter.js +15 -4
  409. package/dist/runtime/openclaw/mcp.d.ts +10 -0
  410. package/dist/runtime/openclaw/mcp.js +69 -0
  411. package/dist/runtime/openclaw/runAuth.js +2 -2
  412. package/dist/runtime/openclaw/scaffold.js +1 -1
  413. package/dist/runtime/openclaw/schedules.d.ts +38 -0
  414. package/dist/runtime/openclaw/schedules.js +74 -0
  415. package/dist/runtime/pi/adapter.d.ts +4 -0
  416. package/dist/runtime/pi/adapter.js +231 -0
  417. package/dist/runtime/pi/appActivitySource.d.ts +1 -0
  418. package/dist/runtime/pi/appActivitySource.js +199 -0
  419. package/dist/runtime/pi/appAgentConfig.d.ts +11 -0
  420. package/dist/runtime/pi/appAgentConfig.js +264 -0
  421. package/dist/runtime/pi/appCliEnginesSource.d.ts +1 -0
  422. package/dist/runtime/pi/appCliEnginesSource.js +183 -0
  423. package/dist/runtime/pi/appCliSource.d.ts +1 -0
  424. package/dist/runtime/pi/appCliSource.js +353 -0
  425. package/dist/runtime/pi/appControlSource.d.ts +1 -0
  426. package/dist/runtime/pi/appControlSource.js +390 -0
  427. package/dist/runtime/pi/appControlWakeIdentitySource.d.ts +1 -0
  428. package/dist/runtime/pi/appControlWakeIdentitySource.js +19 -0
  429. package/dist/runtime/pi/appCoreSource.d.ts +4 -0
  430. package/dist/runtime/pi/appCoreSource.js +244 -0
  431. package/dist/runtime/pi/appPreludeSource.d.ts +1 -0
  432. package/dist/runtime/pi/appPreludeSource.js +191 -0
  433. package/dist/runtime/pi/appScheduleSource.d.ts +1 -0
  434. package/dist/runtime/pi/appScheduleSource.js +80 -0
  435. package/dist/runtime/pi/appScriptedEngine.d.ts +31 -0
  436. package/dist/runtime/pi/appScriptedEngine.js +42 -0
  437. package/dist/runtime/pi/appSource.d.ts +4 -0
  438. package/dist/runtime/pi/appSource.js +12 -0
  439. package/dist/runtime/pi/appTemplate.d.ts +14 -0
  440. package/dist/runtime/pi/appTemplate.js +27 -0
  441. package/dist/runtime/pi/appTemplateTypes.d.ts +64 -0
  442. package/dist/runtime/pi/appTemplateTypes.js +18 -0
  443. package/dist/runtime/pi/appWakeContextSource.d.ts +1 -0
  444. package/dist/runtime/pi/appWakeContextSource.js +398 -0
  445. package/dist/runtime/pi/containerTargets.d.ts +4 -0
  446. package/dist/runtime/pi/containerTargets.js +57 -0
  447. package/dist/runtime/pi/runAuth.d.ts +2 -0
  448. package/dist/runtime/pi/runAuth.js +185 -0
  449. package/dist/runtime/pi/testHelpers.d.ts +2 -0
  450. package/dist/runtime/pi/testHelpers.js +40 -0
  451. package/dist/runtime/picoclaw/adapter.js +23 -27
  452. package/dist/runtime/picoclaw/mcp.d.ts +4 -0
  453. package/dist/runtime/picoclaw/mcp.js +43 -0
  454. package/dist/runtime/picoclaw/memory.d.ts +7 -0
  455. package/dist/runtime/picoclaw/memory.js +17 -0
  456. package/dist/runtime/picoclaw/runAuth.js +1 -1
  457. package/dist/runtime/picoclaw/scaffold.js +1 -1
  458. package/dist/runtime/picoclaw/schedules.d.ts +26 -0
  459. package/dist/runtime/picoclaw/schedules.js +62 -3
  460. package/dist/runtime/registry.js +3 -0
  461. package/dist/runtime/scheduleUtils.d.ts +2 -0
  462. package/dist/runtime/scheduleUtils.js +15 -0
  463. package/dist/runtime/types.d.ts +26 -2
  464. package/dist/shared/errors.d.ts +1 -1
  465. package/dist/shared/errors.js +2 -2
  466. package/dist/shared/index.d.ts +1 -0
  467. package/dist/shared/index.js +1 -0
  468. package/dist/shared/redaction.d.ts +2 -0
  469. package/dist/shared/redaction.js +10 -0
  470. package/dist/status/buildStatus.d.ts +1 -0
  471. package/dist/status/buildStatus.js +2 -0
  472. package/dist/status/compileReport.d.ts +22 -0
  473. package/dist/status/compileReport.js +16 -2
  474. package/dist/status/compiledProbeCollection.d.ts +21 -0
  475. package/dist/status/compiledProbeCollection.js +27 -0
  476. package/dist/status/deployments.js +5 -12
  477. package/dist/status/imageStatusReport.js +6 -0
  478. package/dist/status/index.d.ts +3 -0
  479. package/dist/status/index.js +3 -0
  480. package/dist/status/lifecycleProbes.d.ts +19 -0
  481. package/dist/status/lifecycleProbes.js +174 -0
  482. package/dist/status/moltnetProbes.d.ts +7 -8
  483. package/dist/status/moltnetProbes.js +27 -198
  484. package/dist/status/moltnetWiringProbes.d.ts +19 -0
  485. package/dist/status/moltnetWiringProbes.js +178 -0
  486. package/dist/target/cleanupRun.d.ts +41 -0
  487. package/dist/target/cleanupRun.js +139 -0
  488. package/dist/target/cleanupRunDocker.d.ts +16 -0
  489. package/dist/target/cleanupRunDocker.js +66 -0
  490. package/dist/target/cleanupRunDocker.test-helper.d.ts +67 -0
  491. package/dist/target/cleanupRunDocker.test-helper.js +238 -0
  492. package/dist/target/cleanupRunDockerPreflight.d.ts +17 -0
  493. package/dist/target/cleanupRunDockerPreflight.js +224 -0
  494. package/dist/target/composedPreparation.d.ts +205 -0
  495. package/dist/target/composedPreparation.js +223 -0
  496. package/dist/target/containerBundle.d.ts +82 -0
  497. package/dist/target/containerBundle.js +243 -0
  498. package/dist/target/containerBundleArchive.d.ts +31 -0
  499. package/dist/target/containerBundleArchive.js +140 -0
  500. package/dist/target/containerBundleAuthority.d.ts +25 -0
  501. package/dist/target/containerBundleAuthority.js +65 -0
  502. package/dist/target/containerBundleContracts.d.ts +114 -0
  503. package/dist/target/containerBundleContracts.js +173 -0
  504. package/dist/target/containerBundleFilesystemStore.d.ts +3 -0
  505. package/dist/target/containerBundleFilesystemStore.js +247 -0
  506. package/dist/target/containerBundlePolicy.d.ts +33 -0
  507. package/dist/target/containerBundlePolicy.js +64 -0
  508. package/dist/target/containerBundleStore.d.ts +127 -0
  509. package/dist/target/containerBundleStore.js +284 -0
  510. package/dist/target/contracts.d.ts +538 -0
  511. package/dist/target/contracts.js +373 -0
  512. package/dist/target/dockerArtifactIdentityTypes.d.ts +56 -0
  513. package/dist/target/dockerArtifactIdentityTypes.js +1 -0
  514. package/dist/target/dockerArtifactInspection.d.ts +40 -0
  515. package/dist/target/dockerArtifactInspection.js +125 -0
  516. package/dist/target/dockerArtifacts.d.ts +21 -0
  517. package/dist/target/dockerArtifacts.js +110 -0
  518. package/dist/target/dockerArtifactsProvider.d.ts +41 -0
  519. package/dist/target/dockerArtifactsProvider.js +449 -0
  520. package/dist/target/dockerCommandExecutor.d.ts +27 -0
  521. package/dist/target/dockerCommandExecutor.js +200 -0
  522. package/dist/target/dockerCommandExecutorCore.d.ts +34 -0
  523. package/dist/target/dockerCommandExecutorCore.js +273 -0
  524. package/dist/target/dockerContainerBundleBuilder.d.ts +8 -0
  525. package/dist/target/dockerContainerBundleBuilder.js +256 -0
  526. package/dist/target/dockerContextSnapshot.d.ts +21 -0
  527. package/dist/target/dockerContextSnapshot.js +158 -0
  528. package/dist/target/dockerEndpointFingerprint.d.ts +1 -0
  529. package/dist/target/dockerEndpointFingerprint.js +9 -0
  530. package/dist/target/dockerPreparedArtifact.d.ts +48 -0
  531. package/dist/target/dockerPreparedArtifact.js +131 -0
  532. package/dist/target/dockerProjectionJson.d.ts +1 -0
  533. package/dist/target/dockerProjectionJson.js +80 -0
  534. package/dist/target/dockerPublicArtifactSnapshot.d.ts +17 -0
  535. package/dist/target/dockerPublicArtifactSnapshot.js +99 -0
  536. package/dist/target/dockerResources.d.ts +26 -0
  537. package/dist/target/dockerResources.js +162 -0
  538. package/dist/target/dockerResourcesProvider.d.ts +44 -0
  539. package/dist/target/dockerResourcesProvider.js +207 -0
  540. package/dist/target/dockerSecrets.d.ts +39 -0
  541. package/dist/target/dockerSecrets.js +249 -0
  542. package/dist/target/dockerSecretsAuthority.d.ts +26 -0
  543. package/dist/target/dockerSecretsAuthority.js +216 -0
  544. package/dist/target/dockerSecretsLifecycle.d.ts +25 -0
  545. package/dist/target/dockerSecretsLifecycle.js +133 -0
  546. package/dist/target/dockerSecretsProvider.d.ts +68 -0
  547. package/dist/target/dockerSecretsProvider.js +329 -0
  548. package/dist/target/dockerTarget.d.ts +52 -0
  549. package/dist/target/dockerTarget.js +48 -0
  550. package/dist/target/dockerTargetBinding.d.ts +14 -0
  551. package/dist/target/dockerTargetBinding.js +96 -0
  552. package/dist/target/dockerWorldClock.d.ts +17 -0
  553. package/dist/target/dockerWorldClock.js +111 -0
  554. package/dist/target/dockerWorldReadiness.d.ts +17 -0
  555. package/dist/target/dockerWorldReadiness.js +119 -0
  556. package/dist/target/dockerWorldService.d.ts +23 -0
  557. package/dist/target/dockerWorldService.js +216 -0
  558. package/dist/target/dockerWorldServiceAuthority.d.ts +80 -0
  559. package/dist/target/dockerWorldServiceAuthority.js +182 -0
  560. package/dist/target/dockerWorldServiceLifecycle.d.ts +41 -0
  561. package/dist/target/dockerWorldServiceLifecycle.js +275 -0
  562. package/dist/target/dockerWorldServiceProvider.d.ts +60 -0
  563. package/dist/target/dockerWorldServiceProvider.js +318 -0
  564. package/dist/target/dockerWorldServiceStore.d.ts +73 -0
  565. package/dist/target/dockerWorldServiceStore.js +367 -0
  566. package/dist/target/evidenceExport.d.ts +55 -0
  567. package/dist/target/evidenceExport.js +518 -0
  568. package/dist/target/evidenceExportArchive.d.ts +10 -0
  569. package/dist/target/evidenceExportArchive.js +302 -0
  570. package/dist/target/evidenceExportContract.d.ts +27 -0
  571. package/dist/target/evidenceExportContract.js +40 -0
  572. package/dist/target/evidenceExportOperationsTestKit.d.ts +87 -0
  573. package/dist/target/evidenceExportOperationsTestKit.js +312 -0
  574. package/dist/target/evidenceExportProvider.d.ts +85 -0
  575. package/dist/target/evidenceExportProvider.js +187 -0
  576. package/dist/target/evidenceExportPublicationTypes.d.ts +16 -0
  577. package/dist/target/evidenceExportPublicationTypes.js +1 -0
  578. package/dist/target/evidenceExportStore.d.ts +70 -0
  579. package/dist/target/evidenceExportStore.js +498 -0
  580. package/dist/target/evidenceExportStorePublication.d.ts +7 -0
  581. package/dist/target/evidenceExportStorePublication.js +395 -0
  582. package/dist/target/handles.d.ts +20 -0
  583. package/dist/target/handles.js +56 -0
  584. package/dist/target/index.d.ts +12 -0
  585. package/dist/target/index.js +11 -0
  586. package/dist/target/journal.d.ts +59 -0
  587. package/dist/target/journal.js +529 -0
  588. package/dist/target/journalFilesystem.d.ts +3 -0
  589. package/dist/target/journalFilesystem.js +111 -0
  590. package/dist/target/journalRoot.d.ts +4 -0
  591. package/dist/target/journalRoot.js +6 -0
  592. package/dist/target/organizationAttachment.d.ts +23 -0
  593. package/dist/target/organizationAttachment.js +263 -0
  594. package/dist/target/organizationAttachmentAuthority.d.ts +65 -0
  595. package/dist/target/organizationAttachmentAuthority.js +161 -0
  596. package/dist/target/organizationAttachmentLifecycle.d.ts +17 -0
  597. package/dist/target/organizationAttachmentLifecycle.js +101 -0
  598. package/dist/target/organizationAttachmentProvider.d.ts +76 -0
  599. package/dist/target/organizationAttachmentProvider.js +289 -0
  600. package/dist/target/organizationAttachmentStore.d.ts +51 -0
  601. package/dist/target/organizationAttachmentStore.js +316 -0
  602. package/dist/target/publicArtifactSnapshot.d.ts +41 -0
  603. package/dist/target/publicArtifactSnapshot.js +150 -0
  604. package/dist/target/topologyActivation.d.ts +51 -0
  605. package/dist/target/topologyActivation.js +149 -0
  606. package/dist/target/topologyAttestation.d.ts +37 -0
  607. package/dist/target/topologyAttestation.js +300 -0
  608. package/dist/target/topologyAttestationErrors.d.ts +1 -0
  609. package/dist/target/topologyAttestationErrors.js +1 -0
  610. package/dist/target/worldClock.d.ts +60 -0
  611. package/dist/target/worldClock.js +129 -0
  612. package/dist/target/worldReadiness.d.ts +103 -0
  613. package/dist/target/worldReadiness.js +153 -0
  614. package/moltnet-releases.json +20 -0
  615. package/package.json +29 -8
  616. package/runtimes.yaml +28 -27
  617. package/dist/runtime/openclaw/scaffold-assets/CLAUDE.md +0 -5
  618. package/dist/runtime/picoclaw/scaffold-assets/CLAUDE.md +0 -5
  619. /package/dist/runtime/openclaw/scaffold-assets/{AGENTS.md → WORKSPACE_AGENTS.md} +0 -0
  620. /package/dist/runtime/picoclaw/scaffold-assets/{AGENTS.md → WORKSPACE_AGENTS.md} +0 -0
@@ -0,0 +1,129 @@
1
+ import { createHash } from "node:crypto";
2
+ import { z } from "zod";
3
+ import { assertOrdinaryJsonGraph, opaqueTargetHandleSchema, runIdSchema, selectedTargetSchema, } from "./contracts.js";
4
+ export const TARGET_WORLD_CLOCK_REQUEST_VERSION = "spawnfile.target-world-clock.request.v1";
5
+ export const TARGET_WORLD_CLOCK_RECEIPT_VERSION = "spawnfile.target-world-clock-receipt.v1";
6
+ export const TARGET_WORLD_CLOCK_PATH = "/v1/world/clock";
7
+ export const MAX_TARGET_WORLD_CLOCK_BYTES = 8_192;
8
+ const digest = z.string().regex(/^sha256:[a-f0-9]{64}$/u);
9
+ const protocol = z.string().max(127).regex(/^[a-z][a-z0-9._-]*\.v[1-9][0-9]*$/u);
10
+ const clock = z.object({
11
+ completed_tick: z.number().int().min(0).max(1_000_000_000),
12
+ next_tick: z.number().int().min(1).max(1_000_000_001),
13
+ state: z.literal("running"),
14
+ }).strict().superRefine((value, context) => {
15
+ if (value.next_tick !== value.completed_tick + 1)
16
+ context.addIssue({
17
+ code: z.ZodIssueCode.custom, message: "world clock frontier is invalid",
18
+ });
19
+ });
20
+ const observation = z.object({
21
+ action_count: z.number().int().min(0).max(1_000_000_000),
22
+ clock,
23
+ run_id: runIdSchema,
24
+ version: protocol,
25
+ world_instance_id: runIdSchema,
26
+ }).strict();
27
+ export const targetWorldClockRequestSchema = z.object({
28
+ activation_digest: digest,
29
+ activation_receipt_digest: digest,
30
+ descriptor_digest: digest,
31
+ endpoint: z.object({
32
+ internal_port: z.number().int().min(1).max(65_535),
33
+ path: z.literal(TARGET_WORLD_CLOCK_PATH),
34
+ }).strict(),
35
+ expected: z.object({ document_version: protocol, world_instance_id: runIdSchema }).strict(),
36
+ run_id: runIdSchema,
37
+ selected_target: selectedTargetSchema,
38
+ topology_receipt_digest: digest,
39
+ topology_request_digest: digest,
40
+ version: z.literal(TARGET_WORLD_CLOCK_REQUEST_VERSION),
41
+ world_service_handle: opaqueTargetHandleSchema,
42
+ }).strict();
43
+ export const targetWorldClockReceiptSchema = z.object({
44
+ action_count: z.literal(0),
45
+ activation_digest: digest,
46
+ activation_receipt_digest: digest,
47
+ clock: clock.superRefine((value, context) => {
48
+ if (value.completed_tick < 1)
49
+ context.addIssue({
50
+ code: z.ZodIssueCode.custom, message: "world has not completed its first tick",
51
+ });
52
+ }),
53
+ observation_digest: digest,
54
+ receipt_digest: digest,
55
+ request_digest: digest,
56
+ run_id: runIdSchema,
57
+ topology_receipt_digest: digest,
58
+ topology_request_digest: digest,
59
+ version: z.literal(TARGET_WORLD_CLOCK_RECEIPT_VERSION),
60
+ world_instance_id: runIdSchema,
61
+ world_service_handle: opaqueTargetHandleSchema,
62
+ }).strict();
63
+ const canonical = (value) => {
64
+ if (Array.isArray(value))
65
+ return `[${value.map(canonical).join(",")}]`;
66
+ if (value !== null && typeof value === "object") {
67
+ const record = value;
68
+ return `{${Object.keys(record).sort().map((key) => `${JSON.stringify(key)}:${canonical(record[key])}`).join(",")}}`;
69
+ }
70
+ return JSON.stringify(value);
71
+ };
72
+ const hash = (domain, value) => `sha256:${createHash("sha256").update(`${domain}\0${canonical(value)}`, "utf8").digest("hex")}`;
73
+ const parse = (schema, raw) => {
74
+ assertOrdinaryJsonGraph(raw);
75
+ return schema.parse(raw);
76
+ };
77
+ export const parseTargetWorldClockRequest = (raw) => parse(targetWorldClockRequestSchema, raw);
78
+ export const createTargetWorldClockRequestDigest = (raw) => hash(TARGET_WORLD_CLOCK_REQUEST_VERSION, parseTargetWorldClockRequest(raw));
79
+ const parseObservation = (raw) => parse(observation, raw);
80
+ const bodyFor = (observed, request) => {
81
+ if (observed.action_count !== 0 || observed.clock.completed_tick < 1
82
+ || observed.run_id !== request.run_id
83
+ || observed.version !== request.expected.document_version
84
+ || observed.world_instance_id !== request.expected.world_instance_id) {
85
+ throw new TypeError("Target world clock observation correlation is invalid");
86
+ }
87
+ return {
88
+ action_count: 0,
89
+ activation_digest: request.activation_digest,
90
+ activation_receipt_digest: request.activation_receipt_digest,
91
+ clock: observed.clock,
92
+ observation_digest: hash("spawnfile.target-world-clock.observation.v1", observed),
93
+ request_digest: createTargetWorldClockRequestDigest(request),
94
+ run_id: request.run_id,
95
+ topology_receipt_digest: request.topology_receipt_digest,
96
+ topology_request_digest: request.topology_request_digest,
97
+ version: TARGET_WORLD_CLOCK_RECEIPT_VERSION,
98
+ world_instance_id: observed.world_instance_id,
99
+ world_service_handle: request.world_service_handle,
100
+ };
101
+ };
102
+ export const parseTargetWorldClockReceipt = (raw) => {
103
+ const receipt = parse(targetWorldClockReceiptSchema, raw);
104
+ const { receipt_digest: _digest, ...body } = receipt;
105
+ if (receipt.receipt_digest !== hash(TARGET_WORLD_CLOCK_RECEIPT_VERSION, body)) {
106
+ throw new TypeError("Target world clock receipt digest is invalid");
107
+ }
108
+ return receipt;
109
+ };
110
+ export const createTargetWorldClockReceipt = (input) => {
111
+ const body = bodyFor(parseObservation(input.observation), parseTargetWorldClockRequest(input.request));
112
+ return parseTargetWorldClockReceipt({
113
+ ...body, receipt_digest: hash(TARGET_WORLD_CLOCK_RECEIPT_VERSION, body),
114
+ });
115
+ };
116
+ export const verifyTargetWorldClockReceipt = (input) => {
117
+ const receipt = parseTargetWorldClockReceipt(input.receipt);
118
+ const request = parseTargetWorldClockRequest(input.request);
119
+ const expectedBody = bodyFor({
120
+ action_count: receipt.action_count, clock: receipt.clock, run_id: receipt.run_id,
121
+ version: request.expected.document_version, world_instance_id: receipt.world_instance_id,
122
+ }, request);
123
+ const { receipt_digest: _digest, ...body } = receipt;
124
+ if (canonical(body) !== canonical(expectedBody)) {
125
+ throw new TypeError("Target world clock receipt correlation is invalid");
126
+ }
127
+ return receipt;
128
+ };
129
+ export const createCanonicalTargetWorldClockReceiptBytes = (raw) => canonical(parseTargetWorldClockReceipt(raw));
@@ -0,0 +1,103 @@
1
+ import { z } from "zod";
2
+ export declare const TARGET_WORLD_READINESS_REQUEST_VERSION: "spawnfile.target-world-readiness.request.v1";
3
+ export declare const TARGET_WORLD_READINESS_RECEIPT_VERSION: "spawnfile.target-world-readiness-receipt.v1";
4
+ export declare const TARGET_WORLD_READINESS_PATH: "/v1/world/readiness";
5
+ export declare const MAX_TARGET_WORLD_READINESS_BYTES = 32768;
6
+ export declare const targetWorldReadinessDocumentSchema: z.ZodObject<{
7
+ artifact_digest: z.ZodNullable<z.ZodString>;
8
+ bundle_digest: z.ZodString;
9
+ capability_manifest_digests: z.ZodArray<z.ZodString>;
10
+ capabilities: z.ZodOptional<z.ZodArray<z.ZodObject<{
11
+ identity: z.ZodString;
12
+ manifest_digest: z.ZodString;
13
+ }, z.core.$strict>>>;
14
+ clock: z.ZodObject<{
15
+ next_tick: z.ZodLiteral<0>;
16
+ state: z.ZodLiteral<"paused">;
17
+ }, z.core.$strict>;
18
+ decisions: z.ZodObject<{
19
+ count: z.ZodLiteral<0>;
20
+ phase: z.ZodLiteral<"open">;
21
+ }, z.core.$strict>;
22
+ mechanics_sha256: z.ZodString;
23
+ normalized_checkpoint_sha256: z.ZodString;
24
+ run_id: z.ZodPipe<z.ZodString, z.ZodTransform<import("./contracts.js").RunId, string>>;
25
+ runtime_abi: z.ZodString;
26
+ status: z.ZodLiteral<"ready">;
27
+ version: z.ZodString;
28
+ world_instance_id: z.ZodPipe<z.ZodString, z.ZodTransform<import("./contracts.js").RunId, string>>;
29
+ }, z.core.$strict>;
30
+ export declare const targetWorldReadinessRequestSchema: z.ZodObject<{
31
+ descriptor_digest: z.ZodString;
32
+ endpoint: z.ZodObject<{
33
+ internal_port: z.ZodNumber;
34
+ path: z.ZodLiteral<"/v1/world/readiness">;
35
+ }, z.core.$strict>;
36
+ expected: z.ZodObject<{
37
+ artifact_digest: z.ZodNullable<z.ZodString>;
38
+ bundle_digest: z.ZodString;
39
+ capability_manifest_digests: z.ZodArray<z.ZodString>;
40
+ capabilities: z.ZodOptional<z.ZodArray<z.ZodObject<{
41
+ identity: z.ZodString;
42
+ manifest_digest: z.ZodString;
43
+ }, z.core.$strict>>>;
44
+ document_version: z.ZodString;
45
+ mechanics_sha256: z.ZodString;
46
+ normalized_checkpoint_sha256: z.ZodString;
47
+ runtime_abi: z.ZodString;
48
+ world_instance_id: z.ZodPipe<z.ZodString, z.ZodTransform<import("./contracts.js").RunId, string>>;
49
+ }, z.core.$strict>;
50
+ run_id: z.ZodPipe<z.ZodString, z.ZodTransform<import("./contracts.js").RunId, string>>;
51
+ selected_target: z.ZodObject<{
52
+ fingerprint: z.ZodString;
53
+ handle: z.ZodPipe<z.ZodString, z.ZodTransform<import("./contracts.js").OpaqueTargetHandle, string>>;
54
+ }, z.core.$strict>;
55
+ version: z.ZodLiteral<"spawnfile.target-world-readiness.request.v1">;
56
+ world_service_handle: z.ZodPipe<z.ZodString, z.ZodTransform<import("./contracts.js").OpaqueTargetHandle, string>>;
57
+ }, z.core.$strict>;
58
+ export declare const targetWorldReadinessReceiptSchema: z.ZodObject<{
59
+ readiness: z.ZodObject<{
60
+ artifact_digest: z.ZodNullable<z.ZodString>;
61
+ bundle_digest: z.ZodString;
62
+ capability_manifest_digests: z.ZodArray<z.ZodString>;
63
+ capabilities: z.ZodOptional<z.ZodArray<z.ZodObject<{
64
+ identity: z.ZodString;
65
+ manifest_digest: z.ZodString;
66
+ }, z.core.$strict>>>;
67
+ clock: z.ZodObject<{
68
+ next_tick: z.ZodLiteral<0>;
69
+ state: z.ZodLiteral<"paused">;
70
+ }, z.core.$strict>;
71
+ decisions: z.ZodObject<{
72
+ count: z.ZodLiteral<0>;
73
+ phase: z.ZodLiteral<"open">;
74
+ }, z.core.$strict>;
75
+ mechanics_sha256: z.ZodString;
76
+ normalized_checkpoint_sha256: z.ZodString;
77
+ run_id: z.ZodPipe<z.ZodString, z.ZodTransform<import("./contracts.js").RunId, string>>;
78
+ runtime_abi: z.ZodString;
79
+ status: z.ZodLiteral<"ready">;
80
+ version: z.ZodString;
81
+ world_instance_id: z.ZodPipe<z.ZodString, z.ZodTransform<import("./contracts.js").RunId, string>>;
82
+ }, z.core.$strict>;
83
+ readiness_digest: z.ZodString;
84
+ request_digest: z.ZodString;
85
+ run_id: z.ZodPipe<z.ZodString, z.ZodTransform<import("./contracts.js").RunId, string>>;
86
+ version: z.ZodLiteral<"spawnfile.target-world-readiness-receipt.v1">;
87
+ }, z.core.$strict>;
88
+ export type TargetWorldReadinessDocument = z.infer<typeof targetWorldReadinessDocumentSchema>;
89
+ export type TargetWorldReadinessRequest = z.infer<typeof targetWorldReadinessRequestSchema>;
90
+ export type TargetWorldReadinessReceipt = z.infer<typeof targetWorldReadinessReceiptSchema>;
91
+ export declare const parseTargetWorldReadinessDocument: (raw: unknown) => TargetWorldReadinessDocument;
92
+ export declare const parseTargetWorldReadinessRequest: (raw: unknown) => TargetWorldReadinessRequest;
93
+ export declare const parseTargetWorldReadinessReceipt: (raw: unknown) => TargetWorldReadinessReceipt;
94
+ export declare const createTargetWorldReadinessRequestDigest: (raw: unknown) => `sha256:${string}`;
95
+ export declare const createTargetWorldReadinessReceipt: (input: {
96
+ readonly document: unknown;
97
+ readonly request: unknown;
98
+ }) => TargetWorldReadinessReceipt;
99
+ export declare const verifyTargetWorldReadinessReceipt: (input: {
100
+ readonly receipt: unknown;
101
+ readonly request: unknown;
102
+ }) => TargetWorldReadinessReceipt;
103
+ export declare const createCanonicalTargetWorldReadinessReceiptBytes: (raw: unknown) => string;
@@ -0,0 +1,153 @@
1
+ import { createHash } from "node:crypto";
2
+ import { z } from "zod";
3
+ import { assertOrdinaryJsonGraph, opaqueTargetHandleSchema, runIdSchema, selectedTargetSchema } from "./contracts.js";
4
+ export const TARGET_WORLD_READINESS_REQUEST_VERSION = "spawnfile.target-world-readiness.request.v1";
5
+ export const TARGET_WORLD_READINESS_RECEIPT_VERSION = "spawnfile.target-world-readiness-receipt.v1";
6
+ export const TARGET_WORLD_READINESS_PATH = "/v1/world/readiness";
7
+ export const MAX_TARGET_WORLD_READINESS_BYTES = 32_768;
8
+ const digestSchema = z.string().regex(/^sha256:[a-f0-9]{64}$/u);
9
+ const protocolSchema = z.string().max(127)
10
+ .regex(/^[a-z][a-z0-9._-]*\.v[1-9][0-9]*$/u);
11
+ const capabilityDigestsSchema = z.array(digestSchema).min(1).max(4_096)
12
+ .superRefine((value, context) => {
13
+ const sorted = [...new Set(value)].sort();
14
+ if (sorted.length !== value.length
15
+ || value.some((item, index) => item !== sorted[index])) {
16
+ context.addIssue({
17
+ code: z.ZodIssueCode.custom,
18
+ message: "capability manifest digests must be sorted and unique"
19
+ });
20
+ }
21
+ });
22
+ const capabilityIdentitiesSchema = z.array(z.object({
23
+ identity: protocolSchema,
24
+ manifest_digest: digestSchema
25
+ }).strict()).max(32).superRefine((value, context) => {
26
+ const identities = value.map((entry) => entry.identity);
27
+ if (new Set(identities).size !== identities.length
28
+ || identities.some((item, index) => index > 0 && identities[index - 1] >= item)) {
29
+ context.addIssue({
30
+ code: z.ZodIssueCode.custom,
31
+ message: "capability identities must be sorted and unique"
32
+ });
33
+ }
34
+ });
35
+ export const targetWorldReadinessDocumentSchema = z.object({
36
+ artifact_digest: digestSchema.nullable(),
37
+ bundle_digest: digestSchema,
38
+ capability_manifest_digests: capabilityDigestsSchema,
39
+ capabilities: capabilityIdentitiesSchema.optional(),
40
+ clock: z.object({ next_tick: z.literal(0), state: z.literal("paused") }).strict(),
41
+ decisions: z.object({ count: z.literal(0), phase: z.literal("open") }).strict(),
42
+ mechanics_sha256: digestSchema,
43
+ normalized_checkpoint_sha256: digestSchema,
44
+ run_id: runIdSchema,
45
+ runtime_abi: protocolSchema,
46
+ status: z.literal("ready"),
47
+ version: protocolSchema,
48
+ world_instance_id: runIdSchema
49
+ }).strict().superRefine((value, context) => {
50
+ if (value.capabilities?.some((entry) => !value.capability_manifest_digests.includes(entry.manifest_digest))) {
51
+ context.addIssue({
52
+ code: z.ZodIssueCode.custom,
53
+ message: "capability identity manifest is not advertised"
54
+ });
55
+ }
56
+ });
57
+ const expectationSchema = z.object({
58
+ artifact_digest: digestSchema.nullable(),
59
+ bundle_digest: digestSchema,
60
+ capability_manifest_digests: capabilityDigestsSchema,
61
+ capabilities: capabilityIdentitiesSchema.optional(),
62
+ document_version: protocolSchema,
63
+ mechanics_sha256: digestSchema,
64
+ normalized_checkpoint_sha256: digestSchema,
65
+ runtime_abi: protocolSchema,
66
+ world_instance_id: runIdSchema
67
+ }).strict();
68
+ export const targetWorldReadinessRequestSchema = z.object({
69
+ descriptor_digest: digestSchema,
70
+ endpoint: z.object({
71
+ internal_port: z.number().int().min(1).max(65_535),
72
+ path: z.literal(TARGET_WORLD_READINESS_PATH)
73
+ }).strict(),
74
+ expected: expectationSchema,
75
+ run_id: runIdSchema,
76
+ selected_target: selectedTargetSchema,
77
+ version: z.literal(TARGET_WORLD_READINESS_REQUEST_VERSION),
78
+ world_service_handle: opaqueTargetHandleSchema
79
+ }).strict();
80
+ export const targetWorldReadinessReceiptSchema = z.object({
81
+ readiness: targetWorldReadinessDocumentSchema,
82
+ readiness_digest: digestSchema,
83
+ request_digest: digestSchema,
84
+ run_id: runIdSchema,
85
+ version: z.literal(TARGET_WORLD_READINESS_RECEIPT_VERSION)
86
+ }).strict();
87
+ const canonicalValue = (value) => {
88
+ if (Array.isArray(value))
89
+ return `[${value.map(canonicalValue).join(",")}]`;
90
+ if (value !== null && typeof value === "object") {
91
+ const record = value;
92
+ return `{${Object.keys(record).sort().map((key) => `${JSON.stringify(key)}:${canonicalValue(record[key])}`).join(",")}}`;
93
+ }
94
+ return JSON.stringify(value);
95
+ };
96
+ const parse = (schema, raw) => {
97
+ assertOrdinaryJsonGraph(raw);
98
+ return schema.parse(raw);
99
+ };
100
+ const hash = (domain, raw) => `sha256:${createHash("sha256")
101
+ .update(`${domain}\0${canonicalValue(raw)}`, "utf8")
102
+ .digest("hex")}`;
103
+ export const parseTargetWorldReadinessDocument = (raw) => parse(targetWorldReadinessDocumentSchema, raw);
104
+ export const parseTargetWorldReadinessRequest = (raw) => parse(targetWorldReadinessRequestSchema, raw);
105
+ export const parseTargetWorldReadinessReceipt = (raw) => {
106
+ const receipt = parse(targetWorldReadinessReceiptSchema, raw);
107
+ if (receipt.readiness_digest !== hash("spawnfile.target-world-readiness.document.v1", receipt.readiness))
108
+ throw new TypeError("Target world readiness receipt digest is invalid");
109
+ return receipt;
110
+ };
111
+ export const createTargetWorldReadinessRequestDigest = (raw) => hash(TARGET_WORLD_READINESS_REQUEST_VERSION, parseTargetWorldReadinessRequest(raw));
112
+ const verifyDocument = (document, request) => {
113
+ const expected = request.expected;
114
+ if (document.version !== expected.document_version
115
+ || document.runtime_abi !== expected.runtime_abi
116
+ || document.run_id !== request.run_id
117
+ || document.world_instance_id !== expected.world_instance_id
118
+ || document.artifact_digest !== expected.artifact_digest
119
+ || document.bundle_digest !== expected.bundle_digest
120
+ || document.mechanics_sha256 !== expected.mechanics_sha256
121
+ || document.normalized_checkpoint_sha256
122
+ !== expected.normalized_checkpoint_sha256
123
+ || canonicalValue(document.capability_manifest_digests)
124
+ !== canonicalValue(expected.capability_manifest_digests)
125
+ || canonicalValue(document.capabilities ?? [])
126
+ !== canonicalValue(expected.capabilities ?? [])) {
127
+ throw new TypeError("Target world readiness document correlation is invalid");
128
+ }
129
+ };
130
+ export const createTargetWorldReadinessReceipt = (input) => {
131
+ const request = parseTargetWorldReadinessRequest(input.request);
132
+ const readiness = parseTargetWorldReadinessDocument(input.document);
133
+ verifyDocument(readiness, request);
134
+ return parseTargetWorldReadinessReceipt({
135
+ readiness,
136
+ readiness_digest: hash("spawnfile.target-world-readiness.document.v1", readiness),
137
+ request_digest: createTargetWorldReadinessRequestDigest(request),
138
+ run_id: request.run_id,
139
+ version: TARGET_WORLD_READINESS_RECEIPT_VERSION
140
+ });
141
+ };
142
+ export const verifyTargetWorldReadinessReceipt = (input) => {
143
+ const receipt = parseTargetWorldReadinessReceipt(input.receipt);
144
+ const expected = createTargetWorldReadinessReceipt({
145
+ document: receipt.readiness,
146
+ request: input.request
147
+ });
148
+ if (canonicalValue(receipt) !== canonicalValue(expected)) {
149
+ throw new TypeError("Target world readiness receipt correlation is invalid");
150
+ }
151
+ return receipt;
152
+ };
153
+ export const createCanonicalTargetWorldReadinessReceiptBytes = (raw) => canonicalValue(parseTargetWorldReadinessReceipt(raw));
@@ -0,0 +1,20 @@
1
+ {
2
+ "version": "spawnfile.moltnet-release-authority.v1",
3
+ "release_version": "v0.1.14",
4
+ "source_revision": "7baeb284ba0b1b5e454476141a557d68b5a4af0d",
5
+ "capabilities": [
6
+ "pi-bridge"
7
+ ],
8
+ "assets": [
9
+ {
10
+ "architecture": "amd64",
11
+ "asset": "moltnet_linux_amd64.tar.gz",
12
+ "asset_sha256": "sha256:a2e7a0acd44ab548a81d99e51401ebdee9f50a539b24c9450fc12d8e9218e5f6"
13
+ },
14
+ {
15
+ "architecture": "arm64",
16
+ "asset": "moltnet_linux_arm64.tar.gz",
17
+ "asset_sha256": "sha256:3d46ad047496dd32a9ad41901e7ae1f10a25e9a21f3b29d3b6ccd2cff62fa58f"
18
+ }
19
+ ]
20
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spawnfile",
3
- "version": "0.1.12",
3
+ "version": "0.1.14",
4
4
  "description": "Canonical source compiler for autonomous agents and teams.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -9,14 +9,14 @@
9
9
  },
10
10
  "files": [
11
11
  "dist",
12
+ "moltnet-releases.json",
12
13
  "runtimes.yaml"
13
14
  ],
14
15
  "engines": {
15
- "node": ">=22.0.0"
16
+ "node": ">=22.19.0"
16
17
  },
17
18
  "scripts": {
18
- "blueprints": "./scripts/blueprints.sh",
19
- "build": "rm -rf dist && tsc --project tsconfig.build.json && chmod +x dist/cli/index.js && node ./scripts/copy-runtime-scaffold-assets.mjs",
19
+ "build": "rm -rf dist && tsc --project tsconfig.build.json && chmod +x dist/cli/index.js && node ./src/runtime/copyScaffoldAssets.mjs",
20
20
  "clean": "rm -rf coverage dist",
21
21
  "coverage": "vitest run --coverage",
22
22
  "dev": "tsx src/cli/index.ts",
@@ -25,22 +25,43 @@
25
25
  "release:patch": "npm version patch && npm publish",
26
26
  "release:minor": "npm version minor && npm publish",
27
27
  "release:major": "npm version major && npm publish",
28
- "runtimes": "./scripts/runtimes.sh",
29
- "runtimes:sync": "./scripts/runtimes.sh && ./scripts/blueprints.sh",
28
+ "runtime:images": "npm run runtime:openclaw-image && npm run runtime:picoclaw-image",
29
+ "runtime:openclaw-image": "docker build -f runtime-images/openclaw/Dockerfile -t noopolis/spawnfile-runtime-openclaw:2026.6.11-local runtime-images/openclaw",
30
+ "runtime:picoclaw-image": "docker build -f runtime-images/picoclaw/Dockerfile -t noopolis/spawnfile-runtime-picoclaw:0.3.1-local runtime-images/picoclaw",
31
+ "audit:generate": "tsx src/audit/auditCli.ts",
32
+ "build:local-moltnet": "node ./scripts/build-local-moltnet.mjs",
33
+ "verify:package-closure": "node ./scripts/verify-package-closure.mjs",
30
34
  "test:e2e:docker-auth": "tsx src/e2e/cli.ts",
35
+ "test:e2e:daimon-memory-recall": "tsx src/e2e/cli.ts daimon-memory-recall",
36
+ "test:e2e:jungian-self-org": "tsx src/e2e/cli.ts jungian-self-org",
31
37
  "test:e2e:moltnet-team-chat": "tsx src/e2e/cli.ts moltnet-team-chat",
38
+ "test:e2e:moltnet-memetics": "tsx src/e2e/cli.ts moltnet-memetics",
39
+ "test:e2e:mixed-runtime-memory": "tsx src/e2e/cli.ts mixed-runtime-memory",
40
+ "test:e2e:preflight": "tsx src/e2e/cli.ts preflight",
41
+ "test:e2e:ollama-embeddings-probe": "tsx src/e2e/cli.ts ollama-embeddings-probe",
32
42
  "test:e2e:operational-smoke": "tsx src/e2e/cli.ts operational-smoke",
33
- "test": "vitest run",
43
+ "test:e2e:lifecycle-smoke": "tsx src/e2e/cli.ts lifecycle-smoke",
44
+ "test": "npm run test:vitest; vitest_status=$?; npm run test:verdict; verdict_status=$?; npm run test:coverage-verdict; coverage_status=$?; npm run test:node; node_status=$?; failed_lanes=''; if [ \"$verdict_status\" -eq 2 ]; then failed_lanes='vitest test failures'; fi; if [ \"$node_status\" -eq 2 ]; then if [ -n \"$failed_lanes\" ]; then failed_lanes=\"$failed_lanes; node:test suite\"; else failed_lanes='node:test suite'; fi; fi; result_status=0; if [ -n \"$failed_lanes\" ]; then echo \"FAIL(tests): $failed_lanes\"; result_status=1; fi; if [ \"$verdict_status\" -ne 0 ] && [ \"$verdict_status\" -ne 2 ]; then echo 'FAIL(vitest-verdict): could not determine the vitest result'; result_status=1; fi; if [ \"$node_status\" -ne 0 ] && [ \"$node_status\" -ne 2 ]; then echo 'FAIL(node-lane): could not determine the node:test result'; result_status=1; fi; if [ \"$result_status\" -ne 0 ]; then exit 1; elif [ \"$vitest_status\" -ne 0 ]; then echo \"FAIL(vitest): exited $vitest_status with no test failure\"; exit 1; elif [ \"$coverage_status\" -eq 2 ]; then echo 'FAIL(coverage): thresholds not met (tests all passed)'; exit 2; elif [ \"$coverage_status\" -ne 0 ]; then echo 'FAIL(coverage-verdict): could not evaluate coverage (tests all passed)'; exit 1; else echo 'PASS'; fi",
45
+ "test:vitest": "rm -f coverage/vitest-results.json coverage/coverage-summary.json && vitest run --coverage.thresholds.branches=0 --coverage.thresholds.functions=0 --coverage.thresholds.lines=0 --coverage.thresholds.statements=0",
46
+ "test:verdict": "node -e \"const fs=require('fs'); const file='coverage/vitest-results.json'; if (!fs.existsSync(file)) { console.error('VERDICT: results file missing'); process.exit(1); } let result; try { result=JSON.parse(fs.readFileSync(file, 'utf8')); } catch { console.error('VERDICT: results file unparseable'); process.exit(1); } const total=result.numTotalTests; const totalSuites=result.numTotalTestSuites; const passedTests=result.numPassedTests; const failedTests=result.numFailedTests; const pendingTests=result.numPendingTests; const todoTests=result.numTodoTests; const failedSuites=result.numFailedTestSuites; if (typeof result.success !== 'boolean' || !Number.isInteger(passedTests) || passedTests < 0 || !Number.isInteger(failedTests) || failedTests < 0 || !Number.isInteger(pendingTests) || pendingTests < 0 || !Number.isInteger(todoTests) || todoTests < 0 || !Number.isInteger(failedSuites) || failedSuites < 0 || !Number.isInteger(totalSuites) || totalSuites < 0) { console.error('VERDICT: results schema unrecognised'); process.exit(1); } if (!Number.isInteger(total) || total <= 0) { console.error('VERDICT: no tests found'); process.exit(1); } if (passedTests + failedTests + pendingTests + todoTests !== total) { console.error('VERDICT: results counters do not reconcile (tests='+total+', passed='+passedTests+', failed='+failedTests+', skipped='+pendingTests+', todo='+todoTests+')'); process.exit(1); } const failed=result.success === false || failedTests > 0 || failedSuites > 0; if (failed) { console.error('VERDICT: test failures found (tests='+failedTests+', suites='+failedSuites+', success='+result.success+')'); process.exit(2); } if (passedTests === 0) { console.error('VERDICT: no tests actually ran (skipped='+pendingTests+', todo='+todoTests+')'); process.exit(1); } console.log('VERDICT: tests passed (tests='+total+', suites='+totalSuites+', passed='+passedTests+', skipped='+pendingTests+', todo='+todoTests+')');\"",
47
+ "test:coverage-verdict": "node --import tsx -e \"import fs from 'node:fs'; const file='coverage/coverage-summary.json'; const fail=(message)=>{ console.error('COVERAGE VERDICT: '+message); process.exit(1); }; let summary; try { summary=JSON.parse(fs.readFileSync(file, 'utf8')); } catch (error) { fail(error && error.code === 'ENOENT' ? 'summary file missing' : 'summary file unparseable'); } import('./vitest.config.ts').then(({default:config})=>{ const thresholds=config.test && config.test.coverage && config.test.coverage.thresholds; if (!thresholds || typeof thresholds !== 'object' || !summary || typeof summary !== 'object' || !summary.total || typeof summary.total !== 'object') fail('summary or threshold schema unrecognised'); const metricNames=['branches','functions','lines','statements']; const metrics=metricNames.filter((metric)=>Object.prototype.hasOwnProperty.call(thresholds, metric)); if (metrics.length === 0) fail('no threshold metrics configured'); let shortfall=false; for (const metric of metrics) { const threshold=thresholds[metric]; const pct=summary.total[metric] && summary.total[metric].pct; if (typeof threshold !== 'number' || !Number.isFinite(threshold) || typeof pct !== 'number' || !Number.isFinite(pct)) fail('missing or non-numeric value for '+metric); console.log('COVERAGE: '+metric+' '+pct+'% (threshold '+threshold+'%)'); if (pct < threshold) shortfall=true; } if (shortfall) { console.error('COVERAGE VERDICT: thresholds not met'); process.exit(2); } console.log('COVERAGE VERDICT: thresholds met'); }).catch((error)=>fail('could not load vitest config: '+error.message));\"",
48
+ "test:node": "mkdir -p coverage || exit 1; rm -f coverage/node-test.tap || exit 1; node --import tsx --test --test-reporter=tap src/runtime/pi/appControlDeliveryMetadata.test.ts > coverage/node-test.tap 2>&1; node_status=$?; cat coverage/node-test.tap; cat_status=$?; npm run test:node-verdict; verdict_status=$?; if [ \"$verdict_status\" -eq 2 ]; then exit 2; fi; if [ \"$verdict_status\" -ne 0 ]; then exit 1; fi; if [ \"$cat_status\" -ne 0 ]; then echo 'NODE VERDICT: could not read TAP output' >&2; exit 1; fi; if [ \"$node_status\" -ne 0 ]; then echo \"NODE VERDICT: node:test runner exited $node_status despite a passing TAP summary\" >&2; exit 1; fi; exit 0",
49
+ "test:node-verdict": "node -e \"const fs=require('fs'); const text=fs.readFileSync('coverage/node-test.tap', 'utf8'); const tests=text.match(/^# tests ([0-9]+)\\r?$/m); const suites=text.match(/^# suites ([0-9]+)\\r?$/m); const passed=text.match(/^# pass ([0-9]+)\\r?$/m); const failed=text.match(/^# fail ([0-9]+)\\r?$/m); const skipped=text.match(/^# skipped ([0-9]+)\\r?$/m); const todo=text.match(/^# todo ([0-9]+)\\r?$/m); const cancelled=text.match(/^# cancelled ([0-9]+)\\r?$/m); if (!tests || !suites || !passed || !failed || !skipped || !todo || !cancelled) { console.error('NODE VERDICT: TAP summary unrecognised'); process.exit(1); } const testCount=Number(tests[1]); const suiteCount=Number(suites[1]); const passCount=Number(passed[1]); const failCount=Number(failed[1]); const skippedCount=Number(skipped[1]); const todoCount=Number(todo[1]); const cancelledCount=Number(cancelled[1]); if (failCount > 0) { console.error('NODE VERDICT: test failures found (tests='+testCount+', failed='+failCount+')'); process.exit(2); } if (cancelledCount > 0) { console.error('NODE VERDICT: incomplete run (cancelled='+cancelledCount+')'); process.exit(1); } if (passCount + skippedCount + todoCount + cancelledCount !== testCount) { console.error('NODE VERDICT: TAP counts do not reconcile (tests='+testCount+', passed='+passCount+', skipped='+skippedCount+', todo='+todoCount+', cancelled='+cancelledCount+')'); process.exit(1); } if (testCount < 10) { console.error('NODE VERDICT: expected at least 10 node:test cases, found '+testCount+' — cases were removed or the file was gutted'); process.exit(1); } if (passCount < 10) { console.error('NODE VERDICT: expected at least 10 passing node:test cases, found '+passCount+' (skipped='+skippedCount+', todo='+todoCount+')'); process.exit(1); } if (suiteCount < 1) { console.error('NODE VERDICT: expected at least 1 node:test suite, found '+suiteCount); process.exit(1); } console.log('NODE VERDICT: tests passed (tests='+testCount+', suites='+suiteCount+', passed='+passCount+', skipped='+skippedCount+', todo='+todoCount+', failed=0)');\"",
50
+ "test:boundaries": "vitest run --coverage.enabled=false src/ownership/rootOwnershipBoundary.test.ts src/deployment/providerRuntimeBoundary.test.ts src/ownership/mnemePublicImportBoundary.test.ts src/target/containerBundleArchive.test.ts",
51
+ "test:causal-conformance": "tsx src/ledger/causalConformanceCli.ts",
34
52
  "typecheck": "tsc --project tsconfig.json --noEmit",
35
53
  "test:e2e:distribution-image": "tsx src/e2e/cli.ts distribution-image",
36
- "test:e2e:distribution-roundtrip": "tsx src/e2e/cli.ts distribution-roundtrip"
54
+ "test:e2e:distribution-roundtrip": "tsx src/e2e/cli.ts distribution-roundtrip",
55
+ "test:e2e:daimon-org": "tsx src/e2e/cli.ts daimon-org"
37
56
  },
38
57
  "dependencies": {
58
+ "@noopolis/stele": "0.0.2",
39
59
  "commander": "^14.0.1",
40
60
  "yaml": "^2.8.1",
41
61
  "zod": "^4.1.12"
42
62
  },
43
63
  "devDependencies": {
64
+ "@noopolis/mneme": "^0.1.1",
44
65
  "@types/node": "^24.6.0",
45
66
  "@vitest/coverage-v8": "^3.2.4",
46
67
  "tsx": "^4.20.6",
package/runtimes.yaml CHANGED
@@ -10,32 +10,45 @@
10
10
  # install Pinned install strategy for the verified runtime version
11
11
  # status active (has adapter) | exploratory (research only)
12
12
  #
13
- # Run ./scripts/runtimes.sh to clone or update all entries to their
14
- # pinned refs.
15
-
16
13
  runtimes:
14
+ daimon:
15
+ remote: git@github.com:noopolis/daimon.git
16
+ ref: v0.1.2
17
+ default_branch: main
18
+ install:
19
+ kind: container_image
20
+ image: noopolis/spawnfile-runtime-daimon
21
+ tag: 0.1.2
22
+ status: active
23
+
17
24
  openclaw:
18
25
  remote: git@github.com:openclaw/openclaw.git
19
- ref: v2026.6.5
26
+ ref: v2026.6.11
20
27
  default_branch: main
21
28
  install:
22
- kind: npm
23
- package: openclaw
24
- version: 2026.6.5
29
+ kind: container_image
30
+ image: noopolis/spawnfile-runtime-openclaw
31
+ tag: 2026.6.11
25
32
  status: active
26
33
 
27
34
  picoclaw:
28
35
  remote: git@github.com:sipeed/picoclaw.git
29
- ref: v0.2.9
36
+ ref: v0.3.1
30
37
  default_branch: main
31
38
  install:
32
- kind: github_release_archive
33
- repository: sipeed/picoclaw
34
- tag: v0.2.9
35
- binary: picoclaw
36
- assets:
37
- linux_amd64: picoclaw_Linux_x86_64.tar.gz
38
- linux_arm64: picoclaw_Linux_arm64.tar.gz
39
+ kind: container_image
40
+ image: noopolis/spawnfile-runtime-picoclaw
41
+ tag: 0.3.1
42
+ status: active
43
+
44
+ pi:
45
+ remote: git@github.com:earendil-works/pi.git
46
+ ref: v0.79.10
47
+ default_branch: main
48
+ install:
49
+ kind: npm
50
+ package: "@earendil-works/pi-coding-agent"
51
+ version: 0.79.10
39
52
  status: active
40
53
 
41
54
  hermes-agent:
@@ -44,12 +57,6 @@ runtimes:
44
57
  default_branch: main
45
58
  status: exploratory
46
59
 
47
- nullclaw:
48
- remote: git@github.com:nullclaw/nullclaw.git
49
- ref: v2026.5.29
50
- default_branch: main
51
- status: exploratory
52
-
53
60
  opencode:
54
61
  remote: git@github.com:anomalyco/opencode.git
55
62
  ref: v1.16.2
@@ -61,9 +68,3 @@ runtimes:
61
68
  ref: v0.6.9
62
69
  default_branch: main
63
70
  status: exploratory
64
-
65
- zeroclaw:
66
- remote: git@github.com:zeroclaw-labs/zeroclaw.git
67
- ref: v0.7.5
68
- default_branch: master
69
- status: exploratory
@@ -1,5 +0,0 @@
1
- # OpenClaw Scaffold Assets
2
-
3
- This folder contains the bundled markdown starter files used by `spawnfile init --runtime openclaw`.
4
-
5
- These files are copied into `dist/runtime/openclaw/scaffold-assets/` during `npm run build` so the installed CLI can scaffold projects without depending on `blueprints/` or `runtimes/`.
@@ -1,5 +0,0 @@
1
- # PicoClaw Scaffold Assets
2
-
3
- This folder contains the bundled markdown starter files used by `spawnfile init --runtime picoclaw`.
4
-
5
- These files are copied into `dist/runtime/picoclaw/scaffold-assets/` during `npm run build` so the installed CLI can scaffold projects without depending on `blueprints/` or `runtimes/`.