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,57 @@
1
+ import type { ResolvedAgentNode } from "../../compiler/types.js";
2
+ import type { CapabilityReport } from "../../report/index.js";
3
+ /**
4
+ * The instance root every Daimon agent's `workspacePath` and `runtimeHomePath`
5
+ * resolve under (`resolveInstancePaths` in
6
+ * `src/compiler/containerTargetPlanResolution.ts`). Daimon's own parser rejects
7
+ * a `memory.runtimeHomePath` that overlaps either of those, so a declared store
8
+ * inside this subtree must fail at compile time with a Spawnfile message rather
9
+ * than as an opaque container-side config parse error.
10
+ *
11
+ * Restating the literal here is deliberate — importing the compiler's path
12
+ * builder into a runtime adapter would invert the dependency direction — so it
13
+ * is pinned to that authority by `config.test.ts`'s "pins the instance-root
14
+ * guard to resolveInstancePaths" case, which derives the expected value from
15
+ * `resolveInstancePaths` and fails if either side drifts.
16
+ */
17
+ export declare const DAIMON_INSTANCE_STATE_ROOT = "/var/lib/spawnfile/instances";
18
+ export declare const resolveDaimonAgentMemory: (node: ResolvedAgentNode) => {
19
+ runtimeHomePath: string;
20
+ source: string;
21
+ } | undefined;
22
+ /**
23
+ * The compile-time warning for an agent that declared several memory banks.
24
+ *
25
+ * `selectDaimonMemoryAccess` is deterministic (lexicographically first key),
26
+ * and the capability row already reports the outcome as `degraded` — but a
27
+ * capability row does not say *which* bank won. Declaring a new bank whose key
28
+ * sorts earlier silently re-points this agent's memory home and orphans the
29
+ * previously wired bank's data, so the wired and ignored ids are named here,
30
+ * in the diagnostics an operator reads on every compile. The selection rule
31
+ * itself is unchanged.
32
+ */
33
+ export declare const daimonMemorySelectionWarning: (node: ResolvedAgentNode) => string | undefined;
34
+ /**
35
+ * The compile-time warning for a wired memory bank that asked for vector
36
+ * recall the Daimon organization runtime cannot provide.
37
+ *
38
+ * The memory block Spawnfile lowers into the organization runtime config is
39
+ * `{runtimeHomePath, source?, tokenBudget?}` and nothing more (see
40
+ * `resolveDaimonAgentMemory` above and the `memory` schema in daimon's
41
+ * `organizationRuntimeContract.ts`). Daimon's CLI harness path forwards exactly
42
+ * those three fields and never sets `memory.embeddingProvider`, so Mneme builds
43
+ * a lexical-only recall path. Embeddings are optional in Mneme and it falls back
44
+ * safely, so a fixture declaring `index.vector.enabled: true` still compiles and
45
+ * still recalls — just not the way it asked to. That silence is the defect: the
46
+ * declaration is accepted verbatim and quietly means something else.
47
+ *
48
+ * This says so at compile time rather than forwarding the configuration,
49
+ * because forwarding it would mean widening the daimon organization runtime
50
+ * config contract (and its digest-pinned manifest) plus building an embedding
51
+ * provider on the daimon side — a much larger change than telling the truth.
52
+ */
53
+ export declare const daimonMemoryVectorRecallWarning: (node: ResolvedAgentNode) => string | undefined;
54
+ export declare const daimonMemoryCapabilityFor: (node: ResolvedAgentNode) => {
55
+ memoryMessage?: string;
56
+ memoryOutcome?: CapabilityReport["outcome"];
57
+ };
@@ -0,0 +1,125 @@
1
+ import { resolveMnemeDurableMemoryMountPath } from "../mnemeMcp.js";
2
+ import { SpawnfileError } from "../../shared/index.js";
3
+ /**
4
+ * Daimon's organization runtime accepts exactly one `memory` block per agent
5
+ * (`OrganizationRuntimeMemory` = `{ runtimeHomePath, source?, tokenBudget? }`),
6
+ * so lowering picks one declared bank deterministically, the same way the
7
+ * legacy generated-Pi emitter does in `../pi/appAgentConfig.ts`.
8
+ */
9
+ const memoryAccessKey = (access) => `${access.source}:${access.bank.id}`;
10
+ const selectDaimonMemoryAccess = (node) => [...(node.memoryAccess ?? [])].sort((left, right) => memoryAccessKey(left).localeCompare(memoryAccessKey(right)))[0];
11
+ /**
12
+ * The instance root every Daimon agent's `workspacePath` and `runtimeHomePath`
13
+ * resolve under (`resolveInstancePaths` in
14
+ * `src/compiler/containerTargetPlanResolution.ts`). Daimon's own parser rejects
15
+ * a `memory.runtimeHomePath` that overlaps either of those, so a declared store
16
+ * inside this subtree must fail at compile time with a Spawnfile message rather
17
+ * than as an opaque container-side config parse error.
18
+ *
19
+ * Restating the literal here is deliberate — importing the compiler's path
20
+ * builder into a runtime adapter would invert the dependency direction — so it
21
+ * is pinned to that authority by `config.test.ts`'s "pins the instance-root
22
+ * guard to resolveInstancePaths" case, which derives the expected value from
23
+ * `resolveInstancePaths` and fails if either side drifts.
24
+ */
25
+ export const DAIMON_INSTANCE_STATE_ROOT = "/var/lib/spawnfile/instances";
26
+ export const resolveDaimonAgentMemory = (node) => {
27
+ const access = selectDaimonMemoryAccess(node);
28
+ if (!access)
29
+ return undefined;
30
+ const runtimeHomePath = resolveMnemeDurableMemoryMountPath(access.bank);
31
+ if (runtimeHomePath === null)
32
+ return undefined;
33
+ if (runtimeHomePath === DAIMON_INSTANCE_STATE_ROOT ||
34
+ runtimeHomePath.startsWith(`${DAIMON_INSTANCE_STATE_ROOT}/`) ||
35
+ DAIMON_INSTANCE_STATE_ROOT.startsWith(`${runtimeHomePath}/`)) {
36
+ throw new SpawnfileError("validation_error", `Daimon memory bank ${access.bank.id} resolves to ${runtimeHomePath}, which overlaps the Daimon instance state root ${DAIMON_INSTANCE_STATE_ROOT}; declare the store outside it`);
37
+ }
38
+ return {
39
+ runtimeHomePath,
40
+ source: `spawnfile:${access.declaringKind}:${access.bank.id}`
41
+ };
42
+ };
43
+ /**
44
+ * The compile-time warning for an agent that declared several memory banks.
45
+ *
46
+ * `selectDaimonMemoryAccess` is deterministic (lexicographically first key),
47
+ * and the capability row already reports the outcome as `degraded` — but a
48
+ * capability row does not say *which* bank won. Declaring a new bank whose key
49
+ * sorts earlier silently re-points this agent's memory home and orphans the
50
+ * previously wired bank's data, so the wired and ignored ids are named here,
51
+ * in the diagnostics an operator reads on every compile. The selection rule
52
+ * itself is unchanged.
53
+ */
54
+ export const daimonMemorySelectionWarning = (node) => {
55
+ const accesses = node.memoryAccess ?? [];
56
+ const selected = selectDaimonMemoryAccess(node);
57
+ if (!selected)
58
+ return undefined;
59
+ const selectedKey = memoryAccessKey(selected);
60
+ const ignored = [...new Set(accesses
61
+ .filter((access) => memoryAccessKey(access) !== selectedKey)
62
+ .map((access) => access.bank.id))].sort();
63
+ if (ignored.length === 0)
64
+ return undefined;
65
+ return `Daimon organization runtime v1 lowers one memory bank per agent: ${node.name} wires memory bank ${selected.bank.id} and ignores ${ignored.join(", ")}. The wired bank is the lexicographically first declared one, so adding a bank that sorts earlier re-points this agent's memory home and orphans ${selected.bank.id}'s data.`;
66
+ };
67
+ /**
68
+ * The compile-time warning for a wired memory bank that asked for vector
69
+ * recall the Daimon organization runtime cannot provide.
70
+ *
71
+ * The memory block Spawnfile lowers into the organization runtime config is
72
+ * `{runtimeHomePath, source?, tokenBudget?}` and nothing more (see
73
+ * `resolveDaimonAgentMemory` above and the `memory` schema in daimon's
74
+ * `organizationRuntimeContract.ts`). Daimon's CLI harness path forwards exactly
75
+ * those three fields and never sets `memory.embeddingProvider`, so Mneme builds
76
+ * a lexical-only recall path. Embeddings are optional in Mneme and it falls back
77
+ * safely, so a fixture declaring `index.vector.enabled: true` still compiles and
78
+ * still recalls — just not the way it asked to. That silence is the defect: the
79
+ * declaration is accepted verbatim and quietly means something else.
80
+ *
81
+ * This says so at compile time rather than forwarding the configuration,
82
+ * because forwarding it would mean widening the daimon organization runtime
83
+ * config contract (and its digest-pinned manifest) plus building an embedding
84
+ * provider on the daimon side — a much larger change than telling the truth.
85
+ */
86
+ export const daimonMemoryVectorRecallWarning = (node) => {
87
+ const access = selectDaimonMemoryAccess(node);
88
+ if (!access || !resolveDaimonAgentMemory(node))
89
+ return undefined;
90
+ const vector = access.bank.index?.vector;
91
+ if (!vector?.enabled)
92
+ return undefined;
93
+ return `Daimon organization runtime v1 has no vector recall: memory bank ${access.bank.id} declares `
94
+ + `index.vector.enabled with model ${vector.model ?? "(unset)"}, but the runtime memory contract carries `
95
+ + "no embedding configuration, so recall for this agent is lexical only. Declare index.vector on a "
96
+ + "runtime that lowers it, or drop it from this bank so the declaration matches the behavior.";
97
+ };
98
+ export const daimonMemoryCapabilityFor = (node) => {
99
+ const access = selectDaimonMemoryAccess(node);
100
+ if (!access)
101
+ return {};
102
+ const memory = resolveDaimonAgentMemory(node);
103
+ if (!memory) {
104
+ return {
105
+ memoryMessage: `Daimon organization runtime v1 lowers only durably mounted file-backed Mneme banks; memory bank ${access.bank.id} (store ${access.bank.store.kind}) has no durable container volume, so no memory block is emitted`,
106
+ memoryOutcome: "degraded"
107
+ };
108
+ }
109
+ const declaredKeys = new Set((node.memoryAccess ?? []).map(memoryAccessKey));
110
+ declaredKeys.delete(memoryAccessKey(access));
111
+ if (declaredKeys.size > 0) {
112
+ return {
113
+ memoryMessage: `Daimon organization runtime v1 lowers one memory bank per agent; ${access.bank.id} is wired at ${memory.runtimeHomePath} and ${declaredKeys.size} further declared bank(s) are not lowered`,
114
+ memoryOutcome: "degraded"
115
+ };
116
+ }
117
+ const vectorWarning = daimonMemoryVectorRecallWarning(node);
118
+ if (vectorWarning) {
119
+ return { memoryMessage: vectorWarning, memoryOutcome: "degraded" };
120
+ }
121
+ return {
122
+ memoryMessage: `Daimon lowers Mneme memory bank ${access.bank.id} into the organization runtime agent config at ${memory.runtimeHomePath}`,
123
+ memoryOutcome: "supported"
124
+ };
125
+ };
@@ -0,0 +1,51 @@
1
+ import type { ResolvedAuthProfile } from "../../auth/index.js";
2
+ import type { RuntimeAuthPreparationInput, RuntimeAuthPreparationResult } from "../types.js";
3
+ export declare const DAIMON_GROK_ACCESS_TOKEN_MIN_BYTES = 32;
4
+ export declare const DAIMON_GROK_REFRESH_TOKEN_MIN_BYTES = 16;
5
+ export declare const DAIMON_AGY_UNLOCK_SOURCE_ENV = "SPAWNFILE_DAIMON_SOURCE_AGY_UNLOCK_SECRET";
6
+ export declare const daimonSourceEnvironmentName: (slot: string) => string;
7
+ export declare const daimonSourcePathForEngine: (engine: "codex" | "grok", environment?: Record<string, string | undefined>, authProfile?: ResolvedAuthProfile | null) => string;
8
+ /**
9
+ * The uid a bind-mounted Daimon credential must be owned by on the host.
10
+ *
11
+ * Daimon compares the file's owner against its own `process.getuid()` inside
12
+ * the container, the container runs as {@link DAIMON_ORGANIZATION_UID}, and a
13
+ * read-only bind mount carries the host uid through unchanged, so the two are
14
+ * the same number. See `runtimeIdentity.ts` for the full chain.
15
+ */
16
+ export declare const DAIMON_CREDENTIAL_CONTAINER_UID = 2000;
17
+ export interface DaimonSourceFileFacts {
18
+ isFile: boolean;
19
+ isSymbolicLink: boolean;
20
+ mode: number;
21
+ nlink: number;
22
+ size: number;
23
+ uid: number;
24
+ }
25
+ /**
26
+ * The host-side safety gate, isolated from `lstat` so every branch is directly
27
+ * exercisable. A credential the deploying process does not own is material it
28
+ * cannot vouch for, and a root deploy (`callerUid <= 0`) is refused outright
29
+ * so a privileged process never launders someone else's credential into a
30
+ * container.
31
+ */
32
+ export declare const isUnsafeDaimonSourceFile: (entry: DaimonSourceFileFacts, callerUid: number | undefined, maxBytes: number) => boolean;
33
+ /**
34
+ * Refuses, at deploy time, a credential whose owner is not the uid the
35
+ * container will demand.
36
+ *
37
+ * Without this the host gate above and Daimon's in-container gate impose two
38
+ * uncoordinated uid requirements on the same file: the host one passes for any
39
+ * non-root deploying account, and the container one then fails at readiness
40
+ * with an opaque "credential materialization failed" inside a candidate that
41
+ * lives ~15 seconds. Naming both numbers here turns that into a refusal the
42
+ * operator can act on.
43
+ */
44
+ export declare const assertDaimonCredentialContainerOwner: (observedUid: number, label: string, requiredUid?: number) => void;
45
+ export declare const assertSafeDaimonSourceFile: (sourcePath: string, label: string, maxBytes?: number, portableKind?: "codex" | "grok") => Promise<number>;
46
+ /**
47
+ * Binds Codex leaves per agent and one Grok bootstrap leaf per organization.
48
+ * Every leaf is validated from a stable descriptor and mounted read-only;
49
+ * Daimon alone owns writable credential state and refresh reconciliation.
50
+ */
51
+ export declare const prepareDaimonRuntimeAuth: (input: RuntimeAuthPreparationInput) => Promise<RuntimeAuthPreparationResult>;
@@ -0,0 +1,279 @@
1
+ import os from "node:os";
2
+ import path from "node:path";
3
+ import { constants } from "node:fs";
4
+ import { chmod, lstat, mkdir, open, readFile } from "node:fs/promises";
5
+ import { SpawnfileError } from "../../shared/index.js";
6
+ import { DAIMON_AGY_SUBSCRIPTION_REALM, assertDaimonRuntimeHome, DAIMON_ENGINE_CREDENTIALS, DAIMON_ENGINE_KINDS, DAIMON_GROK_SUBSCRIPTION_REALM, DAIMON_ORGANIZATION_RUNTIME_CONFIG_VERSIONS } from "./contractManifest.js";
7
+ import { DAIMON_ORGANIZATION_UID } from "./runtimeIdentity.js";
8
+ const MAX_OPAQUE_CREDENTIAL_BYTES = 64 * 1024;
9
+ export const DAIMON_GROK_ACCESS_TOKEN_MIN_BYTES = 32;
10
+ export const DAIMON_GROK_REFRESH_TOKEN_MIN_BYTES = 16;
11
+ export const DAIMON_AGY_UNLOCK_SOURCE_ENV = "SPAWNFILE_DAIMON_SOURCE_AGY_UNLOCK_SECRET";
12
+ const fail = (message) => {
13
+ throw new SpawnfileError("validation_error", `Daimon runtime auth ${message}`);
14
+ };
15
+ export const daimonSourceEnvironmentName = (slot) => `SPAWNFILE_DAIMON_SOURCE_${slot.replace(/[^A-Za-z0-9]+/g, "_").toUpperCase()}`;
16
+ export const daimonSourcePathForEngine = (engine, environment = process.env, authProfile = null) => {
17
+ const declaredSource = environment[daimonSourceEnvironmentName(engine === "grok"
18
+ ? DAIMON_GROK_SUBSCRIPTION_REALM.bootstrapSourceSlot
19
+ : DAIMON_ENGINE_CREDENTIALS.codex.sourceSlot)]?.trim();
20
+ if (declaredSource)
21
+ return declaredSource;
22
+ if (engine === "codex" && authProfile) {
23
+ const imported = authProfile.imports.codex;
24
+ return path.join(imported?.path ?? fail("selected auth profile has no imported codex credential"), "auth.json");
25
+ }
26
+ const home = os.homedir();
27
+ switch (engine) {
28
+ case "codex":
29
+ return path.join(process.env.CODEX_HOME || path.join(home, ".codex"), "auth.json");
30
+ case "grok":
31
+ return path.join(process.env.GROK_HOME || path.join(home, ".grok"), "auth.json");
32
+ }
33
+ };
34
+ const sourceFileIdentity = (entry) => [entry.dev, entry.ino, entry.size, entry.mtimeMs, entry.uid, entry.mode, entry.nlink].join(":");
35
+ /**
36
+ * The uid a bind-mounted Daimon credential must be owned by on the host.
37
+ *
38
+ * Daimon compares the file's owner against its own `process.getuid()` inside
39
+ * the container, the container runs as {@link DAIMON_ORGANIZATION_UID}, and a
40
+ * read-only bind mount carries the host uid through unchanged, so the two are
41
+ * the same number. See `runtimeIdentity.ts` for the full chain.
42
+ */
43
+ export const DAIMON_CREDENTIAL_CONTAINER_UID = DAIMON_ORGANIZATION_UID;
44
+ /**
45
+ * The host-side safety gate, isolated from `lstat` so every branch is directly
46
+ * exercisable. A credential the deploying process does not own is material it
47
+ * cannot vouch for, and a root deploy (`callerUid <= 0`) is refused outright
48
+ * so a privileged process never launders someone else's credential into a
49
+ * container.
50
+ */
51
+ export const isUnsafeDaimonSourceFile = (entry, callerUid, maxBytes) => !entry.isFile ||
52
+ entry.isSymbolicLink ||
53
+ entry.size === 0 ||
54
+ entry.size > maxBytes ||
55
+ entry.nlink !== 1 ||
56
+ (entry.mode & 0o777) !== 0o600 ||
57
+ typeof callerUid !== "number" ||
58
+ callerUid <= 0 ||
59
+ entry.uid !== callerUid;
60
+ /**
61
+ * Refuses, at deploy time, a credential whose owner is not the uid the
62
+ * container will demand.
63
+ *
64
+ * Without this the host gate above and Daimon's in-container gate impose two
65
+ * uncoordinated uid requirements on the same file: the host one passes for any
66
+ * non-root deploying account, and the container one then fails at readiness
67
+ * with an opaque "credential materialization failed" inside a candidate that
68
+ * lives ~15 seconds. Naming both numbers here turns that into a refusal the
69
+ * operator can act on.
70
+ */
71
+ export const assertDaimonCredentialContainerOwner = (observedUid, label, requiredUid = DAIMON_CREDENTIAL_CONTAINER_UID) => {
72
+ if (observedUid === requiredUid)
73
+ return;
74
+ fail(`selected ${label} artifact is owned by uid ${observedUid} but the Daimon container reads it as uid ` +
75
+ `${requiredUid}; the credential is bind-mounted read-only and keeps its host owner, so deploy from an ` +
76
+ `account whose uid is exactly ${requiredUid} (for example \`usermod -u ${requiredUid} <deploy-user>\` ` +
77
+ `followed by \`chown -R ${requiredUid} <deploy-home>\`) instead of uid ${observedUid}`);
78
+ };
79
+ export const assertSafeDaimonSourceFile = async (sourcePath, label, maxBytes = MAX_OPAQUE_CREDENTIAL_BYTES, portableKind) => {
80
+ let entry;
81
+ try {
82
+ entry = await lstat(sourcePath);
83
+ }
84
+ catch {
85
+ return fail(`is missing the selected ${label} artifact`);
86
+ }
87
+ const callerUid = process.getuid?.();
88
+ if (isUnsafeDaimonSourceFile({
89
+ isFile: entry.isFile(),
90
+ isSymbolicLink: entry.isSymbolicLink(),
91
+ mode: entry.mode,
92
+ nlink: entry.nlink,
93
+ size: entry.size,
94
+ uid: entry.uid
95
+ }, callerUid, maxBytes) || typeof callerUid !== "number") {
96
+ return fail(`selected ${label} artifact must be one bounded caller-owned 0600 regular file`);
97
+ }
98
+ if (portableKind !== undefined) {
99
+ let handle;
100
+ let bytes;
101
+ try {
102
+ handle = await open(sourcePath, constants.O_RDONLY | (constants.O_NOFOLLOW ?? 0));
103
+ const opened = await handle.stat();
104
+ if (sourceFileIdentity(opened) !== sourceFileIdentity(entry)) {
105
+ return fail(`selected ${label} artifact changed during validation`);
106
+ }
107
+ bytes = await handle.readFile();
108
+ const after = await handle.stat();
109
+ if (sourceFileIdentity(after) !== sourceFileIdentity(opened)) {
110
+ return fail(`selected ${label} artifact changed during validation`);
111
+ }
112
+ if (!hasRefreshableCredential(portableKind, bytes)) {
113
+ return fail(`selected ${label} artifact is not a refreshable subscription credential`);
114
+ }
115
+ }
116
+ catch (error) {
117
+ if (error instanceof SpawnfileError)
118
+ throw error;
119
+ return fail(`selected ${label} artifact could not be validated`);
120
+ }
121
+ finally {
122
+ bytes?.fill(0);
123
+ await handle?.close().catch(() => undefined);
124
+ }
125
+ }
126
+ return callerUid;
127
+ };
128
+ const hasRefreshableCredential = (kind, bytes) => {
129
+ let parsed;
130
+ try {
131
+ parsed = JSON.parse(bytes.toString("utf8"));
132
+ }
133
+ catch {
134
+ return false;
135
+ }
136
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed))
137
+ return false;
138
+ const root = parsed;
139
+ const source = kind === "codex"
140
+ ? ((root.tokens && typeof root.tokens === "object" && !Array.isArray(root.tokens)) ? root.tokens : root)
141
+ : Object.entries(root).find(([key, value]) => /^https:\/\/auth\.x\.ai::/u.test(key) && value && typeof value === "object" && !Array.isArray(value))?.[1];
142
+ if (!source)
143
+ return false;
144
+ const access = kind === "grok" ? source.key : source.access_token ?? source.accessToken ?? source.token;
145
+ const refresh = kind === "grok" ? source.refresh_token : source.refresh_token ?? source.refreshToken;
146
+ if (typeof access !== "string" || !access.trim() || typeof refresh !== "string" || !refresh.trim())
147
+ return false;
148
+ if (kind === "grok" && (access.length < DAIMON_GROK_ACCESS_TOKEN_MIN_BYTES
149
+ || refresh.length < DAIMON_GROK_REFRESH_TOKEN_MIN_BYTES))
150
+ return false;
151
+ return kind !== "grok" || (typeof source.expires_at === "string" && Number.isFinite(Date.parse(source.expires_at)));
152
+ };
153
+ const assertContainedPath = (root, candidate) => {
154
+ const normalizedRoot = path.resolve(root);
155
+ const normalizedCandidate = path.resolve(candidate);
156
+ const relative = path.relative(normalizedRoot, normalizedCandidate);
157
+ if (relative === "" || relative === ".." || relative.startsWith(`..${path.sep}`) || path.isAbsolute(relative)) {
158
+ return fail("attempted to stage outside its ephemeral support root");
159
+ }
160
+ return normalizedCandidate;
161
+ };
162
+ const configPathInOutput = (input) => {
163
+ if (!input.instance.config_path.startsWith("/"))
164
+ fail("has a non-absolute generated config path");
165
+ return assertContainedPath(path.join(input.outputDirectory, "container", "rootfs"), path.join(input.outputDirectory, "container", "rootfs", `.${input.instance.config_path}`));
166
+ };
167
+ const parseConfigAgents = (source) => {
168
+ let parsed;
169
+ try {
170
+ parsed = JSON.parse(source);
171
+ }
172
+ catch {
173
+ return fail("generated organization config is not JSON");
174
+ }
175
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed))
176
+ fail("generated organization config has an invalid shape");
177
+ const root = parsed;
178
+ if (!DAIMON_ORGANIZATION_RUNTIME_CONFIG_VERSIONS.includes(root.version) || !Array.isArray(root.agents))
179
+ fail("generated organization config is not a supported v1/v2 contract");
180
+ const rawAgents = root.agents;
181
+ const seenHomes = new Set();
182
+ const agents = [];
183
+ for (const value of rawAgents) {
184
+ if (!value || typeof value !== "object" || Array.isArray(value))
185
+ fail("generated organization config has an invalid agent");
186
+ const agent = value;
187
+ const engine = agent.engine;
188
+ const engineKind = engine && typeof engine === "object" && !Array.isArray(engine)
189
+ ? engine.kind
190
+ : undefined;
191
+ if (typeof agent.id !== "string" || !agent.id || typeof agent.runtimeHomePath !== "string"
192
+ || typeof engineKind !== "string"
193
+ || !DAIMON_ENGINE_KINDS.includes(engineKind)) {
194
+ fail("generated organization config has an invalid agent credential target");
195
+ }
196
+ const agentId = agent.id;
197
+ const runtimeHomePath = assertDaimonRuntimeHome(agent.runtimeHomePath);
198
+ if (seenHomes.has(runtimeHomePath))
199
+ fail("generated organization config has overlapping runtime homes");
200
+ seenHomes.add(runtimeHomePath);
201
+ agents.push({
202
+ engine: { kind: engineKind },
203
+ id: agentId,
204
+ runtimeHomePath
205
+ });
206
+ }
207
+ return agents.sort((left, right) => left.id.localeCompare(right.id));
208
+ };
209
+ const resolveCredentialSource = (agent, authProfile) => daimonSourcePathForEngine(agent.engine.kind, process.env, authProfile);
210
+ const prepareNeutralIngress = async (outputDirectory, agent) => {
211
+ const rootfs = path.join(outputDirectory, "container", "rootfs");
212
+ const runtimeHome = assertContainedPath(rootfs, path.join(rootfs, `.${agent.runtimeHomePath}`));
213
+ const inbound = assertContainedPath(runtimeHome, path.join(runtimeHome, path.posix.dirname(DAIMON_ENGINE_CREDENTIALS[agent.engine.kind].sourceRelativePath)));
214
+ await mkdir(runtimeHome, { mode: 0o700, recursive: true });
215
+ await chmod(runtimeHome, 0o700);
216
+ await mkdir(inbound, { mode: 0o700, recursive: true });
217
+ await chmod(inbound, 0o700);
218
+ return path.posix.join(agent.runtimeHomePath, DAIMON_ENGINE_CREDENTIALS[agent.engine.kind].sourceRelativePath);
219
+ };
220
+ /**
221
+ * Binds Codex leaves per agent and one Grok bootstrap leaf per organization.
222
+ * Every leaf is validated from a stable descriptor and mounted read-only;
223
+ * Daimon alone owns writable credential state and refresh reconciliation.
224
+ */
225
+ export const prepareDaimonRuntimeAuth = async (input) => {
226
+ const containerCredentialUid = input.containerCredentialUid ?? DAIMON_CREDENTIAL_CONTAINER_UID;
227
+ const allowedSourceEnvironments = new Set([
228
+ ...Object.values(DAIMON_ENGINE_CREDENTIALS).map((credential) => daimonSourceEnvironmentName(credential.sourceSlot)),
229
+ daimonSourceEnvironmentName(DAIMON_GROK_SUBSCRIPTION_REALM.bootstrapSourceSlot),
230
+ DAIMON_AGY_UNLOCK_SOURCE_ENV
231
+ ]);
232
+ for (const name of Object.keys(process.env)) {
233
+ if (name.startsWith("SPAWNFILE_DAIMON_SOURCE_") && !allowedSourceEnvironments.has(name)) {
234
+ return fail(`source slot environment ${name} is not declared by the consumed manifest`);
235
+ }
236
+ }
237
+ const configPath = configPathInOutput(input);
238
+ let configSource;
239
+ try {
240
+ configSource = await readFile(configPath, "utf8");
241
+ }
242
+ catch {
243
+ return fail("could not read its generated organization config");
244
+ }
245
+ const agents = parseConfigAgents(configSource);
246
+ const mountArgs = [];
247
+ for (const agent of agents) {
248
+ if (agent.engine.kind !== "codex")
249
+ continue;
250
+ const portableAgent = agent;
251
+ const sourcePath = resolveCredentialSource(portableAgent, input.authProfile);
252
+ const ingressPath = await prepareNeutralIngress(input.outputDirectory, portableAgent);
253
+ const ownerUid = await assertSafeDaimonSourceFile(sourcePath, agent.engine.kind, MAX_OPAQUE_CREDENTIAL_BYTES, "codex");
254
+ assertDaimonCredentialContainerOwner(ownerUid, agent.engine.kind, containerCredentialUid);
255
+ mountArgs.push("-v", `${sourcePath}:${ingressPath}:ro`);
256
+ }
257
+ // No container-owner assertion for the Grok bootstrap leaf: unlike the Codex
258
+ // credential and the AGY unlock secret, nothing in the organization runtime
259
+ // process reads it. The live Grok path goes through the engine broker, which
260
+ // runs under its own uid and reads only its durable realm, so pinning this
261
+ // leaf to the organization uid would refuse deployments that work today.
262
+ if (agents.some((agent) => agent.engine.kind === "grok")) {
263
+ const sourcePath = daimonSourcePathForEngine("grok");
264
+ await assertSafeDaimonSourceFile(sourcePath, "grok", DAIMON_GROK_SUBSCRIPTION_REALM.maxCredentialBytes, "grok");
265
+ mountArgs.push("-v", `${sourcePath}:${DAIMON_GROK_SUBSCRIPTION_REALM.bootstrapMountPath}:ro`);
266
+ }
267
+ if (agents.some((agent) => agent.engine.kind === "agy")) {
268
+ const source = process.env[DAIMON_AGY_UNLOCK_SOURCE_ENV]?.trim();
269
+ if (!source)
270
+ return fail("is missing the operator-authorized AGY realm unlock artifact");
271
+ const ownerUid = await assertSafeDaimonSourceFile(source, "AGY realm unlock", DAIMON_AGY_SUBSCRIPTION_REALM.maxUnlockBytes);
272
+ assertDaimonCredentialContainerOwner(ownerUid, "AGY realm unlock", containerCredentialUid);
273
+ mountArgs.push("-v", `${source}:${DAIMON_AGY_SUBSCRIPTION_REALM.unlockMountPath}:ro`);
274
+ }
275
+ return {
276
+ coveredModelSecrets: [],
277
+ mountArgs
278
+ };
279
+ };
@@ -0,0 +1,22 @@
1
+ /**
2
+ * The fixed container-side uids a compiled Daimon image runs under.
3
+ *
4
+ * These are compiler-wide constants, not per-organization values: the rendered
5
+ * Daimon entrypoint pins `uid=DAIMON_ORGANIZATION_UID` and drops to it through
6
+ * `setpriv --reuid`, so every organization's Daimon runtime process shares the
7
+ * same uid. The engine broker and its Grok workers run under their own fixed
8
+ * uids alongside it.
9
+ *
10
+ * Why the deploy path cares: Daimon's own credential guards compare a
11
+ * credential file's owner against `process.getuid()` *inside* the container
12
+ * (`portableCredentialMaterial.ts` for Codex, `agySubscriptionRealm.ts` for the
13
+ * AGY unlock secret). Spawnfile bind-mounts those files read-only from the
14
+ * host, the daemon applies no user-namespace remapping, and the credential
15
+ * leaves are declared opaque so the entrypoint ownership guard never chowns
16
+ * them. A host file therefore keeps its host uid inside the container, which
17
+ * makes "owned by DAIMON_ORGANIZATION_UID" a host-side deployment requirement
18
+ * rather than something the container can repair.
19
+ */
20
+ export declare const DAIMON_ORGANIZATION_UID = 2000;
21
+ export declare const DAIMON_BROKER_UID = 2100;
22
+ export declare const DAIMON_FIRST_WORKER_UID = 2200;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * The fixed container-side uids a compiled Daimon image runs under.
3
+ *
4
+ * These are compiler-wide constants, not per-organization values: the rendered
5
+ * Daimon entrypoint pins `uid=DAIMON_ORGANIZATION_UID` and drops to it through
6
+ * `setpriv --reuid`, so every organization's Daimon runtime process shares the
7
+ * same uid. The engine broker and its Grok workers run under their own fixed
8
+ * uids alongside it.
9
+ *
10
+ * Why the deploy path cares: Daimon's own credential guards compare a
11
+ * credential file's owner against `process.getuid()` *inside* the container
12
+ * (`portableCredentialMaterial.ts` for Codex, `agySubscriptionRealm.ts` for the
13
+ * AGY unlock secret). Spawnfile bind-mounts those files read-only from the
14
+ * host, the daemon applies no user-namespace remapping, and the credential
15
+ * leaves are declared opaque so the entrypoint ownership guard never chowns
16
+ * them. A host file therefore keeps its host uid inside the container, which
17
+ * makes "owned by DAIMON_ORGANIZATION_UID" a host-side deployment requirement
18
+ * rather than something the container can repair.
19
+ */
20
+ export const DAIMON_ORGANIZATION_UID = 2_000;
21
+ export const DAIMON_BROKER_UID = 2_100;
22
+ export const DAIMON_FIRST_WORKER_UID = 2_200;
@@ -0,0 +1,3 @@
1
+ export declare const hasDaimonScheduleAuthority: () => Promise<boolean>;
2
+ /** Schedule lowering is allowed only when the selected image receipt binds v2. */
3
+ export declare const assertDaimonScheduleAuthority: () => Promise<void>;
@@ -0,0 +1,17 @@
1
+ import { SpawnfileError } from "../../shared/index.js";
2
+ import { DAIMON_LOCAL_RUNTIME_IDENTITY_ENV, loadLocalDaimonRuntimeIdentity } from "../localDaimonAuthority.js";
3
+ import { DAIMON_CONTRACT_MANIFEST_SHA256 } from "./contractManifest.js";
4
+ export const hasDaimonScheduleAuthority = async () => {
5
+ const identityPath = process.env[DAIMON_LOCAL_RUNTIME_IDENTITY_ENV]?.trim();
6
+ if (!identityPath)
7
+ return false;
8
+ return (await loadLocalDaimonRuntimeIdentity(identityPath)).manifestSha256 ===
9
+ DAIMON_CONTRACT_MANIFEST_SHA256;
10
+ };
11
+ /** Schedule lowering is allowed only when the selected image receipt binds v2. */
12
+ export const assertDaimonScheduleAuthority = async () => {
13
+ // The checked-in v0.2.0 production pin attests v1 only.
14
+ if (!await hasDaimonScheduleAuthority()) {
15
+ throw new SpawnfileError("runtime_error", "Daimon schedules are disabled: the selected image capability receipt does not attest organization runtime v2");
16
+ }
17
+ };
@@ -1,5 +1,11 @@
1
+ export * from "./common.js";
1
2
  export * from "./container.js";
3
+ export * from "./containerPackageOverrides.js";
2
4
  export * from "./install.js";
5
+ export * from "./localDaimonAuthority.js";
3
6
  export * from "./registry.js";
4
7
  export * from "./statusProbes.js";
5
8
  export * from "./types.js";
9
+ export * from "./usageLedger.js";
10
+ export * from "./usageLedgerRead.js";
11
+ export * from "./usageRequestLedger.js";
@@ -1,5 +1,11 @@
1
+ export * from "./common.js";
1
2
  export * from "./container.js";
3
+ export * from "./containerPackageOverrides.js";
2
4
  export * from "./install.js";
5
+ export * from "./localDaimonAuthority.js";
3
6
  export * from "./registry.js";
4
7
  export * from "./statusProbes.js";
5
8
  export * from "./types.js";
9
+ export * from "./usageLedger.js";
10
+ export * from "./usageLedgerRead.js";
11
+ export * from "./usageRequestLedger.js";
@@ -1,5 +1,8 @@
1
1
  export type RuntimeInstallSelection = {
2
2
  ecosystem: "go" | "node";
3
+ capabilityReceipt?: string;
4
+ contractManifestSha256?: string;
5
+ digest?: string;
3
6
  image: string;
4
7
  installHint: string;
5
8
  kind: "container_image";
@@ -104,6 +104,9 @@ export const resolveRuntimeInstallSelection = async (runtimeName) => {
104
104
  case "container_image":
105
105
  return {
106
106
  ecosystem: installProfile.container_image.ecosystem,
107
+ capabilityReceipt: runtime.install.capabilityReceipt,
108
+ contractManifestSha256: runtime.install.contractManifestSha256,
109
+ digest: runtime.install.digest,
107
110
  image: runtime.install.image,
108
111
  installHint: installProfile.container_image.installHint,
109
112
  kind: "container_image",
@@ -0,0 +1,11 @@
1
+ export declare const DAIMON_LOCAL_RUNTIME_IDENTITY_ENV = "SPAWNFILE_DAIMON_LOCAL_RUNTIME_IDENTITY";
2
+ export interface LocalDaimonRuntimeIdentity {
3
+ capabilityReceipt: string;
4
+ imageArchitecture: "amd64" | "arm64";
5
+ imageConfigDigest: string;
6
+ imageManifestDigest: string;
7
+ imageReference: string;
8
+ manifestSha256: string;
9
+ registryAuthority: string;
10
+ }
11
+ export declare const loadLocalDaimonRuntimeIdentity: (identityPath: string) => Promise<LocalDaimonRuntimeIdentity>;