claudeck 1.4.0 → 1.4.2

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.
Files changed (61) hide show
  1. package/README.md +6 -8
  2. package/package.json +1 -1
  3. package/plugins/claude-editor/manifest.json +10 -0
  4. package/plugins/repos/manifest.json +10 -0
  5. package/public/css/core/theme.css +6 -21
  6. package/public/css/core/variables.css +2 -0
  7. package/public/css/features/message-queue.css +348 -0
  8. package/public/css/ui/commands.css +4 -4
  9. package/public/css/ui/messages.css +310 -78
  10. package/public/css/ui/right-panel.css +207 -0
  11. package/public/css/ui/sessions.css +173 -0
  12. package/public/css/ui/settings.css +75 -0
  13. package/public/index.html +10 -2
  14. package/public/js/components/add-project-modal.js +14 -0
  15. package/public/js/components/jump-to-latest.js +42 -0
  16. package/public/js/components/queue-stop-modal.js +23 -0
  17. package/public/js/components/settings-modal.js +65 -0
  18. package/public/js/core/api.js +15 -43
  19. package/public/js/core/dom.js +17 -0
  20. package/public/js/core/events.js +11 -0
  21. package/public/js/core/plugin-loader.js +96 -11
  22. package/public/js/core/store.js +11 -0
  23. package/public/js/core/utils.js +38 -2
  24. package/public/js/features/chat.js +49 -1
  25. package/public/js/features/message-queue.js +423 -0
  26. package/public/js/features/projects.js +185 -3
  27. package/public/js/main.js +4 -1
  28. package/public/js/panels/assistant-bot.js +16 -0
  29. package/public/js/panels/dev-docs.js +2 -2
  30. package/public/js/panels/memory.js +1 -0
  31. package/public/js/ui/context-gauge.js +10 -1
  32. package/public/js/ui/formatting.js +65 -11
  33. package/public/js/ui/header-dropdowns.js +30 -0
  34. package/public/js/ui/input-meta.js +13 -6
  35. package/public/js/ui/max-turns.js +6 -3
  36. package/public/js/ui/messages.js +97 -1
  37. package/public/js/ui/model-selector.js +1 -0
  38. package/public/js/ui/parallel.js +32 -2
  39. package/public/js/ui/permissions.js +1 -0
  40. package/public/js/ui/right-panel.js +0 -8
  41. package/public/js/ui/tab-sdk.js +395 -176
  42. package/public/style.css +2 -0
  43. package/server/memory-optimizer.js +17 -13
  44. package/server/routes/marketplace.js +316 -0
  45. package/server/routes/projects.js +0 -0
  46. package/server/ws-handler.js +22 -15
  47. package/server.js +18 -0
  48. package/plugins/event-stream/client.css +0 -207
  49. package/plugins/event-stream/client.js +0 -271
  50. package/plugins/linear/client.css +0 -345
  51. package/plugins/linear/client.js +0 -380
  52. package/plugins/linear/config.json +0 -5
  53. package/plugins/linear/server.js +0 -312
  54. package/plugins/sudoku/client.css +0 -196
  55. package/plugins/sudoku/client.js +0 -329
  56. package/plugins/tasks/client.css +0 -414
  57. package/plugins/tasks/client.js +0 -394
  58. package/plugins/tasks/server.js +0 -116
  59. package/plugins/tic-tac-toe/client.css +0 -167
  60. package/plugins/tic-tac-toe/client.js +0 -241
  61. package/public/js/components/linear-create-modal.js +0 -43
@@ -1,414 +0,0 @@
1
- /* ── Tasks Tab (Todo only) ────────────────────────────── */
2
-
3
- .tasks-tab {
4
- display: flex;
5
- flex-direction: column;
6
- }
7
-
8
- /* ── Todo section ────────────────────────────────────── */
9
-
10
- .todo-panel-header {
11
- display: flex;
12
- align-items: center;
13
- justify-content: space-between;
14
- padding: 8px 12px;
15
- border-bottom: 1px solid var(--border);
16
- flex-shrink: 0;
17
- }
18
-
19
- .todo-panel-header h3 {
20
- font-size: 13px;
21
- font-weight: 600;
22
- color: var(--text-primary);
23
- margin: 0;
24
- }
25
-
26
- .todo-header-actions {
27
- display: flex;
28
- align-items: center;
29
- gap: 4px;
30
- }
31
-
32
- .todo-add-btn,
33
- .todo-toggle-btn {
34
- background: none;
35
- border: 1px solid var(--border);
36
- color: var(--text-secondary);
37
- width: 24px;
38
- height: 24px;
39
- border-radius: 4px;
40
- cursor: pointer;
41
- font-size: 16px;
42
- display: flex;
43
- align-items: center;
44
- justify-content: center;
45
- transition: background 0.15s, color 0.15s;
46
- position: relative;
47
- }
48
-
49
- .todo-add-btn:hover,
50
- .todo-toggle-btn:hover {
51
- background: var(--hover-bg);
52
- color: var(--text-primary);
53
- }
54
-
55
- .todo-toggle-btn.active {
56
- background: var(--accent);
57
- color: #fff;
58
- border-color: var(--accent);
59
- }
60
-
61
- /* Count badges on toggle buttons */
62
- .todo-count-badge {
63
- position: absolute;
64
- top: -6px;
65
- right: -6px;
66
- min-width: 14px;
67
- height: 14px;
68
- padding: 0 3px;
69
- font-size: 9px;
70
- font-weight: 700;
71
- line-height: 14px;
72
- text-align: center;
73
- color: #fff;
74
- background: var(--accent);
75
- border-radius: 7px;
76
- pointer-events: none;
77
- }
78
-
79
- .todo-toggle-btn.active .todo-count-badge {
80
- background: var(--bg);
81
- color: var(--accent);
82
- }
83
-
84
- /* Priority colors */
85
- .todo-priority-dot {
86
- width: 10px;
87
- height: 10px;
88
- border-radius: 50%;
89
- flex-shrink: 0;
90
- border: 1.5px solid var(--border);
91
- background: transparent;
92
- cursor: pointer;
93
- padding: 0;
94
- transition: background 0.15s, border-color 0.15s, transform 0.1s;
95
- }
96
-
97
- .todo-priority-dot:hover {
98
- transform: scale(1.3);
99
- }
100
-
101
- .todo-priority-dot.priority-0 {
102
- background: transparent;
103
- border-color: var(--text-dim);
104
- }
105
-
106
- .todo-priority-dot.priority-1 {
107
- background: #4a9eff;
108
- border-color: #4a9eff;
109
- }
110
-
111
- .todo-priority-dot.priority-2 {
112
- background: #f5a623;
113
- border-color: #f5a623;
114
- }
115
-
116
- .todo-priority-dot.priority-3 {
117
- background: #e5534b;
118
- border-color: #e5534b;
119
- }
120
-
121
- .todo-item.priority-1 {
122
- border-left: 3px solid #4a9eff;
123
- }
124
-
125
- .todo-item.priority-2 {
126
- border-left: 3px solid #f5a623;
127
- }
128
-
129
- .todo-item.priority-3 {
130
- border-left: 3px solid #e5534b;
131
- }
132
-
133
- /* Todo list */
134
- .todo-list {
135
- flex: 1;
136
- overflow-y: auto;
137
- padding: 4px 0;
138
- }
139
-
140
- .todo-item {
141
- display: flex;
142
- align-items: center;
143
- gap: 8px;
144
- padding: 6px 12px;
145
- border-bottom: 1px solid var(--border);
146
- transition: background 0.1s;
147
- }
148
-
149
- .todo-item:hover {
150
- background: var(--hover-bg);
151
- }
152
-
153
- .todo-item input[type="checkbox"] {
154
- flex-shrink: 0;
155
- cursor: pointer;
156
- accent-color: var(--accent);
157
- }
158
-
159
- .todo-text {
160
- flex: 1;
161
- font-size: 13px;
162
- color: var(--text-primary);
163
- min-width: 0;
164
- overflow: hidden;
165
- text-overflow: ellipsis;
166
- white-space: nowrap;
167
- cursor: default;
168
- padding: 2px 4px;
169
- border-radius: 3px;
170
- }
171
-
172
- .todo-text.editing {
173
- background: var(--bg-secondary);
174
- outline: 1px solid var(--accent);
175
- cursor: text;
176
- white-space: normal;
177
- }
178
-
179
- .todo-item.done .todo-text {
180
- text-decoration: line-through;
181
- opacity: 0.5;
182
- }
183
-
184
- .todo-actions {
185
- display: flex;
186
- align-items: center;
187
- gap: 2px;
188
- flex-shrink: 0;
189
- opacity: 0;
190
- transition: opacity 0.15s;
191
- }
192
-
193
- .todo-item:hover .todo-actions {
194
- opacity: 1;
195
- }
196
-
197
- .todo-action-btn {
198
- background: none;
199
- border: none;
200
- color: var(--text-secondary);
201
- cursor: pointer;
202
- padding: 2px 4px;
203
- border-radius: 3px;
204
- display: flex;
205
- align-items: center;
206
- justify-content: center;
207
- transition: color 0.15s;
208
- }
209
-
210
- .todo-action-btn:hover {
211
- color: var(--text-primary);
212
- }
213
-
214
- .todo-delete-btn {
215
- font-size: 14px;
216
- }
217
-
218
- .todo-delete-btn:hover {
219
- color: var(--error, #e55);
220
- }
221
-
222
- /* Todo input bar */
223
- .todo-input-bar {
224
- padding: 8px 12px;
225
- border-top: 1px solid var(--border);
226
- flex-shrink: 0;
227
- }
228
-
229
- .todo-input {
230
- width: 100%;
231
- padding: 6px 10px;
232
- font-size: 13px;
233
- border: 1px solid var(--border);
234
- border-radius: 6px;
235
- background: var(--bg-secondary);
236
- color: var(--text-primary);
237
- outline: none;
238
- box-sizing: border-box;
239
- }
240
-
241
- .todo-input:focus {
242
- border-color: var(--accent);
243
- }
244
-
245
- .todo-empty {
246
- display: flex;
247
- flex-direction: column;
248
- align-items: center;
249
- justify-content: center;
250
- padding: 24px 12px;
251
- text-align: center;
252
- color: var(--text-dim);
253
- font-size: 12px;
254
- gap: 6px;
255
- }
256
-
257
- .todo-empty svg {
258
- opacity: 0.4;
259
- }
260
-
261
- .todo-empty-hint {
262
- font-size: 11px;
263
- opacity: 0.6;
264
- }
265
-
266
- /* Brag button */
267
- .todo-brag-btn {
268
- color: var(--text-dim);
269
- }
270
-
271
- .todo-brag-btn:hover {
272
- color: #f5a623;
273
- }
274
-
275
- /* Brag list items */
276
- .brag-item {
277
- padding: 8px 12px;
278
- border-bottom: 1px solid var(--border);
279
- position: relative;
280
- }
281
-
282
- .brag-item:hover {
283
- background: var(--hover-bg);
284
- }
285
-
286
- .brag-text {
287
- font-size: 13px;
288
- font-weight: 600;
289
- color: var(--text-primary);
290
- margin-bottom: 4px;
291
- }
292
-
293
- .brag-summary {
294
- font-size: 12px;
295
- color: var(--text-secondary);
296
- line-height: 1.4;
297
- white-space: pre-wrap;
298
- }
299
-
300
- .brag-date {
301
- font-size: 10px;
302
- color: var(--text-dim);
303
- margin-top: 4px;
304
- }
305
-
306
- .brag-delete {
307
- position: absolute;
308
- top: 8px;
309
- right: 8px;
310
- opacity: 0;
311
- transition: opacity 0.15s;
312
- }
313
-
314
- .brag-item:hover .brag-delete {
315
- opacity: 1;
316
- }
317
-
318
- /* Brag prompt overlay */
319
- .brag-prompt-overlay {
320
- position: fixed;
321
- inset: 0;
322
- background: rgba(0, 0, 0, 0.5);
323
- z-index: 10000;
324
- display: flex;
325
- align-items: center;
326
- justify-content: center;
327
- }
328
-
329
- .brag-prompt {
330
- background: var(--bg);
331
- border: 1px solid var(--border);
332
- border-radius: var(--radius-lg, 8px);
333
- padding: 20px;
334
- width: 400px;
335
- max-width: 90vw;
336
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
337
- }
338
-
339
- .brag-prompt-title {
340
- font-size: 14px;
341
- font-weight: 700;
342
- color: #f5a623;
343
- margin-bottom: 8px;
344
- }
345
-
346
- .brag-prompt-task {
347
- font-size: 12px;
348
- color: var(--text-secondary);
349
- padding: 6px 8px;
350
- background: var(--bg-secondary);
351
- border-radius: 4px;
352
- margin-bottom: 12px;
353
- border-left: 3px solid #f5a623;
354
- }
355
-
356
- .brag-prompt-input {
357
- width: 100%;
358
- background: var(--bg-secondary);
359
- border: 1px solid var(--border);
360
- color: var(--text-primary);
361
- font-family: var(--font-mono);
362
- font-size: 12px;
363
- padding: 8px;
364
- border-radius: 6px;
365
- resize: none;
366
- outline: none;
367
- box-sizing: border-box;
368
- }
369
-
370
- .brag-prompt-input:focus {
371
- border-color: #f5a623;
372
- }
373
-
374
- .brag-prompt-counter {
375
- text-align: right;
376
- font-size: 10px;
377
- color: var(--text-dim);
378
- margin-top: 4px;
379
- }
380
-
381
- .brag-prompt-actions {
382
- display: flex;
383
- justify-content: flex-end;
384
- gap: 8px;
385
- margin-top: 12px;
386
- }
387
-
388
- .brag-prompt-cancel,
389
- .brag-prompt-submit {
390
- padding: 6px 14px;
391
- border-radius: 6px;
392
- font-family: var(--font-mono);
393
- font-size: 12px;
394
- cursor: pointer;
395
- border: 1px solid var(--border);
396
- background: var(--bg-secondary);
397
- color: var(--text-primary);
398
- }
399
-
400
- .brag-prompt-submit {
401
- background: #f5a623;
402
- color: #000;
403
- border-color: #f5a623;
404
- font-weight: 600;
405
- }
406
-
407
- .brag-prompt-submit:hover {
408
- opacity: 0.85;
409
- }
410
-
411
- .brag-prompt-submit:disabled {
412
- opacity: 0.5;
413
- cursor: not-allowed;
414
- }