llms-py 3.0.0b5__tar.gz → 3.0.0b6__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 (81) hide show
  1. {llms_py-3.0.0b5/llms_py.egg-info → llms_py-3.0.0b6}/PKG-INFO +1 -1
  2. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/__pycache__/main.cpython-314.pyc +0 -0
  3. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/main.py +27 -6
  4. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/ui/ai.mjs +1 -1
  5. {llms_py-3.0.0b5 → llms_py-3.0.0b6/llms_py.egg-info}/PKG-INFO +1 -1
  6. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/pyproject.toml +1 -1
  7. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/setup.py +1 -1
  8. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/LICENSE +0 -0
  9. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/MANIFEST.in +0 -0
  10. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/README.md +0 -0
  11. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/__init__.py +0 -0
  12. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/__main__.py +0 -0
  13. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/__pycache__/__init__.cpython-312.pyc +0 -0
  14. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/__pycache__/__init__.cpython-313.pyc +0 -0
  15. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/__pycache__/__init__.cpython-314.pyc +0 -0
  16. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/__pycache__/__main__.cpython-312.pyc +0 -0
  17. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/__pycache__/__main__.cpython-314.pyc +0 -0
  18. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/__pycache__/llms.cpython-312.pyc +0 -0
  19. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/__pycache__/main.cpython-312.pyc +0 -0
  20. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/__pycache__/main.cpython-313.pyc +0 -0
  21. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/__pycache__/plugins.cpython-314.pyc +0 -0
  22. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/index.html +0 -0
  23. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/llms.json +0 -0
  24. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/providers/__pycache__/anthropic.cpython-314.pyc +0 -0
  25. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/providers/__pycache__/chutes.cpython-314.pyc +0 -0
  26. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/providers/__pycache__/google.cpython-314.pyc +0 -0
  27. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/providers/__pycache__/nvidia.cpython-314.pyc +0 -0
  28. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/providers/__pycache__/openai.cpython-314.pyc +0 -0
  29. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/providers/__pycache__/openrouter.cpython-314.pyc +0 -0
  30. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/providers/anthropic.py +0 -0
  31. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/providers/chutes.py +0 -0
  32. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/providers/google.py +0 -0
  33. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/providers/nvidia.py +0 -0
  34. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/providers/openai.py +0 -0
  35. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/providers/openrouter.py +0 -0
  36. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/providers-extra.json +0 -0
  37. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/providers.json +0 -0
  38. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/ui/App.mjs +0 -0
  39. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/ui/app.css +0 -0
  40. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/ui/ctx.mjs +0 -0
  41. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/ui/fav.svg +0 -0
  42. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/ui/index.mjs +0 -0
  43. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/ui/lib/chart.js +0 -0
  44. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/ui/lib/charts.mjs +0 -0
  45. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/ui/lib/color.js +0 -0
  46. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/ui/lib/highlight.min.mjs +0 -0
  47. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/ui/lib/idb.min.mjs +0 -0
  48. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/ui/lib/marked.min.mjs +0 -0
  49. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/ui/lib/servicestack-client.mjs +0 -0
  50. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/ui/lib/servicestack-vue.mjs +0 -0
  51. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/ui/lib/vue-router.min.mjs +0 -0
  52. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/ui/lib/vue.min.mjs +0 -0
  53. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/ui/lib/vue.mjs +0 -0
  54. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/ui/markdown.mjs +0 -0
  55. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/ui/modules/analytics.mjs +0 -0
  56. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/ui/modules/chat/ChatBody.mjs +0 -0
  57. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/ui/modules/chat/SettingsDialog.mjs +0 -0
  58. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/ui/modules/chat/index.mjs +0 -0
  59. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/ui/modules/layout.mjs +0 -0
  60. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/ui/modules/model-selector.mjs +0 -0
  61. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/ui/modules/threads/Recents.mjs +0 -0
  62. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/ui/modules/threads/index.mjs +0 -0
  63. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/ui/modules/threads/threadStore.mjs +0 -0
  64. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/ui/modules/tools.mjs +0 -0
  65. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/ui/tailwind.input.css +0 -0
  66. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/ui/typography.css +0 -0
  67. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms/ui/utils.mjs +0 -0
  68. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms_py.egg-info/SOURCES.txt +0 -0
  69. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms_py.egg-info/dependency_links.txt +0 -0
  70. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms_py.egg-info/entry_points.txt +0 -0
  71. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms_py.egg-info/not-zip-safe +0 -0
  72. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms_py.egg-info/requires.txt +0 -0
  73. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/llms_py.egg-info/top_level.txt +0 -0
  74. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/requirements.txt +0 -0
  75. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/setup.cfg +0 -0
  76. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/tests/test_async.py +0 -0
  77. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/tests/test_config.py +0 -0
  78. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/tests/test_integration.py +0 -0
  79. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/tests/test_provider_checks.py +0 -0
  80. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/tests/test_provider_config.py +0 -0
  81. {llms_py-3.0.0b5 → llms_py-3.0.0b6}/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.0b5
3
+ Version: 3.0.0b6
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
@@ -40,7 +40,7 @@ try:
40
40
  except ImportError:
41
41
  HAS_PIL = False
42
42
 
43
- VERSION = "3.0.0b5"
43
+ VERSION = "3.0.0b6"
44
44
  _ROOT = None
45
45
  DEBUG = True # os.getenv("PYPI_SERVICESTACK") is not None
46
46
  MOCK = False
@@ -1073,8 +1073,9 @@ async def chat_completion(chat):
1073
1073
  include_all_tools = False
1074
1074
  only_tools = []
1075
1075
  if "metadata" in chat:
1076
- only_tools = chat["metadata"].get("only_tools", "").split(",")
1077
- include_all_tools = only_tools == "all"
1076
+ only_tools_str = chat["metadata"].get("only_tools", "")
1077
+ include_all_tools = only_tools_str == "all"
1078
+ only_tools = only_tools_str.split(",")
1078
1079
 
1079
1080
  if include_all_tools or len(only_tools) > 0:
1080
1081
  if "tools" not in current_chat:
@@ -2452,9 +2453,29 @@ def main():
2452
2453
  requirements_path = os.path.join(target_path, "requirements.txt")
2453
2454
  if os.path.exists(requirements_path):
2454
2455
  print(f"Installing dependencies from {requirements_path}...")
2455
- subprocess.run(
2456
- [sys.executable, "-m", "pip", "install", "-r", "requirements.txt"], cwd=target_path, check=True
2457
- )
2456
+
2457
+ # Check if uv is installed
2458
+ has_uv = False
2459
+ try:
2460
+ subprocess.run(
2461
+ ["uv", "--version"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, check=True
2462
+ )
2463
+ has_uv = True
2464
+ except (subprocess.CalledProcessError, FileNotFoundError):
2465
+ pass
2466
+
2467
+ if has_uv:
2468
+ subprocess.run(
2469
+ ["uv", "pip", "install", "-p", sys.executable, "-r", "requirements.txt"],
2470
+ cwd=target_path,
2471
+ check=True,
2472
+ )
2473
+ else:
2474
+ subprocess.run(
2475
+ [sys.executable, "-m", "pip", "install", "-r", "requirements.txt"],
2476
+ cwd=target_path,
2477
+ check=True,
2478
+ )
2458
2479
  print("Dependencies installed successfully.")
2459
2480
 
2460
2481
  print(f"Extension {target_name} installed successfully.")
@@ -5,7 +5,7 @@ const headers = { 'Accept': 'application/json' }
5
5
  const prefsKey = 'llms.prefs'
6
6
 
7
7
  export const o = {
8
- version: '3.0.0b5',
8
+ version: '3.0.0b6',
9
9
  base,
10
10
  prefsKey,
11
11
  welcome: 'Welcome to llms.py',
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: llms-py
3
- Version: 3.0.0b5
3
+ Version: 3.0.0b6
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.0b5"
7
+ version = "3.0.0b6"
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.0b5",
18
+ version="3.0.0b6",
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