claude-code-kanban 7.19.0 → 7.21.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.
- package/lib/ask.js +215 -0
- package/lib/parent-cache.js +5 -1
- package/package.json +1 -1
- package/plugin/plugins/claude-code-kanban/.claude-plugin/plugin.json +1 -1
- package/plugin/plugins/claude-code-kanban/hooks/ask.ts +163 -0
- package/plugin/plugins/claude-code-kanban/hooks/index.ts +2 -0
- package/plugin/plugins/claude-code-kanban/skills/ask/SKILL.md +44 -0
- package/plugin/plugins/claude-code-kanban/skills/ask/references/playground.md +25 -0
- package/plugin/plugins/claude-code-kanban/tests/ask.test.ts +100 -0
- package/plugin/plugins/claude-code-kanban/tests/show.test.ts +1 -1
- package/public/app.js +257 -45
- package/public/index.html +24 -3
- package/public/style.css +320 -69
- package/public/themes.css +93 -93
- package/server.js +17 -5
package/public/themes.css
CHANGED
|
@@ -52,7 +52,7 @@ body:not([data-color-theme]):not(.light) {
|
|
|
52
52
|
--text-primary: #f0f1f3;
|
|
53
53
|
--text-secondary: #c2c4c9;
|
|
54
54
|
--text-tertiary: #9a9da5;
|
|
55
|
-
--text-muted: #
|
|
55
|
+
--text-muted: #858891;
|
|
56
56
|
}
|
|
57
57
|
body.light:not([data-color-theme]) {
|
|
58
58
|
--accent: #e86f33;
|
|
@@ -67,7 +67,7 @@ body.light:not([data-color-theme]) {
|
|
|
67
67
|
--text-primary: #0a0a0a;
|
|
68
68
|
--text-secondary: #2c2c2c;
|
|
69
69
|
--text-tertiary: #565656;
|
|
70
|
-
--text-muted: #
|
|
70
|
+
--text-muted: #666666;
|
|
71
71
|
}
|
|
72
72
|
@media (prefers-color-scheme: light) {
|
|
73
73
|
body:not(.dark-forced):not([data-color-theme]) {
|
|
@@ -83,7 +83,7 @@ body:not(.dark-forced):not([data-color-theme]) {
|
|
|
83
83
|
--text-primary: #0a0a0a;
|
|
84
84
|
--text-secondary: #2c2c2c;
|
|
85
85
|
--text-tertiary: #565656;
|
|
86
|
-
--text-muted: #
|
|
86
|
+
--text-muted: #666666;
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
|
|
@@ -101,7 +101,7 @@ body[data-color-theme="gruvbox"]:not(.light) {
|
|
|
101
101
|
--text-primary: #ebdbb2;
|
|
102
102
|
--text-secondary: #d5c4a1;
|
|
103
103
|
--text-tertiary: #bdae93;
|
|
104
|
-
--text-muted: #
|
|
104
|
+
--text-muted: #a69782;
|
|
105
105
|
}
|
|
106
106
|
body.light[data-color-theme="gruvbox"] {
|
|
107
107
|
--accent: #d65d0e;
|
|
@@ -115,8 +115,8 @@ body.light[data-color-theme="gruvbox"] {
|
|
|
115
115
|
--border: #c9bc9d;
|
|
116
116
|
--text-primary: #3c3836;
|
|
117
117
|
--text-secondary: #504945;
|
|
118
|
-
--text-tertiary: #
|
|
119
|
-
--text-muted: #
|
|
118
|
+
--text-tertiary: #5f564f;
|
|
119
|
+
--text-muted: #70645b;
|
|
120
120
|
}
|
|
121
121
|
@media (prefers-color-scheme: light) {
|
|
122
122
|
body:not(.dark-forced)[data-color-theme="gruvbox"] {
|
|
@@ -131,8 +131,8 @@ body:not(.dark-forced)[data-color-theme="gruvbox"] {
|
|
|
131
131
|
--border: #c9bc9d;
|
|
132
132
|
--text-primary: #3c3836;
|
|
133
133
|
--text-secondary: #504945;
|
|
134
|
-
--text-tertiary: #
|
|
135
|
-
--text-muted: #
|
|
134
|
+
--text-tertiary: #5f564f;
|
|
135
|
+
--text-muted: #70645b;
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
138
|
|
|
@@ -150,7 +150,7 @@ body[data-color-theme="catppuccin"]:not(.light) {
|
|
|
150
150
|
--text-primary: #cdd6f4;
|
|
151
151
|
--text-secondary: #bac2de;
|
|
152
152
|
--text-tertiary: #a6adc8;
|
|
153
|
-
--text-muted: #
|
|
153
|
+
--text-muted: #82879f;
|
|
154
154
|
}
|
|
155
155
|
body.light[data-color-theme="catppuccin"] {
|
|
156
156
|
--accent: #8839ef;
|
|
@@ -164,8 +164,8 @@ body.light[data-color-theme="catppuccin"] {
|
|
|
164
164
|
--border: #bcc0cc;
|
|
165
165
|
--text-primary: #4c4f69;
|
|
166
166
|
--text-secondary: #5c5f77;
|
|
167
|
-
--text-tertiary: #
|
|
168
|
-
--text-muted: #
|
|
167
|
+
--text-tertiary: #545770;
|
|
168
|
+
--text-muted: #63667d;
|
|
169
169
|
}
|
|
170
170
|
@media (prefers-color-scheme: light) {
|
|
171
171
|
body:not(.dark-forced)[data-color-theme="catppuccin"] {
|
|
@@ -180,8 +180,8 @@ body:not(.dark-forced)[data-color-theme="catppuccin"] {
|
|
|
180
180
|
--border: #bcc0cc;
|
|
181
181
|
--text-primary: #4c4f69;
|
|
182
182
|
--text-secondary: #5c5f77;
|
|
183
|
-
--text-tertiary: #
|
|
184
|
-
--text-muted: #
|
|
183
|
+
--text-tertiary: #545770;
|
|
184
|
+
--text-muted: #63667d;
|
|
185
185
|
}
|
|
186
186
|
}
|
|
187
187
|
|
|
@@ -198,8 +198,8 @@ body[data-color-theme="tokyo-night"]:not(.light) {
|
|
|
198
198
|
--border: #3b4261;
|
|
199
199
|
--text-primary: #c0caf5;
|
|
200
200
|
--text-secondary: #a9b1d6;
|
|
201
|
-
--text-tertiary: #
|
|
202
|
-
--text-muted: #
|
|
201
|
+
--text-tertiary: #959cbe;
|
|
202
|
+
--text-muted: #838aaf;
|
|
203
203
|
}
|
|
204
204
|
body.light[data-color-theme="tokyo-night"] {
|
|
205
205
|
--accent: #2e7de9;
|
|
@@ -213,8 +213,8 @@ body.light[data-color-theme="tokyo-night"] {
|
|
|
213
213
|
--border: #a8aecb;
|
|
214
214
|
--text-primary: #343b58;
|
|
215
215
|
--text-secondary: #565a6e;
|
|
216
|
-
--text-tertiary: #
|
|
217
|
-
--text-muted: #
|
|
216
|
+
--text-tertiary: #505466;
|
|
217
|
+
--text-muted: #5d627a;
|
|
218
218
|
}
|
|
219
219
|
@media (prefers-color-scheme: light) {
|
|
220
220
|
body:not(.dark-forced)[data-color-theme="tokyo-night"] {
|
|
@@ -229,8 +229,8 @@ body:not(.dark-forced)[data-color-theme="tokyo-night"] {
|
|
|
229
229
|
--border: #a8aecb;
|
|
230
230
|
--text-primary: #343b58;
|
|
231
231
|
--text-secondary: #565a6e;
|
|
232
|
-
--text-tertiary: #
|
|
233
|
-
--text-muted: #
|
|
232
|
+
--text-tertiary: #505466;
|
|
233
|
+
--text-muted: #5d627a;
|
|
234
234
|
}
|
|
235
235
|
}
|
|
236
236
|
|
|
@@ -247,8 +247,8 @@ body[data-color-theme="solarized"]:not(.light) {
|
|
|
247
247
|
--border: #586e75;
|
|
248
248
|
--text-primary: #e2dfd0;
|
|
249
249
|
--text-secondary: #b7c0bf;
|
|
250
|
-
--text-tertiary: #
|
|
251
|
-
--text-muted: #
|
|
250
|
+
--text-tertiary: #b7beb7;
|
|
251
|
+
--text-muted: #9faaa7;
|
|
252
252
|
}
|
|
253
253
|
body.light[data-color-theme="solarized"] {
|
|
254
254
|
--accent: #2280c2;
|
|
@@ -262,8 +262,8 @@ body.light[data-color-theme="solarized"] {
|
|
|
262
262
|
--border: #cdc4ab;
|
|
263
263
|
--text-primary: #073642;
|
|
264
264
|
--text-secondary: #4f6369;
|
|
265
|
-
--text-tertiary: #
|
|
266
|
-
--text-muted: #
|
|
265
|
+
--text-tertiary: #385861;
|
|
266
|
+
--text-muted: #4a666e;
|
|
267
267
|
--sidebar-bg: #e6dfc7;
|
|
268
268
|
--sidebar-item-bg: #f3ecd6;
|
|
269
269
|
}
|
|
@@ -280,8 +280,8 @@ body:not(.dark-forced)[data-color-theme="solarized"] {
|
|
|
280
280
|
--border: #cdc4ab;
|
|
281
281
|
--text-primary: #073642;
|
|
282
282
|
--text-secondary: #4f6369;
|
|
283
|
-
--text-tertiary: #
|
|
284
|
-
--text-muted: #
|
|
283
|
+
--text-tertiary: #385861;
|
|
284
|
+
--text-muted: #4a666e;
|
|
285
285
|
--sidebar-bg: #e6dfc7;
|
|
286
286
|
--sidebar-item-bg: #f3ecd6;
|
|
287
287
|
}
|
|
@@ -300,8 +300,8 @@ body[data-color-theme="dracula"]:not(.light) {
|
|
|
300
300
|
--border: #565a75;
|
|
301
301
|
--text-primary: #f8f8f2;
|
|
302
302
|
--text-secondary: #d8d8d2;
|
|
303
|
-
--text-tertiary: #
|
|
304
|
-
--text-muted: #
|
|
303
|
+
--text-tertiary: #b2b5c6;
|
|
304
|
+
--text-muted: #9aa1bc;
|
|
305
305
|
}
|
|
306
306
|
body.light[data-color-theme="dracula"] {
|
|
307
307
|
--accent: #7c3aed;
|
|
@@ -315,8 +315,8 @@ body.light[data-color-theme="dracula"] {
|
|
|
315
315
|
--border: #c9c9d6;
|
|
316
316
|
--text-primary: #16161e;
|
|
317
317
|
--text-secondary: #34343f;
|
|
318
|
-
--text-tertiary: #
|
|
319
|
-
--text-muted: #
|
|
318
|
+
--text-tertiary: #575765;
|
|
319
|
+
--text-muted: #666674;
|
|
320
320
|
}
|
|
321
321
|
@media (prefers-color-scheme: light) {
|
|
322
322
|
body:not(.dark-forced)[data-color-theme="dracula"] {
|
|
@@ -331,8 +331,8 @@ body:not(.dark-forced)[data-color-theme="dracula"] {
|
|
|
331
331
|
--border: #c9c9d6;
|
|
332
332
|
--text-primary: #16161e;
|
|
333
333
|
--text-secondary: #34343f;
|
|
334
|
-
--text-tertiary: #
|
|
335
|
-
--text-muted: #
|
|
334
|
+
--text-tertiary: #575765;
|
|
335
|
+
--text-muted: #666674;
|
|
336
336
|
}
|
|
337
337
|
}
|
|
338
338
|
|
|
@@ -349,8 +349,8 @@ body[data-color-theme="nord"]:not(.light) {
|
|
|
349
349
|
--border: #4c566a;
|
|
350
350
|
--text-primary: #eceff4;
|
|
351
351
|
--text-secondary: #d8dee9;
|
|
352
|
-
--text-tertiary: #
|
|
353
|
-
--text-muted: #
|
|
352
|
+
--text-tertiary: #bec4d1;
|
|
353
|
+
--text-muted: #a7b0c1;
|
|
354
354
|
}
|
|
355
355
|
body.light[data-color-theme="nord"] {
|
|
356
356
|
--accent: #5e81ac;
|
|
@@ -365,7 +365,7 @@ body.light[data-color-theme="nord"] {
|
|
|
365
365
|
--text-primary: #2e3440;
|
|
366
366
|
--text-secondary: #3b4252;
|
|
367
367
|
--text-tertiary: #4c566a;
|
|
368
|
-
--text-muted: #
|
|
368
|
+
--text-muted: #5e687c;
|
|
369
369
|
}
|
|
370
370
|
@media (prefers-color-scheme: light) {
|
|
371
371
|
body:not(.dark-forced)[data-color-theme="nord"] {
|
|
@@ -381,7 +381,7 @@ body:not(.dark-forced)[data-color-theme="nord"] {
|
|
|
381
381
|
--text-primary: #2e3440;
|
|
382
382
|
--text-secondary: #3b4252;
|
|
383
383
|
--text-tertiary: #4c566a;
|
|
384
|
-
--text-muted: #
|
|
384
|
+
--text-muted: #5e687c;
|
|
385
385
|
}
|
|
386
386
|
}
|
|
387
387
|
|
|
@@ -398,8 +398,8 @@ body[data-color-theme="rose-pine"]:not(.light) {
|
|
|
398
398
|
--border: #403d52;
|
|
399
399
|
--text-primary: #e0def4;
|
|
400
400
|
--text-secondary: #c5c2dd;
|
|
401
|
-
--text-tertiary: #
|
|
402
|
-
--text-muted: #
|
|
401
|
+
--text-tertiary: #a09db9;
|
|
402
|
+
--text-muted: #8e8ba7;
|
|
403
403
|
}
|
|
404
404
|
body.light[data-color-theme="rose-pine"] {
|
|
405
405
|
--accent: #907aa9;
|
|
@@ -413,8 +413,8 @@ body.light[data-color-theme="rose-pine"] {
|
|
|
413
413
|
--border: #cecacd;
|
|
414
414
|
--text-primary: #575279;
|
|
415
415
|
--text-secondary: #635e87;
|
|
416
|
-
--text-tertiary: #
|
|
417
|
-
--text-muted: #
|
|
416
|
+
--text-tertiary: #5a557b;
|
|
417
|
+
--text-muted: #6a6485;
|
|
418
418
|
}
|
|
419
419
|
@media (prefers-color-scheme: light) {
|
|
420
420
|
body:not(.dark-forced)[data-color-theme="rose-pine"] {
|
|
@@ -429,8 +429,8 @@ body:not(.dark-forced)[data-color-theme="rose-pine"] {
|
|
|
429
429
|
--border: #cecacd;
|
|
430
430
|
--text-primary: #575279;
|
|
431
431
|
--text-secondary: #635e87;
|
|
432
|
-
--text-tertiary: #
|
|
433
|
-
--text-muted: #
|
|
432
|
+
--text-tertiary: #5a557b;
|
|
433
|
+
--text-muted: #6a6485;
|
|
434
434
|
}
|
|
435
435
|
}
|
|
436
436
|
|
|
@@ -447,8 +447,8 @@ body[data-color-theme="everforest"]:not(.light) {
|
|
|
447
447
|
--border: #475258;
|
|
448
448
|
--text-primary: #d3c6aa;
|
|
449
449
|
--text-secondary: #bfb6a3;
|
|
450
|
-
--text-tertiary: #
|
|
451
|
-
--text-muted: #
|
|
450
|
+
--text-tertiary: #c3bea7;
|
|
451
|
+
--text-muted: #a8ab9a;
|
|
452
452
|
}
|
|
453
453
|
body.light[data-color-theme="everforest"] {
|
|
454
454
|
--accent: #6f8352;
|
|
@@ -462,8 +462,8 @@ body.light[data-color-theme="everforest"] {
|
|
|
462
462
|
--border: #d3d2bf;
|
|
463
463
|
--text-primary: #3d484e;
|
|
464
464
|
--text-secondary: #55636b;
|
|
465
|
-
--text-tertiary: #
|
|
466
|
-
--text-muted: #
|
|
465
|
+
--text-tertiary: #515b56;
|
|
466
|
+
--text-muted: #606a62;
|
|
467
467
|
}
|
|
468
468
|
@media (prefers-color-scheme: light) {
|
|
469
469
|
body:not(.dark-forced)[data-color-theme="everforest"] {
|
|
@@ -478,8 +478,8 @@ body:not(.dark-forced)[data-color-theme="everforest"] {
|
|
|
478
478
|
--border: #d3d2bf;
|
|
479
479
|
--text-primary: #3d484e;
|
|
480
480
|
--text-secondary: #55636b;
|
|
481
|
-
--text-tertiary: #
|
|
482
|
-
--text-muted: #
|
|
481
|
+
--text-tertiary: #515b56;
|
|
482
|
+
--text-muted: #606a62;
|
|
483
483
|
}
|
|
484
484
|
}
|
|
485
485
|
|
|
@@ -497,7 +497,7 @@ body[data-color-theme="kanagawa"]:not(.light) {
|
|
|
497
497
|
--text-primary: #dcd7ba;
|
|
498
498
|
--text-secondary: #c8c093;
|
|
499
499
|
--text-tertiary: #a6a69c;
|
|
500
|
-
--text-muted: #
|
|
500
|
+
--text-muted: #94948a;
|
|
501
501
|
}
|
|
502
502
|
body.light[data-color-theme="kanagawa"] {
|
|
503
503
|
--accent: #4d699b;
|
|
@@ -511,8 +511,8 @@ body.light[data-color-theme="kanagawa"] {
|
|
|
511
511
|
--border: #d2ccb6;
|
|
512
512
|
--text-primary: #545464;
|
|
513
513
|
--text-secondary: #66667a;
|
|
514
|
-
--text-tertiary: #
|
|
515
|
-
--text-muted: #
|
|
514
|
+
--text-tertiary: #565564;
|
|
515
|
+
--text-muted: #666469;
|
|
516
516
|
}
|
|
517
517
|
@media (prefers-color-scheme: light) {
|
|
518
518
|
body:not(.dark-forced)[data-color-theme="kanagawa"] {
|
|
@@ -527,8 +527,8 @@ body:not(.dark-forced)[data-color-theme="kanagawa"] {
|
|
|
527
527
|
--border: #d2ccb6;
|
|
528
528
|
--text-primary: #545464;
|
|
529
529
|
--text-secondary: #66667a;
|
|
530
|
-
--text-tertiary: #
|
|
531
|
-
--text-muted: #
|
|
530
|
+
--text-tertiary: #565564;
|
|
531
|
+
--text-muted: #666469;
|
|
532
532
|
}
|
|
533
533
|
}
|
|
534
534
|
|
|
@@ -545,8 +545,8 @@ body[data-color-theme="one-dark"]:not(.light) {
|
|
|
545
545
|
--border: #4b5263;
|
|
546
546
|
--text-primary: #d7dae0;
|
|
547
547
|
--text-secondary: #abb2bf;
|
|
548
|
-
--text-tertiary: #
|
|
549
|
-
--text-muted: #
|
|
548
|
+
--text-tertiary: #acb0ba;
|
|
549
|
+
--text-muted: #999ea8;
|
|
550
550
|
}
|
|
551
551
|
body.light[data-color-theme="one-dark"] {
|
|
552
552
|
--accent: #4078f2;
|
|
@@ -560,8 +560,8 @@ body.light[data-color-theme="one-dark"] {
|
|
|
560
560
|
--border: #d4d4d6;
|
|
561
561
|
--text-primary: #383a42;
|
|
562
562
|
--text-secondary: #50525a;
|
|
563
|
-
--text-tertiary: #
|
|
564
|
-
--text-muted: #
|
|
563
|
+
--text-tertiary: #575963;
|
|
564
|
+
--text-muted: #666871;
|
|
565
565
|
}
|
|
566
566
|
@media (prefers-color-scheme: light) {
|
|
567
567
|
body:not(.dark-forced)[data-color-theme="one-dark"] {
|
|
@@ -576,8 +576,8 @@ body:not(.dark-forced)[data-color-theme="one-dark"] {
|
|
|
576
576
|
--border: #d4d4d6;
|
|
577
577
|
--text-primary: #383a42;
|
|
578
578
|
--text-secondary: #50525a;
|
|
579
|
-
--text-tertiary: #
|
|
580
|
-
--text-muted: #
|
|
579
|
+
--text-tertiary: #575963;
|
|
580
|
+
--text-muted: #666871;
|
|
581
581
|
}
|
|
582
582
|
}
|
|
583
583
|
|
|
@@ -594,8 +594,8 @@ body[data-color-theme="night-owl"]:not(.light) {
|
|
|
594
594
|
--border: #5f7e97;
|
|
595
595
|
--text-primary: #d6deeb;
|
|
596
596
|
--text-secondary: #b8c5d6;
|
|
597
|
-
--text-tertiary: #
|
|
598
|
-
--text-muted: #
|
|
597
|
+
--text-tertiary: #9bb0c3;
|
|
598
|
+
--text-muted: #899eab;
|
|
599
599
|
}
|
|
600
600
|
body.light[data-color-theme="night-owl"] {
|
|
601
601
|
--accent: #0c969b;
|
|
@@ -609,8 +609,8 @@ body.light[data-color-theme="night-owl"] {
|
|
|
609
609
|
--border: #d0d0d0;
|
|
610
610
|
--text-primary: #403f53;
|
|
611
611
|
--text-secondary: #545167;
|
|
612
|
-
--text-tertiary: #
|
|
613
|
-
--text-muted: #
|
|
612
|
+
--text-tertiary: #5a596f;
|
|
613
|
+
--text-muted: #68687e;
|
|
614
614
|
}
|
|
615
615
|
@media (prefers-color-scheme: light) {
|
|
616
616
|
body:not(.dark-forced)[data-color-theme="night-owl"] {
|
|
@@ -625,8 +625,8 @@ body:not(.dark-forced)[data-color-theme="night-owl"] {
|
|
|
625
625
|
--border: #d0d0d0;
|
|
626
626
|
--text-primary: #403f53;
|
|
627
627
|
--text-secondary: #545167;
|
|
628
|
-
--text-tertiary: #
|
|
629
|
-
--text-muted: #
|
|
628
|
+
--text-tertiary: #5a596f;
|
|
629
|
+
--text-muted: #68687e;
|
|
630
630
|
}
|
|
631
631
|
}
|
|
632
632
|
|
|
@@ -643,8 +643,8 @@ body[data-color-theme="monokai"]:not(.light) {
|
|
|
643
643
|
--border: #5b595c;
|
|
644
644
|
--text-primary: #fcfcfa;
|
|
645
645
|
--text-secondary: #d9d8d6;
|
|
646
|
-
--text-tertiary: #
|
|
647
|
-
--text-muted: #
|
|
646
|
+
--text-tertiary: #bfbfbe;
|
|
647
|
+
--text-muted: #ababab;
|
|
648
648
|
}
|
|
649
649
|
body.light[data-color-theme="monokai"] {
|
|
650
650
|
--accent: #c08a00;
|
|
@@ -658,8 +658,8 @@ body.light[data-color-theme="monokai"] {
|
|
|
658
658
|
--border: #cdc8c5;
|
|
659
659
|
--text-primary: #2c292d;
|
|
660
660
|
--text-secondary: #46434a;
|
|
661
|
-
--text-tertiary: #
|
|
662
|
-
--text-muted: #
|
|
661
|
+
--text-tertiary: #59565b;
|
|
662
|
+
--text-muted: #68656a;
|
|
663
663
|
}
|
|
664
664
|
@media (prefers-color-scheme: light) {
|
|
665
665
|
body:not(.dark-forced)[data-color-theme="monokai"] {
|
|
@@ -674,8 +674,8 @@ body:not(.dark-forced)[data-color-theme="monokai"] {
|
|
|
674
674
|
--border: #cdc8c5;
|
|
675
675
|
--text-primary: #2c292d;
|
|
676
676
|
--text-secondary: #46434a;
|
|
677
|
-
--text-tertiary: #
|
|
678
|
-
--text-muted: #
|
|
677
|
+
--text-tertiary: #59565b;
|
|
678
|
+
--text-muted: #68656a;
|
|
679
679
|
}
|
|
680
680
|
}
|
|
681
681
|
|
|
@@ -692,8 +692,8 @@ body[data-color-theme="github"]:not(.light) {
|
|
|
692
692
|
--border: #444d56;
|
|
693
693
|
--text-primary: #e1e4e8;
|
|
694
694
|
--text-secondary: #d1d5da;
|
|
695
|
-
--text-tertiary: #
|
|
696
|
-
--text-muted: #
|
|
695
|
+
--text-tertiary: #a6adb4;
|
|
696
|
+
--text-muted: #929aa2;
|
|
697
697
|
}
|
|
698
698
|
body.light[data-color-theme="github"] {
|
|
699
699
|
--accent: #0366d6;
|
|
@@ -707,8 +707,8 @@ body.light[data-color-theme="github"] {
|
|
|
707
707
|
--border: #d1d5da;
|
|
708
708
|
--text-primary: #24292e;
|
|
709
709
|
--text-secondary: #444d56;
|
|
710
|
-
--text-tertiary: #
|
|
711
|
-
--text-muted: #
|
|
710
|
+
--text-tertiary: #575f68;
|
|
711
|
+
--text-muted: #666e78;
|
|
712
712
|
}
|
|
713
713
|
@media (prefers-color-scheme: light) {
|
|
714
714
|
body:not(.dark-forced)[data-color-theme="github"] {
|
|
@@ -723,8 +723,8 @@ body:not(.dark-forced)[data-color-theme="github"] {
|
|
|
723
723
|
--border: #d1d5da;
|
|
724
724
|
--text-primary: #24292e;
|
|
725
725
|
--text-secondary: #444d56;
|
|
726
|
-
--text-tertiary: #
|
|
727
|
-
--text-muted: #
|
|
726
|
+
--text-tertiary: #575f68;
|
|
727
|
+
--text-muted: #666e78;
|
|
728
728
|
}
|
|
729
729
|
}
|
|
730
730
|
|
|
@@ -741,8 +741,8 @@ body[data-color-theme="ayu"]:not(.light) {
|
|
|
741
741
|
--border: #2d3343;
|
|
742
742
|
--text-primary: #bfbdb6;
|
|
743
743
|
--text-secondary: #a8a6a0;
|
|
744
|
-
--text-tertiary: #
|
|
745
|
-
--text-muted: #
|
|
744
|
+
--text-tertiary: #8d949b;
|
|
745
|
+
--text-muted: #7c838d;
|
|
746
746
|
}
|
|
747
747
|
body.light[data-color-theme="ayu"] {
|
|
748
748
|
--accent: #c97612;
|
|
@@ -756,8 +756,8 @@ body.light[data-color-theme="ayu"] {
|
|
|
756
756
|
--border: #d8dde2;
|
|
757
757
|
--text-primary: #3d4149;
|
|
758
758
|
--text-secondary: #5c6166;
|
|
759
|
-
--text-tertiary: #
|
|
760
|
-
--text-muted: #
|
|
759
|
+
--text-tertiary: #5a5e64;
|
|
760
|
+
--text-muted: #686d74;
|
|
761
761
|
}
|
|
762
762
|
@media (prefers-color-scheme: light) {
|
|
763
763
|
body:not(.dark-forced)[data-color-theme="ayu"] {
|
|
@@ -772,8 +772,8 @@ body:not(.dark-forced)[data-color-theme="ayu"] {
|
|
|
772
772
|
--border: #d8dde2;
|
|
773
773
|
--text-primary: #3d4149;
|
|
774
774
|
--text-secondary: #5c6166;
|
|
775
|
-
--text-tertiary: #
|
|
776
|
-
--text-muted: #
|
|
775
|
+
--text-tertiary: #5a5e64;
|
|
776
|
+
--text-muted: #686d74;
|
|
777
777
|
}
|
|
778
778
|
}
|
|
779
779
|
|
|
@@ -790,8 +790,8 @@ body[data-color-theme="vitesse"]:not(.light) {
|
|
|
790
790
|
--border: #333333;
|
|
791
791
|
--text-primary: #dbd7ca;
|
|
792
792
|
--text-secondary: #bfbaaa;
|
|
793
|
-
--text-tertiary: #
|
|
794
|
-
--text-muted: #
|
|
793
|
+
--text-tertiary: #99998e;
|
|
794
|
+
--text-muted: #7e8a7b;
|
|
795
795
|
}
|
|
796
796
|
body.light[data-color-theme="vitesse"] {
|
|
797
797
|
--accent: #1c6b48;
|
|
@@ -805,8 +805,8 @@ body.light[data-color-theme="vitesse"] {
|
|
|
805
805
|
--border: #d6d6d6;
|
|
806
806
|
--text-primary: #393a34;
|
|
807
807
|
--text-secondary: #4e4f47;
|
|
808
|
-
--text-tertiary: #
|
|
809
|
-
--text-muted: #
|
|
808
|
+
--text-tertiary: #5d5e56;
|
|
809
|
+
--text-muted: #6a6d64;
|
|
810
810
|
}
|
|
811
811
|
@media (prefers-color-scheme: light) {
|
|
812
812
|
body:not(.dark-forced)[data-color-theme="vitesse"] {
|
|
@@ -821,8 +821,8 @@ body:not(.dark-forced)[data-color-theme="vitesse"] {
|
|
|
821
821
|
--border: #d6d6d6;
|
|
822
822
|
--text-primary: #393a34;
|
|
823
823
|
--text-secondary: #4e4f47;
|
|
824
|
-
--text-tertiary: #
|
|
825
|
-
--text-muted: #
|
|
824
|
+
--text-tertiary: #5d5e56;
|
|
825
|
+
--text-muted: #6a6d64;
|
|
826
826
|
}
|
|
827
827
|
}
|
|
828
828
|
|
|
@@ -840,7 +840,7 @@ body[data-color-theme="synthwave"]:not(.light) {
|
|
|
840
840
|
--text-primary: #ffffff;
|
|
841
841
|
--text-secondary: #d8d6e8;
|
|
842
842
|
--text-tertiary: #b6b1d8;
|
|
843
|
-
--text-muted: #
|
|
843
|
+
--text-muted: #8f94c3;
|
|
844
844
|
}
|
|
845
845
|
body.light[data-color-theme="synthwave"] {
|
|
846
846
|
--accent: #c936a6;
|
|
@@ -854,8 +854,8 @@ body.light[data-color-theme="synthwave"] {
|
|
|
854
854
|
--border: #c5bcdd;
|
|
855
855
|
--text-primary: #241b2f;
|
|
856
856
|
--text-secondary: #3d3455;
|
|
857
|
-
--text-tertiary: #
|
|
858
|
-
--text-muted: #
|
|
857
|
+
--text-tertiary: #59507c;
|
|
858
|
+
--text-muted: #675f8b;
|
|
859
859
|
}
|
|
860
860
|
@media (prefers-color-scheme: light) {
|
|
861
861
|
body:not(.dark-forced)[data-color-theme="synthwave"] {
|
|
@@ -870,7 +870,7 @@ body:not(.dark-forced)[data-color-theme="synthwave"] {
|
|
|
870
870
|
--border: #c5bcdd;
|
|
871
871
|
--text-primary: #241b2f;
|
|
872
872
|
--text-secondary: #3d3455;
|
|
873
|
-
--text-tertiary: #
|
|
874
|
-
--text-muted: #
|
|
873
|
+
--text-tertiary: #59507c;
|
|
874
|
+
--text-muted: #675f8b;
|
|
875
875
|
}
|
|
876
876
|
}
|
package/server.js
CHANGED
|
@@ -51,6 +51,7 @@ const { createTerminalClient } = require('./lib/terminal-client');
|
|
|
51
51
|
const { kanbotOn, kanbotModel, createKanbot, findCostCli, readCostServer } = require('./lib/kanbot');
|
|
52
52
|
const { AGENT_ID_RE } = require('./cli');
|
|
53
53
|
const { createShowStore, mountShowRoutes, showBodyParser, SHOW_PATH } = require('./lib/show');
|
|
54
|
+
const { createAskStore, mountAskRoutes, askBodyParser, ASK_PATH } = require('./lib/ask');
|
|
54
55
|
const { readLiveSessions, isPidAlive, noteReplacedSessions } = require('./lib/live-sessions');
|
|
55
56
|
const { createProcStats } = require('./lib/proc-stats');
|
|
56
57
|
const { createUserGroupStore } = require('./lib/user-groups');
|
|
@@ -73,7 +74,7 @@ const { countTaskDir } = require('./lib/task-counts');
|
|
|
73
74
|
const { readTaskDir } = require('./lib/task-dir');
|
|
74
75
|
const { foldAgentLines } = require('./lib/agent-log');
|
|
75
76
|
const { projectMatcher, normalizeProjectPath, sessionProjectKey } = require('./public/project-match');
|
|
76
|
-
const { getParentVerdict, setParentVerdict } = require('./lib/parent-cache');
|
|
77
|
+
const { getParentVerdict, setParentVerdict, peekParentVerdict } = require('./lib/parent-cache');
|
|
77
78
|
|
|
78
79
|
if (process.argv.includes("--install") || process.argv.includes("--uninstall")) {
|
|
79
80
|
const { runInstall, runUninstall } = require("./install");
|
|
@@ -666,6 +667,7 @@ app.param('name', (_req, res, next, val) => {
|
|
|
666
667
|
});
|
|
667
668
|
|
|
668
669
|
app.use(SHOW_PATH, showBodyParser());
|
|
670
|
+
app.use(ASK_PATH, askBodyParser());
|
|
669
671
|
// Parse JSON bodies. A review of 50 comments at the field caps is about 450 kB.
|
|
670
672
|
app.use(express.json({ limit: '1mb' }));
|
|
671
673
|
// #endregion
|
|
@@ -1560,10 +1562,11 @@ app.get('/api/sessions', async (req, res) => {
|
|
|
1560
1562
|
const compactSuppressed = new Set();
|
|
1561
1563
|
for (const [sid] of sessionsMap) {
|
|
1562
1564
|
// Cheap pre-gate: only a session with a boundary anchor can be a continuation,
|
|
1563
|
-
// and lookupParentSession reads JSONLs on a cold cache.
|
|
1564
|
-
|
|
1565
|
-
const parent = lookupParentSession(sid);
|
|
1566
|
-
if (parent
|
|
1565
|
+
// and lookupParentSession reads JSONLs on a cold cache. A fork with no boundary
|
|
1566
|
+
// gets its badge only once a verdict exists (the info modal computes one).
|
|
1567
|
+
const parent = metadata[sid]?.logicalParentUuid ? lookupParentSession(sid) : peekParentVerdict(sid);
|
|
1568
|
+
if (parent?.relation === 'fork') sessionsMap.get(sid).forkedFromSessionId = parent.parentSessionId;
|
|
1569
|
+
if (parent?.relation !== 'compact' || !sessionsMap.has(parent.parentSessionId)) continue;
|
|
1567
1570
|
compactSuppressed.add(parent.parentSessionId);
|
|
1568
1571
|
sessionsMap.get(sid).continuedFromSessionId = parent.parentSessionId;
|
|
1569
1572
|
}
|
|
@@ -3326,6 +3329,7 @@ let savedTerminals = terminalsFile.load() || {};
|
|
|
3326
3329
|
function saveTerminals() {
|
|
3327
3330
|
const kept = new Set(Object.values(savedTerminals.terminalIds || {}));
|
|
3328
3331
|
const showSessions = show.prune((id) => kept.has(id) || terminal.hasTerminal(id));
|
|
3332
|
+
ask.prune((id) => terminal.hasTerminal(id));
|
|
3329
3333
|
terminalsFile.save({ ...savedTerminals, showSessions });
|
|
3330
3334
|
}
|
|
3331
3335
|
|
|
@@ -3460,6 +3464,14 @@ mountShowRoutes(app, {
|
|
|
3460
3464
|
broadcast,
|
|
3461
3465
|
onRemoved: (sessionId, paths) => panes.removeShow(sessionId, paths),
|
|
3462
3466
|
});
|
|
3467
|
+
const ask = createAskStore();
|
|
3468
|
+
mountAskRoutes(app, {
|
|
3469
|
+
store: ask,
|
|
3470
|
+
authorized: (token) => terminal.authorized(token),
|
|
3471
|
+
hasTerminal: (id) => terminal.hasTerminal(id),
|
|
3472
|
+
readPreviewFile,
|
|
3473
|
+
broadcast,
|
|
3474
|
+
});
|
|
3463
3475
|
|
|
3464
3476
|
// Served from node_modules, never a CDN: any script on this page can use the token.
|
|
3465
3477
|
const XTERM_FILES = {
|