@noopolis/daimon 0.1.2 → 0.2.1

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 (422) hide show
  1. package/README.md +275 -51
  2. package/dist/contracts/attentionContract.d.ts +142 -0
  3. package/dist/contracts/attentionContract.d.ts.map +1 -0
  4. package/dist/contracts/attentionContract.js +21 -0
  5. package/dist/contracts/canonicalJson.d.ts +3 -0
  6. package/dist/contracts/canonicalJson.d.ts.map +1 -0
  7. package/dist/contracts/canonicalJson.js +54 -0
  8. package/dist/contracts/grokBrokerTaskClock.d.ts +18 -0
  9. package/dist/contracts/grokBrokerTaskClock.d.ts.map +1 -0
  10. package/dist/contracts/grokBrokerTaskClock.js +16 -0
  11. package/dist/contracts/grokWorkerContract.d.ts +74 -0
  12. package/dist/contracts/grokWorkerContract.d.ts.map +1 -0
  13. package/dist/contracts/grokWorkerContract.js +88 -0
  14. package/dist/contracts/organizationRuntimeContract.d.ts +841 -0
  15. package/dist/contracts/organizationRuntimeContract.d.ts.map +1 -0
  16. package/dist/contracts/organizationRuntimeContract.js +123 -0
  17. package/dist/contracts/runtimeContractManifest.d.ts +1822 -0
  18. package/dist/contracts/runtimeContractManifest.d.ts.map +1 -0
  19. package/dist/contracts/runtimeContractManifest.js +206 -0
  20. package/dist/contracts/shellEnvironmentPolicy.d.ts +3 -0
  21. package/dist/contracts/shellEnvironmentPolicy.d.ts.map +1 -0
  22. package/dist/contracts/shellEnvironmentPolicy.js +5 -0
  23. package/dist/contracts/wakeMomentContract.d.ts +61 -0
  24. package/dist/contracts/wakeMomentContract.d.ts.map +1 -0
  25. package/dist/contracts/wakeMomentContract.js +27 -0
  26. package/dist/core/credentialRedaction.d.ts +4 -0
  27. package/dist/core/credentialRedaction.d.ts.map +1 -0
  28. package/dist/core/credentialRedaction.js +28 -0
  29. package/dist/core/types.d.ts +2 -0
  30. package/dist/core/types.d.ts.map +1 -1
  31. package/dist/examples/jungianPlayAgent.d.ts +1 -0
  32. package/dist/examples/jungianPlayAgent.d.ts.map +1 -1
  33. package/dist/examples/jungianPlayAgent.js +6 -2
  34. package/dist/mcp/toolServer.d.ts +19 -2
  35. package/dist/mcp/toolServer.d.ts.map +1 -1
  36. package/dist/mcp/toolServer.js +57 -17
  37. package/dist/observability/causalEvents.d.ts +6 -6
  38. package/dist/observability/causalEvents.d.ts.map +1 -1
  39. package/dist/observability/causalEvents.js +107 -19
  40. package/dist/observability/orgObserver.d.ts.map +1 -1
  41. package/dist/observability/orgObserver.js +3 -3
  42. package/dist/pi/agyHeadlessResult.d.ts +60 -0
  43. package/dist/pi/agyHeadlessResult.d.ts.map +1 -0
  44. package/dist/pi/agyHeadlessResult.js +95 -0
  45. package/dist/pi/cliChildOutput.d.ts +67 -0
  46. package/dist/pi/cliChildOutput.d.ts.map +1 -0
  47. package/dist/pi/cliChildOutput.js +269 -0
  48. package/dist/pi/cliEngineRun.d.ts +16 -0
  49. package/dist/pi/cliEngineRun.d.ts.map +1 -0
  50. package/dist/pi/cliEngineRun.js +27 -0
  51. package/dist/pi/cliEngineSpawn.d.ts +55 -0
  52. package/dist/pi/cliEngineSpawn.d.ts.map +1 -0
  53. package/dist/pi/cliEngineSpawn.js +169 -0
  54. package/dist/pi/cliEnvironment.d.ts +12 -0
  55. package/dist/pi/cliEnvironment.d.ts.map +1 -0
  56. package/dist/pi/cliEnvironment.js +34 -0
  57. package/dist/pi/cliMcpRegistration.d.ts +61 -0
  58. package/dist/pi/cliMcpRegistration.d.ts.map +1 -0
  59. package/dist/pi/cliMcpRegistration.js +75 -0
  60. package/dist/pi/cliProcess.d.ts +7 -0
  61. package/dist/pi/cliProcess.d.ts.map +1 -0
  62. package/dist/pi/cliProcess.js +132 -0
  63. package/dist/pi/cliSession.d.ts +86 -24
  64. package/dist/pi/cliSession.d.ts.map +1 -1
  65. package/dist/pi/cliSession.js +251 -173
  66. package/dist/pi/cliSessionMcp.d.ts +9 -0
  67. package/dist/pi/cliSessionMcp.d.ts.map +1 -0
  68. package/dist/pi/cliSessionMcp.js +80 -0
  69. package/dist/pi/cliTurnMetering.d.ts +60 -0
  70. package/dist/pi/cliTurnMetering.d.ts.map +1 -0
  71. package/dist/pi/cliTurnMetering.js +60 -0
  72. package/dist/pi/codexFilesystemRules.d.ts +3 -0
  73. package/dist/pi/codexFilesystemRules.d.ts.map +1 -0
  74. package/dist/pi/codexFilesystemRules.js +28 -0
  75. package/dist/pi/codexHeadlessResult.d.ts +68 -0
  76. package/dist/pi/codexHeadlessResult.d.ts.map +1 -0
  77. package/dist/pi/codexHeadlessResult.js +122 -0
  78. package/dist/pi/codexRolloutUsage.d.ts +95 -0
  79. package/dist/pi/codexRolloutUsage.d.ts.map +1 -0
  80. package/dist/pi/codexRolloutUsage.js +221 -0
  81. package/dist/pi/engineTaskClock.d.ts +9 -0
  82. package/dist/pi/engineTaskClock.d.ts.map +1 -0
  83. package/dist/pi/engineTaskClock.js +28 -0
  84. package/dist/pi/engineWakeLimits.d.ts +39 -0
  85. package/dist/pi/engineWakeLimits.d.ts.map +1 -0
  86. package/dist/pi/engineWakeLimits.js +55 -0
  87. package/dist/pi/grokHeadlessResult.d.ts +36 -0
  88. package/dist/pi/grokHeadlessResult.d.ts.map +1 -0
  89. package/dist/pi/grokHeadlessResult.js +118 -0
  90. package/dist/pi/grokHomeMcpRegistration.d.ts +21 -0
  91. package/dist/pi/grokHomeMcpRegistration.d.ts.map +1 -0
  92. package/dist/pi/grokHomeMcpRegistration.js +58 -0
  93. package/dist/pi/grokSandbox.d.ts +11 -0
  94. package/dist/pi/grokSandbox.d.ts.map +1 -0
  95. package/dist/pi/grokSandbox.js +216 -0
  96. package/dist/pi/grokStreamUsage.d.ts +31 -0
  97. package/dist/pi/grokStreamUsage.d.ts.map +1 -0
  98. package/dist/pi/grokStreamUsage.js +51 -0
  99. package/dist/pi/memoryClock.d.ts +25 -0
  100. package/dist/pi/memoryClock.d.ts.map +1 -0
  101. package/dist/pi/memoryClock.js +18 -0
  102. package/dist/pi/piAgentHandle.d.ts +6 -3
  103. package/dist/pi/piAgentHandle.d.ts.map +1 -1
  104. package/dist/pi/piAgentHandle.js +42 -12
  105. package/dist/pi/piAgentWakeSupport.d.ts +35 -0
  106. package/dist/pi/piAgentWakeSupport.d.ts.map +1 -1
  107. package/dist/pi/piAgentWakeSupport.js +4 -0
  108. package/dist/pi/piHarness.d.ts +18 -3
  109. package/dist/pi/piHarness.d.ts.map +1 -1
  110. package/dist/pi/piHarness.js +83 -14
  111. package/dist/pi/prompts.d.ts +1 -0
  112. package/dist/pi/prompts.d.ts.map +1 -1
  113. package/dist/pi/prompts.js +24 -0
  114. package/dist/pi/taskClockProcess.d.ts +6 -0
  115. package/dist/pi/taskClockProcess.d.ts.map +1 -0
  116. package/dist/pi/taskClockProcess.js +8 -0
  117. package/dist/pi/turnCausal.d.ts +4 -2
  118. package/dist/pi/turnCausal.d.ts.map +1 -1
  119. package/dist/pi/turnCausal.js +4 -4
  120. package/dist/pi/turnTrace.d.ts.map +1 -1
  121. package/dist/pi/turnTrace.js +5 -8
  122. package/dist/pi/wakeAcceptance.d.ts +1 -1
  123. package/dist/pi/wakeAcceptance.d.ts.map +1 -1
  124. package/dist/pi/wakeAcceptance.js +2 -2
  125. package/dist/pi/worldTrajectory.d.ts +1 -1
  126. package/dist/pi/worldTrajectory.d.ts.map +1 -1
  127. package/dist/pi/worldTrajectory.js +3 -3
  128. package/dist/runtime/agySubscriptionBootstrap.d.ts +16 -0
  129. package/dist/runtime/agySubscriptionBootstrap.d.ts.map +1 -0
  130. package/dist/runtime/agySubscriptionBootstrap.js +80 -0
  131. package/dist/runtime/agySubscriptionRealm.d.ts +38 -0
  132. package/dist/runtime/agySubscriptionRealm.d.ts.map +1 -0
  133. package/dist/runtime/agySubscriptionRealm.js +242 -0
  134. package/dist/runtime/attention.d.ts +26 -0
  135. package/dist/runtime/attention.d.ts.map +1 -0
  136. package/dist/runtime/attention.js +49 -0
  137. package/dist/runtime/attentionDispatcher.d.ts +78 -0
  138. package/dist/runtime/attentionDispatcher.d.ts.map +1 -0
  139. package/dist/runtime/attentionDispatcher.js +365 -0
  140. package/dist/runtime/cli.d.ts +7 -0
  141. package/dist/runtime/cli.d.ts.map +1 -0
  142. package/dist/runtime/cli.js +256 -0
  143. package/dist/runtime/codexSandboxProjection.d.ts +17 -0
  144. package/dist/runtime/codexSandboxProjection.d.ts.map +1 -0
  145. package/dist/runtime/codexSandboxProjection.js +40 -0
  146. package/dist/runtime/contract-manifest.json +1 -0
  147. package/dist/runtime/contract-manifest.sha256 +1 -0
  148. package/dist/runtime/contractManifest.d.ts +8 -0
  149. package/dist/runtime/contractManifest.d.ts.map +1 -0
  150. package/dist/runtime/contractManifest.js +4 -0
  151. package/dist/runtime/engineBrokerCapabilities.d.ts +40 -0
  152. package/dist/runtime/engineBrokerCapabilities.d.ts.map +1 -0
  153. package/dist/runtime/engineBrokerCapabilities.js +69 -0
  154. package/dist/runtime/engineBrokerControlClient.d.ts +55 -0
  155. package/dist/runtime/engineBrokerControlClient.d.ts.map +1 -0
  156. package/dist/runtime/engineBrokerControlClient.js +228 -0
  157. package/dist/runtime/engineBrokerCredentialJournal.d.ts +12 -0
  158. package/dist/runtime/engineBrokerCredentialJournal.d.ts.map +1 -0
  159. package/dist/runtime/engineBrokerCredentialJournal.js +26 -0
  160. package/dist/runtime/engineBrokerInferenceProtocol.d.ts +53 -0
  161. package/dist/runtime/engineBrokerInferenceProtocol.d.ts.map +1 -0
  162. package/dist/runtime/engineBrokerInferenceProtocol.js +65 -0
  163. package/dist/runtime/engineBrokerMcpCallLog.d.ts +171 -0
  164. package/dist/runtime/engineBrokerMcpCallLog.d.ts.map +1 -0
  165. package/dist/runtime/engineBrokerMcpCallLog.js +231 -0
  166. package/dist/runtime/engineBrokerMcpFacade.d.ts +59 -0
  167. package/dist/runtime/engineBrokerMcpFacade.d.ts.map +1 -0
  168. package/dist/runtime/engineBrokerMcpFacade.js +346 -0
  169. package/dist/runtime/engineBrokerNativeClient.d.ts +52 -0
  170. package/dist/runtime/engineBrokerNativeClient.d.ts.map +1 -0
  171. package/dist/runtime/engineBrokerNativeClient.js +151 -0
  172. package/dist/runtime/engineBrokerProtocol.d.ts +167 -0
  173. package/dist/runtime/engineBrokerProtocol.d.ts.map +1 -0
  174. package/dist/runtime/engineBrokerProtocol.js +357 -0
  175. package/dist/runtime/engineBrokerSealLedger.d.ts +70 -0
  176. package/dist/runtime/engineBrokerSealLedger.d.ts.map +1 -0
  177. package/dist/runtime/engineBrokerSealLedger.js +132 -0
  178. package/dist/runtime/engineBrokerService.d.ts +43 -0
  179. package/dist/runtime/engineBrokerService.d.ts.map +1 -0
  180. package/dist/runtime/engineBrokerService.js +196 -0
  181. package/dist/runtime/engineBrokerServiceCli.d.ts +5 -0
  182. package/dist/runtime/engineBrokerServiceCli.d.ts.map +1 -0
  183. package/dist/runtime/engineBrokerServiceCli.js +32 -0
  184. package/dist/runtime/engineBrokerServiceConfig.d.ts +55 -0
  185. package/dist/runtime/engineBrokerServiceConfig.d.ts.map +1 -0
  186. package/dist/runtime/engineBrokerServiceConfig.js +130 -0
  187. package/dist/runtime/engineBrokerSingleflight.d.ts +13 -0
  188. package/dist/runtime/engineBrokerSingleflight.d.ts.map +1 -0
  189. package/dist/runtime/engineBrokerSingleflight.js +24 -0
  190. package/dist/runtime/engineBrokerTurnAccounting.d.ts +76 -0
  191. package/dist/runtime/engineBrokerTurnAccounting.d.ts.map +1 -0
  192. package/dist/runtime/engineBrokerTurnAccounting.js +108 -0
  193. package/dist/runtime/engineBrokerTurnRegistry.d.ts +57 -0
  194. package/dist/runtime/engineBrokerTurnRegistry.d.ts.map +1 -0
  195. package/dist/runtime/engineBrokerTurnRegistry.js +159 -0
  196. package/dist/runtime/engineDispatcher.d.ts +38 -0
  197. package/dist/runtime/engineDispatcher.d.ts.map +1 -0
  198. package/dist/runtime/engineDispatcher.js +228 -0
  199. package/dist/runtime/engineReadiness.d.ts +23 -0
  200. package/dist/runtime/engineReadiness.d.ts.map +1 -0
  201. package/dist/runtime/engineReadiness.js +222 -0
  202. package/dist/runtime/grokAuthenticationError.d.ts +8 -0
  203. package/dist/runtime/grokAuthenticationError.d.ts.map +1 -0
  204. package/dist/runtime/grokAuthenticationError.js +20 -0
  205. package/dist/runtime/grokBrokerCredentialAuthority.d.ts +23 -0
  206. package/dist/runtime/grokBrokerCredentialAuthority.d.ts.map +1 -0
  207. package/dist/runtime/grokBrokerCredentialAuthority.js +150 -0
  208. package/dist/runtime/grokBrokerCredentialReader.d.ts +6 -0
  209. package/dist/runtime/grokBrokerCredentialReader.d.ts.map +1 -0
  210. package/dist/runtime/grokBrokerCredentialReader.js +38 -0
  211. package/dist/runtime/grokBrokerModelPolicy.d.ts +23 -0
  212. package/dist/runtime/grokBrokerModelPolicy.d.ts.map +1 -0
  213. package/dist/runtime/grokBrokerModelPolicy.js +28 -0
  214. package/dist/runtime/grokBrokerProjection.d.ts +114 -0
  215. package/dist/runtime/grokBrokerProjection.d.ts.map +1 -0
  216. package/dist/runtime/grokBrokerProjection.js +101 -0
  217. package/dist/runtime/grokBrokerProviderClock.d.ts +26 -0
  218. package/dist/runtime/grokBrokerProviderClock.d.ts.map +1 -0
  219. package/dist/runtime/grokBrokerProviderClock.js +133 -0
  220. package/dist/runtime/grokBrokerProxy.d.ts +69 -0
  221. package/dist/runtime/grokBrokerProxy.d.ts.map +1 -0
  222. package/dist/runtime/grokBrokerProxy.js +326 -0
  223. package/dist/runtime/grokBrokerProxyJson.d.ts +10 -0
  224. package/dist/runtime/grokBrokerProxyJson.d.ts.map +1 -0
  225. package/dist/runtime/grokBrokerProxyJson.js +31 -0
  226. package/dist/runtime/grokBrokerProxyRequest.d.ts +30 -0
  227. package/dist/runtime/grokBrokerProxyRequest.d.ts.map +1 -0
  228. package/dist/runtime/grokBrokerProxyRequest.js +85 -0
  229. package/dist/runtime/grokBrokerRealmLease.d.ts +4 -0
  230. package/dist/runtime/grokBrokerRealmLease.d.ts.map +1 -0
  231. package/dist/runtime/grokBrokerRealmLease.js +33 -0
  232. package/dist/runtime/grokBrokerRefresh.d.ts +2 -0
  233. package/dist/runtime/grokBrokerRefresh.d.ts.map +1 -0
  234. package/dist/runtime/grokBrokerRefresh.js +15 -0
  235. package/dist/runtime/grokBrokerRunBudget.d.ts +20 -0
  236. package/dist/runtime/grokBrokerRunBudget.d.ts.map +1 -0
  237. package/dist/runtime/grokBrokerRunBudget.js +85 -0
  238. package/dist/runtime/grokBrokerSlot.d.ts +6 -0
  239. package/dist/runtime/grokBrokerSlot.d.ts.map +1 -0
  240. package/dist/runtime/grokBrokerSlot.js +21 -0
  241. package/dist/runtime/grokBrokerTaskClock.d.ts +32 -0
  242. package/dist/runtime/grokBrokerTaskClock.d.ts.map +1 -0
  243. package/dist/runtime/grokBrokerTaskClock.js +120 -0
  244. package/dist/runtime/grokBrokerTurnMeter.d.ts +180 -0
  245. package/dist/runtime/grokBrokerTurnMeter.d.ts.map +1 -0
  246. package/dist/runtime/grokBrokerTurnMeter.js +337 -0
  247. package/dist/runtime/grokBrokerWorkerConfig.d.ts +89 -0
  248. package/dist/runtime/grokBrokerWorkerConfig.d.ts.map +1 -0
  249. package/dist/runtime/grokBrokerWorkerConfig.js +154 -0
  250. package/dist/runtime/grokEngineBroker.d.ts +88 -0
  251. package/dist/runtime/grokEngineBroker.d.ts.map +1 -0
  252. package/dist/runtime/grokEngineBroker.js +202 -0
  253. package/dist/runtime/grokEngineBrokerLedger.d.ts +52 -0
  254. package/dist/runtime/grokEngineBrokerLedger.d.ts.map +1 -0
  255. package/dist/runtime/grokEngineBrokerLedger.js +114 -0
  256. package/dist/runtime/grokEngineBrokerMetering.d.ts +51 -0
  257. package/dist/runtime/grokEngineBrokerMetering.d.ts.map +1 -0
  258. package/dist/runtime/grokEngineBrokerMetering.js +34 -0
  259. package/dist/runtime/grokEngineBrokerTurn.d.ts +82 -0
  260. package/dist/runtime/grokEngineBrokerTurn.d.ts.map +1 -0
  261. package/dist/runtime/grokEngineBrokerTurn.js +348 -0
  262. package/dist/runtime/grokEngineBrokerTurnEnd.d.ts +88 -0
  263. package/dist/runtime/grokEngineBrokerTurnEnd.d.ts.map +1 -0
  264. package/dist/runtime/grokEngineBrokerTurnEnd.js +148 -0
  265. package/dist/runtime/grokInferenceClientConfig.d.ts +41 -0
  266. package/dist/runtime/grokInferenceClientConfig.d.ts.map +1 -0
  267. package/dist/runtime/grokInferenceClientConfig.js +62 -0
  268. package/dist/runtime/grokInferenceGrants.d.ts +77 -0
  269. package/dist/runtime/grokInferenceGrants.d.ts.map +1 -0
  270. package/dist/runtime/grokInferenceGrants.js +116 -0
  271. package/dist/runtime/grokInferenceProxy.d.ts +29 -0
  272. package/dist/runtime/grokInferenceProxy.d.ts.map +1 -0
  273. package/dist/runtime/grokInferenceProxy.js +85 -0
  274. package/dist/runtime/grokInferenceProxyRequest.d.ts +23 -0
  275. package/dist/runtime/grokInferenceProxyRequest.d.ts.map +1 -0
  276. package/dist/runtime/grokInferenceProxyRequest.js +63 -0
  277. package/dist/runtime/grokSlotPreflightReceipt.d.ts +70 -0
  278. package/dist/runtime/grokSlotPreflightReceipt.d.ts.map +1 -0
  279. package/dist/runtime/grokSlotPreflightReceipt.js +101 -0
  280. package/dist/runtime/grokSubscriptionRealm.d.ts +4 -0
  281. package/dist/runtime/grokSubscriptionRealm.d.ts.map +1 -0
  282. package/dist/runtime/grokSubscriptionRealm.js +435 -0
  283. package/dist/runtime/grokSubscriptionRealmTypes.d.ts +26 -0
  284. package/dist/runtime/grokSubscriptionRealmTypes.d.ts.map +1 -0
  285. package/dist/runtime/grokSubscriptionRealmTypes.js +1 -0
  286. package/dist/runtime/grokWorkerAttestation.d.ts +175 -0
  287. package/dist/runtime/grokWorkerAttestation.d.ts.map +1 -0
  288. package/dist/runtime/grokWorkerAttestation.js +266 -0
  289. package/dist/runtime/grokWorkerDenyPlacement.d.ts +80 -0
  290. package/dist/runtime/grokWorkerDenyPlacement.d.ts.map +1 -0
  291. package/dist/runtime/grokWorkerDenyPlacement.js +128 -0
  292. package/dist/runtime/grokWorkerHomeAttestation.d.ts +32 -0
  293. package/dist/runtime/grokWorkerHomeAttestation.d.ts.map +1 -0
  294. package/dist/runtime/grokWorkerHomeAttestation.js +75 -0
  295. package/dist/runtime/grokWorkerSandboxProfile.d.ts +27 -0
  296. package/dist/runtime/grokWorkerSandboxProfile.d.ts.map +1 -0
  297. package/dist/runtime/grokWorkerSandboxProfile.js +44 -0
  298. package/dist/runtime/grokWorkerTmpAttestation.d.ts +55 -0
  299. package/dist/runtime/grokWorkerTmpAttestation.d.ts.map +1 -0
  300. package/dist/runtime/grokWorkerTmpAttestation.js +63 -0
  301. package/dist/runtime/index.d.ts +31 -0
  302. package/dist/runtime/index.d.ts.map +1 -0
  303. package/dist/runtime/index.js +27 -0
  304. package/dist/runtime/inferenceUsageLedger.d.ts +38 -0
  305. package/dist/runtime/inferenceUsageLedger.d.ts.map +1 -0
  306. package/dist/runtime/inferenceUsageLedger.js +53 -0
  307. package/dist/runtime/mcpToolResult.d.ts +127 -0
  308. package/dist/runtime/mcpToolResult.d.ts.map +1 -0
  309. package/dist/runtime/mcpToolResult.js +214 -0
  310. package/dist/runtime/moltnetMachineRead.d.ts +97 -0
  311. package/dist/runtime/moltnetMachineRead.d.ts.map +1 -0
  312. package/dist/runtime/moltnetMachineRead.js +183 -0
  313. package/dist/runtime/native/daimon-engine-broker +0 -0
  314. package/dist/runtime/organizationRuntime.d.ts +168 -0
  315. package/dist/runtime/organizationRuntime.d.ts.map +1 -0
  316. package/dist/runtime/organizationRuntime.js +3 -0
  317. package/dist/runtime/organizationRuntimeAdmission.d.ts +6 -0
  318. package/dist/runtime/organizationRuntimeAdmission.d.ts.map +1 -0
  319. package/dist/runtime/organizationRuntimeAdmission.js +22 -0
  320. package/dist/runtime/organizationRuntimeControl.d.ts +51 -0
  321. package/dist/runtime/organizationRuntimeControl.d.ts.map +1 -0
  322. package/dist/runtime/organizationRuntimeControl.js +283 -0
  323. package/dist/runtime/organizationRuntimeHost.d.ts +19 -0
  324. package/dist/runtime/organizationRuntimeHost.d.ts.map +1 -0
  325. package/dist/runtime/organizationRuntimeHost.js +368 -0
  326. package/dist/runtime/organizationRuntimeParsing.d.ts +6 -0
  327. package/dist/runtime/organizationRuntimeParsing.d.ts.map +1 -0
  328. package/dist/runtime/organizationRuntimeParsing.js +373 -0
  329. package/dist/runtime/organizationRuntimeReadiness.d.ts +12 -0
  330. package/dist/runtime/organizationRuntimeReadiness.d.ts.map +1 -0
  331. package/dist/runtime/organizationRuntimeReadiness.js +67 -0
  332. package/dist/runtime/organizationRuntimeRecording.d.ts +7 -0
  333. package/dist/runtime/organizationRuntimeRecording.d.ts.map +1 -0
  334. package/dist/runtime/organizationRuntimeRecording.js +58 -0
  335. package/dist/runtime/physicalReadiness.d.ts +59 -0
  336. package/dist/runtime/physicalReadiness.d.ts.map +1 -0
  337. package/dist/runtime/physicalReadiness.js +176 -0
  338. package/dist/runtime/portableCredentialAuth.d.ts +6 -0
  339. package/dist/runtime/portableCredentialAuth.d.ts.map +1 -0
  340. package/dist/runtime/portableCredentialAuth.js +70 -0
  341. package/dist/runtime/portableCredentialMaterial.d.ts +8 -0
  342. package/dist/runtime/portableCredentialMaterial.d.ts.map +1 -0
  343. package/dist/runtime/portableCredentialMaterial.js +169 -0
  344. package/dist/runtime/productionAgentTools.d.ts +5 -0
  345. package/dist/runtime/productionAgentTools.d.ts.map +1 -0
  346. package/dist/runtime/productionAgentTools.js +336 -0
  347. package/dist/runtime/relocateRuntimeConfig.d.ts +14 -0
  348. package/dist/runtime/relocateRuntimeConfig.d.ts.map +1 -0
  349. package/dist/runtime/relocateRuntimeConfig.js +38 -0
  350. package/dist/runtime/runtimeHomeLayout.d.ts +48 -0
  351. package/dist/runtime/runtimeHomeLayout.d.ts.map +1 -0
  352. package/dist/runtime/runtimeHomeLayout.js +84 -0
  353. package/dist/runtime/schedule.d.ts +40 -0
  354. package/dist/runtime/schedule.d.ts.map +1 -0
  355. package/dist/runtime/schedule.js +376 -0
  356. package/dist/runtime/storeCoordination.d.ts +33 -0
  357. package/dist/runtime/storeCoordination.d.ts.map +1 -0
  358. package/dist/runtime/storeCoordination.js +117 -0
  359. package/dist/runtime/taskClock.d.ts +42 -0
  360. package/dist/runtime/taskClock.d.ts.map +1 -0
  361. package/dist/runtime/taskClock.js +102 -0
  362. package/dist/runtime/taskClockProcess.d.ts +17 -0
  363. package/dist/runtime/taskClockProcess.d.ts.map +1 -0
  364. package/dist/runtime/taskClockProcess.js +58 -0
  365. package/dist/runtime/toolResultSpill.d.ts +152 -0
  366. package/dist/runtime/toolResultSpill.d.ts.map +1 -0
  367. package/dist/runtime/toolResultSpill.js +351 -0
  368. package/dist/runtime/turnRequestLedger.d.ts +155 -0
  369. package/dist/runtime/turnRequestLedger.d.ts.map +1 -0
  370. package/dist/runtime/turnRequestLedger.js +251 -0
  371. package/dist/runtime/turnUsageLedger.d.ts +143 -0
  372. package/dist/runtime/turnUsageLedger.d.ts.map +1 -0
  373. package/dist/runtime/turnUsageLedger.js +203 -0
  374. package/dist/runtime/wakeAcceptanceClaimDiagnostics.d.ts +34 -0
  375. package/dist/runtime/wakeAcceptanceClaimDiagnostics.d.ts.map +1 -0
  376. package/dist/runtime/wakeAcceptanceClaimDiagnostics.js +79 -0
  377. package/dist/runtime/wakeAcceptanceIndex.d.ts +55 -0
  378. package/dist/runtime/wakeAcceptanceIndex.d.ts.map +1 -0
  379. package/dist/runtime/wakeAcceptanceIndex.js +158 -0
  380. package/dist/runtime/wakeAcceptanceProcessIdentity.d.ts +25 -0
  381. package/dist/runtime/wakeAcceptanceProcessIdentity.d.ts.map +1 -0
  382. package/dist/runtime/wakeAcceptanceProcessIdentity.js +54 -0
  383. package/dist/runtime/wakeAcceptanceReconciliation.d.ts +211 -0
  384. package/dist/runtime/wakeAcceptanceReconciliation.d.ts.map +1 -0
  385. package/dist/runtime/wakeAcceptanceReconciliation.js +289 -0
  386. package/dist/runtime/wakeAcceptanceRecord.d.ts +25 -0
  387. package/dist/runtime/wakeAcceptanceRecord.d.ts.map +1 -0
  388. package/dist/runtime/wakeAcceptanceRecord.js +58 -0
  389. package/dist/runtime/wakeAcceptanceRetention.d.ts +36 -0
  390. package/dist/runtime/wakeAcceptanceRetention.d.ts.map +1 -0
  391. package/dist/runtime/wakeAcceptanceRetention.js +38 -0
  392. package/dist/runtime/wakeAcceptanceStore.d.ts +113 -0
  393. package/dist/runtime/wakeAcceptanceStore.d.ts.map +1 -0
  394. package/dist/runtime/wakeAcceptanceStore.js +561 -0
  395. package/dist/runtime/wakeAcceptanceTypes.d.ts +179 -0
  396. package/dist/runtime/wakeAcceptanceTypes.d.ts.map +1 -0
  397. package/dist/runtime/wakeAcceptanceTypes.js +95 -0
  398. package/dist/runtime/wakeFuse.d.ts +124 -0
  399. package/dist/runtime/wakeFuse.d.ts.map +1 -0
  400. package/dist/runtime/wakeFuse.js +466 -0
  401. package/dist/runtime/wakeMomentFs.d.ts +27 -0
  402. package/dist/runtime/wakeMomentFs.d.ts.map +1 -0
  403. package/dist/runtime/wakeMomentFs.js +223 -0
  404. package/dist/runtime/wakeMomentHistory.d.ts +26 -0
  405. package/dist/runtime/wakeMomentHistory.d.ts.map +1 -0
  406. package/dist/runtime/wakeMomentHistory.js +109 -0
  407. package/dist/runtime/wakeMomentIo.d.ts +22 -0
  408. package/dist/runtime/wakeMomentIo.d.ts.map +1 -0
  409. package/dist/runtime/wakeMomentIo.js +114 -0
  410. package/dist/runtime/wakeMomentRecorder.d.ts +33 -0
  411. package/dist/runtime/wakeMomentRecorder.d.ts.map +1 -0
  412. package/dist/runtime/wakeMomentRecorder.js +81 -0
  413. package/dist/runtime/wakeMomentRetention.d.ts +7 -0
  414. package/dist/runtime/wakeMomentRetention.d.ts.map +1 -0
  415. package/dist/runtime/wakeMomentRetention.js +143 -0
  416. package/dist/runtime/wakeMomentRows.d.ts +8 -0
  417. package/dist/runtime/wakeMomentRows.d.ts.map +1 -0
  418. package/dist/runtime/wakeMomentRows.js +66 -0
  419. package/dist/runtime/wakeMomentSnapshot.d.ts +56 -0
  420. package/dist/runtime/wakeMomentSnapshot.d.ts.map +1 -0
  421. package/dist/runtime/wakeMomentSnapshot.js +248 -0
  422. package/package.json +22 -11
@@ -1,31 +1,50 @@
1
1
  import { mkdir } from "node:fs/promises";
2
2
  import path from "node:path";
3
- import { AuthStorage, createAgentSession, SessionManager, SettingsManager } from "@earendil-works/pi-coding-agent";
4
- import { createMemoryRuntime } from "@noopolis/mneme";
3
+ import { AuthStorage, createBashTool, createAgentSession, SessionManager, SettingsManager } from "@earendil-works/pi-coding-agent";
4
+ import { resolveRunId } from "../observability/causalEvents.js";
5
5
  import { resolvePiHarnessModel } from "./modelConfig.js";
6
6
  import { createPiModelRegistry } from "./modelRegistry.js";
7
7
  import { createPiMemoryTools, piMemoryToolNames } from "./memoryTools.js";
8
8
  import { createResourceLoader } from "./prompts.js";
9
9
  import { PiAgentHandle } from "./piAgentHandle.js";
10
+ import { DAIMON_WAKE_ID_ENV } from "./cliEnvironment.js";
10
11
  import { createPiWorldTools, piWorldToolNames } from "./worldTools.js";
12
+ import { ensureRuntimeHome, ensureRuntimeHomeDirectory } from "../runtime/runtimeHomeLayout.js";
13
+ import { readyTaskClockEnvironment } from "../runtime/taskClockProcess.js";
14
+ import { readTaskClock, taskClockChildEnvironment, taskClockProcessEnvironment } from "../runtime/taskClock.js";
15
+ import { createClockedMemoryRuntime, memoryClockOptions } from "./memoryClock.js";
16
+ import { verifyTaskClockProcess } from "./taskClockProcess.js";
11
17
  import { bindPiRawTrainingCapture, validatePiRawTrainingCaptureOptions } from "./rawTrainingCapture.js";
12
18
  export class PiHarnessAdapter {
13
19
  options;
20
+ taskClockProbe;
21
+ static capabilities = Object.freeze({ causalRunId: true, memoryCausalRunId: false });
14
22
  authStorage;
15
23
  modelRegistry;
16
24
  sessionFactory;
17
- constructor(options) {
25
+ constructor(options, /** @internal */ taskClockProbe) {
18
26
  this.options = options;
27
+ this.taskClockProbe = taskClockProbe;
19
28
  this.authStorage = AuthStorage.create(options.authPath);
20
29
  this.modelRegistry = createPiModelRegistry(this.authStorage, options);
21
30
  this.sessionFactory = options.sessionFactory ?? createAgentSession;
22
31
  }
23
32
  async startAgent(input) {
33
+ const taskClock = readTaskClock();
34
+ if (this.options.memory !== undefined)
35
+ memoryClockOptions(taskClock);
36
+ if (input.causalRunId !== undefined && this.options.memory !== undefined) {
37
+ throw new Error("Per-agent causalRunId requires a memory runtime with explicit causal context; configured memory is currently unsupported");
38
+ }
39
+ const causalRunId = input.causalRunId === undefined ? undefined : resolveRunId(undefined, input.causalRunId);
24
40
  validatePiRawTrainingCaptureOptions(this.options.rawTrainingCapture);
25
- await mkdir(input.runtimeHomePath, { recursive: true });
41
+ await verifyTaskClockProcess(input.runtimeHomePath, taskClock, this.taskClockProbe);
42
+ await ensureRuntimeHome(input.runtimeHomePath);
43
+ await Promise.all([".config", ".local/share", ".local/state", ".cache", ".tmp", "tool-state"]
44
+ .map((relative) => ensureRuntimeHomeDirectory(input.runtimeHomePath, relative)));
26
45
  await mkdir(input.workspacePath, { recursive: true });
27
46
  const memoryRuntimeHomePath = this.options.memory?.runtimeHomePath ?? input.runtimeHomePath;
28
- await mkdir(memoryRuntimeHomePath, { recursive: true });
47
+ await ensureRuntimeHome(memoryRuntimeHomePath);
29
48
  const modelSpec = this.options.model ?? {
30
49
  auth: { method: "codex" },
31
50
  provider: "openai",
@@ -38,17 +57,22 @@ export class PiHarnessAdapter {
38
57
  }
39
58
  const memory = this.options.memory === undefined
40
59
  ? undefined
41
- : createMemoryRuntime({
60
+ : createClockedMemoryRuntime({
42
61
  agentId: input.id,
43
62
  authority: this.options.memory.authority,
44
63
  embeddingProvider: this.options.memory.embeddingProvider,
45
64
  runtimeHomePath: memoryRuntimeHomePath,
46
65
  source: this.options.memory.source,
47
66
  tokenBudget: this.options.memory.tokenBudget
48
- });
67
+ }, taskClock);
49
68
  const memoryToolContext = memory === undefined ? undefined : {};
50
69
  const worldToolContext = this.options.world === undefined ? undefined : {};
51
70
  const rawTrainingCaptureRef = this.options.rawTrainingCapture === undefined ? undefined : {};
71
+ const wakeEnvironmentContext = this.options.wakeEnvironmentContext ?? {};
72
+ // Fixed for the life of this agent, not per wake: whether it can publish
73
+ // through `moltnet_send` at all. Gates the terminal-text fallback in
74
+ // `PiAgentHandle.runWake` (see `PiWakeEnvironmentContextRef.hasSendCapability`).
75
+ wakeEnvironmentContext.hasSendCapability = (this.options.productionTools ?? []).some((tool) => tool.name === "moltnet_send");
52
76
  const sessionInput = (mode, sessionDirectory) => {
53
77
  const memoryTools = memory === undefined || memoryToolContext === undefined
54
78
  ? []
@@ -64,14 +88,26 @@ export class PiHarnessAdapter {
64
88
  world: this.options.world,
65
89
  contextRef: worldToolContext
66
90
  });
91
+ // Every child tool inherits the same denylist: host control values,
92
+ // Daimon-held world/model secrets, and caller-protected names.
93
+ const protectedNames = [...new Set([
94
+ ...(this.options.protectedEnvironmentNames ?? []),
95
+ ...(this.options.world === undefined ? [] : [this.options.world.tokenEnv])
96
+ ])];
97
+ const requestedTools = this.options.toolNames ?? input.tools;
98
+ const protectedBash = (protectedNames.length === 0 && taskClock === undefined) || requestedTools?.includes("bash") === false
99
+ ? []
100
+ : [createProtectedBashTool(input.workspacePath, input.runtimeHomePath, protectedNames, wakeEnvironmentContext, taskClockChildEnvironment({}, taskClock))];
67
101
  const toolNames = [
68
- ...(input.tools ?? ["read", "write", "edit", "bash", "grep", "find", "ls"]),
102
+ ...(requestedTools ?? ["read", "write", "edit", "bash", "grep", "find", "ls"]),
69
103
  ...piMemoryToolNames(memoryTools),
70
- ...(worldTools === undefined ? [] : piWorldToolNames(worldTools))
104
+ ...(worldTools === undefined ? [] : piWorldToolNames(worldTools)),
105
+ ...(this.options.productionTools ?? []).map((tool) => tool.name)
71
106
  ];
72
107
  return {
73
108
  cwd: input.workspacePath,
74
109
  agentDir: input.runtimeHomePath,
110
+ runtimeHomePath: input.runtimeHomePath,
75
111
  daimonSecretEnvironmentNames: this.options.world === undefined ? [] : [this.options.world.tokenEnv],
76
112
  authStorage: this.authStorage,
77
113
  modelRegistry: this.modelRegistry,
@@ -82,7 +118,9 @@ export class PiHarnessAdapter {
82
118
  world: worldTools !== undefined
83
119
  }),
84
120
  tools: [...new Set(toolNames)],
85
- customTools: worldTools === undefined ? memoryTools : [...memoryTools, ...worldTools],
121
+ customTools: worldTools === undefined
122
+ ? [...protectedBash, ...memoryTools, ...(this.options.productionTools ?? [])]
123
+ : [...protectedBash, ...memoryTools, ...worldTools, ...(this.options.productionTools ?? [])],
86
124
  sessionManager: SessionManager.create(input.workspacePath, sessionDirectory),
87
125
  settingsManager: SettingsManager.inMemory({
88
126
  compaction: { enabled: false },
@@ -103,9 +141,9 @@ export class PiHarnessAdapter {
103
141
  authMethod: modelSpec.auth?.method ?? "none",
104
142
  model: resolvedModel.name,
105
143
  provider: resolvedModel.provider
106
- }, memory, memoryToolContext, {}, worldToolContext, rawTrainingCaptureRef, this.options.rawTrainingCapture, worldToolContext === undefined
144
+ }, memory, memoryToolContext, { causalRunId }, worldToolContext, rawTrainingCaptureRef, this.options.rawTrainingCapture, worldToolContext === undefined
107
145
  ? undefined
108
- : { instructions: input.instructions, thinkingLevel: this.options.thinkingLevel ?? "off" }, session);
146
+ : { instructions: input.instructions, thinkingLevel: this.options.thinkingLevel ?? "off" }, session, wakeEnvironmentContext);
109
147
  }
110
148
  const createSession = async (mode, sessionDirectory) => {
111
149
  const { session } = await (this.options.sessionFactory ?? createAgentSession)(sessionInput(mode, sessionDirectory));
@@ -116,11 +154,42 @@ export class PiHarnessAdapter {
116
154
  authMethod: modelSpec.auth?.method ?? "none",
117
155
  model: resolvedModel.name,
118
156
  provider: resolvedModel.provider
119
- }, memory, memoryToolContext, {}, worldToolContext, undefined, undefined, worldToolContext === undefined
157
+ }, memory, memoryToolContext, { causalRunId }, worldToolContext, undefined, undefined, worldToolContext === undefined
120
158
  ? undefined
121
159
  : {
122
160
  instructions: input.instructions,
123
161
  thinkingLevel: this.options.thinkingLevel ?? "off"
124
- }, undefined);
162
+ }, undefined, wakeEnvironmentContext);
125
163
  }
126
164
  }
165
+ function createProtectedBashTool(workspacePath, runtimeHomePath, protectedNames, wakeEnvironmentContext, clockEnvironment) {
166
+ const bash = createBashTool(workspacePath, {
167
+ spawnHook: (context) => ({
168
+ ...context,
169
+ env: readyTaskClockEnvironment({
170
+ ...Object.fromEntries(Object.entries(taskClockProcessEnvironment(context.env, clockEnvironment)).filter(([name]) => !protectedNames.includes(name))),
171
+ HOME: runtimeHomePath,
172
+ XDG_CONFIG_HOME: `${runtimeHomePath}/.config`,
173
+ XDG_DATA_HOME: `${runtimeHomePath}/.local/share`,
174
+ XDG_STATE_HOME: `${runtimeHomePath}/.local/state`,
175
+ XDG_CACHE_HOME: `${runtimeHomePath}/.cache`,
176
+ TMPDIR: `${runtimeHomePath}/.tmp`,
177
+ ...clockEnvironment,
178
+ ...(wakeEnvironmentContext.current === undefined
179
+ ? {}
180
+ : { [DAIMON_WAKE_ID_ENV]: wakeEnvironmentContext.current })
181
+ })
182
+ })
183
+ });
184
+ return {
185
+ name: bash.name,
186
+ label: bash.label,
187
+ description: bash.description,
188
+ parameters: bash.parameters,
189
+ ...(bash.prepareArguments === undefined ? {} : { prepareArguments: bash.prepareArguments }),
190
+ ...(bash.executionMode === undefined ? {} : { executionMode: bash.executionMode }),
191
+ async execute(toolCallId, params, signal, onUpdate) {
192
+ return bash.execute(toolCallId, params, signal, onUpdate);
193
+ }
194
+ };
195
+ }
@@ -2,6 +2,7 @@ import { type ResourceLoader } from "@earendil-works/pi-coding-agent";
2
2
  import { type MemoryWakeMode } from "@noopolis/mneme";
3
3
  import type { AgentStartInput, WakeEvent } from "../core/types.js";
4
4
  export declare const formatWakePrompt: (event: WakeEvent) => string;
5
+ export declare const preserveModelFacingWakeIdentity: (promptText: string, event: WakeEvent, memoryEventId: string) => string;
5
6
  export declare const createResourceLoader: (input: AgentStartInput, mode: MemoryWakeMode, capabilities: Readonly<{
6
7
  memory: boolean;
7
8
  world: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/pi/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEnE,eAAO,MAAM,gBAAgB,GAAI,OAAO,SAAS,KAAG,MAKtC,CAAC;AAEf,eAAO,MAAM,oBAAoB,GAC/B,OAAO,eAAe,EACtB,MAAM,cAAc,EACpB,cAAc,QAAQ,CAAC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,KAC1D,cA+BF,CAAC"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/pi/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEnE,eAAO,MAAM,gBAAgB,GAAI,OAAO,SAAS,KAAG,MAKtC,CAAC;AAYf,eAAO,MAAM,+BAA+B,GAC1C,YAAY,MAAM,EAClB,OAAO,SAAS,EAChB,eAAe,MAAM,KACpB,MAiBF,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,OAAO,eAAe,EACtB,MAAM,cAAc,EACpB,cAAc,QAAQ,CAAC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,KAC1D,cA+BF,CAAC"}
@@ -6,6 +6,30 @@ export const formatWakePrompt = (event) => `Wake event:
6
6
  - from: ${event.from === undefined ? "[no attribution supplied] (absence)" : JSON.stringify(event.from)}
7
7
 
8
8
  ${event.text}`;
9
+ const WAKE_HEADER_PATTERN = /(^|\r?\n)## Wake\r?\nid: ([^\r\n]*)(?=\r?\n|$)/u;
10
+ const formatAuthoritativeWakeIdentity = (event) => [
11
+ "Wake identity:",
12
+ "Use this exact wake id as the delivery id/event key when a tool asks for event_key.",
13
+ `- id: ${event.id}`,
14
+ `- kind: ${event.kind}`,
15
+ `- from: ${event.from === undefined ? "[no attribution supplied] (absence)" : JSON.stringify(event.from)}`
16
+ ].join("\n");
17
+ export const preserveModelFacingWakeIdentity = (promptText, event, memoryEventId) => {
18
+ if (event.id === memoryEventId)
19
+ return promptText;
20
+ const match = WAKE_HEADER_PATTERN.exec(promptText);
21
+ if (match === null) {
22
+ return `${formatAuthoritativeWakeIdentity(event)}\n\n${promptText}`;
23
+ }
24
+ const currentId = match[2];
25
+ if (currentId === event.id)
26
+ return promptText;
27
+ if (currentId !== memoryEventId) {
28
+ throw new Error("memory-prepared wake prompt carried an unexpected wake id");
29
+ }
30
+ const idStart = match.index + match[0].length - currentId.length;
31
+ return `${promptText.slice(0, idStart)}${event.id}${promptText.slice(idStart + currentId.length)}`;
32
+ };
9
33
  export const createResourceLoader = (input, mode, capabilities) => {
10
34
  const systemPrompt = [
11
35
  `You are ${input.name} (${input.id}).`,
@@ -0,0 +1,6 @@
1
+ import { type TaskClock } from "../runtime/taskClock.js";
2
+ import { type TaskClockProcessProbe } from "../runtime/taskClockProcess.js";
3
+ export type { TaskClockProcessProbe } from "../runtime/taskClockProcess.js";
4
+ /** Eager Pi readiness uses the same gate as every later child launch. */
5
+ export declare function verifyTaskClockProcess(runtimeHomePath: string, clock?: TaskClock | undefined, probe?: TaskClockProcessProbe): Promise<void>;
6
+ //# sourceMappingURL=taskClockProcess.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taskClockProcess.d.ts","sourceRoot":"","sources":["../../src/pi/taskClockProcess.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAA6B,KAAK,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAEvG,YAAY,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAE5E,yEAAyE;AACzE,wBAAsB,sBAAsB,CAC1C,eAAe,EAAE,MAAM,EAAE,KAAK,GAAE,SAAS,GAAG,SAA2B,EAAE,KAAK,CAAC,EAAE,qBAAqB,GACrG,OAAO,CAAC,IAAI,CAAC,CAEf"}
@@ -0,0 +1,8 @@
1
+ import { cliChildEnvironment } from "./cliEnvironment.js";
2
+ import { readTaskClock } from "../runtime/taskClock.js";
3
+ import { readyTaskClockEnvironment } from "../runtime/taskClockProcess.js";
4
+ /** Eager Pi readiness uses the same gate as every later child launch. */
5
+ export async function verifyTaskClockProcess(runtimeHomePath, clock = readTaskClock(), probe) {
6
+ if (clock !== undefined)
7
+ readyTaskClockEnvironment(cliChildEnvironment([], runtimeHomePath), clock, probe);
8
+ }
@@ -15,6 +15,7 @@ export interface StampTurnInputSubmittedInput {
15
15
  prepared?: MemoryPrepareTurnResult;
16
16
  promptText: string;
17
17
  runtimeHomePath: string;
18
+ runId?: string;
18
19
  }
19
20
  /**
20
21
  * Stamps `turn.input.submitted` for one Pi turn, wiring piHarness's own
@@ -51,8 +52,8 @@ export interface StampTurnInputSubmittedInput {
51
52
  * the actual `event_id`s of the `memory.recalled` events it appended for
52
53
  * this turn, so this cause link is id-joined the same way the moltnet
53
54
  * link above is.
54
- * - `run_id` always comes from `resolveRunId()` (`NOOPOLIS_RUN_ID`), never
55
- * from `event` or model output.
55
+ * - `run_id` comes from trusted per-instance host context, with the historical
56
+ * environment fallback. Never from `event` or model output.
56
57
  */
57
58
  export declare const stampTurnInputSubmitted: (input: StampTurnInputSubmittedInput) => Promise<CausalEvent<TurnInputSubmittedPayload>>;
58
59
  export interface StampTurnOutputCompletedInput {
@@ -61,6 +62,7 @@ export interface StampTurnOutputCompletedInput {
61
62
  outputText: string;
62
63
  runtimeHomePath: string;
63
64
  turnId: string;
65
+ runId?: string;
64
66
  }
65
67
  /**
66
68
  * Stamps `turn.output.completed` once a Pi turn finishes successfully,
@@ -1 +1 @@
1
- {"version":3,"file":"turnCausal.d.ts","sourceRoot":"","sources":["../../src/pi/turnCausal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAKL,KAAK,WAAW,EAChB,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAChC,MAAM,kCAAkC,CAAC;AAG1C;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAAI,SAAS,MAAM,KAAG,MAA4B,CAAC;AAEhF,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,eAAO,MAAM,uBAAuB,GAClC,OAAO,4BAA4B,KAClC,OAAO,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAW7C,CAAC;AAEL,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,GACnC,OAAO,6BAA6B,KACnC,OAAO,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAS9C,CAAC"}
1
+ {"version":3,"file":"turnCausal.d.ts","sourceRoot":"","sources":["../../src/pi/turnCausal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAKL,KAAK,WAAW,EAChB,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAChC,MAAM,kCAAkC,CAAC;AAG1C;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAAI,SAAS,MAAM,KAAG,MAA4B,CAAC;AAEhF,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,eAAO,MAAM,uBAAuB,GAClC,OAAO,4BAA4B,KAClC,OAAO,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAW7C,CAAC;AAEL,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,GACnC,OAAO,6BAA6B,KACnC,OAAO,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAS9C,CAAC"}
@@ -43,8 +43,8 @@ export const agentPrincipalId = (agentId) => `agent:${agentId}`;
43
43
  * the actual `event_id`s of the `memory.recalled` events it appended for
44
44
  * this turn, so this cause link is id-joined the same way the moltnet
45
45
  * link above is.
46
- * - `run_id` always comes from `resolveRunId()` (`NOOPOLIS_RUN_ID`), never
47
- * from `event` or model output.
46
+ * - `run_id` comes from trusted per-instance host context, with the historical
47
+ * environment fallback. Never from `event` or model output.
48
48
  */
49
49
  export const stampTurnInputSubmitted = (input) => emitTurnInputSubmitted({
50
50
  agentId: input.agentId,
@@ -53,7 +53,7 @@ export const stampTurnInputSubmitted = (input) => emitTurnInputSubmitted({
53
53
  inputMessageIds: [input.event.id],
54
54
  principalId: agentPrincipalId(input.agentId),
55
55
  promptSha256: summarizePrompt(input.promptText).sha256,
56
- runId: resolveRunId(),
56
+ runId: resolveRunId(undefined, input.runId),
57
57
  runtimeHomePath: input.runtimeHomePath,
58
58
  turnId: input.event.id
59
59
  });
@@ -69,7 +69,7 @@ export const stampTurnOutputCompleted = (input) => emitTurnOutputCompleted({
69
69
  causeEventIds: [input.causeEventId],
70
70
  outputSha256: sha256Hex(input.outputText),
71
71
  principalId: agentPrincipalId(input.agentId),
72
- runId: resolveRunId(),
72
+ runId: resolveRunId(undefined, input.runId),
73
73
  runtimeHomePath: input.runtimeHomePath,
74
74
  turnId: input.turnId
75
75
  });
@@ -1 +1 @@
1
- {"version":3,"file":"turnTrace.d.ts","sourceRoot":"","sources":["../../src/pi/turnTrace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"turnTrace.d.ts","sourceRoot":"","sources":["../../src/pi/turnTrace.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,10 @@
1
1
  import { createHash } from "node:crypto";
2
- import { appendFile, mkdir, writeFile } from "node:fs/promises";
2
+ import { appendFile, writeFile } from "node:fs/promises";
3
3
  import path from "node:path";
4
+ import { redactCredentialText } from "../core/credentialRedaction.js";
5
+ import { ensureRuntimeHomeDirectory } from "../runtime/runtimeHomeLayout.js";
4
6
  export const redactTraceText = (value) => {
5
- let redacted = String(value);
6
- redacted = redacted.replace(/\bBearer\s+[A-Za-z0-9._~+/=-]{12,}/giu, "Bearer [REDACTED]");
7
- redacted = redacted.replace(/\bmagt_v1_[A-Za-z0-9_-]{16,}\b/gu, "[REDACTED]");
8
- redacted = redacted.replace(/\b(?:sk|sk-proj)-[A-Za-z0-9_-]{20,}\b/gu, "[REDACTED]");
9
- redacted = redacted.replace(/("([^"]*(?:api[_-]?key|token|secret|password)[^"]*)"\s*:\s*")([^"]+)(")/giu, "$1[REDACTED]$4");
7
+ let redacted = redactCredentialText(value, [], 4_096);
10
8
  redacted = redacted.replace(/\/(?:Users|home|private|tmp|var|opt|run)\/[^\s"']+/gu, "[path]");
11
9
  return redacted.length > 1000 ? `${redacted.slice(0, 1000)}...` : redacted;
12
10
  };
@@ -121,8 +119,7 @@ export const buildPiTurnTraceRecord = (input) => ({
121
119
  });
122
120
  export const writeTurnTraceRecord = async (runtimeHomePath, record) => {
123
121
  const telemetryPath = path.join(runtimeHomePath, "telemetry");
124
- const turnsPath = path.join(telemetryPath, "turns");
125
- await mkdir(turnsPath, { recursive: true });
122
+ const turnsPath = await ensureRuntimeHomeDirectory(runtimeHomePath, "telemetry/turns");
126
123
  const body = `${JSON.stringify(record, null, 2)}\n`;
127
124
  await writeFile(path.join(turnsPath, `${sanitizeTraceFileId(record.turn_id)}.json`), body, "utf8");
128
125
  await appendFile(path.join(telemetryPath, "turns.ndjson"), `${JSON.stringify(record)}\n`, "utf8");
@@ -24,7 +24,7 @@ export declare class WakeAcceptanceStore {
24
24
  private readonly fs;
25
25
  readonly runId: string;
26
26
  private readonly capabilities;
27
- constructor(runtimeHomePath: string, agentId: string, fs?: WakeAcceptanceFs);
27
+ constructor(runtimeHomePath: string, agentId: string, fs?: WakeAcceptanceFs, causalRunId?: string);
28
28
  getAcceptanceFilePath(): string;
29
29
  candidateFromDelivery(event: WakeEvent): WakeAcceptanceAttempt;
30
30
  candidateFromEvent(event: WakeEvent): WakeAcceptanceAttempt;
@@ -1 +1 @@
1
- {"version":3,"file":"wakeAcceptance.d.ts","sourceRoot":"","sources":["../../src/pi/wakeAcceptance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAEL,KAAK,qBAAqB,EAG1B,KAAK,wBAAwB,EAQ9B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAMzD,MAAM,MAAM,uBAAuB,GAC/B;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,UAAU,EAAE,wBAAwB,CAAA;CAAE,CAAC;AAE1D,QAAA,MAAM,gBAAgB,eAAuC,CAAC;AAE9D,MAAM,WAAW,wBAAwB;IACvC,CAAC,gBAAgB,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;CAC7C;AAWD,MAAM,WAAW,uBAAuB;IACtC,qBAAqB,CAAC,KAAK,EAAE,SAAS,GAAG,qBAAqB,CAAC;IAC/D,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC1D,YAAY,CAAC,UAAU,EAAE,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACtF,aAAa,CAAC,UAAU,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,cAAc,CAAC,UAAU,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrE;AAED,qBAAa,mBAAmB;IAK5B,QAAQ,CAAC,eAAe,EAAE,MAAM;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,OAAO,CAAC,QAAQ,CAAC,EAAE;IANrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyD;gBAG3E,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACP,EAAE,GAAE,gBAAwD;IAK/E,qBAAqB,IAAI,MAAM;IAI/B,qBAAqB,CAAC,KAAK,EAAE,SAAS,GAAG,qBAAqB;IAQ9D,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,qBAAqB;IAIrD,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,uBAAuB,CAAC;YAKjD,gBAAgB;IAoDxB,YAAY,CAAC,UAAU,EAAE,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAsBrF,aAAa,CAAC,UAAU,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUlE,cAAc,CAAC,UAAU,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUnE,SAAS,IAAI,OAAO,CAAC,wBAAwB,CAAC;YAmBtC,eAAe;IAI7B,OAAO,CAAC,UAAU;IAmBlB,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,UAAU;YAQJ,SAAS;IAuCvB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,iBAAiB;YAcX,iBAAiB;YAwDjB,YAAY;IAsB1B,OAAO,CAAC,YAAY;CAMrB;AAED,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC9B,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"wakeAcceptance.d.ts","sourceRoot":"","sources":["../../src/pi/wakeAcceptance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAEL,KAAK,qBAAqB,EAG1B,KAAK,wBAAwB,EAQ9B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAMzD,MAAM,MAAM,uBAAuB,GAC/B;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,UAAU,EAAE,wBAAwB,CAAA;CAAE,CAAC;AAE1D,QAAA,MAAM,gBAAgB,eAAuC,CAAC;AAE9D,MAAM,WAAW,wBAAwB;IACvC,CAAC,gBAAgB,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;CAC7C;AAWD,MAAM,WAAW,uBAAuB;IACtC,qBAAqB,CAAC,KAAK,EAAE,SAAS,GAAG,qBAAqB,CAAC;IAC/D,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC1D,YAAY,CAAC,UAAU,EAAE,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACtF,aAAa,CAAC,UAAU,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,cAAc,CAAC,UAAU,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrE;AAED,qBAAa,mBAAmB;IAK5B,QAAQ,CAAC,eAAe,EAAE,MAAM;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,OAAO,CAAC,QAAQ,CAAC,EAAE;IANrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyD;gBAG3E,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACP,EAAE,GAAE,gBAAwD,EAC7E,WAAW,CAAC,EAAE,MAAM;IAKtB,qBAAqB,IAAI,MAAM;IAI/B,qBAAqB,CAAC,KAAK,EAAE,SAAS,GAAG,qBAAqB;IAQ9D,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,qBAAqB;IAIrD,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,uBAAuB,CAAC;YAKjD,gBAAgB;IAoDxB,YAAY,CAAC,UAAU,EAAE,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAsBrF,aAAa,CAAC,UAAU,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUlE,cAAc,CAAC,UAAU,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUnE,SAAS,IAAI,OAAO,CAAC,wBAAwB,CAAC;YAmBtC,eAAe;IAI7B,OAAO,CAAC,UAAU;IAmBlB,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,UAAU;YAQJ,SAAS;IAuCvB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,iBAAiB;YAcX,iBAAiB;YAwDjB,YAAY;IAsB1B,OAAO,CAAC,YAAY;CAMrB;AAED,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC9B,MAAM,2BAA2B,CAAC"}
@@ -11,11 +11,11 @@ export class WakeAcceptanceStore {
11
11
  fs;
12
12
  runId;
13
13
  capabilities = new WeakMap();
14
- constructor(runtimeHomePath, agentId, fs = new WakeAcceptanceFs(runtimeHomePath)) {
14
+ constructor(runtimeHomePath, agentId, fs = new WakeAcceptanceFs(runtimeHomePath), causalRunId) {
15
15
  this.runtimeHomePath = runtimeHomePath;
16
16
  this.agentId = agentId;
17
17
  this.fs = fs;
18
- this.runId = resolveRunId();
18
+ this.runId = resolveRunId(undefined, causalRunId);
19
19
  }
20
20
  getAcceptanceFilePath() {
21
21
  return this.fs.stateFilePath;
@@ -5,7 +5,7 @@ export declare const WORLD_TRAJECTORY_SCHEMA: "daimon.world_trajectory.v1";
5
5
  * Pi's SessionManager remains the private raw session recorder. This module
6
6
  * derives a minimized public/evaluation projection from the same subscribed
7
7
  * session events. Raw training capture is deliberately separate; see
8
- * docs/WORLD_TRAJECTORIES.md.
8
+ * docs/observability.md.
9
9
  */
10
10
  export interface PiWorldTrajectoryToolCall {
11
11
  arguments?: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"worldTrajectory.d.ts","sourceRoot":"","sources":["../../src/pi/worldTrajectory.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,eAAO,MAAM,uBAAuB,EAAG,4BAAqC,CAAC;AAE7E;;;;;GAKG;AAEH,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC3C,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,EAAE,yBAAyB,EAAE,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,wBAAwB,CAAC;IAClC,WAAW,EAAE,IAAI,CAAC;IAClB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,gBAAgB,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,IAAI,CAAC;IAChB,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAaD;;;GAGG;AACH,eAAO,MAAM,0BAA0B,GACrC,OAAO,OAAO,EACd,cAAS,KACR,OAsBF,CAAC;AAKF,eAAO,MAAM,8BAA8B,QAAO,wBAGhD,CAAC;AAEH,eAAO,MAAM,6BAA6B,GACxC,SAAS,wBAAwB,EACjC,OAAO,OAAO,EACd,UAAgB,KACf,IAqCF,CAAC;AAKF,eAAO,MAAM,wBAAwB,GACnC,OAAO,6BAA6B,KACnC,OAAO,CAAC,IAAI,CAkDd,CAAC"}
1
+ {"version":3,"file":"worldTrajectory.d.ts","sourceRoot":"","sources":["../../src/pi/worldTrajectory.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAG1D,eAAO,MAAM,uBAAuB,EAAG,4BAAqC,CAAC;AAE7E;;;;;GAKG;AAEH,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC3C,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,EAAE,yBAAyB,EAAE,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,wBAAwB,CAAC;IAClC,WAAW,EAAE,IAAI,CAAC;IAClB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,gBAAgB,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,IAAI,CAAC;IAChB,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAaD;;;GAGG;AACH,eAAO,MAAM,0BAA0B,GACrC,OAAO,OAAO,EACd,cAAS,KACR,OAsBF,CAAC;AAKF,eAAO,MAAM,8BAA8B,QAAO,wBAGhD,CAAC;AAEH,eAAO,MAAM,6BAA6B,GACxC,SAAS,wBAAwB,EACjC,OAAO,OAAO,EACd,UAAgB,KACf,IAqCF,CAAC;AAKF,eAAO,MAAM,wBAAwB,GACnC,OAAO,6BAA6B,KACnC,OAAO,CAAC,IAAI,CAiDd,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import { createHash } from "node:crypto";
2
- import { appendFile, mkdir, writeFile } from "node:fs/promises";
2
+ import { appendFile, writeFile } from "node:fs/promises";
3
3
  import path from "node:path";
4
4
  import { redactTraceText, sanitizeTraceFileId } from "./turnTrace.js";
5
+ import { ensureRuntimeHomeDirectory } from "../runtime/runtimeHomeLayout.js";
5
6
  export const WORLD_TRAJECTORY_SCHEMA = "daimon.world_trajectory.v1";
6
7
  const asObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value)
7
8
  ? value
@@ -123,8 +124,7 @@ export const persistPiWorldTrajectory = async (input) => {
123
124
  }
124
125
  };
125
126
  const telemetryPath = path.join(input.runtimeHomePath, "telemetry");
126
- const trajectoriesPath = path.join(telemetryPath, "world-trajectories");
127
- await mkdir(trajectoriesPath, { recursive: true });
127
+ const trajectoriesPath = await ensureRuntimeHomeDirectory(input.runtimeHomePath, "telemetry/world-trajectories");
128
128
  const bytes = `${JSON.stringify(record, null, 2)}\n`;
129
129
  await writeFile(path.join(trajectoriesPath, `${sanitizeTraceFileId(input.turnId)}.json`), bytes, { encoding: "utf8", mode: 0o600 });
130
130
  await appendFile(path.join(telemetryPath, "world-trajectories.ndjson"), `${JSON.stringify(record)}\n`, { encoding: "utf8", mode: 0o600 });
@@ -0,0 +1,16 @@
1
+ import { type AgySubscriptionRealm } from "./agySubscriptionRealm.js";
2
+ import type { OrganizationRuntimeConfig } from "./organizationRuntime.js";
3
+ export type AgyBootstrapInvocation = Readonly<{
4
+ args: readonly string[];
5
+ command: string;
6
+ cwd: string;
7
+ env: NodeJS.ProcessEnv;
8
+ }>;
9
+ export declare const createAgyBootstrapInvocation: (input: {
10
+ busAddress: string;
11
+ executablePath: string;
12
+ runtimeHomePath: string;
13
+ workspacePath: string;
14
+ }) => AgyBootstrapInvocation;
15
+ export declare function runAgySubscriptionBootstrap(config: OrganizationRuntimeConfig, startRealm?: () => Promise<AgySubscriptionRealm>): Promise<void>;
16
+ //# sourceMappingURL=agySubscriptionBootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agySubscriptionBootstrap.d.ts","sourceRoot":"","sources":["../../src/runtime/agySubscriptionBootstrap.ts"],"names":[],"mappings":"AAGA,OAAO,EAA6B,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjG,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAG1E,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC5C,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;CACxB,CAAC,CAAC;AAEH,eAAO,MAAM,4BAA4B,GAAI,OAAO;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB,KAAG,sBAaF,CAAC;AAEH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,yBAAyB,EACjC,UAAU,GAAE,MAAM,OAAO,CAAC,oBAAoB,CAA6B,GAC1E,OAAO,CAAC,IAAI,CAAC,CA2Cf"}
@@ -0,0 +1,80 @@
1
+ import { spawnRealTime as spawn } from "./taskClockProcess.js";
2
+ import { cliChildEnvironment } from "../pi/cliEnvironment.js";
3
+ import { startAgySubscriptionRealm } from "./agySubscriptionRealm.js";
4
+ import { prepareEngineExecutable, verifyAgySubscriptionEnrollment } from "./engineReadiness.js";
5
+ import { prepareOrganizationRuntimePaths } from "./physicalReadiness.js";
6
+ export const createAgyBootstrapInvocation = (input) => ({
7
+ args: [],
8
+ command: input.executablePath,
9
+ cwd: input.workspacePath,
10
+ env: {
11
+ ...cliChildEnvironment([], input.runtimeHomePath, {
12
+ dbusSessionBusAddress: input.busAddress,
13
+ engine: "agy",
14
+ engineHomePath: input.runtimeHomePath,
15
+ executablePath: input.executablePath
16
+ }),
17
+ TERM: process.env.TERM ?? "xterm-256color"
18
+ }
19
+ });
20
+ export async function runAgySubscriptionBootstrap(config, startRealm = startAgySubscriptionRealm) {
21
+ const agy = config.agents.find((agent) => agent.engine.kind === "agy");
22
+ if (agy === undefined)
23
+ throw new Error("AGY bootstrap requires an AGY agent in the runtime config");
24
+ const paths = await prepareOrganizationRuntimePaths(config.agents);
25
+ let realm;
26
+ let failure;
27
+ try {
28
+ realm = await startRealm();
29
+ const canonical = paths.forAgent(agy);
30
+ await canonical.verify();
31
+ const executable = await prepareEngineExecutable(agy.id, "agy");
32
+ const invocation = createAgyBootstrapInvocation({
33
+ busAddress: realm.busAddress,
34
+ executablePath: executable.executablePath,
35
+ runtimeHomePath: canonical.runtimeHomePath,
36
+ workspacePath: canonical.workspacePath
37
+ });
38
+ const child = spawn(invocation.command, invocation.args, {
39
+ cwd: invocation.cwd,
40
+ env: invocation.env,
41
+ stdio: "inherit"
42
+ });
43
+ const code = await waitForInteractiveChild(child);
44
+ if (code !== 0)
45
+ throw new Error("AGY interactive subscription enrollment did not complete");
46
+ await executable.verify();
47
+ await verifyAgySubscriptionEnrollment(agy.id, executable.executablePath, canonical.runtimeHomePath, realm.busAddress);
48
+ await canonical.verify();
49
+ }
50
+ catch (error) {
51
+ failure = error;
52
+ }
53
+ const cleanup = await Promise.allSettled([
54
+ realm?.close(),
55
+ paths.close()
56
+ ].filter((value) => value !== undefined));
57
+ const cleanupFailures = cleanup.flatMap((result) => result.status === "rejected" ? [result.reason] : []);
58
+ if (cleanupFailures.length > 0)
59
+ throw new AggregateError([
60
+ ...(failure === undefined ? [] : [failure]),
61
+ ...cleanupFailures
62
+ ], "AGY bootstrap cleanup failed");
63
+ if (failure !== undefined)
64
+ throw failure;
65
+ }
66
+ function waitForInteractiveChild(child) {
67
+ return new Promise((resolve, reject) => {
68
+ const forward = (signal) => { child.kill(signal); };
69
+ const onInterrupt = () => forward("SIGINT");
70
+ const onTerminate = () => forward("SIGTERM");
71
+ const cleanup = () => {
72
+ process.off("SIGINT", onInterrupt);
73
+ process.off("SIGTERM", onTerminate);
74
+ };
75
+ process.once("SIGINT", onInterrupt);
76
+ process.once("SIGTERM", onTerminate);
77
+ child.once("error", () => { cleanup(); reject(new Error("AGY interactive subscription enrollment could not start")); });
78
+ child.once("close", (code) => { cleanup(); resolve(code); });
79
+ });
80
+ }
@@ -0,0 +1,38 @@
1
+ export type AgySubscriptionRealm = Readonly<{
2
+ busAddress: string;
3
+ close(): Promise<void>;
4
+ }>;
5
+ export type AgySubscriptionRealmOptions = Readonly<{
6
+ dbusDaemon?: string;
7
+ durablePath?: string;
8
+ flock?: string;
9
+ gnomeKeyringDaemon?: string;
10
+ shell?: string;
11
+ socketReady?: (socketPath: string) => Promise<boolean>;
12
+ temporaryRoot?: string;
13
+ unlockSecretPath?: string;
14
+ }>;
15
+ export declare const createAgyRealmCommands: (input: {
16
+ busSocketPath: string;
17
+ controlDirectory: string;
18
+ dbusDaemon?: string;
19
+ flock?: string;
20
+ gnomeKeyringDaemon?: string;
21
+ shell?: string;
22
+ }) => Readonly<{
23
+ bus: {
24
+ command: string;
25
+ args: string[];
26
+ };
27
+ keyring: {
28
+ command: string;
29
+ args: string[];
30
+ };
31
+ lease: {
32
+ command: string;
33
+ args: string[];
34
+ };
35
+ }>;
36
+ export declare function startAgySubscriptionRealm(options?: AgySubscriptionRealmOptions): Promise<AgySubscriptionRealm>;
37
+ export declare function readAgyRealmUnlockSecret(sourcePath: string): Promise<Buffer>;
38
+ //# sourceMappingURL=agySubscriptionRealm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agySubscriptionRealm.d.ts","sourceRoot":"","sources":["../../src/runtime/agySubscriptionRealm.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB,CAAC,CAAC;AAEH,MAAM,MAAM,2BAA2B,GAAG,QAAQ,CAAC;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC,CAAC;AAUH,eAAO,MAAM,sBAAsB,GAAI,OAAO;IAC5C,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,KAAG,QAAQ,CAAC;IACX,GAAG,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACzC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC7C,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAC5C,CAkBC,CAAC;AAEH,wBAAsB,yBAAyB,CAC7C,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,oBAAoB,CAAC,CA6C/B;AAED,wBAAsB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAqBlF"}