llms-py 3.0.4__tar.gz → 3.0.5__tar.gz
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.
- {llms_py-3.0.4/llms_py.egg-info → llms_py-3.0.5}/PKG-INFO +1 -1
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/db.py +1 -1
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/main.py +1 -1
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/ui/ai.mjs +1 -1
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/ui/modules/chat/index.mjs +58 -0
- {llms_py-3.0.4 → llms_py-3.0.5/llms_py.egg-info}/PKG-INFO +1 -1
- {llms_py-3.0.4 → llms_py-3.0.5}/pyproject.toml +1 -1
- {llms_py-3.0.4 → llms_py-3.0.5}/setup.py +1 -1
- {llms_py-3.0.4 → llms_py-3.0.5}/LICENSE +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/MANIFEST.in +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/README.md +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/__init__.py +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/__main__.py +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/analytics/ui/index.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/app/README.md +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/app/__init__.py +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/app/db.py +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/app/ui/Recents.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/app/ui/index.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/app/ui/threadStore.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/core_tools/CALCULATOR.md +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/core_tools/__init__.py +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/core_tools/ui/codemirror/addon/edit/closebrackets.js +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/core_tools/ui/codemirror/addon/edit/closetag.js +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/core_tools/ui/codemirror/addon/edit/continuelist.js +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/core_tools/ui/codemirror/addon/edit/matchbrackets.js +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/core_tools/ui/codemirror/addon/edit/matchtags.js +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/core_tools/ui/codemirror/addon/edit/trailingspace.js +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/core_tools/ui/codemirror/addon/selection/active-line.js +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/core_tools/ui/codemirror/addon/selection/mark-selection.js +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/core_tools/ui/codemirror/addon/selection/selection-pointer.js +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/core_tools/ui/codemirror/codemirror.css +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/core_tools/ui/codemirror/codemirror.js +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/core_tools/ui/codemirror/doc/docs.css +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/core_tools/ui/codemirror/doc/source_sans.woff +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/core_tools/ui/codemirror/mode/clike/clike.js +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/core_tools/ui/codemirror/mode/javascript/index.html +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/core_tools/ui/codemirror/mode/javascript/javascript.js +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/core_tools/ui/codemirror/mode/javascript/typescript.html +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/core_tools/ui/codemirror/mode/python/python.js +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/core_tools/ui/codemirror/theme/dracula.css +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/core_tools/ui/codemirror/theme/mocha.css +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/core_tools/ui/index.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/gallery/README.md +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/gallery/__init__.py +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/gallery/db.py +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/gallery/ui/index.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/README.md +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/__init__.py +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/README.md +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/contrib/auto-render.js +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/contrib/auto-render.min.js +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/contrib/auto-render.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/contrib/copy-tex.js +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/contrib/copy-tex.min.js +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/contrib/copy-tex.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/contrib/mathtex-script-type.js +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/contrib/mathtex-script-type.min.js +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/contrib/mathtex-script-type.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/contrib/mhchem.js +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/contrib/mhchem.min.js +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/contrib/mhchem.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/contrib/render-a11y-string.js +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/contrib/render-a11y-string.min.js +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/contrib/render-a11y-string.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_AMS-Regular.ttf +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_AMS-Regular.woff +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_AMS-Regular.woff2 +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Bold.woff +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Regular.woff +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Main-Bold.ttf +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Main-Bold.woff +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Main-Bold.woff2 +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Main-BoldItalic.woff +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Main-Italic.ttf +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Main-Italic.woff +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Main-Italic.woff2 +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Main-Regular.ttf +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Main-Regular.woff +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Main-Regular.woff2 +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Math-BoldItalic.woff +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Math-Italic.ttf +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Math-Italic.woff +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Math-Italic.woff2 +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Bold.woff +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Italic.woff +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.woff +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Script-Regular.ttf +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Script-Regular.woff +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Script-Regular.woff2 +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Size1-Regular.ttf +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Size1-Regular.woff +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Size1-Regular.woff2 +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Size2-Regular.ttf +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Size2-Regular.woff +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Size2-Regular.woff2 +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Size3-Regular.ttf +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Size3-Regular.woff +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Size3-Regular.woff2 +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.ttf +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.woff +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.woff2 +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.woff +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/index.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/katex-swap.css +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/katex-swap.min.css +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/katex.css +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/katex.js +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/katex.min.css +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/katex.min.js +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/katex.min.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/katex.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/providers/__init__.py +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/providers/anthropic.py +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/providers/cerebras.py +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/providers/chutes.py +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/providers/google.py +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/providers/nvidia.py +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/providers/openai.py +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/providers/openrouter.py +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/system_prompts/README.md +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/system_prompts/__init__.py +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/system_prompts/ui/index.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/system_prompts/ui/prompts.json +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/tools/__init__.py +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/tools/ui/index.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/index.html +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/llms.json +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/providers-extra.json +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/providers.json +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/ui/App.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/ui/app.css +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/ui/ctx.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/ui/fav.svg +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/ui/index.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/ui/lib/chart.js +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/ui/lib/charts.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/ui/lib/color.js +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/ui/lib/highlight.min.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/ui/lib/idb.min.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/ui/lib/marked.min.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/ui/lib/servicestack-client.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/ui/lib/servicestack-vue.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/ui/lib/vue-router.min.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/ui/lib/vue.min.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/ui/lib/vue.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/ui/markdown.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/ui/modules/chat/ChatBody.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/ui/modules/chat/SettingsDialog.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/ui/modules/icons.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/ui/modules/layout.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/ui/modules/model-selector.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/ui/tailwind.input.css +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/ui/typography.css +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms/ui/utils.mjs +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms_py.egg-info/SOURCES.txt +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms_py.egg-info/dependency_links.txt +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms_py.egg-info/entry_points.txt +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms_py.egg-info/not-zip-safe +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms_py.egg-info/requires.txt +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/llms_py.egg-info/top_level.txt +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/requirements.txt +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/setup.cfg +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/tests/test_async.py +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/tests/test_config.py +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/tests/test_extensions.py +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/tests/test_gemini_upload.py +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/tests/test_integration.py +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/tests/test_provider_checks.py +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/tests/test_provider_config.py +0 -0
- {llms_py-3.0.4 → llms_py-3.0.5}/tests/test_utils.py +0 -0
|
@@ -115,6 +115,7 @@ export function addCopyButtons() {
|
|
|
115
115
|
|
|
116
116
|
export function useChatPrompt(ctx) {
|
|
117
117
|
const messageText = ref('')
|
|
118
|
+
const promptHistory = ref([])
|
|
118
119
|
const attachedFiles = ref([])
|
|
119
120
|
const hasImage = () => attachedFiles.value.some(f => imageExts.includes(lastRightPart(f.name, '.')))
|
|
120
121
|
const hasAudio = () => attachedFiles.value.some(f => audioExts.includes(lastRightPart(f.name, '.')))
|
|
@@ -363,6 +364,7 @@ export function useChatPrompt(ctx) {
|
|
|
363
364
|
createContent,
|
|
364
365
|
createRequest,
|
|
365
366
|
applySettings,
|
|
367
|
+
promptHistory,
|
|
366
368
|
messageText,
|
|
367
369
|
attachedFiles,
|
|
368
370
|
editingMessage,
|
|
@@ -420,6 +422,7 @@ const ChatPrompt = {
|
|
|
420
422
|
<textarea
|
|
421
423
|
ref="refMessage"
|
|
422
424
|
v-model="messageText"
|
|
425
|
+
@keydown="onKeyDown"
|
|
423
426
|
@keydown.enter.exact.prevent="sendMessage"
|
|
424
427
|
@keydown.enter.shift.exact="addNewLine"
|
|
425
428
|
@paste="onPaste"
|
|
@@ -491,6 +494,7 @@ const ChatPrompt = {
|
|
|
491
494
|
const config = ctx.state.config
|
|
492
495
|
const {
|
|
493
496
|
messageText,
|
|
497
|
+
promptHistory,
|
|
494
498
|
hasImage,
|
|
495
499
|
hasAudio,
|
|
496
500
|
hasFile,
|
|
@@ -500,6 +504,8 @@ const ChatPrompt = {
|
|
|
500
504
|
const fileInput = ref(null)
|
|
501
505
|
const refMessage = ref(null)
|
|
502
506
|
const showSettings = ref(false)
|
|
507
|
+
const historyIndex = ref(-1)
|
|
508
|
+
const isNavigatingHistory = ref(false)
|
|
503
509
|
|
|
504
510
|
// File attachments (+) handlers
|
|
505
511
|
const triggerFilePicker = () => {
|
|
@@ -639,6 +645,14 @@ const ChatPrompt = {
|
|
|
639
645
|
// 1. Construct Structured Content (Text + Attachments)
|
|
640
646
|
let text = messageText.value.trim()
|
|
641
647
|
|
|
648
|
+
if (text) {
|
|
649
|
+
const idx = promptHistory.value.indexOf(text)
|
|
650
|
+
if (idx !== -1) {
|
|
651
|
+
promptHistory.value.splice(idx, 1)
|
|
652
|
+
}
|
|
653
|
+
promptHistory.value.push(text)
|
|
654
|
+
}
|
|
655
|
+
|
|
642
656
|
messageText.value = ''
|
|
643
657
|
let content = ctx.chat.createContent({ text, files: ctx.chat.attachedFiles.value })
|
|
644
658
|
|
|
@@ -742,6 +756,49 @@ const ChatPrompt = {
|
|
|
742
756
|
//messageText.value += '\n'
|
|
743
757
|
}
|
|
744
758
|
|
|
759
|
+
const onKeyDown = (e) => {
|
|
760
|
+
if (e.key === 'ArrowUp') {
|
|
761
|
+
if (refMessage.value.selectionStart === 0 && refMessage.value.selectionEnd === 0) {
|
|
762
|
+
if (promptHistory.value.length > 0) {
|
|
763
|
+
e.preventDefault()
|
|
764
|
+
if (historyIndex.value === -1) {
|
|
765
|
+
historyIndex.value = promptHistory.value.length - 1
|
|
766
|
+
} else {
|
|
767
|
+
historyIndex.value = Math.max(0, historyIndex.value - 1)
|
|
768
|
+
}
|
|
769
|
+
isNavigatingHistory.value = true
|
|
770
|
+
messageText.value = promptHistory.value[historyIndex.value]
|
|
771
|
+
nextTick(() => {
|
|
772
|
+
refMessage.value.setSelectionRange(0, 0)
|
|
773
|
+
})
|
|
774
|
+
}
|
|
775
|
+
}
|
|
776
|
+
} else if (e.key === 'ArrowDown') {
|
|
777
|
+
if (historyIndex.value !== -1) {
|
|
778
|
+
e.preventDefault()
|
|
779
|
+
if (historyIndex.value < promptHistory.value.length - 1) {
|
|
780
|
+
historyIndex.value++
|
|
781
|
+
isNavigatingHistory.value = true
|
|
782
|
+
messageText.value = promptHistory.value[historyIndex.value]
|
|
783
|
+
} else {
|
|
784
|
+
historyIndex.value = -1
|
|
785
|
+
isNavigatingHistory.value = true
|
|
786
|
+
messageText.value = ''
|
|
787
|
+
}
|
|
788
|
+
nextTick(() => {
|
|
789
|
+
refMessage.value.setSelectionRange(0, 0)
|
|
790
|
+
})
|
|
791
|
+
}
|
|
792
|
+
}
|
|
793
|
+
}
|
|
794
|
+
|
|
795
|
+
watch(messageText, (newValue) => {
|
|
796
|
+
if (!isNavigatingHistory.value) {
|
|
797
|
+
historyIndex.value = -1
|
|
798
|
+
}
|
|
799
|
+
isNavigatingHistory.value = false
|
|
800
|
+
})
|
|
801
|
+
|
|
745
802
|
watch(() => ctx.state.selectedAspectRatio, newValue => {
|
|
746
803
|
ctx.setPrefs({ aspectRatio: newValue })
|
|
747
804
|
})
|
|
@@ -769,6 +826,7 @@ const ChatPrompt = {
|
|
|
769
826
|
removeAttachment,
|
|
770
827
|
sendMessage,
|
|
771
828
|
addNewLine,
|
|
829
|
+
onKeyDown,
|
|
772
830
|
imageAspectRatios,
|
|
773
831
|
}
|
|
774
832
|
}
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "llms-py"
|
|
7
|
-
version = "3.0.
|
|
7
|
+
version = "3.0.5"
|
|
8
8
|
description = "A lightweight CLI tool and OpenAI-compatible server for querying multiple Large Language Model (LLM) providers"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "BSD-3-Clause"
|
|
@@ -15,7 +15,7 @@ with open(os.path.join(this_directory, "requirements.txt"), encoding="utf-8") as
|
|
|
15
15
|
|
|
16
16
|
setup(
|
|
17
17
|
name="llms-py",
|
|
18
|
-
version="3.0.
|
|
18
|
+
version="3.0.5",
|
|
19
19
|
author="ServiceStack",
|
|
20
20
|
author_email="team@servicestack.net",
|
|
21
21
|
description="A lightweight CLI tool and OpenAI-compatible server for querying multiple Large Language Model (LLM) providers",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/core_tools/ui/codemirror/addon/edit/closebrackets.js
RENAMED
|
File without changes
|
{llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/core_tools/ui/codemirror/addon/edit/closetag.js
RENAMED
|
File without changes
|
{llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/core_tools/ui/codemirror/addon/edit/continuelist.js
RENAMED
|
File without changes
|
{llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/core_tools/ui/codemirror/addon/edit/matchbrackets.js
RENAMED
|
File without changes
|
{llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/core_tools/ui/codemirror/addon/edit/matchtags.js
RENAMED
|
File without changes
|
{llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/core_tools/ui/codemirror/addon/edit/trailingspace.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/core_tools/ui/codemirror/doc/source_sans.woff
RENAMED
|
File without changes
|
{llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/core_tools/ui/codemirror/mode/clike/clike.js
RENAMED
|
File without changes
|
{llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/core_tools/ui/codemirror/mode/javascript/index.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/core_tools/ui/codemirror/mode/python/python.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.ttf
RENAMED
|
File without changes
|
{llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.woff
RENAMED
|
File without changes
|
{llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.woff2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.woff2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.woff
RENAMED
|
File without changes
|
{llms_py-3.0.4 → llms_py-3.0.5}/llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.woff2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|