@rynx-ai/server 0.1.11-beta.32 → 0.1.11-beta.34
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.
- package/dist/control-web/assets/abap-CLvhMVsD.js +1 -0
- package/dist/control-web/assets/abnfDiagram-VRR7QNED-CmU_MmlR.js +1 -0
- package/dist/control-web/assets/actionscript-3--17pq3dv.js +1 -0
- package/dist/control-web/assets/ada-C5qYipkI.js +1 -0
- package/dist/control-web/assets/andromeeda-vGVdxbeo.js +1 -0
- package/dist/control-web/assets/angular-html-DlZBZkSp.js +1 -0
- package/dist/control-web/assets/angular-ts-BVPGOT0K.js +1 -0
- package/dist/control-web/assets/apache-U0d_L8uA.js +1 -0
- package/dist/control-web/assets/apex-CGTLDQj6.js +1 -0
- package/dist/control-web/assets/apl-cDmXqmZ-.js +1 -0
- package/dist/control-web/assets/applescript-CCn79oCD.js +1 -0
- package/dist/control-web/assets/ara-4CJ0cIlV.js +1 -0
- package/dist/control-web/assets/arc-Pry-7G1_.js +1 -0
- package/dist/control-web/assets/architecture-TIHT7OUA-BA6n-Dzl.js +1 -0
- package/dist/control-web/assets/architectureDiagram-ZJ3FMSHR-OecV-i7M.js +36 -0
- package/dist/control-web/assets/array-BifhSqXX.js +1 -0
- package/dist/control-web/assets/asciidoc-DE70LPWp.js +1 -0
- package/dist/control-web/assets/asm-Cmm7eHzH.js +1 -0
- package/dist/control-web/assets/astro-B1Q6BwBx.js +1 -0
- package/dist/control-web/assets/aurora-x-CDeNXAV0.js +1 -0
- package/dist/control-web/assets/awk-BWXHIvNe.js +1 -0
- package/dist/control-web/assets/ayu-dark-DluEY0Gj.js +1 -0
- package/dist/control-web/assets/ayu-light-C3h-C4tm.js +1 -0
- package/dist/control-web/assets/ayu-mirage-Bqwy1Gya.js +1 -0
- package/dist/control-web/assets/ballerina-B7ZEbQpA.js +1 -0
- package/dist/control-web/assets/bat-Bo4NYOV-.js +1 -0
- package/dist/control-web/assets/beancount-D-usSTwE.js +1 -0
- package/dist/control-web/assets/berry-DKpUyyne.js +1 -0
- package/dist/control-web/assets/bibtex-Ci_nEsc7.js +1 -0
- package/dist/control-web/assets/bicep-CUHmPFLl.js +1 -0
- package/dist/control-web/assets/bird2-C2hNVINV.js +1 -0
- package/dist/control-web/assets/blade-Xpu-LGTm.js +1 -0
- package/dist/control-web/assets/blockDiagram-677ZJIJ3-DOxDUxjd.js +132 -0
- package/dist/control-web/assets/bsl-BkkzgIyY.js +1 -0
- package/dist/control-web/assets/c-iCihek07.js +1 -0
- package/dist/control-web/assets/c3-CnJL0r0V.js +1 -0
- package/dist/control-web/assets/c4Diagram-LMCZKHZV-D557d6cD.js +10 -0
- package/dist/control-web/assets/cadence-CQ2zXKGN.js +1 -0
- package/dist/control-web/assets/cairo-DLTphjLi.js +1 -0
- package/dist/control-web/assets/catppuccin-frappe-3VR1Za6u.js +1 -0
- package/dist/control-web/assets/catppuccin-latte-DwIHMF0Q.js +1 -0
- package/dist/control-web/assets/catppuccin-macchiato-DYnBP6_5.js +1 -0
- package/dist/control-web/assets/catppuccin-mocha-DYhrFGRu.js +1 -0
- package/dist/control-web/assets/channel-CvSP6WIQ.js +1 -0
- package/dist/control-web/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
- package/dist/control-web/assets/chunk-32BRIVSS-BfXRqSpF.js +1 -0
- package/dist/control-web/assets/chunk-52WLFC77-BeKggk68.js +10 -0
- package/dist/control-web/assets/{chunk-5VM5RSS4-CXKpL77L.js → chunk-5VM5RSS4-ZNzvKenW.js} +2 -2
- package/dist/control-web/assets/chunk-7BUUIJ7U-Bb538aSH.js +1 -0
- package/dist/control-web/assets/chunk-C7G6YPKG-D0W6xHti.js +1 -0
- package/dist/control-web/assets/chunk-EX3LRPZG-D-s3PHl_.js +231 -0
- package/dist/control-web/assets/chunk-HOUHSVGY-Cz-4R9wb.js +1 -0
- package/dist/control-web/assets/chunk-ICXQ74PX-Jh1cDG2d.js +2 -0
- package/dist/control-web/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
- package/dist/control-web/assets/chunk-KEIR6QF5-BICK3FdT.js +161 -0
- package/dist/control-web/assets/chunk-MOJQB5TN-Bne3Czi6.js +88 -0
- package/dist/control-web/assets/chunk-OGEWGWER-B3ysgOD5.js +1 -0
- package/dist/control-web/assets/chunk-PUDLZKDR-CcXYtnKN.js +156 -0
- package/dist/control-web/assets/chunk-Q4XR5HBZ-puXEgeqv.js +70 -0
- package/dist/control-web/assets/chunk-RYQCIY6F-BsoV8yK2.js +1 -0
- package/dist/control-web/assets/chunk-V7JOEXUC-C3tvTxnz.js +206 -0
- package/dist/control-web/assets/chunk-VR4S4FIN-DW_38atK.js +1 -0
- package/dist/control-web/assets/chunk-WYO6CB5R-Bbp0lWuA.js +128 -0
- package/dist/control-web/assets/chunk-XXDRQBXY-DqAYeljN.js +1 -0
- package/dist/control-web/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
- package/dist/control-web/assets/chunk-ZGVPDNZ5-EJHunJJc.js +62 -0
- package/dist/control-web/assets/clarity-SemFz856.js +1 -0
- package/dist/control-web/assets/classDiagram-OUVF2IWQ-CbpSOtxx.js +1 -0
- package/dist/control-web/assets/classDiagram-v2-EOCWNBFH-CbpSOtxx.js +1 -0
- package/dist/control-web/assets/clojure-DqKBuwfJ.js +1 -0
- package/dist/control-web/assets/cmake-Bj61d0ZC.js +1 -0
- package/dist/control-web/assets/cobol-BsV-839J.js +1 -0
- package/dist/control-web/assets/codeowners-C8r90Shi.js +1 -0
- package/dist/control-web/assets/codeql-oeQT6MSM.js +1 -0
- package/dist/control-web/assets/coffee-CiiSLhB6.js +1 -0
- package/dist/control-web/assets/common-lisp-Cv5bFMCO.js +1 -0
- package/dist/control-web/assets/coq-BrsZFFmf.js +1 -0
- package/dist/control-web/assets/cose-bilkent-JH36ORCC-lJEhNiw_.js +1 -0
- package/dist/control-web/assets/cpp-DjoE5qBx.js +1 -0
- package/dist/control-web/assets/crystal-DDxHDkHz.js +1 -0
- package/dist/control-web/assets/csharp-Ct8U2NOr.js +1 -0
- package/dist/control-web/assets/css-LjpOdHib.js +1 -0
- package/dist/control-web/assets/csv-Dx-8-gkx.js +1 -0
- package/dist/control-web/assets/cue-CE9AQfxI.js +1 -0
- package/dist/control-web/assets/cynefin-VYW2F7L2-BaT-TB_Y.js +1 -0
- package/dist/control-web/assets/cynefinDiagram-TSTJHNR4-sW0lbfzR.js +62 -0
- package/dist/control-web/assets/cypher-ClKdZ_lG.js +1 -0
- package/dist/control-web/assets/cytoscape.esm-B-NFISlW.js +321 -0
- package/dist/control-web/assets/d-qD-0Kul2.js +1 -0
- package/dist/control-web/assets/dagre-Buvkdvvj.js +1 -0
- package/dist/control-web/assets/dagre-VKFMJZFB-DszFEQ50.js +4 -0
- package/dist/control-web/assets/dark-plus-Cs2F2srj.js +1 -0
- package/dist/control-web/assets/dart-DkHntEIa.js +1 -0
- package/dist/control-web/assets/dax-BkyTk9wS.js +1 -0
- package/dist/control-web/assets/defaultLocale-BFoDCU3G.js +1 -0
- package/dist/control-web/assets/desktop-Dlh5hvp9.js +1 -0
- package/dist/control-web/assets/diagram-FQU43EPY-BPueVs2y.js +3 -0
- package/dist/control-web/assets/diagram-G47NLZAW-BSgnrddi.js +24 -0
- package/dist/control-web/assets/diagram-NH7WQ7WH-1WyXWZVF.js +24 -0
- package/dist/control-web/assets/diagram-OA4YK3LP--O72jADz.js +30 -0
- package/dist/control-web/assets/diagram-WEI45ONY-B2QpDXZ9.js +41 -0
- package/dist/control-web/assets/diff-woXpYk--.js +1 -0
- package/dist/control-web/assets/dist-Dv-qw3vC.js +153 -0
- package/dist/control-web/assets/dist-v5Q1xZ2K.js +1 -0
- package/dist/control-web/assets/docker-IyjqRm3v.js +1 -0
- package/dist/control-web/assets/dotenv-_5a1GRtc.js +1 -0
- package/dist/control-web/assets/dracula-BHWKrbxM.js +1 -0
- package/dist/control-web/assets/dracula-soft-5eyTD99u.js +1 -0
- package/dist/control-web/assets/dream-maker-DW3nJb8Q.js +1 -0
- package/dist/control-web/assets/ebnfDiagram-CCIWWBDH-DSs-ystO.js +1 -0
- package/dist/control-web/assets/edge-8z7Jp9dO.js +1 -0
- package/dist/control-web/assets/elixir-CUV54ev5.js +1 -0
- package/dist/control-web/assets/elm-o4NJxfws.js +1 -0
- package/dist/control-web/assets/emacs-lisp-C9PiwqqW.js +1 -0
- package/dist/control-web/assets/erDiagram-Q63AITRT-Dd6hMu35.js +85 -0
- package/dist/control-web/assets/erb-CIsHcwm1.js +1 -0
- package/dist/control-web/assets/erlang-Cphh6RMH.js +1 -0
- package/dist/control-web/assets/eventmodeling-45OFAUF4-B4JspsqG.js +1 -0
- package/dist/control-web/assets/everforest-dark-sB-x3p7T.js +1 -0
- package/dist/control-web/assets/everforest-light-Df2xbC6M.js +1 -0
- package/dist/control-web/assets/fennel-DQxkIbk2.js +1 -0
- package/dist/control-web/assets/fish-BJitypiv.js +1 -0
- package/dist/control-web/assets/flowDiagram-23GEKE2U-Ium-zrch.js +1 -0
- package/dist/control-web/assets/fluent-C03EYrpw.js +1 -0
- package/dist/control-web/assets/fortran-fixed-form-DEKoE2YW.js +1 -0
- package/dist/control-web/assets/fortran-free-form-CYNrtFtB.js +1 -0
- package/dist/control-web/assets/fsharp-D13ZGOAj.js +1 -0
- package/dist/control-web/assets/ganttDiagram-NO4QXBWP-COHCKhqO.js +292 -0
- package/dist/control-web/assets/gdresource-C0sCabJj.js +1 -0
- package/dist/control-web/assets/gdscript-Cp2uCuqX.js +1 -0
- package/dist/control-web/assets/gdshader-CBce3t8t.js +1 -0
- package/dist/control-web/assets/genie-CV2tkWYe.js +1 -0
- package/dist/control-web/assets/gherkin-DExj1W_8.js +1 -0
- package/dist/control-web/assets/git-commit-BSykSTBG.js +1 -0
- package/dist/control-web/assets/git-rebase-BDPpS8w6.js +1 -0
- package/dist/control-web/assets/gitGraph-TEB2WS4Q-CysYOV0u.js +1 -0
- package/dist/control-web/assets/gitGraphDiagram-IHSO6WYX-RDxV8G1J.js +106 -0
- package/dist/control-web/assets/github-dark-C-LZuMrd.js +1 -0
- package/dist/control-web/assets/github-dark-default-DXG-b-1a.js +1 -0
- package/dist/control-web/assets/github-dark-dimmed-Bx1FflLF.js +1 -0
- package/dist/control-web/assets/github-dark-high-contrast-B_tTalzw.js +1 -0
- package/dist/control-web/assets/github-light-EUqPIrTm.js +1 -0
- package/dist/control-web/assets/github-light-default-BXViO-2h.js +1 -0
- package/dist/control-web/assets/github-light-high-contrast-B68TUdTA.js +1 -0
- package/dist/control-web/assets/gleam-CSRkHgEL.js +1 -0
- package/dist/control-web/assets/glimmer-js-OEO36pDk.js +1 -0
- package/dist/control-web/assets/glimmer-ts-BnAPyISE.js +1 -0
- package/dist/control-web/assets/glsl-D5MA2a_X.js +1 -0
- package/dist/control-web/assets/gn-ilITqXS6.js +1 -0
- package/dist/control-web/assets/gnuplot-7GGW24-e.js +1 -0
- package/dist/control-web/assets/go-BJwz_mda.js +1 -0
- package/dist/control-web/assets/graphlib-DS17s2tU.js +1 -0
- package/dist/control-web/assets/graphql-Ctjuxyvl.js +1 -0
- package/dist/control-web/assets/groovy-CacY0gHj.js +1 -0
- package/dist/control-web/assets/gruvbox-dark-hard-C820rvS2.js +1 -0
- package/dist/control-web/assets/gruvbox-dark-medium-BPjhmG05.js +1 -0
- package/dist/control-web/assets/gruvbox-dark-soft-MrdJrrXF.js +1 -0
- package/dist/control-web/assets/gruvbox-light-hard-BC_s9l72.js +1 -0
- package/dist/control-web/assets/gruvbox-light-medium-BAWPOn9u.js +1 -0
- package/dist/control-web/assets/gruvbox-light-soft-BSMLrYjP.js +1 -0
- package/dist/control-web/assets/hack-D_mkkoLd.js +1 -0
- package/dist/control-web/assets/haml-mpgecWZ6.js +1 -0
- package/dist/control-web/assets/handlebars-CAx_777f.js +1 -0
- package/dist/control-web/assets/haskell-D8IpX4py.js +1 -0
- package/dist/control-web/assets/haxe-OTjmBuCE.js +1 -0
- package/dist/control-web/assets/hcl-Dh228itO.js +1 -0
- package/dist/control-web/assets/highlighted-body-OFNGDK62-D0q5eseS.js +1 -0
- package/dist/control-web/assets/hjson-CxZEssPk.js +1 -0
- package/dist/control-web/assets/hlsl-Cvrh5tZx.js +1 -0
- package/dist/control-web/assets/horizon-CE9ld1lL.js +1 -0
- package/dist/control-web/assets/horizon-bright-Br1oVSNq.js +1 -0
- package/dist/control-web/assets/houston-CsvMBhTu.js +1 -0
- package/dist/control-web/assets/html-B2lrdnWr.js +1 -0
- package/dist/control-web/assets/html-derivative-CDfZYcul.js +1 -0
- package/dist/control-web/assets/http-kmH8AyfE.js +1 -0
- package/dist/control-web/assets/hurl-DCZHXKU4.js +1 -0
- package/dist/control-web/assets/hxml-B0Qn7Nwc.js +1 -0
- package/dist/control-web/assets/hy-CZbG8q4J.js +1 -0
- package/dist/control-web/assets/imba-DsUTQ-LC.js +1 -0
- package/dist/control-web/assets/index-CfRLpoTC.js +140 -0
- package/dist/control-web/assets/index-uEpvRMX9.css +1 -0
- package/dist/control-web/assets/info-DKCQHKI2-C8E_rmu3.js +1 -0
- package/dist/control-web/assets/infoDiagram-FWYZ7A6U-BmH8cm18.js +2 -0
- package/dist/control-web/assets/ini-B5eOa1yu.js +1 -0
- package/dist/control-web/assets/init-C-OQMol4.js +1 -0
- package/dist/control-web/assets/ishikawaDiagram-FXEZZL3T-DR1Vhzx7.js +70 -0
- package/dist/control-web/assets/java-DdHNQ9hk.js +1 -0
- package/dist/control-web/assets/javascript-obGGvMPs.js +1 -0
- package/dist/control-web/assets/jinja-BMiPVedm.js +1 -0
- package/dist/control-web/assets/jison-CBjhYtSs.js +1 -0
- package/dist/control-web/assets/journeyDiagram-5HDEW3XC-C7gr8G1Z.js +139 -0
- package/dist/control-web/assets/json-DAgxKhMr.js +1 -0
- package/dist/control-web/assets/json5-BR5RXkoi.js +1 -0
- package/dist/control-web/assets/jsonc-CYpm1nAK.js +1 -0
- package/dist/control-web/assets/jsonl-CmCQp5Yx.js +1 -0
- package/dist/control-web/assets/jsonnet-CJTPZ8u_.js +1 -0
- package/dist/control-web/assets/jssm-DXw9l8Rf.js +1 -0
- package/dist/control-web/assets/jsx-gTgmArGx.js +1 -0
- package/dist/control-web/assets/julia-CjHxn3vf.js +1 -0
- package/dist/control-web/assets/just-DMArCiVH.js +1 -0
- package/dist/control-web/assets/kanagawa-dragon-CXtmUGW6.js +1 -0
- package/dist/control-web/assets/kanagawa-lotus-BN08jTvb.js +1 -0
- package/dist/control-web/assets/kanagawa-wave-CTweb8Dz.js +1 -0
- package/dist/control-web/assets/kanban-definition-HUTT4EX6-Cg_3ELUy.js +89 -0
- package/dist/control-web/assets/katex-BSYj5LXs.js +1 -0
- package/dist/control-web/assets/kdl-CsD5j6eV.js +1 -0
- package/dist/control-web/assets/kotlin-DhhofPvG.js +1 -0
- package/dist/control-web/assets/kusto-BUv0MjJC.js +1 -0
- package/dist/control-web/assets/laserwave-C_8bwKvT.js +1 -0
- package/dist/control-web/assets/latex-D9bvcAJr.js +1 -0
- package/dist/control-web/assets/lean-CewbzKMR.js +1 -0
- package/dist/control-web/assets/less-DVTAwKKz.js +1 -0
- package/dist/control-web/assets/lib-BZ_F5vVH.js +1 -0
- package/dist/control-web/assets/light-plus-DVQuIRkW.js +1 -0
- package/dist/control-web/assets/line-Dt86r9Z9.js +1 -0
- package/dist/control-web/assets/linear-DmucvK78.js +1 -0
- package/dist/control-web/assets/liquid-CCX5qouA.js +1 -0
- package/dist/control-web/assets/llvm-Cm23YOpf.js +1 -0
- package/dist/control-web/assets/log-BNLmms1o.js +1 -0
- package/dist/control-web/assets/logo-Cluzi2Zq.js +1 -0
- package/dist/control-web/assets/lua-FONpmTUP.js +1 -0
- package/dist/control-web/assets/luau-CNKltnaQ.js +1 -0
- package/dist/control-web/assets/make-Dixweg8N.js +1 -0
- package/dist/control-web/assets/map-BaFkSB1l.js +1 -0
- package/dist/control-web/assets/markdown-BYOwaDjH.js +1 -0
- package/dist/control-web/assets/markdown-streamdown-DEcVZfaU.css +1 -0
- package/dist/control-web/assets/markdown-streamdown-OYO-HVz6.js +433 -0
- package/dist/control-web/assets/marko-oPGh3KfH.js +1 -0
- package/dist/control-web/assets/material-theme-Bm3Qr25_.js +1 -0
- package/dist/control-web/assets/material-theme-darker-2IIEA8gg.js +1 -0
- package/dist/control-web/assets/material-theme-lighter-uhdI0v04.js +1 -0
- package/dist/control-web/assets/material-theme-ocean-CHQ94UKr.js +1 -0
- package/dist/control-web/assets/material-theme-palenight-B5W6OYN7.js +1 -0
- package/dist/control-web/assets/matlab-D7qyCx1q.js +1 -0
- package/dist/control-web/assets/mdc-B_uQHOlt.js +1 -0
- package/dist/control-web/assets/mdx-DQZ5AkYe.js +1 -0
- package/dist/control-web/assets/mermaid-Bk4SNUv9.js +1 -0
- package/dist/control-web/assets/mermaid-GHXKKRXX-BybKptJt.js +1 -0
- package/dist/control-web/assets/mermaid-parser.core-pxV_1Fef.js +7 -0
- package/dist/control-web/assets/min-dark-BSWPekZh.js +1 -0
- package/dist/control-web/assets/min-light-DDpmG2fV.js +1 -0
- package/dist/control-web/assets/mindmap-definition-LN4V7U3C-CBevDwDF.js +96 -0
- package/dist/control-web/assets/mipsasm-BMqwQI7S.js +1 -0
- package/dist/control-web/assets/mojo-BgCJLMeH.js +1 -0
- package/dist/control-web/assets/monokai-CdkpiU2Y.js +1 -0
- package/dist/control-web/assets/moonbit-CaWjb8XO.js +1 -0
- package/dist/control-web/assets/move-B1IS1UjX.js +1 -0
- package/dist/control-web/assets/narrat-_X_XdTYD.js +1 -0
- package/dist/control-web/assets/nextflow-Bbiyy34d.js +1 -0
- package/dist/control-web/assets/nextflow-groovy-Dc_ddanL.js +1 -0
- package/dist/control-web/assets/nginx-BTMw9COX.js +1 -0
- package/dist/control-web/assets/night-owl-DhmEMT88.js +1 -0
- package/dist/control-web/assets/night-owl-light-eJ-hLW7d.js +1 -0
- package/dist/control-web/assets/nim-8PQFL6ZB.js +1 -0
- package/dist/control-web/assets/nix-IvuFDN5E.js +1 -0
- package/dist/control-web/assets/nord-Cb4Vim4T.js +1 -0
- package/dist/control-web/assets/nushell-DcLAeLz5.js +1 -0
- package/dist/control-web/assets/objective-c-D1A_Heim.js +1 -0
- package/dist/control-web/assets/objective-cpp-BsSzOQcm.js +1 -0
- package/dist/control-web/assets/ocaml-O90oeIOV.js +1 -0
- package/dist/control-web/assets/odin-B1RWQWA5.js +1 -0
- package/dist/control-web/assets/one-dark-pro-CLwyXe_n.js +1 -0
- package/dist/control-web/assets/one-light-D7Lr4KcI.js +1 -0
- package/dist/control-web/assets/openscad-BUDT5pXO.js +1 -0
- package/dist/control-web/assets/ordinal-BDEzSJ7C.js +1 -0
- package/dist/control-web/assets/packet-7NZHBO7P-A9sKZzEL.js +1 -0
- package/dist/control-web/assets/pascal-4ZHwLPI5.js +1 -0
- package/dist/control-web/assets/path-fybaL0A-.js +1 -0
- package/dist/control-web/assets/pegDiagram-2B236MQR-BTIvrl_V.js +1 -0
- package/dist/control-web/assets/perl-Vf0i0hAx.js +1 -0
- package/dist/control-web/assets/php-am1OsKhm.js +1 -0
- package/dist/control-web/assets/pie-RZYD4A2V-DUzb4QBE.js +1 -0
- package/dist/control-web/assets/pieDiagram-ENE6RG2P-CzmJJofh.js +39 -0
- package/dist/control-web/assets/pkl-ot-7Btpt.js +1 -0
- package/dist/control-web/assets/plastic-DQwYfKfQ.js +1 -0
- package/dist/control-web/assets/plsql-DGHpHOYJ.js +1 -0
- package/dist/control-web/assets/po-BiJDBrnU.js +1 -0
- package/dist/control-web/assets/poimandres-DRFjx7u4.js +1 -0
- package/dist/control-web/assets/polar-C7UOKdEL.js +1 -0
- package/dist/control-web/assets/postcss-BXeXVLqQ.js +1 -0
- package/dist/control-web/assets/powerquery-DNMTfnFr.js +1 -0
- package/dist/control-web/assets/powershell-DshXNtvi.js +1 -0
- package/dist/control-web/assets/prisma-BsRQq5mF.js +1 -0
- package/dist/control-web/assets/prolog-iXnhIJG7.js +1 -0
- package/dist/control-web/assets/proto-DB4EqR-F.js +1 -0
- package/dist/control-web/assets/pug-DO6yvBr3.js +1 -0
- package/dist/control-web/assets/puppet-CDv2pdJW.js +1 -0
- package/dist/control-web/assets/purescript-9MfHhQsQ.js +1 -0
- package/dist/control-web/assets/python-gzcpVVnB.js +1 -0
- package/dist/control-web/assets/qml-_a-QhfPD.js +1 -0
- package/dist/control-web/assets/qmldir-DCQb3MpD.js +1 -0
- package/dist/control-web/assets/qss-Fe1Jh2GI.js +1 -0
- package/dist/control-web/assets/quadrantDiagram-ABIIQ3AL-D6bXvpAG.js +7 -0
- package/dist/control-web/assets/r-D6UWEOL2.js +1 -0
- package/dist/control-web/assets/racket-DcIDlBhZ.js +1 -0
- package/dist/control-web/assets/radar-I7S5WNFK-BV54nFux.js +1 -0
- package/dist/control-web/assets/railroad-3IZDKUUU-B2cY_UXv.js +1 -0
- package/dist/control-web/assets/railroad-abnf-AHOZXSZD-C6gyeMKO.js +1 -0
- package/dist/control-web/assets/railroad-ebnf-EBAXGLYW-CTnsShXg.js +1 -0
- package/dist/control-web/assets/railroad-peg-LSFZ7HO6-NgilCakK.js +1 -0
- package/dist/control-web/assets/railroadDiagram-RFXS5EU6-D_fo16vD.js +1 -0
- package/dist/control-web/assets/raku-B3gFvitq.js +1 -0
- package/dist/control-web/assets/razor-CMVBVp3T.js +1 -0
- package/dist/control-web/assets/red-CJ3rzSJv.js +1 -0
- package/dist/control-web/assets/reg-CRGYupPL.js +1 -0
- package/dist/control-web/assets/regexp-DR20uMnK.js +1 -0
- package/dist/control-web/assets/rel-BtDbiS_P.js +1 -0
- package/dist/control-web/assets/requirementDiagram-TGXJPOKE-D2yP7TUp.js +84 -0
- package/dist/control-web/assets/riscv-Ckw8ddFX.js +1 -0
- package/dist/control-web/assets/rolldown-runtime-hePW80VL.js +1 -0
- package/dist/control-web/assets/ron-VUp2lXgN.js +1 -0
- package/dist/control-web/assets/rose-pine-BthvhNj6.js +1 -0
- package/dist/control-web/assets/rose-pine-dawn-Dg85fqjY.js +1 -0
- package/dist/control-web/assets/rose-pine-moon-hon4tzzS.js +1 -0
- package/dist/control-web/assets/rosmsg-CAekHB0j.js +1 -0
- package/dist/control-web/assets/rough.esm-Dy-Kn_BL.js +1 -0
- package/dist/control-web/assets/rst-CgIrbW_q.js +1 -0
- package/dist/control-web/assets/ruby-Dp6Zud9H.js +1 -0
- package/dist/control-web/assets/rust-Cfkwpbl8.js +1 -0
- package/dist/control-web/assets/sankeyDiagram-HTMAVEWB-By_qJ9BM.js +40 -0
- package/dist/control-web/assets/sas-B6p8-ynO.js +1 -0
- package/dist/control-web/assets/sass-DXrisJhu.js +1 -0
- package/dist/control-web/assets/scala-DKOlJaKm.js +1 -0
- package/dist/control-web/assets/scheme-DQCgrYNe.js +1 -0
- package/dist/control-web/assets/scss-DcoSS-ti.js +1 -0
- package/dist/control-web/assets/sdbl-bTVj8UrX.js +1 -0
- package/dist/control-web/assets/sequenceDiagram-DBY2YBRQ-DgX1K1l4.js +162 -0
- package/dist/control-web/assets/shaderlab-TOUzSsQk.js +1 -0
- package/dist/control-web/assets/shellscript-Da78Ox-3.js +1 -0
- package/dist/control-web/assets/shellsession-CVsQGYfZ.js +1 -0
- package/dist/control-web/assets/sizeCapture-X5ZJPWSS-B0uUizjq.js +1 -0
- package/dist/control-web/assets/slack-dark-DnToyrRv.js +1 -0
- package/dist/control-web/assets/slack-ochin-B2OO5cIa.js +1 -0
- package/dist/control-web/assets/smalltalk-B16xEiuN.js +1 -0
- package/dist/control-web/assets/snazzy-light-4G7pJPwS.js +1 -0
- package/dist/control-web/assets/solarized-dark-DV17i1UV.js +1 -0
- package/dist/control-web/assets/solarized-light-DSh2HLQt.js +1 -0
- package/dist/control-web/assets/solidity-CKzVLygQ.js +1 -0
- package/dist/control-web/assets/soy-B5n_eHSp.js +1 -0
- package/dist/control-web/assets/sparql-D_iOobhT.js +1 -0
- package/dist/control-web/assets/splunk-BC2Px7Mm.js +1 -0
- package/dist/control-web/assets/sql-ClgswhA6.js +1 -0
- package/dist/control-web/assets/src-B6xuSHsQ.js +1 -0
- package/dist/control-web/assets/ssh-config-BgfXC-Er.js +1 -0
- package/dist/control-web/assets/stata-RoaAgbqU.js +1 -0
- package/dist/control-web/assets/stateDiagram-2N3HPSRC-CeUgjm3D.js +1 -0
- package/dist/control-web/assets/stateDiagram-v2-6OUMAXLB-CsJT1Rvc.js +1 -0
- package/dist/control-web/assets/stylus-B6D30XZt.js +1 -0
- package/dist/control-web/assets/surrealql-DIn4NJsS.js +1 -0
- package/dist/control-web/assets/svelte-CIt8Fl9I.js +1 -0
- package/dist/control-web/assets/swift-DonLKvLd.js +1 -0
- package/dist/control-web/assets/swimlanes-5IMT3BWC-CTlZZmMW.js +2 -0
- package/dist/control-web/assets/swimlanesDiagram-G3AALYLV-CzaTMmXS.js +8 -0
- package/dist/control-web/assets/synthwave-84-nFMaYfgc.js +1 -0
- package/dist/control-web/assets/system-verilog-DJ5XKQeo.js +1 -0
- package/dist/control-web/assets/systemd-BxMlprV5.js +1 -0
- package/dist/control-web/assets/talonscript-CohzipZa.js +1 -0
- package/dist/control-web/assets/tasl-DMoTqEGO.js +1 -0
- package/dist/control-web/assets/tcl-CZd0xW_V.js +1 -0
- package/dist/control-web/assets/templ-BREsJpNc.js +1 -0
- package/dist/control-web/assets/terraform-DswuEJGm.js +1 -0
- package/dist/control-web/assets/tex-0w6-Dtgt.js +1 -0
- package/dist/control-web/assets/timeline-definition-FHXFAJF6-Cq3seh59.js +120 -0
- package/dist/control-web/assets/tokyo-night-oM2G3aXe.js +1 -0
- package/dist/control-web/assets/toml-CcmNWLt0.js +1 -0
- package/dist/control-web/assets/treeView-QDETBFTQ-Cumz-G5q.js +1 -0
- package/dist/control-web/assets/treemap-6X3UGDF4-Bq5v5pf6.js +1 -0
- package/dist/control-web/assets/ts-tags-q3pptdMi.js +1 -0
- package/dist/control-web/assets/tsv-sltzmVWM.js +1 -0
- package/dist/control-web/assets/tsx-CUOciP0b.js +1 -0
- package/dist/control-web/assets/turtle-ByJddavk.js +1 -0
- package/dist/control-web/assets/twig-LIeLXgf5.js +1 -0
- package/dist/control-web/assets/typescript-BydbNFcO.js +1 -0
- package/dist/control-web/assets/typespec-B88KGewJ.js +1 -0
- package/dist/control-web/assets/typst-DI99ib-x.js +1 -0
- package/dist/control-web/assets/v-DETTlOr0.js +1 -0
- package/dist/control-web/assets/vala-zf12oZj6.js +1 -0
- package/dist/control-web/assets/vb-Djn5o6TS.js +1 -0
- package/dist/control-web/assets/vennDiagram-L72KCM5P-Bx9PN1Pw.js +34 -0
- package/dist/control-web/assets/verilog-CiiDBU1e.js +1 -0
- package/dist/control-web/assets/vesper-D5bVUKB1.js +1 -0
- package/dist/control-web/assets/vhdl-BroJfC0k.js +1 -0
- package/dist/control-web/assets/viml-DvXPmvsu.js +1 -0
- package/dist/control-web/assets/vitesse-black-fwtXNY1n.js +1 -0
- package/dist/control-web/assets/vitesse-dark-BZCL-v6S.js +1 -0
- package/dist/control-web/assets/vitesse-light-VbXTXTou.js +1 -0
- package/dist/control-web/assets/vue-DVSfBueU.js +1 -0
- package/dist/control-web/assets/vue-html-DkKkQnZL.js +1 -0
- package/dist/control-web/assets/vue-vine-pWqEcBkW.js +1 -0
- package/dist/control-web/assets/vyper-CgoNMtux.js +1 -0
- package/dist/control-web/assets/wardley-OPB4EBWU-DDRYn_rw.js +1 -0
- package/dist/control-web/assets/wardleyDiagram-EHGQE667-DOHp80dH.js +78 -0
- package/dist/control-web/assets/{wasm-CG6Dc4jp.js → wasm-BnjxR4X6.js} +1 -1
- package/dist/control-web/assets/wasm-ByWQv1Qj.js +1 -0
- package/dist/control-web/assets/wenyan-C8pVoKbM.js +1 -0
- package/dist/control-web/assets/wgsl-BsKzXJz4.js +1 -0
- package/dist/control-web/assets/wikitext-ClFFjSW2.js +1 -0
- package/dist/control-web/assets/wit-DdvCle-K.js +1 -0
- package/dist/control-web/assets/wolfram-DLL8P-h_.js +1 -0
- package/dist/control-web/assets/xml-BlnrEAEy.js +1 -0
- package/dist/control-web/assets/xsl-BOPS8gLt.js +1 -0
- package/dist/control-web/assets/xychartDiagram-FW5EYKEG-kaZ1Sn-e.js +7 -0
- package/dist/control-web/assets/yaml-Du_6cdrH.js +1 -0
- package/dist/control-web/assets/zenscript-BnlCZFoB.js +1 -0
- package/dist/control-web/assets/zig-CMLA9XwU.js +1 -0
- package/dist/control-web/index.html +3 -2
- package/dist/direct-runtime-server.js +187 -153
- package/dist/machine-session-service.d.ts +3 -1
- package/dist/machine-session-service.js +71 -14
- package/dist/session-portal.js +32 -18
- package/dist/session-terminal-host.d.ts +22 -2
- package/dist/session-terminal-host.js +66 -83
- package/dist/terminal-ws.d.ts +4 -1
- package/dist/terminal-ws.js +95 -31
- package/package.json +7 -7
- package/dist/control-web/assets/abap-BdImnpbu.js +0 -1
- package/dist/control-web/assets/abnfDiagram-VRR7QNED-8c99_3I5.js +0 -1
- package/dist/control-web/assets/actionscript-3-CoDkCxhg.js +0 -1
- package/dist/control-web/assets/ada-bCR0ucgS.js +0 -1
- package/dist/control-web/assets/andromeeda-C4gqWexZ.js +0 -1
- package/dist/control-web/assets/angular-html-CU67Zn6k.js +0 -1
- package/dist/control-web/assets/angular-ts-BwZT4LLn.js +0 -1
- package/dist/control-web/assets/apache-Pmp26Uib.js +0 -1
- package/dist/control-web/assets/apex-D8_7TLub.js +0 -1
- package/dist/control-web/assets/apl-dKokRX4l.js +0 -1
- package/dist/control-web/assets/applescript-Co6uUVPk.js +0 -1
- package/dist/control-web/assets/ara-BRHolxvo.js +0 -1
- package/dist/control-web/assets/arc-FWW96Tzo.js +0 -1
- package/dist/control-web/assets/architectureDiagram-ZJ3FMSHR-B5FrqoRB.js +0 -36
- package/dist/control-web/assets/asciidoc-Ve4PFQV2.js +0 -1
- package/dist/control-web/assets/asm-D_Q5rh1f.js +0 -1
- package/dist/control-web/assets/astro-CbQHKStN.js +0 -1
- package/dist/control-web/assets/aurora-x-D-2ljcwZ.js +0 -1
- package/dist/control-web/assets/awk-DMzUqQB5.js +0 -1
- package/dist/control-web/assets/ayu-dark-DYE7WIF3.js +0 -1
- package/dist/control-web/assets/ayu-light-BA47KaF1.js +0 -1
- package/dist/control-web/assets/ayu-mirage-32ctXXKs.js +0 -1
- package/dist/control-web/assets/ballerina-BFfxhgS-.js +0 -1
- package/dist/control-web/assets/bat-BkioyH1T.js +0 -1
- package/dist/control-web/assets/beancount-k_qm7-4y.js +0 -1
- package/dist/control-web/assets/berry-uYugtg8r.js +0 -1
- package/dist/control-web/assets/bibtex-CHM0blh-.js +0 -1
- package/dist/control-web/assets/bicep-Bmn6On1c.js +0 -1
- package/dist/control-web/assets/bird2-DPOp833l.js +0 -1
- package/dist/control-web/assets/blade-D4QpJJKB.js +0 -1
- package/dist/control-web/assets/blockDiagram-677ZJIJ3-DJRwOGMa.js +0 -132
- package/dist/control-web/assets/bsl-BO_Y6i37.js +0 -1
- package/dist/control-web/assets/c-BIGW1oBm.js +0 -1
- package/dist/control-web/assets/c3-eo99z4R2.js +0 -1
- package/dist/control-web/assets/c4Diagram-LMCZKHZV-B8FCUurl.js +0 -10
- package/dist/control-web/assets/cadence-Bv_4Rxtq.js +0 -1
- package/dist/control-web/assets/cairo-KRGpt6FW.js +0 -1
- package/dist/control-web/assets/catppuccin-frappe-DFWUc33u.js +0 -1
- package/dist/control-web/assets/catppuccin-latte-C9dUb6Cb.js +0 -1
- package/dist/control-web/assets/catppuccin-macchiato-DQyhUUbL.js +0 -1
- package/dist/control-web/assets/catppuccin-mocha-D87Tk5Gz.js +0 -1
- package/dist/control-web/assets/channel-Bnyhn1Qs.js +0 -1
- package/dist/control-web/assets/chunk-2Q5K7J3B-DC5xexY2.js +0 -1
- package/dist/control-web/assets/chunk-32BRIVSS-DAzT69zb.js +0 -1
- package/dist/control-web/assets/chunk-EX3LRPZG-DQKQvoPv.js +0 -231
- package/dist/control-web/assets/chunk-JWPE2WC7-CWMqpJoT.js +0 -1
- package/dist/control-web/assets/chunk-MOJQB5TN-Bd8jn7RZ.js +0 -88
- package/dist/control-web/assets/chunk-RYQCIY6F-DKXEMFO6.js +0 -1
- package/dist/control-web/assets/chunk-V7JOEXUC-BUDLq5nU.js +0 -206
- package/dist/control-web/assets/chunk-VR4S4FIN-C65l7VIz.js +0 -1
- package/dist/control-web/assets/chunk-XXDRQBXY-Y2498HkC.js +0 -1
- package/dist/control-web/assets/clarity-D53aC0YG.js +0 -1
- package/dist/control-web/assets/classDiagram-OUVF2IWQ-CBtXSdwW.js +0 -1
- package/dist/control-web/assets/classDiagram-v2-EOCWNBFH-CBtXSdwW.js +0 -1
- package/dist/control-web/assets/clojure-P80f7IUj.js +0 -1
- package/dist/control-web/assets/cmake-D1j8_8rp.js +0 -1
- package/dist/control-web/assets/cobol-nwyudZeR.js +0 -1
- package/dist/control-web/assets/codeowners-Bp6g37R7.js +0 -1
- package/dist/control-web/assets/codeql-DsOJ9woJ.js +0 -1
- package/dist/control-web/assets/coffee-Ch7k5sss.js +0 -1
- package/dist/control-web/assets/common-lisp-Cg-RD9OK.js +0 -1
- package/dist/control-web/assets/coq-DkFqJrB1.js +0 -1
- package/dist/control-web/assets/cose-bilkent-JH36ORCC-C9aVXb8E.js +0 -1
- package/dist/control-web/assets/cpp-CofmeUqb.js +0 -1
- package/dist/control-web/assets/crystal-tKQVLTB8.js +0 -1
- package/dist/control-web/assets/csharp-COcwbKMJ.js +0 -1
- package/dist/control-web/assets/css-DPfMkruS.js +0 -1
- package/dist/control-web/assets/csv-fuZLfV_i.js +0 -1
- package/dist/control-web/assets/cue-D82EKSYY.js +0 -1
- package/dist/control-web/assets/cynefin-VYW2F7L2-BsyMhvG0.js +0 -178
- package/dist/control-web/assets/cynefinDiagram-TSTJHNR4-DwY43f3-.js +0 -62
- package/dist/control-web/assets/cypher-COkxafJQ.js +0 -1
- package/dist/control-web/assets/cytoscape.esm-DTSO7Bv0.js +0 -331
- package/dist/control-web/assets/d-85-TOEBH.js +0 -1
- package/dist/control-web/assets/dagre-VKFMJZFB-CP1xk7Ox.js +0 -4
- package/dist/control-web/assets/dark-plus-C3mMm8J8.js +0 -1
- package/dist/control-web/assets/dart-CF10PKvl.js +0 -1
- package/dist/control-web/assets/dax-CEL-wOlO.js +0 -1
- package/dist/control-web/assets/defaultLocale-DX6XiGOO.js +0 -1
- package/dist/control-web/assets/desktop-BmXAJ9_W.js +0 -1
- package/dist/control-web/assets/diagram-FQU43EPY-D_yRnH1b.js +0 -3
- package/dist/control-web/assets/diagram-G47NLZAW-DpTmLmbm.js +0 -24
- package/dist/control-web/assets/diagram-NH7WQ7WH-Wh_P26Dr.js +0 -24
- package/dist/control-web/assets/diagram-OA4YK3LP-BMMaO78f.js +0 -30
- package/dist/control-web/assets/diagram-WEI45ONY-D8smty9F.js +0 -41
- package/dist/control-web/assets/diff-D97Zzqfu.js +0 -1
- package/dist/control-web/assets/docker-BcOcwvcX.js +0 -1
- package/dist/control-web/assets/dotenv-Da5cRb03.js +0 -1
- package/dist/control-web/assets/dracula-BzJJZx-M.js +0 -1
- package/dist/control-web/assets/dracula-soft-BXkSAIEj.js +0 -1
- package/dist/control-web/assets/dream-maker-BtqSS_iP.js +0 -1
- package/dist/control-web/assets/ebnfDiagram-CCIWWBDH-BqVsmEYh.js +0 -1
- package/dist/control-web/assets/edge-BkV0erSs.js +0 -1
- package/dist/control-web/assets/elixir-CDX3lj18.js +0 -1
- package/dist/control-web/assets/elm-DbKCFpqz.js +0 -1
- package/dist/control-web/assets/emacs-lisp-C9XAeP06.js +0 -1
- package/dist/control-web/assets/erDiagram-Q63AITRT-CxaumIzW.js +0 -85
- package/dist/control-web/assets/erb-B12qg9BL.js +0 -1
- package/dist/control-web/assets/erlang-DsQrWhSR.js +0 -1
- package/dist/control-web/assets/everforest-dark-BgDCqdQA.js +0 -1
- package/dist/control-web/assets/everforest-light-C8M2exoo.js +0 -1
- package/dist/control-web/assets/fennel-BYunw83y.js +0 -1
- package/dist/control-web/assets/fish-BvzEVeQv.js +0 -1
- package/dist/control-web/assets/flowDiagram-23GEKE2U-DZhUBne-.js +0 -156
- package/dist/control-web/assets/fluent-C4IJs8-o.js +0 -1
- package/dist/control-web/assets/fortran-fixed-form-CkoXwp7k.js +0 -1
- package/dist/control-web/assets/fortran-free-form-BxgE0vQu.js +0 -1
- package/dist/control-web/assets/fsharp-CXgrBDvD.js +0 -1
- package/dist/control-web/assets/ganttDiagram-NO4QXBWP-B20dY8SF.js +0 -292
- package/dist/control-web/assets/gdresource-BOOCDP_w.js +0 -1
- package/dist/control-web/assets/gdscript-C5YyOfLZ.js +0 -1
- package/dist/control-web/assets/gdshader-DkwncUOv.js +0 -1
- package/dist/control-web/assets/genie-D0YGMca9.js +0 -1
- package/dist/control-web/assets/gherkin-DyxjwDmM.js +0 -1
- package/dist/control-web/assets/git-commit-F4YmCXRG.js +0 -1
- package/dist/control-web/assets/git-rebase-r7XF79zn.js +0 -1
- package/dist/control-web/assets/gitGraphDiagram-IHSO6WYX-CAlnqFfW.js +0 -106
- package/dist/control-web/assets/github-dark-DHJKELXO.js +0 -1
- package/dist/control-web/assets/github-dark-default-Cuk6v7N8.js +0 -1
- package/dist/control-web/assets/github-dark-dimmed-DH5Ifo-i.js +0 -1
- package/dist/control-web/assets/github-dark-high-contrast-E3gJ1_iC.js +0 -1
- package/dist/control-web/assets/github-light-DAi9KRSo.js +0 -1
- package/dist/control-web/assets/github-light-default-D7oLnXFd.js +0 -1
- package/dist/control-web/assets/github-light-high-contrast-BfjtVDDH.js +0 -1
- package/dist/control-web/assets/gleam-BspZqrRM.js +0 -1
- package/dist/control-web/assets/glimmer-js-Rg0-pVw9.js +0 -1
- package/dist/control-web/assets/glimmer-ts-U6CK756n.js +0 -1
- package/dist/control-web/assets/glsl-DplSGwfg.js +0 -1
- package/dist/control-web/assets/gn-n2N0HUVH.js +0 -1
- package/dist/control-web/assets/gnuplot-DdkO51Og.js +0 -1
- package/dist/control-web/assets/go-CxLEBnE3.js +0 -1
- package/dist/control-web/assets/graph-C9eacEi8.js +0 -1
- package/dist/control-web/assets/graphql-ChdNCCLP.js +0 -1
- package/dist/control-web/assets/groovy-gcz8RCvz.js +0 -1
- package/dist/control-web/assets/gruvbox-dark-hard-CFHQjOhq.js +0 -1
- package/dist/control-web/assets/gruvbox-dark-medium-GsRaNv29.js +0 -1
- package/dist/control-web/assets/gruvbox-dark-soft-CVdnzihN.js +0 -1
- package/dist/control-web/assets/gruvbox-light-hard-CH1njM8p.js +0 -1
- package/dist/control-web/assets/gruvbox-light-medium-DRw_LuNl.js +0 -1
- package/dist/control-web/assets/gruvbox-light-soft-hJgmCMqR.js +0 -1
- package/dist/control-web/assets/hack-CaT9iCJl.js +0 -1
- package/dist/control-web/assets/haml-B8DHNrY2.js +0 -1
- package/dist/control-web/assets/handlebars-BL8al0AC.js +0 -1
- package/dist/control-web/assets/haskell-Df6bDoY_.js +0 -1
- package/dist/control-web/assets/haxe-CzTSHFRz.js +0 -1
- package/dist/control-web/assets/hcl-BWvSN4gD.js +0 -1
- package/dist/control-web/assets/highlighted-body-OFNGDK62-vBlGjC8F.js +0 -1
- package/dist/control-web/assets/hjson-D5-asLiD.js +0 -1
- package/dist/control-web/assets/hlsl-D3lLCCz7.js +0 -1
- package/dist/control-web/assets/horizon-BUw7H-hv.js +0 -1
- package/dist/control-web/assets/horizon-bright-Cn-bp-IR.js +0 -1
- package/dist/control-web/assets/houston-DnULxvSX.js +0 -1
- package/dist/control-web/assets/html-GMplVEZG.js +0 -1
- package/dist/control-web/assets/html-derivative-BFtXZ54Q.js +0 -1
- package/dist/control-web/assets/http-jrhK8wxY.js +0 -1
- package/dist/control-web/assets/hurl-irOxFIW8.js +0 -1
- package/dist/control-web/assets/hxml-Bvhsp5Yf.js +0 -1
- package/dist/control-web/assets/hy-DFXneXwc.js +0 -1
- package/dist/control-web/assets/imba-DGztddWO.js +0 -1
- package/dist/control-web/assets/index-B3g4Kfko.js +0 -153
- package/dist/control-web/assets/index-BKqZNg1a.js +0 -718
- package/dist/control-web/assets/index-CZrE_F_i.css +0 -32
- package/dist/control-web/assets/infoDiagram-FWYZ7A6U-PaEyeSke.js +0 -2
- package/dist/control-web/assets/ini-BEwlwnbL.js +0 -1
- package/dist/control-web/assets/init-Gi6I4Gst.js +0 -1
- package/dist/control-web/assets/ishikawaDiagram-FXEZZL3T-BwsgPXGC.js +0 -70
- package/dist/control-web/assets/java-CylS5w8V.js +0 -1
- package/dist/control-web/assets/javascript-wDzz0qaB.js +0 -1
- package/dist/control-web/assets/jinja-4LBKfQ-Z.js +0 -1
- package/dist/control-web/assets/jison-wvAkD_A8.js +0 -1
- package/dist/control-web/assets/journeyDiagram-5HDEW3XC-BUEf1NEq.js +0 -139
- package/dist/control-web/assets/json-Cp-IABpG.js +0 -1
- package/dist/control-web/assets/json5-C9tS-k6U.js +0 -1
- package/dist/control-web/assets/jsonc-Des-eS-w.js +0 -1
- package/dist/control-web/assets/jsonl-DcaNXYhu.js +0 -1
- package/dist/control-web/assets/jsonnet-DFQXde-d.js +0 -1
- package/dist/control-web/assets/jssm-C2t-YnRu.js +0 -1
- package/dist/control-web/assets/jsx-g9-lgVsj.js +0 -1
- package/dist/control-web/assets/julia-CxzCAyBv.js +0 -1
- package/dist/control-web/assets/just-Cw27pwNe.js +0 -1
- package/dist/control-web/assets/kanagawa-dragon-CkXjmgJE.js +0 -1
- package/dist/control-web/assets/kanagawa-lotus-CfQXZHmo.js +0 -1
- package/dist/control-web/assets/kanagawa-wave-DWedfzmr.js +0 -1
- package/dist/control-web/assets/kanban-definition-HUTT4EX6-CiTCwnJ7.js +0 -89
- package/dist/control-web/assets/kdl-DV7GczEv.js +0 -1
- package/dist/control-web/assets/kotlin-BdnUsdx6.js +0 -1
- package/dist/control-web/assets/kusto-DZf3V79B.js +0 -1
- package/dist/control-web/assets/laserwave-DUszq2jm.js +0 -1
- package/dist/control-web/assets/latex-CWtU0Tv5.js +0 -1
- package/dist/control-web/assets/layout-DEXfKzaS.js +0 -1
- package/dist/control-web/assets/lean-BZvkOJ9d.js +0 -1
- package/dist/control-web/assets/less-B1dDrJ26.js +0 -1
- package/dist/control-web/assets/light-plus-B7mTdjB0.js +0 -1
- package/dist/control-web/assets/linear-Cs4GSPvX.js +0 -1
- package/dist/control-web/assets/liquid-DYVedYrR.js +0 -1
- package/dist/control-web/assets/llvm-DjAJT7YJ.js +0 -1
- package/dist/control-web/assets/log-2UxHyX5q.js +0 -1
- package/dist/control-web/assets/logo-BtOb2qkB.js +0 -1
- package/dist/control-web/assets/lua-BaeVxFsk.js +0 -1
- package/dist/control-web/assets/luau-C-HG3fhB.js +0 -1
- package/dist/control-web/assets/make-CHLpvVh8.js +0 -1
- package/dist/control-web/assets/map-Czzmt4hB.js +0 -1
- package/dist/control-web/assets/markdown-Cvjx9yec.js +0 -1
- package/dist/control-web/assets/marko-CnJfTvn9.js +0 -1
- package/dist/control-web/assets/material-theme-D5KoaKCx.js +0 -1
- package/dist/control-web/assets/material-theme-darker-BfHTSMKl.js +0 -1
- package/dist/control-web/assets/material-theme-lighter-B0m2ddpp.js +0 -1
- package/dist/control-web/assets/material-theme-ocean-CyktbL80.js +0 -1
- package/dist/control-web/assets/material-theme-palenight-Csfq5Kiy.js +0 -1
- package/dist/control-web/assets/matlab-D7o27uSR.js +0 -1
- package/dist/control-web/assets/mdc-BMNejdWA.js +0 -1
- package/dist/control-web/assets/mdx-Cmh6b_Ma.js +0 -1
- package/dist/control-web/assets/mermaid-GHXKKRXX-BYZTj3zW.css +0 -1
- package/dist/control-web/assets/mermaid-GHXKKRXX-C_lUqoOB.js +0 -710
- package/dist/control-web/assets/mermaid-mWjccvbQ.js +0 -1
- package/dist/control-web/assets/min-dark-CafNBF8u.js +0 -1
- package/dist/control-web/assets/min-light-CTRr51gU.js +0 -1
- package/dist/control-web/assets/mindmap-definition-LN4V7U3C-B8TkylOR.js +0 -96
- package/dist/control-web/assets/mipsasm-CKIfxQSi.js +0 -1
- package/dist/control-web/assets/mojo-rZm6bMo-.js +0 -1
- package/dist/control-web/assets/monokai-D4h5O-jR.js +0 -1
- package/dist/control-web/assets/moonbit-_H4v1dQx.js +0 -1
- package/dist/control-web/assets/move-IF9eRakj.js +0 -1
- package/dist/control-web/assets/narrat-DRg8JJMk.js +0 -1
- package/dist/control-web/assets/nextflow-Zz6hmt5N.js +0 -1
- package/dist/control-web/assets/nextflow-groovy-BeH2EWoN.js +0 -1
- package/dist/control-web/assets/nginx-BpAMiNFr.js +0 -1
- package/dist/control-web/assets/night-owl-C39BiMTA.js +0 -1
- package/dist/control-web/assets/night-owl-light-CMTm3GFP.js +0 -1
- package/dist/control-web/assets/nim-CVrawwO9.js +0 -1
- package/dist/control-web/assets/nix-CwoSXNpI.js +0 -1
- package/dist/control-web/assets/nord-Ddv68eIx.js +0 -1
- package/dist/control-web/assets/nushell-Cz2AlsmD.js +0 -1
- package/dist/control-web/assets/objective-c-DXmwc3jG.js +0 -1
- package/dist/control-web/assets/objective-cpp-CLxacb5B.js +0 -1
- package/dist/control-web/assets/ocaml-C0hk2d4L.js +0 -1
- package/dist/control-web/assets/odin-BBf5iR-q.js +0 -1
- package/dist/control-web/assets/one-dark-pro-DVMEJ2y_.js +0 -1
- package/dist/control-web/assets/one-light-C3Wv6jpd.js +0 -1
- package/dist/control-web/assets/openscad-C4EeE6gA.js +0 -1
- package/dist/control-web/assets/ordinal-Cboi1Yqb.js +0 -1
- package/dist/control-web/assets/pascal-D93ZcfNL.js +0 -1
- package/dist/control-web/assets/pegDiagram-2B236MQR-Bnge_jzz.js +0 -1
- package/dist/control-web/assets/perl-C0TMdlhV.js +0 -1
- package/dist/control-web/assets/php-Dhbhpdrm.js +0 -1
- package/dist/control-web/assets/pieDiagram-ENE6RG2P-DOP7FAKG.js +0 -39
- package/dist/control-web/assets/pkl-u5AG7uiY.js +0 -1
- package/dist/control-web/assets/plastic-3e1v2bzS.js +0 -1
- package/dist/control-web/assets/plsql-ChMvpjG-.js +0 -1
- package/dist/control-web/assets/po-BTJTHyun.js +0 -1
- package/dist/control-web/assets/poimandres-CS3Unz2-.js +0 -1
- package/dist/control-web/assets/polar-C0HS_06l.js +0 -1
- package/dist/control-web/assets/postcss-CXtECtnM.js +0 -1
- package/dist/control-web/assets/powerquery-CEu0bR-o.js +0 -1
- package/dist/control-web/assets/powershell-Dpen1YoG.js +0 -1
- package/dist/control-web/assets/prisma-Dd19v3D-.js +0 -1
- package/dist/control-web/assets/prolog-CbFg5uaA.js +0 -1
- package/dist/control-web/assets/proto-C7zT0LnQ.js +0 -1
- package/dist/control-web/assets/pug-CGlum2m_.js +0 -1
- package/dist/control-web/assets/puppet-BMWR74SV.js +0 -1
- package/dist/control-web/assets/purescript-CklMAg4u.js +0 -1
- package/dist/control-web/assets/python-B6aJPvgy.js +0 -1
- package/dist/control-web/assets/qml-3beO22l8.js +0 -1
- package/dist/control-web/assets/qmldir-C8lEn-DE.js +0 -1
- package/dist/control-web/assets/qss-IeuSbFQv.js +0 -1
- package/dist/control-web/assets/quadrantDiagram-ABIIQ3AL-Cqqu5uu-.js +0 -7
- package/dist/control-web/assets/r-Dspwwk_N.js +0 -1
- package/dist/control-web/assets/racket-BqYA7rlc.js +0 -1
- package/dist/control-web/assets/railroadDiagram-RFXS5EU6-1bk56BMW.js +0 -1
- package/dist/control-web/assets/raku-DXvB9xmW.js +0 -1
- package/dist/control-web/assets/razor-Uh8Bk_45.js +0 -1
- package/dist/control-web/assets/red-bN70gL4F.js +0 -1
- package/dist/control-web/assets/reg-C-SQnVFl.js +0 -1
- package/dist/control-web/assets/regexp-CDVJQ6XC.js +0 -1
- package/dist/control-web/assets/rel-C3B-1QV4.js +0 -1
- package/dist/control-web/assets/requirementDiagram-TGXJPOKE-BHVwG79A.js +0 -84
- package/dist/control-web/assets/riscv-BM1_JUlF.js +0 -1
- package/dist/control-web/assets/ron-D8l8udqQ.js +0 -1
- package/dist/control-web/assets/rose-pine-dawn-DHQR4-dF.js +0 -1
- package/dist/control-web/assets/rose-pine-moon-D4_iv3hh.js +0 -1
- package/dist/control-web/assets/rose-pine-qdsjHGoJ.js +0 -1
- package/dist/control-web/assets/rosmsg-BJDFO7_C.js +0 -1
- package/dist/control-web/assets/rst-BrH8l1NY.js +0 -1
- package/dist/control-web/assets/ruby-Dw2BHqvy.js +0 -1
- package/dist/control-web/assets/rust-B1yitclQ.js +0 -1
- package/dist/control-web/assets/sankeyDiagram-HTMAVEWB-ghjBFqfs.js +0 -40
- package/dist/control-web/assets/sas-cz2c8ADy.js +0 -1
- package/dist/control-web/assets/sass-Cj5Yp3dK.js +0 -1
- package/dist/control-web/assets/scala-C151Ov-r.js +0 -1
- package/dist/control-web/assets/scheme-C98Dy4si.js +0 -1
- package/dist/control-web/assets/scss-OYdSNvt2.js +0 -1
- package/dist/control-web/assets/sdbl-DVxCFoDh.js +0 -1
- package/dist/control-web/assets/sequenceDiagram-DBY2YBRQ-DChtyqq5.js +0 -162
- package/dist/control-web/assets/shaderlab-Dg9Lc6iA.js +0 -1
- package/dist/control-web/assets/shellscript-Yzrsuije.js +0 -1
- package/dist/control-web/assets/shellsession-BADoaaVG.js +0 -1
- package/dist/control-web/assets/sizeCapture-X5ZJPWSS-BNp94nCS.js +0 -1
- package/dist/control-web/assets/slack-dark-BthQWCQV.js +0 -1
- package/dist/control-web/assets/slack-ochin-DqwNpetd.js +0 -1
- package/dist/control-web/assets/smalltalk-BERRCDM3.js +0 -1
- package/dist/control-web/assets/snazzy-light-Bw305WKR.js +0 -1
- package/dist/control-web/assets/solarized-dark-DXbdFlpD.js +0 -1
- package/dist/control-web/assets/solarized-light-L9t79GZl.js +0 -1
- package/dist/control-web/assets/solidity-rGO070M0.js +0 -1
- package/dist/control-web/assets/soy-Brmx7dQM.js +0 -1
- package/dist/control-web/assets/sparql-rVzFXLq3.js +0 -1
- package/dist/control-web/assets/splunk-BtCnVYZw.js +0 -1
- package/dist/control-web/assets/sql-BLtJtn59.js +0 -1
- package/dist/control-web/assets/ssh-config-_ykCGR6B.js +0 -1
- package/dist/control-web/assets/stata-BH5u7GGu.js +0 -1
- package/dist/control-web/assets/stateDiagram-2N3HPSRC-CaFYkZZ2.js +0 -1
- package/dist/control-web/assets/stateDiagram-v2-6OUMAXLB-CCvEZFYI.js +0 -1
- package/dist/control-web/assets/stylus-BEDo0Tqx.js +0 -1
- package/dist/control-web/assets/surrealql-Bq5Q-fJD.js +0 -1
- package/dist/control-web/assets/svelte-C_ipcX3V.js +0 -1
- package/dist/control-web/assets/swift-D82vCrfD.js +0 -1
- package/dist/control-web/assets/swimlanes-5IMT3BWC-CV2YWeYv.js +0 -2
- package/dist/control-web/assets/swimlanesDiagram-G3AALYLV-BFAdJHEB.js +0 -8
- package/dist/control-web/assets/synthwave-84-CbfX1IO0.js +0 -1
- package/dist/control-web/assets/system-verilog-CnnmHF94.js +0 -1
- package/dist/control-web/assets/systemd-4A_iFExJ.js +0 -1
- package/dist/control-web/assets/talonscript-CkByrt1z.js +0 -1
- package/dist/control-web/assets/tasl-QIJgUcNo.js +0 -1
- package/dist/control-web/assets/tcl-dwOrl1Do.js +0 -1
- package/dist/control-web/assets/templ-P3uqSqPl.js +0 -1
- package/dist/control-web/assets/terraform-BETggiCN.js +0 -1
- package/dist/control-web/assets/tex-idrVyKtj.js +0 -1
- package/dist/control-web/assets/timeline-definition-FHXFAJF6-Cq32UWLH.js +0 -120
- package/dist/control-web/assets/tokyo-night-hegEt444.js +0 -1
- package/dist/control-web/assets/toml-vGWfd6FD.js +0 -1
- package/dist/control-web/assets/ts-tags-zn1MmPIZ.js +0 -1
- package/dist/control-web/assets/tsv-B_m7g4N7.js +0 -1
- package/dist/control-web/assets/tsx-COt5Ahok.js +0 -1
- package/dist/control-web/assets/turtle-BsS91CYL.js +0 -1
- package/dist/control-web/assets/twig-DNn4PbVi.js +0 -1
- package/dist/control-web/assets/typescript-BPQ3VLAy.js +0 -1
- package/dist/control-web/assets/typespec-BGHnOYBU.js +0 -1
- package/dist/control-web/assets/typst-DHCkPAjA.js +0 -1
- package/dist/control-web/assets/v-BcVCzyr7.js +0 -1
- package/dist/control-web/assets/vala-CsfeWuGM.js +0 -1
- package/dist/control-web/assets/vb-D17OF-Vu.js +0 -1
- package/dist/control-web/assets/vennDiagram-L72KCM5P-BgBoqPth.js +0 -34
- package/dist/control-web/assets/verilog-BQ8w6xss.js +0 -1
- package/dist/control-web/assets/vesper-DU1UobuO.js +0 -1
- package/dist/control-web/assets/vhdl-CeAyd5Ju.js +0 -1
- package/dist/control-web/assets/viml-CJc9bBzg.js +0 -1
- package/dist/control-web/assets/vitesse-black-Bkuqu6BP.js +0 -1
- package/dist/control-web/assets/vitesse-dark-D0r3Knsf.js +0 -1
- package/dist/control-web/assets/vitesse-light-CVO1_9PV.js +0 -1
- package/dist/control-web/assets/vue-DN_0RTcg.js +0 -1
- package/dist/control-web/assets/vue-html-AaS7Mt5G.js +0 -1
- package/dist/control-web/assets/vue-vine-CQOfvN7w.js +0 -1
- package/dist/control-web/assets/vyper-CDx5xZoG.js +0 -1
- package/dist/control-web/assets/wardleyDiagram-EHGQE667-VsC2Gfpu.js +0 -78
- package/dist/control-web/assets/wasm-MzD3tlZU.js +0 -1
- package/dist/control-web/assets/wenyan-BV7otONQ.js +0 -1
- package/dist/control-web/assets/wgsl-Dx-B1_4e.js +0 -1
- package/dist/control-web/assets/wikitext-BhOHFoWU.js +0 -1
- package/dist/control-web/assets/wit-5i3qLPDT.js +0 -1
- package/dist/control-web/assets/wolfram-lXgVvXCa.js +0 -1
- package/dist/control-web/assets/xml-sdJ4AIDG.js +0 -1
- package/dist/control-web/assets/xsl-CtQFsRM5.js +0 -1
- package/dist/control-web/assets/xychartDiagram-FW5EYKEG-CyFiAunt.js +0 -7
- package/dist/control-web/assets/yaml-Buea-lGh.js +0 -1
- package/dist/control-web/assets/zenscript-DVFEvuxE.js +0 -1
- package/dist/control-web/assets/zig-VOosw3JB.js +0 -1
|
@@ -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,
|
|
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"
|
|
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.
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
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
|
-
|
|
1049
|
-
|
|
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
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
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
|
|
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((
|
|
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
|
-
|
|
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
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
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,
|
|
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
|
-
|
|
1276
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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") {
|
|
@@ -285,7 +285,9 @@ export interface MachineSessionMessageInput {
|
|
|
285
285
|
execution?: MachineSessionRunExecutionSelection;
|
|
286
286
|
}
|
|
287
287
|
export interface StartedMachineSessionRun {
|
|
288
|
-
|
|
288
|
+
/** Native identity when admission can return it synchronously. Transcript-
|
|
289
|
+
* backed runtimes publish it later on the canonical event stream. */
|
|
290
|
+
responseId?: string;
|
|
289
291
|
provider: SessionProviderId;
|
|
290
292
|
model: string | null;
|
|
291
293
|
authSource: AuditAuthSource;
|
|
@@ -529,21 +529,19 @@ export class MachineSessionService {
|
|
|
529
529
|
const result = await this.sendMessageAdmitted(sessionId, messageInput, options.signal, activateTurn, true, options.collaborationMode
|
|
530
530
|
? { collaborationMode: options.collaborationMode }
|
|
531
531
|
: undefined);
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
const replayItems = result.replayed
|
|
537
|
-
? (await this.ports.log.snapshot(sessionId)).filter((item) => item.responseId === responseId)
|
|
532
|
+
const initialResponseId = result.responseId;
|
|
533
|
+
const pendingId = result.pendingId;
|
|
534
|
+
const replayItems = result.replayed && initialResponseId
|
|
535
|
+
? (await this.ports.log.snapshot(sessionId)).filter((item) => item.responseId === initialResponseId)
|
|
538
536
|
: [];
|
|
539
537
|
const replayedItemIds = new Set(replayItems.map((item) => item.id));
|
|
540
|
-
const replayWasActive =
|
|
541
|
-
.snapshot(sessionId)
|
|
542
|
-
|
|
543
|
-
if (result.replayed && !replayWasActive) {
|
|
538
|
+
const replayWasActive = initialResponseId
|
|
539
|
+
? this.ports.runtimeState.snapshot(sessionId).activeResponseIds.includes(initialResponseId)
|
|
540
|
+
: false;
|
|
541
|
+
if (result.replayed && initialResponseId && !replayWasActive) {
|
|
544
542
|
throw new MachineSessionServiceFailure("outcome_unknown", "run was already accepted but its terminal event is no longer available");
|
|
545
543
|
}
|
|
546
|
-
if (result.replayed) {
|
|
544
|
+
if (result.replayed && (initialResponseId || pendingId)) {
|
|
547
545
|
activateTurn();
|
|
548
546
|
if (options.signal?.aborted) {
|
|
549
547
|
await this.ports.interruption.interrupt(sessionId).catch(() => false);
|
|
@@ -555,9 +553,32 @@ export class MachineSessionService {
|
|
|
555
553
|
reasoningEffort: meta.execution.reasoningEffort,
|
|
556
554
|
};
|
|
557
555
|
const model = runExecution.model;
|
|
556
|
+
// After a daemon restart an already-injected transcript-backed
|
|
557
|
+
// operation has neither a process-live pending id nor a replayable
|
|
558
|
+
// response id. Its delivery is still successful and must never be
|
|
559
|
+
// repeated. End this caller's projection without claiming a different
|
|
560
|
+
// future Turn; the transcript remains independently visible on the
|
|
561
|
+
// Session stream.
|
|
562
|
+
if (result.replayed && !initialResponseId && !pendingId) {
|
|
563
|
+
options.signal?.removeEventListener("abort", interrupt);
|
|
564
|
+
await subscription.return?.();
|
|
565
|
+
const provider = meta.execution.provider;
|
|
566
|
+
return {
|
|
567
|
+
provider,
|
|
568
|
+
model: runExecution.model,
|
|
569
|
+
authSource: provider === "traex"
|
|
570
|
+
? "traex_cli"
|
|
571
|
+
: provider === "claude"
|
|
572
|
+
? "claude_cli"
|
|
573
|
+
: "codex_cli",
|
|
574
|
+
generator: (async function* () { })(),
|
|
575
|
+
};
|
|
576
|
+
}
|
|
558
577
|
const generator = (async function* () {
|
|
578
|
+
let responseId = initialResponseId;
|
|
579
|
+
const beforeIdentity = new Map();
|
|
559
580
|
try {
|
|
560
|
-
if (result.replayed) {
|
|
581
|
+
if (result.replayed && responseId) {
|
|
561
582
|
yield {
|
|
562
583
|
type: "response.created",
|
|
563
584
|
sessionId,
|
|
@@ -572,13 +593,39 @@ export class MachineSessionService {
|
|
|
572
593
|
if (next.done)
|
|
573
594
|
return;
|
|
574
595
|
const event = next.value;
|
|
596
|
+
if (!responseId) {
|
|
597
|
+
const eventResponseId = sessionEventResponseId(event);
|
|
598
|
+
if (eventResponseId) {
|
|
599
|
+
const buffered = beforeIdentity.get(eventResponseId) ?? [];
|
|
600
|
+
buffered.push(event);
|
|
601
|
+
beforeIdentity.set(eventResponseId, buffered);
|
|
602
|
+
}
|
|
603
|
+
const lateResponseId = pendingId
|
|
604
|
+
? responseIdForClearedPending(event, pendingId)
|
|
605
|
+
: event.type === "response.created"
|
|
606
|
+
? event.responseId
|
|
607
|
+
: undefined;
|
|
608
|
+
if (!lateResponseId)
|
|
609
|
+
continue;
|
|
610
|
+
responseId = lateResponseId;
|
|
611
|
+
for (const buffered of beforeIdentity.get(responseId) ?? []) {
|
|
612
|
+
const itemId = sessionEventItemId(buffered);
|
|
613
|
+
if (itemId && replayedItemIds.has(itemId))
|
|
614
|
+
continue;
|
|
615
|
+
yield buffered;
|
|
616
|
+
if (isTerminalResponseEvent(buffered))
|
|
617
|
+
return;
|
|
618
|
+
}
|
|
619
|
+
beforeIdentity.clear();
|
|
620
|
+
continue;
|
|
621
|
+
}
|
|
575
622
|
if (sessionEventResponseId(event) !== responseId)
|
|
576
623
|
continue;
|
|
577
624
|
const itemId = sessionEventItemId(event);
|
|
578
625
|
if (itemId && replayedItemIds.has(itemId))
|
|
579
626
|
continue;
|
|
580
627
|
yield event;
|
|
581
|
-
if (event
|
|
628
|
+
if (isTerminalResponseEvent(event))
|
|
582
629
|
return;
|
|
583
630
|
}
|
|
584
631
|
}
|
|
@@ -590,7 +637,7 @@ export class MachineSessionService {
|
|
|
590
637
|
})();
|
|
591
638
|
const provider = meta.execution.provider;
|
|
592
639
|
return {
|
|
593
|
-
responseId,
|
|
640
|
+
...(initialResponseId ? { responseId: initialResponseId } : {}),
|
|
594
641
|
provider,
|
|
595
642
|
model: runExecution.model,
|
|
596
643
|
authSource: provider === "traex"
|
|
@@ -1534,6 +1581,16 @@ function sessionEventItemId(event) {
|
|
|
1534
1581
|
? event.item.id
|
|
1535
1582
|
: undefined;
|
|
1536
1583
|
}
|
|
1584
|
+
function responseIdForClearedPending(event, pendingId) {
|
|
1585
|
+
return event.type === "session.input.consumed" && event.clearedPendingId === pendingId
|
|
1586
|
+
? event.item.responseId
|
|
1587
|
+
: undefined;
|
|
1588
|
+
}
|
|
1589
|
+
function isTerminalResponseEvent(event) {
|
|
1590
|
+
return event.type === "response.completed" ||
|
|
1591
|
+
event.type === "response.failed" ||
|
|
1592
|
+
event.type === "session.interrupted";
|
|
1593
|
+
}
|
|
1537
1594
|
function replaySessionItem(item) {
|
|
1538
1595
|
if (item.type === "message" && item.data.role === "user") {
|
|
1539
1596
|
return { type: "session.input.consumed", item };
|