spawnfile 0.1.13 → 0.1.17

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 (950) hide show
  1. package/README.md +61 -121
  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/importers.d.ts +10 -0
  27. package/dist/auth/importers.js +29 -4
  28. package/dist/auth/index.d.ts +9 -0
  29. package/dist/auth/index.js +8 -0
  30. package/dist/auth/paths.d.ts +12 -1
  31. package/dist/auth/paths.js +21 -0
  32. package/dist/auth/profileStore.js +9 -9
  33. package/dist/auth/targetSecretSourceAuthor.d.ts +18 -0
  34. package/dist/auth/targetSecretSourceAuthor.js +52 -0
  35. package/dist/auth/targetSecretSourceFsIdentity.d.ts +40 -0
  36. package/dist/auth/targetSecretSourceFsIdentity.js +42 -0
  37. package/dist/auth/targetSecretSourceFsPublish.d.ts +17 -0
  38. package/dist/auth/targetSecretSourceFsPublish.js +51 -0
  39. package/dist/auth/targetSecretSourceFsPublishImmutable.d.ts +17 -0
  40. package/dist/auth/targetSecretSourceFsPublishImmutable.js +468 -0
  41. package/dist/auth/targetSecretSourceFsRead.d.ts +14 -0
  42. package/dist/auth/targetSecretSourceFsRead.js +189 -0
  43. package/dist/auth/targetSecretSourceGrant.d.ts +16 -0
  44. package/dist/auth/targetSecretSourceGrant.js +99 -0
  45. package/dist/auth/targetSecretSourceGrantRecords.d.ts +84 -0
  46. package/dist/auth/targetSecretSourceGrantRecords.js +214 -0
  47. package/dist/auth/targetSecretSourceLifecycle.d.ts +30 -0
  48. package/dist/auth/targetSecretSourceLifecycle.js +52 -0
  49. package/dist/auth/targetSecretSourceOwnerEntropy.d.ts +6 -0
  50. package/dist/auth/targetSecretSourceOwnerEntropy.js +28 -0
  51. package/dist/auth/targetSecretSourceRecordCommon.d.ts +14 -0
  52. package/dist/auth/targetSecretSourceRecordCommon.js +100 -0
  53. package/dist/auth/targetSecretSourceRecordPublish.d.ts +10 -0
  54. package/dist/auth/targetSecretSourceRecordPublish.js +104 -0
  55. package/dist/auth/targetSecretSourceResolver.d.ts +10 -0
  56. package/dist/auth/targetSecretSourceResolver.js +137 -0
  57. package/dist/auth/targetSecretSourceRevoke.d.ts +20 -0
  58. package/dist/auth/targetSecretSourceRevoke.js +92 -0
  59. package/dist/auth/targetSecretSourceRotate.d.ts +19 -0
  60. package/dist/auth/targetSecretSourceRotate.js +121 -0
  61. package/dist/auth/targetSecretSourceVersionRecords.d.ts +49 -0
  62. package/dist/auth/targetSecretSourceVersionRecords.js +166 -0
  63. package/dist/auth/trainingAuth.d.ts +21 -0
  64. package/dist/auth/trainingAuth.js +86 -0
  65. package/dist/auth/types.d.ts +1 -1
  66. package/dist/cli/artifactsCommands.d.ts +27 -0
  67. package/dist/cli/artifactsCommands.js +132 -0
  68. package/dist/cli/authCommands.d.ts +5 -0
  69. package/dist/cli/authCommands.js +230 -0
  70. package/dist/cli/canaryCutoverCommand.d.ts +2 -0
  71. package/dist/cli/canaryCutoverCommand.js +30 -0
  72. package/dist/cli/capabilitiesCommand.d.ts +3 -0
  73. package/dist/cli/capabilitiesCommand.js +12 -0
  74. package/dist/cli/capabilitiesReceipt.d.ts +56 -0
  75. package/dist/cli/capabilitiesReceipt.js +56 -0
  76. package/dist/cli/compileBuildCommands.d.ts +3 -0
  77. package/dist/cli/compileBuildCommands.js +48 -0
  78. package/dist/cli/composedLifecycleContractSet.d.ts +21 -0
  79. package/dist/cli/composedLifecycleContractSet.js +204 -0
  80. package/dist/cli/containerBundleCommand.d.ts +6 -0
  81. package/dist/cli/containerBundleCommand.js +116 -0
  82. package/dist/cli/devCommands.js +2 -0
  83. package/dist/cli/downCommand.d.ts +25 -0
  84. package/dist/cli/downCommand.js +145 -0
  85. package/dist/cli/evidenceExportHelperCommand.d.ts +13 -0
  86. package/dist/cli/evidenceExportHelperCommand.js +51 -0
  87. package/dist/cli/index.js +15 -3
  88. package/dist/cli/lifecycleCommands.d.ts +1 -1
  89. package/dist/cli/lifecycleCommands.js +11 -181
  90. package/dist/cli/lifecycleMachine.d.ts +25 -0
  91. package/dist/cli/lifecycleMachine.js +78 -0
  92. package/dist/cli/lifecyclePlan.d.ts +35 -0
  93. package/dist/cli/lifecyclePlan.js +240 -0
  94. package/dist/cli/lifecyclePlanningCommands.d.ts +3 -0
  95. package/dist/cli/lifecyclePlanningCommands.js +30 -0
  96. package/dist/cli/paideiaDelegation.d.ts +17 -0
  97. package/dist/cli/paideiaDelegation.js +210 -0
  98. package/dist/cli/paideiaSupervisor.d.ts +17 -0
  99. package/dist/cli/paideiaSupervisor.js +48 -0
  100. package/dist/cli/productStateCloneCommand.d.ts +2 -0
  101. package/dist/cli/productStateCloneCommand.js +34 -0
  102. package/dist/cli/runCli.d.ts +19 -2
  103. package/dist/cli/runCli.js +58 -74
  104. package/dist/cli/runPublishCommands.d.ts +3 -0
  105. package/dist/cli/runPublishCommands.js +70 -0
  106. package/dist/cli/statusCommand.d.ts +3 -33
  107. package/dist/cli/statusCommand.js +19 -249
  108. package/dist/cli/statusCommandLive.d.ts +20 -0
  109. package/dist/cli/statusCommandLive.js +188 -0
  110. package/dist/cli/statusCommandOptions.d.ts +40 -0
  111. package/dist/cli/statusCommandOptions.js +42 -0
  112. package/dist/cli/targetCliRoute.d.ts +2 -0
  113. package/dist/cli/targetCliRoute.js +30 -0
  114. package/dist/cli/targetCommands.d.ts +30 -0
  115. package/dist/cli/targetCommands.js +227 -0
  116. package/dist/cli/targetComposedPreparationCommand.d.ts +6 -0
  117. package/dist/cli/targetComposedPreparationCommand.js +39 -0
  118. package/dist/cli/targetConfigPreparedPlan.d.ts +3 -0
  119. package/dist/cli/targetConfigPreparedPlan.js +74 -0
  120. package/dist/cli/targetConfigResolver.d.ts +3 -0
  121. package/dist/cli/targetConfigResolver.js +111 -0
  122. package/dist/cli/targetConfigResolverCommand.d.ts +6 -0
  123. package/dist/cli/targetConfigResolverCommand.js +43 -0
  124. package/dist/cli/targetConfigResolverContracts.d.ts +56 -0
  125. package/dist/cli/targetConfigResolverContracts.js +30 -0
  126. package/dist/cli/targetConfigResolverDocker.d.ts +4 -0
  127. package/dist/cli/targetConfigResolverDocker.js +47 -0
  128. package/dist/cli/targetConfigResolverValidation.d.ts +10 -0
  129. package/dist/cli/targetConfigResolverValidation.js +94 -0
  130. package/dist/cli/targetDefaultArtifactAuthority.d.ts +5 -0
  131. package/dist/cli/targetDefaultArtifactAuthority.js +28 -0
  132. package/dist/cli/targetDefaultAuthorities.d.ts +55 -0
  133. package/dist/cli/targetDefaultAuthorities.js +213 -0
  134. package/dist/cli/targetDefaultConfig.d.ts +75 -0
  135. package/dist/cli/targetDefaultConfig.js +334 -0
  136. package/dist/cli/targetDefaultConfigStdin.d.ts +13 -0
  137. package/dist/cli/targetDefaultConfigStdin.js +221 -0
  138. package/dist/cli/targetDefaultEnvelope.d.ts +1 -0
  139. package/dist/cli/targetDefaultEnvelope.js +13 -0
  140. package/dist/cli/targetDefaultHandlerFactory.d.ts +28 -0
  141. package/dist/cli/targetDefaultHandlerFactory.js +268 -0
  142. package/dist/cli/targetDefaultHandlers.d.ts +21 -0
  143. package/dist/cli/targetDefaultHandlers.js +72 -0
  144. package/dist/cli/targetDefaultJournalAuthority.d.ts +35 -0
  145. package/dist/cli/targetDefaultJournalAuthority.js +135 -0
  146. package/dist/cli/targetDefaultWorldClock.d.ts +4 -0
  147. package/dist/cli/targetDefaultWorldClock.js +14 -0
  148. package/dist/cli/targetDefaultWorldQueries.d.ts +5 -0
  149. package/dist/cli/targetDefaultWorldQueries.js +11 -0
  150. package/dist/cli/targetDefaultWorldReadiness.d.ts +4 -0
  151. package/dist/cli/targetDefaultWorldReadiness.js +17 -0
  152. package/dist/cli/targetEvidenceHelperResolution.d.ts +14 -0
  153. package/dist/cli/targetEvidenceHelperResolution.js +23 -0
  154. package/dist/cli/targetLookupCli.d.ts +3 -0
  155. package/dist/cli/targetLookupCli.js +31 -0
  156. package/dist/cli/targetLookupCommands.d.ts +12 -0
  157. package/dist/cli/targetLookupCommands.js +69 -0
  158. package/dist/cli/targetOperationDispatch.d.ts +58 -0
  159. package/dist/cli/targetOperationDispatch.js +21 -0
  160. package/dist/cli/targetProductionCommands.d.ts +5 -0
  161. package/dist/cli/targetProductionCommands.js +45 -0
  162. package/dist/cli/targetReceiptOutput.d.ts +14 -0
  163. package/dist/cli/targetReceiptOutput.js +21 -0
  164. package/dist/cli/targetRequestFile.d.ts +14 -0
  165. package/dist/cli/targetRequestFile.js +63 -0
  166. package/dist/cli/targetSecretSourceInput.d.ts +28 -0
  167. package/dist/cli/targetSecretSourceInput.js +121 -0
  168. package/dist/cli/targetWorldClockCommand.d.ts +10 -0
  169. package/dist/cli/targetWorldClockCommand.js +42 -0
  170. package/dist/cli/targetWorldReadinessCommand.d.ts +10 -0
  171. package/dist/cli/targetWorldReadinessCommand.js +43 -0
  172. package/dist/cli/trainCommand.d.ts +3 -0
  173. package/dist/cli/trainCommand.js +61 -0
  174. package/dist/cli/upCommand.d.ts +3 -0
  175. package/dist/cli/upCommand.js +162 -0
  176. package/dist/cli/upImageCommand.d.ts +11 -0
  177. package/dist/cli/upImageCommand.js +41 -0
  178. package/dist/cli/upLifecycleInvocation.d.ts +41 -0
  179. package/dist/cli/upLifecycleInvocation.js +48 -0
  180. package/dist/cli/upLifecycleRecovery.d.ts +4 -0
  181. package/dist/cli/upLifecycleRecovery.js +197 -0
  182. package/dist/cli/usageCommand.d.ts +40 -0
  183. package/dist/cli/usageCommand.js +284 -0
  184. package/dist/cli/usageCommandLive.d.ts +84 -0
  185. package/dist/cli/usageCommandLive.js +95 -0
  186. package/dist/cli/usageDeploymentSource.d.ts +9 -0
  187. package/dist/cli/usageDeploymentSource.js +22 -0
  188. package/dist/cli/workspaceResourceMigrationCommand.d.ts +8 -0
  189. package/dist/cli/workspaceResourceMigrationCommand.js +36 -0
  190. package/dist/compiler/agentNodeMerge.d.ts +2 -0
  191. package/dist/compiler/agentNodeMerge.js +79 -0
  192. package/dist/compiler/agentSurfaces.js +11 -1
  193. package/dist/compiler/buildCompilePlan.js +17 -0
  194. package/dist/compiler/buildCompilePlanAgent.d.ts +11 -0
  195. package/dist/compiler/buildCompilePlanAgent.js +56 -0
  196. package/dist/compiler/buildCompilePlanTeams.d.ts +2 -1
  197. package/dist/compiler/buildCompilePlanTeams.js +9 -1
  198. package/dist/compiler/buildCompilePlanTraversal.js +75 -82
  199. package/dist/compiler/buildProject.d.ts +11 -0
  200. package/dist/compiler/buildProject.js +77 -2
  201. package/dist/compiler/compilePlanHelpers.js +5 -0
  202. package/dist/compiler/compileProject.d.ts +15 -0
  203. package/dist/compiler/compileProject.js +31 -75
  204. package/dist/compiler/compileProjectPolicy.d.ts +5 -0
  205. package/dist/compiler/compileProjectPolicy.js +21 -0
  206. package/dist/compiler/compileProjectReports.d.ts +9 -0
  207. package/dist/compiler/compileProjectReports.js +52 -0
  208. package/dist/compiler/compileProjectSupport.js +9 -0
  209. package/dist/compiler/containerArtifactSummaries.d.ts +7 -0
  210. package/dist/compiler/containerArtifactSummaries.js +138 -0
  211. package/dist/compiler/containerArtifacts.d.ts +12 -0
  212. package/dist/compiler/containerArtifacts.js +180 -127
  213. package/dist/compiler/containerArtifactsPlans.d.ts +5 -3
  214. package/dist/compiler/containerArtifactsPlans.js +54 -124
  215. package/dist/compiler/containerArtifactsRender.d.ts +5 -2
  216. package/dist/compiler/containerArtifactsRender.js +106 -70
  217. package/dist/compiler/containerArtifactsTypes.d.ts +20 -0
  218. package/dist/compiler/containerBackedMountRender.d.ts +56 -0
  219. package/dist/compiler/containerBackedMountRender.js +101 -0
  220. package/dist/compiler/containerConfigEnvRender.d.ts +3 -0
  221. package/dist/compiler/containerConfigEnvRender.js +54 -0
  222. package/dist/compiler/containerDaimonBrokerRender.d.ts +112 -0
  223. package/dist/compiler/containerDaimonBrokerRender.js +191 -0
  224. package/dist/compiler/containerDaimonGrokWorkerProvisioning.d.ts +38 -0
  225. package/dist/compiler/containerDaimonGrokWorkerProvisioning.js +108 -0
  226. package/dist/compiler/containerDaimonGrokWorkerRender.d.ts +172 -0
  227. package/dist/compiler/containerDaimonGrokWorkerRender.js +268 -0
  228. package/dist/compiler/containerDaimonOwnershipGuardRender.d.ts +12 -0
  229. package/dist/compiler/containerDaimonOwnershipGuardRender.js +191 -0
  230. package/dist/compiler/containerDaimonUidEntrypointRender.d.ts +24 -0
  231. package/dist/compiler/containerDaimonUidEntrypointRender.js +297 -0
  232. package/dist/compiler/containerEntrypointRender.d.ts +8 -0
  233. package/dist/compiler/containerEntrypointRender.js +82 -72
  234. package/dist/compiler/containerEntrypointShell.d.ts +5 -0
  235. package/dist/compiler/containerEntrypointShell.js +29 -0
  236. package/dist/compiler/containerPackageOverrides.d.ts +27 -0
  237. package/dist/compiler/containerPackageOverrides.js +63 -0
  238. package/dist/compiler/containerPersistentMounts.d.ts +30 -0
  239. package/dist/compiler/containerPersistentMounts.js +66 -0
  240. package/dist/compiler/containerReadinessPaths.d.ts +1 -0
  241. package/dist/compiler/containerReadinessPaths.js +1 -0
  242. package/dist/compiler/containerRuntimeLinkMaterializer.d.ts +2 -0
  243. package/dist/compiler/containerRuntimeLinkMaterializer.js +12 -0
  244. package/dist/compiler/containerRuntimeReadinessRender.d.ts +7 -0
  245. package/dist/compiler/containerRuntimeReadinessRender.js +40 -0
  246. package/dist/compiler/containerStateOwnershipRender.d.ts +4 -0
  247. package/dist/compiler/containerStateOwnershipRender.js +75 -0
  248. package/dist/compiler/containerTargetPlanResolution.d.ts +20 -0
  249. package/dist/compiler/containerTargetPlanResolution.js +97 -0
  250. package/dist/compiler/containerTargetResources.d.ts +22 -1
  251. package/dist/compiler/containerTargetResources.js +94 -2
  252. package/dist/compiler/containerVolumeBootstrap.d.ts +3 -0
  253. package/dist/compiler/containerVolumeBootstrap.js +3 -0
  254. package/dist/compiler/containerWorkspaceResourceRender.js +49 -1
  255. package/dist/compiler/daimonTelemetryArtifacts.d.ts +22 -0
  256. package/dist/compiler/daimonTelemetryArtifacts.js +56 -0
  257. package/dist/compiler/deploymentLineage.d.ts +40 -0
  258. package/dist/compiler/deploymentLineage.js +50 -0
  259. package/dist/compiler/dockerBuildContext.d.ts +16 -0
  260. package/dist/compiler/dockerBuildContext.js +159 -0
  261. package/dist/compiler/dockerBuildSkip.d.ts +30 -0
  262. package/dist/compiler/dockerBuildSkip.js +81 -0
  263. package/dist/compiler/index.d.ts +7 -0
  264. package/dist/compiler/index.js +7 -0
  265. package/dist/compiler/initProject.d.ts +2 -0
  266. package/dist/compiler/initProject.js +39 -1
  267. package/dist/compiler/localMoltnetAuthority.d.ts +64 -0
  268. package/dist/compiler/localMoltnetAuthority.js +177 -0
  269. package/dist/compiler/memoryArtifacts.d.ts +26 -0
  270. package/dist/compiler/memoryArtifacts.js +210 -0
  271. package/dist/compiler/memoryResolution.d.ts +4 -0
  272. package/dist/compiler/memoryResolution.js +147 -0
  273. package/dist/compiler/modelEnv.d.ts +7 -0
  274. package/dist/compiler/modelEnv.js +13 -1
  275. package/dist/compiler/moltnetAllowedWakeSendersValidation.d.ts +2 -0
  276. package/dist/compiler/moltnetAllowedWakeSendersValidation.js +42 -0
  277. package/dist/compiler/moltnetArtifactPaths.d.ts +31 -0
  278. package/dist/compiler/moltnetArtifactPaths.js +51 -0
  279. package/dist/compiler/moltnetArtifactTypes.d.ts +56 -0
  280. package/dist/compiler/moltnetArtifactTypes.js +1 -0
  281. package/dist/compiler/moltnetArtifacts.d.ts +3 -41
  282. package/dist/compiler/moltnetArtifacts.js +87 -101
  283. package/dist/compiler/moltnetBinaries.d.ts +33 -4
  284. package/dist/compiler/moltnetBinaries.js +173 -26
  285. package/dist/compiler/moltnetClientConfig.js +7 -2
  286. package/dist/compiler/moltnetConfigLowering.d.ts +18 -1
  287. package/dist/compiler/moltnetConfigLowering.js +92 -6
  288. package/dist/compiler/moltnetExternalParticipantArtifact.d.ts +38 -0
  289. package/dist/compiler/moltnetExternalParticipantArtifact.js +188 -0
  290. package/dist/compiler/moltnetNodeConfig.js +7 -2
  291. package/dist/compiler/moltnetReleaseAuthority.d.ts +40 -0
  292. package/dist/compiler/moltnetReleaseAuthority.js +102 -0
  293. package/dist/compiler/moltnetReleaseDownload.d.ts +12 -0
  294. package/dist/compiler/moltnetReleaseDownload.js +85 -0
  295. package/dist/compiler/moltnetRepresentativeResolution.d.ts +2 -1
  296. package/dist/compiler/moltnetRepresentativeResolution.js +17 -3
  297. package/dist/compiler/moltnetResolution.js +67 -21
  298. package/dist/compiler/moltnetRoomMemberships.js +52 -9
  299. package/dist/compiler/moltnetRoomPolicyCompatibility.d.ts +1 -1
  300. package/dist/compiler/moltnetRoomPolicyCompatibility.js +3 -1
  301. package/dist/compiler/moltnetRuntimeConfig.d.ts +1 -1
  302. package/dist/compiler/moltnetRuntimeConfig.js +22 -2
  303. package/dist/compiler/moltnetServerPlans.d.ts +9 -0
  304. package/dist/compiler/moltnetServerPlans.js +151 -0
  305. package/dist/compiler/organizationExternalParticipants.d.ts +3 -0
  306. package/dist/compiler/organizationExternalParticipants.js +176 -0
  307. package/dist/compiler/organizationIdentity.d.ts +21 -0
  308. package/dist/compiler/organizationIdentity.js +64 -0
  309. package/dist/compiler/organizationIdentityGraph.d.ts +15 -0
  310. package/dist/compiler/organizationIdentityGraph.js +115 -0
  311. package/dist/compiler/organizationReadyEvidence.d.ts +57 -0
  312. package/dist/compiler/organizationReadyEvidence.js +281 -0
  313. package/dist/compiler/projectManifestGraph.d.ts +4 -0
  314. package/dist/compiler/projectManifestGraph.js +24 -0
  315. package/dist/compiler/runProject.d.ts +8 -2
  316. package/dist/compiler/runProject.js +62 -27
  317. package/dist/compiler/runProjectAuth.d.ts +10 -2
  318. package/dist/compiler/runProjectAuth.js +105 -11
  319. package/dist/compiler/runProjectDaimonCodexDocker.d.ts +3 -0
  320. package/dist/compiler/runProjectDaimonCodexDocker.js +36 -0
  321. package/dist/compiler/runProjectDocker.d.ts +11 -0
  322. package/dist/compiler/runProjectDocker.js +64 -16
  323. package/dist/compiler/runProjectDockerDaimonGuards.d.ts +15 -0
  324. package/dist/compiler/runProjectDockerDaimonGuards.js +122 -0
  325. package/dist/compiler/runProjectDockerReservation.d.ts +3 -0
  326. package/dist/compiler/runProjectDockerReservation.js +118 -0
  327. package/dist/compiler/runProjectLifecycle.d.ts +7 -0
  328. package/dist/compiler/runProjectLifecycle.js +40 -0
  329. package/dist/compiler/syncProjectAuth.js +4 -1
  330. package/dist/compiler/teamContextActiveEnvironments.d.ts +13 -0
  331. package/dist/compiler/teamContextActiveEnvironments.js +255 -0
  332. package/dist/compiler/teamContextSupport.js +32 -40
  333. package/dist/compiler/teamContextTypes.d.ts +2 -0
  334. package/dist/compiler/training/broker/declaration.d.ts +45 -0
  335. package/dist/compiler/training/broker/declaration.js +55 -0
  336. package/dist/compiler/training/broker/entrypoint.d.ts +39 -0
  337. package/dist/compiler/training/broker/entrypoint.js +111 -0
  338. package/dist/compiler/training/broker/index.d.ts +10 -0
  339. package/dist/compiler/training/broker/index.js +10 -0
  340. package/dist/compiler/training/broker/main.d.ts +2 -0
  341. package/dist/compiler/training/broker/main.js +14 -0
  342. package/dist/compiler/training/broker/paths.d.ts +196 -0
  343. package/dist/compiler/training/broker/paths.js +241 -0
  344. package/dist/compiler/training/broker/processes.d.ts +42 -0
  345. package/dist/compiler/training/broker/processes.js +99 -0
  346. package/dist/compiler/training/broker/projection.d.ts +51 -0
  347. package/dist/compiler/training/broker/projection.js +76 -0
  348. package/dist/compiler/training/broker/provisioning.d.ts +87 -0
  349. package/dist/compiler/training/broker/provisioning.js +213 -0
  350. package/dist/compiler/training/broker/receipt.d.ts +77 -0
  351. package/dist/compiler/training/broker/receipt.js +110 -0
  352. package/dist/compiler/training/broker/registration.d.ts +41 -0
  353. package/dist/compiler/training/broker/registration.js +102 -0
  354. package/dist/compiler/training/broker/runtime.d.ts +25 -0
  355. package/dist/compiler/training/broker/runtime.js +173 -0
  356. package/dist/compiler/training/broker/seccompRoutes.d.ts +31 -0
  357. package/dist/compiler/training/broker/seccompRoutes.js +36 -0
  358. package/dist/compiler/training/broker/supervisor.d.ts +109 -0
  359. package/dist/compiler/training/broker/supervisor.js +173 -0
  360. package/dist/compiler/training/container/contract.d.ts +31 -0
  361. package/dist/compiler/training/container/contract.js +33 -0
  362. package/dist/compiler/training/container/index.d.ts +4 -0
  363. package/dist/compiler/training/container/index.js +2 -0
  364. package/dist/compiler/training/container/launch.d.ts +18 -0
  365. package/dist/compiler/training/container/launch.js +173 -0
  366. package/dist/compiler/training/container/prepare.d.ts +8 -0
  367. package/dist/compiler/training/container/prepare.js +80 -0
  368. package/dist/compiler/training/container/process.d.ts +14 -0
  369. package/dist/compiler/training/container/process.js +70 -0
  370. package/dist/compiler/training/container/security.d.ts +36 -0
  371. package/dist/compiler/training/container/security.js +58 -0
  372. package/dist/compiler/training/context.d.ts +7 -0
  373. package/dist/compiler/training/context.js +93 -0
  374. package/dist/compiler/training/contract.d.ts +142 -0
  375. package/dist/compiler/training/contract.js +34 -0
  376. package/dist/compiler/training/index.d.ts +4 -0
  377. package/dist/compiler/training/index.js +3 -0
  378. package/dist/compiler/training/preparation/assets/Dockerfile +98 -0
  379. package/dist/compiler/training/preparation/assets/package-lock.json +3787 -0
  380. package/dist/compiler/training/preparation/broker.d.ts +21 -0
  381. package/dist/compiler/training/preparation/broker.js +43 -0
  382. package/dist/compiler/training/preparation/contextModes.d.ts +12 -0
  383. package/dist/compiler/training/preparation/contextModes.js +38 -0
  384. package/dist/compiler/training/preparation/contract.d.ts +182 -0
  385. package/dist/compiler/training/preparation/contract.js +94 -0
  386. package/dist/compiler/training/preparation/copyAssets.d.ts +1 -0
  387. package/dist/compiler/training/preparation/copyAssets.js +8 -0
  388. package/dist/compiler/training/preparation/daimonParent.d.ts +42 -0
  389. package/dist/compiler/training/preparation/daimonParent.js +114 -0
  390. package/dist/compiler/training/preparation/files.d.ts +25 -0
  391. package/dist/compiler/training/preparation/files.js +85 -0
  392. package/dist/compiler/training/preparation/image.d.ts +28 -0
  393. package/dist/compiler/training/preparation/image.js +102 -0
  394. package/dist/compiler/training/preparation/index.d.ts +3 -0
  395. package/dist/compiler/training/preparation/index.js +2 -0
  396. package/dist/compiler/training/preparation/inputs.d.ts +23 -0
  397. package/dist/compiler/training/preparation/inputs.js +93 -0
  398. package/dist/compiler/training/preparation/prepare.d.ts +33 -0
  399. package/dist/compiler/training/preparation/prepare.js +186 -0
  400. package/dist/compiler/training/preparation/scratch.d.ts +19 -0
  401. package/dist/compiler/training/preparation/scratch.js +48 -0
  402. package/dist/compiler/training/repair/compatibility.d.ts +11 -0
  403. package/dist/compiler/training/repair/compatibility.js +34 -0
  404. package/dist/compiler/training/repair/contract.d.ts +506 -0
  405. package/dist/compiler/training/repair/contract.js +31 -0
  406. package/dist/compiler/training/repair/index.d.ts +3 -0
  407. package/dist/compiler/training/repair/index.js +3 -0
  408. package/dist/compiler/training/repair/prepare.d.ts +230 -0
  409. package/dist/compiler/training/repair/prepare.js +74 -0
  410. package/dist/compiler/training/repair/witness.d.ts +203 -0
  411. package/dist/compiler/training/repair/witness.js +42 -0
  412. package/dist/compiler/types.d.ts +84 -1
  413. package/dist/compiler/upProject.d.ts +31 -1
  414. package/dist/compiler/upProject.js +197 -22
  415. package/dist/compiler/upProjectHandoff.d.ts +62 -0
  416. package/dist/compiler/upProjectHandoff.js +204 -0
  417. package/dist/compiler/upReceipt.d.ts +36 -0
  418. package/dist/compiler/upReceipt.js +127 -0
  419. package/dist/compiler/updateProjectModels.js +43 -60
  420. package/dist/compiler/updateProjectRuntime.js +22 -35
  421. package/dist/compiler/updateProjectSurfaces.js +53 -47
  422. package/dist/compiler/view/types.d.ts +1 -1
  423. package/dist/compiler/workspaceBundleArtifacts.d.ts +3 -0
  424. package/dist/compiler/workspaceBundleArtifacts.js +106 -0
  425. package/dist/compiler/workspaceResources.d.ts +4 -1
  426. package/dist/compiler/workspaceResources.js +12 -7
  427. package/dist/compiler/worldBindings.d.ts +39 -0
  428. package/dist/compiler/worldBindings.js +247 -0
  429. package/dist/compiler/worldBindingsFile.d.ts +5 -0
  430. package/dist/compiler/worldBindingsFile.js +162 -0
  431. package/dist/deployment/artifactsExport.d.ts +49 -0
  432. package/dist/deployment/artifactsExport.js +217 -0
  433. package/dist/deployment/artifactsExportDocker.d.ts +48 -0
  434. package/dist/deployment/artifactsExportDocker.js +91 -0
  435. package/dist/deployment/artifactsExportPlan.d.ts +24 -0
  436. package/dist/deployment/artifactsExportPlan.js +185 -0
  437. package/dist/deployment/artifactsExportTypes.d.ts +50 -0
  438. package/dist/deployment/artifactsExportTypes.js +52 -0
  439. package/dist/deployment/buildImageCacheStore.d.ts +23 -0
  440. package/dist/deployment/buildImageCacheStore.js +54 -0
  441. package/dist/deployment/canaryCutover.d.ts +42 -0
  442. package/dist/deployment/canaryCutover.js +140 -0
  443. package/dist/deployment/candidateDiagnostics.d.ts +15 -0
  444. package/dist/deployment/candidateDiagnostics.js +90 -0
  445. package/dist/deployment/deploymentLifecycleCorrelation.d.ts +11 -0
  446. package/dist/deployment/deploymentLifecycleCorrelation.js +33 -0
  447. package/dist/deployment/dockerInspect.d.ts +9 -0
  448. package/dist/deployment/dockerInspect.js +24 -1
  449. package/dist/deployment/dockerLabels.d.ts +2 -0
  450. package/dist/deployment/dockerLabels.js +2 -0
  451. package/dist/deployment/dockerLogs.js +5 -10
  452. package/dist/deployment/dockerManager.d.ts +51 -0
  453. package/dist/deployment/dockerManager.js +124 -1
  454. package/dist/deployment/dockerProbeGateway.d.ts +17 -0
  455. package/dist/deployment/dockerProbeGateway.js +80 -6
  456. package/dist/deployment/dockerRecover.js +9 -1
  457. package/dist/deployment/dockerTeardown.d.ts +32 -0
  458. package/dist/deployment/dockerTeardown.js +61 -0
  459. package/dist/deployment/downDeployment.d.ts +39 -0
  460. package/dist/deployment/downDeployment.js +248 -0
  461. package/dist/deployment/downReceiptTypes.d.ts +36 -0
  462. package/dist/deployment/downReceiptTypes.js +45 -0
  463. package/dist/deployment/index.d.ts +20 -0
  464. package/dist/deployment/index.js +21 -0
  465. package/dist/deployment/lifecycleCompletion.d.ts +37 -0
  466. package/dist/deployment/lifecycleCompletion.js +236 -0
  467. package/dist/deployment/lifecycleCompletionContracts.d.ts +224 -0
  468. package/dist/deployment/lifecycleCompletionContracts.js +140 -0
  469. package/dist/deployment/lifecycleCompletionHeartbeat.d.ts +2 -0
  470. package/dist/deployment/lifecycleCompletionHeartbeat.js +50 -0
  471. package/dist/deployment/lifecycleCompletionLookup.d.ts +18 -0
  472. package/dist/deployment/lifecycleCompletionLookup.js +88 -0
  473. package/dist/deployment/lifecycleCompletionOwner.d.ts +8 -0
  474. package/dist/deployment/lifecycleCompletionOwner.js +31 -0
  475. package/dist/deployment/lifecycleCompletionParsing.d.ts +12 -0
  476. package/dist/deployment/lifecycleCompletionParsing.js +108 -0
  477. package/dist/deployment/lifecycleCompletionPaths.d.ts +12 -0
  478. package/dist/deployment/lifecycleCompletionPaths.js +19 -0
  479. package/dist/deployment/lifecycleCompletionPublication.d.ts +7 -0
  480. package/dist/deployment/lifecycleCompletionPublication.js +49 -0
  481. package/dist/deployment/lifecycleCompletionRecovery.d.ts +21 -0
  482. package/dist/deployment/lifecycleCompletionRecovery.js +56 -0
  483. package/dist/deployment/lifecycleCompletionRoot.d.ts +21 -0
  484. package/dist/deployment/lifecycleCompletionRoot.js +243 -0
  485. package/dist/deployment/lifecycleCompletionStore.d.ts +6 -0
  486. package/dist/deployment/lifecycleCompletionStore.js +151 -0
  487. package/dist/deployment/lifecycleUpRecords.d.ts +11 -0
  488. package/dist/deployment/lifecycleUpRecords.js +127 -0
  489. package/dist/deployment/native/AGENTS.md +11 -0
  490. package/dist/deployment/native/rename-noreplace-arm64 +0 -0
  491. package/dist/deployment/native/rename-noreplace-arm64.provenance.json +1 -0
  492. package/dist/deployment/native/rename-noreplace-x64 +0 -0
  493. package/dist/deployment/native/rename-noreplace-x64.provenance.json +1 -0
  494. package/dist/deployment/noReplaceActivation.d.ts +17 -0
  495. package/dist/deployment/noReplaceActivation.js +50 -0
  496. package/dist/deployment/organizationHandoffAuthorityFsBudget.d.ts +110 -0
  497. package/dist/deployment/organizationHandoffAuthorityFsBudget.js +156 -0
  498. package/dist/deployment/organizationHandoffAuthorityFsClient.d.ts +17 -0
  499. package/dist/deployment/organizationHandoffAuthorityFsClient.js +187 -0
  500. package/dist/deployment/organizationHandoffAuthorityFsElection.d.ts +21 -0
  501. package/dist/deployment/organizationHandoffAuthorityFsElection.js +57 -0
  502. package/dist/deployment/organizationHandoffAuthorityFsWorker.d.ts +1 -0
  503. package/dist/deployment/organizationHandoffAuthorityFsWorker.js +431 -0
  504. package/dist/deployment/organizationHandoffAuthorityFsWorkerParent.fixture.d.ts +1 -0
  505. package/dist/deployment/organizationHandoffAuthorityFsWorkerParent.fixture.js +26 -0
  506. package/dist/deployment/organizationHandoffAuthorityFsWorkerStall.fixture.d.ts +1 -0
  507. package/dist/deployment/organizationHandoffAuthorityFsWorkerStall.fixture.js +16 -0
  508. package/dist/deployment/organizationHandoffAuthorityStore.d.ts +41 -0
  509. package/dist/deployment/organizationHandoffAuthorityStore.js +355 -0
  510. package/dist/deployment/organizationHandoffAuthorityTypes.d.ts +76 -0
  511. package/dist/deployment/organizationHandoffAuthorityTypes.js +149 -0
  512. package/dist/deployment/organizationHandoffTypes.d.ts +29 -0
  513. package/dist/deployment/organizationHandoffTypes.js +80 -0
  514. package/dist/deployment/organizationReady.d.ts +54 -0
  515. package/dist/deployment/organizationReady.js +232 -0
  516. package/dist/deployment/privateArtifactsExport.d.ts +18 -0
  517. package/dist/deployment/privateArtifactsExport.js +80 -0
  518. package/dist/deployment/productStateClone.d.ts +43 -0
  519. package/dist/deployment/productStateClone.js +319 -0
  520. package/dist/deployment/record.d.ts +26 -1
  521. package/dist/deployment/record.js +49 -4
  522. package/dist/deployment/target.d.ts +1 -35
  523. package/dist/deployment/target.js +1 -96
  524. package/dist/deployment/upLifecycleRecoveryState.d.ts +23 -0
  525. package/dist/deployment/upLifecycleRecoveryState.js +12 -0
  526. package/dist/deployment/upReceiptTypes.d.ts +137 -0
  527. package/dist/deployment/upReceiptTypes.js +191 -0
  528. package/dist/deployment/workspaceResourceMigration.d.ts +55 -0
  529. package/dist/deployment/workspaceResourceMigration.js +315 -0
  530. package/dist/dev/project.d.ts +7 -0
  531. package/dist/dev/project.js +24 -9
  532. package/dist/distribution/buildDistributionReport.d.ts +2 -1
  533. package/dist/distribution/buildDistributionReport.js +2 -1
  534. package/dist/distribution/consumeImage.d.ts +2 -0
  535. package/dist/distribution/consumeImage.js +98 -73
  536. package/dist/distribution/consumeImageDaimonDocker.d.ts +3 -0
  537. package/dist/distribution/consumeImageDaimonDocker.js +45 -0
  538. package/dist/distribution/consumeImageLifecycle.d.ts +17 -0
  539. package/dist/distribution/consumeImageLifecycle.js +231 -0
  540. package/dist/distribution/consumeImageSupport.d.ts +12 -0
  541. package/dist/distribution/consumeImageSupport.js +15 -0
  542. package/dist/distribution/distributionReportSchema.d.ts +16 -1
  543. package/dist/distribution/distributionReportSchema.js +21 -3
  544. package/dist/distribution/dockerRunner.d.ts +6 -1
  545. package/dist/distribution/dockerRunner.js +31 -4
  546. package/dist/distribution/imageRuntimeAuth.d.ts +9 -1
  547. package/dist/distribution/imageRuntimeAuth.js +70 -1
  548. package/dist/distribution/index.d.ts +3 -3
  549. package/dist/distribution/index.js +2 -2
  550. package/dist/distribution/preflight.js +5 -1
  551. package/dist/distribution/types.d.ts +21 -1
  552. package/dist/distribution/types.js +4 -0
  553. package/dist/evidenceExportHelper/boundedExecutor.d.ts +3 -0
  554. package/dist/evidenceExportHelper/boundedExecutor.js +33 -0
  555. package/dist/evidenceExportHelper/helperProgram.mjs +156 -0
  556. package/dist/evidenceExportHelper/index.d.ts +4 -0
  557. package/dist/evidenceExportHelper/index.js +4 -0
  558. package/dist/evidenceExportHelper/preparedAuthority.d.ts +64 -0
  559. package/dist/evidenceExportHelper/preparedAuthority.js +228 -0
  560. package/dist/evidenceExportHelper/preparedBuilder.d.ts +10 -0
  561. package/dist/evidenceExportHelper/preparedBuilder.js +183 -0
  562. package/dist/evidenceExportHelper/preparedBuilderTypes.d.ts +19 -0
  563. package/dist/evidenceExportHelper/preparedBuilderTypes.js +1 -0
  564. package/dist/evidenceExportHelper/recipe.d.ts +7 -0
  565. package/dist/evidenceExportHelper/recipe.js +83 -0
  566. package/dist/filesystem/io.d.ts +2 -0
  567. package/dist/filesystem/io.js +16 -1
  568. package/dist/filesystem/paths.js +10 -1
  569. package/dist/ledger/causalConformanceCli.d.ts +1 -0
  570. package/dist/ledger/causalConformanceCli.js +41 -0
  571. package/dist/ledger/causeNamespace.d.ts +8 -0
  572. package/dist/ledger/causeNamespace.js +24 -0
  573. package/dist/ledger/conformance.d.ts +83 -0
  574. package/dist/ledger/conformance.js +259 -0
  575. package/dist/ledger/emitters.d.ts +76 -0
  576. package/dist/ledger/emitters.js +188 -0
  577. package/dist/ledger/index.d.ts +4 -0
  578. package/dist/ledger/index.js +4 -0
  579. package/dist/ledger/principal.d.ts +96 -0
  580. package/dist/ledger/principal.js +121 -0
  581. package/dist/manifest/executionSchemas.d.ts +27 -0
  582. package/dist/manifest/executionSchemas.js +21 -2
  583. package/dist/manifest/externalParticipantSchemas.d.ts +18 -0
  584. package/dist/manifest/externalParticipantSchemas.js +17 -0
  585. package/dist/manifest/index.d.ts +1 -0
  586. package/dist/manifest/index.js +1 -0
  587. package/dist/manifest/inlineAgentMember.d.ts +2 -0
  588. package/dist/manifest/inlineAgentMember.js +9 -0
  589. package/dist/manifest/loadManifest.js +14 -8
  590. package/dist/manifest/mcpSchemas.d.ts +18 -0
  591. package/dist/manifest/mcpSchemas.js +44 -0
  592. package/dist/manifest/memorySchemas.d.ts +245 -0
  593. package/dist/manifest/memorySchemas.js +148 -0
  594. package/dist/manifest/renderSpawnfile.js +22 -131
  595. package/dist/manifest/renderSpawnfileNetworks.js +20 -2
  596. package/dist/manifest/renderSpawnfileSurfaces.d.ts +2 -0
  597. package/dist/manifest/renderSpawnfileSurfaces.js +134 -0
  598. package/dist/manifest/renderSpawnfileWorkspace.js +5 -0
  599. package/dist/manifest/scheduleSchemas.d.ts +3 -1
  600. package/dist/manifest/scheduleSchemas.js +91 -5
  601. package/dist/manifest/schemas.d.ts +2034 -40
  602. package/dist/manifest/schemas.js +82 -33
  603. package/dist/manifest/surfaceSchemas.d.ts +17 -0
  604. package/dist/manifest/surfaceSchemas.js +24 -1
  605. package/dist/manifest/teamNetworkAccessSchemas.d.ts +6 -2
  606. package/dist/manifest/teamNetworkAccessSchemas.js +11 -0
  607. package/dist/manifest/teamNetworkAuthSchemas.d.ts +48 -0
  608. package/dist/manifest/teamNetworkAuthSchemas.js +103 -0
  609. package/dist/manifest/teamNetworkSchemas.d.ts +25 -190
  610. package/dist/manifest/teamNetworkSchemas.js +21 -317
  611. package/dist/manifest/teamNetworkServerSchemas.d.ts +155 -0
  612. package/dist/manifest/teamNetworkServerSchemas.js +215 -0
  613. package/dist/manifest/workspaceSchemas.d.ts +16 -0
  614. package/dist/manifest/workspaceSchemas.js +11 -0
  615. package/dist/ownership/siblingBuildFreshness.d.ts +20 -0
  616. package/dist/ownership/siblingBuildFreshness.js +20 -0
  617. package/dist/report/types.d.ts +173 -1
  618. package/dist/runtime/common.d.ts +63 -1
  619. package/dist/runtime/common.js +88 -3
  620. package/dist/runtime/container.d.ts +28 -1
  621. package/dist/runtime/container.js +78 -29
  622. package/dist/runtime/containerPackageOverrides.d.ts +37 -0
  623. package/dist/runtime/containerPackageOverrides.js +33 -0
  624. package/dist/runtime/daimon/adapter.d.ts +14 -0
  625. package/dist/runtime/daimon/adapter.js +243 -0
  626. package/dist/runtime/daimon/attention.d.ts +8 -0
  627. package/dist/runtime/daimon/attention.js +32 -0
  628. package/dist/runtime/daimon/config.d.ts +25 -0
  629. package/dist/runtime/daimon/config.js +272 -0
  630. package/dist/runtime/daimon/contractManifest.d.ts +295 -0
  631. package/dist/runtime/daimon/contractManifest.js +319 -0
  632. package/dist/runtime/daimon/grokModel.d.ts +19 -0
  633. package/dist/runtime/daimon/grokModel.js +33 -0
  634. package/dist/runtime/daimon/grokWorkerConfigBytes.d.ts +26 -0
  635. package/dist/runtime/daimon/grokWorkerConfigBytes.js +36 -0
  636. package/dist/runtime/daimon/grokWorkerContract.d.ts +22 -0
  637. package/dist/runtime/daimon/grokWorkerContract.js +48 -0
  638. package/dist/runtime/daimon/memory.d.ts +57 -0
  639. package/dist/runtime/daimon/memory.js +125 -0
  640. package/dist/runtime/daimon/runAuth.d.ts +51 -0
  641. package/dist/runtime/daimon/runAuth.js +279 -0
  642. package/dist/runtime/daimon/runtimeIdentity.d.ts +22 -0
  643. package/dist/runtime/daimon/runtimeIdentity.js +22 -0
  644. package/dist/runtime/daimon/scheduleAuthority.d.ts +3 -0
  645. package/dist/runtime/daimon/scheduleAuthority.js +17 -0
  646. package/dist/runtime/index.d.ts +6 -0
  647. package/dist/runtime/index.js +6 -0
  648. package/dist/runtime/install.d.ts +3 -0
  649. package/dist/runtime/install.js +3 -0
  650. package/dist/runtime/localDaimonAuthority.d.ts +11 -0
  651. package/dist/runtime/localDaimonAuthority.js +77 -0
  652. package/dist/runtime/mnemeMcp.d.ts +28 -0
  653. package/dist/runtime/mnemeMcp.js +135 -0
  654. package/dist/runtime/openclaw/adapter.js +17 -6
  655. package/dist/runtime/openclaw/mcp.d.ts +10 -0
  656. package/dist/runtime/openclaw/mcp.js +69 -0
  657. package/dist/runtime/openclaw/runAuth.js +2 -2
  658. package/dist/runtime/openclaw/scaffold.js +1 -1
  659. package/dist/runtime/openclaw/schedules.d.ts +38 -0
  660. package/dist/runtime/openclaw/schedules.js +74 -0
  661. package/dist/runtime/pi/adapter.d.ts +1 -2
  662. package/dist/runtime/pi/adapter.js +87 -58
  663. package/dist/runtime/pi/appActivitySource.js +114 -2
  664. package/dist/runtime/pi/appAgentConfig.d.ts +11 -0
  665. package/dist/runtime/pi/appAgentConfig.js +264 -0
  666. package/dist/runtime/pi/appCliEnginesSource.d.ts +1 -0
  667. package/dist/runtime/pi/appCliEnginesSource.js +183 -0
  668. package/dist/runtime/pi/appCliSource.d.ts +1 -0
  669. package/dist/runtime/pi/appCliSource.js +353 -0
  670. package/dist/runtime/pi/appControlSource.d.ts +1 -0
  671. package/dist/runtime/pi/appControlSource.js +390 -0
  672. package/dist/runtime/pi/appControlWakeIdentitySource.d.ts +1 -0
  673. package/dist/runtime/pi/appControlWakeIdentitySource.js +19 -0
  674. package/dist/runtime/pi/appCoreSource.d.ts +4 -1
  675. package/dist/runtime/pi/appCoreSource.js +104 -214
  676. package/dist/runtime/pi/appPreludeSource.js +140 -52
  677. package/dist/runtime/pi/appScheduleSource.d.ts +1 -0
  678. package/dist/runtime/pi/appScheduleSource.js +84 -0
  679. package/dist/runtime/pi/appScriptedEngine.d.ts +31 -0
  680. package/dist/runtime/pi/appScriptedEngine.js +42 -0
  681. package/dist/runtime/pi/appSource.d.ts +4 -1
  682. package/dist/runtime/pi/appSource.js +6 -2
  683. package/dist/runtime/pi/appTemplate.d.ts +8 -22
  684. package/dist/runtime/pi/appTemplate.js +9 -126
  685. package/dist/runtime/pi/appTemplateTypes.d.ts +64 -0
  686. package/dist/runtime/pi/appTemplateTypes.js +18 -0
  687. package/dist/runtime/pi/appWakeContextSource.d.ts +1 -0
  688. package/dist/runtime/pi/appWakeContextSource.js +398 -0
  689. package/dist/runtime/pi/containerTargets.d.ts +4 -0
  690. package/dist/runtime/pi/containerTargets.js +57 -0
  691. package/dist/runtime/pi/runAuth.js +126 -9
  692. package/dist/runtime/pi/testHelpers.d.ts +2 -0
  693. package/dist/runtime/pi/testHelpers.js +40 -0
  694. package/dist/runtime/picoclaw/adapter.js +25 -29
  695. package/dist/runtime/picoclaw/mcp.d.ts +4 -0
  696. package/dist/runtime/picoclaw/mcp.js +43 -0
  697. package/dist/runtime/picoclaw/memory.d.ts +7 -0
  698. package/dist/runtime/picoclaw/memory.js +17 -0
  699. package/dist/runtime/picoclaw/runAuth.js +1 -1
  700. package/dist/runtime/picoclaw/scaffold.js +1 -1
  701. package/dist/runtime/picoclaw/schedules.d.ts +26 -0
  702. package/dist/runtime/picoclaw/schedules.js +62 -3
  703. package/dist/runtime/registry.d.ts +3 -0
  704. package/dist/runtime/registry.js +19 -2
  705. package/dist/runtime/scheduleUtils.d.ts +3 -0
  706. package/dist/runtime/scheduleUtils.js +19 -0
  707. package/dist/runtime/types.d.ts +50 -2
  708. package/dist/runtime/usageLedger.d.ts +158 -0
  709. package/dist/runtime/usageLedger.js +269 -0
  710. package/dist/runtime/usageLedgerRead.d.ts +48 -0
  711. package/dist/runtime/usageLedgerRead.js +102 -0
  712. package/dist/runtime/usageRequestLedger.d.ts +42 -0
  713. package/dist/runtime/usageRequestLedger.js +72 -0
  714. package/dist/shared/daimonCodexDocker.d.ts +32 -0
  715. package/dist/shared/daimonCodexDocker.js +120 -0
  716. package/dist/shared/daimonGrokSeccompProfile.d.ts +10 -0
  717. package/dist/shared/daimonGrokSeccompProfile.js +11 -0
  718. package/dist/shared/errors.d.ts +1 -1
  719. package/dist/shared/errors.js +2 -2
  720. package/dist/shared/index.d.ts +3 -0
  721. package/dist/shared/index.js +3 -0
  722. package/dist/shared/redaction.d.ts +2 -0
  723. package/dist/shared/redaction.js +10 -0
  724. package/dist/shared/types.d.ts +1 -1
  725. package/dist/shared/volumeNames.d.ts +6 -0
  726. package/dist/shared/volumeNames.js +14 -0
  727. package/dist/status/buildStatus.d.ts +1 -0
  728. package/dist/status/buildStatus.js +2 -0
  729. package/dist/status/compileReport.d.ts +22 -0
  730. package/dist/status/compileReport.js +16 -2
  731. package/dist/status/compiledProbeCollection.d.ts +21 -0
  732. package/dist/status/compiledProbeCollection.js +27 -0
  733. package/dist/status/imageStatusReport.js +6 -0
  734. package/dist/status/index.d.ts +3 -0
  735. package/dist/status/index.js +3 -0
  736. package/dist/status/lifecycleProbes.d.ts +19 -0
  737. package/dist/status/lifecycleProbes.js +174 -0
  738. package/dist/status/moltnetProbes.d.ts +7 -8
  739. package/dist/status/moltnetProbes.js +27 -198
  740. package/dist/status/moltnetWiringProbes.d.ts +19 -0
  741. package/dist/status/moltnetWiringProbes.js +178 -0
  742. package/dist/target/cleanupRun.d.ts +41 -0
  743. package/dist/target/cleanupRun.js +139 -0
  744. package/dist/target/cleanupRunDocker.d.ts +16 -0
  745. package/dist/target/cleanupRunDocker.js +66 -0
  746. package/dist/target/cleanupRunDockerPreflight.d.ts +17 -0
  747. package/dist/target/cleanupRunDockerPreflight.js +224 -0
  748. package/dist/target/composedPreparation.d.ts +205 -0
  749. package/dist/target/composedPreparation.js +223 -0
  750. package/dist/target/containerBundle.d.ts +82 -0
  751. package/dist/target/containerBundle.js +243 -0
  752. package/dist/target/containerBundleArchive.d.ts +31 -0
  753. package/dist/target/containerBundleArchive.js +140 -0
  754. package/dist/target/containerBundleAuthority.d.ts +25 -0
  755. package/dist/target/containerBundleAuthority.js +65 -0
  756. package/dist/target/containerBundleContracts.d.ts +114 -0
  757. package/dist/target/containerBundleContracts.js +173 -0
  758. package/dist/target/containerBundleFilesystemStore.d.ts +3 -0
  759. package/dist/target/containerBundleFilesystemStore.js +247 -0
  760. package/dist/target/containerBundlePolicy.d.ts +33 -0
  761. package/dist/target/containerBundlePolicy.js +64 -0
  762. package/dist/target/containerBundleStore.d.ts +127 -0
  763. package/dist/target/containerBundleStore.js +284 -0
  764. package/dist/target/contracts.d.ts +538 -0
  765. package/dist/target/contracts.js +373 -0
  766. package/dist/target/dockerArtifactIdentityTypes.d.ts +56 -0
  767. package/dist/target/dockerArtifactIdentityTypes.js +1 -0
  768. package/dist/target/dockerArtifactInspection.d.ts +40 -0
  769. package/dist/target/dockerArtifactInspection.js +125 -0
  770. package/dist/target/dockerArtifacts.d.ts +21 -0
  771. package/dist/target/dockerArtifacts.js +110 -0
  772. package/dist/target/dockerArtifactsProvider.d.ts +41 -0
  773. package/dist/target/dockerArtifactsProvider.js +476 -0
  774. package/dist/target/dockerBaseImage.d.ts +2 -0
  775. package/dist/target/dockerBaseImage.js +11 -0
  776. package/dist/target/dockerCommandExecutor.d.ts +38 -0
  777. package/dist/target/dockerCommandExecutor.js +251 -0
  778. package/dist/target/dockerCommandExecutorCore.d.ts +35 -0
  779. package/dist/target/dockerCommandExecutorCore.js +275 -0
  780. package/dist/target/dockerContainerBundleBuilder.d.ts +8 -0
  781. package/dist/target/dockerContainerBundleBuilder.js +256 -0
  782. package/dist/target/dockerContextSnapshot.d.ts +21 -0
  783. package/dist/target/dockerContextSnapshot.js +158 -0
  784. package/dist/target/dockerEndpointFingerprint.d.ts +1 -0
  785. package/dist/target/dockerEndpointFingerprint.js +9 -0
  786. package/dist/target/dockerPreparedArtifact.d.ts +48 -0
  787. package/dist/target/dockerPreparedArtifact.js +131 -0
  788. package/dist/target/dockerProjectionJson.d.ts +1 -0
  789. package/dist/target/dockerProjectionJson.js +80 -0
  790. package/dist/target/dockerPublicArtifactSnapshot.d.ts +17 -0
  791. package/dist/target/dockerPublicArtifactSnapshot.js +83 -0
  792. package/dist/target/dockerResources.d.ts +26 -0
  793. package/dist/target/dockerResources.js +162 -0
  794. package/dist/target/dockerResourcesProvider.d.ts +44 -0
  795. package/dist/target/dockerResourcesProvider.js +207 -0
  796. package/dist/target/dockerSecrets.d.ts +39 -0
  797. package/dist/target/dockerSecrets.js +249 -0
  798. package/dist/target/dockerSecretsAuthority.d.ts +26 -0
  799. package/dist/target/dockerSecretsAuthority.js +216 -0
  800. package/dist/target/dockerSecretsLifecycle.d.ts +25 -0
  801. package/dist/target/dockerSecretsLifecycle.js +133 -0
  802. package/dist/target/dockerSecretsProvider.d.ts +68 -0
  803. package/dist/target/dockerSecretsProvider.js +329 -0
  804. package/dist/target/dockerTarget.d.ts +53 -0
  805. package/dist/target/dockerTarget.js +48 -0
  806. package/dist/target/dockerTargetBinding.d.ts +13 -0
  807. package/dist/target/dockerTargetBinding.js +95 -0
  808. package/dist/target/dockerTargetExecFile.d.ts +19 -0
  809. package/dist/target/dockerTargetExecFile.js +194 -0
  810. package/dist/target/dockerWorldClock.d.ts +17 -0
  811. package/dist/target/dockerWorldClock.js +111 -0
  812. package/dist/target/dockerWorldReadiness.d.ts +17 -0
  813. package/dist/target/dockerWorldReadiness.js +119 -0
  814. package/dist/target/dockerWorldService.d.ts +23 -0
  815. package/dist/target/dockerWorldService.js +216 -0
  816. package/dist/target/dockerWorldServiceAuthority.d.ts +80 -0
  817. package/dist/target/dockerWorldServiceAuthority.js +182 -0
  818. package/dist/target/dockerWorldServiceLifecycle.d.ts +41 -0
  819. package/dist/target/dockerWorldServiceLifecycle.js +275 -0
  820. package/dist/target/dockerWorldServiceProvider.d.ts +64 -0
  821. package/dist/target/dockerWorldServiceProvider.js +330 -0
  822. package/dist/target/dockerWorldServiceStore.d.ts +73 -0
  823. package/dist/target/dockerWorldServiceStore.js +367 -0
  824. package/dist/target/evidenceExport.d.ts +57 -0
  825. package/dist/target/evidenceExport.js +527 -0
  826. package/dist/target/evidenceExportArchive.d.ts +10 -0
  827. package/dist/target/evidenceExportArchive.js +302 -0
  828. package/dist/target/evidenceExportContract.d.ts +27 -0
  829. package/dist/target/evidenceExportContract.js +40 -0
  830. package/dist/target/evidenceExportOperationsTestKit.d.ts +87 -0
  831. package/dist/target/evidenceExportOperationsTestKit.js +312 -0
  832. package/dist/target/evidenceExportProvider.d.ts +87 -0
  833. package/dist/target/evidenceExportProvider.js +197 -0
  834. package/dist/target/evidenceExportPublicationTypes.d.ts +16 -0
  835. package/dist/target/evidenceExportPublicationTypes.js +1 -0
  836. package/dist/target/evidenceExportStore.d.ts +70 -0
  837. package/dist/target/evidenceExportStore.js +498 -0
  838. package/dist/target/evidenceExportStorePublication.d.ts +7 -0
  839. package/dist/target/evidenceExportStorePublication.js +395 -0
  840. package/dist/target/handles.d.ts +20 -0
  841. package/dist/target/handles.js +56 -0
  842. package/dist/target/index.d.ts +12 -0
  843. package/dist/target/index.js +11 -0
  844. package/dist/target/journal.d.ts +59 -0
  845. package/dist/target/journal.js +529 -0
  846. package/dist/target/journalFilesystem.d.ts +3 -0
  847. package/dist/target/journalFilesystem.js +111 -0
  848. package/dist/target/journalRoot.d.ts +4 -0
  849. package/dist/target/journalRoot.js +6 -0
  850. package/dist/target/organizationAttachment.d.ts +23 -0
  851. package/dist/target/organizationAttachment.js +263 -0
  852. package/dist/target/organizationAttachmentAuthority.d.ts +65 -0
  853. package/dist/target/organizationAttachmentAuthority.js +161 -0
  854. package/dist/target/organizationAttachmentLifecycle.d.ts +17 -0
  855. package/dist/target/organizationAttachmentLifecycle.js +101 -0
  856. package/dist/target/organizationAttachmentProvider.d.ts +76 -0
  857. package/dist/target/organizationAttachmentProvider.js +289 -0
  858. package/dist/target/organizationAttachmentStore.d.ts +51 -0
  859. package/dist/target/organizationAttachmentStore.js +316 -0
  860. package/dist/target/publicArtifactSnapshot.d.ts +72 -0
  861. package/dist/target/publicArtifactSnapshot.js +184 -0
  862. package/dist/target/topologyActivation.d.ts +51 -0
  863. package/dist/target/topologyActivation.js +149 -0
  864. package/dist/target/topologyAttestation.d.ts +37 -0
  865. package/dist/target/topologyAttestation.js +300 -0
  866. package/dist/target/topologyAttestationErrors.d.ts +1 -0
  867. package/dist/target/topologyAttestationErrors.js +1 -0
  868. package/dist/target/worldClock.d.ts +60 -0
  869. package/dist/target/worldClock.js +129 -0
  870. package/dist/target/worldReadiness.d.ts +103 -0
  871. package/dist/target/worldReadiness.js +153 -0
  872. package/examples/README.md +45 -0
  873. package/examples/agent-with-subagents/AGENTS.md +3 -0
  874. package/examples/agent-with-subagents/Spawnfile +30 -0
  875. package/examples/agent-with-subagents/subagents/critic/AGENTS.md +3 -0
  876. package/examples/agent-with-subagents/subagents/critic/Spawnfile +15 -0
  877. package/examples/agent-with-subagents/subagents/researcher/AGENTS.md +3 -0
  878. package/examples/agent-with-subagents/subagents/researcher/Spawnfile +17 -0
  879. package/examples/daimon-org/Spawnfile +68 -0
  880. package/examples/daimon-org/TEAM.md +4 -0
  881. package/examples/daimon-org/agents/mapper/AGENTS.md +4 -0
  882. package/examples/daimon-org/agents/mapper/Spawnfile +37 -0
  883. package/examples/daimon-org/shared/skills/file-note/SKILL.md +9 -0
  884. package/examples/daimon-org/teams/review/Spawnfile +53 -0
  885. package/examples/daimon-org/teams/review/agents/reviewer/AGENTS.md +4 -0
  886. package/examples/daimon-org/teams/review/agents/reviewer/Spawnfile +37 -0
  887. package/examples/daimon-public-host/AGENTS.md +3 -0
  888. package/examples/daimon-public-host/Spawnfile +21 -0
  889. package/examples/distribution-org/Spawnfile +43 -0
  890. package/examples/distribution-org/TEAM.md +4 -0
  891. package/examples/distribution-org/agents/coordinator/AGENTS.md +1 -0
  892. package/examples/distribution-org/agents/coordinator/Spawnfile +20 -0
  893. package/examples/distribution-org/agents/researcher/AGENTS.md +1 -0
  894. package/examples/distribution-org/agents/researcher/Spawnfile +20 -0
  895. package/examples/jungian-daimon-org/Spawnfile +41 -0
  896. package/examples/jungian-daimon-org/TEAM.md +21 -0
  897. package/examples/jungian-daimon-org/teams/luna/Spawnfile +47 -0
  898. package/examples/jungian-daimon-org/teams/luna/TEAM.md +4 -0
  899. package/examples/jungian-daimon-org/teams/luna/agents/animus/AGENTS.md +10 -0
  900. package/examples/jungian-daimon-org/teams/luna/agents/animus/Spawnfile +33 -0
  901. package/examples/jungian-daimon-org/teams/luna/agents/representative/AGENTS.md +21 -0
  902. package/examples/jungian-daimon-org/teams/luna/agents/representative/Spawnfile +30 -0
  903. package/examples/jungian-daimon-org/teams/luna/agents/shadow/AGENTS.md +10 -0
  904. package/examples/jungian-daimon-org/teams/luna/agents/shadow/Spawnfile +33 -0
  905. package/examples/jungian-daimon-org/teams/selene/Spawnfile +47 -0
  906. package/examples/jungian-daimon-org/teams/selene/TEAM.md +4 -0
  907. package/examples/jungian-daimon-org/teams/selene/agents/animus/AGENTS.md +10 -0
  908. package/examples/jungian-daimon-org/teams/selene/agents/animus/Spawnfile +33 -0
  909. package/examples/jungian-daimon-org/teams/selene/agents/representative/AGENTS.md +19 -0
  910. package/examples/jungian-daimon-org/teams/selene/agents/representative/Spawnfile +33 -0
  911. package/examples/jungian-daimon-org/teams/selene/agents/shadow/AGENTS.md +10 -0
  912. package/examples/jungian-daimon-org/teams/selene/agents/shadow/Spawnfile +30 -0
  913. package/examples/mixed-runtime-org/Spawnfile +71 -0
  914. package/examples/mixed-runtime-org/TEAM.md +8 -0
  915. package/examples/mixed-runtime-org/agents/analyst/AGENTS.md +8 -0
  916. package/examples/mixed-runtime-org/agents/analyst/Spawnfile +27 -0
  917. package/examples/mixed-runtime-org/agents/conductor/AGENTS.md +8 -0
  918. package/examples/mixed-runtime-org/agents/conductor/Spawnfile +27 -0
  919. package/examples/mixed-runtime-org/agents/localist/AGENTS.md +7 -0
  920. package/examples/mixed-runtime-org/agents/localist/Spawnfile +50 -0
  921. package/examples/moltnet-team-chat/Spawnfile +43 -0
  922. package/examples/moltnet-team-chat/TEAM.md +5 -0
  923. package/examples/moltnet-team-chat/agents/coordinator/AGENTS.md +9 -0
  924. package/examples/moltnet-team-chat/agents/coordinator/Spawnfile +26 -0
  925. package/examples/moltnet-team-chat/teams/analysis/Spawnfile +23 -0
  926. package/examples/moltnet-team-chat/teams/analysis/TEAM.md +3 -0
  927. package/examples/moltnet-team-chat/teams/analysis/agents/observer/AGENTS.md +5 -0
  928. package/examples/moltnet-team-chat/teams/analysis/agents/observer/Spawnfile +19 -0
  929. package/examples/moltnet-team-chat/teams/analysis/agents/representative/AGENTS.md +5 -0
  930. package/examples/moltnet-team-chat/teams/analysis/agents/representative/Spawnfile +19 -0
  931. package/examples/moltnet-team-chat/teams/field/Spawnfile +41 -0
  932. package/examples/moltnet-team-chat/teams/field/TEAM.md +3 -0
  933. package/examples/moltnet-team-chat/teams/field/agents/observer/AGENTS.md +5 -0
  934. package/examples/moltnet-team-chat/teams/field/agents/observer/Spawnfile +26 -0
  935. package/examples/moltnet-team-chat/teams/field/agents/representative/AGENTS.md +11 -0
  936. package/examples/moltnet-team-chat/teams/field/agents/representative/Spawnfile +26 -0
  937. package/examples/single-agent/AGENTS.md +3 -0
  938. package/examples/single-agent/HEARTBEAT.md +3 -0
  939. package/examples/single-agent/IDENTITY.md +3 -0
  940. package/examples/single-agent/MEMORY.md +3 -0
  941. package/examples/single-agent/SOUL.md +3 -0
  942. package/examples/single-agent/Spawnfile +41 -0
  943. package/examples/single-agent/skills/web_search/SKILL.md +6 -0
  944. package/moltnet-releases.json +21 -0
  945. package/package.json +57 -14
  946. package/runtimes.yaml +11 -23
  947. package/dist/runtime/openclaw/scaffold-assets/CLAUDE.md +0 -5
  948. package/dist/runtime/picoclaw/scaffold-assets/CLAUDE.md +0 -5
  949. /package/dist/runtime/openclaw/scaffold-assets/{AGENTS.md → WORKSPACE_AGENTS.md} +0 -0
  950. /package/dist/runtime/picoclaw/scaffold-assets/{AGENTS.md → WORKSPACE_AGENTS.md} +0 -0
@@ -0,0 +1,159 @@
1
+ import { createHash } from "node:crypto";
2
+ import { readFile, readdir, stat } from "node:fs/promises";
3
+ import path from "node:path";
4
+ export const DOCKER_BUILD_CONTEXT_IGNORE_PATTERNS = Object.freeze([
5
+ "runtimes/",
6
+ "spawnfile-report.json",
7
+ "deployments/"
8
+ ]);
9
+ const compareBytes = (left, right) => Buffer.compare(Buffer.from(left), Buffer.from(right));
10
+ const normalizeContextPath = (relativePath) => relativePath.replaceAll(path.sep, "/").replace(/^\.\/+/u, "");
11
+ const normalizeContextPathForContainment = (relativePath) => {
12
+ const normalized = path.posix.normalize(normalizeContextPath(relativePath));
13
+ return normalized === "." ? "" : normalized.replace(/\/+$/u, "");
14
+ };
15
+ export const matchesDockerBuildIgnorePattern = (relativePath, pattern) => {
16
+ const normalizedPath = normalizeContextPath(relativePath).replace(/\/+$/u, "");
17
+ const normalizedPattern = normalizeContextPath(pattern);
18
+ if (normalizedPattern.endsWith("/")) {
19
+ const directory = normalizedPattern.replace(/\/+$/u, "");
20
+ return normalizedPath === directory || normalizedPath.startsWith(`${directory}/`);
21
+ }
22
+ return normalizedPath === normalizedPattern;
23
+ };
24
+ export const createDockerIgnoreContent = () => `${DOCKER_BUILD_CONTEXT_IGNORE_PATTERNS.join("\n")}\n`;
25
+ const isIgnoredContextPath = (relativePath) => DOCKER_BUILD_CONTEXT_IGNORE_PATTERNS.some((pattern) => matchesDockerBuildIgnorePattern(relativePath, pattern));
26
+ const walkContextFiles = async (directory, relativeDirectory = "") => {
27
+ const entries = await readdir(path.join(directory, relativeDirectory), {
28
+ withFileTypes: true
29
+ });
30
+ const files = [];
31
+ for (const entry of entries) {
32
+ const relativePath = normalizeContextPath(path.join(relativeDirectory, entry.name));
33
+ if (isIgnoredContextPath(relativePath)) {
34
+ continue;
35
+ }
36
+ if (entry.isDirectory()) {
37
+ files.push(...await walkContextFiles(directory, relativePath));
38
+ continue;
39
+ }
40
+ const metadata = await stat(path.join(directory, relativePath));
41
+ if (metadata.isFile()) {
42
+ files.push({
43
+ mode: metadata.mode & 0o777,
44
+ path: relativePath,
45
+ size: metadata.size
46
+ });
47
+ }
48
+ }
49
+ return files;
50
+ };
51
+ export const listDockerBuildContextFiles = async (directory) => (await walkContextFiles(path.resolve(directory))).sort((left, right) => compareBytes(left.path, right.path));
52
+ const canonicalJson = (value) => {
53
+ if (Array.isArray(value)) {
54
+ return `[${value.map((entry) => canonicalJson(entry)).join(",")}]`;
55
+ }
56
+ if (value !== null && typeof value === "object") {
57
+ return `{${Object.entries(value)
58
+ .sort(([left], [right]) => compareBytes(left, right))
59
+ .map(([key, entry]) => `${JSON.stringify(key)}:${canonicalJson(entry)}`)
60
+ .join(",")}}`;
61
+ }
62
+ return JSON.stringify(value);
63
+ };
64
+ const createFileContentHash = async (directory, relativePath) => {
65
+ const content = await readFile(path.join(directory, relativePath));
66
+ if (relativePath !== "distribution-report.json") {
67
+ return createHash("sha256").update(content).digest("hex");
68
+ }
69
+ const report = JSON.parse(content.toString("utf8"));
70
+ const { generated_at: _generatedAt, ...normalizedReport } = report;
71
+ return createHash("sha256")
72
+ .update(canonicalJson(normalizedReport))
73
+ .digest("hex");
74
+ };
75
+ export const createDockerBuildContextDigest = async (directory) => {
76
+ const resolvedDirectory = path.resolve(directory);
77
+ const digest = createHash("sha256");
78
+ for (const file of await listDockerBuildContextFiles(resolvedDirectory)) {
79
+ const contentHash = await createFileContentHash(resolvedDirectory, file.path);
80
+ digest.update(`${file.path}\0${file.mode}\0${contentHash}`);
81
+ }
82
+ return `sha256:${digest.digest("hex")}`;
83
+ };
84
+ const createLogicalDockerfileLines = (dockerfile) => {
85
+ const logicalLines = [];
86
+ let current = "";
87
+ for (const line of dockerfile.split(/\r?\n/u)) {
88
+ const trimmed = line.trim();
89
+ current = current.length === 0 ? trimmed : `${current} ${trimmed}`;
90
+ if (current.endsWith("\\")) {
91
+ current = current.slice(0, -1).trimEnd();
92
+ continue;
93
+ }
94
+ logicalLines.push(current);
95
+ current = "";
96
+ }
97
+ if (current.length > 0) {
98
+ logicalLines.push(current);
99
+ }
100
+ return logicalLines;
101
+ };
102
+ const tokenizeDockerInstruction = (source) => {
103
+ const tokens = [];
104
+ const pattern = /"((?:\\.|[^"])*)"|'([^']*)'|([^\s]+)/gu;
105
+ for (const match of source.matchAll(pattern)) {
106
+ if (match[1] !== undefined) {
107
+ tokens.push(JSON.parse(`"${match[1]}"`));
108
+ }
109
+ else {
110
+ tokens.push(match[2] ?? match[3] ?? "");
111
+ }
112
+ }
113
+ return tokens;
114
+ };
115
+ const stripInstructionFlags = (tokens) => {
116
+ let index = 0;
117
+ while (tokens[index]?.startsWith("--")) {
118
+ index += tokens[index]?.includes("=") ? 1 : 2;
119
+ }
120
+ return tokens.slice(index);
121
+ };
122
+ export const extractDockerBuildContextSources = (dockerfile) => {
123
+ const sources = [];
124
+ for (const line of createLogicalDockerfileLines(dockerfile)) {
125
+ const match = line.match(/^(COPY|ADD)\s+(.+)$/iu);
126
+ if (!match) {
127
+ continue;
128
+ }
129
+ const instruction = match[1].toUpperCase();
130
+ const argumentsSource = match[2].trim();
131
+ const rawTokens = argumentsSource.startsWith("[")
132
+ ? JSON.parse(argumentsSource)
133
+ : tokenizeDockerInstruction(argumentsSource);
134
+ if (instruction === "COPY"
135
+ && rawTokens.some((token) => token === "--from" || token.startsWith("--from="))) {
136
+ continue;
137
+ }
138
+ const tokens = stripInstructionFlags(rawTokens);
139
+ for (const source of tokens.slice(0, -1)) {
140
+ if (instruction === "ADD" && /^(?:https?|git):\/\//u.test(source)) {
141
+ continue;
142
+ }
143
+ sources.push(normalizeContextPath(source));
144
+ }
145
+ }
146
+ return sources;
147
+ };
148
+ export const findIgnoredDockerBuildSources = (dockerfile, patterns = DOCKER_BUILD_CONTEXT_IGNORE_PATTERNS) => extractDockerBuildContextSources(dockerfile).flatMap((source) => {
149
+ const normalizedSource = normalizeContextPathForContainment(source);
150
+ return patterns.flatMap((pattern) => {
151
+ const normalizedPattern = normalizeContextPathForContainment(pattern);
152
+ const swallowsIgnoredPath = normalizedSource.length === 0
153
+ || normalizedPattern === normalizedSource
154
+ || normalizedPattern.startsWith(`${normalizedSource}/`);
155
+ return matchesDockerBuildIgnorePattern(source, pattern) || swallowsIgnoredPath
156
+ ? [{ pattern, source }]
157
+ : [];
158
+ });
159
+ });
@@ -0,0 +1,30 @@
1
+ import type { BuildImageCacheEntry } from "../deployment/buildImageCacheStore.js";
2
+ export declare const DOCKER_IMAGE_INSPECT_MAX_OUTPUT_BYTES: number;
3
+ export declare const DOCKER_IMAGE_INSPECT_TIMEOUT_MS = 5000;
4
+ export interface DockerImageInspection {
5
+ id: string;
6
+ labels: Record<string, string>;
7
+ }
8
+ export interface DockerImageInspectInput {
9
+ dockerCommand?: string;
10
+ dockerContext?: string | null;
11
+ imageTag: string;
12
+ }
13
+ export interface DockerImageInspectCommandOptions {
14
+ encoding: "utf8";
15
+ maxBuffer: number;
16
+ timeout: number;
17
+ }
18
+ export type DockerImageInspectCommandRunner = (command: string, args: string[], options: DockerImageInspectCommandOptions) => Promise<{
19
+ stdout: string;
20
+ }>;
21
+ export type DockerImageInspector = (input: DockerImageInspectInput) => Promise<DockerImageInspection | null>;
22
+ export declare const createDockerImageInspector: (runner?: DockerImageInspectCommandRunner) => DockerImageInspector;
23
+ export declare const inspectDockerImage: DockerImageInspector;
24
+ export interface DockerBuildSkipInput extends DockerImageInspectInput {
25
+ cacheEntry: BuildImageCacheEntry | null;
26
+ compileFingerprint: string;
27
+ contextDigest: string;
28
+ imageInspector?: DockerImageInspector;
29
+ }
30
+ export declare const shouldSkipDockerBuild: (input: DockerBuildSkipInput) => Promise<boolean>;
@@ -0,0 +1,81 @@
1
+ import { execFile as execFileCallback } from "node:child_process";
2
+ export const DOCKER_IMAGE_INSPECT_MAX_OUTPUT_BYTES = 64 * 1024;
3
+ export const DOCKER_IMAGE_INSPECT_TIMEOUT_MS = 5_000;
4
+ const runDockerImageInspectCommand = async (command, args, options) => new Promise((resolve, reject) => {
5
+ execFileCallback(command, args, options, (error, stdout) => {
6
+ if (error) {
7
+ reject(error);
8
+ return;
9
+ }
10
+ resolve({ stdout });
11
+ });
12
+ });
13
+ const parseDockerImageInspection = (source) => {
14
+ try {
15
+ const parsed = JSON.parse(source);
16
+ if (typeof parsed.id !== "string" || parsed.id.length === 0) {
17
+ return null;
18
+ }
19
+ if (parsed.labels === null || parsed.labels === undefined) {
20
+ return { id: parsed.id, labels: {} };
21
+ }
22
+ if (typeof parsed.labels !== "object" || Array.isArray(parsed.labels)) {
23
+ return null;
24
+ }
25
+ const labels = Object.fromEntries(Object.entries(parsed.labels).filter((entry) => typeof entry[1] === "string"));
26
+ if (Object.keys(labels).length !== Object.keys(parsed.labels).length) {
27
+ return null;
28
+ }
29
+ return { id: parsed.id, labels };
30
+ }
31
+ catch {
32
+ return null;
33
+ }
34
+ };
35
+ export const createDockerImageInspector = (runner = runDockerImageInspectCommand) => async (input) => {
36
+ const args = input.dockerContext
37
+ ? ["--context", input.dockerContext, "image", "inspect", input.imageTag]
38
+ : ["image", "inspect", input.imageTag];
39
+ args.push("--format", '{"id":{{json .Id}},"labels":{{json .Config.Labels}}}');
40
+ try {
41
+ const { stdout } = await runner(input.dockerCommand ?? "docker", args, {
42
+ encoding: "utf8",
43
+ maxBuffer: DOCKER_IMAGE_INSPECT_MAX_OUTPUT_BYTES,
44
+ timeout: DOCKER_IMAGE_INSPECT_TIMEOUT_MS
45
+ });
46
+ if (Buffer.byteLength(stdout) > DOCKER_IMAGE_INSPECT_MAX_OUTPUT_BYTES) {
47
+ return null;
48
+ }
49
+ return parseDockerImageInspection(stdout);
50
+ }
51
+ catch {
52
+ return null;
53
+ }
54
+ };
55
+ export const inspectDockerImage = createDockerImageInspector();
56
+ export const shouldSkipDockerBuild = async (input) => {
57
+ const entry = input.cacheEntry;
58
+ if (!entry) {
59
+ return false;
60
+ }
61
+ if (entry.contextDigest !== input.contextDigest) {
62
+ return false;
63
+ }
64
+ if (entry.imageTag !== input.imageTag) {
65
+ return false;
66
+ }
67
+ if (entry.compileFingerprint !== input.compileFingerprint) {
68
+ return false;
69
+ }
70
+ if (entry.dockerContext !== (input.dockerContext ?? null)) {
71
+ return false;
72
+ }
73
+ try {
74
+ const inspection = await (input.imageInspector ?? inspectDockerImage)(input);
75
+ return inspection?.id === entry.imageId
76
+ && inspection.labels["com.spawnfile.compile_fingerprint"] === entry.compileFingerprint;
77
+ }
78
+ catch {
79
+ return false;
80
+ }
81
+ };
@@ -4,6 +4,10 @@ export * from "./buildProject.js";
4
4
  export * from "./publishProject.js";
5
5
  export * from "./upProject.js";
6
6
  export * from "./compileProject.js";
7
+ export * from "./containerBackedMountRender.js";
8
+ export * from "./deploymentLineage.js";
9
+ export * from "./dockerBuildContext.js";
10
+ export * from "./dockerBuildSkip.js";
7
11
  export * from "./initProject.js";
8
12
  export * from "./moltnetRoomMemberships.js";
9
13
  export * from "./runProject.js";
@@ -12,4 +16,7 @@ export * from "./types.js";
12
16
  export * from "./updateProjectModels.js";
13
17
  export * from "./updateProjectRuntime.js";
14
18
  export * from "./updateProjectSurfaces.js";
19
+ export * from "./upReceipt.js";
20
+ export * from "./worldBindings.js";
15
21
  export * from "./view/index.js";
22
+ export * from "./training/index.js";
@@ -4,6 +4,10 @@ export * from "./buildProject.js";
4
4
  export * from "./publishProject.js";
5
5
  export * from "./upProject.js";
6
6
  export * from "./compileProject.js";
7
+ export * from "./containerBackedMountRender.js";
8
+ export * from "./deploymentLineage.js";
9
+ export * from "./dockerBuildContext.js";
10
+ export * from "./dockerBuildSkip.js";
7
11
  export * from "./initProject.js";
8
12
  export * from "./moltnetRoomMemberships.js";
9
13
  export * from "./runProject.js";
@@ -12,4 +16,7 @@ export * from "./types.js";
12
16
  export * from "./updateProjectModels.js";
13
17
  export * from "./updateProjectRuntime.js";
14
18
  export * from "./updateProjectSurfaces.js";
19
+ export * from "./upReceipt.js";
20
+ export * from "./worldBindings.js";
15
21
  export * from "./view/index.js";
22
+ export * from "./training/index.js";
@@ -2,7 +2,9 @@ export interface InitProjectOptions {
2
2
  directory?: string;
3
3
  runtime?: string;
4
4
  team?: boolean;
5
+ template?: string;
5
6
  }
7
+ export declare const listInitTemplates: () => Promise<string[]>;
6
8
  export declare const initProject: (options?: InitProjectOptions) => Promise<{
7
9
  createdFiles: string[];
8
10
  directory: string;
@@ -1,9 +1,22 @@
1
1
  import path from "node:path";
2
- import { ensureDirectory, ensureGitignoreEntry, fileExists, writeUtf8File } from "../filesystem/index.js";
2
+ import { readdir } from "node:fs/promises";
3
+ import { fileURLToPath } from "node:url";
4
+ import { copyDirectory, ensureDirectory, ensureGitignoreEntry, fileExists, writeUtf8File } from "../filesystem/index.js";
3
5
  import { createTeamScaffoldManifest, renderSpawnfile } from "../manifest/index.js";
4
6
  import { getRuntimeAdapter } from "../runtime/index.js";
5
7
  import { DEFAULT_OUTPUT_DIRECTORY, SpawnfileError } from "../shared/index.js";
6
8
  const DEFAULT_AGENT_RUNTIME = "openclaw";
9
+ // Bundled example org projects double as `init --template` starting points.
10
+ // Resolves to the package's examples/ dir in both dev (src/) and the published
11
+ // package (dist/), so examples/ must ship in package.json "files".
12
+ const EXAMPLES_ROOT = fileURLToPath(new URL("../../examples", import.meta.url));
13
+ export const listInitTemplates = async () => {
14
+ const entries = await readdir(EXAMPLES_ROOT, { withFileTypes: true });
15
+ return entries
16
+ .filter((entry) => entry.isDirectory())
17
+ .map((entry) => entry.name)
18
+ .sort();
19
+ };
7
20
  export const initProject = async (options = {}) => {
8
21
  const directory = path.resolve(options.directory ?? process.cwd());
9
22
  const manifestPath = path.join(directory, "Spawnfile");
@@ -11,10 +24,35 @@ export const initProject = async (options = {}) => {
11
24
  if (await fileExists(manifestPath)) {
12
25
  throw new SpawnfileError("io_error", `Refusing to overwrite existing Spawnfile at ${manifestPath}`);
13
26
  }
27
+ if (options.template && (options.team || options.runtime)) {
28
+ throw new SpawnfileError("validation_error", "--template cannot be combined with --team or --runtime");
29
+ }
14
30
  if (options.team && options.runtime) {
15
31
  throw new SpawnfileError("validation_error", "Team scaffolds do not accept --runtime");
16
32
  }
33
+ // Resolve and validate the template before creating anything, so an unknown
34
+ // template name never leaves an empty directory behind.
35
+ let templateSource;
36
+ if (options.template) {
37
+ const templates = await listInitTemplates();
38
+ if (!templates.includes(options.template)) {
39
+ throw new SpawnfileError("validation_error", `Unknown template "${options.template}". Available templates: ${templates.join(", ")}`);
40
+ }
41
+ templateSource = path.join(EXAMPLES_ROOT, options.template);
42
+ }
17
43
  await ensureDirectory(directory);
44
+ if (templateSource) {
45
+ await copyDirectory(templateSource, directory);
46
+ await ensureGitignoreEntry(directory, `${DEFAULT_OUTPUT_DIRECTORY}/`);
47
+ // Report only the files this template contributed — never pre-existing
48
+ // contents of the target directory.
49
+ const sourceEntries = await readdir(templateSource, { recursive: true, withFileTypes: true });
50
+ const createdFiles = sourceEntries
51
+ .filter((entry) => entry.isFile())
52
+ .map((entry) => path.join(directory, path.relative(templateSource, path.join(entry.parentPath, entry.name))))
53
+ .sort();
54
+ return { createdFiles, directory };
55
+ }
18
56
  const createdFiles = [manifestPath];
19
57
  const gitignorePath = path.join(directory, ".gitignore");
20
58
  const hadGitignore = await fileExists(gitignorePath);
@@ -0,0 +1,64 @@
1
+ import type { MoltnetTargetArchitecture } from "./moltnetReleaseAuthority.js";
2
+ export interface LocalMoltnetReleaseIdentity {
3
+ readonly architecture: MoltnetTargetArchitecture;
4
+ readonly asset: string;
5
+ readonly asset_sha256: `sha256:${string}`;
6
+ readonly capabilities: readonly ["daimon-bridge", "pi-bridge"];
7
+ readonly development: Readonly<{
8
+ mode: "local-development";
9
+ non_production: true;
10
+ unsigned: true;
11
+ unpublished: true;
12
+ }>;
13
+ readonly source_sha256: `sha256:${string}`;
14
+ readonly source_inputs?: Readonly<{
15
+ dependencies_sha256: `sha256:${string}`;
16
+ mode: "source-bundle";
17
+ source_sha256: `sha256:${string}`;
18
+ toolchain: string;
19
+ }>;
20
+ readonly version: "spawnfile.moltnet-release-identity.v1";
21
+ }
22
+ interface LocalMoltnetReleaseStamp {
23
+ readonly arch: MoltnetTargetArchitecture;
24
+ readonly asset: string;
25
+ readonly capabilities: readonly ["daimon-bridge", "pi-bridge"];
26
+ readonly development: LocalMoltnetReleaseIdentity["development"];
27
+ readonly sha256: string;
28
+ readonly source_sha256: `sha256:${string}`;
29
+ readonly source_inputs?: LocalMoltnetReleaseIdentity["source_inputs"];
30
+ readonly stamp_version: "spawnfile.local-moltnet-release-stamp.v1";
31
+ }
32
+ /** @internal Complete synthetic bridge contract used by local artifact verification. */
33
+ export declare const createLocalMoltnetBridgeProbeConfig: (kind: "daimon" | "pi", directory: string) => string;
34
+ /** @internal Strict parser shared with provenance regression tests. */
35
+ export declare const parseLocalReleaseStamp: (raw: string, architecture: MoltnetTargetArchitecture) => LocalMoltnetReleaseStamp;
36
+ /**
37
+ * The platform actually executing this compile -- never the build target.
38
+ *
39
+ * `architecture` is absent when the host CPU is one Spawnfile cannot name as a
40
+ * Moltnet target (so it can never accidentally equal one), and `platform` is a
41
+ * raw `process.platform`.
42
+ */
43
+ export interface MoltnetExecutionHost {
44
+ readonly architecture?: MoltnetTargetArchitecture;
45
+ readonly platform: NodeJS.Platform;
46
+ }
47
+ /**
48
+ * Whether this host can run the built binary directly, deciding between the
49
+ * direct-exec probe and the Docker cross-platform probe below.
50
+ *
51
+ * A local Moltnet build is ALWAYS `GOOS=linux` (the asset is
52
+ * `moltnet_linux_<arch>.tar.gz`), so matching the architecture alone is not
53
+ * enough: a darwin/arm64 host and a linux/arm64 binary share a CPU
54
+ * architecture and share nothing else. Executing that ELF on macOS fails with
55
+ * ENOEXEC and the probe reports the binary as unprovable, rejecting a
56
+ * perfectly good build. The host must therefore match on OS *and*
57
+ * architecture; everything else goes through Docker, which can run a
58
+ * linux/<arch> image anywhere.
59
+ *
60
+ * @internal Exported for the branch-selection tests.
61
+ */
62
+ export declare const moltnetBinaryIsDirectlyExecutable: (architecture: MoltnetTargetArchitecture, host: MoltnetExecutionHost) => boolean;
63
+ export declare const readLocalMoltnetReleaseIdentity: (releaseDirectory: string, architecture: MoltnetTargetArchitecture, host: MoltnetExecutionHost) => Promise<LocalMoltnetReleaseIdentity>;
64
+ export {};
@@ -0,0 +1,177 @@
1
+ import { execFile as execFileCallback } from "node:child_process";
2
+ import { createHash } from "node:crypto";
3
+ import path from "node:path";
4
+ import { chmod, readFile, rm, writeFile } from "node:fs/promises";
5
+ import { promisify } from "node:util";
6
+ import { ensureDirectory, fileExists } from "../filesystem/index.js";
7
+ import { SpawnfileError } from "../shared/index.js";
8
+ const execFile = promisify(execFileCallback);
9
+ const SHA256 = /^[a-f0-9]{64}$/u;
10
+ const exactKeys = (value, keys) => Object.keys(value).sort().join("\0") === [...keys].sort().join("\0");
11
+ const assetName = (architecture) => `moltnet_linux_${architecture}.tar.gz`;
12
+ /** @internal Complete synthetic bridge contract used by local artifact verification. */
13
+ export const createLocalMoltnetBridgeProbeConfig = (kind, directory) => JSON.stringify({
14
+ attachments: [{
15
+ agent: { id: `${kind}-capability-probe`, name: `${kind} capability probe` },
16
+ runtime: kind === "daimon"
17
+ ? {
18
+ control_url: "http://127.0.0.1:9",
19
+ kind,
20
+ receipt_store_path: path.join(directory, "daimon-receipts", "daimon-capability-probe.json"),
21
+ token_env: "SPAWNFILE_DAIMON_CONTROL_TOKEN"
22
+ }
23
+ : { control_url: "http://127.0.0.1:9/agents/pi-capability-probe/wake", kind }
24
+ }],
25
+ moltnet: { base_url: "http://127.0.0.1:9", network_id: "capability-probe" },
26
+ version: "moltnet.node.v1"
27
+ });
28
+ const assertBridgeCapability = async (binaryPath, directory, kind) => {
29
+ const configPath = path.join(directory, `${kind}-bridge-probe.json`);
30
+ const receiptDirectory = path.join(directory, "daimon-receipts");
31
+ await ensureDirectory(receiptDirectory);
32
+ await chmod(receiptDirectory, 0o700);
33
+ await writeFile(configPath, createLocalMoltnetBridgeProbeConfig(kind, directory), { mode: 0o600 });
34
+ try {
35
+ await execFile(binaryPath, ["node", configPath], {
36
+ env: { ...process.env, SPAWNFILE_DAIMON_CONTROL_TOKEN: "capability-probe" },
37
+ timeout: 1_000
38
+ });
39
+ throw new SpawnfileError("compile_error", `Local Moltnet binary exited before proving its ${kind}-bridge capability`);
40
+ }
41
+ catch (error) {
42
+ if (error instanceof SpawnfileError)
43
+ throw error;
44
+ const execution = error;
45
+ const output = `${String(execution.stdout ?? "")}\n${String(execution.stderr ?? "")}`;
46
+ if (/unsupported|only supported|required|invalid|unknown runtime/i.test(output)) {
47
+ throw new SpawnfileError("compile_error", `Local Moltnet binary does not accept ${kind}-bridge configuration`);
48
+ }
49
+ if (execution.killed === true || execution.signal === "SIGTERM" || execution.code === "ETIMEDOUT")
50
+ return;
51
+ if (/connection refused|connect:|dial tcp|network is unreachable/i.test(output))
52
+ return;
53
+ throw new SpawnfileError("compile_error", `Local Moltnet binary could not prove its ${kind}-bridge capability`);
54
+ }
55
+ };
56
+ /** @internal Strict parser shared with provenance regression tests. */
57
+ export const parseLocalReleaseStamp = (raw, architecture) => {
58
+ let parsed;
59
+ try {
60
+ parsed = JSON.parse(raw);
61
+ }
62
+ catch {
63
+ throw new SpawnfileError("compile_error", "Local Moltnet release stamp is not valid JSON");
64
+ }
65
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
66
+ throw new SpawnfileError("compile_error", "Local Moltnet release stamp has an invalid shape");
67
+ }
68
+ const value = parsed;
69
+ const development = value.development;
70
+ const sourceInputs = value.source_inputs;
71
+ if (!exactKeys(value, ["arch", "asset", "capabilities", "development", "sha256", "source_sha256", "stamp_version", ...(sourceInputs ? ["source_inputs"] : [])])
72
+ || value.stamp_version !== "spawnfile.local-moltnet-release-stamp.v1"
73
+ || value.arch !== architecture
74
+ || value.asset !== assetName(architecture)
75
+ || !Array.isArray(value.capabilities)
76
+ || value.capabilities.join("\0") !== "daimon-bridge\0pi-bridge"
77
+ || !development
78
+ || !exactKeys(development, ["mode", "non_production", "unsigned", "unpublished"])
79
+ || development.mode !== "local-development"
80
+ || development.non_production !== true
81
+ || development.unsigned !== true
82
+ || development.unpublished !== true
83
+ || typeof value.sha256 !== "string"
84
+ || !SHA256.test(value.sha256)
85
+ || typeof value.source_sha256 !== "string"
86
+ || !/^sha256:[a-f0-9]{64}$/u.test(value.source_sha256)
87
+ || (sourceInputs && (!exactKeys(sourceInputs, ["dependencies_sha256", "mode", "source_sha256", "toolchain"]) || sourceInputs.mode !== "source-bundle" || !/^sha256:[a-f0-9]{64}$/u.test(String(sourceInputs.dependencies_sha256)) || sourceInputs.source_sha256 !== value.source_sha256 || sourceInputs.toolchain !== "golang:1.24-bookworm@sha256:1a6d4452c65dea36aac2e2d606b01b4a029ec90cc1ae53890540ce6173ea77ac"))) {
88
+ throw new SpawnfileError("compile_error", "Local Moltnet release stamp must be a complete development-only dual-bridge identity");
89
+ }
90
+ return value;
91
+ };
92
+ /**
93
+ * Whether this host can run the built binary directly, deciding between the
94
+ * direct-exec probe and the Docker cross-platform probe below.
95
+ *
96
+ * A local Moltnet build is ALWAYS `GOOS=linux` (the asset is
97
+ * `moltnet_linux_<arch>.tar.gz`), so matching the architecture alone is not
98
+ * enough: a darwin/arm64 host and a linux/arm64 binary share a CPU
99
+ * architecture and share nothing else. Executing that ELF on macOS fails with
100
+ * ENOEXEC and the probe reports the binary as unprovable, rejecting a
101
+ * perfectly good build. The host must therefore match on OS *and*
102
+ * architecture; everything else goes through Docker, which can run a
103
+ * linux/<arch> image anywhere.
104
+ *
105
+ * @internal Exported for the branch-selection tests.
106
+ */
107
+ export const moltnetBinaryIsDirectlyExecutable = (architecture, host) => host.platform === "linux" && host.architecture === architecture;
108
+ const verifyBuiltMoltnetArchive = async (releaseAssetPath, architecture, host) => {
109
+ const temporaryDirectory = path.join(path.dirname(releaseAssetPath), `.spawnfile-moltnet-verify-${process.pid}-${Date.now()}`);
110
+ try {
111
+ await ensureDirectory(temporaryDirectory);
112
+ await execFile("tar", ["-C", temporaryDirectory, "-xzf", releaseAssetPath]);
113
+ const binaryPath = path.join(temporaryDirectory, "moltnet");
114
+ if (!(await fileExists(binaryPath))) {
115
+ throw new SpawnfileError("compile_error", "Local Moltnet archive does not contain its moltnet binary");
116
+ }
117
+ await chmod(binaryPath, 0o755);
118
+ if (moltnetBinaryIsDirectlyExecutable(architecture, host)) {
119
+ const { stdout } = await execFile(binaryPath, ["version"]);
120
+ if (!stdout.trim())
121
+ throw new SpawnfileError("compile_error", "Local Moltnet binary did not produce a bounded version identity");
122
+ await assertBridgeCapability(binaryPath, temporaryDirectory, "pi");
123
+ await assertBridgeCapability(binaryPath, temporaryDirectory, "daimon");
124
+ }
125
+ else {
126
+ for (const kind of ["pi", "daimon"]) {
127
+ const configPath = path.join(temporaryDirectory, `${kind}-docker-probe.json`);
128
+ await writeFile(configPath, createLocalMoltnetBridgeProbeConfig(kind, "/receipts"));
129
+ const { stdout: rawId } = await execFile("docker", ["create", "--platform", `linux/${architecture}`, "--env", "SPAWNFILE_DAIMON_CONTROL_TOKEN=probe", "node:24-bookworm-slim@sha256:a9f5f7c91a432850b2a8a7797adf5eadb6c733ceed61167806cee7ea7fbc29df", "timeout", "2", "/moltnet", "node", "/config.json"]);
130
+ const id = rawId.trim();
131
+ try {
132
+ await execFile("docker", ["cp", binaryPath, `${id}:/moltnet`]);
133
+ await execFile("docker", ["cp", configPath, `${id}:/config.json`]);
134
+ try {
135
+ await execFile("docker", ["start", "--attach", id]);
136
+ }
137
+ catch (error) {
138
+ const result = error;
139
+ const output = `${String(result.stdout ?? "")}\n${String(result.stderr ?? "")}`;
140
+ if (result.code !== 124 && !/connection refused|connect:|dial tcp|network is unreachable/iu.test(output))
141
+ throw new SpawnfileError("compile_error", `Local Moltnet cross-host ${kind} capability probe failed`);
142
+ }
143
+ }
144
+ finally {
145
+ await execFile("docker", ["rm", "--force", id]);
146
+ }
147
+ }
148
+ }
149
+ }
150
+ finally {
151
+ await rm(temporaryDirectory, { force: true, recursive: true });
152
+ }
153
+ };
154
+ export const readLocalMoltnetReleaseIdentity = async (releaseDirectory, architecture, host) => {
155
+ const asset = assetName(architecture);
156
+ const assetPath = path.join(releaseDirectory, asset);
157
+ const stampPath = path.join(releaseDirectory, `local_moltnet_release_stamp_${architecture}.json`);
158
+ if (!(await fileExists(assetPath)) || !(await fileExists(stampPath))) {
159
+ throw new SpawnfileError("compile_error", "Local Moltnet release requires its exact archive and development identity stamp");
160
+ }
161
+ const stamp = parseLocalReleaseStamp(await readFile(stampPath, "utf8"), architecture);
162
+ const sha256 = createHash("sha256").update(await readFile(assetPath)).digest("hex");
163
+ if (stamp.sha256 !== sha256) {
164
+ throw new SpawnfileError("compile_error", "Local Moltnet development stamp does not match its archive bytes");
165
+ }
166
+ await verifyBuiltMoltnetArchive(assetPath, architecture, host);
167
+ return Object.freeze({
168
+ architecture,
169
+ asset,
170
+ asset_sha256: `sha256:${sha256}`,
171
+ capabilities: Object.freeze(["daimon-bridge", "pi-bridge"]),
172
+ development: Object.freeze({ mode: "local-development", non_production: true, unsigned: true, unpublished: true }),
173
+ source_sha256: stamp.source_sha256,
174
+ ...(stamp.source_inputs ? { source_inputs: Object.freeze(stamp.source_inputs) } : {}),
175
+ version: "spawnfile.moltnet-release-identity.v1"
176
+ });
177
+ };
@@ -0,0 +1,26 @@
1
+ import type { CompilePlan, ResolvedMemoryBank } from "./types.js";
2
+ import type { ContainerMemoryTransport, ContainerPersistentMountReport } from "../report/types.js";
3
+ type MemoryStoreKind = "json" | "memory" | "postgres" | "sqlite";
4
+ type MemoryArtifactSummary = {
5
+ id: string;
6
+ declaring_node_id: string;
7
+ accessible_node_ids: string[];
8
+ store: {
9
+ kind: MemoryStoreKind;
10
+ path?: string;
11
+ persistence?: "durable" | "ephemeral";
12
+ persistent_mount_id?: string;
13
+ dsn_secret?: string;
14
+ };
15
+ index: ResolvedMemoryBank["index"];
16
+ consolidation: ResolvedMemoryBank["consolidation"];
17
+ retention: ResolvedMemoryBank["retention"];
18
+ transport_by_node_id: Record<string, ContainerMemoryTransport>;
19
+ };
20
+ export interface MemoryArtifactBundle {
21
+ mountPathMemoryMap: Map<string, string>;
22
+ mounts: ContainerPersistentMountReport[];
23
+ memories: MemoryArtifactSummary[];
24
+ }
25
+ export declare const createMemoryArtifactBundle: (plan: CompilePlan, deploymentLineage?: string) => MemoryArtifactBundle;
26
+ export {};