chat-console 0.4.3__py3-none-any.whl → 0.4.6__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/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
- # Define color palette
9
- COLORS = {
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": "#33FF33",
13
- "user_msg": "#00FFFF",
14
- "assistant_msg": "#33FF33",
15
- "system_msg": "#FF8C00",
16
- "highlight": "#FFD700",
17
- "selection": "#1A1A1A",
18
- "border": "#33FF33",
19
- "error": "#FF0000",
20
- "success": "#33FF33",
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": "#F0F0F0",
24
- "foreground": "#000000",
25
- "user_msg": "#0000FF",
26
- "assistant_msg": "#008000",
27
- "system_msg": "#800080",
28
- "highlight": "#0078D7",
29
- "selection": "#ADD6FF",
30
- "border": "#D0D0D0",
31
- "error": "#D32F2F",
32
- "success": "#388E3C",
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 theme name"""
38
- colors = COLORS.get(theme_name, COLORS["dark"])
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=True),
42
- "assistant": Style(color=colors["assistant_msg"]),
43
- "system": Style(color=colors["system_msg"], italic=True),
44
- "highlight": Style(color=colors["highlight"], bold=True),
45
- "selection": Style(bgcolor=colors["selection"]),
46
- "border": Style(color=colors["border"]),
47
- "error": Style(color=colors["error"], bold=True),
48
- "success": Style(color=colors["success"]),
49
- "prompt": Style(color=colors["highlight"]),
50
- "heading": Style(color=colors["highlight"], bold=True),
51
- "dim": Style(color=colors["border"]),
52
- "code": Style(bgcolor="#2D2D2D", color="#D4D4D4"),
53
- "code.syntax": Style(color="#569CD6"),
54
- "link": Style(color=colors["highlight"], underline=True),
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
- # Textual CSS for the application
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: $surface;
62
- color: $text;
72
+ background: #0C0C0C; /* Deep black */
73
+ color: #E8E8E8; /* Clean white */
63
74
  }
64
75
 
65
- /* Chat message styles */
76
+ /* Message display - Purposeful spacing */
66
77
  .message {
67
78
  width: 100%;
68
- padding: 0 1;
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
- /* Code blocks */
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: $surface-darken-3;
81
- color: $text-muted;
82
- border: solid $primary-darken-3;
83
- margin: 1 2;
84
- padding: 1;
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: $surface;
92
- border-top: solid $primary-darken-2;
93
- padding: 0;
119
+ background: #0C0C0C;
120
+ border-top: solid #333333 1;
121
+ padding: 2; /* Generous padding */
94
122
  }
95
123
 
96
124
  #message-input {
97
- background: $surface-darken-1;
98
- color: $text;
99
- border: solid $primary-darken-2;
125
+ background: #0C0C0C;
126
+ color: #E8E8E8;
127
+ border: solid #333333 1; /* Single, clean border */
100
128
  min-height: 2;
101
- padding: 0 1;
129
+ padding: 1 2; /* Comfortable padding */
102
130
  }
103
131
 
104
132
  #message-input:focus {
105
- border: tall $primary;
133
+ border: solid #33FF33 1; /* Minimal focus indicator */
134
+ outline: none;
106
135
  }
107
136
 
108
- /* Action buttons */
137
+ /* Buttons - Minimal and functional */
109
138
  .action-button {
110
- background: $primary;
111
- color: #FFFFFF !important; /* Explicit white text */
112
- border: none;
113
- min-width: 10;
114
- margin-left: 1;
115
- padding: 0 1; /* Add 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: $primary-lighten-1;
122
- color: #FFFFFF !important;
123
- text-style: bold;
149
+ background: #1A1A1A;
150
+ border: solid #33FF33 1;
151
+ color: #E8E8E8;
124
152
  }
125
153
 
126
- /* Sidebar */
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: 18;
130
- background: $surface-darken-1;
131
- border-right: solid $primary-darken-2 1;
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: 0 1;
137
- height: 2;
138
- border-bottom: solid $primary-darken-3 1;
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: $primary-darken-2;
175
+ background: #1A1A1A; /* Subtle hover */
143
176
  }
144
177
 
145
178
  .chat-item.selected {
146
- background: $primary-darken-1;
147
- border-left: wide $primary;
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: center middle;
185
+ content-align: left top;
153
186
  text-align: left;
187
+ color: #E8E8E8;
154
188
  }
155
189
 
156
190
  .chat-model {
157
- color: $text-muted;
158
- text-align: right;
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: $text-muted;
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 $primary-darken-2 1;
170
- margin: 0 1;
171
- height: 2;
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 $primary;
214
+ border: solid #33FF33 1;
215
+ outline: none;
176
216
  }
177
217
 
178
- /* Model selector */
218
+ /* Selectors - Consistent minimal styling */
179
219
  #model-selector {
180
220
  width: 100%;
181
- height: 2;
182
- margin: 0 1;
183
- background: $surface-darken-1;
184
- border: solid $primary-darken-2 1;
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: 2;
191
- margin: 0 1;
192
- background: $surface-darken-1;
193
- border: solid $primary-darken-2 1;
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: 2;
200
- background: $surface-darken-2;
201
- color: $text;
202
- content-align: center middle;
203
- text-align: center;
204
- border-bottom: solid $primary-darken-2 1;
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: $surface-darken-1;
210
- color: $text;
211
- padding: 0 1;
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 $primary-darken-2 1;
258
+ border-top: solid #333333 1;
215
259
  display: none;
260
+ text-align: center;
216
261
  }
217
262
 
218
- /* Settings modal */
263
+ /* Modal - Clean and focused */
219
264
  .modal {
220
- background: $surface;
221
- border: solid $primary;
222
- padding: 1;
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: $primary;
230
- color: $text;
274
+ background: #0C0C0C;
275
+ color: #E8E8E8;
231
276
  width: 100%;
232
- height: 3;
233
- content-align: center middle;
234
- text-align: center;
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: $surface-darken-1;
245
- border: solid $primary-darken-2;
293
+ background: #0C0C0C;
294
+ border: solid #333333 1;
246
295
  height: 3;
247
- margin-bottom: 1;
296
+ margin-bottom: 2;
297
+ padding: 1;
298
+ color: #E8E8E8;
248
299
  }
249
300
 
250
301
  .form-input:focus {
251
- border: solid $primary;
302
+ border: solid #33FF33 1;
303
+ outline: none;
252
304
  }
253
305
 
254
306
  .button-container {
255
307
  width: 100%;
256
- height: 3;
308
+ height: auto;
257
309
  align: right middle;
310
+ padding-top: 2;
258
311
  }
259
312
 
260
313
  .button {
261
- background: $primary-darken-1;
262
- color: $text;
263
- min-width: 6;
314
+ background: transparent;
315
+ color: #E8E8E8;
316
+ min-width: 8;
264
317
  margin-left: 1;
265
- border: solid $primary 1;
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
- background: $error;
328
+ border: solid #FF4444 1;
270
329
  }
271
330
 
272
- /* Tags */
331
+ .button.cancel:hover {
332
+ border: solid #FF4444 1;
333
+ background: #1A1A1A;
334
+ }
335
+
336
+ /* Tags - Minimal and functional */
273
337
  .tag {
274
- background: $primary-darken-1;
275
- color: $text;
338
+ background: transparent;
339
+ color: #E8E8E8;
276
340
  padding: 0 1;
277
341
  margin: 0 1 0 0;
278
- border: solid $border;
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
3
+ Version: 0.4.6
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
- c# Chat CLI
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=CNKiNRi8pFq0f_KTO5Wr0fPJgaxsT1cmgffOiEYU8rM,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.6.dist-info/licenses/LICENSE,sha256=srHZ3fvcAuZY1LHxE7P6XWju2njRCHyK6h_ftEbzxSE,1057
24
+ chat_console-0.4.6.dist-info/METADATA,sha256=RbYOQJoIKg5dof3ZX2biie6r3pByJmAiUjMYMPNUjok,3809
25
+ chat_console-0.4.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
26
+ chat_console-0.4.6.dist-info/entry_points.txt,sha256=oy1j-LnmYOO0akBMP8Ijx0rZxxA7N3FSy82ZeCPNnqE,142
27
+ chat_console-0.4.6.dist-info/top_level.txt,sha256=io9g7LCbfmTG1SFKgEOGXmCFB9uMP2H5lerm0HiHWQE,4
28
+ chat_console-0.4.6.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.3.0)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -0,0 +1,5 @@
1
+ [console_scripts]
2
+ c-c = app.main:main
3
+ c-c-pure = app.console_main:main
4
+ chat-console = app.main:main
5
+ chat-console-pure = app.console_main:main
@@ -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,,
@@ -1,3 +0,0 @@
1
- [console_scripts]
2
- c-c = app.main:main
3
- chat-console = app.main:main