openfox 2.0.24 → 2.0.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/auto-config-FZFXOEEG.js +169 -0
  2. package/dist/backend-AGXWAU7A.js +9 -0
  3. package/dist/{chat-handler-4ATHDLH4.js → chat-handler-C4HZJNUN.js} +28 -47
  4. package/dist/{chunk-QK6TYNUN.js → chunk-7H4PYZMT.js} +6 -6
  5. package/dist/{chunk-RYHCYZQ7.js → chunk-DW55I7SI.js} +26 -24
  6. package/dist/{chunk-YVF3BLQS.js → chunk-GBUP7UDI.js} +36 -22
  7. package/dist/chunk-HNCM3D7Y.js +28 -0
  8. package/dist/chunk-IEDE6VK4.js +124 -0
  9. package/dist/chunk-J2GP3J3X.js +97 -0
  10. package/dist/{chunk-MDRNKI7D.js → chunk-K454WU7A.js} +62 -49
  11. package/dist/chunk-M3RB4IF6.js +114 -0
  12. package/dist/{chunk-XJ4SUDL7.js → chunk-QYP6MOB5.js} +33 -242
  13. package/dist/chunk-V4IE7HJY.js +175 -0
  14. package/dist/{chunk-GI24G4OW.js → chunk-VI236SOY.js} +79 -59
  15. package/dist/{chunk-CDIYCGCO.js → chunk-WEXW7ZXJ.js} +2 -2
  16. package/dist/{chunk-INRKWEOH.js → chunk-YBPRGUAE.js} +116 -65
  17. package/dist/{chunk-YUHODMKY.js → chunk-YGSBVKFU.js} +11 -5
  18. package/dist/{chunk-4EDH3ZXL.js → chunk-YRRUHP4T.js} +3 -3
  19. package/dist/chunk-Z4FMBCJO.js +52 -0
  20. package/dist/chunk-ZJ4FP6RS.js +200 -0
  21. package/dist/cli/dev.js +1 -1
  22. package/dist/cli/index.js +1 -1
  23. package/dist/client-X6BVH4Q4.js +13 -0
  24. package/dist/client-pure-5NOTSIRK.js +19 -0
  25. package/dist/{compactor-SEZEZSML.js → compactor-JMGSZ4DQ.js} +7 -4
  26. package/dist/http-client-SIPAW7IM.js +8 -0
  27. package/dist/{orchestrator-MFN7COWT.js → orchestrator-HZX3IETX.js} +16 -13
  28. package/dist/package.json +1 -1
  29. package/dist/{processor-W2ZSJVOJ.js → processor-AX2QQWUX.js} +30 -55
  30. package/dist/profiles-Q36ELWQF.js +9 -0
  31. package/dist/{provider-IMW3ITB7.js → provider-XRTIWMB6.js} +15 -9
  32. package/dist/provider-manager-4H4VGNYA.js +22 -0
  33. package/dist/{serve-ABSUHKT3.js → serve-NVFK3XHF.js} +23 -17
  34. package/dist/server/index.d.ts +9 -1
  35. package/dist/server/index.js +19 -13
  36. package/dist/{server-7EAYI7T4.js → server-7MFV467L.js} +18 -12
  37. package/dist/{tools-7CKTYL2G.js → tools-4KGLCQJL.js} +11 -8
  38. package/dist/url-utils-QWAHP54Q.js +15 -0
  39. package/dist/web/assets/{index-CkUCxzzC.css → index-BLOGpuPE.css} +1 -1
  40. package/dist/web/assets/{index-Bi5R_oF2.js → index-CtG8oo36.js} +66 -66
  41. package/dist/web/index.html +2 -2
  42. package/dist/web/sw.js +1 -1
  43. package/package.json +1 -1
  44. package/dist/chunk-UUFEE7VR.js +0 -505
  45. package/dist/provider-manager-DNBMBP4D.js +0 -16
@@ -5,8 +5,8 @@
5
5
  <link rel="icon" type="image/png" href="/assets/openfox.png" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0, height=device-height" />
7
7
  <title>OpenFox</title>
8
- <script type="module" crossorigin src="/assets/index-Bi5R_oF2.js"></script>
9
- <link rel="stylesheet" crossorigin href="/assets/index-CkUCxzzC.css">
8
+ <script type="module" crossorigin src="/assets/index-CtG8oo36.js"></script>
9
+ <link rel="stylesheet" crossorigin href="/assets/index-BLOGpuPE.css">
10
10
  <link rel="manifest" href="/manifest.webmanifest"><script id="vite-plugin-pwa:register-sw" src="/registerSW.js"></script></head>
11
11
  <body class="bg-bg-primary text-text-primary font-mono">
12
12
  <div id="root"></div>
package/dist/web/sw.js CHANGED
@@ -1 +1 @@
1
- if(!self.define){let s,l={};const e=(e,r)=>(e=new URL(e+".js",r).href,l[e]||new Promise(l=>{if("document"in self){const s=document.createElement("script");s.src=e,s.onload=l,document.head.appendChild(s)}else s=e,importScripts(e),l()}).then(()=>{let s=l[e];if(!s)throw new Error(`Module ${e} didn’t register its module`);return s}));self.define=(r,i)=>{const n=s||("document"in self?document.currentScript.src:"")||location.href;if(l[n])return;let u={};const a=s=>e(s,n),t={module:{uri:n},exports:u,require:a};l[n]=Promise.all(r.map(s=>t[s]||a(s))).then(s=>(i(...s),u))}}define(["./workbox-8c29f6e4"],function(s){"use strict";self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"registerSW.js",revision:"1872c500de691dce40960bb85481de07"},{url:"index.html",revision:"a73d5ea5992afab73300eac870ba6673"},{url:"__inspect__.js",revision:"878b477aaf1805c028895f3d3bb4af71"},{url:"assets/zig-VOosw3JB.js",revision:null},{url:"assets/zenscript-DVFEvuxE.js",revision:null},{url:"assets/yaml-Buea-lGh.js",revision:null},{url:"assets/xsl-CtQFsRM5.js",revision:null},{url:"assets/xml-sdJ4AIDG.js",revision:null},{url:"assets/wolfram-lXgVvXCa.js",revision:null},{url:"assets/wit-5i3qLPDT.js",revision:null},{url:"assets/wikitext-BhOHFoWU.js",revision:null},{url:"assets/wgsl-Dx-B1_4e.js",revision:null},{url:"assets/wenyan-BV7otONQ.js",revision:null},{url:"assets/wasm-MzD3tlZU.js",revision:null},{url:"assets/wasm-CG6Dc4jp.js",revision:null},{url:"assets/vyper-CDx5xZoG.js",revision:null},{url:"assets/vue-vine-BoDAl6tE.js",revision:null},{url:"assets/vue-html-AaS7Mt5G.js",revision:null},{url:"assets/vue-D2xRrEX4.js",revision:null},{url:"assets/vitesse-light-CVO1_9PV.js",revision:null},{url:"assets/vitesse-dark-D0r3Knsf.js",revision:null},{url:"assets/vitesse-black-Bkuqu6BP.js",revision:null},{url:"assets/viml-CJc9bBzg.js",revision:null},{url:"assets/vhdl-CeAyd5Ju.js",revision:null},{url:"assets/vesper-DRje8inN.js",revision:null},{url:"assets/verilog-BQ8w6xss.js",revision:null},{url:"assets/vb-D17OF-Vu.js",revision:null},{url:"assets/vala-CsfeWuGM.js",revision:null},{url:"assets/v-BcVCzyr7.js",revision:null},{url:"assets/typst-DHCkPAjA.js",revision:null},{url:"assets/typespec-CAFt9gP4.js",revision:null},{url:"assets/typescript-BPQ3VLAy.js",revision:null},{url:"assets/twig-CW1WmMYd.js",revision:null},{url:"assets/turtle-BsS91CYL.js",revision:null},{url:"assets/tsx-COt5Ahok.js",revision:null},{url:"assets/tsv-B_m7g4N7.js",revision:null},{url:"assets/ts-tags-D351s5mN.js",revision:null},{url:"assets/toml-vGWfd6FD.js",revision:null},{url:"assets/tokyo-night-hegEt444.js",revision:null},{url:"assets/tex-idrVyKtj.js",revision:null},{url:"assets/terraform-BETggiCN.js",revision:null},{url:"assets/templ-DhtptRzy.js",revision:null},{url:"assets/tcl-dwOrl1Do.js",revision:null},{url:"assets/tasl-QIJgUcNo.js",revision:null},{url:"assets/talonscript-CkByrt1z.js",revision:null},{url:"assets/systemd-4A_iFExJ.js",revision:null},{url:"assets/system-verilog-CnnmHF94.js",revision:null},{url:"assets/synthwave-84-CbfX1IO0.js",revision:null},{url:"assets/swift-D82vCrfD.js",revision:null},{url:"assets/svelte-Cy7k_4gC.js",revision:null},{url:"assets/surrealql-Bq5Q-fJD.js",revision:null},{url:"assets/stylus-BEDo0Tqx.js",revision:null},{url:"assets/stata-DI20mbqo.js",revision:null},{url:"assets/ssh-config-_ykCGR6B.js",revision:null},{url:"assets/sql-CRqJ_cUM.js",revision:null},{url:"assets/splunk-BtCnVYZw.js",revision:null},{url:"assets/sparql-rVzFXLq3.js",revision:null},{url:"assets/soy-8wufbnw4.js",revision:null},{url:"assets/solidity-rGO070M0.js",revision:null},{url:"assets/solarized-light-L9t79GZl.js",revision:null},{url:"assets/solarized-dark-DXbdFlpD.js",revision:null},{url:"assets/snazzy-light-Bw305WKR.js",revision:null},{url:"assets/smalltalk-BERRCDM3.js",revision:null},{url:"assets/slack-ochin-DqwNpetd.js",revision:null},{url:"assets/slack-dark-BthQWCQV.js",revision:null},{url:"assets/shellsession-BADoaaVG.js",revision:null},{url:"assets/shellscript-Yzrsuije.js",revision:null},{url:"assets/shaderlab-Dg9Lc6iA.js",revision:null},{url:"assets/sdbl-DVxCFoDh.js",revision:null},{url:"assets/scss-D5BDwBP9.js",revision:null},{url:"assets/scheme-C98Dy4si.js",revision:null},{url:"assets/scala-C151Ov-r.js",revision:null},{url:"assets/sass-Cj5Yp3dK.js",revision:null},{url:"assets/sas-DEy46yEz.js",revision:null},{url:"assets/rust-B1yitclQ.js",revision:null},{url:"assets/ruby-DyJCeAvU.js",revision:null},{url:"assets/rst-CpCqk9r5.js",revision:null},{url:"assets/rosmsg-BJDFO7_C.js",revision:null},{url:"assets/rose-pine-qdsjHGoJ.js",revision:null},{url:"assets/rose-pine-moon-D4_iv3hh.js",revision:null},{url:"assets/rose-pine-dawn-DHQR4-dF.js",revision:null},{url:"assets/ron-D8l8udqQ.js",revision:null},{url:"assets/riscv-BM1_JUlF.js",revision:null},{url:"assets/rel-C3B-1QV4.js",revision:null},{url:"assets/regexp-CDVJQ6XC.js",revision:null},{url:"assets/reg-C-SQnVFl.js",revision:null},{url:"assets/red-bN70gL4F.js",revision:null},{url:"assets/razor-BjBPvh-w.js",revision:null},{url:"assets/raku-DXvB9xmW.js",revision:null},{url:"assets/racket-BqYA7rlc.js",revision:null},{url:"assets/r-Dspwwk_N.js",revision:null},{url:"assets/qss-IeuSbFQv.js",revision:null},{url:"assets/qmldir-C8lEn-DE.js",revision:null},{url:"assets/qml-3beO22l8.js",revision:null},{url:"assets/python-B6aJPvgy.js",revision:null},{url:"assets/purescript-CklMAg4u.js",revision:null},{url:"assets/puppet-BMWR74SV.js",revision:null},{url:"assets/pug-DKIMFp6K.js",revision:null},{url:"assets/proto-C7zT0LnQ.js",revision:null},{url:"assets/prolog-CbFg5uaA.js",revision:null},{url:"assets/prisma-Dd19v3D-.js",revision:null},{url:"assets/powershell-Dpen1YoG.js",revision:null},{url:"assets/powerquery-CEu0bR-o.js",revision:null},{url:"assets/postcss-CXtECtnM.js",revision:null},{url:"assets/polar-C0HS_06l.js",revision:null},{url:"assets/poimandres-CS3Unz2-.js",revision:null},{url:"assets/po-BTJTHyun.js",revision:null},{url:"assets/plsql-ChMvpjG-.js",revision:null},{url:"assets/plastic-3e1v2bzS.js",revision:null},{url:"assets/pkl-u5AG7uiY.js",revision:null},{url:"assets/php-Csjmro_R.js",revision:null},{url:"assets/perl-B9cMNwum.js",revision:null},{url:"assets/pascal-D93ZcfNL.js",revision:null},{url:"assets/openscad-C4EeE6gA.js",revision:null},{url:"assets/one-light-C3Wv6jpd.js",revision:null},{url:"assets/one-dark-pro-DVMEJ2y_.js",revision:null},{url:"assets/odin-BBf5iR-q.js",revision:null},{url:"assets/ocaml-C0hk2d4L.js",revision:null},{url:"assets/objective-cpp-CLxacb5B.js",revision:null},{url:"assets/objective-c-DXmwc3jG.js",revision:null},{url:"assets/nushell-Cz2AlsmD.js",revision:null},{url:"assets/nord-Ddv68eIx.js",revision:null},{url:"assets/nix-CwoSXNpI.js",revision:null},{url:"assets/nim-BIad80T-.js",revision:null},{url:"assets/night-owl-light-CMTm3GFP.js",revision:null},{url:"assets/night-owl-C39BiMTA.js",revision:null},{url:"assets/nginx-BpAMiNFr.js",revision:null},{url:"assets/nextflow-groovy-vE_lwT2v.js",revision:null},{url:"assets/nextflow-C-mBbutL.js",revision:null},{url:"assets/narrat-DRg8JJMk.js",revision:null},{url:"assets/move-IF9eRakj.js",revision:null},{url:"assets/moonbit-_H4v1dQx.js",revision:null},{url:"assets/monokai-D4h5O-jR.js",revision:null},{url:"assets/mojo-rZm6bMo-.js",revision:null},{url:"assets/mipsasm-CKIfxQSi.js",revision:null},{url:"assets/min-light-CTRr51gU.js",revision:null},{url:"assets/min-dark-CafNBF8u.js",revision:null},{url:"assets/mermaid-mWjccvbQ.js",revision:null},{url:"assets/mdx-Cmh6b_Ma.js",revision:null},{url:"assets/mdc-DTYItulj.js",revision:null},{url:"assets/matlab-D7o27uSR.js",revision:null},{url:"assets/material-theme-palenight-Csfq5Kiy.js",revision:null},{url:"assets/material-theme-ocean-CyktbL80.js",revision:null},{url:"assets/material-theme-lighter-B0m2ddpp.js",revision:null},{url:"assets/material-theme-darker-BfHTSMKl.js",revision:null},{url:"assets/material-theme-D5KoaKCx.js",revision:null},{url:"assets/marko-DjSrsDqO.js",revision:null},{url:"assets/markdown-Cvjx9yec.js",revision:null},{url:"assets/make-CHLpvVh8.js",revision:null},{url:"assets/luau-KW6xsasC.js",revision:null},{url:"assets/lua-BaeVxFsk.js",revision:null},{url:"assets/logo-BtOb2qkB.js",revision:null},{url:"assets/log-2UxHyX5q.js",revision:null},{url:"assets/llvm-DjAJT7YJ.js",revision:null},{url:"assets/liquid-C0sCDyMI.js",revision:null},{url:"assets/light-plus-B7mTdjB0.js",revision:null},{url:"assets/less-B1dDrJ26.js",revision:null},{url:"assets/lean-BZvkOJ9d.js",revision:null},{url:"assets/latex-CaSxy8MP.js",revision:null},{url:"assets/laserwave-DUszq2jm.js",revision:null},{url:"assets/kusto-wEQ09or8.js",revision:null},{url:"assets/kotlin-BdnUsdx6.js",revision:null},{url:"assets/kdl-DV7GczEv.js",revision:null},{url:"assets/kanagawa-wave-DWedfzmr.js",revision:null},{url:"assets/kanagawa-lotus-CfQXZHmo.js",revision:null},{url:"assets/kanagawa-dragon-CkXjmgJE.js",revision:null},{url:"assets/just-CUsbIsdP.js",revision:null},{url:"assets/julia-D7OTSIA_.js",revision:null},{url:"assets/jsx-g9-lgVsj.js",revision:null},{url:"assets/jssm-C2t-YnRu.js",revision:null},{url:"assets/jsonnet-DFQXde-d.js",revision:null},{url:"assets/jsonl-DcaNXYhu.js",revision:null},{url:"assets/jsonc-Des-eS-w.js",revision:null},{url:"assets/json5-C9tS-k6U.js",revision:null},{url:"assets/json-Cp-IABpG.js",revision:null},{url:"assets/jison-wvAkD_A8.js",revision:null},{url:"assets/jinja-f2NsQr07.js",revision:null},{url:"assets/javascript-wDzz0qaB.js",revision:null},{url:"assets/java-CylS5w8V.js",revision:null},{url:"assets/ini-BEwlwnbL.js",revision:null},{url:"assets/index-CkUCxzzC.css",revision:null},{url:"assets/index-Bi5R_oF2.js",revision:null},{url:"assets/imba-DGztddWO.js",revision:null},{url:"assets/hy-DFXneXwc.js",revision:null},{url:"assets/hxml-Bvhsp5Yf.js",revision:null},{url:"assets/hurl-irOxFIW8.js",revision:null},{url:"assets/http-jrhK8wxY.js",revision:null},{url:"assets/html2canvas.esm-QH1iLAAe.js",revision:null},{url:"assets/html-pp8916En.js",revision:null},{url:"assets/html-derivative-DlHx6ybY.js",revision:null},{url:"assets/houston-DnULxvSX.js",revision:null},{url:"assets/horizon-bright-CUuTKBJd.js",revision:null},{url:"assets/horizon-BUw7H-hv.js",revision:null},{url:"assets/hlsl-D3lLCCz7.js",revision:null},{url:"assets/hjson-D5-asLiD.js",revision:null},{url:"assets/hcl-BWvSN4gD.js",revision:null},{url:"assets/haxe-CzTSHFRz.js",revision:null},{url:"assets/haskell-Df6bDoY_.js",revision:null},{url:"assets/handlebars-BpdQsYii.js",revision:null},{url:"assets/haml-D5jkg6IW.js",revision:null},{url:"assets/hack-DbPARsA_.js",revision:null},{url:"assets/gruvbox-light-soft-hJgmCMqR.js",revision:null},{url:"assets/gruvbox-light-medium-DRw_LuNl.js",revision:null},{url:"assets/gruvbox-light-hard-CH1njM8p.js",revision:null},{url:"assets/gruvbox-dark-soft-CVdnzihN.js",revision:null},{url:"assets/gruvbox-dark-medium-GsRaNv29.js",revision:null},{url:"assets/gruvbox-dark-hard-CFHQjOhq.js",revision:null},{url:"assets/groovy-gcz8RCvz.js",revision:null},{url:"assets/graphql-ChdNCCLP.js",revision:null},{url:"assets/go-C27-OAKa.js",revision:null},{url:"assets/gnuplot-DdkO51Og.js",revision:null},{url:"assets/gn-n2N0HUVH.js",revision:null},{url:"assets/glsl-DplSGwfg.js",revision:null},{url:"assets/glimmer-ts-BfAWNZQY.js",revision:null},{url:"assets/glimmer-js-ByusRIyA.js",revision:null},{url:"assets/gleam-BspZqrRM.js",revision:null},{url:"assets/github-light-high-contrast-BfjtVDDH.js",revision:null},{url:"assets/github-light-default-D7oLnXFd.js",revision:null},{url:"assets/github-light-DAi9KRSo.js",revision:null},{url:"assets/github-dark-high-contrast-E3gJ1_iC.js",revision:null},{url:"assets/github-dark-dimmed-DH5Ifo-i.js",revision:null},{url:"assets/github-dark-default-Cuk6v7N8.js",revision:null},{url:"assets/github-dark-DHJKELXO.js",revision:null},{url:"assets/git-rebase-r7XF79zn.js",revision:null},{url:"assets/git-commit-F4YmCXRG.js",revision:null},{url:"assets/gherkin-DyxjwDmM.js",revision:null},{url:"assets/genie-D0YGMca9.js",revision:null},{url:"assets/gdshader-DkwncUOv.js",revision:null},{url:"assets/gdscript-C5YyOfLZ.js",revision:null},{url:"assets/gdresource-BOOCDP_w.js",revision:null},{url:"assets/fsharp-CXgrBDvD.js",revision:null},{url:"assets/fortran-free-form-BxgE0vQu.js",revision:null},{url:"assets/fortran-fixed-form-CkoXwp7k.js",revision:null},{url:"assets/fluent-C4IJs8-o.js",revision:null},{url:"assets/fish-BvzEVeQv.js",revision:null},{url:"assets/fennel-BYunw83y.js",revision:null},{url:"assets/everforest-light-C8M2exoo.js",revision:null},{url:"assets/everforest-dark-BgDCqdQA.js",revision:null},{url:"assets/erlang-DsQrWhSR.js",revision:null},{url:"assets/erb-Dm6A9KJ5.js",revision:null},{url:"assets/emacs-lisp-CXvaQtF9.js",revision:null},{url:"assets/elm-DbKCFpqz.js",revision:null},{url:"assets/elixir-CkH2-t6x.js",revision:null},{url:"assets/edge-FbVlp4U3.js",revision:null},{url:"assets/dream-maker-BtqSS_iP.js",revision:null},{url:"assets/dracula-soft-BXkSAIEj.js",revision:null},{url:"assets/dracula-BzJJZx-M.js",revision:null},{url:"assets/dotenv-Da5cRb03.js",revision:null},{url:"assets/docker-BcOcwvcX.js",revision:null},{url:"assets/diff-D97Zzqfu.js",revision:null},{url:"assets/desktop-BmXAJ9_W.js",revision:null},{url:"assets/dax-CEL-wOlO.js",revision:null},{url:"assets/dart-bE4Kk8sk.js",revision:null},{url:"assets/dark-plus-C3mMm8J8.js",revision:null},{url:"assets/d-85-TOEBH.js",revision:null},{url:"assets/cypher-COkxafJQ.js",revision:null},{url:"assets/cue-D82EKSYY.js",revision:null},{url:"assets/csv-fuZLfV_i.js",revision:null},{url:"assets/css-CLj8gQPS.js",revision:null},{url:"assets/csharp-DSvCPggb.js",revision:null},{url:"assets/crystal-DGywbUpC.js",revision:null},{url:"assets/cpp-UfJy6YNI.js",revision:null},{url:"assets/coq-DkFqJrB1.js",revision:null},{url:"assets/common-lisp-Cg-RD9OK.js",revision:null},{url:"assets/coffee-Ch7k5sss.js",revision:null},{url:"assets/codeql-DsOJ9woJ.js",revision:null},{url:"assets/codeowners-Bp6g37R7.js",revision:null},{url:"assets/cobol-nBiQ_Alo.js",revision:null},{url:"assets/cmake-D1j8_8rp.js",revision:null},{url:"assets/clojure-P80f7IUj.js",revision:null},{url:"assets/clarity-D53aC0YG.js",revision:null},{url:"assets/catppuccin-mocha-D87Tk5Gz.js",revision:null},{url:"assets/catppuccin-macchiato-DQyhUUbL.js",revision:null},{url:"assets/catppuccin-latte-C9dUb6Cb.js",revision:null},{url:"assets/catppuccin-frappe-DFWUc33u.js",revision:null},{url:"assets/cairo-KRGpt6FW.js",revision:null},{url:"assets/cadence-Bv_4Rxtq.js",revision:null},{url:"assets/c3-MRO5bC_T.js",revision:null},{url:"assets/c-BIGW1oBm.js",revision:null},{url:"assets/bsl-BO_Y6i37.js",revision:null},{url:"assets/blade-2xfisSek.js",revision:null},{url:"assets/bird2-BIv1doCn.js",revision:null},{url:"assets/bicep-Bmn6On1c.js",revision:null},{url:"assets/bibtex-CHM0blh-.js",revision:null},{url:"assets/berry-uYugtg8r.js",revision:null},{url:"assets/beancount-k_qm7-4y.js",revision:null},{url:"assets/bat-BkioyH1T.js",revision:null},{url:"assets/ballerina-BFfxhgS-.js",revision:null},{url:"assets/ayu-mirage-32ctXXKs.js",revision:null},{url:"assets/ayu-light-BA47KaF1.js",revision:null},{url:"assets/ayu-dark-DYE7WIF3.js",revision:null},{url:"assets/awk-DMzUqQB5.js",revision:null},{url:"assets/aurora-x-D-2ljcwZ.js",revision:null},{url:"assets/astro-HNnZUWAn.js",revision:null},{url:"assets/asm-D_Q5rh1f.js",revision:null},{url:"assets/asciidoc-Ve4PFQV2.js",revision:null},{url:"assets/ara-BRHolxvo.js",revision:null},{url:"assets/applescript-Co6uUVPk.js",revision:null},{url:"assets/apl-CORt7UWP.js",revision:null},{url:"assets/apex-Dqspr-GT.js",revision:null},{url:"assets/apache-Pmp26Uib.js",revision:null},{url:"assets/angular-ts-BrjP3tb8.js",revision:null},{url:"assets/angular-html-DA-rfuFy.js",revision:null},{url:"assets/andromeeda-C4gqWexZ.js",revision:null},{url:"assets/ada-bCR0ucgS.js",revision:null},{url:"assets/actionscript-3-CoDkCxhg.js",revision:null},{url:"assets/abap-BdImnpbu.js",revision:null},{url:"assets/openfox-192.png",revision:"79feeb86d692c274854e37959a7dae67"},{url:"assets/openfox-512.png",revision:"fee24b214220594b4f595a467e73036e"},{url:"manifest.webmanifest",revision:"c25f372c782e623ab1e768a8dfe350ca"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("index.html")))});
1
+ if(!self.define){let s,l={};const e=(e,r)=>(e=new URL(e+".js",r).href,l[e]||new Promise(l=>{if("document"in self){const s=document.createElement("script");s.src=e,s.onload=l,document.head.appendChild(s)}else s=e,importScripts(e),l()}).then(()=>{let s=l[e];if(!s)throw new Error(`Module ${e} didn’t register its module`);return s}));self.define=(r,i)=>{const n=s||("document"in self?document.currentScript.src:"")||location.href;if(l[n])return;let u={};const a=s=>e(s,n),t={module:{uri:n},exports:u,require:a};l[n]=Promise.all(r.map(s=>t[s]||a(s))).then(s=>(i(...s),u))}}define(["./workbox-8c29f6e4"],function(s){"use strict";self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"registerSW.js",revision:"1872c500de691dce40960bb85481de07"},{url:"index.html",revision:"83cdad3495208cb750abdcccfa9c8cdd"},{url:"__inspect__.js",revision:"878b477aaf1805c028895f3d3bb4af71"},{url:"assets/zig-VOosw3JB.js",revision:null},{url:"assets/zenscript-DVFEvuxE.js",revision:null},{url:"assets/yaml-Buea-lGh.js",revision:null},{url:"assets/xsl-CtQFsRM5.js",revision:null},{url:"assets/xml-sdJ4AIDG.js",revision:null},{url:"assets/wolfram-lXgVvXCa.js",revision:null},{url:"assets/wit-5i3qLPDT.js",revision:null},{url:"assets/wikitext-BhOHFoWU.js",revision:null},{url:"assets/wgsl-Dx-B1_4e.js",revision:null},{url:"assets/wenyan-BV7otONQ.js",revision:null},{url:"assets/wasm-MzD3tlZU.js",revision:null},{url:"assets/wasm-CG6Dc4jp.js",revision:null},{url:"assets/vyper-CDx5xZoG.js",revision:null},{url:"assets/vue-vine-BoDAl6tE.js",revision:null},{url:"assets/vue-html-AaS7Mt5G.js",revision:null},{url:"assets/vue-D2xRrEX4.js",revision:null},{url:"assets/vitesse-light-CVO1_9PV.js",revision:null},{url:"assets/vitesse-dark-D0r3Knsf.js",revision:null},{url:"assets/vitesse-black-Bkuqu6BP.js",revision:null},{url:"assets/viml-CJc9bBzg.js",revision:null},{url:"assets/vhdl-CeAyd5Ju.js",revision:null},{url:"assets/vesper-DRje8inN.js",revision:null},{url:"assets/verilog-BQ8w6xss.js",revision:null},{url:"assets/vb-D17OF-Vu.js",revision:null},{url:"assets/vala-CsfeWuGM.js",revision:null},{url:"assets/v-BcVCzyr7.js",revision:null},{url:"assets/typst-DHCkPAjA.js",revision:null},{url:"assets/typespec-CAFt9gP4.js",revision:null},{url:"assets/typescript-BPQ3VLAy.js",revision:null},{url:"assets/twig-CW1WmMYd.js",revision:null},{url:"assets/turtle-BsS91CYL.js",revision:null},{url:"assets/tsx-COt5Ahok.js",revision:null},{url:"assets/tsv-B_m7g4N7.js",revision:null},{url:"assets/ts-tags-D351s5mN.js",revision:null},{url:"assets/toml-vGWfd6FD.js",revision:null},{url:"assets/tokyo-night-hegEt444.js",revision:null},{url:"assets/tex-idrVyKtj.js",revision:null},{url:"assets/terraform-BETggiCN.js",revision:null},{url:"assets/templ-DhtptRzy.js",revision:null},{url:"assets/tcl-dwOrl1Do.js",revision:null},{url:"assets/tasl-QIJgUcNo.js",revision:null},{url:"assets/talonscript-CkByrt1z.js",revision:null},{url:"assets/systemd-4A_iFExJ.js",revision:null},{url:"assets/system-verilog-CnnmHF94.js",revision:null},{url:"assets/synthwave-84-CbfX1IO0.js",revision:null},{url:"assets/swift-D82vCrfD.js",revision:null},{url:"assets/svelte-Cy7k_4gC.js",revision:null},{url:"assets/surrealql-Bq5Q-fJD.js",revision:null},{url:"assets/stylus-BEDo0Tqx.js",revision:null},{url:"assets/stata-DI20mbqo.js",revision:null},{url:"assets/ssh-config-_ykCGR6B.js",revision:null},{url:"assets/sql-CRqJ_cUM.js",revision:null},{url:"assets/splunk-BtCnVYZw.js",revision:null},{url:"assets/sparql-rVzFXLq3.js",revision:null},{url:"assets/soy-8wufbnw4.js",revision:null},{url:"assets/solidity-rGO070M0.js",revision:null},{url:"assets/solarized-light-L9t79GZl.js",revision:null},{url:"assets/solarized-dark-DXbdFlpD.js",revision:null},{url:"assets/snazzy-light-Bw305WKR.js",revision:null},{url:"assets/smalltalk-BERRCDM3.js",revision:null},{url:"assets/slack-ochin-DqwNpetd.js",revision:null},{url:"assets/slack-dark-BthQWCQV.js",revision:null},{url:"assets/shellsession-BADoaaVG.js",revision:null},{url:"assets/shellscript-Yzrsuije.js",revision:null},{url:"assets/shaderlab-Dg9Lc6iA.js",revision:null},{url:"assets/sdbl-DVxCFoDh.js",revision:null},{url:"assets/scss-D5BDwBP9.js",revision:null},{url:"assets/scheme-C98Dy4si.js",revision:null},{url:"assets/scala-C151Ov-r.js",revision:null},{url:"assets/sass-Cj5Yp3dK.js",revision:null},{url:"assets/sas-DEy46yEz.js",revision:null},{url:"assets/rust-B1yitclQ.js",revision:null},{url:"assets/ruby-DyJCeAvU.js",revision:null},{url:"assets/rst-CpCqk9r5.js",revision:null},{url:"assets/rosmsg-BJDFO7_C.js",revision:null},{url:"assets/rose-pine-qdsjHGoJ.js",revision:null},{url:"assets/rose-pine-moon-D4_iv3hh.js",revision:null},{url:"assets/rose-pine-dawn-DHQR4-dF.js",revision:null},{url:"assets/ron-D8l8udqQ.js",revision:null},{url:"assets/riscv-BM1_JUlF.js",revision:null},{url:"assets/rel-C3B-1QV4.js",revision:null},{url:"assets/regexp-CDVJQ6XC.js",revision:null},{url:"assets/reg-C-SQnVFl.js",revision:null},{url:"assets/red-bN70gL4F.js",revision:null},{url:"assets/razor-BjBPvh-w.js",revision:null},{url:"assets/raku-DXvB9xmW.js",revision:null},{url:"assets/racket-BqYA7rlc.js",revision:null},{url:"assets/r-Dspwwk_N.js",revision:null},{url:"assets/qss-IeuSbFQv.js",revision:null},{url:"assets/qmldir-C8lEn-DE.js",revision:null},{url:"assets/qml-3beO22l8.js",revision:null},{url:"assets/python-B6aJPvgy.js",revision:null},{url:"assets/purescript-CklMAg4u.js",revision:null},{url:"assets/puppet-BMWR74SV.js",revision:null},{url:"assets/pug-DKIMFp6K.js",revision:null},{url:"assets/proto-C7zT0LnQ.js",revision:null},{url:"assets/prolog-CbFg5uaA.js",revision:null},{url:"assets/prisma-Dd19v3D-.js",revision:null},{url:"assets/powershell-Dpen1YoG.js",revision:null},{url:"assets/powerquery-CEu0bR-o.js",revision:null},{url:"assets/postcss-CXtECtnM.js",revision:null},{url:"assets/polar-C0HS_06l.js",revision:null},{url:"assets/poimandres-CS3Unz2-.js",revision:null},{url:"assets/po-BTJTHyun.js",revision:null},{url:"assets/plsql-ChMvpjG-.js",revision:null},{url:"assets/plastic-3e1v2bzS.js",revision:null},{url:"assets/pkl-u5AG7uiY.js",revision:null},{url:"assets/php-Csjmro_R.js",revision:null},{url:"assets/perl-B9cMNwum.js",revision:null},{url:"assets/pascal-D93ZcfNL.js",revision:null},{url:"assets/openscad-C4EeE6gA.js",revision:null},{url:"assets/one-light-C3Wv6jpd.js",revision:null},{url:"assets/one-dark-pro-DVMEJ2y_.js",revision:null},{url:"assets/odin-BBf5iR-q.js",revision:null},{url:"assets/ocaml-C0hk2d4L.js",revision:null},{url:"assets/objective-cpp-CLxacb5B.js",revision:null},{url:"assets/objective-c-DXmwc3jG.js",revision:null},{url:"assets/nushell-Cz2AlsmD.js",revision:null},{url:"assets/nord-Ddv68eIx.js",revision:null},{url:"assets/nix-CwoSXNpI.js",revision:null},{url:"assets/nim-BIad80T-.js",revision:null},{url:"assets/night-owl-light-CMTm3GFP.js",revision:null},{url:"assets/night-owl-C39BiMTA.js",revision:null},{url:"assets/nginx-BpAMiNFr.js",revision:null},{url:"assets/nextflow-groovy-vE_lwT2v.js",revision:null},{url:"assets/nextflow-C-mBbutL.js",revision:null},{url:"assets/narrat-DRg8JJMk.js",revision:null},{url:"assets/move-IF9eRakj.js",revision:null},{url:"assets/moonbit-_H4v1dQx.js",revision:null},{url:"assets/monokai-D4h5O-jR.js",revision:null},{url:"assets/mojo-rZm6bMo-.js",revision:null},{url:"assets/mipsasm-CKIfxQSi.js",revision:null},{url:"assets/min-light-CTRr51gU.js",revision:null},{url:"assets/min-dark-CafNBF8u.js",revision:null},{url:"assets/mermaid-mWjccvbQ.js",revision:null},{url:"assets/mdx-Cmh6b_Ma.js",revision:null},{url:"assets/mdc-DTYItulj.js",revision:null},{url:"assets/matlab-D7o27uSR.js",revision:null},{url:"assets/material-theme-palenight-Csfq5Kiy.js",revision:null},{url:"assets/material-theme-ocean-CyktbL80.js",revision:null},{url:"assets/material-theme-lighter-B0m2ddpp.js",revision:null},{url:"assets/material-theme-darker-BfHTSMKl.js",revision:null},{url:"assets/material-theme-D5KoaKCx.js",revision:null},{url:"assets/marko-DjSrsDqO.js",revision:null},{url:"assets/markdown-Cvjx9yec.js",revision:null},{url:"assets/make-CHLpvVh8.js",revision:null},{url:"assets/luau-KW6xsasC.js",revision:null},{url:"assets/lua-BaeVxFsk.js",revision:null},{url:"assets/logo-BtOb2qkB.js",revision:null},{url:"assets/log-2UxHyX5q.js",revision:null},{url:"assets/llvm-DjAJT7YJ.js",revision:null},{url:"assets/liquid-C0sCDyMI.js",revision:null},{url:"assets/light-plus-B7mTdjB0.js",revision:null},{url:"assets/less-B1dDrJ26.js",revision:null},{url:"assets/lean-BZvkOJ9d.js",revision:null},{url:"assets/latex-CaSxy8MP.js",revision:null},{url:"assets/laserwave-DUszq2jm.js",revision:null},{url:"assets/kusto-wEQ09or8.js",revision:null},{url:"assets/kotlin-BdnUsdx6.js",revision:null},{url:"assets/kdl-DV7GczEv.js",revision:null},{url:"assets/kanagawa-wave-DWedfzmr.js",revision:null},{url:"assets/kanagawa-lotus-CfQXZHmo.js",revision:null},{url:"assets/kanagawa-dragon-CkXjmgJE.js",revision:null},{url:"assets/just-CUsbIsdP.js",revision:null},{url:"assets/julia-D7OTSIA_.js",revision:null},{url:"assets/jsx-g9-lgVsj.js",revision:null},{url:"assets/jssm-C2t-YnRu.js",revision:null},{url:"assets/jsonnet-DFQXde-d.js",revision:null},{url:"assets/jsonl-DcaNXYhu.js",revision:null},{url:"assets/jsonc-Des-eS-w.js",revision:null},{url:"assets/json5-C9tS-k6U.js",revision:null},{url:"assets/json-Cp-IABpG.js",revision:null},{url:"assets/jison-wvAkD_A8.js",revision:null},{url:"assets/jinja-f2NsQr07.js",revision:null},{url:"assets/javascript-wDzz0qaB.js",revision:null},{url:"assets/java-CylS5w8V.js",revision:null},{url:"assets/ini-BEwlwnbL.js",revision:null},{url:"assets/index-CtG8oo36.js",revision:null},{url:"assets/index-BLOGpuPE.css",revision:null},{url:"assets/imba-DGztddWO.js",revision:null},{url:"assets/hy-DFXneXwc.js",revision:null},{url:"assets/hxml-Bvhsp5Yf.js",revision:null},{url:"assets/hurl-irOxFIW8.js",revision:null},{url:"assets/http-jrhK8wxY.js",revision:null},{url:"assets/html2canvas.esm-QH1iLAAe.js",revision:null},{url:"assets/html-pp8916En.js",revision:null},{url:"assets/html-derivative-DlHx6ybY.js",revision:null},{url:"assets/houston-DnULxvSX.js",revision:null},{url:"assets/horizon-bright-CUuTKBJd.js",revision:null},{url:"assets/horizon-BUw7H-hv.js",revision:null},{url:"assets/hlsl-D3lLCCz7.js",revision:null},{url:"assets/hjson-D5-asLiD.js",revision:null},{url:"assets/hcl-BWvSN4gD.js",revision:null},{url:"assets/haxe-CzTSHFRz.js",revision:null},{url:"assets/haskell-Df6bDoY_.js",revision:null},{url:"assets/handlebars-BpdQsYii.js",revision:null},{url:"assets/haml-D5jkg6IW.js",revision:null},{url:"assets/hack-DbPARsA_.js",revision:null},{url:"assets/gruvbox-light-soft-hJgmCMqR.js",revision:null},{url:"assets/gruvbox-light-medium-DRw_LuNl.js",revision:null},{url:"assets/gruvbox-light-hard-CH1njM8p.js",revision:null},{url:"assets/gruvbox-dark-soft-CVdnzihN.js",revision:null},{url:"assets/gruvbox-dark-medium-GsRaNv29.js",revision:null},{url:"assets/gruvbox-dark-hard-CFHQjOhq.js",revision:null},{url:"assets/groovy-gcz8RCvz.js",revision:null},{url:"assets/graphql-ChdNCCLP.js",revision:null},{url:"assets/go-C27-OAKa.js",revision:null},{url:"assets/gnuplot-DdkO51Og.js",revision:null},{url:"assets/gn-n2N0HUVH.js",revision:null},{url:"assets/glsl-DplSGwfg.js",revision:null},{url:"assets/glimmer-ts-BfAWNZQY.js",revision:null},{url:"assets/glimmer-js-ByusRIyA.js",revision:null},{url:"assets/gleam-BspZqrRM.js",revision:null},{url:"assets/github-light-high-contrast-BfjtVDDH.js",revision:null},{url:"assets/github-light-default-D7oLnXFd.js",revision:null},{url:"assets/github-light-DAi9KRSo.js",revision:null},{url:"assets/github-dark-high-contrast-E3gJ1_iC.js",revision:null},{url:"assets/github-dark-dimmed-DH5Ifo-i.js",revision:null},{url:"assets/github-dark-default-Cuk6v7N8.js",revision:null},{url:"assets/github-dark-DHJKELXO.js",revision:null},{url:"assets/git-rebase-r7XF79zn.js",revision:null},{url:"assets/git-commit-F4YmCXRG.js",revision:null},{url:"assets/gherkin-DyxjwDmM.js",revision:null},{url:"assets/genie-D0YGMca9.js",revision:null},{url:"assets/gdshader-DkwncUOv.js",revision:null},{url:"assets/gdscript-C5YyOfLZ.js",revision:null},{url:"assets/gdresource-BOOCDP_w.js",revision:null},{url:"assets/fsharp-CXgrBDvD.js",revision:null},{url:"assets/fortran-free-form-BxgE0vQu.js",revision:null},{url:"assets/fortran-fixed-form-CkoXwp7k.js",revision:null},{url:"assets/fluent-C4IJs8-o.js",revision:null},{url:"assets/fish-BvzEVeQv.js",revision:null},{url:"assets/fennel-BYunw83y.js",revision:null},{url:"assets/everforest-light-C8M2exoo.js",revision:null},{url:"assets/everforest-dark-BgDCqdQA.js",revision:null},{url:"assets/erlang-DsQrWhSR.js",revision:null},{url:"assets/erb-Dm6A9KJ5.js",revision:null},{url:"assets/emacs-lisp-CXvaQtF9.js",revision:null},{url:"assets/elm-DbKCFpqz.js",revision:null},{url:"assets/elixir-CkH2-t6x.js",revision:null},{url:"assets/edge-FbVlp4U3.js",revision:null},{url:"assets/dream-maker-BtqSS_iP.js",revision:null},{url:"assets/dracula-soft-BXkSAIEj.js",revision:null},{url:"assets/dracula-BzJJZx-M.js",revision:null},{url:"assets/dotenv-Da5cRb03.js",revision:null},{url:"assets/docker-BcOcwvcX.js",revision:null},{url:"assets/diff-D97Zzqfu.js",revision:null},{url:"assets/desktop-BmXAJ9_W.js",revision:null},{url:"assets/dax-CEL-wOlO.js",revision:null},{url:"assets/dart-bE4Kk8sk.js",revision:null},{url:"assets/dark-plus-C3mMm8J8.js",revision:null},{url:"assets/d-85-TOEBH.js",revision:null},{url:"assets/cypher-COkxafJQ.js",revision:null},{url:"assets/cue-D82EKSYY.js",revision:null},{url:"assets/csv-fuZLfV_i.js",revision:null},{url:"assets/css-CLj8gQPS.js",revision:null},{url:"assets/csharp-DSvCPggb.js",revision:null},{url:"assets/crystal-DGywbUpC.js",revision:null},{url:"assets/cpp-UfJy6YNI.js",revision:null},{url:"assets/coq-DkFqJrB1.js",revision:null},{url:"assets/common-lisp-Cg-RD9OK.js",revision:null},{url:"assets/coffee-Ch7k5sss.js",revision:null},{url:"assets/codeql-DsOJ9woJ.js",revision:null},{url:"assets/codeowners-Bp6g37R7.js",revision:null},{url:"assets/cobol-nBiQ_Alo.js",revision:null},{url:"assets/cmake-D1j8_8rp.js",revision:null},{url:"assets/clojure-P80f7IUj.js",revision:null},{url:"assets/clarity-D53aC0YG.js",revision:null},{url:"assets/catppuccin-mocha-D87Tk5Gz.js",revision:null},{url:"assets/catppuccin-macchiato-DQyhUUbL.js",revision:null},{url:"assets/catppuccin-latte-C9dUb6Cb.js",revision:null},{url:"assets/catppuccin-frappe-DFWUc33u.js",revision:null},{url:"assets/cairo-KRGpt6FW.js",revision:null},{url:"assets/cadence-Bv_4Rxtq.js",revision:null},{url:"assets/c3-MRO5bC_T.js",revision:null},{url:"assets/c-BIGW1oBm.js",revision:null},{url:"assets/bsl-BO_Y6i37.js",revision:null},{url:"assets/blade-2xfisSek.js",revision:null},{url:"assets/bird2-BIv1doCn.js",revision:null},{url:"assets/bicep-Bmn6On1c.js",revision:null},{url:"assets/bibtex-CHM0blh-.js",revision:null},{url:"assets/berry-uYugtg8r.js",revision:null},{url:"assets/beancount-k_qm7-4y.js",revision:null},{url:"assets/bat-BkioyH1T.js",revision:null},{url:"assets/ballerina-BFfxhgS-.js",revision:null},{url:"assets/ayu-mirage-32ctXXKs.js",revision:null},{url:"assets/ayu-light-BA47KaF1.js",revision:null},{url:"assets/ayu-dark-DYE7WIF3.js",revision:null},{url:"assets/awk-DMzUqQB5.js",revision:null},{url:"assets/aurora-x-D-2ljcwZ.js",revision:null},{url:"assets/astro-HNnZUWAn.js",revision:null},{url:"assets/asm-D_Q5rh1f.js",revision:null},{url:"assets/asciidoc-Ve4PFQV2.js",revision:null},{url:"assets/ara-BRHolxvo.js",revision:null},{url:"assets/applescript-Co6uUVPk.js",revision:null},{url:"assets/apl-CORt7UWP.js",revision:null},{url:"assets/apex-Dqspr-GT.js",revision:null},{url:"assets/apache-Pmp26Uib.js",revision:null},{url:"assets/angular-ts-BrjP3tb8.js",revision:null},{url:"assets/angular-html-DA-rfuFy.js",revision:null},{url:"assets/andromeeda-C4gqWexZ.js",revision:null},{url:"assets/ada-bCR0ucgS.js",revision:null},{url:"assets/actionscript-3-CoDkCxhg.js",revision:null},{url:"assets/abap-BdImnpbu.js",revision:null},{url:"assets/openfox-192.png",revision:"79feeb86d692c274854e37959a7dae67"},{url:"assets/openfox-512.png",revision:"fee24b214220594b4f595a467e73036e"},{url:"manifest.webmanifest",revision:"c25f372c782e623ab1e768a8dfe350ca"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("index.html")))});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openfox",
3
- "version": "2.0.24",
3
+ "version": "2.0.26",
4
4
  "description": "Local-LLM-first agentic coding assistant",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,505 +0,0 @@
1
- // src/server/llm/profiles.ts
2
- var DEFAULT_PROFILE = {
3
- name: "default",
4
- temperature: 0.7,
5
- topP: 0.9,
6
- defaultMaxTokens: 4096,
7
- supportsVision: true
8
- };
9
- var MOCK_PROFILE = {
10
- name: "mock",
11
- temperature: 0.7,
12
- topP: 0.9,
13
- defaultMaxTokens: 1024,
14
- supportsVision: false
15
- };
16
- var MODEL_PROFILES = [
17
- {
18
- pattern: "mistral",
19
- profile: {
20
- name: "Mistral",
21
- temperature: 0.7,
22
- topP: 0.9,
23
- defaultMaxTokens: 16384,
24
- supportsVision: false
25
- }
26
- },
27
- {
28
- pattern: "qwen3-coder-next",
29
- profile: {
30
- name: "Qwen3-Coder-Next",
31
- // Per Qwen docs: "temperature=1.0, top_p=0.95, top_k=40"
32
- temperature: 1,
33
- topP: 0.95,
34
- topK: 40,
35
- // "This model supports only non-thinking mode and does not generate <think></think> blocks"
36
- defaultMaxTokens: 16384,
37
- supportsVision: false
38
- }
39
- },
40
- {
41
- pattern: "qwen3",
42
- profile: {
43
- name: "Qwen3",
44
- temperature: 0.7,
45
- topP: 0.9,
46
- defaultMaxTokens: 16384,
47
- supportsVision: false
48
- }
49
- },
50
- {
51
- pattern: "qwen3-vl",
52
- profile: {
53
- name: "Qwen3-VL",
54
- temperature: 0.7,
55
- topP: 0.9,
56
- defaultMaxTokens: 16384,
57
- supportsVision: true
58
- }
59
- },
60
- {
61
- pattern: "deepseek",
62
- profile: {
63
- name: "DeepSeek",
64
- temperature: 0.6,
65
- topP: 0.95,
66
- defaultMaxTokens: 16384,
67
- supportsVision: false
68
- }
69
- },
70
- {
71
- pattern: "minimax-m2.5",
72
- profile: {
73
- name: "MiniMax-M2.5",
74
- temperature: 1,
75
- topP: 0.95,
76
- topK: 40,
77
- defaultMaxTokens: 16384,
78
- supportsVision: false
79
- }
80
- },
81
- {
82
- pattern: "minimax-m2.7",
83
- profile: {
84
- name: "MiniMax-M2.7",
85
- temperature: 1,
86
- topP: 0.95,
87
- topK: 40,
88
- defaultMaxTokens: 16384,
89
- supportsVision: false
90
- }
91
- },
92
- {
93
- pattern: "minimax",
94
- profile: {
95
- name: "MiniMax",
96
- temperature: 1,
97
- topP: 0.95,
98
- topK: 40,
99
- defaultMaxTokens: 16384,
100
- supportsVision: false
101
- }
102
- },
103
- {
104
- pattern: "minimax-m3",
105
- profile: {
106
- name: "MiniMax-M3",
107
- temperature: 1,
108
- topP: 0.95,
109
- topK: 40,
110
- defaultMaxTokens: 16384,
111
- supportsVision: true
112
- }
113
- },
114
- {
115
- pattern: "llava",
116
- profile: {
117
- name: "LLaVA",
118
- temperature: 0.7,
119
- topP: 0.9,
120
- defaultMaxTokens: 16384,
121
- supportsVision: true
122
- }
123
- },
124
- {
125
- pattern: "llama",
126
- profile: {
127
- name: "Llama",
128
- temperature: 0.7,
129
- topP: 0.9,
130
- defaultMaxTokens: 16384,
131
- supportsVision: false
132
- }
133
- },
134
- {
135
- pattern: "claude",
136
- profile: {
137
- name: "Claude",
138
- temperature: 0.7,
139
- topP: 0.9,
140
- defaultMaxTokens: 16384,
141
- supportsVision: false
142
- }
143
- },
144
- {
145
- pattern: "gemma-4",
146
- profile: {
147
- name: "Gemma 4",
148
- temperature: 0.7,
149
- topP: 0.9,
150
- defaultMaxTokens: 16384,
151
- supportsVision: true
152
- }
153
- }
154
- ];
155
- function getModelProfile(modelName) {
156
- const lowerName = modelName.toLowerCase();
157
- if (lowerName.includes("mock")) {
158
- return MOCK_PROFILE;
159
- }
160
- for (const { pattern, profile } of MODEL_PROFILES) {
161
- if (lowerName.includes(pattern.toLowerCase())) {
162
- return profile;
163
- }
164
- }
165
- return DEFAULT_PROFILE;
166
- }
167
- function modelSupportsVision(modelName) {
168
- return getModelProfile(modelName).supportsVision;
169
- }
170
-
171
- // src/server/llm/backend.ts
172
- var BACKEND_CAPABILITIES = {
173
- vllm: {
174
- supportsChatTemplateKwargs: true,
175
- supportsTopK: true
176
- },
177
- sglang: {
178
- supportsChatTemplateKwargs: true,
179
- supportsTopK: true
180
- },
181
- ollama: {
182
- supportsChatTemplateKwargs: false,
183
- supportsTopK: false
184
- },
185
- llamacpp: {
186
- supportsChatTemplateKwargs: false,
187
- supportsTopK: true
188
- },
189
- "opencode-go": {
190
- supportsChatTemplateKwargs: false,
191
- supportsTopK: true
192
- },
193
- unknown: {
194
- supportsChatTemplateKwargs: true,
195
- supportsTopK: true
196
- }
197
- };
198
- function getBackendCapabilities(backend) {
199
- return BACKEND_CAPABILITIES[backend];
200
- }
201
- function getBackendDisplayName(backend) {
202
- switch (backend) {
203
- case "vllm":
204
- return "vLLM";
205
- case "sglang":
206
- return "SGLang";
207
- case "ollama":
208
- return "Ollama";
209
- case "llamacpp":
210
- return "llama.cpp";
211
- case "opencode-go":
212
- return "OpenCode Go";
213
- case "unknown":
214
- return "Other";
215
- }
216
- }
217
-
218
- // src/server/llm/client-pure.ts
219
- function buildModelParams(params) {
220
- return {
221
- ...params.temperature !== void 0 && { temperature: params.temperature },
222
- ...params.topP !== void 0 && { topP: params.topP },
223
- ...params.topK !== void 0 && { topK: params.topK },
224
- ...params.maxTokens !== void 0 && { maxTokens: params.maxTokens }
225
- };
226
- }
227
- function buildAttachmentContent(msgContent, attachments, modelSupportsVision2) {
228
- const content = [];
229
- if (msgContent?.trim()) {
230
- content.push({ type: "text", text: msgContent });
231
- }
232
- for (const attachment of attachments) {
233
- content.push(convertAttachmentSync(attachment, modelSupportsVision2));
234
- }
235
- return content;
236
- }
237
- function convertToolCalls(toolCalls) {
238
- return toolCalls.map((toolCall) => ({
239
- id: toolCall.id,
240
- type: "function",
241
- function: {
242
- name: toolCall.name,
243
- arguments: JSON.stringify(toolCall.arguments)
244
- }
245
- }));
246
- }
247
- function getThinking(msg, override) {
248
- if (override) {
249
- const val = msg[override];
250
- if (val) return val;
251
- }
252
- return msg["reasoning"] ?? msg["reasoning_content"] ?? msg["thinking"];
253
- }
254
- function buildAssistantMessage(msg, thinkingField) {
255
- const result = {
256
- role: "assistant",
257
- content: msg.content || null
258
- };
259
- if (msg.toolCalls?.length) {
260
- result["tool_calls"] = convertToolCalls(msg.toolCalls);
261
- }
262
- if (msg.thinkingContent) {
263
- result[thinkingField ?? "reasoning"] = msg.thinkingContent;
264
- }
265
- return result;
266
- }
267
- function convertAttachmentSync(attachment, modelSupportsVision2) {
268
- if (modelSupportsVision2) {
269
- return {
270
- type: "image_url",
271
- image_url: { url: attachment.data }
272
- };
273
- }
274
- return {
275
- type: "text",
276
- text: `[Image: ${attachment.filename || "image"}] (vision not supported, cannot describe)`
277
- };
278
- }
279
- function convertMessages(messages, modelSupportsVision2, thinkingField) {
280
- const filtered = messages.filter((msg) => {
281
- return !(msg.role === "assistant" && !msg.content?.trim() && (!msg.toolCalls || msg.toolCalls.length === 0));
282
- });
283
- return filtered.map((msg) => {
284
- if (msg.role === "tool") {
285
- if (msg.attachments && msg.attachments.length > 0) {
286
- const content = buildAttachmentContent(msg.content, msg.attachments, modelSupportsVision2);
287
- return {
288
- role: "tool",
289
- content,
290
- tool_call_id: msg.toolCallId
291
- };
292
- }
293
- return {
294
- role: "tool",
295
- content: msg.content,
296
- tool_call_id: msg.toolCallId
297
- };
298
- }
299
- if (msg.role === "assistant") {
300
- return buildAssistantMessage(msg, thinkingField);
301
- }
302
- if (msg.role === "user" && msg.attachments && msg.attachments.length > 0) {
303
- const content = buildAttachmentContent(msg.content, msg.attachments, modelSupportsVision2);
304
- return {
305
- role: "user",
306
- content
307
- };
308
- }
309
- return {
310
- role: msg.role,
311
- content: msg.content
312
- };
313
- });
314
- }
315
- function convertTools(tools) {
316
- return tools.map((tool) => ({
317
- type: "function",
318
- function: {
319
- name: tool.function.name,
320
- description: tool.function.description,
321
- parameters: tool.function.parameters
322
- }
323
- }));
324
- }
325
- async function buildChatCompletionCreateParams(model, request, profile, capabilities, reasoningEffort, isStreaming, thinkingField) {
326
- const userVisionOverride = request.modelSettings?.supportsVision;
327
- const modelSupportsVision2 = userVisionOverride ?? profile.supportsVision ?? false;
328
- const convertedMessages = convertMessages(request.messages, modelSupportsVision2, thinkingField);
329
- const temperature = request.modelSettings?.temperature ?? request.temperature ?? profile.temperature;
330
- const maxTokens = request.modelSettings?.maxTokens ?? request.maxTokens ?? profile.defaultMaxTokens;
331
- const topP = request.modelSettings?.topP ?? profile.topP;
332
- const topK = capabilities.supportsTopK ? profile.topK : void 0;
333
- const params = {
334
- model,
335
- messages: convertedMessages,
336
- ...request.tools?.length ? { tools: convertTools(request.tools) } : {},
337
- ...request.toolChoice ? { tool_choice: request.toolChoice } : {},
338
- temperature,
339
- max_tokens: maxTokens,
340
- top_p: topP,
341
- stream: isStreaming,
342
- ...isStreaming ? { stream_options: { include_usage: true } } : {}
343
- };
344
- if (topK !== void 0) {
345
- ;
346
- params["top_k"] = topK;
347
- }
348
- const resolvedEffort = reasoningEffort ?? request.reasoningEffort;
349
- const queryParams = request.modelSettings?.queryParams;
350
- const hasQueryParams = queryParams && Object.keys(queryParams).length > 0;
351
- if (resolvedEffort && !hasQueryParams) {
352
- ;
353
- params["reasoning_effort"] = resolvedEffort;
354
- const chatTemplateKwargs = request.modelSettings?.chatTemplateKwargs;
355
- if (chatTemplateKwargs) {
356
- ;
357
- params["chat_template_kwargs"] = chatTemplateKwargs;
358
- } else if (capabilities.supportsChatTemplateKwargs) {
359
- ;
360
- params["chat_template_kwargs"] = {
361
- enable_thinking: resolvedEffort !== "none"
362
- };
363
- }
364
- }
365
- if (hasQueryParams) {
366
- Object.assign(params, queryParams);
367
- }
368
- const modelParams = buildModelParams({ temperature, topP, topK, maxTokens });
369
- return { params, modelParams };
370
- }
371
- async function buildCreateParamsFromInput(input, isStreaming) {
372
- const { model, request, profile, capabilities, reasoningEffort, thinkingField } = input;
373
- return buildChatCompletionCreateParams(
374
- model,
375
- request,
376
- profile,
377
- capabilities,
378
- reasoningEffort,
379
- isStreaming,
380
- thinkingField
381
- );
382
- }
383
- var buildNonStreamingCreateParams = (input) => buildCreateParamsFromInput(input, false);
384
- var buildStreamingCreateParams = (input) => buildCreateParamsFromInput(input, true);
385
- function mapFinishReason(reason) {
386
- switch (reason) {
387
- case "stop":
388
- return "stop";
389
- case "tool_calls":
390
- return "tool_calls";
391
- case "length":
392
- return "length";
393
- case "content_filter":
394
- return "content_filter";
395
- default:
396
- return "stop";
397
- }
398
- }
399
-
400
- // src/server/llm/streaming.ts
401
- async function* streamWithSegments(client, request) {
402
- let content = "";
403
- let thinkingContent = "";
404
- let response = null;
405
- const segments = [];
406
- let currentTextSegment = "";
407
- let currentThinkingSegment = "";
408
- const startTime = performance.now();
409
- let firstTokenTime = null;
410
- const flushText = () => {
411
- if (currentTextSegment.trim()) {
412
- segments.push({ type: "text", content: currentTextSegment });
413
- }
414
- currentTextSegment = "";
415
- };
416
- const flushThinking = () => {
417
- if (currentThinkingSegment.trim()) {
418
- segments.push({ type: "thinking", content: currentThinkingSegment });
419
- }
420
- currentThinkingSegment = "";
421
- };
422
- try {
423
- for await (const event of client.stream(request)) {
424
- switch (event.type) {
425
- case "text_delta":
426
- if (firstTokenTime === null) {
427
- firstTokenTime = performance.now();
428
- }
429
- flushThinking();
430
- content += event.content;
431
- currentTextSegment += event.content;
432
- yield { type: "text_delta", content: event.content };
433
- break;
434
- case "thinking_delta":
435
- if (firstTokenTime === null) {
436
- firstTokenTime = performance.now();
437
- }
438
- flushText();
439
- thinkingContent += event.content;
440
- currentThinkingSegment += event.content;
441
- yield { type: "thinking_delta", content: event.content };
442
- break;
443
- case "tool_call_delta":
444
- yield {
445
- type: "tool_call_delta",
446
- index: event.index,
447
- ...event.id !== void 0 ? { id: event.id } : {},
448
- ...event.name !== void 0 ? { name: event.name } : {},
449
- ...event.arguments !== void 0 ? { arguments: event.arguments } : {}
450
- };
451
- break;
452
- case "done":
453
- flushThinking();
454
- flushText();
455
- response = event.response;
456
- yield { type: "done", response: event.response };
457
- break;
458
- case "error":
459
- yield { type: "error", error: event.error };
460
- return null;
461
- }
462
- }
463
- } catch (error) {
464
- yield { type: "error", error: error instanceof Error ? error.message : "Unknown error" };
465
- return null;
466
- }
467
- if (!response) {
468
- return null;
469
- }
470
- const toolCalls = response.toolCalls ?? [];
471
- for (const tc of toolCalls) {
472
- segments.push({ type: "tool_call", toolCallId: tc.id });
473
- }
474
- const endTime = performance.now();
475
- const ttft = ((firstTokenTime ?? endTime) - startTime) / 1e3;
476
- const completionTime = (endTime - (firstTokenTime ?? startTime)) / 1e3;
477
- const { promptTokens, completionTokens } = response.usage;
478
- return {
479
- content,
480
- thinkingContent,
481
- toolCalls,
482
- response,
483
- segments,
484
- timing: {
485
- ttft,
486
- completionTime,
487
- tps: completionTime > 0 ? completionTokens / completionTime : 0,
488
- prefillTps: ttft > 0 ? promptTokens / ttft : 0
489
- }
490
- };
491
- }
492
-
493
- export {
494
- getModelProfile,
495
- modelSupportsVision,
496
- getBackendCapabilities,
497
- getBackendDisplayName,
498
- buildModelParams,
499
- getThinking,
500
- buildNonStreamingCreateParams,
501
- buildStreamingCreateParams,
502
- mapFinishReason,
503
- streamWithSegments
504
- };
505
- //# sourceMappingURL=chunk-UUFEE7VR.js.map
@@ -1,16 +0,0 @@
1
- import {
2
- createProviderManager,
3
- fetchAvailableModelsFromBackend,
4
- fetchModelsWithContext,
5
- parseDefaultModelSelection
6
- } from "./chunk-YVF3BLQS.js";
7
- import "./chunk-XJ4SUDL7.js";
8
- import "./chunk-UUFEE7VR.js";
9
- import "./chunk-K44MW7JJ.js";
10
- export {
11
- createProviderManager,
12
- fetchAvailableModelsFromBackend,
13
- fetchModelsWithContext,
14
- parseDefaultModelSelection
15
- };
16
- //# sourceMappingURL=provider-manager-DNBMBP4D.js.map