spawnfile 0.1.33 → 0.1.35

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 (606) hide show
  1. package/README.md +1 -1
  2. package/dist/audit/readAudit.d.ts +3 -3
  3. package/dist/auth/profileStore.d.ts +3 -1
  4. package/dist/auth/profileStore.js +31 -30
  5. package/dist/auth/trainingAuth.d.ts +2 -5
  6. package/dist/auth/types.d.ts +16 -0
  7. package/dist/cli/authCommands.d.ts +1 -1
  8. package/dist/cli/authCommands.js +21 -1
  9. package/dist/cli/devCommands.d.ts +1 -1
  10. package/dist/cli/devCommands.js +0 -66
  11. package/dist/cli/runCli.d.ts +3 -4
  12. package/dist/cli/runCli.js +4 -3
  13. package/dist/cli/trainCommand.js +9 -15
  14. package/dist/cli/trainingBooted.d.ts +9 -0
  15. package/dist/cli/trainingBooted.js +45 -0
  16. package/dist/cli/trainingExecution.d.ts +4 -7
  17. package/dist/cli/trainingExecution.js +4 -32
  18. package/dist/compiler/containerArtifacts.js +0 -5
  19. package/dist/compiler/containerBackedMountRender.js +5 -1
  20. package/dist/compiler/containerDaimonBrokerRender.d.ts +5 -50
  21. package/dist/compiler/containerDaimonBrokerRender.js +19 -90
  22. package/dist/compiler/containerDaimonGatewayRender.d.ts +50 -0
  23. package/dist/compiler/containerDaimonGatewayRender.js +161 -0
  24. package/dist/compiler/containerDaimonGrokWorkerProvisioning.d.ts +2 -10
  25. package/dist/compiler/containerDaimonGrokWorkerProvisioning.js +13 -25
  26. package/dist/compiler/containerDaimonGrokWorkerRender.d.ts +11 -49
  27. package/dist/compiler/containerDaimonGrokWorkerRender.js +15 -39
  28. package/dist/compiler/containerDaimonStartupSupervision.d.ts +8 -0
  29. package/dist/compiler/containerDaimonStartupSupervision.js +39 -0
  30. package/dist/compiler/containerDaimonUidEntrypointRender.d.ts +1 -2
  31. package/dist/compiler/containerDaimonUidEntrypointRender.js +29 -47
  32. package/dist/compiler/containerRuntimeReadinessRender.js +1 -1
  33. package/dist/compiler/memoryArtifacts.js +0 -1
  34. package/dist/compiler/moltnetArtifacts.js +1 -17
  35. package/dist/compiler/moltnetClientConfig.js +1 -1
  36. package/dist/compiler/moltnetRuntimeConfig.js +0 -10
  37. package/dist/compiler/runProject.d.ts +3 -0
  38. package/dist/compiler/runProject.js +12 -5
  39. package/dist/compiler/runProjectAuth.js +6 -18
  40. package/dist/compiler/training/contract.d.ts +0 -2
  41. package/dist/compiler/training/contract.js +0 -2
  42. package/dist/compiler/training/execution.d.ts +1 -128
  43. package/dist/compiler/training/execution.js +7 -68
  44. package/dist/compiler/training/index.d.ts +0 -8
  45. package/dist/compiler/training/index.js +0 -7
  46. package/dist/compiler/training/output.d.ts +1 -0
  47. package/dist/compiler/training/output.js +1 -1
  48. package/dist/compiler/training/rewind/contract.d.ts +6 -6
  49. package/dist/compiler/training/trial/boot.d.ts +72 -0
  50. package/dist/compiler/training/trial/boot.js +225 -0
  51. package/dist/compiler/training/trial/docker.d.ts +10 -0
  52. package/dist/compiler/training/trial/docker.js +22 -0
  53. package/dist/compiler/training/trial/gateway.d.ts +47 -0
  54. package/dist/compiler/training/trial/gateway.js +113 -0
  55. package/dist/compiler/training/trial/homeLogin.d.ts +31 -0
  56. package/dist/compiler/training/trial/homeLogin.js +69 -0
  57. package/dist/compiler/training/trial/index.d.ts +8 -0
  58. package/dist/compiler/training/trial/index.js +8 -0
  59. package/dist/compiler/training/trial/judge.d.ts +15 -0
  60. package/dist/compiler/training/trial/judge.js +42 -0
  61. package/dist/compiler/training/trial/launcher.d.ts +47 -0
  62. package/dist/compiler/training/trial/launcher.js +193 -0
  63. package/dist/compiler/training/trial/login.d.ts +35 -0
  64. package/dist/compiler/training/trial/login.js +85 -0
  65. package/dist/compiler/training/trial/project.d.ts +11 -0
  66. package/dist/compiler/training/trial/project.js +31 -0
  67. package/dist/compiler/training/trial/realmTurns.d.ts +20 -0
  68. package/dist/compiler/training/trial/realmTurns.js +69 -0
  69. package/dist/compiler/upReceipt.d.ts +2 -17
  70. package/dist/compiler/upReceipt.js +2 -17
  71. package/dist/deployment/artifactsExportPlan.js +2 -18
  72. package/dist/deployment/privateArtifactsExport.js +1 -1
  73. package/dist/dev/docker.d.ts +0 -5
  74. package/dist/dev/docker.js +0 -46
  75. package/dist/dev/index.d.ts +0 -1
  76. package/dist/dev/index.js +0 -1
  77. package/dist/dev/project.d.ts +0 -16
  78. package/dist/dev/project.js +1 -128
  79. package/dist/distribution/distributionReportSchema.js +1 -1
  80. package/dist/distribution/imageRuntimeAuth.js +3 -2
  81. package/dist/manifest/renderSpawnfile.js +2 -1
  82. package/dist/release/drainControl.d.ts +5 -19
  83. package/dist/release/drainControl.js +12 -67
  84. package/dist/report/types.d.ts +3 -6
  85. package/dist/runtime/common.d.ts +1 -1
  86. package/dist/runtime/common.js +1 -1
  87. package/dist/runtime/container.d.ts +2 -2
  88. package/dist/runtime/container.js +1 -39
  89. package/dist/runtime/daimon/config.js +8 -14
  90. package/dist/runtime/daimon/contractManifest.js +0 -1
  91. package/dist/runtime/daimon/contractManifestSchema.js +0 -1
  92. package/dist/runtime/daimon/control.d.ts +31 -0
  93. package/dist/runtime/daimon/control.js +83 -0
  94. package/dist/runtime/daimon/engineDescriptorSchema.js +0 -1
  95. package/dist/runtime/daimon/engineDescriptors.generated.d.ts +1 -1
  96. package/dist/runtime/daimon/engineDescriptors.generated.js +1 -2
  97. package/dist/runtime/daimon/engines.js +0 -1
  98. package/dist/runtime/daimon/gateway.d.ts +62 -0
  99. package/dist/runtime/daimon/gateway.js +77 -0
  100. package/dist/runtime/daimon/grokWorkerContract.d.ts +0 -5
  101. package/dist/runtime/daimon/grokWorkerContract.js +1 -13
  102. package/dist/runtime/daimon/index.d.ts +2 -0
  103. package/dist/runtime/daimon/index.js +2 -1
  104. package/dist/runtime/daimon/memory.js +1 -1
  105. package/dist/runtime/daimon/packageName.js +0 -1
  106. package/dist/runtime/daimon/runAuth.js +15 -4
  107. package/dist/runtime/daimon/runtimeIdentity.d.ts +2 -0
  108. package/dist/runtime/daimon/runtimeIdentity.js +2 -0
  109. package/dist/runtime/daimon/subscriptionRealms.d.ts +27 -3
  110. package/dist/runtime/daimon/subscriptionRealms.js +35 -13
  111. package/dist/runtime/daimon/testHelpers.d.ts +2 -0
  112. package/dist/runtime/{pi → daimon}/testHelpers.js +3 -3
  113. package/dist/runtime/daimon/training/booted/adapter.d.ts +50 -0
  114. package/dist/runtime/daimon/training/booted/adapter.js +60 -0
  115. package/dist/runtime/daimon/training/booted/adapter.js.map +1 -0
  116. package/dist/runtime/daimon/training/booted/index.d.ts +4 -0
  117. package/dist/runtime/daimon/training/booted/index.js +3 -0
  118. package/dist/runtime/daimon/training/booted/index.js.map +1 -0
  119. package/dist/runtime/daimon/training/booted/judge.d.ts +39 -0
  120. package/dist/runtime/daimon/training/booted/judge.js +122 -0
  121. package/dist/runtime/daimon/training/booted/judge.js.map +1 -0
  122. package/dist/runtime/daimon/training/index.d.ts +5 -0
  123. package/dist/runtime/daimon/training/index.js +8 -4
  124. package/dist/runtime/daimon/training/index.js.map +1 -1
  125. package/dist/runtime/daimon/wakeMoments.js +0 -1
  126. package/dist/runtime/install.js +0 -21
  127. package/dist/runtime/registry.js +0 -2
  128. package/dist/runtime/trainingGraderProviders.js +10 -4
  129. package/dist/runtime/trainingProviders.d.ts +5 -3
  130. package/dist/runtime/trainingProviders.js +21 -24
  131. package/dist/runtime/trainingSubjects.d.ts +0 -121
  132. package/dist/runtime/trainingSubjects.js +2 -13
  133. package/dist/runtime/types.d.ts +1 -8
  134. package/dist/runtime/usageRequestLedger.d.ts +2 -0
  135. package/dist/runtime/usageRequestLedger.js +3 -1
  136. package/dist/shared/errors.js +0 -1
  137. package/dist/shared/trainingLegacy/trainingLegacyHashDomains.d.ts +1 -0
  138. package/dist/shared/trainingLegacy/trainingLegacyHashDomains.js +1 -0
  139. package/dist/shared/trainingLegacy/trainingLegacyHashDomains.js.map +1 -1
  140. package/dist/status/lifecycleProbes.js +3 -6
  141. package/dist/status/moltnetWiringProbes.js +1 -17
  142. package/dist/training/subjects/index.d.ts +0 -1
  143. package/dist/training/subjects/index.js +0 -1
  144. package/dist/training/subjects/index.js.map +1 -1
  145. package/examples/README.md +0 -1
  146. package/examples/daimon-org/agents/mapper/Spawnfile +4 -1
  147. package/examples/daimon-org/teams/review/agents/reviewer/Spawnfile +4 -1
  148. package/examples/jungian-daimon-org/teams/luna/agents/animus/Spawnfile +5 -8
  149. package/examples/jungian-daimon-org/teams/luna/agents/representative/Spawnfile +1 -1
  150. package/examples/jungian-daimon-org/teams/luna/agents/shadow/Spawnfile +5 -8
  151. package/examples/jungian-daimon-org/teams/selene/agents/animus/Spawnfile +5 -8
  152. package/examples/jungian-daimon-org/teams/selene/agents/representative/Spawnfile +5 -8
  153. package/examples/jungian-daimon-org/teams/selene/agents/shadow/Spawnfile +1 -1
  154. package/examples/mixed-runtime-org/agents/localist/Spawnfile +7 -7
  155. package/package.json +4 -13
  156. package/runtimes.yaml +5 -15
  157. package/dist/compiler/containerDaimonGrokTaskClock.d.ts +0 -5
  158. package/dist/compiler/containerDaimonGrokTaskClock.js +0 -29
  159. package/dist/compiler/daimonTelemetryArtifacts.d.ts +0 -22
  160. package/dist/compiler/daimonTelemetryArtifacts.js +0 -56
  161. package/dist/compiler/training/broker/clockProbe.d.ts +0 -6
  162. package/dist/compiler/training/broker/clockProbe.js +0 -27
  163. package/dist/compiler/training/broker/declaration.d.ts +0 -54
  164. package/dist/compiler/training/broker/declaration.js +0 -70
  165. package/dist/compiler/training/broker/entrypoint.d.ts +0 -39
  166. package/dist/compiler/training/broker/entrypoint.js +0 -124
  167. package/dist/compiler/training/broker/evaluatorSecrets.d.ts +0 -2
  168. package/dist/compiler/training/broker/evaluatorSecrets.js +0 -62
  169. package/dist/compiler/training/broker/index.d.ts +0 -12
  170. package/dist/compiler/training/broker/index.js +0 -12
  171. package/dist/compiler/training/broker/main.d.ts +0 -2
  172. package/dist/compiler/training/broker/main.js +0 -14
  173. package/dist/compiler/training/broker/paths.d.ts +0 -236
  174. package/dist/compiler/training/broker/paths.js +0 -249
  175. package/dist/compiler/training/broker/processes.d.ts +0 -51
  176. package/dist/compiler/training/broker/processes.js +0 -102
  177. package/dist/compiler/training/broker/projection.d.ts +0 -61
  178. package/dist/compiler/training/broker/projection.js +0 -109
  179. package/dist/compiler/training/broker/provisioning.d.ts +0 -78
  180. package/dist/compiler/training/broker/provisioning.js +0 -231
  181. package/dist/compiler/training/broker/receipt.d.ts +0 -77
  182. package/dist/compiler/training/broker/receipt.js +0 -110
  183. package/dist/compiler/training/broker/recycleClient.d.ts +0 -33
  184. package/dist/compiler/training/broker/recycleClient.js +0 -112
  185. package/dist/compiler/training/broker/registration.d.ts +0 -46
  186. package/dist/compiler/training/broker/registration.js +0 -113
  187. package/dist/compiler/training/broker/reset.d.ts +0 -9
  188. package/dist/compiler/training/broker/reset.js +0 -71
  189. package/dist/compiler/training/broker/rootScript.d.ts +0 -32
  190. package/dist/compiler/training/broker/rootScript.js +0 -33
  191. package/dist/compiler/training/broker/runtime.d.ts +0 -22
  192. package/dist/compiler/training/broker/runtime.js +0 -128
  193. package/dist/compiler/training/broker/seccompRoutes.d.ts +0 -31
  194. package/dist/compiler/training/broker/seccompRoutes.js +0 -36
  195. package/dist/compiler/training/broker/supervisor.d.ts +0 -108
  196. package/dist/compiler/training/broker/supervisor.js +0 -172
  197. package/dist/compiler/training/broker/taskClock.d.ts +0 -5
  198. package/dist/compiler/training/broker/taskClock.js +0 -41
  199. package/dist/compiler/training/container/contract.d.ts +0 -54
  200. package/dist/compiler/training/container/contract.js +0 -52
  201. package/dist/compiler/training/container/evaluators.d.ts +0 -48
  202. package/dist/compiler/training/container/evaluators.js +0 -50
  203. package/dist/compiler/training/container/grokWriteback.d.ts +0 -8
  204. package/dist/compiler/training/container/grokWriteback.js +0 -26
  205. package/dist/compiler/training/container/index.d.ts +0 -5
  206. package/dist/compiler/training/container/index.js +0 -3
  207. package/dist/compiler/training/container/launch.d.ts +0 -21
  208. package/dist/compiler/training/container/launch.js +0 -280
  209. package/dist/compiler/training/container/nativeSlots.d.ts +0 -14
  210. package/dist/compiler/training/container/nativeSlots.js +0 -13
  211. package/dist/compiler/training/container/outputCopy.d.ts +0 -2
  212. package/dist/compiler/training/container/outputCopy.js +0 -72
  213. package/dist/compiler/training/container/outputVolume.d.ts +0 -28
  214. package/dist/compiler/training/container/outputVolume.js +0 -185
  215. package/dist/compiler/training/container/prepare.d.ts +0 -10
  216. package/dist/compiler/training/container/prepare.js +0 -125
  217. package/dist/compiler/training/container/process.d.ts +0 -14
  218. package/dist/compiler/training/container/process.js +0 -70
  219. package/dist/compiler/training/container/security.d.ts +0 -38
  220. package/dist/compiler/training/container/security.js +0 -68
  221. package/dist/compiler/training/container/subjectIsolation.d.ts +0 -5
  222. package/dist/compiler/training/container/subjectIsolation.js +0 -16
  223. package/dist/compiler/training/preparation/assets/Dockerfile +0 -100
  224. package/dist/compiler/training/preparation/assets/package-lock.json +0 -5483
  225. package/dist/compiler/training/preparation/broker.d.ts +0 -30
  226. package/dist/compiler/training/preparation/broker.js +0 -68
  227. package/dist/compiler/training/preparation/contextModes.d.ts +0 -12
  228. package/dist/compiler/training/preparation/contextModes.js +0 -38
  229. package/dist/compiler/training/preparation/contract.d.ts +0 -203
  230. package/dist/compiler/training/preparation/contract.js +0 -114
  231. package/dist/compiler/training/preparation/copyAssets.d.ts +0 -1
  232. package/dist/compiler/training/preparation/copyAssets.js +0 -8
  233. package/dist/compiler/training/preparation/daimonParent.d.ts +0 -42
  234. package/dist/compiler/training/preparation/daimonParent.js +0 -114
  235. package/dist/compiler/training/preparation/files.d.ts +0 -29
  236. package/dist/compiler/training/preparation/files.js +0 -146
  237. package/dist/compiler/training/preparation/image.d.ts +0 -28
  238. package/dist/compiler/training/preparation/image.js +0 -105
  239. package/dist/compiler/training/preparation/index.d.ts +0 -3
  240. package/dist/compiler/training/preparation/index.js +0 -2
  241. package/dist/compiler/training/preparation/inputs.d.ts +0 -24
  242. package/dist/compiler/training/preparation/inputs.js +0 -101
  243. package/dist/compiler/training/preparation/prepare.d.ts +0 -38
  244. package/dist/compiler/training/preparation/prepare.js +0 -224
  245. package/dist/compiler/training/preparation/scratch.d.ts +0 -8
  246. package/dist/compiler/training/preparation/scratch.js +0 -114
  247. package/dist/compiler/training/repair/compatibility.d.ts +0 -11
  248. package/dist/compiler/training/repair/compatibility.js +0 -45
  249. package/dist/compiler/training/repair/contract.d.ts +0 -832
  250. package/dist/compiler/training/repair/contract.js +0 -34
  251. package/dist/compiler/training/repair/index.d.ts +0 -3
  252. package/dist/compiler/training/repair/index.js +0 -3
  253. package/dist/compiler/training/repair/prepare.d.ts +0 -378
  254. package/dist/compiler/training/repair/prepare.js +0 -84
  255. package/dist/compiler/training/repair/witness.d.ts +0 -348
  256. package/dist/compiler/training/repair/witness.js +0 -62
  257. package/dist/compiler/training/subjectDeclaration.d.ts +0 -26
  258. package/dist/compiler/training/subjectDeclaration.js +0 -54
  259. package/dist/compiler/training/subjectLease.d.ts +0 -115
  260. package/dist/compiler/training/subjectLease.js +0 -179
  261. package/dist/dev/activity.d.ts +0 -14
  262. package/dist/dev/activity.js +0 -48
  263. package/dist/runtime/codex-exec/training/adapter.d.ts +0 -13
  264. package/dist/runtime/codex-exec/training/adapter.js +0 -101
  265. package/dist/runtime/codex-exec/training/adapter.js.map +0 -1
  266. package/dist/runtime/codex-exec/training/environment.d.ts +0 -3
  267. package/dist/runtime/codex-exec/training/environment.js +0 -26
  268. package/dist/runtime/codex-exec/training/environment.js.map +0 -1
  269. package/dist/runtime/codex-exec/training/index.d.ts +0 -2
  270. package/dist/runtime/codex-exec/training/index.js +0 -3
  271. package/dist/runtime/codex-exec/training/index.js.map +0 -1
  272. package/dist/runtime/codex-exec/training/protocol.d.ts +0 -15
  273. package/dist/runtime/codex-exec/training/protocol.js +0 -102
  274. package/dist/runtime/codex-exec/training/protocol.js.map +0 -1
  275. package/dist/runtime/codex-exec/training/providers/codex-subscription/index.d.ts +0 -1
  276. package/dist/runtime/codex-exec/training/providers/codex-subscription/index.js +0 -2
  277. package/dist/runtime/codex-exec/training/providers/codex-subscription/index.js.map +0 -1
  278. package/dist/runtime/codex-exec/training/providers/codex-subscription/protocol.d.ts +0 -17
  279. package/dist/runtime/codex-exec/training/providers/codex-subscription/protocol.js +0 -80
  280. package/dist/runtime/codex-exec/training/providers/codex-subscription/protocol.js.map +0 -1
  281. package/dist/runtime/codex-exec/training/providers/codex-subscription/provider.d.ts +0 -12
  282. package/dist/runtime/codex-exec/training/providers/codex-subscription/provider.js +0 -125
  283. package/dist/runtime/codex-exec/training/providers/codex-subscription/provider.js.map +0 -1
  284. package/dist/runtime/codex-exec/training/providers/codex-subscription/strict-schema.d.ts +0 -6
  285. package/dist/runtime/codex-exec/training/providers/codex-subscription/strict-schema.js +0 -219
  286. package/dist/runtime/codex-exec/training/providers/codex-subscription/strict-schema.js.map +0 -1
  287. package/dist/runtime/daimon/contractManifest.js.map +0 -1
  288. package/dist/runtime/daimon/contractManifestSchema.js.map +0 -1
  289. package/dist/runtime/daimon/engineDescriptorSchema.js.map +0 -1
  290. package/dist/runtime/daimon/engineDescriptors.generated.js.map +0 -1
  291. package/dist/runtime/daimon/engines.js.map +0 -1
  292. package/dist/runtime/daimon/index.js.map +0 -1
  293. package/dist/runtime/daimon/packageName.js.map +0 -1
  294. package/dist/runtime/daimon/training/legacy/adapter.d.ts +0 -11
  295. package/dist/runtime/daimon/training/legacy/adapter.js +0 -175
  296. package/dist/runtime/daimon/training/legacy/adapter.js.map +0 -1
  297. package/dist/runtime/daimon/training/legacy/index.d.ts +0 -2
  298. package/dist/runtime/daimon/training/legacy/index.js +0 -3
  299. package/dist/runtime/daimon/training/legacy/index.js.map +0 -1
  300. package/dist/runtime/daimon/training/legacy/public.d.ts +0 -49
  301. package/dist/runtime/daimon/training/legacy/public.js +0 -16
  302. package/dist/runtime/daimon/training/legacy/public.js.map +0 -1
  303. package/dist/runtime/daimon/training/native/adapter.d.ts +0 -18
  304. package/dist/runtime/daimon/training/native/adapter.js +0 -252
  305. package/dist/runtime/daimon/training/native/adapter.js.map +0 -1
  306. package/dist/runtime/daimon/training/native/admission.d.ts +0 -7
  307. package/dist/runtime/daimon/training/native/admission.js +0 -52
  308. package/dist/runtime/daimon/training/native/admission.js.map +0 -1
  309. package/dist/runtime/daimon/training/native/child/arguments.d.ts +0 -16
  310. package/dist/runtime/daimon/training/native/child/arguments.js +0 -70
  311. package/dist/runtime/daimon/training/native/child/arguments.js.map +0 -1
  312. package/dist/runtime/daimon/training/native/child/deferred-trial.d.ts +0 -24
  313. package/dist/runtime/daimon/training/native/child/deferred-trial.js +0 -63
  314. package/dist/runtime/daimon/training/native/child/deferred-trial.js.map +0 -1
  315. package/dist/runtime/daimon/training/native/child/diagnostics.d.ts +0 -58
  316. package/dist/runtime/daimon/training/native/child/diagnostics.js +0 -215
  317. package/dist/runtime/daimon/training/native/child/diagnostics.js.map +0 -1
  318. package/dist/runtime/daimon/training/native/child/fixture.d.ts +0 -16
  319. package/dist/runtime/daimon/training/native/child/fixture.js +0 -159
  320. package/dist/runtime/daimon/training/native/child/fixture.js.map +0 -1
  321. package/dist/runtime/daimon/training/native/child/grok.d.ts +0 -14
  322. package/dist/runtime/daimon/training/native/child/grok.js +0 -47
  323. package/dist/runtime/daimon/training/native/child/grok.js.map +0 -1
  324. package/dist/runtime/daimon/training/native/child/index.d.ts +0 -7
  325. package/dist/runtime/daimon/training/native/child/index.js +0 -5
  326. package/dist/runtime/daimon/training/native/child/index.js.map +0 -1
  327. package/dist/runtime/daimon/training/native/child/lifecycle.d.ts +0 -40
  328. package/dist/runtime/daimon/training/native/child/lifecycle.js +0 -400
  329. package/dist/runtime/daimon/training/native/child/lifecycle.js.map +0 -1
  330. package/dist/runtime/daimon/training/native/child/probe.d.ts +0 -2
  331. package/dist/runtime/daimon/training/native/child/probe.js +0 -11
  332. package/dist/runtime/daimon/training/native/child/probe.js.map +0 -1
  333. package/dist/runtime/daimon/training/native/child/sandbox.d.ts +0 -4
  334. package/dist/runtime/daimon/training/native/child/sandbox.js +0 -76
  335. package/dist/runtime/daimon/training/native/child/sandbox.js.map +0 -1
  336. package/dist/runtime/daimon/training/native/child/types.d.ts +0 -15
  337. package/dist/runtime/daimon/training/native/child/types.js +0 -2
  338. package/dist/runtime/daimon/training/native/child/types.js.map +0 -1
  339. package/dist/runtime/daimon/training/native/container/docker.d.ts +0 -29
  340. package/dist/runtime/daimon/training/native/container/docker.js +0 -105
  341. package/dist/runtime/daimon/training/native/container/docker.js.map +0 -1
  342. package/dist/runtime/daimon/training/native/container/grok-slot.d.ts +0 -22
  343. package/dist/runtime/daimon/training/native/container/grok-slot.js +0 -38
  344. package/dist/runtime/daimon/training/native/container/grok-slot.js.map +0 -1
  345. package/dist/runtime/daimon/training/native/container/index.d.ts +0 -6
  346. package/dist/runtime/daimon/training/native/container/index.js +0 -6
  347. package/dist/runtime/daimon/training/native/container/index.js.map +0 -1
  348. package/dist/runtime/daimon/training/native/container/lifecycle.d.ts +0 -8
  349. package/dist/runtime/daimon/training/native/container/lifecycle.js +0 -111
  350. package/dist/runtime/daimon/training/native/container/lifecycle.js.map +0 -1
  351. package/dist/runtime/daimon/training/native/container/manifest.d.ts +0 -17
  352. package/dist/runtime/daimon/training/native/container/manifest.js +0 -164
  353. package/dist/runtime/daimon/training/native/container/manifest.js.map +0 -1
  354. package/dist/runtime/daimon/training/native/container/native-preflight.d.ts +0 -8
  355. package/dist/runtime/daimon/training/native/container/native-preflight.js +0 -40
  356. package/dist/runtime/daimon/training/native/container/native-preflight.js.map +0 -1
  357. package/dist/runtime/daimon/training/native/container/preflight.d.ts +0 -15
  358. package/dist/runtime/daimon/training/native/container/preflight.js +0 -79
  359. package/dist/runtime/daimon/training/native/container/preflight.js.map +0 -1
  360. package/dist/runtime/daimon/training/native/container/slot.d.ts +0 -4
  361. package/dist/runtime/daimon/training/native/container/slot.js +0 -58
  362. package/dist/runtime/daimon/training/native/container/slot.js.map +0 -1
  363. package/dist/runtime/daimon/training/native/external.d.ts +0 -37
  364. package/dist/runtime/daimon/training/native/external.js +0 -75
  365. package/dist/runtime/daimon/training/native/external.js.map +0 -1
  366. package/dist/runtime/daimon/training/native/grants/authority.d.ts +0 -36
  367. package/dist/runtime/daimon/training/native/grants/authority.js +0 -49
  368. package/dist/runtime/daimon/training/native/grants/authority.js.map +0 -1
  369. package/dist/runtime/daimon/training/native/grants/index.d.ts +0 -2
  370. package/dist/runtime/daimon/training/native/grants/index.js +0 -3
  371. package/dist/runtime/daimon/training/native/grants/index.js.map +0 -1
  372. package/dist/runtime/daimon/training/native/grants/pins.d.ts +0 -30
  373. package/dist/runtime/daimon/training/native/grants/pins.js +0 -20
  374. package/dist/runtime/daimon/training/native/grants/pins.js.map +0 -1
  375. package/dist/runtime/daimon/training/native/grants/test-socket.d.ts +0 -6
  376. package/dist/runtime/daimon/training/native/grants/test-socket.js +0 -35
  377. package/dist/runtime/daimon/training/native/grants/test-socket.js.map +0 -1
  378. package/dist/runtime/daimon/training/native/grok-fixtures.d.ts +0 -34
  379. package/dist/runtime/daimon/training/native/grok-fixtures.js +0 -179
  380. package/dist/runtime/daimon/training/native/grok-fixtures.js.map +0 -1
  381. package/dist/runtime/daimon/training/native/index.d.ts +0 -38
  382. package/dist/runtime/daimon/training/native/index.js +0 -27
  383. package/dist/runtime/daimon/training/native/index.js.map +0 -1
  384. package/dist/runtime/daimon/training/native/live-checkout.d.ts +0 -2
  385. package/dist/runtime/daimon/training/native/live-checkout.js +0 -15
  386. package/dist/runtime/daimon/training/native/live-checkout.js.map +0 -1
  387. package/dist/runtime/daimon/training/native/observations.d.ts +0 -51
  388. package/dist/runtime/daimon/training/native/observations.js +0 -217
  389. package/dist/runtime/daimon/training/native/observations.js.map +0 -1
  390. package/dist/runtime/daimon/training/native/outcome.d.ts +0 -13
  391. package/dist/runtime/daimon/training/native/outcome.js +0 -37
  392. package/dist/runtime/daimon/training/native/outcome.js.map +0 -1
  393. package/dist/runtime/daimon/training/native/preparation/engine-config.d.ts +0 -21
  394. package/dist/runtime/daimon/training/native/preparation/engine-config.js +0 -30
  395. package/dist/runtime/daimon/training/native/preparation/engine-config.js.map +0 -1
  396. package/dist/runtime/daimon/training/native/preparation/fixtures.d.ts +0 -17
  397. package/dist/runtime/daimon/training/native/preparation/fixtures.js +0 -52
  398. package/dist/runtime/daimon/training/native/preparation/fixtures.js.map +0 -1
  399. package/dist/runtime/daimon/training/native/preparation/index.d.ts +0 -7
  400. package/dist/runtime/daimon/training/native/preparation/index.js +0 -5
  401. package/dist/runtime/daimon/training/native/preparation/index.js.map +0 -1
  402. package/dist/runtime/daimon/training/native/preparation/layout.d.ts +0 -66
  403. package/dist/runtime/daimon/training/native/preparation/layout.js +0 -87
  404. package/dist/runtime/daimon/training/native/preparation/layout.js.map +0 -1
  405. package/dist/runtime/daimon/training/native/preparation/subject.d.ts +0 -14
  406. package/dist/runtime/daimon/training/native/preparation/subject.js +0 -67
  407. package/dist/runtime/daimon/training/native/preparation/subject.js.map +0 -1
  408. package/dist/runtime/daimon/training/native/preparation/types.d.ts +0 -69
  409. package/dist/runtime/daimon/training/native/preparation/types.js +0 -2
  410. package/dist/runtime/daimon/training/native/preparation/types.js.map +0 -1
  411. package/dist/runtime/daimon/training/native/receipt/artifacts.d.ts +0 -25
  412. package/dist/runtime/daimon/training/native/receipt/artifacts.js +0 -32
  413. package/dist/runtime/daimon/training/native/receipt/artifacts.js.map +0 -1
  414. package/dist/runtime/daimon/training/native/receipt/grok-clocked-pins.d.ts +0 -129
  415. package/dist/runtime/daimon/training/native/receipt/grok-clocked-pins.js +0 -45
  416. package/dist/runtime/daimon/training/native/receipt/grok-clocked-pins.js.map +0 -1
  417. package/dist/runtime/daimon/training/native/receipt/grok.d.ts +0 -246
  418. package/dist/runtime/daimon/training/native/receipt/grok.js +0 -195
  419. package/dist/runtime/daimon/training/native/receipt/grok.js.map +0 -1
  420. package/dist/runtime/daimon/training/native/receipt/index.d.ts +0 -11
  421. package/dist/runtime/daimon/training/native/receipt/index.js +0 -8
  422. package/dist/runtime/daimon/training/native/receipt/index.js.map +0 -1
  423. package/dist/runtime/daimon/training/native/receipt/paths.d.ts +0 -3
  424. package/dist/runtime/daimon/training/native/receipt/paths.js +0 -18
  425. package/dist/runtime/daimon/training/native/receipt/paths.js.map +0 -1
  426. package/dist/runtime/daimon/training/native/receipt/sandbox.d.ts +0 -42
  427. package/dist/runtime/daimon/training/native/receipt/sandbox.js +0 -35
  428. package/dist/runtime/daimon/training/native/receipt/sandbox.js.map +0 -1
  429. package/dist/runtime/daimon/training/native/receipt/schema.d.ts +0 -490
  430. package/dist/runtime/daimon/training/native/receipt/schema.js +0 -138
  431. package/dist/runtime/daimon/training/native/receipt/schema.js.map +0 -1
  432. package/dist/runtime/daimon/training/native/receipt/subscription.d.ts +0 -13
  433. package/dist/runtime/daimon/training/native/receipt/subscription.js +0 -13
  434. package/dist/runtime/daimon/training/native/receipt/subscription.js.map +0 -1
  435. package/dist/runtime/daimon/training/native/receipt/task-clock.d.ts +0 -19
  436. package/dist/runtime/daimon/training/native/receipt/task-clock.js +0 -49
  437. package/dist/runtime/daimon/training/native/receipt/task-clock.js.map +0 -1
  438. package/dist/runtime/daimon/training/native/sealed-usage.d.ts +0 -218
  439. package/dist/runtime/daimon/training/native/sealed-usage.js +0 -261
  440. package/dist/runtime/daimon/training/native/sealed-usage.js.map +0 -1
  441. package/dist/runtime/daimon/training/native/test-fixtures.d.ts +0 -27
  442. package/dist/runtime/daimon/training/native/test-fixtures.js +0 -162
  443. package/dist/runtime/daimon/training/native/test-fixtures.js.map +0 -1
  444. package/dist/runtime/daimon/training/native/transcript.d.ts +0 -96
  445. package/dist/runtime/daimon/training/native/transcript.js +0 -239
  446. package/dist/runtime/daimon/training/native/transcript.js.map +0 -1
  447. package/dist/runtime/daimon/training/native/transport/delivery.d.ts +0 -27
  448. package/dist/runtime/daimon/training/native/transport/delivery.js +0 -98
  449. package/dist/runtime/daimon/training/native/transport/delivery.js.map +0 -1
  450. package/dist/runtime/daimon/training/native/transport/http.d.ts +0 -3
  451. package/dist/runtime/daimon/training/native/transport/http.js +0 -81
  452. package/dist/runtime/daimon/training/native/transport/http.js.map +0 -1
  453. package/dist/runtime/daimon/training/native/transport/index.d.ts +0 -4
  454. package/dist/runtime/daimon/training/native/transport/index.js +0 -3
  455. package/dist/runtime/daimon/training/native/transport/index.js.map +0 -1
  456. package/dist/runtime/daimon/training/native/transport/types.d.ts +0 -15
  457. package/dist/runtime/daimon/training/native/transport/types.js +0 -2
  458. package/dist/runtime/daimon/training/native/transport/types.js.map +0 -1
  459. package/dist/runtime/daimon/training/native/worker/cli.d.ts +0 -1
  460. package/dist/runtime/daimon/training/native/worker/cli.js +0 -17
  461. package/dist/runtime/daimon/training/native/worker/cli.js.map +0 -1
  462. package/dist/runtime/daimon/training/native/worker/control.d.ts +0 -20
  463. package/dist/runtime/daimon/training/native/worker/control.js +0 -266
  464. package/dist/runtime/daimon/training/native/worker/control.js.map +0 -1
  465. package/dist/runtime/daimon/training/native/worker/deliveries.d.ts +0 -38
  466. package/dist/runtime/daimon/training/native/worker/deliveries.js +0 -91
  467. package/dist/runtime/daimon/training/native/worker/deliveries.js.map +0 -1
  468. package/dist/runtime/daimon/training/native/worker/evidence/collect.d.ts +0 -54
  469. package/dist/runtime/daimon/training/native/worker/evidence/collect.js +0 -278
  470. package/dist/runtime/daimon/training/native/worker/evidence/collect.js.map +0 -1
  471. package/dist/runtime/daimon/training/native/worker/evidence/execution.d.ts +0 -102
  472. package/dist/runtime/daimon/training/native/worker/evidence/execution.js +0 -191
  473. package/dist/runtime/daimon/training/native/worker/evidence/execution.js.map +0 -1
  474. package/dist/runtime/daimon/training/native/worker/evidence/index.d.ts +0 -3
  475. package/dist/runtime/daimon/training/native/worker/evidence/index.js +0 -4
  476. package/dist/runtime/daimon/training/native/worker/evidence/index.js.map +0 -1
  477. package/dist/runtime/daimon/training/native/worker/evidence/io.d.ts +0 -20
  478. package/dist/runtime/daimon/training/native/worker/evidence/io.js +0 -130
  479. package/dist/runtime/daimon/training/native/worker/evidence/io.js.map +0 -1
  480. package/dist/runtime/daimon/training/native/worker/evidence/seal.d.ts +0 -3
  481. package/dist/runtime/daimon/training/native/worker/evidence/seal.js +0 -67
  482. package/dist/runtime/daimon/training/native/worker/evidence/seal.js.map +0 -1
  483. package/dist/runtime/daimon/training/native/worker/index.d.ts +0 -11
  484. package/dist/runtime/daimon/training/native/worker/index.js +0 -8
  485. package/dist/runtime/daimon/training/native/worker/index.js.map +0 -1
  486. package/dist/runtime/daimon/training/native/worker/profile.d.ts +0 -23
  487. package/dist/runtime/daimon/training/native/worker/profile.js +0 -149
  488. package/dist/runtime/daimon/training/native/worker/profile.js.map +0 -1
  489. package/dist/runtime/daimon/training/native/worker/public.d.ts +0 -53
  490. package/dist/runtime/daimon/training/native/worker/public.js +0 -22
  491. package/dist/runtime/daimon/training/native/worker/public.js.map +0 -1
  492. package/dist/runtime/daimon/training/native/worker/sandbox.d.ts +0 -4
  493. package/dist/runtime/daimon/training/native/worker/sandbox.js +0 -54
  494. package/dist/runtime/daimon/training/native/worker/sandbox.js.map +0 -1
  495. package/dist/runtime/daimon/training/native/worker/server.d.ts +0 -4
  496. package/dist/runtime/daimon/training/native/worker/server.js +0 -102
  497. package/dist/runtime/daimon/training/native/worker/server.js.map +0 -1
  498. package/dist/runtime/daimon/training/native/worker/types.d.ts +0 -318
  499. package/dist/runtime/daimon/training/native/worker/types.js +0 -2
  500. package/dist/runtime/daimon/training/native/worker/types.js.map +0 -1
  501. package/dist/runtime/daimon/training/native/worker/wake-delivery/index.d.ts +0 -4
  502. package/dist/runtime/daimon/training/native/worker/wake-delivery/index.js +0 -4
  503. package/dist/runtime/daimon/training/native/worker/wake-delivery/index.js.map +0 -1
  504. package/dist/runtime/daimon/training/native/worker/wake-delivery/source.d.ts +0 -3
  505. package/dist/runtime/daimon/training/native/worker/wake-delivery/source.js +0 -16
  506. package/dist/runtime/daimon/training/native/worker/wake-delivery/source.js.map +0 -1
  507. package/dist/runtime/daimon/training/native/worker/wake-delivery/terminal.d.ts +0 -4
  508. package/dist/runtime/daimon/training/native/worker/wake-delivery/terminal.js +0 -52
  509. package/dist/runtime/daimon/training/native/worker/wake-delivery/terminal.js.map +0 -1
  510. package/dist/runtime/daimon/training/native/worker/wake-delivery/transport.d.ts +0 -21
  511. package/dist/runtime/daimon/training/native/worker/wake-delivery/transport.js +0 -198
  512. package/dist/runtime/daimon/training/native/worker/wake-delivery/transport.js.map +0 -1
  513. package/dist/runtime/daimon/training/native/worker/wake-delivery/types.d.ts +0 -91
  514. package/dist/runtime/daimon/training/native/worker/wake-delivery/types.js +0 -2
  515. package/dist/runtime/daimon/training/native/worker/wake-delivery/types.js.map +0 -1
  516. package/dist/runtime/daimon/training/native/worker/worker.d.ts +0 -1
  517. package/dist/runtime/daimon/training/native/worker/worker.js +0 -105
  518. package/dist/runtime/daimon/training/native/worker/worker.js.map +0 -1
  519. package/dist/runtime/daimon/training/providers/grok-broker/broker.d.ts +0 -20
  520. package/dist/runtime/daimon/training/providers/grok-broker/broker.js +0 -55
  521. package/dist/runtime/daimon/training/providers/grok-broker/broker.js.map +0 -1
  522. package/dist/runtime/daimon/training/providers/grok-broker/grant-fixtures.d.ts +0 -15
  523. package/dist/runtime/daimon/training/providers/grok-broker/grant-fixtures.js +0 -29
  524. package/dist/runtime/daimon/training/providers/grok-broker/grant-fixtures.js.map +0 -1
  525. package/dist/runtime/daimon/training/providers/grok-broker/grant-home.d.ts +0 -16
  526. package/dist/runtime/daimon/training/providers/grok-broker/grant-home.js +0 -60
  527. package/dist/runtime/daimon/training/providers/grok-broker/grant-home.js.map +0 -1
  528. package/dist/runtime/daimon/training/providers/grok-broker/grant-pool.d.ts +0 -81
  529. package/dist/runtime/daimon/training/providers/grok-broker/grant-pool.js +0 -221
  530. package/dist/runtime/daimon/training/providers/grok-broker/grant-pool.js.map +0 -1
  531. package/dist/runtime/daimon/training/providers/grok-broker/grant-releases.d.ts +0 -31
  532. package/dist/runtime/daimon/training/providers/grok-broker/grant-releases.js +0 -78
  533. package/dist/runtime/daimon/training/providers/grok-broker/grant-releases.js.map +0 -1
  534. package/dist/runtime/daimon/training/providers/grok-broker/grants.d.ts +0 -63
  535. package/dist/runtime/daimon/training/providers/grok-broker/grants.js +0 -20
  536. package/dist/runtime/daimon/training/providers/grok-broker/grants.js.map +0 -1
  537. package/dist/runtime/daimon/training/providers/grok-broker/index.d.ts +0 -3
  538. package/dist/runtime/daimon/training/providers/grok-broker/index.js +0 -4
  539. package/dist/runtime/daimon/training/providers/grok-broker/index.js.map +0 -1
  540. package/dist/runtime/daimon/training/providers/grok-subscription/cli.d.ts +0 -21
  541. package/dist/runtime/daimon/training/providers/grok-subscription/cli.js +0 -81
  542. package/dist/runtime/daimon/training/providers/grok-subscription/cli.js.map +0 -1
  543. package/dist/runtime/daimon/training/providers/grok-subscription/index.d.ts +0 -4
  544. package/dist/runtime/daimon/training/providers/grok-subscription/index.js +0 -5
  545. package/dist/runtime/daimon/training/providers/grok-subscription/index.js.map +0 -1
  546. package/dist/runtime/daimon/training/providers/grok-subscription/protocol.d.ts +0 -26
  547. package/dist/runtime/daimon/training/providers/grok-subscription/protocol.js +0 -102
  548. package/dist/runtime/daimon/training/providers/grok-subscription/protocol.js.map +0 -1
  549. package/dist/runtime/daimon/training/providers/grok-subscription/provider.d.ts +0 -9
  550. package/dist/runtime/daimon/training/providers/grok-subscription/provider.js +0 -38
  551. package/dist/runtime/daimon/training/providers/grok-subscription/provider.js.map +0 -1
  552. package/dist/runtime/daimon/training/public.d.ts +0 -6
  553. package/dist/runtime/daimon/training/public.js +0 -5
  554. package/dist/runtime/daimon/training/public.js.map +0 -1
  555. package/dist/runtime/daimon/training/services/account-lease.d.ts +0 -7
  556. package/dist/runtime/daimon/training/services/account-lease.js +0 -76
  557. package/dist/runtime/daimon/training/services/account-lease.js.map +0 -1
  558. package/dist/runtime/daimon/training/services/freshness.d.ts +0 -15
  559. package/dist/runtime/daimon/training/services/freshness.js +0 -19
  560. package/dist/runtime/daimon/training/services/freshness.js.map +0 -1
  561. package/dist/runtime/daimon/training/services/index.d.ts +0 -4
  562. package/dist/runtime/daimon/training/services/index.js +0 -4
  563. package/dist/runtime/daimon/training/services/index.js.map +0 -1
  564. package/dist/runtime/daimon/training/services/slot-freshness.d.ts +0 -34
  565. package/dist/runtime/daimon/training/services/slot-freshness.js +0 -178
  566. package/dist/runtime/daimon/training/services/slot-freshness.js.map +0 -1
  567. package/dist/runtime/daimon/wakeMoments.js.map +0 -1
  568. package/dist/runtime/pi/adapter.d.ts +0 -3
  569. package/dist/runtime/pi/adapter.js +0 -230
  570. package/dist/runtime/pi/appActivitySource.d.ts +0 -1
  571. package/dist/runtime/pi/appActivitySource.js +0 -199
  572. package/dist/runtime/pi/appAgentConfig.d.ts +0 -11
  573. package/dist/runtime/pi/appAgentConfig.js +0 -264
  574. package/dist/runtime/pi/appCliEnginesSource.d.ts +0 -1
  575. package/dist/runtime/pi/appCliEnginesSource.js +0 -183
  576. package/dist/runtime/pi/appCliSource.d.ts +0 -1
  577. package/dist/runtime/pi/appCliSource.js +0 -353
  578. package/dist/runtime/pi/appControlSource.d.ts +0 -1
  579. package/dist/runtime/pi/appControlSource.js +0 -390
  580. package/dist/runtime/pi/appControlWakeIdentitySource.d.ts +0 -1
  581. package/dist/runtime/pi/appControlWakeIdentitySource.js +0 -19
  582. package/dist/runtime/pi/appCoreSource.d.ts +0 -4
  583. package/dist/runtime/pi/appCoreSource.js +0 -244
  584. package/dist/runtime/pi/appPreludeSource.d.ts +0 -1
  585. package/dist/runtime/pi/appPreludeSource.js +0 -192
  586. package/dist/runtime/pi/appScheduleSource.d.ts +0 -1
  587. package/dist/runtime/pi/appScheduleSource.js +0 -84
  588. package/dist/runtime/pi/appScriptedEngine.d.ts +0 -31
  589. package/dist/runtime/pi/appScriptedEngine.js +0 -42
  590. package/dist/runtime/pi/appSource.d.ts +0 -4
  591. package/dist/runtime/pi/appSource.js +0 -12
  592. package/dist/runtime/pi/appTemplate.d.ts +0 -14
  593. package/dist/runtime/pi/appTemplate.js +0 -28
  594. package/dist/runtime/pi/appTemplateTypes.d.ts +0 -64
  595. package/dist/runtime/pi/appTemplateTypes.js +0 -18
  596. package/dist/runtime/pi/appWakeContextSource.d.ts +0 -1
  597. package/dist/runtime/pi/appWakeContextSource.js +0 -398
  598. package/dist/runtime/pi/containerTargets.d.ts +0 -4
  599. package/dist/runtime/pi/containerTargets.js +0 -63
  600. package/dist/runtime/pi/runAuth.d.ts +0 -2
  601. package/dist/runtime/pi/runAuth.js +0 -185
  602. package/dist/runtime/pi/testHelpers.d.ts +0 -2
  603. package/dist/shared/errors.js.map +0 -1
  604. package/dist/training/subjects/environment.d.ts +0 -2
  605. package/dist/training/subjects/environment.js +0 -14
  606. package/dist/training/subjects/environment.js.map +0 -1
@@ -1,8 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { type TrainingPlan } from "./plan/contract.js";
3
3
  import type { LoadedTrainingProject } from "./plan/types.js";
4
- export declare const TRAINING_EXECUTION_FILE = "/run/spawnfile-training/execution.json";
5
- export { TRAINING_EXECUTION_CAPABILITY_LABEL, TRAINING_EXECUTION_VERSION } from "./contract.js";
6
4
  export declare const trainingExecutionSchema: z.ZodObject<{
7
5
  version: z.ZodLiteral<"spawnfile.training-execution.v1">;
8
6
  authoring: z.ZodObject<{
@@ -151,10 +149,8 @@ export interface LowerTrainingExecutionOptions {
151
149
  project: LoadedTrainingProject;
152
150
  plan: TrainingPlan;
153
151
  args: readonly string[];
154
- trainingConfig?: string;
155
- trainingImage?: string;
156
152
  }
157
- /** Resolve local declaration and authoring defaults; no writes, auth reads or execution. */
153
+ /** Resolve authoring defaults into training CLI arguments; no writes, auth reads or execution. */
158
154
  export declare const lowerTrainingExecution: (options: LowerTrainingExecutionOptions) => Promise<{
159
155
  execution: {
160
156
  version: "spawnfile.training-execution.v1";
@@ -287,129 +283,6 @@ export declare const lowerTrainingExecution: (options: LowerTrainingExecutionOpt
287
283
  args: string[];
288
284
  output: string;
289
285
  };
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
- claude: string;
339
- integration: {
340
- source: string;
341
- entry: string;
342
- execution?: "spawnfile.training-execution.v1" | undefined;
343
- };
344
- compiler?: string | undefined;
345
- grok?: {
346
- source: string;
347
- sha256: string;
348
- } | undefined;
349
- bootstrap?: string | undefined;
350
- };
351
- };
352
- integration: {
353
- settings: {
354
- input: string;
355
- path: string;
356
- };
357
- };
358
- inputs: {
359
- id: string;
360
- source: string;
361
- destination: string;
362
- include?: string[] | undefined;
363
- git?: {
364
- revision: string;
365
- overlays: {
366
- source: string;
367
- path: string;
368
- sha256: string;
369
- }[];
370
- } | undefined;
371
- }[];
372
- output: {
373
- source: string;
374
- destination: "/run/training/output";
375
- };
376
- auth: {
377
- source: string;
378
- provider: "codex" | "claude";
379
- }[];
380
- evaluatorRoutes?: {
381
- purpose: "decisions" | "extraction" | "proposals";
382
- provider: "codex-subscription" | "typesafe";
383
- model: string;
384
- maxRequests: number;
385
- maxSpendUsd?: number | undefined;
386
- }[] | undefined;
387
- evaluatorSecrets?: {
388
- provider: "typesafe";
389
- source: string;
390
- }[] | undefined;
391
- subjectIsolation?: "codex-native-sandbox" | undefined;
392
- broker?: {
393
- maxRunRequests: number;
394
- engine: "grok";
395
- agentId: string;
396
- model: "grok-4.6" | "grok-4.5" | "grok-build";
397
- reasoningEffort: "low" | "medium" | "high";
398
- architecture: "arm64" | "x64";
399
- limits: {
400
- maxRequests: number;
401
- maxTokens: number;
402
- timeoutMs: number;
403
- };
404
- realmVolume: string;
405
- bootstrap: string;
406
- unenforcedBindPolicy?: "refuse" | "profile-only" | undefined;
407
- } | undefined;
408
- };
409
286
  }>;
410
287
  /** Allocation is separate so dry-run never creates a directory, and aliases fail before writes. */
411
288
  export declare const allocateTrainingOutputParent: (output: string) => Promise<void>;
412
- /** Preserve identities and all dataset roles while projecting only filesystem addresses. */
413
- export declare const mapTrainingExecution: (execution: TrainingExecution, map: (file: string) => string) => TrainingExecution;
414
- /** Resume changes position/presence of --resume, not the experiment's effective inputs. */
415
- export declare const trainingExecutionIdentity: (execution: TrainingExecution) => unknown;
@@ -5,11 +5,6 @@ import { z } from "zod";
5
5
  import { defaultTrainingOutputRoot } from "./output.js";
6
6
  import { SpawnfileError } from "../../shared/index.js";
7
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/spawnfile-training/execution.json";
12
- export { TRAINING_EXECUTION_CAPABILITY_LABEL, TRAINING_EXECUTION_VERSION } from "./contract.js";
13
8
  export const trainingExecutionSchema = z.object({
14
9
  version: z.literal("spawnfile.training-execution.v1"),
15
10
  authoring: trainingPlanSchema,
@@ -34,32 +29,11 @@ const exists = async (file) => {
34
29
  throw error;
35
30
  }
36
31
  };
37
- /** Resolve local declaration and authoring defaults; no writes, auth reads or execution. */
32
+ /** Resolve authoring defaults into training CLI arguments; no writes, auth reads or execution. */
38
33
  export const lowerTrainingExecution = async (options) => {
39
34
  const { project, plan } = options;
40
35
  if (!plan.targets.length || !plan.optimizer)
41
36
  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
37
  const args = [...options.args];
64
38
  if (!args.includes("--experiment-timeout-ms") && !args.includes("--timeout-ms")) {
65
39
  args.push("--experiment-timeout-ms", String(plan.deadlines?.experiment_ms ?? 43_200_000));
@@ -84,11 +58,6 @@ export const lowerTrainingExecution = async (options) => {
84
58
  args.push("--optimizer-model", plan.optimizer.model);
85
59
  if (args.includes("--resume") && option(args, "--out") === undefined)
86
60
  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
61
  const datasetPins = [...new Set(plan.targets.flatMap(target => Object.values(target.datasets)
93
62
  .filter(dataset => dataset !== null).map(dataset => dataset.sourcePath)))].map(sourcePath => {
94
63
  const loaded = project.datasets[sourcePath];
@@ -96,9 +65,14 @@ export const lowerTrainingExecution = async (options) => {
96
65
  return invalid(`Authored dataset was not captured during plan loading: ${sourcePath}`);
97
66
  return { sourcePath, sha256: loaded.sha256 };
98
67
  });
68
+ const output = path.resolve(option(args, "--out") ?? path.join(defaultTrainingOutputRoot(project.root, datasetPins.map(pin => pin.sourcePath)), encodeURIComponent(plan.agent.id), `${new Date().toISOString().replace(/[:.]/gu, "-")}-${randomUUID().slice(0, 8)}`));
69
+ if (!args.includes("--out"))
70
+ args.push("--out", output);
71
+ else
72
+ args[args.indexOf("--out") + 1] = output;
99
73
  const execution = trainingExecutionSchema.parse({ version: "spawnfile.training-execution.v1", authoring: plan, datasetPins,
100
74
  optimizer: { ...plan.optimizer, model: option(args, "--optimizer-model") }, args, output });
101
- return { execution, trainingConfig, trainingImage, declaration };
75
+ return { execution };
102
76
  };
103
77
  /** Allocation is separate so dry-run never creates a directory, and aliases fail before writes. */
104
78
  export const allocateTrainingOutputParent = async (output) => {
@@ -123,38 +97,3 @@ export const allocateTrainingOutputParent = async (output) => {
123
97
  invalid("Training output parent must be a canonical directory");
124
98
  }
125
99
  };
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
- };
@@ -3,14 +3,6 @@ export * from "./context.js";
3
3
  export * from "./plan/index.js";
4
4
  export * from "./rewind/index.js";
5
5
  export type { ResolvedTraining, ResolvedTrainingGrader } from "./resolution.js";
6
- export { parseTrainingMappedPreparation, trainingPreparationSchema } from "./preparation/contract.js";
7
- export { prepareTrainingEvaluators } from "./container/evaluators.js";
8
- export type { TrainingMappedPreparation } from "./preparation/contract.js";
9
- export { TRAINING_SLOTS_FILE, TRAINING_SLOTS_VERSION, trainingSlotPaths, trainingSlotDescriptors, trainingSlotsDocument, type TrainingSlotsDocument, type TrainingSlotPaths, type TrainingSlotDescriptor } from "./broker/paths.js";
10
6
  export * from "./execution.js";
11
7
  export * from "./moments.js";
12
8
  export * from "./compiledAgent.js";
13
- export { TRAINING_FAKETIME_LIBRARY_PATH } from "./container/contract.js";
14
- export * from "./subjectLease.js";
15
- export * from "./subjectDeclaration.js";
16
- export { recycleTrainingSlot, type RecycleTrainingSlotOptions, type TrainingSlotRecycleReceipt } from "./broker/recycleClient.js";
@@ -2,13 +2,6 @@ export * from "./contract.js";
2
2
  export * from "./context.js";
3
3
  export * from "./plan/index.js";
4
4
  export * from "./rewind/index.js";
5
- export { parseTrainingMappedPreparation, trainingPreparationSchema } from "./preparation/contract.js";
6
- export { prepareTrainingEvaluators } from "./container/evaluators.js";
7
- export { TRAINING_SLOTS_FILE, TRAINING_SLOTS_VERSION, trainingSlotPaths, trainingSlotDescriptors, trainingSlotsDocument } from "./broker/paths.js";
8
5
  export * from "./execution.js";
9
6
  export * from "./moments.js";
10
7
  export * from "./compiledAgent.js";
11
- export { TRAINING_FAKETIME_LIBRARY_PATH } from "./container/contract.js";
12
- export * from "./subjectLease.js";
13
- export * from "./subjectDeclaration.js";
14
- export { recycleTrainingSlot } from "./broker/recycleClient.js";
@@ -1,2 +1,3 @@
1
+ export declare const within: (root: string, file: string) => boolean;
1
2
  /** Durable default namespace disjoint from every declared input, even a project ancestor. */
2
3
  export declare const defaultTrainingOutputRoot: (projectRoot: string, inputs?: readonly string[]) => string;
@@ -1,6 +1,6 @@
1
1
  import { createHash } from "node:crypto";
2
2
  import path from "node:path";
3
- import { within } from "./preparation/files.js";
3
+ export const within = (root, file) => file === root || file.startsWith(root + path.sep);
4
4
  /** Durable default namespace disjoint from every declared input, even a project ancestor. */
5
5
  export const defaultTrainingOutputRoot = (projectRoot, inputs = []) => {
6
6
  const sources = [projectRoot, ...inputs].map(source => path.resolve(source));
@@ -17,9 +17,9 @@ export declare const materializedInputSchema: z.ZodObject<{
17
17
  id: z.ZodString;
18
18
  declaredBy: z.ZodString;
19
19
  kind: z.ZodEnum<{
20
- moltnet: "moltnet";
21
- memory: "memory";
22
20
  volume: "volume";
21
+ memory: "memory";
22
+ moltnet: "moltnet";
23
23
  git: "git";
24
24
  feed: "feed";
25
25
  bundle: "bundle";
@@ -81,9 +81,9 @@ export declare const materializedMomentSchema: z.ZodObject<{
81
81
  id: z.ZodString;
82
82
  declaredBy: z.ZodString;
83
83
  kind: z.ZodEnum<{
84
- moltnet: "moltnet";
85
- memory: "memory";
86
84
  volume: "volume";
85
+ memory: "memory";
86
+ moltnet: "moltnet";
87
87
  git: "git";
88
88
  feed: "feed";
89
89
  bundle: "bundle";
@@ -228,9 +228,9 @@ export declare const materializedMomentJsonSchema: z.core.ZodStandardJSONSchemaP
228
228
  id: z.ZodString;
229
229
  declaredBy: z.ZodString;
230
230
  kind: z.ZodEnum<{
231
- moltnet: "moltnet";
232
- memory: "memory";
233
231
  volume: "volume";
232
+ memory: "memory";
233
+ moltnet: "moltnet";
234
234
  git: "git";
235
235
  feed: "feed";
236
236
  bundle: "bundle";
@@ -0,0 +1,72 @@
1
+ import type { ResolvedAuthProfile } from "../../../auth/index.js";
2
+ import { type DaimonControlCall } from "../../../runtime/daimon/control.js";
3
+ import { type UsageRecord } from "../../../runtime/usageLedger.js";
4
+ import { type TrialDocker } from "./docker.js";
5
+ import type { TrainingGatewayAccess } from "./gateway.js";
6
+ /**
7
+ * Lineage namespace for training trials: every trial derives its own durable
8
+ * volume names, so no trial ever attaches production's, dev's or another
9
+ * trial's state (see `deploymentLineage.ts`).
10
+ */
11
+ export declare const TRAINING_TRIAL_LINEAGE_NAMESPACE = "training";
12
+ export interface TrialOptions {
13
+ agentManifestPath: string;
14
+ instructions: string;
15
+ trialId: string;
16
+ /** Fresh per trial; holds the trial project, compile output and boot env file. */
17
+ directory: string;
18
+ docker?: TrialDocker;
19
+ control?: DaimonControlCall;
20
+ }
21
+ export interface TrialWake {
22
+ state: "completed" | "failed" | "stopped" | "timeout";
23
+ acceptanceId: string;
24
+ executionId: string | null;
25
+ code: string | null;
26
+ text: string;
27
+ /** Usage ledger rows this wake appended; empty means none were written, never zero spend. */
28
+ usage: UsageRecord[];
29
+ /** The engine's own newest session record, bounded; null when none exists. */
30
+ transcript: string | null;
31
+ /** Per model request of this wake, the tool-call names its response carried; null where the runtime could not say. */
32
+ requestToolCalls: (readonly string[] | null)[];
33
+ }
34
+ export interface BootedTrial {
35
+ container: string;
36
+ wake(text: string, options: {
37
+ deliveryId: string;
38
+ timeoutMs: number;
39
+ signal?: AbortSignal;
40
+ }): Promise<TrialWake>;
41
+ /** Credential-shaped files anywhere in the trial container (expected: none). */
42
+ scanCredentials(): Promise<string[]>;
43
+ teardown(): Promise<void>;
44
+ }
45
+ export interface PreparedTrial {
46
+ image: string;
47
+ runtimeRoot: string;
48
+ engines: string[];
49
+ agentId: string;
50
+ /**
51
+ * Boots the organization. `gateway` is null for an organization on no
52
+ * gatewayed engine; `realms` is a profile view holding only the
53
+ * volume-held logins (`spawnfile auth login`) this organization mounts.
54
+ */
55
+ boot(gateway: TrainingGatewayAccess | null, options?: {
56
+ readyTimeoutMs?: number;
57
+ realms?: ResolvedAuthProfile;
58
+ }): Promise<BootedTrial>;
59
+ /** Runs the organization's own `auth <engine> login` attached to the operator's terminal, or returns its argv on `dryRun`. */
60
+ login(realms: ResolvedAuthProfile, options?: {
61
+ dryRun?: boolean;
62
+ }): Promise<readonly string[]>;
63
+ dispose(): Promise<void>;
64
+ }
65
+ /**
66
+ * Readable and collision-free: trial ids may share long prefixes. The cut can
67
+ * land just after a hyphen, so it is trimmed: the slug names a kebab-case
68
+ * deployment, which refuses a doubled hyphen.
69
+ */
70
+ export declare const trialSlug: (trialId: string) => string;
71
+ /** Compiles and builds the trial's one-agent organization under its own lineage, as production does. */
72
+ export declare const prepareTrial: (options: TrialOptions) => Promise<PreparedTrial>;
@@ -0,0 +1,225 @@
1
+ import { createHash, randomBytes } from "node:crypto";
2
+ import { mkdir, rm, writeFile } from "node:fs/promises";
3
+ import path from "node:path";
4
+ import { DAIMON_GATEWAY_KEY_ENV, DAIMON_GATEWAY_URL_ENV, daimonProfileRealmVolume, getDaimonEngineDescriptor, isDaimonGatewayRealmMountId } from "../../../runtime/daimon/index.js";
5
+ import { daimonHelperControlCall } from "../../../runtime/daimon/control.js";
6
+ import { RUNTIME_INSTALL_ROOT } from "../../../runtime/container.js";
7
+ import { parseUsageLedger } from "../../../runtime/usageLedger.js";
8
+ import { parseUsageRequestLedger } from "../../../runtime/usageRequestLedger.js";
9
+ import { DAIMON_GROK_TURN_USAGE_LEDGER } from "../../../runtime/daimon/contractManifest.js";
10
+ import { SpawnfileError } from "../../../shared/index.js";
11
+ import { buildCompiledProject } from "../../buildProject.js";
12
+ import { compileProject } from "../../compileProject.js";
13
+ import { resolveDeploymentLineage } from "../../deploymentLineage.js";
14
+ import { slugify } from "../../helpers.js";
15
+ import { createDockerRunInvocation, runDockerContainer } from "../../runProject.js";
16
+ import { executeDockerRunWithSupportCleanup } from "../../runProjectLifecycle.js";
17
+ import { createTrialDocker, waitFor } from "./docker.js";
18
+ import { HOME_LOGIN_FILES, saveHomeLogin, seedHomeLogin } from "./homeLogin.js";
19
+ import { writeTrialProject } from "./project.js";
20
+ /**
21
+ * Lineage namespace for training trials: every trial derives its own durable
22
+ * volume names, so no trial ever attaches production's, dev's or another
23
+ * trial's state (see `deploymentLineage.ts`).
24
+ */
25
+ export const TRAINING_TRIAL_LINEAGE_NAMESPACE = "training";
26
+ const CONTROL_TOKEN_ENV = "SPAWNFILE_DAIMON_CONTROL_TOKEN";
27
+ const WAKE_VERSION = "noopolis.daimon.wake.v2";
28
+ const TERMINAL = new Set(["completed", "failed", "stopped"]);
29
+ const MAX_TRANSCRIPT_BYTES = 1024 * 1024;
30
+ /**
31
+ * Readable and collision-free: trial ids may share long prefixes. The cut can
32
+ * land just after a hyphen, so it is trimmed: the slug names a kebab-case
33
+ * deployment, which refuses a doubled hyphen.
34
+ */
35
+ export const trialSlug = (trialId) => `${slugify(trialId).slice(0, 32).replace(/-+$/u, "") || "trial"}-${createHash("sha256").update(trialId).digest("hex").slice(0, 8)}`;
36
+ /** Compiles and builds the trial's one-agent organization under its own lineage, as production does. */
37
+ export const prepareTrial = async (options) => {
38
+ const docker = options.docker ?? createTrialDocker();
39
+ const slug = trialSlug(options.trialId);
40
+ const image = `spawnfile-training-trial:${slug}`;
41
+ const compiled = await (async () => {
42
+ const project = await writeTrialProject(options.agentManifestPath, options.instructions, path.join(options.directory, "project"));
43
+ const compiled = await compileProject(project, {
44
+ deploymentLineage: resolveDeploymentLineage(slug, TRAINING_TRIAL_LINEAGE_NAMESPACE),
45
+ outputDirectory: path.join(options.directory, "out")
46
+ });
47
+ await buildCompiledProject(project, compiled, { imageTag: image });
48
+ return compiled;
49
+ })().catch(async (error) => {
50
+ await rm(options.directory, { recursive: true, force: true });
51
+ throw error;
52
+ });
53
+ const instance = compiled.report.container?.runtime_instances.find((entry) => entry.runtime === "daimon");
54
+ const agents = Object.entries(instance?.engine_by_node_id ?? {});
55
+ if (!instance || agents.length !== 1)
56
+ throw new SpawnfileError("validation_error", "A production-booted trial compiles exactly one Daimon agent");
57
+ const [agentId, engine] = agents[0];
58
+ const home = instance.agent_paths?.[agentId]?.home_path;
59
+ // The engine writes its own session records under its home inside the agent's runtime home.
60
+ const engineHome = getDaimonEngineDescriptor(engine)?.homeDirectory;
61
+ const sessionsPath = home && engineHome !== undefined ? path.posix.join(home, engineHome, "sessions") : null;
62
+ const lineageVolumes = (realms) => (compiled.report.container?.persistent_mounts ?? [])
63
+ .filter((mount) => !isDaimonGatewayRealmMountId(mount.id) && daimonProfileRealmVolume(mount.id, realms) === undefined)
64
+ .map((mount) => mount.volume_name);
65
+ /**
66
+ * The profile's home login (`spawnfile auth login`) for this organization's
67
+ * fresh runtime home: seeded into it before the container starts, written
68
+ * back after it stops. Only the engine's login files cross; the home itself
69
+ * is the trial's own and is removed with it.
70
+ */
71
+ const homeLoginFor = (realms) => {
72
+ const files = HOME_LOGIN_FILES[engine];
73
+ const loginVolume = realms?.realms?.[engine]?.homeVolume;
74
+ if (!files || !loginVolume)
75
+ return undefined;
76
+ const mount = (compiled.report.container?.persistent_mounts ?? []).find((entry) => entry.mount_path === home);
77
+ if (!mount)
78
+ throw new SpawnfileError("validation_error", `The ${engine} runtime home of ${agentId} is not a persistent mount; its login cannot be seeded`);
79
+ return { files, homeMountPath: mount.mount_path, homeVolume: mount.volume_name, loginVolume };
80
+ };
81
+ const removeVolumes = async (volumes) => {
82
+ for (const volume of volumes)
83
+ await docker(["volume", "rm", "-f", volume]).catch(() => undefined);
84
+ };
85
+ const dispose = async () => {
86
+ await docker(["image", "rm", "-f", image]).catch(() => undefined);
87
+ await rm(options.directory, { recursive: true, force: true });
88
+ };
89
+ return {
90
+ agentId, dispose, image,
91
+ engines: agents.map(([, engine]) => engine),
92
+ runtimeRoot: `${RUNTIME_INSTALL_ROOT}/daimon`,
93
+ login: async (realms, loginOptions = {}) => {
94
+ const homeLogin = homeLoginFor(realms);
95
+ const invocation = await createDockerRunInvocation(compiled, image, {
96
+ authProfile: realms, command: ["auth", engine, "login", "--config", instance.config_path],
97
+ containerName: `spawnfile-login-${slug}`, interactive: true
98
+ });
99
+ if (loginOptions.dryRun) {
100
+ await rm(invocation.supportDirectory, { recursive: true, force: true });
101
+ return [invocation.command, ...invocation.args];
102
+ }
103
+ try {
104
+ await executeDockerRunWithSupportCleanup(invocation, runDockerContainer);
105
+ if (homeLogin)
106
+ await saveHomeLogin(docker, image, homeLogin);
107
+ }
108
+ finally {
109
+ await removeVolumes(lineageVolumes(realms));
110
+ }
111
+ return [invocation.command, ...invocation.args];
112
+ },
113
+ boot: async (gateway, bootOptions = {}) => {
114
+ const token = randomBytes(32).toString("base64url");
115
+ const container = `spawnfile-trial-${slug}`;
116
+ await mkdir(options.directory, { recursive: true });
117
+ const envFilePath = path.join(options.directory, "boot.env");
118
+ // The boot inputs: control token, plus the gateway URL and key. No gatewayed login, no
119
+ // gatewayed realm; only a volume-held login of the selected profile is mounted.
120
+ const gatewayEnv = gateway ? `${DAIMON_GATEWAY_URL_ENV}=${gateway.url}\n${DAIMON_GATEWAY_KEY_ENV}=${gateway.key}\n` : "";
121
+ await writeFile(envFilePath, `${CONTROL_TOKEN_ENV}=${token}\n${gatewayEnv}`, { mode: 0o600 });
122
+ const invocation = await createDockerRunInvocation(compiled, image, {
123
+ authProfile: bootOptions.realms ?? null, containerName: container, deploymentName: slug, detach: true, envFilePath,
124
+ ...(gateway ? { network: gateway.network } : {})
125
+ });
126
+ const volumes = lineageVolumes(bootOptions.realms);
127
+ const homeLogin = homeLoginFor(bootOptions.realms);
128
+ const teardown = async () => {
129
+ try {
130
+ // Stopped, not killed, so the engine finishes any login rewrite before it is saved.
131
+ if (homeLogin)
132
+ await docker(["stop", "--time", "10", container]).catch(() => undefined);
133
+ await docker(["rm", "-f", container]).catch(() => undefined);
134
+ if (homeLogin)
135
+ await saveHomeLogin(docker, image, homeLogin);
136
+ }
137
+ finally {
138
+ await removeVolumes(volumes);
139
+ await rm(invocation.supportDirectory, { recursive: true, force: true });
140
+ await rm(envFilePath, { force: true });
141
+ }
142
+ };
143
+ try {
144
+ if (homeLogin)
145
+ await seedHomeLogin(docker, image, homeLogin);
146
+ await executeDockerRunWithSupportCleanup(invocation, runDockerContainer);
147
+ await rm(envFilePath, { force: true });
148
+ const target = { containerRef: container, dockerArgs: [], dockerCommand: "docker", imageRef: image, token };
149
+ const call = options.control ?? daimonHelperControlCall;
150
+ await waitFor(async () => {
151
+ // A restart means the organization already exited once (`--restart unless-stopped` hides it).
152
+ if (await docker(["inspect", "--format", "{{.State.Running}} {{.RestartCount}}", container]) !== "true 0") {
153
+ const logs = await docker(["logs", "--tail", "30", container], { combined: true }).catch(() => "");
154
+ throw new SpawnfileError("runtime_error", `trial organization exited before readiness: ${logs.replace(/\s+/gu, " ").slice(-600)}`);
155
+ }
156
+ return call(target, "GET", "/v2/availability").then((response) => response.status === 200, () => false);
157
+ }, bootOptions.readyTimeoutMs ?? 180_000, "trial organization readiness", 1_000);
158
+ return createBootedTrial({ agentId, call, container, docker, sessionsPath, target, teardown });
159
+ }
160
+ catch (error) {
161
+ // The boot failure is the error to report, not a teardown that follows it.
162
+ await teardown().catch(() => undefined);
163
+ throw error;
164
+ }
165
+ }
166
+ };
167
+ };
168
+ /** Daimon's per-request stream sits beside the usage ledger. */
169
+ const REQUEST_LEDGER = path.posix.join(path.posix.dirname(DAIMON_GROK_TURN_USAGE_LEDGER.filePath), "requests.jsonl");
170
+ const readRequestToolCalls = async (docker, container, agentId, deliveryId) => {
171
+ const text = await docker(["exec", container, "cat", REQUEST_LEDGER]).catch(() => "");
172
+ return parseUsageRequestLedger(text).filter((row) => row.agent === agentId && row.wake === deliveryId).map((row) => row.tool_calls ?? null);
173
+ };
174
+ const readLedger = async (docker, container) => {
175
+ const text = await docker(["exec", container, "cat", DAIMON_GROK_TURN_USAGE_LEDGER.filePath]).catch(() => "");
176
+ return parseUsageLedger(text);
177
+ };
178
+ const createBootedTrial = (input) => {
179
+ let seenRows = 0;
180
+ return {
181
+ container: input.container,
182
+ teardown: input.teardown,
183
+ scanCredentials: async () => {
184
+ const found = await input.docker(["exec", input.container, "find", "/", "-xdev", "(", "-name", "auth.json", "-o", "-name", "*token*", "-o", "-name", "*bootstrap-auth*", ")",
185
+ "-not", "-path", "/proc/*", "-not", "-path", "/sys/*", "-not", "-path", "/usr/*", "-not", "-path", "/opt/spawnfile/runtime-installs/*"], { timeoutMs: 60_000 }).catch((error) => error.message);
186
+ return found.split("\n").filter(Boolean);
187
+ },
188
+ wake: async (text, options) => {
189
+ const body = { agent_id: input.agentId, delivery_id: options.deliveryId,
190
+ event: { version: WAKE_VERSION, kind: "manual", text, occurred_at: new Date().toISOString() } };
191
+ const accepted = await input.call(input.target, "POST", "/v2/wakes", body);
192
+ const acceptance = JSON.parse(accepted.body);
193
+ if (accepted.status !== 202 || acceptance.state !== "accepted" || !acceptance.acceptance_id) {
194
+ throw new SpawnfileError("runtime_error", `trial wake was not accepted (HTTP ${accepted.status}${acceptance.code ? `, ${acceptance.code}` : ""})`);
195
+ }
196
+ const id = acceptance.acceptance_id;
197
+ let receipt = {};
198
+ const deadline = Date.now() + options.timeoutMs;
199
+ while (!TERMINAL.has(receipt.state ?? "") && Date.now() < deadline && !options.signal?.aborted) {
200
+ await new Promise((resolve) => setTimeout(resolve, 1_000));
201
+ const response = await input.call(input.target, "GET", `/v2/wake-receipts/${id}`);
202
+ if (response.status === 200)
203
+ receipt = JSON.parse(response.body);
204
+ }
205
+ const rows = await readLedger(input.docker, input.container);
206
+ const usage = rows.slice(seenRows).filter((row) => row.agent === input.agentId);
207
+ seenRows = rows.length;
208
+ return {
209
+ acceptanceId: id, code: receipt.code ?? null, executionId: receipt.execution_id ?? null, usage,
210
+ state: TERMINAL.has(receipt.state ?? "") ? receipt.state : "timeout",
211
+ text: receipt.text ?? "",
212
+ requestToolCalls: await readRequestToolCalls(input.docker, input.container, input.agentId, options.deliveryId),
213
+ transcript: input.sessionsPath === null ? null : await readTranscript(input.docker, input.container, input.sessionsPath)
214
+ };
215
+ }
216
+ };
217
+ };
218
+ /** The engine's newest session record, bounded. */
219
+ const readTranscript = async (docker, container, sessionsPath) => {
220
+ const newest = await docker(["exec", container, "sh", "-c", 'find "$1" -name "*.jsonl" -type f -printf "%T@ %p\\n" 2>/dev/null | sort -n | tail -1 | cut -d" " -f2-', "sh", sessionsPath]).catch(() => "");
221
+ if (!newest)
222
+ return null;
223
+ const text = await docker(["exec", container, "head", "-c", String(MAX_TRANSCRIPT_BYTES), newest]).catch(() => "");
224
+ return text || null;
225
+ };
@@ -0,0 +1,10 @@
1
+ /** Bounded Docker CLI call for trial lifecycle; stdout trimmed, stderr bounded into the error. */
2
+ /** `combined` returns stderr after stdout (container logs write both). */
3
+ export type TrialDocker = (args: readonly string[], options?: {
4
+ timeoutMs?: number;
5
+ stdin?: string;
6
+ combined?: boolean;
7
+ }) => Promise<string>;
8
+ export declare const createTrialDocker: (dockerCommand?: string) => TrialDocker;
9
+ /** Poll `probe` until it resolves true, or fail after `timeoutMs`. */
10
+ export declare const waitFor: (probe: () => Promise<boolean>, timeoutMs: number, label: string, pollMs?: number) => Promise<void>;