llms-py 2.0.33__tar.gz → 2.0.34__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-2.0.34/PKG-INFO +49 -0
- llms_py-2.0.34/README.md +9 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/llms.json +85 -28
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/main.py +2 -2
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/ProviderIcon.mjs +1 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/ai.mjs +1 -1
- llms_py-2.0.34/llms/ui/lib/servicestack-vue.mjs +37 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/threadStore.mjs +1 -1
- llms_py-2.0.34/llms_py.egg-info/PKG-INFO +49 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms_py.egg-info/SOURCES.txt +5 -1
- {llms_py-2.0.33 → llms_py-2.0.34}/pyproject.toml +1 -1
- {llms_py-2.0.33 → llms_py-2.0.34}/setup.py +1 -1
- llms_py-2.0.34/tests/test_async.py +117 -0
- llms_py-2.0.34/tests/test_config.py +130 -0
- llms_py-2.0.34/tests/test_integration.py +122 -0
- llms_py-2.0.34/tests/test_utils.py +276 -0
- llms_py-2.0.33/PKG-INFO +0 -1278
- llms_py-2.0.33/README.md +0 -1238
- llms_py-2.0.33/llms/ui/lib/servicestack-vue.mjs +0 -37
- llms_py-2.0.33/llms_py.egg-info/PKG-INFO +0 -1278
- {llms_py-2.0.33 → llms_py-2.0.34}/LICENSE +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/MANIFEST.in +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/__init__.py +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/__main__.py +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/index.html +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/Analytics.mjs +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/App.mjs +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/Avatar.mjs +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/Brand.mjs +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/ChatPrompt.mjs +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/Main.mjs +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/ModelSelector.mjs +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/OAuthSignIn.mjs +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/ProviderStatus.mjs +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/Recents.mjs +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/SettingsDialog.mjs +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/Sidebar.mjs +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/SignIn.mjs +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/SystemPromptEditor.mjs +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/SystemPromptSelector.mjs +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/Welcome.mjs +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/app.css +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/fav.svg +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/lib/chart.js +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/lib/charts.mjs +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/lib/color.js +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/lib/highlight.min.mjs +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/lib/idb.min.mjs +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/lib/marked.min.mjs +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/lib/servicestack-client.mjs +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/lib/vue-router.min.mjs +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/lib/vue.min.mjs +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/lib/vue.mjs +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/markdown.mjs +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/tailwind.input.css +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/typography.css +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui/utils.mjs +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms/ui.json +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms_py.egg-info/dependency_links.txt +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms_py.egg-info/entry_points.txt +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms_py.egg-info/not-zip-safe +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms_py.egg-info/requires.txt +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/llms_py.egg-info/top_level.txt +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/requirements.txt +0 -0
- {llms_py-2.0.33 → llms_py-2.0.34}/setup.cfg +0 -0
llms_py-2.0.34/PKG-INFO
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: llms-py
|
|
3
|
+
Version: 2.0.34
|
|
4
|
+
Summary: A lightweight CLI tool and OpenAI-compatible server for querying multiple Large Language Model (LLM) providers
|
|
5
|
+
Home-page: https://github.com/ServiceStack/llms
|
|
6
|
+
Author: ServiceStack
|
|
7
|
+
Author-email: ServiceStack <team@servicestack.net>
|
|
8
|
+
Maintainer-email: ServiceStack <team@servicestack.net>
|
|
9
|
+
License-Expression: BSD-3-Clause
|
|
10
|
+
Project-URL: Homepage, https://github.com/ServiceStack/llms
|
|
11
|
+
Project-URL: Documentation, https://github.com/ServiceStack/llms#readme
|
|
12
|
+
Project-URL: Repository, https://github.com/ServiceStack/llms
|
|
13
|
+
Project-URL: Bug Reports, https://github.com/ServiceStack/llms/issues
|
|
14
|
+
Keywords: llm,ai,openai,anthropic,google,gemini,groq,mistral,ollama,cli,server,chat,completion
|
|
15
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
16
|
+
Classifier: Intended Audience :: Developers
|
|
17
|
+
Classifier: Intended Audience :: System Administrators
|
|
18
|
+
Classifier: Operating System :: OS Independent
|
|
19
|
+
Classifier: Programming Language :: Python :: 3
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.7
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
25
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
26
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
27
|
+
Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
|
|
28
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
29
|
+
Classifier: Topic :: System :: Systems Administration
|
|
30
|
+
Classifier: Topic :: Utilities
|
|
31
|
+
Classifier: Environment :: Console
|
|
32
|
+
Requires-Python: >=3.7
|
|
33
|
+
Description-Content-Type: text/markdown
|
|
34
|
+
License-File: LICENSE
|
|
35
|
+
Requires-Dist: aiohttp
|
|
36
|
+
Dynamic: author
|
|
37
|
+
Dynamic: home-page
|
|
38
|
+
Dynamic: license-file
|
|
39
|
+
Dynamic: requires-python
|
|
40
|
+
|
|
41
|
+
# llms.py
|
|
42
|
+
|
|
43
|
+
Lightweight CLI, API and ChatGPT-like alternative to Open WebUI for accessing multiple LLMs, entirely offline, with all data kept private in browser storage.
|
|
44
|
+
|
|
45
|
+
[llmspy.org](https://llmspy.org)
|
|
46
|
+
|
|
47
|
+
[](https://llmspy.org)
|
|
48
|
+
|
|
49
|
+
GitHub: [llmspy.org](https://github.com/ServiceStack/llmspy.org)
|
llms_py-2.0.34/README.md
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# llms.py
|
|
2
|
+
|
|
3
|
+
Lightweight CLI, API and ChatGPT-like alternative to Open WebUI for accessing multiple LLMs, entirely offline, with all data kept private in browser storage.
|
|
4
|
+
|
|
5
|
+
[llmspy.org](https://llmspy.org)
|
|
6
|
+
|
|
7
|
+
[](https://llmspy.org)
|
|
8
|
+
|
|
9
|
+
GitHub: [llmspy.org](https://github.com/ServiceStack/llmspy.org)
|
|
@@ -219,32 +219,39 @@
|
|
|
219
219
|
"base_url": "https://openrouter.ai/api",
|
|
220
220
|
"api_key": "$OPENROUTER_API_KEY",
|
|
221
221
|
"models": {
|
|
222
|
-
"
|
|
223
|
-
"
|
|
224
|
-
"
|
|
222
|
+
"kat-coder-pro": "kwaipilot/kat-coder-pro:free",
|
|
223
|
+
"nemotron-nano-vl:12b": "nvidia/nemotron-nano-12b-v2-vl:free",
|
|
224
|
+
"tongyi-deepresearch:30b": "alibaba/tongyi-deepresearch-30b-a3b:free",
|
|
225
|
+
"longcat-flash-chat": "meituan/longcat-flash-chat:free",
|
|
226
|
+
"nemotron-nano:9b": "nvidia/nemotron-nano-9b-v2:free",
|
|
225
227
|
"deepseek-v3.1:671b": "deepseek/deepseek-chat-v3.1:free",
|
|
226
|
-
"
|
|
227
|
-
"gemini-2.0-flash": "google/gemini-2.0-flash-exp:free",
|
|
228
|
-
"gemma3n:e2b": "google/gemma-3n-e2b-it:free",
|
|
228
|
+
"gpt-oss:20b": "openai/gpt-oss-20b:free",
|
|
229
229
|
"glm-4.5-air": "z-ai/glm-4.5-air:free",
|
|
230
|
+
"qwen3-coder": "qwen/qwen3-coder:free",
|
|
231
|
+
"kimi-k2": "moonshotai/kimi-k2:free",
|
|
232
|
+
"venice-mistral:24b":"cognitivecomputations/dolphin-mistral-24b-venice-edition:free",
|
|
233
|
+
"gemma3n:2b":"google/gemma-3n-e2b-it:free",
|
|
234
|
+
"deepseek-r1t2-chimera": "tngtech/deepseek-r1t2-chimera:free",
|
|
235
|
+
"mistral-small3.2:24b": "mistralai/mistral-small-3.2-24b-instruct:free",
|
|
236
|
+
"deepseek-r1:671b": "deepseek/deepseek-r1-0528:free",
|
|
237
|
+
"gemma3n:4b":"google/gemma-3n-e4b-it:free",
|
|
238
|
+
"qwen3:30b": "qwen/qwen3-30b-a3b:free",
|
|
239
|
+
"qwen3:14b": "qwen/qwen3-14b:free",
|
|
240
|
+
"qwen3:235b": "qwen/qwen3-235b-a22b:free",
|
|
230
241
|
"mai-ds-r1": "microsoft/mai-ds-r1:free",
|
|
242
|
+
"qwen-2.5:72b": "qwen/qwen-2.5-72b-instruct:free",
|
|
243
|
+
"qwen2.5vl": "qwen/qwen2.5-vl-32b-instruct:free",
|
|
244
|
+
"qwen2.5vl:32b": "qwen/qwen2.5-vl-32b-instruct:free",
|
|
245
|
+
"gemma3:4b":"google/gemma-3-4b-it:free",
|
|
246
|
+
"gemma3:12b":"google/gemma-3-12b-it:free",
|
|
247
|
+
"gemma3:27b": "google/gemma-3-27b-it:free",
|
|
248
|
+
"deepseek-r1": "deepseek/deepseek-r1-0528:free",
|
|
249
|
+
"gemini-2.0-flash": "google/gemini-2.0-flash-exp:free",
|
|
231
250
|
"llama3.3:70b": "meta-llama/llama-3.3-70b-instruct:free",
|
|
232
|
-
"
|
|
233
|
-
"nemotron-nano-vl:12b": "nvidia/nemotron-nano-12b-v2-vl:free",
|
|
234
|
-
"deepseek-r1-distill-llama:70b": "deepseek/deepseek-r1-distill-llama-70b:free",
|
|
235
|
-
"gpt-oss:20b": "openai/gpt-oss-20b:free",
|
|
236
|
-
"mistral-small3.2:24b": "mistralai/mistral-small-3.2-24b-instruct:free",
|
|
251
|
+
"llama3.2:3b":"meta-llama/llama-3.2-3b-instruct:free",
|
|
237
252
|
"mistral-nemo:12b": "mistralai/mistral-nemo:free",
|
|
238
|
-
"venice-uncensored:24b": "cognitivecomputations/dolphin-mistral-24b-venice-edition:free",
|
|
239
|
-
"llama3.3:8b": "meta-llama/llama-3.3-8b-instruct:free",
|
|
240
|
-
"gemma3:27b": "google/gemma-3-27b-it:free",
|
|
241
|
-
"qwen3-coder": "qwen/qwen3-coder:free",
|
|
242
|
-
"qwen3:235b": "qwen/qwen3-235b-a22b:free",
|
|
243
|
-
"qwen3:30b": "qwen/qwen3-30b-a3b:free",
|
|
244
253
|
"qwen3:4b": "qwen/qwen3-4b:free",
|
|
245
|
-
"
|
|
246
|
-
"qwen-2.5:72b": "qwen/qwen-2.5-72b-instruct:free",
|
|
247
|
-
"minimax-m2": "minimax/minimax-m2:free"
|
|
254
|
+
"mistral:7b":"mistralai/mistral-7b-instruct:free"
|
|
248
255
|
},
|
|
249
256
|
"default_pricing": {
|
|
250
257
|
"input": "0",
|
|
@@ -398,6 +405,10 @@
|
|
|
398
405
|
"base_url": "https://api.openai.com",
|
|
399
406
|
"api_key": "$OPENAI_API_KEY",
|
|
400
407
|
"models": {
|
|
408
|
+
"gpt-5.1": "gpt-5.1",
|
|
409
|
+
"gpt-5.1-chat-latest": "gpt-5.1-chat-latest",
|
|
410
|
+
"gpt-5.1-codex": "gpt-5.1-codex",
|
|
411
|
+
"gpt-5.1-codex-mini": "gpt-5.1-codex-mini",
|
|
401
412
|
"gpt-5-nano": "gpt-5-nano",
|
|
402
413
|
"gpt-5-mini": "gpt-5-mini",
|
|
403
414
|
"gpt-5": "gpt-5",
|
|
@@ -417,6 +428,22 @@
|
|
|
417
428
|
"gpt-3.5-turbo": "gpt-3.5-turbo"
|
|
418
429
|
},
|
|
419
430
|
"pricing": {
|
|
431
|
+
"gpt-5.1": {
|
|
432
|
+
"input": "0.00000125",
|
|
433
|
+
"output": "0.00001"
|
|
434
|
+
},
|
|
435
|
+
"gpt-5.1-chat-latest": {
|
|
436
|
+
"input": "0.00000125",
|
|
437
|
+
"output": "0.00001"
|
|
438
|
+
},
|
|
439
|
+
"gpt-5.1-codex": {
|
|
440
|
+
"input": "0.00000125",
|
|
441
|
+
"output": "0.00001"
|
|
442
|
+
},
|
|
443
|
+
"gpt-5.1-codex-mini": {
|
|
444
|
+
"input": "0.00000025",
|
|
445
|
+
"output": "0.000002"
|
|
446
|
+
},
|
|
420
447
|
"gpt-5-nano": {
|
|
421
448
|
"input": "0.00000005",
|
|
422
449
|
"output": "0.0000004"
|
|
@@ -859,6 +886,10 @@
|
|
|
859
886
|
"gemma3:4b": "google/gemma-3-4b-it",
|
|
860
887
|
"gemma3:12b": "google/gemma-3-12b-it",
|
|
861
888
|
"gemma3:27b": "google/gemma-3-27b-it",
|
|
889
|
+
"gpt-5.1": "openai/gpt-5.1",
|
|
890
|
+
"gpt-5.1-chat": "openai/gpt-5.1-chat",
|
|
891
|
+
"gpt-5.1-codex": "openai/gpt-5.1-codex",
|
|
892
|
+
"gpt-5.1-codex-mini": "openai/gpt-5.1-codex-mini",
|
|
862
893
|
"gpt-5": "openai/gpt-5",
|
|
863
894
|
"gpt-5-chat": "openai/gpt-5-chat",
|
|
864
895
|
"gpt-5-mini": "openai/gpt-5-mini",
|
|
@@ -882,6 +913,8 @@
|
|
|
882
913
|
"glm-4.5-air": "z-ai/glm-4.5-air",
|
|
883
914
|
"minimax-m2": "minimax/minimax-m2",
|
|
884
915
|
"kimi-k2": "moonshotai/kimi-k2",
|
|
916
|
+
"kimi-k2-thinking": "moonshotai/kimi-k2-thinking",
|
|
917
|
+
"kimi-linear:48b": "moonshotai/kimi-linear-48b-a3b-instruct",
|
|
885
918
|
"deepseek-v3.1:671b": "deepseek/deepseek-chat",
|
|
886
919
|
"deepseek-v3.2-exp": "deepseek/deepseek-v3.2-exp",
|
|
887
920
|
"deepseek-chat-v3.1:671b": "deepseek/deepseek-chat-v3.1",
|
|
@@ -904,8 +937,8 @@
|
|
|
904
937
|
},
|
|
905
938
|
"pricing": {
|
|
906
939
|
"meta-llama/llama-3.1-405b-instruct": {
|
|
907
|
-
"input": "0.
|
|
908
|
-
"output": "0.
|
|
940
|
+
"input": "0.0000035",
|
|
941
|
+
"output": "0.0000035"
|
|
909
942
|
},
|
|
910
943
|
"meta-llama/llama-3.3-70b-instruct": {
|
|
911
944
|
"input": "0.00000013",
|
|
@@ -983,6 +1016,22 @@
|
|
|
983
1016
|
"input": "0.00000009",
|
|
984
1017
|
"output": "0.00000016"
|
|
985
1018
|
},
|
|
1019
|
+
"openai/gpt-5.1": {
|
|
1020
|
+
"input": "0.00000125",
|
|
1021
|
+
"output": "0.00001"
|
|
1022
|
+
},
|
|
1023
|
+
"openai/gpt-5.1-chat": {
|
|
1024
|
+
"input": "0.00000125",
|
|
1025
|
+
"output": "0.00001"
|
|
1026
|
+
},
|
|
1027
|
+
"openai/gpt-5.1-codex": {
|
|
1028
|
+
"input": "0.00000125",
|
|
1029
|
+
"output": "0.00001"
|
|
1030
|
+
},
|
|
1031
|
+
"openai/gpt-5.1-codex-mini": {
|
|
1032
|
+
"input": "0.00000025",
|
|
1033
|
+
"output": "0.000002"
|
|
1034
|
+
},
|
|
986
1035
|
"openai/gpt-5": {
|
|
987
1036
|
"input": "0.00000125",
|
|
988
1037
|
"output": "0.00001"
|
|
@@ -1061,23 +1110,31 @@
|
|
|
1061
1110
|
},
|
|
1062
1111
|
"z-ai/glm-4.5": {
|
|
1063
1112
|
"input": "0.00000035",
|
|
1064
|
-
"output": "0.
|
|
1113
|
+
"output": "0.0000015"
|
|
1065
1114
|
},
|
|
1066
1115
|
"z-ai/glm-4.5-air": {
|
|
1067
1116
|
"input": "0.00000013",
|
|
1068
1117
|
"output": "0.00000085"
|
|
1069
1118
|
},
|
|
1070
1119
|
"minimax/minimax-m2": {
|
|
1071
|
-
"input": "0.
|
|
1072
|
-
"output": "0.
|
|
1120
|
+
"input": "0.000000255",
|
|
1121
|
+
"output": "0.00000102"
|
|
1073
1122
|
},
|
|
1074
1123
|
"moonshotai/kimi-k2": {
|
|
1075
|
-
"input": "0.
|
|
1076
|
-
"output": "0.
|
|
1124
|
+
"input": "0.0000005",
|
|
1125
|
+
"output": "0.0000024"
|
|
1126
|
+
},
|
|
1127
|
+
"moonshotai/kimi-k2-thinking": {
|
|
1128
|
+
"input": "0.00000055",
|
|
1129
|
+
"output": "0.00000225"
|
|
1130
|
+
},
|
|
1131
|
+
"moonshotai/kimi-linear-48b-a3b-instruct": {
|
|
1132
|
+
"input": "0.0000003",
|
|
1133
|
+
"output": "0.0000006"
|
|
1077
1134
|
},
|
|
1078
1135
|
"deepseek/deepseek-chat": {
|
|
1079
1136
|
"input": "0.0000003",
|
|
1080
|
-
"output": "0.
|
|
1137
|
+
"output": "0.0000012"
|
|
1081
1138
|
},
|
|
1082
1139
|
"deepseek/deepseek-v3.2-exp": {
|
|
1083
1140
|
"input": "0.00000027",
|
|
@@ -34,7 +34,7 @@ try:
|
|
|
34
34
|
except ImportError:
|
|
35
35
|
HAS_PIL = False
|
|
36
36
|
|
|
37
|
-
VERSION = "2.0.
|
|
37
|
+
VERSION = "2.0.34"
|
|
38
38
|
_ROOT = None
|
|
39
39
|
g_config_path = None
|
|
40
40
|
g_ui_path = None
|
|
@@ -1536,7 +1536,7 @@ def main():
|
|
|
1536
1536
|
|
|
1537
1537
|
if cli_args.config:
|
|
1538
1538
|
# read contents
|
|
1539
|
-
g_config_path =
|
|
1539
|
+
g_config_path = cli_args.config
|
|
1540
1540
|
with open(g_config_path, "r") as f:
|
|
1541
1541
|
config_json = f.read()
|
|
1542
1542
|
g_config = json.loads(config_json)
|
|
@@ -11,6 +11,7 @@ export default {
|
|
|
11
11
|
<svg v-else-if="matches(['llama'])" class="size-5" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" fill-rule="evenodd">
|
|
12
12
|
<path d="M7.905 1.09c.216.085.411.225.588.41.295.306.544.744.734 1.263.191.522.315 1.1.362 1.68a5.054 5.054 0 012.049-.636l.051-.004c.87-.07 1.73.087 2.48.474.101.053.2.11.297.17.05-.569.172-1.134.36-1.644.19-.52.439-.957.733-1.264a1.67 1.67 0 01.589-.41c.257-.1.53-.118.796-.042.401.114.745.368 1.016.737.248.337.434.769.561 1.287.23.934.27 2.163.115 3.645l.053.04.026.019c.757.576 1.284 1.397 1.563 2.35.435 1.487.216 3.155-.534 4.088l-.018.021.002.003c.417.762.67 1.567.724 2.4l.002.03c.064 1.065-.2 2.137-.814 3.19l-.007.01.01.024c.472 1.157.62 2.322.438 3.486l-.006.039a.651.651 0 01-.747.536.648.648 0 01-.54-.742c.167-1.033.01-2.069-.48-3.123a.643.643 0 01.04-.617l.004-.006c.604-.924.854-1.83.8-2.72-.046-.779-.325-1.544-.8-2.273a.644.644 0 01.18-.886l.009-.006c.243-.159.467-.565.58-1.12a4.229 4.229 0 00-.095-1.974c-.205-.7-.58-1.284-1.105-1.683-.595-.454-1.383-.673-2.38-.61a.653.653 0 01-.632-.371c-.314-.665-.772-1.141-1.343-1.436a3.288 3.288 0 00-1.772-.332c-1.245.099-2.343.801-2.67 1.686a.652.652 0 01-.61.425c-1.067.002-1.893.252-2.497.703-.522.39-.878.935-1.066 1.588a4.07 4.07 0 00-.068 1.886c.112.558.331 1.02.582 1.269l.008.007c.212.207.257.53.109.785-.36.622-.629 1.549-.673 2.44-.05 1.018.186 1.902.719 2.536l.016.019a.643.643 0 01.095.69c-.576 1.236-.753 2.252-.562 3.052a.652.652 0 01-1.269.298c-.243-1.018-.078-2.184.473-3.498l.014-.035-.008-.012a4.339 4.339 0 01-.598-1.309l-.005-.019a5.764 5.764 0 01-.177-1.785c.044-.91.278-1.842.622-2.59l.012-.026-.002-.002c-.293-.418-.51-.953-.63-1.545l-.005-.024a5.352 5.352 0 01.093-2.49c.262-.915.777-1.701 1.536-2.269.06-.045.123-.09.186-.132-.159-1.493-.119-2.73.112-3.67.127-.518.314-.95.562-1.287.27-.368.614-.622 1.015-.737.266-.076.54-.059.797.042zm4.116 9.09c.936 0 1.8.313 2.446.855.63.527 1.005 1.235 1.005 1.94 0 .888-.406 1.58-1.133 2.022-.62.375-1.451.557-2.403.557-1.009 0-1.871-.259-2.493-.734-.617-.47-.963-1.13-.963-1.845 0-.707.398-1.417 1.056-1.946.668-.537 1.55-.849 2.485-.849zm0 .896a3.07 3.07 0 00-1.916.65c-.461.37-.722.835-.722 1.25 0 .428.21.829.61 1.134.455.347 1.124.548 1.943.548.799 0 1.473-.147 1.932-.426.463-.28.7-.686.7-1.257 0-.423-.246-.89-.683-1.256-.484-.405-1.14-.643-1.864-.643zm.662 1.21l.004.004c.12.151.095.37-.056.49l-.292.23v.446a.375.375 0 01-.376.373.375.375 0 01-.376-.373v-.46l-.271-.218a.347.347 0 01-.052-.49.353.353 0 01.494-.051l.215.172.22-.174a.353.353 0 01.49.051zm-5.04-1.919c.478 0 .867.39.867.871a.87.87 0 01-.868.871.87.87 0 01-.867-.87.87.87 0 01.867-.872zm8.706 0c.48 0 .868.39.868.871a.87.87 0 01-.868.871.87.87 0 01-.867-.87.87.87 0 01.867-.872zM7.44 2.3l-.003.002a.659.659 0 00-.285.238l-.005.006c-.138.189-.258.467-.348.832-.17.692-.216 1.631-.124 2.782.43-.128.899-.208 1.404-.237l.01-.001.019-.034c.046-.082.095-.161.148-.239.123-.771.022-1.692-.253-2.444-.134-.364-.297-.65-.453-.813a.628.628 0 00-.107-.09L7.44 2.3zm9.174.04l-.002.001a.628.628 0 00-.107.09c-.156.163-.32.45-.453.814-.29.794-.387 1.776-.23 2.572l.058.097.008.014h.03a5.184 5.184 0 011.466.212c.086-1.124.038-2.043-.128-2.722-.09-.365-.21-.643-.349-.832l-.004-.006a.659.659 0 00-.285-.239h-.004z"></path>
|
|
13
13
|
</svg>
|
|
14
|
+
<svg v-else-if="matches(['servicestack'])" class="size-5" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M96 216c81.7 10.2 273.7 102.3 304 232H8c99.5-8.1 184.5-137 88-232m32-152c32.3 35.6 47.7 83.9 46.4 133.6C257.3 231.3 381.7 321.3 408 448h96C463.3 231.9 230.8 79.5 128 64"/></svg>
|
|
14
15
|
<svg v-else class="size-5" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linejoin="round" d="M12.019 16.225L8.35 14.13m3.669 2.096l3.65-2.129m-3.65 2.13L9.183 17.88l-5.196-3a5 5 0 0 1-.714-.498m5.077-.252L5.5 12.5v-6q0-.444.075-.867m2.775 8.496l-.018-4.225m5.97-6.652a5.001 5.001 0 0 0-8.727 2.38m8.727-2.38a5 5 0 0 0-.789.369l-5.196 3l.015 3.283m5.97-6.652a5.001 5.001 0 0 1 6.425 6.367M5.575 5.633a5.001 5.001 0 0 0-2.302 8.748m8.708-6.606l3.669 2.096m-3.67-2.096L8.33 9.904m3.65-2.129l2.836-1.654l5.196 3q.384.223.714.498m-5.077.252L18.5 11.5v6q0 .444-.075.867M15.65 9.871l.018 4.225m-5.97 6.652a5.001 5.001 0 0 0 8.727-2.38m-8.727 2.38a5 5 0 0 0 .789-.369l5.196-3l-.015-3.283m-5.97 6.652a5.001 5.001 0 0 1-6.425-6.367m15.152 3.986a5.001 5.001 0 0 0 2.302-8.748" stroke-width="1"/></svg>
|
|
15
16
|
`,
|
|
16
17
|
props: {
|