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,218 @@
1
+ import { rm } from "node:fs/promises";
2
+ import { normalizeDeploymentName } from "../deployment/index.js";
3
+ import { controlTargetFor, recoverInterruptedDrain, requestForTarget, resolveControlToken } from "./drainPhase.js";
4
+ import { acquireReleaseLock, appendReleaseLog, postDeployPending, ensureReleaseDirectory, readReleaseLedger, resolveReleasePaths, writeJsonAtomic, writeReleaseLedger } from "./ledger.js";
5
+ import { createNotification } from "./notify.js";
6
+ import { clearDeferral, markDeferralNotified, recordDeferral } from "./pending.js";
7
+ import { releaseImageTag } from "./releaseDocker.js";
8
+ import { DAIMON_CONTROL_TOKEN_ENV } from "./releaseTypes.js";
9
+ import { drainAndSwap, releaseContainerName } from "./swap.js";
10
+ import { ReleaseError, isReleaseError } from "./types.js";
11
+ /**
12
+ * compile → identity → (unchanged? stop) → build → drain → deploy → settle →
13
+ * resume → post-deploy → record → prune. The ledger is written last because it claims
14
+ * "this identity is RUNNING"; written earlier it would claim a container that
15
+ * never came up, and the next run would see nothing to do.
16
+ */
17
+ export const runRelease = async (request, deps) => {
18
+ // One spelling everywhere: storage, the container name, the lock and `up` all normalize it.
19
+ request.deployment = normalizeDeploymentName(request.deployment);
20
+ const paths = resolveReleasePaths(request.deployment, request.releaseRoot);
21
+ const progress = { identity: null, stage: "lock" };
22
+ let unlock = null;
23
+ try {
24
+ await ensureReleaseDirectory(paths);
25
+ unlock = await acquireReleaseLock(paths);
26
+ progress.stage = "prepare";
27
+ Object.assign(request, await deps.prepare(request));
28
+ progress.stage = "recover";
29
+ await recoverInterruptedDrain(request, deps, paths);
30
+ progress.stage = "target";
31
+ const pinned = requestForTarget(request, await deps.pinTarget(request));
32
+ return await releaseLocked(pinned, deps, paths, progress);
33
+ }
34
+ catch (error) {
35
+ return fail(request, deps, paths, progress, error);
36
+ }
37
+ finally {
38
+ await unlock?.().catch(() => undefined);
39
+ }
40
+ };
41
+ const releaseLocked = async (request, deps, paths, progress) => {
42
+ const started = Date.now();
43
+ progress.stage = "compile";
44
+ const compiled = await deps.compile(request).catch((error) => {
45
+ throw new ReleaseError("build-failed", `compile failed: ${error.message}`, { cause: error });
46
+ });
47
+ progress.identity = compiled.identity;
48
+ const imageTag = releaseImageTag(compiled.repository, compiled.identity);
49
+ progress.stage = "inspect";
50
+ const ledger = await readReleaseLedger(paths.ledger);
51
+ const running = await deps.inspectUnit(request, releaseContainerName(request.deployment));
52
+ // A post-deploy command that failed (or never finished) leaves its marker: the
53
+ // running container may be the recorded image, but the release is not done.
54
+ const hookPending = await postDeployPending(paths.postDeploy);
55
+ if (!hookPending && isUnchanged(request, ledger, compiled.identity, running)) {
56
+ await clearDeferral(paths.pending);
57
+ request.log(`release: ${compiled.identity.slice(0, 19)} is already running as ${ledger.image_tag}; nothing to do`);
58
+ return { identity: compiled.identity, imageTag: ledger.image_tag, kind: "unchanged" };
59
+ }
60
+ if (request.drain && running?.running && resolveControlToken(request) === null) {
61
+ throw new ReleaseError("blocked", `${DAIMON_CONTROL_TOKEN_ENV} is not set in the env file or environment; a drained release needs the running deployment's control token`);
62
+ }
63
+ request.log(ledger
64
+ ? `release: ${compiled.identity.slice(0, 19)} differs from the released ${ledger.identity.slice(0, 19)} (${ledger.image_tag}); releasing`
65
+ : `release: nothing recorded as released for ${request.deployment}; releasing ${compiled.identity.slice(0, 19)}`);
66
+ // The tag about to be built is kept too: a retry after a failed deploy reuses it instead of rebuilding.
67
+ await pruneQuietly(request, deps, compiled.repository, [imageTag, ledger?.image_tag ?? null, ledger?.previous_image_tag ?? null]);
68
+ progress.stage = "build";
69
+ const built = await deps.build(request, compiled, imageTag).catch((error) => {
70
+ throw new ReleaseError("build-failed", `image build failed: ${error.message}`, { cause: error });
71
+ });
72
+ request.log(built.skipped ? `release: ${imageTag} already built; build skipped` : `release: built ${imageTag} in ${Math.round((built.buildMs ?? 0) / 1000)}s`);
73
+ progress.stage = "deploy";
74
+ if (request.signal?.aborted)
75
+ throw new ReleaseError("interrupted", "the release was interrupted before draining; nothing was paused or deployed");
76
+ // The same home lock `up` takes, held from before the drain until the ledger
77
+ // names what is running: no concurrent `up` can replace the drained
78
+ // container, or the candidate before it is recorded.
79
+ const unlockDeployment = await deps.lockDeployment(request.deployment).catch((error) => {
80
+ throw new ReleaseError("blocked", `cannot lock the deployment: ${error.message}`);
81
+ });
82
+ try {
83
+ return await swapAndRecord(request, deps, paths, progress, { built, compiled, imageTag, ledger, started });
84
+ }
85
+ finally {
86
+ await unlockDeployment().catch(() => undefined);
87
+ }
88
+ };
89
+ const swapAndRecord = async (request, deps, paths, progress, { built, compiled, imageTag, ledger, started }) => {
90
+ const swap = await drainAndSwap(request, deps, paths, imageTag);
91
+ if (swap.kind === "deferred")
92
+ return defer(request, deps, paths, compiled.identity);
93
+ const { deployed, drained } = swap;
94
+ progress.stage = "settle";
95
+ const settled = await deps.settle(request, deployed.containerName);
96
+ if (settled.imageId !== built.imageId) {
97
+ throw new ReleaseError("deploy-failed", `the settled container runs ${settled.imageId}, not the built ${built.imageId}`);
98
+ }
99
+ if (request.drain) {
100
+ progress.stage = "resume";
101
+ try {
102
+ await deps.requestResume(controlTargetFor(request, settled.id, settled.imageId));
103
+ }
104
+ catch (error) {
105
+ throw new ReleaseError("resume-failed", `the new container did not confirm admission: ${error.message}`);
106
+ }
107
+ }
108
+ if (request.postDeploy) {
109
+ progress.stage = "post-deploy";
110
+ await writeJsonAtomic(paths.postDeploy, { at: (request.now?.() ?? new Date()).toISOString(), identity: compiled.identity }).catch((error) => {
111
+ throw new ReleaseError("post-deploy-failed", `cannot record that a post-deploy command is pending, so it was not run: ${error.message}`);
112
+ });
113
+ await runPostDeployStep(request, deps, request.postDeploy, {
114
+ containerName: deployed.containerName, deployment: request.deployment, identity: compiled.identity, imageId: settled.imageId, imageTag
115
+ });
116
+ }
117
+ progress.stage = "record";
118
+ const timings = {
119
+ build_ms: built.buildMs,
120
+ compile_ms: compiled.compileMs,
121
+ deploy_ms: deployed.deployMs,
122
+ drain_ms: drained.drainMs,
123
+ total_ms: Date.now() - started
124
+ };
125
+ const next = {
126
+ compile_fingerprint: compiled.compileResult.report.compile_fingerprint ?? "unknown",
127
+ deployment: request.deployment,
128
+ identity: compiled.identity,
129
+ image_id: settled.imageId,
130
+ image_tag: imageTag,
131
+ previous_image_tag: ledger && ledger.image_tag !== imageTag ? ledger.image_tag : ledger?.previous_image_tag ?? null,
132
+ released_at: (request.now?.() ?? new Date()).toISOString(),
133
+ timings,
134
+ version: "spawnfile.release-ledger.v1"
135
+ };
136
+ await writeReleaseLedger(paths.ledger, next).catch((error) => {
137
+ throw new ReleaseError("ledger-failed", `the deployment is running but the release ledger could not be written (every later run will redeploy until it can): ${error.message}`);
138
+ });
139
+ await rm(paths.postDeploy, { force: true }).catch((error) => {
140
+ request.log(`release: cannot clear the post-deploy marker, so the next run releases again: ${error.message}`);
141
+ });
142
+ await appendReleaseLog(paths.log, { at: next.released_at, deployment: request.deployment, identity: compiled.identity, image_tag: imageTag, outcome: "released", timings }).catch(() => undefined);
143
+ await clearDeferral(paths.pending).catch(() => undefined);
144
+ await pruneQuietly(request, deps, compiled.repository, [imageTag, next.previous_image_tag]);
145
+ request.log(`release: ${imageTag} deployed, settled and recorded (build ${timings.build_ms === null ? "skipped" : `${Math.round(timings.build_ms / 1000)}s`}, drain ${Math.round((timings.drain_ms ?? 0) / 1000)}s, total ${Math.round(timings.total_ms / 1000)}s)`);
146
+ return { identity: compiled.identity, imageId: settled.imageId, imageTag, kind: "released", timings };
147
+ };
148
+ /** A failed hook leaves the release unrecorded: the next run deploys again and reruns it. */
149
+ const runPostDeployStep = async (request, deps, hook, context) => {
150
+ if (request.signal?.aborted)
151
+ throw new ReleaseError("interrupted", "the release was interrupted after deploying; the post-deploy command did not run and nothing was recorded");
152
+ let result;
153
+ try {
154
+ result = await deps.runPostDeploy(request, hook, context);
155
+ }
156
+ catch (error) {
157
+ throw new ReleaseError("post-deploy-failed", `the post-deploy command could not run: ${error.message}`);
158
+ }
159
+ const output = result.output.trim();
160
+ if (output)
161
+ request.log(`release: post-deploy output:\n${output}`);
162
+ if (request.signal?.aborted)
163
+ throw new ReleaseError("interrupted", "the release was interrupted while the post-deploy command ran; nothing was recorded");
164
+ if (result.timedOut)
165
+ throw new ReleaseError("post-deploy-failed", `the post-deploy command did not finish within ${Math.round(hook.timeoutMs / 1000)}s`);
166
+ if (result.exitCode !== 0)
167
+ throw new ReleaseError("post-deploy-failed", `the post-deploy command exited ${result.exitCode ?? "by signal"}${output ? `: ${output.slice(-300)}` : ""}`);
168
+ request.log("release: post-deploy command succeeded");
169
+ };
170
+ /** Unchanged means the recorded identity is the one the container is actually running, not merely the one last built. */
171
+ const isUnchanged = (request, ledger, identity, running) => !request.force && ledger !== null && ledger.identity === identity && running !== null && running.running && running.imageId === ledger.image_id;
172
+ const pruneQuietly = async (request, deps, repository, keep) => {
173
+ try {
174
+ const pruned = await deps.prune(request, repository, keep);
175
+ for (const tag of pruned.removed)
176
+ request.log(`release: removed old image ${tag}`);
177
+ }
178
+ catch (error) {
179
+ request.log(`release: image prune skipped (${error.message.slice(0, 160)})`);
180
+ }
181
+ };
182
+ const defer = async (request, deps, paths, identity) => {
183
+ const decision = await recordDeferral(paths.pending, identity, { notifyAfterMs: request.notifyDeferredAfterMs, ...(request.now ? { now: request.now() } : {}) });
184
+ const hours = Math.floor(decision.ageMs / 3_600_000);
185
+ const message = decision.trackingBroken
186
+ ? `release deferred (running turns did not finish within the drain bound) and ${decision.trackingBroken}`
187
+ : `release deferred: running turns did not finish within the drain bound; pending ${hours}h`;
188
+ request.log(`release: ${message}; admission resumed, nothing deployed, retry on the next run`);
189
+ const at = (request.now?.() ?? new Date()).toISOString();
190
+ await appendReleaseLog(paths.log, { at, deployment: request.deployment, identity, message, outcome: "deferred", reason: "release-deferred" }).catch(() => undefined);
191
+ const notified = decision.notify ? await notifyAndLog(request, deps, paths, "release-deferred", message, identity) : false;
192
+ if (notified && !decision.trackingBroken)
193
+ await markDeferralNotified(paths.pending, decision.pending).catch(() => undefined);
194
+ return { identity, kind: "deferred", message, notified };
195
+ };
196
+ const fail = async (request, deps, paths, progress, error) => {
197
+ const reason = isReleaseError(error) ? error.reason : "blocked";
198
+ const message = `${reason} at ${progress.stage}: ${error instanceof Error ? error.message : String(error)}`;
199
+ request.log(`release FAILED: ${message}`);
200
+ const at = (request.now?.() ?? new Date()).toISOString();
201
+ await appendReleaseLog(paths.log, { at, deployment: request.deployment, identity: progress.identity, message, outcome: "failed", reason }).catch(() => undefined);
202
+ const notified = await notifyAndLog(request, deps, paths, reason, message, progress.identity);
203
+ return { identity: progress.identity, kind: "failed", message, notified, reason };
204
+ };
205
+ const notifyAndLog = async (request, deps, paths, reason, message, identity) => {
206
+ if (request.notifier.kind === "none")
207
+ return false;
208
+ const notification = createNotification({ deployment: request.deployment, identity, message, reason, ...(request.now ? { now: request.now() } : {}) });
209
+ const result = await deps.notify(request.notifier, notification).catch((error) => ({ channel: request.notifier.kind, delivered: false, error: error.message }));
210
+ if (!result.delivered)
211
+ request.log(`release: notifier did not deliver (${result.error ?? "unknown"}); the message is in ${paths.log}`);
212
+ await appendReleaseLog(paths.log, {
213
+ at: notification.at, deployment: request.deployment, identity, message: notification.message,
214
+ notified: { channel: result.channel, delivered: result.delivered, ...(result.error ? { error: result.error } : {}) },
215
+ outcome: "notified", reason
216
+ }).catch(() => undefined);
217
+ return result.delivered;
218
+ };
@@ -0,0 +1,23 @@
1
+ import { type DrainOutcome } from "./drainPhase.js";
2
+ import type { ReleasePaths } from "./ledger.js";
3
+ import type { DeployedRelease, ReleaseDependencies, ReleaseRequest } from "./releaseTypes.js";
4
+ /** Runtimes whose admission a release can pause through a published control contract. */
5
+ export declare const DRAINABLE_RUNTIMES: ReadonlySet<string>;
6
+ /** `up --image` names the deployment's container this way; a release replaces exactly that container. */
7
+ export declare const releaseContainerName: (deployment: string) => string;
8
+ export type SwapOutcome = {
9
+ deployed: DeployedRelease;
10
+ drained: DrainOutcome;
11
+ kind: "deployed";
12
+ } | {
13
+ drained: DrainOutcome;
14
+ kind: "deferred";
15
+ };
16
+ /**
17
+ * Drain and swap. The caller holds the deployment's home lock, so no
18
+ * concurrent `up` can replace the drained container between the drain and
19
+ * the deploy. The container is inspected again under the lock (a long build may have outlived
20
+ * the first inspection) and once more after the drain: a different container,
21
+ * or one that restarted and therefore admits again, aborts the release.
22
+ */
23
+ export declare const drainAndSwap: (request: ReleaseRequest, deps: ReleaseDependencies, paths: ReleasePaths, imageTag: string) => Promise<SwapOutcome>;
@@ -0,0 +1,55 @@
1
+ import { clearDrainMarker, drainForRelease, resumeAfterFailedDeploy, resumeDrained } from "./drainPhase.js";
2
+ import { ReleaseError } from "./types.js";
3
+ /** Runtimes whose admission a release can pause through a published control contract. */
4
+ export const DRAINABLE_RUNTIMES = new Set(["daimon"]);
5
+ /** `up --image` names the deployment's container this way; a release replaces exactly that container. */
6
+ export const releaseContainerName = (deployment) => `spawnfile-${deployment}`;
7
+ /**
8
+ * Drain and swap. The caller holds the deployment's home lock, so no
9
+ * concurrent `up` can replace the drained container between the drain and
10
+ * the deploy. The container is inspected again under the lock (a long build may have outlived
11
+ * the first inspection) and once more after the drain: a different container,
12
+ * or one that restarted and therefore admits again, aborts the release.
13
+ */
14
+ export const drainAndSwap = async (request, deps, paths, imageTag) => {
15
+ const containerName = releaseContainerName(request.deployment);
16
+ const target = await deps.inspectUnit(request, containerName);
17
+ if (request.drain && target?.running) {
18
+ const runtimes = await deps.runtimesOf(request, target.imageId).catch((error) => {
19
+ throw new ReleaseError("blocked", `cannot read which runtimes the running image holds, so it cannot be shown drainable: ${error.message}`);
20
+ });
21
+ const undrainable = [...new Set(runtimes)].filter((runtime) => !DRAINABLE_RUNTIMES.has(runtime));
22
+ if (runtimes.length === 0 || undrainable.length > 0) {
23
+ throw new ReleaseError("blocked", `the running container holds runtimes without a drain contract (${undrainable.join(", ") || "none listed"}); draining it could not stop their turns. Use --no-drain to deploy over them deliberately`);
24
+ }
25
+ }
26
+ const drained = await drainForRelease(request, deps, paths, target);
27
+ if (drained.kind === "timeout")
28
+ return { drained, kind: "deferred" };
29
+ if (drained.kind === "drained" && target) {
30
+ // Anything that stops the release between the drain and the deploy resumes the drained container.
31
+ try {
32
+ const now = await deps.inspectUnit(request, containerName);
33
+ if (now === null || now.id !== target.id || now.restartCount !== target.restartCount || !now.running) {
34
+ throw new ReleaseError("drain-failed", "the drained container was replaced or restarted before the deploy; a restarted runtime admits again, so nothing was deployed");
35
+ }
36
+ if (request.signal?.aborted)
37
+ throw new ReleaseError("interrupted", "the release was interrupted after draining; admission resumed, nothing deployed");
38
+ }
39
+ catch (error) {
40
+ await resumeDrained(request, deps, paths, target);
41
+ throw error instanceof ReleaseError ? error : new ReleaseError("drain-failed", `cannot confirm the drained container before deploying: ${error.message}`);
42
+ }
43
+ }
44
+ let deployed;
45
+ try {
46
+ deployed = await deps.deploy(request, imageTag);
47
+ }
48
+ catch (error) {
49
+ await resumeAfterFailedDeploy(request, deps, paths, containerName);
50
+ throw new ReleaseError("deploy-failed", `deploy failed: ${error.message}`, { cause: error });
51
+ }
52
+ // The drained container was replaced; its drain ended with its process.
53
+ await clearDrainMarker(paths);
54
+ return { deployed, drained, kind: "deployed" };
55
+ };
@@ -0,0 +1,50 @@
1
+ /**
2
+ * The fixed vocabulary a release failure is reported in. A notifier receives
3
+ * exactly one of these words, so whoever reads the notification learns a small
4
+ * closed set rather than free text; the detail travels separately.
5
+ */
6
+ export declare const RELEASE_FAILURE_REASONS: readonly ["blocked", "build-failed", "drain-failed", "deploy-failed", "health-failed", "resume-failed", "post-deploy-failed", "ledger-failed", "interrupted", "release-deferred"];
7
+ export type ReleaseFailureReason = (typeof RELEASE_FAILURE_REASONS)[number];
8
+ /** Carries the reason word with the error so the orchestrator never guesses it. */
9
+ export declare class ReleaseError extends Error {
10
+ readonly reason: ReleaseFailureReason;
11
+ constructor(reason: ReleaseFailureReason, message: string, options?: ErrorOptions);
12
+ }
13
+ export declare const isReleaseError: (value: unknown) => value is ReleaseError;
14
+ export interface ReleaseTimings {
15
+ build_ms: number | null;
16
+ compile_ms: number;
17
+ deploy_ms: number | null;
18
+ drain_ms: number | null;
19
+ total_ms: number;
20
+ }
21
+ /**
22
+ * `released`: a new image is running and recorded. `unchanged`: the recorded
23
+ * identity is the one running, nothing was built or touched. `deferred`: the
24
+ * running organization did not drain within the bound, the release was
25
+ * abandoned before deploying and admission resumed. `failed`: see `reason`.
26
+ */
27
+ export type ReleaseOutcome = {
28
+ identity: string;
29
+ imageTag: string;
30
+ kind: "unchanged";
31
+ } | {
32
+ identity: string;
33
+ imageId: string;
34
+ imageTag: string;
35
+ kind: "released";
36
+ timings: ReleaseTimings;
37
+ } | {
38
+ identity: string;
39
+ kind: "deferred";
40
+ message: string;
41
+ notified: boolean;
42
+ } | {
43
+ identity: string | null;
44
+ kind: "failed";
45
+ message: string;
46
+ notified: boolean;
47
+ reason: ReleaseFailureReason;
48
+ };
49
+ /** Exit codes: 0 released/unchanged, 75 (EX_TEMPFAIL) deferred, 1 failed. */
50
+ export declare const releaseExitCode: (outcome: ReleaseOutcome) => number;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * The fixed vocabulary a release failure is reported in. A notifier receives
3
+ * exactly one of these words, so whoever reads the notification learns a small
4
+ * closed set rather than free text; the detail travels separately.
5
+ */
6
+ export const RELEASE_FAILURE_REASONS = Object.freeze([
7
+ "blocked",
8
+ "build-failed",
9
+ "drain-failed",
10
+ "deploy-failed",
11
+ "health-failed",
12
+ "resume-failed",
13
+ "post-deploy-failed",
14
+ "ledger-failed",
15
+ "interrupted",
16
+ "release-deferred"
17
+ ]);
18
+ /** Carries the reason word with the error so the orchestrator never guesses it. */
19
+ export class ReleaseError extends Error {
20
+ reason;
21
+ constructor(reason, message, options) {
22
+ super(message, options);
23
+ this.reason = reason;
24
+ this.name = "ReleaseError";
25
+ }
26
+ }
27
+ export const isReleaseError = (value) => value instanceof ReleaseError;
28
+ /** Exit codes: 0 released/unchanged, 75 (EX_TEMPFAIL) deferred, 1 failed. */
29
+ export const releaseExitCode = (outcome) => outcome.kind === "failed" ? 1 : outcome.kind === "deferred" ? 75 : 0;
@@ -1,4 +1,5 @@
1
1
  export * from "./createDiagnostic.js";
2
2
  export * from "./createReport.js";
3
3
  export * from "./types.js";
4
+ export * from "./recording.js";
4
5
  export * from "./writeReport.js";
@@ -1,4 +1,5 @@
1
1
  export * from "./createDiagnostic.js";
2
2
  export * from "./createReport.js";
3
3
  export * from "./types.js";
4
+ export * from "./recording.js";
4
5
  export * from "./writeReport.js";
@@ -0,0 +1,57 @@
1
+ import { z } from "zod";
2
+ /** Portable compiled facts, persisted with the deployment so sync never recompiles. */
3
+ export declare const recordingAgentSchema: z.ZodObject<{
4
+ node_id: z.ZodString;
5
+ slug: z.ZodString;
6
+ directory: z.ZodString;
7
+ keep_ms: z.ZodNumber;
8
+ networks: z.ZodArray<z.ZodString>;
9
+ memory: z.ZodArray<z.ZodObject<{
10
+ id: z.ZodString;
11
+ declared_by: z.ZodString;
12
+ ledger_path: z.ZodNullable<z.ZodString>;
13
+ }, z.core.$strict>>;
14
+ feeds: z.ZodArray<z.ZodObject<{
15
+ id: z.ZodString;
16
+ volume_name: z.ZodString;
17
+ }, z.core.$strict>>;
18
+ resources: z.ZodArray<z.ZodObject<{
19
+ id: z.ZodString;
20
+ kind: z.ZodEnum<{
21
+ git: "git";
22
+ bundle: "bundle";
23
+ }>;
24
+ }, z.core.$strict>>;
25
+ snapshots: z.ZodArray<z.ZodString>;
26
+ }, z.core.$strict>;
27
+ export type RecordingAgentReport = z.infer<typeof recordingAgentSchema>;
28
+ /** Optional members preserve S1 records; sync requires the compiled agents member. */
29
+ export declare const recordingReportSchema: z.ZodObject<{
30
+ keep_ms: z.ZodNumber;
31
+ memory_mount_ids: z.ZodArray<z.ZodString>;
32
+ recording_mount_ids: z.ZodOptional<z.ZodArray<z.ZodString>>;
33
+ agents: z.ZodOptional<z.ZodArray<z.ZodObject<{
34
+ node_id: z.ZodString;
35
+ slug: z.ZodString;
36
+ directory: z.ZodString;
37
+ keep_ms: z.ZodNumber;
38
+ networks: z.ZodArray<z.ZodString>;
39
+ memory: z.ZodArray<z.ZodObject<{
40
+ id: z.ZodString;
41
+ declared_by: z.ZodString;
42
+ ledger_path: z.ZodNullable<z.ZodString>;
43
+ }, z.core.$strict>>;
44
+ feeds: z.ZodArray<z.ZodObject<{
45
+ id: z.ZodString;
46
+ volume_name: z.ZodString;
47
+ }, z.core.$strict>>;
48
+ resources: z.ZodArray<z.ZodObject<{
49
+ id: z.ZodString;
50
+ kind: z.ZodEnum<{
51
+ git: "git";
52
+ bundle: "bundle";
53
+ }>;
54
+ }, z.core.$strict>>;
55
+ snapshots: z.ZodArray<z.ZodString>;
56
+ }, z.core.$strict>>>;
57
+ }, z.core.$strict>;
@@ -0,0 +1,26 @@
1
+ import { z } from "zod";
2
+ const text = z.string().min(1);
3
+ const mountId = text.regex(/^[A-Za-z0-9][A-Za-z0-9_.-]*$/u).refine((value) => !value.includes(".."));
4
+ const containerPath = text.startsWith("/").refine((value) => !value.includes("\0"));
5
+ const keepMs = z.number().int().positive().max(Number.MAX_SAFE_INTEGER);
6
+ /** Portable compiled facts, persisted with the deployment so sync never recompiles. */
7
+ export const recordingAgentSchema = z.object({
8
+ node_id: text,
9
+ slug: text.regex(/^[A-Za-z0-9][A-Za-z0-9._-]*$/u),
10
+ directory: containerPath,
11
+ keep_ms: keepMs,
12
+ networks: z.array(text),
13
+ memory: z.array(z.object({ id: text, declared_by: text, ledger_path: containerPath.nullable() }).strict()),
14
+ feeds: z.array(z.object({ id: text, volume_name: text }).strict()),
15
+ resources: z.array(z.object({ id: text, kind: z.enum(["git", "bundle"]) }).strict()),
16
+ snapshots: z.array(text)
17
+ }).strict().refine((value) => value.directory === `/var/lib/spawnfile/recording/${value.slug}`, {
18
+ message: "Recording directory must match the compiled agent slug"
19
+ });
20
+ /** Optional members preserve S1 records; sync requires the compiled agents member. */
21
+ export const recordingReportSchema = z.object({
22
+ keep_ms: keepMs,
23
+ memory_mount_ids: z.array(mountId),
24
+ recording_mount_ids: z.array(mountId).optional(),
25
+ agents: z.array(recordingAgentSchema).optional()
26
+ }).strict();
@@ -1,5 +1,6 @@
1
1
  import type { RuntimeLifecycleStatus } from "../shared/index.js";
2
2
  import type { ModelAuthMethod } from "../shared/index.js";
3
+ import type { RecordingAgentReport } from "./recording.js";
3
4
  export type CapabilityOutcome = "degraded" | "supported" | "unsupported";
4
5
  export interface CapabilityReport {
5
6
  key: string;
@@ -11,6 +12,12 @@ export interface DiagnosticReport {
11
12
  message: string;
12
13
  }
13
14
  export interface ContainerRuntimeInstanceReport {
15
+ /** Per-agent paths for shared runtime instances; all paths are container absolute. */
16
+ agent_paths?: Record<string, {
17
+ workspace_path: string;
18
+ home_path: string | null;
19
+ skill_roots: string[];
20
+ }>;
14
21
  config_path: string;
15
22
  /** Per pi/daimon agent (keyed by node id, e.g. "agent:eleanor"): the resolved pi
16
23
  * engine kind (see `PI_ENGINE_KINDS` in `src/runtime/pi/appTemplate.ts`, e.g.
@@ -35,14 +42,32 @@ export interface ContainerRuntimeInstanceReport {
35
42
  export interface ContainerWorkspaceResourceReport {
36
43
  backing_path: string;
37
44
  id: string;
38
- kind: "git" | "volume";
45
+ kind: "bundle" | "git" | "volume";
39
46
  link_path: string;
40
47
  mode: "mutable" | "readonly";
41
48
  mount: string;
49
+ mount_path: string;
50
+ replacement_sentinel?: {
51
+ path: string;
52
+ result: "verified_on_startup";
53
+ };
54
+ resolved_identity: string;
42
55
  sharing: "per_agent" | "team";
56
+ volume_name: string | null;
43
57
  }
44
58
  export interface ContainerPersistentMountReport {
59
+ /**
60
+ * The author's own volume name, when one was declared (a workspace resource
61
+ * `name`, a `store.persistence.name`, a memory bank's `persistence.name`).
62
+ * Present only when declared; `volume_name` equals it in that case. It is
63
+ * carried separately because it is the one part of the resolved name that is
64
+ * portable: it belongs to the declaration, not to the creator's plan root or
65
+ * deployment lineage, so a published image can honour it verbatim while a
66
+ * derived name must be re-derived per deployment.
67
+ */
68
+ declared_volume_name?: string;
45
69
  id: string;
70
+ lifecycle?: "exclusive-reattach";
46
71
  mount_path: string;
47
72
  reason: string;
48
73
  volume_name: string;
@@ -155,6 +180,7 @@ export interface ContainerPortMappingReport {
155
180
  published_port: number;
156
181
  }
157
182
  export interface ContainerMoltnetNodePlanSummary {
183
+ node_id?: string;
158
184
  config_path: string;
159
185
  credential_agent_id?: string;
160
186
  credential_id?: string;
@@ -200,9 +226,16 @@ export interface ContainerMoltnetPlanSummary {
200
226
  architecture: "amd64" | "arm64";
201
227
  asset: string;
202
228
  asset_sha256: `sha256:${string}`;
203
- capabilities: readonly ["pi-bridge"];
204
- release_version: string;
205
- source_revision: string;
229
+ capabilities: readonly ["pi-bridge"] | readonly ["daimon-bridge", "pi-bridge"];
230
+ development?: {
231
+ mode: "local-development";
232
+ non_production: true;
233
+ unsigned: true;
234
+ unpublished: true;
235
+ };
236
+ release_version?: string;
237
+ source_revision?: string;
238
+ source_sha256?: `sha256:${string}`;
206
239
  version: "spawnfile.moltnet-release-identity.v1";
207
240
  };
208
241
  server_plans: ContainerMoltnetServerPlanSummary[];
@@ -224,6 +257,11 @@ export interface ContainerReport {
224
257
  entrypoint: string;
225
258
  env_example: string;
226
259
  internal_ports?: number[];
260
+ local_daimon_runtime?: {
261
+ capability_receipt_sha256: string;
262
+ image_reference: string;
263
+ registry_authority: string;
264
+ };
227
265
  model_secrets_required: string[];
228
266
  moltnet?: ContainerMoltnetPlanSummary;
229
267
  memory?: ContainerMemoryReport[];
@@ -238,6 +276,53 @@ export interface ContainerReport {
238
276
  persistent_mounts?: ContainerPersistentMountReport[];
239
277
  workspace_resources?: ContainerWorkspaceResourceReport[];
240
278
  }
279
+ /** Association captured while walking the resolved compile graph. */
280
+ export interface WorkspaceResourceOwnership {
281
+ agent_node_ids: string[];
282
+ declared_by?: string;
283
+ }
284
+ /** One workspace bundle archive the compile staged, with the digest Spawnfile built or verified. */
285
+ export interface CompileReportWorkspaceBundle extends Partial<WorkspaceResourceOwnership> {
286
+ cache_key?: string;
287
+ content_bytes?: number;
288
+ file_count?: number;
289
+ id: string;
290
+ identity?: "dev" | "release";
291
+ /** Input kind of a built bundle. */
292
+ input?: "dependencies" | "files" | "generated";
293
+ origin: "built" | "prebuilt";
294
+ platform?: string;
295
+ sha256: string;
296
+ }
297
+ /** A `fetch: build` git resource: the commit its selector resolved to and the archive cut from that commit. */
298
+ export interface CompileReportWorkspaceGitResource extends Partial<WorkspaceResourceOwnership> {
299
+ auth: "none" | "ssh_key" | "ssh_key_env";
300
+ cache_key: string;
301
+ commit: string;
302
+ content_bytes: number;
303
+ file_count: number;
304
+ id: string;
305
+ identity: "dev" | "release";
306
+ platform: string;
307
+ selector: {
308
+ kind: "branch" | "ref" | "tag";
309
+ value: string;
310
+ } | {
311
+ kind: "default_branch";
312
+ };
313
+ sha256: string;
314
+ url: string;
315
+ }
316
+ /** Present only when at least one effective compiled agent enables recording. */
317
+ export interface RecordingReport {
318
+ agents?: RecordingAgentReport[];
319
+ /** Maximum recording window across agents, including the 30-day default. */
320
+ keep_ms: number;
321
+ /** Durable memory mounts accessible to any recording agent, including team banks. */
322
+ memory_mount_ids: string[];
323
+ /** Per-agent recording stores protected by the same destructive-volume guard. */
324
+ recording_mount_ids?: string[];
325
+ }
241
326
  export interface CompileReport {
242
327
  compile_fingerprint?: string;
243
328
  container?: ContainerReport;
@@ -246,7 +331,10 @@ export interface CompileReport {
246
331
  nodes: NodeReport[];
247
332
  output_directory?: string;
248
333
  project_name?: string;
334
+ recording?: RecordingReport;
249
335
  root: string;
250
336
  spawnfile_version: "0.1";
337
+ workspace_bundles?: CompileReportWorkspaceBundle[];
338
+ workspace_git_resources?: CompileReportWorkspaceGitResource[];
251
339
  }
252
340
  export {};