chat-console 0.4.3__py3-none-any.whl → 0.4.7__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.
- app/__init__.py +1 -1
- app/console_chat.py +816 -0
- app/console_main.py +58 -0
- app/console_utils.py +195 -0
- app/main.py +246 -126
- app/ui/borders.py +154 -0
- app/ui/chat_interface.py +84 -78
- app/ui/model_selector.py +11 -3
- app/ui/styles.py +231 -137
- {chat_console-0.4.3.dist-info → chat_console-0.4.7.dist-info}/METADATA +2 -2
- chat_console-0.4.7.dist-info/RECORD +28 -0
- {chat_console-0.4.3.dist-info → chat_console-0.4.7.dist-info}/WHEEL +1 -1
- chat_console-0.4.7.dist-info/entry_points.txt +5 -0
- chat_console-0.4.3.dist-info/RECORD +0 -24
- chat_console-0.4.3.dist-info/entry_points.txt +0 -3
- {chat_console-0.4.3.dist-info → chat_console-0.4.7.dist-info}/licenses/LICENSE +0 -0
- {chat_console-0.4.3.dist-info → chat_console-0.4.7.dist-info}/top_level.txt +0 -0
app/ui/styles.py
CHANGED
@@ -5,276 +5,370 @@ from textual.app import ComposeResult
|
|
5
5
|
from textual.containers import Container, Horizontal, Vertical
|
6
6
|
from textual.css.query import NoMatches
|
7
7
|
|
8
|
-
#
|
9
|
-
|
8
|
+
# Rams-inspired minimal color palette
|
9
|
+
# Following "Less but better" - functional colors with clear hierarchy
|
10
|
+
RAMS_COLORS = {
|
10
11
|
"dark": {
|
11
|
-
"background": "#0C0C0C",
|
12
|
-
"foreground": "#
|
13
|
-
"
|
14
|
-
"
|
15
|
-
"
|
16
|
-
"
|
17
|
-
"
|
18
|
-
"
|
19
|
-
"
|
20
|
-
"
|
12
|
+
"background": "#0C0C0C", # Deep black
|
13
|
+
"foreground": "#E8E8E8", # Clean white
|
14
|
+
"accent": "#33FF33", # Minimal green accent
|
15
|
+
"muted": "#666666", # Subtle gray
|
16
|
+
"border": "#333333", # Dark gray borders
|
17
|
+
"selection": "#1A1A1A", # Subtle selection
|
18
|
+
"user_msg": "#E8E8E8", # Same as foreground for consistency
|
19
|
+
"assistant_msg": "#E8E8E8", # Same as foreground for consistency
|
20
|
+
"system_msg": "#666666", # Muted for less important info
|
21
|
+
"highlight": "#33FF33", # Use accent for highlights
|
22
|
+
"error": "#FF4444", # Minimal red for errors
|
23
|
+
"success": "#33FF33", # Use accent for success
|
24
|
+
"timestamp": "#666666", # Muted for timestamps
|
21
25
|
},
|
22
26
|
"light": {
|
23
|
-
"background": "#
|
24
|
-
"foreground": "#000000",
|
25
|
-
"
|
26
|
-
"
|
27
|
-
"
|
28
|
-
"
|
29
|
-
"
|
30
|
-
"
|
31
|
-
"
|
32
|
-
"
|
27
|
+
"background": "#FFFFFF", # Pure white
|
28
|
+
"foreground": "#000000", # Pure black
|
29
|
+
"accent": "#007ACC", # Minimal blue accent
|
30
|
+
"muted": "#999999", # Subtle gray
|
31
|
+
"border": "#CCCCCC", # Light gray borders
|
32
|
+
"selection": "#F0F0F0", # Subtle selection
|
33
|
+
"user_msg": "#000000", # Same as foreground
|
34
|
+
"assistant_msg": "#000000", # Same as foreground
|
35
|
+
"system_msg": "#999999", # Muted
|
36
|
+
"highlight": "#007ACC", # Use accent
|
37
|
+
"error": "#CC0000", # Minimal red
|
38
|
+
"success": "#007ACC", # Use accent
|
39
|
+
"timestamp": "#999999", # Muted for timestamps
|
33
40
|
}
|
34
41
|
}
|
35
42
|
|
43
|
+
# Legacy alias for backward compatibility
|
44
|
+
COLORS = RAMS_COLORS
|
45
|
+
|
36
46
|
def get_theme(theme_name="dark"):
|
37
|
-
"""Get Rich theme based on
|
38
|
-
colors =
|
47
|
+
"""Get Rich theme based on Rams design principles"""
|
48
|
+
colors = RAMS_COLORS.get(theme_name, RAMS_COLORS["dark"])
|
39
49
|
|
40
50
|
return Theme({
|
41
|
-
"user": Style(color=colors["user_msg"], bold
|
42
|
-
"assistant": Style(color=colors["assistant_msg"]),
|
43
|
-
"system": Style(color=colors["
|
44
|
-
"highlight": Style(color=colors["
|
45
|
-
"selection": Style(bgcolor=colors["selection"]),
|
46
|
-
"border": Style(color=colors["border"]),
|
47
|
-
"error": Style(color=colors["error"],
|
48
|
-
"success": Style(color=colors["success"]),
|
49
|
-
"prompt": Style(color=colors["
|
50
|
-
"heading": Style(color=colors["
|
51
|
-
"dim": Style(color=colors["
|
52
|
-
"
|
53
|
-
"code
|
54
|
-
"
|
51
|
+
"user": Style(color=colors["user_msg"]), # No bold - cleaner
|
52
|
+
"assistant": Style(color=colors["assistant_msg"]), # Consistent with user
|
53
|
+
"system": Style(color=colors["muted"], italic=True), # Subtle for system msgs
|
54
|
+
"highlight": Style(color=colors["accent"]), # Use accent sparingly
|
55
|
+
"selection": Style(bgcolor=colors["selection"]), # Subtle selection
|
56
|
+
"border": Style(color=colors["border"]), # Functional borders
|
57
|
+
"error": Style(color=colors["error"]), # Clear error indication
|
58
|
+
"success": Style(color=colors["success"]), # Minimal success
|
59
|
+
"prompt": Style(color=colors["accent"]), # Use accent for prompts
|
60
|
+
"heading": Style(color=colors["accent"]), # Minimal headings
|
61
|
+
"dim": Style(color=colors["muted"]), # Muted for less important
|
62
|
+
"timestamp": Style(color=colors["timestamp"]), # Subtle timestamps
|
63
|
+
"code": Style(bgcolor=colors["selection"], color=colors["foreground"]), # Minimal code styling
|
64
|
+
"code.syntax": Style(color=colors["accent"]), # Use accent for syntax
|
65
|
+
"link": Style(color=colors["accent"]), # Clean links
|
55
66
|
})
|
56
67
|
|
57
|
-
#
|
68
|
+
# Rams-inspired CSS following "As little design as possible"
|
58
69
|
CSS = """
|
59
|
-
/* Base styles */
|
70
|
+
/* Base styles - Clean foundation */
|
60
71
|
Screen {
|
61
|
-
background:
|
62
|
-
color:
|
72
|
+
background: #0C0C0C; /* Deep black */
|
73
|
+
color: #E8E8E8; /* Clean white */
|
63
74
|
}
|
64
75
|
|
65
|
-
/*
|
76
|
+
/* Message display - Purposeful spacing */
|
66
77
|
.message {
|
67
78
|
width: 100%;
|
68
|
-
padding:
|
69
|
-
margin: 0;
|
79
|
+
padding: 2 3; /* Generous padding for readability */
|
80
|
+
margin: 1 0; /* Vertical breathing room */
|
81
|
+
text-wrap: wrap;
|
70
82
|
}
|
71
83
|
|
72
84
|
.message-content {
|
73
85
|
width: 100%;
|
74
86
|
text-align: left;
|
75
87
|
padding: 0;
|
88
|
+
line-height: 1.4; /* Better readability */
|
89
|
+
}
|
90
|
+
|
91
|
+
/* User messages - Minimal accent */
|
92
|
+
.user-message {
|
93
|
+
background: #1A1A1A; /* Subtle background */
|
94
|
+
border-left: solid #33FF33 2; /* Minimal accent line */
|
95
|
+
margin-left: 2; /* Slight indent */
|
76
96
|
}
|
77
97
|
|
78
|
-
/*
|
98
|
+
/* Assistant messages - Clean distinction */
|
99
|
+
.assistant-message {
|
100
|
+
background: #0C0C0C; /* Clean background */
|
101
|
+
border-left: solid #666666 1; /* Subtle indicator */
|
102
|
+
margin-right: 2; /* Opposite indent */
|
103
|
+
}
|
104
|
+
|
105
|
+
/* Code blocks - Functional styling */
|
79
106
|
.code-block {
|
80
|
-
background:
|
81
|
-
color:
|
82
|
-
border: solid
|
83
|
-
margin: 1
|
84
|
-
padding:
|
107
|
+
background: #1A1A1A;
|
108
|
+
color: #E8E8E8;
|
109
|
+
border: solid #333333 1;
|
110
|
+
margin: 1 0;
|
111
|
+
padding: 2;
|
85
112
|
overflow: auto;
|
113
|
+
font-family: monospace;
|
86
114
|
}
|
87
115
|
|
88
|
-
/* Input area */
|
116
|
+
/* Input area - Clean and functional */
|
89
117
|
#input-container {
|
90
118
|
height: auto;
|
91
|
-
background:
|
92
|
-
border-top: solid
|
93
|
-
padding:
|
119
|
+
background: #0C0C0C;
|
120
|
+
border-top: solid #333333 1;
|
121
|
+
padding: 2; /* Generous padding */
|
94
122
|
}
|
95
123
|
|
96
124
|
#message-input {
|
97
|
-
background:
|
98
|
-
color:
|
99
|
-
border: solid
|
125
|
+
background: #0C0C0C;
|
126
|
+
color: #E8E8E8;
|
127
|
+
border: solid #333333 1; /* Single, clean border */
|
100
128
|
min-height: 2;
|
101
|
-
padding:
|
129
|
+
padding: 1 2; /* Comfortable padding */
|
102
130
|
}
|
103
131
|
|
104
132
|
#message-input:focus {
|
105
|
-
border:
|
133
|
+
border: solid #33FF33 1; /* Minimal focus indicator */
|
134
|
+
outline: none;
|
106
135
|
}
|
107
136
|
|
108
|
-
/*
|
137
|
+
/* Buttons - Minimal and functional */
|
109
138
|
.action-button {
|
110
|
-
background:
|
111
|
-
color: #
|
112
|
-
border:
|
113
|
-
min-width:
|
114
|
-
margin
|
115
|
-
padding:
|
116
|
-
text-style: bold
|
117
|
-
font-size: 1.1;
|
139
|
+
background: transparent;
|
140
|
+
color: #E8E8E8;
|
141
|
+
border: solid #333333 1;
|
142
|
+
min-width: 8;
|
143
|
+
margin: 0 1;
|
144
|
+
padding: 1 2;
|
145
|
+
text-style: normal; /* No bold - cleaner */
|
118
146
|
}
|
119
147
|
|
120
148
|
.action-button:hover {
|
121
|
-
background:
|
122
|
-
|
123
|
-
|
149
|
+
background: #1A1A1A;
|
150
|
+
border: solid #33FF33 1;
|
151
|
+
color: #E8E8E8;
|
124
152
|
}
|
125
153
|
|
126
|
-
|
154
|
+
.action-button:focus {
|
155
|
+
border: solid #33FF33 1;
|
156
|
+
}
|
157
|
+
|
158
|
+
/* Sidebar - Clean hierarchy */
|
127
159
|
#sidebar {
|
128
160
|
width: 25%;
|
129
|
-
min-width:
|
130
|
-
background:
|
131
|
-
border-right: solid
|
161
|
+
min-width: 20;
|
162
|
+
background: #0C0C0C;
|
163
|
+
border-right: solid #333333 1;
|
132
164
|
}
|
133
165
|
|
134
|
-
/* Chat list */
|
166
|
+
/* Chat list - Functional design */
|
135
167
|
.chat-item {
|
136
|
-
padding:
|
137
|
-
height:
|
138
|
-
|
168
|
+
padding: 1 2; /* Comfortable padding */
|
169
|
+
height: auto;
|
170
|
+
min-height: 3;
|
171
|
+
border-bottom: solid #1A1A1A 1;
|
139
172
|
}
|
140
173
|
|
141
174
|
.chat-item:hover {
|
142
|
-
background:
|
175
|
+
background: #1A1A1A; /* Subtle hover */
|
143
176
|
}
|
144
177
|
|
145
178
|
.chat-item.selected {
|
146
|
-
background:
|
147
|
-
border-left:
|
179
|
+
background: #1A1A1A;
|
180
|
+
border-left: solid #33FF33 2; /* Minimal selection indicator */
|
148
181
|
}
|
149
182
|
|
150
183
|
.chat-title {
|
151
184
|
width: 100%;
|
152
|
-
content-align:
|
185
|
+
content-align: left top;
|
153
186
|
text-align: left;
|
187
|
+
color: #E8E8E8;
|
154
188
|
}
|
155
189
|
|
156
190
|
.chat-model {
|
157
|
-
color:
|
158
|
-
text-align:
|
191
|
+
color: #666666; /* Muted secondary info */
|
192
|
+
text-align: left;
|
193
|
+
font-size: 0.9;
|
159
194
|
}
|
160
195
|
|
161
196
|
.chat-date {
|
162
|
-
color:
|
197
|
+
color: #666666; /* Consistent muted color */
|
163
198
|
text-align: right;
|
199
|
+
font-size: 0.9;
|
164
200
|
}
|
165
201
|
|
166
|
-
/* Search input */
|
202
|
+
/* Search input - Clean and functional */
|
167
203
|
#search-input {
|
168
204
|
width: 100%;
|
169
|
-
border: solid
|
170
|
-
margin:
|
171
|
-
height:
|
205
|
+
border: solid #333333 1;
|
206
|
+
margin: 1;
|
207
|
+
height: 3;
|
208
|
+
padding: 1;
|
209
|
+
background: #0C0C0C;
|
210
|
+
color: #E8E8E8;
|
172
211
|
}
|
173
212
|
|
174
213
|
#search-input:focus {
|
175
|
-
border: solid
|
214
|
+
border: solid #33FF33 1;
|
215
|
+
outline: none;
|
176
216
|
}
|
177
217
|
|
178
|
-
/*
|
218
|
+
/* Selectors - Consistent minimal styling */
|
179
219
|
#model-selector {
|
180
220
|
width: 100%;
|
181
|
-
height:
|
182
|
-
margin:
|
183
|
-
background:
|
184
|
-
border: solid
|
221
|
+
height: 3;
|
222
|
+
margin: 1;
|
223
|
+
background: #0C0C0C;
|
224
|
+
border: solid #333333 1;
|
225
|
+
color: #E8E8E8;
|
226
|
+
padding: 1;
|
185
227
|
}
|
186
228
|
|
187
|
-
/* Style selector */
|
188
229
|
#style-selector {
|
189
230
|
width: 100%;
|
190
|
-
height:
|
191
|
-
margin:
|
192
|
-
background:
|
193
|
-
border: solid
|
231
|
+
height: 3;
|
232
|
+
margin: 1;
|
233
|
+
background: #0C0C0C;
|
234
|
+
border: solid #333333 1;
|
235
|
+
color: #E8E8E8;
|
236
|
+
padding: 1;
|
194
237
|
}
|
195
238
|
|
196
|
-
/* Header */
|
239
|
+
/* Header - Clean information architecture */
|
197
240
|
#app-header {
|
198
241
|
width: 100%;
|
199
|
-
height:
|
200
|
-
background:
|
201
|
-
color:
|
202
|
-
content-align:
|
203
|
-
text-align:
|
204
|
-
border-bottom: solid
|
242
|
+
height: 3;
|
243
|
+
background: #0C0C0C;
|
244
|
+
color: #E8E8E8;
|
245
|
+
content-align: left middle;
|
246
|
+
text-align: left;
|
247
|
+
border-bottom: solid #333333 1;
|
248
|
+
padding: 0 2;
|
205
249
|
}
|
206
250
|
|
207
|
-
/* Loading indicator */
|
251
|
+
/* Loading indicator - Minimal and unobtrusive */
|
208
252
|
#loading-indicator {
|
209
|
-
background:
|
210
|
-
color:
|
211
|
-
padding:
|
253
|
+
background: #0C0C0C;
|
254
|
+
color: #666666; /* Muted for less distraction */
|
255
|
+
padding: 1 2;
|
212
256
|
height: auto;
|
213
257
|
width: 100%;
|
214
|
-
border-top: solid
|
258
|
+
border-top: solid #333333 1;
|
215
259
|
display: none;
|
260
|
+
text-align: center;
|
216
261
|
}
|
217
262
|
|
218
|
-
/*
|
263
|
+
/* Modal - Clean and focused */
|
219
264
|
.modal {
|
220
|
-
background:
|
221
|
-
border: solid
|
222
|
-
padding:
|
265
|
+
background: #0C0C0C;
|
266
|
+
border: solid #333333 1;
|
267
|
+
padding: 2;
|
223
268
|
height: auto;
|
224
269
|
min-width: 40;
|
225
270
|
max-width: 60;
|
226
271
|
}
|
227
272
|
|
228
273
|
.modal-title {
|
229
|
-
background:
|
230
|
-
color:
|
274
|
+
background: #0C0C0C;
|
275
|
+
color: #E8E8E8;
|
231
276
|
width: 100%;
|
232
|
-
height:
|
233
|
-
content-align:
|
234
|
-
text-align:
|
277
|
+
height: auto;
|
278
|
+
content-align: left middle;
|
279
|
+
text-align: left;
|
280
|
+
padding: 1 0;
|
281
|
+
border-bottom: solid #333333 1;
|
282
|
+
margin-bottom: 2;
|
235
283
|
}
|
236
284
|
|
237
285
|
.form-label {
|
238
286
|
width: 100%;
|
239
287
|
padding: 1 0;
|
288
|
+
color: #E8E8E8;
|
240
289
|
}
|
241
290
|
|
242
291
|
.form-input {
|
243
292
|
width: 100%;
|
244
|
-
background:
|
245
|
-
border: solid
|
293
|
+
background: #0C0C0C;
|
294
|
+
border: solid #333333 1;
|
246
295
|
height: 3;
|
247
|
-
margin-bottom:
|
296
|
+
margin-bottom: 2;
|
297
|
+
padding: 1;
|
298
|
+
color: #E8E8E8;
|
248
299
|
}
|
249
300
|
|
250
301
|
.form-input:focus {
|
251
|
-
border: solid
|
302
|
+
border: solid #33FF33 1;
|
303
|
+
outline: none;
|
252
304
|
}
|
253
305
|
|
254
306
|
.button-container {
|
255
307
|
width: 100%;
|
256
|
-
height:
|
308
|
+
height: auto;
|
257
309
|
align: right middle;
|
310
|
+
padding-top: 2;
|
258
311
|
}
|
259
312
|
|
260
313
|
.button {
|
261
|
-
background:
|
262
|
-
color:
|
263
|
-
min-width:
|
314
|
+
background: transparent;
|
315
|
+
color: #E8E8E8;
|
316
|
+
min-width: 8;
|
264
317
|
margin-left: 1;
|
265
|
-
border: solid
|
318
|
+
border: solid #333333 1;
|
319
|
+
padding: 1 2;
|
320
|
+
}
|
321
|
+
|
322
|
+
.button:hover {
|
323
|
+
background: #1A1A1A;
|
324
|
+
border: solid #33FF33 1;
|
266
325
|
}
|
267
326
|
|
268
327
|
.button.cancel {
|
269
|
-
|
328
|
+
border: solid #FF4444 1;
|
270
329
|
}
|
271
330
|
|
272
|
-
|
331
|
+
.button.cancel:hover {
|
332
|
+
border: solid #FF4444 1;
|
333
|
+
background: #1A1A1A;
|
334
|
+
}
|
335
|
+
|
336
|
+
/* Tags - Minimal and functional */
|
273
337
|
.tag {
|
274
|
-
background:
|
275
|
-
color:
|
338
|
+
background: transparent;
|
339
|
+
color: #E8E8E8;
|
276
340
|
padding: 0 1;
|
277
341
|
margin: 0 1 0 0;
|
278
|
-
border: solid
|
342
|
+
border: solid #333333 1;
|
343
|
+
}
|
344
|
+
|
345
|
+
/* Timestamp styling */
|
346
|
+
.timestamp {
|
347
|
+
color: #666666;
|
348
|
+
font-size: 0.9;
|
349
|
+
}
|
350
|
+
|
351
|
+
/* Focus indicators - Consistent throughout */
|
352
|
+
*:focus {
|
353
|
+
outline: none;
|
354
|
+
border-color: #33FF33 !important;
|
355
|
+
}
|
356
|
+
|
357
|
+
/* Scrollbars - Minimal styling */
|
358
|
+
::-webkit-scrollbar {
|
359
|
+
width: 8px;
|
360
|
+
}
|
361
|
+
|
362
|
+
::-webkit-scrollbar-track {
|
363
|
+
background: #0C0C0C;
|
364
|
+
}
|
365
|
+
|
366
|
+
::-webkit-scrollbar-thumb {
|
367
|
+
background: #333333;
|
368
|
+
border-radius: 0;
|
369
|
+
}
|
370
|
+
|
371
|
+
::-webkit-scrollbar-thumb:hover {
|
372
|
+
background: #666666;
|
279
373
|
}
|
280
374
|
"""
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: chat-console
|
3
|
-
Version: 0.4.
|
3
|
+
Version: 0.4.7
|
4
4
|
Summary: A command-line interface for chatting with LLMs, storing chats and (future) rag interactions
|
5
5
|
Home-page: https://github.com/wazacraftrfid/chat-console
|
6
6
|
Author: Johnathan Greenaway
|
@@ -29,7 +29,7 @@ Dynamic: requires-python
|
|
29
29
|
Dynamic: summary
|
30
30
|
|
31
31
|
|
32
|
-
|
32
|
+
# Chat CLI
|
33
33
|
|
34
34
|
A comprehensive command-line interface for chatting with various AI language models. This application allows you to interact with different LLM providers through an intuitive terminal-based interface.
|
35
35
|
|
@@ -0,0 +1,28 @@
|
|
1
|
+
app/__init__.py,sha256=ydziDvA2xXpmrqq79RoEj3Ao72PDJ4xmUD6bxTR4s3A,130
|
2
|
+
app/config.py,sha256=F-0hO3NT5kRJxZelGLxaeUmnwx8i0LPHzYtNftL6CwM,8468
|
3
|
+
app/console_chat.py,sha256=YQLtM1tBPrHGHEofWdylSBD3bQIeHh7-qirFewwLFXs,32092
|
4
|
+
app/console_main.py,sha256=QNUiD9IPw2Spl-gpvrw1AzDqezMpmU3IPHlcK1LDOtI,1799
|
5
|
+
app/console_utils.py,sha256=jdfZ3OZEAIJ4tlQNg1_8qrtUP1xdyMeWjdz9ahgzL1s,7032
|
6
|
+
app/database.py,sha256=nt8CVuDpy6zw8mOYqDcfUmNw611t7Ln7pz22M0b6-MI,9967
|
7
|
+
app/main.py,sha256=kZtiKXNVmy9QLjm_qdSW9qged8nhXBydUq_5u7yYx6k,87767
|
8
|
+
app/models.py,sha256=4-y9Lytay2exWPFi0FDlVeRL3K2-I7E-jBqNzTfokqY,2644
|
9
|
+
app/utils.py,sha256=-L38KGP8TlVl5vtZl5QgTiEAdhLcDsIXm7e62nnXgP8,41765
|
10
|
+
app/api/__init__.py,sha256=A8UL84ldYlv8l7O-yKzraVFcfww86SgWfpl4p7R03-w,62
|
11
|
+
app/api/anthropic.py,sha256=uInwNvGLJ_iPUs4BjdwaqXTU6NfmK1SzX7498Pt44fI,10667
|
12
|
+
app/api/base.py,sha256=valBWV5So76r8tjrgU5-sLfY73WaViTrszdCy8Rimjo,10314
|
13
|
+
app/api/ollama.py,sha256=364PcXoPLJq9jLMF-HhPyQvaBp87U6FzNHDWx4g_Cvc,76925
|
14
|
+
app/api/openai.py,sha256=XuHJHpD7tN_ZHLkRpNUcL1VxTtsXOVk1hDPXX8JnBxQ,15322
|
15
|
+
app/ui/__init__.py,sha256=RndfbQ1Tv47qdSiuQzvWP96lPS547SDaGE-BgOtiP_w,55
|
16
|
+
app/ui/borders.py,sha256=wntNbOBCXA2jXZQM4HORaxKksLhMKVZoNgoXm_kXtVA,5249
|
17
|
+
app/ui/chat_interface.py,sha256=8f8Xq3HVSBloStc6BwKk0S4qmZTZNK_cxJ3ivI7CtQw,18550
|
18
|
+
app/ui/chat_list.py,sha256=WQTYVNSSXlx_gQal3YqILZZKL9UiTjmNMIDX2I9pAMM,11205
|
19
|
+
app/ui/model_browser.py,sha256=pdblLVkdyVF0_Bo02bqbErGAtieyH-y6IfhMOPEqIso,71124
|
20
|
+
app/ui/model_selector.py,sha256=3ykyDhzJU9KQg3XnOQbba5bhpqsSH1RwIYEGWVY37GQ,19407
|
21
|
+
app/ui/search.py,sha256=b-m14kG3ovqW1-i0qDQ8KnAqFJbi5b1FLM9dOnbTyIs,9763
|
22
|
+
app/ui/styles.py,sha256=MZ7J3D796IFYsDQs-RFxSLGHhcQqsaXym9wv3LYMI5k,9284
|
23
|
+
chat_console-0.4.7.dist-info/licenses/LICENSE,sha256=srHZ3fvcAuZY1LHxE7P6XWju2njRCHyK6h_ftEbzxSE,1057
|
24
|
+
chat_console-0.4.7.dist-info/METADATA,sha256=oZ28YJb1pW4KUggJGQjcyKItyi4uFPiVgrzfuzADYks,3809
|
25
|
+
chat_console-0.4.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
26
|
+
chat_console-0.4.7.dist-info/entry_points.txt,sha256=oy1j-LnmYOO0akBMP8Ijx0rZxxA7N3FSy82ZeCPNnqE,142
|
27
|
+
chat_console-0.4.7.dist-info/top_level.txt,sha256=io9g7LCbfmTG1SFKgEOGXmCFB9uMP2H5lerm0HiHWQE,4
|
28
|
+
chat_console-0.4.7.dist-info/RECORD,,
|
@@ -1,24 +0,0 @@
|
|
1
|
-
app/__init__.py,sha256=T3d41tTB1sDy6ix7bg43dp4zvNqqJku0JGlwMGKFGHo,130
|
2
|
-
app/config.py,sha256=F-0hO3NT5kRJxZelGLxaeUmnwx8i0LPHzYtNftL6CwM,8468
|
3
|
-
app/database.py,sha256=nt8CVuDpy6zw8mOYqDcfUmNw611t7Ln7pz22M0b6-MI,9967
|
4
|
-
app/main.py,sha256=8UU9GcPJINu_TmbKKKFBZXIgLHNDf6vabyupKjj3Img,86297
|
5
|
-
app/models.py,sha256=4-y9Lytay2exWPFi0FDlVeRL3K2-I7E-jBqNzTfokqY,2644
|
6
|
-
app/utils.py,sha256=-L38KGP8TlVl5vtZl5QgTiEAdhLcDsIXm7e62nnXgP8,41765
|
7
|
-
app/api/__init__.py,sha256=A8UL84ldYlv8l7O-yKzraVFcfww86SgWfpl4p7R03-w,62
|
8
|
-
app/api/anthropic.py,sha256=uInwNvGLJ_iPUs4BjdwaqXTU6NfmK1SzX7498Pt44fI,10667
|
9
|
-
app/api/base.py,sha256=valBWV5So76r8tjrgU5-sLfY73WaViTrszdCy8Rimjo,10314
|
10
|
-
app/api/ollama.py,sha256=364PcXoPLJq9jLMF-HhPyQvaBp87U6FzNHDWx4g_Cvc,76925
|
11
|
-
app/api/openai.py,sha256=XuHJHpD7tN_ZHLkRpNUcL1VxTtsXOVk1hDPXX8JnBxQ,15322
|
12
|
-
app/ui/__init__.py,sha256=RndfbQ1Tv47qdSiuQzvWP96lPS547SDaGE-BgOtiP_w,55
|
13
|
-
app/ui/chat_interface.py,sha256=oSDZi0Jgj_L8WnBh1RuJpIeIcN-RQ38CNejwsXiWTVg,18267
|
14
|
-
app/ui/chat_list.py,sha256=WQTYVNSSXlx_gQal3YqILZZKL9UiTjmNMIDX2I9pAMM,11205
|
15
|
-
app/ui/model_browser.py,sha256=pdblLVkdyVF0_Bo02bqbErGAtieyH-y6IfhMOPEqIso,71124
|
16
|
-
app/ui/model_selector.py,sha256=2G0TOXfcNodrXZOhLeaJJ2iG3Nck4c_NN1AvUAmaF3M,19172
|
17
|
-
app/ui/search.py,sha256=b-m14kG3ovqW1-i0qDQ8KnAqFJbi5b1FLM9dOnbTyIs,9763
|
18
|
-
app/ui/styles.py,sha256=04AhPuLrOd2yenfRySFRestPeuTPeMLzhmMB67NdGvw,5615
|
19
|
-
chat_console-0.4.3.dist-info/licenses/LICENSE,sha256=srHZ3fvcAuZY1LHxE7P6XWju2njRCHyK6h_ftEbzxSE,1057
|
20
|
-
chat_console-0.4.3.dist-info/METADATA,sha256=y01SPyzTsYIyCbc5gEpCx6dlQ_ROG16T1gTZPOScia8,3810
|
21
|
-
chat_console-0.4.3.dist-info/WHEEL,sha256=GHB6lJx2juba1wDgXDNlMTyM13ckjBMKf-OnwgKOCtA,91
|
22
|
-
chat_console-0.4.3.dist-info/entry_points.txt,sha256=kkVdEc22U9PAi2AeruoKklfkng_a_aHAP6VRVwrAD7c,67
|
23
|
-
chat_console-0.4.3.dist-info/top_level.txt,sha256=io9g7LCbfmTG1SFKgEOGXmCFB9uMP2H5lerm0HiHWQE,4
|
24
|
-
chat_console-0.4.3.dist-info/RECORD,,
|
File without changes
|
File without changes
|