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,2 @@
1
+ /** Runs only in the verified Linux training image. No project code is imported. */
2
+ export declare const trainingOutputCopyProgram: string;
@@ -0,0 +1,72 @@
1
+ /** Runs only in the verified Linux training image. No project code is imported. */
2
+ export const trainingOutputCopyProgram = String.raw `
3
+ const fs = require('node:fs');
4
+ const path = require('node:path');
5
+ const [source, destination, owner, group] = process.argv.slice(1);
6
+ const uid = Number(owner), gid = Number(group);
7
+ const limits = { entries: 1_000_000, bytes: 64 * 1024 ** 3, depth: 64 };
8
+ let entries = 0, bytes = 0;
9
+ const links = new Map();
10
+ const buffer = Buffer.alloc(1024 * 1024);
11
+ // Linux fd-relative traversal keeps renamed directories and symlink swaps from
12
+ // redirecting reads/writes outside the two mounts. The fallback permits local QA.
13
+ const fdPath = (fd, file) => process.platform === 'linux' ? '/proc/self/fd/' + fd : file;
14
+ const directory = fs.constants.O_RDONLY | fs.constants.O_DIRECTORY | fs.constants.O_NOFOLLOW;
15
+ function copy(src, dst, depth) {
16
+ if (++entries > limits.entries || depth > limits.depth) throw Error('Output tree exceeds entry/depth limit');
17
+ const info = fs.lstatSync(src);
18
+ if (info.isSymbolicLink()) {
19
+ const target = fs.readlinkSync(src);
20
+ bytes += Buffer.byteLength(target);
21
+ if (bytes > limits.bytes) throw Error('Output exceeds 64 GiB');
22
+ fs.symlinkSync(target, dst); fs.lchownSync(dst, uid, gid);
23
+ fs.lutimesSync(dst, info.atime, info.mtime);
24
+ return;
25
+ }
26
+ if (info.isDirectory()) {
27
+ const input = fs.openSync(src, directory);
28
+ let output;
29
+ try {
30
+ if (depth !== 0) fs.mkdirSync(dst, { mode: 0o700 });
31
+ output = fs.openSync(dst, directory);
32
+ fs.fchownSync(output, uid, gid);
33
+ const from = fdPath(input, src), to = fdPath(output, dst);
34
+ if (depth === 0 && fs.readdirSync(to).length) throw Error('Output copy destination must be empty');
35
+ for (const name of fs.readdirSync(from)) copy(path.join(from, name), path.join(to, name), depth + 1);
36
+ fs.fchownSync(output, uid, gid); fs.fchmodSync(output, info.mode & 0o7777);
37
+ fs.futimesSync(output, info.atime, info.mtime); fs.fsyncSync(output);
38
+ } finally { if (output !== undefined) fs.closeSync(output); fs.closeSync(input); }
39
+ return;
40
+ }
41
+ if (!info.isFile()) throw Error('Output contains a special file');
42
+ const input = fs.openSync(src, fs.constants.O_RDONLY | fs.constants.O_NOFOLLOW | fs.constants.O_NONBLOCK);
43
+ let output;
44
+ try {
45
+ const opened = fs.fstatSync(input);
46
+ if (!opened.isFile() || opened.dev !== info.dev || opened.ino !== info.ino) throw Error('Output changed during copy');
47
+ const key = info.dev + ':' + info.ino;
48
+ // Store a path rooted at the destination mount, not an fd that closes after recursion.
49
+ const previous = links.get(key);
50
+ if (previous) { fs.linkSync(previous, dst); return; }
51
+ bytes += info.size;
52
+ if (bytes > limits.bytes) throw Error('Output exceeds 64 GiB');
53
+ output = fs.openSync(dst, fs.constants.O_WRONLY | fs.constants.O_CREAT | fs.constants.O_EXCL | fs.constants.O_NOFOLLOW, 0o600);
54
+ fs.fchownSync(output, uid, gid);
55
+ let position = 0;
56
+ while (position < info.size) {
57
+ const count = fs.readSync(input, buffer, 0, Math.min(buffer.length, info.size - position), position);
58
+ if (!count) throw Error('Output truncated during copy');
59
+ let written = 0;
60
+ while (written < count) written += fs.writeSync(output, buffer, written, count - written);
61
+ position += count;
62
+ }
63
+ const after = fs.fstatSync(input);
64
+ if (after.size !== info.size || after.mtimeMs !== info.mtimeMs) throw Error('Output changed during copy');
65
+ fs.fchownSync(output, uid, gid); fs.fchmodSync(output, info.mode & 0o7777);
66
+ fs.futimesSync(output, info.atime, info.mtime); fs.fsyncSync(output);
67
+ links.set(key, fs.realpathSync(dst));
68
+ } finally { if (output !== undefined) fs.closeSync(output); fs.closeSync(input); }
69
+ }
70
+ copy(source, destination, 0);
71
+ console.log('spawnfile-output-copy-complete');
72
+ `;
@@ -0,0 +1,27 @@
1
+ type DockerCall = (args: string[], cleanup?: boolean) => Promise<{
2
+ code: number;
3
+ stdout: string;
4
+ stderr: string;
5
+ }>;
6
+ export declare const trainingOutputVolumeEnabled: () => boolean;
7
+ /** One launch owns this volume; budgets and auth volumes are never touched. */
8
+ export declare const createTrainingOutputVolume: (options: {
9
+ name: string;
10
+ image: string;
11
+ host: string;
12
+ scratch: string;
13
+ uid: number;
14
+ gid: number;
15
+ runtimeUid: number;
16
+ runtimeGid: number;
17
+ context: string;
18
+ call: DockerCall;
19
+ stderr(line: string): void;
20
+ }) => {
21
+ safeToCleanup: () => boolean;
22
+ mount: string;
23
+ seed(): Promise<void>;
24
+ export(): Promise<void>;
25
+ dispose(closureVerified: boolean): Promise<void>;
26
+ };
27
+ export {};
@@ -0,0 +1,161 @@
1
+ import { constants } from "node:fs";
2
+ import { lstat, mkdir, open, realpath, rename } from "node:fs/promises";
3
+ import path from "node:path";
4
+ import { parseDetachedContainerInspect } from "../../runProjectDocker.js";
5
+ import { trainingOutputCopyProgram } from "./outputCopy.js";
6
+ const ownerLabel = "com.spawnfile.training.owner";
7
+ const inspectFormat = "{{json .Id}}\n{{json .Name}}\n{{json .Image}}\n{{json .Config.Labels}}";
8
+ const target = "/run/training/output";
9
+ export const trainingOutputVolumeEnabled = () => {
10
+ const setting = process.env.SPAWNFILE_TRAINING_OUTPUT_STORAGE;
11
+ if (setting !== undefined && setting !== "volume" && setting !== "bind")
12
+ throw Error("SPAWNFILE_TRAINING_OUTPUT_STORAGE must be volume or bind");
13
+ return setting !== "bind";
14
+ };
15
+ /** One launch owns this volume; budgets and auth volumes are never touched. */
16
+ export const createTrainingOutputVolume = (options) => {
17
+ const { call } = options;
18
+ const volume = `${options.name}-output`;
19
+ let attempted = false, seeded = false, exported = false, exportAttempted = false, helperClosed = true;
20
+ const recovery = () => `Training output retained in Docker volume ${volume}. Recover with: docker --context ${options.context} run --rm --network none --read-only --mount type=volume,src=${volume},dst=/output,readonly --entrypoint /bin/tar ${options.image} -C /output -cpf - . > training-output-recovery.tar`;
21
+ const owned = async () => {
22
+ const result = await call(["volume", "inspect", volume, "--format", "{{json .}}"], true);
23
+ if (result.code !== 0) {
24
+ const listed = await call(["volume", "ls", "--filter", `name=^${volume}$`, "--format", "{{.Name}}"], true);
25
+ if (listed.code === 0 && !listed.stdout.trim())
26
+ return false;
27
+ throw Error("Training output volume closure is unknown");
28
+ }
29
+ const info = JSON.parse(result.stdout);
30
+ if (info.Name !== volume || info.Driver !== "local" || (info.Options && Object.keys(info.Options).length) || info.Labels?.[ownerLabel] !== options.name)
31
+ throw Error("Refusing unverified training output volume");
32
+ return true;
33
+ };
34
+ const transfer = async (direction) => {
35
+ if (!await owned())
36
+ throw Error("Training output volume is missing");
37
+ const name = `${volume}-${direction}`;
38
+ const labels = { [ownerLabel]: name };
39
+ const hostStage = path.join(options.scratch, "output-export");
40
+ if (direction === "export")
41
+ await mkdir(hostStage, { mode: 0o700 });
42
+ const mounts = direction === "seed"
43
+ ? [`type=bind,src=${options.host},dst=/source,readonly`, `type=volume,src=${volume},dst=/destination,volume-nocopy`]
44
+ : [`type=volume,src=${volume},dst=/source,readonly,volume-nocopy`, `type=bind,src=${hostStage},dst=/destination`];
45
+ let creationAttempted = false, containerId;
46
+ try {
47
+ creationAttempted = true;
48
+ helperClosed = false;
49
+ const created = await call(["container", "create", "--name", name, "--label", `${ownerLabel}=${name}`,
50
+ "--network", "none", "--read-only", "--user", "0:0", "--security-opt", "no-new-privileges",
51
+ // Retain only Docker's default CHOWN, DAC_OVERRIDE, FOWNER and FSETID for copying
52
+ // private runtime files and assigning the native/broker uid. No cap-add.
53
+ ...["AUDIT_WRITE", "KILL", "MKNOD", "NET_BIND_SERVICE", "NET_RAW", "SETFCAP", "SETGID", "SETPCAP", "SETUID", "SYS_CHROOT"].flatMap(cap => ["--cap-drop", cap]),
54
+ "--pids-limit", "32", "--memory", "256m", "--cpus", "1", "--workdir", "/",
55
+ ...mounts.flatMap(mount => ["--mount", mount]), "--entrypoint", "node", options.image,
56
+ "-e", trainingOutputCopyProgram, "/source", "/destination",
57
+ String(direction === "seed" ? options.runtimeUid : options.uid), String(direction === "seed" ? options.runtimeGid : options.gid)], direction === "export");
58
+ const id = created.stdout.trim();
59
+ containerId = id;
60
+ if (created.code !== 0 || !/^[a-f0-9]{64}$/u.test(id))
61
+ throw Error(`Cannot create training output ${direction} helper`);
62
+ const checked = await call(["container", "inspect", "--format", inspectFormat, name], true);
63
+ if (checked.code !== 0 || parseDetachedContainerInspect(checked.stdout, id, labels, name).imageId !== options.image)
64
+ throw Error("Training output helper identity mismatch");
65
+ const result = await call(["container", "start", "--attach", id], direction === "export");
66
+ const terminal = await call(["container", "inspect", "--format", "{{json .State}}", id], true);
67
+ const state = JSON.parse(terminal.stdout);
68
+ if (result.code !== 0 || result.stdout.trim() !== "spawnfile-output-copy-complete" || terminal.code !== 0 || state.Running !== false || state.ExitCode !== 0)
69
+ throw Error(`Training output ${direction} failed (copy incomplete or exceeds limits): ${result.stderr.replace(/\p{Cc}/gu, " ").slice(0, 2048)}`);
70
+ }
71
+ finally {
72
+ if (creationAttempted) {
73
+ const found = await call(["container", "inspect", "--format", inspectFormat, name], true);
74
+ if (found.code === 0) {
75
+ const id = JSON.parse(found.stdout.split("\n")[0]);
76
+ if (typeof id !== "string" || parseDetachedContainerInspect(found.stdout, id, labels, name).imageId !== options.image || (containerId && /^[a-f0-9]{64}$/u.test(containerId) && id !== containerId))
77
+ throw Error("Refusing cleanup of unverified training output helper");
78
+ const removed = await call(["container", "rm", "--force", id], true);
79
+ if (removed.code !== 0)
80
+ throw Error("Cannot remove training output helper");
81
+ }
82
+ const remaining = await call(["container", "ls", "--all", "--filter", `name=^/${name}$`, "--format", "{{.ID}}"], true);
83
+ if (remaining.code !== 0 || remaining.stdout.trim())
84
+ throw Error("Training output helper closure is unknown");
85
+ helperClosed = true;
86
+ }
87
+ }
88
+ if (direction === "export") {
89
+ if (await realpath(options.host) !== options.host || !(await lstat(options.host)).isDirectory())
90
+ throw Error("Training host output changed before export");
91
+ const backup = path.join(options.scratch, "output-before-export");
92
+ await rename(options.host, backup);
93
+ try {
94
+ await rename(hostStage, options.host);
95
+ }
96
+ catch (error) {
97
+ await rename(backup, options.host);
98
+ throw error;
99
+ }
100
+ for (const directory of [options.scratch, path.dirname(options.host)]) {
101
+ const handle = await open(directory, constants.O_RDONLY | constants.O_DIRECTORY | constants.O_NOFOLLOW);
102
+ try {
103
+ await handle.sync();
104
+ }
105
+ finally {
106
+ await handle.close();
107
+ }
108
+ }
109
+ }
110
+ };
111
+ return {
112
+ safeToCleanup: () => helperClosed && (!exportAttempted || exported),
113
+ mount: `type=volume,src=${volume},dst=${target},volume-nocopy`,
114
+ async seed() {
115
+ attempted = true;
116
+ const created = await call(["volume", "create", "--driver", "local", "--label", `${ownerLabel}=${options.name}`, volume]);
117
+ if (created.code !== 0 || created.stdout.trim() !== volume || !await owned())
118
+ throw Error("Cannot create owned training output volume");
119
+ await transfer("seed");
120
+ seeded = true;
121
+ options.stderr(`Training output uses VM-local volume ${volume}; host checkpoints update at exit.`);
122
+ },
123
+ async export() {
124
+ if (!seeded || exportAttempted)
125
+ return;
126
+ exportAttempted = true;
127
+ try {
128
+ await transfer("export");
129
+ exported = true;
130
+ }
131
+ catch (error) {
132
+ options.stderr(`Training output export failed: ${error instanceof Error ? error.message : "unknown failure"}. Scratch retained at ${options.scratch}. ${recovery()}`);
133
+ throw Error(`Training output export failed. ${recovery()}`, { cause: error });
134
+ }
135
+ },
136
+ async dispose(closureVerified) {
137
+ if (!attempted)
138
+ return;
139
+ try {
140
+ if (!await owned())
141
+ return;
142
+ if (!helperClosed)
143
+ throw Error("Training output helper closure is unverified");
144
+ if (!closureVerified) {
145
+ options.stderr(recovery());
146
+ return;
147
+ }
148
+ if (seeded && !exported)
149
+ throw Error("Training output has not been exported");
150
+ const removed = await call(["volume", "rm", volume], true);
151
+ const remaining = await call(["volume", "ls", "--filter", `name=^${volume}$`, "--format", "{{.Name}}"], true);
152
+ if (removed.code !== 0 || remaining.code !== 0 || remaining.stdout.trim())
153
+ throw Error("Training output volume removal is unverified");
154
+ }
155
+ catch (error) {
156
+ options.stderr(recovery());
157
+ throw Error(recovery(), { cause: error });
158
+ }
159
+ }
160
+ };
161
+ };
@@ -0,0 +1,10 @@
1
+ import { type TrainingContext } from "../contract.js";
2
+ import { type TrainingContainerConfig } from "./contract.js";
3
+ export declare const prepareTrainingContainer: (raw: unknown, context: TrainingContext, args: readonly string[], options?: {
4
+ createOutput?: boolean;
5
+ }) => Promise<{
6
+ config: TrainingContainerConfig;
7
+ context: TrainingContext;
8
+ args: string[];
9
+ viewerPort?: number;
10
+ }>;
@@ -0,0 +1,125 @@
1
+ import { lstat, mkdir, realpath } from "node:fs/promises";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+ import { trainingContextSchema } from "../contract.js";
5
+ import { trainingContainerConfigSchema } from "./contract.js";
6
+ import { allocateTrainingOutputParent } from "../execution.js";
7
+ import { assertTrainingSubjectIsolation } from "./subjectIsolation.js";
8
+ const inside = (root, value) => value === root || value.startsWith(`${root}/`);
9
+ export const prepareTrainingContainer = async (raw, context, args, options = {}) => {
10
+ const config = trainingContainerConfigSchema.parse(raw);
11
+ await assertTrainingSubjectIsolation(config, context);
12
+ const entries = [...config.inputs, config.output];
13
+ const protectedLeaves = [...config.auth, ...config.evaluatorSecrets ?? []];
14
+ const home = path.resolve(os.homedir());
15
+ const globalConfigRoots = [".codex", ".claude", ".grok", ".ssh", ".config"].map((name) => path.join(home, name));
16
+ let missingOutput = false;
17
+ for (const entry of [...entries, ...protectedLeaves]) {
18
+ let canonical;
19
+ try {
20
+ canonical = await realpath(entry.source);
21
+ }
22
+ catch (error) {
23
+ if (entry !== config.output || !options.createOutput || error.code !== "ENOENT")
24
+ throw error;
25
+ canonical = path.resolve(entry.source);
26
+ missingOutput = true;
27
+ }
28
+ if (canonical !== entry.source)
29
+ throw Error("Training bind sources must be canonical, without symlink aliases");
30
+ if (entry !== config.output || !missingOutput) {
31
+ const stat = await lstat(canonical);
32
+ if (stat.isSymbolicLink() || (!stat.isFile() && !stat.isDirectory()))
33
+ throw Error("Training binds require regular files or directories");
34
+ if (config.evaluatorSecrets?.includes(entry) && stat.nlink !== 1)
35
+ throw Error("Evaluator secrets must not have hardlink aliases");
36
+ if (protectedLeaves.includes(entry) && !stat.isFile())
37
+ throw Error("Auth must be a single regular leaf file");
38
+ }
39
+ if (entries.includes(entry)) {
40
+ if (["/", "/etc", "/var", "/run", "/tmp", "/opt", "/usr", "/Users", "/home", home].includes(canonical) || globalConfigRoots.some((root) => inside(root, canonical)))
41
+ throw Error("Host homes, configuration and system roots cannot be training inputs");
42
+ if (protectedLeaves.some((auth) => inside(canonical, auth.source)))
43
+ throw Error("Auth must not be exposed through input or output mounts");
44
+ }
45
+ }
46
+ if (config.inputs.some((entry, index) => config.inputs.some((other, otherIndex) => index !== otherIndex && inside(entry.source, other.source))))
47
+ throw Error("Training input source roots must not overlap");
48
+ if (!missingOutput && !(await lstat(config.output.source)).isDirectory())
49
+ throw Error("Training output must be an existing directory");
50
+ if (config.inputs.some((entry) => inside(entry.source, config.output.source) || inside(config.output.source, entry.source)))
51
+ throw Error("Training output and inputs must not overlap");
52
+ const map = (value) => {
53
+ const absolute = path.resolve(value);
54
+ const entry = entries.find((item) => inside(item.source, absolute));
55
+ if (!entry)
56
+ throw Error(`Training path is not covered by a declared mount: ${value}`);
57
+ return path.posix.join(entry.destination, path.relative(entry.source, absolute).split(path.sep).join("/"));
58
+ };
59
+ const source = (entry) => ({ ...entry, sourcePath: map(entry.sourcePath) });
60
+ const mapped = trainingContextSchema.parse({ ...context,
61
+ project: { ...context.project, root: map(context.project.root), manifest: map(context.project.manifest) },
62
+ agent: { ...context.agent, source: map(context.agent.source) },
63
+ sources: context.sources.map(source), documents: context.documents.map(source), skills: context.skills.map(source)
64
+ });
65
+ const mappedArgs = [...args];
66
+ let viewerPort;
67
+ for (let index = 0; index < mappedArgs.length; index++) {
68
+ const flag = mappedArgs[index];
69
+ if (["--train", "--validation", "--test", "--out", "--cost-config"].includes(flag)) {
70
+ const value = mappedArgs[++index];
71
+ if (!value)
72
+ throw Error(`Missing ${flag} path`);
73
+ mappedArgs[index] = map(value);
74
+ if (flag === "--out" && !inside("/run/training/output", mappedArgs[index]))
75
+ throw Error("Training --out must use the writable output mount");
76
+ }
77
+ else if (flag === "--resource") {
78
+ const value = mappedArgs[++index] ?? "", equals = value.indexOf("=");
79
+ if (equals < 1)
80
+ throw Error("Expected resource=id path mapping");
81
+ mappedArgs[index] = `${value.slice(0, equals)}=${map(value.slice(equals + 1))}`;
82
+ }
83
+ else if (flag === "--bridge-command") {
84
+ const value = mappedArgs[++index] ?? "";
85
+ if (!/^\/opt\/training\/[A-Za-z0-9._/-]+$/u.test(value) || path.posix.normalize(value) !== value)
86
+ throw Error("Bridge must be an installed executable under /opt/training");
87
+ }
88
+ else if (flag === "--view") {
89
+ const value = mappedArgs[++index] ?? "";
90
+ const port = Number(value);
91
+ if (viewerPort !== undefined || !/^\d+$/u.test(value) || !Number.isSafeInteger(port) || port < 1 || port > 65535)
92
+ throw Error("Container --view requires one explicit port from 1 to 65535");
93
+ viewerPort = port;
94
+ mappedArgs[index] = String(port);
95
+ }
96
+ }
97
+ {
98
+ const flags = mappedArgs.filter(arg => arg === "--concurrency" || arg.startsWith("--concurrency="));
99
+ if (flags.length > 1)
100
+ throw Error("Training accepts one --concurrency value");
101
+ const flag = flags[0];
102
+ if (flag !== undefined) {
103
+ const value = flag === "--concurrency" ? mappedArgs[mappedArgs.indexOf(flag) + 1] : flag.slice("--concurrency=".length);
104
+ if (!value || !/^[1-8]$/u.test(value) || Number(value) > config.slots) {
105
+ throw Error("Training concurrency must fit the provisioned slots");
106
+ }
107
+ if (flag !== "--concurrency")
108
+ mappedArgs.splice(mappedArgs.indexOf(flag), 1, "--concurrency", value);
109
+ }
110
+ }
111
+ if (missingOutput) {
112
+ await allocateTrainingOutputParent(config.output.source);
113
+ try {
114
+ await mkdir(config.output.source, { mode: 0o700 });
115
+ }
116
+ catch (error) {
117
+ if (error.code !== "EEXIST")
118
+ throw error;
119
+ }
120
+ if (await realpath(config.output.source) !== config.output.source || !(await lstat(config.output.source)).isDirectory()) {
121
+ throw Error("Training output must be a canonical directory");
122
+ }
123
+ }
124
+ return { config, context: mapped, args: mappedArgs, ...(viewerPort === undefined ? {} : { viewerPort }) };
125
+ };
@@ -0,0 +1,14 @@
1
+ export interface TrainingDockerProcess {
2
+ (args: readonly string[], options: {
3
+ timeoutMs: number;
4
+ signal?: AbortSignal;
5
+ stdout?: (line: string) => void;
6
+ stderr?: (line: string) => void;
7
+ }): Promise<{
8
+ code: number;
9
+ stdout: string;
10
+ stderr: string;
11
+ }>;
12
+ }
13
+ /** Docker client only; no model executable runs on the host. */
14
+ export declare const runTrainingDocker: TrainingDockerProcess;
@@ -0,0 +1,70 @@
1
+ import { spawn } from "node:child_process";
2
+ /** Docker client only; no model executable runs on the host. */
3
+ export const runTrainingDocker = (args, options) => new Promise((resolve, reject) => {
4
+ if (options.signal?.aborted) {
5
+ reject(Error("Training Docker operation cancelled"));
6
+ return;
7
+ }
8
+ const child = spawn("docker", [...args], { shell: false, stdio: ["ignore", "pipe", "pipe"] });
9
+ let stdout = "", stderr = "", failure;
10
+ let forceClose;
11
+ let settled = false;
12
+ const pending = { stdout: "", stderr: "" };
13
+ const stop = (message) => {
14
+ failure ??= Error(message);
15
+ child.kill("SIGKILL");
16
+ forceClose ??= setTimeout(() => {
17
+ // Releasing a stuck client lets the owner independently stop/verify the container.
18
+ child.stdout.destroy();
19
+ child.stderr.destroy();
20
+ finish(null);
21
+ }, 1000);
22
+ };
23
+ const abort = () => stop("Training Docker operation cancelled");
24
+ const timer = setTimeout(() => stop("Training Docker operation exceeded deadline"), options.timeoutMs);
25
+ options.signal?.addEventListener("abort", abort, { once: true });
26
+ if (options.signal?.aborted)
27
+ abort();
28
+ const consume = (channel, chunk) => {
29
+ pending[channel] += chunk;
30
+ if (Buffer.byteLength(pending[channel]) > 1024 * 1024) {
31
+ stop("Docker output exceeded bounded line size");
32
+ return;
33
+ }
34
+ const lines = pending[channel].split("\n");
35
+ pending[channel] = lines.pop();
36
+ for (const line of lines) {
37
+ options[channel]?.(line);
38
+ if (channel === "stdout")
39
+ stdout = options.stdout ? line : stdout + line + "\n";
40
+ else
41
+ stderr = options.stderr ? line : stderr + line + "\n";
42
+ if (stdout.length + stderr.length > 2 * 1024 * 1024)
43
+ stop("Docker output exceeded bounded capture size");
44
+ }
45
+ };
46
+ child.stdout.setEncoding("utf8").on("data", (chunk) => consume("stdout", chunk));
47
+ child.stderr.setEncoding("utf8").on("data", (chunk) => consume("stderr", chunk));
48
+ child.once("error", (error) => { failure = error; });
49
+ const finish = (code) => {
50
+ if (settled)
51
+ return;
52
+ settled = true;
53
+ clearTimeout(forceClose);
54
+ clearTimeout(timer);
55
+ options.signal?.removeEventListener("abort", abort);
56
+ for (const channel of ["stdout", "stderr"])
57
+ if (pending[channel]) {
58
+ options[channel]?.(pending[channel]);
59
+ if (channel === "stdout")
60
+ stdout = options.stdout ? pending[channel] : stdout + pending[channel];
61
+ else
62
+ stderr = options.stderr ? pending[channel] : stderr + pending[channel];
63
+ }
64
+ if (failure)
65
+ reject(failure);
66
+ else
67
+ resolve({ code: code ?? 1, stdout, stderr });
68
+ };
69
+ child.once("close", finish);
70
+ });
@@ -0,0 +1,38 @@
1
+ export declare const TRAINING_BROKER_ENTRYPOINT = "/opt/training/bin/train-broker";
2
+ /** Same output directory is the same resumable run; different outputs never share a counter. */
3
+ export declare const trainingRunRequestMount: (outputSource: string, args: readonly string[]) => string;
4
+ /**
5
+ * Disposable state of a broker-capable training container, all on tmpfs.
6
+ *
7
+ * The image root stays read-only and nothing here is a host bind, so a trial's
8
+ * worker home, workspace, turn store, wake-acceptance store and ledgers are
9
+ * on a filesystem that enforces unix ownership — which is what lets the slot
10
+ * supervisor's worker-uid canaries mean anything (P0 §5: a host bind under
11
+ * Docker Desktop or Colima silently ignores `chown`). The Grok realm is the
12
+ * credential mount. The run request counter has its own persistent named volume.
13
+ */
14
+ export declare const trainingBrokerTmpfsTargets: (slots?: number) => readonly {
15
+ path: string;
16
+ size: string;
17
+ mode: string;
18
+ }[];
19
+ /**
20
+ * `docker create` arguments for the broker-capable training container.
21
+ *
22
+ * It starts as root with the *production* Daimon capability set rather than
23
+ * the v1 path's `--cap-drop ALL` as the host user: the root entrypoint has to
24
+ * provision uid-owned directories (`CAP_CHOWN`), let the native launcher
25
+ * `setuid` to a worker (`CAP_SETUID`/`SETGID`), drop bounding sets
26
+ * (`CAP_SETPCAP`), supervise dropped children (`CAP_KILL`) and read the
27
+ * attested layout it does not own (`CAP_DAC_READ_SEARCH`). `CAP_FOWNER` is
28
+ * deliberately absent, which is why every provisioning chmod reclaims the
29
+ * inode first. Grok 1.0.34 runs every sandbox profile inside bubblewrap, so
30
+ * the container also needs the pinned default-plus-userns seccomp profile and
31
+ * AppArmor unconfined — the narrowest combination P0 found.
32
+ */
33
+ export declare const trainingBrokerSecurityArgs: (seccompProfileDirectory: string) => Promise<string[]>;
34
+ export declare const trainingBrokerMounts: (broker: {
35
+ realmVolume: string;
36
+ bootstrap: string;
37
+ declaration: string;
38
+ }) => string[];
@@ -0,0 +1,68 @@
1
+ import { createHash } from "node:crypto";
2
+ import { DAIMON_DOCKER_RUNTIME_SECURITY_ARGS, materializeDaimonGrokSeccompProfile } from "../../../shared/index.js";
3
+ import { DAIMON_GROK_ENGINE_BROKER } from "../../../runtime/daimon/contractManifest.js";
4
+ import { DAIMON_GROK_TURN_USAGE_LEDGER } from "../../../runtime/daimon/contractManifest.js";
5
+ import { DAIMON_WAKE_FUSE_DIRECTORY } from "../../../runtime/daimon/config.js";
6
+ import { TRAINING_BROKER_TMPDIR, TRAINING_GRANT_HOME_ROOT, TRAINING_INFERENCE_DIRECTORY, TRAINING_PAIDEIA_ROOT, trainingSlotDescriptors, TRAINING_TURN_STORE_ROOT, TRAINING_RUN_REQUEST_STORE, TRAINING_SUPERVISOR_DIRECTORY, TRAINING_WORKER_ROOT } from "../broker/paths.js";
7
+ export const TRAINING_BROKER_ENTRYPOINT = "/opt/training/bin/train-broker";
8
+ /** Same output directory is the same resumable run; different outputs never share a counter. */
9
+ export const trainingRunRequestMount = (outputSource, args) => {
10
+ const index = args.indexOf("--out"), output = args[index + 1];
11
+ if (index < 0 || !output || args.lastIndexOf("--out") !== index)
12
+ throw Error("Brokered training requires one --out directory");
13
+ const identity = createHash("sha256").update(JSON.stringify([outputSource, output])).digest("hex");
14
+ return `type=volume,src=spawnfile-training-budget-${identity},dst=${TRAINING_RUN_REQUEST_STORE}`;
15
+ };
16
+ /**
17
+ * Disposable state of a broker-capable training container, all on tmpfs.
18
+ *
19
+ * The image root stays read-only and nothing here is a host bind, so a trial's
20
+ * worker home, workspace, turn store, wake-acceptance store and ledgers are
21
+ * on a filesystem that enforces unix ownership — which is what lets the slot
22
+ * supervisor's worker-uid canaries mean anything (P0 §5: a host bind under
23
+ * Docker Desktop or Colima silently ignores `chown`). The Grok realm is the
24
+ * credential mount. The run request counter has its own persistent named volume.
25
+ */
26
+ export const trainingBrokerTmpfsTargets = (slots = 4) => [
27
+ { path: "/tmp", size: "1g", mode: "1777" },
28
+ { path: "/var/tmp", size: "256m", mode: "1777" },
29
+ { path: "/work", size: "4g", mode: "0755" },
30
+ { path: "/home/training", size: "1g", mode: "0755" },
31
+ { path: TRAINING_PAIDEIA_ROOT, size: "64m", mode: "0755" },
32
+ ...trainingSlotDescriptors(slots).map(p => ({ path: p.root, size: "4g", mode: "0711" })),
33
+ { path: TRAINING_TURN_STORE_ROOT, size: "256m", mode: "0700" },
34
+ { path: TRAINING_GRANT_HOME_ROOT, size: "64m", mode: "0755" },
35
+ { path: TRAINING_INFERENCE_DIRECTORY, size: "64m", mode: "0755" },
36
+ { path: TRAINING_SUPERVISOR_DIRECTORY, size: "16m", mode: "0755" },
37
+ { path: TRAINING_WORKER_ROOT, size: "1g", mode: "0755" },
38
+ { path: "/etc/daimon-engine-broker", size: "16m", mode: "0755" },
39
+ { path: "/run/daimon-engine-broker", size: "64m", mode: "0755" },
40
+ { path: TRAINING_BROKER_TMPDIR, size: "64m", mode: "0755" },
41
+ { path: DAIMON_GROK_TURN_USAGE_LEDGER.directoryPath, size: "64m", mode: "0755" },
42
+ { path: DAIMON_WAKE_FUSE_DIRECTORY, size: "16m", mode: "0755" }
43
+ ];
44
+ /**
45
+ * `docker create` arguments for the broker-capable training container.
46
+ *
47
+ * It starts as root with the *production* Daimon capability set rather than
48
+ * the v1 path's `--cap-drop ALL` as the host user: the root entrypoint has to
49
+ * provision uid-owned directories (`CAP_CHOWN`), let the native launcher
50
+ * `setuid` to a worker (`CAP_SETUID`/`SETGID`), drop bounding sets
51
+ * (`CAP_SETPCAP`), supervise dropped children (`CAP_KILL`) and read the
52
+ * attested layout it does not own (`CAP_DAC_READ_SEARCH`). `CAP_FOWNER` is
53
+ * deliberately absent, which is why every provisioning chmod reclaims the
54
+ * inode first. Grok 1.0.34 runs every sandbox profile inside bubblewrap, so
55
+ * the container also needs the pinned default-plus-userns seccomp profile and
56
+ * AppArmor unconfined — the narrowest combination P0 found.
57
+ */
58
+ export const trainingBrokerSecurityArgs = async (seccompProfileDirectory) => [
59
+ "--user", "0:0",
60
+ ...DAIMON_DOCKER_RUNTIME_SECURITY_ARGS,
61
+ `--security-opt=seccomp=${await materializeDaimonGrokSeccompProfile(seccompProfileDirectory)}`,
62
+ "--security-opt=apparmor=unconfined"
63
+ ];
64
+ export const trainingBrokerMounts = (broker) => [
65
+ `type=volume,src=${broker.realmVolume},dst=${DAIMON_GROK_ENGINE_BROKER.credentialHomePath}`,
66
+ `type=bind,src=${broker.bootstrap},dst=/var/lib/spawnfile/daimon/grok-bootstrap-auth,readonly`,
67
+ `type=bind,src=${broker.declaration},dst=${TRAINING_PAIDEIA_ROOT}/training-broker.json,readonly`
68
+ ];
@@ -0,0 +1,5 @@
1
+ import { type TrainingContext } from "../contract.js";
2
+ /** Resolve host-side subject policy; the public v1 context carries no sandbox authority. */
3
+ export declare const assertTrainingSubjectIsolation: (config: {
4
+ subjectIsolation?: "codex-native-sandbox";
5
+ }, context: TrainingContext) => Promise<void>;
@@ -0,0 +1,15 @@
1
+ import { resolveDaimonEngine } from "../../../runtime/daimon/config.js";
2
+ import { resolveTrainingContextGraph } from "../context.js";
3
+ import { trainingContextSchema } from "../contract.js";
4
+ /** Resolve host-side subject policy; the public v1 context carries no sandbox authority. */
5
+ export const assertTrainingSubjectIsolation = async (config, context) => {
6
+ if (config.subjectIsolation !== "codex-native-sandbox")
7
+ return;
8
+ const parsed = trainingContextSchema.parse(context);
9
+ const { selected } = await resolveTrainingContextGraph(parsed.project.manifest, parsed.agent.id);
10
+ const agent = selected.value;
11
+ if (agent.runtime.name !== "daimon" || resolveDaimonEngine(agent) !== "codex" ||
12
+ agent.runtime.options.codex_policy !== "workspace-no-network" || agent.execution?.sandbox?.mode !== "workspace") {
13
+ throw Error("codex-native-sandbox subject isolation requires the selected training agent to use runtime daimon, engine codex, and strict codex_policy: workspace-no-network (execution.sandbox.mode: workspace)");
14
+ }
15
+ };
@@ -0,0 +1,15 @@
1
+ import type { CompilePlanNode, ResolvedAgentNode } from "../types.js";
2
+ import { type TrainingContext } from "./contract.js";
3
+ export interface CreateTrainingContextOptions {
4
+ agent?: string;
5
+ packageVersion: string;
6
+ }
7
+ /** Internal host-side resolution shared by context capture and subject admission. */
8
+ export declare const resolveTrainingContextGraph: (inputPath: string, selector?: string) => Promise<{
9
+ plan: import("../types.js").CompilePlan;
10
+ selected: CompilePlanNode & {
11
+ value: ResolvedAgentNode;
12
+ };
13
+ }>;
14
+ /** Resolves the complete project, preserving inherited selection and source provenance. */
15
+ export declare const createTrainingContext: (inputPath: string, options: CreateTrainingContextOptions) => Promise<TrainingContext>;