llms-py 3.0.2__py3-none-any.whl → 3.0.4__py3-none-any.whl
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/db.py +18 -9
- llms/extensions/app/__init__.py +1 -0
- llms/extensions/app/ui/threadStore.mjs +3 -0
- llms/extensions/core_tools/__init__.py +2 -2
- llms/extensions/core_tools/ui/codemirror/codemirror.css +344 -0
- llms/extensions/core_tools/ui/codemirror/codemirror.js +9884 -0
- llms/main.py +3 -1
- llms/ui/ai.mjs +1 -1
- llms/ui/app.css +40 -23
- llms/ui/ctx.mjs +13 -0
- llms/ui/modules/chat/ChatBody.mjs +244 -248
- llms/ui/modules/chat/index.mjs +80 -7
- llms/ui/tailwind.input.css +1 -1
- {llms_py-3.0.2.dist-info → llms_py-3.0.4.dist-info}/METADATA +1 -1
- {llms_py-3.0.2.dist-info → llms_py-3.0.4.dist-info}/RECORD +19 -17
- {llms_py-3.0.2.dist-info → llms_py-3.0.4.dist-info}/WHEEL +0 -0
- {llms_py-3.0.2.dist-info → llms_py-3.0.4.dist-info}/entry_points.txt +0 -0
- {llms_py-3.0.2.dist-info → llms_py-3.0.4.dist-info}/licenses/LICENSE +0 -0
- {llms_py-3.0.2.dist-info → llms_py-3.0.4.dist-info}/top_level.txt +0 -0
llms/ui/modules/chat/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
import { ref, watch, nextTick, inject } from 'vue'
|
|
2
|
+
import { ref, watch, computed, nextTick, inject } from 'vue'
|
|
3
3
|
import { $$, createElement, lastRightPart, ApiResult, createErrorStatus, pick } from "@servicestack/client"
|
|
4
4
|
import SettingsDialog, { useSettings } from './SettingsDialog.mjs'
|
|
5
5
|
import ChatBody from './ChatBody.mjs'
|
|
@@ -782,18 +782,79 @@ const HomeTools = {
|
|
|
782
782
|
`,
|
|
783
783
|
}
|
|
784
784
|
|
|
785
|
+
const ThreadHeader = {
|
|
786
|
+
template: `
|
|
787
|
+
<div v-if="showComponents.length" class="flex items-center justify-center gap-2">
|
|
788
|
+
<div v-for="component in showComponents">
|
|
789
|
+
<component :is="component" :thread="thread" />
|
|
790
|
+
</div>
|
|
791
|
+
</div>
|
|
792
|
+
`,
|
|
793
|
+
props: { thread: Object },
|
|
794
|
+
setup(props) {
|
|
795
|
+
const ctx = inject('ctx')
|
|
796
|
+
const showComponents = computed(() => {
|
|
797
|
+
const args = { thread: props.thread }
|
|
798
|
+
return Object.values(ctx.threadHeaderComponents).filter(def => def.show(args)).map(def => def.component)
|
|
799
|
+
})
|
|
800
|
+
return {
|
|
801
|
+
showComponents,
|
|
802
|
+
}
|
|
803
|
+
}
|
|
804
|
+
}
|
|
805
|
+
|
|
785
806
|
const ThreadFooter = {
|
|
786
807
|
template: `
|
|
787
|
-
<div>
|
|
788
|
-
<div v-for="
|
|
789
|
-
<component
|
|
808
|
+
<div v-if="showComponents.length">
|
|
809
|
+
<div v-for="component in showComponents">
|
|
810
|
+
<component :is="component" :thread="thread" />
|
|
790
811
|
</div>
|
|
791
812
|
</div>
|
|
792
813
|
`,
|
|
793
|
-
props: {
|
|
794
|
-
|
|
795
|
-
|
|
814
|
+
props: { thread: Object },
|
|
815
|
+
setup(props) {
|
|
816
|
+
const ctx = inject('ctx')
|
|
817
|
+
const showComponents = computed(() => {
|
|
818
|
+
const args = { thread: props.thread }
|
|
819
|
+
return Object.values(ctx.threadFooterComponents).filter(def => def.show(args)).map(def => def.component)
|
|
820
|
+
})
|
|
821
|
+
return {
|
|
822
|
+
showComponents,
|
|
823
|
+
}
|
|
824
|
+
}
|
|
825
|
+
}
|
|
826
|
+
|
|
827
|
+
const ThreadModel = {
|
|
828
|
+
template: `
|
|
829
|
+
<span @click="$chat.setSelectedModel({ name: thread.model})"
|
|
830
|
+
class="flex items-center cursor-pointer px-1.5 py-0.5 text-xs rounded text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-800 hover:text-gray-900 dark:hover:text-gray-100 transition-colors border hover:border-gray-300 dark:hover:border-gray-700">
|
|
831
|
+
<ProviderIcon class="size-4 mr-1" :provider="$chat.getProviderForModel(thread.model)" />
|
|
832
|
+
{{thread.model}}
|
|
833
|
+
</span>
|
|
834
|
+
`,
|
|
835
|
+
props: { thread: Object },
|
|
836
|
+
}
|
|
837
|
+
|
|
838
|
+
const ThreadTools = {
|
|
839
|
+
template: `
|
|
840
|
+
<div class="text-sm flex items-center gap-1 flex items-center px-1.5 py-0.5 text-xs rounded text-gray-600 dark:text-gray-300 border cursor-help" :title="title">
|
|
841
|
+
<svg class="size-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 10h3V7L6.5 3.5a6 6 0 0 1 8 8l6 6a2 2 0 0 1-3 3l-6-6a6 6 0 0 1-8-8z"/></svg>
|
|
842
|
+
<span v-if="toolFns.length==1">{{toolFns[0].function.name}}</span>
|
|
843
|
+
<span v-else-if="toolFns.length>1">{{toolFns.length}} Tools</span>
|
|
844
|
+
</div>
|
|
845
|
+
`,
|
|
846
|
+
props: { thread: Object },
|
|
796
847
|
setup(props) {
|
|
848
|
+
const toolFns = computed(() => props.thread.tools.filter(x => x.type === 'function'))
|
|
849
|
+
const title = computed(() => toolFns.value.length == 1
|
|
850
|
+
? toolFns.value[0].function.name
|
|
851
|
+
: toolFns.value.length > 1
|
|
852
|
+
? toolFns.value.map(x => x.function.name).join('\n')
|
|
853
|
+
: '')
|
|
854
|
+
return {
|
|
855
|
+
toolFns,
|
|
856
|
+
title,
|
|
857
|
+
}
|
|
797
858
|
}
|
|
798
859
|
}
|
|
799
860
|
|
|
@@ -807,6 +868,7 @@ export default {
|
|
|
807
868
|
ChatBody,
|
|
808
869
|
HomeTools,
|
|
809
870
|
Home,
|
|
871
|
+
ThreadHeader,
|
|
810
872
|
ThreadFooter,
|
|
811
873
|
})
|
|
812
874
|
ctx.setGlobals({
|
|
@@ -835,6 +897,17 @@ export default {
|
|
|
835
897
|
{ path: '/c/:id', component: ChatBody, meta },
|
|
836
898
|
])
|
|
837
899
|
|
|
900
|
+
ctx.setThreadHeaders({
|
|
901
|
+
model: {
|
|
902
|
+
component: ThreadModel,
|
|
903
|
+
show({ thread }) { return thread.model }
|
|
904
|
+
},
|
|
905
|
+
tools: {
|
|
906
|
+
component: ThreadTools,
|
|
907
|
+
show({ thread }) { return (thread.tools || []).filter(x => x.type === 'function').length }
|
|
908
|
+
}
|
|
909
|
+
})
|
|
910
|
+
|
|
838
911
|
const prefs = ctx.getPrefs()
|
|
839
912
|
if (prefs.model) {
|
|
840
913
|
ctx.state.selectedModel = prefs.model
|
llms/ui/tailwind.input.css
CHANGED
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
llms/__init__.py,sha256=DKwTZDsyYL_wHe7yvLw49Nf8PSgPSyWaeVdotUqSvrQ,84
|
|
2
2
|
llms/__main__.py,sha256=hrBulHIt3lmPm1BCyAEVtB6DQ0Hvc3gnIddhHCmJasg,151
|
|
3
|
-
llms/db.py,sha256=
|
|
3
|
+
llms/db.py,sha256=BEwBSh7AOc6seylB6Q5k1ru07Zx8WDkSHkto0YWNDSg,11687
|
|
4
4
|
llms/index.html,sha256=nGk1Djtn9p7l6LuKp4Kg0JIB9fCzxtTWXFfmDb4ggpc,1658
|
|
5
5
|
llms/llms.json,sha256=gebw9PNWf5UTpU7RDIwo6QcBaJEkU0z3k9EeXR4hQiI,11147
|
|
6
|
-
llms/main.py,sha256=
|
|
6
|
+
llms/main.py,sha256=5VkdSWkz1kCqR5miHoCufYiNFgMi2maXiXdqRGa6Hao,156278
|
|
7
7
|
llms/providers-extra.json,sha256=w7_5gB0YUPK0PJNeViM7vRDfNGChXUKMHfGHenVxEkM,10165
|
|
8
8
|
llms/providers.json,sha256=Hc1STJW9hqM_MWBjeJljs_0I3bTo6qhGlEsL0o-dUuA,285221
|
|
9
9
|
llms/extensions/analytics/ui/index.mjs,sha256=cr9dPmEJjha2xX6A_7xbJxkOolWFP1p6TgIoO8M8juI,69540
|
|
10
10
|
llms/extensions/app/README.md,sha256=TKoblZpHlheLCh_dfXOxqTc5OvxlgMBa-vKo8Hqb2gg,1370
|
|
11
|
-
llms/extensions/app/__init__.py,sha256=
|
|
11
|
+
llms/extensions/app/__init__.py,sha256=eOdIGG7jrQhBZ-ndNlvbTFOhZlH9n1tG-WvqJw8cakA,20812
|
|
12
12
|
llms/extensions/app/db.py,sha256=CqpHReXXjrLXXNxINo-wsnBJenKZVVHKlWlhtXFWj08,21503
|
|
13
13
|
llms/extensions/app/ui/Recents.mjs,sha256=HT9R2IEus3dGEqtKPGrgX1eMp4EQ2j2jLwv-Fn1Us5E,9253
|
|
14
14
|
llms/extensions/app/ui/index.mjs,sha256=sB9176LLNuKFsZ28yL-tROA6J4xePNtvxtSrzFcinRo,13271
|
|
15
|
-
llms/extensions/app/ui/threadStore.mjs,sha256=
|
|
15
|
+
llms/extensions/app/ui/threadStore.mjs,sha256=5qZv3maUfpLXnoEQN6EPYXUbe3B_OCgT_ttoBpvA4Dk,12192
|
|
16
16
|
llms/extensions/core_tools/CALCULATOR.md,sha256=pJRtCVF01BgxFrSNh2Ys_lrRi3SFwLgJzAX93AGh93Q,1944
|
|
17
|
-
llms/extensions/core_tools/__init__.py,sha256=
|
|
17
|
+
llms/extensions/core_tools/__init__.py,sha256=SkBBjNYM0Vxq2ftAW_0HaA1brl-VrI3rYUcjvtpEBQ4,23078
|
|
18
18
|
llms/extensions/core_tools/ui/index.mjs,sha256=KycJ2FcQ6BieBY7fjWGxVBGHN6WuFx712OFrO6flXww,31770
|
|
19
|
+
llms/extensions/core_tools/ui/codemirror/codemirror.css,sha256=60lOqXLSZh74b39qxlbdZ4bXIeScnBtG4euWfktvm_M,8720
|
|
20
|
+
llms/extensions/core_tools/ui/codemirror/codemirror.js,sha256=7cA89SlK249o7tVfiEWIiqDEA6ZEWxX4CoZmofVA14s,402008
|
|
19
21
|
llms/extensions/core_tools/ui/codemirror/addon/edit/closebrackets.js,sha256=FDwwFMKSVPNTHMML5tkCBQhLz8Ns_6b5sqRv1CpAviA,7123
|
|
20
22
|
llms/extensions/core_tools/ui/codemirror/addon/edit/closetag.js,sha256=b74rk8wXRNnhStHWE0SffhbfTCqihC9ljvwXq_Zi-FA,8544
|
|
21
23
|
llms/extensions/core_tools/ui/codemirror/addon/edit/continuelist.js,sha256=a6nNlSi3Tn929LnOntBne_7XBX0areAFAYU2jP0OouM,3989
|
|
@@ -140,13 +142,13 @@ llms/extensions/system_prompts/ui/prompts.json,sha256=t5DD3bird-87wFa4OlW-bC2wdo
|
|
|
140
142
|
llms/extensions/tools/__init__.py,sha256=yfIK7dVqYiZGX5VeJ3x7HQWLPQfuPqeNYJsd0lpZUM4,120
|
|
141
143
|
llms/extensions/tools/ui/index.mjs,sha256=Nu69U6odCUh8uu1i8d5f8ryO4Lj_OFbPX2LnVyYu1fk,9602
|
|
142
144
|
llms/ui/App.mjs,sha256=zU-GtbcSMREizjUS9nWiMK6m_oT14MNJ-p_RCz2RVqA,7445
|
|
143
|
-
llms/ui/ai.mjs,sha256=
|
|
144
|
-
llms/ui/app.css,sha256=
|
|
145
|
-
llms/ui/ctx.mjs,sha256=
|
|
145
|
+
llms/ui/ai.mjs,sha256=5r1oVt7HA8b_ikDpHhA7e6sE8eFaDyxYg3c_Okt4WJw,6540
|
|
146
|
+
llms/ui/app.css,sha256=6iQiPeFZ_7pcf6RB1b7tvh6EY22A9lCn9SCCmoJKP2I,176402
|
|
147
|
+
llms/ui/ctx.mjs,sha256=eFTkWzVBKRU5YDFFVUq3ZDd6eMPa4VRQpE3q0O5Sfgg,12337
|
|
146
148
|
llms/ui/fav.svg,sha256=_R6MFeXl6wBFT0lqcUxYQIDWgm246YH_3hSTW0oO8qw,734
|
|
147
149
|
llms/ui/index.mjs,sha256=o-J2GVYYGFtfV4Pzlj-kjK4UrVP6ovTre5jD44gAiIc,4316
|
|
148
150
|
llms/ui/markdown.mjs,sha256=ZeGXxX4_UEUCVkLZzmwXlqWBfReSFzBivdxNu8uSgFk,6648
|
|
149
|
-
llms/ui/tailwind.input.css,sha256=
|
|
151
|
+
llms/ui/tailwind.input.css,sha256=ZneSjo_uNcvqMT8cAU837yUZoLZ_sWfgr5Gto7TNJPc,15786
|
|
150
152
|
llms/ui/typography.css,sha256=6o7pbMIamRVlm2GfzSStpcOG4T5eFCK_WcQ3RIHKAsU,19587
|
|
151
153
|
llms/ui/utils.mjs,sha256=Vv2YsKaOJCNYrxv19q-gU1wSuuMhEcTcm6M7_g9Ff0Y,6664
|
|
152
154
|
llms/ui/lib/chart.js,sha256=dx8FdDX0Rv6OZtZjr9FQh5h-twFsKjfnb-FvFlQ--cU,196176
|
|
@@ -163,12 +165,12 @@ llms/ui/lib/vue.mjs,sha256=75FuLhUTPk19sncwNIrm0BGEL0_Qw298-_v01fPWYoI,542872
|
|
|
163
165
|
llms/ui/modules/icons.mjs,sha256=LGcH0ys0QLS2ZKCO42qHpwPYbBV_EssoWLezU4XZEzU,27751
|
|
164
166
|
llms/ui/modules/layout.mjs,sha256=8pAxs8bedQI3b3eRA9nrfpLZznLmrpp4BZvigYAQjpQ,12572
|
|
165
167
|
llms/ui/modules/model-selector.mjs,sha256=6U4rAZ7vmQELFRQGWk4YEtq02v3lyHdMq6yUOp-ArXg,43184
|
|
166
|
-
llms/ui/modules/chat/ChatBody.mjs,sha256=
|
|
168
|
+
llms/ui/modules/chat/ChatBody.mjs,sha256=YbpIEl6OeBi1RqCPkW5UFbUk6qNi5B_GfRUK5Pmfms8,42875
|
|
167
169
|
llms/ui/modules/chat/SettingsDialog.mjs,sha256=HMBJTwrapKrRIAstIIqp0QlJL5O-ho4hzgvfagPfsX8,19930
|
|
168
|
-
llms/ui/modules/chat/index.mjs,sha256=
|
|
169
|
-
llms_py-3.0.
|
|
170
|
-
llms_py-3.0.
|
|
171
|
-
llms_py-3.0.
|
|
172
|
-
llms_py-3.0.
|
|
173
|
-
llms_py-3.0.
|
|
174
|
-
llms_py-3.0.
|
|
170
|
+
llms/ui/modules/chat/index.mjs,sha256=NA_9R7JEqHKZRnYGqte_J7qoDbG3RY8969TTNXqZa1k,37011
|
|
171
|
+
llms_py-3.0.4.dist-info/licenses/LICENSE,sha256=bus9cuAOWeYqBk2OuhSABVV1P4z7hgrEFISpyda_H5w,1532
|
|
172
|
+
llms_py-3.0.4.dist-info/METADATA,sha256=TgxpOLuMVr2KoZytO8HUSZh97FzFD37-V026tC246Mo,2191
|
|
173
|
+
llms_py-3.0.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
174
|
+
llms_py-3.0.4.dist-info/entry_points.txt,sha256=WswyE7PfnkZMIxboC-MS6flBD6wm-CYU7JSUnMhqMfM,40
|
|
175
|
+
llms_py-3.0.4.dist-info/top_level.txt,sha256=gC7hk9BKSeog8gyg-EM_g2gxm1mKHwFRfK-10BxOsa4,5
|
|
176
|
+
llms_py-3.0.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|