spawnfile 0.1.14 → 0.1.18

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 (873) hide show
  1. package/README.md +60 -159
  2. package/dist/audit/checksShared.d.ts +1 -1
  3. package/dist/auth/importers.d.ts +10 -0
  4. package/dist/auth/importers.js +46 -5
  5. package/dist/auth/index.d.ts +3 -0
  6. package/dist/auth/index.js +2 -0
  7. package/dist/auth/paths.d.ts +1 -1
  8. package/dist/auth/profileStore.js +13 -10
  9. package/dist/auth/targetSecretSourceFsIdentity.d.ts +40 -0
  10. package/dist/auth/targetSecretSourceFsIdentity.js +42 -0
  11. package/dist/auth/targetSecretSourceFsPublish.d.ts +2 -0
  12. package/dist/auth/targetSecretSourceFsPublish.js +3 -1
  13. package/dist/auth/targetSecretSourceFsPublishImmutable.d.ts +2 -1
  14. package/dist/auth/targetSecretSourceFsPublishImmutable.js +104 -71
  15. package/dist/auth/targetSecretSourceFsRead.js +5 -14
  16. package/dist/auth/trainingAuth.d.ts +21 -0
  17. package/dist/auth/trainingAuth.js +86 -0
  18. package/dist/auth/trainingGrokWriteback.d.ts +4 -0
  19. package/dist/auth/trainingGrokWriteback.js +119 -0
  20. package/dist/auth/trainingGrokWritebackLock.d.ts +5 -0
  21. package/dist/auth/trainingGrokWritebackLock.js +56 -0
  22. package/dist/auth/types.d.ts +1 -1
  23. package/dist/cli/authCommands.d.ts +1 -1
  24. package/dist/cli/authCommands.js +18 -5
  25. package/dist/cli/canaryCutoverCommand.d.ts +2 -0
  26. package/dist/cli/canaryCutoverCommand.js +30 -0
  27. package/dist/cli/capabilitiesCommand.d.ts +3 -0
  28. package/dist/cli/capabilitiesCommand.js +12 -0
  29. package/dist/cli/capabilitiesReceipt.d.ts +56 -0
  30. package/dist/cli/capabilitiesReceipt.js +56 -0
  31. package/dist/cli/compileBuildCommands.js +17 -0
  32. package/dist/cli/composedLifecycleContractSet.d.ts +21 -0
  33. package/dist/cli/composedLifecycleContractSet.js +204 -0
  34. package/dist/cli/devCommands.js +6 -2
  35. package/dist/cli/downCommand.d.ts +2 -0
  36. package/dist/cli/downCommand.js +22 -8
  37. package/dist/cli/envFileOption.d.ts +18 -0
  38. package/dist/cli/envFileOption.js +20 -0
  39. package/dist/cli/evidenceExportHelperCommand.d.ts +13 -0
  40. package/dist/cli/evidenceExportHelperCommand.js +51 -0
  41. package/dist/cli/index.js +12 -3
  42. package/dist/cli/lifecycleCommands.d.ts +1 -1
  43. package/dist/cli/lifecycleCommands.js +3 -1
  44. package/dist/cli/lifecycleMachine.d.ts +7 -1
  45. package/dist/cli/lifecycleMachine.js +2 -2
  46. package/dist/cli/lifecyclePlan.d.ts +1 -0
  47. package/dist/cli/lifecyclePlan.js +2 -0
  48. package/dist/cli/paideiaDelegation.d.ts +18 -0
  49. package/dist/cli/paideiaDelegation.js +211 -0
  50. package/dist/cli/paideiaSupervisor.d.ts +17 -0
  51. package/dist/cli/paideiaSupervisor.js +48 -0
  52. package/dist/cli/productStateCloneCommand.d.ts +2 -0
  53. package/dist/cli/productStateCloneCommand.js +34 -0
  54. package/dist/cli/recordCommands.d.ts +17 -0
  55. package/dist/cli/recordCommands.js +43 -0
  56. package/dist/cli/releaseCommand.d.ts +6 -0
  57. package/dist/cli/releaseCommand.js +91 -0
  58. package/dist/cli/runCli.d.ts +19 -3
  59. package/dist/cli/runCli.js +43 -10
  60. package/dist/cli/runPublishCommands.js +5 -3
  61. package/dist/cli/targetCommands.d.ts +4 -7
  62. package/dist/cli/targetCommands.js +16 -46
  63. package/dist/cli/targetConfigPreparedPlan.d.ts +3 -0
  64. package/dist/cli/targetConfigPreparedPlan.js +74 -0
  65. package/dist/cli/targetConfigResolver.d.ts +3 -0
  66. package/dist/cli/targetConfigResolver.js +111 -0
  67. package/dist/cli/targetConfigResolverCommand.d.ts +6 -0
  68. package/dist/cli/targetConfigResolverCommand.js +43 -0
  69. package/dist/cli/targetConfigResolverContracts.d.ts +56 -0
  70. package/dist/cli/targetConfigResolverContracts.js +30 -0
  71. package/dist/cli/targetConfigResolverDocker.d.ts +4 -0
  72. package/dist/cli/targetConfigResolverDocker.js +47 -0
  73. package/dist/cli/targetConfigResolverValidation.d.ts +10 -0
  74. package/dist/cli/targetConfigResolverValidation.js +94 -0
  75. package/dist/cli/targetDefaultAuthorities.d.ts +2 -0
  76. package/dist/cli/targetDefaultAuthorities.js +3 -0
  77. package/dist/cli/targetDefaultConfig.d.ts +7 -0
  78. package/dist/cli/targetDefaultConfig.js +22 -5
  79. package/dist/cli/targetDefaultConfigStdin.js +7 -1
  80. package/dist/cli/targetDefaultHandlerFactory.js +23 -2
  81. package/dist/cli/targetDefaultHandlers.d.ts +2 -2
  82. package/dist/cli/targetProductionCommands.d.ts +5 -0
  83. package/dist/cli/targetProductionCommands.js +45 -0
  84. package/dist/cli/trainCommand.d.ts +3 -0
  85. package/dist/cli/trainCommand.js +114 -0
  86. package/dist/cli/upCommand.js +40 -7
  87. package/dist/cli/upLifecycleRecovery.d.ts +2 -2
  88. package/dist/cli/upLifecycleRecovery.js +188 -44
  89. package/dist/cli/usageCommand.d.ts +40 -0
  90. package/dist/cli/usageCommand.js +284 -0
  91. package/dist/cli/usageCommandLive.d.ts +84 -0
  92. package/dist/cli/usageCommandLive.js +95 -0
  93. package/dist/cli/usageDeploymentSource.d.ts +9 -0
  94. package/dist/cli/usageDeploymentSource.js +22 -0
  95. package/dist/cli/volumeCommands.d.ts +8 -0
  96. package/dist/cli/volumeCommands.js +53 -0
  97. package/dist/cli/workspaceResourceMigrationCommand.d.ts +8 -0
  98. package/dist/cli/workspaceResourceMigrationCommand.js +36 -0
  99. package/dist/compiler/agentNodeMerge.js +3 -2
  100. package/dist/compiler/buildCompilePlan.js +4 -0
  101. package/dist/compiler/buildCompilePlanAgent.js +3 -1
  102. package/dist/compiler/buildCompilePlanTeams.d.ts +1 -1
  103. package/dist/compiler/buildCompilePlanTeams.js +6 -1
  104. package/dist/compiler/buildCompilePlanTraversal.js +2 -0
  105. package/dist/compiler/buildCompilePlanTraversalHelpers.d.ts +2 -2
  106. package/dist/compiler/buildCompilePlanTraversalHelpers.js +4 -3
  107. package/dist/compiler/buildProject.d.ts +10 -0
  108. package/dist/compiler/buildProject.js +14 -2
  109. package/dist/compiler/cleanCompileOutput.d.ts +2 -0
  110. package/dist/compiler/cleanCompileOutput.js +14 -0
  111. package/dist/compiler/compilePlanHelpers.js +5 -0
  112. package/dist/compiler/compileProject.d.ts +12 -0
  113. package/dist/compiler/compileProject.js +33 -3
  114. package/dist/compiler/compileProjectSupport.js +9 -0
  115. package/dist/compiler/containerArtifactSummaries.js +1 -0
  116. package/dist/compiler/containerArtifacts.d.ts +7 -5
  117. package/dist/compiler/containerArtifacts.js +77 -41
  118. package/dist/compiler/containerArtifactsPlans.d.ts +1 -1
  119. package/dist/compiler/containerArtifactsPlans.js +31 -7
  120. package/dist/compiler/containerArtifactsRender.d.ts +2 -1
  121. package/dist/compiler/containerArtifactsRender.js +91 -58
  122. package/dist/compiler/containerArtifactsTypes.d.ts +15 -0
  123. package/dist/compiler/containerBackedMountRender.d.ts +56 -0
  124. package/dist/compiler/containerBackedMountRender.js +101 -0
  125. package/dist/compiler/containerDaimonBrokerRender.d.ts +114 -0
  126. package/dist/compiler/containerDaimonBrokerRender.js +194 -0
  127. package/dist/compiler/containerDaimonGrokTaskClock.d.ts +5 -0
  128. package/dist/compiler/containerDaimonGrokTaskClock.js +29 -0
  129. package/dist/compiler/containerDaimonGrokWorkerProvisioning.d.ts +38 -0
  130. package/dist/compiler/containerDaimonGrokWorkerProvisioning.js +130 -0
  131. package/dist/compiler/containerDaimonGrokWorkerRender.d.ts +197 -0
  132. package/dist/compiler/containerDaimonGrokWorkerRender.js +281 -0
  133. package/dist/compiler/containerDaimonOwnershipGuardRender.d.ts +25 -0
  134. package/dist/compiler/containerDaimonOwnershipGuardRender.js +204 -0
  135. package/dist/compiler/containerDaimonUidEntrypointRender.d.ts +24 -0
  136. package/dist/compiler/containerDaimonUidEntrypointRender.js +291 -0
  137. package/dist/compiler/containerEntrypointRender.d.ts +7 -0
  138. package/dist/compiler/containerEntrypointRender.js +28 -22
  139. package/dist/compiler/containerPersistentMounts.d.ts +30 -0
  140. package/dist/compiler/containerPersistentMounts.js +66 -0
  141. package/dist/compiler/containerReadinessPaths.d.ts +1 -0
  142. package/dist/compiler/containerReadinessPaths.js +1 -0
  143. package/dist/compiler/containerRuntimeLinkMaterializer.d.ts +2 -0
  144. package/dist/compiler/containerRuntimeLinkMaterializer.js +12 -0
  145. package/dist/compiler/containerRuntimeReadinessRender.d.ts +7 -0
  146. package/dist/compiler/containerRuntimeReadinessRender.js +40 -0
  147. package/dist/compiler/containerStateOwnershipRender.d.ts +4 -0
  148. package/dist/compiler/containerStateOwnershipRender.js +75 -0
  149. package/dist/compiler/containerTargetResources.d.ts +32 -1
  150. package/dist/compiler/containerTargetResources.js +115 -15
  151. package/dist/compiler/containerVolumeBootstrap.d.ts +3 -0
  152. package/dist/compiler/containerVolumeBootstrap.js +3 -0
  153. package/dist/compiler/containerWorkspaceResourceRender.js +52 -1
  154. package/dist/compiler/daimonTelemetryArtifacts.d.ts +2 -2
  155. package/dist/compiler/daimonTelemetryArtifacts.js +5 -10
  156. package/dist/compiler/deploymentLineage.d.ts +40 -0
  157. package/dist/compiler/deploymentLineage.js +50 -0
  158. package/dist/compiler/index.d.ts +5 -0
  159. package/dist/compiler/index.js +5 -0
  160. package/dist/compiler/initProject.d.ts +2 -0
  161. package/dist/compiler/initProject.js +39 -1
  162. package/dist/compiler/localMoltnetAuthority.d.ts +64 -0
  163. package/dist/compiler/localMoltnetAuthority.js +177 -0
  164. package/dist/compiler/mcpPlaceholders.d.ts +11 -0
  165. package/dist/compiler/mcpPlaceholders.js +58 -0
  166. package/dist/compiler/mcpServerInheritance.d.ts +18 -0
  167. package/dist/compiler/mcpServerInheritance.js +43 -0
  168. package/dist/compiler/memoryArtifacts.d.ts +1 -1
  169. package/dist/compiler/memoryArtifacts.js +108 -32
  170. package/dist/compiler/modelEnv.d.ts +5 -0
  171. package/dist/compiler/modelEnv.js +8 -2
  172. package/dist/compiler/moltnetArtifactPaths.d.ts +17 -12
  173. package/dist/compiler/moltnetArtifactPaths.js +17 -15
  174. package/dist/compiler/moltnetArtifactTypes.d.ts +11 -0
  175. package/dist/compiler/moltnetArtifacts.d.ts +1 -1
  176. package/dist/compiler/moltnetArtifacts.js +53 -12
  177. package/dist/compiler/moltnetBinaries.d.ts +16 -4
  178. package/dist/compiler/moltnetBinaries.js +46 -6
  179. package/dist/compiler/moltnetClientConfig.js +1 -1
  180. package/dist/compiler/moltnetConfigLowering.d.ts +3 -1
  181. package/dist/compiler/moltnetConfigLowering.js +30 -6
  182. package/dist/compiler/moltnetNodeConfig.js +1 -1
  183. package/dist/compiler/moltnetReleaseAuthority.d.ts +24 -1
  184. package/dist/compiler/moltnetReleaseAuthority.js +33 -4
  185. package/dist/compiler/moltnetRepresentativeResolution.d.ts +1 -1
  186. package/dist/compiler/moltnetRepresentativeResolution.js +2 -2
  187. package/dist/compiler/moltnetResolution.js +9 -15
  188. package/dist/compiler/moltnetRoomMemberships.js +20 -5
  189. package/dist/compiler/moltnetRoomPolicyCompatibility.d.ts +1 -1
  190. package/dist/compiler/moltnetRoomPolicyCompatibility.js +3 -1
  191. package/dist/compiler/moltnetRuntimeConfig.d.ts +1 -1
  192. package/dist/compiler/moltnetRuntimeConfig.js +22 -2
  193. package/dist/compiler/moltnetServerPlans.js +19 -0
  194. package/dist/compiler/organizationExternalParticipants.d.ts +3 -0
  195. package/dist/compiler/organizationExternalParticipants.js +176 -0
  196. package/dist/compiler/organizationIdentity.d.ts +3 -9
  197. package/dist/compiler/organizationIdentity.js +37 -270
  198. package/dist/compiler/organizationIdentityGraph.d.ts +15 -0
  199. package/dist/compiler/organizationIdentityGraph.js +115 -0
  200. package/dist/compiler/organizationReadyEvidence.d.ts +8 -0
  201. package/dist/compiler/organizationReadyEvidence.js +23 -3
  202. package/dist/compiler/preflightCompilePlan.d.ts +9 -0
  203. package/dist/compiler/preflightCompilePlan.js +38 -0
  204. package/dist/compiler/recordingAgentFacts.d.ts +4 -0
  205. package/dist/compiler/recordingAgentFacts.js +35 -0
  206. package/dist/compiler/recordingCapability.d.ts +4 -0
  207. package/dist/compiler/recordingCapability.js +22 -0
  208. package/dist/compiler/recordingReport.d.ts +4 -0
  209. package/dist/compiler/recordingReport.js +18 -0
  210. package/dist/compiler/runProject.d.ts +6 -3
  211. package/dist/compiler/runProject.js +34 -6
  212. package/dist/compiler/runProjectAuth.d.ts +3 -1
  213. package/dist/compiler/runProjectAuth.js +19 -3
  214. package/dist/compiler/runProjectDaimonCodexDocker.d.ts +3 -0
  215. package/dist/compiler/runProjectDaimonCodexDocker.js +36 -0
  216. package/dist/compiler/runProjectDocker.d.ts +8 -4
  217. package/dist/compiler/runProjectDocker.js +43 -18
  218. package/dist/compiler/runProjectDockerDaimonGuards.d.ts +15 -0
  219. package/dist/compiler/runProjectDockerDaimonGuards.js +122 -0
  220. package/dist/compiler/runProjectDockerReservation.d.ts +3 -0
  221. package/dist/compiler/runProjectDockerReservation.js +118 -0
  222. package/dist/compiler/runProjectLifecycle.js +1 -1
  223. package/dist/compiler/surfaces.d.ts +1 -2
  224. package/dist/compiler/surfaces.js +0 -1
  225. package/dist/compiler/syncProjectAuth.js +2 -1
  226. package/dist/compiler/training/broker/clockProbe.d.ts +6 -0
  227. package/dist/compiler/training/broker/clockProbe.js +27 -0
  228. package/dist/compiler/training/broker/declaration.d.ts +47 -0
  229. package/dist/compiler/training/broker/declaration.js +57 -0
  230. package/dist/compiler/training/broker/entrypoint.d.ts +39 -0
  231. package/dist/compiler/training/broker/entrypoint.js +126 -0
  232. package/dist/compiler/training/broker/evaluatorSecrets.d.ts +2 -0
  233. package/dist/compiler/training/broker/evaluatorSecrets.js +60 -0
  234. package/dist/compiler/training/broker/index.d.ts +11 -0
  235. package/dist/compiler/training/broker/index.js +11 -0
  236. package/dist/compiler/training/broker/main.d.ts +2 -0
  237. package/dist/compiler/training/broker/main.js +14 -0
  238. package/dist/compiler/training/broker/paths.d.ts +236 -0
  239. package/dist/compiler/training/broker/paths.js +249 -0
  240. package/dist/compiler/training/broker/processes.d.ts +51 -0
  241. package/dist/compiler/training/broker/processes.js +102 -0
  242. package/dist/compiler/training/broker/projection.d.ts +52 -0
  243. package/dist/compiler/training/broker/projection.js +88 -0
  244. package/dist/compiler/training/broker/provisioning.d.ts +78 -0
  245. package/dist/compiler/training/broker/provisioning.js +231 -0
  246. package/dist/compiler/training/broker/receipt.d.ts +77 -0
  247. package/dist/compiler/training/broker/receipt.js +110 -0
  248. package/dist/compiler/training/broker/registration.d.ts +43 -0
  249. package/dist/compiler/training/broker/registration.js +110 -0
  250. package/dist/compiler/training/broker/reset.d.ts +9 -0
  251. package/dist/compiler/training/broker/reset.js +71 -0
  252. package/dist/compiler/training/broker/runtime.d.ts +22 -0
  253. package/dist/compiler/training/broker/runtime.js +127 -0
  254. package/dist/compiler/training/broker/seccompRoutes.d.ts +31 -0
  255. package/dist/compiler/training/broker/seccompRoutes.js +36 -0
  256. package/dist/compiler/training/broker/supervisor.d.ts +108 -0
  257. package/dist/compiler/training/broker/supervisor.js +172 -0
  258. package/dist/compiler/training/broker/taskClock.d.ts +5 -0
  259. package/dist/compiler/training/broker/taskClock.js +41 -0
  260. package/dist/compiler/training/compiledAgent.d.ts +21 -0
  261. package/dist/compiler/training/compiledAgent.js +62 -0
  262. package/dist/compiler/training/container/contract.d.ts +54 -0
  263. package/dist/compiler/training/container/contract.js +51 -0
  264. package/dist/compiler/training/container/evaluators.d.ts +48 -0
  265. package/dist/compiler/training/container/evaluators.js +50 -0
  266. package/dist/compiler/training/container/grokWriteback.d.ts +8 -0
  267. package/dist/compiler/training/container/grokWriteback.js +26 -0
  268. package/dist/compiler/training/container/index.d.ts +5 -0
  269. package/dist/compiler/training/container/index.js +3 -0
  270. package/dist/compiler/training/container/launch.d.ts +21 -0
  271. package/dist/compiler/training/container/launch.js +264 -0
  272. package/dist/compiler/training/container/nativeSlots.d.ts +14 -0
  273. package/dist/compiler/training/container/nativeSlots.js +13 -0
  274. package/dist/compiler/training/container/outputCopy.d.ts +2 -0
  275. package/dist/compiler/training/container/outputCopy.js +72 -0
  276. package/dist/compiler/training/container/outputVolume.d.ts +27 -0
  277. package/dist/compiler/training/container/outputVolume.js +161 -0
  278. package/dist/compiler/training/container/prepare.d.ts +10 -0
  279. package/dist/compiler/training/container/prepare.js +125 -0
  280. package/dist/compiler/training/container/process.d.ts +14 -0
  281. package/dist/compiler/training/container/process.js +70 -0
  282. package/dist/compiler/training/container/security.d.ts +38 -0
  283. package/dist/compiler/training/container/security.js +68 -0
  284. package/dist/compiler/training/container/subjectIsolation.d.ts +5 -0
  285. package/dist/compiler/training/container/subjectIsolation.js +15 -0
  286. package/dist/compiler/training/context.d.ts +15 -0
  287. package/dist/compiler/training/context.js +93 -0
  288. package/dist/compiler/training/contract.d.ts +144 -0
  289. package/dist/compiler/training/contract.js +36 -0
  290. package/dist/compiler/training/execution.d.ts +417 -0
  291. package/dist/compiler/training/execution.js +160 -0
  292. package/dist/compiler/training/index.d.ts +12 -0
  293. package/dist/compiler/training/index.js +10 -0
  294. package/dist/compiler/training/moments.d.ts +80 -0
  295. package/dist/compiler/training/moments.js +118 -0
  296. package/dist/compiler/training/output.d.ts +2 -0
  297. package/dist/compiler/training/output.js +20 -0
  298. package/dist/compiler/training/plan/contract.d.ts +287 -0
  299. package/dist/compiler/training/plan/contract.js +49 -0
  300. package/dist/compiler/training/plan/index.d.ts +5 -0
  301. package/dist/compiler/training/plan/index.js +4 -0
  302. package/dist/compiler/training/plan/load.d.ts +9 -0
  303. package/dist/compiler/training/plan/load.js +153 -0
  304. package/dist/compiler/training/plan/references.d.ts +19 -0
  305. package/dist/compiler/training/plan/references.js +57 -0
  306. package/dist/compiler/training/plan/resolve.d.ts +4 -0
  307. package/dist/compiler/training/plan/resolve.js +73 -0
  308. package/dist/compiler/training/plan/targets.d.ts +11 -0
  309. package/dist/compiler/training/plan/targets.js +71 -0
  310. package/dist/compiler/training/plan/types.d.ts +36 -0
  311. package/dist/compiler/training/plan/types.js +1 -0
  312. package/dist/compiler/training/preparation/assets/Dockerfile +109 -0
  313. package/dist/compiler/training/preparation/assets/package-lock.json +3787 -0
  314. package/dist/compiler/training/preparation/broker.d.ts +21 -0
  315. package/dist/compiler/training/preparation/broker.js +45 -0
  316. package/dist/compiler/training/preparation/contextModes.d.ts +12 -0
  317. package/dist/compiler/training/preparation/contextModes.js +38 -0
  318. package/dist/compiler/training/preparation/contract.d.ts +207 -0
  319. package/dist/compiler/training/preparation/contract.js +113 -0
  320. package/dist/compiler/training/preparation/copyAssets.d.ts +1 -0
  321. package/dist/compiler/training/preparation/copyAssets.js +8 -0
  322. package/dist/compiler/training/preparation/daimonParent.d.ts +42 -0
  323. package/dist/compiler/training/preparation/daimonParent.js +114 -0
  324. package/dist/compiler/training/preparation/files.d.ts +29 -0
  325. package/dist/compiler/training/preparation/files.js +146 -0
  326. package/dist/compiler/training/preparation/image.d.ts +28 -0
  327. package/dist/compiler/training/preparation/image.js +107 -0
  328. package/dist/compiler/training/preparation/index.d.ts +3 -0
  329. package/dist/compiler/training/preparation/index.js +2 -0
  330. package/dist/compiler/training/preparation/inputs.d.ts +24 -0
  331. package/dist/compiler/training/preparation/inputs.js +101 -0
  332. package/dist/compiler/training/preparation/prepare.d.ts +38 -0
  333. package/dist/compiler/training/preparation/prepare.js +223 -0
  334. package/dist/compiler/training/preparation/scratch.d.ts +8 -0
  335. package/dist/compiler/training/preparation/scratch.js +114 -0
  336. package/dist/compiler/training/repair/compatibility.d.ts +11 -0
  337. package/dist/compiler/training/repair/compatibility.js +34 -0
  338. package/dist/compiler/training/repair/contract.d.ts +840 -0
  339. package/dist/compiler/training/repair/contract.js +33 -0
  340. package/dist/compiler/training/repair/index.d.ts +3 -0
  341. package/dist/compiler/training/repair/index.js +3 -0
  342. package/dist/compiler/training/repair/prepare.d.ts +382 -0
  343. package/dist/compiler/training/repair/prepare.js +78 -0
  344. package/dist/compiler/training/repair/witness.d.ts +352 -0
  345. package/dist/compiler/training/repair/witness.js +48 -0
  346. package/dist/compiler/training/resolution.d.ts +25 -0
  347. package/dist/compiler/training/resolution.js +69 -0
  348. package/dist/compiler/training/rewind/contract.d.ts +321 -0
  349. package/dist/compiler/training/rewind/contract.js +39 -0
  350. package/dist/compiler/training/rewind/deployedResource.d.ts +22 -0
  351. package/dist/compiler/training/rewind/deployedResource.js +19 -0
  352. package/dist/compiler/training/rewind/feed.d.ts +12 -0
  353. package/dist/compiler/training/rewind/feed.js +182 -0
  354. package/dist/compiler/training/rewind/feedContent.d.ts +6 -0
  355. package/dist/compiler/training/rewind/feedContent.js +38 -0
  356. package/dist/compiler/training/rewind/git.d.ts +8 -0
  357. package/dist/compiler/training/rewind/git.js +159 -0
  358. package/dist/compiler/training/rewind/gitArchive.d.ts +2 -0
  359. package/dist/compiler/training/rewind/gitArchive.js +7 -0
  360. package/dist/compiler/training/rewind/gitHistory.d.ts +3 -0
  361. package/dist/compiler/training/rewind/gitHistory.js +55 -0
  362. package/dist/compiler/training/rewind/gitProcess.d.ts +19 -0
  363. package/dist/compiler/training/rewind/gitProcess.js +81 -0
  364. package/dist/compiler/training/rewind/gitTree.d.ts +14 -0
  365. package/dist/compiler/training/rewind/gitTree.js +90 -0
  366. package/dist/compiler/training/rewind/history.d.ts +28 -0
  367. package/dist/compiler/training/rewind/history.js +239 -0
  368. package/dist/compiler/training/rewind/index.d.ts +18 -0
  369. package/dist/compiler/training/rewind/index.js +15 -0
  370. package/dist/compiler/training/rewind/inputs.d.ts +9 -0
  371. package/dist/compiler/training/rewind/inputs.js +67 -0
  372. package/dist/compiler/training/rewind/instant.d.ts +4 -0
  373. package/dist/compiler/training/rewind/instant.js +24 -0
  374. package/dist/compiler/training/rewind/leakCheck.d.ts +10 -0
  375. package/dist/compiler/training/rewind/leakCheck.js +56 -0
  376. package/dist/compiler/training/rewind/leakFeed.d.ts +5 -0
  377. package/dist/compiler/training/rewind/leakFeed.js +25 -0
  378. package/dist/compiler/training/rewind/leakFiles.d.ts +10 -0
  379. package/dist/compiler/training/rewind/leakFiles.js +106 -0
  380. package/dist/compiler/training/rewind/leakGit.d.ts +3 -0
  381. package/dist/compiler/training/rewind/leakGit.js +78 -0
  382. package/dist/compiler/training/rewind/leakGitPayload.d.ts +4 -0
  383. package/dist/compiler/training/rewind/leakGitPayload.js +57 -0
  384. package/dist/compiler/training/rewind/leakInputs.d.ts +7 -0
  385. package/dist/compiler/training/rewind/leakInputs.js +135 -0
  386. package/dist/compiler/training/rewind/leakLayout.d.ts +2 -0
  387. package/dist/compiler/training/rewind/leakLayout.js +17 -0
  388. package/dist/compiler/training/rewind/leakProvenance.d.ts +3 -0
  389. package/dist/compiler/training/rewind/leakProvenance.js +88 -0
  390. package/dist/compiler/training/rewind/materialize.d.ts +136 -0
  391. package/dist/compiler/training/rewind/materialize.js +212 -0
  392. package/dist/compiler/training/rewind/memory.d.ts +10 -0
  393. package/dist/compiler/training/rewind/memory.js +84 -0
  394. package/dist/compiler/training/rewind/memorySchemas.d.ts +87 -0
  395. package/dist/compiler/training/rewind/memorySchemas.js +50 -0
  396. package/dist/compiler/training/rewind/moltnet.d.ts +2 -0
  397. package/dist/compiler/training/rewind/moltnet.js +54 -0
  398. package/dist/compiler/training/rewind/moltnetJson.d.ts +13 -0
  399. package/dist/compiler/training/rewind/moltnetJson.js +180 -0
  400. package/dist/compiler/training/rewind/moltnetSchemas.d.ts +1226 -0
  401. package/dist/compiler/training/rewind/moltnetSchemas.js +75 -0
  402. package/dist/compiler/training/rewind/moltnetSqlite.d.ts +31 -0
  403. package/dist/compiler/training/rewind/moltnetSqlite.js +192 -0
  404. package/dist/compiler/training/rewind/moltnetSqliteData.d.ts +10 -0
  405. package/dist/compiler/training/rewind/moltnetSqliteData.js +113 -0
  406. package/dist/compiler/training/rewind/recordInput.d.ts +40 -0
  407. package/dist/compiler/training/rewind/recordInput.js +49 -0
  408. package/dist/compiler/training/rewind/recordedBundle.d.ts +4 -0
  409. package/dist/compiler/training/rewind/recordedBundle.js +58 -0
  410. package/dist/compiler/training/rewind/recordedCommit.d.ts +2 -0
  411. package/dist/compiler/training/rewind/recordedCommit.js +10 -0
  412. package/dist/compiler/training/rewind/select.d.ts +18 -0
  413. package/dist/compiler/training/rewind/select.js +64 -0
  414. package/dist/compiler/training/rewind/snapshotManifest.d.ts +42 -0
  415. package/dist/compiler/training/rewind/snapshotManifest.js +134 -0
  416. package/dist/compiler/training/rewind/taskClock.d.ts +12 -0
  417. package/dist/compiler/training/rewind/taskClock.js +40 -0
  418. package/dist/compiler/training/rewind/timestamps.d.ts +4 -0
  419. package/dist/compiler/training/rewind/timestamps.js +26 -0
  420. package/dist/compiler/training/rewind/types.d.ts +43 -0
  421. package/dist/compiler/training/rewind/types.js +1 -0
  422. package/dist/compiler/training/rewind/volumes.d.ts +12 -0
  423. package/dist/compiler/training/rewind/volumes.js +58 -0
  424. package/dist/compiler/training/selection.d.ts +7 -0
  425. package/dist/compiler/training/selection.js +15 -0
  426. package/dist/compiler/types.d.ts +7 -2
  427. package/dist/compiler/upProject.d.ts +27 -1
  428. package/dist/compiler/upProject.js +135 -180
  429. package/dist/compiler/upProjectHandoff.d.ts +62 -0
  430. package/dist/compiler/upProjectHandoff.js +204 -0
  431. package/dist/compiler/upReceipt.js +49 -4
  432. package/dist/compiler/updateProjectModels.js +1 -0
  433. package/dist/compiler/view/types.d.ts +1 -1
  434. package/dist/compiler/workspaceBundleArtifacts.d.ts +18 -0
  435. package/dist/compiler/workspaceBundleArtifacts.js +155 -0
  436. package/dist/compiler/workspaceBundleCache.d.ts +23 -0
  437. package/dist/compiler/workspaceBundleCache.js +79 -0
  438. package/dist/compiler/workspaceBundleDependencies.d.ts +21 -0
  439. package/dist/compiler/workspaceBundleDependencies.js +122 -0
  440. package/dist/compiler/workspaceBundleFiles.d.ts +51 -0
  441. package/dist/compiler/workspaceBundleFiles.js +251 -0
  442. package/dist/compiler/workspaceBundleGenerated.d.ts +25 -0
  443. package/dist/compiler/workspaceBundleGenerated.js +103 -0
  444. package/dist/compiler/workspaceBundleGit.d.ts +64 -0
  445. package/dist/compiler/workspaceBundleGit.js +154 -0
  446. package/dist/compiler/workspaceBundleKey.d.ts +34 -0
  447. package/dist/compiler/workspaceBundleKey.js +17 -0
  448. package/dist/compiler/workspaceBundleResolve.d.ts +56 -0
  449. package/dist/compiler/workspaceBundleResolve.js +144 -0
  450. package/dist/compiler/workspaceBundleRun.d.ts +41 -0
  451. package/dist/compiler/workspaceBundleRun.js +79 -0
  452. package/dist/compiler/workspaceBundleTar.d.ts +47 -0
  453. package/dist/compiler/workspaceBundleTar.js +140 -0
  454. package/dist/compiler/workspaceBundleTree.d.ts +15 -0
  455. package/dist/compiler/workspaceBundleTree.js +58 -0
  456. package/dist/compiler/workspaceGitFetch.d.ts +41 -0
  457. package/dist/compiler/workspaceGitFetch.js +155 -0
  458. package/dist/compiler/workspaceGitPins.d.ts +33 -0
  459. package/dist/compiler/workspaceGitPins.js +127 -0
  460. package/dist/compiler/workspaceResources.d.ts +9 -2
  461. package/dist/compiler/workspaceResources.js +39 -7
  462. package/dist/deployment/activation.d.ts +3 -0
  463. package/dist/deployment/activation.js +12 -0
  464. package/dist/deployment/artifactsExportPlan.js +51 -1
  465. package/dist/deployment/canaryCutover.d.ts +42 -0
  466. package/dist/deployment/canaryCutover.js +140 -0
  467. package/dist/deployment/candidateDiagnostics.d.ts +15 -0
  468. package/dist/deployment/candidateDiagnostics.js +90 -0
  469. package/dist/deployment/candidateRecording.d.ts +8 -0
  470. package/dist/deployment/candidateRecording.js +22 -0
  471. package/dist/deployment/dockerLogs.js +4 -1
  472. package/dist/deployment/dockerManager.d.ts +5 -3
  473. package/dist/deployment/dockerManager.js +21 -5
  474. package/dist/deployment/dockerProbeGateway.d.ts +17 -0
  475. package/dist/deployment/dockerProbeGateway.js +17 -2
  476. package/dist/deployment/downDeployment.d.ts +7 -0
  477. package/dist/deployment/downDeployment.js +114 -9
  478. package/dist/deployment/downReceiptTypes.d.ts +17 -2
  479. package/dist/deployment/downReceiptTypes.js +17 -2
  480. package/dist/deployment/homeStore.d.ts +9 -1
  481. package/dist/deployment/homeStore.js +16 -53
  482. package/dist/deployment/index.d.ts +10 -0
  483. package/dist/deployment/index.js +10 -0
  484. package/dist/deployment/lifecycleCompletionContracts.d.ts +66 -0
  485. package/dist/deployment/lifecycleCompletionContracts.js +34 -0
  486. package/dist/deployment/lifecycleCompletionPaths.d.ts +4 -1
  487. package/dist/deployment/lifecycleCompletionPaths.js +3 -0
  488. package/dist/deployment/lifecycleCompletionPublication.d.ts +2 -0
  489. package/dist/deployment/lifecycleCompletionPublication.js +18 -4
  490. package/dist/deployment/lifecycleCompletionStore.d.ts +1 -1
  491. package/dist/deployment/lifecycleCompletionStore.js +7 -7
  492. package/dist/deployment/lifecycleUpRecords.d.ts +11 -0
  493. package/dist/deployment/lifecycleUpRecords.js +127 -0
  494. package/dist/deployment/native/AGENTS.md +11 -0
  495. package/dist/deployment/native/rename-noreplace-arm64 +0 -0
  496. package/dist/deployment/native/rename-noreplace-arm64.provenance.json +1 -0
  497. package/dist/deployment/native/rename-noreplace-x64 +0 -0
  498. package/dist/deployment/native/rename-noreplace-x64.provenance.json +1 -0
  499. package/dist/deployment/noReplaceActivation.d.ts +17 -0
  500. package/dist/deployment/noReplaceActivation.js +50 -0
  501. package/dist/deployment/organizationHandoffAuthorityFsBudget.d.ts +110 -0
  502. package/dist/deployment/organizationHandoffAuthorityFsBudget.js +156 -0
  503. package/dist/deployment/organizationHandoffAuthorityFsClient.js +82 -27
  504. package/dist/deployment/organizationHandoffAuthorityFsElection.d.ts +21 -0
  505. package/dist/deployment/organizationHandoffAuthorityFsElection.js +57 -0
  506. package/dist/deployment/organizationHandoffAuthorityFsWorker.js +254 -108
  507. package/dist/deployment/organizationHandoffAuthorityFsWorkerStall.fixture.d.ts +1 -0
  508. package/dist/deployment/organizationHandoffAuthorityFsWorkerStall.fixture.js +16 -0
  509. package/dist/deployment/organizationHandoffAuthorityStore.js +14 -7
  510. package/dist/deployment/organizationHandoffAuthorityTypes.d.ts +2 -2
  511. package/dist/deployment/organizationHandoffAuthorityTypes.js +2 -1
  512. package/dist/deployment/organizationReady.d.ts +2 -0
  513. package/dist/deployment/organizationReady.js +36 -4
  514. package/dist/deployment/pidLock.d.ts +25 -0
  515. package/dist/deployment/pidLock.js +81 -0
  516. package/dist/deployment/productStateClone.d.ts +43 -0
  517. package/dist/deployment/productStateClone.js +319 -0
  518. package/dist/deployment/record.d.ts +85 -1
  519. package/dist/deployment/record.js +11 -5
  520. package/dist/deployment/recordPublication.d.ts +15 -0
  521. package/dist/deployment/recordPublication.js +76 -0
  522. package/dist/deployment/recordedMemoryRetention.d.ts +18 -0
  523. package/dist/deployment/recordedMemoryRetention.js +27 -0
  524. package/dist/deployment/resourceLog.d.ts +140 -0
  525. package/dist/deployment/resourceLog.js +78 -0
  526. package/dist/deployment/upLifecycleRecoveryState.d.ts +23 -0
  527. package/dist/deployment/upLifecycleRecoveryState.js +12 -0
  528. package/dist/deployment/upReceiptTypes.d.ts +32 -6
  529. package/dist/deployment/upReceiptTypes.js +29 -2
  530. package/dist/deployment/workspaceResourceMigration.d.ts +55 -0
  531. package/dist/deployment/workspaceResourceMigration.js +315 -0
  532. package/dist/dev/project.d.ts +7 -0
  533. package/dist/dev/project.js +9 -0
  534. package/dist/distribution/buildDistributionReport.d.ts +3 -0
  535. package/dist/distribution/buildDistributionReport.js +5 -0
  536. package/dist/distribution/consumeImage.d.ts +5 -0
  537. package/dist/distribution/consumeImage.js +115 -98
  538. package/dist/distribution/consumeImageDaimonDocker.d.ts +3 -0
  539. package/dist/distribution/consumeImageDaimonDocker.js +45 -0
  540. package/dist/distribution/consumeImageLifecycle.d.ts +20 -0
  541. package/dist/distribution/consumeImageLifecycle.js +242 -0
  542. package/dist/distribution/consumeImageSupport.d.ts +19 -0
  543. package/dist/distribution/consumeImageSupport.js +40 -0
  544. package/dist/distribution/distributionReportSchema.d.ts +58 -1
  545. package/dist/distribution/distributionReportSchema.js +35 -2
  546. package/dist/distribution/dockerRunner.d.ts +6 -1
  547. package/dist/distribution/dockerRunner.js +31 -4
  548. package/dist/distribution/imageRuntimeAuth.d.ts +9 -1
  549. package/dist/distribution/imageRuntimeAuth.js +70 -1
  550. package/dist/distribution/index.d.ts +1 -1
  551. package/dist/distribution/index.js +1 -1
  552. package/dist/distribution/preflight.js +5 -1
  553. package/dist/distribution/renderImageInterface.js +1 -1
  554. package/dist/distribution/types.d.ts +29 -1
  555. package/dist/distribution/types.js +3 -0
  556. package/dist/evidenceExportHelper/boundedExecutor.d.ts +3 -0
  557. package/dist/evidenceExportHelper/boundedExecutor.js +33 -0
  558. package/dist/evidenceExportHelper/helperProgram.mjs +156 -0
  559. package/dist/evidenceExportHelper/index.d.ts +4 -0
  560. package/dist/evidenceExportHelper/index.js +4 -0
  561. package/dist/evidenceExportHelper/preparedAuthority.d.ts +64 -0
  562. package/dist/evidenceExportHelper/preparedAuthority.js +228 -0
  563. package/dist/evidenceExportHelper/preparedBuilder.d.ts +10 -0
  564. package/dist/evidenceExportHelper/preparedBuilder.js +183 -0
  565. package/dist/evidenceExportHelper/preparedBuilderTypes.d.ts +19 -0
  566. package/dist/evidenceExportHelper/preparedBuilderTypes.js +1 -0
  567. package/dist/evidenceExportHelper/recipe.d.ts +7 -0
  568. package/dist/evidenceExportHelper/recipe.js +83 -0
  569. package/dist/filesystem/durableWrite.d.ts +10 -0
  570. package/dist/filesystem/durableWrite.js +87 -0
  571. package/dist/filesystem/index.d.ts +2 -0
  572. package/dist/filesystem/index.js +2 -0
  573. package/dist/filesystem/io.d.ts +2 -0
  574. package/dist/filesystem/io.js +16 -1
  575. package/dist/filesystem/retainedJsonl.d.ts +23 -0
  576. package/dist/filesystem/retainedJsonl.js +123 -0
  577. package/dist/manifest/commandSchemas.d.ts +5 -0
  578. package/dist/manifest/commandSchemas.js +5 -0
  579. package/dist/manifest/executionSchemas.d.ts +47 -0
  580. package/dist/manifest/executionSchemas.js +31 -2
  581. package/dist/manifest/index.d.ts +2 -0
  582. package/dist/manifest/index.js +2 -0
  583. package/dist/manifest/loadManifest.js +3 -26
  584. package/dist/manifest/mcpSchemas.d.ts +62 -0
  585. package/dist/manifest/mcpSchemas.js +57 -8
  586. package/dist/manifest/memorySchemas.d.ts +1 -1
  587. package/dist/manifest/memorySchemas.js +1 -1
  588. package/dist/manifest/parseManifest.d.ts +7 -0
  589. package/dist/manifest/parseManifest.js +65 -0
  590. package/dist/manifest/renderSpawnfile.js +4 -1
  591. package/dist/manifest/renderSpawnfileNetworks.js +11 -0
  592. package/dist/manifest/renderSpawnfileWorkspace.js +10 -1
  593. package/dist/manifest/scheduleSchemas.d.ts +3 -1
  594. package/dist/manifest/scheduleSchemas.js +91 -5
  595. package/dist/manifest/schemas.d.ts +1419 -120
  596. package/dist/manifest/schemas.js +19 -6
  597. package/dist/manifest/teamNetworkAccessSchemas.d.ts +5 -1
  598. package/dist/manifest/teamNetworkAccessSchemas.js +11 -0
  599. package/dist/manifest/teamNetworkAuthSchemas.d.ts +1 -1
  600. package/dist/manifest/teamNetworkSchemas.d.ts +18 -4
  601. package/dist/manifest/teamNetworkSchemas.js +19 -1
  602. package/dist/manifest/teamNetworkServerSchemas.d.ts +8 -3
  603. package/dist/manifest/teamNetworkServerSchemas.js +18 -2
  604. package/dist/manifest/trainingDataSchemas.d.ts +357 -0
  605. package/dist/manifest/trainingDataSchemas.js +31 -0
  606. package/dist/manifest/trainingSchemas.d.ts +49 -0
  607. package/dist/manifest/trainingSchemas.js +44 -0
  608. package/dist/manifest/volumeFeedSchemas.d.ts +52 -0
  609. package/dist/manifest/volumeFeedSchemas.js +104 -0
  610. package/dist/manifest/workspaceSchemas.d.ts +194 -1
  611. package/dist/manifest/workspaceSchemas.js +117 -2
  612. package/dist/recording/compose.d.ts +3 -0
  613. package/dist/recording/compose.js +93 -0
  614. package/dist/recording/deployment.d.ts +15 -0
  615. package/dist/recording/deployment.js +38 -0
  616. package/dist/recording/history.d.ts +16 -0
  617. package/dist/recording/history.js +47 -0
  618. package/dist/recording/index.d.ts +9 -0
  619. package/dist/recording/index.js +9 -0
  620. package/dist/recording/moment.d.ts +61 -0
  621. package/dist/recording/moment.js +36 -0
  622. package/dist/recording/parse.d.ts +15 -0
  623. package/dist/recording/parse.js +74 -0
  624. package/dist/recording/read.d.ts +8 -0
  625. package/dist/recording/read.js +61 -0
  626. package/dist/recording/store.d.ts +10 -0
  627. package/dist/recording/store.js +94 -0
  628. package/dist/recording/sync.d.ts +24 -0
  629. package/dist/recording/sync.js +126 -0
  630. package/dist/recording/types.d.ts +45 -0
  631. package/dist/recording/types.js +2 -0
  632. package/dist/release/drainControl.d.ts +54 -0
  633. package/dist/release/drainControl.js +137 -0
  634. package/dist/release/drainPhase.d.ts +37 -0
  635. package/dist/release/drainPhase.js +161 -0
  636. package/dist/release/index.d.ts +11 -0
  637. package/dist/release/index.js +11 -0
  638. package/dist/release/ledger.d.ts +75 -0
  639. package/dist/release/ledger.js +111 -0
  640. package/dist/release/notify.d.ts +58 -0
  641. package/dist/release/notify.js +126 -0
  642. package/dist/release/pending.d.ts +35 -0
  643. package/dist/release/pending.js +60 -0
  644. package/dist/release/postDeploy.d.ts +32 -0
  645. package/dist/release/postDeploy.js +62 -0
  646. package/dist/release/releaseDefaults.d.ts +9 -0
  647. package/dist/release/releaseDefaults.js +115 -0
  648. package/dist/release/releaseDocker.d.ts +38 -0
  649. package/dist/release/releaseDocker.js +94 -0
  650. package/dist/release/releaseTypes.d.ts +94 -0
  651. package/dist/release/releaseTypes.js +1 -0
  652. package/dist/release/runRelease.d.ts +9 -0
  653. package/dist/release/runRelease.js +218 -0
  654. package/dist/release/swap.d.ts +23 -0
  655. package/dist/release/swap.js +55 -0
  656. package/dist/release/types.d.ts +50 -0
  657. package/dist/release/types.js +29 -0
  658. package/dist/report/index.d.ts +1 -0
  659. package/dist/report/index.js +1 -0
  660. package/dist/report/recording.d.ts +57 -0
  661. package/dist/report/recording.js +26 -0
  662. package/dist/report/types.d.ts +92 -4
  663. package/dist/runtime/common.d.ts +28 -1
  664. package/dist/runtime/common.js +33 -3
  665. package/dist/runtime/container.js +46 -35
  666. package/dist/runtime/daimon/adapter.d.ts +14 -0
  667. package/dist/runtime/daimon/adapter.js +254 -0
  668. package/dist/runtime/daimon/attention.d.ts +8 -0
  669. package/dist/runtime/daimon/attention.js +32 -0
  670. package/dist/runtime/daimon/config.d.ts +29 -0
  671. package/dist/runtime/daimon/config.js +321 -0
  672. package/dist/runtime/daimon/contract-manifest.json +1 -0
  673. package/dist/runtime/daimon/contract-manifest.sha256 +1 -0
  674. package/dist/runtime/daimon/contractManifest.d.ts +346 -0
  675. package/dist/runtime/daimon/contractManifest.js +335 -0
  676. package/dist/runtime/daimon/grokModel.d.ts +19 -0
  677. package/dist/runtime/daimon/grokModel.js +33 -0
  678. package/dist/runtime/daimon/grokTurnLimits.d.ts +25 -0
  679. package/dist/runtime/daimon/grokTurnLimits.js +51 -0
  680. package/dist/runtime/daimon/grokWorkerConfigBytes.d.ts +43 -0
  681. package/dist/runtime/daimon/grokWorkerConfigBytes.js +53 -0
  682. package/dist/runtime/daimon/grokWorkerContract.d.ts +27 -0
  683. package/dist/runtime/daimon/grokWorkerContract.js +60 -0
  684. package/dist/runtime/daimon/memory.d.ts +57 -0
  685. package/dist/runtime/daimon/memory.js +125 -0
  686. package/dist/runtime/daimon/recording.d.ts +19 -0
  687. package/dist/runtime/daimon/recording.js +50 -0
  688. package/dist/runtime/daimon/runAuth.d.ts +51 -0
  689. package/dist/runtime/daimon/runAuth.js +279 -0
  690. package/dist/runtime/daimon/runtimeIdentity.d.ts +22 -0
  691. package/dist/runtime/daimon/runtimeIdentity.js +22 -0
  692. package/dist/runtime/daimon/scheduleAuthority.d.ts +11 -0
  693. package/dist/runtime/daimon/scheduleAuthority.js +31 -0
  694. package/dist/runtime/daimon/wakeMoments.d.ts +15 -0
  695. package/dist/runtime/daimon/wakeMoments.js +17 -0
  696. package/dist/runtime/daimonInstall.d.ts +3 -0
  697. package/dist/runtime/daimonInstall.js +25 -0
  698. package/dist/runtime/index.d.ts +5 -0
  699. package/dist/runtime/index.js +5 -0
  700. package/dist/runtime/install.d.ts +5 -0
  701. package/dist/runtime/install.js +4 -0
  702. package/dist/runtime/localDaimonAuthority.d.ts +11 -0
  703. package/dist/runtime/localDaimonAuthority.js +77 -0
  704. package/dist/runtime/mnemeMcp.d.ts +13 -0
  705. package/dist/runtime/mnemeMcp.js +26 -0
  706. package/dist/runtime/openclaw/adapter.js +5 -2
  707. package/dist/runtime/pi/adapter.d.ts +0 -1
  708. package/dist/runtime/pi/adapter.js +5 -6
  709. package/dist/runtime/pi/appCliSource.js +1 -1
  710. package/dist/runtime/pi/appScheduleSource.js +6 -2
  711. package/dist/runtime/pi/appTemplateTypes.d.ts +1 -1
  712. package/dist/runtime/pi/containerTargets.js +6 -0
  713. package/dist/runtime/picoclaw/adapter.js +5 -2
  714. package/dist/runtime/registry.d.ts +6 -0
  715. package/dist/runtime/registry.js +32 -3
  716. package/dist/runtime/scheduleUtils.d.ts +1 -0
  717. package/dist/runtime/scheduleUtils.js +5 -1
  718. package/dist/runtime/types.d.ts +40 -0
  719. package/dist/runtime/usageLedger.d.ts +158 -0
  720. package/dist/runtime/usageLedger.js +269 -0
  721. package/dist/runtime/usageLedgerRead.d.ts +54 -0
  722. package/dist/runtime/usageLedgerRead.js +102 -0
  723. package/dist/runtime/usageRequestLedger.d.ts +42 -0
  724. package/dist/runtime/usageRequestLedger.js +72 -0
  725. package/dist/shared/daimonCodexDocker.d.ts +32 -0
  726. package/dist/shared/daimonCodexDocker.js +120 -0
  727. package/dist/shared/daimonGrokSeccompProfile.d.ts +10 -0
  728. package/dist/shared/daimonGrokSeccompProfile.js +11 -0
  729. package/dist/shared/index.d.ts +3 -0
  730. package/dist/shared/index.js +3 -0
  731. package/dist/shared/recording.d.ts +8 -0
  732. package/dist/shared/recording.js +25 -0
  733. package/dist/shared/types.d.ts +1 -1
  734. package/dist/shared/volumeNames.d.ts +6 -0
  735. package/dist/shared/volumeNames.js +14 -0
  736. package/dist/target/dockerArtifactsProvider.js +34 -7
  737. package/dist/target/dockerBaseImage.d.ts +2 -0
  738. package/dist/target/dockerBaseImage.js +11 -0
  739. package/dist/target/dockerCommandExecutor.d.ts +11 -0
  740. package/dist/target/dockerCommandExecutor.js +53 -2
  741. package/dist/target/dockerCommandExecutorCore.d.ts +2 -1
  742. package/dist/target/dockerCommandExecutorCore.js +5 -3
  743. package/dist/target/dockerPublicArtifactSnapshot.d.ts +3 -3
  744. package/dist/target/dockerPublicArtifactSnapshot.js +17 -33
  745. package/dist/target/dockerTarget.d.ts +1 -0
  746. package/dist/target/dockerTargetBinding.d.ts +1 -2
  747. package/dist/target/dockerTargetBinding.js +4 -4
  748. package/dist/target/dockerTargetExecFile.d.ts +19 -0
  749. package/dist/target/dockerTargetExecFile.js +194 -0
  750. package/dist/target/dockerWorldServiceProvider.d.ts +4 -0
  751. package/dist/target/dockerWorldServiceProvider.js +13 -1
  752. package/dist/target/evidenceExport.d.ts +3 -1
  753. package/dist/target/evidenceExport.js +12 -3
  754. package/dist/target/evidenceExportOperationsTestKit.js +3 -3
  755. package/dist/target/evidenceExportProvider.d.ts +2 -0
  756. package/dist/target/evidenceExportProvider.js +15 -5
  757. package/dist/target/publicArtifactSnapshot.d.ts +31 -0
  758. package/dist/target/publicArtifactSnapshot.js +37 -3
  759. package/dist/volume/feedLand.d.ts +31 -0
  760. package/dist/volume/feedLand.js +174 -0
  761. package/dist/volume/feedLandings.d.ts +45 -0
  762. package/dist/volume/feedLandings.js +111 -0
  763. package/dist/volume/feedLayout.d.ts +61 -0
  764. package/dist/volume/feedLayout.js +234 -0
  765. package/dist/volume/feedLock.d.ts +7 -0
  766. package/dist/volume/feedLock.js +131 -0
  767. package/dist/volume/feedManifest.d.ts +27 -0
  768. package/dist/volume/feedManifest.js +123 -0
  769. package/dist/volume/feedPrepare.d.ts +16 -0
  770. package/dist/volume/feedPrepare.js +228 -0
  771. package/dist/volume/feedProject.d.ts +39 -0
  772. package/dist/volume/feedProject.js +92 -0
  773. package/dist/volume/feedRecord.d.ts +55 -0
  774. package/dist/volume/feedRecord.js +148 -0
  775. package/dist/volume/feedRef.d.ts +43 -0
  776. package/dist/volume/feedRef.js +117 -0
  777. package/dist/volume/feedRefresh.d.ts +15 -0
  778. package/dist/volume/feedRefresh.js +187 -0
  779. package/dist/volume/feedSource.d.ts +66 -0
  780. package/dist/volume/feedSource.js +104 -0
  781. package/dist/volume/feedTarget.d.ts +70 -0
  782. package/dist/volume/feedTarget.js +9 -0
  783. package/dist/volume/feedTestKit.d.ts +11 -0
  784. package/dist/volume/feedTestKit.js +45 -0
  785. package/dist/volume/feedVerify.d.ts +18 -0
  786. package/dist/volume/feedVerify.js +104 -0
  787. package/dist/volume/index.d.ts +13 -0
  788. package/dist/volume/index.js +13 -0
  789. package/examples/README.md +45 -0
  790. package/examples/agent-with-subagents/AGENTS.md +3 -0
  791. package/examples/agent-with-subagents/Spawnfile +30 -0
  792. package/examples/agent-with-subagents/subagents/critic/AGENTS.md +3 -0
  793. package/examples/agent-with-subagents/subagents/critic/Spawnfile +15 -0
  794. package/examples/agent-with-subagents/subagents/researcher/AGENTS.md +3 -0
  795. package/examples/agent-with-subagents/subagents/researcher/Spawnfile +17 -0
  796. package/examples/daimon-org/Spawnfile +68 -0
  797. package/examples/daimon-org/TEAM.md +4 -0
  798. package/examples/daimon-org/agents/mapper/AGENTS.md +4 -0
  799. package/examples/daimon-org/agents/mapper/Spawnfile +37 -0
  800. package/examples/daimon-org/shared/skills/file-note/SKILL.md +9 -0
  801. package/examples/daimon-org/teams/review/Spawnfile +53 -0
  802. package/examples/daimon-org/teams/review/agents/reviewer/AGENTS.md +4 -0
  803. package/examples/daimon-org/teams/review/agents/reviewer/Spawnfile +37 -0
  804. package/examples/daimon-public-host/AGENTS.md +3 -0
  805. package/examples/daimon-public-host/Spawnfile +21 -0
  806. package/examples/distribution-org/Spawnfile +43 -0
  807. package/examples/distribution-org/TEAM.md +4 -0
  808. package/examples/distribution-org/agents/coordinator/AGENTS.md +1 -0
  809. package/examples/distribution-org/agents/coordinator/Spawnfile +20 -0
  810. package/examples/distribution-org/agents/researcher/AGENTS.md +1 -0
  811. package/examples/distribution-org/agents/researcher/Spawnfile +20 -0
  812. package/examples/jungian-daimon-org/Spawnfile +41 -0
  813. package/examples/jungian-daimon-org/TEAM.md +21 -0
  814. package/examples/jungian-daimon-org/teams/luna/Spawnfile +47 -0
  815. package/examples/jungian-daimon-org/teams/luna/TEAM.md +4 -0
  816. package/examples/jungian-daimon-org/teams/luna/agents/animus/AGENTS.md +10 -0
  817. package/examples/jungian-daimon-org/teams/luna/agents/animus/Spawnfile +33 -0
  818. package/examples/jungian-daimon-org/teams/luna/agents/representative/AGENTS.md +21 -0
  819. package/examples/jungian-daimon-org/teams/luna/agents/representative/Spawnfile +30 -0
  820. package/examples/jungian-daimon-org/teams/luna/agents/shadow/AGENTS.md +10 -0
  821. package/examples/jungian-daimon-org/teams/luna/agents/shadow/Spawnfile +33 -0
  822. package/examples/jungian-daimon-org/teams/selene/Spawnfile +47 -0
  823. package/examples/jungian-daimon-org/teams/selene/TEAM.md +4 -0
  824. package/examples/jungian-daimon-org/teams/selene/agents/animus/AGENTS.md +10 -0
  825. package/examples/jungian-daimon-org/teams/selene/agents/animus/Spawnfile +33 -0
  826. package/examples/jungian-daimon-org/teams/selene/agents/representative/AGENTS.md +19 -0
  827. package/examples/jungian-daimon-org/teams/selene/agents/representative/Spawnfile +33 -0
  828. package/examples/jungian-daimon-org/teams/selene/agents/shadow/AGENTS.md +10 -0
  829. package/examples/jungian-daimon-org/teams/selene/agents/shadow/Spawnfile +30 -0
  830. package/examples/mixed-runtime-org/Spawnfile +71 -0
  831. package/examples/mixed-runtime-org/TEAM.md +8 -0
  832. package/examples/mixed-runtime-org/agents/analyst/AGENTS.md +8 -0
  833. package/examples/mixed-runtime-org/agents/analyst/Spawnfile +27 -0
  834. package/examples/mixed-runtime-org/agents/conductor/AGENTS.md +8 -0
  835. package/examples/mixed-runtime-org/agents/conductor/Spawnfile +27 -0
  836. package/examples/mixed-runtime-org/agents/localist/AGENTS.md +7 -0
  837. package/examples/mixed-runtime-org/agents/localist/Spawnfile +50 -0
  838. package/examples/moltnet-team-chat/Spawnfile +43 -0
  839. package/examples/moltnet-team-chat/TEAM.md +5 -0
  840. package/examples/moltnet-team-chat/agents/coordinator/AGENTS.md +9 -0
  841. package/examples/moltnet-team-chat/agents/coordinator/Spawnfile +26 -0
  842. package/examples/moltnet-team-chat/teams/analysis/Spawnfile +23 -0
  843. package/examples/moltnet-team-chat/teams/analysis/TEAM.md +3 -0
  844. package/examples/moltnet-team-chat/teams/analysis/agents/observer/AGENTS.md +5 -0
  845. package/examples/moltnet-team-chat/teams/analysis/agents/observer/Spawnfile +19 -0
  846. package/examples/moltnet-team-chat/teams/analysis/agents/representative/AGENTS.md +5 -0
  847. package/examples/moltnet-team-chat/teams/analysis/agents/representative/Spawnfile +19 -0
  848. package/examples/moltnet-team-chat/teams/field/Spawnfile +41 -0
  849. package/examples/moltnet-team-chat/teams/field/TEAM.md +3 -0
  850. package/examples/moltnet-team-chat/teams/field/agents/observer/AGENTS.md +5 -0
  851. package/examples/moltnet-team-chat/teams/field/agents/observer/Spawnfile +26 -0
  852. package/examples/moltnet-team-chat/teams/field/agents/representative/AGENTS.md +11 -0
  853. package/examples/moltnet-team-chat/teams/field/agents/representative/Spawnfile +26 -0
  854. package/examples/single-agent/AGENTS.md +3 -0
  855. package/examples/single-agent/HEARTBEAT.md +3 -0
  856. package/examples/single-agent/IDENTITY.md +3 -0
  857. package/examples/single-agent/MEMORY.md +3 -0
  858. package/examples/single-agent/SOUL.md +3 -0
  859. package/examples/single-agent/Spawnfile +41 -0
  860. package/examples/single-agent/skills/web_search/SKILL.md +6 -0
  861. package/moltnet-releases.json +5 -4
  862. package/package.json +36 -9
  863. package/runtimes.yaml +8 -3
  864. package/dist/cli/targetWorldClockCrossProcess.test-helper.d.ts +0 -13
  865. package/dist/cli/targetWorldClockCrossProcess.test-helper.js +0 -109
  866. package/dist/deployment/providerRuntimeBoundaryScanner.test-helper.d.ts +0 -8
  867. package/dist/deployment/providerRuntimeBoundaryScanner.test-helper.js +0 -60
  868. package/dist/deployment/simfileFixtureBoundary.test-helper.d.ts +0 -8
  869. package/dist/deployment/simfileFixtureBoundary.test-helper.js +0 -103
  870. package/dist/ownership/simfileRunOperatorInputs.d.ts +0 -103
  871. package/dist/ownership/simfileRunOperatorInputs.js +0 -139
  872. package/dist/target/cleanupRunDocker.test-helper.d.ts +0 -67
  873. package/dist/target/cleanupRunDocker.test-helper.js +0 -238
@@ -0,0 +1,115 @@
1
+ import { SpawnfileError } from "../shared/index.js";
2
+ export const ORGANIZATION_ID_SEGMENT_PATTERN_SOURCE = "^[a-z][a-z0-9-]{0,62}$";
3
+ export const ORGANIZATION_MEMBER_ID_PATTERN_SOURCE = "^[a-z][a-z0-9-]{0,62}(\\.[a-z][a-z0-9-]{0,62}){0,7}$";
4
+ export const MAX_ORGANIZATION_MEMBER_DEPTH = 8;
5
+ export const MAX_ORGANIZATION_MEMBER_ID_BYTES = 255;
6
+ export const MAX_ORGANIZATION_AGENT_MEMBERS = 128;
7
+ export const MAX_EXTERNAL_PARTICIPANTS = 32;
8
+ const segment = new RegExp(ORGANIZATION_ID_SEGMENT_PATTERN_SOURCE, "u");
9
+ export const organizationIdentityFail = (message) => {
10
+ throw new SpawnfileError("validation_error", message);
11
+ };
12
+ export const requiredOrganizationIdentity = (value, message) => value == null ? organizationIdentityFail(message) : value;
13
+ export const assertOrganizationSegment = (value, label) => {
14
+ if (!segment.test(value)) {
15
+ organizationIdentityFail(`${label} must match ${ORGANIZATION_ID_SEGMENT_PATTERN_SOURCE}`);
16
+ }
17
+ };
18
+ export const freezeOrganizationIdentity = (value) => {
19
+ if (value && typeof value === "object") {
20
+ Object.freeze(value);
21
+ for (const child of Object.values(value)) {
22
+ freezeOrganizationIdentity(child);
23
+ }
24
+ }
25
+ return value;
26
+ };
27
+ export const compareOrganizationIds = (left, right) => left < right ? -1 : left > right ? 1 : 0;
28
+ export const exactOrganizationStrings = (actual, expected) => actual?.length === expected.length
29
+ && actual.every((value, index) => value === expected[index]);
30
+ const teamNodes = (plan) => new Map(plan.nodes.filter((node) => node.kind === "team")
31
+ .map((node) => [node.value.source, node.value]));
32
+ export const rootOrganizationTeam = (plan) => {
33
+ const node = plan.nodes.find((entry) => entry.id === plan.root || entry.value.source === plan.root);
34
+ return node?.value.kind === "team" ? node.value : undefined;
35
+ };
36
+ export const organizationAgentPaths = (plan) => {
37
+ const teams = teamNodes(plan);
38
+ const edges = plan.edges.filter((edge) => edge.kind === "team_member");
39
+ const paths = new Map();
40
+ const teamPaths = new Map();
41
+ const visitedNodeIds = new Set();
42
+ // External-participant authority needs one unambiguous path per principal.
43
+ // Ordinary organizations still have a canonical identity, but retain the
44
+ // compiler's long-standing ability to reuse an identical agent/team ref.
45
+ const requireUniquePaths = (rootOrganizationTeam(plan)?.externalParticipants?.length ?? 0) > 0;
46
+ const walk = (source, prefix, seen) => {
47
+ if (seen.has(source))
48
+ organizationIdentityFail(`organization member graph cycle at ${source}`);
49
+ const team = teams.get(source);
50
+ if (!team)
51
+ return;
52
+ if (teamPaths.has(source)) {
53
+ if (requireUniquePaths) {
54
+ organizationIdentityFail(`team is reached through multiple organization paths: ${source}`);
55
+ }
56
+ return;
57
+ }
58
+ teamPaths.set(source, prefix);
59
+ const node = plan.nodes.find((entry) => entry.value.source === source);
60
+ if (!node || node.kind !== "team") {
61
+ throw new SpawnfileError("validation_error", `organization graph references missing team ${source}`);
62
+ }
63
+ visitedNodeIds.add(node.id);
64
+ const outgoing = edges.filter((entry) => entry.from === node.id)
65
+ .sort((left, right) => compareOrganizationIds(left.label, right.label));
66
+ const memberSlots = new Set(team.members.map((member) => member.id));
67
+ if (memberSlots.size !== team.members.length || outgoing.length !== team.members.length) {
68
+ organizationIdentityFail(`organization graph cardinality mismatch for team ${team.name}`);
69
+ }
70
+ const localSlots = new Set();
71
+ for (const edge of outgoing) {
72
+ if (localSlots.has(edge.label)) {
73
+ organizationIdentityFail(`duplicate organization member slot: ${edge.label}`);
74
+ }
75
+ localSlots.add(edge.label);
76
+ assertOrganizationSegment(edge.label, "organization member slot");
77
+ const next = [...prefix, edge.label];
78
+ if (next.length > MAX_ORGANIZATION_MEMBER_DEPTH) {
79
+ organizationIdentityFail("organization member depth exceeds 8");
80
+ }
81
+ const child = plan.nodes.find((candidate) => candidate.id === edge.to);
82
+ if (!child) {
83
+ throw new SpawnfileError("validation_error", `organization graph references missing node ${edge.to}`);
84
+ }
85
+ const member = team.members.find((entry) => entry.id === edge.label);
86
+ if (!member || member.kind !== child.kind || member.nodeSource !== child.value.source) {
87
+ organizationIdentityFail(`organization graph member edge mismatch: ${edge.label}`);
88
+ }
89
+ if (child.kind === "agent") {
90
+ if (paths.has(child.value.source) && requireUniquePaths) {
91
+ organizationIdentityFail(`agent source is reached through multiple organization paths: ${child.value.source}`);
92
+ }
93
+ const prior = paths.get(child.value.source);
94
+ if (!prior || compareOrganizationIds(next.join("."), prior.join(".")) < 0) {
95
+ paths.set(child.value.source, next);
96
+ }
97
+ visitedNodeIds.add(child.id);
98
+ }
99
+ else {
100
+ walk(child.value.source, next, new Set([...seen, source]));
101
+ }
102
+ }
103
+ };
104
+ walk(plan.root, [], new Set());
105
+ const rootNode = plan.nodes.find((node) => node.value.source === plan.root);
106
+ const organizationNodeIds = new Set(rootNode ? [rootNode.id] : []);
107
+ for (const edge of edges) {
108
+ organizationNodeIds.add(edge.from);
109
+ organizationNodeIds.add(edge.to);
110
+ }
111
+ const extra = plan.nodes.find((node) => organizationNodeIds.has(node.id) && !visitedNodeIds.has(node.id));
112
+ if (extra)
113
+ organizationIdentityFail(`unreachable organization graph node: ${extra.id}`);
114
+ return paths;
115
+ };
@@ -22,6 +22,13 @@ export interface OrganizationReadinessEvidence {
22
22
  readonly nodeId: string;
23
23
  }[];
24
24
  } | null;
25
+ readonly daimon?: {
26
+ readonly receiptPath: string;
27
+ readonly agents: readonly {
28
+ readonly agentId: string;
29
+ readonly engine: string;
30
+ }[];
31
+ } | null;
25
32
  readonly networks: readonly {
26
33
  readonly id: string;
27
34
  readonly mode: "external" | "managed";
@@ -34,6 +41,7 @@ export interface OrganizationReadinessEvidence {
34
41
  readonly nodeId: string;
35
42
  readonly memberId: string;
36
43
  readonly configPath: string;
44
+ readonly receiptPath: string;
37
45
  readonly sha256: string;
38
46
  }[];
39
47
  }[];
@@ -96,6 +96,17 @@ const assertMemberId = (value, label) => {
96
96
  if (!MEMBER_ID.test(value))
97
97
  fail(`${label} is unbounded or noncanonical`);
98
98
  };
99
+ const assertMoltnetRoomMemberId = (value, label) => {
100
+ if (MEMBER_ID.test(value))
101
+ return;
102
+ const separator = value.indexOf(":");
103
+ const networkId = value.slice(0, separator);
104
+ const agentId = value.slice(separator + 1);
105
+ if (separator <= 0 || separator === value.length - 1 || value.length > 128
106
+ || !ID.test(networkId) || !ID.test(agentId)) {
107
+ fail(`${label} is unbounded or noncanonical`);
108
+ }
109
+ };
99
110
  const assertConfigPath = (value) => {
100
111
  if (value.length > 255 || !CONFIG_PATH.test(value)) {
101
112
  fail(`Moltnet config path is noncanonical: ${value}`);
@@ -167,14 +178,15 @@ const validateMoltnet = (artifacts, plan) => {
167
178
  const rooms = sort(server.rooms.map((room) => {
168
179
  assertId(room.id, "Moltnet room id");
169
180
  assertUnique(room.members, (member) => member, `Moltnet room member on ${server.networkId}/${room.id}`);
170
- for (const member of room.members)
171
- assertMemberId(member, `Moltnet room member on ${server.networkId}/${room.id}`);
181
+ for (const member of room.members) {
182
+ assertMoltnetRoomMemberId(member, `Moltnet room member on ${server.networkId}/${room.id}`);
183
+ }
172
184
  return { id: room.id, members: sort(room.members, (member) => member) };
173
185
  }), (room) => room.id);
174
186
  assertUnique(rooms, (room) => room.id, `Moltnet room on ${server.networkId}`);
175
187
  const nodes = sort(nodePlans.filter((node) => node.networkId === server.networkId).map((node) => {
176
188
  const attachment = attachmentByKey.get(`${node.networkId}\u0000${node.memberId}`);
177
- return { configPath: node.configPath, memberId: node.memberId, nodeId: attachment.nodeId,
189
+ return { configPath: node.configPath, receiptPath: `/run/spawnfile/moltnet-readiness/${node.networkId}-${node.memberId}.json`, memberId: node.memberId, nodeId: attachment.nodeId,
178
190
  sha256: sha256(emittedConfigContent(artifacts, node.configPath)) };
179
191
  }), (node) => `${node.memberId}\u0000${node.nodeId}`);
180
192
  return { id: server.networkId, internalPort: server.mode === "managed" ? server.port : null,
@@ -248,9 +260,17 @@ export const createOrganizationReadinessEvidence = (input) => {
248
260
  const projectLabel = normalizeProjectLabelSlug(distribution.organization.project);
249
261
  if (projectLabel.length > 128 || !ID.test(projectLabel))
250
262
  fail("project label is unbounded or noncanonical");
263
+ const daimonInstance = input.containerArtifacts.report.runtime_instances.find((instance) => instance.runtime === "daimon");
264
+ const daimon = daimonInstance === undefined ? null : {
265
+ receiptPath: "/var/lib/spawnfile/instances/daimon/daimon-organization/state/wake-acceptance/runtime-readiness.json",
266
+ agents: Object.entries(daimonInstance.engine_by_node_id ?? {}).sort(([left], [right]) => left.localeCompare(right)).map(([agentId, engine]) => ({ agentId, engine }))
267
+ };
268
+ if (daimon !== null && daimon.agents.length === 0)
269
+ fail("Daimon readiness has no compiled agent engines");
251
270
  return freeze({
252
271
  compileFingerprint: fingerprint,
253
272
  compileVersion: input.compileVersion,
273
+ daimon,
254
274
  hasExternalMoltnet: networks.some((network) => network.mode === "external"),
255
275
  networks,
256
276
  organizationMembers,
@@ -0,0 +1,9 @@
1
+ import type { CompilePlan } from "./types.js";
2
+ /**
3
+ * Runs, without emitting anything, the per-agent checks compile would refuse
4
+ * on: runtime-option errors and each adapter's `preflightAgent` (for Daimon:
5
+ * MCP allowlists and absolute commands, engine/model pairing, and the public
6
+ * instruction-size limit). Every failing agent is reported, each named by its
7
+ * node id, so `spawnfile validate` can be an organization's structural check.
8
+ */
9
+ export declare const preflightCompilePlan: (plan: CompilePlan) => void;
@@ -0,0 +1,38 @@
1
+ import { getRuntimeAdapter } from "../runtime/index.js";
2
+ import { SpawnfileError } from "../shared/index.js";
3
+ /**
4
+ * Runs, without emitting anything, the per-agent checks compile would refuse
5
+ * on: runtime-option errors and each adapter's `preflightAgent` (for Daimon:
6
+ * MCP allowlists and absolute commands, engine/model pairing, and the public
7
+ * instruction-size limit). Every failing agent is reported, each named by its
8
+ * node id, so `spawnfile validate` can be an organization's structural check.
9
+ */
10
+ export const preflightCompilePlan = (plan) => {
11
+ const failures = new Map();
12
+ for (const node of plan.nodes) {
13
+ if (node.value.kind !== "agent")
14
+ continue;
15
+ const runtimeName = node.runtimeName ?? node.value.runtime.name;
16
+ const adapter = getRuntimeAdapter(runtimeName);
17
+ const key = `${node.id} (${runtimeName})`;
18
+ const report = (message) => {
19
+ failures.set(key, (failures.get(key) ?? new Set()).add(message));
20
+ };
21
+ for (const diagnostic of adapter.validateRuntimeOptions?.(node.value.runtime.options) ?? []) {
22
+ if (diagnostic.level === "error")
23
+ report(diagnostic.message);
24
+ }
25
+ try {
26
+ adapter.preflightAgent?.(node.value, node.id);
27
+ }
28
+ catch (error) {
29
+ if (!(error instanceof SpawnfileError))
30
+ throw error;
31
+ report(error.message);
32
+ }
33
+ }
34
+ if (failures.size > 0) {
35
+ const lines = [...failures].flatMap(([agent, messages]) => [...messages].map((message) => `- ${agent}: ${message}`));
36
+ throw new SpawnfileError("validation_error", [`Compile would refuse ${failures.size} agent(s):`, ...lines].join("\n"));
37
+ }
38
+ };
@@ -0,0 +1,4 @@
1
+ import type { CompileReportWorkspaceGitResource, RecordingAgentReport } from "../report/index.js";
2
+ import type { CompilePlan } from "./types.js";
3
+ /** Only compiled, portable identities: no host sources and no history reads. */
4
+ export declare const resolveRecordingAgentFacts: (plan: CompilePlan, gitPins?: readonly CompileReportWorkspaceGitResource[]) => RecordingAgentReport[];
@@ -0,0 +1,35 @@
1
+ import path from "node:path";
2
+ import { resolveMnemeDurableMemoryMountPath } from "../runtime/mnemeMcp.js";
3
+ import { daimonRecordingDirectory } from "../runtime/daimon/recording.js";
4
+ import { recordingKeepMs, SpawnfileError } from "../shared/index.js";
5
+ import { resolveTrainingRecordVolumes } from "./training/plan/index.js";
6
+ /** Only compiled, portable identities: no host sources and no history reads. */
7
+ export const resolveRecordingAgentFacts = (plan, gitPins = []) => plan.nodes.flatMap((node) => {
8
+ if (node.value.kind !== "agent" || node.value.training?.record === undefined)
9
+ return [];
10
+ const agent = node.value;
11
+ const memory = new Map();
12
+ for (const access of agent.memoryAccess ?? []) {
13
+ const declaring = plan.nodes.find((entry) => entry.value.source === access.source);
14
+ if (!declaring)
15
+ throw new SpawnfileError("validation_error", `Recording bank ${access.bank.id} has no declaring node`);
16
+ const home = resolveMnemeDurableMemoryMountPath(access.bank);
17
+ memory.set(`${declaring.id}\0${access.bank.id}`, {
18
+ id: access.bank.id, declared_by: declaring.id,
19
+ ledger_path: home === null ? null : path.posix.join(home, "memory/events.jsonl")
20
+ });
21
+ }
22
+ const resources = agent.workspaceResources ?? [];
23
+ return [{
24
+ node_id: node.id, slug: node.slug, directory: daimonRecordingDirectory(node.slug),
25
+ keep_ms: recordingKeepMs(agent.training.record),
26
+ networks: [...new Set((agent.surfaces?.moltnet ?? []).map((entry) => entry.network))].sort(),
27
+ memory: [...memory.values()].sort((a, b) => `${a.declared_by}:${a.id}`.localeCompare(`${b.declared_by}:${b.id}`)),
28
+ feeds: resources.flatMap((resource) => resource.kind === "volume" && resource.feed
29
+ ? [{ id: resource.id, volume_name: resource.name }] : []).sort((a, b) => a.id.localeCompare(b.id)),
30
+ resources: resources.flatMap((resource) => resource.kind === "volume" ? []
31
+ : [{ id: resource.id, kind: gitPins.some((pin) => pin.id === resource.id && pin.agent_node_ids?.includes(node.id)) ? "git" : resource.kind }])
32
+ .sort((a, b) => a.id.localeCompare(b.id)),
33
+ snapshots: resolveTrainingRecordVolumes({ id: node.id, value: agent }).map((resource) => resource.id)
34
+ }];
35
+ }).sort((a, b) => a.node_id.localeCompare(b.node_id));
@@ -0,0 +1,4 @@
1
+ import { type DaimonContractManifest } from "../runtime/daimon/contractManifest.js";
2
+ import type { CompilePlan } from "./types.js";
3
+ /** No runtime lookup, check output, or manifest I/O when recording is absent. */
4
+ export declare const assertRecordingCapability: (plan: CompilePlan, injectedManifest?: DaimonContractManifest) => Promise<void>;
@@ -0,0 +1,22 @@
1
+ import { fileURLToPath } from "node:url";
2
+ import { DAIMON_CONTRACT_MANIFEST_SHA256, daimonSupportsWakeMoments, readVerifiedDaimonContractManifest } from "../runtime/daimon/contractManifest.js";
3
+ import { SpawnfileError } from "../shared/index.js";
4
+ /** No runtime lookup, check output, or manifest I/O when recording is absent. */
5
+ export const assertRecordingCapability = async (plan, injectedManifest) => {
6
+ const agents = plan.nodes.filter((node) => node.kind === "agent" && node.value.training?.record !== undefined);
7
+ if (agents.length === 0)
8
+ return;
9
+ for (const agent of agents) {
10
+ if (agent.runtimeName !== "daimon")
11
+ throw new SpawnfileError("validation_error", `Training recording for ${agent.id} requires Daimon; runtime ${agent.runtimeName ?? "unknown"} does not support wake moments`);
12
+ }
13
+ let manifest = injectedManifest;
14
+ if (manifest === undefined) {
15
+ const verified = await readVerifiedDaimonContractManifest(fileURLToPath(new URL("../runtime/daimon/", import.meta.url)));
16
+ if (verified.digest !== DAIMON_CONTRACT_MANIFEST_SHA256)
17
+ throw new SpawnfileError("validation_error", "Pinned Daimon contract manifest does not match the capability-receipt digest");
18
+ manifest = verified.manifest;
19
+ }
20
+ if (!daimonSupportsWakeMoments(manifest))
21
+ throw new SpawnfileError("validation_error", "The pinned Daimon runtime image does not declare the wakeMoments capability; a Daimon release with it and a runtimes.yaml / contract-manifest re-pin are required");
22
+ };
@@ -0,0 +1,4 @@
1
+ import type { CompileReport, ContainerMemoryReport, RecordingReport } from "../report/index.js";
2
+ import type { CompilePlan } from "./types.js";
3
+ /** Project effective agent declarations and existing memory access facts only. */
4
+ export declare const resolveRecordingReport: (plan: CompilePlan, memories: readonly ContainerMemoryReport[], gitPins?: CompileReport["workspace_git_resources"]) => RecordingReport | undefined;
@@ -0,0 +1,18 @@
1
+ import { maxRecordingKeepMs } from "../shared/index.js";
2
+ import { daimonRecordingMountId } from "../runtime/daimon/recording.js";
3
+ import { resolveRecordingAgentFacts } from "./recordingAgentFacts.js";
4
+ /** Project effective agent declarations and existing memory access facts only. */
5
+ export const resolveRecordingReport = (plan, memories, gitPins = []) => {
6
+ const agents = plan.nodes.filter((node) => node.kind === "agent" && node.value.training?.record !== undefined);
7
+ const keepMs = maxRecordingKeepMs(agents.map((node) => node.value.training?.record));
8
+ if (keepMs === undefined)
9
+ return undefined;
10
+ const agentIds = new Set(agents.map((node) => node.id));
11
+ const memoryMountIds = memories.flatMap((memory) => memory.store.persistent_mount_id !== undefined && memory.accessible_node_ids.some((id) => agentIds.has(id))
12
+ ? [memory.store.persistent_mount_id] : []);
13
+ return {
14
+ keep_ms: keepMs, memory_mount_ids: [...new Set(memoryMountIds)].sort(),
15
+ recording_mount_ids: agents.filter((agent) => agent.runtimeName === "daimon").map((agent) => daimonRecordingMountId(agent.slug)).sort(),
16
+ agents: resolveRecordingAgentFacts(plan, gitPins)
17
+ };
18
+ };
@@ -1,8 +1,8 @@
1
1
  import { type ResolvedAuthProfile } from "../auth/index.js";
2
- import { type DockerTargetExecFile } from "../deployment/index.js";
2
+ import { type DeploymentRecord, type DockerTargetExecFile } from "../deployment/index.js";
3
3
  import { type CompileProjectOptions, type CompileProjectResult } from "./compileProject.js";
4
- import { runDockerContainer, type DockerRunInvocation, type DockerRunResult, type DockerRunRunner } from "./runProjectDocker.js";
5
- export { runDockerContainer };
4
+ import { inspectDetachedContainer as recoverDetachedDockerRun, runDockerContainer, type DockerRunInvocation, type DockerRunResult, type DockerRunRunner } from "./runProjectDocker.js";
5
+ export { recoverDetachedDockerRun, runDockerContainer };
6
6
  export type { DockerRunInvocation, DockerRunResult, DockerRunRunner };
7
7
  export interface RunProjectOptions extends CompileProjectOptions {
8
8
  authProfile?: string;
@@ -29,6 +29,8 @@ export declare const createDockerRunInvocation: (compileResult: CompileProjectRe
29
29
  name: string;
30
30
  value: string;
31
31
  };
32
+ /** See `RuntimeAuthPreparationInput.containerCredentialUid`. */
33
+ containerCredentialUid?: number;
32
34
  containerName?: string;
33
35
  detach?: boolean;
34
36
  deploymentName?: string;
@@ -38,6 +40,7 @@ export declare const createDockerRunInvocation: (compileResult: CompileProjectRe
38
40
  envFilePath?: string;
39
41
  }) => Promise<DockerRunInvocation>;
40
42
  interface ResolvedRunDeploymentOptions {
43
+ previousRecord?: DeploymentRecord;
41
44
  authProfile?: string;
42
45
  containerName?: string;
43
46
  deploymentName?: string;
@@ -4,15 +4,16 @@ import { mkdtemp } from "node:fs/promises";
4
4
  import { requireAuthProfile } from "../auth/index.js";
5
5
  import { ensureDirectory, fileExists, removeDirectory, writeUtf8File } from "../filesystem/index.js";
6
6
  import { appendDockerLabelArgs, createDockerDeploymentLabels, createDockerDeploymentUnitId, createDockerProjectLabel, dockerContextNameForTarget, dockerHostValueForTarget, normalizeDeploymentName, readDeploymentRecordFromOutput, resolveDeploymentRecordPath, verifyDockerDeploymentTarget, writeDockerDeploymentRecordForRun } from "../deployment/index.js";
7
- import { DEFAULT_OUTPUT_DIRECTORY, SpawnfileError } from "../shared/index.js";
7
+ import { DAIMON_DOCKER_RUNTIME_SECURITY_ARGS, DEFAULT_OUTPUT_DIRECTORY, SpawnfileError } from "../shared/index.js";
8
8
  import { ensureNoopolisRunId, resolveNoopolisRunId } from "../runtime/index.js";
9
9
  import { compileProject } from "./compileProject.js";
10
10
  import { createDefaultImageTag, resolveDockerBuildArchitecture } from "./buildProject.js";
11
11
  import { slugify } from "./helpers.js";
12
- import { runDockerContainer } from "./runProjectDocker.js";
12
+ import { resolveDaimonCodexNativeSandboxDockerSecurityOptions } from "./runProjectDaimonCodexDocker.js";
13
+ import { inspectDetachedContainer as recoverDetachedDockerRun, runDockerContainer } from "./runProjectDocker.js";
13
14
  import { executeDockerRunWithSupportCleanup } from "./runProjectLifecycle.js";
14
15
  import { assertDeclaredModelAuthSatisfied, assertMoltnetCredentialValuesDistinct, assertRunEnvironmentSatisfied, prepareRuntimeAuthMounts, readRunEnvFile, renderDockerEnvFile, resolveAuthMountArgs, resolveRunEnvironment } from "./runProjectAuth.js";
15
- export { runDockerContainer };
16
+ export { recoverDetachedDockerRun, runDockerContainer };
16
17
  const resolveImageTagRoot = (inputPath) => {
17
18
  const resolvedPath = path.resolve(inputPath);
18
19
  return path.basename(resolvedPath).toLowerCase() === "spawnfile"
@@ -36,9 +37,11 @@ export const createDockerRunInvocation = async (compileResult, imageTag, options
36
37
  ...(await readRunEnvFile(options.envFilePath)),
37
38
  ...(options.cliCredential ? { [options.cliCredential.name]: options.cliCredential.value } : {})
38
39
  });
39
- const preparedRuntimeAuth = await prepareRuntimeAuthMounts(compileResult.outputDirectory, containerReport, options.authProfile ?? null, env, supportDirectory);
40
+ const preparedRuntimeAuth = await prepareRuntimeAuthMounts(compileResult.outputDirectory, containerReport, options.authProfile ?? null, env, supportDirectory, options.containerCredentialUid);
40
41
  assertRunEnvironmentSatisfied(containerReport, env, preparedRuntimeAuth.coveredModelSecrets);
41
42
  assertMoltnetCredentialValuesDistinct(containerReport, env);
43
+ const hasDaimon = containerReport.runtime_instances.some((instance) => instance.runtime === "daimon");
44
+ const opaqueDaimonCredentials = preparedRuntimeAuth.launchIdentity?.kind === "daimon";
42
45
  await ensureDirectory(supportDirectory);
43
46
  await writeUtf8File(envFilePath, renderDockerEnvFile(env));
44
47
  const deploymentName = options.deploymentName
@@ -53,17 +56,32 @@ export const createDockerRunInvocation = async (compileResult, imageTag, options
53
56
  ? ["--host", options.dockerHost, "run"]
54
57
  : ["run"];
55
58
  if (options.detach) {
56
- args.push("-d");
59
+ args.push("-d", "--restart", "unless-stopped");
57
60
  }
58
61
  else {
59
62
  args.push("--rm");
60
63
  }
61
64
  args.push("--name", containerName);
65
+ if (hasDaimon) {
66
+ args.push(...DAIMON_DOCKER_RUNTIME_SECURITY_ARGS, ...(await resolveDaimonCodexNativeSandboxDockerSecurityOptions(compileResult)));
67
+ }
62
68
  for (const port of containerReport.ports) {
63
69
  args.push("-p", `${port}:${port}`);
64
70
  }
71
+ // Compiler-owned persistent mounts are mounted WITHOUT `volume-nocopy`.
72
+ // The image is the authority for the bootstrap preimage at these paths:
73
+ // `createStateOwnershipCommand` writes a `.spawnfile-volume-init` marker
74
+ // into every one of them at build time, and the Daimon ownership guard
75
+ // (`secureVolumeIdentity`) and `prepare_volume_resource` both REQUIRE that
76
+ // marker as the fresh-volume preimage. `volume-nocopy` is exactly the flag
77
+ // that stops Docker copying image content into an empty volume, so it
78
+ // starved the guard and no Daimon organization with persistent volumes
79
+ // could bootstrap. Copy-up only ever populates an EMPTY volume, so a
80
+ // reattached volume that already holds state is untouched by dropping it.
81
+ // (Target/secrets volumes under src/target/* keep `volume-nocopy`: no
82
+ // image content backs those paths and they must stay opaque.)
65
83
  for (const mount of containerReport.persistent_mounts ?? []) {
66
- args.push("-v", `${mount.volume_name}:${mount.mount_path}`);
84
+ args.push("--mount", `type=volume,source=${mount.volume_name},target=${mount.mount_path}`);
67
85
  }
68
86
  const deploymentLabels = options.detach && deploymentName ? (() => {
69
87
  const compileFingerprint = compileResult.report.compile_fingerprint ?? "sf1:unknown";
@@ -91,7 +109,14 @@ export const createDockerRunInvocation = async (compileResult, imageTag, options
91
109
  dockerContext: options.dockerContext ?? null,
92
110
  dockerHost: options.dockerHost ?? null,
93
111
  envFilePath,
112
+ ...((containerReport.persistent_mounts ?? []).some((mount) => mount.lifecycle === "exclusive-reattach") ? {
113
+ exclusiveReattachVolumes: (containerReport.persistent_mounts ?? [])
114
+ .filter((mount) => mount.lifecycle === "exclusive-reattach")
115
+ .map((mount) => mount.volume_name)
116
+ .sort()
117
+ } : {}),
94
118
  imageTag,
119
+ ...(opaqueDaimonCredentials ? { opaqueDaimonCredentials } : {}),
95
120
  supportDirectory
96
121
  };
97
122
  }
@@ -128,6 +153,7 @@ export const resolveDetachedDeploymentOptions = async (outputDirectory, options)
128
153
  });
129
154
  }
130
155
  return {
156
+ previousRecord: record,
131
157
  authProfile: options.authProfile ?? record.auth_profile ?? undefined,
132
158
  containerName: options.containerName ?? unit?.container_name ?? undefined,
133
159
  deploymentName,
@@ -164,6 +190,7 @@ export const runProject = async (inputPath, options = {}) => {
164
190
  const compileResult = await compileProject(inputPath, {
165
191
  clean: options.clean,
166
192
  containerArchitecture: targetArchitecture,
193
+ deploymentLineage: resolvedOptions.deploymentName ?? "ephemeral",
167
194
  outputDirectory: options.outputDirectory,
168
195
  ...(options.worldBindingsPath !== undefined
169
196
  ? { worldBindingsPath: options.worldBindingsPath }
@@ -186,6 +213,7 @@ export const runProject = async (inputPath, options = {}) => {
186
213
  const runMetadata = await executeDockerRunWithSupportCleanup(invocation, options.runRunner ?? runDockerContainer);
187
214
  const deploymentRecordPath = invocation.detach && invocation.deploymentName
188
215
  ? await writeDockerDeploymentRecordForRun({
216
+ previousRecord: resolvedOptions.previousRecord,
189
217
  authProfileName: authProfile?.name ?? null,
190
218
  envFilePath: resolvedOptions.envFilePath,
191
219
  imageTag,
@@ -1,7 +1,9 @@
1
1
  import type { ResolvedAuthProfile } from "../auth/index.js";
2
2
  import type { ContainerReport } from "../report/index.js";
3
+ import type { RuntimeAuthPreparationResult } from "../runtime/types.js";
3
4
  interface PreparedRunAuth {
4
5
  coveredModelSecrets: Set<string>;
6
+ launchIdentity?: RuntimeAuthPreparationResult["launchIdentity"];
5
7
  mountArgs: string[];
6
8
  }
7
9
  export declare const resolveHostCliCredential: (containerReport: ContainerReport) => Promise<{
@@ -9,7 +11,7 @@ export declare const resolveHostCliCredential: (containerReport: ContainerReport
9
11
  sourcePath: string;
10
12
  value: string;
11
13
  } | null>;
12
- export declare const prepareRuntimeAuthMounts: (outputDirectory: string, containerReport: ContainerReport, authProfile: ResolvedAuthProfile | null, env: Record<string, string>, tempRoot: string) => Promise<PreparedRunAuth>;
14
+ export declare const prepareRuntimeAuthMounts: (outputDirectory: string, containerReport: ContainerReport, authProfile: ResolvedAuthProfile | null, env: Record<string, string>, tempRoot: string, containerCredentialUid?: number) => Promise<PreparedRunAuth>;
13
15
  export declare const assertDeclaredModelAuthSatisfied: (containerReport: ContainerReport, authProfile: ResolvedAuthProfile | null, cliCredentialProvided?: boolean) => void;
14
16
  export declare const resolveRunEnvironment: (containerReport: ContainerReport, authProfile: ResolvedAuthProfile | null, envFileEnv?: Record<string, string>) => Record<string, string>;
15
17
  export declare const assertRunEnvironmentSatisfied: (containerReport: ContainerReport, env: Record<string, string>, coveredModelSecrets: Set<string>) => void;
@@ -10,6 +10,7 @@ const MODEL_AUTH_IMPORT_KINDS = {
10
10
  api_key: null,
11
11
  "claude-code": "claude-code",
12
12
  codex: "codex",
13
+ grok: null,
13
14
  none: null
14
15
  };
15
16
  export const resolveHostCliCredential = async (containerReport) => {
@@ -44,7 +45,7 @@ const addCoveredModelSecrets = (coveredModelSecrets, instanceId, secretNames) =>
44
45
  coveredModelSecrets.add(`${instanceId}:${secretName}`);
45
46
  }
46
47
  };
47
- export const prepareRuntimeAuthMounts = async (outputDirectory, containerReport, authProfile, env, tempRoot) => {
48
+ export const prepareRuntimeAuthMounts = async (outputDirectory, containerReport, authProfile, env, tempRoot, containerCredentialUid) => {
48
49
  // No early return when `authProfile` is null: an adapter's
49
50
  // `prepareRuntimeAuth` may still have host-credential staging to do that
50
51
  // does not depend on an imported Spawnfile auth profile (e.g. the Pi
@@ -53,6 +54,7 @@ export const prepareRuntimeAuthMounts = async (outputDirectory, containerReport,
53
54
  // responsible for treating a `null` `authProfile` as "no profile-derived
54
55
  // imports available" rather than failing.
55
56
  const coveredModelSecrets = new Set();
57
+ let launchIdentity;
56
58
  const mountArgs = [];
57
59
  for (const instance of containerReport.runtime_instances) {
58
60
  const adapter = getRuntimeAdapter(instance.runtime);
@@ -61,15 +63,26 @@ export const prepareRuntimeAuthMounts = async (outputDirectory, containerReport,
61
63
  }
62
64
  const prepared = await adapter.prepareRuntimeAuth({
63
65
  authProfile,
66
+ ...(containerCredentialUid === undefined ? {} : { containerCredentialUid }),
64
67
  env,
65
68
  instance,
66
69
  outputDirectory,
67
70
  tempRoot
68
71
  });
69
72
  addCoveredModelSecrets(coveredModelSecrets, instance.id, prepared.coveredModelSecrets);
73
+ if (prepared.launchIdentity) {
74
+ if (launchIdentity && launchIdentity.uid !== prepared.launchIdentity.uid) {
75
+ throw new SpawnfileError("validation_error", "Opaque runtime credentials resolve conflicting launch UIDs");
76
+ }
77
+ launchIdentity = prepared.launchIdentity;
78
+ }
70
79
  mountArgs.push(...prepared.mountArgs);
71
80
  }
72
- return { coveredModelSecrets, mountArgs };
81
+ return {
82
+ coveredModelSecrets,
83
+ ...(launchIdentity ? { launchIdentity } : {}),
84
+ mountArgs
85
+ };
73
86
  };
74
87
  export const assertDeclaredModelAuthSatisfied = (containerReport, authProfile, cliCredentialProvided = false) => {
75
88
  const requiredImportKinds = new Set();
@@ -108,6 +121,9 @@ const createGeneratedRuntimeSecret = (secretName, generatedMoltnetSecrets) => {
108
121
  if (generatedMoltnetSecrets.has(secretName)) {
109
122
  return randomBytes(32).toString("base64url");
110
123
  }
124
+ if (secretName === "SPAWNFILE_DAIMON_CONTROL_TOKEN") {
125
+ return randomBytes(32).toString("base64url");
126
+ }
111
127
  return null;
112
128
  };
113
129
  const hasEnvValue = (env, name) => typeof env[name] === "string" && env[name].length > 0;
@@ -215,7 +231,7 @@ export const resolveAuthMountArgs = async (containerReport, authProfile) => {
215
231
  // Mounting the generic imported home onto the same destination would create
216
232
  // duplicate Docker mount points and bypass the adapter's minimal-file staging.
217
233
  const piRuntimeHomes = new Set(containerReport.runtime_instances
218
- .filter((instance) => instance.runtime === "pi" || instance.runtime === "daimon")
234
+ .filter((instance) => instance.runtime === "pi")
219
235
  .map((instance) => instance.home_path)
220
236
  .filter((homePath) => homePath !== null));
221
237
  const genericRuntimeHomes = containerReport.runtime_homes
@@ -0,0 +1,3 @@
1
+ import type { CompileProjectResult } from "./compileProject.js";
2
+ export { DAIMON_CODEX_NATIVE_SANDBOX_DOCKER_SECURITY_OPTS } from "../shared/index.js";
3
+ export declare const resolveDaimonCodexNativeSandboxDockerSecurityOptions: (compileResult: CompileProjectResult) => Promise<string[]>;
@@ -0,0 +1,36 @@
1
+ import path from "node:path";
2
+ import { readUtf8File } from "../filesystem/index.js";
3
+ import { daimonEngineDockerSecurityArgsForConfigs, materializeDaimonGrokSeccompProfile, SpawnfileError } from "../shared/index.js";
4
+ export { DAIMON_CODEX_NATIVE_SANDBOX_DOCKER_SECURITY_OPTS } from "../shared/index.js";
5
+ const assertContainedPath = (root, candidate) => {
6
+ const normalizedRoot = path.resolve(root);
7
+ const normalizedCandidate = path.resolve(candidate);
8
+ const relative = path.relative(normalizedRoot, normalizedCandidate);
9
+ if (relative === "" || relative === ".." || relative.startsWith(`..${path.sep}`) || path.isAbsolute(relative)) {
10
+ throw new SpawnfileError("validation_error", "Daimon generated config path escapes the compiled container rootfs");
11
+ }
12
+ return normalizedCandidate;
13
+ };
14
+ const configPathInOutput = (outputDirectory, instance) => {
15
+ if (!instance.config_path.startsWith("/")) {
16
+ throw new SpawnfileError("validation_error", "Daimon runtime instance has a non-absolute generated config path");
17
+ }
18
+ const rootfs = path.join(outputDirectory, "container", "rootfs");
19
+ return assertContainedPath(rootfs, path.join(rootfs, `.${instance.config_path}`));
20
+ };
21
+ export const resolveDaimonCodexNativeSandboxDockerSecurityOptions = async (compileResult) => {
22
+ const instances = compileResult.report.container?.runtime_instances
23
+ .filter((instance) => instance.runtime === "daimon") ?? [];
24
+ const sources = [];
25
+ for (const instance of instances) {
26
+ try {
27
+ sources.push(await readUtf8File(configPathInOutput(compileResult.outputDirectory, instance)));
28
+ }
29
+ catch (error) {
30
+ if (error instanceof SpawnfileError)
31
+ throw error;
32
+ throw new SpawnfileError("validation_error", "Could not read Daimon's generated organization config before Docker launch");
33
+ }
34
+ }
35
+ return daimonEngineDockerSecurityArgsForConfigs(sources, () => materializeDaimonGrokSeccompProfile(path.join(compileResult.outputDirectory, "container", "security")));
36
+ };
@@ -9,18 +9,22 @@ export interface DockerRunInvocation {
9
9
  dockerContext?: string | null;
10
10
  dockerHost?: string | null;
11
11
  envFilePath: string;
12
+ /** Host-stable credential realms that must have at most one live deployment. */
13
+ exclusiveReattachVolumes?: readonly string[];
12
14
  imageTag: string;
13
- onDetachedStarted?: (result: {
14
- containerId: string;
15
- }) => Promise<void>;
15
+ onDetachedStarted?: (result: DockerRunResult) => Promise<void>;
16
+ /** Ephemeral guard; never serialized into reports, records, or labels. */
17
+ opaqueDaimonCredentials?: boolean;
16
18
  supportDirectory: string;
17
19
  }
18
20
  export interface DockerRunResult {
19
21
  containerId?: string;
22
+ containerName?: string;
20
23
  deploymentLabels?: Readonly<Record<string, string>>;
21
24
  imageId?: string;
22
25
  }
23
26
  export type DockerRunRunner = (invocation: DockerRunInvocation) => Promise<DockerRunResult | void>;
24
27
  export declare const createDetachedContainerInspectArgs: (invocation: DockerRunInvocation, containerId: string) => string[];
25
- export declare const parseDetachedContainerInspect: (stdout: string, expectedContainerId: string, expectedLabels?: Readonly<Record<string, string>>) => DockerRunResult;
28
+ export declare const parseDetachedContainerInspect: (stdout: string, expectedContainerId: string, expectedLabels?: Readonly<Record<string, string>>, expectedContainerName?: string | null) => DockerRunResult;
29
+ export declare const inspectDetachedContainer: (invocation: DockerRunInvocation, containerId: string) => Promise<DockerRunResult>;
26
30
  export declare const runDockerContainer: DockerRunRunner;