claudeck 1.0.0

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 (157) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +233 -0
  3. package/cli.js +2 -0
  4. package/config/agent-chains.json +16 -0
  5. package/config/agent-dags.json +16 -0
  6. package/config/agents.json +46 -0
  7. package/config/bot-prompt.json +3 -0
  8. package/config/folders.json +66 -0
  9. package/config/prompts.json +92 -0
  10. package/config/repos.json +86 -0
  11. package/config/telegram-config.json +17 -0
  12. package/config/workflows.json +90 -0
  13. package/db.js +1198 -0
  14. package/package.json +55 -0
  15. package/plugins/claude-editor/client.css +171 -0
  16. package/plugins/claude-editor/client.js +183 -0
  17. package/plugins/event-stream/client.css +207 -0
  18. package/plugins/event-stream/client.js +271 -0
  19. package/plugins/linear/client.css +345 -0
  20. package/plugins/linear/client.js +380 -0
  21. package/plugins/linear/config.json +5 -0
  22. package/plugins/linear/server.js +312 -0
  23. package/plugins/repos/client.css +549 -0
  24. package/plugins/repos/client.js +663 -0
  25. package/plugins/repos/server.js +232 -0
  26. package/plugins/sudoku/client.css +196 -0
  27. package/plugins/sudoku/client.js +329 -0
  28. package/plugins/tasks/client.css +414 -0
  29. package/plugins/tasks/client.js +394 -0
  30. package/plugins/tasks/server.js +116 -0
  31. package/plugins/tic-tac-toe/client.css +167 -0
  32. package/plugins/tic-tac-toe/client.js +241 -0
  33. package/public/css/core/components.css +232 -0
  34. package/public/css/core/layout.css +330 -0
  35. package/public/css/core/print.css +18 -0
  36. package/public/css/core/reset.css +36 -0
  37. package/public/css/core/responsive.css +378 -0
  38. package/public/css/core/theme.css +116 -0
  39. package/public/css/core/variables.css +93 -0
  40. package/public/css/features/agent-monitor.css +297 -0
  41. package/public/css/features/agent-sidebar.css +525 -0
  42. package/public/css/features/agents.css +996 -0
  43. package/public/css/features/analytics.css +181 -0
  44. package/public/css/features/background-sessions.css +321 -0
  45. package/public/css/features/cost-dashboard.css +168 -0
  46. package/public/css/features/home.css +313 -0
  47. package/public/css/features/retro-terminal.css +88 -0
  48. package/public/css/features/telegram.css +127 -0
  49. package/public/css/features/tour.css +148 -0
  50. package/public/css/features/voice-input.css +60 -0
  51. package/public/css/features/welcome.css +241 -0
  52. package/public/css/panels/assistant-bot.css +442 -0
  53. package/public/css/panels/dev-docs.css +292 -0
  54. package/public/css/panels/file-explorer.css +322 -0
  55. package/public/css/panels/git-panel.css +221 -0
  56. package/public/css/panels/mcp-manager.css +199 -0
  57. package/public/css/panels/tips-feed.css +353 -0
  58. package/public/css/ui/commands.css +273 -0
  59. package/public/css/ui/context-gauge.css +76 -0
  60. package/public/css/ui/file-picker.css +69 -0
  61. package/public/css/ui/image-attachments.css +106 -0
  62. package/public/css/ui/messages.css +884 -0
  63. package/public/css/ui/modals.css +122 -0
  64. package/public/css/ui/parallel.css +217 -0
  65. package/public/css/ui/permissions.css +110 -0
  66. package/public/css/ui/right-panel.css +481 -0
  67. package/public/css/ui/sessions.css +689 -0
  68. package/public/css/ui/status-bar.css +425 -0
  69. package/public/css/ui/toolbox.css +206 -0
  70. package/public/data/tips.json +218 -0
  71. package/public/icons/favicon.png +0 -0
  72. package/public/icons/icon-192.png +0 -0
  73. package/public/icons/icon-512.png +0 -0
  74. package/public/icons/whaly.png +0 -0
  75. package/public/index.html +1140 -0
  76. package/public/js/core/api.js +591 -0
  77. package/public/js/core/constants.js +3 -0
  78. package/public/js/core/dom.js +270 -0
  79. package/public/js/core/events.js +10 -0
  80. package/public/js/core/plugin-loader.js +153 -0
  81. package/public/js/core/store.js +39 -0
  82. package/public/js/core/utils.js +25 -0
  83. package/public/js/core/ws.js +64 -0
  84. package/public/js/features/agent-monitor.js +222 -0
  85. package/public/js/features/agents.js +1209 -0
  86. package/public/js/features/analytics.js +397 -0
  87. package/public/js/features/attachments.js +251 -0
  88. package/public/js/features/background-sessions.js +475 -0
  89. package/public/js/features/chat.js +589 -0
  90. package/public/js/features/cost-dashboard.js +152 -0
  91. package/public/js/features/dag-editor.js +399 -0
  92. package/public/js/features/easter-egg.js +46 -0
  93. package/public/js/features/home.js +270 -0
  94. package/public/js/features/projects.js +372 -0
  95. package/public/js/features/prompts.js +228 -0
  96. package/public/js/features/sessions.js +332 -0
  97. package/public/js/features/telegram.js +131 -0
  98. package/public/js/features/tour.js +210 -0
  99. package/public/js/features/voice-input.js +185 -0
  100. package/public/js/features/welcome.js +43 -0
  101. package/public/js/features/workflows.js +277 -0
  102. package/public/js/main.js +51 -0
  103. package/public/js/panels/assistant-bot.js +445 -0
  104. package/public/js/panels/dev-docs.js +380 -0
  105. package/public/js/panels/file-explorer.js +486 -0
  106. package/public/js/panels/git-panel.js +285 -0
  107. package/public/js/panels/mcp-manager.js +311 -0
  108. package/public/js/panels/tips-feed.js +303 -0
  109. package/public/js/ui/commands.js +114 -0
  110. package/public/js/ui/context-gauge.js +100 -0
  111. package/public/js/ui/diff.js +124 -0
  112. package/public/js/ui/disabled-tools.js +36 -0
  113. package/public/js/ui/export.js +74 -0
  114. package/public/js/ui/formatting.js +206 -0
  115. package/public/js/ui/header-dropdowns.js +72 -0
  116. package/public/js/ui/input-meta.js +71 -0
  117. package/public/js/ui/max-turns.js +21 -0
  118. package/public/js/ui/messages.js +387 -0
  119. package/public/js/ui/model-selector.js +20 -0
  120. package/public/js/ui/notifications.js +232 -0
  121. package/public/js/ui/parallel.js +176 -0
  122. package/public/js/ui/permissions.js +168 -0
  123. package/public/js/ui/right-panel.js +173 -0
  124. package/public/js/ui/shortcuts.js +143 -0
  125. package/public/js/ui/sidebar-toggle.js +29 -0
  126. package/public/js/ui/status-bar.js +172 -0
  127. package/public/js/ui/tab-sdk.js +623 -0
  128. package/public/js/ui/theme.js +38 -0
  129. package/public/manifest.json +13 -0
  130. package/public/offline.html +190 -0
  131. package/public/style.css +42 -0
  132. package/public/sw.js +91 -0
  133. package/server/agent-loop.js +385 -0
  134. package/server/dag-executor.js +265 -0
  135. package/server/orchestrator.js +514 -0
  136. package/server/paths.js +61 -0
  137. package/server/plugin-mount.js +56 -0
  138. package/server/push-sender.js +31 -0
  139. package/server/routes/agents.js +294 -0
  140. package/server/routes/bot.js +45 -0
  141. package/server/routes/exec.js +35 -0
  142. package/server/routes/files.js +218 -0
  143. package/server/routes/mcp.js +82 -0
  144. package/server/routes/messages.js +36 -0
  145. package/server/routes/notifications.js +37 -0
  146. package/server/routes/projects.js +207 -0
  147. package/server/routes/prompts.js +53 -0
  148. package/server/routes/sessions.js +103 -0
  149. package/server/routes/stats.js +143 -0
  150. package/server/routes/telegram.js +71 -0
  151. package/server/routes/tips.js +135 -0
  152. package/server/routes/workflows.js +81 -0
  153. package/server/summarizer.js +55 -0
  154. package/server/telegram-poller.js +205 -0
  155. package/server/telegram-sender.js +304 -0
  156. package/server/ws-handler.js +926 -0
  157. package/server.js +179 -0
@@ -0,0 +1,481 @@
1
+ /* ── Right Panel (tabbed container) ──────────────────── */
2
+ .right-panel {
3
+ position: relative;
4
+ width: 300px;
5
+ min-width: 200px;
6
+ max-width: 60vw;
7
+ background: var(--bg-secondary);
8
+ border-left: 1px solid var(--border);
9
+ display: flex;
10
+ flex-direction: column;
11
+ overflow: hidden;
12
+ transition: width 0.25s var(--ease-out-expo), opacity 0.2s ease;
13
+ }
14
+
15
+ .right-panel.resizing {
16
+ transition: none;
17
+ user-select: none;
18
+ }
19
+
20
+ .right-panel.hidden {
21
+ width: 0 !important;
22
+ min-width: 0;
23
+ border-left: none;
24
+ opacity: 0;
25
+ pointer-events: none;
26
+ }
27
+
28
+ /* Resize handle — left edge */
29
+ .right-panel-resize {
30
+ position: absolute;
31
+ top: 0;
32
+ left: -3px;
33
+ width: 6px;
34
+ height: 100%;
35
+ cursor: col-resize;
36
+ z-index: 10;
37
+ }
38
+
39
+ .right-panel-resize::after {
40
+ content: "";
41
+ position: absolute;
42
+ top: 0;
43
+ left: 2px;
44
+ width: 2px;
45
+ height: 100%;
46
+ background: transparent;
47
+ transition: background 0.2s;
48
+ }
49
+
50
+ .right-panel-resize:hover::after,
51
+ .right-panel-resize.active::after {
52
+ background: var(--accent);
53
+ box-shadow: 0 0 6px var(--accent-glow);
54
+ }
55
+
56
+ /* Tab bar */
57
+ .right-panel-tab-bar {
58
+ display: flex;
59
+ align-items: center;
60
+ border-bottom: 1px solid var(--border);
61
+ flex-shrink: 0;
62
+ height: 36px;
63
+ padding: 0 6px;
64
+ gap: 0;
65
+ }
66
+
67
+ .right-panel-tab {
68
+ background: none;
69
+ border: none;
70
+ border-bottom: 2px solid transparent;
71
+ color: var(--text-dim);
72
+ cursor: pointer;
73
+ padding: 7px 12px;
74
+ font-size: 11px;
75
+ font-family: var(--font-display);
76
+ font-weight: 500;
77
+ letter-spacing: 0.04em;
78
+ transition: all 0.2s var(--ease-smooth);
79
+ white-space: nowrap;
80
+ }
81
+
82
+ .right-panel-tab:hover {
83
+ color: var(--text);
84
+ }
85
+
86
+ .right-panel-tab.active {
87
+ color: var(--accent);
88
+ border-bottom-color: var(--accent);
89
+ }
90
+
91
+ /* Tab icon + title layout */
92
+ .right-panel-tab .tab-icon {
93
+ display: inline-flex;
94
+ align-items: center;
95
+ margin-right: 4px;
96
+ vertical-align: middle;
97
+ }
98
+ .right-panel-tab .tab-icon svg {
99
+ width: 12px;
100
+ height: 12px;
101
+ }
102
+ .right-panel-tab .tab-title {
103
+ vertical-align: middle;
104
+ }
105
+
106
+ /* Tab badge (for plugin tabs) */
107
+ .right-panel-tab {
108
+ position: relative;
109
+ }
110
+ .right-panel-tab-badge {
111
+ position: absolute;
112
+ top: 2px;
113
+ right: 2px;
114
+ min-width: 14px;
115
+ height: 14px;
116
+ padding: 0 4px;
117
+ font-size: 9px;
118
+ font-weight: 700;
119
+ line-height: 14px;
120
+ text-align: center;
121
+ color: #fff;
122
+ background: var(--accent);
123
+ border-radius: 7px;
124
+ pointer-events: none;
125
+ font-family: var(--font-mono);
126
+ }
127
+
128
+ /* Add-tab "+" button */
129
+ .right-panel-add-tab {
130
+ margin-left: auto;
131
+ background: none;
132
+ border: 1px dashed var(--border);
133
+ color: var(--text-dim);
134
+ cursor: pointer;
135
+ width: 24px;
136
+ height: 24px;
137
+ border-radius: var(--radius);
138
+ display: flex;
139
+ align-items: center;
140
+ justify-content: center;
141
+ padding: 0;
142
+ flex-shrink: 0;
143
+ transition: all 0.2s var(--ease-smooth);
144
+ }
145
+
146
+ .right-panel-add-tab:hover {
147
+ color: var(--accent);
148
+ border-color: var(--accent);
149
+ background: var(--accent-dim);
150
+ border-style: solid;
151
+ }
152
+
153
+ .right-panel-close {
154
+ margin-left: 4px;
155
+ background: none;
156
+ border: none;
157
+ color: var(--text-dim);
158
+ cursor: pointer;
159
+ padding: 2px 6px;
160
+ border-radius: var(--radius);
161
+ font-size: 16px;
162
+ line-height: 1;
163
+ transition: all 0.15s;
164
+ }
165
+
166
+ .right-panel-close:hover {
167
+ color: var(--text);
168
+ background: var(--bg-tertiary);
169
+ }
170
+
171
+ /* Tab content panes */
172
+ .right-panel-content {
173
+ flex: 1;
174
+ overflow: hidden;
175
+ display: flex;
176
+ flex-direction: column;
177
+ }
178
+
179
+ .right-panel-pane {
180
+ display: none;
181
+ flex-direction: column;
182
+ flex: 1;
183
+ overflow: hidden;
184
+ }
185
+
186
+ .right-panel-pane.active {
187
+ display: flex;
188
+ }
189
+
190
+ /* Toggle button in header */
191
+ .right-panel-toggle-btn {
192
+ background: none;
193
+ border: 1px solid var(--border);
194
+ color: var(--text-dim);
195
+ cursor: pointer;
196
+ padding: 3px 10px;
197
+ border-radius: var(--radius);
198
+ font-size: 11px;
199
+ font-family: var(--font-sans);
200
+ transition: all 0.2s var(--ease-smooth);
201
+ display: flex;
202
+ align-items: center;
203
+ gap: 4px;
204
+ height: 26px;
205
+ }
206
+
207
+ .right-panel-toggle-btn:hover {
208
+ color: var(--text);
209
+ border-color: var(--text-dim);
210
+ }
211
+
212
+ .right-panel-toggle-btn.active {
213
+ color: var(--accent);
214
+ border-color: var(--accent);
215
+ background: var(--accent-dim);
216
+ }
217
+
218
+ /* ── Plugin Marketplace ──────────────────────────────── */
219
+ .marketplace-overlay {
220
+ position: fixed;
221
+ inset: 0;
222
+ background: rgba(0, 0, 0, 0.55);
223
+ backdrop-filter: blur(6px);
224
+ -webkit-backdrop-filter: blur(6px);
225
+ z-index: 9999;
226
+ display: flex;
227
+ align-items: center;
228
+ justify-content: center;
229
+ animation: fadeIn 0.15s ease;
230
+ }
231
+
232
+ .marketplace-popup {
233
+ background: var(--bg-secondary);
234
+ border: 1px solid var(--border);
235
+ border-radius: var(--radius-lg);
236
+ width: 440px;
237
+ max-width: 90vw;
238
+ max-height: 70vh;
239
+ display: flex;
240
+ flex-direction: column;
241
+ box-shadow: var(--shadow-lg);
242
+ animation: modalEnter 0.25s var(--ease-out-expo);
243
+ position: relative;
244
+ overflow: hidden;
245
+ }
246
+
247
+ /* Accent line */
248
+ .marketplace-popup::before {
249
+ content: "";
250
+ position: absolute;
251
+ top: 0;
252
+ left: 0;
253
+ right: 0;
254
+ height: 2px;
255
+ background: linear-gradient(90deg, var(--accent), var(--purple), var(--accent));
256
+ opacity: 0.4;
257
+ }
258
+
259
+ .marketplace-header {
260
+ padding: 22px 24px 16px;
261
+ border-bottom: 1px solid var(--border);
262
+ }
263
+
264
+ .marketplace-header h3 {
265
+ margin: 0 0 4px;
266
+ font-size: 16px;
267
+ font-weight: 700;
268
+ color: var(--text);
269
+ font-family: var(--font-display);
270
+ letter-spacing: 0.02em;
271
+ }
272
+
273
+ .marketplace-subtitle {
274
+ font-size: 11px;
275
+ color: var(--text-dim);
276
+ font-family: var(--font-sans);
277
+ }
278
+
279
+ .marketplace-list {
280
+ flex: 1;
281
+ overflow-y: auto;
282
+ padding: 8px;
283
+ }
284
+
285
+ .marketplace-list::-webkit-scrollbar {
286
+ width: 4px;
287
+ }
288
+ .marketplace-list::-webkit-scrollbar-thumb {
289
+ background: var(--border);
290
+ border-radius: 2px;
291
+ }
292
+
293
+ .marketplace-empty {
294
+ text-align: center;
295
+ padding: 32px 16px;
296
+ color: var(--text-dim);
297
+ font-size: 12px;
298
+ line-height: 1.6;
299
+ font-family: var(--font-sans);
300
+ }
301
+ .marketplace-empty code {
302
+ color: var(--accent);
303
+ font-family: var(--font-mono);
304
+ font-size: 11px;
305
+ }
306
+
307
+ .marketplace-item {
308
+ display: flex;
309
+ align-items: center;
310
+ gap: 12px;
311
+ padding: 12px 12px 12px 4px;
312
+ border-radius: var(--radius-md);
313
+ cursor: pointer;
314
+ transition: all 0.2s var(--ease-smooth);
315
+ border: 1px solid transparent;
316
+ }
317
+
318
+ .marketplace-item:hover {
319
+ background: var(--bg-tertiary);
320
+ }
321
+
322
+ .marketplace-item.selected {
323
+ background: var(--accent-dim);
324
+ border-color: var(--accent);
325
+ }
326
+
327
+ .marketplace-item.dragging {
328
+ opacity: 0.4;
329
+ }
330
+
331
+ /* Drag handle */
332
+ .marketplace-drag-handle {
333
+ flex-shrink: 0;
334
+ width: 20px;
335
+ text-align: center;
336
+ font-size: 14px;
337
+ color: var(--text-dim);
338
+ cursor: grab;
339
+ opacity: 0.4;
340
+ transition: all 0.15s;
341
+ user-select: none;
342
+ letter-spacing: 1px;
343
+ }
344
+ .marketplace-drag-handle:active {
345
+ cursor: grabbing;
346
+ }
347
+ .marketplace-item:hover .marketplace-drag-handle {
348
+ opacity: 0.8;
349
+ color: var(--text);
350
+ }
351
+
352
+ /* Drop indicator line */
353
+ .marketplace-drop-indicator {
354
+ height: 2px;
355
+ background: var(--accent);
356
+ border-radius: 1px;
357
+ margin: 2px 16px;
358
+ transition: opacity 0.1s;
359
+ box-shadow: 0 0 6px var(--accent-glow);
360
+ }
361
+
362
+ .marketplace-item-icon {
363
+ font-size: 22px;
364
+ width: 38px;
365
+ height: 38px;
366
+ display: flex;
367
+ align-items: center;
368
+ justify-content: center;
369
+ background: var(--bg);
370
+ border-radius: var(--radius-md);
371
+ flex-shrink: 0;
372
+ border: 1px solid var(--border-subtle);
373
+ }
374
+
375
+ .marketplace-item-info {
376
+ flex: 1;
377
+ min-width: 0;
378
+ }
379
+
380
+ .marketplace-item-name {
381
+ font-size: 13px;
382
+ font-weight: 600;
383
+ color: var(--text);
384
+ margin-bottom: 2px;
385
+ font-family: var(--font-sans);
386
+ }
387
+
388
+ .marketplace-item-desc {
389
+ font-size: 11px;
390
+ color: var(--text-dim);
391
+ line-height: 1.4;
392
+ overflow: hidden;
393
+ text-overflow: ellipsis;
394
+ white-space: nowrap;
395
+ font-family: var(--font-sans);
396
+ }
397
+
398
+ .marketplace-item-status {
399
+ flex-shrink: 0;
400
+ }
401
+
402
+ .marketplace-loaded {
403
+ font-size: 9px;
404
+ font-family: var(--font-display);
405
+ color: var(--accent);
406
+ background: var(--accent-dim);
407
+ padding: 2px 7px;
408
+ border-radius: 4px;
409
+ text-transform: uppercase;
410
+ letter-spacing: 0.06em;
411
+ border: 1px solid var(--border-accent);
412
+ }
413
+
414
+ .marketplace-item-toggle {
415
+ flex-shrink: 0;
416
+ }
417
+
418
+ .marketplace-checkbox {
419
+ width: 18px;
420
+ height: 18px;
421
+ border: 2px solid var(--border);
422
+ border-radius: 5px;
423
+ transition: all 0.2s var(--ease-smooth);
424
+ position: relative;
425
+ }
426
+
427
+ .marketplace-checkbox.checked {
428
+ background: var(--accent);
429
+ border-color: var(--accent);
430
+ box-shadow: var(--glow);
431
+ }
432
+
433
+ .marketplace-checkbox.checked::after {
434
+ content: '';
435
+ position: absolute;
436
+ top: 2px;
437
+ left: 5px;
438
+ width: 4px;
439
+ height: 8px;
440
+ border: solid #fff;
441
+ border-width: 0 2px 2px 0;
442
+ transform: rotate(45deg);
443
+ }
444
+
445
+ .marketplace-footer {
446
+ display: flex;
447
+ justify-content: flex-end;
448
+ gap: 8px;
449
+ padding: 16px 24px;
450
+ border-top: 1px solid var(--border);
451
+ }
452
+
453
+ .marketplace-btn {
454
+ padding: 8px 22px;
455
+ border-radius: var(--radius-md);
456
+ font-size: 12px;
457
+ font-weight: 500;
458
+ font-family: var(--font-sans);
459
+ cursor: pointer;
460
+ transition: all 0.2s var(--ease-smooth);
461
+ border: 1px solid var(--border);
462
+ }
463
+
464
+ .marketplace-btn-cancel {
465
+ background: none;
466
+ color: var(--text-dim);
467
+ }
468
+ .marketplace-btn-cancel:hover {
469
+ color: var(--text);
470
+ background: var(--bg-tertiary);
471
+ }
472
+
473
+ .marketplace-btn-apply {
474
+ background: var(--accent);
475
+ color: #fff;
476
+ border-color: var(--accent);
477
+ }
478
+ .marketplace-btn-apply:hover {
479
+ filter: brightness(1.1);
480
+ box-shadow: var(--glow-strong);
481
+ }