@rynx-ai/server 0.1.11-beta.4 → 0.1.11-beta.41

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 (497) hide show
  1. package/dist/control-api.d.ts +17 -4
  2. package/dist/control-api.js +722 -84
  3. package/dist/control-web/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  4. package/dist/control-web/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  5. package/dist/control-web/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  6. package/dist/control-web/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  7. package/dist/control-web/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  8. package/dist/control-web/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  9. package/dist/control-web/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  10. package/dist/control-web/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  11. package/dist/control-web/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  12. package/dist/control-web/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  13. package/dist/control-web/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  14. package/dist/control-web/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  15. package/dist/control-web/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  16. package/dist/control-web/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  17. package/dist/control-web/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  18. package/dist/control-web/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  19. package/dist/control-web/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  20. package/dist/control-web/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  21. package/dist/control-web/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  22. package/dist/control-web/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  23. package/dist/control-web/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  24. package/dist/control-web/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  25. package/dist/control-web/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  26. package/dist/control-web/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  27. package/dist/control-web/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  28. package/dist/control-web/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  29. package/dist/control-web/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  30. package/dist/control-web/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  31. package/dist/control-web/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  32. package/dist/control-web/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  33. package/dist/control-web/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  34. package/dist/control-web/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  35. package/dist/control-web/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  36. package/dist/control-web/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  37. package/dist/control-web/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  38. package/dist/control-web/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  39. package/dist/control-web/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  40. package/dist/control-web/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  41. package/dist/control-web/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  42. package/dist/control-web/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  43. package/dist/control-web/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  44. package/dist/control-web/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  45. package/dist/control-web/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  46. package/dist/control-web/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  47. package/dist/control-web/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  48. package/dist/control-web/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  49. package/dist/control-web/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  50. package/dist/control-web/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  51. package/dist/control-web/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  52. package/dist/control-web/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  53. package/dist/control-web/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  54. package/dist/control-web/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  55. package/dist/control-web/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  56. package/dist/control-web/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  57. package/dist/control-web/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  58. package/dist/control-web/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  59. package/dist/control-web/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  60. package/dist/control-web/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  61. package/dist/control-web/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  62. package/dist/control-web/assets/abap-CLvhMVsD.js +1 -0
  63. package/dist/control-web/assets/abnfDiagram-VRR7QNED-D_NL89dn.js +1 -0
  64. package/dist/control-web/assets/actionscript-3--17pq3dv.js +1 -0
  65. package/dist/control-web/assets/ada-C5qYipkI.js +1 -0
  66. package/dist/control-web/assets/andromeeda-vGVdxbeo.js +1 -0
  67. package/dist/control-web/assets/angular-html-DlZBZkSp.js +1 -0
  68. package/dist/control-web/assets/angular-ts-BVPGOT0K.js +1 -0
  69. package/dist/control-web/assets/apache-U0d_L8uA.js +1 -0
  70. package/dist/control-web/assets/apex-CGTLDQj6.js +1 -0
  71. package/dist/control-web/assets/apl-cDmXqmZ-.js +1 -0
  72. package/dist/control-web/assets/applescript-CCn79oCD.js +1 -0
  73. package/dist/control-web/assets/ara-4CJ0cIlV.js +1 -0
  74. package/dist/control-web/assets/arc-Pry-7G1_.js +1 -0
  75. package/dist/control-web/assets/architecture-TIHT7OUA-C9wU1KtW.js +1 -0
  76. package/dist/control-web/assets/architectureDiagram-ZJ3FMSHR-CV0rxVH6.js +36 -0
  77. package/dist/control-web/assets/array-BifhSqXX.js +1 -0
  78. package/dist/control-web/assets/asciidoc-DE70LPWp.js +1 -0
  79. package/dist/control-web/assets/asm-Cmm7eHzH.js +1 -0
  80. package/dist/control-web/assets/astro-B1Q6BwBx.js +1 -0
  81. package/dist/control-web/assets/aurora-x-CDeNXAV0.js +1 -0
  82. package/dist/control-web/assets/awk-BWXHIvNe.js +1 -0
  83. package/dist/control-web/assets/ayu-dark-DluEY0Gj.js +1 -0
  84. package/dist/control-web/assets/ayu-light-C3h-C4tm.js +1 -0
  85. package/dist/control-web/assets/ayu-mirage-Bqwy1Gya.js +1 -0
  86. package/dist/control-web/assets/ballerina-B7ZEbQpA.js +1 -0
  87. package/dist/control-web/assets/bat-Bo4NYOV-.js +1 -0
  88. package/dist/control-web/assets/beancount-D-usSTwE.js +1 -0
  89. package/dist/control-web/assets/berry-DKpUyyne.js +1 -0
  90. package/dist/control-web/assets/bibtex-Ci_nEsc7.js +1 -0
  91. package/dist/control-web/assets/bicep-CUHmPFLl.js +1 -0
  92. package/dist/control-web/assets/bird2-C2hNVINV.js +1 -0
  93. package/dist/control-web/assets/blade-Xpu-LGTm.js +1 -0
  94. package/dist/control-web/assets/blockDiagram-677ZJIJ3-Cc7nrkZh.js +132 -0
  95. package/dist/control-web/assets/bsl-BkkzgIyY.js +1 -0
  96. package/dist/control-web/assets/c-iCihek07.js +1 -0
  97. package/dist/control-web/assets/c3-CnJL0r0V.js +1 -0
  98. package/dist/control-web/assets/c4Diagram-LMCZKHZV-BPRU9m-F.js +10 -0
  99. package/dist/control-web/assets/cadence-CQ2zXKGN.js +1 -0
  100. package/dist/control-web/assets/cairo-DLTphjLi.js +1 -0
  101. package/dist/control-web/assets/catppuccin-frappe-3VR1Za6u.js +1 -0
  102. package/dist/control-web/assets/catppuccin-latte-DwIHMF0Q.js +1 -0
  103. package/dist/control-web/assets/catppuccin-macchiato-DYnBP6_5.js +1 -0
  104. package/dist/control-web/assets/catppuccin-mocha-DYhrFGRu.js +1 -0
  105. package/dist/control-web/assets/channel-BFm2_j8K.js +1 -0
  106. package/dist/control-web/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
  107. package/dist/control-web/assets/chunk-32BRIVSS-Bbq3O54m.js +1 -0
  108. package/dist/control-web/assets/chunk-52WLFC77-sD4al-Ob.js +10 -0
  109. package/dist/control-web/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
  110. package/dist/control-web/assets/chunk-7BUUIJ7U-Bb538aSH.js +1 -0
  111. package/dist/control-web/assets/chunk-C7G6YPKG-DqHaDS1O.js +1 -0
  112. package/dist/control-web/assets/chunk-EX3LRPZG-36GNQ5wp.js +231 -0
  113. package/dist/control-web/assets/chunk-HOUHSVGY-DeZ63q1j.js +1 -0
  114. package/dist/control-web/assets/chunk-ICXQ74PX-D2yF6lD_.js +2 -0
  115. package/dist/control-web/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
  116. package/dist/control-web/assets/chunk-KEIR6QF5-BICK3FdT.js +161 -0
  117. package/dist/control-web/assets/chunk-MOJQB5TN-CdaKyBz5.js +88 -0
  118. package/dist/control-web/assets/chunk-OGEWGWER-eOXC7kiH.js +1 -0
  119. package/dist/control-web/assets/chunk-PUDLZKDR-6w0LILL_.js +156 -0
  120. package/dist/control-web/assets/chunk-Q4XR5HBZ-CXgD5TGL.js +70 -0
  121. package/dist/control-web/assets/chunk-RYQCIY6F-BsoV8yK2.js +1 -0
  122. package/dist/control-web/assets/chunk-V7JOEXUC-BfoZ78b6.js +206 -0
  123. package/dist/control-web/assets/chunk-VR4S4FIN-BW2gCEMQ.js +1 -0
  124. package/dist/control-web/assets/chunk-WYO6CB5R-CHn7hulw.js +128 -0
  125. package/dist/control-web/assets/chunk-XXDRQBXY-DqAYeljN.js +1 -0
  126. package/dist/control-web/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
  127. package/dist/control-web/assets/chunk-ZGVPDNZ5-CmFP0-fr.js +62 -0
  128. package/dist/control-web/assets/clarity-SemFz856.js +1 -0
  129. package/dist/control-web/assets/classDiagram-OUVF2IWQ-CUe_bETB.js +1 -0
  130. package/dist/control-web/assets/classDiagram-v2-EOCWNBFH-CUe_bETB.js +1 -0
  131. package/dist/control-web/assets/clojure-DqKBuwfJ.js +1 -0
  132. package/dist/control-web/assets/cmake-Bj61d0ZC.js +1 -0
  133. package/dist/control-web/assets/cobol-BsV-839J.js +1 -0
  134. package/dist/control-web/assets/codeowners-C8r90Shi.js +1 -0
  135. package/dist/control-web/assets/codeql-oeQT6MSM.js +1 -0
  136. package/dist/control-web/assets/coffee-CiiSLhB6.js +1 -0
  137. package/dist/control-web/assets/common-lisp-Cv5bFMCO.js +1 -0
  138. package/dist/control-web/assets/coq-BrsZFFmf.js +1 -0
  139. package/dist/control-web/assets/cose-bilkent-JH36ORCC-lJEhNiw_.js +1 -0
  140. package/dist/control-web/assets/cpp-DjoE5qBx.js +1 -0
  141. package/dist/control-web/assets/crystal-DDxHDkHz.js +1 -0
  142. package/dist/control-web/assets/csharp-Ct8U2NOr.js +1 -0
  143. package/dist/control-web/assets/css-LjpOdHib.js +1 -0
  144. package/dist/control-web/assets/csv-Dx-8-gkx.js +1 -0
  145. package/dist/control-web/assets/cue-CE9AQfxI.js +1 -0
  146. package/dist/control-web/assets/cynefin-VYW2F7L2-NaLr7Qlq.js +1 -0
  147. package/dist/control-web/assets/cynefinDiagram-TSTJHNR4-C90wpjAI.js +62 -0
  148. package/dist/control-web/assets/cypher-ClKdZ_lG.js +1 -0
  149. package/dist/control-web/assets/cytoscape.esm-B-NFISlW.js +321 -0
  150. package/dist/control-web/assets/d-qD-0Kul2.js +1 -0
  151. package/dist/control-web/assets/dagre-Buvkdvvj.js +1 -0
  152. package/dist/control-web/assets/dagre-VKFMJZFB-BxrPFWTb.js +4 -0
  153. package/dist/control-web/assets/dark-plus-Cs2F2srj.js +1 -0
  154. package/dist/control-web/assets/dart-DkHntEIa.js +1 -0
  155. package/dist/control-web/assets/dax-BkyTk9wS.js +1 -0
  156. package/dist/control-web/assets/defaultLocale-BFoDCU3G.js +1 -0
  157. package/dist/control-web/assets/desktop-Dlh5hvp9.js +1 -0
  158. package/dist/control-web/assets/diagram-FQU43EPY-VIQINsvz.js +3 -0
  159. package/dist/control-web/assets/diagram-G47NLZAW-DFeAfYXn.js +24 -0
  160. package/dist/control-web/assets/diagram-NH7WQ7WH-ATzdppDd.js +24 -0
  161. package/dist/control-web/assets/diagram-OA4YK3LP-DJZpWmbl.js +30 -0
  162. package/dist/control-web/assets/diagram-WEI45ONY-CqDHcW3g.js +41 -0
  163. package/dist/control-web/assets/diff-woXpYk--.js +1 -0
  164. package/dist/control-web/assets/dist-Dx9YWgcW.js +153 -0
  165. package/dist/control-web/assets/dist-v5Q1xZ2K.js +1 -0
  166. package/dist/control-web/assets/docker-IyjqRm3v.js +1 -0
  167. package/dist/control-web/assets/dotenv-_5a1GRtc.js +1 -0
  168. package/dist/control-web/assets/dracula-BHWKrbxM.js +1 -0
  169. package/dist/control-web/assets/dracula-soft-5eyTD99u.js +1 -0
  170. package/dist/control-web/assets/dream-maker-DW3nJb8Q.js +1 -0
  171. package/dist/control-web/assets/ebnfDiagram-CCIWWBDH-DnP6dHND.js +1 -0
  172. package/dist/control-web/assets/edge-8z7Jp9dO.js +1 -0
  173. package/dist/control-web/assets/elixir-CUV54ev5.js +1 -0
  174. package/dist/control-web/assets/elm-o4NJxfws.js +1 -0
  175. package/dist/control-web/assets/emacs-lisp-C9PiwqqW.js +1 -0
  176. package/dist/control-web/assets/erDiagram-Q63AITRT-Bo8bFqrZ.js +85 -0
  177. package/dist/control-web/assets/erb-CIsHcwm1.js +1 -0
  178. package/dist/control-web/assets/erlang-Cphh6RMH.js +1 -0
  179. package/dist/control-web/assets/eventmodeling-45OFAUF4-DTN8wqsu.js +1 -0
  180. package/dist/control-web/assets/everforest-dark-sB-x3p7T.js +1 -0
  181. package/dist/control-web/assets/everforest-light-Df2xbC6M.js +1 -0
  182. package/dist/control-web/assets/fennel-DQxkIbk2.js +1 -0
  183. package/dist/control-web/assets/fish-BJitypiv.js +1 -0
  184. package/dist/control-web/assets/flowDiagram-23GEKE2U-BwjqRyvd.js +1 -0
  185. package/dist/control-web/assets/fluent-C03EYrpw.js +1 -0
  186. package/dist/control-web/assets/fortran-fixed-form-DEKoE2YW.js +1 -0
  187. package/dist/control-web/assets/fortran-free-form-CYNrtFtB.js +1 -0
  188. package/dist/control-web/assets/fsharp-D13ZGOAj.js +1 -0
  189. package/dist/control-web/assets/ganttDiagram-NO4QXBWP-kxQaBTzd.js +292 -0
  190. package/dist/control-web/assets/gdresource-C0sCabJj.js +1 -0
  191. package/dist/control-web/assets/gdscript-Cp2uCuqX.js +1 -0
  192. package/dist/control-web/assets/gdshader-CBce3t8t.js +1 -0
  193. package/dist/control-web/assets/genie-CV2tkWYe.js +1 -0
  194. package/dist/control-web/assets/gherkin-DExj1W_8.js +1 -0
  195. package/dist/control-web/assets/git-commit-BSykSTBG.js +1 -0
  196. package/dist/control-web/assets/git-rebase-BDPpS8w6.js +1 -0
  197. package/dist/control-web/assets/gitGraph-TEB2WS4Q-a646NnuJ.js +1 -0
  198. package/dist/control-web/assets/gitGraphDiagram-IHSO6WYX-BBe0q0At.js +106 -0
  199. package/dist/control-web/assets/github-dark-C-LZuMrd.js +1 -0
  200. package/dist/control-web/assets/github-dark-default-DXG-b-1a.js +1 -0
  201. package/dist/control-web/assets/github-dark-dimmed-Bx1FflLF.js +1 -0
  202. package/dist/control-web/assets/github-dark-high-contrast-B_tTalzw.js +1 -0
  203. package/dist/control-web/assets/github-light-EUqPIrTm.js +1 -0
  204. package/dist/control-web/assets/github-light-default-BXViO-2h.js +1 -0
  205. package/dist/control-web/assets/github-light-high-contrast-B68TUdTA.js +1 -0
  206. package/dist/control-web/assets/gleam-CSRkHgEL.js +1 -0
  207. package/dist/control-web/assets/glimmer-js-OEO36pDk.js +1 -0
  208. package/dist/control-web/assets/glimmer-ts-BnAPyISE.js +1 -0
  209. package/dist/control-web/assets/glsl-D5MA2a_X.js +1 -0
  210. package/dist/control-web/assets/gn-ilITqXS6.js +1 -0
  211. package/dist/control-web/assets/gnuplot-7GGW24-e.js +1 -0
  212. package/dist/control-web/assets/go-BJwz_mda.js +1 -0
  213. package/dist/control-web/assets/graphlib-DS17s2tU.js +1 -0
  214. package/dist/control-web/assets/graphql-Ctjuxyvl.js +1 -0
  215. package/dist/control-web/assets/groovy-CacY0gHj.js +1 -0
  216. package/dist/control-web/assets/gruvbox-dark-hard-C820rvS2.js +1 -0
  217. package/dist/control-web/assets/gruvbox-dark-medium-BPjhmG05.js +1 -0
  218. package/dist/control-web/assets/gruvbox-dark-soft-MrdJrrXF.js +1 -0
  219. package/dist/control-web/assets/gruvbox-light-hard-BC_s9l72.js +1 -0
  220. package/dist/control-web/assets/gruvbox-light-medium-BAWPOn9u.js +1 -0
  221. package/dist/control-web/assets/gruvbox-light-soft-BSMLrYjP.js +1 -0
  222. package/dist/control-web/assets/hack-D_mkkoLd.js +1 -0
  223. package/dist/control-web/assets/haml-mpgecWZ6.js +1 -0
  224. package/dist/control-web/assets/handlebars-CAx_777f.js +1 -0
  225. package/dist/control-web/assets/haskell-D8IpX4py.js +1 -0
  226. package/dist/control-web/assets/haxe-OTjmBuCE.js +1 -0
  227. package/dist/control-web/assets/hcl-Dh228itO.js +1 -0
  228. package/dist/control-web/assets/highlighted-body-OFNGDK62-DVCHy9oI.js +1 -0
  229. package/dist/control-web/assets/hjson-CxZEssPk.js +1 -0
  230. package/dist/control-web/assets/hlsl-Cvrh5tZx.js +1 -0
  231. package/dist/control-web/assets/horizon-CE9ld1lL.js +1 -0
  232. package/dist/control-web/assets/horizon-bright-Br1oVSNq.js +1 -0
  233. package/dist/control-web/assets/houston-CsvMBhTu.js +1 -0
  234. package/dist/control-web/assets/html-B2lrdnWr.js +1 -0
  235. package/dist/control-web/assets/html-derivative-CDfZYcul.js +1 -0
  236. package/dist/control-web/assets/http-kmH8AyfE.js +1 -0
  237. package/dist/control-web/assets/hurl-DCZHXKU4.js +1 -0
  238. package/dist/control-web/assets/hxml-B0Qn7Nwc.js +1 -0
  239. package/dist/control-web/assets/hy-CZbG8q4J.js +1 -0
  240. package/dist/control-web/assets/imba-DsUTQ-LC.js +1 -0
  241. package/dist/control-web/assets/index-D7URT6K_.js +140 -0
  242. package/dist/control-web/assets/index-uEpvRMX9.css +1 -0
  243. package/dist/control-web/assets/info-DKCQHKI2-Cp_JrY-b.js +1 -0
  244. package/dist/control-web/assets/infoDiagram-FWYZ7A6U-CAm-h4F_.js +2 -0
  245. package/dist/control-web/assets/ini-B5eOa1yu.js +1 -0
  246. package/dist/control-web/assets/init-C-OQMol4.js +1 -0
  247. package/dist/control-web/assets/ishikawaDiagram-FXEZZL3T-O17pqcWr.js +70 -0
  248. package/dist/control-web/assets/java-DdHNQ9hk.js +1 -0
  249. package/dist/control-web/assets/javascript-obGGvMPs.js +1 -0
  250. package/dist/control-web/assets/jinja-BMiPVedm.js +1 -0
  251. package/dist/control-web/assets/jison-CBjhYtSs.js +1 -0
  252. package/dist/control-web/assets/journeyDiagram-5HDEW3XC-DQ-JuSoR.js +139 -0
  253. package/dist/control-web/assets/json-DAgxKhMr.js +1 -0
  254. package/dist/control-web/assets/json5-BR5RXkoi.js +1 -0
  255. package/dist/control-web/assets/jsonc-CYpm1nAK.js +1 -0
  256. package/dist/control-web/assets/jsonl-CmCQp5Yx.js +1 -0
  257. package/dist/control-web/assets/jsonnet-CJTPZ8u_.js +1 -0
  258. package/dist/control-web/assets/jssm-DXw9l8Rf.js +1 -0
  259. package/dist/control-web/assets/jsx-gTgmArGx.js +1 -0
  260. package/dist/control-web/assets/julia-CjHxn3vf.js +1 -0
  261. package/dist/control-web/assets/just-DMArCiVH.js +1 -0
  262. package/dist/control-web/assets/kanagawa-dragon-CXtmUGW6.js +1 -0
  263. package/dist/control-web/assets/kanagawa-lotus-BN08jTvb.js +1 -0
  264. package/dist/control-web/assets/kanagawa-wave-CTweb8Dz.js +1 -0
  265. package/dist/control-web/assets/kanban-definition-HUTT4EX6-Cgv3kPbm.js +89 -0
  266. package/dist/control-web/assets/katex-CyHG4N6b.js +1 -0
  267. package/dist/control-web/assets/kdl-CsD5j6eV.js +1 -0
  268. package/dist/control-web/assets/kotlin-DhhofPvG.js +1 -0
  269. package/dist/control-web/assets/kusto-BUv0MjJC.js +1 -0
  270. package/dist/control-web/assets/laserwave-C_8bwKvT.js +1 -0
  271. package/dist/control-web/assets/latex-D9bvcAJr.js +1 -0
  272. package/dist/control-web/assets/lean-CewbzKMR.js +1 -0
  273. package/dist/control-web/assets/less-DVTAwKKz.js +1 -0
  274. package/dist/control-web/assets/lib-BZ_F5vVH.js +1 -0
  275. package/dist/control-web/assets/light-plus-DVQuIRkW.js +1 -0
  276. package/dist/control-web/assets/line-DUsXzGJZ.js +1 -0
  277. package/dist/control-web/assets/linear-DmucvK78.js +1 -0
  278. package/dist/control-web/assets/liquid-CCX5qouA.js +1 -0
  279. package/dist/control-web/assets/llvm-Cm23YOpf.js +1 -0
  280. package/dist/control-web/assets/log-BNLmms1o.js +1 -0
  281. package/dist/control-web/assets/logo-Cluzi2Zq.js +1 -0
  282. package/dist/control-web/assets/lua-FONpmTUP.js +1 -0
  283. package/dist/control-web/assets/luau-CNKltnaQ.js +1 -0
  284. package/dist/control-web/assets/make-Dixweg8N.js +1 -0
  285. package/dist/control-web/assets/map-BaFkSB1l.js +1 -0
  286. package/dist/control-web/assets/markdown-BYOwaDjH.js +1 -0
  287. package/dist/control-web/assets/markdown-streamdown-4N4AcNp5.js +433 -0
  288. package/dist/control-web/assets/markdown-streamdown-DEcVZfaU.css +1 -0
  289. package/dist/control-web/assets/marko-oPGh3KfH.js +1 -0
  290. package/dist/control-web/assets/material-theme-Bm3Qr25_.js +1 -0
  291. package/dist/control-web/assets/material-theme-darker-2IIEA8gg.js +1 -0
  292. package/dist/control-web/assets/material-theme-lighter-uhdI0v04.js +1 -0
  293. package/dist/control-web/assets/material-theme-ocean-CHQ94UKr.js +1 -0
  294. package/dist/control-web/assets/material-theme-palenight-B5W6OYN7.js +1 -0
  295. package/dist/control-web/assets/matlab-D7qyCx1q.js +1 -0
  296. package/dist/control-web/assets/mdc-B_uQHOlt.js +1 -0
  297. package/dist/control-web/assets/mdx-DQZ5AkYe.js +1 -0
  298. package/dist/control-web/assets/mermaid-Bk4SNUv9.js +1 -0
  299. package/dist/control-web/assets/mermaid-GHXKKRXX-BElZGKGd.js +1 -0
  300. package/dist/control-web/assets/mermaid-parser.core-VMln12Kd.js +7 -0
  301. package/dist/control-web/assets/min-dark-BSWPekZh.js +1 -0
  302. package/dist/control-web/assets/min-light-DDpmG2fV.js +1 -0
  303. package/dist/control-web/assets/mindmap-definition-LN4V7U3C-Bn0lH-UM.js +96 -0
  304. package/dist/control-web/assets/mipsasm-BMqwQI7S.js +1 -0
  305. package/dist/control-web/assets/mojo-BgCJLMeH.js +1 -0
  306. package/dist/control-web/assets/monokai-CdkpiU2Y.js +1 -0
  307. package/dist/control-web/assets/moonbit-CaWjb8XO.js +1 -0
  308. package/dist/control-web/assets/move-B1IS1UjX.js +1 -0
  309. package/dist/control-web/assets/narrat-_X_XdTYD.js +1 -0
  310. package/dist/control-web/assets/nextflow-Bbiyy34d.js +1 -0
  311. package/dist/control-web/assets/nextflow-groovy-Dc_ddanL.js +1 -0
  312. package/dist/control-web/assets/nginx-BTMw9COX.js +1 -0
  313. package/dist/control-web/assets/night-owl-DhmEMT88.js +1 -0
  314. package/dist/control-web/assets/night-owl-light-eJ-hLW7d.js +1 -0
  315. package/dist/control-web/assets/nim-8PQFL6ZB.js +1 -0
  316. package/dist/control-web/assets/nix-IvuFDN5E.js +1 -0
  317. package/dist/control-web/assets/nord-Cb4Vim4T.js +1 -0
  318. package/dist/control-web/assets/nushell-DcLAeLz5.js +1 -0
  319. package/dist/control-web/assets/objective-c-D1A_Heim.js +1 -0
  320. package/dist/control-web/assets/objective-cpp-BsSzOQcm.js +1 -0
  321. package/dist/control-web/assets/ocaml-O90oeIOV.js +1 -0
  322. package/dist/control-web/assets/odin-B1RWQWA5.js +1 -0
  323. package/dist/control-web/assets/one-dark-pro-CLwyXe_n.js +1 -0
  324. package/dist/control-web/assets/one-light-D7Lr4KcI.js +1 -0
  325. package/dist/control-web/assets/openscad-BUDT5pXO.js +1 -0
  326. package/dist/control-web/assets/ordinal-BDEzSJ7C.js +1 -0
  327. package/dist/control-web/assets/packet-7NZHBO7P-Zw8iJ8lo.js +1 -0
  328. package/dist/control-web/assets/pascal-4ZHwLPI5.js +1 -0
  329. package/dist/control-web/assets/path-fybaL0A-.js +1 -0
  330. package/dist/control-web/assets/pegDiagram-2B236MQR-CtF7vVs_.js +1 -0
  331. package/dist/control-web/assets/perl-Vf0i0hAx.js +1 -0
  332. package/dist/control-web/assets/php-am1OsKhm.js +1 -0
  333. package/dist/control-web/assets/pie-RZYD4A2V-su_3QGU2.js +1 -0
  334. package/dist/control-web/assets/pieDiagram-ENE6RG2P-BkMUBLE1.js +39 -0
  335. package/dist/control-web/assets/pkl-ot-7Btpt.js +1 -0
  336. package/dist/control-web/assets/plastic-DQwYfKfQ.js +1 -0
  337. package/dist/control-web/assets/plsql-DGHpHOYJ.js +1 -0
  338. package/dist/control-web/assets/po-BiJDBrnU.js +1 -0
  339. package/dist/control-web/assets/poimandres-DRFjx7u4.js +1 -0
  340. package/dist/control-web/assets/polar-C7UOKdEL.js +1 -0
  341. package/dist/control-web/assets/postcss-BXeXVLqQ.js +1 -0
  342. package/dist/control-web/assets/powerquery-DNMTfnFr.js +1 -0
  343. package/dist/control-web/assets/powershell-DshXNtvi.js +1 -0
  344. package/dist/control-web/assets/prisma-BsRQq5mF.js +1 -0
  345. package/dist/control-web/assets/prolog-iXnhIJG7.js +1 -0
  346. package/dist/control-web/assets/proto-DB4EqR-F.js +1 -0
  347. package/dist/control-web/assets/pug-DO6yvBr3.js +1 -0
  348. package/dist/control-web/assets/puppet-CDv2pdJW.js +1 -0
  349. package/dist/control-web/assets/purescript-9MfHhQsQ.js +1 -0
  350. package/dist/control-web/assets/python-gzcpVVnB.js +1 -0
  351. package/dist/control-web/assets/qml-_a-QhfPD.js +1 -0
  352. package/dist/control-web/assets/qmldir-DCQb3MpD.js +1 -0
  353. package/dist/control-web/assets/qss-Fe1Jh2GI.js +1 -0
  354. package/dist/control-web/assets/quadrantDiagram-ABIIQ3AL-ba-VaqMe.js +7 -0
  355. package/dist/control-web/assets/r-D6UWEOL2.js +1 -0
  356. package/dist/control-web/assets/racket-DcIDlBhZ.js +1 -0
  357. package/dist/control-web/assets/radar-I7S5WNFK-Dat0rqem.js +1 -0
  358. package/dist/control-web/assets/railroad-3IZDKUUU-Dh2-s8r8.js +1 -0
  359. package/dist/control-web/assets/railroad-abnf-AHOZXSZD-CNUwq0JR.js +1 -0
  360. package/dist/control-web/assets/railroad-ebnf-EBAXGLYW-RHr0duea.js +1 -0
  361. package/dist/control-web/assets/railroad-peg-LSFZ7HO6-CVBWS2eU.js +1 -0
  362. package/dist/control-web/assets/railroadDiagram-RFXS5EU6-BiJX3SY-.js +1 -0
  363. package/dist/control-web/assets/raku-B3gFvitq.js +1 -0
  364. package/dist/control-web/assets/razor-CMVBVp3T.js +1 -0
  365. package/dist/control-web/assets/red-CJ3rzSJv.js +1 -0
  366. package/dist/control-web/assets/reg-CRGYupPL.js +1 -0
  367. package/dist/control-web/assets/regexp-DR20uMnK.js +1 -0
  368. package/dist/control-web/assets/rel-BtDbiS_P.js +1 -0
  369. package/dist/control-web/assets/requirementDiagram-TGXJPOKE-CFfakCzs.js +84 -0
  370. package/dist/control-web/assets/riscv-Ckw8ddFX.js +1 -0
  371. package/dist/control-web/assets/rolldown-runtime-hePW80VL.js +1 -0
  372. package/dist/control-web/assets/ron-VUp2lXgN.js +1 -0
  373. package/dist/control-web/assets/rose-pine-BthvhNj6.js +1 -0
  374. package/dist/control-web/assets/rose-pine-dawn-Dg85fqjY.js +1 -0
  375. package/dist/control-web/assets/rose-pine-moon-hon4tzzS.js +1 -0
  376. package/dist/control-web/assets/rosmsg-CAekHB0j.js +1 -0
  377. package/dist/control-web/assets/rough.esm-Dy-Kn_BL.js +1 -0
  378. package/dist/control-web/assets/rst-CgIrbW_q.js +1 -0
  379. package/dist/control-web/assets/ruby-Dp6Zud9H.js +1 -0
  380. package/dist/control-web/assets/rust-Cfkwpbl8.js +1 -0
  381. package/dist/control-web/assets/sankeyDiagram-HTMAVEWB-jgDi0God.js +40 -0
  382. package/dist/control-web/assets/sas-B6p8-ynO.js +1 -0
  383. package/dist/control-web/assets/sass-DXrisJhu.js +1 -0
  384. package/dist/control-web/assets/scala-DKOlJaKm.js +1 -0
  385. package/dist/control-web/assets/scheme-DQCgrYNe.js +1 -0
  386. package/dist/control-web/assets/scss-DcoSS-ti.js +1 -0
  387. package/dist/control-web/assets/sdbl-bTVj8UrX.js +1 -0
  388. package/dist/control-web/assets/sequenceDiagram-DBY2YBRQ-DBfyyb0N.js +162 -0
  389. package/dist/control-web/assets/shaderlab-TOUzSsQk.js +1 -0
  390. package/dist/control-web/assets/shellscript-Da78Ox-3.js +1 -0
  391. package/dist/control-web/assets/shellsession-CVsQGYfZ.js +1 -0
  392. package/dist/control-web/assets/sizeCapture-X5ZJPWSS-B0uUizjq.js +1 -0
  393. package/dist/control-web/assets/slack-dark-DnToyrRv.js +1 -0
  394. package/dist/control-web/assets/slack-ochin-B2OO5cIa.js +1 -0
  395. package/dist/control-web/assets/smalltalk-B16xEiuN.js +1 -0
  396. package/dist/control-web/assets/snazzy-light-4G7pJPwS.js +1 -0
  397. package/dist/control-web/assets/solarized-dark-DV17i1UV.js +1 -0
  398. package/dist/control-web/assets/solarized-light-DSh2HLQt.js +1 -0
  399. package/dist/control-web/assets/solidity-CKzVLygQ.js +1 -0
  400. package/dist/control-web/assets/soy-B5n_eHSp.js +1 -0
  401. package/dist/control-web/assets/sparql-D_iOobhT.js +1 -0
  402. package/dist/control-web/assets/splunk-BC2Px7Mm.js +1 -0
  403. package/dist/control-web/assets/sql-ClgswhA6.js +1 -0
  404. package/dist/control-web/assets/src-B6xuSHsQ.js +1 -0
  405. package/dist/control-web/assets/ssh-config-BgfXC-Er.js +1 -0
  406. package/dist/control-web/assets/stata-RoaAgbqU.js +1 -0
  407. package/dist/control-web/assets/stateDiagram-2N3HPSRC-Dwb_ncVi.js +1 -0
  408. package/dist/control-web/assets/stateDiagram-v2-6OUMAXLB-DI0opaA1.js +1 -0
  409. package/dist/control-web/assets/stylus-B6D30XZt.js +1 -0
  410. package/dist/control-web/assets/surrealql-DIn4NJsS.js +1 -0
  411. package/dist/control-web/assets/svelte-CIt8Fl9I.js +1 -0
  412. package/dist/control-web/assets/swift-DonLKvLd.js +1 -0
  413. package/dist/control-web/assets/swimlanes-5IMT3BWC-DW0LuiIV.js +2 -0
  414. package/dist/control-web/assets/swimlanesDiagram-G3AALYLV-DDTVjcOR.js +8 -0
  415. package/dist/control-web/assets/synthwave-84-nFMaYfgc.js +1 -0
  416. package/dist/control-web/assets/system-verilog-DJ5XKQeo.js +1 -0
  417. package/dist/control-web/assets/systemd-BxMlprV5.js +1 -0
  418. package/dist/control-web/assets/talonscript-CohzipZa.js +1 -0
  419. package/dist/control-web/assets/tasl-DMoTqEGO.js +1 -0
  420. package/dist/control-web/assets/tcl-CZd0xW_V.js +1 -0
  421. package/dist/control-web/assets/templ-BREsJpNc.js +1 -0
  422. package/dist/control-web/assets/terraform-DswuEJGm.js +1 -0
  423. package/dist/control-web/assets/tex-0w6-Dtgt.js +1 -0
  424. package/dist/control-web/assets/timeline-definition-FHXFAJF6-DeX4B_B8.js +120 -0
  425. package/dist/control-web/assets/tokyo-night-oM2G3aXe.js +1 -0
  426. package/dist/control-web/assets/toml-CcmNWLt0.js +1 -0
  427. package/dist/control-web/assets/treeView-QDETBFTQ-D1UXtICj.js +1 -0
  428. package/dist/control-web/assets/treemap-6X3UGDF4-CrppzjZH.js +1 -0
  429. package/dist/control-web/assets/ts-tags-q3pptdMi.js +1 -0
  430. package/dist/control-web/assets/tsv-sltzmVWM.js +1 -0
  431. package/dist/control-web/assets/tsx-CUOciP0b.js +1 -0
  432. package/dist/control-web/assets/turtle-ByJddavk.js +1 -0
  433. package/dist/control-web/assets/twig-LIeLXgf5.js +1 -0
  434. package/dist/control-web/assets/typescript-BydbNFcO.js +1 -0
  435. package/dist/control-web/assets/typespec-B88KGewJ.js +1 -0
  436. package/dist/control-web/assets/typst-DI99ib-x.js +1 -0
  437. package/dist/control-web/assets/v-DETTlOr0.js +1 -0
  438. package/dist/control-web/assets/vala-zf12oZj6.js +1 -0
  439. package/dist/control-web/assets/vb-Djn5o6TS.js +1 -0
  440. package/dist/control-web/assets/vennDiagram-L72KCM5P-BYpf-7VR.js +34 -0
  441. package/dist/control-web/assets/verilog-CiiDBU1e.js +1 -0
  442. package/dist/control-web/assets/vesper-D5bVUKB1.js +1 -0
  443. package/dist/control-web/assets/vhdl-BroJfC0k.js +1 -0
  444. package/dist/control-web/assets/viml-DvXPmvsu.js +1 -0
  445. package/dist/control-web/assets/vitesse-black-fwtXNY1n.js +1 -0
  446. package/dist/control-web/assets/vitesse-dark-BZCL-v6S.js +1 -0
  447. package/dist/control-web/assets/vitesse-light-VbXTXTou.js +1 -0
  448. package/dist/control-web/assets/vue-DVSfBueU.js +1 -0
  449. package/dist/control-web/assets/vue-html-DkKkQnZL.js +1 -0
  450. package/dist/control-web/assets/vue-vine-pWqEcBkW.js +1 -0
  451. package/dist/control-web/assets/vyper-CgoNMtux.js +1 -0
  452. package/dist/control-web/assets/wardley-OPB4EBWU-B9rA0UsV.js +1 -0
  453. package/dist/control-web/assets/wardleyDiagram-EHGQE667-BdvAUa5F.js +78 -0
  454. package/dist/control-web/assets/wasm-BnjxR4X6.js +1 -0
  455. package/dist/control-web/assets/wasm-ByWQv1Qj.js +1 -0
  456. package/dist/control-web/assets/wenyan-C8pVoKbM.js +1 -0
  457. package/dist/control-web/assets/wgsl-BsKzXJz4.js +1 -0
  458. package/dist/control-web/assets/wikitext-ClFFjSW2.js +1 -0
  459. package/dist/control-web/assets/wit-DdvCle-K.js +1 -0
  460. package/dist/control-web/assets/wolfram-DLL8P-h_.js +1 -0
  461. package/dist/control-web/assets/xml-BlnrEAEy.js +1 -0
  462. package/dist/control-web/assets/xsl-BOPS8gLt.js +1 -0
  463. package/dist/control-web/assets/xychartDiagram-FW5EYKEG-BaEV3pGm.js +7 -0
  464. package/dist/control-web/assets/yaml-Du_6cdrH.js +1 -0
  465. package/dist/control-web/assets/zenscript-BnlCZFoB.js +1 -0
  466. package/dist/control-web/assets/zig-CMLA9XwU.js +1 -0
  467. package/dist/control-web/index.html +3 -2
  468. package/dist/control-web-dist.d.ts +1 -1
  469. package/dist/control-web-dist.js +4 -2
  470. package/dist/desktop-browser-host.d.ts +3 -1
  471. package/dist/desktop-browser-host.js +39 -4
  472. package/dist/direct-runtime-server.js +187 -153
  473. package/dist/machine-session-service.d.ts +105 -15
  474. package/dist/machine-session-service.js +781 -87
  475. package/dist/remote-runtime-dispatcher.d.ts +2 -2
  476. package/dist/remote-runtime-dispatcher.js +42 -2
  477. package/dist/remote-runtime-session-projection.d.ts +1 -0
  478. package/dist/remote-runtime-session-projection.js +12 -0
  479. package/dist/server.d.ts +64 -11
  480. package/dist/server.js +422 -55
  481. package/dist/session-browser-service.d.ts +24 -4
  482. package/dist/session-browser-service.js +127 -1
  483. package/dist/session-pending-inputs.d.ts +42 -0
  484. package/dist/session-pending-inputs.js +87 -0
  485. package/dist/session-portal.d.ts +54 -0
  486. package/dist/session-portal.js +997 -0
  487. package/dist/session-runtime-index.d.ts +3 -6
  488. package/dist/session-runtime-index.js +96 -38
  489. package/dist/session-terminal-host.d.ts +22 -2
  490. package/dist/session-terminal-host.js +66 -83
  491. package/dist/terminal-ws.d.ts +4 -1
  492. package/dist/terminal-ws.js +93 -27
  493. package/package.json +7 -7
  494. package/dist/control-web/assets/highlighted-body-OFNGDK62-DWWsUtHF.js +0 -1
  495. package/dist/control-web/assets/index-BnX7NWJX.js +0 -689
  496. package/dist/control-web/assets/index-CUoWRX2i.css +0 -32
  497. package/dist/control-web/assets/mermaid-GHXKKRXX-C1fxAgiw.js +0 -131
@@ -1,7 +1,7 @@
1
1
  import { createServer, } from "node:http";
2
2
  import { decodeDirectRuntimeFrame, DIRECT_RUNTIME_CLOSE_CODE, DIRECT_RUNTIME_BROWSER_INSPECT_PATH, DIRECT_RUNTIME_BROWSER_SURFACE_PATH, DIRECT_RUNTIME_CONTROL_PATH, DIRECT_RUNTIME_MAX_HANDSHAKE_FRAME_BYTES, encodeDirectRuntimeFrame, parseServerAccepted, parseServerHello, } from "@rynx-ai/protocol/direct-runtime";
3
3
  import { createServerE2EEChannel, DIRECT_RUNTIME_E2EE_MAX_ENVELOPE_BYTES, } from "@rynx-ai/remote-runtime-e2ee";
4
- import { encodeRemoteRuntimeSessionEventsFrame, encodeRemoteRuntimeSessionTerminalServerFrame, encodeRemoteRuntimeRpcResponse, parseRemoteRuntimeRpcFrame, parseRemoteRuntimeSessionEventsFrame, parseRemoteRuntimeSessionTerminalClientFrame, REMOTE_RUNTIME_SESSION_TERMINAL_MAX_DATA_BYTES, REMOTE_RUNTIME_RPC_MAX_FRAME_BYTES, REMOTE_RUNTIME_RPC_MAX_ID_CHARS, REMOTE_RUNTIME_RPC_METHOD_METADATA, } from "@rynx-ai/protocol/remote-runtime-rpc";
4
+ import { encodeRemoteRuntimeSessionEventsFrame, encodeRemoteRuntimeSessionTerminalServerFrame, encodeRemoteRuntimeRpcResponse, parseRemoteRuntimeRpcFrame, parseRemoteRuntimeSessionEventsFrame, parseRemoteRuntimeSessionTerminalClientFrame, REMOTE_RUNTIME_RPC_MAX_FRAME_BYTES, REMOTE_RUNTIME_RPC_MAX_ID_CHARS, REMOTE_RUNTIME_RPC_METHOD_METADATA, } from "@rynx-ai/protocol/remote-runtime-rpc";
5
5
  import { encodeRuntimeEmulatorSurfaceServerFrame, parseRuntimeEmulatorSurfaceClientFrame, RUNTIME_EMULATOR_SURFACE_CHUNK_BYTES, RUNTIME_EMULATOR_SURFACE_MAX_FRAME_BYTES, } from "@rynx-ai/protocol/runtime-emulator-surface";
6
6
  import { WebSocket, WebSocketServer } from "ws";
7
7
  import { attachDirectRuntimeBrowserSurfaceServer, } from "./direct-runtime-browser-surface-server.js";
@@ -400,6 +400,9 @@ export async function startDirectRuntimeServer(options) {
400
400
  return;
401
401
  }
402
402
  if (frame.type === "session.terminal.open" ||
403
+ frame.type === "session.terminal.seed.read" ||
404
+ frame.type === "session.terminal.start" ||
405
+ frame.type === "session.terminal.read" ||
403
406
  frame.type === "session.terminal.input" ||
404
407
  frame.type === "session.terminal.resize" ||
405
408
  frame.type === "session.terminal.close") {
@@ -1032,66 +1035,153 @@ export async function startDirectRuntimeServer(options) {
1032
1035
  }
1033
1036
  const terminal = connection.terminal;
1034
1037
  if (terminal?.attachmentId === frame.attachmentId) {
1035
- finishTerminal(connection, terminal, "client_closed", undefined, true);
1038
+ finishTerminal(connection, terminal, "client_closed");
1036
1039
  }
1037
1040
  else if (!connection.seenTerminalAttachmentIds.has(frame.attachmentId)) {
1038
1041
  connection.close(CLOSE_BAD_PROTOCOL, "Remote Session terminal attachment id is unknown");
1039
1042
  }
1040
1043
  return;
1041
1044
  }
1042
- if (frame.type === "session.terminal.input" || frame.type === "session.terminal.resize") {
1043
- const terminal = connection.terminal;
1044
- if (!terminal || terminal.attachmentId !== frame.attachmentId || terminal.finishing) {
1045
- connection.close(CLOSE_BAD_PROTOCOL, "Remote Session terminal attachment is not active");
1045
+ if (frame.type === "session.terminal.open") {
1046
+ await openTerminal(connection, frame, peer);
1047
+ return;
1048
+ }
1049
+ const terminal = connection.terminal;
1050
+ if (!terminal || terminal.attachmentId !== frame.attachmentId || terminal.finishing) {
1051
+ connection.close(CLOSE_BAD_PROTOCOL, "Remote Session terminal attachment is not active");
1052
+ return;
1053
+ }
1054
+ if (terminal.seenRequestIds.has(frame.requestId)) {
1055
+ connection.close(CLOSE_BAD_PROTOCOL, "Remote Session terminal request id was already used");
1056
+ return;
1057
+ }
1058
+ if (terminal.seenRequestIds.size >= limits.maxRequestIds) {
1059
+ connection.close(CLOSE_CAPACITY, "Direct Runtime terminal request id capacity reached");
1060
+ return;
1061
+ }
1062
+ terminal.seenRequestIds.add(frame.requestId);
1063
+ let active = false;
1064
+ try {
1065
+ active = await options.isPeerActive(peer);
1066
+ }
1067
+ catch (error) {
1068
+ options.onError?.(error, "Direct Runtime terminal peer activity check");
1069
+ }
1070
+ if (!active) {
1071
+ finishTerminal(connection, terminal, "unauthorized");
1072
+ connection.close(CLOSE_UNAUTHORIZED, "Remote Runtime grant is not active");
1073
+ return;
1074
+ }
1075
+ if (frame.type === "session.terminal.seed.read" || frame.type === "session.terminal.read") {
1076
+ const kind = frame.type === "session.terminal.seed.read" ? "seed" : "live";
1077
+ if (terminal.pendingPull ||
1078
+ (kind === "seed" && terminal.phase !== "prepared") ||
1079
+ (kind === "live" && terminal.phase !== "started")) {
1080
+ connection.close(CLOSE_BAD_PROTOCOL, "Remote Session terminal pull is out of order");
1046
1081
  return;
1047
1082
  }
1048
- const control = terminal.controlTail.then(async () => {
1049
- if (terminal.finishing)
1083
+ terminal.pendingPull = { requestId: frame.requestId, kind };
1084
+ const reading = kind === "seed"
1085
+ ? terminal.attachment.readSeed(frame.offset, frame.maxBytes)
1086
+ : terminal.attachment.read(frame.offset, frame.maxBytes);
1087
+ void reading.then(async (result) => {
1088
+ if (terminal.finishing || terminal.pendingPull?.requestId !== frame.requestId)
1050
1089
  return;
1051
- let active = false;
1052
- try {
1053
- active = await options.isPeerActive(peer);
1054
- }
1055
- catch (error) {
1056
- options.onError?.(error, "Direct Runtime terminal peer activity check");
1057
- }
1058
- if (!active) {
1059
- finishTerminal(connection, terminal, "unauthorized", undefined, true);
1060
- connection.close(CLOSE_UNAUTHORIZED, "Remote Runtime grant is not active");
1061
- return;
1062
- }
1063
- try {
1064
- if (frame.type === "session.terminal.input") {
1065
- if (terminal.attachment.role === "owner") {
1066
- await terminal.attachment.write(Uint8Array.from(Buffer.from(frame.data, "base64")));
1067
- }
1068
- }
1069
- else {
1070
- await terminal.attachment.resize(frame.cols, frame.rows);
1071
- }
1072
- }
1073
- catch (error) {
1074
- options.onError?.(error, "Remote Session terminal control");
1075
- finishTerminal(connection, terminal, "internal", "Remote Session terminal control failed", true);
1076
- }
1090
+ terminal.pendingPull = undefined;
1091
+ await sendText(connection, encodeRemoteRuntimeSessionTerminalServerFrame({
1092
+ type: kind === "seed" ? "session.terminal.seed.chunk" : "session.terminal.chunk",
1093
+ attachmentId: terminal.attachmentId,
1094
+ requestId: frame.requestId,
1095
+ data: Buffer.from(result.data).toString("base64"),
1096
+ nextOffset: result.nextOffset,
1097
+ done: result.done,
1098
+ ...(result.finalOffset === undefined ? {} : { finalOffset: result.finalOffset }),
1099
+ }), limits.maxBufferedBytes);
1100
+ }).catch((error) => {
1101
+ options.onError?.(error, "Remote Session terminal pull");
1102
+ finishTerminal(connection, terminal, "internal", "Remote Session terminal pull failed");
1077
1103
  });
1078
- terminal.controlTail = control.catch(() => undefined);
1079
- await control;
1080
1104
  return;
1081
1105
  }
1106
+ if (frame.type === "session.terminal.start") {
1107
+ if (terminal.phase !== "prepared") {
1108
+ connection.close(CLOSE_BAD_PROTOCOL, "Remote Session terminal start is out of order");
1109
+ return;
1110
+ }
1111
+ terminal.phase = "starting";
1112
+ try {
1113
+ await terminal.attachment.start();
1114
+ terminal.phase = "started";
1115
+ await sendText(connection, encodeRemoteRuntimeSessionTerminalServerFrame({
1116
+ type: "session.terminal.started",
1117
+ attachmentId: terminal.attachmentId,
1118
+ requestId: frame.requestId,
1119
+ }), limits.maxBufferedBytes);
1120
+ void terminal.attachment.closed.then(async (closed) => {
1121
+ if (terminal.finishing)
1122
+ return;
1123
+ await sendText(connection, encodeRemoteRuntimeSessionTerminalServerFrame({
1124
+ type: "session.terminal.reader.done",
1125
+ attachmentId: terminal.attachmentId,
1126
+ finalOffset: closed.finalOffset ?? 0,
1127
+ reason: closed.reason === "terminal_exited" ||
1128
+ closed.reason === "client_closed" ||
1129
+ closed.reason === "backpressure"
1130
+ ? closed.reason
1131
+ : "internal",
1132
+ exitCode: closed.exitCode ?? 0,
1133
+ }), limits.maxBufferedBytes);
1134
+ }).catch((error) => {
1135
+ options.onError?.(error, "Remote Session terminal reader completion");
1136
+ finishTerminal(connection, terminal, "internal");
1137
+ });
1138
+ }
1139
+ catch (error) {
1140
+ options.onError?.(error, "Remote Session terminal start");
1141
+ finishTerminal(connection, terminal, "internal", "Remote Session terminal start failed");
1142
+ }
1143
+ return;
1144
+ }
1145
+ if (terminal.phase !== "started") {
1146
+ connection.close(CLOSE_BAD_PROTOCOL, "Remote Session terminal control is not writable");
1147
+ return;
1148
+ }
1149
+ const control = terminal.controlTail.then(async () => {
1150
+ if (terminal.finishing)
1151
+ return;
1152
+ if (frame.type === "session.terminal.input") {
1153
+ if (terminal.attachment.role === "owner") {
1154
+ await terminal.attachment.write(Uint8Array.from(Buffer.from(frame.data, "base64")));
1155
+ }
1156
+ }
1157
+ else {
1158
+ await terminal.attachment.resize(frame.cols, frame.rows);
1159
+ }
1160
+ await sendText(connection, encodeRemoteRuntimeSessionTerminalServerFrame({
1161
+ type: frame.type === "session.terminal.input"
1162
+ ? "session.terminal.input.ack"
1163
+ : "session.terminal.resize.ack",
1164
+ attachmentId: terminal.attachmentId,
1165
+ requestId: frame.requestId,
1166
+ }), limits.maxBufferedBytes);
1167
+ });
1168
+ terminal.controlTail = control.catch(() => undefined);
1169
+ await control.catch((error) => {
1170
+ options.onError?.(error, "Remote Session terminal control");
1171
+ finishTerminal(connection, terminal, "internal", "Remote Session terminal control failed");
1172
+ });
1173
+ }
1174
+ async function openTerminal(connection, frame, peer) {
1082
1175
  let admissionFailure;
1083
1176
  let pending;
1084
- if (connection.seenTerminalAttachmentIds.has(frame.attachmentId)) {
1177
+ if (connection.seenTerminalAttachmentIds.has(frame.attachmentId))
1085
1178
  admissionFailure = "duplicate";
1086
- }
1087
- else if (connection.seenTerminalAttachmentIds.size >= limits.maxRequestIds) {
1179
+ else if (connection.seenTerminalAttachmentIds.size >= limits.maxRequestIds)
1088
1180
  admissionFailure = "id_capacity";
1089
- }
1090
1181
  else {
1091
1182
  connection.seenTerminalAttachmentIds.add(frame.attachmentId);
1092
- if (connection.pendingTerminal || connection.terminal) {
1183
+ if (connection.pendingTerminal || connection.terminal)
1093
1184
  admissionFailure = "attachment_capacity";
1094
- }
1095
1185
  else {
1096
1186
  pending = {
1097
1187
  attachmentId: frame.attachmentId,
@@ -1100,32 +1190,9 @@ export async function startDirectRuntimeServer(options) {
1100
1190
  cancelRequested: false,
1101
1191
  closeFrameClaimed: false,
1102
1192
  };
1103
- // Reserve the id before awaiting peer status or application open. A
1104
- // following close can now tombstone this pending attach and abort it.
1105
1193
  connection.pendingTerminal = pending;
1106
1194
  }
1107
1195
  }
1108
- let active = false;
1109
- try {
1110
- active = await options.isPeerActive(peer);
1111
- }
1112
- catch (error) {
1113
- options.onError?.(error, "Direct Runtime terminal peer activity check");
1114
- }
1115
- if (!active) {
1116
- if (pending) {
1117
- connection.pendingTerminal = undefined;
1118
- pending.cancelRequested = true;
1119
- pending.abortController.abort(new Error("Remote Runtime grant is not active"));
1120
- }
1121
- if (!pending?.closeFrameClaimed) {
1122
- if (pending)
1123
- pending.closeFrameClaimed = true;
1124
- await sendTerminalClosed(connection, frame.attachmentId, "unauthorized");
1125
- }
1126
- connection.close(CLOSE_UNAUTHORIZED, "Remote Runtime grant is not active");
1127
- return;
1128
- }
1129
1196
  if (admissionFailure === "duplicate") {
1130
1197
  await sendTerminalClosed(connection, frame.attachmentId, "capacity", "Remote Session terminal attachment id was already used");
1131
1198
  return;
@@ -1135,13 +1202,28 @@ export async function startDirectRuntimeServer(options) {
1135
1202
  return;
1136
1203
  }
1137
1204
  if (admissionFailure === "attachment_capacity") {
1138
- await sendTerminalClosed(connection, frame.attachmentId, "capacity", "Direct Runtime V1 admits one Session terminal per connection");
1205
+ await sendTerminalClosed(connection, frame.attachmentId, "capacity", "Direct Runtime admits one Session terminal per connection");
1139
1206
  return;
1140
1207
  }
1141
1208
  if (!pending) {
1142
1209
  connection.close(CLOSE_INTERNAL, "Remote Session pending terminal is unavailable");
1143
1210
  return;
1144
1211
  }
1212
+ let active = false;
1213
+ try {
1214
+ active = await options.isPeerActive(peer);
1215
+ }
1216
+ catch (error) {
1217
+ options.onError?.(error, "Direct Runtime terminal peer activity check");
1218
+ }
1219
+ if (!active) {
1220
+ connection.pendingTerminal = undefined;
1221
+ pending.cancelRequested = true;
1222
+ pending.abortController.abort(new Error("Remote Runtime grant is not active"));
1223
+ await sendTerminalClosed(connection, frame.attachmentId, "unauthorized");
1224
+ connection.close(CLOSE_UNAUTHORIZED, "Remote Runtime grant is not active");
1225
+ return;
1226
+ }
1145
1227
  let opened;
1146
1228
  try {
1147
1229
  opened = await options.dispatcher.openSessionTerminal(frame.sessionId, { role: frame.role, cols: frame.cols, rows: frame.rows }, { subject: peer.subject, signal: pending.abortController.signal });
@@ -1160,14 +1242,10 @@ export async function startDirectRuntimeServer(options) {
1160
1242
  await sendTerminalClosed(connection, frame.attachmentId, remoteTerminalOpenCloseReason(error));
1161
1243
  return;
1162
1244
  }
1163
- if (pending.cancelRequested ||
1164
- isConnectionClosed(connection) ||
1165
- connection.pendingTerminal !== pending) {
1245
+ if (pending.cancelRequested || isConnectionClosed(connection) || connection.pendingTerminal !== pending) {
1166
1246
  if (connection.pendingTerminal === pending)
1167
1247
  connection.pendingTerminal = undefined;
1168
- await opened.close().catch((error) => {
1169
- options.onError?.(error, "Remote Session late terminal detach");
1170
- });
1248
+ await opened.close().catch(() => undefined);
1171
1249
  if (!pending.closeFrameClaimed && !isConnectionClosed(connection)) {
1172
1250
  pending.closeFrameClaimed = true;
1173
1251
  await sendTerminalClosed(connection, frame.attachmentId, "client_closed");
@@ -1184,86 +1262,40 @@ export async function startDirectRuntimeServer(options) {
1184
1262
  attachmentId: frame.attachmentId,
1185
1263
  sessionId: frame.sessionId,
1186
1264
  attachment: opened,
1187
- output: new BoundedTextQueue(limits.maxQueuedTerminalOutputFrames, limits.maxQueuedTerminalOutputBytes),
1265
+ seenRequestIds: new Set(),
1266
+ phase: "prepared",
1188
1267
  controlTail: Promise.resolve(),
1189
1268
  finishing: false,
1190
1269
  };
1191
1270
  connection.pendingTerminal = undefined;
1192
1271
  connection.terminal = terminal;
1193
- // Drain into the bounded application queue before awaiting the opened send;
1194
- // output can begin synchronously with the runner attach.
1195
- void readTerminalOutput(connection, terminal);
1196
- try {
1197
- await sendText(connection, encodeRemoteRuntimeSessionTerminalServerFrame({
1198
- type: "session.terminal.opened",
1199
- attachmentId: terminal.attachmentId,
1200
- sessionId: terminal.sessionId,
1201
- role: opened.role,
1202
- }), limits.maxBufferedBytes);
1203
- void writeTerminalOutput(connection, terminal);
1204
- }
1205
- catch (error) {
1206
- finishTerminal(connection, terminal, undefined, undefined, true);
1207
- throw error;
1208
- }
1209
- }
1210
- async function readTerminalOutput(connection, terminal) {
1211
- try {
1212
- for await (const data of terminal.attachment) {
1213
- if (terminal.finishing)
1214
- return;
1215
- for (let offset = 0; offset < data.byteLength; offset += REMOTE_RUNTIME_SESSION_TERMINAL_MAX_DATA_BYTES) {
1216
- const chunk = data.subarray(offset, Math.min(offset + REMOTE_RUNTIME_SESSION_TERMINAL_MAX_DATA_BYTES, data.byteLength));
1217
- if (chunk.byteLength === 0)
1218
- continue;
1219
- const encoded = encodeRemoteRuntimeSessionTerminalServerFrame({
1220
- type: "session.terminal.output",
1221
- attachmentId: terminal.attachmentId,
1222
- data: Buffer.from(chunk).toString("base64"),
1223
- });
1224
- if (!terminal.output.push(encoded)) {
1225
- finishTerminal(connection, terminal, "backpressure", "Remote Session terminal consumer is too slow", true);
1226
- return;
1227
- }
1228
- }
1229
- }
1230
- if (terminal.finishing)
1272
+ let lastDimensions = opened.dimensions;
1273
+ opened.onResize?.(({ cols, rows }) => {
1274
+ if (terminal.finishing || terminal.phase !== "started")
1231
1275
  return;
1232
- const closed = await terminal.attachment.closed;
1233
- const reason = closed.reason === "terminal_exited"
1234
- ? "terminal_exited"
1235
- : closed.reason === "backpressure"
1236
- ? "backpressure"
1237
- : "internal";
1238
- finishTerminal(connection, terminal, reason, undefined, reason !== "terminal_exited", closed.exitCode);
1239
- }
1240
- catch (error) {
1241
- if (terminal.finishing)
1276
+ if (lastDimensions?.cols === cols && lastDimensions.rows === rows)
1242
1277
  return;
1243
- options.onError?.(error, "Remote Session terminal output");
1244
- finishTerminal(connection, terminal, "internal", "Remote Session terminal output failed", true);
1245
- }
1246
- }
1247
- async function writeTerminalOutput(connection, terminal) {
1248
- try {
1249
- for (;;) {
1250
- const frame = await terminal.output.shift();
1251
- if (frame === undefined)
1252
- return;
1253
- await sendText(connection, frame, limits.maxBufferedBytes);
1254
- }
1255
- }
1256
- catch (error) {
1257
- if (!isConnectionClosed(connection)) {
1258
- options.onError?.(error, "Remote Session terminal delivery");
1259
- connection.close(CLOSE_INTERNAL, "Remote Session terminal delivery failed");
1260
- }
1261
- }
1262
- finally {
1263
- finishTerminal(connection, terminal, undefined, undefined, true);
1264
- }
1278
+ lastDimensions = { cols, rows };
1279
+ void sendText(connection, encodeRemoteRuntimeSessionTerminalServerFrame({
1280
+ type: "session.terminal.dimensions",
1281
+ attachmentId: terminal.attachmentId,
1282
+ cols,
1283
+ rows,
1284
+ }), limits.maxBufferedBytes).catch((error) => {
1285
+ options.onError?.(error, "Remote Session terminal dimensions");
1286
+ finishTerminal(connection, terminal, "internal");
1287
+ });
1288
+ });
1289
+ await sendText(connection, encodeRemoteRuntimeSessionTerminalServerFrame({
1290
+ type: "session.terminal.prepared",
1291
+ attachmentId: terminal.attachmentId,
1292
+ sessionId: terminal.sessionId,
1293
+ role: opened.role,
1294
+ seedBytes: opened.seedBytes,
1295
+ ...(opened.dimensions ?? {}),
1296
+ }), limits.maxBufferedBytes);
1265
1297
  }
1266
- function finishTerminal(connection, terminal, reason, message, discardPending, exitCode) {
1298
+ function finishTerminal(connection, terminal, reason, message, exitCode) {
1267
1299
  if (terminal.finishing)
1268
1300
  return;
1269
1301
  terminal.finishing = true;
@@ -1272,19 +1304,17 @@ export async function startDirectRuntimeServer(options) {
1272
1304
  void terminal.attachment.close().catch((error) => {
1273
1305
  options.onError?.(error, "Remote Session terminal detach");
1274
1306
  });
1275
- const finalFrame = reason === undefined
1276
- ? undefined
1277
- : encodeRemoteRuntimeSessionTerminalServerFrame({
1307
+ if (reason !== undefined && !isConnectionClosed(connection)) {
1308
+ void sendText(connection, encodeRemoteRuntimeSessionTerminalServerFrame({
1278
1309
  type: "session.terminal.closed",
1279
1310
  attachmentId: terminal.attachmentId,
1280
1311
  reason,
1281
1312
  ...(exitCode === undefined ? {} : { exitCode }),
1282
1313
  ...(message === undefined ? {} : { message }),
1314
+ }), limits.maxBufferedBytes).catch((error) => {
1315
+ options.onError?.(error, "Remote Session terminal close delivery");
1283
1316
  });
1284
- if (discardPending)
1285
- terminal.output.replaceAndFinish(finalFrame);
1286
- else
1287
- terminal.output.finish(finalFrame);
1317
+ }
1288
1318
  }
1289
1319
  async function sendTerminalClosed(connection, attachmentId, reason, message) {
1290
1320
  await sendText(connection, encodeRemoteRuntimeSessionTerminalServerFrame({
@@ -1336,6 +1366,7 @@ export async function startDirectRuntimeServer(options) {
1336
1366
  const accepted = parseServerAccepted(result.accepted);
1337
1367
  assertAuthenticationResult(serverHello, authenticate, result.peer, accepted);
1338
1368
  connection.peer = result.peer;
1369
+ connection.coreProtocolVersion = accepted.coreProtocolVersion;
1339
1370
  const registration = connectionHub.registerWithinLimit(result.peer.grantId, connection, limits.maxConnectionsPerGrant);
1340
1371
  if (registration === "revoked") {
1341
1372
  connection.close(CLOSE_UNAUTHORIZED, "Remote Runtime grant is not active");
@@ -1385,7 +1416,7 @@ export async function startDirectRuntimeServer(options) {
1385
1416
  connection.pendingTerminal = undefined;
1386
1417
  }
1387
1418
  if (connection.terminal) {
1388
- finishTerminal(connection, connection.terminal, undefined, undefined, true);
1419
+ finishTerminal(connection, connection.terminal, undefined);
1389
1420
  }
1390
1421
  finalizeConnectionEmulatorSurface(connection, reason);
1391
1422
  if (connection.ws.readyState === WebSocket.OPEN) {
@@ -1422,7 +1453,7 @@ export async function startDirectRuntimeServer(options) {
1422
1453
  connection.pendingTerminal = undefined;
1423
1454
  }
1424
1455
  if (connection.terminal) {
1425
- finishTerminal(connection, connection.terminal, undefined, undefined, true);
1456
+ finishTerminal(connection, connection.terminal, undefined);
1426
1457
  }
1427
1458
  finalizeConnectionEmulatorSurface(connection, "Direct Runtime connection closed");
1428
1459
  releaseUnauthenticatedConnection(connection);
@@ -1559,6 +1590,9 @@ function parseAuthenticatedClientFrame(bytes) {
1559
1590
  return frame;
1560
1591
  }
1561
1592
  if (type === "session.terminal.open" ||
1593
+ type === "session.terminal.seed.read" ||
1594
+ type === "session.terminal.start" ||
1595
+ type === "session.terminal.read" ||
1562
1596
  type === "session.terminal.input" ||
1563
1597
  type === "session.terminal.resize" ||
1564
1598
  type === "session.terminal.close") {