@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
@@ -0,0 +1,24 @@
1
+ export class EngineBrokerSingleflight {
2
+ active;
3
+ run(operation) {
4
+ if (this.active !== undefined)
5
+ return this.active;
6
+ const current = operation();
7
+ this.active = current;
8
+ void current.then(() => { if (this.active === current)
9
+ this.active = undefined; }, () => { if (this.active === current)
10
+ this.active = undefined; });
11
+ return current;
12
+ }
13
+ }
14
+ export class EngineBrokerGenerationFence {
15
+ generation = 0;
16
+ stale = false;
17
+ restore(generation) { if (this.stale || this.generation !== 0 || !Number.isSafeInteger(generation) || generation < 0)
18
+ throw new Error("broker credential generation conflict"); this.generation = generation; }
19
+ snapshot() { if (this.stale)
20
+ throw new Error("broker credential authority is stale"); return this.generation; }
21
+ promote(expected) { if (this.stale || expected !== this.generation)
22
+ throw new Error("broker credential generation conflict"); return ++this.generation; }
23
+ markStale() { this.stale = true; }
24
+ }
@@ -0,0 +1,76 @@
1
+ import type { GrokBrokerModel } from "./grokBrokerModelPolicy.js";
2
+ /**
3
+ * Numeric-only accounting the Grok engine broker seals beside every terminal
4
+ * turn response, and the per-turn limits it enforces.
5
+ *
6
+ * The broker is the single writer of this data (turn registry record, control
7
+ * response, usage ledger row). Nothing engine-controlled and non-numeric is
8
+ * persisted: `model` is a member of the closed declared list, never the
9
+ * provider's own string, and `limitReason` is a closed vocabulary.
10
+ *
11
+ * Buckets are disjoint and `total = input + cacheRead + cacheWrite + output`.
12
+ * `reasoning` is reported only when the source separates it; it is already
13
+ * inside `output` and never added to `total`.
14
+ */
15
+ export type EngineBrokerTurnUsage = Readonly<{
16
+ input: number;
17
+ cacheRead: number;
18
+ cacheWrite: number;
19
+ output: number;
20
+ total: number;
21
+ reasoning?: number;
22
+ }>;
23
+ export declare const ENGINE_BROKER_LIMIT_REASONS: readonly ["tokens", "requests", "timeout", "none"];
24
+ export type EngineBrokerLimitReason = (typeof ENGINE_BROKER_LIMIT_REASONS)[number];
25
+ export type EngineBrokerTurnLimits = Readonly<{
26
+ maxRequests: number;
27
+ maxTokens: number;
28
+ timeoutMs: number;
29
+ }>;
30
+ export type EngineBrokerTurnLimitOverrides = Readonly<Partial<EngineBrokerTurnLimits>>;
31
+ export type EngineBrokerTurnAccounting = Readonly<{
32
+ outcome: "completed" | "failed";
33
+ usage: EngineBrokerTurnUsage | null;
34
+ model: GrokBrokerModel;
35
+ requests: number;
36
+ limitReason: EngineBrokerLimitReason;
37
+ }>;
38
+ /**
39
+ * Bounds every declared limit must sit inside, and the v1 defaults, both from
40
+ * the runtime contract manifest. `maxRequests` stays at or below the
41
+ * launcher's compiled `--max-turns` backstop, so the broker ceiling is the one
42
+ * that fires first.
43
+ */
44
+ export declare const ENGINE_BROKER_LIMIT_BOUNDS: {
45
+ readonly maxRequests: readonly [1, 48];
46
+ readonly maxTokens: readonly [1, 10000000];
47
+ readonly timeoutMs: readonly [1000, 3600000];
48
+ };
49
+ /** What a v1 `service.json` registration gets; equal to the Codex per-wake defaults. */
50
+ export declare const DEFAULT_GROK_BROKER_TURN_LIMITS: EngineBrokerTurnLimits;
51
+ type JsonRecord = Record<string, unknown>;
52
+ /** Exactly `{maxRequests, maxTokens, timeoutMs}`, each inside its bound. */
53
+ export declare function parseEngineBrokerTurnLimits(value: unknown, label?: string): EngineBrokerTurnLimits;
54
+ /** A non-empty subset of the limit keys, each inside its bound. */
55
+ export declare function parseEngineBrokerTurnLimitOverrides(value: unknown, label?: string): EngineBrokerTurnLimitOverrides;
56
+ /**
57
+ * The limits one turn runs under: the registration's, lowered by the wake.
58
+ * A wake can never raise a declared limit; asking to is refused rather than
59
+ * clamped, so a misconfigured caller learns it instead of silently getting less.
60
+ */
61
+ export declare function lowerEngineBrokerTurnLimits(declared: EngineBrokerTurnLimits, overrides: EngineBrokerTurnLimitOverrides | undefined): EngineBrokerTurnLimits;
62
+ /** Four disjoint buckets plus an optional reasoning split; the total invariant is re-checked. */
63
+ export declare function parseEngineBrokerTurnUsage(value: unknown, label?: string): EngineBrokerTurnUsage;
64
+ export declare const sumEngineBrokerTurnUsage: (items: readonly EngineBrokerTurnUsage[]) => EngineBrokerTurnUsage | null;
65
+ /** Validates the accounting members of a v2 terminal response against its kind. */
66
+ export declare function parseEngineBrokerTurnAccounting(value: JsonRecord, kind: "completed" | "failed"): EngineBrokerTurnAccounting;
67
+ /**
68
+ * Maps a provider-reported model key onto the declared closed-list model.
69
+ *
70
+ * Grok 1.0.34 reports `grok-4.6` usage under `grok-4.6-build` (P0). The exact
71
+ * declared id and its `-build` alias are accepted; anything else is a
72
+ * different model and yields `undefined`.
73
+ */
74
+ export declare const mapGrokReportedModel: (reported: string, declared: GrokBrokerModel) => GrokBrokerModel | undefined;
75
+ export {};
76
+ //# sourceMappingURL=engineBrokerTurnAccounting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engineBrokerTurnAccounting.d.ts","sourceRoot":"","sources":["../../src/runtime/engineBrokerTurnAccounting.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAC1J,eAAO,MAAM,2BAA2B,oDAA6C,CAAC;AACtF,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC;AACnF,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAC7G,MAAM,MAAM,8BAA8B,GAAG,QAAQ,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC;AACvF,MAAM,MAAM,0BAA0B,GAAG,QAAQ,CAAC;IAChD,OAAO,EAAE,WAAW,GAAG,QAAQ,CAAC;IAChC,KAAK,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACpC,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,uBAAuB,CAAC;CACtC,CAAC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B;;;;CAAuC,CAAC;AAE/E,wFAAwF;AACxF,eAAO,MAAM,+BAA+B,EAAE,sBAAuF,CAAC;AAGtI,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAY1C,4EAA4E;AAC5E,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,SAA8B,GAAG,sBAAsB,CAGvH;AAED,mEAAmE;AACnE,wBAAgB,mCAAmC,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,SAA8B,GAAG,8BAA8B,CAKvI;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,sBAAsB,EAAE,SAAS,EAAE,8BAA8B,GAAG,SAAS,GAAG,sBAAsB,CAO3J;AAED,iGAAiG;AACjG,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,SAA6B,GAAG,qBAAqB,CAUpH;AAED,eAAO,MAAM,wBAAwB,GAAI,OAAO,SAAS,qBAAqB,EAAE,KAAG,qBAAqB,GAAG,IAK1G,CAAC;AAEF,mFAAmF;AACnF,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,GAAG,QAAQ,GAAG,0BAA0B,CAS3H;AAED;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAAI,UAAU,MAAM,EAAE,UAAU,eAAe,KAAG,eAAe,GAAG,SACnB,CAAC"}
@@ -0,0 +1,108 @@
1
+ import { GROK_BROKER_MODELS } from "../contracts/grokWorkerContract.js";
2
+ import { GROK_ENGINE_BROKER } from "../contracts/runtimeContractManifest.js";
3
+ export const ENGINE_BROKER_LIMIT_REASONS = GROK_ENGINE_BROKER.turnLimits.limitReasons;
4
+ /**
5
+ * Bounds every declared limit must sit inside, and the v1 defaults, both from
6
+ * the runtime contract manifest. `maxRequests` stays at or below the
7
+ * launcher's compiled `--max-turns` backstop, so the broker ceiling is the one
8
+ * that fires first.
9
+ */
10
+ export const ENGINE_BROKER_LIMIT_BOUNDS = GROK_ENGINE_BROKER.turnLimits.bounds;
11
+ /** What a v1 `service.json` registration gets; equal to the Codex per-wake defaults. */
12
+ export const DEFAULT_GROK_BROKER_TURN_LIMITS = Object.freeze({ ...GROK_ENGINE_BROKER.turnLimits.v1Defaults });
13
+ const LIMIT_KEYS = ["maxRequests", "maxTokens", "timeoutMs"];
14
+ const plain = (value) => value !== null && typeof value === "object" && !Array.isArray(value) && (Object.getPrototypeOf(value) === Object.prototype || Object.getPrototypeOf(value) === null);
15
+ const count = (value) => typeof value === "number" && Number.isSafeInteger(value) && value >= 0;
16
+ const invalid = (label) => new TypeError(`invalid ${label}`);
17
+ const limitValue = (key, value, label) => {
18
+ const [minimum, maximum] = ENGINE_BROKER_LIMIT_BOUNDS[key];
19
+ if (typeof value !== "number" || !Number.isSafeInteger(value) || value < minimum || value > maximum)
20
+ throw invalid(label);
21
+ return value;
22
+ };
23
+ /** Exactly `{maxRequests, maxTokens, timeoutMs}`, each inside its bound. */
24
+ export function parseEngineBrokerTurnLimits(value, label = "engine broker turn limits") {
25
+ if (!plain(value) || Object.keys(value).length !== LIMIT_KEYS.length || LIMIT_KEYS.some((key) => !Object.hasOwn(value, key)))
26
+ throw invalid(label);
27
+ return Object.freeze({ maxRequests: limitValue("maxRequests", value.maxRequests, label), maxTokens: limitValue("maxTokens", value.maxTokens, label), timeoutMs: limitValue("timeoutMs", value.timeoutMs, label) });
28
+ }
29
+ /** A non-empty subset of the limit keys, each inside its bound. */
30
+ export function parseEngineBrokerTurnLimitOverrides(value, label = "engine broker turn limits") {
31
+ if (!plain(value) || Object.keys(value).length === 0 || Object.keys(value).some((key) => !LIMIT_KEYS.includes(key)))
32
+ throw invalid(label);
33
+ const result = {};
34
+ for (const key of LIMIT_KEYS)
35
+ if (Object.hasOwn(value, key))
36
+ result[key] = limitValue(key, value[key], label);
37
+ return Object.freeze(result);
38
+ }
39
+ /**
40
+ * The limits one turn runs under: the registration's, lowered by the wake.
41
+ * A wake can never raise a declared limit; asking to is refused rather than
42
+ * clamped, so a misconfigured caller learns it instead of silently getting less.
43
+ */
44
+ export function lowerEngineBrokerTurnLimits(declared, overrides) {
45
+ if (overrides === undefined)
46
+ return declared;
47
+ for (const key of LIMIT_KEYS) {
48
+ const requested = overrides[key];
49
+ if (requested !== undefined && requested > declared[key])
50
+ throw new RangeError(`engine broker turn limit ${key} may only be lowered`);
51
+ }
52
+ return Object.freeze({ maxRequests: overrides.maxRequests ?? declared.maxRequests, maxTokens: overrides.maxTokens ?? declared.maxTokens, timeoutMs: overrides.timeoutMs ?? declared.timeoutMs });
53
+ }
54
+ /** Four disjoint buckets plus an optional reasoning split; the total invariant is re-checked. */
55
+ export function parseEngineBrokerTurnUsage(value, label = "engine broker turn usage") {
56
+ const required = ["input", "cacheRead", "cacheWrite", "output", "total"];
57
+ if (!plain(value))
58
+ throw invalid(label);
59
+ const keys = Object.keys(value);
60
+ if (required.some((key) => !Object.hasOwn(value, key)) || keys.some((key) => !required.includes(key) && key !== "reasoning"))
61
+ throw invalid(label);
62
+ if (![value.input, value.cacheRead, value.cacheWrite, value.output, value.total].every(count))
63
+ throw invalid(label);
64
+ const usage = value;
65
+ if (usage.total !== usage.input + usage.cacheRead + usage.cacheWrite + usage.output)
66
+ throw invalid(label);
67
+ if (usage.reasoning !== undefined && (!count(usage.reasoning) || usage.reasoning > usage.output))
68
+ throw invalid(label);
69
+ return Object.freeze({ input: usage.input, cacheRead: usage.cacheRead, cacheWrite: usage.cacheWrite, output: usage.output, total: usage.total, ...(usage.reasoning === undefined ? {} : { reasoning: usage.reasoning }) });
70
+ }
71
+ export const sumEngineBrokerTurnUsage = (items) => {
72
+ if (items.length === 0)
73
+ return null;
74
+ const sum = (pick) => items.reduce((total, usage) => total + pick(usage), 0);
75
+ const reasoning = items.every((usage) => usage.reasoning !== undefined) ? { reasoning: sum((usage) => usage.reasoning ?? 0) } : {};
76
+ return Object.freeze({ input: sum((usage) => usage.input), cacheRead: sum((usage) => usage.cacheRead), cacheWrite: sum((usage) => usage.cacheWrite), output: sum((usage) => usage.output), total: sum((usage) => usage.total), ...reasoning });
77
+ };
78
+ /** Validates the accounting members of a v2 terminal response against its kind. */
79
+ export function parseEngineBrokerTurnAccounting(value, kind) {
80
+ if (value.outcome !== kind)
81
+ throw invalid("broker frame");
82
+ if (!GROK_BROKER_MODELS.includes(value.model))
83
+ throw invalid("broker frame");
84
+ if (!count(value.requests) || value.requests > 1_024)
85
+ throw invalid("broker frame");
86
+ if (!ENGINE_BROKER_LIMIT_REASONS.includes(value.limitReason))
87
+ throw invalid("broker frame");
88
+ if (kind === "completed" && value.limitReason !== "none")
89
+ throw invalid("broker frame");
90
+ let usage = null;
91
+ if (value.usage !== null) {
92
+ try {
93
+ usage = parseEngineBrokerTurnUsage(value.usage);
94
+ }
95
+ catch {
96
+ throw invalid("broker frame");
97
+ }
98
+ }
99
+ return { outcome: kind, usage, model: value.model, requests: value.requests, limitReason: value.limitReason };
100
+ }
101
+ /**
102
+ * Maps a provider-reported model key onto the declared closed-list model.
103
+ *
104
+ * Grok 1.0.34 reports `grok-4.6` usage under `grok-4.6-build` (P0). The exact
105
+ * declared id and its `-build` alias are accepted; anything else is a
106
+ * different model and yields `undefined`.
107
+ */
108
+ export const mapGrokReportedModel = (reported, declared) => reported === declared || reported === `${declared}-build` ? declared : undefined;
@@ -0,0 +1,57 @@
1
+ import { type EngineBrokerRequest, type EngineBrokerTerminalResponse } from "./engineBrokerProtocol.js";
2
+ import type { GrokBrokerModel } from "./grokBrokerModelPolicy.js";
3
+ import { type BrokerTurnLedgerLines } from "./grokEngineBrokerLedger.js";
4
+ type Start = Extract<EngineBrokerRequest, {
5
+ kind: "start_turn";
6
+ }>;
7
+ type Terminal = EngineBrokerTerminalResponse;
8
+ export declare const ENGINE_BROKER_TURN_RECORD_V1: "noopolis.daimon.engine-broker-turn.v1";
9
+ export declare const ENGINE_BROKER_TURN_RECORD_V2: "noopolis.daimon.engine-broker-turn.v2";
10
+ type Observed = Readonly<{
11
+ version: typeof ENGINE_BROKER_TURN_RECORD_V1 | typeof ENGINE_BROKER_TURN_RECORD_V2;
12
+ digest: string;
13
+ state: "active" | "terminal";
14
+ bootId: string;
15
+ response?: Terminal;
16
+ ledger?: BrokerTurnLedgerLines;
17
+ }>;
18
+ /**
19
+ * Durable per-turn state. Record v2 stores the terminal response *with* its
20
+ * sealed accounting (usage, outcome, model, requests, limitReason), so a replay
21
+ * returns exactly what was metered and never meters again: metering happens
22
+ * only on the path that returned `"start"`.
23
+ */
24
+ export declare class EngineBrokerTurnRegistry {
25
+ private readonly root;
26
+ private readonly bootId;
27
+ private readonly syncDirectoryOf;
28
+ /** `syncDirectoryOf` is injectable only so the post-publish failure path can be exercised under test. */
29
+ constructor(root: string, bootId?: string, syncDirectoryOf?: (directory: string) => Promise<void>);
30
+ /** `model` is the registration's declared model, used only to upgrade a v1 record on replay. */
31
+ begin(request: Start, model: GrokBrokerModel): Promise<"start" | {
32
+ replay: Terminal;
33
+ ledger: BrokerTurnLedgerLines;
34
+ }>;
35
+ /**
36
+ * `ledger` is the exact ledger bytes this turn owes, sealed with it so a replay can finish an interrupted append.
37
+ *
38
+ * The rename is the publish point. A failure before it rejects (nothing was
39
+ * published); a failure after it — the directory fsync — must not, because
40
+ * the terminal record is already the visible truth and a caller that saw a
41
+ * rejection would believe the turn unsealed and write a contradicting
42
+ * record over it. That durability gap is reported as `directorySynced: false`
43
+ * instead: the record is published but may not survive a power loss.
44
+ */
45
+ finish(request: Start, response: Terminal, ledger?: BrokerTurnLedgerLines): Promise<Readonly<{
46
+ directorySynced: boolean;
47
+ }>>;
48
+ }
49
+ /**
50
+ * Strict record parser. v2 accepts exactly `{version,digest,state,bootId}`
51
+ * plus `response` and its sealed `ledger` bytes when terminal, and the response may be a v2, v3 or v4 terminal frame (older frames upgrade on read).
52
+ * v1 records keep their historical looser shape and are upgraded on read: no
53
+ * usage (`null`), zero requests, `limitReason: "none"`, the declared model.
54
+ */
55
+ export declare function parseEngineBrokerTurnRecord(text: string, model: GrokBrokerModel): Observed;
56
+ export {};
57
+ //# sourceMappingURL=engineBrokerTurnRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engineBrokerTurnRegistry.d.ts","sourceRoot":"","sources":["../../src/runtime/engineBrokerTurnRegistry.ts"],"names":[],"mappings":"AAIA,OAAO,EAAmK,KAAK,mBAAmB,EAAE,KAAK,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzQ,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAwD,KAAK,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAE/H,KAAK,KAAK,GAAG,OAAO,CAAC,mBAAmB,EAAE;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,CAAC,CAAC;AAClE,KAAK,QAAQ,GAAG,4BAA4B,CAAC;AAC7C,eAAO,MAAM,4BAA4B,EAAG,uCAAgD,CAAC;AAC7F,eAAO,MAAM,4BAA4B,EAAG,uCAAgD,CAAC;AAM7F,KAAK,QAAQ,GAAG,QAAQ,CAAC;IAAE,OAAO,EAAE,OAAO,4BAA4B,GAAG,OAAO,4BAA4B,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,QAAQ,GAAG,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAAC,MAAM,CAAC,EAAE,qBAAqB,CAAA;CAAE,CAAC,CAAC;AAEpO;;;;;GAKG;AACH,qBAAa,wBAAwB;IAEvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAS,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAqB,OAAO,CAAC,QAAQ,CAAC,eAAe;IADtH,yGAAyG;gBAC5E,IAAI,EAAE,MAAM,EAAkB,MAAM,GAAC,MAAmB,EAAkB,eAAe,GAAC,CAAC,SAAS,EAAC,MAAM,KAAG,OAAO,CAAC,IAAI,CAAe;IACtK,gGAAgG;IAC1F,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,GAAG;QAAE,MAAM,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,qBAAqB,CAAA;KAAE,CAAC;IAW3H;;;;;;;;;OASG;IACG,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAE,qBAAgD,GAAG,OAAO,CAAC,QAAQ,CAAC;QAAE,eAAe,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAO5J;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,QAAQ,CAyB1F"}
@@ -0,0 +1,159 @@
1
+ import { createHash, randomUUID } from "node:crypto";
2
+ import { constants } from "node:fs";
3
+ import { mkdir, open, readFile, rename, unlink } from "node:fs/promises";
4
+ import path from "node:path";
5
+ import { ENGINE_BROKER_VERSION, parseEngineBrokerResponse, parseEngineBrokerV1TerminalResponse, parseEngineBrokerV2TerminalResponse, parseEngineBrokerV3TerminalResponse } from "./engineBrokerProtocol.js";
6
+ import { EMPTY_BROKER_TURN_LEDGER, parseBrokerTurnLedgerLines } from "./grokEngineBrokerLedger.js";
7
+ export const ENGINE_BROKER_TURN_RECORD_V1 = "noopolis.daimon.engine-broker-turn.v1";
8
+ export const ENGINE_BROKER_TURN_RECORD_V2 = "noopolis.daimon.engine-broker-turn.v2";
9
+ // The digest deliberately excludes `limits` and the protocol version, so a v1
10
+ // record written before the upgrade still identifies the same unclocked turn.
11
+ // A supplied process clock changes execution and must conflict with any other value.
12
+ const digest = (request) => createHash("sha256").update(JSON.stringify([request.turnId, request.agentId, request.wakeId, request.prompt, request.mcpEndpoint, ...(request.processClock === undefined ? [] : [request.processClock])])).digest("hex");
13
+ const safe = (turnId) => `${createHash("sha256").update(turnId).digest("hex")}.json`;
14
+ /**
15
+ * Durable per-turn state. Record v2 stores the terminal response *with* its
16
+ * sealed accounting (usage, outcome, model, requests, limitReason), so a replay
17
+ * returns exactly what was metered and never meters again: metering happens
18
+ * only on the path that returned `"start"`.
19
+ */
20
+ export class EngineBrokerTurnRegistry {
21
+ root;
22
+ bootId;
23
+ syncDirectoryOf;
24
+ /** `syncDirectoryOf` is injectable only so the post-publish failure path can be exercised under test. */
25
+ constructor(root, bootId = randomUUID(), syncDirectoryOf = syncDirectory) {
26
+ this.root = root;
27
+ this.bootId = bootId;
28
+ this.syncDirectoryOf = syncDirectoryOf;
29
+ }
30
+ /** `model` is the registration's declared model, used only to upgrade a v1 record on replay. */
31
+ async begin(request, model) {
32
+ await mkdir(this.root, { recursive: true, mode: 0o700 });
33
+ const file = path.join(this.root, safe(request.turnId));
34
+ const expected = digest(request);
35
+ try {
36
+ const handle = await open(file, constants.O_CREAT | constants.O_EXCL | constants.O_WRONLY, 0o600);
37
+ try {
38
+ await handle.writeFile(`${JSON.stringify({ version: ENGINE_BROKER_TURN_RECORD_V2, digest: expected, state: "active", bootId: this.bootId })}\n`);
39
+ await handle.sync();
40
+ }
41
+ finally {
42
+ await handle.close();
43
+ }
44
+ await this.syncDirectoryOf(this.root);
45
+ return "start";
46
+ }
47
+ catch (error) {
48
+ if (error.code !== "EEXIST")
49
+ throw new Error("broker turn registry unavailable");
50
+ }
51
+ const observed = parseEngineBrokerTurnRecord(await readFile(file, "utf8"), model);
52
+ if (observed.digest !== expected)
53
+ throw new Error("broker turn conflict");
54
+ if (observed.state === "terminal" && observed.response !== undefined)
55
+ return { replay: observed.response, ledger: observed.ledger ?? EMPTY_BROKER_TURN_LEDGER };
56
+ if (observed.state === "active" && observed.bootId !== this.bootId) {
57
+ const response = { version: request.version, kind: "failed", requestId: request.requestId, turnId: request.turnId, code: "engine_failed", outcome: "failed", usage: null, model, requests: 0, limitReason: "none" };
58
+ await this.finish(request, response);
59
+ return { replay: response, ledger: EMPTY_BROKER_TURN_LEDGER };
60
+ }
61
+ throw new Error("broker turn already active");
62
+ }
63
+ /**
64
+ * `ledger` is the exact ledger bytes this turn owes, sealed with it so a replay can finish an interrupted append.
65
+ *
66
+ * The rename is the publish point. A failure before it rejects (nothing was
67
+ * published); a failure after it — the directory fsync — must not, because
68
+ * the terminal record is already the visible truth and a caller that saw a
69
+ * rejection would believe the turn unsealed and write a contradicting
70
+ * record over it. That durability gap is reported as `directorySynced: false`
71
+ * instead: the record is published but may not survive a power loss.
72
+ */
73
+ async finish(request, response, ledger = EMPTY_BROKER_TURN_LEDGER) {
74
+ const file = path.join(this.root, safe(request.turnId));
75
+ const temporary = `${file}.${randomUUID()}.tmp`;
76
+ const handle = await open(temporary, constants.O_CREAT | constants.O_EXCL | constants.O_WRONLY, 0o600);
77
+ try {
78
+ await handle.writeFile(`${JSON.stringify({ version: ENGINE_BROKER_TURN_RECORD_V2, digest: digest(request), state: "terminal", bootId: this.bootId, response, ledger })}\n`);
79
+ await handle.sync();
80
+ }
81
+ finally {
82
+ await handle.close();
83
+ }
84
+ try {
85
+ await rename(temporary, file);
86
+ }
87
+ finally {
88
+ await unlink(temporary).catch(() => undefined);
89
+ }
90
+ try {
91
+ await this.syncDirectoryOf(this.root);
92
+ return { directorySynced: true };
93
+ }
94
+ catch {
95
+ return { directorySynced: false };
96
+ }
97
+ }
98
+ }
99
+ /**
100
+ * Strict record parser. v2 accepts exactly `{version,digest,state,bootId}`
101
+ * plus `response` and its sealed `ledger` bytes when terminal, and the response may be a v2, v3 or v4 terminal frame (older frames upgrade on read).
102
+ * v1 records keep their historical looser shape and are upgraded on read: no
103
+ * usage (`null`), zero requests, `limitReason: "none"`, the declared model.
104
+ */
105
+ export function parseEngineBrokerTurnRecord(text, model) {
106
+ let value;
107
+ try {
108
+ value = JSON.parse(text);
109
+ }
110
+ catch {
111
+ throw new Error("broker turn registry unavailable");
112
+ }
113
+ if (value === null || typeof value !== "object" || Array.isArray(value))
114
+ throw new Error("broker turn registry unavailable");
115
+ const input = value;
116
+ if (typeof input.digest !== "string" || !/^[a-f0-9]{64}$/u.test(input.digest) || typeof input.bootId !== "string" || (input.state !== "active" && input.state !== "terminal"))
117
+ throw new Error("broker turn registry unavailable");
118
+ const base = { digest: input.digest, state: input.state, bootId: input.bootId };
119
+ if (input.version === ENGINE_BROKER_TURN_RECORD_V1) {
120
+ if (input.state !== "terminal" || input.response === undefined)
121
+ return { version: ENGINE_BROKER_TURN_RECORD_V1, ...base };
122
+ let legacy;
123
+ try {
124
+ legacy = parseEngineBrokerV1TerminalResponse(input.response);
125
+ }
126
+ catch {
127
+ throw new Error("broker turn registry unavailable");
128
+ }
129
+ const accounting = { outcome: legacy.kind, usage: null, model, requests: 0, limitReason: "none" };
130
+ const response = { ...legacy, ...accounting, version: ENGINE_BROKER_VERSION };
131
+ return { version: ENGINE_BROKER_TURN_RECORD_V1, ...base, response };
132
+ }
133
+ if (input.version !== ENGINE_BROKER_TURN_RECORD_V2)
134
+ throw new Error("broker turn conflict");
135
+ const fields = input.state === "terminal" ? ["version", "digest", "state", "bootId", "response", "ledger"] : ["version", "digest", "state", "bootId"];
136
+ if (Object.keys(input).length !== fields.length || fields.some((field) => !Object.hasOwn(input, field)))
137
+ throw new Error("broker turn registry unavailable");
138
+ if (input.state === "active")
139
+ return { version: ENGINE_BROKER_TURN_RECORD_V2, ...base };
140
+ let response;
141
+ try {
142
+ response = input.response?.version === "noopolis.daimon.engine-broker.v2" ? parseEngineBrokerV2TerminalResponse(input.response) : input.response?.version === "noopolis.daimon.engine-broker.v3" ? parseEngineBrokerV3TerminalResponse(input.response) : parseEngineBrokerResponse(input.response);
143
+ }
144
+ catch {
145
+ throw new Error("broker turn registry unavailable");
146
+ }
147
+ if (response.kind !== "completed" && response.kind !== "failed")
148
+ throw new Error("broker turn registry unavailable");
149
+ const ledger = parseBrokerTurnLedgerLines(input.ledger, response.turnId);
150
+ if ((response.usage === null) !== (ledger.usage === null))
151
+ throw new Error("broker turn registry unavailable");
152
+ return { version: ENGINE_BROKER_TURN_RECORD_V2, ...base, response, ledger };
153
+ }
154
+ async function syncDirectory(directory) { const handle = await open(directory, constants.O_RDONLY); try {
155
+ await handle.sync();
156
+ }
157
+ finally {
158
+ await handle.close();
159
+ } }
@@ -0,0 +1,38 @@
1
+ import { type AttentionRegistry } from "./attention.js";
2
+ import type { AgentHandle } from "../core/types.js";
3
+ import type { OrganizationRuntimeAgentConfig } from "./organizationRuntime.js";
4
+ import type { OrganizationRuntimePathAuthority } from "./physicalReadiness.js";
5
+ import type { EngineBrokerTurnClient } from "./engineBrokerControlClient.js";
6
+ /**
7
+ * The production-only bridge from a closed runtime engine intent to Daimon's
8
+ * existing one-agent harness. Configuration never carries a command or env.
9
+ */
10
+ export declare function startOrganizationRuntimeEngine(agent: OrganizationRuntimeAgentConfig, controlTokenEnv: string, paths?: ReturnType<OrganizationRuntimePathAuthority["forAgent"]>, agyBusAddress?: string, grokBroker?: EngineBrokerTurnClient, organizationAgents?: readonly OrganizationRuntimeAgentConfig[], sharedProtectedPaths?: readonly string[], attention?: AttentionRegistry): Promise<AgentHandle>;
11
+ export declare function grokSandboxProtectedPaths(currentAgentId: string, organizationAgents: readonly OrganizationRuntimeAgentConfig[], sharedProtectedPaths?: readonly string[]): readonly string[];
12
+ export declare function codexSandboxProtectedPaths(currentAgentId: string, currentAgent: OrganizationRuntimeAgentConfig, currentEngineHomePath: string, organizationAgents: readonly OrganizationRuntimeAgentConfig[], sharedProtectedPaths?: readonly string[]): readonly string[];
13
+ export declare function codexSandboxReadablePaths(currentAgent: OrganizationRuntimeAgentConfig): readonly string[];
14
+ /** @internal The same callback used by the production session; no native process clock enters the engine environment. */
15
+ export declare function grokBrokerTurnFor(agent: OrganizationRuntimeAgentConfig, grokBroker: EngineBrokerTurnClient, wakeEnvironmentContext: import("../pi/piAgentWakeSupport.js").PiWakeEnvironmentContextRef): (prompt: string, endpoint: string, signal: AbortSignal) => Promise<string>;
16
+ /**
17
+ * CLI engines do not consume Pi's resource loader. Frame the same immutable
18
+ * identity in JSON so arbitrary names/instructions cannot change its shape.
19
+ */
20
+ /**
21
+ * The caller-owned prompt preamble.
22
+ *
23
+ * It names the mounted tools explicitly, because a CLI engine reaches Daimon's
24
+ * tools over MCP and an agent whose instructions name another engine's tool
25
+ * spelling can finish a turn having called nothing. The declared names are the
26
+ * caller's own configuration, not engine-supplied text.
27
+ *
28
+ * On Grok the bare names are not the callable ones: every Daimon tool is a
29
+ * deferred MCP tool of server `daimon`, and Grok 1.0.34 refuses an unqualified
30
+ * name before any HTTP ("Tool names must be qualified as `server__tool`"). This
31
+ * envelope used to instruct exactly that refused form. The correct rule is not
32
+ * restated here — it is rendered by `grokMountedToolNamingRule` in the same
33
+ * contract module that renders the worker's pinned system prompt, so the two
34
+ * texts cannot contradict each other again. Every other engine's sentence is
35
+ * unchanged, byte for byte.
36
+ */
37
+ export declare function identityEnvelope(agent: OrganizationRuntimeAgentConfig, mountedToolNames?: readonly string[]): string;
38
+ //# sourceMappingURL=engineDispatcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engineDispatcher.d.ts","sourceRoot":"","sources":["../../src/runtime/engineDispatcher.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAMxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAQpD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAE/E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAM7E;;;GAGG;AACH,wBAAsB,8BAA8B,CAClD,KAAK,EAAE,8BAA8B,EACrC,eAAe,EAAE,MAAM,EACvB,KAAK,CAAC,EAAE,UAAU,CAAC,gCAAgC,CAAC,UAAU,CAAC,CAAC,EAChE,aAAa,CAAC,EAAE,MAAM,EACtB,UAAU,CAAC,EAAE,sBAAsB,EACnC,kBAAkB,CAAC,EAAE,SAAS,8BAA8B,EAAE,EAC9D,oBAAoB,GAAE,SAAS,MAAM,EAAO,EAC5C,SAAS,CAAC,EAAE,iBAAiB,GAC5B,OAAO,CAAC,WAAW,CAAC,CAiDtB;AAED,wBAAgB,yBAAyB,CACvC,cAAc,EAAE,MAAM,EACtB,kBAAkB,EAAE,SAAS,8BAA8B,EAAE,EAC7D,oBAAoB,GAAE,SAAS,MAAM,EAAO,GAC3C,SAAS,MAAM,EAAE,CAYnB;AAED,wBAAgB,0BAA0B,CACxC,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,8BAA8B,EAC5C,qBAAqB,EAAE,MAAM,EAC7B,kBAAkB,EAAE,SAAS,8BAA8B,EAAE,EAC7D,oBAAoB,GAAE,SAAS,MAAM,EAAO,GAC3C,SAAS,MAAM,EAAE,CAQnB;AAED,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,8BAA8B,GAC3C,SAAS,MAAM,EAAE,CAEnB;AAkDD,yHAAyH;AACzH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,8BAA8B,EAAE,UAAU,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,OAAO,6BAA6B,EAAE,2BAA2B,IAG5L,QAAQ,MAAM,EAAE,UAAU,MAAM,EAAE,QAAQ,WAAW,qBAI9D;AAED;;;GAGG;AACH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,8BAA8B,EAAE,gBAAgB,GAAE,SAAS,MAAM,EAAO,GAAG,MAAM,CAkBxH"}