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,390 +0,0 @@
1
- import { renderPiControlWakeIdentitySource } from "./appControlWakeIdentitySource.js";
2
- export const renderPiControlSource = () => String.raw `const rebuildAgentKeys = (agents) => {
3
- const keys = new Map();
4
- for (const agent of agents) {
5
- const candidates = [
6
- agent.config.id,
7
- agent.config.name,
8
- agent.config.slug,
9
- typeof agent.config.id === "string" && agent.config.id.startsWith("agent:")
10
- ? agent.config.id.slice("agent:".length)
11
- : ""
12
- ];
13
- for (const candidate of candidates) {
14
- if (typeof candidate === "string" && candidate.length > 0) {
15
- keys.set(candidate, agent);
16
- }
17
- }
18
- }
19
- return keys;
20
- };
21
-
22
- const formatControlEventId = (payload, fallbackPrefix) => {
23
- if (typeof payload.event_id === "string" && payload.event_id.length > 0) {
24
- return payload.event_id;
25
- }
26
- if (typeof payload.context_id === "string" && payload.context_id.length > 0) {
27
- return payload.context_id + ":" + Date.now();
28
- }
29
- return fallbackPrefix + Date.now();
30
- };
31
-
32
- // B62 Option B (two wake endpoints split by authenticating authority):
33
- // POST /spawnfile/agents/:slug/wake is the operator-only mutating endpoint
34
- // gated by a bearer token below — the only mutating control endpoint gated
35
- // today (see AGENTS.md / B62 for why the load/restart dev-reload endpoints
36
- // stay out of this slice's scope). POST /agents/:slug/wake is the loopback
37
- // Moltnet->Pi delivery endpoint (server.listen("127.0.0.1") below): it is
38
- // NOT operator-only, is never gated by this token, and stamps a different
39
- // principal (system:moltnet, never operator:control) — see the delivery
40
- // handler further down. SPAWNFILE_PI_CONTROL_TOKEN is trusted env minted by
41
- // the generator/harness (same trust shape as SPAWNFILE_PI_CONTROL_PORT and
42
- // NOOPOLIS_RUN_ID, src/runtime/common.ts) — read only from process.env,
43
- // NEVER from the request body, headers content, or model output. When the
44
- // env var is unset there is "no operator configured": every operator wake
45
- // request fails closed with 401, it is never treated as "auth disabled".
46
- ${renderPiControlWakeIdentitySource()}
47
- const validateDeliveryMetadata = (payload) => {
48
- if (
49
- typeof payload.event_id !== "string" || payload.event_id.trim().length === 0 ||
50
- typeof payload.from !== "string" || payload.from.trim().length === 0 ||
51
- typeof payload.to !== "string" || payload.to.trim().length === 0 ||
52
- typeof payload.context_id !== "string" || payload.context_id.trim().length === 0
53
- ) {
54
- return null;
55
- }
56
- return {
57
- eventId: payload.event_id,
58
- sender: payload.from,
59
- target: payload.to,
60
- contextId: payload.context_id
61
- };
62
- };
63
- const extractBearerToken = (request) => {
64
- const header = request.headers && (request.headers.authorization ?? request.headers.Authorization);
65
- if (typeof header !== "string") {
66
- return "";
67
- }
68
- const match = /^Bearer\s+(.+)$/u.exec(header.trim());
69
- return match ? match[1].trim() : "";
70
- };
71
-
72
- /**
73
- * Authorizes a mutating wake request against SPAWNFILE_PI_CONTROL_TOKEN.
74
- * Fails closed (ok: false) on every path: no configured token, no bearer
75
- * header, or a bearer value that does not match — there is no "auth
76
- * disabled" state.
77
- */
78
- const authorizeControlWake = (request) => {
79
- const configuredToken = typeof process.env[CONTROL_TOKEN_ENV] === "string" ? process.env[CONTROL_TOKEN_ENV].trim() : "";
80
- if (!configuredToken) {
81
- return { ok: false, reason: "no operator token configured (" + CONTROL_TOKEN_ENV + " is unset)" };
82
- }
83
-
84
- const providedToken = extractBearerToken(request);
85
- if (!providedToken) {
86
- return { ok: false, reason: "missing bearer token" };
87
- }
88
- if (providedToken !== configuredToken) {
89
- return { ok: false, reason: "invalid bearer token" };
90
- }
91
-
92
- return { ok: true };
93
- };
94
-
95
- /**
96
- * B62 enforcement point #3 (specs/CAUSAL.md): stamps control.wake.denied
97
- * for a rejected wake request via daimon's observability emitters. Never
98
- * lets a telemetry write failure break the HTTP 401 response — this is
99
- * best-effort like every other causal stamp in this generated app.
100
- */
101
- const recordControlWakeDenied = async (reason, targetAgentId, runtimeHomePath, requestId) => {
102
- try {
103
- await emitControlWakeDenied({
104
- operatorName: CONTROL_OPERATOR_NAME,
105
- reason,
106
- requestId,
107
- runtimeHomePath,
108
- targetAgentId
109
- });
110
- } catch (error) {
111
- console.error("[pi] failed to record control.wake.denied: " + (error instanceof Error ? error.message : String(error)));
112
- }
113
- };
114
-
115
- /** B62 enforcement point #3, operator path: stamps control.wake.accepted (principal operator:control) for an authorized, executed wake. */
116
- const recordControlWakeAccepted = async (targetAgentId, wakeKind, runtimeHomePath, requestId, causeEventIds) => {
117
- try {
118
- await emitControlWakeAccepted({
119
- causeEventIds,
120
- operatorName: CONTROL_OPERATOR_NAME,
121
- requestId,
122
- runtimeHomePath,
123
- targetAgentId,
124
- wakeKind
125
- });
126
- } catch (error) {
127
- console.error("[pi] failed to record control.wake.accepted: " + (error instanceof Error ? error.message : String(error)));
128
- }
129
- };
130
-
131
- /**
132
- * B62 enforcement point #3, Moltnet delivery path (Option B): stamps
133
- * control.wake.accepted for a tokenless delivery wake via daimon's
134
- * emitDeliveryWakeAccepted, which always stamps principal_id "system:moltnet"
135
- * — the delivering authority itself — NEVER operator:control, and NEVER a
136
- * value read from the request body's "from"/agent field. This is the
137
- * attribution that distinguishes a real inter-agent delivery from an
138
- * operator-issued wake without needing a second bearer token.
139
- */
140
- const recordDeliveryWakeAccepted = async (targetAgentId, wakeKind, runtimeHomePath, requestId, causeEventIds) => {
141
- try {
142
- await emitDeliveryWakeAccepted({
143
- causeEventIds,
144
- requestId,
145
- runtimeHomePath,
146
- targetAgentId,
147
- wakeKind
148
- });
149
- } catch (error) {
150
- console.error("[pi] failed to record delivery control.wake.accepted: " + (error instanceof Error ? error.message : String(error)));
151
- }
152
- };
153
-
154
- /**
155
- * Shared wake-execution core for both /agents/:slug/wake (delivery) and
156
- * /spawnfile/agents/:slug/wake (operator): reads the request body, runs
157
- * the agent's wake, and returns the response shape both endpoints send.
158
- * A blank/missing message is treated as a no-op (matches pre-B62 behavior)
159
- * and is reported as executed: false so callers skip the causal stamp for
160
- * it, exactly like the original single-endpoint handler did. Auth and
161
- * attribution (which principal to stamp) are the caller's responsibility —
162
- * this helper has no knowledge of either.
163
- */
164
- const executeAgentWake = async (agent, payload, requireDeliveryMetadata, agentsByKey) => {
165
- const deliveryMetadata = requireDeliveryMetadata ? validateDeliveryMetadata(payload) : null;
166
- if (requireDeliveryMetadata && !deliveryMetadata) {
167
- throw new Error(DELIVERY_METADATA_INVALID_ERROR);
168
- }
169
- const deliveryTarget = requireDeliveryMetadata ? agentsByKey.get(deliveryMetadata.target) : null;
170
- if (requireDeliveryMetadata && deliveryTarget !== agent) {
171
- throw new Error(DELIVERY_METADATA_INVALID_ERROR);
172
- }
173
-
174
- const eventId = requireDeliveryMetadata ? deliveryMetadata.eventId : formatControlEventId(payload, "message-");
175
- if (typeof payload.message !== "string" || payload.message.trim().length === 0) {
176
- return { eventId: undefined, executed: false, from: agent.config.id, message: "", wakeKind: undefined };
177
- }
178
-
179
- const wakeKind = normalizeWakeKind(typeof payload.wake_kind === "string" ? payload.wake_kind : payload.kind);
180
- const message = await agent.wake({
181
- id: eventId,
182
- kind: wakeKind,
183
- ...(deliveryMetadata
184
- ? {
185
- delivery: {
186
- eventId: deliveryMetadata.eventId,
187
- sender: deliveryMetadata.sender,
188
- target: agent.config.id,
189
- contextId: deliveryMetadata.contextId
190
- },
191
- transportText: typeof payload.transport_text === "string"
192
- ? payload.transport_text
193
- : payload.message
194
- }
195
- : undefined),
196
- from: typeof payload.from === "string" ? payload.from : "moltnet",
197
- context: payload.context && typeof payload.context === "object" ? payload.context : undefined,
198
- context_id: typeof payload.context_id === "string" ? payload.context_id : undefined,
199
- text: typeof payload.message === "string" ? payload.message : ""
200
- });
201
-
202
- return { eventId, executed: true, from: agent.config.id, message, wakeKind };
203
- };
204
-
205
- const loadManagedAgent = async (agents, configPath, slug, instanceRoot, services) => {
206
- const config = await readJson(configPath);
207
- const agentConfig = (config.agents ?? []).find((agent) => agent.slug === slug || agent.id === slug || agent.name === slug);
208
- if (!agentConfig) {
209
- throw new Error("unknown agent " + slug);
210
- }
211
-
212
- const oldIndex = agents.findIndex((agent) => agent.config.slug === agentConfig.slug || agent.config.id === agentConfig.id || agent.config.name === agentConfig.name);
213
- if (oldIndex >= 0) {
214
- agents[oldIndex].stop();
215
- agents.splice(oldIndex, 1);
216
- }
217
-
218
- const managed = new PiManagedAgent(agentConfig, {
219
- runtimeHomePath: path.join(instanceRoot, "runtime", "agents", agentConfig.slug),
220
- homePath: path.join(instanceRoot, "home"),
221
- workspacePath: path.join(instanceRoot, "workspace", "agents", agentConfig.slug)
222
- }, services);
223
- await managed.start();
224
- agents.push(managed);
225
- return managed;
226
- };
227
-
228
- const startControlServer = async (agents, portValue, configPath, instanceRoot, services) => {
229
- if (!portValue) {
230
- return null;
231
- }
232
- const port = Number(portValue);
233
- if (!Number.isInteger(port) || port <= 0 || port > 65535) {
234
- throw new Error("Invalid SPAWNFILE_PI_CONTROL_PORT: " + portValue);
235
- }
236
-
237
- let agentsByKey = rebuildAgentKeys(agents);
238
-
239
- const server = createServer(async (request, response) => {
240
- const url = new URL(request.url ?? "/", "http://127.0.0.1");
241
-
242
- if (request.method === "GET" && url.pathname === "/healthz") {
243
- sendJson(response, 200, { status: "ok" });
244
- return;
245
- }
246
-
247
- if (request.method === "GET" && url.pathname === "/spawnfile/agents") {
248
- sendJson(response, 200, {
249
- agents: agents.map((agent) => ({
250
- id: agent.config.id,
251
- name: agent.config.name,
252
- slug: agent.config.slug
253
- }))
254
- });
255
- return;
256
- }
257
-
258
- if (request.method === "GET" && url.pathname === "/spawnfile/activity") {
259
- sendJson(response, 200, { events: services.activity.list(url.searchParams.get("agent"), url.searchParams.get("tail")) });
260
- return;
261
- }
262
-
263
- if (request.method === "GET" && url.pathname === "/spawnfile/activity/stream") {
264
- services.activity.stream(request, response, url.searchParams.get("agent"), url.searchParams.get("tail"));
265
- return;
266
- }
267
-
268
- const activityMatch = /^\/spawnfile\/agents\/([^/]+)\/activity(\/stream)?$/u.exec(url.pathname);
269
- if (request.method === "GET" && activityMatch) {
270
- const agentFilter = decodeURIComponent(activityMatch[1]);
271
- if (activityMatch[2]) {
272
- services.activity.stream(request, response, agentFilter, url.searchParams.get("tail"));
273
- } else {
274
- sendJson(response, 200, { events: services.activity.list(agentFilter, url.searchParams.get("tail")) });
275
- }
276
- return;
277
- }
278
-
279
- if (request.method === "POST" && (url.pathname === "/spawnfile/agents/load" || url.pathname === "/spawnfile/agents/restart")) {
280
- try {
281
- const payload = await readRequestJson(request);
282
- const slug = typeof payload.slug === "string"
283
- ? payload.slug
284
- : typeof payload.agent === "string"
285
- ? payload.agent
286
- : "";
287
- const agent = await loadManagedAgent(agents, configPath, slug, instanceRoot, services);
288
- agentsByKey = rebuildAgentKeys(agents);
289
- sendJson(response, 200, { id: agent.config.id, loaded: true, name: agent.config.name, slug: agent.config.slug });
290
- } catch (error) {
291
- sendJson(response, 400, { error: error instanceof Error ? error.message : String(error) });
292
- }
293
- return;
294
- }
295
-
296
- // B62 Option B, operator path: fail-closed on SPAWNFILE_PI_CONTROL_TOKEN,
297
- // stamps operator:control via emitControlWakeAccepted/Denied. This is the
298
- // ONLY wake path gated by a bearer token.
299
- const operatorWakeMatch = /^\/spawnfile\/agents\/([^/]+)\/wake$/u.exec(url.pathname);
300
- if (request.method === "POST" && operatorWakeMatch) {
301
- const key = decodeURIComponent(operatorWakeMatch[1]);
302
- const requestId = controlWakeRequestId(key);
303
-
304
- const authResult = authorizeControlWake(request);
305
- if (!authResult.ok) {
306
- const knownAgent = agentsByKey.get(key);
307
- const deniedRuntimeHomePath = knownAgent
308
- ? knownAgent.paths.runtimeHomePath
309
- : path.join(instanceRoot, "runtime", "control");
310
- await recordControlWakeDenied(authResult.reason, key, deniedRuntimeHomePath, requestId);
311
- sendJson(response, 401, { error: authResult.reason });
312
- return;
313
- }
314
-
315
- const agent = agentsByKey.get(key);
316
- if (!agent) {
317
- sendJson(response, 404, { error: "unknown agent " + key });
318
- return;
319
- }
320
-
321
- try {
322
- const payload = await readRequestJson(request);
323
- const result = await executeAgentWake(agent, payload);
324
- if (result.executed) {
325
- await recordControlWakeAccepted(
326
- key,
327
- result.wakeKind,
328
- agent.paths.runtimeHomePath,
329
- requestId,
330
- causeEventIdsForWake(result.wakeKind, result.eventId)
331
- );
332
- }
333
- sendJson(response, 200, { from: result.from, message: result.message });
334
- } catch (error) {
335
- sendJson(response, 400, { error: error instanceof Error ? error.message : String(error) });
336
- }
337
- return;
338
- }
339
-
340
- // B62 Option B, Moltnet delivery path: the loopback (127.0.0.1) endpoint
341
- // the Moltnet->Pi bridge POSTs normal inter-agent deliveries to. NOT
342
- // operator-only, NEVER gated by SPAWNFILE_PI_CONTROL_TOKEN (sender
343
- // authority is already enforced moltnet-side before a message reaches
344
- // here), and stamps principal_id "system:moltnet" via
345
- // recordDeliveryWakeAccepted — NEVER operator:control, and NEVER read
346
- // from the request body's "from"/agent field.
347
- const deliveryWakeMatch = /^\/agents\/([^/]+)\/wake$/u.exec(url.pathname);
348
- if (request.method !== "POST" || !deliveryWakeMatch) {
349
- sendJson(response, 404, { error: "not found" });
350
- return;
351
- }
352
-
353
- const deliveryKey = decodeURIComponent(deliveryWakeMatch[1]);
354
- const deliveryRequestId = controlWakeRequestId(deliveryKey);
355
-
356
- const deliveryAgent = agentsByKey.get(deliveryKey);
357
- if (!deliveryAgent) {
358
- sendJson(response, 404, { error: "unknown agent " + deliveryKey });
359
- return;
360
- }
361
-
362
- try {
363
- const payload = await readRequestJson(request);
364
- const result = await executeAgentWake(deliveryAgent, payload, true, agentsByKey);
365
- if (result.executed) {
366
- await recordDeliveryWakeAccepted(
367
- deliveryKey,
368
- result.wakeKind,
369
- deliveryAgent.paths.runtimeHomePath,
370
- deliveryRequestId,
371
- causeEventIdsForWake(result.wakeKind, result.eventId)
372
- );
373
- }
374
- sendJson(response, 200, { from: result.from, message: result.message });
375
- } catch (error) {
376
- sendJson(response, 400, { error: error instanceof Error ? error.message : String(error) });
377
- }
378
- });
379
-
380
- await new Promise((resolve, reject) => {
381
- server.once("error", reject);
382
- server.listen(port, "127.0.0.1", () => {
383
- server.off("error", reject);
384
- resolve();
385
- });
386
- });
387
- console.log("[pi] control listening on 127.0.0.1:" + port);
388
- return server;
389
- };
390
- `;
@@ -1 +0,0 @@
1
- export declare const renderPiControlWakeIdentitySource: () => string;
@@ -1,19 +0,0 @@
1
- export const renderPiControlWakeIdentitySource = () => String.raw `const CONTROL_TOKEN_ENV = "SPAWNFILE_PI_CONTROL_TOKEN";
2
- const DELIVERY_METADATA_INVALID_ERROR = "invalid delivery metadata";
3
- // The authenticated principal stamped on control.wake.accepted/denied
4
- // events for this endpoint (operator:control, specs/CAUSAL.md §3). Root
5
- // has exactly one operator-control bearer token today, so one static
6
- // operator identity is enough; a future multi-operator token scheme would
7
- // resolve this from the verified token instead.
8
- const CONTROL_OPERATOR_NAME = "control";
9
-
10
- const controlWakeRequestId = (targetAgentId) =>
11
- "wake-" + targetAgentId + "-" + Date.now() + "-" + Math.random().toString(16).slice(2);
12
-
13
- // control.wake.accepted should chain to the real inbound moltnet event only
14
- // for message-triggered wakes (the WakeEvent id moltnet's bridge stamped,
15
- // see formatControlEventId above); schedule/dream-kind wakes legitimately
16
- // have no moltnet cause and stay [].
17
- const causeEventIdsForWake = (wakeKind, eventId) =>
18
- wakeKind === "message" && typeof eventId === "string" && eventId.length > 0 ? [eventId] : [];
19
- `;
@@ -1,4 +0,0 @@
1
- export interface RenderPiCoreSourceOptions {
2
- world?: boolean;
3
- }
4
- export declare const renderPiCoreSource: (options?: RenderPiCoreSourceOptions) => string;
@@ -1,244 +0,0 @@
1
- import { renderPiControlSource } from "./appControlSource.js";
2
- import { renderPiWakeContextSource } from "./appWakeContextSource.js";
3
- export const renderPiCoreSource = (options = {}) => String.raw `const createConfigModel = (agentConfig) => ({
4
- provider: typeof agentConfig?.model?.provider === "string" ? agentConfig.model.provider : "openai-codex",
5
- name: typeof agentConfig?.model?.name === "string" ? agentConfig.model.name : "gpt-5.4-mini"
6
- });
7
-
8
- const normalizeWakeKind = (value) => {
9
- return value === "manual" || value === "message" || value === "schedule" || value === "dream"
10
- ? value
11
- : "message";
12
- };
13
-
14
- ${renderPiWakeContextSource()}
15
-
16
- ${renderPiControlSource()}
17
-
18
- class PiManagedAgent {
19
- constructor(config, paths, services) {
20
- this.config = config;
21
- this.paths = paths;
22
- this.services = services;
23
- this.engine = normalizeAgentEngineKind(config);
24
- this.adapter = this.engine === "pi"
25
- ? new PiHarnessAdapter({
26
- authPath: path.join(paths.homePath, ".pi", "agent", "auth.json"),
27
- modelsPath: path.join(paths.homePath, ".pi", "agent", "models.json"),
28
- model: createConfigModel(config),
29
- memory: createMemoryRuntimeOptions(config),
30
- rawTrainingCapture: config.raw_training_capture,
31
- thinkingLevel: config.thinking_level${options.world ? ",\n world: config.world" : ""}
32
- })
33
- : null;
34
- this.running = false;
35
- this.queued = [];
36
- }
37
- async start() {
38
- if (this.engine === "pi") {
39
- this.handle = await this.adapter.startAgent({
40
- id: this.config.id,
41
- name: this.config.name,
42
- instructions: createAgentInstructions(this.config, this.paths.workspacePath),
43
- runtimeHomePath: this.paths.runtimeHomePath,
44
- tools: this.config.tools,
45
- workspacePath: this.paths.workspacePath
46
- });
47
- } else {
48
- this.handle = new CliEngineAgentHandle(this.config, this.paths);
49
- }
50
- this.publish("agent.loaded", { engine: this.engine });
51
- }
52
- listDreamEnvironmentKeys() {
53
- return listDreamEnvironmentKeys(this.paths.workspacePath);
54
- }
55
- publish(type, fields = {}) {
56
- this.services.activity?.publish({
57
- type,
58
- agent_id: this.config.id,
59
- agent_name: this.config.name,
60
- agent_slug: this.config.slug,
61
- engine: this.engine,
62
- ...fields
63
- });
64
- }
65
- async wake(event) {
66
- const enriched = await enrichWakeContext(this.paths.workspacePath, event);
67
- const messageFrom = asStringOrUndefined(enriched.messageFrom);
68
- const isRoomWake = enriched.isRoomWake;
69
- const deliveryFrom = asStringOrUndefined(event.delivery?.sender);
70
- const from = deliveryFrom ?? (isRoomWake
71
- ? "moltnet"
72
- : (asStringOrUndefined(enriched.eventFrom) ?? messageFrom ?? "moltnet"));
73
- const kind = normalizeWakeKind(event.kind);
74
- const rawText = typeof event.text === "string" ? event.text : "";
75
- const resolvedContext = enriched.context;
76
- const context = asObject(resolvedContext) ? {
77
- ...resolvedContext,
78
- activeEnvironment: enriched.activeEnvironment,
79
- active_environment: enriched.activeEnvironment
80
- } : enriched.context;
81
- const promptFrom = isRoomWake ? messageFrom : from;
82
- const contextualText = kind === "message" || kind === "manual"
83
- ? controlEventText({ ...event, message: rawText, from: promptFrom, activeEnvironment: enriched.activeEnvironment })
84
- : [
85
- rawText,
86
- ...formatActiveEnvironmentBlock(enriched.activeEnvironment)
87
- ].filter((line) => line.trim().length > 0).join("\n\n");
88
-
89
- const enrichedEvent = {
90
- ...event,
91
- context,
92
- from,
93
- text: contextualText,
94
- };
95
-
96
- return new Promise((resolve, reject) => {
97
- this.queued.push({ event: enrichedEvent, reject, resolve });
98
- this.publish("agent.wake.queued", {
99
- queue_length: this.queued.length,
100
- wake_id: event.id,
101
- wake_kind: kind
102
- });
103
- void this.drainQueue();
104
- });
105
- }
106
- async drainQueue() {
107
- if (this.running) {
108
- return;
109
- }
110
-
111
- this.running = true;
112
- try {
113
- while (this.queued.length > 0) {
114
- const next = this.queued.shift();
115
- try {
116
- next.resolve(await this.runWake(next.event));
117
- } catch (error) {
118
- next.reject(error);
119
- }
120
- }
121
- } finally {
122
- this.running = false;
123
- }
124
- }
125
- async runWake(event) {
126
- const startedAt = Date.now();
127
- this.publish("agent.turn.started", {
128
- wake_id: event.id,
129
- wake_kind: event.kind
130
- });
131
- try {
132
- const result = await this.handle.wake({
133
- context: event.context,
134
- context_id: event.context_id,
135
- delivery: event.delivery,
136
- id: event.id,
137
- kind: event.kind,
138
- from: event.from,
139
- text: event.text,
140
- transportText: event.transportText
141
- });
142
- const finalText = typeof result.text === "string" ? result.text.trim() : "";
143
- console.log("[pi:" + this.config.id + "] " + finalText);
144
- if (finalText.length > 0) {
145
- this.publish("agent.output.completed", {
146
- text: finalText,
147
- wake_id: event.id,
148
- wake_kind: event.kind
149
- });
150
- }
151
- this.publish("agent.turn.completed", {
152
- duration_ms: result.durationMs ?? (Date.now() - startedAt),
153
- output_length: finalText.length,
154
- trace_path: turnTracePath(this.paths, event.id),
155
- wake_id: event.id,
156
- wake_kind: event.kind
157
- });
158
- return finalText;
159
- } catch (error) {
160
- console.error("[pi:" + this.config.id + "] failed " + event.id + ": " + (error instanceof Error ? error.message : String(error)));
161
- this.publish("agent.turn.failed", {
162
- duration_ms: Date.now() - startedAt,
163
- error: formatActivityError(error),
164
- trace_path: turnTracePath(this.paths, event.id),
165
- wake_id: event.id,
166
- wake_kind: event.kind
167
- });
168
- throw error;
169
- }
170
- }
171
- stop() {
172
- this.handle?.stop();
173
- this.publish("agent.stopped");
174
- }
175
- }
176
-
177
- const main = async () => {
178
- const configPath = process.argv[2];
179
- if (!configPath) {
180
- throw new Error("Usage: node app.mjs <pi-app.json>");
181
- }
182
-
183
- const config = await readJson(configPath);
184
- const instanceRoot = path.resolve(path.dirname(configPath), "..");
185
- const activityLogPath = path.join(instanceRoot, "runtime", "activity.ndjson");
186
- await mkdir(path.dirname(activityLogPath), { recursive: true });
187
- const activity = createActivityBroker({ logPath: activityLogPath });
188
- const services = { activity };
189
- const agents = [];
190
-
191
- for (const agentConfig of config.agents ?? []) {
192
- const managed = new PiManagedAgent(
193
- agentConfig,
194
- {
195
- runtimeHomePath: path.join(instanceRoot, "runtime", "agents", agentConfig.slug),
196
- homePath: path.join(instanceRoot, "home"),
197
- workspacePath: path.join(instanceRoot, "workspace", "agents", agentConfig.slug)
198
- },
199
- services
200
- );
201
- await managed.start();
202
- agents.push(managed);
203
- }
204
-
205
- const timers = [];
206
- const runOnce = process.env.SPAWNFILE_PI_RUN_ONCE === "1";
207
- const controlServer = runOnce
208
- ? null
209
- : await startControlServer(agents, process.env.SPAWNFILE_PI_CONTROL_PORT, configPath, instanceRoot, services);
210
-
211
- const scheduledCount = await installAgentSchedules(agents, timers, runOnce);
212
-
213
- if (runOnce) {
214
- if (scheduledCount === 0) {
215
- console.log("[pi] no schedules to run");
216
- }
217
- for (const agent of agents) {
218
- agent.stop();
219
- }
220
- return;
221
- }
222
-
223
- console.log("[pi] started " + agents.length + " agents");
224
- const shutdown = () => {
225
- for (const timer of timers) {
226
- clearInterval(timer);
227
- }
228
- for (const agent of agents) {
229
- agent.stop();
230
- }
231
- controlServer?.close(() => process.exit(0));
232
- if (!controlServer) {
233
- process.exit(0);
234
- }
235
- };
236
- process.on("SIGINT", shutdown);
237
- process.on("SIGTERM", shutdown);
238
- };
239
-
240
- main().catch((error) => {
241
- console.error(error instanceof Error ? error.stack ?? error.message : String(error));
242
- process.exit(1);
243
- });
244
- `;
@@ -1 +0,0 @@
1
- export declare const renderPiPreludeSource: () => string;