openfox 1.6.95 → 1.6.97
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/{auto-compaction-UOYOMWLZ.js → auto-compaction-2I3XUF5P.js} +5 -5
- package/dist/{chat-handler-5HU4QWD4.js → chat-handler-42XM6GZI.js} +8 -8
- package/dist/{chunk-FVVLGR2G.js → chunk-47FAM55V.js} +5 -5
- package/dist/{chunk-N5D6DGMN.js → chunk-B7UUSHT7.js} +137 -123
- package/dist/{chunk-SCUGYF7R.js → chunk-FBKS6IPU.js} +2 -2
- package/dist/{chunk-CHEVYEM4.js → chunk-K7IJKGYL.js} +3 -3
- package/dist/{chunk-DTXWOKAG.js → chunk-QAN42RJQ.js} +3 -3
- package/dist/{chunk-PQCFNTFJ.js → chunk-ROWFVGB6.js} +20 -3
- package/dist/{chunk-4I3C46WU.js → chunk-RREZKLOD.js} +1 -1
- package/dist/{chunk-PAAUYFYS.js → chunk-T67WWSM7.js} +3 -24
- package/dist/cli/dev.js +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/{events-HTVBWGHO.js → events-2UP7O6LW.js} +2 -2
- package/dist/{orchestrator-KGYZO6XH.js → orchestrator-I3YQFBTP.js} +6 -6
- package/dist/package.json +4 -2
- package/dist/{processor-QFBRN6AZ.js → processor-F3GKMYJT.js} +5 -5
- package/dist/{protocol-XRiJzlOK.d.ts → protocol-BFKDuZ7J.d.ts} +1 -0
- package/dist/{protocol-QDSVJTRN.js → protocol-FZUIA4BS.js} +2 -2
- package/dist/{serve-SSLGFSLJ.js → serve-QRK2E7HR.js} +7 -7
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.js +6 -6
- package/dist/{settings-AYSWDZUI.js → settings-TTYCUHWU.js} +2 -2
- package/dist/shared/index.d.ts +2 -2
- package/dist/{tools-FZS5JNQE.js → tools-SIVCXYHR.js} +5 -5
- package/dist/web/assets/abap-BdImnpbu.js +1 -0
- package/dist/web/assets/actionscript-3-CoDkCxhg.js +1 -0
- package/dist/web/assets/ada-bCR0ucgS.js +1 -0
- package/dist/web/assets/andromeeda-C4gqWexZ.js +1 -0
- package/dist/web/assets/angular-html-DA-rfuFy.js +1 -0
- package/dist/web/assets/angular-ts-BrjP3tb8.js +1 -0
- package/dist/web/assets/apache-Pmp26Uib.js +1 -0
- package/dist/web/assets/apex-Dqspr-GT.js +1 -0
- package/dist/web/assets/apl-CORt7UWP.js +1 -0
- package/dist/web/assets/applescript-Co6uUVPk.js +1 -0
- package/dist/web/assets/ara-BRHolxvo.js +1 -0
- package/dist/web/assets/asciidoc-Ve4PFQV2.js +1 -0
- package/dist/web/assets/asm-D_Q5rh1f.js +1 -0
- package/dist/web/assets/astro-HNnZUWAn.js +1 -0
- package/dist/web/assets/aurora-x-D-2ljcwZ.js +1 -0
- package/dist/web/assets/awk-DMzUqQB5.js +1 -0
- package/dist/web/assets/ayu-dark-DYE7WIF3.js +1 -0
- package/dist/web/assets/ayu-light-BA47KaF1.js +1 -0
- package/dist/web/assets/ayu-mirage-32ctXXKs.js +1 -0
- package/dist/web/assets/ballerina-BFfxhgS-.js +1 -0
- package/dist/web/assets/bat-BkioyH1T.js +1 -0
- package/dist/web/assets/beancount-k_qm7-4y.js +1 -0
- package/dist/web/assets/berry-uYugtg8r.js +1 -0
- package/dist/web/assets/bibtex-CHM0blh-.js +1 -0
- package/dist/web/assets/bicep-Bmn6On1c.js +1 -0
- package/dist/web/assets/bird2-BIv1doCn.js +1 -0
- package/dist/web/assets/blade-2xfisSek.js +1 -0
- package/dist/web/assets/bsl-BO_Y6i37.js +1 -0
- package/dist/web/assets/c-BIGW1oBm.js +1 -0
- package/dist/web/assets/c3-MRO5bC_T.js +1 -0
- package/dist/web/assets/cadence-Bv_4Rxtq.js +1 -0
- package/dist/web/assets/cairo-KRGpt6FW.js +1 -0
- package/dist/web/assets/catppuccin-frappe-DFWUc33u.js +1 -0
- package/dist/web/assets/catppuccin-latte-C9dUb6Cb.js +1 -0
- package/dist/web/assets/catppuccin-macchiato-DQyhUUbL.js +1 -0
- package/dist/web/assets/catppuccin-mocha-D87Tk5Gz.js +1 -0
- package/dist/web/assets/clarity-D53aC0YG.js +1 -0
- package/dist/web/assets/clojure-P80f7IUj.js +1 -0
- package/dist/web/assets/cmake-D1j8_8rp.js +1 -0
- package/dist/web/assets/cobol-nBiQ_Alo.js +1 -0
- package/dist/web/assets/codeowners-Bp6g37R7.js +1 -0
- package/dist/web/assets/codeql-DsOJ9woJ.js +1 -0
- package/dist/web/assets/coffee-Ch7k5sss.js +1 -0
- package/dist/web/assets/common-lisp-Cg-RD9OK.js +1 -0
- package/dist/web/assets/coq-DkFqJrB1.js +1 -0
- package/dist/web/assets/cpp-UfJy6YNI.js +1 -0
- package/dist/web/assets/crystal-DGywbUpC.js +1 -0
- package/dist/web/assets/csharp-DSvCPggb.js +1 -0
- package/dist/web/assets/css-CLj8gQPS.js +1 -0
- package/dist/web/assets/csv-fuZLfV_i.js +1 -0
- package/dist/web/assets/cue-D82EKSYY.js +1 -0
- package/dist/web/assets/cypher-COkxafJQ.js +1 -0
- package/dist/web/assets/d-85-TOEBH.js +1 -0
- package/dist/web/assets/dark-plus-C3mMm8J8.js +1 -0
- package/dist/web/assets/dart-bE4Kk8sk.js +1 -0
- package/dist/web/assets/dax-CEL-wOlO.js +1 -0
- package/dist/web/assets/desktop-BmXAJ9_W.js +1 -0
- package/dist/web/assets/diff-D97Zzqfu.js +1 -0
- package/dist/web/assets/docker-BcOcwvcX.js +1 -0
- package/dist/web/assets/dotenv-Da5cRb03.js +1 -0
- package/dist/web/assets/dracula-BzJJZx-M.js +1 -0
- package/dist/web/assets/dracula-soft-BXkSAIEj.js +1 -0
- package/dist/web/assets/dream-maker-BtqSS_iP.js +1 -0
- package/dist/web/assets/edge-FbVlp4U3.js +1 -0
- package/dist/web/assets/elixir-CkH2-t6x.js +1 -0
- package/dist/web/assets/elm-DbKCFpqz.js +1 -0
- package/dist/web/assets/emacs-lisp-CXvaQtF9.js +1 -0
- package/dist/web/assets/erb-Dm6A9KJ5.js +1 -0
- package/dist/web/assets/erlang-DsQrWhSR.js +1 -0
- package/dist/web/assets/everforest-dark-BgDCqdQA.js +1 -0
- package/dist/web/assets/everforest-light-C8M2exoo.js +1 -0
- package/dist/web/assets/fennel-BYunw83y.js +1 -0
- package/dist/web/assets/fish-BvzEVeQv.js +1 -0
- package/dist/web/assets/fluent-C4IJs8-o.js +1 -0
- package/dist/web/assets/fortran-fixed-form-CkoXwp7k.js +1 -0
- package/dist/web/assets/fortran-free-form-BxgE0vQu.js +1 -0
- package/dist/web/assets/fsharp-CXgrBDvD.js +1 -0
- package/dist/web/assets/gdresource-BOOCDP_w.js +1 -0
- package/dist/web/assets/gdscript-C5YyOfLZ.js +1 -0
- package/dist/web/assets/gdshader-DkwncUOv.js +1 -0
- package/dist/web/assets/genie-D0YGMca9.js +1 -0
- package/dist/web/assets/gherkin-DyxjwDmM.js +1 -0
- package/dist/web/assets/git-commit-F4YmCXRG.js +1 -0
- package/dist/web/assets/git-rebase-r7XF79zn.js +1 -0
- package/dist/web/assets/github-dark-DHJKELXO.js +1 -0
- package/dist/web/assets/github-dark-default-Cuk6v7N8.js +1 -0
- package/dist/web/assets/github-dark-dimmed-DH5Ifo-i.js +1 -0
- package/dist/web/assets/github-dark-high-contrast-E3gJ1_iC.js +1 -0
- package/dist/web/assets/github-light-DAi9KRSo.js +1 -0
- package/dist/web/assets/github-light-default-D7oLnXFd.js +1 -0
- package/dist/web/assets/github-light-high-contrast-BfjtVDDH.js +1 -0
- package/dist/web/assets/gleam-BspZqrRM.js +1 -0
- package/dist/web/assets/glimmer-js-ByusRIyA.js +1 -0
- package/dist/web/assets/glimmer-ts-BfAWNZQY.js +1 -0
- package/dist/web/assets/glsl-DplSGwfg.js +1 -0
- package/dist/web/assets/gn-n2N0HUVH.js +1 -0
- package/dist/web/assets/gnuplot-DdkO51Og.js +1 -0
- package/dist/web/assets/go-C27-OAKa.js +1 -0
- package/dist/web/assets/graphql-ChdNCCLP.js +1 -0
- package/dist/web/assets/groovy-gcz8RCvz.js +1 -0
- package/dist/web/assets/gruvbox-dark-hard-CFHQjOhq.js +1 -0
- package/dist/web/assets/gruvbox-dark-medium-GsRaNv29.js +1 -0
- package/dist/web/assets/gruvbox-dark-soft-CVdnzihN.js +1 -0
- package/dist/web/assets/gruvbox-light-hard-CH1njM8p.js +1 -0
- package/dist/web/assets/gruvbox-light-medium-DRw_LuNl.js +1 -0
- package/dist/web/assets/gruvbox-light-soft-hJgmCMqR.js +1 -0
- package/dist/web/assets/hack-DbPARsA_.js +1 -0
- package/dist/web/assets/haml-D5jkg6IW.js +1 -0
- package/dist/web/assets/handlebars-BpdQsYii.js +1 -0
- package/dist/web/assets/haskell-Df6bDoY_.js +1 -0
- package/dist/web/assets/haxe-CzTSHFRz.js +1 -0
- package/dist/web/assets/hcl-BWvSN4gD.js +1 -0
- package/dist/web/assets/hjson-D5-asLiD.js +1 -0
- package/dist/web/assets/hlsl-D3lLCCz7.js +1 -0
- package/dist/web/assets/horizon-BUw7H-hv.js +1 -0
- package/dist/web/assets/horizon-bright-CUuTKBJd.js +1 -0
- package/dist/web/assets/houston-DnULxvSX.js +1 -0
- package/dist/web/assets/html-derivative-DlHx6ybY.js +1 -0
- package/dist/web/assets/html-pp8916En.js +1 -0
- package/dist/web/assets/http-jrhK8wxY.js +1 -0
- package/dist/web/assets/hurl-irOxFIW8.js +1 -0
- package/dist/web/assets/hxml-Bvhsp5Yf.js +1 -0
- package/dist/web/assets/hy-DFXneXwc.js +1 -0
- package/dist/web/assets/imba-DGztddWO.js +1 -0
- package/dist/web/assets/{index-SgReTO7h.css → index-J5S6MyAu.css} +1 -1
- package/dist/web/assets/index-QfmLKYGt.js +298 -0
- package/dist/web/assets/ini-BEwlwnbL.js +1 -0
- package/dist/web/assets/java-CylS5w8V.js +1 -0
- package/dist/web/assets/javascript-wDzz0qaB.js +1 -0
- package/dist/web/assets/jinja-f2NsQr07.js +1 -0
- package/dist/web/assets/jison-wvAkD_A8.js +1 -0
- package/dist/web/assets/json-Cp-IABpG.js +1 -0
- package/dist/web/assets/json5-C9tS-k6U.js +1 -0
- package/dist/web/assets/jsonc-Des-eS-w.js +1 -0
- package/dist/web/assets/jsonl-DcaNXYhu.js +1 -0
- package/dist/web/assets/jsonnet-DFQXde-d.js +1 -0
- package/dist/web/assets/jssm-C2t-YnRu.js +1 -0
- package/dist/web/assets/jsx-g9-lgVsj.js +1 -0
- package/dist/web/assets/julia-D7OTSIA_.js +1 -0
- package/dist/web/assets/just-CUsbIsdP.js +1 -0
- package/dist/web/assets/kanagawa-dragon-CkXjmgJE.js +1 -0
- package/dist/web/assets/kanagawa-lotus-CfQXZHmo.js +1 -0
- package/dist/web/assets/kanagawa-wave-DWedfzmr.js +1 -0
- package/dist/web/assets/kdl-DV7GczEv.js +1 -0
- package/dist/web/assets/kotlin-BdnUsdx6.js +1 -0
- package/dist/web/assets/kusto-wEQ09or8.js +1 -0
- package/dist/web/assets/laserwave-DUszq2jm.js +1 -0
- package/dist/web/assets/latex-CaSxy8MP.js +1 -0
- package/dist/web/assets/lean-BZvkOJ9d.js +1 -0
- package/dist/web/assets/less-B1dDrJ26.js +1 -0
- package/dist/web/assets/light-plus-B7mTdjB0.js +1 -0
- package/dist/web/assets/liquid-C0sCDyMI.js +1 -0
- package/dist/web/assets/llvm-DjAJT7YJ.js +1 -0
- package/dist/web/assets/log-2UxHyX5q.js +1 -0
- package/dist/web/assets/logo-BtOb2qkB.js +1 -0
- package/dist/web/assets/lua-BaeVxFsk.js +1 -0
- package/dist/web/assets/luau-KW6xsasC.js +1 -0
- package/dist/web/assets/make-CHLpvVh8.js +1 -0
- package/dist/web/assets/markdown-Cvjx9yec.js +1 -0
- package/dist/web/assets/marko-DjSrsDqO.js +1 -0
- package/dist/web/assets/material-theme-D5KoaKCx.js +1 -0
- package/dist/web/assets/material-theme-darker-BfHTSMKl.js +1 -0
- package/dist/web/assets/material-theme-lighter-B0m2ddpp.js +1 -0
- package/dist/web/assets/material-theme-ocean-CyktbL80.js +1 -0
- package/dist/web/assets/material-theme-palenight-Csfq5Kiy.js +1 -0
- package/dist/web/assets/matlab-D7o27uSR.js +1 -0
- package/dist/web/assets/mdc-DTYItulj.js +1 -0
- package/dist/web/assets/mdx-Cmh6b_Ma.js +1 -0
- package/dist/web/assets/mermaid-mWjccvbQ.js +1 -0
- package/dist/web/assets/min-dark-CafNBF8u.js +1 -0
- package/dist/web/assets/min-light-CTRr51gU.js +1 -0
- package/dist/web/assets/mipsasm-CKIfxQSi.js +1 -0
- package/dist/web/assets/mojo-rZm6bMo-.js +1 -0
- package/dist/web/assets/monokai-D4h5O-jR.js +1 -0
- package/dist/web/assets/moonbit-_H4v1dQx.js +1 -0
- package/dist/web/assets/move-IF9eRakj.js +1 -0
- package/dist/web/assets/narrat-DRg8JJMk.js +1 -0
- package/dist/web/assets/nextflow-C-mBbutL.js +1 -0
- package/dist/web/assets/nextflow-groovy-vE_lwT2v.js +1 -0
- package/dist/web/assets/nginx-BpAMiNFr.js +1 -0
- package/dist/web/assets/night-owl-C39BiMTA.js +1 -0
- package/dist/web/assets/night-owl-light-CMTm3GFP.js +1 -0
- package/dist/web/assets/nim-BIad80T-.js +1 -0
- package/dist/web/assets/nix-CwoSXNpI.js +1 -0
- package/dist/web/assets/nord-Ddv68eIx.js +1 -0
- package/dist/web/assets/nushell-Cz2AlsmD.js +1 -0
- package/dist/web/assets/objective-c-DXmwc3jG.js +1 -0
- package/dist/web/assets/objective-cpp-CLxacb5B.js +1 -0
- package/dist/web/assets/ocaml-C0hk2d4L.js +1 -0
- package/dist/web/assets/odin-BBf5iR-q.js +1 -0
- package/dist/web/assets/one-dark-pro-DVMEJ2y_.js +1 -0
- package/dist/web/assets/one-light-C3Wv6jpd.js +1 -0
- package/dist/web/assets/openscad-C4EeE6gA.js +1 -0
- package/dist/web/assets/pascal-D93ZcfNL.js +1 -0
- package/dist/web/assets/perl-B9cMNwum.js +1 -0
- package/dist/web/assets/php-Csjmro_R.js +1 -0
- package/dist/web/assets/pkl-u5AG7uiY.js +1 -0
- package/dist/web/assets/plastic-3e1v2bzS.js +1 -0
- package/dist/web/assets/plsql-ChMvpjG-.js +1 -0
- package/dist/web/assets/po-BTJTHyun.js +1 -0
- package/dist/web/assets/poimandres-CS3Unz2-.js +1 -0
- package/dist/web/assets/polar-C0HS_06l.js +1 -0
- package/dist/web/assets/postcss-CXtECtnM.js +1 -0
- package/dist/web/assets/powerquery-CEu0bR-o.js +1 -0
- package/dist/web/assets/powershell-Dpen1YoG.js +1 -0
- package/dist/web/assets/prisma-Dd19v3D-.js +1 -0
- package/dist/web/assets/prolog-CbFg5uaA.js +1 -0
- package/dist/web/assets/proto-C7zT0LnQ.js +1 -0
- package/dist/web/assets/pug-DKIMFp6K.js +1 -0
- package/dist/web/assets/puppet-BMWR74SV.js +1 -0
- package/dist/web/assets/purescript-CklMAg4u.js +1 -0
- package/dist/web/assets/python-B6aJPvgy.js +1 -0
- package/dist/web/assets/qml-3beO22l8.js +1 -0
- package/dist/web/assets/qmldir-C8lEn-DE.js +1 -0
- package/dist/web/assets/qss-IeuSbFQv.js +1 -0
- package/dist/web/assets/r-Dspwwk_N.js +1 -0
- package/dist/web/assets/racket-BqYA7rlc.js +1 -0
- package/dist/web/assets/raku-DXvB9xmW.js +1 -0
- package/dist/web/assets/razor-BjBPvh-w.js +1 -0
- package/dist/web/assets/red-bN70gL4F.js +1 -0
- package/dist/web/assets/reg-C-SQnVFl.js +1 -0
- package/dist/web/assets/regexp-CDVJQ6XC.js +1 -0
- package/dist/web/assets/rel-C3B-1QV4.js +1 -0
- package/dist/web/assets/riscv-BM1_JUlF.js +1 -0
- package/dist/web/assets/ron-D8l8udqQ.js +1 -0
- package/dist/web/assets/rose-pine-dawn-DHQR4-dF.js +1 -0
- package/dist/web/assets/rose-pine-moon-D4_iv3hh.js +1 -0
- package/dist/web/assets/rose-pine-qdsjHGoJ.js +1 -0
- package/dist/web/assets/rosmsg-BJDFO7_C.js +1 -0
- package/dist/web/assets/rst-CpCqk9r5.js +1 -0
- package/dist/web/assets/ruby-DyJCeAvU.js +1 -0
- package/dist/web/assets/rust-B1yitclQ.js +1 -0
- package/dist/web/assets/sas-DEy46yEz.js +1 -0
- package/dist/web/assets/sass-Cj5Yp3dK.js +1 -0
- package/dist/web/assets/scala-C151Ov-r.js +1 -0
- package/dist/web/assets/scheme-C98Dy4si.js +1 -0
- package/dist/web/assets/scss-D5BDwBP9.js +1 -0
- package/dist/web/assets/sdbl-DVxCFoDh.js +1 -0
- package/dist/web/assets/shaderlab-Dg9Lc6iA.js +1 -0
- package/dist/web/assets/shellscript-Yzrsuije.js +1 -0
- package/dist/web/assets/shellsession-BADoaaVG.js +1 -0
- package/dist/web/assets/slack-dark-BthQWCQV.js +1 -0
- package/dist/web/assets/slack-ochin-DqwNpetd.js +1 -0
- package/dist/web/assets/smalltalk-BERRCDM3.js +1 -0
- package/dist/web/assets/snazzy-light-Bw305WKR.js +1 -0
- package/dist/web/assets/solarized-dark-DXbdFlpD.js +1 -0
- package/dist/web/assets/solarized-light-L9t79GZl.js +1 -0
- package/dist/web/assets/solidity-rGO070M0.js +1 -0
- package/dist/web/assets/soy-8wufbnw4.js +1 -0
- package/dist/web/assets/sparql-rVzFXLq3.js +1 -0
- package/dist/web/assets/splunk-BtCnVYZw.js +1 -0
- package/dist/web/assets/sql-CRqJ_cUM.js +1 -0
- package/dist/web/assets/ssh-config-_ykCGR6B.js +1 -0
- package/dist/web/assets/stata-DI20mbqo.js +1 -0
- package/dist/web/assets/stylus-BEDo0Tqx.js +1 -0
- package/dist/web/assets/surrealql-Bq5Q-fJD.js +1 -0
- package/dist/web/assets/svelte-Cy7k_4gC.js +1 -0
- package/dist/web/assets/swift-D82vCrfD.js +1 -0
- package/dist/web/assets/synthwave-84-CbfX1IO0.js +1 -0
- package/dist/web/assets/system-verilog-CnnmHF94.js +1 -0
- package/dist/web/assets/systemd-4A_iFExJ.js +1 -0
- package/dist/web/assets/talonscript-CkByrt1z.js +1 -0
- package/dist/web/assets/tasl-QIJgUcNo.js +1 -0
- package/dist/web/assets/tcl-dwOrl1Do.js +1 -0
- package/dist/web/assets/templ-DhtptRzy.js +1 -0
- package/dist/web/assets/terraform-BETggiCN.js +1 -0
- package/dist/web/assets/tex-idrVyKtj.js +1 -0
- package/dist/web/assets/tokyo-night-hegEt444.js +1 -0
- package/dist/web/assets/toml-vGWfd6FD.js +1 -0
- package/dist/web/assets/ts-tags-D351s5mN.js +1 -0
- package/dist/web/assets/tsv-B_m7g4N7.js +1 -0
- package/dist/web/assets/tsx-COt5Ahok.js +1 -0
- package/dist/web/assets/turtle-BsS91CYL.js +1 -0
- package/dist/web/assets/twig-CW1WmMYd.js +1 -0
- package/dist/web/assets/typescript-BPQ3VLAy.js +1 -0
- package/dist/web/assets/typespec-CAFt9gP4.js +1 -0
- package/dist/web/assets/typst-DHCkPAjA.js +1 -0
- package/dist/web/assets/v-BcVCzyr7.js +1 -0
- package/dist/web/assets/vala-CsfeWuGM.js +1 -0
- package/dist/web/assets/vb-D17OF-Vu.js +1 -0
- package/dist/web/assets/verilog-BQ8w6xss.js +1 -0
- package/dist/web/assets/vesper-DRje8inN.js +1 -0
- package/dist/web/assets/vhdl-CeAyd5Ju.js +1 -0
- package/dist/web/assets/viml-CJc9bBzg.js +1 -0
- package/dist/web/assets/vitesse-black-Bkuqu6BP.js +1 -0
- package/dist/web/assets/vitesse-dark-D0r3Knsf.js +1 -0
- package/dist/web/assets/vitesse-light-CVO1_9PV.js +1 -0
- package/dist/web/assets/vue-D2xRrEX4.js +1 -0
- package/dist/web/assets/vue-html-AaS7Mt5G.js +1 -0
- package/dist/web/assets/vue-vine-BoDAl6tE.js +1 -0
- package/dist/web/assets/vyper-CDx5xZoG.js +1 -0
- package/dist/web/assets/wasm-CG6Dc4jp.js +1 -0
- package/dist/web/assets/wasm-MzD3tlZU.js +1 -0
- package/dist/web/assets/wenyan-BV7otONQ.js +1 -0
- package/dist/web/assets/wgsl-Dx-B1_4e.js +1 -0
- package/dist/web/assets/wikitext-BhOHFoWU.js +1 -0
- package/dist/web/assets/wit-5i3qLPDT.js +1 -0
- package/dist/web/assets/wolfram-lXgVvXCa.js +1 -0
- package/dist/web/assets/xml-sdJ4AIDG.js +1 -0
- package/dist/web/assets/xsl-CtQFsRM5.js +1 -0
- package/dist/web/assets/yaml-Buea-lGh.js +1 -0
- package/dist/web/assets/zenscript-DVFEvuxE.js +1 -0
- package/dist/web/assets/zig-VOosw3JB.js +1 -0
- package/dist/web/index.html +2 -2
- package/dist/web/sw.js +1 -1
- package/package.json +4 -2
- package/dist/web/assets/index-DKUIaoBa.js +0 -158
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
createVerifierNudgeConfig,
|
|
3
3
|
runBuilderTurn,
|
|
4
4
|
runChatTurn
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-K7IJKGYL.js";
|
|
6
6
|
import {
|
|
7
7
|
TurnMetrics,
|
|
8
8
|
agentExists,
|
|
@@ -46,7 +46,7 @@ import {
|
|
|
46
46
|
saveSkillToProject,
|
|
47
47
|
skillExists,
|
|
48
48
|
spawnShellProcess
|
|
49
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-47FAM55V.js";
|
|
50
50
|
import {
|
|
51
51
|
getProject
|
|
52
52
|
} from "./chunk-ZHBL5G5X.js";
|
|
@@ -96,7 +96,7 @@ import {
|
|
|
96
96
|
updateSessionProvider,
|
|
97
97
|
updateSessionRunning,
|
|
98
98
|
updateSessionSummary
|
|
99
|
-
} from "./chunk-
|
|
99
|
+
} from "./chunk-RREZKLOD.js";
|
|
100
100
|
import {
|
|
101
101
|
initDatabase
|
|
102
102
|
} from "./chunk-5GVCNVKV.js";
|
|
@@ -118,7 +118,7 @@ import {
|
|
|
118
118
|
parseClientMessage,
|
|
119
119
|
serializeServerMessage,
|
|
120
120
|
storedEventToServerMessage
|
|
121
|
-
} from "./chunk-
|
|
121
|
+
} from "./chunk-T67WWSM7.js";
|
|
122
122
|
import {
|
|
123
123
|
EventEmitter,
|
|
124
124
|
provideAnswer
|
|
@@ -146,7 +146,7 @@ import express from "express";
|
|
|
146
146
|
import cors from "cors";
|
|
147
147
|
import { createServer as createHttpServer } from "http";
|
|
148
148
|
import { fileURLToPath as fileURLToPath4 } from "url";
|
|
149
|
-
import { dirname as
|
|
149
|
+
import { dirname as dirname6, resolve as resolve2, join as join7 } from "path";
|
|
150
150
|
import { readFile as readFile3 } from "fs/promises";
|
|
151
151
|
import { createServer as createViteServer } from "vite";
|
|
152
152
|
|
|
@@ -1670,7 +1670,7 @@ var TERMINAL_BLOCKED = "$blocked";
|
|
|
1670
1670
|
|
|
1671
1671
|
// src/server/workflows/shell.ts
|
|
1672
1672
|
function executeShellCommand(command, cwd, timeout, signal) {
|
|
1673
|
-
return new Promise((
|
|
1673
|
+
return new Promise((resolve3, reject) => {
|
|
1674
1674
|
if (checkAborted(signal)) {
|
|
1675
1675
|
reject(new Error("Aborted"));
|
|
1676
1676
|
return;
|
|
@@ -1682,7 +1682,7 @@ function executeShellCommand(command, cwd, timeout, signal) {
|
|
|
1682
1682
|
const timer = setTimeout(() => {
|
|
1683
1683
|
killed = true;
|
|
1684
1684
|
proc.kill("SIGTERM");
|
|
1685
|
-
|
|
1685
|
+
resolve3({ exitCode: 1, stdout, stderr: stderr + "\nCommand timed out", success: false });
|
|
1686
1686
|
}, timeout);
|
|
1687
1687
|
const onAbort = () => {
|
|
1688
1688
|
if (!killed) {
|
|
@@ -1704,13 +1704,13 @@ function executeShellCommand(command, cwd, timeout, signal) {
|
|
|
1704
1704
|
signal?.removeEventListener("abort", onAbort);
|
|
1705
1705
|
if (killed) return;
|
|
1706
1706
|
const exitCode = code ?? 1;
|
|
1707
|
-
|
|
1707
|
+
resolve3({ exitCode, stdout, stderr, success: exitCode === 0 });
|
|
1708
1708
|
});
|
|
1709
1709
|
proc.on("error", (err) => {
|
|
1710
1710
|
clearTimeout(timer);
|
|
1711
1711
|
signal?.removeEventListener("abort", onAbort);
|
|
1712
1712
|
if (killed) return;
|
|
1713
|
-
|
|
1713
|
+
resolve3({ exitCode: 1, stdout, stderr: err.message, success: false });
|
|
1714
1714
|
});
|
|
1715
1715
|
});
|
|
1716
1716
|
}
|
|
@@ -2304,7 +2304,7 @@ async function isValidToken(token) {
|
|
|
2304
2304
|
|
|
2305
2305
|
// src/server/ws/server.ts
|
|
2306
2306
|
function moduleGitBranch(cwd) {
|
|
2307
|
-
return new Promise((
|
|
2307
|
+
return new Promise((resolve3) => {
|
|
2308
2308
|
const proc = spawn2("git", ["rev-parse", "--abbrev-ref", "HEAD"], {
|
|
2309
2309
|
cwd,
|
|
2310
2310
|
stdio: ["ignore", "pipe", "ignore"]
|
|
@@ -2315,16 +2315,16 @@ function moduleGitBranch(cwd) {
|
|
|
2315
2315
|
});
|
|
2316
2316
|
proc.on("close", (code) => {
|
|
2317
2317
|
if (code === 0 && stdout.trim()) {
|
|
2318
|
-
|
|
2318
|
+
resolve3(stdout.trim());
|
|
2319
2319
|
} else {
|
|
2320
|
-
|
|
2320
|
+
resolve3(null);
|
|
2321
2321
|
}
|
|
2322
2322
|
});
|
|
2323
|
-
proc.on("error", () =>
|
|
2323
|
+
proc.on("error", () => resolve3(null));
|
|
2324
2324
|
});
|
|
2325
2325
|
}
|
|
2326
2326
|
function moduleGitDiff(cwd) {
|
|
2327
|
-
return new Promise((
|
|
2327
|
+
return new Promise((resolve3) => {
|
|
2328
2328
|
const proc = spawn2("git", ["diff", "--stat", "--numstat", "--format=", "HEAD"], {
|
|
2329
2329
|
cwd,
|
|
2330
2330
|
stdio: ["ignore", "pipe", "pipe"]
|
|
@@ -2347,7 +2347,7 @@ function moduleGitDiff(cwd) {
|
|
|
2347
2347
|
let statusCode = null;
|
|
2348
2348
|
const processResults = () => {
|
|
2349
2349
|
if (diffCode !== 0 || statusCode !== 0) {
|
|
2350
|
-
|
|
2350
|
+
resolve3({ hash: "", files: [] });
|
|
2351
2351
|
return;
|
|
2352
2352
|
}
|
|
2353
2353
|
const hashProc = spawn2("git", ["rev-parse", "HEAD"], { cwd, stdio: ["ignore", "pipe", "ignore"] });
|
|
@@ -2387,7 +2387,7 @@ function moduleGitDiff(cwd) {
|
|
|
2387
2387
|
deletions: 0
|
|
2388
2388
|
});
|
|
2389
2389
|
}
|
|
2390
|
-
|
|
2390
|
+
resolve3({ hash: hash.trim(), files });
|
|
2391
2391
|
};
|
|
2392
2392
|
proc.on("close", (code) => {
|
|
2393
2393
|
procExited = true;
|
|
@@ -2399,10 +2399,10 @@ function moduleGitDiff(cwd) {
|
|
|
2399
2399
|
statusCode = code;
|
|
2400
2400
|
if (procExited) processResults();
|
|
2401
2401
|
});
|
|
2402
|
-
proc.on("error", () =>
|
|
2402
|
+
proc.on("error", () => resolve3({ hash: "", files: [] }));
|
|
2403
2403
|
statusProc.on("error", () => {
|
|
2404
2404
|
if (!procExited) {
|
|
2405
|
-
|
|
2405
|
+
resolve3({ hash: "", files: [] });
|
|
2406
2406
|
}
|
|
2407
2407
|
});
|
|
2408
2408
|
});
|
|
@@ -2865,9 +2865,10 @@ async function handleClientMessage(ws, client, message, _getLLMClient, _getActiv
|
|
|
2865
2865
|
);
|
|
2866
2866
|
return;
|
|
2867
2867
|
// =========================================================================
|
|
2868
|
-
// Session Load -
|
|
2869
|
-
// Note:
|
|
2870
|
-
//
|
|
2868
|
+
// Session Load - Sets active session for event routing
|
|
2869
|
+
// Note: Data loading is done via REST API: GET /api/sessions/:id
|
|
2870
|
+
// This WebSocket message is ONLY to tell the server which session is active
|
|
2871
|
+
// so it can route real-time events correctly.
|
|
2871
2872
|
// =========================================================================
|
|
2872
2873
|
case "session.load": {
|
|
2873
2874
|
if (!isSessionLoadPayload(message.payload)) {
|
|
@@ -2881,31 +2882,17 @@ async function handleClientMessage(ws, client, message, _getLLMClient, _getActiv
|
|
|
2881
2882
|
}
|
|
2882
2883
|
client.activeSessionId = session.id;
|
|
2883
2884
|
client.activeWorkdir = session.workdir;
|
|
2884
|
-
if (session.workdir)
|
|
2885
|
-
ensureEventStoreSubscription(session.id);
|
|
2886
|
-
const eventStore = getEventStore();
|
|
2887
|
-
const events = eventStore.getEvents(session.id);
|
|
2888
|
-
const messages = buildMessagesFromStoredEvents(events);
|
|
2889
|
-
const pendingConfirmations = foldPendingConfirmations(events);
|
|
2890
|
-
logger.debug("Loaded messages from EventStore", {
|
|
2891
|
-
sessionId: session.id,
|
|
2892
|
-
eventCount: events.length,
|
|
2893
|
-
messageCount: messages.length,
|
|
2894
|
-
pendingConfirmationsCount: pendingConfirmations.length
|
|
2895
|
-
});
|
|
2896
|
-
const initialGitStatus = (async () => {
|
|
2897
|
-
if (!session.workdir) return void 0;
|
|
2885
|
+
if (session.workdir) {
|
|
2898
2886
|
const branch = await moduleGitBranch(session.workdir);
|
|
2899
2887
|
const { files } = await moduleGitDiff(session.workdir);
|
|
2900
|
-
|
|
2901
|
-
|
|
2902
|
-
|
|
2903
|
-
|
|
2904
|
-
|
|
2905
|
-
createSessionStateMessage(session, messages, pendingConfirmations, gitStatusPayload, message.id)
|
|
2906
|
-
);
|
|
2888
|
+
const msg = createGitStatusMessage(branch, files);
|
|
2889
|
+
send(msg);
|
|
2890
|
+
if (branch) moduleStartGitPolling(session.workdir);
|
|
2891
|
+
}
|
|
2892
|
+
ensureEventStoreSubscription(session.id);
|
|
2907
2893
|
const contextState = sessionManager.getContextState(session.id);
|
|
2908
|
-
|
|
2894
|
+
send(createContextStateMessage(contextState));
|
|
2895
|
+
send({ type: "ack", payload: { sessionId: session.id }, id: message.id });
|
|
2909
2896
|
break;
|
|
2910
2897
|
}
|
|
2911
2898
|
// =========================================================================
|
|
@@ -3373,19 +3360,19 @@ var LspServer = class {
|
|
|
3373
3360
|
*/
|
|
3374
3361
|
async getDiagnosticsWithWait(path, timeoutMs = DIAGNOSTIC_WAIT_MS) {
|
|
3375
3362
|
if (this.openDocuments.has(path)) {
|
|
3376
|
-
return new Promise((
|
|
3363
|
+
return new Promise((resolve3) => {
|
|
3377
3364
|
const existing = this.diagnostics.get(path);
|
|
3378
3365
|
if (existing !== void 0) {
|
|
3379
3366
|
setTimeout(() => {
|
|
3380
|
-
|
|
3367
|
+
resolve3(this.diagnostics.get(path) ?? []);
|
|
3381
3368
|
}, 100);
|
|
3382
3369
|
return;
|
|
3383
3370
|
}
|
|
3384
3371
|
const timeout = setTimeout(() => {
|
|
3385
3372
|
this.pendingDiagnostics.delete(path);
|
|
3386
|
-
|
|
3373
|
+
resolve3(this.diagnostics.get(path) ?? []);
|
|
3387
3374
|
}, timeoutMs);
|
|
3388
|
-
this.pendingDiagnostics.set(path, { resolve:
|
|
3375
|
+
this.pendingDiagnostics.set(path, { resolve: resolve3, timeout });
|
|
3389
3376
|
});
|
|
3390
3377
|
}
|
|
3391
3378
|
return this.diagnostics.get(path) ?? [];
|
|
@@ -4815,7 +4802,7 @@ ${summary}`,
|
|
|
4815
4802
|
...dbSession,
|
|
4816
4803
|
mode: "planner",
|
|
4817
4804
|
phase: "plan",
|
|
4818
|
-
isRunning:
|
|
4805
|
+
isRunning: dbSession.isRunning,
|
|
4819
4806
|
messages: [],
|
|
4820
4807
|
criteria: [],
|
|
4821
4808
|
contextWindows: [],
|
|
@@ -4844,11 +4831,12 @@ ${summary}`,
|
|
|
4844
4831
|
if (m.promptContext !== void 0) msg.promptContext = m.promptContext;
|
|
4845
4832
|
return msg;
|
|
4846
4833
|
});
|
|
4834
|
+
const isRunning = dbSession.isRunning;
|
|
4847
4835
|
return {
|
|
4848
4836
|
...dbSession,
|
|
4849
4837
|
mode: eventState.mode,
|
|
4850
4838
|
phase: eventState.phase,
|
|
4851
|
-
isRunning
|
|
4839
|
+
isRunning,
|
|
4852
4840
|
messages,
|
|
4853
4841
|
criteria: eventState.criteria,
|
|
4854
4842
|
contextWindows: [],
|
|
@@ -5354,17 +5342,54 @@ function createTerminalRoutes() {
|
|
|
5354
5342
|
return router;
|
|
5355
5343
|
}
|
|
5356
5344
|
|
|
5357
|
-
// src/server/routes/
|
|
5345
|
+
// src/server/routes/directories.ts
|
|
5358
5346
|
import { Router as Router5 } from "express";
|
|
5347
|
+
import { readdir as readdir2 } from "fs/promises";
|
|
5348
|
+
import { resolve, join as join6, dirname as dirname5, basename as basename2 } from "path";
|
|
5349
|
+
function createDirectoryRoutes() {
|
|
5350
|
+
const router = Router5();
|
|
5351
|
+
const DEFAULT_BASE_PATH = process.cwd();
|
|
5352
|
+
router.get("/", async (req, res) => {
|
|
5353
|
+
const path = req.query["path"] || DEFAULT_BASE_PATH;
|
|
5354
|
+
try {
|
|
5355
|
+
const resolvedPath = resolve(path);
|
|
5356
|
+
const entries = await readdir2(resolvedPath, { withFileTypes: true });
|
|
5357
|
+
const directories = entries.filter((entry) => entry.isDirectory()).map((entry) => ({
|
|
5358
|
+
name: entry.name,
|
|
5359
|
+
path: join6(resolvedPath, entry.name)
|
|
5360
|
+
})).sort((a, b) => a.name.localeCompare(b.name));
|
|
5361
|
+
const parent = dirname5(resolvedPath);
|
|
5362
|
+
const hasParent = parent !== resolvedPath;
|
|
5363
|
+
res.json({
|
|
5364
|
+
current: resolvedPath,
|
|
5365
|
+
parent: hasParent ? parent : null,
|
|
5366
|
+
directories,
|
|
5367
|
+
basename: basename2(resolvedPath)
|
|
5368
|
+
});
|
|
5369
|
+
} catch {
|
|
5370
|
+
res.status(400).json({
|
|
5371
|
+
error: "Cannot read directory",
|
|
5372
|
+
current: DEFAULT_BASE_PATH,
|
|
5373
|
+
parent: null,
|
|
5374
|
+
directories: [],
|
|
5375
|
+
basename: basename2(DEFAULT_BASE_PATH)
|
|
5376
|
+
});
|
|
5377
|
+
}
|
|
5378
|
+
});
|
|
5379
|
+
return router;
|
|
5380
|
+
}
|
|
5381
|
+
|
|
5382
|
+
// src/server/routes/auto-update.ts
|
|
5383
|
+
import { Router as Router6 } from "express";
|
|
5359
5384
|
import { spawn as spawn4 } from "child_process";
|
|
5360
5385
|
|
|
5361
5386
|
// src/constants.ts
|
|
5362
|
-
var VERSION = "1.6.
|
|
5387
|
+
var VERSION = "1.6.97";
|
|
5363
5388
|
|
|
5364
5389
|
// src/server/routes/auto-update.ts
|
|
5365
5390
|
var updateInProgress = false;
|
|
5366
5391
|
function createAutoUpdateRoutes(options = {}) {
|
|
5367
|
-
const router =
|
|
5392
|
+
const router = Router6();
|
|
5368
5393
|
router.get("/check", async (req, res) => {
|
|
5369
5394
|
const isTest = req.query["test"] === "1";
|
|
5370
5395
|
const current = VERSION;
|
|
@@ -5373,7 +5398,7 @@ function createAutoUpdateRoutes(options = {}) {
|
|
|
5373
5398
|
return;
|
|
5374
5399
|
}
|
|
5375
5400
|
try {
|
|
5376
|
-
const latest = await new Promise((
|
|
5401
|
+
const latest = await new Promise((resolve3, reject) => {
|
|
5377
5402
|
const child = spawn4("npm", ["view", "openfox", "version"], {
|
|
5378
5403
|
stdio: ["ignore", "pipe", "pipe"]
|
|
5379
5404
|
});
|
|
@@ -5383,7 +5408,7 @@ function createAutoUpdateRoutes(options = {}) {
|
|
|
5383
5408
|
});
|
|
5384
5409
|
child.on("close", (code) => {
|
|
5385
5410
|
if (code === 0) {
|
|
5386
|
-
|
|
5411
|
+
resolve3(stdout.trim());
|
|
5387
5412
|
} else {
|
|
5388
5413
|
reject(new Error(`npm view exited with code ${code}`));
|
|
5389
5414
|
}
|
|
@@ -5444,7 +5469,7 @@ function createAutoUpdateRoutes(options = {}) {
|
|
|
5444
5469
|
}
|
|
5445
5470
|
|
|
5446
5471
|
// src/server/index.ts
|
|
5447
|
-
var __dirname2 =
|
|
5472
|
+
var __dirname2 = dirname6(fileURLToPath4(import.meta.url));
|
|
5448
5473
|
async function createServerHandle(config4) {
|
|
5449
5474
|
setRuntimeConfig(config4);
|
|
5450
5475
|
setLogLevel(config4.logging?.level ?? void 0, config4.mode);
|
|
@@ -5656,7 +5681,7 @@ async function createServerHandle(config4) {
|
|
|
5656
5681
|
res.json({ project });
|
|
5657
5682
|
});
|
|
5658
5683
|
app.get("/api/sessions", async (req, res) => {
|
|
5659
|
-
const { getRecentUserPromptsForSession } = await import("./events-
|
|
5684
|
+
const { getRecentUserPromptsForSession } = await import("./events-2UP7O6LW.js");
|
|
5660
5685
|
const projectId = req.query["projectId"];
|
|
5661
5686
|
const limit = Math.min(parseInt(req.query["limit"]) || 20, 100);
|
|
5662
5687
|
const offset = parseInt(req.query["offset"]) || 0;
|
|
@@ -5689,7 +5714,7 @@ async function createServerHandle(config4) {
|
|
|
5689
5714
|
res.status(201).json({ session });
|
|
5690
5715
|
});
|
|
5691
5716
|
app.get("/api/sessions/:id", async (req, res) => {
|
|
5692
|
-
const { getEventStore: getEventStore2 } = await import("./events-
|
|
5717
|
+
const { getEventStore: getEventStore2 } = await import("./events-2UP7O6LW.js");
|
|
5693
5718
|
const { buildMessagesFromStoredEvents: buildMessagesFromStoredEvents2 } = await import("./folding-4VHGQE6Y.js");
|
|
5694
5719
|
const session = sessionManager.getSession(req.params.id);
|
|
5695
5720
|
if (!session) {
|
|
@@ -5720,7 +5745,7 @@ async function createServerHandle(config4) {
|
|
|
5720
5745
|
res.json({ success: true });
|
|
5721
5746
|
});
|
|
5722
5747
|
app.post("/api/sessions/:id/provider", async (req, res) => {
|
|
5723
|
-
const { getEventStore: getEventStore2 } = await import("./events-
|
|
5748
|
+
const { getEventStore: getEventStore2 } = await import("./events-2UP7O6LW.js");
|
|
5724
5749
|
const { buildMessagesFromStoredEvents: buildMessagesFromStoredEvents2 } = await import("./folding-4VHGQE6Y.js");
|
|
5725
5750
|
const sessionId = req.params.id;
|
|
5726
5751
|
const session = sessionManager.getSession(sessionId);
|
|
@@ -5758,7 +5783,7 @@ async function createServerHandle(config4) {
|
|
|
5758
5783
|
res.json({ success: true });
|
|
5759
5784
|
});
|
|
5760
5785
|
app.put("/api/sessions/:id/mode", async (req, res) => {
|
|
5761
|
-
const { getEventStore: getEventStore2 } = await import("./events-
|
|
5786
|
+
const { getEventStore: getEventStore2 } = await import("./events-2UP7O6LW.js");
|
|
5762
5787
|
const { buildMessagesFromStoredEvents: buildMessagesFromStoredEvents2 } = await import("./folding-4VHGQE6Y.js");
|
|
5763
5788
|
const sessionId = req.params.id;
|
|
5764
5789
|
const session = sessionManager.getSession(sessionId);
|
|
@@ -5815,14 +5840,14 @@ async function createServerHandle(config4) {
|
|
|
5815
5840
|
if (!callId || approved === void 0) {
|
|
5816
5841
|
return res.status(400).json({ error: "callId and approved are required" });
|
|
5817
5842
|
}
|
|
5818
|
-
const { providePathConfirmation } = await import("./tools-
|
|
5843
|
+
const { providePathConfirmation } = await import("./tools-SIVCXYHR.js");
|
|
5819
5844
|
const result = providePathConfirmation(callId, approved, alwaysAllow);
|
|
5820
5845
|
if (!result.found) {
|
|
5821
5846
|
return res.status(404).json({ error: "No pending path confirmation with that ID" });
|
|
5822
5847
|
}
|
|
5823
|
-
const { getEventStore: getEventStore2 } = await import("./events-
|
|
5848
|
+
const { getEventStore: getEventStore2 } = await import("./events-2UP7O6LW.js");
|
|
5824
5849
|
const { buildMessagesFromStoredEvents: buildMessagesFromStoredEvents2, foldPendingConfirmations: foldPendingConfirmations2 } = await import("./folding-4VHGQE6Y.js");
|
|
5825
|
-
const { createSessionStateMessage: createSessionStateMessage2 } = await import("./protocol-
|
|
5850
|
+
const { createSessionStateMessage: createSessionStateMessage2 } = await import("./protocol-FZUIA4BS.js");
|
|
5826
5851
|
const eventStore = getEventStore2();
|
|
5827
5852
|
const events = eventStore.getEvents(sessionId);
|
|
5828
5853
|
const messages = buildMessagesFromStoredEvents2(events);
|
|
@@ -5839,7 +5864,7 @@ async function createServerHandle(config4) {
|
|
|
5839
5864
|
if (!callId || !answer) {
|
|
5840
5865
|
return res.status(400).json({ error: "callId and answer are required" });
|
|
5841
5866
|
}
|
|
5842
|
-
const { provideAnswer: provideAnswer2 } = await import("./tools-
|
|
5867
|
+
const { provideAnswer: provideAnswer2 } = await import("./tools-SIVCXYHR.js");
|
|
5843
5868
|
const found = provideAnswer2(callId, answer);
|
|
5844
5869
|
if (!found) {
|
|
5845
5870
|
return res.status(404).json({ error: "No pending question with that ID" });
|
|
@@ -5875,14 +5900,14 @@ async function createServerHandle(config4) {
|
|
|
5875
5900
|
if (!session) {
|
|
5876
5901
|
return res.status(404).json({ error: "Session not found" });
|
|
5877
5902
|
}
|
|
5878
|
-
const { stopSessionExecution } = await import("./chat-handler-
|
|
5879
|
-
const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-
|
|
5903
|
+
const { stopSessionExecution } = await import("./chat-handler-42XM6GZI.js");
|
|
5904
|
+
const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-SIVCXYHR.js");
|
|
5880
5905
|
stopSessionExecution(sessionId, sessionManager);
|
|
5881
5906
|
abortSession(sessionId);
|
|
5882
5907
|
cancelQuestionsForSession(sessionId, "Session stopped by user");
|
|
5883
5908
|
cancelPathConfirmationsForSession(sessionId, "Session stopped by user");
|
|
5884
5909
|
sessionManager.clearMessageQueue(sessionId);
|
|
5885
|
-
const eventStore = (await import("./events-
|
|
5910
|
+
const eventStore = (await import("./events-2UP7O6LW.js")).getEventStore();
|
|
5886
5911
|
eventStore.append(sessionId, { type: "running.changed", data: { isRunning: false } });
|
|
5887
5912
|
res.json({ success: true });
|
|
5888
5913
|
});
|
|
@@ -5896,7 +5921,7 @@ async function createServerHandle(config4) {
|
|
|
5896
5921
|
if (typeof messageIndex !== "number" || messageIndex < 0) {
|
|
5897
5922
|
return res.status(400).json({ error: "messageIndex must be a non-negative number" });
|
|
5898
5923
|
}
|
|
5899
|
-
const { truncateSessionMessages } = await import("./events-
|
|
5924
|
+
const { truncateSessionMessages } = await import("./events-2UP7O6LW.js");
|
|
5900
5925
|
truncateSessionMessages(sessionId, messageIndex);
|
|
5901
5926
|
res.json({ success: true });
|
|
5902
5927
|
});
|
|
@@ -5926,14 +5951,33 @@ async function createServerHandle(config4) {
|
|
|
5926
5951
|
}
|
|
5927
5952
|
res.json({ accepted: true });
|
|
5928
5953
|
});
|
|
5954
|
+
app.get("/api/settings", async (req, res) => {
|
|
5955
|
+
const { getSetting, SETTINGS_DEFAULTS } = await import("./settings-TTYCUHWU.js");
|
|
5956
|
+
const keysParam = req.query["keys"];
|
|
5957
|
+
if (!keysParam) {
|
|
5958
|
+
return res.status(400).json({ error: "keys query parameter is required" });
|
|
5959
|
+
}
|
|
5960
|
+
const keys = keysParam.split(",").map((k) => k.trim());
|
|
5961
|
+
const result = {};
|
|
5962
|
+
for (const key of keys) {
|
|
5963
|
+
result[key] = getSetting(key) ?? SETTINGS_DEFAULTS[key] ?? "";
|
|
5964
|
+
}
|
|
5965
|
+
res.json(result);
|
|
5966
|
+
});
|
|
5967
|
+
app.get("/api/settings/:key", async (req, res) => {
|
|
5968
|
+
const { getSetting, SETTINGS_DEFAULTS } = await import("./settings-TTYCUHWU.js");
|
|
5969
|
+
const key = req.params.key;
|
|
5970
|
+
const value = getSetting(key) ?? SETTINGS_DEFAULTS[key] ?? null;
|
|
5971
|
+
res.json({ key, value });
|
|
5972
|
+
});
|
|
5929
5973
|
app.get("/api/settings/:key", async (req, res) => {
|
|
5930
|
-
const { getSetting, SETTINGS_DEFAULTS } = await import("./settings-
|
|
5974
|
+
const { getSetting, SETTINGS_DEFAULTS } = await import("./settings-TTYCUHWU.js");
|
|
5931
5975
|
const key = req.params.key;
|
|
5932
5976
|
const value = getSetting(key) ?? SETTINGS_DEFAULTS[key] ?? null;
|
|
5933
5977
|
res.json({ key, value });
|
|
5934
5978
|
});
|
|
5935
5979
|
app.put("/api/settings/:key", async (req, res) => {
|
|
5936
|
-
const { setSetting } = await import("./settings-
|
|
5980
|
+
const { setSetting } = await import("./settings-TTYCUHWU.js");
|
|
5937
5981
|
const key = req.params.key;
|
|
5938
5982
|
const { value } = req.body;
|
|
5939
5983
|
if (value === void 0) {
|
|
@@ -6229,42 +6273,15 @@ async function createServerHandle(config4) {
|
|
|
6229
6273
|
app.get("/api/branch", async (req, res) => {
|
|
6230
6274
|
await getCurrentBranch(req, res);
|
|
6231
6275
|
});
|
|
6232
|
-
|
|
6233
|
-
|
|
6234
|
-
const path = req.query["path"] || DEFAULT_BASE_PATH;
|
|
6235
|
-
try {
|
|
6236
|
-
const resolvedPath = resolve(path);
|
|
6237
|
-
const entries = await import("fs/promises").then((m) => m.readdir(resolvedPath, { withFileTypes: true }));
|
|
6238
|
-
const directories = entries.filter((entry) => entry.isDirectory() && !entry.name.startsWith(".")).map((entry) => ({
|
|
6239
|
-
name: entry.name,
|
|
6240
|
-
path: join6(resolvedPath, entry.name)
|
|
6241
|
-
})).sort((a, b) => a.name.localeCompare(b.name));
|
|
6242
|
-
const parent = dirname5(resolvedPath);
|
|
6243
|
-
const hasParent = parent !== resolvedPath;
|
|
6244
|
-
res.json({
|
|
6245
|
-
current: resolvedPath,
|
|
6246
|
-
parent: hasParent ? parent : null,
|
|
6247
|
-
directories,
|
|
6248
|
-
basename: basename2(resolvedPath)
|
|
6249
|
-
});
|
|
6250
|
-
} catch {
|
|
6251
|
-
res.status(400).json({
|
|
6252
|
-
error: "Cannot read directory",
|
|
6253
|
-
current: DEFAULT_BASE_PATH,
|
|
6254
|
-
parent: null,
|
|
6255
|
-
directories: [],
|
|
6256
|
-
basename: basename2(DEFAULT_BASE_PATH)
|
|
6257
|
-
});
|
|
6258
|
-
}
|
|
6259
|
-
});
|
|
6260
|
-
const webDir = resolve(__dirname2, "../../web");
|
|
6276
|
+
app.use("/api/directories", createDirectoryRoutes());
|
|
6277
|
+
const webDir = resolve2(__dirname2, "../../web");
|
|
6261
6278
|
const isDev = config4.mode === "development";
|
|
6262
6279
|
let viteServer;
|
|
6263
6280
|
if (isDev) {
|
|
6264
6281
|
logger.info("Dev mode: using Vite middleware");
|
|
6265
6282
|
viteServer = await createViteServer({
|
|
6266
6283
|
root: webDir,
|
|
6267
|
-
configFile:
|
|
6284
|
+
configFile: resolve2(__dirname2, "../../web/vite.config.ts"),
|
|
6268
6285
|
server: { middlewareMode: true },
|
|
6269
6286
|
appType: "spa",
|
|
6270
6287
|
logLevel: "warn"
|
|
@@ -6284,7 +6301,7 @@ async function createServerHandle(config4) {
|
|
|
6284
6301
|
}
|
|
6285
6302
|
});
|
|
6286
6303
|
app.get("/fox.svg", (_req, res) => {
|
|
6287
|
-
readFile3(
|
|
6304
|
+
readFile3(join7(webDir, "fox.svg")).then((content) => {
|
|
6288
6305
|
res.set("Content-Type", "image/svg+xml");
|
|
6289
6306
|
res.send(content);
|
|
6290
6307
|
}).catch(() => {
|
|
@@ -6293,7 +6310,7 @@ async function createServerHandle(config4) {
|
|
|
6293
6310
|
});
|
|
6294
6311
|
app.use(
|
|
6295
6312
|
"/sounds",
|
|
6296
|
-
express.static(
|
|
6313
|
+
express.static(join7(webDir, "public", "sounds"), {
|
|
6297
6314
|
setHeaders: (res) => {
|
|
6298
6315
|
res.set("Content-Type", "audio/mpeg");
|
|
6299
6316
|
}
|
|
@@ -6302,13 +6319,13 @@ async function createServerHandle(config4) {
|
|
|
6302
6319
|
app.use("/__inspect__.js", (_req, res) => {
|
|
6303
6320
|
res.set("Access-Control-Allow-Origin", "*");
|
|
6304
6321
|
res.set("Content-Type", "application/javascript");
|
|
6305
|
-
readFile3(
|
|
6322
|
+
readFile3(join7(webDir, "public", "__inspect__.js")).then((content) => res.send(content)).catch(() => res.status(404).send("Not found"));
|
|
6306
6323
|
});
|
|
6307
6324
|
app.get("/*path", (req, res) => {
|
|
6308
6325
|
if (req.path.startsWith("/api/")) {
|
|
6309
6326
|
return;
|
|
6310
6327
|
}
|
|
6311
|
-
readFile3(
|
|
6328
|
+
readFile3(join7(webDir, "index.html"), "utf-8").then((indexHtml) => viteServer.transformIndexHtml(req.originalUrl, indexHtml)).then((transformed) => res.send(transformed)).catch((err) => {
|
|
6312
6329
|
logger.error("Error serving index.html", { error: err });
|
|
6313
6330
|
res.status(500).send("Server error");
|
|
6314
6331
|
});
|
|
@@ -6316,10 +6333,10 @@ async function createServerHandle(config4) {
|
|
|
6316
6333
|
logger.info("Vite middleware ready", { port: config4.server.port });
|
|
6317
6334
|
}
|
|
6318
6335
|
if (!isDev) {
|
|
6319
|
-
const distWebDir =
|
|
6336
|
+
const distWebDir = resolve2(__dirname2, "web");
|
|
6320
6337
|
app.use(
|
|
6321
6338
|
"/assets",
|
|
6322
|
-
express.static(
|
|
6339
|
+
express.static(join7(distWebDir, "assets"), {
|
|
6323
6340
|
setHeaders: (res, filepath) => {
|
|
6324
6341
|
if (filepath.endsWith(".css")) {
|
|
6325
6342
|
res.set("Content-Type", "text/css");
|
|
@@ -6327,11 +6344,11 @@ async function createServerHandle(config4) {
|
|
|
6327
6344
|
}
|
|
6328
6345
|
})
|
|
6329
6346
|
);
|
|
6330
|
-
app.use("/manifest.webmanifest", express.static(
|
|
6331
|
-
app.use("/registerSW.js", express.static(
|
|
6332
|
-
app.use("/sw.js", express.static(
|
|
6347
|
+
app.use("/manifest.webmanifest", express.static(join7(distWebDir, "manifest.webmanifest")));
|
|
6348
|
+
app.use("/registerSW.js", express.static(join7(distWebDir, "registerSW.js")));
|
|
6349
|
+
app.use("/sw.js", express.static(join7(distWebDir, "sw.js")));
|
|
6333
6350
|
app.get("/fox.svg", (_req, res) => {
|
|
6334
|
-
readFile3(
|
|
6351
|
+
readFile3(join7(distWebDir, "fox.svg")).then((content) => {
|
|
6335
6352
|
res.set("Content-Type", "image/svg+xml");
|
|
6336
6353
|
res.send(content);
|
|
6337
6354
|
}).catch(() => {
|
|
@@ -6340,7 +6357,7 @@ async function createServerHandle(config4) {
|
|
|
6340
6357
|
});
|
|
6341
6358
|
app.use(
|
|
6342
6359
|
"/sounds",
|
|
6343
|
-
express.static(
|
|
6360
|
+
express.static(join7(distWebDir, "sounds"), {
|
|
6344
6361
|
setHeaders: (res) => {
|
|
6345
6362
|
res.set("Content-Type", "audio/mpeg");
|
|
6346
6363
|
}
|
|
@@ -6349,15 +6366,15 @@ async function createServerHandle(config4) {
|
|
|
6349
6366
|
app.use("/__inspect__.js", (_req, res) => {
|
|
6350
6367
|
res.set("Access-Control-Allow-Origin", "*");
|
|
6351
6368
|
res.set("Content-Type", "application/javascript");
|
|
6352
|
-
readFile3(
|
|
6369
|
+
readFile3(join7(distWebDir, "__inspect__.js")).then((content) => res.send(content)).catch(() => res.status(404).send("Not found"));
|
|
6353
6370
|
});
|
|
6354
6371
|
app.use("/__inspect__.js", (_req, res) => {
|
|
6355
6372
|
res.set("Access-Control-Allow-Origin", "*");
|
|
6356
6373
|
res.set("Content-Type", "application/javascript");
|
|
6357
|
-
readFile3(
|
|
6374
|
+
readFile3(join7(distWebDir, "__inspect__.js")).then((content) => res.send(content)).catch(() => res.status(404).send("Not found"));
|
|
6358
6375
|
});
|
|
6359
6376
|
app.get("/", (_req, res) => {
|
|
6360
|
-
readFile3(
|
|
6377
|
+
readFile3(join7(distWebDir, "index.html"), "utf-8").then((content) => res.send(content)).catch(() => {
|
|
6361
6378
|
res.status(404).send("Web UI not built. Run `npm run build:web`");
|
|
6362
6379
|
});
|
|
6363
6380
|
});
|
|
@@ -6365,7 +6382,7 @@ async function createServerHandle(config4) {
|
|
|
6365
6382
|
if (req.path.startsWith("/api/") || req.path.startsWith("/assets/") || req.path.startsWith("/sounds/") || req.path.startsWith("/manifest.webmanifest") || req.path.startsWith("/registerSW.js") || req.path.startsWith("/sw.js") || req.path === "/fox.svg") {
|
|
6366
6383
|
return;
|
|
6367
6384
|
}
|
|
6368
|
-
readFile3(
|
|
6385
|
+
readFile3(join7(distWebDir, "index.html"), "utf-8").then((content) => res.send(content)).catch(() => {
|
|
6369
6386
|
res.status(404).send("Web UI not built");
|
|
6370
6387
|
});
|
|
6371
6388
|
});
|
|
@@ -6380,7 +6397,7 @@ async function createServerHandle(config4) {
|
|
|
6380
6397
|
providerManager
|
|
6381
6398
|
);
|
|
6382
6399
|
const wss = wssExports.wss;
|
|
6383
|
-
const { QueueProcessor } = await import("./processor-
|
|
6400
|
+
const { QueueProcessor } = await import("./processor-F3GKMYJT.js");
|
|
6384
6401
|
const queueProcessor = new QueueProcessor({
|
|
6385
6402
|
sessionManager,
|
|
6386
6403
|
providerManager,
|
|
@@ -6400,7 +6417,7 @@ async function createServerHandle(config4) {
|
|
|
6400
6417
|
return {
|
|
6401
6418
|
httpServer,
|
|
6402
6419
|
ctx: { config: config4, sessionManager, llmClient: getLLMClient(), toolRegistry, providerManager },
|
|
6403
|
-
start: (port) => new Promise((
|
|
6420
|
+
start: (port) => new Promise((resolve3, reject) => {
|
|
6404
6421
|
const listenPort = port ?? config4.server.port;
|
|
6405
6422
|
const host = config4.server.host;
|
|
6406
6423
|
httpServer.listen(listenPort, host, () => {
|
|
@@ -6410,11 +6427,11 @@ async function createServerHandle(config4) {
|
|
|
6410
6427
|
logger.info(`OpenFox server running at http://${host}:${actualPort}`);
|
|
6411
6428
|
logger.info(`WebSocket available at ws://${host}:${actualPort}/ws`);
|
|
6412
6429
|
logger.info(`LLM backend: ${client.getBackend()}, model: ${client.getModel()}, url: ${config4.llm.baseUrl}`);
|
|
6413
|
-
|
|
6430
|
+
resolve3({ port: actualPort });
|
|
6414
6431
|
});
|
|
6415
6432
|
httpServer.on("error", reject);
|
|
6416
6433
|
}),
|
|
6417
|
-
close: () => new Promise((
|
|
6434
|
+
close: () => new Promise((resolve3) => {
|
|
6418
6435
|
logger.info("Shutting down...");
|
|
6419
6436
|
void (async () => {
|
|
6420
6437
|
await devServerManager.stopAll();
|
|
@@ -6427,7 +6444,7 @@ async function createServerHandle(config4) {
|
|
|
6427
6444
|
client.terminate();
|
|
6428
6445
|
}
|
|
6429
6446
|
wss.close();
|
|
6430
|
-
httpServer.close(() =>
|
|
6447
|
+
httpServer.close(() => resolve3());
|
|
6431
6448
|
})();
|
|
6432
6449
|
})
|
|
6433
6450
|
};
|
|
@@ -6446,13 +6463,10 @@ async function createServer(config4) {
|
|
|
6446
6463
|
process.on("SIGINT", shutdown);
|
|
6447
6464
|
process.on("SIGTERM", shutdown);
|
|
6448
6465
|
}
|
|
6449
|
-
function basename2(path) {
|
|
6450
|
-
return path.split("/").pop() || path.split("\\").pop() || path;
|
|
6451
|
-
}
|
|
6452
6466
|
|
|
6453
6467
|
export {
|
|
6454
6468
|
VERSION,
|
|
6455
6469
|
createServerHandle,
|
|
6456
6470
|
createServer
|
|
6457
6471
|
};
|
|
6458
|
-
//# sourceMappingURL=chunk-
|
|
6472
|
+
//# sourceMappingURL=chunk-B7UUSHT7.js.map
|
|
@@ -191,7 +191,7 @@ async function runCli(options) {
|
|
|
191
191
|
if (!configExists) {
|
|
192
192
|
await runNetworkSetup(mode);
|
|
193
193
|
}
|
|
194
|
-
const { runServe } = await import("./serve-
|
|
194
|
+
const { runServe } = await import("./serve-QRK2E7HR.js");
|
|
195
195
|
const serveOptions = { mode };
|
|
196
196
|
if (values.port) serveOptions.port = parseInt(values.port);
|
|
197
197
|
if (values["no-browser"] === true) serveOptions.openBrowser = false;
|
|
@@ -203,4 +203,4 @@ async function runCli(options) {
|
|
|
203
203
|
export {
|
|
204
204
|
runCli
|
|
205
205
|
};
|
|
206
|
-
//# sourceMappingURL=chunk-
|
|
206
|
+
//# sourceMappingURL=chunk-FBKS6IPU.js.map
|