llms-py 3.0.15__tar.gz → 3.0.17__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.15/llms_py.egg-info → llms_py-3.0.17}/PKG-INFO +1 -1
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/app/__init__.py +0 -1
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/app/db.py +5 -1
- llms_py-3.0.17/llms/extensions/computer/__init__.py +59 -0
- {llms_py-3.0.15/llms/extensions/computer_use → llms_py-3.0.17/llms/extensions/computer}/bash.py +2 -2
- {llms_py-3.0.15/llms/extensions/computer_use → llms_py-3.0.17/llms/extensions/computer}/edit.py +10 -14
- llms_py-3.0.17/llms/extensions/computer/filesystem.py +542 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/core_tools/__init__.py +0 -38
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/providers/cerebras.py +0 -1
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/providers/google.py +57 -30
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/skills/ui/index.mjs +27 -0
- llms_py-3.0.17/llms/extensions/tools/__init__.py +67 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/tools/ui/index.mjs +92 -4
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/main.py +225 -34
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/ui/ai.mjs +1 -1
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/ui/app.css +491 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/ui/modules/chat/ChatBody.mjs +64 -9
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/ui/modules/chat/index.mjs +103 -91
- {llms_py-3.0.15 → llms_py-3.0.17/llms_py.egg-info}/PKG-INFO +1 -1
- {llms_py-3.0.15 → llms_py-3.0.17}/llms_py.egg-info/SOURCES.txt +9 -8
- {llms_py-3.0.15 → llms_py-3.0.17}/pyproject.toml +1 -1
- {llms_py-3.0.15 → llms_py-3.0.17}/setup.py +1 -1
- {llms_py-3.0.15 → llms_py-3.0.17}/tests/test_utils.py +66 -14
- llms_py-3.0.15/llms/extensions/computer_use/__init__.py +0 -27
- llms_py-3.0.15/llms/extensions/tools/__init__.py +0 -144
- {llms_py-3.0.15 → llms_py-3.0.17}/LICENSE +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/MANIFEST.in +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/README.md +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/__init__.py +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/__main__.py +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/db.py +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/analytics/ui/index.mjs +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/app/README.md +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/app/ui/Recents.mjs +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/app/ui/index.mjs +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/app/ui/threadStore.mjs +0 -0
- {llms_py-3.0.15/llms/extensions/computer_use → llms_py-3.0.17/llms/extensions/computer}/README.md +0 -0
- {llms_py-3.0.15/llms/extensions/computer_use → llms_py-3.0.17/llms/extensions/computer}/base.py +0 -0
- {llms_py-3.0.15/llms/extensions/computer_use → llms_py-3.0.17/llms/extensions/computer}/computer.py +0 -0
- {llms_py-3.0.15/llms/extensions/computer_use → llms_py-3.0.17/llms/extensions/computer}/platform.py +0 -0
- {llms_py-3.0.15/llms/extensions/computer_use → llms_py-3.0.17/llms/extensions/computer}/run.py +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/core_tools/CALCULATOR.md +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/addon/edit/closebrackets.js +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/addon/edit/closetag.js +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/addon/edit/continuelist.js +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/addon/edit/matchbrackets.js +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/addon/edit/matchtags.js +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/addon/edit/trailingspace.js +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/addon/selection/active-line.js +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/addon/selection/mark-selection.js +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/addon/selection/selection-pointer.js +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/codemirror.css +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/codemirror.js +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/doc/docs.css +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/doc/source_sans.woff +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/mode/clike/clike.js +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/mode/javascript/index.html +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/mode/javascript/javascript.js +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/mode/javascript/typescript.html +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/mode/python/python.js +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/theme/dracula.css +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/theme/mocha.css +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/core_tools/ui/index.mjs +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/gallery/README.md +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/gallery/__init__.py +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/gallery/db.py +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/gallery/ui/index.mjs +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/README.md +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/__init__.py +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/README.md +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/contrib/auto-render.js +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/contrib/auto-render.min.js +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/contrib/auto-render.mjs +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/contrib/copy-tex.js +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/contrib/copy-tex.min.js +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/contrib/copy-tex.mjs +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/contrib/mathtex-script-type.js +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/contrib/mathtex-script-type.min.js +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/contrib/mathtex-script-type.mjs +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/contrib/mhchem.js +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/contrib/mhchem.min.js +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/contrib/mhchem.mjs +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/contrib/render-a11y-string.js +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/contrib/render-a11y-string.min.js +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/contrib/render-a11y-string.mjs +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_AMS-Regular.ttf +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_AMS-Regular.woff +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_AMS-Regular.woff2 +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Bold.woff +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Regular.woff +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Main-Bold.ttf +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Main-Bold.woff +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Main-Bold.woff2 +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Main-BoldItalic.woff +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Main-Italic.ttf +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Main-Italic.woff +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Main-Italic.woff2 +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Main-Regular.ttf +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Main-Regular.woff +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Main-Regular.woff2 +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Math-BoldItalic.woff +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Math-Italic.ttf +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Math-Italic.woff +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Math-Italic.woff2 +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Bold.woff +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Italic.woff +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.woff +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Script-Regular.ttf +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Script-Regular.woff +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Script-Regular.woff2 +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Size1-Regular.ttf +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Size1-Regular.woff +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Size1-Regular.woff2 +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Size2-Regular.ttf +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Size2-Regular.woff +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Size2-Regular.woff2 +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Size3-Regular.ttf +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Size3-Regular.woff +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Size3-Regular.woff2 +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.ttf +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.woff +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.woff2 +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.woff +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/index.mjs +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/katex-swap.css +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/katex-swap.min.css +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/katex.css +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/katex.js +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/katex.min.css +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/katex.min.js +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/katex.min.mjs +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/katex/ui/katex.mjs +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/providers/__init__.py +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/providers/anthropic.py +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/providers/chutes.py +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/providers/nvidia.py +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/providers/openai.py +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/providers/openrouter.py +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/providers/zai.py +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/skills/LICENSE +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/skills/__init__.py +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/skills/errors.py +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/skills/models.py +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/skills/parser.py +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/skills/ui/skills/create-plan/SKILL.md +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/skills/validator.py +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/system_prompts/README.md +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/system_prompts/__init__.py +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/system_prompts/ui/index.mjs +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/extensions/system_prompts/ui/prompts.json +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/index.html +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/llms.json +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/providers-extra.json +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/providers.json +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/ui/App.mjs +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/ui/ctx.mjs +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/ui/fav.svg +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/ui/index.mjs +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/ui/lib/chart.js +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/ui/lib/charts.mjs +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/ui/lib/color.js +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/ui/lib/highlight.min.mjs +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/ui/lib/idb.min.mjs +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/ui/lib/marked.min.mjs +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/ui/lib/servicestack-client.mjs +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/ui/lib/servicestack-vue.mjs +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/ui/lib/vue-router.min.mjs +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/ui/lib/vue.min.mjs +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/ui/lib/vue.mjs +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/ui/markdown.mjs +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/ui/modules/chat/SettingsDialog.mjs +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/ui/modules/icons.mjs +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/ui/modules/layout.mjs +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/ui/modules/model-selector.mjs +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/ui/tailwind.input.css +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/ui/typography.css +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms/ui/utils.mjs +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms_py.egg-info/dependency_links.txt +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms_py.egg-info/entry_points.txt +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms_py.egg-info/not-zip-safe +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms_py.egg-info/requires.txt +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/llms_py.egg-info/top_level.txt +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/requirements.txt +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/setup.cfg +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/tests/test_async.py +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/tests/test_config.py +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/tests/test_core_tools_direct.py +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/tests/test_extensions.py +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/tests/test_gemini_tool_calling.py +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/tests/test_gemini_upload.py +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/tests/test_integration.py +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/tests/test_interleaved_thinking.py +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/tests/test_provider_checks.py +0 -0
- {llms_py-3.0.15 → llms_py-3.0.17}/tests/test_provider_config.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: llms-py
|
|
3
|
-
Version: 3.0.
|
|
3
|
+
Version: 3.0.17
|
|
4
4
|
Summary: A lightweight CLI tool and OpenAI-compatible server for querying multiple Large Language Model (LLM) providers
|
|
5
5
|
Home-page: https://github.com/ServiceStack/llms
|
|
6
6
|
Author: ServiceStack
|
|
@@ -199,7 +199,6 @@ def install(ctx):
|
|
|
199
199
|
"model": thread.get("model"),
|
|
200
200
|
"messages": thread.get("messages"),
|
|
201
201
|
"modalities": thread.get("modalities"),
|
|
202
|
-
"systemPrompt": thread.get("systemPrompt"),
|
|
203
202
|
"tools": thread.get("tools"), # tools request
|
|
204
203
|
"metadata": metadata,
|
|
205
204
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import os
|
|
3
|
+
import time
|
|
3
4
|
from datetime import datetime, timedelta
|
|
4
5
|
from typing import Any, Dict
|
|
5
6
|
|
|
@@ -344,9 +345,12 @@ class AppDB:
|
|
|
344
345
|
else:
|
|
345
346
|
thread["createdAt"] = now
|
|
346
347
|
thread["updatedAt"] = now
|
|
348
|
+
initial_timestamp = int(time.time() * 1000) + 1
|
|
347
349
|
if "messages" in thread:
|
|
348
|
-
for m in thread["messages"]:
|
|
350
|
+
for idx, m in enumerate(thread["messages"]):
|
|
349
351
|
self.ctx.cache_message_inline_data(m)
|
|
352
|
+
if "timestamp" not in m:
|
|
353
|
+
m["timestamp"] = initial_timestamp + idx
|
|
350
354
|
return with_user(thread, user=user)
|
|
351
355
|
|
|
352
356
|
def create_thread(self, thread: Dict[str, Any], user=None):
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Anthropic's Computer Use Tools
|
|
3
|
+
https://github.com/anthropics/claude-quickstarts/tree/main/computer-use-demo
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
import os
|
|
7
|
+
|
|
8
|
+
from .bash import open, run_bash
|
|
9
|
+
from .computer import computer
|
|
10
|
+
from .edit import edit
|
|
11
|
+
from .filesystem import (
|
|
12
|
+
create_directory,
|
|
13
|
+
directory_tree,
|
|
14
|
+
edit_file,
|
|
15
|
+
filesystem_init,
|
|
16
|
+
get_file_info,
|
|
17
|
+
list_allowed_directories,
|
|
18
|
+
list_directory,
|
|
19
|
+
list_directory_with_sizes,
|
|
20
|
+
move_file,
|
|
21
|
+
read_media_file,
|
|
22
|
+
read_multiple_files,
|
|
23
|
+
read_text_file,
|
|
24
|
+
search_files,
|
|
25
|
+
write_file,
|
|
26
|
+
)
|
|
27
|
+
from .platform import get_display_num, get_screen_resolution
|
|
28
|
+
|
|
29
|
+
width, height = get_screen_resolution()
|
|
30
|
+
# set enviroment variables
|
|
31
|
+
os.environ["WIDTH"] = str(width)
|
|
32
|
+
os.environ["HEIGHT"] = str(height)
|
|
33
|
+
os.environ["DISPLAY_NUM"] = str(get_display_num())
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def install(ctx):
|
|
37
|
+
filesystem_init(ctx)
|
|
38
|
+
|
|
39
|
+
ctx.register_tool(run_bash, group="computer")
|
|
40
|
+
ctx.register_tool(open, group="computer")
|
|
41
|
+
ctx.register_tool(edit, group="computer")
|
|
42
|
+
ctx.register_tool(computer, group="computer")
|
|
43
|
+
|
|
44
|
+
ctx.register_tool(read_text_file, group="filesystem")
|
|
45
|
+
ctx.register_tool(read_media_file, group="filesystem")
|
|
46
|
+
ctx.register_tool(read_multiple_files, group="filesystem")
|
|
47
|
+
ctx.register_tool(write_file, group="filesystem")
|
|
48
|
+
ctx.register_tool(edit_file, group="filesystem")
|
|
49
|
+
ctx.register_tool(create_directory, group="filesystem")
|
|
50
|
+
ctx.register_tool(list_directory, group="filesystem")
|
|
51
|
+
ctx.register_tool(list_directory_with_sizes, group="filesystem")
|
|
52
|
+
ctx.register_tool(directory_tree, group="filesystem")
|
|
53
|
+
ctx.register_tool(move_file, group="filesystem")
|
|
54
|
+
ctx.register_tool(search_files, group="filesystem")
|
|
55
|
+
ctx.register_tool(get_file_info, group="filesystem")
|
|
56
|
+
ctx.register_tool(list_allowed_directories, group="filesystem")
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
__install__ = install
|
{llms_py-3.0.15/llms/extensions/computer_use → llms_py-3.0.17/llms/extensions/computer}/bash.py
RENAMED
|
@@ -158,7 +158,7 @@ async def run_bash(
|
|
|
158
158
|
if g_tool is None:
|
|
159
159
|
g_tool = BashTool20241022()
|
|
160
160
|
|
|
161
|
-
result = await g_tool(command, restart)
|
|
161
|
+
result = await g_tool(command=command, restart=restart)
|
|
162
162
|
if isinstance(result, Exception):
|
|
163
163
|
raise result
|
|
164
164
|
else:
|
|
@@ -182,4 +182,4 @@ async def open(target: Annotated[str, "URL or file path to open"]) -> list[dict[
|
|
|
182
182
|
else: # Linux and other Unix-like
|
|
183
183
|
cmd = ["xdg-open", target]
|
|
184
184
|
|
|
185
|
-
return await run_bash(" ".join(cmd))
|
|
185
|
+
return await run_bash(command=" ".join(cmd))
|
{llms_py-3.0.15/llms/extensions/computer_use → llms_py-3.0.17/llms/extensions/computer}/edit.py
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from collections import defaultdict
|
|
2
2
|
from pathlib import Path
|
|
3
|
-
from typing import Annotated, Any, Literal, get_args
|
|
3
|
+
from typing import Annotated, Any, List, Literal, get_args
|
|
4
4
|
|
|
5
5
|
from .base import BaseTool, CLIResult, ToolError, ToolResult
|
|
6
6
|
from .run import maybe_truncate, run
|
|
@@ -272,10 +272,10 @@ async def edit(
|
|
|
272
272
|
command: Command_20250124,
|
|
273
273
|
path: Annotated[str, "The absolute path to the file or directory"],
|
|
274
274
|
file_text: Annotated[str | None, "The content to write to the file (required for create)"] = None,
|
|
275
|
-
view_range: Annotated[
|
|
275
|
+
view_range: Annotated[List[int], "The range of lines to view (e.g. [1, 10])"] = None,
|
|
276
276
|
old_str: Annotated[str | None, "The string to replace (required for str_replace)"] = None,
|
|
277
277
|
new_str: Annotated[str | None, "The replacement string (required for str_replace and insert)"] = None,
|
|
278
|
-
insert_line: Annotated[int
|
|
278
|
+
insert_line: Annotated[int, "The line number after which to insert (required for insert)"] = None,
|
|
279
279
|
) -> list[dict[str, Any]]:
|
|
280
280
|
"""
|
|
281
281
|
An filesystem editor tool that allows the agent to view, create, and edit files.
|
|
@@ -284,18 +284,14 @@ async def edit(
|
|
|
284
284
|
if g_tool is None:
|
|
285
285
|
g_tool = EditTool20250124()
|
|
286
286
|
|
|
287
|
-
view_range_values = None
|
|
288
|
-
if view_range:
|
|
289
|
-
view_range_values = [int(x) for x in view_range]
|
|
290
|
-
|
|
291
287
|
result = await g_tool(
|
|
292
|
-
command,
|
|
293
|
-
path if path else None,
|
|
294
|
-
file_text if file_text else None,
|
|
295
|
-
|
|
296
|
-
old_str if old_str else None,
|
|
297
|
-
new_str if new_str else None,
|
|
298
|
-
int(insert_line) if insert_line else None,
|
|
288
|
+
command=command,
|
|
289
|
+
path=path if path else None,
|
|
290
|
+
file_text=file_text if file_text else None,
|
|
291
|
+
view_range=view_range,
|
|
292
|
+
old_str=old_str if old_str else None,
|
|
293
|
+
new_str=new_str if new_str else None,
|
|
294
|
+
insert_line=int(insert_line) if insert_line else None,
|
|
299
295
|
)
|
|
300
296
|
if isinstance(result, Exception):
|
|
301
297
|
raise result
|