@noopolis/daimon 0.2.0 → 0.2.2

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 (261) hide show
  1. package/README.md +6 -0
  2. package/dist/contracts/attentionContract.d.ts +25 -0
  3. package/dist/contracts/attentionContract.d.ts.map +1 -1
  4. package/dist/contracts/attentionContract.js +8 -1
  5. package/dist/contracts/grokBrokerTaskClock.d.ts +18 -0
  6. package/dist/contracts/grokBrokerTaskClock.d.ts.map +1 -0
  7. package/dist/contracts/grokBrokerTaskClock.js +16 -0
  8. package/dist/contracts/organizationRuntimeContract.d.ts +76 -0
  9. package/dist/contracts/organizationRuntimeContract.d.ts.map +1 -1
  10. package/dist/contracts/organizationRuntimeContract.js +2 -0
  11. package/dist/contracts/runtimeContractManifest.d.ts +222 -15
  12. package/dist/contracts/runtimeContractManifest.d.ts.map +1 -1
  13. package/dist/contracts/runtimeContractManifest.js +35 -10
  14. package/dist/contracts/shellEnvironmentPolicy.d.ts +3 -0
  15. package/dist/contracts/shellEnvironmentPolicy.d.ts.map +1 -0
  16. package/dist/contracts/shellEnvironmentPolicy.js +5 -0
  17. package/dist/contracts/wakeMomentContract.d.ts +61 -0
  18. package/dist/contracts/wakeMomentContract.d.ts.map +1 -0
  19. package/dist/contracts/wakeMomentContract.js +27 -0
  20. package/dist/core/types.d.ts +2 -0
  21. package/dist/core/types.d.ts.map +1 -1
  22. package/dist/examples/jungianPlayAgent.d.ts +1 -0
  23. package/dist/examples/jungianPlayAgent.d.ts.map +1 -1
  24. package/dist/examples/jungianPlayAgent.js +6 -2
  25. package/dist/observability/causalEvents.d.ts +3 -3
  26. package/dist/observability/causalEvents.d.ts.map +1 -1
  27. package/dist/observability/causalEvents.js +4 -4
  28. package/dist/pi/cliEngineSpawn.d.ts +2 -2
  29. package/dist/pi/cliEngineSpawn.d.ts.map +1 -1
  30. package/dist/pi/cliEngineSpawn.js +7 -2
  31. package/dist/pi/cliEnvironment.d.ts.map +1 -1
  32. package/dist/pi/cliEnvironment.js +2 -0
  33. package/dist/pi/cliMcpRegistration.d.ts +1 -1
  34. package/dist/pi/cliMcpRegistration.d.ts.map +1 -1
  35. package/dist/pi/cliMcpRegistration.js +1 -1
  36. package/dist/pi/cliSession.d.ts +2 -0
  37. package/dist/pi/cliSession.d.ts.map +1 -1
  38. package/dist/pi/cliSession.js +3 -80
  39. package/dist/pi/cliSessionMcp.d.ts +9 -0
  40. package/dist/pi/cliSessionMcp.d.ts.map +1 -0
  41. package/dist/pi/cliSessionMcp.js +80 -0
  42. package/dist/pi/engineTaskClock.d.ts +9 -0
  43. package/dist/pi/engineTaskClock.d.ts.map +1 -0
  44. package/dist/pi/engineTaskClock.js +28 -0
  45. package/dist/pi/grokHomeMcpRegistration.d.ts.map +1 -1
  46. package/dist/pi/grokHomeMcpRegistration.js +2 -1
  47. package/dist/pi/grokSandbox.js +1 -1
  48. package/dist/pi/memoryClock.d.ts +25 -0
  49. package/dist/pi/memoryClock.d.ts.map +1 -0
  50. package/dist/pi/memoryClock.js +18 -0
  51. package/dist/pi/piAgentHandle.d.ts +3 -1
  52. package/dist/pi/piAgentHandle.d.ts.map +1 -1
  53. package/dist/pi/piAgentHandle.js +5 -2
  54. package/dist/pi/piHarness.d.ts +8 -2
  55. package/dist/pi/piHarness.d.ts.map +1 -1
  56. package/dist/pi/piHarness.js +28 -12
  57. package/dist/pi/taskClockProcess.d.ts +6 -0
  58. package/dist/pi/taskClockProcess.d.ts.map +1 -0
  59. package/dist/pi/taskClockProcess.js +8 -0
  60. package/dist/pi/turnCausal.d.ts +4 -2
  61. package/dist/pi/turnCausal.d.ts.map +1 -1
  62. package/dist/pi/turnCausal.js +4 -4
  63. package/dist/pi/wakeAcceptance.d.ts +1 -1
  64. package/dist/pi/wakeAcceptance.d.ts.map +1 -1
  65. package/dist/pi/wakeAcceptance.js +2 -2
  66. package/dist/runtime/agentSkillsDirectory.d.ts +25 -0
  67. package/dist/runtime/agentSkillsDirectory.d.ts.map +1 -0
  68. package/dist/runtime/agentSkillsDirectory.js +101 -0
  69. package/dist/runtime/agySubscriptionBootstrap.js +1 -1
  70. package/dist/runtime/agySubscriptionRealm.js +1 -1
  71. package/dist/runtime/attention.d.ts +5 -0
  72. package/dist/runtime/attention.d.ts.map +1 -1
  73. package/dist/runtime/attention.js +14 -1
  74. package/dist/runtime/attentionDispatcher.d.ts +14 -2
  75. package/dist/runtime/attentionDispatcher.d.ts.map +1 -1
  76. package/dist/runtime/attentionDispatcher.js +127 -33
  77. package/dist/runtime/cli.js +5 -0
  78. package/dist/runtime/contract-manifest.json +1 -1
  79. package/dist/runtime/contract-manifest.sha256 +1 -1
  80. package/dist/runtime/engineBrokerCapabilities.d.ts +10 -0
  81. package/dist/runtime/engineBrokerCapabilities.d.ts.map +1 -1
  82. package/dist/runtime/engineBrokerCapabilities.js +10 -0
  83. package/dist/runtime/engineBrokerControlClient.d.ts +12 -1
  84. package/dist/runtime/engineBrokerControlClient.d.ts.map +1 -1
  85. package/dist/runtime/engineBrokerControlClient.js +139 -43
  86. package/dist/runtime/engineBrokerCredentialJournal.d.ts +2 -0
  87. package/dist/runtime/engineBrokerCredentialJournal.d.ts.map +1 -1
  88. package/dist/runtime/engineBrokerCredentialJournal.js +9 -0
  89. package/dist/runtime/engineBrokerInferenceProtocol.d.ts +3 -2
  90. package/dist/runtime/engineBrokerInferenceProtocol.d.ts.map +1 -1
  91. package/dist/runtime/engineBrokerInferenceProtocol.js +4 -4
  92. package/dist/runtime/engineBrokerMcpCallLog.d.ts +11 -0
  93. package/dist/runtime/engineBrokerMcpCallLog.d.ts.map +1 -1
  94. package/dist/runtime/engineBrokerMcpCallLog.js +13 -1
  95. package/dist/runtime/engineBrokerMcpFacade.d.ts +5 -2
  96. package/dist/runtime/engineBrokerMcpFacade.d.ts.map +1 -1
  97. package/dist/runtime/engineBrokerMcpFacade.js +5 -2
  98. package/dist/runtime/engineBrokerNativeClient.js +2 -2
  99. package/dist/runtime/engineBrokerProtocol.d.ts +42 -10
  100. package/dist/runtime/engineBrokerProtocol.d.ts.map +1 -1
  101. package/dist/runtime/engineBrokerProtocol.js +97 -14
  102. package/dist/runtime/engineBrokerSealLedger.d.ts.map +1 -1
  103. package/dist/runtime/engineBrokerSealLedger.js +9 -0
  104. package/dist/runtime/engineBrokerService.d.ts +8 -2
  105. package/dist/runtime/engineBrokerService.d.ts.map +1 -1
  106. package/dist/runtime/engineBrokerService.js +95 -37
  107. package/dist/runtime/engineBrokerServiceCli.js +1 -1
  108. package/dist/runtime/engineBrokerServiceConfig.d.ts +15 -2
  109. package/dist/runtime/engineBrokerServiceConfig.d.ts.map +1 -1
  110. package/dist/runtime/engineBrokerServiceConfig.js +53 -11
  111. package/dist/runtime/engineBrokerTurnRegistry.d.ts +1 -1
  112. package/dist/runtime/engineBrokerTurnRegistry.d.ts.map +1 -1
  113. package/dist/runtime/engineBrokerTurnRegistry.js +7 -6
  114. package/dist/runtime/engineDispatcher.d.ts +2 -0
  115. package/dist/runtime/engineDispatcher.d.ts.map +1 -1
  116. package/dist/runtime/engineDispatcher.js +14 -2
  117. package/dist/runtime/engineReadiness.js +1 -1
  118. package/dist/runtime/grokBrokerCredentialAuthority.d.ts +1 -0
  119. package/dist/runtime/grokBrokerCredentialAuthority.d.ts.map +1 -1
  120. package/dist/runtime/grokBrokerCredentialAuthority.js +48 -22
  121. package/dist/runtime/grokBrokerCredentialReader.d.ts +1 -0
  122. package/dist/runtime/grokBrokerCredentialReader.d.ts.map +1 -1
  123. package/dist/runtime/grokBrokerCredentialReader.js +2 -1
  124. package/dist/runtime/grokBrokerProjection.d.ts +26 -2
  125. package/dist/runtime/grokBrokerProjection.d.ts.map +1 -1
  126. package/dist/runtime/grokBrokerProjection.js +18 -7
  127. package/dist/runtime/grokBrokerProviderClock.d.ts +26 -0
  128. package/dist/runtime/grokBrokerProviderClock.d.ts.map +1 -0
  129. package/dist/runtime/grokBrokerProviderClock.js +133 -0
  130. package/dist/runtime/grokBrokerProxy.d.ts +17 -3
  131. package/dist/runtime/grokBrokerProxy.d.ts.map +1 -1
  132. package/dist/runtime/grokBrokerProxy.js +73 -9
  133. package/dist/runtime/grokBrokerProxyJson.d.ts +10 -0
  134. package/dist/runtime/grokBrokerProxyJson.d.ts.map +1 -0
  135. package/dist/runtime/grokBrokerProxyJson.js +31 -0
  136. package/dist/runtime/grokBrokerProxyRequest.d.ts.map +1 -1
  137. package/dist/runtime/grokBrokerProxyRequest.js +17 -6
  138. package/dist/runtime/grokBrokerRealmLease.js +1 -1
  139. package/dist/runtime/grokBrokerRefresh.js +1 -1
  140. package/dist/runtime/grokBrokerRunBudget.d.ts +20 -0
  141. package/dist/runtime/grokBrokerRunBudget.d.ts.map +1 -0
  142. package/dist/runtime/grokBrokerRunBudget.js +85 -0
  143. package/dist/runtime/grokBrokerSlot.d.ts +6 -0
  144. package/dist/runtime/grokBrokerSlot.d.ts.map +1 -0
  145. package/dist/runtime/grokBrokerSlot.js +21 -0
  146. package/dist/runtime/grokBrokerTaskClock.d.ts +32 -0
  147. package/dist/runtime/grokBrokerTaskClock.d.ts.map +1 -0
  148. package/dist/runtime/grokBrokerTaskClock.js +120 -0
  149. package/dist/runtime/grokBrokerTurnMeter.d.ts +55 -3
  150. package/dist/runtime/grokBrokerTurnMeter.d.ts.map +1 -1
  151. package/dist/runtime/grokBrokerTurnMeter.js +90 -4
  152. package/dist/runtime/grokBrokerWorkerConfig.d.ts +5 -2
  153. package/dist/runtime/grokBrokerWorkerConfig.d.ts.map +1 -1
  154. package/dist/runtime/grokBrokerWorkerConfig.js +22 -3
  155. package/dist/runtime/grokEngineBroker.d.ts +43 -3
  156. package/dist/runtime/grokEngineBroker.d.ts.map +1 -1
  157. package/dist/runtime/grokEngineBroker.js +159 -71
  158. package/dist/runtime/grokEngineBrokerTurn.d.ts +32 -8
  159. package/dist/runtime/grokEngineBrokerTurn.d.ts.map +1 -1
  160. package/dist/runtime/grokEngineBrokerTurn.js +204 -21
  161. package/dist/runtime/grokEngineBrokerTurnEnd.d.ts +88 -0
  162. package/dist/runtime/grokEngineBrokerTurnEnd.d.ts.map +1 -0
  163. package/dist/runtime/grokEngineBrokerTurnEnd.js +148 -0
  164. package/dist/runtime/grokInferenceProxy.d.ts.map +1 -1
  165. package/dist/runtime/grokInferenceProxy.js +3 -0
  166. package/dist/runtime/grokSubscriptionRealm.js +1 -1
  167. package/dist/runtime/grokWorkerAttestation.d.ts +12 -5
  168. package/dist/runtime/grokWorkerAttestation.d.ts.map +1 -1
  169. package/dist/runtime/grokWorkerAttestation.js +5 -3
  170. package/dist/runtime/grokWorkerHomeAttestation.d.ts +51 -5
  171. package/dist/runtime/grokWorkerHomeAttestation.d.ts.map +1 -1
  172. package/dist/runtime/grokWorkerHomeAttestation.js +103 -8
  173. package/dist/runtime/grokWorkerSkills.d.ts +86 -0
  174. package/dist/runtime/grokWorkerSkills.d.ts.map +1 -0
  175. package/dist/runtime/grokWorkerSkills.js +135 -0
  176. package/dist/runtime/index.d.ts +10 -2
  177. package/dist/runtime/index.d.ts.map +1 -1
  178. package/dist/runtime/index.js +8 -1
  179. package/dist/runtime/native/daimon-engine-broker +0 -0
  180. package/dist/runtime/organizationRuntime.d.ts +3 -0
  181. package/dist/runtime/organizationRuntime.d.ts.map +1 -1
  182. package/dist/runtime/organizationRuntimeAdmission.d.ts +6 -0
  183. package/dist/runtime/organizationRuntimeAdmission.d.ts.map +1 -0
  184. package/dist/runtime/organizationRuntimeAdmission.js +22 -0
  185. package/dist/runtime/organizationRuntimeControl.d.ts +9 -0
  186. package/dist/runtime/organizationRuntimeControl.d.ts.map +1 -1
  187. package/dist/runtime/organizationRuntimeControl.js +72 -24
  188. package/dist/runtime/organizationRuntimeHost.d.ts.map +1 -1
  189. package/dist/runtime/organizationRuntimeHost.js +13 -4
  190. package/dist/runtime/organizationRuntimeParsing.d.ts.map +1 -1
  191. package/dist/runtime/organizationRuntimeParsing.js +4 -1
  192. package/dist/runtime/organizationRuntimeReadiness.d.ts.map +1 -1
  193. package/dist/runtime/organizationRuntimeReadiness.js +8 -0
  194. package/dist/runtime/organizationRuntimeRecording.d.ts +7 -0
  195. package/dist/runtime/organizationRuntimeRecording.d.ts.map +1 -0
  196. package/dist/runtime/organizationRuntimeRecording.js +58 -0
  197. package/dist/runtime/physicalReadiness.d.ts +12 -0
  198. package/dist/runtime/physicalReadiness.d.ts.map +1 -1
  199. package/dist/runtime/physicalReadiness.js +43 -9
  200. package/dist/runtime/productionAgentTools.d.ts.map +1 -1
  201. package/dist/runtime/productionAgentTools.js +13 -5
  202. package/dist/runtime/relocateRuntimeConfig.d.ts +14 -0
  203. package/dist/runtime/relocateRuntimeConfig.d.ts.map +1 -0
  204. package/dist/runtime/relocateRuntimeConfig.js +38 -0
  205. package/dist/runtime/schedule.d.ts.map +1 -1
  206. package/dist/runtime/schedule.js +12 -7
  207. package/dist/runtime/storeCoordination.d.ts +10 -0
  208. package/dist/runtime/storeCoordination.d.ts.map +1 -1
  209. package/dist/runtime/storeCoordination.js +23 -0
  210. package/dist/runtime/taskClock.d.ts +42 -0
  211. package/dist/runtime/taskClock.d.ts.map +1 -0
  212. package/dist/runtime/taskClock.js +102 -0
  213. package/dist/runtime/taskClockProcess.d.ts +17 -0
  214. package/dist/runtime/taskClockProcess.d.ts.map +1 -0
  215. package/dist/runtime/taskClockProcess.js +58 -0
  216. package/dist/runtime/turnRequestLedger.d.ts +0 -5
  217. package/dist/runtime/turnRequestLedger.d.ts.map +1 -1
  218. package/dist/runtime/turnRequestLedger.js +23 -21
  219. package/dist/runtime/wakeAcceptanceClaimDiagnostics.d.ts +34 -0
  220. package/dist/runtime/wakeAcceptanceClaimDiagnostics.d.ts.map +1 -0
  221. package/dist/runtime/wakeAcceptanceClaimDiagnostics.js +79 -0
  222. package/dist/runtime/wakeAcceptanceIndex.d.ts +55 -0
  223. package/dist/runtime/wakeAcceptanceIndex.d.ts.map +1 -0
  224. package/dist/runtime/wakeAcceptanceIndex.js +158 -0
  225. package/dist/runtime/wakeAcceptanceProcessIdentity.d.ts +9 -1
  226. package/dist/runtime/wakeAcceptanceProcessIdentity.d.ts.map +1 -1
  227. package/dist/runtime/wakeAcceptanceProcessIdentity.js +5 -1
  228. package/dist/runtime/wakeAcceptanceRecord.d.ts +2 -0
  229. package/dist/runtime/wakeAcceptanceRecord.d.ts.map +1 -1
  230. package/dist/runtime/wakeAcceptanceRecord.js +4 -2
  231. package/dist/runtime/wakeAcceptanceRetention.d.ts +25 -1
  232. package/dist/runtime/wakeAcceptanceRetention.d.ts.map +1 -1
  233. package/dist/runtime/wakeAcceptanceRetention.js +28 -2
  234. package/dist/runtime/wakeAcceptanceStore.d.ts +8 -8
  235. package/dist/runtime/wakeAcceptanceStore.d.ts.map +1 -1
  236. package/dist/runtime/wakeAcceptanceStore.js +66 -63
  237. package/dist/runtime/wakeFuse.d.ts +58 -3
  238. package/dist/runtime/wakeFuse.d.ts.map +1 -1
  239. package/dist/runtime/wakeFuse.js +106 -7
  240. package/dist/runtime/wakeMomentFs.d.ts +27 -0
  241. package/dist/runtime/wakeMomentFs.d.ts.map +1 -0
  242. package/dist/runtime/wakeMomentFs.js +223 -0
  243. package/dist/runtime/wakeMomentHistory.d.ts +26 -0
  244. package/dist/runtime/wakeMomentHistory.d.ts.map +1 -0
  245. package/dist/runtime/wakeMomentHistory.js +109 -0
  246. package/dist/runtime/wakeMomentIo.d.ts +22 -0
  247. package/dist/runtime/wakeMomentIo.d.ts.map +1 -0
  248. package/dist/runtime/wakeMomentIo.js +114 -0
  249. package/dist/runtime/wakeMomentRecorder.d.ts +33 -0
  250. package/dist/runtime/wakeMomentRecorder.d.ts.map +1 -0
  251. package/dist/runtime/wakeMomentRecorder.js +81 -0
  252. package/dist/runtime/wakeMomentRetention.d.ts +7 -0
  253. package/dist/runtime/wakeMomentRetention.d.ts.map +1 -0
  254. package/dist/runtime/wakeMomentRetention.js +143 -0
  255. package/dist/runtime/wakeMomentRows.d.ts +8 -0
  256. package/dist/runtime/wakeMomentRows.d.ts.map +1 -0
  257. package/dist/runtime/wakeMomentRows.js +66 -0
  258. package/dist/runtime/wakeMomentSnapshot.d.ts +56 -0
  259. package/dist/runtime/wakeMomentSnapshot.d.ts.map +1 -0
  260. package/dist/runtime/wakeMomentSnapshot.js +248 -0
  261. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"engineBrokerInferenceProtocol.d.ts","sourceRoot":"","sources":["../../src/runtime/engineBrokerInferenceProtocol.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC7F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAgBtE,eAAO,MAAM,qCAAqC,0EAAoB,CAAC;AACvE,MAAM,MAAM,gCAAgC,GAAG,CAAC,OAAO,qCAAqC,CAAC,CAAC,MAAM,CAAC,CAAC;AACtG,eAAO,MAAM,6BAA6B,6BAAyG,CAAC;AAEpJ,KAAK,CAAC,GAAG,kCAAkC,CAAC;AAC5C,MAAM,MAAM,4BAA4B,GACpC,QAAQ,CAAC;IAAE,OAAO,EAAE,CAAC,CAAC;IAAC,IAAI,EAAE,yBAAyB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,eAAe,CAAC;IAAC,eAAe,EAAE,yBAAyB,CAAC;IAAC,OAAO,EAAE,oBAAoB,CAAA;CAAE,CAAC,GAC/K,QAAQ,CAAC;IAAE,OAAO,EAAE,CAAC,CAAC;IAAC,IAAI,EAAE,yBAAyB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAClG,MAAM,MAAM,6BAA6B,GACrC,QAAQ,CAAC;IAAE,OAAO,EAAE,CAAC,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,6BAA6B,CAAC;IAAC,KAAK,EAAE,eAAe,CAAC;IAAC,eAAe,EAAE,yBAAyB,CAAC;IAAC,OAAO,EAAE,oBAAoB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,sBAAsB,CAAA;CAAE,CAAC,GACzS,QAAQ,CAAC;IAAE,OAAO,EAAE,CAAC,CAAC;IAAC,IAAI,EAAE,0BAA0B,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC,GACjH,QAAQ,CAAC;IAAE,OAAO,EAAE,CAAC,CAAC;IAAC,IAAI,EAAE,yBAAyB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,gCAAgC,CAAA;CAAE,CAAC,CAAC;AAEzH,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAO1C,uFAAuF;AACvF,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,4BAA4B,CAUhI;AAED,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,6BAA6B,CAoBlI;AAED,eAAO,MAAM,kCAAkC,GAAI,MAAM,OAAO,KAAG,OAAmF,CAAC;AACvJ,eAAO,MAAM,mCAAmC,GAAI,MAAM,OAAO,KAAG,OAAkH,CAAC"}
1
+ {"version":3,"file":"engineBrokerInferenceProtocol.d.ts","sourceRoot":"","sources":["../../src/runtime/engineBrokerInferenceProtocol.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC7F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAgBtE,eAAO,MAAM,qCAAqC,0EAAoB,CAAC;AACvE,MAAM,MAAM,gCAAgC,GAAG,CAAC,OAAO,qCAAqC,CAAC,CAAC,MAAM,CAAC,CAAC;AACtG,eAAO,MAAM,6BAA6B,6BAAyG,CAAC;AAEpJ,KAAK,CAAC,GAAG,OAAO,kBAAkB,CAAC,sBAAsB,CAAC;AAC1D,MAAM,MAAM,4BAA4B,GACpC,QAAQ,CAAC;IAAE,OAAO,EAAE,CAAC,CAAC;IAAC,IAAI,EAAE,yBAAyB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,eAAe,CAAC;IAAC,eAAe,EAAE,yBAAyB,CAAC;IAAC,OAAO,EAAE,oBAAoB,CAAA;CAAE,CAAC,GAC/K,QAAQ,CAAC;IAAE,OAAO,EAAE,CAAC,CAAC;IAAC,IAAI,EAAE,yBAAyB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAClG,MAAM,MAAM,6BAA6B,GACrC,QAAQ,CAAC;IAAE,OAAO,EAAE,CAAC,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,6BAA6B,CAAC;IAAC,KAAK,EAAE,eAAe,CAAC;IAAC,eAAe,EAAE,yBAAyB,CAAC;IAAC,OAAO,EAAE,oBAAoB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,sBAAsB,CAAA;CAAE,CAAC,GACzS,QAAQ,CAAC;IAAE,OAAO,EAAE,CAAC,CAAC;IAAC,IAAI,EAAE,0BAA0B,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC,GACjH,QAAQ,CAAC;IAAE,OAAO,EAAE,CAAC,CAAC;IAAC,IAAI,EAAE,yBAAyB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,gCAAgC,CAAA;CAAE,CAAC,CAAC;AAEzH,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAO1C,4FAA4F;AAC5F,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,4BAA4B,CAUhI;AAED,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,6BAA6B,CAoBlI;AAED,eAAO,MAAM,kCAAkC,GAAI,MAAM,OAAO,KAAG,OAAmF,CAAC;AACvJ,eAAO,MAAM,mCAAmC,GAAI,MAAM,OAAO,KAAG,OAAkH,CAAC"}
@@ -1,11 +1,11 @@
1
1
  import { GROK_BROKER_MODELS, GROK_BROKER_REASONING_EFFORTS } from "../contracts/grokWorkerContract.js";
2
2
  import { GROK_ENGINE_BROKER } from "../contracts/runtimeContractManifest.js";
3
3
  /**
4
- * Evaluator inference grant frames, additive kinds of control protocol v2.
4
+ * Evaluator inference grant frames, introduced in v2 and carried by current v3.
5
5
  *
6
6
  * Both ends ship in this package (the organization-side client and the broker
7
- * service), so the kinds join v2 without a version bump; a broker that
8
- * predates them refuses the unknown kind and closes the connection, which the
7
+ * service), the kinds originally joined v2 without a version bump. A broker that
8
+ * predates a kind refuses it and closes the connection, which the
9
9
  * client reports as `unavailable`. The native relay forwards frames opaquely
10
10
  * and admits only the organization uid on `control.sock` (`SO_PEERCRED`), so
11
11
  * that check is what limits grants to the evaluator side.
@@ -24,7 +24,7 @@ const member = (list, value) => { if (!list.includes(value))
24
24
  const grantId = (value) => { if (typeof value !== "string" || !/^[a-f0-9]{32}$/u.test(value))
25
25
  throw invalid(); return value; };
26
26
  const TOKEN = new RegExp(`^${SPEC.tokenPrefix}[A-Za-z0-9_-]{43}$`, "u");
27
- /** `input` has already passed the v2 envelope checks; `requestId` is the parsed id. */
27
+ /** `input` has already passed the current envelope checks; `requestId` is the parsed id. */
28
28
  export function parseEngineBrokerInferenceRequest(input, requestId, version) {
29
29
  if (input.kind === "request_inference_grant") {
30
30
  exact(input, ["version", "kind", "requestId", "model", "reasoningEffort", "purpose"]);
@@ -132,6 +132,11 @@ export interface EngineBrokerMcpTunnelHandle {
132
132
  deliver(): void;
133
133
  close(): void;
134
134
  }
135
+ /** Whether a turn has a tool call in flight, and when one last started or ended (the turn's registration before any). */
136
+ export type EngineBrokerMcpActivity = Readonly<{
137
+ inFlight: number;
138
+ lastActivityAt: number;
139
+ }>;
135
140
  export declare class EngineBrokerMcpCallLog {
136
141
  private readonly now;
137
142
  private readonly turns;
@@ -155,6 +160,12 @@ export declare class EngineBrokerMcpCallLog {
155
160
  refuse(turnId: string, reason: EngineBrokerMcpRefusalReason): void;
156
161
  /** A POST whose body the facade refused to read (over its own bound), which is a call it cannot name. */
157
162
  undecodable(turnId: string): void;
163
+ /**
164
+ * Tool-call activity only — never the GET tunnel, which stays open for the
165
+ * whole session whether or not anything happens. This is what an idle
166
+ * watchdog reads: a call in flight is work, an open tunnel is not.
167
+ */
168
+ activity(turnId: string): EngineBrokerMcpActivity | undefined;
158
169
  observe(turnId: string): EngineBrokerMcpCallObservation | undefined;
159
170
  }
160
171
  //# sourceMappingURL=engineBrokerMcpCallLog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"engineBrokerMcpCallLog.d.ts","sourceRoot":"","sources":["../../src/runtime/engineBrokerMcpCallLog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,iCAAiC,KAAK,CAAC;AACpD,eAAO,MAAM,8BAA8B,cAAc,CAAC;AAC1D,eAAO,MAAM,gCAAgC,gBAAgB,CAAC;AAC9D,mEAAmE;AACnE,eAAO,MAAM,2BAA2B,QAAsD,CAAC;AAG/F,qGAAqG;AACrG,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAE9C;;;;;;;GAOG;AACH,eAAO,MAAM,iCAAiC,qEAAsE,CAAC;AACrH,MAAM,MAAM,4BAA4B,GAAG,CAAC,OAAO,iCAAiC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC9F,sKAAsK;AACtK,MAAM,MAAM,iCAAiC,GAAG,QAAQ,CAAC,MAAM,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAC,CAAC;AAEvG,MAAM,MAAM,8BAA8B,GAAG,QAAQ,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAC/F,6HAA6H;AAC7H,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AACzF;;;;GAIG;AACH,MAAM,MAAM,gCAAgC,GAAG,QAAQ,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,yBAAyB,EAAE,CAAA;CAAE,CAAC,CAAC;AAC3J;;;;GAIG;AACH,MAAM,MAAM,8BAA8B,GAAG,QAAQ,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,SAAS,8BAA8B,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,gCAAgC,CAAC;IAAC,QAAQ,CAAC,EAAE,iCAAiC,CAAA;CAAE,CAAC,CAAC;AAElQ,kHAAkH;AAClH,MAAM,WAAW,yBAAyB;IAAG,MAAM,IAAI,IAAI,CAAC;IAAC,KAAK,IAAI,IAAI,CAAA;CAAE;AAE5E,qHAAqH;AACrH,MAAM,WAAW,2BAA2B;IAAG,OAAO,IAAI,IAAI,CAAC;IAAC,KAAK,IAAI,IAAI,CAAA;CAAE;AAY/E,qBAAa,sBAAsB;IAErB,OAAO,CAAC,QAAQ,CAAC,GAAG;IADhC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA8B;gBACvB,GAAG,GAAE,MAAM,MAAiB;IAEzD,8FAA8F;IAC9F,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAC1B,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAE3B,qGAAqG;IACrG,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,yBAAyB;IA8B9E;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,2BAA2B;IAavD;;;;OAIG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,4BAA4B,GAAG,IAAI;IAElE,yGAAyG;IACzG,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAEjC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,8BAA8B,GAAG,SAAS;CAmBpE"}
1
+ {"version":3,"file":"engineBrokerMcpCallLog.d.ts","sourceRoot":"","sources":["../../src/runtime/engineBrokerMcpCallLog.ts"],"names":[],"mappings":"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"}
@@ -97,7 +97,7 @@ export class EngineBrokerMcpCallLog {
97
97
  this.now = now;
98
98
  }
99
99
  /** A turn the facade registered. Re-opening an id resets it: a turn id is unique per turn. */
100
- open(turnId) { this.turns.set(turnId, { started: 0, answered: 0, undecoded: 0, live: new Set(), ended: [], tunnelsOpened: 0, tunnelsClosed: 0, tunnelsDelivered: 0, openTunnels: new Set(), refusals: noRefusals() }); }
100
+ open(turnId) { this.turns.set(turnId, { started: 0, answered: 0, undecoded: 0, live: new Set(), ended: [], tunnelsOpened: 0, tunnelsClosed: 0, tunnelsDelivered: 0, openTunnels: new Set(), refusals: noRefusals(), activityAt: this.now() }); }
101
101
  close(turnId) { this.turns.delete(turnId); }
102
102
  /** A POST body the facade is about to relay. Anything that is not a `tools/call` records nothing. */
103
103
  begin(turnId, body) {
@@ -114,6 +114,7 @@ export class EngineBrokerMcpCallLog {
114
114
  const startedAt = this.now();
115
115
  const records = names.map((name) => ({ name, startedAt }));
116
116
  log.started += records.length;
117
+ log.activityAt = startedAt;
117
118
  for (const record of records)
118
119
  log.live.add(record);
119
120
  let settled = false;
@@ -122,6 +123,7 @@ export class EngineBrokerMcpCallLog {
122
123
  if (settled)
123
124
  return;
124
125
  settled = true;
126
+ log.activityAt = this.now();
125
127
  log.answered += records.length;
126
128
  for (const record of records)
127
129
  log.live.delete(record);
@@ -131,6 +133,7 @@ export class EngineBrokerMcpCallLog {
131
133
  return;
132
134
  settled = true;
133
135
  const endedAt = this.now();
136
+ log.activityAt = endedAt;
134
137
  for (const record of records) {
135
138
  log.live.delete(record);
136
139
  record.endedAt = endedAt;
@@ -172,6 +175,15 @@ export class EngineBrokerMcpCallLog {
172
175
  /** A POST whose body the facade refused to read (over its own bound), which is a call it cannot name. */
173
176
  undecodable(turnId) { const log = this.turns.get(turnId); if (log !== undefined)
174
177
  log.undecoded += 1; }
178
+ /**
179
+ * Tool-call activity only — never the GET tunnel, which stays open for the
180
+ * whole session whether or not anything happens. This is what an idle
181
+ * watchdog reads: a call in flight is work, an open tunnel is not.
182
+ */
183
+ activity(turnId) {
184
+ const log = this.turns.get(turnId);
185
+ return log === undefined ? undefined : { inFlight: log.live.size, lastActivityAt: log.activityAt };
186
+ }
175
187
  observe(turnId) {
176
188
  const log = this.turns.get(turnId);
177
189
  if (log === undefined)
@@ -1,5 +1,5 @@
1
1
  import { type ServerResponse } from "node:http";
2
- import { type EngineBrokerMcpCallObservation } from "./engineBrokerMcpCallLog.js";
2
+ import { type EngineBrokerMcpActivity, type EngineBrokerMcpCallObservation } from "./engineBrokerMcpCallLog.js";
3
3
  export declare const ENGINE_BROKER_MCP_FACADE_PORT = 43124;
4
4
  /** Requests one worker round may legitimately make: its `search_tool`, its `use_tool`, and one spare for a retry or a second discovery. */
5
5
  export declare const ENGINE_BROKER_MCP_ROUND_REQUESTS = 3;
@@ -25,10 +25,13 @@ export declare const ENGINE_BROKER_MCP_SESSION_REQUESTS = 5;
25
25
  * two multiplicands above each say what they are.
26
26
  */
27
27
  export declare const ENGINE_BROKER_MCP_CAPABILITY_REQUESTS: number;
28
+ /** Fallback only: a brokered turn passes `engineBrokerCapabilityTtlMs(limits.timeoutMs)`. */
28
29
  export declare const ENGINE_BROKER_MCP_CAPABILITY_TTL_MS: number;
29
30
  export declare function startEngineBrokerMcpFacade(): Promise<{
30
- register(agentId: string, turnId: string, endpoint: string): string;
31
+ register(agentId: string, turnId: string, endpoint: string, ttlMs?: number): string;
31
32
  revoke(turnId: string): void;
33
+ /** Tool-call activity for the broker's idle watchdog; `undefined` for a turn never registered. */
34
+ activity: (turnId: string) => EngineBrokerMcpActivity | undefined;
32
35
  /**
33
36
  * What the facade saw of this turn's tool calls, GET tunnels and refusals,
34
37
  * or `undefined` for a turn
@@ -1 +1 @@
1
- {"version":3,"file":"engineBrokerMcpFacade.d.ts","sourceRoot":"","sources":["../../src/runtime/engineBrokerMcpFacade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AAIpF,OAAO,EAA0B,KAAK,8BAA8B,EAAuE,MAAM,6BAA6B,CAAC;AA4C/K,eAAO,MAAM,6BAA6B,QAAS,CAAC;AAEpD,2IAA2I;AAC3I,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAClD,uJAAuJ;AACvJ,eAAO,MAAM,kCAAkC,IAAI,CAAC;AACpD;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,qCAAqC,QAAgG,CAAC;AACnJ,eAAO,MAAM,mCAAmC,QAAc,CAAC;AAI/D,wBAAsB,0BAA0B;sBA0G1B,MAAM,UAAU,MAAM,YAAY,MAAM,GAAG,MAAM;mBAQpD,MAAM,GAAG,IAAI;IAM5B;;;;OAIG;sBACe,MAAM,KAAG,8BAA8B,GAAG,SAAS;iBACpD,OAAO,CAAC,IAAI,CAAC;GAUjC;AAoED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAehG"}
1
+ {"version":3,"file":"engineBrokerMcpFacade.d.ts","sourceRoot":"","sources":["../../src/runtime/engineBrokerMcpFacade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AAIpF,OAAO,EAA0B,KAAK,uBAAuB,EAAE,KAAK,8BAA8B,EAAuE,MAAM,6BAA6B,CAAC;AA4C7M,eAAO,MAAM,6BAA6B,QAAS,CAAC;AAEpD,2IAA2I;AAC3I,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAClD,uJAAuJ;AACvJ,eAAO,MAAM,kCAAkC,IAAI,CAAC;AACpD;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,qCAAqC,QAAgG,CAAC;AACnJ,6FAA6F;AAC7F,eAAO,MAAM,mCAAmC,QAAc,CAAC;AAI/D,wBAAsB,0BAA0B;sBA0G1B,MAAM,UAAU,MAAM,YAAY,MAAM,UAAS,MAAM,GAAyC,MAAM;mBAQzG,MAAM,GAAG,IAAI;IAM5B,kGAAkG;uBAC/E,MAAM,KAAG,uBAAuB,GAAG,SAAS;IAC/D;;;;OAIG;sBACe,MAAM,KAAG,8BAA8B,GAAG,SAAS;iBACpD,OAAO,CAAC,IAAI,CAAC;GAUjC;AAoED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAehG"}
@@ -70,6 +70,7 @@ export const ENGINE_BROKER_MCP_SESSION_REQUESTS = 5;
70
70
  * two multiplicands above each say what they are.
71
71
  */
72
72
  export const ENGINE_BROKER_MCP_CAPABILITY_REQUESTS = GROK_WORKER_MAX_TURNS * ENGINE_BROKER_MCP_ROUND_REQUESTS + ENGINE_BROKER_MCP_SESSION_REQUESTS;
73
+ /** Fallback only: a brokered turn passes `engineBrokerCapabilityTtlMs(limits.timeoutMs)`. */
73
74
  export const ENGINE_BROKER_MCP_CAPABILITY_TTL_MS = 15 * 60_000;
74
75
  class FacadeRefusal extends Error {
75
76
  }
@@ -188,7 +189,7 @@ export async function startEngineBrokerMcpFacade() {
188
189
  server.listen(ENGINE_BROKER_MCP_FACADE_PORT, "127.0.0.1", () => { server.off("error", reject); resolve(); });
189
190
  });
190
191
  return {
191
- register(agentId, turnId, endpoint) {
192
+ register(agentId, turnId, endpoint, ttlMs = ENGINE_BROKER_MCP_CAPABILITY_TTL_MS) {
192
193
  const url = new URL(endpoint);
193
194
  if (url.protocol !== "http:" || url.hostname !== "127.0.0.1" || url.pathname !== "/mcp")
194
195
  throw new TypeError("invalid scoped MCP mount");
@@ -196,7 +197,7 @@ export async function startEngineBrokerMcpFacade() {
196
197
  throw new Error("MCP turn already registered");
197
198
  targets.set(turnId, url.href);
198
199
  calls.open(turnId);
199
- return capabilities.issue(agentId, turnId, ENGINE_BROKER_MCP_CAPABILITY_TTL_MS, ENGINE_BROKER_MCP_CAPABILITY_REQUESTS);
200
+ return capabilities.issue(agentId, turnId, ttlMs, ENGINE_BROKER_MCP_CAPABILITY_REQUESTS);
200
201
  },
201
202
  revoke(turnId) {
202
203
  targets.delete(turnId);
@@ -204,6 +205,8 @@ export async function startEngineBrokerMcpFacade() {
204
205
  endTurnStreams(turnId);
205
206
  calls.close(turnId);
206
207
  },
208
+ /** Tool-call activity for the broker's idle watchdog; `undefined` for a turn never registered. */
209
+ activity: (turnId) => calls.activity(turnId),
207
210
  /**
208
211
  * What the facade saw of this turn's tool calls, GET tunnels and refusals,
209
212
  * or `undefined` for a turn
@@ -1,4 +1,4 @@
1
- import { spawn } from "node:child_process";
1
+ import { spawnRealTime as spawn } from "./taskClockProcess.js";
2
2
  import { redactCredentialText } from "../core/credentialRedaction.js";
3
3
  import { boundedDiagnosticWindow, CLI_ENGINE_MAX_DIAGNOSTIC_BYTES } from "../pi/cliChildOutput.js";
4
4
  import { terminateChild, trackCliChild } from "../pi/cliProcess.js";
@@ -19,7 +19,7 @@ export class NativeBrokerTurnFailure extends Error {
19
19
  }
20
20
  }
21
21
  export async function runNativeBrokerTurn(executable, input, signal) {
22
- const frame = encodeNativeBrokerTurn(input), child = trackCliChild(spawn(executable, ["--client"], { detached: process.platform !== "win32", env: { LANG: "C", LC_ALL: "C", TZ: "UTC" }, stdio: ["pipe", "pipe", "ignore"], ...(signal === undefined ? {} : { signal }) }));
22
+ const frame = encodeNativeBrokerTurn(input), child = trackCliChild(spawn(executable, ["--client"], { detached: process.platform !== "win32", env: { LANG: "C", LC_ALL: "C", TZ: "UTC", DAIMON_BROKER_PID: String(process.pid) }, stdio: ["pipe", "pipe", "ignore"], ...(signal === undefined ? {} : { signal }) }));
23
23
  const chunks = [];
24
24
  let bytes = 0;
25
25
  child.stdout.on("data", (chunk) => { bytes += chunk.length; if (bytes <= ENGINE_BROKER_NATIVE_RESULT_BYTES + MAX_OUTPUT)
@@ -1,17 +1,27 @@
1
+ import { type BrokerClockObservation } from "./grokBrokerTaskClock.js";
1
2
  import { type EngineBrokerInferenceRequest, type EngineBrokerInferenceResponse } from "./engineBrokerInferenceProtocol.js";
2
3
  import { type EngineBrokerMcpCallObservation } from "./engineBrokerMcpCallLog.js";
3
4
  import { type EngineBrokerTurnAccounting, type EngineBrokerTurnLimitOverrides } from "./engineBrokerTurnAccounting.js";
4
5
  /**
5
- * Control protocol v2. Both ends ship in the same Daimon package and image
6
- * (organization runtime client, broker service), so the wire moved to v2 in
7
- * one step: v1 frames are refused. v1 survives only as a *durable record*
8
- * shape, which {@link parseEngineBrokerV1TerminalResponse} still reads so
9
- * turns sealed before the upgrade keep replaying.
6
+ * Control protocol v4 adds slot routing and reset. Both ends ship in the same
7
+ * package; v1/v2/v3 frames are refused on the wire. Durable terminal adapters
8
+ * retain those record formats. A missing slot is allowed only for a unique
9
+ * agent registration (unclocked production compatibility).
10
10
  */
11
- declare const VERSION: "noopolis.daimon.engine-broker.v2";
12
- export declare const ENGINE_BROKER_VERSION: "noopolis.daimon.engine-broker.v2";
11
+ declare const VERSION: "noopolis.daimon.engine-broker.v4";
12
+ export declare const ENGINE_BROKER_VERSION: "noopolis.daimon.engine-broker.v4";
13
13
  declare const V1: "noopolis.daimon.engine-broker.v1";
14
14
  export declare const ENGINE_BROKER_MAX_FRAME_BYTES = 1048576;
15
+ /** Version refusal is independent of the incompatible operation's schema. */
16
+ export type EngineBrokerProtocolDiagnostic = Readonly<{
17
+ kind: "protocol_mismatch";
18
+ receivedVersion: string;
19
+ expectedVersion: string;
20
+ }>;
21
+ export declare class EngineBrokerProtocolMismatch extends TypeError {
22
+ readonly diagnostic: EngineBrokerProtocolDiagnostic;
23
+ constructor(received: unknown, expected?: unknown);
24
+ }
15
25
  export type EngineBrokerRequest = Readonly<{
16
26
  version: typeof VERSION;
17
27
  kind: "health";
@@ -21,16 +31,23 @@ export type EngineBrokerRequest = Readonly<{
21
31
  kind: "start_turn";
22
32
  requestId: string;
23
33
  turnId: string;
34
+ slot?: number;
24
35
  agentId: string;
25
36
  wakeId: string;
26
37
  prompt: string;
27
38
  mcpEndpoint: string;
28
39
  limits?: EngineBrokerTurnLimitOverrides;
40
+ processClock?: string;
29
41
  }> | Readonly<{
30
42
  version: typeof VERSION;
31
43
  kind: "cancel_turn";
32
44
  requestId: string;
33
45
  turnId: string;
46
+ }> | Readonly<{
47
+ version: typeof VERSION;
48
+ kind: "reset_slot";
49
+ requestId: string;
50
+ slot: number;
34
51
  }> | EngineBrokerInferenceRequest;
35
52
  /**
36
53
  * `reason` is the worker's own last words (`engineBrokerNativeClient.ts`),
@@ -52,6 +69,11 @@ export interface EngineBrokerFailureDiagnostic {
52
69
  startTicks: string;
53
70
  }
54
71
  export declare const ENGINE_BROKER_MAX_DIAGNOSTIC_REASON_BYTES = 768;
72
+ /** Operational state after sealing; never raw filesystem errors or worker text. */
73
+ export declare const ENGINE_BROKER_TASK_CLOCK_RESET_FAILED = "task clock reset failed; slot fenced until restart";
74
+ export type EngineBrokerCleanupObservation = Readonly<{
75
+ cleanupDiagnostic?: typeof ENGINE_BROKER_TASK_CLOCK_RESET_FAILED;
76
+ }>;
55
77
  export type EngineBrokerResponse = Readonly<{
56
78
  version: typeof VERSION;
57
79
  kind: "ready";
@@ -77,7 +99,7 @@ export type EngineBrokerResponse = Readonly<{
77
99
  workerPid: number;
78
100
  workerUid: number;
79
101
  workerStartTime: string;
80
- }> & EngineBrokerTurnAccounting) | (Readonly<{
102
+ }> & EngineBrokerTurnAccounting & BrokerClockObservation & EngineBrokerCleanupObservation) | (Readonly<{
81
103
  version: typeof VERSION;
82
104
  kind: "failed";
83
105
  requestId: string;
@@ -85,7 +107,12 @@ export type EngineBrokerResponse = Readonly<{
85
107
  code: EngineBrokerFailureCode;
86
108
  diagnostic?: EngineBrokerFailureDiagnostic;
87
109
  mcpCalls?: EngineBrokerMcpCallObservation;
88
- }> & EngineBrokerTurnAccounting) | EngineBrokerInferenceResponse;
110
+ }> & EngineBrokerTurnAccounting & BrokerClockObservation & EngineBrokerCleanupObservation) | Readonly<{
111
+ version: typeof VERSION;
112
+ kind: "slot_reset";
113
+ requestId: string;
114
+ slot: number;
115
+ }> | EngineBrokerInferenceResponse;
89
116
  /**
90
117
  * The one name for a fenced credential realm. The turn's failure code, the
91
118
  * proxy's refusal reason on a worker request, and the grant path's 401 body
@@ -125,7 +152,12 @@ export declare function parseEngineBrokerResponse(value: unknown): EngineBrokerR
125
152
  * the wire.
126
153
  */
127
154
  export declare function parseEngineBrokerV1TerminalResponse(value: unknown): EngineBrokerV1TerminalResponse;
128
- export declare function encodeEngineBrokerFrame(value: EngineBrokerRequest | EngineBrokerResponse): Buffer;
155
+ export declare function parseEngineBrokerSlot(value: unknown): number;
156
+ /** v3 survives only in durable records. */
157
+ export declare function parseEngineBrokerV3TerminalResponse(value: unknown): EngineBrokerTerminalResponse;
158
+ /** v2 survives only in durable records. The wire always refuses it. */
159
+ export declare function parseEngineBrokerV2TerminalResponse(value: unknown): EngineBrokerTerminalResponse;
160
+ export declare function encodeEngineBrokerFrame(value: EngineBrokerRequest | EngineBrokerResponse | EngineBrokerProtocolDiagnostic): Buffer;
129
161
  export declare class EngineBrokerFrameDecoder {
130
162
  private buffered;
131
163
  push(chunk: Uint8Array): unknown[];
@@ -1 +1 @@
1
- {"version":3,"file":"engineBrokerProtocol.d.ts","sourceRoot":"","sources":["../../src/runtime/engineBrokerProtocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engineBrokerProtocol.d.ts","sourceRoot":"","sources":["../../src/runtime/engineBrokerProtocol.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,33 @@
1
+ import { parseBrokerProcessClock } from "./grokBrokerTaskClock.js";
2
+ import { parseGrokBrokerProviderClockObservation } from "./grokBrokerProviderClock.js";
1
3
  import { isEngineBrokerInferenceRequestKind, isEngineBrokerInferenceResponseKind, parseEngineBrokerInferenceRequest, parseEngineBrokerInferenceResponse } from "./engineBrokerInferenceProtocol.js";
2
4
  import { ENGINE_BROKER_MCP_CALL_NAME, ENGINE_BROKER_MCP_OUTSTANDING_MAX, ENGINE_BROKER_MCP_REFUSAL_REASONS, ENGINE_BROKER_MCP_TUNNEL_MAX } from "./engineBrokerMcpCallLog.js";
3
5
  import { parseEngineBrokerTurnAccounting, parseEngineBrokerTurnLimitOverrides } from "./engineBrokerTurnAccounting.js";
4
6
  /**
5
- * Control protocol v2. Both ends ship in the same Daimon package and image
6
- * (organization runtime client, broker service), so the wire moved to v2 in
7
- * one step: v1 frames are refused. v1 survives only as a *durable record*
8
- * shape, which {@link parseEngineBrokerV1TerminalResponse} still reads so
9
- * turns sealed before the upgrade keep replaying.
7
+ * Control protocol v4 adds slot routing and reset. Both ends ship in the same
8
+ * package; v1/v2/v3 frames are refused on the wire. Durable terminal adapters
9
+ * retain those record formats. A missing slot is allowed only for a unique
10
+ * agent registration (unclocked production compatibility).
10
11
  */
11
- const VERSION = "noopolis.daimon.engine-broker.v2";
12
+ const VERSION = "noopolis.daimon.engine-broker.v4";
12
13
  export const ENGINE_BROKER_VERSION = VERSION;
13
14
  const V1 = "noopolis.daimon.engine-broker.v1";
14
15
  export const ENGINE_BROKER_MAX_FRAME_BYTES = 1_048_576;
16
+ const PROTOCOL_NAME = /^noopolis\.daimon\.engine-broker\.v[0-9]{1,6}$/u;
17
+ const boundedProtocol = (value) => typeof value === "string" && PROTOCOL_NAME.test(value) ? value : "<invalid>";
18
+ export class EngineBrokerProtocolMismatch extends TypeError {
19
+ diagnostic;
20
+ constructor(received, expected = VERSION) {
21
+ const receivedVersion = boundedProtocol(received);
22
+ const expectedVersion = boundedProtocol(expected);
23
+ super(`invalid broker frame: protocol version mismatch (received ${receivedVersion}; expected ${expectedVersion})`);
24
+ this.diagnostic = { kind: "protocol_mismatch", receivedVersion, expectedVersion };
25
+ }
26
+ }
15
27
  const ID = /^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/u;
16
28
  export const ENGINE_BROKER_MAX_DIAGNOSTIC_REASON_BYTES = 768;
29
+ /** Operational state after sealing; never raw filesystem errors or worker text. */
30
+ export const ENGINE_BROKER_TASK_CLOCK_RESET_FAILED = "task clock reset failed; slot fenced until restart";
17
31
  /**
18
32
  * The one name for a fenced credential realm. The turn's failure code, the
19
33
  * proxy's refusal reason on a worker request, and the grant path's 401 body
@@ -39,8 +53,11 @@ const text = (value, maxBytes) => {
39
53
  };
40
54
  const id = (value) => { const result = text(value, 128); if (!ID.test(result))
41
55
  throw new TypeError("invalid broker frame"); return result; };
42
- const version = (value) => { if (value !== VERSION)
43
- throw new TypeError("invalid broker frame"); return VERSION; };
56
+ const version = (value) => {
57
+ if (value !== VERSION)
58
+ throw new EngineBrokerProtocolMismatch(value);
59
+ return VERSION;
60
+ };
44
61
  export function parseEngineBrokerRequest(value) {
45
62
  const input = record(value);
46
63
  version(input.version);
@@ -50,7 +67,16 @@ export function parseEngineBrokerRequest(value) {
50
67
  }
51
68
  if (input.kind === "start_turn") {
52
69
  const fields = ["version", "kind", "requestId", "turnId", "agentId", "wakeId", "prompt", "mcpEndpoint"];
53
- exact(input, input.limits === undefined ? fields : [...fields, "limits"]);
70
+ exact(input, [...fields, ...(input.slot === undefined ? [] : ["slot"]), ...(input.limits === undefined ? [] : ["limits"]), ...(input.processClock === undefined ? [] : ["processClock"])]);
71
+ let processClock;
72
+ if (input.processClock !== undefined) {
73
+ try {
74
+ processClock = parseBrokerProcessClock(input.processClock);
75
+ }
76
+ catch {
77
+ throw new TypeError("invalid broker frame");
78
+ }
79
+ }
54
80
  const mcpEndpoint = text(input.mcpEndpoint, 2048);
55
81
  const url = new URL(mcpEndpoint);
56
82
  if (url.protocol !== "http:" || url.hostname !== "127.0.0.1" || url.pathname !== "/mcp")
@@ -64,7 +90,11 @@ export function parseEngineBrokerRequest(value) {
64
90
  throw new TypeError("invalid broker frame");
65
91
  }
66
92
  }
67
- return { version: VERSION, kind: "start_turn", requestId: id(input.requestId), turnId: id(input.turnId), agentId: id(input.agentId), wakeId: id(input.wakeId), prompt: text(input.prompt, 65_536), mcpEndpoint, ...(limits === undefined ? {} : { limits }) };
93
+ return { version: VERSION, kind: "start_turn", ...(input.slot === undefined ? {} : { slot: parseEngineBrokerSlot(input.slot) }), requestId: id(input.requestId), turnId: id(input.turnId), agentId: id(input.agentId), wakeId: id(input.wakeId), prompt: text(input.prompt, 65_536), mcpEndpoint, ...(limits === undefined ? {} : { limits }), ...(processClock === undefined ? {} : { processClock }) };
94
+ }
95
+ if (input.kind === "reset_slot") {
96
+ exact(input, ["version", "kind", "requestId", "slot"]);
97
+ return { version: VERSION, kind: "reset_slot", requestId: id(input.requestId), slot: parseEngineBrokerSlot(input.slot) };
68
98
  }
69
99
  if (input.kind === "cancel_turn") {
70
100
  exact(input, ["version", "kind", "requestId", "turnId"]);
@@ -76,6 +106,14 @@ export function parseEngineBrokerRequest(value) {
76
106
  }
77
107
  export function parseEngineBrokerResponse(value) {
78
108
  const input = record(value);
109
+ if (input.kind === "protocol_mismatch") {
110
+ exact(input, ["kind", "receivedVersion", "expectedVersion"]);
111
+ for (const field of [input.receivedVersion, input.expectedVersion]) {
112
+ if (field !== "<invalid>" && boundedProtocol(field) !== field)
113
+ throw new TypeError("invalid broker frame");
114
+ }
115
+ throw new EngineBrokerProtocolMismatch(input.receivedVersion, input.expectedVersion);
116
+ }
79
117
  version(input.version);
80
118
  if (input.kind === "ready") {
81
119
  exact(input, ["version", "kind", "requestId", "brokerUid", "providerProxyPort", "mcpFacadePort", "registrations", "credentialStale", "realmLease", "workerIsolation"]);
@@ -83,6 +121,10 @@ export function parseEngineBrokerResponse(value) {
83
121
  throw new TypeError("invalid broker frame");
84
122
  return { version: VERSION, kind: "ready", requestId: id(input.requestId), brokerUid: 2100, providerProxyPort: 43123, mcpFacadePort: 43124, registrations: input.registrations, credentialStale: false, realmLease: true, workerIsolation: true };
85
123
  }
124
+ if (input.kind === "slot_reset") {
125
+ exact(input, ["version", "kind", "requestId", "slot"]);
126
+ return { version: VERSION, kind: "slot_reset", requestId: id(input.requestId), slot: parseEngineBrokerSlot(input.slot) };
127
+ }
86
128
  if (input.kind === "accepted") {
87
129
  exact(input, ["version", "kind", "requestId", "turnId"]);
88
130
  return { version: VERSION, kind: "accepted", requestId: id(input.requestId), turnId: id(input.turnId) };
@@ -104,21 +146,62 @@ export function parseEngineBrokerV1TerminalResponse(value) {
104
146
  throw new TypeError("invalid broker frame");
105
147
  return parseTerminal(input, V1);
106
148
  }
149
+ export function parseEngineBrokerSlot(value) {
150
+ if (!Number.isSafeInteger(value) || value < 0)
151
+ throw new TypeError("invalid broker slot");
152
+ return value;
153
+ }
154
+ /** v3 survives only in durable records. */
155
+ export function parseEngineBrokerV3TerminalResponse(value) {
156
+ const input = record(value);
157
+ if (input.version !== "noopolis.daimon.engine-broker.v3" || (input.kind !== "completed" && input.kind !== "failed"))
158
+ throw new TypeError("invalid broker frame");
159
+ return parseTerminal({ ...input, version: VERSION }, VERSION);
160
+ }
161
+ /** v2 survives only in durable records. The wire always refuses it. */
162
+ export function parseEngineBrokerV2TerminalResponse(value) {
163
+ const input = record(value);
164
+ if (input.version !== "noopolis.daimon.engine-broker.v2" ||
165
+ (input.kind !== "completed" && input.kind !== "failed") ||
166
+ Object.hasOwn(input, "shellClock") || Object.hasOwn(input, "providerClock") ||
167
+ Object.hasOwn(input, "cleanupDiagnostic")) {
168
+ throw new TypeError("invalid broker frame");
169
+ }
170
+ return parseTerminal({ ...input, version: VERSION }, VERSION);
171
+ }
107
172
  function parseTerminal(input, expected) {
108
173
  const accounting = expected === VERSION ? ACCOUNTING : [];
174
+ const shellClock = input.shellClock;
175
+ if (shellClock !== undefined && (expected !== VERSION || !["task", "real", "gap"].includes(shellClock)))
176
+ throw new TypeError("invalid broker frame");
177
+ if (input.providerClock !== undefined && expected !== VERSION)
178
+ throw new TypeError("invalid broker frame");
179
+ const cleanupDiagnostic = input.cleanupDiagnostic;
180
+ if (cleanupDiagnostic !== undefined &&
181
+ (expected !== VERSION || cleanupDiagnostic !== ENGINE_BROKER_TASK_CLOCK_RESET_FAILED)) {
182
+ throw new TypeError("invalid broker frame");
183
+ }
184
+ const observation = {
185
+ ...(cleanupDiagnostic === undefined ? {} : { cleanupDiagnostic }),
186
+ ...(shellClock === undefined ? {} : { shellClock: shellClock }),
187
+ ...(input.providerClock === undefined ? {} : {
188
+ providerClock: parseGrokBrokerProviderClockObservation(input.providerClock)
189
+ })
190
+ };
191
+ const clockFields = Object.keys(observation);
109
192
  if (input.kind === "completed") {
110
- exact(input, ["version", "kind", "requestId", "turnId", "text", "workerPid", "workerUid", "workerStartTime", ...accounting]);
193
+ exact(input, ["version", "kind", "requestId", "turnId", "text", "workerPid", "workerUid", "workerStartTime", ...accounting, ...clockFields]);
111
194
  if (!Number.isSafeInteger(input.workerPid) || input.workerPid < 1 || !Number.isSafeInteger(input.workerUid) || input.workerUid < 1)
112
195
  throw new TypeError("invalid broker frame");
113
196
  const base = { kind: "completed", requestId: id(input.requestId), turnId: id(input.turnId), text: text(input.text, 262_144), workerPid: input.workerPid, workerUid: input.workerUid, workerStartTime: id(input.workerStartTime) };
114
- return expected === VERSION ? { version: VERSION, ...base, ...parseEngineBrokerTurnAccounting(input, "completed") } : { version: V1, ...base };
197
+ return expected === VERSION ? { version: VERSION, ...base, ...observation, ...parseEngineBrokerTurnAccounting(input, "completed") } : { version: V1, ...base };
115
198
  }
116
199
  // `mcpCalls` is the broker's own observation of the worker's tool calls
117
200
  // (`engineBrokerMcpCallLog.ts`), additive in v2 and never part of a v1
118
201
  // record, which predates the instrument entirely.
119
202
  if (expected === V1 && input.mcpCalls !== undefined)
120
203
  throw new TypeError("invalid broker frame");
121
- const fields = ["version", "kind", "requestId", "turnId", "code", ...accounting, ...(input.diagnostic === undefined ? [] : ["diagnostic"]), ...(input.mcpCalls === undefined ? [] : ["mcpCalls"])];
204
+ const fields = ["version", "kind", "requestId", "turnId", "code", ...accounting, ...clockFields, ...(input.diagnostic === undefined ? [] : ["diagnostic"]), ...(input.mcpCalls === undefined ? [] : ["mcpCalls"])];
122
205
  exact(input, fields);
123
206
  const codes = expected === VERSION ? ENGINE_BROKER_FAILURE_CODES : ENGINE_BROKER_FAILURE_CODES.filter((code) => code !== "limit_exceeded");
124
207
  if (!codes.includes(input.code))
@@ -142,7 +225,7 @@ function parseTerminal(input, expected) {
142
225
  if ((input.code === "limit_exceeded") !== (accountingValue.limitReason !== "none"))
143
226
  throw new TypeError("invalid broker frame");
144
227
  const mcpCalls = input.mcpCalls === undefined ? undefined : parseMcpCallObservation(input.mcpCalls);
145
- return { version: VERSION, ...base, ...(mcpCalls === undefined ? {} : { mcpCalls }), ...accountingValue };
228
+ return { version: VERSION, ...base, ...observation, ...(mcpCalls === undefined ? {} : { mcpCalls }), ...accountingValue };
146
229
  }
147
230
  /**
148
231
  * Names and timings, bounded, and internally consistent: a report can never
@@ -1 +1 @@
1
- {"version":3,"file":"engineBrokerSealLedger.d.ts","sourceRoot":"","sources":["../../src/runtime/engineBrokerSealLedger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAG9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,eAAO,MAAM,wBAAwB,EAAG,8BAAuC,CAAC;AAEhF,iFAAiF;AACjF,eAAO,MAAM,gBAAgB;;;;;;CAMnB,CAAC;AAEX,qHAAqH;AACrH,eAAO,MAAM,wBAAwB,OAAQ,CAAC;AAE9C,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAIxF;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,GAAI,UAAU,4BAA4B,EAAE,OAAO,mBAAmB,KAAG,MAyDxG,CAAC"}
1
+ {"version":3,"file":"engineBrokerSealLedger.d.ts","sourceRoot":"","sources":["../../src/runtime/engineBrokerSealLedger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAG9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,eAAO,MAAM,wBAAwB,EAAG,8BAAuC,CAAC;AAEhF,iFAAiF;AACjF,eAAO,MAAM,gBAAgB;;;;;;CAMnB,CAAC;AAEX,qHAAqH;AACrH,eAAO,MAAM,wBAAwB,OAAQ,CAAC;AAE9C,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAIxF;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,GAAI,UAAU,4BAA4B,EAAE,OAAO,mBAAmB,KAAG,MAkExG,CAAC"}
@@ -74,6 +74,15 @@ export const renderBrokerTurnSealLine = (terminal, entry) => `${JSON.stringify({
74
74
  requests: terminal.requests,
75
75
  model: terminal.model,
76
76
  limit_reason: terminal.limitReason,
77
+ ...(terminal.shellClock === undefined ? {} : { shell_clock: terminal.shellClock }),
78
+ ...(terminal.providerClock === undefined ? {} : { provider_clock: {
79
+ requests: terminal.providerClock.requests,
80
+ linesRewritten: terminal.providerClock.linesRewritten,
81
+ requestsWithoutDateLine: terminal.providerClock.requestsWithoutDateLine,
82
+ ...(terminal.providerClock.linesIgnored === undefined ? {} : { linesIgnored: terminal.providerClock.linesIgnored }),
83
+ injectedDate: terminal.providerClock.injectedDate,
84
+ taskDate: terminal.providerClock.taskDate
85
+ } }),
77
86
  ...(terminal.kind === "failed" ? { code: terminal.code } : {}),
78
87
  ...(terminal.kind === "failed" && terminal.diagnostic !== undefined
79
88
  ? {
@@ -1,12 +1,15 @@
1
+ import { type BrokerClockObservation } from "./grokBrokerTaskClock.js";
2
+ import { type Socket } from "node:net";
3
+ import { type EngineBrokerCleanupObservation } from "./engineBrokerProtocol.js";
1
4
  import type { EngineBrokerTurnAccounting, EngineBrokerTurnLimitOverrides } from "./engineBrokerTurnAccounting.js";
2
5
  import { type GrokInferenceGrantIssued, type GrokInferenceGrantRequest } from "./grokInferenceGrants.js";
3
6
  export interface EngineBrokerServiceEngine {
4
- turn(agentId: string, wakeId: string, prompt: string, mcpEndpoint: string, signal?: AbortSignal, limits?: EngineBrokerTurnLimitOverrides): Promise<Readonly<{
7
+ turn(agentId: string, wakeId: string, prompt: string, mcpEndpoint: string, signal?: AbortSignal, limits?: EngineBrokerTurnLimitOverrides, processClock?: string, slot?: number): Promise<Readonly<{
5
8
  text: string;
6
9
  workerPid: number;
7
10
  workerUid: number;
8
11
  workerStartTime: string;
9
- }> & EngineBrokerTurnAccounting>;
12
+ }> & EngineBrokerTurnAccounting & BrokerClockObservation & EngineBrokerCleanupObservation>;
10
13
  readiness(): Readonly<{
11
14
  providerProxyPort: number;
12
15
  mcpFacadePort: number;
@@ -16,6 +19,7 @@ export interface EngineBrokerServiceEngine {
16
19
  workerIsolation: boolean;
17
20
  }>;
18
21
  close(): Promise<void>;
22
+ resetSlot?(slot: number): Promise<void>;
19
23
  /** Evaluator inference grants; an engine without them refuses every grant request as `unavailable`. Refusals throw {@link GrokInferenceGrantRefused}. */
20
24
  requestInferenceGrant?(request: GrokInferenceGrantRequest): GrokInferenceGrantIssued;
21
25
  releaseInferenceGrant?(grantId: string): boolean;
@@ -34,4 +38,6 @@ export declare function startEngineBrokerServiceWithIdentity(broker: EngineBroke
34
38
  socketPath: string;
35
39
  };
36
40
  }>;
41
+ /** @internal The production connection handler, also exercised over an in-memory transport. */
42
+ export declare function serveEngineBrokerConnection(socket: Socket, broker: EngineBrokerServiceEngine, active?: Map<string, AbortController>): void;
37
43
  //# sourceMappingURL=engineBrokerService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"engineBrokerService.d.ts","sourceRoot":"","sources":["../../src/runtime/engineBrokerService.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,0BAA0B,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AAGlH,OAAO,EAA6B,KAAK,wBAAwB,EAAE,KAAK,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACpI,MAAM,WAAW,yBAAyB;IACxC,IAAI,CAAC,OAAO,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,WAAW,EAAC,MAAM,EAAC,MAAM,CAAC,EAAC,WAAW,EAAC,MAAM,CAAC,EAAC,8BAA8B,GAAE,OAAO,CAAC,QAAQ,CAAC;QAAC,IAAI,EAAC,MAAM,CAAC;QAAA,SAAS,EAAC,MAAM,CAAC;QAAA,SAAS,EAAC,MAAM,CAAC;QAAA,eAAe,EAAC,MAAM,CAAA;KAAC,CAAC,GAAC,0BAA0B,CAAC,CAAC;IACpP,SAAS,IAAG,QAAQ,CAAC;QAAC,iBAAiB,EAAC,MAAM,CAAC;QAAA,aAAa,EAAC,MAAM,CAAC;QAAA,aAAa,EAAC,MAAM,CAAC;QAAA,eAAe,EAAC,OAAO,CAAC;QAAA,UAAU,EAAC,OAAO,CAAC;QAAA,eAAe,EAAC,OAAO,CAAA;KAAC,CAAC,CAAC;IAC9J,KAAK,IAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,yJAAyJ;IACzJ,qBAAqB,CAAC,CAAC,OAAO,EAAC,yBAAyB,GAAE,wBAAwB,CAAC;IACnF,qBAAqB,CAAC,CAAC,OAAO,EAAC,MAAM,GAAE,OAAO,CAAC;CAChD;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAC,yBAAyB,EAAC,UAAU,SAAyC;;;;;;GAE5H;AACD,wBAAsB,oCAAoC,CAAC,MAAM,EAAC,yBAAyB,EAAC,UAAU,EAAC,MAAM,EAAC,WAAW,EAAC,MAAM;;;;;;GAK/H"}
1
+ {"version":3,"file":"engineBrokerService.d.ts","sourceRoot":"","sources":["../../src/runtime/engineBrokerService.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAE/F,OAAO,EAA6B,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAEqB,KAAK,8BAA8B,EAC9D,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,0BAA0B,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AAGlH,OAAO,EAA6B,KAAK,wBAAwB,EAAE,KAAK,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACpI,MAAM,WAAW,yBAAyB;IACxC,IAAI,CACF,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EACpE,MAAM,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,8BAA8B,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAClG,OAAO,CAAC,QAAQ,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;KAC7E,CAAC,GAAG,0BAA0B,GAAG,sBAAsB,GAAG,8BAA8B,CAAC,CAAC;IAC3F,SAAS,IAAG,QAAQ,CAAC;QAAC,iBAAiB,EAAC,MAAM,CAAC;QAAA,aAAa,EAAC,MAAM,CAAC;QAAA,aAAa,EAAC,MAAM,CAAC;QAAA,eAAe,EAAC,OAAO,CAAC;QAAA,UAAU,EAAC,OAAO,CAAC;QAAA,eAAe,EAAC,OAAO,CAAA;KAAC,CAAC,CAAC;IAC9J,KAAK,IAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,SAAS,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,yJAAyJ;IACzJ,qBAAqB,CAAC,CAAC,OAAO,EAAC,yBAAyB,GAAE,wBAAwB,CAAC;IACnF,qBAAqB,CAAC,CAAC,OAAO,EAAC,MAAM,GAAE,OAAO,CAAC;CAChD;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAC,yBAAyB,EAAC,UAAU,SAAyC;;;;;;GAE5H;AACD,wBAAsB,oCAAoC,CAAC,MAAM,EAAC,yBAAyB,EAAC,UAAU,EAAC,MAAM,EAAC,WAAW,EAAC,MAAM;;;;;;GAU/H;AAoBD,+FAA+F;AAC/F,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,yBAAyB,EAAE,MAAM,+BAAqC,GAC7F,IAAI,CA0EN"}