spawnfile 0.1.17 → 0.1.19

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 (490) 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/moltnet-releases.json +4 -4
  489. package/package.json +3 -3
  490. package/runtimes.yaml +8 -6
@@ -0,0 +1,321 @@
1
+ import { z } from "zod";
2
+ export declare const inputIdentitySchema: z.ZodObject<{
3
+ section: z.ZodEnum<{
4
+ memory: "memory";
5
+ resources: "resources";
6
+ networks: "networks";
7
+ }>;
8
+ id: z.ZodString;
9
+ declaredBy: z.ZodString;
10
+ }, z.core.$strict>;
11
+ export declare const materializedInputSchema: z.ZodObject<{
12
+ section: z.ZodEnum<{
13
+ memory: "memory";
14
+ resources: "resources";
15
+ networks: "networks";
16
+ }>;
17
+ id: z.ZodString;
18
+ declaredBy: z.ZodString;
19
+ kind: z.ZodEnum<{
20
+ moltnet: "moltnet";
21
+ memory: "memory";
22
+ volume: "volume";
23
+ git: "git";
24
+ feed: "feed";
25
+ bundle: "bundle";
26
+ }>;
27
+ fidelity: z.ZodNullable<z.ZodEnum<{
28
+ exact: "exact";
29
+ approximate: "approximate";
30
+ overridden: "overridden";
31
+ }>>;
32
+ basis: z.ZodString;
33
+ source: z.ZodObject<{
34
+ commit: z.ZodOptional<z.ZodString>;
35
+ repository: z.ZodOptional<z.ZodString>;
36
+ revision: z.ZodOptional<z.ZodString>;
37
+ seq: z.ZodOptional<z.ZodNumber>;
38
+ trees: z.ZodOptional<z.ZodArray<z.ZodObject<{
39
+ root: z.ZodString;
40
+ prefix: z.ZodOptional<z.ZodString>;
41
+ exclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
42
+ }, z.core.$strict>>>;
43
+ sha256: z.ZodOptional<z.ZodString>;
44
+ agentSlug: z.ZodOptional<z.ZodString>;
45
+ snapshot: z.ZodOptional<z.ZodString>;
46
+ cursor: z.ZodOptional<z.ZodString>;
47
+ switchingAt: z.ZodOptional<z.ZodISODateTime>;
48
+ landedAt: z.ZodOptional<z.ZodISODateTime>;
49
+ prepared: z.ZodOptional<z.ZodLiteral<true>>;
50
+ }, z.core.$strict>;
51
+ path: z.ZodNullable<z.ZodString>;
52
+ notes: z.ZodArray<z.ZodString>;
53
+ refusal: z.ZodNullable<z.ZodString>;
54
+ build: z.ZodOptional<z.ZodLiteral<"deferred">>;
55
+ }, z.core.$strict>;
56
+ export type MaterializedInput = z.infer<typeof materializedInputSchema>;
57
+ export declare const materializedMomentSchema: z.ZodObject<{
58
+ version: z.ZodLiteral<"spawnfile.materialized-moment.v1">;
59
+ status: z.ZodEnum<{
60
+ materialized: "materialized";
61
+ refused: "refused";
62
+ }>;
63
+ agent: z.ZodString;
64
+ example: z.ZodObject<{
65
+ id: z.ZodString;
66
+ role: z.ZodEnum<{
67
+ train: "train";
68
+ test: "test";
69
+ validation: "validation";
70
+ }>;
71
+ dataset: z.ZodString;
72
+ }, z.core.$strict>;
73
+ at: z.ZodISODateTime;
74
+ effectiveAt: z.ZodISODateTime;
75
+ inputs: z.ZodArray<z.ZodObject<{
76
+ section: z.ZodEnum<{
77
+ memory: "memory";
78
+ resources: "resources";
79
+ networks: "networks";
80
+ }>;
81
+ id: z.ZodString;
82
+ declaredBy: z.ZodString;
83
+ kind: z.ZodEnum<{
84
+ moltnet: "moltnet";
85
+ memory: "memory";
86
+ volume: "volume";
87
+ git: "git";
88
+ feed: "feed";
89
+ bundle: "bundle";
90
+ }>;
91
+ fidelity: z.ZodNullable<z.ZodEnum<{
92
+ exact: "exact";
93
+ approximate: "approximate";
94
+ overridden: "overridden";
95
+ }>>;
96
+ basis: z.ZodString;
97
+ source: z.ZodObject<{
98
+ commit: z.ZodOptional<z.ZodString>;
99
+ repository: z.ZodOptional<z.ZodString>;
100
+ revision: z.ZodOptional<z.ZodString>;
101
+ seq: z.ZodOptional<z.ZodNumber>;
102
+ trees: z.ZodOptional<z.ZodArray<z.ZodObject<{
103
+ root: z.ZodString;
104
+ prefix: z.ZodOptional<z.ZodString>;
105
+ exclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
106
+ }, z.core.$strict>>>;
107
+ sha256: z.ZodOptional<z.ZodString>;
108
+ agentSlug: z.ZodOptional<z.ZodString>;
109
+ snapshot: z.ZodOptional<z.ZodString>;
110
+ cursor: z.ZodOptional<z.ZodString>;
111
+ switchingAt: z.ZodOptional<z.ZodISODateTime>;
112
+ landedAt: z.ZodOptional<z.ZodISODateTime>;
113
+ prepared: z.ZodOptional<z.ZodLiteral<true>>;
114
+ }, z.core.$strict>;
115
+ path: z.ZodNullable<z.ZodString>;
116
+ notes: z.ZodArray<z.ZodString>;
117
+ refusal: z.ZodNullable<z.ZodString>;
118
+ build: z.ZodOptional<z.ZodLiteral<"deferred">>;
119
+ }, z.core.$strict>>;
120
+ record: z.ZodObject<{
121
+ matched: z.ZodBoolean;
122
+ attempts: z.ZodOptional<z.ZodNumber>;
123
+ selectedStartedAt: z.ZodOptional<z.ZodISODateTime>;
124
+ executionId: z.ZodOptional<z.ZodString>;
125
+ selection: z.ZodOptional<z.ZodLiteral<"earliest-startedAt">>;
126
+ }, z.core.$strict>;
127
+ leakCheck: z.ZodObject<{
128
+ ok: z.ZodBoolean;
129
+ findings: z.ZodNumber;
130
+ }, z.core.$strict>;
131
+ }, z.core.$strict>;
132
+ export type MaterializedMoment = z.infer<typeof materializedMomentSchema>;
133
+ export declare const leakFindingSchema: z.ZodObject<{
134
+ input: z.ZodNullable<z.ZodObject<{
135
+ section: z.ZodEnum<{
136
+ memory: "memory";
137
+ resources: "resources";
138
+ networks: "networks";
139
+ }>;
140
+ id: z.ZodString;
141
+ declaredBy: z.ZodString;
142
+ }, z.core.$strict>>;
143
+ class: z.ZodEnum<{
144
+ snapshot: "snapshot";
145
+ "bundle-entry": "bundle-entry";
146
+ "file-time": "file-time";
147
+ "symlink-escape": "symlink-escape";
148
+ "git-object": "git-object";
149
+ "memory-event": "memory-event";
150
+ "moltnet-message": "moltnet-message";
151
+ "moltnet-event": "moltnet-event";
152
+ "moltnet-room": "moltnet-room";
153
+ "feed-identity": "feed-identity";
154
+ "dated-path": "dated-path";
155
+ }>;
156
+ path: z.ZodString;
157
+ detail: z.ZodString;
158
+ }, z.core.$strict>;
159
+ export declare const leakCheckSchema: z.ZodObject<{
160
+ version: z.ZodLiteral<"spawnfile.leak-check.v1">;
161
+ at: z.ZodISODateTime;
162
+ ok: z.ZodBoolean;
163
+ checked: z.ZodObject<{
164
+ files: z.ZodNumber;
165
+ gitObjects: z.ZodNumber;
166
+ memoryEvents: z.ZodNumber;
167
+ moltnetMessages: z.ZodNumber;
168
+ moltnetEvents: z.ZodNumber;
169
+ snapshots: z.ZodNumber;
170
+ }, z.core.$strict>;
171
+ findings: z.ZodArray<z.ZodObject<{
172
+ input: z.ZodNullable<z.ZodObject<{
173
+ section: z.ZodEnum<{
174
+ memory: "memory";
175
+ resources: "resources";
176
+ networks: "networks";
177
+ }>;
178
+ id: z.ZodString;
179
+ declaredBy: z.ZodString;
180
+ }, z.core.$strict>>;
181
+ class: z.ZodEnum<{
182
+ snapshot: "snapshot";
183
+ "bundle-entry": "bundle-entry";
184
+ "file-time": "file-time";
185
+ "symlink-escape": "symlink-escape";
186
+ "git-object": "git-object";
187
+ "memory-event": "memory-event";
188
+ "moltnet-message": "moltnet-message";
189
+ "moltnet-event": "moltnet-event";
190
+ "moltnet-room": "moltnet-room";
191
+ "feed-identity": "feed-identity";
192
+ "dated-path": "dated-path";
193
+ }>;
194
+ path: z.ZodString;
195
+ detail: z.ZodString;
196
+ }, z.core.$strict>>;
197
+ }, z.core.$strict>;
198
+ export type LeakCheck = z.infer<typeof leakCheckSchema>;
199
+ export type LeakFinding = z.infer<typeof leakFindingSchema>;
200
+ export declare const taskClockSchema: z.ZodObject<{
201
+ version: z.ZodLiteral<"spawnfile.task-clock.v1">;
202
+ origin: z.ZodISODateTime;
203
+ }, z.core.$strict>;
204
+ export declare const materializedMomentJsonSchema: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
205
+ version: z.ZodLiteral<"spawnfile.materialized-moment.v1">;
206
+ status: z.ZodEnum<{
207
+ materialized: "materialized";
208
+ refused: "refused";
209
+ }>;
210
+ agent: z.ZodString;
211
+ example: z.ZodObject<{
212
+ id: z.ZodString;
213
+ role: z.ZodEnum<{
214
+ train: "train";
215
+ test: "test";
216
+ validation: "validation";
217
+ }>;
218
+ dataset: z.ZodString;
219
+ }, z.core.$strict>;
220
+ at: z.ZodISODateTime;
221
+ effectiveAt: z.ZodISODateTime;
222
+ inputs: z.ZodArray<z.ZodObject<{
223
+ section: z.ZodEnum<{
224
+ memory: "memory";
225
+ resources: "resources";
226
+ networks: "networks";
227
+ }>;
228
+ id: z.ZodString;
229
+ declaredBy: z.ZodString;
230
+ kind: z.ZodEnum<{
231
+ moltnet: "moltnet";
232
+ memory: "memory";
233
+ volume: "volume";
234
+ git: "git";
235
+ feed: "feed";
236
+ bundle: "bundle";
237
+ }>;
238
+ fidelity: z.ZodNullable<z.ZodEnum<{
239
+ exact: "exact";
240
+ approximate: "approximate";
241
+ overridden: "overridden";
242
+ }>>;
243
+ basis: z.ZodString;
244
+ source: z.ZodObject<{
245
+ commit: z.ZodOptional<z.ZodString>;
246
+ repository: z.ZodOptional<z.ZodString>;
247
+ revision: z.ZodOptional<z.ZodString>;
248
+ seq: z.ZodOptional<z.ZodNumber>;
249
+ trees: z.ZodOptional<z.ZodArray<z.ZodObject<{
250
+ root: z.ZodString;
251
+ prefix: z.ZodOptional<z.ZodString>;
252
+ exclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
253
+ }, z.core.$strict>>>;
254
+ sha256: z.ZodOptional<z.ZodString>;
255
+ agentSlug: z.ZodOptional<z.ZodString>;
256
+ snapshot: z.ZodOptional<z.ZodString>;
257
+ cursor: z.ZodOptional<z.ZodString>;
258
+ switchingAt: z.ZodOptional<z.ZodISODateTime>;
259
+ landedAt: z.ZodOptional<z.ZodISODateTime>;
260
+ prepared: z.ZodOptional<z.ZodLiteral<true>>;
261
+ }, z.core.$strict>;
262
+ path: z.ZodNullable<z.ZodString>;
263
+ notes: z.ZodArray<z.ZodString>;
264
+ refusal: z.ZodNullable<z.ZodString>;
265
+ build: z.ZodOptional<z.ZodLiteral<"deferred">>;
266
+ }, z.core.$strict>>;
267
+ record: z.ZodObject<{
268
+ matched: z.ZodBoolean;
269
+ attempts: z.ZodOptional<z.ZodNumber>;
270
+ selectedStartedAt: z.ZodOptional<z.ZodISODateTime>;
271
+ executionId: z.ZodOptional<z.ZodString>;
272
+ selection: z.ZodOptional<z.ZodLiteral<"earliest-startedAt">>;
273
+ }, z.core.$strict>;
274
+ leakCheck: z.ZodObject<{
275
+ ok: z.ZodBoolean;
276
+ findings: z.ZodNumber;
277
+ }, z.core.$strict>;
278
+ }, z.core.$strict>>;
279
+ export declare const leakCheckJsonSchema: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
280
+ version: z.ZodLiteral<"spawnfile.leak-check.v1">;
281
+ at: z.ZodISODateTime;
282
+ ok: z.ZodBoolean;
283
+ checked: z.ZodObject<{
284
+ files: z.ZodNumber;
285
+ gitObjects: z.ZodNumber;
286
+ memoryEvents: z.ZodNumber;
287
+ moltnetMessages: z.ZodNumber;
288
+ moltnetEvents: z.ZodNumber;
289
+ snapshots: z.ZodNumber;
290
+ }, z.core.$strict>;
291
+ findings: z.ZodArray<z.ZodObject<{
292
+ input: z.ZodNullable<z.ZodObject<{
293
+ section: z.ZodEnum<{
294
+ memory: "memory";
295
+ resources: "resources";
296
+ networks: "networks";
297
+ }>;
298
+ id: z.ZodString;
299
+ declaredBy: z.ZodString;
300
+ }, z.core.$strict>>;
301
+ class: z.ZodEnum<{
302
+ snapshot: "snapshot";
303
+ "bundle-entry": "bundle-entry";
304
+ "file-time": "file-time";
305
+ "symlink-escape": "symlink-escape";
306
+ "git-object": "git-object";
307
+ "memory-event": "memory-event";
308
+ "moltnet-message": "moltnet-message";
309
+ "moltnet-event": "moltnet-event";
310
+ "moltnet-room": "moltnet-room";
311
+ "feed-identity": "feed-identity";
312
+ "dated-path": "dated-path";
313
+ }>;
314
+ path: z.ZodString;
315
+ detail: z.ZodString;
316
+ }, z.core.$strict>>;
317
+ }, z.core.$strict>>;
318
+ export declare const taskClockJsonSchema: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
319
+ version: z.ZodLiteral<"spawnfile.task-clock.v1">;
320
+ origin: z.ZodISODateTime;
321
+ }, z.core.$strict>>;
@@ -0,0 +1,39 @@
1
+ import { z } from "zod";
2
+ import { recordedSha256Schema } from "../../../recording/index.js";
3
+ import { trainingInstantSchema } from "../../../manifest/index.js";
4
+ const text = z.string().min(1);
5
+ const count = z.number().int().nonnegative();
6
+ export const inputIdentitySchema = z.object({
7
+ section: z.enum(["resources", "memory", "networks"]), id: text, declaredBy: text
8
+ }).strict();
9
+ export const materializedInputSchema = inputIdentitySchema.extend({
10
+ kind: z.enum(["git", "bundle", "feed", "volume", "memory", "moltnet"]),
11
+ fidelity: z.enum(["exact", "approximate", "overridden"]).nullable(), basis: text,
12
+ source: z.object({ commit: text.optional(), repository: text.optional(), revision: text.optional(), seq: count.optional(),
13
+ trees: z.array(z.object({ root: z.string(), prefix: z.string().optional(), exclude: z.array(text).optional() }).strict()).min(1).optional(),
14
+ sha256: recordedSha256Schema.optional(), agentSlug: text.optional(), snapshot: text.optional(), cursor: text.optional(),
15
+ switchingAt: trainingInstantSchema.optional(), landedAt: trainingInstantSchema.optional(), prepared: z.literal(true).optional() }).strict(),
16
+ path: text.nullable(), notes: z.array(z.string()), refusal: text.nullable(), build: z.literal("deferred").optional()
17
+ }).strict();
18
+ export const materializedMomentSchema = z.object({
19
+ version: z.literal("spawnfile.materialized-moment.v1"), status: z.enum(["materialized", "refused"]),
20
+ agent: text, example: z.object({ id: text, role: z.enum(["train", "validation", "test"]), dataset: text }).strict(),
21
+ at: trainingInstantSchema, effectiveAt: trainingInstantSchema, inputs: z.array(materializedInputSchema),
22
+ record: z.object({ matched: z.boolean(), attempts: count.optional(), selectedStartedAt: trainingInstantSchema.optional(),
23
+ executionId: text.optional(), selection: z.literal("earliest-startedAt").optional() }).strict(),
24
+ leakCheck: z.object({ ok: z.boolean(), findings: count }).strict()
25
+ }).strict();
26
+ export const leakFindingSchema = z.object({
27
+ input: inputIdentitySchema.nullable(),
28
+ class: z.enum(["bundle-entry", "file-time", "symlink-escape", "git-object", "memory-event", "moltnet-message",
29
+ "moltnet-event", "moltnet-room", "feed-identity", "dated-path", "snapshot"]), path: text, detail: text
30
+ }).strict();
31
+ export const leakCheckSchema = z.object({
32
+ version: z.literal("spawnfile.leak-check.v1"), at: trainingInstantSchema, ok: z.boolean(),
33
+ checked: z.object({ files: count, gitObjects: count, memoryEvents: count, moltnetMessages: count,
34
+ moltnetEvents: count, snapshots: count }).strict(), findings: z.array(leakFindingSchema)
35
+ }).strict();
36
+ export const taskClockSchema = z.object({ version: z.literal("spawnfile.task-clock.v1"), origin: trainingInstantSchema }).strict();
37
+ export const materializedMomentJsonSchema = z.toJSONSchema(materializedMomentSchema);
38
+ export const leakCheckJsonSchema = z.toJSONSchema(leakCheckSchema);
39
+ export const taskClockJsonSchema = z.toJSONSchema(taskClockSchema);
@@ -0,0 +1,22 @@
1
+ import type { InputContext } from "./types.js";
2
+ /** Deployment IDs remain evidence only: all bytes are read from the contained history mirror. */
3
+ export declare const deployedResource: (context: InputContext) => Promise<{
4
+ pin: {
5
+ id: string;
6
+ kind: "git";
7
+ commit: string;
8
+ sha256: string;
9
+ agent_node_ids: string[];
10
+ url?: string | undefined;
11
+ declared_by?: string | undefined;
12
+ } | {
13
+ id: string;
14
+ kind: "bundle";
15
+ sha256: string;
16
+ agent_node_ids: string[];
17
+ origin?: string | undefined;
18
+ declared_by?: string | undefined;
19
+ };
20
+ exact: boolean;
21
+ notes: string[];
22
+ } | null>;
@@ -0,0 +1,19 @@
1
+ /** Deployment IDs remain evidence only: all bytes are read from the contained history mirror. */
2
+ export const deployedResource = async (context) => {
3
+ const agentId = context.agentId ?? context.record?.agent
4
+ ?? (context.input.declaredBy.startsWith("agent:") ? context.input.declaredBy : undefined);
5
+ const entry = await context.history?.deploymentResources(context.at, agentId);
6
+ if (!entry)
7
+ return null;
8
+ const pins = entry.resources.filter((resource) => resource.id === context.input.id
9
+ && (resource.declared_by === undefined || resource.declared_by === context.input.declaredBy));
10
+ if (pins.length > 1)
11
+ throw new Error(`Ambiguous deployment resource pin for ${context.input.declaredBy}/${context.input.id}`);
12
+ const pin = pins[0];
13
+ if (!pin)
14
+ return null;
15
+ const exact = entry.activation_exact && entry.exact !== false;
16
+ return { pin, exact, notes: exact ? [] : [entry.activation_note
17
+ ?? (entry.rolled_back_at ? "Trial instant falls inside an inexact deployment rollback interval."
18
+ : "Deployment activation boundary is inexact; an overlapping predecessor may have served different pins.")] };
19
+ };
@@ -0,0 +1,12 @@
1
+ import type { TeamWorkspaceResource } from "../../../manifest/index.js";
2
+ import { type SelectedCommit } from "./gitProcess.js";
3
+ import type { InputContext, InputResult } from "./types.js";
4
+ type VolumeFeed = NonNullable<Extract<TeamWorkspaceResource, {
5
+ kind: "volume";
6
+ }>["feed"]>;
7
+ /** Same template/fallback ordering as chooseFeedRef, with historical eligibility replacing existence. */
8
+ export declare const selectFeedCommit: (feed: VolumeFeed, repository: string, at: string) => Promise<SelectedCommit & {
9
+ ref: string;
10
+ }>;
11
+ export declare const materializeFeed: (context: InputContext) => Promise<InputResult>;
12
+ export {};
@@ -0,0 +1,182 @@
1
+ import { lstat, mkdir, readdir, rm, symlink, writeFile } from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { digestDirectory, expandFeedPaths, expandFeedRefTemplate, FEED_IDENTITY_FILE, FEED_IDENTITY_VERSION, feedLandingAt, isFeedLanding } from "../../../volume/index.js";
4
+ import { assertPreparedFeedRevision, feedGitRevision } from "./feedContent.js";
5
+ import { resolveRecordedCommit } from "./recordedCommit.js";
6
+ import { exportFeedGitTree } from "./gitArchive.js";
7
+ import { safeCommittedPath } from "./gitTree.js";
8
+ import { assertLocalGitRepository } from "./gitHistory.js";
9
+ import { assertCommitNotFuture, commitAt } from "./gitProcess.js";
10
+ import { historyKey } from "./history.js";
11
+ import { compareInstants } from "./instant.js";
12
+ const feedPaths = (paths) => paths?.length ? paths : undefined;
13
+ const treeName = (tree) => tree.replace(/^trees\//u, "");
14
+ /** Same template/fallback ordering as chooseFeedRef, with historical eligibility replacing existence. */
15
+ export const selectFeedCommit = async (feed, repository, at) => {
16
+ if (!feed.git)
17
+ throw new Error("Directory feed cannot be rewound without a landing log; provide an override");
18
+ if (feed.freeze)
19
+ throw new Error("Feed freeze/waiting state cannot be reconstructed without a landing log; provide an override");
20
+ const rule = feed.git.ref;
21
+ if (typeof rule === "object" && rule.command)
22
+ throw new Error("Feed command refs cannot be evaluated historically without a landing log; provide an override");
23
+ const selectors = typeof rule === "object" ? [expandFeedRefTemplate(rule.template, new Date(at)), rule.fallback]
24
+ : [rule ?? "HEAD"];
25
+ for (const selector of selectors) {
26
+ if (!selector)
27
+ continue;
28
+ const selected = await commitAt(repository, selector, at);
29
+ if (selected)
30
+ return { ...selected, ref: selector };
31
+ }
32
+ throw new Error(`No feed ref has a first-parent commit at or before ${at}`);
33
+ };
34
+ const fileCount = async (directory) => {
35
+ let count = 0;
36
+ for (const name of await readdir(directory)) {
37
+ const file = path.join(directory, name), stats = await lstat(file);
38
+ count += stats.isDirectory() ? await fileCount(file) : 1;
39
+ }
40
+ return count;
41
+ };
42
+ export const materializeFeed = async (context) => {
43
+ const { input, history } = context;
44
+ if (input.section !== "resources" || input.declaration.kind !== "volume" || !input.declaration.feed)
45
+ throw new Error("Feed rewind requires a fed volume");
46
+ const resource = input.declaration, feed = resource.feed;
47
+ if (input.overridden) {
48
+ await mkdir(context.destination, { recursive: true });
49
+ return { fidelity: "overridden", basis: "override", source: {}, notes: ["Volume override starts empty; no feed refresh is run."], instant: context.at };
50
+ }
51
+ if (!history)
52
+ throw new Error(`Missing feed history for ${input.id}; --history is required`);
53
+ const key = `feeds/${historyKey(input)}`;
54
+ const log = await history.feedLandings(key, input.id);
55
+ let landing, repository = null, basis, ambiguous = false;
56
+ const openRepository = async () => {
57
+ repository ??= await history.repository(`${key}/repo`);
58
+ if (!repository)
59
+ throw new Error(`Missing feed source repository for ${input.id}`);
60
+ await assertLocalGitRepository(repository, history);
61
+ return repository;
62
+ };
63
+ for (const [index, entry] of (log ?? []).entries()) {
64
+ for (const selected of entry.paths ?? [])
65
+ safeCommittedPath(selected);
66
+ if (!entry.commit)
67
+ continue;
68
+ try {
69
+ await resolveRecordedCommit(await openRepository(), entry.commit);
70
+ }
71
+ catch (error) {
72
+ throw new Error(`Invalid history ${key}/landings.jsonl:${index + 1}: ${error instanceof Error ? error.message : String(error)}`);
73
+ }
74
+ }
75
+ for (const candidate of context.candidateRecords ?? []) {
76
+ const entry = candidate.feeds.find((record) => record.id === input.id);
77
+ if (entry?.commit !== undefined)
78
+ await resolveRecordedCommit(await openRepository(), entry.commit);
79
+ }
80
+ const record = context.record?.feeds.find((entry) => entry.id === input.id);
81
+ const recordedCommit = record?.commit === undefined ? undefined : await resolveRecordedCommit(await openRepository(), record.commit);
82
+ const matching = record ? log?.findLast((entry) => entry.revision === record.revision && treeName(entry.tree) === treeName(record.tree)
83
+ && compareInstants(entry.landed_at, record.landedAt) === 0 && entry.commit === recordedCommit) : undefined;
84
+ const selected = record ? null : feedLandingAt(log, context.at);
85
+ if (record) {
86
+ // A wake pin is authoritative even if a later attempt or landing changed the currently selected log row.
87
+ landing = { version: "spawnfile.volume-feed-landing.v1", resource: input.id, volume: matching?.volume ?? resource.name,
88
+ revision: record.revision, tree: `trees/${treeName(record.tree)}`, landed_at: record.landedAt,
89
+ switching_at: matching?.switching_at ?? record.landedAt,
90
+ source: matching?.source ?? (feed.git ? { kind: "git", repo: feed.git.repo } : { kind: "directory", directory: feed.directory }),
91
+ ...(recordedCommit ? { commit: recordedCommit, ref: record.ref ?? recordedCommit } : {}),
92
+ ...(record.paths ? { paths: record.paths } : {}), ...(record.period ? { period: record.period } : {}) };
93
+ basis = "record";
94
+ }
95
+ else if (selected) {
96
+ landing = selected;
97
+ ambiguous = selected.ambiguous === true;
98
+ basis = "landing-log";
99
+ }
100
+ else {
101
+ if (log.length)
102
+ throw new Error(`Feed ${input.id} has no landed state at ${context.at}; provide an override`);
103
+ // Refuse unknown historical behavior before touching any declared source or executing any command.
104
+ if (!feed.git || feed.freeze || typeof feed.git.ref === "object" && feed.git.ref.command)
105
+ await selectFeedCommit(feed, "", context.at);
106
+ if (feed.include || feed.prepare)
107
+ throw new Error("Prepared/included feed requires a landing log and retained tree bytes");
108
+ const repo = await openRepository(), commit = await selectFeedCommit(feed, repo, context.at);
109
+ const paths = expandFeedPaths(feed.git.paths, new Date(context.at));
110
+ const revision = feedGitRevision(repo, commit.commit, commit.ref, paths);
111
+ landing = { version: "spawnfile.volume-feed-landing.v1", resource: input.id, volume: resource.name,
112
+ revision, tree: `trees/${revision}`, source: { kind: "git", repo: feed.git.repo },
113
+ commit: commit.commit, ref: commit.ref, ...(paths ? { paths } : {}), switching_at: commit.instant, landed_at: commit.instant };
114
+ basis = "feed-rule-at";
115
+ }
116
+ if (!isFeedLanding(landing))
117
+ throw new Error(`Invalid feed landing for ${input.id}`);
118
+ for (const selected of landing.paths ?? [])
119
+ safeCommittedPath(selected);
120
+ // Selection owns this check: retained/prepared bytes must obey the same cutoff as extraction.
121
+ if (landing.source.kind === "git" && (!landing.commit || !landing.ref))
122
+ throw new Error("Git feed landing must record its commit and ref");
123
+ if (landing.commit) {
124
+ landing.commit = await resolveRecordedCommit(await openRepository(), landing.commit);
125
+ await assertCommitNotFuture(await openRepository(), landing.commit, context.at);
126
+ }
127
+ const retainedName = treeName(landing.tree), tree = path.join(context.destination, "trees", retainedName);
128
+ const isPrepared = landing.source.prepared !== undefined
129
+ || basis === "record" && !matching && (feed.include !== undefined || feed.prepare !== undefined);
130
+ if (landing.source.prepared) {
131
+ assertPreparedFeedRevision(landing.revision, landing.source.prepared);
132
+ if (landing.commit && feedGitRevision(await openRepository(), landing.commit, landing.ref, landing.paths)
133
+ !== landing.source.prepared.source_revision)
134
+ throw new Error("Prepared feed source revision disagrees with selected commit and paths");
135
+ }
136
+ if (landing.source.kind === "git" && !isPrepared) {
137
+ const repo = await openRepository();
138
+ const revision = feedGitRevision(repo, landing.commit, landing.ref, landing.paths);
139
+ if (revision !== landing.revision)
140
+ throw new Error(`Feed revision mismatch: recorded ${landing.revision}, reconstructed ${revision}`);
141
+ await exportFeedGitTree(repo, landing.commit, tree, feedPaths(landing.paths));
142
+ if (await history.path(`${key}/trees/${retainedName}`)) {
143
+ const retained = path.join(context.destination, ".retained-check");
144
+ try {
145
+ await history.copyTree(`${key}/trees/${retainedName}`, retained);
146
+ if (digestDirectory(retained) !== digestDirectory(tree))
147
+ throw new Error("Retained git feed bytes disagree with selected commit and paths");
148
+ }
149
+ finally {
150
+ await rm(retained, { recursive: true, force: true });
151
+ }
152
+ }
153
+ }
154
+ else {
155
+ if (!await history.path(`${key}/trees/${retainedName}`))
156
+ throw new Error("Directory/prepared/included feed requires retained landed tree bytes");
157
+ await history.copyTree(`${key}/trees/${retainedName}`, tree);
158
+ }
159
+ if (landing.source.kind === "directory" && !isPrepared) {
160
+ const actual = digestDirectory(tree);
161
+ if (actual !== landing.revision)
162
+ throw new Error(`Directory feed revision mismatch: recorded ${landing.revision}, retained ${actual}`);
163
+ }
164
+ const files = await fileCount(tree);
165
+ if (!files)
166
+ throw new Error("Retained feed tree is empty; a fed volume never serves nothing");
167
+ const prepared = landing.source.prepared ? { prepared: landing.source.prepared } : {};
168
+ const identity = { version: FEED_IDENTITY_VERSION, resource: input.id, volume: landing.volume, revision: landing.revision,
169
+ tree: `trees/${retainedName}`, files, landed_at: landing.landed_at,
170
+ source: landing.source.kind === "git" ? { kind: "git", commit: landing.commit, ref: landing.ref, paths: landing.paths ?? null, ...prepared }
171
+ : { kind: "directory", ...prepared } };
172
+ await symlink(identity.tree, path.join(context.destination, "current"));
173
+ await writeFile(path.join(context.destination, FEED_IDENTITY_FILE), `${JSON.stringify(identity, null, 2)}\n`);
174
+ return { fidelity: isPrepared || basis === "feed-rule-at" || ambiguous ? "approximate" : "exact", basis,
175
+ source: { revision: landing.revision, landedAt: landing.landed_at,
176
+ ...(basis === "landing-log" || matching ? { switchingAt: landing.switching_at } : {}),
177
+ ...(landing.commit ? { commit: landing.commit } : {}), ...(isPrepared ? { prepared: true } : {}) },
178
+ instant: compareInstants(landing.landed_at, context.at) > 0 ? context.at : landing.landed_at,
179
+ notes: [...(isPrepared ? ["prepared output not content-verifiable"] : []),
180
+ ...(ambiguous ? ["The trial instant falls inside an ambiguous feed transition; the incoming landing is used."]
181
+ : basis === "feed-rule-at" ? ["Commit dates do not establish when a ref advanced; historical freeze holds cannot be reconstructed."] : [])] };
182
+ };
@@ -0,0 +1,6 @@
1
+ import { type FeedIdentity } from "../../../volume/index.js";
2
+ export declare const feedGitRevision: (repo: string, commit: string, ref: string, paths?: string[] | null) => string;
3
+ /** A prepared revision proves the recipe/source identity, never its output bytes. */
4
+ export declare const assertPreparedFeedRevision: (revision: string, prepared: NonNullable<FeedIdentity["source"]["prepared"]>) => void;
5
+ /** Acceptance re-extracts from history; it does not consume any producer-computed content digest. */
6
+ export declare const verifyPlainFeedTree: (repo: string, identity: FeedIdentity, directory: string) => Promise<void>;
@@ -0,0 +1,38 @@
1
+ import { createHash } from "node:crypto";
2
+ import { mkdtemp, rm } from "node:fs/promises";
3
+ import os from "node:os";
4
+ import path from "node:path";
5
+ import { digestDirectory, resolveFeedSource } from "../../../volume/index.js";
6
+ import { exportFeedGitTree } from "./gitArchive.js";
7
+ import { rewindGitSync } from "./gitProcess.js";
8
+ const revisionExec = (command, args) => {
9
+ if (command !== "git" || args[0] !== "-C" || !args[1])
10
+ throw new Error("Feed revision may only read a local git repository");
11
+ return rewindGitSync(args[1], args.slice(2));
12
+ };
13
+ export const feedGitRevision = (repo, commit, ref, paths) => resolveFeedSource({ kind: "git", fetch: false, repo, ref: commit, label: ref, paths: paths?.length ? paths : undefined }, { exec: revisionExec }).revision;
14
+ /** A prepared revision proves the recipe/source identity, never its output bytes. */
15
+ export const assertPreparedFeedRevision = (revision, prepared) => {
16
+ const provenance = { include: prepared.include, prepare: prepared.prepare, source_revision: prepared.source_revision };
17
+ const actual = createHash("sha256").update(`prepared\n${JSON.stringify(provenance)}\n`).digest("hex");
18
+ if (actual !== revision)
19
+ throw new Error("Prepared feed revision disagrees with its provenance");
20
+ };
21
+ /** Acceptance re-extracts from history; it does not consume any producer-computed content digest. */
22
+ export const verifyPlainFeedTree = async (repo, identity, directory) => {
23
+ const source = identity.source;
24
+ if (source.kind !== "git")
25
+ throw new Error("Plain git feed verification requires git provenance");
26
+ if (feedGitRevision(repo, source.commit, source.ref, source.paths) !== identity.revision) {
27
+ throw new Error("Feed revision disagrees with selected commit and paths");
28
+ }
29
+ const scratch = await mkdtemp(path.join(os.tmpdir(), "spawnfile-feed-check-"));
30
+ try {
31
+ await exportFeedGitTree(repo, source.commit, scratch, source.paths?.length ? source.paths : undefined);
32
+ if (digestDirectory(directory) !== digestDirectory(scratch))
33
+ throw new Error("Git feed bytes disagree with selected commit and paths");
34
+ }
35
+ finally {
36
+ await rm(scratch, { recursive: true, force: true });
37
+ }
38
+ };
@@ -0,0 +1,8 @@
1
+ import type { InputContext, InputResult } from "./types.js";
2
+ export { commitAt, commitInstant, resolveRewindCommit, rewindGit, rewindGitEnvironment, rewindGitSync, selectCommitAt } from "./gitProcess.js";
3
+ export { exportGitTree } from "./gitTree.js";
4
+ export { assertLocalGitRepository } from "./gitHistory.js";
5
+ export declare const localRepositoryPath: (location: string, base: string) => string;
6
+ /** Import only the transitive object set of the selected commit; no source refs or config survive. */
7
+ export declare const materializeCleanRepository: (repository: string, commit: string, destination: string) => Promise<void>;
8
+ export declare const materializeGit: (context: InputContext) => Promise<InputResult>;