llms-py 3.0.3__py3-none-any.whl → 3.0.5__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 +1 -1
- 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 +1 -1
- llms/ui/ai.mjs +1 -1
- llms/ui/app.css +7 -0
- llms/ui/modules/chat/index.mjs +58 -0
- {llms_py-3.0.3.dist-info → llms_py-3.0.5.dist-info}/METADATA +1 -1
- {llms_py-3.0.3.dist-info → llms_py-3.0.5.dist-info}/RECORD +14 -12
- {llms_py-3.0.3.dist-info → llms_py-3.0.5.dist-info}/WHEEL +0 -0
- {llms_py-3.0.3.dist-info → llms_py-3.0.5.dist-info}/entry_points.txt +0 -0
- {llms_py-3.0.3.dist-info → llms_py-3.0.5.dist-info}/licenses/LICENSE +0 -0
- {llms_py-3.0.3.dist-info → llms_py-3.0.5.dist-info}/top_level.txt +0 -0
llms/main.py
CHANGED
llms/ui/ai.mjs
CHANGED
llms/ui/app.css
CHANGED
|
@@ -354,6 +354,9 @@
|
|
|
354
354
|
.pointer-events-none {
|
|
355
355
|
pointer-events: none;
|
|
356
356
|
}
|
|
357
|
+
.collapse {
|
|
358
|
+
visibility: collapse;
|
|
359
|
+
}
|
|
357
360
|
.invisible {
|
|
358
361
|
visibility: hidden;
|
|
359
362
|
}
|
|
@@ -2768,6 +2771,10 @@
|
|
|
2768
2771
|
--tw-outline-style: none;
|
|
2769
2772
|
outline-style: none;
|
|
2770
2773
|
}
|
|
2774
|
+
.select-all {
|
|
2775
|
+
-webkit-user-select: all;
|
|
2776
|
+
user-select: all;
|
|
2777
|
+
}
|
|
2771
2778
|
.select-none {
|
|
2772
2779
|
-webkit-user-select: none;
|
|
2773
2780
|
user-select: none;
|
llms/ui/modules/chat/index.mjs
CHANGED
|
@@ -115,6 +115,7 @@ export function addCopyButtons() {
|
|
|
115
115
|
|
|
116
116
|
export function useChatPrompt(ctx) {
|
|
117
117
|
const messageText = ref('')
|
|
118
|
+
const promptHistory = ref([])
|
|
118
119
|
const attachedFiles = ref([])
|
|
119
120
|
const hasImage = () => attachedFiles.value.some(f => imageExts.includes(lastRightPart(f.name, '.')))
|
|
120
121
|
const hasAudio = () => attachedFiles.value.some(f => audioExts.includes(lastRightPart(f.name, '.')))
|
|
@@ -363,6 +364,7 @@ export function useChatPrompt(ctx) {
|
|
|
363
364
|
createContent,
|
|
364
365
|
createRequest,
|
|
365
366
|
applySettings,
|
|
367
|
+
promptHistory,
|
|
366
368
|
messageText,
|
|
367
369
|
attachedFiles,
|
|
368
370
|
editingMessage,
|
|
@@ -420,6 +422,7 @@ const ChatPrompt = {
|
|
|
420
422
|
<textarea
|
|
421
423
|
ref="refMessage"
|
|
422
424
|
v-model="messageText"
|
|
425
|
+
@keydown="onKeyDown"
|
|
423
426
|
@keydown.enter.exact.prevent="sendMessage"
|
|
424
427
|
@keydown.enter.shift.exact="addNewLine"
|
|
425
428
|
@paste="onPaste"
|
|
@@ -491,6 +494,7 @@ const ChatPrompt = {
|
|
|
491
494
|
const config = ctx.state.config
|
|
492
495
|
const {
|
|
493
496
|
messageText,
|
|
497
|
+
promptHistory,
|
|
494
498
|
hasImage,
|
|
495
499
|
hasAudio,
|
|
496
500
|
hasFile,
|
|
@@ -500,6 +504,8 @@ const ChatPrompt = {
|
|
|
500
504
|
const fileInput = ref(null)
|
|
501
505
|
const refMessage = ref(null)
|
|
502
506
|
const showSettings = ref(false)
|
|
507
|
+
const historyIndex = ref(-1)
|
|
508
|
+
const isNavigatingHistory = ref(false)
|
|
503
509
|
|
|
504
510
|
// File attachments (+) handlers
|
|
505
511
|
const triggerFilePicker = () => {
|
|
@@ -639,6 +645,14 @@ const ChatPrompt = {
|
|
|
639
645
|
// 1. Construct Structured Content (Text + Attachments)
|
|
640
646
|
let text = messageText.value.trim()
|
|
641
647
|
|
|
648
|
+
if (text) {
|
|
649
|
+
const idx = promptHistory.value.indexOf(text)
|
|
650
|
+
if (idx !== -1) {
|
|
651
|
+
promptHistory.value.splice(idx, 1)
|
|
652
|
+
}
|
|
653
|
+
promptHistory.value.push(text)
|
|
654
|
+
}
|
|
655
|
+
|
|
642
656
|
messageText.value = ''
|
|
643
657
|
let content = ctx.chat.createContent({ text, files: ctx.chat.attachedFiles.value })
|
|
644
658
|
|
|
@@ -742,6 +756,49 @@ const ChatPrompt = {
|
|
|
742
756
|
//messageText.value += '\n'
|
|
743
757
|
}
|
|
744
758
|
|
|
759
|
+
const onKeyDown = (e) => {
|
|
760
|
+
if (e.key === 'ArrowUp') {
|
|
761
|
+
if (refMessage.value.selectionStart === 0 && refMessage.value.selectionEnd === 0) {
|
|
762
|
+
if (promptHistory.value.length > 0) {
|
|
763
|
+
e.preventDefault()
|
|
764
|
+
if (historyIndex.value === -1) {
|
|
765
|
+
historyIndex.value = promptHistory.value.length - 1
|
|
766
|
+
} else {
|
|
767
|
+
historyIndex.value = Math.max(0, historyIndex.value - 1)
|
|
768
|
+
}
|
|
769
|
+
isNavigatingHistory.value = true
|
|
770
|
+
messageText.value = promptHistory.value[historyIndex.value]
|
|
771
|
+
nextTick(() => {
|
|
772
|
+
refMessage.value.setSelectionRange(0, 0)
|
|
773
|
+
})
|
|
774
|
+
}
|
|
775
|
+
}
|
|
776
|
+
} else if (e.key === 'ArrowDown') {
|
|
777
|
+
if (historyIndex.value !== -1) {
|
|
778
|
+
e.preventDefault()
|
|
779
|
+
if (historyIndex.value < promptHistory.value.length - 1) {
|
|
780
|
+
historyIndex.value++
|
|
781
|
+
isNavigatingHistory.value = true
|
|
782
|
+
messageText.value = promptHistory.value[historyIndex.value]
|
|
783
|
+
} else {
|
|
784
|
+
historyIndex.value = -1
|
|
785
|
+
isNavigatingHistory.value = true
|
|
786
|
+
messageText.value = ''
|
|
787
|
+
}
|
|
788
|
+
nextTick(() => {
|
|
789
|
+
refMessage.value.setSelectionRange(0, 0)
|
|
790
|
+
})
|
|
791
|
+
}
|
|
792
|
+
}
|
|
793
|
+
}
|
|
794
|
+
|
|
795
|
+
watch(messageText, (newValue) => {
|
|
796
|
+
if (!isNavigatingHistory.value) {
|
|
797
|
+
historyIndex.value = -1
|
|
798
|
+
}
|
|
799
|
+
isNavigatingHistory.value = false
|
|
800
|
+
})
|
|
801
|
+
|
|
745
802
|
watch(() => ctx.state.selectedAspectRatio, newValue => {
|
|
746
803
|
ctx.setPrefs({ aspectRatio: newValue })
|
|
747
804
|
})
|
|
@@ -769,6 +826,7 @@ const ChatPrompt = {
|
|
|
769
826
|
removeAttachment,
|
|
770
827
|
sendMessage,
|
|
771
828
|
addNewLine,
|
|
829
|
+
onKeyDown,
|
|
772
830
|
imageAspectRatios,
|
|
773
831
|
}
|
|
774
832
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
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=oozp5I5lECVO8oZEFwcZl3ES5mARqWeR1BkoqG5kSqM,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=Y5JnU4yPFjTgGNyvrnvKD5i8vFl916UJbhtMYhUMSNM,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
|
|
@@ -14,8 +14,10 @@ llms/extensions/app/ui/Recents.mjs,sha256=HT9R2IEus3dGEqtKPGrgX1eMp4EQ2j2jLwv-Fn
|
|
|
14
14
|
llms/extensions/app/ui/index.mjs,sha256=sB9176LLNuKFsZ28yL-tROA6J4xePNtvxtSrzFcinRo,13271
|
|
15
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,8 +142,8 @@ 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/ai.mjs,sha256=VaqXX8QH_BmUkbwIs-ZHY1U_n78VnUNg6_P0X7uQEn0,6540
|
|
146
|
+
llms/ui/app.css,sha256=6iQiPeFZ_7pcf6RB1b7tvh6EY22A9lCn9SCCmoJKP2I,176402
|
|
145
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
|
|
@@ -165,10 +167,10 @@ llms/ui/modules/layout.mjs,sha256=8pAxs8bedQI3b3eRA9nrfpLZznLmrpp4BZvigYAQjpQ,12
|
|
|
165
167
|
llms/ui/modules/model-selector.mjs,sha256=6U4rAZ7vmQELFRQGWk4YEtq02v3lyHdMq6yUOp-ArXg,43184
|
|
166
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=3arA5PigH6BdBDqi5SbgcNkEIETENYNNxWF3Ro7HFsM,39349
|
|
171
|
+
llms_py-3.0.5.dist-info/licenses/LICENSE,sha256=bus9cuAOWeYqBk2OuhSABVV1P4z7hgrEFISpyda_H5w,1532
|
|
172
|
+
llms_py-3.0.5.dist-info/METADATA,sha256=aszHVjoNjkFuAjCi7lxPFtKbDwA54u-4i6-sz7hrQj0,2191
|
|
173
|
+
llms_py-3.0.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
174
|
+
llms_py-3.0.5.dist-info/entry_points.txt,sha256=WswyE7PfnkZMIxboC-MS6flBD6wm-CYU7JSUnMhqMfM,40
|
|
175
|
+
llms_py-3.0.5.dist-info/top_level.txt,sha256=gC7hk9BKSeog8gyg-EM_g2gxm1mKHwFRfK-10BxOsa4,5
|
|
176
|
+
llms_py-3.0.5.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|