spawnfile 0.1.17 → 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 (489) hide show
  1. package/README.md +1 -1
  2. package/dist/auth/importers.js +21 -5
  3. package/dist/auth/index.d.ts +1 -0
  4. package/dist/auth/index.js +1 -0
  5. package/dist/auth/profileStore.js +4 -1
  6. package/dist/auth/trainingGrokWriteback.d.ts +4 -0
  7. package/dist/auth/trainingGrokWriteback.js +119 -0
  8. package/dist/auth/trainingGrokWritebackLock.d.ts +5 -0
  9. package/dist/auth/trainingGrokWritebackLock.js +56 -0
  10. package/dist/cli/authCommands.js +9 -5
  11. package/dist/cli/compileBuildCommands.js +4 -0
  12. package/dist/cli/devCommands.js +4 -2
  13. package/dist/cli/downCommand.d.ts +2 -0
  14. package/dist/cli/downCommand.js +3 -0
  15. package/dist/cli/envFileOption.d.ts +18 -0
  16. package/dist/cli/envFileOption.js +20 -0
  17. package/dist/cli/lifecycleCommands.d.ts +1 -1
  18. package/dist/cli/lifecycleCommands.js +3 -1
  19. package/dist/cli/lifecyclePlan.d.ts +1 -0
  20. package/dist/cli/lifecyclePlan.js +2 -0
  21. package/dist/cli/paideiaDelegation.d.ts +2 -1
  22. package/dist/cli/paideiaDelegation.js +5 -4
  23. package/dist/cli/recordCommands.d.ts +17 -0
  24. package/dist/cli/recordCommands.js +43 -0
  25. package/dist/cli/releaseCommand.d.ts +6 -0
  26. package/dist/cli/releaseCommand.js +91 -0
  27. package/dist/cli/runCli.d.ts +7 -1
  28. package/dist/cli/runCli.js +11 -6
  29. package/dist/cli/runPublishCommands.js +5 -3
  30. package/dist/cli/trainCommand.js +73 -20
  31. package/dist/cli/upCommand.js +5 -1
  32. package/dist/cli/volumeCommands.d.ts +8 -0
  33. package/dist/cli/volumeCommands.js +53 -0
  34. package/dist/compiler/agentNodeMerge.js +3 -2
  35. package/dist/compiler/buildCompilePlan.js +4 -0
  36. package/dist/compiler/buildCompilePlanAgent.js +3 -1
  37. package/dist/compiler/buildCompilePlanTraversal.js +2 -0
  38. package/dist/compiler/buildCompilePlanTraversalHelpers.d.ts +2 -2
  39. package/dist/compiler/buildCompilePlanTraversalHelpers.js +4 -3
  40. package/dist/compiler/buildProject.d.ts +10 -0
  41. package/dist/compiler/buildProject.js +14 -2
  42. package/dist/compiler/cleanCompileOutput.d.ts +2 -0
  43. package/dist/compiler/cleanCompileOutput.js +14 -0
  44. package/dist/compiler/compilePlanHelpers.js +2 -0
  45. package/dist/compiler/compileProject.d.ts +10 -0
  46. package/dist/compiler/compileProject.js +29 -3
  47. package/dist/compiler/containerArtifactSummaries.js +1 -0
  48. package/dist/compiler/containerArtifacts.d.ts +4 -4
  49. package/dist/compiler/containerArtifacts.js +18 -34
  50. package/dist/compiler/containerArtifactsPlans.js +7 -0
  51. package/dist/compiler/containerArtifactsTypes.d.ts +7 -0
  52. package/dist/compiler/containerDaimonBrokerRender.d.ts +3 -1
  53. package/dist/compiler/containerDaimonBrokerRender.js +6 -3
  54. package/dist/compiler/containerDaimonGrokTaskClock.d.ts +5 -0
  55. package/dist/compiler/containerDaimonGrokTaskClock.js +29 -0
  56. package/dist/compiler/containerDaimonGrokWorkerProvisioning.d.ts +1 -1
  57. package/dist/compiler/containerDaimonGrokWorkerProvisioning.js +38 -16
  58. package/dist/compiler/containerDaimonGrokWorkerRender.d.ts +33 -8
  59. package/dist/compiler/containerDaimonGrokWorkerRender.js +18 -5
  60. package/dist/compiler/containerDaimonOwnershipGuardRender.d.ts +14 -1
  61. package/dist/compiler/containerDaimonOwnershipGuardRender.js +15 -2
  62. package/dist/compiler/containerDaimonUidEntrypointRender.js +6 -12
  63. package/dist/compiler/containerTargetResources.d.ts +10 -0
  64. package/dist/compiler/containerTargetResources.js +21 -13
  65. package/dist/compiler/containerWorkspaceResourceRender.js +4 -1
  66. package/dist/compiler/index.d.ts +2 -0
  67. package/dist/compiler/index.js +2 -0
  68. package/dist/compiler/mcpPlaceholders.d.ts +11 -0
  69. package/dist/compiler/mcpPlaceholders.js +58 -0
  70. package/dist/compiler/mcpServerInheritance.d.ts +18 -0
  71. package/dist/compiler/mcpServerInheritance.js +43 -0
  72. package/dist/compiler/moltnetArtifactTypes.d.ts +1 -0
  73. package/dist/compiler/moltnetArtifacts.js +1 -0
  74. package/dist/compiler/preflightCompilePlan.d.ts +9 -0
  75. package/dist/compiler/preflightCompilePlan.js +38 -0
  76. package/dist/compiler/recordingAgentFacts.d.ts +4 -0
  77. package/dist/compiler/recordingAgentFacts.js +35 -0
  78. package/dist/compiler/recordingCapability.d.ts +4 -0
  79. package/dist/compiler/recordingCapability.js +22 -0
  80. package/dist/compiler/recordingReport.d.ts +4 -0
  81. package/dist/compiler/recordingReport.js +18 -0
  82. package/dist/compiler/runProject.d.ts +2 -1
  83. package/dist/compiler/runProject.js +2 -0
  84. package/dist/compiler/surfaces.d.ts +1 -2
  85. package/dist/compiler/surfaces.js +0 -1
  86. package/dist/compiler/syncProjectAuth.js +2 -1
  87. package/dist/compiler/training/broker/clockProbe.d.ts +6 -0
  88. package/dist/compiler/training/broker/clockProbe.js +27 -0
  89. package/dist/compiler/training/broker/declaration.d.ts +4 -2
  90. package/dist/compiler/training/broker/declaration.js +4 -2
  91. package/dist/compiler/training/broker/entrypoint.js +33 -18
  92. package/dist/compiler/training/broker/evaluatorSecrets.d.ts +2 -0
  93. package/dist/compiler/training/broker/evaluatorSecrets.js +60 -0
  94. package/dist/compiler/training/broker/index.d.ts +3 -2
  95. package/dist/compiler/training/broker/index.js +3 -2
  96. package/dist/compiler/training/broker/main.js +1 -1
  97. package/dist/compiler/training/broker/paths.d.ts +96 -56
  98. package/dist/compiler/training/broker/paths.js +97 -89
  99. package/dist/compiler/training/broker/processes.d.ts +9 -0
  100. package/dist/compiler/training/broker/processes.js +4 -1
  101. package/dist/compiler/training/broker/projection.d.ts +3 -2
  102. package/dist/compiler/training/broker/projection.js +21 -9
  103. package/dist/compiler/training/broker/provisioning.d.ts +6 -15
  104. package/dist/compiler/training/broker/provisioning.js +71 -53
  105. package/dist/compiler/training/broker/registration.d.ts +3 -1
  106. package/dist/compiler/training/broker/registration.js +29 -21
  107. package/dist/compiler/training/broker/reset.d.ts +9 -0
  108. package/dist/compiler/training/broker/reset.js +71 -0
  109. package/dist/compiler/training/broker/runtime.d.ts +10 -13
  110. package/dist/compiler/training/broker/runtime.js +69 -115
  111. package/dist/compiler/training/broker/supervisor.d.ts +10 -11
  112. package/dist/compiler/training/broker/supervisor.js +22 -23
  113. package/dist/compiler/training/broker/taskClock.d.ts +5 -0
  114. package/dist/compiler/training/broker/taskClock.js +41 -0
  115. package/dist/compiler/training/compiledAgent.d.ts +21 -0
  116. package/dist/compiler/training/compiledAgent.js +62 -0
  117. package/dist/compiler/training/container/contract.d.ts +23 -0
  118. package/dist/compiler/training/container/contract.js +23 -5
  119. package/dist/compiler/training/container/evaluators.d.ts +48 -0
  120. package/dist/compiler/training/container/evaluators.js +50 -0
  121. package/dist/compiler/training/container/grokWriteback.d.ts +8 -0
  122. package/dist/compiler/training/container/grokWriteback.js +26 -0
  123. package/dist/compiler/training/container/index.d.ts +2 -1
  124. package/dist/compiler/training/container/index.js +2 -1
  125. package/dist/compiler/training/container/launch.d.ts +3 -0
  126. package/dist/compiler/training/container/launch.js +119 -28
  127. package/dist/compiler/training/container/nativeSlots.d.ts +14 -0
  128. package/dist/compiler/training/container/nativeSlots.js +13 -0
  129. package/dist/compiler/training/container/outputCopy.d.ts +2 -0
  130. package/dist/compiler/training/container/outputCopy.js +72 -0
  131. package/dist/compiler/training/container/outputVolume.d.ts +27 -0
  132. package/dist/compiler/training/container/outputVolume.js +161 -0
  133. package/dist/compiler/training/container/prepare.d.ts +3 -1
  134. package/dist/compiler/training/container/prepare.js +57 -12
  135. package/dist/compiler/training/container/security.d.ts +5 -3
  136. package/dist/compiler/training/container/security.js +15 -5
  137. package/dist/compiler/training/container/subjectIsolation.d.ts +5 -0
  138. package/dist/compiler/training/container/subjectIsolation.js +15 -0
  139. package/dist/compiler/training/context.d.ts +8 -0
  140. package/dist/compiler/training/context.js +12 -12
  141. package/dist/compiler/training/contract.d.ts +2 -0
  142. package/dist/compiler/training/contract.js +2 -0
  143. package/dist/compiler/training/execution.d.ts +417 -0
  144. package/dist/compiler/training/execution.js +160 -0
  145. package/dist/compiler/training/index.d.ts +8 -0
  146. package/dist/compiler/training/index.js +7 -0
  147. package/dist/compiler/training/moments.d.ts +80 -0
  148. package/dist/compiler/training/moments.js +118 -0
  149. package/dist/compiler/training/output.d.ts +2 -0
  150. package/dist/compiler/training/output.js +20 -0
  151. package/dist/compiler/training/plan/contract.d.ts +287 -0
  152. package/dist/compiler/training/plan/contract.js +49 -0
  153. package/dist/compiler/training/plan/index.d.ts +5 -0
  154. package/dist/compiler/training/plan/index.js +4 -0
  155. package/dist/compiler/training/plan/load.d.ts +9 -0
  156. package/dist/compiler/training/plan/load.js +153 -0
  157. package/dist/compiler/training/plan/references.d.ts +19 -0
  158. package/dist/compiler/training/plan/references.js +57 -0
  159. package/dist/compiler/training/plan/resolve.d.ts +4 -0
  160. package/dist/compiler/training/plan/resolve.js +73 -0
  161. package/dist/compiler/training/plan/targets.d.ts +11 -0
  162. package/dist/compiler/training/plan/targets.js +71 -0
  163. package/dist/compiler/training/plan/types.d.ts +36 -0
  164. package/dist/compiler/training/plan/types.js +1 -0
  165. package/dist/compiler/training/preparation/assets/Dockerfile +13 -2
  166. package/dist/compiler/training/preparation/assets/package-lock.json +2 -2
  167. package/dist/compiler/training/preparation/broker.d.ts +3 -3
  168. package/dist/compiler/training/preparation/broker.js +6 -4
  169. package/dist/compiler/training/preparation/contract.d.ts +27 -2
  170. package/dist/compiler/training/preparation/contract.js +23 -4
  171. package/dist/compiler/training/preparation/files.d.ts +5 -1
  172. package/dist/compiler/training/preparation/files.js +76 -15
  173. package/dist/compiler/training/preparation/image.js +9 -4
  174. package/dist/compiler/training/preparation/inputs.d.ts +1 -0
  175. package/dist/compiler/training/preparation/inputs.js +18 -10
  176. package/dist/compiler/training/preparation/prepare.d.ts +5 -0
  177. package/dist/compiler/training/preparation/prepare.js +66 -29
  178. package/dist/compiler/training/preparation/scratch.d.ts +6 -17
  179. package/dist/compiler/training/preparation/scratch.js +89 -23
  180. package/dist/compiler/training/repair/contract.d.ts +338 -4
  181. package/dist/compiler/training/repair/contract.js +2 -0
  182. package/dist/compiler/training/repair/index.d.ts +1 -1
  183. package/dist/compiler/training/repair/index.js +1 -1
  184. package/dist/compiler/training/repair/prepare.d.ts +155 -3
  185. package/dist/compiler/training/repair/prepare.js +6 -2
  186. package/dist/compiler/training/repair/witness.d.ts +152 -3
  187. package/dist/compiler/training/repair/witness.js +8 -2
  188. package/dist/compiler/training/resolution.d.ts +25 -0
  189. package/dist/compiler/training/resolution.js +69 -0
  190. package/dist/compiler/training/rewind/contract.d.ts +321 -0
  191. package/dist/compiler/training/rewind/contract.js +39 -0
  192. package/dist/compiler/training/rewind/deployedResource.d.ts +22 -0
  193. package/dist/compiler/training/rewind/deployedResource.js +19 -0
  194. package/dist/compiler/training/rewind/feed.d.ts +12 -0
  195. package/dist/compiler/training/rewind/feed.js +182 -0
  196. package/dist/compiler/training/rewind/feedContent.d.ts +6 -0
  197. package/dist/compiler/training/rewind/feedContent.js +38 -0
  198. package/dist/compiler/training/rewind/git.d.ts +8 -0
  199. package/dist/compiler/training/rewind/git.js +159 -0
  200. package/dist/compiler/training/rewind/gitArchive.d.ts +2 -0
  201. package/dist/compiler/training/rewind/gitArchive.js +7 -0
  202. package/dist/compiler/training/rewind/gitHistory.d.ts +3 -0
  203. package/dist/compiler/training/rewind/gitHistory.js +55 -0
  204. package/dist/compiler/training/rewind/gitProcess.d.ts +19 -0
  205. package/dist/compiler/training/rewind/gitProcess.js +81 -0
  206. package/dist/compiler/training/rewind/gitTree.d.ts +14 -0
  207. package/dist/compiler/training/rewind/gitTree.js +90 -0
  208. package/dist/compiler/training/rewind/history.d.ts +28 -0
  209. package/dist/compiler/training/rewind/history.js +239 -0
  210. package/dist/compiler/training/rewind/index.d.ts +18 -0
  211. package/dist/compiler/training/rewind/index.js +15 -0
  212. package/dist/compiler/training/rewind/inputs.d.ts +9 -0
  213. package/dist/compiler/training/rewind/inputs.js +67 -0
  214. package/dist/compiler/training/rewind/instant.d.ts +4 -0
  215. package/dist/compiler/training/rewind/instant.js +24 -0
  216. package/dist/compiler/training/rewind/leakCheck.d.ts +10 -0
  217. package/dist/compiler/training/rewind/leakCheck.js +56 -0
  218. package/dist/compiler/training/rewind/leakFeed.d.ts +5 -0
  219. package/dist/compiler/training/rewind/leakFeed.js +25 -0
  220. package/dist/compiler/training/rewind/leakFiles.d.ts +10 -0
  221. package/dist/compiler/training/rewind/leakFiles.js +106 -0
  222. package/dist/compiler/training/rewind/leakGit.d.ts +3 -0
  223. package/dist/compiler/training/rewind/leakGit.js +78 -0
  224. package/dist/compiler/training/rewind/leakGitPayload.d.ts +4 -0
  225. package/dist/compiler/training/rewind/leakGitPayload.js +57 -0
  226. package/dist/compiler/training/rewind/leakInputs.d.ts +7 -0
  227. package/dist/compiler/training/rewind/leakInputs.js +135 -0
  228. package/dist/compiler/training/rewind/leakLayout.d.ts +2 -0
  229. package/dist/compiler/training/rewind/leakLayout.js +17 -0
  230. package/dist/compiler/training/rewind/leakProvenance.d.ts +3 -0
  231. package/dist/compiler/training/rewind/leakProvenance.js +88 -0
  232. package/dist/compiler/training/rewind/materialize.d.ts +136 -0
  233. package/dist/compiler/training/rewind/materialize.js +212 -0
  234. package/dist/compiler/training/rewind/memory.d.ts +10 -0
  235. package/dist/compiler/training/rewind/memory.js +84 -0
  236. package/dist/compiler/training/rewind/memorySchemas.d.ts +87 -0
  237. package/dist/compiler/training/rewind/memorySchemas.js +50 -0
  238. package/dist/compiler/training/rewind/moltnet.d.ts +2 -0
  239. package/dist/compiler/training/rewind/moltnet.js +54 -0
  240. package/dist/compiler/training/rewind/moltnetJson.d.ts +13 -0
  241. package/dist/compiler/training/rewind/moltnetJson.js +180 -0
  242. package/dist/compiler/training/rewind/moltnetSchemas.d.ts +1226 -0
  243. package/dist/compiler/training/rewind/moltnetSchemas.js +75 -0
  244. package/dist/compiler/training/rewind/moltnetSqlite.d.ts +31 -0
  245. package/dist/compiler/training/rewind/moltnetSqlite.js +192 -0
  246. package/dist/compiler/training/rewind/moltnetSqliteData.d.ts +10 -0
  247. package/dist/compiler/training/rewind/moltnetSqliteData.js +113 -0
  248. package/dist/compiler/training/rewind/recordInput.d.ts +40 -0
  249. package/dist/compiler/training/rewind/recordInput.js +49 -0
  250. package/dist/compiler/training/rewind/recordedBundle.d.ts +4 -0
  251. package/dist/compiler/training/rewind/recordedBundle.js +58 -0
  252. package/dist/compiler/training/rewind/recordedCommit.d.ts +2 -0
  253. package/dist/compiler/training/rewind/recordedCommit.js +10 -0
  254. package/dist/compiler/training/rewind/select.d.ts +18 -0
  255. package/dist/compiler/training/rewind/select.js +64 -0
  256. package/dist/compiler/training/rewind/snapshotManifest.d.ts +42 -0
  257. package/dist/compiler/training/rewind/snapshotManifest.js +134 -0
  258. package/dist/compiler/training/rewind/taskClock.d.ts +12 -0
  259. package/dist/compiler/training/rewind/taskClock.js +40 -0
  260. package/dist/compiler/training/rewind/timestamps.d.ts +4 -0
  261. package/dist/compiler/training/rewind/timestamps.js +26 -0
  262. package/dist/compiler/training/rewind/types.d.ts +43 -0
  263. package/dist/compiler/training/rewind/types.js +1 -0
  264. package/dist/compiler/training/rewind/volumes.d.ts +12 -0
  265. package/dist/compiler/training/rewind/volumes.js +58 -0
  266. package/dist/compiler/training/selection.d.ts +7 -0
  267. package/dist/compiler/training/selection.js +15 -0
  268. package/dist/compiler/types.d.ts +6 -3
  269. package/dist/compiler/upProject.d.ts +1 -0
  270. package/dist/compiler/upProject.js +21 -5
  271. package/dist/compiler/workspaceBundleArtifacts.d.ts +16 -1
  272. package/dist/compiler/workspaceBundleArtifacts.js +69 -20
  273. package/dist/compiler/workspaceBundleCache.d.ts +23 -0
  274. package/dist/compiler/workspaceBundleCache.js +79 -0
  275. package/dist/compiler/workspaceBundleDependencies.d.ts +21 -0
  276. package/dist/compiler/workspaceBundleDependencies.js +122 -0
  277. package/dist/compiler/workspaceBundleFiles.d.ts +51 -0
  278. package/dist/compiler/workspaceBundleFiles.js +251 -0
  279. package/dist/compiler/workspaceBundleGenerated.d.ts +25 -0
  280. package/dist/compiler/workspaceBundleGenerated.js +103 -0
  281. package/dist/compiler/workspaceBundleGit.d.ts +64 -0
  282. package/dist/compiler/workspaceBundleGit.js +154 -0
  283. package/dist/compiler/workspaceBundleKey.d.ts +34 -0
  284. package/dist/compiler/workspaceBundleKey.js +17 -0
  285. package/dist/compiler/workspaceBundleResolve.d.ts +56 -0
  286. package/dist/compiler/workspaceBundleResolve.js +144 -0
  287. package/dist/compiler/workspaceBundleRun.d.ts +41 -0
  288. package/dist/compiler/workspaceBundleRun.js +79 -0
  289. package/dist/compiler/workspaceBundleTar.d.ts +47 -0
  290. package/dist/compiler/workspaceBundleTar.js +140 -0
  291. package/dist/compiler/workspaceBundleTree.d.ts +15 -0
  292. package/dist/compiler/workspaceBundleTree.js +58 -0
  293. package/dist/compiler/workspaceGitFetch.d.ts +41 -0
  294. package/dist/compiler/workspaceGitFetch.js +155 -0
  295. package/dist/compiler/workspaceGitPins.d.ts +33 -0
  296. package/dist/compiler/workspaceGitPins.js +127 -0
  297. package/dist/compiler/workspaceResources.d.ts +5 -1
  298. package/dist/compiler/workspaceResources.js +32 -5
  299. package/dist/deployment/activation.d.ts +3 -0
  300. package/dist/deployment/activation.js +12 -0
  301. package/dist/deployment/canaryCutover.d.ts +1 -1
  302. package/dist/deployment/candidateRecording.d.ts +8 -0
  303. package/dist/deployment/candidateRecording.js +22 -0
  304. package/dist/deployment/dockerManager.d.ts +5 -3
  305. package/dist/deployment/dockerManager.js +12 -2
  306. package/dist/deployment/downDeployment.d.ts +2 -0
  307. package/dist/deployment/downDeployment.js +6 -2
  308. package/dist/deployment/homeStore.d.ts +9 -1
  309. package/dist/deployment/homeStore.js +16 -53
  310. package/dist/deployment/index.d.ts +6 -0
  311. package/dist/deployment/index.js +6 -0
  312. package/dist/deployment/pidLock.d.ts +25 -0
  313. package/dist/deployment/pidLock.js +81 -0
  314. package/dist/deployment/record.d.ts +85 -1
  315. package/dist/deployment/record.js +11 -5
  316. package/dist/deployment/recordPublication.d.ts +15 -0
  317. package/dist/deployment/recordPublication.js +76 -0
  318. package/dist/deployment/recordedMemoryRetention.d.ts +18 -0
  319. package/dist/deployment/recordedMemoryRetention.js +27 -0
  320. package/dist/deployment/resourceLog.d.ts +140 -0
  321. package/dist/deployment/resourceLog.js +78 -0
  322. package/dist/distribution/buildDistributionReport.d.ts +3 -0
  323. package/dist/distribution/buildDistributionReport.js +5 -0
  324. package/dist/distribution/consumeImage.d.ts +3 -0
  325. package/dist/distribution/consumeImage.js +23 -31
  326. package/dist/distribution/consumeImageLifecycle.d.ts +4 -1
  327. package/dist/distribution/consumeImageLifecycle.js +14 -3
  328. package/dist/distribution/consumeImageSupport.d.ts +7 -0
  329. package/dist/distribution/consumeImageSupport.js +25 -0
  330. package/dist/distribution/distributionReportSchema.d.ts +47 -0
  331. package/dist/distribution/distributionReportSchema.js +20 -0
  332. package/dist/distribution/renderImageInterface.js +1 -1
  333. package/dist/distribution/types.d.ts +15 -0
  334. package/dist/filesystem/durableWrite.d.ts +10 -0
  335. package/dist/filesystem/durableWrite.js +87 -0
  336. package/dist/filesystem/index.d.ts +2 -0
  337. package/dist/filesystem/index.js +2 -0
  338. package/dist/filesystem/retainedJsonl.d.ts +23 -0
  339. package/dist/filesystem/retainedJsonl.js +123 -0
  340. package/dist/manifest/commandSchemas.d.ts +5 -0
  341. package/dist/manifest/commandSchemas.js +5 -0
  342. package/dist/manifest/executionSchemas.d.ts +20 -0
  343. package/dist/manifest/executionSchemas.js +13 -3
  344. package/dist/manifest/index.d.ts +2 -0
  345. package/dist/manifest/index.js +2 -0
  346. package/dist/manifest/loadManifest.js +3 -26
  347. package/dist/manifest/mcpSchemas.d.ts +61 -0
  348. package/dist/manifest/mcpSchemas.js +57 -11
  349. package/dist/manifest/memorySchemas.d.ts +1 -1
  350. package/dist/manifest/memorySchemas.js +1 -1
  351. package/dist/manifest/parseManifest.d.ts +7 -0
  352. package/dist/manifest/parseManifest.js +65 -0
  353. package/dist/manifest/renderSpawnfile.js +4 -1
  354. package/dist/manifest/renderSpawnfileWorkspace.js +6 -2
  355. package/dist/manifest/schemas.d.ts +1206 -132
  356. package/dist/manifest/schemas.js +14 -4
  357. package/dist/manifest/teamNetworkSchemas.d.ts +1 -1
  358. package/dist/manifest/trainingDataSchemas.d.ts +357 -0
  359. package/dist/manifest/trainingDataSchemas.js +31 -0
  360. package/dist/manifest/trainingSchemas.d.ts +49 -0
  361. package/dist/manifest/trainingSchemas.js +44 -0
  362. package/dist/manifest/volumeFeedSchemas.d.ts +52 -0
  363. package/dist/manifest/volumeFeedSchemas.js +104 -0
  364. package/dist/manifest/workspaceSchemas.d.ts +182 -5
  365. package/dist/manifest/workspaceSchemas.js +111 -7
  366. package/dist/recording/compose.d.ts +3 -0
  367. package/dist/recording/compose.js +93 -0
  368. package/dist/recording/deployment.d.ts +15 -0
  369. package/dist/recording/deployment.js +38 -0
  370. package/dist/recording/history.d.ts +16 -0
  371. package/dist/recording/history.js +47 -0
  372. package/dist/recording/index.d.ts +9 -0
  373. package/dist/recording/index.js +9 -0
  374. package/dist/recording/moment.d.ts +61 -0
  375. package/dist/recording/moment.js +36 -0
  376. package/dist/recording/parse.d.ts +15 -0
  377. package/dist/recording/parse.js +74 -0
  378. package/dist/recording/read.d.ts +8 -0
  379. package/dist/recording/read.js +61 -0
  380. package/dist/recording/store.d.ts +10 -0
  381. package/dist/recording/store.js +94 -0
  382. package/dist/recording/sync.d.ts +24 -0
  383. package/dist/recording/sync.js +126 -0
  384. package/dist/recording/types.d.ts +45 -0
  385. package/dist/recording/types.js +2 -0
  386. package/dist/release/drainControl.d.ts +54 -0
  387. package/dist/release/drainControl.js +137 -0
  388. package/dist/release/drainPhase.d.ts +37 -0
  389. package/dist/release/drainPhase.js +161 -0
  390. package/dist/release/index.d.ts +11 -0
  391. package/dist/release/index.js +11 -0
  392. package/dist/release/ledger.d.ts +75 -0
  393. package/dist/release/ledger.js +111 -0
  394. package/dist/release/notify.d.ts +58 -0
  395. package/dist/release/notify.js +126 -0
  396. package/dist/release/pending.d.ts +35 -0
  397. package/dist/release/pending.js +60 -0
  398. package/dist/release/postDeploy.d.ts +32 -0
  399. package/dist/release/postDeploy.js +62 -0
  400. package/dist/release/releaseDefaults.d.ts +9 -0
  401. package/dist/release/releaseDefaults.js +115 -0
  402. package/dist/release/releaseDocker.d.ts +38 -0
  403. package/dist/release/releaseDocker.js +94 -0
  404. package/dist/release/releaseTypes.d.ts +94 -0
  405. package/dist/release/releaseTypes.js +1 -0
  406. package/dist/release/runRelease.d.ts +9 -0
  407. package/dist/release/runRelease.js +218 -0
  408. package/dist/release/swap.d.ts +23 -0
  409. package/dist/release/swap.js +55 -0
  410. package/dist/release/types.d.ts +50 -0
  411. package/dist/release/types.js +29 -0
  412. package/dist/report/index.d.ts +1 -0
  413. package/dist/report/index.js +1 -0
  414. package/dist/report/recording.d.ts +57 -0
  415. package/dist/report/recording.js +26 -0
  416. package/dist/report/types.d.ts +58 -0
  417. package/dist/runtime/container.js +8 -13
  418. package/dist/runtime/daimon/adapter.js +15 -4
  419. package/dist/runtime/daimon/config.d.ts +4 -0
  420. package/dist/runtime/daimon/config.js +53 -4
  421. package/dist/runtime/daimon/contract-manifest.json +1 -0
  422. package/dist/runtime/daimon/contract-manifest.sha256 +1 -0
  423. package/dist/runtime/daimon/contractManifest.d.ts +59 -8
  424. package/dist/runtime/daimon/contractManifest.js +26 -10
  425. package/dist/runtime/daimon/grokTurnLimits.d.ts +25 -0
  426. package/dist/runtime/daimon/grokTurnLimits.js +51 -0
  427. package/dist/runtime/daimon/grokWorkerConfigBytes.d.ts +17 -0
  428. package/dist/runtime/daimon/grokWorkerConfigBytes.js +17 -0
  429. package/dist/runtime/daimon/grokWorkerContract.d.ts +5 -0
  430. package/dist/runtime/daimon/grokWorkerContract.js +13 -1
  431. package/dist/runtime/daimon/recording.d.ts +19 -0
  432. package/dist/runtime/daimon/recording.js +50 -0
  433. package/dist/runtime/daimon/scheduleAuthority.d.ts +8 -0
  434. package/dist/runtime/daimon/scheduleAuthority.js +19 -5
  435. package/dist/runtime/daimon/wakeMoments.d.ts +15 -0
  436. package/dist/runtime/daimon/wakeMoments.js +17 -0
  437. package/dist/runtime/daimonInstall.d.ts +3 -0
  438. package/dist/runtime/daimonInstall.js +25 -0
  439. package/dist/runtime/index.d.ts +1 -0
  440. package/dist/runtime/index.js +1 -0
  441. package/dist/runtime/install.d.ts +2 -0
  442. package/dist/runtime/install.js +1 -0
  443. package/dist/runtime/openclaw/adapter.js +3 -0
  444. package/dist/runtime/pi/adapter.js +3 -0
  445. package/dist/runtime/pi/containerTargets.js +6 -0
  446. package/dist/runtime/picoclaw/adapter.js +3 -0
  447. package/dist/runtime/registry.d.ts +3 -0
  448. package/dist/runtime/registry.js +13 -1
  449. package/dist/runtime/types.d.ts +15 -0
  450. package/dist/runtime/usageLedgerRead.d.ts +6 -0
  451. package/dist/runtime/usageLedgerRead.js +3 -3
  452. package/dist/shared/index.d.ts +1 -0
  453. package/dist/shared/index.js +1 -0
  454. package/dist/shared/recording.d.ts +8 -0
  455. package/dist/shared/recording.js +25 -0
  456. package/dist/target/dockerCommandExecutorCore.js +1 -1
  457. package/dist/target/dockerTargetBinding.js +2 -1
  458. package/dist/volume/feedLand.d.ts +31 -0
  459. package/dist/volume/feedLand.js +174 -0
  460. package/dist/volume/feedLandings.d.ts +45 -0
  461. package/dist/volume/feedLandings.js +111 -0
  462. package/dist/volume/feedLayout.d.ts +61 -0
  463. package/dist/volume/feedLayout.js +234 -0
  464. package/dist/volume/feedLock.d.ts +7 -0
  465. package/dist/volume/feedLock.js +131 -0
  466. package/dist/volume/feedManifest.d.ts +27 -0
  467. package/dist/volume/feedManifest.js +123 -0
  468. package/dist/volume/feedPrepare.d.ts +16 -0
  469. package/dist/volume/feedPrepare.js +228 -0
  470. package/dist/volume/feedProject.d.ts +39 -0
  471. package/dist/volume/feedProject.js +92 -0
  472. package/dist/volume/feedRecord.d.ts +55 -0
  473. package/dist/volume/feedRecord.js +148 -0
  474. package/dist/volume/feedRef.d.ts +43 -0
  475. package/dist/volume/feedRef.js +117 -0
  476. package/dist/volume/feedRefresh.d.ts +15 -0
  477. package/dist/volume/feedRefresh.js +187 -0
  478. package/dist/volume/feedSource.d.ts +66 -0
  479. package/dist/volume/feedSource.js +104 -0
  480. package/dist/volume/feedTarget.d.ts +70 -0
  481. package/dist/volume/feedTarget.js +9 -0
  482. package/dist/volume/feedTestKit.d.ts +11 -0
  483. package/dist/volume/feedTestKit.js +45 -0
  484. package/dist/volume/feedVerify.d.ts +18 -0
  485. package/dist/volume/feedVerify.js +104 -0
  486. package/dist/volume/index.d.ts +13 -0
  487. package/dist/volume/index.js +13 -0
  488. package/package.json +3 -3
  489. package/runtimes.yaml +8 -6
@@ -0,0 +1,417 @@
1
+ import { z } from "zod";
2
+ import { type TrainingPlan } from "./plan/contract.js";
3
+ import type { LoadedTrainingProject } from "./plan/types.js";
4
+ export declare const TRAINING_EXECUTION_FILE = "/run/paideia/execution.json";
5
+ export { TRAINING_EXECUTION_CAPABILITY_LABEL, TRAINING_EXECUTION_VERSION } from "./contract.js";
6
+ export declare const trainingExecutionSchema: z.ZodObject<{
7
+ version: z.ZodLiteral<"spawnfile.training-execution.v1">;
8
+ authoring: z.ZodObject<{
9
+ version: z.ZodLiteral<"spawnfile.training-plan.v1">;
10
+ producer: z.ZodObject<{
11
+ package: z.ZodLiteral<"spawnfile">;
12
+ version: z.ZodString;
13
+ }, z.core.$strict>;
14
+ project: z.ZodObject<{
15
+ root: z.ZodString;
16
+ manifest: z.ZodString;
17
+ }, z.core.$strict>;
18
+ agent: z.ZodObject<{
19
+ id: z.ZodString;
20
+ name: z.ZodString;
21
+ }, z.core.$strict>;
22
+ deadlines: z.ZodOptional<z.ZodObject<{
23
+ experiment_ms: z.ZodNumber;
24
+ trial_ms: z.ZodOptional<z.ZodNumber>;
25
+ }, z.core.$strict>>;
26
+ preparation: z.ZodOptional<z.ZodObject<{
27
+ hook: z.ZodString;
28
+ history: z.ZodOptional<z.ZodString>;
29
+ }, z.core.$strict>>;
30
+ record: z.ZodNullable<z.ZodObject<{
31
+ keep: z.ZodNullable<z.ZodString>;
32
+ volumes: z.ZodArray<z.ZodObject<{
33
+ id: z.ZodString;
34
+ declaredBy: z.ZodString;
35
+ }, z.core.$strict>>;
36
+ }, z.core.$strict>>;
37
+ optimizer: z.ZodNullable<z.ZodObject<{
38
+ method: z.ZodString;
39
+ model: z.ZodString;
40
+ variants: z.ZodNumber;
41
+ keep: z.ZodNumber;
42
+ budget: z.ZodObject<{
43
+ rounds: z.ZodNumber;
44
+ }, z.core.$strict>;
45
+ }, z.core.$strict>>;
46
+ graders: z.ZodArray<z.ZodObject<{
47
+ sourcePath: z.ZodString;
48
+ path: z.ZodString;
49
+ name: z.ZodString;
50
+ declaredBy: z.ZodString;
51
+ }, z.core.$strict>>;
52
+ targets: z.ZodArray<z.ZodObject<{
53
+ declaredBy: z.ZodString;
54
+ grader: z.ZodString;
55
+ files: z.ZodArray<z.ZodObject<{
56
+ sourcePath: z.ZodString;
57
+ path: z.ZodString;
58
+ consumers: z.ZodArray<z.ZodString>;
59
+ }, z.core.$strict>>;
60
+ datasets: z.ZodObject<{
61
+ train: z.ZodObject<{
62
+ sourcePath: z.ZodString;
63
+ path: z.ZodString;
64
+ examples: z.ZodArray<z.ZodObject<{
65
+ id: z.ZodString;
66
+ at: z.ZodISODateTime;
67
+ wake: z.ZodObject<{
68
+ surface: z.ZodLiteral<"moltnet">;
69
+ room: z.ZodString;
70
+ from: z.ZodString;
71
+ text: z.ZodString;
72
+ }, z.core.$strict>;
73
+ overrides: z.ZodArray<z.ZodObject<{
74
+ id: z.ZodString;
75
+ declaredBy: z.ZodString;
76
+ section: z.ZodEnum<{
77
+ memory: "memory";
78
+ resources: "resources";
79
+ networks: "networks";
80
+ }>;
81
+ }, z.core.$strict>>;
82
+ }, z.core.$strict>>;
83
+ }, z.core.$strict>;
84
+ validation: z.ZodNullable<z.ZodObject<{
85
+ sourcePath: z.ZodString;
86
+ path: z.ZodString;
87
+ examples: z.ZodArray<z.ZodObject<{
88
+ id: z.ZodString;
89
+ at: z.ZodISODateTime;
90
+ wake: z.ZodObject<{
91
+ surface: z.ZodLiteral<"moltnet">;
92
+ room: z.ZodString;
93
+ from: z.ZodString;
94
+ text: z.ZodString;
95
+ }, z.core.$strict>;
96
+ overrides: z.ZodArray<z.ZodObject<{
97
+ id: z.ZodString;
98
+ declaredBy: z.ZodString;
99
+ section: z.ZodEnum<{
100
+ memory: "memory";
101
+ resources: "resources";
102
+ networks: "networks";
103
+ }>;
104
+ }, z.core.$strict>>;
105
+ }, z.core.$strict>>;
106
+ }, z.core.$strict>>;
107
+ test: z.ZodObject<{
108
+ sourcePath: z.ZodString;
109
+ path: z.ZodString;
110
+ examples: z.ZodArray<z.ZodObject<{
111
+ id: z.ZodString;
112
+ at: z.ZodISODateTime;
113
+ wake: z.ZodObject<{
114
+ surface: z.ZodLiteral<"moltnet">;
115
+ room: z.ZodString;
116
+ from: z.ZodString;
117
+ text: z.ZodString;
118
+ }, z.core.$strict>;
119
+ overrides: z.ZodArray<z.ZodObject<{
120
+ id: z.ZodString;
121
+ declaredBy: z.ZodString;
122
+ section: z.ZodEnum<{
123
+ memory: "memory";
124
+ resources: "resources";
125
+ networks: "networks";
126
+ }>;
127
+ }, z.core.$strict>>;
128
+ }, z.core.$strict>>;
129
+ }, z.core.$strict>;
130
+ }, z.core.$strict>;
131
+ }, z.core.$strict>>;
132
+ }, z.core.$strict>;
133
+ datasetPins: z.ZodArray<z.ZodObject<{
134
+ sourcePath: z.ZodString;
135
+ sha256: z.ZodString;
136
+ }, z.core.$strict>>;
137
+ optimizer: z.ZodObject<{
138
+ method: z.ZodString;
139
+ model: z.ZodString;
140
+ variants: z.ZodNumber;
141
+ keep: z.ZodNumber;
142
+ budget: z.ZodObject<{
143
+ rounds: z.ZodNumber;
144
+ }, z.core.$strict>;
145
+ }, z.core.$strict>;
146
+ args: z.ZodArray<z.ZodString>;
147
+ output: z.ZodString;
148
+ }, z.core.$strict>;
149
+ export type TrainingExecution = z.infer<typeof trainingExecutionSchema>;
150
+ export interface LowerTrainingExecutionOptions {
151
+ project: LoadedTrainingProject;
152
+ plan: TrainingPlan;
153
+ args: readonly string[];
154
+ trainingConfig?: string;
155
+ trainingImage?: string;
156
+ }
157
+ /** Resolve local declaration and authoring defaults; no writes, auth reads or execution. */
158
+ export declare const lowerTrainingExecution: (options: LowerTrainingExecutionOptions) => Promise<{
159
+ execution: {
160
+ version: "spawnfile.training-execution.v1";
161
+ authoring: {
162
+ version: "spawnfile.training-plan.v1";
163
+ producer: {
164
+ package: "spawnfile";
165
+ version: string;
166
+ };
167
+ project: {
168
+ root: string;
169
+ manifest: string;
170
+ };
171
+ agent: {
172
+ id: string;
173
+ name: string;
174
+ };
175
+ record: {
176
+ keep: string | null;
177
+ volumes: {
178
+ id: string;
179
+ declaredBy: string;
180
+ }[];
181
+ } | null;
182
+ optimizer: {
183
+ method: string;
184
+ model: string;
185
+ variants: number;
186
+ keep: number;
187
+ budget: {
188
+ rounds: number;
189
+ };
190
+ } | null;
191
+ graders: {
192
+ sourcePath: string;
193
+ path: string;
194
+ name: string;
195
+ declaredBy: string;
196
+ }[];
197
+ targets: {
198
+ declaredBy: string;
199
+ grader: string;
200
+ files: {
201
+ sourcePath: string;
202
+ path: string;
203
+ consumers: string[];
204
+ }[];
205
+ datasets: {
206
+ train: {
207
+ sourcePath: string;
208
+ path: string;
209
+ examples: {
210
+ id: string;
211
+ at: string;
212
+ wake: {
213
+ surface: "moltnet";
214
+ room: string;
215
+ from: string;
216
+ text: string;
217
+ };
218
+ overrides: {
219
+ id: string;
220
+ declaredBy: string;
221
+ section: "memory" | "resources" | "networks";
222
+ }[];
223
+ }[];
224
+ };
225
+ validation: {
226
+ sourcePath: string;
227
+ path: string;
228
+ examples: {
229
+ id: string;
230
+ at: string;
231
+ wake: {
232
+ surface: "moltnet";
233
+ room: string;
234
+ from: string;
235
+ text: string;
236
+ };
237
+ overrides: {
238
+ id: string;
239
+ declaredBy: string;
240
+ section: "memory" | "resources" | "networks";
241
+ }[];
242
+ }[];
243
+ } | null;
244
+ test: {
245
+ sourcePath: string;
246
+ path: string;
247
+ examples: {
248
+ id: string;
249
+ at: string;
250
+ wake: {
251
+ surface: "moltnet";
252
+ room: string;
253
+ from: string;
254
+ text: string;
255
+ };
256
+ overrides: {
257
+ id: string;
258
+ declaredBy: string;
259
+ section: "memory" | "resources" | "networks";
260
+ }[];
261
+ }[];
262
+ };
263
+ };
264
+ }[];
265
+ deadlines?: {
266
+ experiment_ms: number;
267
+ trial_ms?: number | undefined;
268
+ } | undefined;
269
+ preparation?: {
270
+ hook: string;
271
+ history?: string | undefined;
272
+ } | undefined;
273
+ };
274
+ datasetPins: {
275
+ sourcePath: string;
276
+ sha256: string;
277
+ }[];
278
+ optimizer: {
279
+ method: string;
280
+ model: string;
281
+ variants: number;
282
+ keep: number;
283
+ budget: {
284
+ rounds: number;
285
+ };
286
+ };
287
+ args: string[];
288
+ output: string;
289
+ };
290
+ trainingConfig: string;
291
+ trainingImage: string | undefined;
292
+ declaration: {
293
+ version: "spawnfile.training-container.v1" | "spawnfile.training-container.v3" | "spawnfile.training-container.v4";
294
+ slots: number;
295
+ dockerContext: string;
296
+ inputs: {
297
+ source: string;
298
+ destination: string;
299
+ }[];
300
+ output: {
301
+ source: string;
302
+ destination: "/run/training/output";
303
+ };
304
+ auth: {
305
+ source: string;
306
+ provider: "codex" | "claude";
307
+ }[];
308
+ evaluatorRoutes?: {
309
+ purpose: "decisions" | "extraction" | "proposals";
310
+ provider: "codex-subscription" | "typesafe";
311
+ model: string;
312
+ maxRequests: number;
313
+ maxSpendUsd?: number | undefined;
314
+ }[] | undefined;
315
+ evaluatorSecrets?: {
316
+ provider: "typesafe";
317
+ source: string;
318
+ }[] | undefined;
319
+ subjectIsolation?: "codex-native-sandbox" | undefined;
320
+ broker?: {
321
+ engine: "grok";
322
+ realmVolume: string;
323
+ bootstrap: string;
324
+ declaration: string;
325
+ } | undefined;
326
+ } | {
327
+ version: "spawnfile.training-container.v3" | "spawnfile.training-container.v4" | "spawnfile.training-container.v2";
328
+ slots: number;
329
+ dockerContext: string;
330
+ image: {
331
+ ref: string;
332
+ } | {
333
+ build: {
334
+ recipe: "daimon-dspy.v1";
335
+ nativeImage: string;
336
+ pythonImage: string;
337
+ platform: "linux/amd64" | "linux/arm64";
338
+ paideia: string;
339
+ bridge: string;
340
+ claude: string;
341
+ integration: {
342
+ source: string;
343
+ entry: string;
344
+ execution?: "spawnfile.training-execution.v1" | undefined;
345
+ };
346
+ compiler?: string | undefined;
347
+ grok?: {
348
+ source: string;
349
+ sha256: string;
350
+ } | undefined;
351
+ bootstrap?: string | undefined;
352
+ };
353
+ };
354
+ integration: {
355
+ settings: {
356
+ input: string;
357
+ path: string;
358
+ };
359
+ };
360
+ inputs: {
361
+ id: string;
362
+ source: string;
363
+ destination: string;
364
+ include?: string[] | undefined;
365
+ git?: {
366
+ revision: string;
367
+ overlays: {
368
+ source: string;
369
+ path: string;
370
+ sha256: string;
371
+ }[];
372
+ } | undefined;
373
+ }[];
374
+ output: {
375
+ source: string;
376
+ destination: "/run/training/output";
377
+ };
378
+ auth: {
379
+ source: string;
380
+ provider: "codex" | "claude";
381
+ }[];
382
+ evaluatorRoutes?: {
383
+ purpose: "decisions" | "extraction" | "proposals";
384
+ provider: "codex-subscription" | "typesafe";
385
+ model: string;
386
+ maxRequests: number;
387
+ maxSpendUsd?: number | undefined;
388
+ }[] | undefined;
389
+ evaluatorSecrets?: {
390
+ provider: "typesafe";
391
+ source: string;
392
+ }[] | undefined;
393
+ subjectIsolation?: "codex-native-sandbox" | undefined;
394
+ broker?: {
395
+ maxRunRequests: number;
396
+ engine: "grok";
397
+ agentId: string;
398
+ model: "grok-4.6" | "grok-4.5" | "grok-build";
399
+ reasoningEffort: "high" | "medium" | "low";
400
+ architecture: "arm64" | "x64";
401
+ limits: {
402
+ maxRequests: number;
403
+ maxTokens: number;
404
+ timeoutMs: number;
405
+ };
406
+ realmVolume: string;
407
+ bootstrap: string;
408
+ unenforcedBindPolicy?: "refuse" | "profile-only" | undefined;
409
+ } | undefined;
410
+ };
411
+ }>;
412
+ /** Allocation is separate so dry-run never creates a directory, and aliases fail before writes. */
413
+ export declare const allocateTrainingOutputParent: (output: string) => Promise<void>;
414
+ /** Preserve identities and all dataset roles while projecting only filesystem addresses. */
415
+ export declare const mapTrainingExecution: (execution: TrainingExecution, map: (file: string) => string) => TrainingExecution;
416
+ /** Resume changes position/presence of --resume, not the experiment's effective inputs. */
417
+ export declare const trainingExecutionIdentity: (execution: TrainingExecution) => unknown;
@@ -0,0 +1,160 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { lstat, mkdir, realpath } from "node:fs/promises";
3
+ import path from "node:path";
4
+ import { z } from "zod";
5
+ import { defaultTrainingOutputRoot } from "./output.js";
6
+ import { SpawnfileError } from "../../shared/index.js";
7
+ import { trainingPlanSchema, trainingPlanOptimizerSchema } from "./plan/contract.js";
8
+ import { trainingPreparationSchema } from "./preparation/contract.js";
9
+ import { readBoundedJson } from "./preparation/inputs.js";
10
+ import { trainingContainerConfigSchema, trainingImageSchema } from "./container/contract.js";
11
+ export const TRAINING_EXECUTION_FILE = "/run/paideia/execution.json";
12
+ export { TRAINING_EXECUTION_CAPABILITY_LABEL, TRAINING_EXECUTION_VERSION } from "./contract.js";
13
+ export const trainingExecutionSchema = z.object({
14
+ version: z.literal("spawnfile.training-execution.v1"),
15
+ authoring: trainingPlanSchema,
16
+ datasetPins: z.array(z.object({ sourcePath: z.string().min(1), sha256: z.string().regex(/^sha256:[a-f0-9]{64}$/u) }).strict()),
17
+ optimizer: trainingPlanOptimizerSchema,
18
+ args: z.array(z.string().min(1)),
19
+ output: z.string().min(1)
20
+ }).strict();
21
+ const invalid = (message) => { throw new SpawnfileError("validation_error", message); };
22
+ const option = (args, flag) => {
23
+ const index = args.indexOf(flag);
24
+ return index < 0 ? undefined : args[index + 1];
25
+ };
26
+ const exists = async (file) => {
27
+ try {
28
+ await lstat(file);
29
+ return true;
30
+ }
31
+ catch (error) {
32
+ if (error.code === "ENOENT")
33
+ return false;
34
+ throw error;
35
+ }
36
+ };
37
+ /** Resolve local declaration and authoring defaults; no writes, auth reads or execution. */
38
+ export const lowerTrainingExecution = async (options) => {
39
+ const { project, plan } = options;
40
+ if (!plan.targets.length || !plan.optimizer)
41
+ return invalid(`Agent ${plan.agent.id} has no executable training targets`);
42
+ const agent = project.compilePlan.nodes.find(node => node.id === plan.agent.id);
43
+ const agentDirectory = path.dirname(agent.value.kind === "agent" ? agent.value.sourcePath ?? agent.value.source : agent.value.source);
44
+ const candidates = [...new Set([agentDirectory, project.root].map(root => path.join(root, "training/container.json")))];
45
+ let trainingConfig = options.trainingConfig === undefined ? undefined : path.resolve(options.trainingConfig);
46
+ if (trainingConfig === undefined)
47
+ for (const file of candidates)
48
+ if (await exists(file)) {
49
+ trainingConfig = file;
50
+ break;
51
+ }
52
+ if (trainingConfig === undefined)
53
+ return invalid(`Training requires a container declaration at ${candidates.join(" or ")}, or --training-config`);
54
+ trainingConfig = await realpath(trainingConfig);
55
+ const raw = await readBoundedJson(trainingConfig);
56
+ const preparation = raw.version === "spawnfile.training-container.v2" ||
57
+ (["spawnfile.training-container.v3", "spawnfile.training-container.v4"].includes(String(raw.version)) && raw.image !== undefined);
58
+ const declaration = preparation ? trainingPreparationSchema.parse(raw) : trainingContainerConfigSchema.parse(raw);
59
+ const trainingImage = options.trainingImage === undefined ? undefined : trainingImageSchema.parse(options.trainingImage);
60
+ if (!preparation && trainingImage === undefined) {
61
+ return invalid("A lowered container launch configuration requires --training-image; use a v2/v4 preparation declaration for a declared image");
62
+ }
63
+ const args = [...options.args];
64
+ if (!args.includes("--experiment-timeout-ms") && !args.includes("--timeout-ms")) {
65
+ args.push("--experiment-timeout-ms", String(plan.deadlines?.experiment_ms ?? 43_200_000));
66
+ }
67
+ if (!args.includes("--trial-timeout-ms") && plan.deadlines?.trial_ms !== undefined) {
68
+ args.push("--trial-timeout-ms", String(plan.deadlines.trial_ms));
69
+ }
70
+ // These are authoring locators. The receipt consumer lowers ALL target datasets into one file per role.
71
+ for (const role of ["train", "validation", "test"]) {
72
+ if (option(args, `--${role}`) !== undefined)
73
+ continue;
74
+ const sources = [...new Set(plan.targets.flatMap(target => target.datasets[role] ? [target.datasets[role].sourcePath] : []))];
75
+ if (role === "validation" && sources.length === 0)
76
+ continue;
77
+ args.push(`--${role}`, sources[0]);
78
+ }
79
+ if (!args.includes("--editable"))
80
+ for (const file of [...new Set(plan.targets.flatMap(target => target.files.map(file => file.path)))]) {
81
+ args.push("--editable", file);
82
+ }
83
+ if (!args.includes("--optimizer-model"))
84
+ args.push("--optimizer-model", plan.optimizer.model);
85
+ if (args.includes("--resume") && option(args, "--out") === undefined)
86
+ return invalid("--resume requires --out identifying the exact prior experiment");
87
+ const output = path.resolve(option(args, "--out") ?? path.join(defaultTrainingOutputRoot(project.root, declaration.inputs.map(input => path.resolve(path.dirname(trainingConfig), input.source))), encodeURIComponent(plan.agent.id), `${new Date().toISOString().replace(/[:.]/gu, "-")}-${randomUUID().slice(0, 8)}`));
88
+ if (!args.includes("--out"))
89
+ args.push("--out", output);
90
+ else
91
+ args[args.indexOf("--out") + 1] = output;
92
+ const datasetPins = [...new Set(plan.targets.flatMap(target => Object.values(target.datasets)
93
+ .filter(dataset => dataset !== null).map(dataset => dataset.sourcePath)))].map(sourcePath => {
94
+ const loaded = project.datasets[sourcePath];
95
+ if (!loaded)
96
+ return invalid(`Authored dataset was not captured during plan loading: ${sourcePath}`);
97
+ return { sourcePath, sha256: loaded.sha256 };
98
+ });
99
+ const execution = trainingExecutionSchema.parse({ version: "spawnfile.training-execution.v1", authoring: plan, datasetPins,
100
+ optimizer: { ...plan.optimizer, model: option(args, "--optimizer-model") }, args, output });
101
+ return { execution, trainingConfig, trainingImage, declaration };
102
+ };
103
+ /** Allocation is separate so dry-run never creates a directory, and aliases fail before writes. */
104
+ export const allocateTrainingOutputParent = async (output) => {
105
+ const parent = path.dirname(path.resolve(output));
106
+ const missing = [];
107
+ let ancestor = parent;
108
+ while (!await exists(ancestor)) {
109
+ missing.unshift(ancestor);
110
+ ancestor = path.dirname(ancestor);
111
+ }
112
+ if (await realpath(ancestor) !== ancestor || !(await lstat(ancestor)).isDirectory())
113
+ invalid("Training output parent must be a canonical directory");
114
+ for (const directory of missing) {
115
+ try {
116
+ await mkdir(directory, { mode: 0o700 });
117
+ }
118
+ catch (error) {
119
+ if (error.code !== "EEXIST")
120
+ throw error;
121
+ }
122
+ if (await realpath(directory) !== directory || !(await lstat(directory)).isDirectory())
123
+ invalid("Training output parent must be a canonical directory");
124
+ }
125
+ };
126
+ /** Preserve identities and all dataset roles while projecting only filesystem addresses. */
127
+ export const mapTrainingExecution = (execution, map) => {
128
+ const source = (value) => ({ ...value, sourcePath: map(value.sourcePath) });
129
+ const args = [...execution.args];
130
+ for (let index = 0; index < args.length; index++) {
131
+ if (["--train", "--validation", "--test", "--out", "--cost-config"].includes(args[index]))
132
+ args[++index] = map(args[index]);
133
+ else if (args[index] === "--resource") {
134
+ const value = args[++index], split = value.indexOf("=");
135
+ args[index] = `${value.slice(0, split)}=${map(value.slice(split + 1))}`;
136
+ }
137
+ }
138
+ return trainingExecutionSchema.parse({ ...execution, datasetPins: execution.datasetPins.map(source), args, output: map(execution.output), authoring: {
139
+ ...execution.authoring,
140
+ ...(execution.authoring.preparation ? { preparation: { ...execution.authoring.preparation,
141
+ ...(execution.authoring.preparation.history ? { history: map(execution.authoring.preparation.history) } : {}) } } : {}),
142
+ project: { root: map(execution.authoring.project.root), manifest: map(execution.authoring.project.manifest) },
143
+ graders: execution.authoring.graders.map(source),
144
+ targets: execution.authoring.targets.map(target => ({ ...target, files: target.files.map(source), datasets: {
145
+ train: source(target.datasets.train), test: source(target.datasets.test),
146
+ validation: target.datasets.validation === null ? null : source(target.datasets.validation)
147
+ } }))
148
+ } });
149
+ };
150
+ /** Resume changes position/presence of --resume, not the experiment's effective inputs. */
151
+ export const trainingExecutionIdentity = (execution) => {
152
+ const flags = [];
153
+ for (let index = 0; index < execution.args.length; index++) {
154
+ const flag = execution.args[index];
155
+ if (flag === "--resume")
156
+ continue;
157
+ flags.push(flag === "--dry-run" ? [flag] : [flag, execution.args[++index]]);
158
+ }
159
+ return { ...execution, args: flags.sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0) };
160
+ };
@@ -1,4 +1,12 @@
1
1
  export * from "./contract.js";
2
2
  export * from "./context.js";
3
+ export * from "./plan/index.js";
4
+ export * from "./rewind/index.js";
5
+ export type { ResolvedTraining, ResolvedTrainingGrader } from "./resolution.js";
3
6
  export { parseTrainingMappedPreparation } from "./preparation/contract.js";
4
7
  export type { TrainingMappedPreparation } from "./preparation/contract.js";
8
+ export { TRAINING_SLOTS_FILE, TRAINING_SLOTS_VERSION, trainingSlotPaths, trainingSlotDescriptors, trainingSlotsDocument, type TrainingSlotsDocument, type TrainingSlotPaths, type TrainingSlotDescriptor } from "./broker/paths.js";
9
+ export * from "./execution.js";
10
+ export * from "./moments.js";
11
+ export * from "./compiledAgent.js";
12
+ export { TRAINING_FAKETIME_LIBRARY_PATH } from "./container/contract.js";
@@ -1,3 +1,10 @@
1
1
  export * from "./contract.js";
2
2
  export * from "./context.js";
3
+ export * from "./plan/index.js";
4
+ export * from "./rewind/index.js";
3
5
  export { parseTrainingMappedPreparation } from "./preparation/contract.js";
6
+ export { TRAINING_SLOTS_FILE, TRAINING_SLOTS_VERSION, trainingSlotPaths, trainingSlotDescriptors, trainingSlotsDocument } from "./broker/paths.js";
7
+ export * from "./execution.js";
8
+ export * from "./moments.js";
9
+ export * from "./compiledAgent.js";
10
+ export { TRAINING_FAKETIME_LIBRARY_PATH } from "./container/contract.js";
@@ -0,0 +1,80 @@
1
+ import type { LoadedTrainingProject, TrainingPlan } from "./plan/index.js";
2
+ import { type MaterializedMoment } from "./rewind/contract.js";
3
+ export type TrainingDatasetRole = "train" | "validation" | "test";
4
+ type Example = TrainingPlan["targets"][number]["datasets"]["train"]["examples"][number];
5
+ export interface TrainingMomentCase {
6
+ version: "spawnfile.training-moment-case.v1";
7
+ projectRoot: string;
8
+ agent: string;
9
+ example: string;
10
+ role: TrainingDatasetRole;
11
+ dataset: string;
12
+ at: string;
13
+ effectiveAt: string;
14
+ wake: Example["wake"];
15
+ group: string;
16
+ lineage: string;
17
+ momentRoot: string;
18
+ historyDir?: string;
19
+ hook: string;
20
+ }
21
+ export interface PreparedTrainingCase {
22
+ setup?: Record<string, unknown>;
23
+ context?: Record<string, unknown>;
24
+ reference?: Record<string, unknown>;
25
+ outputs?: Record<string, string>;
26
+ checks?: unknown[];
27
+ stages?: unknown[];
28
+ }
29
+ export interface TrainingCasePreparation {
30
+ moment: MaterializedMoment;
31
+ momentRoot: string;
32
+ example: Example;
33
+ role: TrainingDatasetRole;
34
+ dataset: string;
35
+ group: string;
36
+ lineage: string;
37
+ }
38
+ export interface LowerTrainingMomentsOptions {
39
+ project: LoadedTrainingProject;
40
+ plan: TrainingPlan;
41
+ out: string;
42
+ historyDir?: string;
43
+ /** Named integration's case authoring only; never credentials or live subject execution. */
44
+ prepareCase?: (context: TrainingCasePreparation) => Promise<PreparedTrainingCase>;
45
+ }
46
+ export interface TrainingMomentLoweringEntry {
47
+ id: string;
48
+ role: TrainingDatasetRole;
49
+ dataset: string;
50
+ at: string;
51
+ wake: Example["wake"];
52
+ group: string;
53
+ lineage: string | null;
54
+ momentRoot: string;
55
+ status: "materialized" | "refused";
56
+ moment?: MaterializedMoment;
57
+ reason?: string;
58
+ }
59
+ /** Rewind each authored example exactly once; repeated target references share one case. */
60
+ export declare const lowerTrainingMoments: (options: LowerTrainingMomentsOptions) => Promise<{
61
+ datasets: {
62
+ train: string;
63
+ validation?: string;
64
+ test: string;
65
+ };
66
+ report: {
67
+ version: "spawnfile.training-moment-lowering.v1";
68
+ agent: string;
69
+ entries: TrainingMomentLoweringEntry[];
70
+ };
71
+ }>;
72
+ /** Trial hooks call this on fresh paths; historical identity must match the accepted lowering. */
73
+ export declare const materializeTrainingCase: (options: {
74
+ project: LoadedTrainingProject;
75
+ plan: TrainingPlan;
76
+ moment: TrainingMomentCase;
77
+ out: string;
78
+ expected?: MaterializedMoment;
79
+ }) => Promise<MaterializedMoment>;
80
+ export {};