@smthrs/gateway 0.35.0 → 1.0.0-rc.3

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 (605) hide show
  1. package/CHANGELOG.md +198 -0
  2. package/LICENSE +1 -1
  3. package/README.md +92 -0
  4. package/dist/cjs/Diagnosis.d.ts +275 -0
  5. package/dist/cjs/Diagnosis.d.ts.map +1 -0
  6. package/dist/cjs/Diagnosis.js +476 -0
  7. package/dist/cjs/Diagnosis.js.map +7 -0
  8. package/dist/cjs/EngineTrace.d.ts +76 -0
  9. package/dist/cjs/EngineTrace.d.ts.map +1 -0
  10. package/dist/cjs/EngineTrace.js +501 -0
  11. package/dist/cjs/EngineTrace.js.map +7 -0
  12. package/dist/cjs/GatewayError.d.ts +54 -0
  13. package/dist/cjs/GatewayError.d.ts.map +1 -0
  14. package/dist/cjs/GatewayError.js +51 -0
  15. package/dist/cjs/GatewayError.js.map +7 -0
  16. package/dist/cjs/GatewayProjection.d.ts +480 -0
  17. package/dist/cjs/GatewayProjection.d.ts.map +1 -0
  18. package/dist/cjs/GatewayProjection.js +462 -0
  19. package/dist/cjs/GatewayProjection.js.map +7 -0
  20. package/dist/cjs/GatewayRpcs.d.ts +1886 -0
  21. package/dist/cjs/GatewayRpcs.d.ts.map +1 -0
  22. package/dist/cjs/GatewayRpcs.js +121 -0
  23. package/dist/cjs/GatewayRpcs.js.map +7 -0
  24. package/dist/cjs/GatewaySchema.d.ts +3274 -0
  25. package/dist/cjs/GatewaySchema.d.ts.map +1 -0
  26. package/dist/cjs/GatewaySchema.js +141 -0
  27. package/dist/cjs/GatewaySchema.js.map +7 -0
  28. package/dist/cjs/GatewayServer.d.ts +427 -0
  29. package/dist/cjs/GatewayServer.d.ts.map +1 -0
  30. package/dist/cjs/GatewayServer.js +428 -0
  31. package/dist/cjs/GatewayServer.js.map +7 -0
  32. package/dist/cjs/HostBranchPresence.d.ts +12 -0
  33. package/dist/cjs/HostBranchPresence.d.ts.map +1 -0
  34. package/dist/cjs/HostBranchPresence.js +82 -0
  35. package/dist/cjs/HostBranchPresence.js.map +7 -0
  36. package/dist/cjs/Projections.d.ts +209 -0
  37. package/dist/cjs/Projections.d.ts.map +1 -0
  38. package/dist/cjs/Projections.js +906 -0
  39. package/dist/cjs/Projections.js.map +7 -0
  40. package/dist/cjs/RunDevTools.d.ts +181 -0
  41. package/dist/cjs/RunDevTools.d.ts.map +1 -0
  42. package/dist/cjs/RunDevTools.js +195 -0
  43. package/dist/cjs/RunDevTools.js.map +7 -0
  44. package/dist/cjs/RunHistory.d.ts +185 -0
  45. package/dist/cjs/RunHistory.d.ts.map +1 -0
  46. package/dist/cjs/RunHistory.js +68 -0
  47. package/dist/cjs/RunHistory.js.map +7 -0
  48. package/dist/cjs/RunTrace.d.ts +753 -0
  49. package/dist/cjs/RunTrace.d.ts.map +1 -0
  50. package/dist/cjs/RunTrace.js +1593 -0
  51. package/dist/cjs/RunTrace.js.map +7 -0
  52. package/dist/cjs/RuntimeBridge.d.ts +1386 -0
  53. package/dist/cjs/RuntimeBridge.d.ts.map +1 -0
  54. package/dist/cjs/RuntimeBridge.js +598 -0
  55. package/dist/cjs/RuntimeBridge.js.map +7 -0
  56. package/dist/cjs/bun/BunGateway.d.ts +20 -0
  57. package/dist/cjs/bun/BunGateway.d.ts.map +1 -0
  58. package/dist/cjs/bun/BunGateway.js +62 -0
  59. package/dist/cjs/bun/BunGateway.js.map +7 -0
  60. package/dist/cjs/index.d.ts +65 -0
  61. package/dist/cjs/index.d.ts.map +1 -0
  62. package/dist/cjs/index.js +59 -0
  63. package/dist/cjs/index.js.map +7 -0
  64. package/dist/cjs/internal/NativeGateway.d.ts +176 -0
  65. package/dist/cjs/internal/NativeGateway.d.ts.map +1 -0
  66. package/dist/cjs/internal/NativeGateway.js +187 -0
  67. package/dist/cjs/internal/NativeGateway.js.map +7 -0
  68. package/dist/cjs/internal/actionRenderings.d.ts +2 -0
  69. package/dist/cjs/internal/actionRenderings.d.ts.map +1 -0
  70. package/dist/cjs/internal/actionRenderings.js +224 -0
  71. package/dist/cjs/internal/actionRenderings.js.map +7 -0
  72. package/dist/cjs/internal/callEvents.d.ts +97 -0
  73. package/dist/cjs/internal/callEvents.d.ts.map +1 -0
  74. package/dist/cjs/internal/callEvents.js +169 -0
  75. package/dist/cjs/internal/callEvents.js.map +7 -0
  76. package/dist/cjs/internal/digestIndex.d.ts +31 -0
  77. package/dist/cjs/internal/digestIndex.d.ts.map +1 -0
  78. package/dist/cjs/internal/digestIndex.js +105 -0
  79. package/dist/cjs/internal/digestIndex.js.map +7 -0
  80. package/dist/cjs/internal/digestMemory.d.ts +19 -0
  81. package/dist/cjs/internal/digestMemory.d.ts.map +1 -0
  82. package/dist/cjs/internal/digestMemory.js +33 -0
  83. package/dist/cjs/internal/digestMemory.js.map +7 -0
  84. package/dist/cjs/internal/inspectLabels.d.ts +8 -0
  85. package/dist/cjs/internal/inspectLabels.d.ts.map +1 -0
  86. package/dist/cjs/internal/inspectLabels.js +29 -0
  87. package/dist/cjs/internal/inspectLabels.js.map +7 -0
  88. package/dist/cjs/internal/nativeResolution.d.ts +41 -0
  89. package/dist/cjs/internal/nativeResolution.d.ts.map +1 -0
  90. package/dist/cjs/internal/nativeResolution.js +62 -0
  91. package/dist/cjs/internal/nativeResolution.js.map +7 -0
  92. package/dist/cjs/internal/nodeEvents.d.ts +47 -0
  93. package/dist/cjs/internal/nodeEvents.d.ts.map +1 -0
  94. package/dist/cjs/internal/nodeEvents.js +60 -0
  95. package/dist/cjs/internal/nodeEvents.js.map +7 -0
  96. package/dist/cjs/node/NodeGateway.d.ts +16 -0
  97. package/dist/cjs/node/NodeGateway.d.ts.map +1 -0
  98. package/dist/cjs/node/NodeGateway.js +48 -0
  99. package/dist/cjs/node/NodeGateway.js.map +7 -0
  100. package/dist/cjs/package.json +1 -0
  101. package/dist/esm/Diagnosis.d.ts +275 -0
  102. package/dist/esm/Diagnosis.d.ts.map +1 -0
  103. package/dist/esm/Diagnosis.js +697 -0
  104. package/dist/esm/Diagnosis.js.map +1 -0
  105. package/dist/esm/EngineTrace.d.ts +76 -0
  106. package/dist/esm/EngineTrace.d.ts.map +1 -0
  107. package/dist/esm/EngineTrace.js +548 -0
  108. package/dist/esm/EngineTrace.js.map +1 -0
  109. package/dist/esm/GatewayError.d.ts +54 -0
  110. package/dist/esm/GatewayError.d.ts.map +1 -0
  111. package/dist/esm/GatewayError.js +60 -0
  112. package/dist/esm/GatewayError.js.map +1 -0
  113. package/dist/esm/GatewayProjection.d.ts +480 -0
  114. package/dist/esm/GatewayProjection.d.ts.map +1 -0
  115. package/dist/esm/GatewayProjection.js +792 -0
  116. package/dist/esm/GatewayProjection.js.map +1 -0
  117. package/dist/esm/GatewayRpcs.d.ts +1886 -0
  118. package/dist/esm/GatewayRpcs.d.ts.map +1 -0
  119. package/dist/esm/GatewayRpcs.js +145 -0
  120. package/dist/esm/GatewayRpcs.js.map +1 -0
  121. package/dist/esm/GatewaySchema.d.ts +3274 -0
  122. package/dist/esm/GatewaySchema.d.ts.map +1 -0
  123. package/dist/esm/GatewaySchema.js +244 -0
  124. package/dist/esm/GatewaySchema.js.map +1 -0
  125. package/dist/esm/GatewayServer.d.ts +427 -0
  126. package/dist/esm/GatewayServer.d.ts.map +1 -0
  127. package/dist/esm/GatewayServer.js +725 -0
  128. package/dist/esm/GatewayServer.js.map +1 -0
  129. package/dist/esm/HostBranchPresence.d.ts +12 -0
  130. package/dist/esm/HostBranchPresence.d.ts.map +1 -0
  131. package/dist/esm/HostBranchPresence.js +54 -0
  132. package/dist/esm/HostBranchPresence.js.map +1 -0
  133. package/dist/esm/Projections.d.ts +209 -0
  134. package/dist/esm/Projections.d.ts.map +1 -0
  135. package/dist/esm/Projections.js +1254 -0
  136. package/dist/esm/Projections.js.map +1 -0
  137. package/dist/esm/RunDevTools.d.ts +181 -0
  138. package/dist/esm/RunDevTools.d.ts.map +1 -0
  139. package/dist/esm/RunDevTools.js +281 -0
  140. package/dist/esm/RunDevTools.js.map +1 -0
  141. package/dist/esm/RunHistory.d.ts +185 -0
  142. package/dist/esm/RunHistory.d.ts.map +1 -0
  143. package/dist/esm/RunHistory.js +109 -0
  144. package/dist/esm/RunHistory.js.map +1 -0
  145. package/dist/esm/RunTrace.d.ts +753 -0
  146. package/dist/esm/RunTrace.d.ts.map +1 -0
  147. package/dist/esm/RunTrace.js +2105 -0
  148. package/dist/esm/RunTrace.js.map +1 -0
  149. package/dist/esm/RuntimeBridge.d.ts +1386 -0
  150. package/dist/esm/RuntimeBridge.d.ts.map +1 -0
  151. package/dist/esm/RuntimeBridge.js +659 -0
  152. package/dist/esm/RuntimeBridge.js.map +1 -0
  153. package/dist/esm/bun/BunGateway.d.ts +20 -0
  154. package/dist/esm/bun/BunGateway.d.ts.map +1 -0
  155. package/dist/esm/bun/BunGateway.js +32 -0
  156. package/dist/esm/bun/BunGateway.js.map +1 -0
  157. package/dist/esm/index.d.ts +65 -0
  158. package/dist/esm/index.d.ts.map +1 -0
  159. package/dist/esm/index.js +65 -0
  160. package/dist/esm/index.js.map +1 -0
  161. package/dist/esm/internal/NativeGateway.d.ts +176 -0
  162. package/dist/esm/internal/NativeGateway.d.ts.map +1 -0
  163. package/dist/esm/internal/NativeGateway.js +268 -0
  164. package/dist/esm/internal/NativeGateway.js.map +1 -0
  165. package/dist/esm/internal/actionRenderings.d.ts +2 -0
  166. package/dist/esm/internal/actionRenderings.d.ts.map +1 -0
  167. package/dist/esm/internal/actionRenderings.js +202 -0
  168. package/dist/esm/internal/actionRenderings.js.map +1 -0
  169. package/dist/esm/internal/callEvents.d.ts +97 -0
  170. package/dist/esm/internal/callEvents.d.ts.map +1 -0
  171. package/dist/esm/internal/callEvents.js +206 -0
  172. package/dist/esm/internal/callEvents.js.map +1 -0
  173. package/dist/esm/internal/digestIndex.d.ts +31 -0
  174. package/dist/esm/internal/digestIndex.d.ts.map +1 -0
  175. package/dist/esm/internal/digestIndex.js +87 -0
  176. package/dist/esm/internal/digestIndex.js.map +1 -0
  177. package/dist/esm/internal/digestMemory.d.ts +19 -0
  178. package/dist/esm/internal/digestMemory.d.ts.map +1 -0
  179. package/dist/esm/internal/digestMemory.js +23 -0
  180. package/dist/esm/internal/digestMemory.js.map +1 -0
  181. package/dist/esm/internal/inspectLabels.d.ts +8 -0
  182. package/dist/esm/internal/inspectLabels.d.ts.map +1 -0
  183. package/dist/esm/internal/inspectLabels.js +12 -0
  184. package/dist/esm/internal/inspectLabels.js.map +1 -0
  185. package/dist/esm/internal/nativeResolution.d.ts +41 -0
  186. package/dist/esm/internal/nativeResolution.d.ts.map +1 -0
  187. package/dist/esm/internal/nativeResolution.js +78 -0
  188. package/dist/esm/internal/nativeResolution.js.map +1 -0
  189. package/dist/esm/internal/nodeEvents.d.ts +47 -0
  190. package/dist/esm/internal/nodeEvents.d.ts.map +1 -0
  191. package/dist/esm/internal/nodeEvents.js +60 -0
  192. package/dist/esm/internal/nodeEvents.js.map +1 -0
  193. package/dist/esm/node/NodeGateway.d.ts +16 -0
  194. package/dist/esm/node/NodeGateway.d.ts.map +1 -0
  195. package/dist/esm/node/NodeGateway.js +13 -0
  196. package/dist/esm/node/NodeGateway.js.map +1 -0
  197. package/dist/vendor/adapters.json +2707 -0
  198. package/dist/vendor/bun/BunChildProcessSpawner.d.ts +7 -0
  199. package/dist/vendor/bun/BunChildProcessSpawner.js +14 -0
  200. package/dist/vendor/bun/BunClusterHttp.d.ts +83 -0
  201. package/dist/vendor/bun/BunClusterHttp.js +39 -0
  202. package/dist/vendor/bun/BunClusterSocket.d.ts +65 -0
  203. package/dist/vendor/bun/BunClusterSocket.js +22 -0
  204. package/dist/vendor/bun/BunCrypto.d.ts +10 -0
  205. package/dist/vendor/bun/BunCrypto.js +8 -0
  206. package/dist/vendor/bun/BunFileSystem.d.ts +10 -0
  207. package/dist/vendor/bun/BunFileSystem.js +9 -0
  208. package/dist/vendor/bun/BunHttpClient.d.ts +9 -0
  209. package/dist/vendor/bun/BunHttpClient.js +1 -0
  210. package/dist/vendor/bun/BunHttpPlatform.d.ts +10 -0
  211. package/dist/vendor/bun/BunHttpPlatform.js +11 -0
  212. package/dist/vendor/bun/BunHttpServer.d.ts +142 -0
  213. package/dist/vendor/bun/BunHttpServer.js +38 -0
  214. package/dist/vendor/bun/BunHttpServerRequest.d.ts +18 -0
  215. package/dist/vendor/bun/BunHttpServerRequest.js +7 -0
  216. package/dist/vendor/bun/BunMultipart.d.ts +31 -0
  217. package/dist/vendor/bun/BunMultipart.js +12 -0
  218. package/dist/vendor/bun/BunPath.d.ts +24 -0
  219. package/dist/vendor/bun/BunPath.js +12 -0
  220. package/dist/vendor/bun/BunRedis.d.ts +49 -0
  221. package/dist/vendor/bun/BunRedis.js +11 -0
  222. package/dist/vendor/bun/BunRuntime.d.ts +85 -0
  223. package/dist/vendor/bun/BunRuntime.js +8 -0
  224. package/dist/vendor/bun/BunServices.d.ts +34 -0
  225. package/dist/vendor/bun/BunServices.js +23 -0
  226. package/dist/vendor/bun/BunSink.d.ts +8 -0
  227. package/dist/vendor/bun/BunSink.js +12 -0
  228. package/dist/vendor/bun/BunSocket.d.ts +40 -0
  229. package/dist/vendor/bun/BunSocket.js +29 -0
  230. package/dist/vendor/bun/BunSocketServer.d.ts +8 -0
  231. package/dist/vendor/bun/BunSocketServer.js +21 -0
  232. package/dist/vendor/bun/BunStdio.d.ts +11 -0
  233. package/dist/vendor/bun/BunStdio.js +10 -0
  234. package/dist/vendor/bun/BunStream.d.ts +19 -0
  235. package/dist/vendor/bun/BunStream.js +30 -0
  236. package/dist/vendor/bun/BunTerminal.d.ts +21 -0
  237. package/dist/vendor/bun/BunTerminal.js +10 -0
  238. package/dist/vendor/bun/BunWorker.d.ts +20 -0
  239. package/dist/vendor/bun/BunWorker.js +9 -0
  240. package/dist/vendor/bun/BunWorkerRunner.d.ts +12 -0
  241. package/dist/vendor/bun/BunWorkerRunner.js +7 -0
  242. package/dist/vendor/bun/LICENSE +21 -0
  243. package/dist/vendor/bun/index.d.ts +92 -0
  244. package/dist/vendor/bun/index.js +107 -0
  245. package/dist/vendor/chunk-2GCOZTTW.js +48 -0
  246. package/dist/vendor/chunk-37CUR3PO.js +81 -0
  247. package/dist/vendor/chunk-3ARKKENZ.js +45 -0
  248. package/dist/vendor/chunk-3NV2UDBI.js +7 -0
  249. package/dist/vendor/chunk-3OSW7CT7.js +143 -0
  250. package/dist/vendor/chunk-62R63L74.js +62 -0
  251. package/dist/vendor/chunk-6AQLBC2I.js +118 -0
  252. package/dist/vendor/chunk-6C5H7S6B.js +18 -0
  253. package/dist/vendor/chunk-6DY5RBZD.js +85 -0
  254. package/dist/vendor/chunk-6UPBD47P.js +53 -0
  255. package/dist/vendor/chunk-AVVVN75Z.js +96 -0
  256. package/dist/vendor/chunk-B4DHEMBB.js +14 -0
  257. package/dist/vendor/chunk-BCK3NJOX.js +15 -0
  258. package/dist/vendor/chunk-BFBIHJ6X.js +0 -0
  259. package/dist/vendor/chunk-CES4OUM4.js +63 -0
  260. package/dist/vendor/chunk-D64L6YND.js +59 -0
  261. package/dist/vendor/chunk-DS2R6WOM.js +18 -0
  262. package/dist/vendor/chunk-DX4Z23DM.js +65 -0
  263. package/dist/vendor/chunk-DZ2VOUDP.js +564 -0
  264. package/dist/vendor/chunk-FOXN6JPJ.js +61 -0
  265. package/dist/vendor/chunk-FPQF7CR5.js +55 -0
  266. package/dist/vendor/chunk-FUTCTCEG.js +20 -0
  267. package/dist/vendor/chunk-GUPAV2YZ.js +18 -0
  268. package/dist/vendor/chunk-H2Z2Y4QH.js +70 -0
  269. package/dist/vendor/chunk-HAEDVSSM.js +129 -0
  270. package/dist/vendor/chunk-HY7BBL3K.js +93 -0
  271. package/dist/vendor/chunk-IFTTT6D5.js +31 -0
  272. package/dist/vendor/chunk-KQDSNB7M.js +26 -0
  273. package/dist/vendor/chunk-LIHLXXGQ.js +26 -0
  274. package/dist/vendor/chunk-LKCGQEE5.js +28 -0
  275. package/dist/vendor/chunk-MH2J3BYB.js +0 -0
  276. package/dist/vendor/chunk-ML2NAFH2.js +131 -0
  277. package/dist/vendor/chunk-MLFIZ5O2.js +0 -0
  278. package/dist/vendor/chunk-MLKGABMK.js +9 -0
  279. package/dist/vendor/chunk-MSCLEMYX.js +71 -0
  280. package/dist/vendor/chunk-OBWXQKVP.js +57 -0
  281. package/dist/vendor/chunk-QR557K66.js +20 -0
  282. package/dist/vendor/chunk-R4QUY7DH.js +18 -0
  283. package/dist/vendor/chunk-RGECXXJS.js +18 -0
  284. package/dist/vendor/chunk-TFY7W6D4.js +36 -0
  285. package/dist/vendor/chunk-TGPIVY4A.js +104 -0
  286. package/dist/vendor/chunk-TGXCX6W3.js +398 -0
  287. package/dist/vendor/chunk-TOHSFXMV.js +437 -0
  288. package/dist/vendor/chunk-UHIDPUFF.js +34 -0
  289. package/dist/vendor/chunk-ULT6CWUI.js +109 -0
  290. package/dist/vendor/chunk-UXBGYQR3.js +18 -0
  291. package/dist/vendor/chunk-V6LUGQ7O.js +21 -0
  292. package/dist/vendor/chunk-W4OASVX6.js +92 -0
  293. package/dist/vendor/chunk-WAII54GA.js +18 -0
  294. package/dist/vendor/chunk-WECQDT36.js +426 -0
  295. package/dist/vendor/chunk-WHKMOC7Z.js +28 -0
  296. package/dist/vendor/chunk-WVFOZ2UL.js +40 -0
  297. package/dist/vendor/chunk-X73E2UPI.js +18 -0
  298. package/dist/vendor/chunk-XCYARUII.js +63 -0
  299. package/dist/vendor/chunk-XFEVTDVD.js +34 -0
  300. package/dist/vendor/chunk-XFZZYSJ4.js +22 -0
  301. package/dist/vendor/chunk-XJWJXLXJ.js +18 -0
  302. package/dist/vendor/chunk-XY3Q62EO.js +18 -0
  303. package/dist/vendor/chunk-YDASSC75.js +394 -0
  304. package/dist/vendor/chunk-Z6C7SO5Z.js +507 -0
  305. package/dist/vendor/chunk-Z7QNPJEB.js +229 -0
  306. package/dist/vendor/chunk-Z7QPP4YH.js +249 -0
  307. package/dist/vendor/chunk-ZCHYLHJH.js +86 -0
  308. package/dist/vendor/chunk-ZIQVYVMA.js +22 -0
  309. package/dist/vendor/chunk-ZPIG2CUA.js +34 -0
  310. package/dist/vendor/cjs/bun/BunChildProcessSpawner.d.ts +7 -0
  311. package/dist/vendor/cjs/bun/BunChildProcessSpawner.js +1 -0
  312. package/dist/vendor/cjs/bun/BunClusterHttp.d.ts +83 -0
  313. package/dist/vendor/cjs/bun/BunClusterHttp.js +1 -0
  314. package/dist/vendor/cjs/bun/BunClusterSocket.d.ts +65 -0
  315. package/dist/vendor/cjs/bun/BunClusterSocket.js +1 -0
  316. package/dist/vendor/cjs/bun/BunCrypto.d.ts +10 -0
  317. package/dist/vendor/cjs/bun/BunCrypto.js +1 -0
  318. package/dist/vendor/cjs/bun/BunFileSystem.d.ts +10 -0
  319. package/dist/vendor/cjs/bun/BunFileSystem.js +1 -0
  320. package/dist/vendor/cjs/bun/BunHttpClient.d.ts +9 -0
  321. package/dist/vendor/cjs/bun/BunHttpClient.js +1 -0
  322. package/dist/vendor/cjs/bun/BunHttpPlatform.d.ts +10 -0
  323. package/dist/vendor/cjs/bun/BunHttpPlatform.js +1 -0
  324. package/dist/vendor/cjs/bun/BunHttpServer.d.ts +142 -0
  325. package/dist/vendor/cjs/bun/BunHttpServer.js +1 -0
  326. package/dist/vendor/cjs/bun/BunHttpServerRequest.d.ts +18 -0
  327. package/dist/vendor/cjs/bun/BunHttpServerRequest.js +1 -0
  328. package/dist/vendor/cjs/bun/BunMultipart.d.ts +31 -0
  329. package/dist/vendor/cjs/bun/BunMultipart.js +1 -0
  330. package/dist/vendor/cjs/bun/BunPath.d.ts +24 -0
  331. package/dist/vendor/cjs/bun/BunPath.js +1 -0
  332. package/dist/vendor/cjs/bun/BunRedis.d.ts +49 -0
  333. package/dist/vendor/cjs/bun/BunRedis.js +1 -0
  334. package/dist/vendor/cjs/bun/BunRuntime.d.ts +85 -0
  335. package/dist/vendor/cjs/bun/BunRuntime.js +1 -0
  336. package/dist/vendor/cjs/bun/BunServices.d.ts +34 -0
  337. package/dist/vendor/cjs/bun/BunServices.js +1 -0
  338. package/dist/vendor/cjs/bun/BunSink.d.ts +8 -0
  339. package/dist/vendor/cjs/bun/BunSink.js +1 -0
  340. package/dist/vendor/cjs/bun/BunSocket.d.ts +40 -0
  341. package/dist/vendor/cjs/bun/BunSocket.js +1 -0
  342. package/dist/vendor/cjs/bun/BunSocketServer.d.ts +8 -0
  343. package/dist/vendor/cjs/bun/BunSocketServer.js +1 -0
  344. package/dist/vendor/cjs/bun/BunStdio.d.ts +11 -0
  345. package/dist/vendor/cjs/bun/BunStdio.js +1 -0
  346. package/dist/vendor/cjs/bun/BunStream.d.ts +19 -0
  347. package/dist/vendor/cjs/bun/BunStream.js +1 -0
  348. package/dist/vendor/cjs/bun/BunTerminal.d.ts +21 -0
  349. package/dist/vendor/cjs/bun/BunTerminal.js +1 -0
  350. package/dist/vendor/cjs/bun/BunWorker.d.ts +20 -0
  351. package/dist/vendor/cjs/bun/BunWorker.js +1 -0
  352. package/dist/vendor/cjs/bun/BunWorkerRunner.d.ts +12 -0
  353. package/dist/vendor/cjs/bun/BunWorkerRunner.js +1 -0
  354. package/dist/vendor/cjs/bun/index.d.ts +92 -0
  355. package/dist/vendor/cjs/bun/index.js +1 -0
  356. package/dist/vendor/cjs/node/NodeChildProcessSpawner.d.ts +7 -0
  357. package/dist/vendor/cjs/node/NodeChildProcessSpawner.js +1 -0
  358. package/dist/vendor/cjs/node/NodeClusterHttp.d.ts +63 -0
  359. package/dist/vendor/cjs/node/NodeClusterHttp.js +1 -0
  360. package/dist/vendor/cjs/node/NodeClusterSocket.d.ts +79 -0
  361. package/dist/vendor/cjs/node/NodeClusterSocket.js +1 -0
  362. package/dist/vendor/cjs/node/NodeCrypto.d.ts +10 -0
  363. package/dist/vendor/cjs/node/NodeCrypto.js +1 -0
  364. package/dist/vendor/cjs/node/NodeFileSystem.d.ts +10 -0
  365. package/dist/vendor/cjs/node/NodeFileSystem.js +1 -0
  366. package/dist/vendor/cjs/node/NodeHttpClient.d.ts +179 -0
  367. package/dist/vendor/cjs/node/NodeHttpClient.js +1 -0
  368. package/dist/vendor/cjs/node/NodeHttpIncomingMessage.d.ts +62 -0
  369. package/dist/vendor/cjs/node/NodeHttpIncomingMessage.js +1 -0
  370. package/dist/vendor/cjs/node/NodeHttpPlatform.d.ts +36 -0
  371. package/dist/vendor/cjs/node/NodeHttpPlatform.js +1 -0
  372. package/dist/vendor/cjs/node/NodeHttpServer.d.ts +120 -0
  373. package/dist/vendor/cjs/node/NodeHttpServer.js +1 -0
  374. package/dist/vendor/cjs/node/NodeHttpServerRequest.d.ts +29 -0
  375. package/dist/vendor/cjs/node/NodeHttpServerRequest.js +1 -0
  376. package/dist/vendor/cjs/node/NodeMultipart.d.ts +46 -0
  377. package/dist/vendor/cjs/node/NodeMultipart.js +1 -0
  378. package/dist/vendor/cjs/node/NodeMultipartParser.d.ts +97 -0
  379. package/dist/vendor/cjs/node/NodeMultipartParser.js +1 -0
  380. package/dist/vendor/cjs/node/NodePath.d.ts +27 -0
  381. package/dist/vendor/cjs/node/NodePath.js +1 -0
  382. package/dist/vendor/cjs/node/NodeRedis.d.ts +74 -0
  383. package/dist/vendor/cjs/node/NodeRedis.js +1 -0
  384. package/dist/vendor/cjs/node/NodeRuntime.d.ts +85 -0
  385. package/dist/vendor/cjs/node/NodeRuntime.js +1 -0
  386. package/dist/vendor/cjs/node/NodeServices.d.ts +34 -0
  387. package/dist/vendor/cjs/node/NodeServices.js +1 -0
  388. package/dist/vendor/cjs/node/NodeSink.d.ts +8 -0
  389. package/dist/vendor/cjs/node/NodeSink.js +1 -0
  390. package/dist/vendor/cjs/node/NodeSocket.d.ts +38 -0
  391. package/dist/vendor/cjs/node/NodeSocket.js +1 -0
  392. package/dist/vendor/cjs/node/NodeSocketServer.d.ts +8 -0
  393. package/dist/vendor/cjs/node/NodeSocketServer.js +1 -0
  394. package/dist/vendor/cjs/node/NodeStdio.d.ts +11 -0
  395. package/dist/vendor/cjs/node/NodeStdio.js +1 -0
  396. package/dist/vendor/cjs/node/NodeStream.d.ts +8 -0
  397. package/dist/vendor/cjs/node/NodeStream.js +1 -0
  398. package/dist/vendor/cjs/node/NodeTerminal.d.ts +21 -0
  399. package/dist/vendor/cjs/node/NodeTerminal.js +1 -0
  400. package/dist/vendor/cjs/node/NodeWorker.d.ts +22 -0
  401. package/dist/vendor/cjs/node/NodeWorker.js +1 -0
  402. package/dist/vendor/cjs/node/NodeWorkerRunner.d.ts +12 -0
  403. package/dist/vendor/cjs/node/NodeWorkerRunner.js +1 -0
  404. package/dist/vendor/cjs/node/Undici.d.ts +28 -0
  405. package/dist/vendor/cjs/node/Undici.js +1 -0
  406. package/dist/vendor/cjs/node/index.d.ts +100 -0
  407. package/dist/vendor/cjs/node/index.js +1 -0
  408. package/dist/vendor/cjs/node-shared/NodeChildProcessSpawner.d.ts +57 -0
  409. package/dist/vendor/cjs/node-shared/NodeChildProcessSpawner.js +1 -0
  410. package/dist/vendor/cjs/node-shared/NodeClusterSocket.d.ts +22 -0
  411. package/dist/vendor/cjs/node-shared/NodeClusterSocket.js +1 -0
  412. package/dist/vendor/cjs/node-shared/NodeCrypto.d.ts +27 -0
  413. package/dist/vendor/cjs/node-shared/NodeCrypto.js +1 -0
  414. package/dist/vendor/cjs/node-shared/NodeFileSystem.d.ts +11 -0
  415. package/dist/vendor/cjs/node-shared/NodeFileSystem.js +1 -0
  416. package/dist/vendor/cjs/node-shared/NodeHttpCompression.d.ts +36 -0
  417. package/dist/vendor/cjs/node-shared/NodeHttpCompression.js +1 -0
  418. package/dist/vendor/cjs/node-shared/NodePath.d.ts +27 -0
  419. package/dist/vendor/cjs/node-shared/NodePath.js +1 -0
  420. package/dist/vendor/cjs/node-shared/NodeRuntime.d.ts +47 -0
  421. package/dist/vendor/cjs/node-shared/NodeRuntime.js +1 -0
  422. package/dist/vendor/cjs/node-shared/NodeSink.d.ts +69 -0
  423. package/dist/vendor/cjs/node-shared/NodeSink.js +1 -0
  424. package/dist/vendor/cjs/node-shared/NodeSocket.d.ts +134 -0
  425. package/dist/vendor/cjs/node-shared/NodeSocket.js +1 -0
  426. package/dist/vendor/cjs/node-shared/NodeSocketServer.d.ts +80 -0
  427. package/dist/vendor/cjs/node-shared/NodeSocketServer.js +1 -0
  428. package/dist/vendor/cjs/node-shared/NodeStdio.d.ts +12 -0
  429. package/dist/vendor/cjs/node-shared/NodeStdio.js +1 -0
  430. package/dist/vendor/cjs/node-shared/NodeStream.d.ts +179 -0
  431. package/dist/vendor/cjs/node-shared/NodeStream.js +1 -0
  432. package/dist/vendor/cjs/node-shared/NodeTerminal.d.ts +22 -0
  433. package/dist/vendor/cjs/node-shared/NodeTerminal.js +1 -0
  434. package/dist/vendor/cjs/node-shared/index.d.ts +56 -0
  435. package/dist/vendor/cjs/node-shared/index.js +1 -0
  436. package/dist/vendor/cjs/node-shared/internal/nodeChildProcessSpawner.d.ts +4 -0
  437. package/dist/vendor/cjs/node-shared/internal/nodeChildProcessSpawner.js +1 -0
  438. package/dist/vendor/cjs/node-shared/internal/utils.d.ts +2 -0
  439. package/dist/vendor/cjs/node-shared/internal/utils.js +1 -0
  440. package/dist/vendor/cjs/package.json +1 -0
  441. package/dist/vendor/cjs/platform-bun.d.ts +92 -0
  442. package/dist/vendor/cjs/platform-bun.js +1 -0
  443. package/dist/vendor/cjs/platform-node-shared.d.ts +56 -0
  444. package/dist/vendor/cjs/platform-node-shared.js +1 -0
  445. package/dist/vendor/cjs/platform-node.d.ts +100 -0
  446. package/dist/vendor/cjs/platform-node.js +1 -0
  447. package/dist/vendor/node/LICENSE +21 -0
  448. package/dist/vendor/node/NodeChildProcessSpawner.d.ts +7 -0
  449. package/dist/vendor/node/NodeChildProcessSpawner.js +14 -0
  450. package/dist/vendor/node/NodeClusterHttp.d.ts +63 -0
  451. package/dist/vendor/node/NodeClusterHttp.js +43 -0
  452. package/dist/vendor/node/NodeClusterSocket.d.ts +79 -0
  453. package/dist/vendor/node/NodeClusterSocket.js +30 -0
  454. package/dist/vendor/node/NodeCrypto.d.ts +10 -0
  455. package/dist/vendor/node/NodeCrypto.js +8 -0
  456. package/dist/vendor/node/NodeFileSystem.d.ts +10 -0
  457. package/dist/vendor/node/NodeFileSystem.js +9 -0
  458. package/dist/vendor/node/NodeHttpClient.d.ts +179 -0
  459. package/dist/vendor/node/NodeHttpClient.js +46 -0
  460. package/dist/vendor/node/NodeHttpIncomingMessage.d.ts +62 -0
  461. package/dist/vendor/node/NodeHttpIncomingMessage.js +10 -0
  462. package/dist/vendor/node/NodeHttpPlatform.d.ts +36 -0
  463. package/dist/vendor/node/NodeHttpPlatform.js +16 -0
  464. package/dist/vendor/node/NodeHttpServer.d.ts +120 -0
  465. package/dist/vendor/node/NodeHttpServer.js +46 -0
  466. package/dist/vendor/node/NodeHttpServerRequest.d.ts +29 -0
  467. package/dist/vendor/node/NodeHttpServerRequest.js +9 -0
  468. package/dist/vendor/node/NodeMultipart.d.ts +46 -0
  469. package/dist/vendor/node/NodeMultipart.js +15 -0
  470. package/dist/vendor/node/NodeMultipartParser.d.ts +97 -0
  471. package/dist/vendor/node/NodeMultipartParser.js +11 -0
  472. package/dist/vendor/node/NodePath.d.ts +27 -0
  473. package/dist/vendor/node/NodePath.js +12 -0
  474. package/dist/vendor/node/NodeRedis.d.ts +74 -0
  475. package/dist/vendor/node/NodeRedis.js +11 -0
  476. package/dist/vendor/node/NodeRuntime.d.ts +85 -0
  477. package/dist/vendor/node/NodeRuntime.js +8 -0
  478. package/dist/vendor/node/NodeServices.d.ts +34 -0
  479. package/dist/vendor/node/NodeServices.js +23 -0
  480. package/dist/vendor/node/NodeSink.d.ts +8 -0
  481. package/dist/vendor/node/NodeSink.js +12 -0
  482. package/dist/vendor/node/NodeSocket.d.ts +38 -0
  483. package/dist/vendor/node/NodeSocket.js +31 -0
  484. package/dist/vendor/node/NodeSocketServer.d.ts +8 -0
  485. package/dist/vendor/node/NodeSocketServer.js +21 -0
  486. package/dist/vendor/node/NodeStdio.d.ts +11 -0
  487. package/dist/vendor/node/NodeStdio.js +10 -0
  488. package/dist/vendor/node/NodeStream.d.ts +8 -0
  489. package/dist/vendor/node/NodeStream.js +27 -0
  490. package/dist/vendor/node/NodeTerminal.d.ts +21 -0
  491. package/dist/vendor/node/NodeTerminal.js +10 -0
  492. package/dist/vendor/node/NodeWorker.d.ts +22 -0
  493. package/dist/vendor/node/NodeWorker.js +9 -0
  494. package/dist/vendor/node/NodeWorkerRunner.d.ts +12 -0
  495. package/dist/vendor/node/NodeWorkerRunner.js +7 -0
  496. package/dist/vendor/node/Undici.d.ts +28 -0
  497. package/dist/vendor/node/Undici.js +9 -0
  498. package/dist/vendor/node/index.d.ts +100 -0
  499. package/dist/vendor/node/index.js +115 -0
  500. package/dist/vendor/node-shared/LICENSE +21 -0
  501. package/dist/vendor/node-shared/NodeChildProcessSpawner.d.ts +57 -0
  502. package/dist/vendor/node-shared/NodeChildProcessSpawner.js +13 -0
  503. package/dist/vendor/node-shared/NodeClusterSocket.d.ts +22 -0
  504. package/dist/vendor/node-shared/NodeClusterSocket.js +11 -0
  505. package/dist/vendor/node-shared/NodeCrypto.d.ts +27 -0
  506. package/dist/vendor/node-shared/NodeCrypto.js +9 -0
  507. package/dist/vendor/node-shared/NodeFileSystem.d.ts +11 -0
  508. package/dist/vendor/node-shared/NodeFileSystem.js +8 -0
  509. package/dist/vendor/node-shared/NodeHttpCompression.d.ts +36 -0
  510. package/dist/vendor/node-shared/NodeHttpCompression.js +13 -0
  511. package/dist/vendor/node-shared/NodePath.d.ts +27 -0
  512. package/dist/vendor/node-shared/NodePath.js +11 -0
  513. package/dist/vendor/node-shared/NodeRuntime.d.ts +47 -0
  514. package/dist/vendor/node-shared/NodeRuntime.js +7 -0
  515. package/dist/vendor/node-shared/NodeSink.d.ts +69 -0
  516. package/dist/vendor/node-shared/NodeSink.js +11 -0
  517. package/dist/vendor/node-shared/NodeSocket.d.ts +134 -0
  518. package/dist/vendor/node-shared/NodeSocket.js +23 -0
  519. package/dist/vendor/node-shared/NodeSocketServer.d.ts +80 -0
  520. package/dist/vendor/node-shared/NodeSocketServer.js +20 -0
  521. package/dist/vendor/node-shared/NodeStdio.d.ts +12 -0
  522. package/dist/vendor/node-shared/NodeStdio.js +9 -0
  523. package/dist/vendor/node-shared/NodeStream.d.ts +179 -0
  524. package/dist/vendor/node-shared/NodeStream.js +26 -0
  525. package/dist/vendor/node-shared/NodeTerminal.d.ts +22 -0
  526. package/dist/vendor/node-shared/NodeTerminal.js +9 -0
  527. package/dist/vendor/node-shared/index.d.ts +56 -0
  528. package/dist/vendor/node-shared/index.js +58 -0
  529. package/dist/vendor/node-shared/internal/nodeChildProcessSpawner.d.ts +4 -0
  530. package/dist/vendor/node-shared/internal/nodeChildProcessSpawner.js +7 -0
  531. package/dist/vendor/node-shared/internal/utils.d.ts +2 -0
  532. package/dist/vendor/node-shared/internal/utils.js +7 -0
  533. package/dist/vendor/platform-bun.d.ts +92 -0
  534. package/dist/vendor/platform-bun.js +107 -0
  535. package/dist/vendor/platform-node-shared.d.ts +56 -0
  536. package/dist/vendor/platform-node-shared.js +58 -0
  537. package/dist/vendor/platform-node.d.ts +100 -0
  538. package/dist/vendor/platform-node.js +115 -0
  539. package/docs/README.md +158 -0
  540. package/docs/api.md +601 -0
  541. package/docs/concepts/projections.md +250 -0
  542. package/docs/concepts/subscriptions.md +204 -0
  543. package/docs/concepts/trust-boundary.md +256 -0
  544. package/docs/guides/diagnose-a-run.md +115 -0
  545. package/docs/guides/follow-a-run.md +150 -0
  546. package/docs/guides/host-the-gateway.md +153 -0
  547. package/docs/guides/read-a-projection.md +138 -0
  548. package/docs/guides/serve-beyond-loopback.md +166 -0
  549. package/docs/guides/submit-an-approval.md +187 -0
  550. package/docs/guides/testing.md +148 -0
  551. package/docs/installation.md +89 -0
  552. package/docs/quickstart.md +200 -0
  553. package/docs/troubleshooting.md +355 -0
  554. package/package.json +264 -32
  555. package/src/Diagnosis.ts +892 -0
  556. package/src/EngineTrace.ts +605 -0
  557. package/src/GatewayError.ts +71 -0
  558. package/src/GatewayProjection.ts +948 -0
  559. package/src/GatewayRpcs.ts +179 -0
  560. package/src/GatewaySchema.ts +516 -0
  561. package/src/GatewayServer.ts +932 -0
  562. package/src/HostBranchPresence.ts +72 -0
  563. package/src/Projections.ts +1735 -0
  564. package/src/RunDevTools.ts +394 -0
  565. package/src/RunHistory.ts +174 -0
  566. package/src/RunTrace.ts +2793 -0
  567. package/src/RuntimeBridge.ts +835 -0
  568. package/src/bun/BunGateway.ts +52 -0
  569. package/src/index.ts +77 -0
  570. package/src/internal/NativeGateway.ts +360 -0
  571. package/src/internal/actionRenderings.ts +201 -0
  572. package/src/internal/callEvents.ts +257 -0
  573. package/src/internal/digestIndex.ts +134 -0
  574. package/src/internal/digestMemory.ts +27 -0
  575. package/src/internal/inspectLabels.ts +13 -0
  576. package/src/internal/nativeResolution.ts +103 -0
  577. package/src/internal/nodeEvents.ts +100 -0
  578. package/src/node/NodeGateway.ts +30 -0
  579. package/openapi.yaml +0 -29945
  580. package/src/README.md +0 -39
  581. package/src/api/README.md +0 -23
  582. package/src/api/apiCollectionNames.js +0 -10
  583. package/src/api/index.d.ts +0 -126
  584. package/src/api/index.js +0 -14
  585. package/src/api/normalizeApiRow.js +0 -36
  586. package/src/api/serializeAccountRow.js +0 -10
  587. package/src/api/serializeApprovalRow.js +0 -53
  588. package/src/api/serializeComparisonScoreRow.js +0 -18
  589. package/src/api/serializeCronRow.js +0 -30
  590. package/src/api/serializeDocRow.js +0 -20
  591. package/src/api/serializeMemoryFactRow.js +0 -21
  592. package/src/api/serializePromptRow.js +0 -10
  593. package/src/api/serializeRunEventRow.js +0 -28
  594. package/src/api/serializeRunRow.js +0 -93
  595. package/src/api/serializeScoreDetailRow.js +0 -25
  596. package/src/api/serializeScoreRow.js +0 -26
  597. package/src/api/serializeTicketRow.js +0 -20
  598. package/src/api/serializeWorkflowRow.js +0 -10
  599. package/src/auth/scopes.d.ts +0 -19
  600. package/src/auth/scopes.js +0 -164
  601. package/src/index.d.ts +0 -316
  602. package/src/index.js +0 -108
  603. package/src/rpc/gatewayRpcTypes.ts +0 -186
  604. package/src/rpc/index.d.ts +0 -223
  605. package/src/rpc/index.js +0 -2527
@@ -0,0 +1,250 @@
1
+ ---
2
+ title: "Projections"
3
+ description: "Why the gateway serves folds over control events instead of database rows, what the eight projections answer, and how a node gets its id."
4
+ sidebar:
5
+ order: 1
6
+ ---
7
+
8
+ A projection is a read model: a row folded from the ordered `ControlEvent`
9
+ deltas [`@smthrs/control`](/api/control) already publishes, plus the run summary
10
+ the control plane already exposes. Subscribing to one never claims a run and
11
+ never writes.
12
+
13
+ The rule behind every design decision in this package is that the gateway never
14
+ opens the engine database. `Projections` reads through two control-plane
15
+ operations and nothing else: `Control.list` for run and flow listings, and
16
+ `Control.watch` for one run's ordered events. Two consequences follow, and both
17
+ are the point:
18
+
19
+ - A projection served to a browser through a relay is the same projection a
20
+ local reader computes. There is no privileged path.
21
+ - A projection cannot drift from the control plane by reading a column the
22
+ control plane does not expose, because it has no column to read.
23
+
24
+ That is why a UI depends on this package and on `@smthrs/control`, and never on
25
+ [`@smthrs/engine-store`](/api/engine-store). A projection is the contract; a
26
+ store row is an implementation detail.
27
+
28
+ ## The eight projections
29
+
30
+ `GatewaySchema.ProjectionName` is the authority for the list, and the set a
31
+ release serves is the set the schema declares.
32
+
33
+ | Projection | Selector | Answers |
34
+ | ---------------- | ----------------------- | ----------------------------------------------------------------------------------------------- |
35
+ | `workspace-runs` | `WorkspaceRunsSelector` | one summary row per run in the workspace |
36
+ | `run-summary` | `RunSummarySelector` | one run's card: status, timing, activity counts, and the diagnosis of what happened to it |
37
+ | `run-events` | `RunEventsSelector` | the run's ordered control events, unfolded |
38
+ | `transcript` | `TranscriptSelector` | one turn-numbered line per reported event |
39
+ | `run-tree` | `RunTreeSelector` | the agent cell calls the run made, keyed `call-1`, `call-2`, and so on |
40
+ | `approvals` | `ApprovalsSelector` | with a run, that run's gates including decided ones; without one, the workspace's pending gates |
41
+ | `node-output` | `NodeOutputSelector` | the value one settled call produced |
42
+ | `flow-durations` | `FlowDurationsSelector` | how long one flow's nodes take, per action tag, over its newest finished runs |
43
+
44
+ `GatewaySchema.rowSchemaFor` maps a selector to the schema of the rows it
45
+ answers with, so a client decodes a snapshot instead of casting it.
46
+
47
+ ## The rows speak the control plane's vocabulary
48
+
49
+ Wire names are the flows names. `RunSummaryRow.flowId` carries what an older
50
+ wire split across `workflowKey` and `workflow`; `createdAt` carries what it
51
+ called `createdAtMs`; `ApprovalRow.payload` is the `ApprovalTarget.Node`
52
+ envelope a client submits back unchanged. A client written against the control
53
+ plane reads these rows with no translation table, and no client reconstructs
54
+ authority for itself.
55
+
56
+ `ControlFacts.fold` is the shared run/approval fold used by both snapshots and
57
+ subscription deltas. Current control lifecycle writers include `factVersion: 1`
58
+ and the complete fenced control snapshot in the event. The first accepted
59
+ snapshot has a `created` baseline. The first upgraded transition of an older run
60
+ has a `legacy` baseline: it establishes state at that sequence and does not
61
+ invent the missing earlier history.
62
+
63
+ `RunSummaryRow.lifecycleProvenance` explains the boundary. `control: "events"`
64
+ means the latest versioned snapshot agrees with the current coordination row's
65
+ status and update time. `legacy-snapshot` means no versioned baseline is present.
66
+ `unverified-snapshot` means the row is ahead of the covered facts, a lifecycle
67
+ fact is missing, or a producer version is unknown. These last two cases retain
68
+ the observed row; they are never labelled successful replay. A later complete
69
+ snapshot begins a new legacy baseline after a gap.
70
+
71
+ Engine observations are independent: `execution: "engine-observed"` preserves
72
+ the status and waiting/ancestry fields `ControlLive` read from the executor;
73
+ `engine-missing` records that no execution was visible. Neither is claimed as
74
+ control-journal replay. No projection read writes a migration or acquires a run.
75
+ The field is optional on the wire for older gateway compatibility.
76
+
77
+ Current approval facts bind the full target, run, request, and digest. Duplicate
78
+ requests cannot reopen a decided gate; exact decisions can precede a request.
79
+ Legacy payloads remain readable, and an unnamed legacy decision can close only
80
+ a legacy request in that run. An unknown current identity never consumes another
81
+ gate. Serving historical approval content grants no authority: the control
82
+ decision endpoint still validates the exact target and principal.
83
+
84
+ ## Committed flow results
85
+
86
+ `RunSummaryRow.finalOutput` prefers the assistant's final text. Otherwise it
87
+ uses the committed successful result of the `agent/run` execution named by
88
+ `control.engine.bound`. A matching `control.engine.event` must carry the
89
+ completed root's versioned run decision. Child results, unbound events, and
90
+ conflicting evidence do not supply output. Strings are preserved; other JSON
91
+ values are serialized. The binding and result survive in the carried diagnosis
92
+ when older events leave the retained window.
93
+
94
+ ## How a node gets its id
95
+
96
+ `run-tree` folds agent cell calls, not child runs. A node opens on a call
97
+ invocation and settles on the matching recorded result. The native action owner
98
+ commits `flows.harness.call-fact.v1` inside its attempt transaction, then the
99
+ existing engine bridge copies it into `control.engine.event`. `Diagnosis`'s
100
+ shared `nativeCallEvent` and `uniqueCallEvents` normalize these facts with
101
+ compatible `control.agent.cell-call-started` / `cell-call-settled` telemetry.
102
+ `AgentSession` still emits the latter on its best-effort trace channel.
103
+ The normalized start carries `{callId, flowName, input}` and the settlement
104
+ carries `{callId, flowName, outcome, message, value}`. `callId` is
105
+ `cell-call-v1:` followed by the SHA-256 digest of the canonical JSON dispatch
106
+ identity: session, frame, cell digest, invocation ordinal, declaration digest,
107
+ and ordered active layers. The harness creates that identity before dispatch
108
+ and carries it unchanged into settlement. The same call keeps its identity
109
+ across replay, and two calls of the same flow can settle in either order.
110
+
111
+ The public node key remains the ordinal of each distinct start: `call-1`,
112
+ `call-2`, and so on. Identified settlements join by `callId`. Repeated starts
113
+ or settlements with the same ID contribute one observation to
114
+ the tree, node output, transcript, and diagnostic counts. A committed native
115
+ fact supersedes identified telemetry while retaining the first observation's
116
+ position and sequence, so existing node references remain stable. Without a
117
+ native fact, the first identified telemetry record remains the observation.
118
+ Transcript rows
119
+ expose the optional `callId`; `run-events` continues to expose every journal
120
+ record, including duplicates, for inspection.
121
+
122
+ Older records have no `callId` and are read without rewriting history. They
123
+ retain FIFO matching among **unidentified** starts with the same flow name.
124
+ An identified settlement may match an unidentified start when an older parked
125
+ run resumes with the new writer. Neither an unknown ID nor an unidentified
126
+ settlement can consume an identified start. A settlement with no eligible
127
+ start produces no node output. Correlation of overlapping, same-name legacy
128
+ calls cannot be recovered exactly from those old records.
129
+
130
+ `node-output` keys its rows the same way and advances its ordinal on exactly
131
+ the same distinct starts, so the node id a tree view shows is the node id
132
+ `node-output` answers for. The CLI/MCP node-output reader retains its existing
133
+ `flowName#ordinal` IDs, counting distinct starts within each flow, and uses
134
+ the same identity/legacy matching rule. A fold that skipped a distinct start
135
+ before advancing its ordinal would shift references to later nodes.
136
+
137
+ A node that never settled stays `running`, which is how a live tree renders
138
+ work in flight.
139
+
140
+ ## A duration is measured, never estimated
141
+
142
+ `flow-durations` is the one projection that reads across runs. It lists the
143
+ flow's runs through `Control.list`, keeps the newest `Projections.maxDurationRuns`
144
+ that reached a terminal status, and folds each one's node records into samples.
145
+
146
+ A sample is one node the engine really ran: the distance between the
147
+ `flows.engine.node-scheduled` record that admitted it and the
148
+ `flows.engine.node-settled` record that closed it, both copied into the control
149
+ journal as `control.engine.event` envelopes by the host's engine bridge. Only
150
+ the `built` outcome counts. `clean` was served from records rather than run,
151
+ `failed` measures a collapse, `skipped` was never reached, and `deferred` is
152
+ scheduling debt, so none of them describes how long the work takes.
153
+
154
+ Samples are grouped by the node's action tag, because the tag is the part of a
155
+ node's key material that survives a re-key: the same step keeps its tag when
156
+ its input changes, and its plan key and dispatch key do not. Both percentiles
157
+ are nearest-rank, so `p50Ms` and `p90Ms` are durations the flow really took.
158
+ `samples` is on the wire beside them, because a percentile over one sample and
159
+ a percentile over twenty are different claims.
160
+
161
+ One call is one sample. The engine records a `FlowCall` twice: the caller
162
+ admits and settles the node that made the call, and the callee's own execution
163
+ admits and settles its `root` over the same span with the same tag. The fold
164
+ keeps the caller's node and drops the callee's root, which it can tell apart
165
+ because the host's `control.engine.bound` record names the native root the
166
+ control run owns. A run with no such record, such as one no engine bridge
167
+ wrote, keeps both: a fold that cannot name the root cannot name the echo
168
+ either.
169
+
170
+ A duration is wall time between two engine records, so a node that waits is
171
+ measured through its wait. A flow tag whose flow parks on a `HumanTask`
172
+ measures the park, and so does every flow tag above it. These rows answer how
173
+ long the flow took, not how much compute it spent.
174
+
175
+ A tag nothing has measured has no row, and a flow nothing has finished answers
176
+ with no rows at all. There is no shape here for an unmeasured prediction.
177
+
178
+ ## What is not in a projection
179
+
180
+ A host keeps the control plane and the engine in two databases with two
181
+ journals. `Control.watch` reads one run's control partition; the gateway does
182
+ not open the native database. Native call and execution facts become readable
183
+ through the durable engine bridge, which can lag its source. Other engine
184
+ records remain inspection material unless a specific pure fold recognizes
185
+ their versioned producer contract. Model deltas and printed trace text still
186
+ have best-effort delivery; call fact coverage does not make the entire trace
187
+ replayable. Public values are redacted and bounded commitments, not private
188
+ native outcome rows.
189
+
190
+ ## The folds are pure and total
191
+
192
+ `GatewayProjection.runSummary`, `runTree`, `approvals`, `nodeOutput`, and
193
+ `transcript` are ordinary functions from control facts to rows. They read no
194
+ service, and an event kind outside their vocabulary contributes nothing rather
195
+ than failing the fold. Wire payloads are JSON, so every field read tolerates
196
+ absence: the digest of a malformed journal is a sparse digest, never a throw.
197
+
198
+ That purity is what makes a delta trustworthy. A subscription recomputes the
199
+ selector's rows from accumulated events rather than patching them, and
200
+ recomputation is only safe because the same events always fold to the same
201
+ rows. `run-events` sends only what one event added. `transcript` normally does
202
+ the same, but a later native fact can correct previously emitted telemetry. It
203
+ then sends the existing `snapshot-start` / `row` / `snapshot-end` reset so the
204
+ subscriber converges to a fresh fold at the same cursor. See
205
+ [Subscriptions and cursors](./subscriptions.md).
206
+
207
+ ## What a projection costs
208
+
209
+ A projection reads one journal per run, so the read is bounded on purpose:
210
+
211
+ | Bound | Value | What it caps |
212
+ | -------------------------------- | ------ | --------------------------------------------------------------------------- |
213
+ | `Projections.maxWorkspaceRuns` | 500 | runs one workspace projection folds, newest first |
214
+ | `Projections.maxEventsPerRun` | 10,000 | retained events per run |
215
+ | `Projections.maxEventsPerPage` | 1,000 | events per `run-events` page |
216
+ | `Projections.maxEventBytes` | 16 KiB | retained event size before clipping |
217
+ | `Projections.maxProjectionBytes` | 4 MiB | retained events and digest identity state, event page, or projected row set |
218
+
219
+ `maxWorkspaceRuns` equals `ControlSchema.maxPageSize`, so the control plane can
220
+ satisfy the whole gateway allowance in one page when it can. A workspace with
221
+ more runs is answered with its newest 500. Older retained events are folded into
222
+ a carried digest. Compact scalar contributions retain call and checkpoint
223
+ identities so replay is counted once and committed native facts can correct
224
+ earlier telemetry across the window boundary. These contributions share the
225
+ retained byte budget; their inputs, outputs, and event bodies are not retained.
226
+ If the exact identity state or a projected row set cannot fit, the read fails
227
+ with `resource_limit`.
228
+
229
+ `run-events` pages preserve complete `control.engine.event` payloads, including
230
+ native typed results, without the 16 KiB clipping applied to other large events.
231
+ A page stops at its event or byte budget and returns a cursor. One event whose
232
+ encoded size plus array brackets exceeds 4 MiB fails with `resource_limit`.
233
+
234
+ The approvals inbox is the one workspace projection that filters before it
235
+ counts: it asks the control plane for runs whose status is `waiting-approval`,
236
+ and admits only runs still in that status with at least one pending gate after
237
+ reconciling their journals. Snapshot admission and live refresh use the same
238
+ predicate: cancellation removes a run even when its gate remains pending.
239
+ A run with no pending gate does not consume the source allowance. An inbox
240
+ cannot be exhausted by completed histories.
241
+
242
+ Native lifecycle uses an independent `ExecutionFact` fold over the host-bound
243
+ engine bridge. Run rows may include `executionProvenance` (`events`,
244
+ `legacy-observation`, or `unverified-observation`) alongside the existing
245
+ `lifecycleProvenance`; engine replay does not become control-stream authority.
246
+ The fold verifies the native root/current-round view against the executor's
247
+ coherent observation. A missing binding, native generation gap, unsupported
248
+ version, or differing observation retains explicit fallback. Snapshot and
249
+ subscription paths share this fold. The protected native wait token remains in
250
+ the execution store; the event carries its SHA-256 digest for comparison.
@@ -0,0 +1,204 @@
1
+ ---
2
+ title: "Subscriptions and cursors"
3
+ description: "The frame vocabulary a subscription speaks, which deltas replace and which append, what a delta costs, what a cursor is made of, and which subscriptions can resume from one."
4
+ sidebar:
5
+ order: 2
6
+ ---
7
+
8
+ `Projection.Snapshot` answers the rows a selector currently projects.
9
+ `Projection.Subscribe` answers a stream of tagged frames instead, so a client
10
+ can tell a snapshot from a change without guessing.
11
+
12
+ ## The frames
13
+
14
+ | Frame | Means |
15
+ | -------------------- | ----------------------------------- |
16
+ | `SnapshotStartFrame` | the snapshot begins, at this cursor |
17
+ | `RowFrame` | one row of the snapshot |
18
+ | `SnapshotEndFrame` | the snapshot is complete |
19
+ | `DeltaFrame` | the selector's rows after a change |
20
+ | `HeartbeatFrame` | the connection is alive |
21
+
22
+ `GatewaySchema.GatewayFrame` is the union of all five. Every frame except the
23
+ heartbeat carries the selector it belongs to and the cursor it was produced at,
24
+ so a client multiplexing several subscriptions on one socket routes on the
25
+ frame rather than on the request id.
26
+
27
+ ## A delta replaces, except where it appends
28
+
29
+ For `workspace-runs`, `run-summary`, `run-tree`, `approvals`, and
30
+ `node-output`, `DeltaFrame.delta` is the whole row set of the selector,
31
+ recomputed from the events accumulated so far. It is not a patch.
32
+
33
+ That is a deliberate trade. A projection is a reproducible fold, and
34
+ recomputation is the only delta that cannot disagree with a fresh snapshot. A
35
+ patch would have to encode an inverse for every fold, and any bug in one would
36
+ leave a client's view permanently wrong in a way nothing detects.
37
+
38
+ Two projections send append deltas: a delta carries only what one event added.
39
+ The client appends it to the rows it already holds.
40
+
41
+ | Selector | Delta carries |
42
+ | ------------ | ------------------------------------------------- |
43
+ | `run-events` | the one event that arrived |
44
+ | `transcript` | the rows that event contributed, usually one line |
45
+
46
+ One projection sends no delta at all. `flow-durations` ranks the runs a flow
47
+ has already finished, so no event of a live run changes a row, and the run that
48
+ would change one is outside the window until it settles. Subscribing to it
49
+ answers the snapshot and ends; a client that wants newer rows takes another
50
+ snapshot.
51
+
52
+ `run-events` rows _are_ the immutable ordered events. `transcript` normally
53
+ adds a row with the same turn counter a full fold would give it. A later native
54
+ call fact can supersede earlier identified telemetry; then the follower sends
55
+ the existing `snapshot-start` / `row` / `snapshot-end` sequence at the new
56
+ cursor to replace those rows. Applying the reset as well as append deltas
57
+ yields exactly the transcript a fresh snapshot would fold. Unidentified legacy
58
+ history is never assigned a guessed call identity to force a match.
59
+
60
+ Events accumulate in the stream, so recomputing each delta does not re-read
61
+ the journal. Resuming a historical `run-summary` first rebuilds its compacted
62
+ health prefix once through durable follow replay, as described below. During
63
+ ordinary run following, `run-summary`, `run-tree`, and `approvals` re-read the
64
+ run row for current lifecycle state and open human waits.
65
+
66
+ ## What a delta costs
67
+
68
+ A run subscription folds once per event. A replacing selector sends its whole
69
+ row set on each delta, bounded by `Projections.maxProjectionBytes`; an
70
+ appending selector sends one event's rows, so catching up on E events sends E
71
+ rows in total.
72
+
73
+ A workspace subscription does not fold per event. The follower gathers the
74
+ events that arrive within a 50 millisecond window, or the first 1024 of them,
75
+ and admits them as one batch. Each run's rows are cached and refolded only
76
+ when that run's journal grew, and a grown run's row is re-read once per batch
77
+ rather than once per event. One batch answers one `DeltaFrame` carrying the
78
+ whole workspace, so a burst across many runs costs one frame plus one run
79
+ lookup per run that changed. The window bounds the frame rate at twenty per
80
+ second no matter how many runs journal at once; a quiet workspace sends no
81
+ delta at all.
82
+
83
+ ## A reconciled snapshot cutoff
84
+
85
+ The gateway reads each run summary before and after its journal snapshot. If
86
+ the summary changed, it retries with the new summary, up to eight journal
87
+ reads. A row that keeps changing is refused with `run_unavailable`. This keeps
88
+ a terminal event from being acknowledged with the preceding run status.
89
+
90
+ Snapshot rows and the follow seed share the same final event buffer. Workspace
91
+ snapshots reconcile up to eight runs concurrently. Listing stops at 500 runs,
92
+ an empty page, or a repeated cursor; each continued page adds a run, so at most
93
+ 500 pages are read.
94
+
95
+ An empty event buffer follows from the beginning, including journal sequence
96
+ zero. A buffer that already contains sequence zero suppresses those seeded
97
+ events, including their derived offsets.
98
+
99
+ ## What a cursor is
100
+
101
+ `GatewaySchema.ProjectionCursor` carries five things:
102
+
103
+ | Field | Holds |
104
+ | ------------ | ----------------------------------------------------------------------------- |
105
+ | `selector` | the exact selector that issued it |
106
+ | `projection` | that selector's projection name |
107
+ | `runId` | the source run, or `null` for a workspace projection |
108
+ | `value` | the journal sequence the read reached |
109
+ | `offset` | the position within that sequence, for several derived events at one sequence |
110
+
111
+ The selector is embedded rather than referenced, so two `node-output`
112
+ subscriptions on different nodes of one run cannot share a cursor. The
113
+ `(value, offset)` pair rather than a bare sequence is what lets a client resume
114
+ inside one journal sequence without losing a derived event.
115
+
116
+ ## Resuming
117
+
118
+ Pass a cursor as `after` and the subscription skips the snapshot, answering the
119
+ deltas after that cursor alone. The read still happens, because a folded
120
+ projection cannot be recomputed from the events after the cursor alone. What
121
+ the client skips is receiving rows it already has.
122
+
123
+ A resumed run summary rebuilds its health prefix from the durable subscription
124
+ replay before emitting deltas. The latest compacted buffer may have replaced an
125
+ observation that was current at the older cursor; reusing that buffer could let
126
+ a late, weaker reading displace stronger evidence. Replay uses the same bounded
127
+ compaction as a snapshot and emits nothing at or before the issued cursor.
128
+
129
+ The bounded fold admits only observations for the run's own subject before
130
+ applying evidence precedence or eviction. Foreign-subject observations still
131
+ advance the raw journal cursor. It retains at most 16 health incarnations and
132
+ protects the authoritative run incarnation's strongest evidence from eviction. Late readings
133
+ from former owners cannot clear that reading or let weaker evidence replace it;
134
+ equal evidence advances only with a later durable sequence. Live run summaries
135
+ refresh the run row before compacting each event, and workspace subscriptions
136
+ refresh it before compacting that run's first new event in a batch.
137
+
138
+ Every frame of one snapshot carries the same cursor, the position the read
139
+ reached, so a cursor from a row proves nothing about which rows arrived. A
140
+ client commits a snapshot and its cursor together, at `snapshot-end`. A
141
+ connection cut before `snapshot-end` leaves no cursor to resume from: the
142
+ client re-subscribes without `after`.
143
+
144
+ A cursor is refused with `malformed_request` when it:
145
+
146
+ - names a different projection than the subscription's selector;
147
+ - names a different selector of the same projection;
148
+ - names a different run than the subscription's;
149
+ - is negative, fractional, or not a safe integer in `value` or `offset`;
150
+ - names a position past the run's last position;
151
+ - names a position the run never issued.
152
+
153
+ ## Workspace subscriptions do not resume
154
+
155
+ Control journal sequences belong to per-run partitions, so there is no
156
+ workspace-wide sequence to advertise. A workspace cursor is therefore always
157
+ `value` 0 with a `null` run, and passing one back is refused: a
158
+ `workspace-runs` or unscoped `approvals` subscription has no resumable cursor
159
+ at all.
160
+
161
+ It can still follow, and does, by following every partition without a cursor.
162
+ The follower drops replay through each retained run's last sequence and
163
+ duplicate-sequence offset. Each source stores that position and updates it on
164
+ append, so checking replay does not scan its journal.
165
+
166
+ Sources and cached exclusion verdicts share a `maxWorkspaceRuns` ceiling of
167
+ 500 entries. An excluded run retains its journal cutoff and observed position,
168
+ without its history. Replayed events through that cutoff cost no further
169
+ journal reads; later events reconsider the run. Missing run partitions,
170
+ including `plan:` partitions, are skipped after the first lookup failure while
171
+ the verdict is retained. New entries evict the oldest exclusion verdict and
172
+ its cursor state. An evicted run may require another read. At 500 admitted
173
+ sources, a run created after the oldest followed run displaces it, so the
174
+ tail keeps the newest runs the snapshot folded. An older run stays out.
175
+
176
+ ## Heartbeats
177
+
178
+ An idle subscription emits a `HeartbeatFrame` every
179
+ `Projections.heartbeatIntervalMillis`, which is 30 seconds. A relay cuts an
180
+ idle tunnel at 600 seconds, so a quiet run has to produce a frame well inside
181
+ that window or every follower is disconnected and reconnects. Thirty seconds
182
+ leaves twenty heartbeats of margin. `Projections.layerWith({ heartbeatMillis })`
183
+ shortens it for a relay that cuts sooner. `ServerOptions.heartbeatMillis` at
184
+ the bind re-times both this keepalive and the `Watch` keepalive below, so one
185
+ option governs every followed socket the gateway serves.
186
+
187
+ The first tick is dropped, so the cadence is what it says it is: an immediate
188
+ keepalive would arrive before the snapshot it is meant to keep alive.
189
+
190
+ ## The other keepalive
191
+
192
+ `ControlRpcs.Watch` on `/rpc/ws` has the same idle problem and no frame type of
193
+ its own for a keepalive, so the gateway publishes one as a `ControlEvent` whose
194
+ kind no emitter uses: `GatewayServer.watchHeartbeatKind`, the literal
195
+ `control.gateway.heartbeat`. A fold that does not know the kind ignores it,
196
+ which is what every fold in this package already does with an unknown kind.
197
+
198
+ Two properties make it safe to ignore and safe to read:
199
+
200
+ - It repeats the sequence and run-scoped cursor of the last event delivered,
201
+ including any expansion offset. Before delivery it retains the resume cursor.
202
+ - It carries the watched run id, so a client routing by run keeps routing.
203
+
204
+ A snapshot read, `follow: false`, is left alone. It has to end.