llms-py 3.0.0__tar.gz → 3.0.0b1__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 (242) hide show
  1. {llms_py-3.0.0 → llms_py-3.0.0b1}/PKG-INFO +1 -1
  2. llms_py-3.0.0b1/llms/index.html +100 -0
  3. {llms_py-3.0.0 → llms_py-3.0.0b1}/llms/llms.json +23 -72
  4. {llms_py-3.0.0 → llms_py-3.0.0b1}/llms/main.py +732 -1786
  5. llms_py-3.0.0b1/llms/providers.json +1 -0
  6. llms_py-3.0.0/llms/extensions/analytics/ui/index.mjs → llms_py-3.0.0b1/llms/ui/Analytics.mjs +238 -154
  7. llms_py-3.0.0b1/llms/ui/App.mjs +97 -0
  8. llms_py-3.0.0b1/llms/ui/Avatar.mjs +85 -0
  9. llms_py-3.0.0b1/llms/ui/Brand.mjs +52 -0
  10. llms_py-3.0.0b1/llms/ui/ChatPrompt.mjs +606 -0
  11. llms_py-3.0.0b1/llms/ui/Main.mjs +873 -0
  12. llms_py-3.0.0b1/llms/ui/ModelSelector.mjs +693 -0
  13. llms_py-3.0.0b1/llms/ui/OAuthSignIn.mjs +92 -0
  14. llms_py-3.0.0b1/llms/ui/ProviderIcon.mjs +36 -0
  15. llms_py-3.0.0b1/llms/ui/ProviderStatus.mjs +105 -0
  16. {llms_py-3.0.0/llms/extensions/app → llms_py-3.0.0b1/llms}/ui/Recents.mjs +65 -91
  17. {llms_py-3.0.0/llms/ui/modules/chat → llms_py-3.0.0b1/llms/ui}/SettingsDialog.mjs +9 -9
  18. llms_py-3.0.0/llms/extensions/app/ui/index.mjs → llms_py-3.0.0b1/llms/ui/Sidebar.mjs +58 -124
  19. llms_py-3.0.0b1/llms/ui/SignIn.mjs +64 -0
  20. llms_py-3.0.0b1/llms/ui/SystemPromptEditor.mjs +31 -0
  21. llms_py-3.0.0b1/llms/ui/SystemPromptSelector.mjs +56 -0
  22. llms_py-3.0.0b1/llms/ui/Welcome.mjs +8 -0
  23. llms_py-3.0.0b1/llms/ui/ai.mjs +145 -0
  24. {llms_py-3.0.0 → llms_py-3.0.0b1}/llms/ui/app.css +111 -1837
  25. llms_py-3.0.0b1/llms/ui/lib/charts.mjs +20 -0
  26. llms_py-3.0.0b1/llms/ui/lib/servicestack-vue.mjs +37 -0
  27. llms_py-3.0.0b1/llms/ui/lib/vue.min.mjs +12 -0
  28. {llms_py-3.0.0 → llms_py-3.0.0b1}/llms/ui/lib/vue.mjs +1602 -1763
  29. {llms_py-3.0.0 → llms_py-3.0.0b1}/llms/ui/markdown.mjs +2 -10
  30. llms_py-3.0.0b1/llms/ui/tailwind.input.css +272 -0
  31. llms_py-3.0.0b1/llms/ui/threadStore.mjs +572 -0
  32. llms_py-3.0.0b1/llms/ui/utils.mjs +228 -0
  33. llms_py-3.0.0b1/llms/ui.json +1069 -0
  34. {llms_py-3.0.0 → llms_py-3.0.0b1}/llms_py.egg-info/PKG-INFO +1 -1
  35. llms_py-3.0.0b1/llms_py.egg-info/SOURCES.txt +62 -0
  36. {llms_py-3.0.0 → llms_py-3.0.0b1}/pyproject.toml +2 -2
  37. {llms_py-3.0.0 → llms_py-3.0.0b1}/setup.py +2 -3
  38. {llms_py-3.0.0 → llms_py-3.0.0b1}/tests/test_config.py +3 -3
  39. llms_py-3.0.0/llms/__pycache__/__init__.cpython-312.pyc +0 -0
  40. llms_py-3.0.0/llms/__pycache__/__init__.cpython-313.pyc +0 -0
  41. llms_py-3.0.0/llms/__pycache__/__init__.cpython-314.pyc +0 -0
  42. llms_py-3.0.0/llms/__pycache__/__main__.cpython-312.pyc +0 -0
  43. llms_py-3.0.0/llms/__pycache__/__main__.cpython-314.pyc +0 -0
  44. llms_py-3.0.0/llms/__pycache__/llms.cpython-312.pyc +0 -0
  45. llms_py-3.0.0/llms/__pycache__/main.cpython-312.pyc +0 -0
  46. llms_py-3.0.0/llms/__pycache__/main.cpython-313.pyc +0 -0
  47. llms_py-3.0.0/llms/__pycache__/main.cpython-314.pyc +0 -0
  48. llms_py-3.0.0/llms/__pycache__/plugins.cpython-314.pyc +0 -0
  49. llms_py-3.0.0/llms/extensions/app/README.md +0 -20
  50. llms_py-3.0.0/llms/extensions/app/__init__.py +0 -530
  51. llms_py-3.0.0/llms/extensions/app/__pycache__/__init__.cpython-314.pyc +0 -0
  52. llms_py-3.0.0/llms/extensions/app/__pycache__/db.cpython-314.pyc +0 -0
  53. llms_py-3.0.0/llms/extensions/app/__pycache__/db_manager.cpython-314.pyc +0 -0
  54. llms_py-3.0.0/llms/extensions/app/db.py +0 -644
  55. llms_py-3.0.0/llms/extensions/app/db_manager.py +0 -195
  56. llms_py-3.0.0/llms/extensions/app/requests.json +0 -9073
  57. llms_py-3.0.0/llms/extensions/app/threads.json +0 -15290
  58. llms_py-3.0.0/llms/extensions/app/ui/threadStore.mjs +0 -411
  59. llms_py-3.0.0/llms/extensions/core_tools/CALCULATOR.md +0 -32
  60. llms_py-3.0.0/llms/extensions/core_tools/__init__.py +0 -598
  61. llms_py-3.0.0/llms/extensions/core_tools/__pycache__/__init__.cpython-314.pyc +0 -0
  62. llms_py-3.0.0/llms/extensions/core_tools/ui/codemirror/addon/edit/closebrackets.js +0 -201
  63. llms_py-3.0.0/llms/extensions/core_tools/ui/codemirror/addon/edit/closetag.js +0 -185
  64. llms_py-3.0.0/llms/extensions/core_tools/ui/codemirror/addon/edit/continuelist.js +0 -101
  65. llms_py-3.0.0/llms/extensions/core_tools/ui/codemirror/addon/edit/matchbrackets.js +0 -160
  66. llms_py-3.0.0/llms/extensions/core_tools/ui/codemirror/addon/edit/matchtags.js +0 -66
  67. llms_py-3.0.0/llms/extensions/core_tools/ui/codemirror/addon/edit/trailingspace.js +0 -27
  68. llms_py-3.0.0/llms/extensions/core_tools/ui/codemirror/addon/selection/active-line.js +0 -72
  69. llms_py-3.0.0/llms/extensions/core_tools/ui/codemirror/addon/selection/mark-selection.js +0 -119
  70. llms_py-3.0.0/llms/extensions/core_tools/ui/codemirror/addon/selection/selection-pointer.js +0 -98
  71. llms_py-3.0.0/llms/extensions/core_tools/ui/codemirror/doc/docs.css +0 -225
  72. llms_py-3.0.0/llms/extensions/core_tools/ui/codemirror/doc/source_sans.woff +0 -0
  73. llms_py-3.0.0/llms/extensions/core_tools/ui/codemirror/lib/codemirror.css +0 -344
  74. llms_py-3.0.0/llms/extensions/core_tools/ui/codemirror/lib/codemirror.js +0 -9884
  75. llms_py-3.0.0/llms/extensions/core_tools/ui/codemirror/mode/clike/clike.js +0 -942
  76. llms_py-3.0.0/llms/extensions/core_tools/ui/codemirror/mode/javascript/index.html +0 -118
  77. llms_py-3.0.0/llms/extensions/core_tools/ui/codemirror/mode/javascript/javascript.js +0 -962
  78. llms_py-3.0.0/llms/extensions/core_tools/ui/codemirror/mode/javascript/typescript.html +0 -62
  79. llms_py-3.0.0/llms/extensions/core_tools/ui/codemirror/mode/python/python.js +0 -402
  80. llms_py-3.0.0/llms/extensions/core_tools/ui/codemirror/theme/dracula.css +0 -40
  81. llms_py-3.0.0/llms/extensions/core_tools/ui/codemirror/theme/mocha.css +0 -135
  82. llms_py-3.0.0/llms/extensions/core_tools/ui/index.mjs +0 -650
  83. llms_py-3.0.0/llms/extensions/gallery/README.md +0 -61
  84. llms_py-3.0.0/llms/extensions/gallery/__init__.py +0 -61
  85. llms_py-3.0.0/llms/extensions/gallery/__pycache__/__init__.cpython-314.pyc +0 -0
  86. llms_py-3.0.0/llms/extensions/gallery/__pycache__/db.cpython-314.pyc +0 -0
  87. llms_py-3.0.0/llms/extensions/gallery/db.py +0 -298
  88. llms_py-3.0.0/llms/extensions/gallery/ui/index.mjs +0 -482
  89. llms_py-3.0.0/llms/extensions/katex/README.md +0 -39
  90. llms_py-3.0.0/llms/extensions/katex/__init__.py +0 -6
  91. llms_py-3.0.0/llms/extensions/katex/__pycache__/__init__.cpython-314.pyc +0 -0
  92. llms_py-3.0.0/llms/extensions/katex/ui/README.md +0 -125
  93. llms_py-3.0.0/llms/extensions/katex/ui/contrib/auto-render.js +0 -338
  94. llms_py-3.0.0/llms/extensions/katex/ui/contrib/auto-render.min.js +0 -1
  95. llms_py-3.0.0/llms/extensions/katex/ui/contrib/auto-render.mjs +0 -244
  96. llms_py-3.0.0/llms/extensions/katex/ui/contrib/copy-tex.js +0 -127
  97. llms_py-3.0.0/llms/extensions/katex/ui/contrib/copy-tex.min.js +0 -1
  98. llms_py-3.0.0/llms/extensions/katex/ui/contrib/copy-tex.mjs +0 -105
  99. llms_py-3.0.0/llms/extensions/katex/ui/contrib/mathtex-script-type.js +0 -109
  100. llms_py-3.0.0/llms/extensions/katex/ui/contrib/mathtex-script-type.min.js +0 -1
  101. llms_py-3.0.0/llms/extensions/katex/ui/contrib/mathtex-script-type.mjs +0 -24
  102. llms_py-3.0.0/llms/extensions/katex/ui/contrib/mhchem.js +0 -3213
  103. llms_py-3.0.0/llms/extensions/katex/ui/contrib/mhchem.min.js +0 -1
  104. llms_py-3.0.0/llms/extensions/katex/ui/contrib/mhchem.mjs +0 -3109
  105. llms_py-3.0.0/llms/extensions/katex/ui/contrib/render-a11y-string.js +0 -887
  106. llms_py-3.0.0/llms/extensions/katex/ui/contrib/render-a11y-string.min.js +0 -1
  107. llms_py-3.0.0/llms/extensions/katex/ui/contrib/render-a11y-string.mjs +0 -800
  108. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_AMS-Regular.ttf +0 -0
  109. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_AMS-Regular.woff +0 -0
  110. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  111. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
  112. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
  113. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  114. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  115. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  116. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  117. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
  118. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  119. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  120. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  121. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  122. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  123. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Main-Bold.ttf +0 -0
  124. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Main-Bold.woff +0 -0
  125. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Main-Bold.woff2 +0 -0
  126. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
  127. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Main-BoldItalic.woff +0 -0
  128. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  129. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Main-Italic.ttf +0 -0
  130. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Main-Italic.woff +0 -0
  131. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Main-Italic.woff2 +0 -0
  132. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Main-Regular.ttf +0 -0
  133. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Main-Regular.woff +0 -0
  134. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Main-Regular.woff2 +0 -0
  135. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
  136. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  137. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  138. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Math-Italic.ttf +0 -0
  139. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Math-Italic.woff +0 -0
  140. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Math-Italic.woff2 +0 -0
  141. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
  142. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  143. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  144. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
  145. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  146. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  147. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
  148. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  149. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  150. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Script-Regular.ttf +0 -0
  151. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Script-Regular.woff +0 -0
  152. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Script-Regular.woff2 +0 -0
  153. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Size1-Regular.ttf +0 -0
  154. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Size1-Regular.woff +0 -0
  155. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  156. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Size2-Regular.ttf +0 -0
  157. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Size2-Regular.woff +0 -0
  158. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  159. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Size3-Regular.ttf +0 -0
  160. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Size3-Regular.woff +0 -0
  161. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  162. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.ttf +0 -0
  163. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.woff +0 -0
  164. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  165. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
  166. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.woff +0 -0
  167. llms_py-3.0.0/llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  168. llms_py-3.0.0/llms/extensions/katex/ui/index.mjs +0 -92
  169. llms_py-3.0.0/llms/extensions/katex/ui/katex-swap.css +0 -1230
  170. llms_py-3.0.0/llms/extensions/katex/ui/katex-swap.min.css +0 -1
  171. llms_py-3.0.0/llms/extensions/katex/ui/katex.css +0 -1230
  172. llms_py-3.0.0/llms/extensions/katex/ui/katex.js +0 -19080
  173. llms_py-3.0.0/llms/extensions/katex/ui/katex.min.css +0 -1
  174. llms_py-3.0.0/llms/extensions/katex/ui/katex.min.js +0 -1
  175. llms_py-3.0.0/llms/extensions/katex/ui/katex.min.mjs +0 -1
  176. llms_py-3.0.0/llms/extensions/katex/ui/katex.mjs +0 -18547
  177. llms_py-3.0.0/llms/extensions/providers/__init__.py +0 -18
  178. llms_py-3.0.0/llms/extensions/providers/__pycache__/__init__.cpython-314.pyc +0 -0
  179. llms_py-3.0.0/llms/extensions/providers/__pycache__/anthropic.cpython-314.pyc +0 -0
  180. llms_py-3.0.0/llms/extensions/providers/__pycache__/chutes.cpython-314.pyc +0 -0
  181. llms_py-3.0.0/llms/extensions/providers/__pycache__/google.cpython-314.pyc +0 -0
  182. llms_py-3.0.0/llms/extensions/providers/__pycache__/nvidia.cpython-314.pyc +0 -0
  183. llms_py-3.0.0/llms/extensions/providers/__pycache__/openai.cpython-314.pyc +0 -0
  184. llms_py-3.0.0/llms/extensions/providers/__pycache__/openrouter.cpython-314.pyc +0 -0
  185. llms_py-3.0.0/llms/extensions/providers/anthropic.py +0 -229
  186. llms_py-3.0.0/llms/extensions/providers/chutes.py +0 -155
  187. llms_py-3.0.0/llms/extensions/providers/google.py +0 -378
  188. llms_py-3.0.0/llms/extensions/providers/nvidia.py +0 -105
  189. llms_py-3.0.0/llms/extensions/providers/openai.py +0 -156
  190. llms_py-3.0.0/llms/extensions/providers/openrouter.py +0 -72
  191. llms_py-3.0.0/llms/extensions/system_prompts/README.md +0 -22
  192. llms_py-3.0.0/llms/extensions/system_prompts/__init__.py +0 -45
  193. llms_py-3.0.0/llms/extensions/system_prompts/__pycache__/__init__.cpython-314.pyc +0 -0
  194. llms_py-3.0.0/llms/extensions/system_prompts/ui/index.mjs +0 -280
  195. llms_py-3.0.0/llms/extensions/system_prompts/ui/prompts.json +0 -1067
  196. llms_py-3.0.0/llms/extensions/tools/__init__.py +0 -5
  197. llms_py-3.0.0/llms/extensions/tools/__pycache__/__init__.cpython-314.pyc +0 -0
  198. llms_py-3.0.0/llms/extensions/tools/ui/index.mjs +0 -204
  199. llms_py-3.0.0/llms/index.html +0 -58
  200. llms_py-3.0.0/llms/providers-extra.json +0 -356
  201. llms_py-3.0.0/llms/providers.json +0 -1
  202. llms_py-3.0.0/llms/ui/App.mjs +0 -188
  203. llms_py-3.0.0/llms/ui/ai.mjs +0 -217
  204. llms_py-3.0.0/llms/ui/ctx.mjs +0 -365
  205. llms_py-3.0.0/llms/ui/index.mjs +0 -129
  206. llms_py-3.0.0/llms/ui/lib/charts.mjs +0 -16
  207. llms_py-3.0.0/llms/ui/lib/servicestack-vue.mjs +0 -37
  208. llms_py-3.0.0/llms/ui/lib/vue.min.mjs +0 -13
  209. llms_py-3.0.0/llms/ui/modules/chat/ChatBody.mjs +0 -691
  210. llms_py-3.0.0/llms/ui/modules/chat/index.mjs +0 -828
  211. llms_py-3.0.0/llms/ui/modules/layout.mjs +0 -243
  212. llms_py-3.0.0/llms/ui/modules/model-selector.mjs +0 -851
  213. llms_py-3.0.0/llms/ui/tailwind.input.css +0 -688
  214. llms_py-3.0.0/llms/ui/utils.mjs +0 -224
  215. llms_py-3.0.0/llms_py.egg-info/SOURCES.txt +0 -216
  216. llms_py-3.0.0/tests/test_extensions.py +0 -48
  217. {llms_py-3.0.0 → llms_py-3.0.0b1}/LICENSE +0 -0
  218. {llms_py-3.0.0 → llms_py-3.0.0b1}/MANIFEST.in +0 -0
  219. {llms_py-3.0.0 → llms_py-3.0.0b1}/README.md +0 -0
  220. {llms_py-3.0.0 → llms_py-3.0.0b1}/llms/__init__.py +0 -0
  221. {llms_py-3.0.0 → llms_py-3.0.0b1}/llms/__main__.py +0 -0
  222. {llms_py-3.0.0 → llms_py-3.0.0b1}/llms/ui/fav.svg +0 -0
  223. {llms_py-3.0.0 → llms_py-3.0.0b1}/llms/ui/lib/chart.js +0 -0
  224. {llms_py-3.0.0 → llms_py-3.0.0b1}/llms/ui/lib/color.js +0 -0
  225. {llms_py-3.0.0 → llms_py-3.0.0b1}/llms/ui/lib/highlight.min.mjs +0 -0
  226. {llms_py-3.0.0 → llms_py-3.0.0b1}/llms/ui/lib/idb.min.mjs +0 -0
  227. {llms_py-3.0.0 → llms_py-3.0.0b1}/llms/ui/lib/marked.min.mjs +0 -0
  228. {llms_py-3.0.0 → llms_py-3.0.0b1}/llms/ui/lib/servicestack-client.mjs +0 -0
  229. {llms_py-3.0.0 → llms_py-3.0.0b1}/llms/ui/lib/vue-router.min.mjs +0 -0
  230. {llms_py-3.0.0 → llms_py-3.0.0b1}/llms/ui/typography.css +0 -0
  231. {llms_py-3.0.0 → llms_py-3.0.0b1}/llms_py.egg-info/dependency_links.txt +0 -0
  232. {llms_py-3.0.0 → llms_py-3.0.0b1}/llms_py.egg-info/entry_points.txt +0 -0
  233. {llms_py-3.0.0 → llms_py-3.0.0b1}/llms_py.egg-info/not-zip-safe +0 -0
  234. {llms_py-3.0.0 → llms_py-3.0.0b1}/llms_py.egg-info/requires.txt +0 -0
  235. {llms_py-3.0.0 → llms_py-3.0.0b1}/llms_py.egg-info/top_level.txt +0 -0
  236. {llms_py-3.0.0 → llms_py-3.0.0b1}/requirements.txt +0 -0
  237. {llms_py-3.0.0 → llms_py-3.0.0b1}/setup.cfg +0 -0
  238. {llms_py-3.0.0 → llms_py-3.0.0b1}/tests/test_async.py +0 -0
  239. {llms_py-3.0.0 → llms_py-3.0.0b1}/tests/test_integration.py +0 -0
  240. {llms_py-3.0.0 → llms_py-3.0.0b1}/tests/test_provider_checks.py +0 -0
  241. {llms_py-3.0.0 → llms_py-3.0.0b1}/tests/test_provider_config.py +0 -0
  242. {llms_py-3.0.0 → llms_py-3.0.0b1}/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.0
3
+ Version: 3.0.0b1
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
@@ -0,0 +1,100 @@
1
+ <html>
2
+ <head>
3
+ <title>llms.py</title>
4
+ <link rel="stylesheet" href="/ui/app.css">
5
+ <link rel="stylesheet" href="/ui/typography.css">
6
+ <link rel="icon" type="image/svg" href="/ui/fav.svg">
7
+ <style>
8
+ [type='button'],button[type='submit']{cursor:pointer}
9
+ [type='checkbox'].switch:checked:hover,
10
+ [type='checkbox'].switch:checked:focus,
11
+ [type='checkbox'].switch:checked,
12
+ [type='checkbox'].switch:focus,
13
+ [type='checkbox'].switch
14
+ {
15
+ border: none;
16
+ background: none;
17
+ outline: none;
18
+ box-shadow: none;
19
+ cursor: pointer;
20
+ }
21
+ </style>
22
+ </head>
23
+ <script type="importmap">
24
+ {
25
+ "imports": {
26
+ "vue": "/ui/lib/vue.min.mjs",
27
+ "vue-router": "/ui/lib/vue-router.min.mjs",
28
+ "@servicestack/client": "/ui/lib/servicestack-client.mjs",
29
+ "@servicestack/vue": "/ui/lib/servicestack-vue.mjs",
30
+ "idb": "/ui/lib/idb.min.mjs",
31
+ "marked": "/ui/lib/marked.min.mjs",
32
+ "highlight.js": "/ui/lib/highlight.min.mjs",
33
+ "chart.js": "/ui/lib/chart.js",
34
+ "color.js": "/ui/lib/color.js"
35
+ }
36
+ }
37
+ </script>
38
+ <body>
39
+ <div id="app"></div>
40
+ </body>
41
+ <script>
42
+ let colorScheme = location.search === "?dark"
43
+ ? "dark"
44
+ : location.search === "?light"
45
+ ? "light"
46
+ : localStorage.getItem('color-scheme')
47
+ let darkMode = colorScheme != null
48
+ ? colorScheme === 'dark'
49
+ : window.matchMedia('(prefers-color-scheme: dark)').matches
50
+ let html = document.documentElement
51
+ html.classList.toggle('dark', darkMode)
52
+ html.style.setProperty('color-scheme', darkMode ? 'dark' : null)
53
+ if (localStorage.getItem('color-scheme') === null) {
54
+ localStorage.setItem('color-scheme', darkMode ? 'dark' : 'light')
55
+ }
56
+ </script>
57
+ <script type="module">
58
+ import { createApp, defineAsyncComponent } from 'vue'
59
+ import { createWebHistory, createRouter } from "vue-router"
60
+ import ServiceStackVue from "@servicestack/vue"
61
+ import App from '/ui/App.mjs'
62
+ import ai from '/ui/ai.mjs'
63
+ import SettingsDialog from '/ui/SettingsDialog.mjs'
64
+
65
+ const { config, models } = await ai.init()
66
+ const MainComponent = defineAsyncComponent(() => import(ai.base + '/ui/Main.mjs'))
67
+ const RecentsComponent = defineAsyncComponent(() => import(ai.base + '/ui/Recents.mjs'))
68
+ const AnalyticsComponent = defineAsyncComponent(() => import(ai.base + '/ui/Analytics.mjs'))
69
+
70
+ const Components = {
71
+ SettingsDialog,
72
+ }
73
+
74
+ const routes = [
75
+ { path: '/', component: MainComponent },
76
+ { path: '/c/:id', component: MainComponent },
77
+ { path: '/recents', component: RecentsComponent },
78
+ { path: '/analytics', component: AnalyticsComponent },
79
+ { path: '/:fallback(.*)*', component: MainComponent }
80
+ ]
81
+ routes.forEach(r => r.path = ai.base + r.path)
82
+ const router = createRouter({
83
+ history: createWebHistory(),
84
+ routes,
85
+ })
86
+ const app = createApp(App, { config, models })
87
+ app.use(router)
88
+ app.use(ServiceStackVue)
89
+ app.provide('ai', ai)
90
+ app.provide('config', config)
91
+ app.provide('models', models)
92
+ Object.keys(Components).forEach(name => {
93
+ app.component(name, Components[name])
94
+ })
95
+
96
+ window.ai = app.config.globalProperties.$ai = ai
97
+
98
+ app.mount('#app')
99
+ </script>
100
+ </html>
@@ -9,11 +9,10 @@
9
9
  "restrict_to": "GITHUB_USERS"
10
10
  }
11
11
  },
12
- "disable_extensions": [],
13
12
  "defaults": {
14
13
  "headers": {
15
14
  "Content-Type": "application/json",
16
- "User-Agent": "llmspy.org/3.0"
15
+ "User-Agent": "llmspy.org/1.0"
17
16
  },
18
17
  "text": {
19
18
  "model": "kimi-k2",
@@ -30,7 +29,7 @@
30
29
  ]
31
30
  },
32
31
  "image": {
33
- "model": "gemma-3-27b-it",
32
+ "model": "qwen2.5vl",
34
33
  "messages": [
35
34
  {
36
35
  "role": "user",
@@ -91,31 +90,6 @@
91
90
  }
92
91
  ]
93
92
  },
94
- "out:image": {
95
- "model": "gemini-2.5-flash-image",
96
- "messages": [
97
- {
98
- "role": "user",
99
- "content": "Create a picture of a nano banana dish in a fancy restaurant with a Gemini theme"
100
- }
101
- ],
102
- "modalities": [
103
- "image",
104
- "text"
105
- ],
106
- "image_config": {
107
- "aspect_ratio": "9:16"
108
- },
109
- "stream": false
110
- },
111
- "out:audio": {
112
- "model": "gemini-2.5-flash-preview-tts",
113
- "messages": [],
114
- "modalities": [
115
- "audio"
116
- ],
117
- "stream": false
118
- },
119
93
  "check": {
120
94
  "messages": [
121
95
  {
@@ -199,10 +173,10 @@
199
173
  }
200
174
  },
201
175
  "github-copilot": {
202
- "enabled": true
176
+ "enabled": false
203
177
  },
204
178
  "github-models": {
205
- "enabled": true,
179
+ "enabled": false,
206
180
  "check": {
207
181
  "messages": [
208
182
  {
@@ -226,20 +200,32 @@
226
200
  "enabled": true,
227
201
  "temperature": 1.0
228
202
  },
203
+ "openrouter_free": {
204
+ "enabled": true,
205
+ "id": "openrouter",
206
+ "include_models": ":free$"
207
+ },
229
208
  "ollama": {
230
- "enabled": false,
209
+ "enabled": true,
231
210
  "id": "ollama",
232
211
  "npm": "ollama",
233
212
  "api": "http://localhost:11434"
234
213
  },
235
214
  "lmstudio": {
236
- "enabled": false,
215
+ "enabled": true,
237
216
  "npm": "lmstudio",
238
217
  "api": "http://127.0.0.1:1234/v1",
239
218
  "models": {}
240
219
  },
241
220
  "google": {
242
221
  "enabled": true,
222
+ "map_models": {
223
+ "gemini-flash-latest": "gemini-flash-latest",
224
+ "gemini-flash-lite-latest": "gemini-flash-lite-latest",
225
+ "gemini-2.5-pro": "gemini-2.5-pro",
226
+ "gemini-2.5-flash": "gemini-2.5-flash",
227
+ "gemini-2.5-flash-lite": "gemini-2.5-flash-lite"
228
+ },
243
229
  "safety_settings": [
244
230
  {
245
231
  "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
@@ -250,13 +236,6 @@
250
236
  "thinkingBudget": 1024,
251
237
  "includeThoughts": true
252
238
  },
253
- "speech_config": {
254
- "voiceConfig": {
255
- "prebuiltVoiceConfig": {
256
- "voiceName": "Kore"
257
- }
258
- }
259
- },
260
239
  "check": {
261
240
  "messages": [
262
241
  {
@@ -331,55 +310,27 @@
331
310
  }
332
311
  },
333
312
  "chutes": {
334
- "enabled": true,
335
- "modalities": {
336
- "image": {
337
- "name": "Chutes Image",
338
- "npm": "chutes/image",
339
- "negative_prompt": "blur, distortion, low quality",
340
- "cfg_scale": 7.5,
341
- "width": 1024,
342
- "height": 1024,
343
- "steps": 50
344
- }
345
- }
313
+ "enabled": true
346
314
  },
347
315
  "deepseek": {
348
316
  "enabled": true
349
317
  },
350
318
  "moonshotai": {
351
- "enabled": true
319
+ "enabled": false
352
320
  },
353
321
  "nvidia": {
354
- "enabled": true,
355
- "modalities": {
356
- "image": {
357
- "name": "NVIDIA Gen AI",
358
- "npm": "nvidia/image",
359
- "height": 1024,
360
- "width": 1024,
361
- "cfg_scale": 3.5,
362
- "mode": "base",
363
- "samples": 1,
364
- "steps": 50
365
- }
366
- }
322
+ "enabled": true
367
323
  },
368
324
  "huggingface": {
369
325
  "enabled": true
370
326
  },
371
327
  "fireworks-ai": {
372
- "enabled": true
328
+ "enabled": false
373
329
  },
374
330
  "openrouter": {
375
331
  "enabled": true,
376
332
  "id": "openrouter",
377
- "modalities": {
378
- "image": {
379
- "name": "OpenRouter Image",
380
- "npm": "openrouter/image"
381
- }
382
- }
333
+ "exclude_models": ":free$"
383
334
  }
384
335
  }
385
336
  }