llms-py 3.0.16__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.
Files changed (214) hide show
  1. {llms_py-3.0.16/llms_py.egg-info → llms_py-3.0.17}/PKG-INFO +1 -1
  2. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/app/__init__.py +0 -1
  3. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/app/db.py +5 -1
  4. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/providers/cerebras.py +0 -1
  5. {llms_py-3.0.16 → llms_py-3.0.17}/llms/main.py +18 -4
  6. {llms_py-3.0.16 → llms_py-3.0.17}/llms/ui/ai.mjs +1 -1
  7. {llms_py-3.0.16 → llms_py-3.0.17/llms_py.egg-info}/PKG-INFO +1 -1
  8. {llms_py-3.0.16 → llms_py-3.0.17}/pyproject.toml +1 -1
  9. {llms_py-3.0.16 → llms_py-3.0.17}/setup.py +1 -1
  10. {llms_py-3.0.16 → llms_py-3.0.17}/LICENSE +0 -0
  11. {llms_py-3.0.16 → llms_py-3.0.17}/MANIFEST.in +0 -0
  12. {llms_py-3.0.16 → llms_py-3.0.17}/README.md +0 -0
  13. {llms_py-3.0.16 → llms_py-3.0.17}/llms/__init__.py +0 -0
  14. {llms_py-3.0.16 → llms_py-3.0.17}/llms/__main__.py +0 -0
  15. {llms_py-3.0.16 → llms_py-3.0.17}/llms/db.py +0 -0
  16. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/analytics/ui/index.mjs +0 -0
  17. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/app/README.md +0 -0
  18. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/app/ui/Recents.mjs +0 -0
  19. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/app/ui/index.mjs +0 -0
  20. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/app/ui/threadStore.mjs +0 -0
  21. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/computer/README.md +0 -0
  22. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/computer/__init__.py +0 -0
  23. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/computer/base.py +0 -0
  24. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/computer/bash.py +0 -0
  25. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/computer/computer.py +0 -0
  26. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/computer/edit.py +0 -0
  27. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/computer/filesystem.py +0 -0
  28. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/computer/platform.py +0 -0
  29. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/computer/run.py +0 -0
  30. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/core_tools/CALCULATOR.md +0 -0
  31. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/core_tools/__init__.py +0 -0
  32. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/addon/edit/closebrackets.js +0 -0
  33. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/addon/edit/closetag.js +0 -0
  34. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/addon/edit/continuelist.js +0 -0
  35. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/addon/edit/matchbrackets.js +0 -0
  36. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/addon/edit/matchtags.js +0 -0
  37. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/addon/edit/trailingspace.js +0 -0
  38. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/addon/selection/active-line.js +0 -0
  39. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/addon/selection/mark-selection.js +0 -0
  40. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/addon/selection/selection-pointer.js +0 -0
  41. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/codemirror.css +0 -0
  42. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/codemirror.js +0 -0
  43. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/doc/docs.css +0 -0
  44. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/doc/source_sans.woff +0 -0
  45. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/mode/clike/clike.js +0 -0
  46. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/mode/javascript/index.html +0 -0
  47. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/mode/javascript/javascript.js +0 -0
  48. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/mode/javascript/typescript.html +0 -0
  49. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/mode/python/python.js +0 -0
  50. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/theme/dracula.css +0 -0
  51. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/core_tools/ui/codemirror/theme/mocha.css +0 -0
  52. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/core_tools/ui/index.mjs +0 -0
  53. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/gallery/README.md +0 -0
  54. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/gallery/__init__.py +0 -0
  55. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/gallery/db.py +0 -0
  56. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/gallery/ui/index.mjs +0 -0
  57. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/README.md +0 -0
  58. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/__init__.py +0 -0
  59. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/README.md +0 -0
  60. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/contrib/auto-render.js +0 -0
  61. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/contrib/auto-render.min.js +0 -0
  62. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/contrib/auto-render.mjs +0 -0
  63. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/contrib/copy-tex.js +0 -0
  64. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/contrib/copy-tex.min.js +0 -0
  65. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/contrib/copy-tex.mjs +0 -0
  66. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/contrib/mathtex-script-type.js +0 -0
  67. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/contrib/mathtex-script-type.min.js +0 -0
  68. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/contrib/mathtex-script-type.mjs +0 -0
  69. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/contrib/mhchem.js +0 -0
  70. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/contrib/mhchem.min.js +0 -0
  71. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/contrib/mhchem.mjs +0 -0
  72. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/contrib/render-a11y-string.js +0 -0
  73. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/contrib/render-a11y-string.min.js +0 -0
  74. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/contrib/render-a11y-string.mjs +0 -0
  75. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_AMS-Regular.ttf +0 -0
  76. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_AMS-Regular.woff +0 -0
  77. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  78. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
  79. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
  80. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  81. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  82. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  83. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  84. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
  85. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  86. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  87. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  88. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  89. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  90. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Main-Bold.ttf +0 -0
  91. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Main-Bold.woff +0 -0
  92. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Main-Bold.woff2 +0 -0
  93. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
  94. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Main-BoldItalic.woff +0 -0
  95. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  96. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Main-Italic.ttf +0 -0
  97. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Main-Italic.woff +0 -0
  98. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Main-Italic.woff2 +0 -0
  99. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Main-Regular.ttf +0 -0
  100. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Main-Regular.woff +0 -0
  101. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Main-Regular.woff2 +0 -0
  102. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
  103. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  104. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  105. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Math-Italic.ttf +0 -0
  106. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Math-Italic.woff +0 -0
  107. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Math-Italic.woff2 +0 -0
  108. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
  109. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  110. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  111. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
  112. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  113. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  114. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
  115. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  116. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  117. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Script-Regular.ttf +0 -0
  118. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Script-Regular.woff +0 -0
  119. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Script-Regular.woff2 +0 -0
  120. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Size1-Regular.ttf +0 -0
  121. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Size1-Regular.woff +0 -0
  122. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  123. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Size2-Regular.ttf +0 -0
  124. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Size2-Regular.woff +0 -0
  125. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  126. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Size3-Regular.ttf +0 -0
  127. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Size3-Regular.woff +0 -0
  128. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  129. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.ttf +0 -0
  130. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.woff +0 -0
  131. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  132. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
  133. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.woff +0 -0
  134. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  135. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/index.mjs +0 -0
  136. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/katex-swap.css +0 -0
  137. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/katex-swap.min.css +0 -0
  138. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/katex.css +0 -0
  139. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/katex.js +0 -0
  140. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/katex.min.css +0 -0
  141. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/katex.min.js +0 -0
  142. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/katex.min.mjs +0 -0
  143. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/katex/ui/katex.mjs +0 -0
  144. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/providers/__init__.py +0 -0
  145. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/providers/anthropic.py +0 -0
  146. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/providers/chutes.py +0 -0
  147. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/providers/google.py +0 -0
  148. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/providers/nvidia.py +0 -0
  149. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/providers/openai.py +0 -0
  150. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/providers/openrouter.py +0 -0
  151. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/providers/zai.py +0 -0
  152. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/skills/LICENSE +0 -0
  153. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/skills/__init__.py +0 -0
  154. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/skills/errors.py +0 -0
  155. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/skills/models.py +0 -0
  156. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/skills/parser.py +0 -0
  157. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/skills/ui/index.mjs +0 -0
  158. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/skills/ui/skills/create-plan/SKILL.md +0 -0
  159. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/skills/validator.py +0 -0
  160. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/system_prompts/README.md +0 -0
  161. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/system_prompts/__init__.py +0 -0
  162. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/system_prompts/ui/index.mjs +0 -0
  163. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/system_prompts/ui/prompts.json +0 -0
  164. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/tools/__init__.py +0 -0
  165. {llms_py-3.0.16 → llms_py-3.0.17}/llms/extensions/tools/ui/index.mjs +0 -0
  166. {llms_py-3.0.16 → llms_py-3.0.17}/llms/index.html +0 -0
  167. {llms_py-3.0.16 → llms_py-3.0.17}/llms/llms.json +0 -0
  168. {llms_py-3.0.16 → llms_py-3.0.17}/llms/providers-extra.json +0 -0
  169. {llms_py-3.0.16 → llms_py-3.0.17}/llms/providers.json +0 -0
  170. {llms_py-3.0.16 → llms_py-3.0.17}/llms/ui/App.mjs +0 -0
  171. {llms_py-3.0.16 → llms_py-3.0.17}/llms/ui/app.css +0 -0
  172. {llms_py-3.0.16 → llms_py-3.0.17}/llms/ui/ctx.mjs +0 -0
  173. {llms_py-3.0.16 → llms_py-3.0.17}/llms/ui/fav.svg +0 -0
  174. {llms_py-3.0.16 → llms_py-3.0.17}/llms/ui/index.mjs +0 -0
  175. {llms_py-3.0.16 → llms_py-3.0.17}/llms/ui/lib/chart.js +0 -0
  176. {llms_py-3.0.16 → llms_py-3.0.17}/llms/ui/lib/charts.mjs +0 -0
  177. {llms_py-3.0.16 → llms_py-3.0.17}/llms/ui/lib/color.js +0 -0
  178. {llms_py-3.0.16 → llms_py-3.0.17}/llms/ui/lib/highlight.min.mjs +0 -0
  179. {llms_py-3.0.16 → llms_py-3.0.17}/llms/ui/lib/idb.min.mjs +0 -0
  180. {llms_py-3.0.16 → llms_py-3.0.17}/llms/ui/lib/marked.min.mjs +0 -0
  181. {llms_py-3.0.16 → llms_py-3.0.17}/llms/ui/lib/servicestack-client.mjs +0 -0
  182. {llms_py-3.0.16 → llms_py-3.0.17}/llms/ui/lib/servicestack-vue.mjs +0 -0
  183. {llms_py-3.0.16 → llms_py-3.0.17}/llms/ui/lib/vue-router.min.mjs +0 -0
  184. {llms_py-3.0.16 → llms_py-3.0.17}/llms/ui/lib/vue.min.mjs +0 -0
  185. {llms_py-3.0.16 → llms_py-3.0.17}/llms/ui/lib/vue.mjs +0 -0
  186. {llms_py-3.0.16 → llms_py-3.0.17}/llms/ui/markdown.mjs +0 -0
  187. {llms_py-3.0.16 → llms_py-3.0.17}/llms/ui/modules/chat/ChatBody.mjs +0 -0
  188. {llms_py-3.0.16 → llms_py-3.0.17}/llms/ui/modules/chat/SettingsDialog.mjs +0 -0
  189. {llms_py-3.0.16 → llms_py-3.0.17}/llms/ui/modules/chat/index.mjs +0 -0
  190. {llms_py-3.0.16 → llms_py-3.0.17}/llms/ui/modules/icons.mjs +0 -0
  191. {llms_py-3.0.16 → llms_py-3.0.17}/llms/ui/modules/layout.mjs +0 -0
  192. {llms_py-3.0.16 → llms_py-3.0.17}/llms/ui/modules/model-selector.mjs +0 -0
  193. {llms_py-3.0.16 → llms_py-3.0.17}/llms/ui/tailwind.input.css +0 -0
  194. {llms_py-3.0.16 → llms_py-3.0.17}/llms/ui/typography.css +0 -0
  195. {llms_py-3.0.16 → llms_py-3.0.17}/llms/ui/utils.mjs +0 -0
  196. {llms_py-3.0.16 → llms_py-3.0.17}/llms_py.egg-info/SOURCES.txt +0 -0
  197. {llms_py-3.0.16 → llms_py-3.0.17}/llms_py.egg-info/dependency_links.txt +0 -0
  198. {llms_py-3.0.16 → llms_py-3.0.17}/llms_py.egg-info/entry_points.txt +0 -0
  199. {llms_py-3.0.16 → llms_py-3.0.17}/llms_py.egg-info/not-zip-safe +0 -0
  200. {llms_py-3.0.16 → llms_py-3.0.17}/llms_py.egg-info/requires.txt +0 -0
  201. {llms_py-3.0.16 → llms_py-3.0.17}/llms_py.egg-info/top_level.txt +0 -0
  202. {llms_py-3.0.16 → llms_py-3.0.17}/requirements.txt +0 -0
  203. {llms_py-3.0.16 → llms_py-3.0.17}/setup.cfg +0 -0
  204. {llms_py-3.0.16 → llms_py-3.0.17}/tests/test_async.py +0 -0
  205. {llms_py-3.0.16 → llms_py-3.0.17}/tests/test_config.py +0 -0
  206. {llms_py-3.0.16 → llms_py-3.0.17}/tests/test_core_tools_direct.py +0 -0
  207. {llms_py-3.0.16 → llms_py-3.0.17}/tests/test_extensions.py +0 -0
  208. {llms_py-3.0.16 → llms_py-3.0.17}/tests/test_gemini_tool_calling.py +0 -0
  209. {llms_py-3.0.16 → llms_py-3.0.17}/tests/test_gemini_upload.py +0 -0
  210. {llms_py-3.0.16 → llms_py-3.0.17}/tests/test_integration.py +0 -0
  211. {llms_py-3.0.16 → llms_py-3.0.17}/tests/test_interleaved_thinking.py +0 -0
  212. {llms_py-3.0.16 → llms_py-3.0.17}/tests/test_provider_checks.py +0 -0
  213. {llms_py-3.0.16 → llms_py-3.0.17}/tests/test_provider_config.py +0 -0
  214. {llms_py-3.0.16 → llms_py-3.0.17}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: llms-py
3
- Version: 3.0.16
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):
@@ -31,7 +31,6 @@ def install_cerebras(ctx):
31
31
  clean_chat["messages"].append(new_msg)
32
32
 
33
33
  clean_chat.pop("modalities", None)
34
- clean_chat.pop("systemPrompt", None)
35
34
  return await super().chat(clean_chat, context)
36
35
 
37
36
  ctx.add_provider(CerebrasProvider)
@@ -57,7 +57,7 @@ try:
57
57
  except ImportError:
58
58
  HAS_PIL = False
59
59
 
60
- VERSION = "3.0.16"
60
+ VERSION = "3.0.17"
61
61
  _ROOT = None
62
62
  DEBUG = os.getenv("DEBUG") == "1"
63
63
  MOCK = os.getenv("MOCK") == "1"
@@ -1216,8 +1216,8 @@ class OpenAiCompatible:
1216
1216
  def chat_summary(self, chat):
1217
1217
  return chat_summary(chat)
1218
1218
 
1219
- def process_chat(self, chat, provider_id=None):
1220
- return process_chat(chat, provider_id)
1219
+ async def process_chat(self, chat, provider_id=None):
1220
+ return await process_chat(chat, provider_id)
1221
1221
 
1222
1222
  async def chat(self, chat, context=None):
1223
1223
  chat["model"] = self.provider_model(chat["model"]) or chat["model"]
@@ -1272,7 +1272,7 @@ class OpenAiCompatible:
1272
1272
  if self.enable_thinking is not None:
1273
1273
  chat["enable_thinking"] = self.enable_thinking
1274
1274
 
1275
- chat = await process_chat(chat, provider_id=self.id)
1275
+ chat = await self.process_chat(chat, provider_id=self.id)
1276
1276
  _log(f"POST {self.chat_url}")
1277
1277
  _log(chat_summary(chat))
1278
1278
  # remove metadata if any (conflicts with some providers, e.g. Z.ai)
@@ -1304,6 +1304,15 @@ class GroqProvider(OpenAiCompatible):
1304
1304
  kwargs["api"] = "https://api.groq.com/openai/v1"
1305
1305
  super().__init__(**kwargs)
1306
1306
 
1307
+ async def process_chat(self, chat, provider_id=None):
1308
+ ret = await process_chat(chat, provider_id)
1309
+ chat.pop("modalities", None) # groq doesn't support modalities
1310
+ messages = chat.get("messages", []).copy()
1311
+ for message in messages:
1312
+ message.pop("timestamp", None) # groq doesn't support timestamp
1313
+ ret["messages"] = messages
1314
+ return ret
1315
+
1307
1316
 
1308
1317
  class XaiProvider(OpenAiCompatible):
1309
1318
  sdk = "@ai-sdk/xai"
@@ -2974,6 +2983,11 @@ class AppExtensions:
2974
2983
  if "tools" not in current_chat:
2975
2984
  current_chat["tools"] = []
2976
2985
 
2986
+ _dbg(
2987
+ f"create_chat_with_tools: all_tools:{include_all_tools}, only_tools:{only_tools_list}, chat tools: "
2988
+ + str(len(current_chat["tools"]))
2989
+ )
2990
+
2977
2991
  existing_tools = {t["function"]["name"] for t in current_chat["tools"]}
2978
2992
  for tool_def in self.tool_definitions:
2979
2993
  name = tool_def["function"]["name"]
@@ -6,7 +6,7 @@ const headers = { 'Accept': 'application/json' }
6
6
  const prefsKey = 'llms.prefs'
7
7
 
8
8
  export const o = {
9
- version: '3.0.16',
9
+ version: '3.0.17',
10
10
  base,
11
11
  prefsKey,
12
12
  welcome: 'Welcome to llms.py',
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: llms-py
3
- Version: 3.0.16
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
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "llms-py"
7
- version = "3.0.16"
7
+ version = "3.0.17"
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.16",
18
+ version="3.0.17",
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
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