@danielng23/dsh-client-ui-theme-store 0.1.1 → 0.1.3
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/README.md +18 -10
- package/catalog/edex-themes.json +216 -6
- package/lib/index.js +12 -6
- package/lib/invariant.js +2 -2
- package/lib/types/host/installer.d.ts +3 -2
- package/lib/types/invariant.d.ts +1 -1
- package/package.json +10 -10
package/README.md
CHANGED
|
@@ -1,15 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
**Theme store plugin for the DeepSeek Harness Web GUI.** Ships a new **Theme Store** settings page where users browse a flat catalog of curated color themes, preview them via screenshots, and apply them with one click. The catalog is a plain JSON file in this repository (`catalog/edex-themes.json`) — push the repo to GitHub and the plugin fetches the catalog from the raw URL at runtime.
|
|
1
|
+
SCIFI/HUD/TERMINAL-style theme store for DeekSeek Harness.
|
|
4
2
|
|
|
5
3
|

|
|
6
4
|
|
|
5
|
+
## eDEX-UI inspired themes
|
|
6
|
+
|
|
7
|
+
The shell themes in this store are **inspired by [eDEX-UI](https://github.com/GitSquared/edex-ui)** — the sci-fi, fully-featured terminal emulator dashboard. Each variant wraps the default web surface in an eDEX-style frame:
|
|
8
|
+
|
|
9
|
+
- **Two system info panels** — live system metrics and network activity
|
|
10
|
+
- **File directory browser** — filesystem explorer
|
|
11
|
+
- **Editor + terminal** — the working surface
|
|
12
|
+
|
|
13
|
+
Every theme in the catalog is **created by agents**: the variant shells, palettes, and catalog entries are all generated automatically by AI agents, so the whole catalog is a product of automated theme creation rather than hand-authored files.
|
|
14
|
+
|
|
7
15
|
## Installation
|
|
8
16
|
|
|
9
17
|
### Install from npm
|
|
10
18
|
|
|
11
19
|
```bash
|
|
12
|
-
pnpm add @
|
|
20
|
+
pnpm add @deepseek-ai/dsh-client-ui-theme-store
|
|
13
21
|
```
|
|
14
22
|
|
|
15
23
|
### Add to the harness
|
|
@@ -18,10 +26,10 @@ After installing the package, add the plugin to your harness instance's `cordis.
|
|
|
18
26
|
|
|
19
27
|
```yaml
|
|
20
28
|
- id: ui-theme-store
|
|
21
|
-
name: '@
|
|
29
|
+
name: '@deepseek-ai/dsh-client-ui-theme-store'
|
|
22
30
|
```
|
|
23
31
|
|
|
24
|
-
The client bundle is automatically served at `/plugins/@
|
|
32
|
+
The client bundle is automatically served at `/plugins/@deepseek-ai/dsh-client-ui-theme-store/client.js`.
|
|
25
33
|
|
|
26
34
|
> "No category, just read a json file from this repo (push to github), theme contains name, author, screenshot."
|
|
27
35
|
|
|
@@ -130,11 +138,11 @@ Two ways to compose this plugin into a running DeepSeek Harness GUI:
|
|
|
130
138
|
cp -r . /path/to/deepseek-harness/packages/client/ui-theme-store
|
|
131
139
|
```
|
|
132
140
|
2. Add a tsconfig reference — add `{ "path": "packages/client/ui-theme-store" }` to `tsconfig.client.json`'s `references`.
|
|
133
|
-
3. Add a dependency — add `"@
|
|
141
|
+
3. Add a dependency — add `"@deepseek-ai/dsh-client-ui-theme-store": "workspace:^"` to `packages/bundle/web-app/package.json`.
|
|
134
142
|
4. Add a cordis patch row — insert into `packages/bundle/web-app/cordis.patch.yml`:
|
|
135
143
|
```yaml
|
|
136
144
|
- id: ui-theme-store
|
|
137
|
-
name: '@
|
|
145
|
+
name: '@deepseek-ai/dsh-client-ui-theme-store'
|
|
138
146
|
```
|
|
139
147
|
5. Rebuild: `pnpm run build:lib:client && pnpm run build:web`.
|
|
140
148
|
|
|
@@ -142,10 +150,10 @@ Two ways to compose this plugin into a running DeepSeek Harness GUI:
|
|
|
142
150
|
|
|
143
151
|
1. Install the package from npm:
|
|
144
152
|
```bash
|
|
145
|
-
pnpm add @
|
|
153
|
+
pnpm add @deepseek-ai/dsh-client-ui-theme-store
|
|
146
154
|
```
|
|
147
155
|
2. Add a row to the cordis patch (see above) and a dependency entry in `web-app/package.json`.
|
|
148
|
-
3. The client bundle (`lib/client.js`) is in the correct closure-factory format — the harness modules node half will serve it at `/plugins/@
|
|
156
|
+
3. The client bundle (`lib/client.js`) is in the correct closure-factory format — the harness modules node half will serve it at `/plugins/@deepseek-ai/dsh-client-ui-theme-store/client.js`.
|
|
149
157
|
|
|
150
158
|
### Catalog URL
|
|
151
159
|
|
package/catalog/edex-themes.json
CHANGED
|
@@ -1,5 +1,40 @@
|
|
|
1
1
|
{
|
|
2
2
|
"themes": [
|
|
3
|
+
{
|
|
4
|
+
"id": "airtrack",
|
|
5
|
+
"name": "Airtrack",
|
|
6
|
+
"author": "@danielng23",
|
|
7
|
+
"screenshot": "https://raw.githubusercontent.com/ph4310822/dsh-edex-airtrack-ui/main/screenshot.png",
|
|
8
|
+
"colorScheme": "dark",
|
|
9
|
+
"type": "shell",
|
|
10
|
+
"installPackage": "@danielng23/dsh-airtrack-ui",
|
|
11
|
+
"shellPluginId": "@danielng23/dsh-airtrack-client-ui-edex",
|
|
12
|
+
"installHint": "dsh plugin --profile <name> add @danielng23/dsh-airtrack-ui",
|
|
13
|
+
"tokens": {
|
|
14
|
+
"--dsw-alias-bg-base": "#313131",
|
|
15
|
+
"--dsw-alias-bg-layer-1": "#313131",
|
|
16
|
+
"--dsw-alias-bg-layer-2": "#313131",
|
|
17
|
+
"--dsw-alias-bg-overlay": "#313131",
|
|
18
|
+
"--dsw-alias-border-l1": "#283d48",
|
|
19
|
+
"--dsw-alias-border-l2": "#557d91",
|
|
20
|
+
"--dsw-alias-border-l3": "#5d9ab8",
|
|
21
|
+
"--dsw-alias-brand-primary": "#5d9ab8",
|
|
22
|
+
"--dsw-alias-label-primary": "#5d9ab8",
|
|
23
|
+
"--dsw-alias-label-primary-bluish": "#5d9ab8",
|
|
24
|
+
"--dsw-alias-label-primary-dimmed": "#557d91",
|
|
25
|
+
"--dsw-alias-label-secondary": "#557d91",
|
|
26
|
+
"--dsw-alias-label-tertiary": "#557d91",
|
|
27
|
+
"--dsw-alias-label-caption": "#557d91",
|
|
28
|
+
"--dsw-alias-state-error-primary": "#f00000",
|
|
29
|
+
"--dsw-alias-state-success-primary": "#5d9ab8",
|
|
30
|
+
"--dsw-alias-state-warn-primary": "#ffe500",
|
|
31
|
+
"--dsw-alias-state-business-primary": "#5d9ab8",
|
|
32
|
+
"--dsw-alias-button-info-fill": "#5d9ab8",
|
|
33
|
+
"--dsw-alias-button-info-hover": "#557d91",
|
|
34
|
+
"--dsw-specific-sidebar-fill": "#313131",
|
|
35
|
+
"--dsw-specific-input-major": "#313131"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
3
38
|
{
|
|
4
39
|
"id": "armory",
|
|
5
40
|
"name": "Armory",
|
|
@@ -105,6 +140,41 @@
|
|
|
105
140
|
"--dsw-specific-input-major": "#151515"
|
|
106
141
|
}
|
|
107
142
|
},
|
|
143
|
+
{
|
|
144
|
+
"id": "crt",
|
|
145
|
+
"name": "Crt",
|
|
146
|
+
"author": "@danielng23",
|
|
147
|
+
"screenshot": "https://raw.githubusercontent.com/ph4310822/dsh-edex-crt-ui/main/review-shot.png",
|
|
148
|
+
"colorScheme": "dark",
|
|
149
|
+
"type": "shell",
|
|
150
|
+
"installPackage": "@danielng23/dsh-edex-crt-ui",
|
|
151
|
+
"shellPluginId": "@danielng23/dsh-crt-client-ui-edex",
|
|
152
|
+
"installHint": "dsh plugin --profile <name> add @danielng23/dsh-edex-crt-ui",
|
|
153
|
+
"tokens": {
|
|
154
|
+
"--dsw-alias-bg-base": "#000000",
|
|
155
|
+
"--dsw-alias-bg-layer-1": "#000000",
|
|
156
|
+
"--dsw-alias-bg-layer-2": "#000000",
|
|
157
|
+
"--dsw-alias-bg-overlay": "#000000",
|
|
158
|
+
"--dsw-alias-border-l1": "#135d2e",
|
|
159
|
+
"--dsw-alias-border-l2": "#2cb960",
|
|
160
|
+
"--dsw-alias-border-l3": "#09cc50",
|
|
161
|
+
"--dsw-alias-brand-primary": "#09cc50",
|
|
162
|
+
"--dsw-alias-label-primary": "#09cc50",
|
|
163
|
+
"--dsw-alias-label-primary-bluish": "#09cc50",
|
|
164
|
+
"--dsw-alias-label-primary-dimmed": "#2cb960",
|
|
165
|
+
"--dsw-alias-label-secondary": "#2cb960",
|
|
166
|
+
"--dsw-alias-label-tertiary": "#2cb960",
|
|
167
|
+
"--dsw-alias-label-caption": "#2cb960",
|
|
168
|
+
"--dsw-alias-state-error-primary": "#e65a5a",
|
|
169
|
+
"--dsw-alias-state-success-primary": "#09cc50",
|
|
170
|
+
"--dsw-alias-state-warn-primary": "#e6c85c",
|
|
171
|
+
"--dsw-alias-state-business-primary": "#09cc50",
|
|
172
|
+
"--dsw-alias-button-info-fill": "#09cc50",
|
|
173
|
+
"--dsw-alias-button-info-hover": "#2cb960",
|
|
174
|
+
"--dsw-specific-sidebar-fill": "#000000",
|
|
175
|
+
"--dsw-specific-input-major": "#000000"
|
|
176
|
+
}
|
|
177
|
+
},
|
|
108
178
|
{
|
|
109
179
|
"id": "cyber",
|
|
110
180
|
"name": "Cyber",
|
|
@@ -280,6 +350,41 @@
|
|
|
280
350
|
"--dsw-specific-input-major": "#2f3a36"
|
|
281
351
|
}
|
|
282
352
|
},
|
|
353
|
+
{
|
|
354
|
+
"id": "lockon",
|
|
355
|
+
"name": "Lockon",
|
|
356
|
+
"author": "@danielng23",
|
|
357
|
+
"screenshot": "https://raw.githubusercontent.com/ph4310822/dsh-edex-lockon-ui/main/review-shot.png",
|
|
358
|
+
"colorScheme": "dark",
|
|
359
|
+
"type": "shell",
|
|
360
|
+
"installPackage": "@danielng23/dsh-edex-lockon-ui",
|
|
361
|
+
"shellPluginId": "@danielng23/dsh-lockon-client-ui-edex",
|
|
362
|
+
"installHint": "dsh plugin --profile <name> add @danielng23/dsh-edex-lockon-ui",
|
|
363
|
+
"tokens": {
|
|
364
|
+
"--dsw-alias-bg-base": "#181c1d",
|
|
365
|
+
"--dsw-alias-bg-layer-1": "#181c1d",
|
|
366
|
+
"--dsw-alias-bg-layer-2": "#181c1d",
|
|
367
|
+
"--dsw-alias-bg-overlay": "#181c1d",
|
|
368
|
+
"--dsw-alias-border-l1": "#601b10",
|
|
369
|
+
"--dsw-alias-border-l2": "#c03b26",
|
|
370
|
+
"--dsw-alias-border-l3": "#ff4b2f",
|
|
371
|
+
"--dsw-alias-brand-primary": "#ff4b2f",
|
|
372
|
+
"--dsw-alias-label-primary": "#ff4b2f",
|
|
373
|
+
"--dsw-alias-label-primary-bluish": "#ff4b2f",
|
|
374
|
+
"--dsw-alias-label-primary-dimmed": "#c03b26",
|
|
375
|
+
"--dsw-alias-label-secondary": "#c03b26",
|
|
376
|
+
"--dsw-alias-label-tertiary": "#c03b26",
|
|
377
|
+
"--dsw-alias-label-caption": "#c03b26",
|
|
378
|
+
"--dsw-alias-state-error-primary": "#d93624",
|
|
379
|
+
"--dsw-alias-state-success-primary": "#ff4b2f",
|
|
380
|
+
"--dsw-alias-state-warn-primary": "#ff6338",
|
|
381
|
+
"--dsw-alias-state-business-primary": "#ff4b2f",
|
|
382
|
+
"--dsw-alias-button-info-fill": "#ff4b2f",
|
|
383
|
+
"--dsw-alias-button-info-hover": "#c03b26",
|
|
384
|
+
"--dsw-specific-sidebar-fill": "#181c1d",
|
|
385
|
+
"--dsw-specific-input-major": "#181c1d"
|
|
386
|
+
}
|
|
387
|
+
},
|
|
283
388
|
{
|
|
284
389
|
"id": "medical",
|
|
285
390
|
"name": "Medical",
|
|
@@ -315,6 +420,41 @@
|
|
|
315
420
|
"--dsw-specific-input-major": "#0a252c"
|
|
316
421
|
}
|
|
317
422
|
},
|
|
423
|
+
{
|
|
424
|
+
"id": "mission",
|
|
425
|
+
"name": "Mission",
|
|
426
|
+
"author": "@danielng23",
|
|
427
|
+
"screenshot": "https://raw.githubusercontent.com/ph4310822/dsh-edex-mission-ui/main/review-shot.png",
|
|
428
|
+
"colorScheme": "dark",
|
|
429
|
+
"type": "shell",
|
|
430
|
+
"installPackage": "@danielng23/dsh-edex-mission-ui",
|
|
431
|
+
"shellPluginId": "@danielng23/dsh-mission-client-ui-edex",
|
|
432
|
+
"installHint": "dsh plugin --profile <name> add @danielng23/dsh-edex-mission-ui",
|
|
433
|
+
"tokens": {
|
|
434
|
+
"--dsw-alias-bg-base": "#0d1626",
|
|
435
|
+
"--dsw-alias-bg-layer-1": "#0d1626",
|
|
436
|
+
"--dsw-alias-bg-layer-2": "#0d1626",
|
|
437
|
+
"--dsw-alias-bg-overlay": "#0d1626",
|
|
438
|
+
"--dsw-alias-border-l1": "#1e3a5f",
|
|
439
|
+
"--dsw-alias-border-l2": "#26a9c0",
|
|
440
|
+
"--dsw-alias-border-l3": "#00d9ff",
|
|
441
|
+
"--dsw-alias-brand-primary": "#00d9ff",
|
|
442
|
+
"--dsw-alias-label-primary": "#00d9ff",
|
|
443
|
+
"--dsw-alias-label-primary-bluish": "#00d9ff",
|
|
444
|
+
"--dsw-alias-label-primary-dimmed": "#26a9c0",
|
|
445
|
+
"--dsw-alias-label-secondary": "#26a9c0",
|
|
446
|
+
"--dsw-alias-label-tertiary": "#26a9c0",
|
|
447
|
+
"--dsw-alias-label-caption": "#26a9c0",
|
|
448
|
+
"--dsw-alias-state-error-primary": "#ff3366",
|
|
449
|
+
"--dsw-alias-state-success-primary": "#00ff9d",
|
|
450
|
+
"--dsw-alias-state-warn-primary": "#ffd600",
|
|
451
|
+
"--dsw-alias-state-business-primary": "#00d9ff",
|
|
452
|
+
"--dsw-alias-button-info-fill": "#00d9ff",
|
|
453
|
+
"--dsw-alias-button-info-hover": "#26a9c0",
|
|
454
|
+
"--dsw-specific-sidebar-fill": "#0d1626",
|
|
455
|
+
"--dsw-specific-input-major": "#0d1626"
|
|
456
|
+
}
|
|
457
|
+
},
|
|
318
458
|
{
|
|
319
459
|
"id": "module",
|
|
320
460
|
"name": "Module",
|
|
@@ -385,6 +525,41 @@
|
|
|
385
525
|
"--dsw-specific-input-major": "#02050e"
|
|
386
526
|
}
|
|
387
527
|
},
|
|
528
|
+
{
|
|
529
|
+
"id": "novafleet",
|
|
530
|
+
"name": "Novafleet",
|
|
531
|
+
"author": "@danielng23",
|
|
532
|
+
"screenshot": "https://raw.githubusercontent.com/ph4310822/dsh-edex-novafleet-ui/main/review-shot.png",
|
|
533
|
+
"colorScheme": "dark",
|
|
534
|
+
"type": "shell",
|
|
535
|
+
"installPackage": "@danielng23/dsh-edex-novafleet-ui",
|
|
536
|
+
"shellPluginId": "@danielng23/dsh-novafleet-client-ui-edex",
|
|
537
|
+
"installHint": "dsh plugin --profile <name> add @danielng23/dsh-edex-novafleet-ui",
|
|
538
|
+
"tokens": {
|
|
539
|
+
"--dsw-alias-bg-base": "#1e2938",
|
|
540
|
+
"--dsw-alias-bg-layer-1": "#1e2938",
|
|
541
|
+
"--dsw-alias-bg-layer-2": "#1e2938",
|
|
542
|
+
"--dsw-alias-bg-overlay": "#1e2938",
|
|
543
|
+
"--dsw-alias-border-l1": "#132f5d",
|
|
544
|
+
"--dsw-alias-border-l2": "#2d62b9",
|
|
545
|
+
"--dsw-alias-border-l3": "#3b82f6",
|
|
546
|
+
"--dsw-alias-brand-primary": "#3b82f6",
|
|
547
|
+
"--dsw-alias-label-primary": "#3b82f6",
|
|
548
|
+
"--dsw-alias-label-primary-bluish": "#3b82f6",
|
|
549
|
+
"--dsw-alias-label-primary-dimmed": "#2d62b9",
|
|
550
|
+
"--dsw-alias-label-secondary": "#2d62b9",
|
|
551
|
+
"--dsw-alias-label-tertiary": "#2d62b9",
|
|
552
|
+
"--dsw-alias-label-caption": "#2d62b9",
|
|
553
|
+
"--dsw-alias-state-error-primary": "#ef4444",
|
|
554
|
+
"--dsw-alias-state-success-primary": "#22c55e",
|
|
555
|
+
"--dsw-alias-state-warn-primary": "#fbbf24",
|
|
556
|
+
"--dsw-alias-state-business-primary": "#3b82f6",
|
|
557
|
+
"--dsw-alias-button-info-fill": "#3b82f6",
|
|
558
|
+
"--dsw-alias-button-info-hover": "#2d62b9",
|
|
559
|
+
"--dsw-specific-sidebar-fill": "#1e2938",
|
|
560
|
+
"--dsw-specific-input-major": "#1e2938"
|
|
561
|
+
}
|
|
562
|
+
},
|
|
388
563
|
{
|
|
389
564
|
"id": "orbit",
|
|
390
565
|
"name": "Orbit",
|
|
@@ -466,10 +641,10 @@
|
|
|
466
641
|
"shellPluginId": "@danielng23/dsh-redalert-client-ui-edex",
|
|
467
642
|
"installHint": "dsh plugin --profile <name> add @danielng23/dsh-edex-redalert-ui",
|
|
468
643
|
"tokens": {
|
|
469
|
-
"--dsw-alias-bg-base": "#
|
|
470
|
-
"--dsw-alias-bg-layer-1": "#
|
|
471
|
-
"--dsw-alias-bg-layer-2": "#
|
|
472
|
-
"--dsw-alias-bg-overlay": "#
|
|
644
|
+
"--dsw-alias-bg-base": "#0b4d91",
|
|
645
|
+
"--dsw-alias-bg-layer-1": "#0b4d91",
|
|
646
|
+
"--dsw-alias-bg-layer-2": "#0b4d91",
|
|
647
|
+
"--dsw-alias-bg-overlay": "#0b4d91",
|
|
473
648
|
"--dsw-alias-border-l1": "#103f60",
|
|
474
649
|
"--dsw-alias-border-l2": "#267fc0",
|
|
475
650
|
"--dsw-alias-border-l3": "#c8e8ff",
|
|
@@ -486,8 +661,8 @@
|
|
|
486
661
|
"--dsw-alias-state-business-primary": "#c8e8ff",
|
|
487
662
|
"--dsw-alias-button-info-fill": "#c8e8ff",
|
|
488
663
|
"--dsw-alias-button-info-hover": "#267fc0",
|
|
489
|
-
"--dsw-specific-sidebar-fill": "#
|
|
490
|
-
"--dsw-specific-input-major": "#
|
|
664
|
+
"--dsw-specific-sidebar-fill": "#0b4d91",
|
|
665
|
+
"--dsw-specific-input-major": "#0b4d91"
|
|
491
666
|
}
|
|
492
667
|
},
|
|
493
668
|
{
|
|
@@ -595,6 +770,41 @@
|
|
|
595
770
|
"--dsw-specific-input-major": "#0a0410"
|
|
596
771
|
}
|
|
597
772
|
},
|
|
773
|
+
{
|
|
774
|
+
"id": "edex",
|
|
775
|
+
"name": "eDEX",
|
|
776
|
+
"author": "@danielng23",
|
|
777
|
+
"screenshot": "https://raw.githubusercontent.com/ph4310822/dsh-edex-ui/main/probe-fullscreen-final.png",
|
|
778
|
+
"colorScheme": "dark",
|
|
779
|
+
"type": "shell",
|
|
780
|
+
"installPackage": "@danielng23/dsh-edex-ui",
|
|
781
|
+
"shellPluginId": "@danielng23/dsh-client-ui-edex",
|
|
782
|
+
"installHint": "dsh plugin --profile <name> add @danielng23/dsh-edex-ui",
|
|
783
|
+
"tokens": {
|
|
784
|
+
"--dsw-alias-bg-base": "#000000",
|
|
785
|
+
"--dsw-alias-bg-layer-1": "#000000",
|
|
786
|
+
"--dsw-alias-bg-layer-2": "#000000",
|
|
787
|
+
"--dsw-alias-bg-overlay": "#000000",
|
|
788
|
+
"--dsw-alias-border-l1": "#155b2d",
|
|
789
|
+
"--dsw-alias-border-l2": "#30b65f",
|
|
790
|
+
"--dsw-alias-border-l3": "#46f282",
|
|
791
|
+
"--dsw-alias-brand-primary": "#46f282",
|
|
792
|
+
"--dsw-alias-label-primary": "#46f282",
|
|
793
|
+
"--dsw-alias-label-primary-bluish": "#46f282",
|
|
794
|
+
"--dsw-alias-label-primary-dimmed": "#30b65f",
|
|
795
|
+
"--dsw-alias-label-secondary": "#30b65f",
|
|
796
|
+
"--dsw-alias-label-tertiary": "#30b65f",
|
|
797
|
+
"--dsw-alias-label-caption": "#30b65f",
|
|
798
|
+
"--dsw-alias-state-error-primary": "#e65a5a",
|
|
799
|
+
"--dsw-alias-state-success-primary": "#46f282",
|
|
800
|
+
"--dsw-alias-state-warn-primary": "#e6c85c",
|
|
801
|
+
"--dsw-alias-state-business-primary": "#46f282",
|
|
802
|
+
"--dsw-alias-button-info-fill": "#46f282",
|
|
803
|
+
"--dsw-alias-button-info-hover": "#30b65f",
|
|
804
|
+
"--dsw-specific-sidebar-fill": "#000000",
|
|
805
|
+
"--dsw-specific-input-major": "#000000"
|
|
806
|
+
}
|
|
807
|
+
},
|
|
598
808
|
{
|
|
599
809
|
"id": "wasp",
|
|
600
810
|
"name": "Wasp",
|
package/lib/index.js
CHANGED
|
@@ -821,7 +821,8 @@ const ThemeStoreSettingsSchema = Schema.object({ [THEME_STORE_APPLIED_FIELD]: Sc
|
|
|
821
821
|
* hot-reload would not re-fiber.
|
|
822
822
|
*
|
|
823
823
|
* The active profile is discovered by scanning `$DSH_HOME/profiles/*` for the
|
|
824
|
-
* directory whose `node_modules/@
|
|
824
|
+
* directory whose `node_modules/@deepseek-ai/dsh-client-ui-theme-store` (or
|
|
825
|
+
* `@danielng23/dsh-client-ui-theme-store` when installed from npm)
|
|
825
826
|
* resolves to this package.
|
|
826
827
|
*/
|
|
827
828
|
/** The three base row ids every eDEX variant bundle inserts. */
|
|
@@ -836,9 +837,11 @@ const VARIANT_ROW_SUFFIXES = [
|
|
|
836
837
|
"-ui-edex",
|
|
837
838
|
"-ui-theme-terminal"
|
|
838
839
|
];
|
|
839
|
-
/** The variant id derived from a bundle package name (`@danielng23/dsh-edex-armory-ui` → `armory`). */
|
|
840
|
+
/** The variant id derived from a bundle package name (`@danielng23/dsh-edex-armory-ui` → `armory`, `@danielng23/dsh-edex-ui` → `edex`). */
|
|
840
841
|
function variantIdOf(bundlePackage) {
|
|
841
|
-
|
|
842
|
+
const slug = bundlePackage.slice(bundlePackage.lastIndexOf("/") + 1);
|
|
843
|
+
if (slug === "dsh-edex-ui") return "edex";
|
|
844
|
+
return slug.replace(/^dsh-edex-/, "").replace(/-ui$/, "");
|
|
842
845
|
}
|
|
843
846
|
/** Resolve $DSH_HOME (mirrors dsh-home-paths): $DSH_HOME, else ~/.dsh. */
|
|
844
847
|
function dshHome() {
|
|
@@ -855,10 +858,13 @@ function resolveActiveProfileDir() {
|
|
|
855
858
|
for (const name of readdirSync(profilesDir, { withFileTypes: true })) {
|
|
856
859
|
if (!name.isDirectory()) continue;
|
|
857
860
|
const dir = join(profilesDir, name.name);
|
|
858
|
-
const marker = join(dir, "node_modules/@
|
|
859
|
-
|
|
861
|
+
const marker = join(dir, "node_modules/@deepseek-ai/dsh-client-ui-theme-store/package.json");
|
|
862
|
+
const markerNg = join(dir, "node_modules/@danielng23/dsh-client-ui-theme-store/package.json");
|
|
863
|
+
const markerPath = existsSync(marker) ? marker : existsSync(markerNg) ? markerNg : void 0;
|
|
864
|
+
if (markerPath === void 0) continue;
|
|
860
865
|
try {
|
|
861
|
-
|
|
866
|
+
const manifest = JSON.parse(readFileSync(markerPath, "utf8"));
|
|
867
|
+
if (manifest.name === "@deepseek-ai/dsh-client-ui-theme-store" || manifest.name === "@danielng23/dsh-client-ui-theme-store") return dir;
|
|
862
868
|
} catch {}
|
|
863
869
|
}
|
|
864
870
|
}
|
package/lib/invariant.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
//#region lib/types/invariant.js
|
|
2
2
|
/**
|
|
3
3
|
* Package-owned invariant companion.
|
|
4
|
-
* @module @
|
|
4
|
+
* @module @deepseek-ai/dsh-client-ui-theme-store/invariant
|
|
5
5
|
*/
|
|
6
|
-
const PACKAGE_NAME = "@
|
|
6
|
+
const PACKAGE_NAME = "@deepseek-ai/dsh-client-ui-theme-store";
|
|
7
7
|
/** Cordis companion plugin name. */
|
|
8
8
|
const name = "client-ui-theme-store-invariant";
|
|
9
9
|
/** Service required before the companion can reserve package ownership. */
|
|
@@ -14,10 +14,11 @@
|
|
|
14
14
|
* hot-reload would not re-fiber.
|
|
15
15
|
*
|
|
16
16
|
* The active profile is discovered by scanning `$DSH_HOME/profiles/*` for the
|
|
17
|
-
* directory whose `node_modules/@
|
|
17
|
+
* directory whose `node_modules/@deepseek-ai/dsh-client-ui-theme-store` (or
|
|
18
|
+
* `@danielng23/dsh-client-ui-theme-store` when installed from npm)
|
|
18
19
|
* resolves to this package.
|
|
19
20
|
*/
|
|
20
|
-
/** The variant id derived from a bundle package name (`@danielng23/dsh-edex-armory-ui` → `armory`). */
|
|
21
|
+
/** The variant id derived from a bundle package name (`@danielng23/dsh-edex-armory-ui` → `armory`, `@danielng23/dsh-edex-ui` → `edex`). */
|
|
21
22
|
export declare function variantIdOf(bundlePackage: string): string;
|
|
22
23
|
/** Resolve $DSH_HOME (mirrors dsh-home-paths): $DSH_HOME, else ~/.dsh. */
|
|
23
24
|
declare function dshHome(): string;
|
package/lib/types/invariant.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@danielng23/dsh-client-ui-theme-store",
|
|
3
3
|
"description": "Theme store plugin for the DeepSeek Harness web GUI: a settings Theme Store page that reads a JSON theme catalog from this repository (GitHub), shows name/author/screenshot cards, and applies selected --dsw-* token themes through the harness theme service",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.3",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -42,6 +42,14 @@
|
|
|
42
42
|
"platform": "web"
|
|
43
43
|
}
|
|
44
44
|
},
|
|
45
|
+
"scripts": {
|
|
46
|
+
"build": "tsc -b tsconfig.json && tsdown",
|
|
47
|
+
"bundle": "tsdown",
|
|
48
|
+
"watch": "tsdown --watch",
|
|
49
|
+
"test": "vitest run",
|
|
50
|
+
"test:watch": "vitest",
|
|
51
|
+
"typecheck": "tsc -b tsconfig.json --pretty false"
|
|
52
|
+
},
|
|
45
53
|
"license": "MIT",
|
|
46
54
|
"peerDependencies": {
|
|
47
55
|
"@deepseek-ai/cordis": "^4.0.1",
|
|
@@ -92,13 +100,5 @@
|
|
|
92
100
|
],
|
|
93
101
|
"dependencies": {
|
|
94
102
|
"js-yaml": "^5.4.1"
|
|
95
|
-
},
|
|
96
|
-
"scripts": {
|
|
97
|
-
"build": "tsc -b tsconfig.json && tsdown",
|
|
98
|
-
"bundle": "tsdown",
|
|
99
|
-
"watch": "tsdown --watch",
|
|
100
|
-
"test": "vitest run",
|
|
101
|
-
"test:watch": "vitest",
|
|
102
|
-
"typecheck": "tsc -b tsconfig.json --pretty false"
|
|
103
103
|
}
|
|
104
|
-
}
|
|
104
|
+
}
|