@smthrs/gateway 0.34.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 -29182
  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 -61
  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 -183
  604. package/src/rpc/index.d.ts +0 -221
  605. package/src/rpc/index.js +0 -2431
@@ -0,0 +1,394 @@
1
+ /**
2
+ * The DevTools projection: one run inspected the way React DevTools inspects
3
+ * a component tree (#2931).
4
+ *
5
+ * A view over the trace model (`RunTrace.ts`), which is itself the fold of the
6
+ * `run-events` projection the run card, the terminal and the CLI already read.
7
+ * There is no second node model and no second data source: a DevTools node is
8
+ * a trace span with its measured timing, and an inspection is that span's
9
+ * recorded detail plus the journal records written while it was open. Every
10
+ * reader folds the same journal, so the app pane, `/devtools` in the terminal
11
+ * and `smthrs runs devtools` show one run the same way, and a live run updates
12
+ * as its subscription appends records.
13
+ *
14
+ * Pure: no server, no filesystem, no clock.
15
+ * @since 1.0.0
16
+ */
17
+
18
+ import { clip, firstLine } from "./Diagnosis.ts"
19
+ import {
20
+ durationWords,
21
+ type JournalRecord,
22
+ type SpanKind,
23
+ spanPath,
24
+ type SpanStatus,
25
+ type TraceModel,
26
+ type TraceSpan
27
+ } from "./RunTrace.ts"
28
+
29
+ /**
30
+ * One node of the tree: a trace span with its measured timing.
31
+ *
32
+ * @category models
33
+ * @since 1.0.0
34
+ */
35
+ export interface DevToolsNode {
36
+ readonly id: string
37
+ readonly depth: number
38
+ readonly kind: SpanKind
39
+ readonly label: string
40
+ readonly status: SpanStatus
41
+ readonly startedAt: number
42
+ /** Absent while the span is open. */
43
+ readonly endedAt?: number | undefined
44
+ /** Measured to the settlement, or to the trace's end while running; absent when nothing measured it. */
45
+ readonly durationMs?: number | undefined
46
+ /** Recorded children, so a collapsed reader still knows the node has any. */
47
+ readonly children: number
48
+ /** The journal sequence that opened the node. */
49
+ readonly sequence?: number | undefined
50
+ }
51
+
52
+ /**
53
+ * One journal record written while the inspected node was open.
54
+ *
55
+ * @category models
56
+ * @since 1.0.0
57
+ */
58
+ export interface DevToolsFrame {
59
+ readonly sequence: number
60
+ readonly at: number
61
+ readonly kind: string
62
+ readonly payload: unknown
63
+ }
64
+
65
+ /**
66
+ * The inspected node: its recorded detail and its journal frames.
67
+ *
68
+ * Every field is read off the journal; a field the journal did not record is
69
+ * absent, never invented.
70
+ *
71
+ * @category models
72
+ * @since 1.0.0
73
+ */
74
+ export interface DevToolsInspection {
75
+ readonly node: DevToolsNode
76
+ /** The recorded ancestry, root first, ending in the node itself. */
77
+ readonly path: ReadonlyArray<string>
78
+ /** A call's input, as journaled. */
79
+ readonly input?: unknown | undefined
80
+ /** A call's settled value, a model's text, or a resolved text. */
81
+ readonly output?: string | undefined
82
+ /** A cell's source text. */
83
+ readonly source?: string | undefined
84
+ /** What a cell printed for the next model turn. */
85
+ readonly printed?: string | undefined
86
+ /** A failure's message. */
87
+ readonly failure?: string | undefined
88
+ readonly seat?: string | undefined
89
+ readonly tokens?: { readonly input: number; readonly output: number } | undefined
90
+ /** A detached child's recorded execution id. */
91
+ readonly childRunId?: string | undefined
92
+ /** The journal kind that opened the node. */
93
+ readonly event?: string | undefined
94
+ /** Every other payload field the opening record carried. */
95
+ readonly fields: ReadonlyArray<readonly [key: string, value: unknown]>
96
+ /** The newest frames, oldest first, bounded by the reader's limit. */
97
+ readonly frames: ReadonlyArray<DevToolsFrame>
98
+ /** How many frames the node has in all, so a bounded list says what it left out. */
99
+ readonly frameCount: number
100
+ }
101
+
102
+ /**
103
+ * The tree of one run, in tree order, with the run's own counts.
104
+ *
105
+ * @category models
106
+ * @since 1.0.0
107
+ */
108
+ export interface DevToolsModel {
109
+ readonly runId: string
110
+ /** The root's label: the run and its flow, as the trace names them. */
111
+ readonly label: string
112
+ readonly status: string
113
+ readonly nodes: ReadonlyArray<DevToolsNode>
114
+ readonly counts: TraceModel["counts"]
115
+ /** The recorded wall time of the whole trace. */
116
+ readonly wallMs: number
117
+ }
118
+
119
+ /**
120
+ * What a reader may bound.
121
+ *
122
+ * @category models
123
+ * @since 1.0.0
124
+ */
125
+ export interface DevToolsOptions {
126
+ /** The most recent frames kept on an inspection; the default keeps 100. */
127
+ readonly frames?: number | undefined
128
+ }
129
+
130
+ /**
131
+ * The frames an inspection keeps when the reader names no bound.
132
+ *
133
+ * @category constants
134
+ * @since 1.0.0
135
+ */
136
+ export const defaultFrameLimit = 100
137
+
138
+ const asRecord = (value: unknown): Record<string, unknown> =>
139
+ typeof value === "object" && value !== null && !Array.isArray(value) ? value as Record<string, unknown> : {}
140
+
141
+ /** The record's time: the agent's own `at` stamp when it carries one, the journal's otherwise (the fold's rule). */
142
+ const timeOf = (record: JournalRecord): number => {
143
+ const payload = asRecord(record.payload)
144
+ // The agent's own `at` stamp, the engine envelope's native `emittedAtMs`
145
+ // (an ingested native fact is journaled later than it happened), else the journal's.
146
+ const at = payload.at ?? payload.emittedAtMs
147
+ return typeof at === "number" && Number.isFinite(at) ? at : record.occurredAt ?? 0
148
+ }
149
+
150
+ /**
151
+ * The `<executionId>:<generation>` an engine span's id carries, as EngineTrace
152
+ * spells it: an execution's id holds the two parts, an attempt's or event's
153
+ * id holds them encoded once more as its first segment.
154
+ */
155
+ const engineKeyOf = (span: TraceSpan): string | undefined => {
156
+ const match = /^(engine|engine-attempt|engine-event):([^:]+):([^:]+)/.exec(span.id)
157
+ if (match === null) return undefined
158
+ return match[1] === "engine" ? `${match[2]}:${match[3]}` : decodeURIComponent(match[2]!)
159
+ }
160
+
161
+ /** The same key off a journaled engine envelope; absent for every other record. */
162
+ const envelopeKeyOf = (record: JournalRecord): string | undefined => {
163
+ if (record.kind !== "control.engine.event") return undefined
164
+ const { executionId, generation } = asRecord(record.payload)
165
+ return typeof executionId === "string" && typeof generation === "number"
166
+ ? `${encodeURIComponent(executionId)}:${encodeURIComponent(String(generation))}`
167
+ : undefined
168
+ }
169
+
170
+ const OPEN: ReadonlySet<string> = new Set(["running", "waiting"])
171
+
172
+ /** Measured to the settlement, or to the trace's end while the span is still running. */
173
+ const durationOf = (span: TraceSpan, model: TraceModel): number | undefined => {
174
+ const end = span.endedAt ?? (OPEN.has(span.status) ? model.extent.end : undefined)
175
+ return end === undefined ? undefined : Math.max(end - span.startedAt, 0)
176
+ }
177
+
178
+ const nodeOf = (span: TraceSpan, model: TraceModel): DevToolsNode => {
179
+ const durationMs = durationOf(span, model)
180
+ return {
181
+ id: span.id,
182
+ depth: span.depth,
183
+ kind: span.kind,
184
+ label: span.label,
185
+ status: span.status,
186
+ startedAt: span.startedAt,
187
+ endedAt: span.endedAt,
188
+ durationMs,
189
+ children: span.children.length,
190
+ sequence: span.detail.sequence
191
+ }
192
+ }
193
+
194
+ /**
195
+ * The tree of a run, one node per trace span in tree order.
196
+ *
197
+ * @param model the trace the reader already folds
198
+ *
199
+ * @category constructors
200
+ * @since 1.0.0
201
+ */
202
+ export const devTools = (model: TraceModel): DevToolsModel => ({
203
+ runId: model.root.id.startsWith("run:") ? model.root.id.slice(4) : model.root.id,
204
+ label: model.root.label,
205
+ status: model.root.status,
206
+ nodes: model.rows.map((span) => nodeOf(span, model)),
207
+ counts: model.counts,
208
+ wallMs: Math.max(model.extent.end - model.extent.start, 0)
209
+ })
210
+
211
+ /**
212
+ * The journal records written while `span` was open: from the record that
213
+ * opened it through the record that settled it (a frame closes on the next
214
+ * frame's opening, so that record is its last), or every later record while
215
+ * it is still open. Two calls open at once share the records of their
216
+ * overlap. An instantaneous event owns its own record alone. An engine
217
+ * execution owns every native record of its execution and generation, and an
218
+ * attempt or engine event those of its window, by the envelope's native time
219
+ * rather than the later ingestion time. The run root owns the whole journal.
220
+ * A span the journal never opened with a sequence has no frames.
221
+ *
222
+ * @param model the trace
223
+ * @param span one of its spans
224
+ *
225
+ * @category getters
226
+ * @since 1.0.0
227
+ */
228
+ export const framesOf = (model: TraceModel, span: TraceSpan): ReadonlyArray<DevToolsFrame> => {
229
+ const opened = span.detail.sequence
230
+ if (span.kind !== "run" && opened === undefined) return []
231
+ const engine = engineKeyOf(span)
232
+ const instant = span.kind === "event" && span.endedAt === undefined
233
+ const owns = (record: JournalRecord & { readonly sequence: number }): boolean => {
234
+ if (span.kind === "run") return true
235
+ if (record.sequence === opened) return true
236
+ if (record.sequence < opened! || instant) return false
237
+ if (engine !== undefined) {
238
+ if (envelopeKeyOf(record) !== engine) return false
239
+ if (span.kind === "execution") return true
240
+ }
241
+ return span.endedAt === undefined || timeOf(record) <= span.endedAt
242
+ }
243
+ const frames: Array<DevToolsFrame> = []
244
+ for (const record of model.journal) {
245
+ if (typeof record.sequence !== "number") continue
246
+ if (!owns(record as JournalRecord & { readonly sequence: number })) continue
247
+ frames.push({ sequence: record.sequence, at: timeOf(record), kind: record.kind ?? "", payload: record.payload })
248
+ }
249
+ return frames
250
+ }
251
+
252
+ /**
253
+ * The inspection of one node, or of the run itself when `id` names no span.
254
+ *
255
+ * @param model the trace
256
+ * @param id the selected span id
257
+ * @param options the frame bound
258
+ *
259
+ * @category getters
260
+ * @since 1.0.0
261
+ */
262
+ export const inspect = (model: TraceModel, id?: string, options: DevToolsOptions = {}): DevToolsInspection => {
263
+ const span = (id === undefined ? undefined : model.rows.find((row) => row.id === id)) ?? model.root
264
+ const { detail } = span
265
+ const limit = Math.max(options.frames ?? defaultFrameLimit, 0)
266
+ const all = framesOf(model, span)
267
+ const usage = detail.usage
268
+ const tokens = usage !== undefined && (usage.inputTokens !== undefined || usage.outputTokens !== undefined)
269
+ ? { input: usage.inputTokens ?? 0, output: usage.outputTokens ?? 0 }
270
+ : undefined
271
+ return {
272
+ node: nodeOf(span, model),
273
+ path: spanPath(model, span.id).map((ancestor) => ancestor.label),
274
+ input: detail.input,
275
+ output: detail.output,
276
+ source: detail.source,
277
+ printed: detail.printed,
278
+ failure: detail.message,
279
+ seat: detail.seat,
280
+ tokens,
281
+ childRunId: detail.childRunId,
282
+ event: detail.event,
283
+ fields: Object.entries(detail.fields ?? {}),
284
+ frames: all.slice(Math.max(all.length - limit, 0)),
285
+ frameCount: all.length
286
+ }
287
+ }
288
+
289
+ const glyphOf = (status: SpanStatus): string =>
290
+ status === "running" || status === "waiting"
291
+ ? "◐"
292
+ : status === "failed" || status === "denied"
293
+ ? "✗"
294
+ : status === "completed" || status === "approved" || status === "resolved"
295
+ ? "●"
296
+ : "○"
297
+
298
+ const json = (value: unknown): string => {
299
+ if (typeof value === "string") return value
300
+ try {
301
+ return JSON.stringify(value, null, 2) ?? String(value)
302
+ } catch {
303
+ return String(value)
304
+ }
305
+ }
306
+
307
+ const oneLine = (value: unknown): string => {
308
+ try {
309
+ return firstLine(typeof value === "string" ? value : JSON.stringify(value) ?? String(value))
310
+ } catch {
311
+ return String(value)
312
+ }
313
+ }
314
+
315
+ const indent = (text: string): ReadonlyArray<string> => text.split("\n").map((line) => ` ${line}`)
316
+
317
+ /**
318
+ * The tree and the inspection as text lines, for the terminal and the CLI.
319
+ *
320
+ * The tree is one line per node: glyph, label indented by depth, the status
321
+ * word when it is not `completed`, the measured duration, and the node's id,
322
+ * which is what `/devtools` and `runs devtools` take to inspect it. Under it, the
323
+ * selected node's facts in the order the app pane shows them. The root is
324
+ * inspected when `selected` names no node.
325
+ *
326
+ * @param model the trace
327
+ * @param selected the selected span id
328
+ * @param options the frame bound and the column width
329
+ *
330
+ * @category rendering
331
+ * @since 1.0.0
332
+ */
333
+ export const lines = (
334
+ model: TraceModel,
335
+ selected?: string,
336
+ options: DevToolsOptions & { readonly width?: number | undefined } = {}
337
+ ): ReadonlyArray<string> => {
338
+ const tree = devTools(model)
339
+ const width = Math.max(options.width ?? 100, 40)
340
+ const inspection = inspect(model, selected, options)
341
+ const facts = [
342
+ `${tree.counts.spans} ${tree.counts.spans === 1 ? "span" : "spans"}`,
343
+ tree.counts.running > 0 ? `${tree.counts.running} running` : undefined,
344
+ tree.counts.failed > 0 ? `${tree.counts.failed} failed` : undefined,
345
+ tree.counts.spans > 0 ? `t = ${durationWords(tree.wallMs)}` : undefined
346
+ ].filter((fact) => fact !== undefined)
347
+ const out: Array<string> = [`${tree.label} · ${tree.status} · ${facts.join(" · ")}`]
348
+ const labelWidth = Math.max(width - 30, 20)
349
+ for (const node of tree.nodes) {
350
+ const marker = node.id === inspection.node.id ? ">" : " "
351
+ const label = clip(`${" ".repeat(node.depth)}${glyphOf(node.status)} ${node.label}`, labelWidth).padEnd(labelWidth)
352
+ const status = node.status === "completed" ? "" : node.status
353
+ const duration = node.durationMs === undefined ? "" : durationWords(node.durationMs)
354
+ out.push(`${marker} ${label} ${status.padEnd(10)} ${duration.padEnd(7)} ${node.id}`.trimEnd())
355
+ }
356
+ const { node } = inspection
357
+ out.push("", `${node.kind} · ${inspection.path.join(" / ")} · ${node.status}`)
358
+ if (node.startedAt > 0) out.push(`started ${new Date(node.startedAt).toISOString()}`)
359
+ if (node.durationMs !== undefined) {
360
+ out.push(`duration ${durationWords(node.durationMs)}${node.endedAt === undefined ? " · open" : ""}`)
361
+ }
362
+ if (inspection.seat !== undefined) out.push(`seat ${inspection.seat}`)
363
+ if (inspection.tokens !== undefined) {
364
+ out.push(`tokens ${inspection.tokens.input} in / ${inspection.tokens.output} out`)
365
+ }
366
+ if (inspection.childRunId !== undefined) out.push(`child ${inspection.childRunId}`)
367
+ if (inspection.event !== undefined) {
368
+ out.push(`journal ${inspection.event}${node.sequence === undefined ? "" : ` · #${node.sequence}`}`)
369
+ }
370
+ if (node.children > 0) out.push(`children ${node.children}`)
371
+ const blocks: ReadonlyArray<readonly [title: string, text: string | undefined]> = [
372
+ ["Script", inspection.source],
373
+ ["Printed", inspection.printed],
374
+ ["Input", inspection.input === undefined ? undefined : json(inspection.input)],
375
+ ["Output", inspection.output],
376
+ ["Failure", inspection.failure],
377
+ [
378
+ "Fields",
379
+ inspection.fields.length === 0
380
+ ? undefined
381
+ : inspection.fields.map(([key, value]) => `${key.padEnd(12)} ${oneLine(value)}`).join("\n")
382
+ ]
383
+ ]
384
+ for (const [title, text] of blocks) {
385
+ if (text === undefined) continue
386
+ out.push(title, ...indent(text))
387
+ }
388
+ const shown = inspection.frames.length
389
+ out.push(`Frames ${shown === inspection.frameCount ? shown : `${shown} of ${inspection.frameCount}`}`)
390
+ for (const frame of inspection.frames) {
391
+ out.push(` #${frame.sequence} ${clip(`${frame.kind} ${oneLine(frame.payload)}`, Math.max(width - 8, 20))}`)
392
+ }
393
+ return out
394
+ }
@@ -0,0 +1,174 @@
1
+ /**
2
+ * A run's recorded history as the gateway serves it: fork a run at a frame,
3
+ * optionally with one step's result edited, and verify what a resume under the
4
+ * current flow code would replay.
5
+ *
6
+ * The gateway declares the wire shapes and the one service its `Run.Fork` and
7
+ * `Run.Verify` handlers call. The host that owns the project's stores
8
+ * implements it (`smthrs serve` does, over the same history library
9
+ * `smthrs runs fork` and `smthrs runs verify` use), so the CLI, the app and the
10
+ * terminal read one report and fork one way. A gateway composed without it
11
+ * answers both procedures `Unavailable`.
12
+ *
13
+ * @since 1.0.0
14
+ */
15
+
16
+ import { Context, type Effect, Schema } from "effect"
17
+
18
+ /**
19
+ * One recorded step, by the key its attempts are recorded under, with the
20
+ * action and graph node that recorded it when the record names them.
21
+ *
22
+ * @since 1.0.0
23
+ * @category models
24
+ */
25
+ export const Step = Schema.Struct({
26
+ stepKeyDigest: Schema.String,
27
+ action: Schema.optional(Schema.String),
28
+ node: Schema.optional(Schema.String)
29
+ })
30
+
31
+ /**
32
+ * One recorded step.
33
+ *
34
+ * @since 1.0.0
35
+ * @category models
36
+ */
37
+ export type Step = typeof Step.Type
38
+
39
+ /**
40
+ * Which run to verify.
41
+ *
42
+ * @since 1.0.0
43
+ * @category models
44
+ */
45
+ export const VerifyInput = Schema.Struct({ runId: Schema.NonEmptyString })
46
+
47
+ /**
48
+ * Which run to verify.
49
+ *
50
+ * @since 1.0.0
51
+ * @category models
52
+ */
53
+ export type VerifyInput = typeof VerifyInput.Type
54
+
55
+ /**
56
+ * What resuming the run under the current flow code would do: the steps it
57
+ * replays from their records, the unfinished step it re-enters, the first step
58
+ * it would execute again, and the recorded steps it would not replay. A run is
59
+ * `divergent` when a recorded step goes unreplayed while the resume executes.
60
+ *
61
+ * @since 1.0.0
62
+ * @category models
63
+ */
64
+ export const VerifyReport = Schema.Struct({
65
+ runId: Schema.String,
66
+ verdict: Schema.Literals(["consistent", "divergent"]),
67
+ replayed: Schema.Array(Step),
68
+ resumes: Schema.optional(Step),
69
+ executes: Schema.optional(Step),
70
+ notReplayed: Schema.Array(Step)
71
+ })
72
+
73
+ /**
74
+ * What resuming the run under the current flow code would do.
75
+ *
76
+ * @since 1.0.0
77
+ * @category models
78
+ */
79
+ export type VerifyReport = typeof VerifyReport.Type
80
+
81
+ /**
82
+ * One recorded step whose result the fork replaces with `result`.
83
+ *
84
+ * @since 1.0.0
85
+ * @category models
86
+ */
87
+ export const StepEdit = Schema.Struct({
88
+ stepKeyDigest: Schema.NonEmptyString,
89
+ result: Schema.Json
90
+ })
91
+
92
+ /**
93
+ * One recorded step whose result the fork replaces.
94
+ *
95
+ * @since 1.0.0
96
+ * @category models
97
+ */
98
+ export type StepEdit = typeof StepEdit.Type
99
+
100
+ /**
101
+ * Where to fork a run: the exact journal sequence `at`, the lineage (the one
102
+ * recorded at that frame when absent), and optionally one step's result
103
+ * edited on the child.
104
+ *
105
+ * @since 1.0.0
106
+ * @category models
107
+ */
108
+ export const ForkInput = Schema.Struct({
109
+ runId: Schema.NonEmptyString,
110
+ at: Schema.Int.check(Schema.isGreaterThanOrEqualTo(0)),
111
+ lineage: Schema.optional(Schema.NonEmptyString),
112
+ step: Schema.optional(StepEdit)
113
+ })
114
+
115
+ /**
116
+ * Where to fork a run.
117
+ *
118
+ * @since 1.0.0
119
+ * @category models
120
+ */
121
+ export type ForkInput = typeof ForkInput.Type
122
+
123
+ /**
124
+ * The fork: a parked child run of `parentRunId`, resumed like any parked run.
125
+ *
126
+ * @since 1.0.0
127
+ * @category models
128
+ */
129
+ export const ForkOutput = Schema.Struct({
130
+ runId: Schema.String,
131
+ parentRunId: Schema.String,
132
+ status: Schema.Literal("parked")
133
+ })
134
+
135
+ /**
136
+ * The fork.
137
+ *
138
+ * @since 1.0.0
139
+ * @category models
140
+ */
141
+ export type ForkOutput = typeof ForkOutput.Type
142
+
143
+ /**
144
+ * The host refused the history request, with the same stable code and
145
+ * sentence `smthrs runs fork` and `smthrs runs verify` print: an unknown run,
146
+ * a run with no recorded history, a frame outside it, a step that cannot be
147
+ * edited.
148
+ *
149
+ * @since 1.0.0
150
+ * @category errors
151
+ */
152
+ export class HistoryRefused extends Schema.TaggedError<HistoryRefused>()("@smthrs/gateway/HistoryRefused", {
153
+ code: Schema.String,
154
+ message: Schema.String
155
+ }) {}
156
+
157
+ /**
158
+ * Fork and verify over the project's recorded history.
159
+ *
160
+ * @since 1.0.0
161
+ * @category models
162
+ */
163
+ export interface Service {
164
+ readonly fork: (input: ForkInput) => Effect.Effect<ForkOutput, HistoryRefused>
165
+ readonly verify: (input: VerifyInput) => Effect.Effect<VerifyReport, HistoryRefused>
166
+ }
167
+
168
+ /**
169
+ * The project's history, as the host that owns its stores serves it.
170
+ *
171
+ * @since 1.0.0
172
+ * @category services
173
+ */
174
+ export class RunHistory extends Context.Service<RunHistory, Service>()("@smthrs/gateway/RunHistory") {}