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,30 +0,0 @@
1
- import { type DaimonAgentSkill } from "../../../runtime/daimon/grokWorkerSkills.js";
2
- import type { TrainingContext } from "../contract.js";
3
- import type { TrainingPreparationConfig } from "./contract.js";
4
- export interface PreparedTrainingBroker {
5
- declarationPath: string;
6
- launch: {
7
- engine: "grok";
8
- realmVolume: string;
9
- bootstrap: string;
10
- declaration: string;
11
- };
12
- }
13
- /**
14
- * Lowers `spawnfile.training-container.v4`'s broker block into the read-only
15
- * `spawnfile.training-broker.v2` declaration the container's own root
16
- * entrypoint reads, plus the launch bindings that carry the realm volume and
17
- * bootstrap leaf.
18
- *
19
- * The bootstrap is checked here as well as at launch: a run that never reaches
20
- * `docker create` — a dry run, a failed build — must still refuse the
21
- * developer's desktop Grok login rather than report it later.
22
- */
23
- /**
24
- * The subject's declared skills, read from the context's pinned sources and
25
- * refused if any byte changed since capture: exactly the `SKILL.md` files the
26
- * compiler emits into its `.agents/skills`, in Daimon's engine-neutral form.
27
- * `undefined` for none keeps a skill-less declaration byte-identical.
28
- */
29
- export declare const trainingBrokerSkills: (context: Pick<TrainingContext, "skills">) => Promise<DaimonAgentSkill[] | undefined>;
30
- export declare const prepareTrainingBroker: (broker: NonNullable<TrainingPreparationConfig["broker"]>, root: string, staging: string, write: boolean, slots?: number, skills?: readonly DaimonAgentSkill[]) => Promise<PreparedTrainingBroker>;
@@ -1,68 +0,0 @@
1
- import { DAIMON_BROKER_ENGINE_ID } from "../../../runtime/daimon/index.js";
2
- import { createHash } from "node:crypto";
3
- import { lstat, readFile, writeFile } from "node:fs/promises";
4
- import path from "node:path";
5
- import { daimonAgentSkillsFromResolved, parseDaimonAgentSkills } from "../../../runtime/daimon/grokWorkerSkills.js";
6
- import { SpawnfileError } from "../../../shared/index.js";
7
- import { DAIMON_GROK_SECCOMP_PROFILE_SHA256 } from "../../../shared/daimonGrokSeccompProfile.js";
8
- import { assertNotDesktopGrokAuth } from "../broker/entrypoint.js";
9
- import { parseTrainingBrokerDeclaration } from "../broker/declaration.js";
10
- import { TRAINING_BOOTSTRAP_MOUNT } from "../broker/paths.js";
11
- import { DAIMON_ORGANIZATION_UID } from "../../../runtime/daimon/runtimeIdentity.js";
12
- /**
13
- * Lowers `spawnfile.training-container.v4`'s broker block into the read-only
14
- * `spawnfile.training-broker.v2` declaration the container's own root
15
- * entrypoint reads, plus the launch bindings that carry the realm volume and
16
- * bootstrap leaf.
17
- *
18
- * The bootstrap is checked here as well as at launch: a run that never reaches
19
- * `docker create` — a dry run, a failed build — must still refuse the
20
- * developer's desktop Grok login rather than report it later.
21
- */
22
- /**
23
- * The subject's declared skills, read from the context's pinned sources and
24
- * refused if any byte changed since capture: exactly the `SKILL.md` files the
25
- * compiler emits into its `.agents/skills`, in Daimon's engine-neutral form.
26
- * `undefined` for none keeps a skill-less declaration byte-identical.
27
- */
28
- export const trainingBrokerSkills = async (context) => {
29
- if (context.skills.length === 0)
30
- return undefined;
31
- const skills = await Promise.all(context.skills.map(async (skill) => {
32
- const bytes = await readFile(skill.sourcePath);
33
- if (`sha256:${createHash("sha256").update(bytes).digest("hex")}` !== skill.sha256) {
34
- throw new SpawnfileError("validation_error", `Training skill ${skill.name} changed since its context was captured`);
35
- }
36
- return { name: skill.name, content: bytes.toString("utf8") };
37
- }));
38
- return parseDaimonAgentSkills(daimonAgentSkillsFromResolved(skills));
39
- };
40
- export const prepareTrainingBroker = async (broker, root, staging, write, slots = 4, skills) => {
41
- const bootstrap = path.resolve(root, broker.bootstrap);
42
- assertNotDesktopGrokAuth(bootstrap);
43
- const info = await lstat(bootstrap).catch(() => undefined);
44
- if (!info?.isFile() || info.isSymbolicLink())
45
- throw Error("The training Grok bootstrap must be an existing regular credential leaf");
46
- if ((info.mode & 0o077) !== 0)
47
- throw Error("The training Grok bootstrap must not be group- or world-accessible");
48
- const declaration = parseTrainingBrokerDeclaration({
49
- version: "spawnfile.training-broker.v2",
50
- slots,
51
- maxRunRequests: broker.maxRunRequests,
52
- engine: broker.engine,
53
- agentId: broker.agentId,
54
- model: broker.model,
55
- reasoningEffort: broker.reasoningEffort,
56
- architecture: broker.architecture,
57
- limits: broker.limits,
58
- bootstrap: TRAINING_BOOTSTRAP_MOUNT,
59
- organizationUid: DAIMON_ORGANIZATION_UID,
60
- seccompProfileSha256: DAIMON_GROK_SECCOMP_PROFILE_SHA256,
61
- ...(broker.unenforcedBindPolicy === undefined ? {} : { unenforcedBindPolicy: broker.unenforcedBindPolicy }),
62
- ...(skills?.length ? { skills } : {})
63
- });
64
- const declarationPath = path.join(staging, "training-broker.json");
65
- if (write)
66
- await writeFile(declarationPath, `${JSON.stringify(declaration)}\n`, { mode: 0o444, flag: "wx" });
67
- return { declarationPath, launch: { engine: DAIMON_BROKER_ENGINE_ID, realmVolume: broker.realmVolume, bootstrap, declaration: declarationPath } };
68
- };
@@ -1,12 +0,0 @@
1
- /** Fixed staged timestamp: deterministic context bytes, and still valid in ZIP-based Python builds. */
2
- export declare const TRAINING_CONTEXT_MTIME: Date;
3
- /**
4
- * `chmod a+rX` closure: every directory gains 0555; every other entry gains 0444,
5
- * plus 0111 when any execute bit is already present. Symlinks are never staged.
6
- */
7
- export declare const readableClosure: (mode: number, directory: boolean) => number;
8
- /**
9
- * Fix staged build-context modes and times so COPY produces exactly the modes the
10
- * former in-image `chmod 0555 grok train && chmod -R a+rX /opt/training` produced.
11
- */
12
- export declare function normalizeTrainingContext(staging: string): Promise<void>;
@@ -1,38 +0,0 @@
1
- import { chmod, lstat, readdir, utimes } from "node:fs/promises";
2
- import path from "node:path";
3
- /** Fixed staged timestamp: deterministic context bytes, and still valid in ZIP-based Python builds. */
4
- export const TRAINING_CONTEXT_MTIME = new Date("2000-01-01T00:00:00Z");
5
- /**
6
- * Executables the recipe previously forced to 0555 before its recursive closure.
7
- * `spawnfile.training-container.v3` stages no Grok binary — judges use the native
8
- * parent's pinned `/usr/local/bin/grok` — and adds the root broker entrypoint.
9
- */
10
- const EXACT_MODES = { train: 0o555, "train-broker": 0o555 };
11
- /**
12
- * `chmod a+rX` closure: every directory gains 0555; every other entry gains 0444,
13
- * plus 0111 when any execute bit is already present. Symlinks are never staged.
14
- */
15
- export const readableClosure = (mode, directory) => directory ? (mode & 0o7777) | 0o555 : (mode & 0o7777) | 0o444 | ((mode & 0o111) !== 0 ? 0o111 : 0);
16
- /**
17
- * Fix staged build-context modes and times so COPY produces exactly the modes the
18
- * former in-image `chmod 0555 grok train && chmod -R a+rX /opt/training` produced.
19
- */
20
- export async function normalizeTrainingContext(staging) {
21
- const visit = async (entry, relative) => {
22
- const stat = await lstat(entry);
23
- if (stat.isSymbolicLink())
24
- throw Error("Training build context must not contain symlinks");
25
- if (stat.isDirectory()) {
26
- for (const name of (await readdir(entry)).sort())
27
- await visit(path.join(entry, name), path.posix.join(relative, name));
28
- if (relative)
29
- await chmod(entry, readableClosure(stat.mode, true));
30
- }
31
- else {
32
- await chmod(entry, EXACT_MODES[relative] ?? readableClosure(stat.mode, false));
33
- }
34
- if (relative)
35
- await utimes(entry, TRAINING_CONTEXT_MTIME, TRAINING_CONTEXT_MTIME);
36
- };
37
- await visit(staging, "");
38
- }
@@ -1,203 +0,0 @@
1
- import { z } from "zod";
2
- export declare const trainingBuildSchema: z.ZodObject<{
3
- recipe: z.ZodLiteral<"daimon-dspy.v1">;
4
- nativeImage: z.ZodString;
5
- pythonImage: z.ZodString;
6
- platform: z.ZodEnum<{
7
- "linux/amd64": "linux/amd64";
8
- "linux/arm64": "linux/arm64";
9
- }>;
10
- claude: z.ZodString;
11
- compiler: z.ZodOptional<z.ZodString>;
12
- grok: z.ZodOptional<z.ZodObject<{
13
- source: z.ZodString;
14
- sha256: z.ZodString;
15
- }, z.core.$strict>>;
16
- integration: z.ZodObject<{
17
- source: z.ZodString;
18
- entry: z.ZodString;
19
- execution: z.ZodOptional<z.ZodLiteral<"spawnfile.training-execution.v1">>;
20
- }, z.core.$strict>;
21
- bootstrap: z.ZodOptional<z.ZodString>;
22
- }, z.core.$strict>;
23
- /**
24
- * `spawnfile.training-container.v3`'s brokered Grok slot.
25
- *
26
- * It is the whole difference from v2: the container starts as root with the
27
- * production capability set, runs one broker slot for the subject, holds the
28
- * dedicated training Grok login in a named realm volume seeded from
29
- * `bootstrap`, and serves judge inference grants out of the same credential.
30
- * No Grok binary and no Grok auth staging enter the image.
31
- */
32
- export declare const trainingBrokerSchema: z.ZodObject<{
33
- maxRunRequests: z.ZodDefault<z.ZodNumber>;
34
- engine: z.ZodLiteral<"grok">;
35
- agentId: z.ZodString;
36
- model: z.ZodEnum<{
37
- "grok-4.6": "grok-4.6";
38
- "grok-4.5": "grok-4.5";
39
- "grok-build": "grok-build";
40
- }>;
41
- reasoningEffort: z.ZodEnum<{
42
- low: "low";
43
- medium: "medium";
44
- high: "high";
45
- }>;
46
- architecture: z.ZodEnum<{
47
- arm64: "arm64";
48
- x64: "x64";
49
- }>;
50
- limits: z.ZodObject<{
51
- maxRequests: z.ZodNumber;
52
- maxTokens: z.ZodNumber;
53
- timeoutMs: z.ZodNumber;
54
- }, z.core.$strict>;
55
- realmVolume: z.ZodString;
56
- bootstrap: z.ZodString;
57
- unenforcedBindPolicy: z.ZodOptional<z.ZodEnum<{
58
- refuse: "refuse";
59
- "profile-only": "profile-only";
60
- }>>;
61
- }, z.core.$strict>;
62
- export declare const trainingPreparationSchema: z.ZodObject<{
63
- version: z.ZodEnum<{
64
- "spawnfile.training-container.v3": "spawnfile.training-container.v3";
65
- "spawnfile.training-container.v4": "spawnfile.training-container.v4";
66
- "spawnfile.training-container.v2": "spawnfile.training-container.v2";
67
- }>;
68
- slots: z.ZodDefault<z.ZodNumber>;
69
- dockerContext: z.ZodString;
70
- image: z.ZodUnion<readonly [z.ZodObject<{
71
- ref: z.ZodString;
72
- }, z.core.$strict>, z.ZodObject<{
73
- build: z.ZodObject<{
74
- recipe: z.ZodLiteral<"daimon-dspy.v1">;
75
- nativeImage: z.ZodString;
76
- pythonImage: z.ZodString;
77
- platform: z.ZodEnum<{
78
- "linux/amd64": "linux/amd64";
79
- "linux/arm64": "linux/arm64";
80
- }>;
81
- claude: z.ZodString;
82
- compiler: z.ZodOptional<z.ZodString>;
83
- grok: z.ZodOptional<z.ZodObject<{
84
- source: z.ZodString;
85
- sha256: z.ZodString;
86
- }, z.core.$strict>>;
87
- integration: z.ZodObject<{
88
- source: z.ZodString;
89
- entry: z.ZodString;
90
- execution: z.ZodOptional<z.ZodLiteral<"spawnfile.training-execution.v1">>;
91
- }, z.core.$strict>;
92
- bootstrap: z.ZodOptional<z.ZodString>;
93
- }, z.core.$strict>;
94
- }, z.core.$strict>]>;
95
- integration: z.ZodObject<{
96
- settings: z.ZodObject<{
97
- input: z.ZodString;
98
- path: z.ZodUnion<readonly [z.ZodLiteral<".">, z.ZodString]>;
99
- }, z.core.$strict>;
100
- }, z.core.$strict>;
101
- inputs: z.ZodArray<z.ZodObject<{
102
- id: z.ZodString;
103
- source: z.ZodString;
104
- destination: z.ZodString;
105
- include: z.ZodOptional<z.ZodArray<z.ZodString>>;
106
- git: z.ZodOptional<z.ZodObject<{
107
- revision: z.ZodString;
108
- overlays: z.ZodDefault<z.ZodArray<z.ZodObject<{
109
- source: z.ZodString;
110
- path: z.ZodString;
111
- sha256: z.ZodString;
112
- }, z.core.$strict>>>;
113
- }, z.core.$strict>>;
114
- }, z.core.$strict>>;
115
- output: z.ZodObject<{
116
- source: z.ZodString;
117
- destination: z.ZodLiteral<"/run/training/output">;
118
- }, z.core.$strict>;
119
- auth: z.ZodArray<z.ZodObject<{
120
- source: z.ZodString;
121
- provider: z.ZodEnum<{
122
- codex: "codex";
123
- claude: "claude";
124
- }>;
125
- }, z.core.$strict>>;
126
- evaluatorRoutes: z.ZodOptional<z.ZodArray<z.ZodObject<{
127
- purpose: z.ZodEnum<{
128
- decisions: "decisions";
129
- extraction: "extraction";
130
- proposals: "proposals";
131
- }>;
132
- provider: z.ZodEnum<{
133
- "codex-subscription": "codex-subscription";
134
- typesafe: "typesafe";
135
- }>;
136
- model: z.ZodString;
137
- maxRequests: z.ZodNumber;
138
- maxSpendUsd: z.ZodOptional<z.ZodNumber>;
139
- }, z.core.$strict>>>;
140
- evaluatorSecrets: z.ZodOptional<z.ZodArray<z.ZodObject<{
141
- provider: z.ZodLiteral<"typesafe">;
142
- source: z.ZodString;
143
- }, z.core.$strict>>>;
144
- subjectIsolation: z.ZodOptional<z.ZodLiteral<"codex-native-sandbox">>;
145
- broker: z.ZodOptional<z.ZodObject<{
146
- maxRunRequests: z.ZodDefault<z.ZodNumber>;
147
- engine: z.ZodLiteral<"grok">;
148
- agentId: z.ZodString;
149
- model: z.ZodEnum<{
150
- "grok-4.6": "grok-4.6";
151
- "grok-4.5": "grok-4.5";
152
- "grok-build": "grok-build";
153
- }>;
154
- reasoningEffort: z.ZodEnum<{
155
- low: "low";
156
- medium: "medium";
157
- high: "high";
158
- }>;
159
- architecture: z.ZodEnum<{
160
- arm64: "arm64";
161
- x64: "x64";
162
- }>;
163
- limits: z.ZodObject<{
164
- maxRequests: z.ZodNumber;
165
- maxTokens: z.ZodNumber;
166
- timeoutMs: z.ZodNumber;
167
- }, z.core.$strict>;
168
- realmVolume: z.ZodString;
169
- bootstrap: z.ZodString;
170
- unenforcedBindPolicy: z.ZodOptional<z.ZodEnum<{
171
- refuse: "refuse";
172
- "profile-only": "profile-only";
173
- }>>;
174
- }, z.core.$strict>>;
175
- }, z.core.$strict>;
176
- export type TrainingPreparationConfig = z.infer<typeof trainingPreparationSchema>;
177
- export type TrainingImageBuild = z.infer<typeof trainingBuildSchema>;
178
- /** Image integration reads this protected, container-addressed receipt, never host paths. */
179
- export interface TrainingMappedPreparation {
180
- version: "spawnfile.training-preparation.v1";
181
- preparationDigest: string;
182
- imageId: string;
183
- bindings: {
184
- inputId: string;
185
- destination: string;
186
- }[];
187
- outputRoot: "/run/training/output";
188
- packagePaths: {
189
- spawnfile: string;
190
- training: string;
191
- bridge: string;
192
- nativeWorker: string;
193
- integration: string;
194
- bootstrap: string;
195
- };
196
- integration: {
197
- settings: {
198
- input: string;
199
- path: string;
200
- };
201
- };
202
- }
203
- export declare const parseTrainingMappedPreparation: (value: unknown) => TrainingMappedPreparation;
@@ -1,114 +0,0 @@
1
- import { DAIMON_BROKER_ENGINE_ID } from "../../../runtime/daimon/index.js";
2
- import path from "node:path";
3
- import { z } from "zod";
4
- import { trainingEvaluatorRoutesSchema, trainingEvaluatorSecretsSchema } from "../container/evaluators.js";
5
- import { trainingImageSchema } from "../container/contract.js";
6
- import { TRAINING_EXECUTION_VERSION } from "../contract.js";
7
- import { DAIMON_GROK_BROKER_MODELS, DAIMON_GROK_BROKER_REASONING_EFFORTS, DAIMON_GROK_ENGINE_BROKER } from "../../../runtime/daimon/contractManifest.js";
8
- const local = z.string().min(1).refine(value => !/[,\r\n\0]/u.test(value));
9
- const relative = local.refine(value => !path.isAbsolute(value) && !value.includes("\\") && value.split("/").every(part => part !== "" && part !== "." && part !== ".." && part !== ".git"));
10
- const reference = z.object({ input: z.string().min(1), path: z.union([z.literal("."), relative]) }).strict();
11
- const sha = z.string().regex(/^sha256:[a-f0-9]{64}$/u);
12
- const destination = z.string().regex(/^\/run\/training\/inputs\/[A-Za-z0-9._/-]+$/u).refine(value => path.posix.normalize(value) === value && !value.endsWith("/"));
13
- export const trainingBuildSchema = z.object({
14
- recipe: z.literal("daimon-dspy.v1"), nativeImage: trainingImageSchema, pythonImage: trainingImageSchema,
15
- platform: z.enum(["linux/arm64", "linux/amd64"]),
16
- claude: local, compiler: local.optional(),
17
- /**
18
- * Deprecated with `spawnfile.training-container.v3`: the image no longer
19
- * copies a Grok binary at all. Judges run the native parent's pinned
20
- * `/usr/local/bin/grok` through a broker inference grant, so a second copy
21
- * could only ever be a different, unattested build.
22
- */
23
- grok: z.object({ source: local, sha256: sha }).strict().optional(),
24
- integration: z.object({ source: local, entry: relative.refine(value => /^[A-Za-z0-9._/-]+$/u.test(value)),
25
- execution: z.literal(TRAINING_EXECUTION_VERSION).optional() }).strict(), bootstrap: local.optional()
26
- }).strict();
27
- const bounds = DAIMON_GROK_ENGINE_BROKER.turnLimits.bounds;
28
- /**
29
- * `spawnfile.training-container.v3`'s brokered Grok slot.
30
- *
31
- * It is the whole difference from v2: the container starts as root with the
32
- * production capability set, runs one broker slot for the subject, holds the
33
- * dedicated training Grok login in a named realm volume seeded from
34
- * `bootstrap`, and serves judge inference grants out of the same credential.
35
- * No Grok binary and no Grok auth staging enter the image.
36
- */
37
- export const trainingBrokerSchema = z.object({
38
- maxRunRequests: z.number().int().positive().max(Number.MAX_SAFE_INTEGER).default(1000),
39
- engine: z.literal(DAIMON_BROKER_ENGINE_ID),
40
- agentId: z.string().min(1).max(128).regex(/^[A-Za-z0-9][A-Za-z0-9._:-]*$/u),
41
- model: z.enum(DAIMON_GROK_BROKER_MODELS),
42
- reasoningEffort: z.enum(DAIMON_GROK_BROKER_REASONING_EFFORTS),
43
- architecture: z.enum(["arm64", "x64"]),
44
- limits: z.object({
45
- maxRequests: z.number().int().min(bounds.maxRequests[0]).max(bounds.maxRequests[1]),
46
- maxTokens: z.number().int().min(bounds.maxTokens[0]).max(bounds.maxTokens[1]),
47
- timeoutMs: z.number().int().min(bounds.timeoutMs[0]).max(bounds.timeoutMs[1])
48
- }).strict(),
49
- /** Named Docker volume for the rotating training credential and its journal; never a host bind. */
50
- realmVolume: z.string().regex(/^[A-Za-z0-9][A-Za-z0-9_.-]{0,127}$/u),
51
- /** The dedicated training Grok login leaf, relative to the declaration. Never the desktop `~/.grok/auth.json`. */
52
- bootstrap: local,
53
- unenforcedBindPolicy: z.enum(["refuse", "profile-only"]).optional()
54
- }).strict();
55
- export const trainingPreparationSchema = z.object({
56
- version: z.enum(["spawnfile.training-container.v2", "spawnfile.training-container.v3", "spawnfile.training-container.v4"]),
57
- slots: z.number().int().min(1).max(8).default(4),
58
- dockerContext: z.string().regex(/^[A-Za-z0-9][A-Za-z0-9_.-]{0,127}$/u),
59
- image: z.union([z.object({ ref: trainingImageSchema }).strict(), z.object({ build: trainingBuildSchema }).strict()]),
60
- integration: z.object({ settings: reference }).strict(),
61
- inputs: z.array(z.object({
62
- id: z.string().regex(/^[A-Za-z][A-Za-z0-9_-]{0,63}$/u), source: local, destination,
63
- include: z.array(relative).min(1).max(256).optional(),
64
- git: z.object({ revision: z.string().regex(/^[a-f0-9]{40}$/u),
65
- overlays: z.array(z.object({ source: local, path: relative, sha256: sha }).strict()).max(256).default([])
66
- }).strict().optional()
67
- }).strict()).min(1).max(64),
68
- output: z.object({ source: local, destination: z.literal("/run/training/output") }).strict(),
69
- auth: z.array(z.object({ source: local, provider: z.enum(["codex", "claude"]) }).strict()).max(2),
70
- evaluatorRoutes: trainingEvaluatorRoutesSchema.optional(),
71
- evaluatorSecrets: trainingEvaluatorSecretsSchema(local).optional(),
72
- subjectIsolation: z.literal("codex-native-sandbox").optional(),
73
- broker: trainingBrokerSchema.optional()
74
- }).strict().superRefine((value, context) => {
75
- if (value.evaluatorSecrets && !value.broker && !value.subjectIsolation)
76
- context.addIssue({ code: "custom", message: "Evaluator secrets require brokered v4 isolation or explicit codex-native-sandbox subject isolation" });
77
- if (value.subjectIsolation && value.version !== "spawnfile.training-container.v2")
78
- context.addIssue({ code: "custom", message: "Codex native subject isolation requires a non-brokered v2 preparation" });
79
- if (value.subjectIsolation && !value.evaluatorRoutes?.some(route => route.provider === "typesafe"))
80
- context.addIssue({ code: "custom", message: "Codex native subject isolation requires a TypeSafe evaluator route" });
81
- if (value.evaluatorSecrets && !value.evaluatorRoutes?.some(route => route.provider === "typesafe")) {
82
- context.addIssue({ code: "custom", message: "TypeSafe secret requires a declared evaluator route" });
83
- }
84
- if (value.version === "spawnfile.training-container.v3")
85
- context.addIssue({ code: "custom", message: "Training-container v3 is unsupported; migrate to v4 with slots: 1" });
86
- if ((value.version === "spawnfile.training-container.v4") !== (value.broker !== undefined)) {
87
- context.addIssue({ code: "custom", message: "Only spawnfile.training-container.v4 declares broker slots; migrate v3 by setting version to v4 and slots to 1" });
88
- }
89
- if (value.broker && "build" in value.image && value.image.build.grok) {
90
- context.addIssue({ code: "custom", message: "A v3 training image never copies a Grok binary; judges use the native parent's pinned /usr/local/bin/grok" });
91
- }
92
- if (new Set(value.inputs.map(input => input.id)).size !== value.inputs.length)
93
- context.addIssue({ code: "custom", message: "Input IDs must be unique" });
94
- if (new Set(value.auth.map(auth => auth.provider)).size !== value.auth.length)
95
- context.addIssue({ code: "custom", message: "Auth providers must be unique" });
96
- if (!value.inputs.some(input => input.id === value.integration.settings.input))
97
- context.addIssue({ code: "custom", message: "Integration settings require a declared input" });
98
- if (value.inputs.some(input => input.git && input.include))
99
- context.addIssue({ code: "custom", message: "Git snapshots and selective local inputs are separate modes" });
100
- });
101
- const containerPath = z.string().regex(/^\/(?:run|opt)\/[A-Za-z0-9._/-]+$/u).refine(value => path.posix.normalize(value) === value);
102
- const mappedSchema = z.object({
103
- version: z.literal("spawnfile.training-preparation.v1"), preparationDigest: sha, imageId: trainingImageSchema,
104
- bindings: z.array(z.object({ inputId: z.string().min(1), destination }).strict()).min(1).max(64),
105
- outputRoot: z.literal("/run/training/output"),
106
- packagePaths: z.object({ spawnfile: containerPath, training: containerPath, bridge: containerPath,
107
- nativeWorker: containerPath, integration: containerPath, bootstrap: containerPath }).strict(),
108
- integration: z.object({ settings: reference }).strict()
109
- }).strict().superRefine((value, context) => {
110
- if (new Set(value.bindings.map(binding => binding.inputId)).size !== value.bindings.length ||
111
- !value.bindings.some(binding => binding.inputId === value.integration.settings.input))
112
- context.addIssue({ code: "custom", message: "Invalid preparation binding IDs" });
113
- });
114
- export const parseTrainingMappedPreparation = (value) => mappedSchema.parse(value);
@@ -1 +0,0 @@
1
- export {};
@@ -1,8 +0,0 @@
1
- import { cp, mkdir } from "node:fs/promises";
2
- import path from "node:path";
3
- import { fileURLToPath } from "node:url";
4
- const root = fileURLToPath(new URL("../../../../", import.meta.url));
5
- const target = path.join(root, "dist/compiler/training/preparation/assets");
6
- await mkdir(target, { recursive: true });
7
- await cp(path.join(root, "runtime-images/training/Dockerfile"), path.join(target, "Dockerfile"));
8
- await cp(path.join(root, "package-lock.json"), path.join(target, "package-lock.json"));
@@ -1,42 +0,0 @@
1
- import { type LocalDaimonRuntimeIdentity } from "../../../runtime/index.js";
2
- import type { TrainingImageBuild } from "./contract.js";
3
- /**
4
- * The declared native parent (`image.build.nativeImage`) and the attested local
5
- * Daimon runtime identity (`SPAWNFILE_DAIMON_LOCAL_RUNTIME_IDENTITY`) are two
6
- * independent pointers at one composed run, and they are never the same digest:
7
- * `runtime-images/daimon/Dockerfile` ends in `FROM scratch`, so the identity can
8
- * only ever attest a *scratch* image that a runnable native parent copies
9
- * `/opt/spawnfile/runtime-installs/daimon` out of. Nothing host-side can compare
10
- * the two digests, so the binding is by content: the capability receipt and
11
- * contract-manifest digest the identity attests must be the ones actually baked
12
- * into the declared parent. `src/runtime/container.ts` verifies exactly this for
13
- * a compiled organization image; this is the same check for a training image.
14
- */
15
- export declare const DAIMON_RUNTIME_INSTALL_ROOT = "/opt/spawnfile/runtime-installs/daimon";
16
- export interface TrainingDaimonParent {
17
- declarationPath: string;
18
- identity: LocalDaimonRuntimeIdentity;
19
- identityPath: string;
20
- nativeImage: string;
21
- }
22
- /**
23
- * Resolves the identity that must match the declared native parent. Runs before
24
- * any Docker call, so an absent, stale-pinned or architecture-drifted identity
25
- * refuses the run — including `--dry-run` — before a container or a token is spent.
26
- */
27
- export declare const resolveTrainingDaimonParent: (build: TrainingImageBuild, declarationPath: string, env?: NodeJS.ProcessEnv) => Promise<TrainingDaimonParent | undefined>;
28
- /**
29
- * One `sh` command, executed as the first instruction of the `${NATIVE_IMAGE}`
30
- * stage, that refuses the build when the declared parent does not carry the exact
31
- * Daimon install the identity attests. This is the only place both values exist
32
- * in one process: the receipt lives inside the image, so no host-side read can
33
- * reach it without starting something.
34
- */
35
- export declare const daimonParentVerificationScript: (parent: TrainingDaimonParent) => string;
36
- /**
37
- * Injects the verification as the first instruction of the native stage, so a
38
- * mismatched pair fails in seconds instead of after the whole distribution copy.
39
- * The recipe text is part of the image plan digest, so the identity is bound into
40
- * the training image's identity too — a rotated identity can never be cached over.
41
- */
42
- export declare const bindDaimonParentVerification: (dockerfile: string, parent: TrainingDaimonParent) => string;
@@ -1,114 +0,0 @@
1
- import { SpawnfileError } from "../../../shared/index.js";
2
- import { DAIMON_LOCAL_RUNTIME_IDENTITY_ENV, loadLocalDaimonRuntimeIdentity } from "../../../runtime/index.js";
3
- /**
4
- * The declared native parent (`image.build.nativeImage`) and the attested local
5
- * Daimon runtime identity (`SPAWNFILE_DAIMON_LOCAL_RUNTIME_IDENTITY`) are two
6
- * independent pointers at one composed run, and they are never the same digest:
7
- * `runtime-images/daimon/Dockerfile` ends in `FROM scratch`, so the identity can
8
- * only ever attest a *scratch* image that a runnable native parent copies
9
- * `/opt/spawnfile/runtime-installs/daimon` out of. Nothing host-side can compare
10
- * the two digests, so the binding is by content: the capability receipt and
11
- * contract-manifest digest the identity attests must be the ones actually baked
12
- * into the declared parent. `src/runtime/container.ts` verifies exactly this for
13
- * a compiled organization image; this is the same check for a training image.
14
- */
15
- export const DAIMON_RUNTIME_INSTALL_ROOT = "/opt/spawnfile/runtime-installs/daimon";
16
- /** A native parent served by the attested loopback development registry is always a local build. */
17
- const LOOPBACK_NATIVE_PARENT = /^127\.0\.0\.1:(?:[1-9]\d{0,4})\//u;
18
- const FROM_NATIVE_IMAGE = /^FROM \$\{NATIVE_IMAGE\}.*$/mu;
19
- /** Everything embedded in the single-quoted shell literals below must be inert. */
20
- const SHELL_SAFE = /^[A-Za-z0-9 ._:@/=+,()~-]+$/u;
21
- const refuse = (lines) => {
22
- throw new SpawnfileError("validation_error", lines.join("\n"));
23
- };
24
- const safe = (label, value) => {
25
- if (!SHELL_SAFE.test(value)) {
26
- refuse([
27
- `Training cannot bind its native parent to a local Daimon runtime identity: ${label} contains characters that cannot be embedded in the image recipe.`,
28
- ` ${label} = ${JSON.stringify(value)}`
29
- ]);
30
- }
31
- return value;
32
- };
33
- /**
34
- * Resolves the identity that must match the declared native parent. Runs before
35
- * any Docker call, so an absent, stale-pinned or architecture-drifted identity
36
- * refuses the run — including `--dry-run` — before a container or a token is spent.
37
- */
38
- export const resolveTrainingDaimonParent = async (build, declarationPath, env = process.env) => {
39
- const identityPath = env[DAIMON_LOCAL_RUNTIME_IDENTITY_ENV]?.trim();
40
- if (!identityPath) {
41
- if (LOOPBACK_NATIVE_PARENT.test(build.nativeImage)) {
42
- refuse([
43
- "Training refuses a locally built native parent with no attested Daimon runtime identity.",
44
- ` ${declarationPath} image.build.nativeImage = ${build.nativeImage}`,
45
- ` ${DAIMON_LOCAL_RUNTIME_IDENTITY_ENV} = (unset)`,
46
- `Point ${DAIMON_LOCAL_RUNTIME_IDENTITY_ENV} at the runtime identity written by the same rebuild that baked ${DAIMON_RUNTIME_INSTALL_ROOT} into that image.`
47
- ]);
48
- }
49
- return undefined;
50
- }
51
- // Keeps the existing contract-pin refusal: this is the first time a training
52
- // run applies it at all, and it stays exactly as strict as it already was.
53
- const identity = await loadLocalDaimonRuntimeIdentity(identityPath);
54
- const expected = build.platform === "linux/amd64" ? "amd64" : "arm64";
55
- if (identity.imageArchitecture !== expected) {
56
- refuse([
57
- "Training native parent and local Daimon runtime identity disagree on architecture.",
58
- ` ${declarationPath} image.build.platform = ${build.platform}`,
59
- ` ${identityPath} image_architecture = ${identity.imageArchitecture}`,
60
- "Rebuild both from one architecture, or repoint both at one rebuild."
61
- ]);
62
- }
63
- return {
64
- declarationPath: safe("the training declaration path", declarationPath),
65
- identity,
66
- identityPath: safe(DAIMON_LOCAL_RUNTIME_IDENTITY_ENV, identityPath),
67
- nativeImage: safe("image.build.nativeImage", build.nativeImage)
68
- };
69
- };
70
- /**
71
- * One `sh` command, executed as the first instruction of the `${NATIVE_IMAGE}`
72
- * stage, that refuses the build when the declared parent does not carry the exact
73
- * Daimon install the identity attests. This is the only place both values exist
74
- * in one process: the receipt lives inside the image, so no host-side read can
75
- * reach it without starting something.
76
- */
77
- export const daimonParentVerificationScript = (parent) => {
78
- const receipt = `${DAIMON_RUNTIME_INSTALL_ROOT}/capability-receipt.json`;
79
- const manifest = `${DAIMON_RUNTIME_INSTALL_ROOT}/contract-manifest.sha256`;
80
- const report = [
81
- `printf '%s\\n'`,
82
- `'REFUSED: the declared training native parent does not carry the Daimon install its runtime identity attests.'`,
83
- `" ${parent.declarationPath} image.build.nativeImage = ${parent.nativeImage}"`,
84
- `" ${parent.identityPath} capability_receipt_sha256 = ${parent.identity.capabilityReceipt}"`,
85
- `" ${parent.identityPath} manifest_sha256 = ${parent.identity.manifestSha256}"`,
86
- `" native parent ${receipt} = $found_receipt"`,
87
- `" native parent ${manifest} = $found_manifest"`,
88
- `'Repoint image.build.nativeImage and ${DAIMON_LOCAL_RUNTIME_IDENTITY_ENV} at the same rebuild.'`,
89
- `>&2`
90
- ].join(" ");
91
- return [
92
- "set -u",
93
- `test -f '${receipt}' || { echo "REFUSED: ${parent.nativeImage} has no ${receipt}; it is not a Daimon native parent." >&2; exit 1; }`,
94
- `test -f '${manifest}' || { echo "REFUSED: ${parent.nativeImage} has no ${manifest}; it is not a Daimon native parent." >&2; exit 1; }`,
95
- `found_receipt="sha256:$(sha256sum '${receipt}' | cut -d' ' -f1)"`,
96
- `found_manifest="$(cat '${manifest}')"`,
97
- `if [ "$found_receipt" != '${parent.identity.capabilityReceipt}' ] || [ "$found_manifest" != '${parent.identity.manifestSha256}' ]; then ${report}; exit 1; fi`
98
- ].join("; ");
99
- };
100
- /**
101
- * Injects the verification as the first instruction of the native stage, so a
102
- * mismatched pair fails in seconds instead of after the whole distribution copy.
103
- * The recipe text is part of the image plan digest, so the identity is bound into
104
- * the training image's identity too — a rotated identity can never be cached over.
105
- */
106
- export const bindDaimonParentVerification = (dockerfile, parent) => {
107
- if (!FROM_NATIVE_IMAGE.test(dockerfile)) {
108
- refuse([
109
- "Training recipe declares no ${NATIVE_IMAGE} stage, so its native parent cannot be bound to the Daimon runtime identity.",
110
- ` ${parent.identityPath} image_reference = ${parent.identity.imageReference}`
111
- ]);
112
- }
113
- return dockerfile.replace(FROM_NATIVE_IMAGE, (line) => `${line}\nRUN ${daimonParentVerificationScript(parent)}`);
114
- };