spawnfile 0.1.13 → 0.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (598) hide show
  1. package/README.md +50 -11
  2. package/dist/audit/auditCli.d.ts +19 -0
  3. package/dist/audit/auditCli.js +63 -0
  4. package/dist/audit/checks.d.ts +100 -0
  5. package/dist/audit/checks.js +279 -0
  6. package/dist/audit/checksShared.d.ts +74 -0
  7. package/dist/audit/checksShared.js +37 -0
  8. package/dist/audit/generateAudit.d.ts +19 -0
  9. package/dist/audit/generateAudit.js +122 -0
  10. package/dist/audit/index.d.ts +4 -0
  11. package/dist/audit/index.js +4 -0
  12. package/dist/audit/readAudit.d.ts +50 -0
  13. package/dist/audit/readAudit.js +59 -0
  14. package/dist/audit/types.d.ts +40 -0
  15. package/dist/audit/types.js +8 -0
  16. package/dist/auth/credentialEnvFile.d.ts +11 -0
  17. package/dist/auth/credentialEnvFile.js +60 -0
  18. package/dist/auth/credentialProvisioning.d.ts +15 -0
  19. package/dist/auth/credentialProvisioning.js +75 -0
  20. package/dist/auth/credentialProvisioningReceipt.d.ts +28 -0
  21. package/dist/auth/credentialProvisioningReceipt.js +70 -0
  22. package/dist/auth/credentialProvisioningRequest.d.ts +51 -0
  23. package/dist/auth/credentialProvisioningRequest.js +169 -0
  24. package/dist/auth/credentialWorldBindings.d.ts +21 -0
  25. package/dist/auth/credentialWorldBindings.js +104 -0
  26. package/dist/auth/index.d.ts +7 -0
  27. package/dist/auth/index.js +7 -0
  28. package/dist/auth/paths.d.ts +11 -0
  29. package/dist/auth/paths.js +21 -0
  30. package/dist/auth/targetSecretSourceAuthor.d.ts +18 -0
  31. package/dist/auth/targetSecretSourceAuthor.js +52 -0
  32. package/dist/auth/targetSecretSourceFsPublish.d.ts +15 -0
  33. package/dist/auth/targetSecretSourceFsPublish.js +49 -0
  34. package/dist/auth/targetSecretSourceFsPublishImmutable.d.ts +16 -0
  35. package/dist/auth/targetSecretSourceFsPublishImmutable.js +435 -0
  36. package/dist/auth/targetSecretSourceFsRead.d.ts +14 -0
  37. package/dist/auth/targetSecretSourceFsRead.js +198 -0
  38. package/dist/auth/targetSecretSourceGrant.d.ts +16 -0
  39. package/dist/auth/targetSecretSourceGrant.js +99 -0
  40. package/dist/auth/targetSecretSourceGrantRecords.d.ts +84 -0
  41. package/dist/auth/targetSecretSourceGrantRecords.js +214 -0
  42. package/dist/auth/targetSecretSourceLifecycle.d.ts +30 -0
  43. package/dist/auth/targetSecretSourceLifecycle.js +52 -0
  44. package/dist/auth/targetSecretSourceOwnerEntropy.d.ts +6 -0
  45. package/dist/auth/targetSecretSourceOwnerEntropy.js +28 -0
  46. package/dist/auth/targetSecretSourceRecordCommon.d.ts +14 -0
  47. package/dist/auth/targetSecretSourceRecordCommon.js +100 -0
  48. package/dist/auth/targetSecretSourceRecordPublish.d.ts +10 -0
  49. package/dist/auth/targetSecretSourceRecordPublish.js +104 -0
  50. package/dist/auth/targetSecretSourceResolver.d.ts +10 -0
  51. package/dist/auth/targetSecretSourceResolver.js +137 -0
  52. package/dist/auth/targetSecretSourceRevoke.d.ts +20 -0
  53. package/dist/auth/targetSecretSourceRevoke.js +92 -0
  54. package/dist/auth/targetSecretSourceRotate.d.ts +19 -0
  55. package/dist/auth/targetSecretSourceRotate.js +121 -0
  56. package/dist/auth/targetSecretSourceVersionRecords.d.ts +49 -0
  57. package/dist/auth/targetSecretSourceVersionRecords.js +166 -0
  58. package/dist/cli/artifactsCommands.d.ts +27 -0
  59. package/dist/cli/artifactsCommands.js +132 -0
  60. package/dist/cli/authCommands.d.ts +5 -0
  61. package/dist/cli/authCommands.js +221 -0
  62. package/dist/cli/compileBuildCommands.d.ts +3 -0
  63. package/dist/cli/compileBuildCommands.js +35 -0
  64. package/dist/cli/containerBundleCommand.d.ts +6 -0
  65. package/dist/cli/containerBundleCommand.js +116 -0
  66. package/dist/cli/downCommand.d.ts +25 -0
  67. package/dist/cli/downCommand.js +134 -0
  68. package/dist/cli/index.js +6 -3
  69. package/dist/cli/lifecycleCommands.d.ts +1 -1
  70. package/dist/cli/lifecycleCommands.js +11 -181
  71. package/dist/cli/lifecycleMachine.d.ts +19 -0
  72. package/dist/cli/lifecycleMachine.js +78 -0
  73. package/dist/cli/lifecyclePlan.d.ts +35 -0
  74. package/dist/cli/lifecyclePlan.js +240 -0
  75. package/dist/cli/lifecyclePlanningCommands.d.ts +3 -0
  76. package/dist/cli/lifecyclePlanningCommands.js +30 -0
  77. package/dist/cli/runCli.d.ts +9 -2
  78. package/dist/cli/runCli.js +27 -71
  79. package/dist/cli/runPublishCommands.d.ts +3 -0
  80. package/dist/cli/runPublishCommands.js +70 -0
  81. package/dist/cli/statusCommand.d.ts +3 -33
  82. package/dist/cli/statusCommand.js +19 -249
  83. package/dist/cli/statusCommandLive.d.ts +20 -0
  84. package/dist/cli/statusCommandLive.js +188 -0
  85. package/dist/cli/statusCommandOptions.d.ts +40 -0
  86. package/dist/cli/statusCommandOptions.js +42 -0
  87. package/dist/cli/targetCliRoute.d.ts +2 -0
  88. package/dist/cli/targetCliRoute.js +30 -0
  89. package/dist/cli/targetCommands.d.ts +33 -0
  90. package/dist/cli/targetCommands.js +257 -0
  91. package/dist/cli/targetComposedPreparationCommand.d.ts +6 -0
  92. package/dist/cli/targetComposedPreparationCommand.js +39 -0
  93. package/dist/cli/targetDefaultArtifactAuthority.d.ts +5 -0
  94. package/dist/cli/targetDefaultArtifactAuthority.js +28 -0
  95. package/dist/cli/targetDefaultAuthorities.d.ts +53 -0
  96. package/dist/cli/targetDefaultAuthorities.js +210 -0
  97. package/dist/cli/targetDefaultConfig.d.ts +68 -0
  98. package/dist/cli/targetDefaultConfig.js +317 -0
  99. package/dist/cli/targetDefaultConfigStdin.d.ts +13 -0
  100. package/dist/cli/targetDefaultConfigStdin.js +215 -0
  101. package/dist/cli/targetDefaultEnvelope.d.ts +1 -0
  102. package/dist/cli/targetDefaultEnvelope.js +13 -0
  103. package/dist/cli/targetDefaultHandlerFactory.d.ts +28 -0
  104. package/dist/cli/targetDefaultHandlerFactory.js +247 -0
  105. package/dist/cli/targetDefaultHandlers.d.ts +21 -0
  106. package/dist/cli/targetDefaultHandlers.js +72 -0
  107. package/dist/cli/targetDefaultJournalAuthority.d.ts +35 -0
  108. package/dist/cli/targetDefaultJournalAuthority.js +135 -0
  109. package/dist/cli/targetDefaultWorldClock.d.ts +4 -0
  110. package/dist/cli/targetDefaultWorldClock.js +14 -0
  111. package/dist/cli/targetDefaultWorldQueries.d.ts +5 -0
  112. package/dist/cli/targetDefaultWorldQueries.js +11 -0
  113. package/dist/cli/targetDefaultWorldReadiness.d.ts +4 -0
  114. package/dist/cli/targetDefaultWorldReadiness.js +17 -0
  115. package/dist/cli/targetEvidenceHelperResolution.d.ts +14 -0
  116. package/dist/cli/targetEvidenceHelperResolution.js +23 -0
  117. package/dist/cli/targetLookupCli.d.ts +3 -0
  118. package/dist/cli/targetLookupCli.js +31 -0
  119. package/dist/cli/targetLookupCommands.d.ts +12 -0
  120. package/dist/cli/targetLookupCommands.js +69 -0
  121. package/dist/cli/targetOperationDispatch.d.ts +58 -0
  122. package/dist/cli/targetOperationDispatch.js +21 -0
  123. package/dist/cli/targetReceiptOutput.d.ts +14 -0
  124. package/dist/cli/targetReceiptOutput.js +21 -0
  125. package/dist/cli/targetRequestFile.d.ts +14 -0
  126. package/dist/cli/targetRequestFile.js +63 -0
  127. package/dist/cli/targetSecretSourceInput.d.ts +28 -0
  128. package/dist/cli/targetSecretSourceInput.js +121 -0
  129. package/dist/cli/targetWorldClockCommand.d.ts +10 -0
  130. package/dist/cli/targetWorldClockCommand.js +42 -0
  131. package/dist/cli/targetWorldClockCrossProcess.test-helper.d.ts +13 -0
  132. package/dist/cli/targetWorldClockCrossProcess.test-helper.js +109 -0
  133. package/dist/cli/targetWorldReadinessCommand.d.ts +10 -0
  134. package/dist/cli/targetWorldReadinessCommand.js +43 -0
  135. package/dist/cli/upCommand.d.ts +3 -0
  136. package/dist/cli/upCommand.js +133 -0
  137. package/dist/cli/upImageCommand.d.ts +11 -0
  138. package/dist/cli/upImageCommand.js +41 -0
  139. package/dist/cli/upLifecycleInvocation.d.ts +41 -0
  140. package/dist/cli/upLifecycleInvocation.js +48 -0
  141. package/dist/cli/upLifecycleRecovery.d.ts +4 -0
  142. package/dist/cli/upLifecycleRecovery.js +53 -0
  143. package/dist/compiler/agentNodeMerge.d.ts +2 -0
  144. package/dist/compiler/agentNodeMerge.js +79 -0
  145. package/dist/compiler/agentSurfaces.js +11 -1
  146. package/dist/compiler/buildCompilePlan.js +17 -0
  147. package/dist/compiler/buildCompilePlanAgent.d.ts +11 -0
  148. package/dist/compiler/buildCompilePlanAgent.js +56 -0
  149. package/dist/compiler/buildCompilePlanTeams.d.ts +1 -0
  150. package/dist/compiler/buildCompilePlanTeams.js +4 -1
  151. package/dist/compiler/buildCompilePlanTraversal.js +75 -82
  152. package/dist/compiler/buildProject.d.ts +11 -0
  153. package/dist/compiler/buildProject.js +77 -2
  154. package/dist/compiler/compilePlanHelpers.js +2 -0
  155. package/dist/compiler/compileProject.d.ts +13 -0
  156. package/dist/compiler/compileProject.js +26 -74
  157. package/dist/compiler/compileProjectPolicy.d.ts +5 -0
  158. package/dist/compiler/compileProjectPolicy.js +21 -0
  159. package/dist/compiler/compileProjectReports.d.ts +9 -0
  160. package/dist/compiler/compileProjectReports.js +52 -0
  161. package/dist/compiler/containerArtifactSummaries.d.ts +7 -0
  162. package/dist/compiler/containerArtifactSummaries.js +138 -0
  163. package/dist/compiler/containerArtifacts.d.ts +10 -0
  164. package/dist/compiler/containerArtifacts.js +126 -125
  165. package/dist/compiler/containerArtifactsPlans.d.ts +5 -3
  166. package/dist/compiler/containerArtifactsPlans.js +31 -118
  167. package/dist/compiler/containerArtifactsRender.d.ts +3 -1
  168. package/dist/compiler/containerArtifactsRender.js +15 -12
  169. package/dist/compiler/containerArtifactsTypes.d.ts +12 -0
  170. package/dist/compiler/containerConfigEnvRender.d.ts +3 -0
  171. package/dist/compiler/containerConfigEnvRender.js +54 -0
  172. package/dist/compiler/containerEntrypointRender.d.ts +1 -0
  173. package/dist/compiler/containerEntrypointRender.js +56 -52
  174. package/dist/compiler/containerEntrypointShell.d.ts +5 -0
  175. package/dist/compiler/containerEntrypointShell.js +29 -0
  176. package/dist/compiler/containerPackageOverrides.d.ts +27 -0
  177. package/dist/compiler/containerPackageOverrides.js +63 -0
  178. package/dist/compiler/containerTargetPlanResolution.d.ts +20 -0
  179. package/dist/compiler/containerTargetPlanResolution.js +97 -0
  180. package/dist/compiler/daimonTelemetryArtifacts.d.ts +22 -0
  181. package/dist/compiler/daimonTelemetryArtifacts.js +61 -0
  182. package/dist/compiler/dockerBuildContext.d.ts +16 -0
  183. package/dist/compiler/dockerBuildContext.js +159 -0
  184. package/dist/compiler/dockerBuildSkip.d.ts +30 -0
  185. package/dist/compiler/dockerBuildSkip.js +81 -0
  186. package/dist/compiler/index.d.ts +4 -0
  187. package/dist/compiler/index.js +4 -0
  188. package/dist/compiler/memoryArtifacts.d.ts +26 -0
  189. package/dist/compiler/memoryArtifacts.js +134 -0
  190. package/dist/compiler/memoryResolution.d.ts +4 -0
  191. package/dist/compiler/memoryResolution.js +147 -0
  192. package/dist/compiler/modelEnv.d.ts +2 -0
  193. package/dist/compiler/modelEnv.js +6 -0
  194. package/dist/compiler/moltnetAllowedWakeSendersValidation.d.ts +2 -0
  195. package/dist/compiler/moltnetAllowedWakeSendersValidation.js +42 -0
  196. package/dist/compiler/moltnetArtifactPaths.d.ts +26 -0
  197. package/dist/compiler/moltnetArtifactPaths.js +49 -0
  198. package/dist/compiler/moltnetArtifactTypes.d.ts +46 -0
  199. package/dist/compiler/moltnetArtifactTypes.js +1 -0
  200. package/dist/compiler/moltnetArtifacts.d.ts +2 -40
  201. package/dist/compiler/moltnetArtifacts.js +43 -97
  202. package/dist/compiler/moltnetBinaries.d.ts +21 -4
  203. package/dist/compiler/moltnetBinaries.js +134 -27
  204. package/dist/compiler/moltnetClientConfig.js +7 -2
  205. package/dist/compiler/moltnetConfigLowering.d.ts +16 -1
  206. package/dist/compiler/moltnetConfigLowering.js +67 -5
  207. package/dist/compiler/moltnetExternalParticipantArtifact.d.ts +38 -0
  208. package/dist/compiler/moltnetExternalParticipantArtifact.js +188 -0
  209. package/dist/compiler/moltnetNodeConfig.js +7 -2
  210. package/dist/compiler/moltnetReleaseAuthority.d.ts +17 -0
  211. package/dist/compiler/moltnetReleaseAuthority.js +73 -0
  212. package/dist/compiler/moltnetReleaseDownload.d.ts +12 -0
  213. package/dist/compiler/moltnetReleaseDownload.js +85 -0
  214. package/dist/compiler/moltnetRepresentativeResolution.d.ts +1 -0
  215. package/dist/compiler/moltnetRepresentativeResolution.js +16 -2
  216. package/dist/compiler/moltnetResolution.js +72 -20
  217. package/dist/compiler/moltnetRoomMemberships.js +37 -9
  218. package/dist/compiler/moltnetServerPlans.d.ts +9 -0
  219. package/dist/compiler/moltnetServerPlans.js +132 -0
  220. package/dist/compiler/organizationIdentity.d.ts +27 -0
  221. package/dist/compiler/organizationIdentity.js +297 -0
  222. package/dist/compiler/organizationReadyEvidence.d.ts +49 -0
  223. package/dist/compiler/organizationReadyEvidence.js +261 -0
  224. package/dist/compiler/projectManifestGraph.d.ts +4 -0
  225. package/dist/compiler/projectManifestGraph.js +24 -0
  226. package/dist/compiler/runProject.d.ts +4 -0
  227. package/dist/compiler/runProject.js +30 -21
  228. package/dist/compiler/runProjectAuth.d.ts +7 -1
  229. package/dist/compiler/runProjectAuth.js +87 -9
  230. package/dist/compiler/runProjectDocker.d.ts +7 -0
  231. package/dist/compiler/runProjectDocker.js +31 -8
  232. package/dist/compiler/runProjectLifecycle.d.ts +7 -0
  233. package/dist/compiler/runProjectLifecycle.js +40 -0
  234. package/dist/compiler/syncProjectAuth.js +4 -1
  235. package/dist/compiler/teamContextActiveEnvironments.d.ts +13 -0
  236. package/dist/compiler/teamContextActiveEnvironments.js +255 -0
  237. package/dist/compiler/teamContextSupport.js +32 -40
  238. package/dist/compiler/teamContextTypes.d.ts +2 -0
  239. package/dist/compiler/types.d.ts +82 -1
  240. package/dist/compiler/upProject.d.ts +5 -0
  241. package/dist/compiler/upProject.js +256 -20
  242. package/dist/compiler/upReceipt.d.ts +36 -0
  243. package/dist/compiler/upReceipt.js +82 -0
  244. package/dist/compiler/updateProjectModels.js +42 -60
  245. package/dist/compiler/updateProjectRuntime.js +22 -35
  246. package/dist/compiler/updateProjectSurfaces.js +53 -47
  247. package/dist/compiler/worldBindings.d.ts +39 -0
  248. package/dist/compiler/worldBindings.js +247 -0
  249. package/dist/compiler/worldBindingsFile.d.ts +5 -0
  250. package/dist/compiler/worldBindingsFile.js +162 -0
  251. package/dist/deployment/artifactsExport.d.ts +49 -0
  252. package/dist/deployment/artifactsExport.js +217 -0
  253. package/dist/deployment/artifactsExportDocker.d.ts +48 -0
  254. package/dist/deployment/artifactsExportDocker.js +91 -0
  255. package/dist/deployment/artifactsExportPlan.d.ts +24 -0
  256. package/dist/deployment/artifactsExportPlan.js +135 -0
  257. package/dist/deployment/artifactsExportTypes.d.ts +50 -0
  258. package/dist/deployment/artifactsExportTypes.js +52 -0
  259. package/dist/deployment/buildImageCacheStore.d.ts +23 -0
  260. package/dist/deployment/buildImageCacheStore.js +54 -0
  261. package/dist/deployment/deploymentLifecycleCorrelation.d.ts +11 -0
  262. package/dist/deployment/deploymentLifecycleCorrelation.js +33 -0
  263. package/dist/deployment/dockerInspect.d.ts +9 -0
  264. package/dist/deployment/dockerInspect.js +24 -1
  265. package/dist/deployment/dockerLabels.d.ts +2 -0
  266. package/dist/deployment/dockerLabels.js +2 -0
  267. package/dist/deployment/dockerLogs.js +2 -10
  268. package/dist/deployment/dockerManager.d.ts +51 -0
  269. package/dist/deployment/dockerManager.js +118 -1
  270. package/dist/deployment/dockerProbeGateway.js +64 -5
  271. package/dist/deployment/dockerRecover.js +9 -1
  272. package/dist/deployment/dockerTeardown.d.ts +32 -0
  273. package/dist/deployment/dockerTeardown.js +61 -0
  274. package/dist/deployment/downDeployment.d.ts +34 -0
  275. package/dist/deployment/downDeployment.js +147 -0
  276. package/dist/deployment/downReceiptTypes.d.ts +21 -0
  277. package/dist/deployment/downReceiptTypes.js +30 -0
  278. package/dist/deployment/index.d.ts +16 -0
  279. package/dist/deployment/index.js +17 -0
  280. package/dist/deployment/lifecycleCompletion.d.ts +37 -0
  281. package/dist/deployment/lifecycleCompletion.js +236 -0
  282. package/dist/deployment/lifecycleCompletionContracts.d.ts +158 -0
  283. package/dist/deployment/lifecycleCompletionContracts.js +106 -0
  284. package/dist/deployment/lifecycleCompletionHeartbeat.d.ts +2 -0
  285. package/dist/deployment/lifecycleCompletionHeartbeat.js +50 -0
  286. package/dist/deployment/lifecycleCompletionLookup.d.ts +18 -0
  287. package/dist/deployment/lifecycleCompletionLookup.js +88 -0
  288. package/dist/deployment/lifecycleCompletionOwner.d.ts +8 -0
  289. package/dist/deployment/lifecycleCompletionOwner.js +31 -0
  290. package/dist/deployment/lifecycleCompletionParsing.d.ts +12 -0
  291. package/dist/deployment/lifecycleCompletionParsing.js +108 -0
  292. package/dist/deployment/lifecycleCompletionPaths.d.ts +9 -0
  293. package/dist/deployment/lifecycleCompletionPaths.js +16 -0
  294. package/dist/deployment/lifecycleCompletionPublication.d.ts +5 -0
  295. package/dist/deployment/lifecycleCompletionPublication.js +35 -0
  296. package/dist/deployment/lifecycleCompletionRecovery.d.ts +21 -0
  297. package/dist/deployment/lifecycleCompletionRecovery.js +56 -0
  298. package/dist/deployment/lifecycleCompletionRoot.d.ts +21 -0
  299. package/dist/deployment/lifecycleCompletionRoot.js +243 -0
  300. package/dist/deployment/lifecycleCompletionStore.d.ts +6 -0
  301. package/dist/deployment/lifecycleCompletionStore.js +151 -0
  302. package/dist/deployment/organizationHandoffAuthorityFsClient.d.ts +17 -0
  303. package/dist/deployment/organizationHandoffAuthorityFsClient.js +132 -0
  304. package/dist/deployment/organizationHandoffAuthorityFsWorker.d.ts +1 -0
  305. package/dist/deployment/organizationHandoffAuthorityFsWorker.js +285 -0
  306. package/dist/deployment/organizationHandoffAuthorityFsWorkerParent.fixture.d.ts +1 -0
  307. package/dist/deployment/organizationHandoffAuthorityFsWorkerParent.fixture.js +26 -0
  308. package/dist/deployment/organizationHandoffAuthorityStore.d.ts +41 -0
  309. package/dist/deployment/organizationHandoffAuthorityStore.js +348 -0
  310. package/dist/deployment/organizationHandoffAuthorityTypes.d.ts +76 -0
  311. package/dist/deployment/organizationHandoffAuthorityTypes.js +148 -0
  312. package/dist/deployment/organizationHandoffTypes.d.ts +29 -0
  313. package/dist/deployment/organizationHandoffTypes.js +80 -0
  314. package/dist/deployment/organizationReady.d.ts +52 -0
  315. package/dist/deployment/organizationReady.js +200 -0
  316. package/dist/deployment/privateArtifactsExport.d.ts +18 -0
  317. package/dist/deployment/privateArtifactsExport.js +80 -0
  318. package/dist/deployment/providerRuntimeBoundaryScanner.test-helper.d.ts +8 -0
  319. package/dist/deployment/providerRuntimeBoundaryScanner.test-helper.js +60 -0
  320. package/dist/deployment/record.d.ts +26 -1
  321. package/dist/deployment/record.js +49 -4
  322. package/dist/deployment/simfileFixtureBoundary.test-helper.d.ts +8 -0
  323. package/dist/deployment/simfileFixtureBoundary.test-helper.js +103 -0
  324. package/dist/deployment/target.d.ts +1 -35
  325. package/dist/deployment/target.js +1 -96
  326. package/dist/deployment/upReceiptTypes.d.ts +111 -0
  327. package/dist/deployment/upReceiptTypes.js +164 -0
  328. package/dist/dev/project.js +15 -9
  329. package/dist/distribution/buildDistributionReport.d.ts +2 -1
  330. package/dist/distribution/buildDistributionReport.js +2 -1
  331. package/dist/distribution/distributionReportSchema.d.ts +5 -0
  332. package/dist/distribution/distributionReportSchema.js +7 -2
  333. package/dist/distribution/index.d.ts +2 -2
  334. package/dist/distribution/index.js +1 -1
  335. package/dist/distribution/types.d.ts +7 -0
  336. package/dist/distribution/types.js +1 -0
  337. package/dist/filesystem/paths.js +10 -1
  338. package/dist/ledger/causalConformanceCli.d.ts +1 -0
  339. package/dist/ledger/causalConformanceCli.js +41 -0
  340. package/dist/ledger/causeNamespace.d.ts +8 -0
  341. package/dist/ledger/causeNamespace.js +24 -0
  342. package/dist/ledger/conformance.d.ts +83 -0
  343. package/dist/ledger/conformance.js +259 -0
  344. package/dist/ledger/emitters.d.ts +76 -0
  345. package/dist/ledger/emitters.js +188 -0
  346. package/dist/ledger/index.d.ts +4 -0
  347. package/dist/ledger/index.js +4 -0
  348. package/dist/ledger/principal.d.ts +96 -0
  349. package/dist/ledger/principal.js +121 -0
  350. package/dist/manifest/externalParticipantSchemas.d.ts +18 -0
  351. package/dist/manifest/externalParticipantSchemas.js +17 -0
  352. package/dist/manifest/index.d.ts +1 -0
  353. package/dist/manifest/index.js +1 -0
  354. package/dist/manifest/inlineAgentMember.d.ts +2 -0
  355. package/dist/manifest/inlineAgentMember.js +9 -0
  356. package/dist/manifest/loadManifest.js +14 -8
  357. package/dist/manifest/mcpSchemas.d.ts +17 -0
  358. package/dist/manifest/mcpSchemas.js +41 -0
  359. package/dist/manifest/memorySchemas.d.ts +245 -0
  360. package/dist/manifest/memorySchemas.js +148 -0
  361. package/dist/manifest/renderSpawnfile.js +22 -131
  362. package/dist/manifest/renderSpawnfileNetworks.js +9 -2
  363. package/dist/manifest/renderSpawnfileSurfaces.d.ts +2 -0
  364. package/dist/manifest/renderSpawnfileSurfaces.js +134 -0
  365. package/dist/manifest/schemas.d.ts +1868 -99
  366. package/dist/manifest/schemas.js +78 -32
  367. package/dist/manifest/surfaceSchemas.d.ts +17 -0
  368. package/dist/manifest/surfaceSchemas.js +24 -1
  369. package/dist/manifest/teamNetworkAccessSchemas.d.ts +1 -1
  370. package/dist/manifest/teamNetworkAuthSchemas.d.ts +48 -0
  371. package/dist/manifest/teamNetworkAuthSchemas.js +103 -0
  372. package/dist/manifest/teamNetworkSchemas.d.ts +8 -187
  373. package/dist/manifest/teamNetworkSchemas.js +3 -317
  374. package/dist/manifest/teamNetworkServerSchemas.d.ts +150 -0
  375. package/dist/manifest/teamNetworkServerSchemas.js +199 -0
  376. package/dist/ownership/siblingBuildFreshness.d.ts +20 -0
  377. package/dist/ownership/siblingBuildFreshness.js +20 -0
  378. package/dist/ownership/simfileRunOperatorInputs.d.ts +103 -0
  379. package/dist/ownership/simfileRunOperatorInputs.js +139 -0
  380. package/dist/report/types.d.ts +142 -0
  381. package/dist/runtime/common.d.ts +35 -0
  382. package/dist/runtime/common.js +55 -0
  383. package/dist/runtime/container.d.ts +28 -1
  384. package/dist/runtime/container.js +38 -5
  385. package/dist/runtime/containerPackageOverrides.d.ts +37 -0
  386. package/dist/runtime/containerPackageOverrides.js +33 -0
  387. package/dist/runtime/index.d.ts +2 -0
  388. package/dist/runtime/index.js +2 -0
  389. package/dist/runtime/mnemeMcp.d.ts +15 -0
  390. package/dist/runtime/mnemeMcp.js +109 -0
  391. package/dist/runtime/openclaw/adapter.js +15 -4
  392. package/dist/runtime/openclaw/mcp.d.ts +10 -0
  393. package/dist/runtime/openclaw/mcp.js +69 -0
  394. package/dist/runtime/openclaw/runAuth.js +2 -2
  395. package/dist/runtime/openclaw/scaffold.js +1 -1
  396. package/dist/runtime/openclaw/schedules.d.ts +38 -0
  397. package/dist/runtime/openclaw/schedules.js +74 -0
  398. package/dist/runtime/pi/adapter.d.ts +1 -1
  399. package/dist/runtime/pi/adapter.js +86 -53
  400. package/dist/runtime/pi/appActivitySource.js +114 -2
  401. package/dist/runtime/pi/appAgentConfig.d.ts +11 -0
  402. package/dist/runtime/pi/appAgentConfig.js +264 -0
  403. package/dist/runtime/pi/appCliEnginesSource.d.ts +1 -0
  404. package/dist/runtime/pi/appCliEnginesSource.js +183 -0
  405. package/dist/runtime/pi/appCliSource.d.ts +1 -0
  406. package/dist/runtime/pi/appCliSource.js +353 -0
  407. package/dist/runtime/pi/appControlSource.d.ts +1 -0
  408. package/dist/runtime/pi/appControlSource.js +390 -0
  409. package/dist/runtime/pi/appControlWakeIdentitySource.d.ts +1 -0
  410. package/dist/runtime/pi/appControlWakeIdentitySource.js +19 -0
  411. package/dist/runtime/pi/appCoreSource.d.ts +4 -1
  412. package/dist/runtime/pi/appCoreSource.js +104 -214
  413. package/dist/runtime/pi/appPreludeSource.js +140 -52
  414. package/dist/runtime/pi/appScheduleSource.d.ts +1 -0
  415. package/dist/runtime/pi/appScheduleSource.js +80 -0
  416. package/dist/runtime/pi/appScriptedEngine.d.ts +31 -0
  417. package/dist/runtime/pi/appScriptedEngine.js +42 -0
  418. package/dist/runtime/pi/appSource.d.ts +4 -1
  419. package/dist/runtime/pi/appSource.js +6 -2
  420. package/dist/runtime/pi/appTemplate.d.ts +8 -22
  421. package/dist/runtime/pi/appTemplate.js +9 -126
  422. package/dist/runtime/pi/appTemplateTypes.d.ts +64 -0
  423. package/dist/runtime/pi/appTemplateTypes.js +18 -0
  424. package/dist/runtime/pi/appWakeContextSource.d.ts +1 -0
  425. package/dist/runtime/pi/appWakeContextSource.js +398 -0
  426. package/dist/runtime/pi/containerTargets.d.ts +4 -0
  427. package/dist/runtime/pi/containerTargets.js +57 -0
  428. package/dist/runtime/pi/runAuth.js +126 -9
  429. package/dist/runtime/pi/testHelpers.d.ts +2 -0
  430. package/dist/runtime/pi/testHelpers.js +40 -0
  431. package/dist/runtime/picoclaw/adapter.js +23 -27
  432. package/dist/runtime/picoclaw/mcp.d.ts +4 -0
  433. package/dist/runtime/picoclaw/mcp.js +43 -0
  434. package/dist/runtime/picoclaw/memory.d.ts +7 -0
  435. package/dist/runtime/picoclaw/memory.js +17 -0
  436. package/dist/runtime/picoclaw/runAuth.js +1 -1
  437. package/dist/runtime/picoclaw/scaffold.js +1 -1
  438. package/dist/runtime/picoclaw/schedules.d.ts +26 -0
  439. package/dist/runtime/picoclaw/schedules.js +62 -3
  440. package/dist/runtime/scheduleUtils.d.ts +2 -0
  441. package/dist/runtime/scheduleUtils.js +15 -0
  442. package/dist/runtime/types.d.ts +25 -2
  443. package/dist/shared/errors.d.ts +1 -1
  444. package/dist/shared/errors.js +2 -2
  445. package/dist/shared/index.d.ts +1 -0
  446. package/dist/shared/index.js +1 -0
  447. package/dist/shared/redaction.d.ts +2 -0
  448. package/dist/shared/redaction.js +10 -0
  449. package/dist/status/buildStatus.d.ts +1 -0
  450. package/dist/status/buildStatus.js +2 -0
  451. package/dist/status/compileReport.d.ts +22 -0
  452. package/dist/status/compileReport.js +16 -2
  453. package/dist/status/compiledProbeCollection.d.ts +21 -0
  454. package/dist/status/compiledProbeCollection.js +27 -0
  455. package/dist/status/imageStatusReport.js +6 -0
  456. package/dist/status/index.d.ts +3 -0
  457. package/dist/status/index.js +3 -0
  458. package/dist/status/lifecycleProbes.d.ts +19 -0
  459. package/dist/status/lifecycleProbes.js +174 -0
  460. package/dist/status/moltnetProbes.d.ts +7 -8
  461. package/dist/status/moltnetProbes.js +27 -198
  462. package/dist/status/moltnetWiringProbes.d.ts +19 -0
  463. package/dist/status/moltnetWiringProbes.js +178 -0
  464. package/dist/target/cleanupRun.d.ts +41 -0
  465. package/dist/target/cleanupRun.js +139 -0
  466. package/dist/target/cleanupRunDocker.d.ts +16 -0
  467. package/dist/target/cleanupRunDocker.js +66 -0
  468. package/dist/target/cleanupRunDocker.test-helper.d.ts +67 -0
  469. package/dist/target/cleanupRunDocker.test-helper.js +238 -0
  470. package/dist/target/cleanupRunDockerPreflight.d.ts +17 -0
  471. package/dist/target/cleanupRunDockerPreflight.js +224 -0
  472. package/dist/target/composedPreparation.d.ts +205 -0
  473. package/dist/target/composedPreparation.js +223 -0
  474. package/dist/target/containerBundle.d.ts +82 -0
  475. package/dist/target/containerBundle.js +243 -0
  476. package/dist/target/containerBundleArchive.d.ts +31 -0
  477. package/dist/target/containerBundleArchive.js +140 -0
  478. package/dist/target/containerBundleAuthority.d.ts +25 -0
  479. package/dist/target/containerBundleAuthority.js +65 -0
  480. package/dist/target/containerBundleContracts.d.ts +114 -0
  481. package/dist/target/containerBundleContracts.js +173 -0
  482. package/dist/target/containerBundleFilesystemStore.d.ts +3 -0
  483. package/dist/target/containerBundleFilesystemStore.js +247 -0
  484. package/dist/target/containerBundlePolicy.d.ts +33 -0
  485. package/dist/target/containerBundlePolicy.js +64 -0
  486. package/dist/target/containerBundleStore.d.ts +127 -0
  487. package/dist/target/containerBundleStore.js +284 -0
  488. package/dist/target/contracts.d.ts +538 -0
  489. package/dist/target/contracts.js +373 -0
  490. package/dist/target/dockerArtifactIdentityTypes.d.ts +56 -0
  491. package/dist/target/dockerArtifactIdentityTypes.js +1 -0
  492. package/dist/target/dockerArtifactInspection.d.ts +40 -0
  493. package/dist/target/dockerArtifactInspection.js +125 -0
  494. package/dist/target/dockerArtifacts.d.ts +21 -0
  495. package/dist/target/dockerArtifacts.js +110 -0
  496. package/dist/target/dockerArtifactsProvider.d.ts +41 -0
  497. package/dist/target/dockerArtifactsProvider.js +449 -0
  498. package/dist/target/dockerCommandExecutor.d.ts +27 -0
  499. package/dist/target/dockerCommandExecutor.js +200 -0
  500. package/dist/target/dockerCommandExecutorCore.d.ts +34 -0
  501. package/dist/target/dockerCommandExecutorCore.js +273 -0
  502. package/dist/target/dockerContainerBundleBuilder.d.ts +8 -0
  503. package/dist/target/dockerContainerBundleBuilder.js +256 -0
  504. package/dist/target/dockerContextSnapshot.d.ts +21 -0
  505. package/dist/target/dockerContextSnapshot.js +158 -0
  506. package/dist/target/dockerEndpointFingerprint.d.ts +1 -0
  507. package/dist/target/dockerEndpointFingerprint.js +9 -0
  508. package/dist/target/dockerPreparedArtifact.d.ts +48 -0
  509. package/dist/target/dockerPreparedArtifact.js +131 -0
  510. package/dist/target/dockerProjectionJson.d.ts +1 -0
  511. package/dist/target/dockerProjectionJson.js +80 -0
  512. package/dist/target/dockerPublicArtifactSnapshot.d.ts +17 -0
  513. package/dist/target/dockerPublicArtifactSnapshot.js +99 -0
  514. package/dist/target/dockerResources.d.ts +26 -0
  515. package/dist/target/dockerResources.js +162 -0
  516. package/dist/target/dockerResourcesProvider.d.ts +44 -0
  517. package/dist/target/dockerResourcesProvider.js +207 -0
  518. package/dist/target/dockerSecrets.d.ts +39 -0
  519. package/dist/target/dockerSecrets.js +249 -0
  520. package/dist/target/dockerSecretsAuthority.d.ts +26 -0
  521. package/dist/target/dockerSecretsAuthority.js +216 -0
  522. package/dist/target/dockerSecretsLifecycle.d.ts +25 -0
  523. package/dist/target/dockerSecretsLifecycle.js +133 -0
  524. package/dist/target/dockerSecretsProvider.d.ts +68 -0
  525. package/dist/target/dockerSecretsProvider.js +329 -0
  526. package/dist/target/dockerTarget.d.ts +52 -0
  527. package/dist/target/dockerTarget.js +48 -0
  528. package/dist/target/dockerTargetBinding.d.ts +14 -0
  529. package/dist/target/dockerTargetBinding.js +96 -0
  530. package/dist/target/dockerWorldClock.d.ts +17 -0
  531. package/dist/target/dockerWorldClock.js +111 -0
  532. package/dist/target/dockerWorldReadiness.d.ts +17 -0
  533. package/dist/target/dockerWorldReadiness.js +119 -0
  534. package/dist/target/dockerWorldService.d.ts +23 -0
  535. package/dist/target/dockerWorldService.js +216 -0
  536. package/dist/target/dockerWorldServiceAuthority.d.ts +80 -0
  537. package/dist/target/dockerWorldServiceAuthority.js +182 -0
  538. package/dist/target/dockerWorldServiceLifecycle.d.ts +41 -0
  539. package/dist/target/dockerWorldServiceLifecycle.js +275 -0
  540. package/dist/target/dockerWorldServiceProvider.d.ts +60 -0
  541. package/dist/target/dockerWorldServiceProvider.js +318 -0
  542. package/dist/target/dockerWorldServiceStore.d.ts +73 -0
  543. package/dist/target/dockerWorldServiceStore.js +367 -0
  544. package/dist/target/evidenceExport.d.ts +55 -0
  545. package/dist/target/evidenceExport.js +518 -0
  546. package/dist/target/evidenceExportArchive.d.ts +10 -0
  547. package/dist/target/evidenceExportArchive.js +302 -0
  548. package/dist/target/evidenceExportContract.d.ts +27 -0
  549. package/dist/target/evidenceExportContract.js +40 -0
  550. package/dist/target/evidenceExportOperationsTestKit.d.ts +87 -0
  551. package/dist/target/evidenceExportOperationsTestKit.js +312 -0
  552. package/dist/target/evidenceExportProvider.d.ts +85 -0
  553. package/dist/target/evidenceExportProvider.js +187 -0
  554. package/dist/target/evidenceExportPublicationTypes.d.ts +16 -0
  555. package/dist/target/evidenceExportPublicationTypes.js +1 -0
  556. package/dist/target/evidenceExportStore.d.ts +70 -0
  557. package/dist/target/evidenceExportStore.js +498 -0
  558. package/dist/target/evidenceExportStorePublication.d.ts +7 -0
  559. package/dist/target/evidenceExportStorePublication.js +395 -0
  560. package/dist/target/handles.d.ts +20 -0
  561. package/dist/target/handles.js +56 -0
  562. package/dist/target/index.d.ts +12 -0
  563. package/dist/target/index.js +11 -0
  564. package/dist/target/journal.d.ts +59 -0
  565. package/dist/target/journal.js +529 -0
  566. package/dist/target/journalFilesystem.d.ts +3 -0
  567. package/dist/target/journalFilesystem.js +111 -0
  568. package/dist/target/journalRoot.d.ts +4 -0
  569. package/dist/target/journalRoot.js +6 -0
  570. package/dist/target/organizationAttachment.d.ts +23 -0
  571. package/dist/target/organizationAttachment.js +263 -0
  572. package/dist/target/organizationAttachmentAuthority.d.ts +65 -0
  573. package/dist/target/organizationAttachmentAuthority.js +161 -0
  574. package/dist/target/organizationAttachmentLifecycle.d.ts +17 -0
  575. package/dist/target/organizationAttachmentLifecycle.js +101 -0
  576. package/dist/target/organizationAttachmentProvider.d.ts +76 -0
  577. package/dist/target/organizationAttachmentProvider.js +289 -0
  578. package/dist/target/organizationAttachmentStore.d.ts +51 -0
  579. package/dist/target/organizationAttachmentStore.js +316 -0
  580. package/dist/target/publicArtifactSnapshot.d.ts +41 -0
  581. package/dist/target/publicArtifactSnapshot.js +150 -0
  582. package/dist/target/topologyActivation.d.ts +51 -0
  583. package/dist/target/topologyActivation.js +149 -0
  584. package/dist/target/topologyAttestation.d.ts +37 -0
  585. package/dist/target/topologyAttestation.js +300 -0
  586. package/dist/target/topologyAttestationErrors.d.ts +1 -0
  587. package/dist/target/topologyAttestationErrors.js +1 -0
  588. package/dist/target/worldClock.d.ts +60 -0
  589. package/dist/target/worldClock.js +129 -0
  590. package/dist/target/worldReadiness.d.ts +103 -0
  591. package/dist/target/worldReadiness.js +153 -0
  592. package/moltnet-releases.json +20 -0
  593. package/package.json +27 -11
  594. package/runtimes.yaml +8 -23
  595. package/dist/runtime/openclaw/scaffold-assets/CLAUDE.md +0 -5
  596. package/dist/runtime/picoclaw/scaffold-assets/CLAUDE.md +0 -5
  597. /package/dist/runtime/openclaw/scaffold-assets/{AGENTS.md → WORKSPACE_AGENTS.md} +0 -0
  598. /package/dist/runtime/picoclaw/scaffold-assets/{AGENTS.md → WORKSPACE_AGENTS.md} +0 -0
@@ -0,0 +1,390 @@
1
+ import { renderPiControlWakeIdentitySource } from "./appControlWakeIdentitySource.js";
2
+ export const renderPiControlSource = () => String.raw `const rebuildAgentKeys = (agents) => {
3
+ const keys = new Map();
4
+ for (const agent of agents) {
5
+ const candidates = [
6
+ agent.config.id,
7
+ agent.config.name,
8
+ agent.config.slug,
9
+ typeof agent.config.id === "string" && agent.config.id.startsWith("agent:")
10
+ ? agent.config.id.slice("agent:".length)
11
+ : ""
12
+ ];
13
+ for (const candidate of candidates) {
14
+ if (typeof candidate === "string" && candidate.length > 0) {
15
+ keys.set(candidate, agent);
16
+ }
17
+ }
18
+ }
19
+ return keys;
20
+ };
21
+
22
+ const formatControlEventId = (payload, fallbackPrefix) => {
23
+ if (typeof payload.event_id === "string" && payload.event_id.length > 0) {
24
+ return payload.event_id;
25
+ }
26
+ if (typeof payload.context_id === "string" && payload.context_id.length > 0) {
27
+ return payload.context_id + ":" + Date.now();
28
+ }
29
+ return fallbackPrefix + Date.now();
30
+ };
31
+
32
+ // B62 Option B (two wake endpoints split by authenticating authority):
33
+ // POST /spawnfile/agents/:slug/wake is the operator-only mutating endpoint
34
+ // gated by a bearer token below — the only mutating control endpoint gated
35
+ // today (see AGENTS.md / B62 for why the load/restart dev-reload endpoints
36
+ // stay out of this slice's scope). POST /agents/:slug/wake is the loopback
37
+ // Moltnet->Pi delivery endpoint (server.listen("127.0.0.1") below): it is
38
+ // NOT operator-only, is never gated by this token, and stamps a different
39
+ // principal (system:moltnet, never operator:control) — see the delivery
40
+ // handler further down. SPAWNFILE_PI_CONTROL_TOKEN is trusted env minted by
41
+ // the generator/harness (same trust shape as SPAWNFILE_PI_CONTROL_PORT and
42
+ // NOOPOLIS_RUN_ID, src/runtime/common.ts) — read only from process.env,
43
+ // NEVER from the request body, headers content, or model output. When the
44
+ // env var is unset there is "no operator configured": every operator wake
45
+ // request fails closed with 401, it is never treated as "auth disabled".
46
+ ${renderPiControlWakeIdentitySource()}
47
+ const validateDeliveryMetadata = (payload) => {
48
+ if (
49
+ typeof payload.event_id !== "string" || payload.event_id.trim().length === 0 ||
50
+ typeof payload.from !== "string" || payload.from.trim().length === 0 ||
51
+ typeof payload.to !== "string" || payload.to.trim().length === 0 ||
52
+ typeof payload.context_id !== "string" || payload.context_id.trim().length === 0
53
+ ) {
54
+ return null;
55
+ }
56
+ return {
57
+ eventId: payload.event_id,
58
+ sender: payload.from,
59
+ target: payload.to,
60
+ contextId: payload.context_id
61
+ };
62
+ };
63
+ const extractBearerToken = (request) => {
64
+ const header = request.headers && (request.headers.authorization ?? request.headers.Authorization);
65
+ if (typeof header !== "string") {
66
+ return "";
67
+ }
68
+ const match = /^Bearer\s+(.+)$/u.exec(header.trim());
69
+ return match ? match[1].trim() : "";
70
+ };
71
+
72
+ /**
73
+ * Authorizes a mutating wake request against SPAWNFILE_PI_CONTROL_TOKEN.
74
+ * Fails closed (ok: false) on every path: no configured token, no bearer
75
+ * header, or a bearer value that does not match — there is no "auth
76
+ * disabled" state.
77
+ */
78
+ const authorizeControlWake = (request) => {
79
+ const configuredToken = typeof process.env[CONTROL_TOKEN_ENV] === "string" ? process.env[CONTROL_TOKEN_ENV].trim() : "";
80
+ if (!configuredToken) {
81
+ return { ok: false, reason: "no operator token configured (" + CONTROL_TOKEN_ENV + " is unset)" };
82
+ }
83
+
84
+ const providedToken = extractBearerToken(request);
85
+ if (!providedToken) {
86
+ return { ok: false, reason: "missing bearer token" };
87
+ }
88
+ if (providedToken !== configuredToken) {
89
+ return { ok: false, reason: "invalid bearer token" };
90
+ }
91
+
92
+ return { ok: true };
93
+ };
94
+
95
+ /**
96
+ * B62 enforcement point #3 (specs/CAUSAL.md): stamps control.wake.denied
97
+ * for a rejected wake request via daimon's observability emitters. Never
98
+ * lets a telemetry write failure break the HTTP 401 response — this is
99
+ * best-effort like every other causal stamp in this generated app.
100
+ */
101
+ const recordControlWakeDenied = async (reason, targetAgentId, runtimeHomePath, requestId) => {
102
+ try {
103
+ await emitControlWakeDenied({
104
+ operatorName: CONTROL_OPERATOR_NAME,
105
+ reason,
106
+ requestId,
107
+ runtimeHomePath,
108
+ targetAgentId
109
+ });
110
+ } catch (error) {
111
+ console.error("[pi] failed to record control.wake.denied: " + (error instanceof Error ? error.message : String(error)));
112
+ }
113
+ };
114
+
115
+ /** B62 enforcement point #3, operator path: stamps control.wake.accepted (principal operator:control) for an authorized, executed wake. */
116
+ const recordControlWakeAccepted = async (targetAgentId, wakeKind, runtimeHomePath, requestId, causeEventIds) => {
117
+ try {
118
+ await emitControlWakeAccepted({
119
+ causeEventIds,
120
+ operatorName: CONTROL_OPERATOR_NAME,
121
+ requestId,
122
+ runtimeHomePath,
123
+ targetAgentId,
124
+ wakeKind
125
+ });
126
+ } catch (error) {
127
+ console.error("[pi] failed to record control.wake.accepted: " + (error instanceof Error ? error.message : String(error)));
128
+ }
129
+ };
130
+
131
+ /**
132
+ * B62 enforcement point #3, Moltnet delivery path (Option B): stamps
133
+ * control.wake.accepted for a tokenless delivery wake via daimon's
134
+ * emitDeliveryWakeAccepted, which always stamps principal_id "system:moltnet"
135
+ * — the delivering authority itself — NEVER operator:control, and NEVER a
136
+ * value read from the request body's "from"/agent field. This is the
137
+ * attribution that distinguishes a real inter-agent delivery from an
138
+ * operator-issued wake without needing a second bearer token.
139
+ */
140
+ const recordDeliveryWakeAccepted = async (targetAgentId, wakeKind, runtimeHomePath, requestId, causeEventIds) => {
141
+ try {
142
+ await emitDeliveryWakeAccepted({
143
+ causeEventIds,
144
+ requestId,
145
+ runtimeHomePath,
146
+ targetAgentId,
147
+ wakeKind
148
+ });
149
+ } catch (error) {
150
+ console.error("[pi] failed to record delivery control.wake.accepted: " + (error instanceof Error ? error.message : String(error)));
151
+ }
152
+ };
153
+
154
+ /**
155
+ * Shared wake-execution core for both /agents/:slug/wake (delivery) and
156
+ * /spawnfile/agents/:slug/wake (operator): reads the request body, runs
157
+ * the agent's wake, and returns the response shape both endpoints send.
158
+ * A blank/missing message is treated as a no-op (matches pre-B62 behavior)
159
+ * and is reported as executed: false so callers skip the causal stamp for
160
+ * it, exactly like the original single-endpoint handler did. Auth and
161
+ * attribution (which principal to stamp) are the caller's responsibility —
162
+ * this helper has no knowledge of either.
163
+ */
164
+ const executeAgentWake = async (agent, payload, requireDeliveryMetadata, agentsByKey) => {
165
+ const deliveryMetadata = requireDeliveryMetadata ? validateDeliveryMetadata(payload) : null;
166
+ if (requireDeliveryMetadata && !deliveryMetadata) {
167
+ throw new Error(DELIVERY_METADATA_INVALID_ERROR);
168
+ }
169
+ const deliveryTarget = requireDeliveryMetadata ? agentsByKey.get(deliveryMetadata.target) : null;
170
+ if (requireDeliveryMetadata && deliveryTarget !== agent) {
171
+ throw new Error(DELIVERY_METADATA_INVALID_ERROR);
172
+ }
173
+
174
+ const eventId = requireDeliveryMetadata ? deliveryMetadata.eventId : formatControlEventId(payload, "message-");
175
+ if (typeof payload.message !== "string" || payload.message.trim().length === 0) {
176
+ return { eventId: undefined, executed: false, from: agent.config.id, message: "", wakeKind: undefined };
177
+ }
178
+
179
+ const wakeKind = normalizeWakeKind(typeof payload.wake_kind === "string" ? payload.wake_kind : payload.kind);
180
+ const message = await agent.wake({
181
+ id: eventId,
182
+ kind: wakeKind,
183
+ ...(deliveryMetadata
184
+ ? {
185
+ delivery: {
186
+ eventId: deliveryMetadata.eventId,
187
+ sender: deliveryMetadata.sender,
188
+ target: agent.config.id,
189
+ contextId: deliveryMetadata.contextId
190
+ },
191
+ transportText: typeof payload.transport_text === "string"
192
+ ? payload.transport_text
193
+ : payload.message
194
+ }
195
+ : undefined),
196
+ from: typeof payload.from === "string" ? payload.from : "moltnet",
197
+ context: payload.context && typeof payload.context === "object" ? payload.context : undefined,
198
+ context_id: typeof payload.context_id === "string" ? payload.context_id : undefined,
199
+ text: typeof payload.message === "string" ? payload.message : ""
200
+ });
201
+
202
+ return { eventId, executed: true, from: agent.config.id, message, wakeKind };
203
+ };
204
+
205
+ const loadManagedAgent = async (agents, configPath, slug, instanceRoot, services) => {
206
+ const config = await readJson(configPath);
207
+ const agentConfig = (config.agents ?? []).find((agent) => agent.slug === slug || agent.id === slug || agent.name === slug);
208
+ if (!agentConfig) {
209
+ throw new Error("unknown agent " + slug);
210
+ }
211
+
212
+ const oldIndex = agents.findIndex((agent) => agent.config.slug === agentConfig.slug || agent.config.id === agentConfig.id || agent.config.name === agentConfig.name);
213
+ if (oldIndex >= 0) {
214
+ agents[oldIndex].stop();
215
+ agents.splice(oldIndex, 1);
216
+ }
217
+
218
+ const managed = new PiManagedAgent(agentConfig, {
219
+ runtimeHomePath: path.join(instanceRoot, "runtime", "agents", agentConfig.slug),
220
+ homePath: path.join(instanceRoot, "home"),
221
+ workspacePath: path.join(instanceRoot, "workspace", "agents", agentConfig.slug)
222
+ }, services);
223
+ await managed.start();
224
+ agents.push(managed);
225
+ return managed;
226
+ };
227
+
228
+ const startControlServer = async (agents, portValue, configPath, instanceRoot, services) => {
229
+ if (!portValue) {
230
+ return null;
231
+ }
232
+ const port = Number(portValue);
233
+ if (!Number.isInteger(port) || port <= 0 || port > 65535) {
234
+ throw new Error("Invalid SPAWNFILE_PI_CONTROL_PORT: " + portValue);
235
+ }
236
+
237
+ let agentsByKey = rebuildAgentKeys(agents);
238
+
239
+ const server = createServer(async (request, response) => {
240
+ const url = new URL(request.url ?? "/", "http://127.0.0.1");
241
+
242
+ if (request.method === "GET" && url.pathname === "/healthz") {
243
+ sendJson(response, 200, { status: "ok" });
244
+ return;
245
+ }
246
+
247
+ if (request.method === "GET" && url.pathname === "/spawnfile/agents") {
248
+ sendJson(response, 200, {
249
+ agents: agents.map((agent) => ({
250
+ id: agent.config.id,
251
+ name: agent.config.name,
252
+ slug: agent.config.slug
253
+ }))
254
+ });
255
+ return;
256
+ }
257
+
258
+ if (request.method === "GET" && url.pathname === "/spawnfile/activity") {
259
+ sendJson(response, 200, { events: services.activity.list(url.searchParams.get("agent"), url.searchParams.get("tail")) });
260
+ return;
261
+ }
262
+
263
+ if (request.method === "GET" && url.pathname === "/spawnfile/activity/stream") {
264
+ services.activity.stream(request, response, url.searchParams.get("agent"), url.searchParams.get("tail"));
265
+ return;
266
+ }
267
+
268
+ const activityMatch = /^\/spawnfile\/agents\/([^/]+)\/activity(\/stream)?$/u.exec(url.pathname);
269
+ if (request.method === "GET" && activityMatch) {
270
+ const agentFilter = decodeURIComponent(activityMatch[1]);
271
+ if (activityMatch[2]) {
272
+ services.activity.stream(request, response, agentFilter, url.searchParams.get("tail"));
273
+ } else {
274
+ sendJson(response, 200, { events: services.activity.list(agentFilter, url.searchParams.get("tail")) });
275
+ }
276
+ return;
277
+ }
278
+
279
+ if (request.method === "POST" && (url.pathname === "/spawnfile/agents/load" || url.pathname === "/spawnfile/agents/restart")) {
280
+ try {
281
+ const payload = await readRequestJson(request);
282
+ const slug = typeof payload.slug === "string"
283
+ ? payload.slug
284
+ : typeof payload.agent === "string"
285
+ ? payload.agent
286
+ : "";
287
+ const agent = await loadManagedAgent(agents, configPath, slug, instanceRoot, services);
288
+ agentsByKey = rebuildAgentKeys(agents);
289
+ sendJson(response, 200, { id: agent.config.id, loaded: true, name: agent.config.name, slug: agent.config.slug });
290
+ } catch (error) {
291
+ sendJson(response, 400, { error: error instanceof Error ? error.message : String(error) });
292
+ }
293
+ return;
294
+ }
295
+
296
+ // B62 Option B, operator path: fail-closed on SPAWNFILE_PI_CONTROL_TOKEN,
297
+ // stamps operator:control via emitControlWakeAccepted/Denied. This is the
298
+ // ONLY wake path gated by a bearer token.
299
+ const operatorWakeMatch = /^\/spawnfile\/agents\/([^/]+)\/wake$/u.exec(url.pathname);
300
+ if (request.method === "POST" && operatorWakeMatch) {
301
+ const key = decodeURIComponent(operatorWakeMatch[1]);
302
+ const requestId = controlWakeRequestId(key);
303
+
304
+ const authResult = authorizeControlWake(request);
305
+ if (!authResult.ok) {
306
+ const knownAgent = agentsByKey.get(key);
307
+ const deniedRuntimeHomePath = knownAgent
308
+ ? knownAgent.paths.runtimeHomePath
309
+ : path.join(instanceRoot, "runtime", "control");
310
+ await recordControlWakeDenied(authResult.reason, key, deniedRuntimeHomePath, requestId);
311
+ sendJson(response, 401, { error: authResult.reason });
312
+ return;
313
+ }
314
+
315
+ const agent = agentsByKey.get(key);
316
+ if (!agent) {
317
+ sendJson(response, 404, { error: "unknown agent " + key });
318
+ return;
319
+ }
320
+
321
+ try {
322
+ const payload = await readRequestJson(request);
323
+ const result = await executeAgentWake(agent, payload);
324
+ if (result.executed) {
325
+ await recordControlWakeAccepted(
326
+ key,
327
+ result.wakeKind,
328
+ agent.paths.runtimeHomePath,
329
+ requestId,
330
+ causeEventIdsForWake(result.wakeKind, result.eventId)
331
+ );
332
+ }
333
+ sendJson(response, 200, { from: result.from, message: result.message });
334
+ } catch (error) {
335
+ sendJson(response, 400, { error: error instanceof Error ? error.message : String(error) });
336
+ }
337
+ return;
338
+ }
339
+
340
+ // B62 Option B, Moltnet delivery path: the loopback (127.0.0.1) endpoint
341
+ // the Moltnet->Pi bridge POSTs normal inter-agent deliveries to. NOT
342
+ // operator-only, NEVER gated by SPAWNFILE_PI_CONTROL_TOKEN (sender
343
+ // authority is already enforced moltnet-side before a message reaches
344
+ // here), and stamps principal_id "system:moltnet" via
345
+ // recordDeliveryWakeAccepted — NEVER operator:control, and NEVER read
346
+ // from the request body's "from"/agent field.
347
+ const deliveryWakeMatch = /^\/agents\/([^/]+)\/wake$/u.exec(url.pathname);
348
+ if (request.method !== "POST" || !deliveryWakeMatch) {
349
+ sendJson(response, 404, { error: "not found" });
350
+ return;
351
+ }
352
+
353
+ const deliveryKey = decodeURIComponent(deliveryWakeMatch[1]);
354
+ const deliveryRequestId = controlWakeRequestId(deliveryKey);
355
+
356
+ const deliveryAgent = agentsByKey.get(deliveryKey);
357
+ if (!deliveryAgent) {
358
+ sendJson(response, 404, { error: "unknown agent " + deliveryKey });
359
+ return;
360
+ }
361
+
362
+ try {
363
+ const payload = await readRequestJson(request);
364
+ const result = await executeAgentWake(deliveryAgent, payload, true, agentsByKey);
365
+ if (result.executed) {
366
+ await recordDeliveryWakeAccepted(
367
+ deliveryKey,
368
+ result.wakeKind,
369
+ deliveryAgent.paths.runtimeHomePath,
370
+ deliveryRequestId,
371
+ causeEventIdsForWake(result.wakeKind, result.eventId)
372
+ );
373
+ }
374
+ sendJson(response, 200, { from: result.from, message: result.message });
375
+ } catch (error) {
376
+ sendJson(response, 400, { error: error instanceof Error ? error.message : String(error) });
377
+ }
378
+ });
379
+
380
+ await new Promise((resolve, reject) => {
381
+ server.once("error", reject);
382
+ server.listen(port, "127.0.0.1", () => {
383
+ server.off("error", reject);
384
+ resolve();
385
+ });
386
+ });
387
+ console.log("[pi] control listening on 127.0.0.1:" + port);
388
+ return server;
389
+ };
390
+ `;
@@ -0,0 +1 @@
1
+ export declare const renderPiControlWakeIdentitySource: () => string;
@@ -0,0 +1,19 @@
1
+ export const renderPiControlWakeIdentitySource = () => String.raw `const CONTROL_TOKEN_ENV = "SPAWNFILE_PI_CONTROL_TOKEN";
2
+ const DELIVERY_METADATA_INVALID_ERROR = "invalid delivery metadata";
3
+ // The authenticated principal stamped on control.wake.accepted/denied
4
+ // events for this endpoint (operator:control, specs/CAUSAL.md §3). Root
5
+ // has exactly one operator-control bearer token today, so one static
6
+ // operator identity is enough; a future multi-operator token scheme would
7
+ // resolve this from the verified token instead.
8
+ const CONTROL_OPERATOR_NAME = "control";
9
+
10
+ const controlWakeRequestId = (targetAgentId) =>
11
+ "wake-" + targetAgentId + "-" + Date.now() + "-" + Math.random().toString(16).slice(2);
12
+
13
+ // control.wake.accepted should chain to the real inbound moltnet event only
14
+ // for message-triggered wakes (the WakeEvent id moltnet's bridge stamped,
15
+ // see formatControlEventId above); schedule/dream-kind wakes legitimately
16
+ // have no moltnet cause and stay [].
17
+ const causeEventIdsForWake = (wakeKind, eventId) =>
18
+ wakeKind === "message" && typeof eventId === "string" && eventId.length > 0 ? [eventId] : [];
19
+ `;
@@ -1 +1,4 @@
1
- export declare const renderPiCoreSource: () => string;
1
+ export interface RenderPiCoreSourceOptions {
2
+ world?: boolean;
3
+ }
4
+ export declare const renderPiCoreSource: (options?: RenderPiCoreSourceOptions) => string;