@sparkelf/dsh-plus 0.2.2-alpha.2.2 → 0.2.2-alpha.2.20

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/bin.js CHANGED
@@ -1009,6 +1009,7 @@ function installProfilePackages(paths, consumerDirectory) {
1009
1009
  function installWithRegistryFallback(paths) {
1010
1010
  const registries = registryOrder();
1011
1011
  for (const [index, registry] of registries.entries()) {
1012
+ if (index > 0) rmSync(join(paths.profileDirectory, "pnpm-lock.yaml"), { force: true });
1012
1013
  const result = spawnSync("pnpm", [
1013
1014
  "install",
1014
1015
  "--no-frozen-lockfile",
@@ -1077,7 +1078,7 @@ const MAINLAND_REGISTRY = "https://registry.npmmirror.com";
1077
1078
  */
1078
1079
  function registryOrder() {
1079
1080
  const configured = process.env.DSH_PLUS_INSTALL_REGISTRY;
1080
- if (configured !== void 0 && configured !== "") return [configured, MAINLAND_REGISTRY];
1081
+ if (configured !== void 0 && configured !== "") return [configured, configured === MAINLAND_REGISTRY ? OFFICIAL_REGISTRY : MAINLAND_REGISTRY];
1081
1082
  const locale = [
1082
1083
  process.env.LANG,
1083
1084
  process.env.LC_ALL,
@@ -1195,12 +1196,50 @@ function ensureProfile(paths, consumerDirectory, edition) {
1195
1196
  const basePackages = composition === void 0 ? distribution.dependencies : {
1196
1197
  "@deepseek-ai/dsh": distribution.dshRange,
1197
1198
  "@sparkelf/dsh-plus": distribution.version,
1199
+ "@deepseek-ai/cordis": "^4.0.6-alpha.1",
1200
+ "@deepseek-ai/cordis-plugin-group": "^1.0.6-alpha.1",
1201
+ "@deepseek-ai/cordis-plugin-include": "^1.0.11-alpha.1",
1202
+ "@deepseek-ai/cordis-plugin-loader": "^1.0.7-alpha.1",
1203
+ "@deepseek-ai/dsh-home-paths": runtime,
1204
+ "@deepseek-ai/dsh-launch-environment": runtime,
1205
+ "@deepseek-ai/dsh-agent": runtime,
1206
+ "@deepseek-ai/dsh-llm": runtime,
1207
+ "@deepseek-ai/dsh-scope": runtime,
1208
+ "@deepseek-ai/dsh-session": runtime,
1209
+ "@deepseek-ai/dsh-system-prompt": runtime,
1210
+ "@deepseek-ai/dsh-user-approval": runtime,
1211
+ "@deepseek-ai/dsh-attachment": runtime,
1212
+ "@deepseek-ai/dsh-compaction": runtime,
1213
+ "@deepseek-ai/dsh-fs": runtime,
1214
+ "@deepseek-ai/dsh-shell": runtime,
1215
+ "@deepseek-ai/dsh-spill": runtime,
1216
+ "@deepseek-ai/dsh-sandbox": runtime,
1217
+ "@deepseek-ai/dsh-ptc-runtime": runtime,
1218
+ "@deepseek-ai/dsh-llm-deepseek": runtime,
1219
+ "@deepseek-ai/dsh-deepseek-account": runtime,
1220
+ "@deepseek-ai/dsh-anonymous-user-id": runtime,
1221
+ "@deepseek-ai/dsh-bash-local": runtime,
1222
+ "@deepseek-ai/dsh-client-store": runtime,
1223
+ "@deepseek-ai/dsh-jobs": runtime,
1224
+ "@deepseek-ai/dsh-sdk-protocol": runtime,
1225
+ "@deepseek-ai/dsh-session-persistence": runtime,
1226
+ "@deepseek-ai/dsh-session-telemetry": runtime,
1227
+ "@deepseek-ai/dsh-session-title-llm": runtime,
1228
+ "@deepseek-ai/dsh-util-workspace-path": runtime,
1229
+ "@deepseek-ai/dsh-workflow": runtime,
1198
1230
  ...Object.fromEntries(baseBundles.filter((bundle) => bundle.startsWith("@deepseek-ai/dsh-")).map((bundle) => [bundle, runtime]))
1199
1231
  };
1200
1232
  const compositionPackages = composition === void 0 ? basePackages : {
1201
1233
  ...basePackages,
1202
1234
  ...composition.packages
1203
1235
  };
1236
+ for (const [alias, target] of Object.entries({
1237
+ "dsh-better-sidebar": "@sparkelf/dsh-better-sidebar",
1238
+ "dsh-sql-workbench": "@sparkelf/dsh-sql-workbench"
1239
+ })) {
1240
+ const spec = compositionPackages[target];
1241
+ if (spec !== void 0 && compositionPackages[alias] === void 0) compositionPackages[alias] = "npm:" + target + "@" + spec;
1242
+ }
1204
1243
  const compositionBundles = composition === void 0 ? baseBundles : [...baseBundles, ...composition.bundles];
1205
1244
  if (existsSync(manifestPath)) {
1206
1245
  if (composition !== void 0) {
@@ -1260,7 +1299,7 @@ function writeProfileOverrides(profileDirectory, overrides, allowBuilds, omitted
1260
1299
  for (const [name, spec] of Object.entries(omittedPackages)) document.setIn(["overrides", name], spec);
1261
1300
  for (const [name, allowed] of Object.entries(allowBuilds)) document.setIn(["allowBuilds", name], allowed);
1262
1301
  if (document.get("nodeLinker") === void 0) document.set("nodeLinker", "hoisted");
1263
- if (document.get("autoInstallPeers") === void 0) document.set("autoInstallPeers", false);
1302
+ if (document.get("autoInstallPeers") === void 0) document.set("autoInstallPeers", true);
1264
1303
  writeFileSync(workspacePath, String(document));
1265
1304
  }
1266
1305
  /** Run git in one directory, returning undefined instead of throwing when asked to. */
@@ -9,7 +9,7 @@
9
9
  * bundle's own list.
10
10
  */
11
11
  import { spawnSync } from 'node:child_process';
12
- import { existsSync, mkdirSync, readdirSync, readFileSync, renameSync, symlinkSync, writeFileSync } from 'node:fs';
12
+ import { existsSync, mkdirSync, readdirSync, readFileSync, renameSync, rmSync, symlinkSync, writeFileSync } from 'node:fs';
13
13
  import { createRequire } from 'node:module';
14
14
  import { fileURLToPath } from 'node:url';
15
15
  import { homedir } from 'node:os';
@@ -276,6 +276,11 @@ export function installProfilePackages(paths, consumerDirectory) {
276
276
  function installWithRegistryFallback(paths) {
277
277
  const registries = registryOrder();
278
278
  for (const [index, registry] of registries.entries()) {
279
+ // A lockfile written against the previous registry keeps its resolved URLs, so the
280
+ // second attempt would fetch from the registry that just failed. Drop it and resolve
281
+ // against the registry being tried.
282
+ if (index > 0)
283
+ rmSync(join(paths.profileDirectory, 'pnpm-lock.yaml'), { force: true });
279
284
  const result = spawnSync('pnpm', ['install', '--no-frozen-lockfile', '--registry', registry], {
280
285
  cwd: paths.profileDirectory,
281
286
  stdio: 'inherit',
@@ -345,8 +350,12 @@ const MAINLAND_REGISTRY = 'https://registry.npmmirror.com';
345
350
  */
346
351
  export function registryOrder() {
347
352
  const configured = process.env.DSH_PLUS_INSTALL_REGISTRY;
348
- if (configured !== undefined && configured !== '')
349
- return [configured, MAINLAND_REGISTRY];
353
+ if (configured !== undefined && configured !== '') {
354
+ // The fallback must be the other registry, not the configured one again: an override
355
+ // set to the mirror used to fall back to the same mirror and fail twice.
356
+ const fallback = configured === MAINLAND_REGISTRY ? OFFICIAL_REGISTRY : MAINLAND_REGISTRY;
357
+ return [configured, fallback];
358
+ }
350
359
  // Intl reports the system locale on every platform. The POSIX variables are empty on
351
360
  // Windows, so reading them alone classified every Windows console as non-mainland and
352
361
  // reached the origin first — measured in a consumer's log, which showed npmjs failing
@@ -492,6 +501,45 @@ export function ensureProfile(paths, consumerDirectory, edition) {
492
501
  : {
493
502
  '@deepseek-ai/dsh': distribution.dshRange,
494
503
  '@sparkelf/dsh-plus': distribution.version,
504
+ // `dsh-app-boot` declares its launcher as peer dependencies, and pnpm does not
505
+ // install a profile's transitive peers. Without these the boot loader resolves
506
+ // `@deepseek-ai/cordis-plugin-group` and fails before any plugin mounts.
507
+ '@deepseek-ai/cordis': '^4.0.6-alpha.1',
508
+ '@deepseek-ai/cordis-plugin-group': '^1.0.6-alpha.1',
509
+ '@deepseek-ai/cordis-plugin-include': '^1.0.11-alpha.1',
510
+ '@deepseek-ai/cordis-plugin-loader': '^1.0.7-alpha.1',
511
+ '@deepseek-ai/dsh-home-paths': runtime,
512
+ '@deepseek-ai/dsh-launch-environment': runtime,
513
+ // `dsh-session` / `dsh-tools` declare the rest of the runtime as peers; pnpm leaves
514
+ // them out of a profile install for the same reason as the launcher peers above.
515
+ '@deepseek-ai/dsh-agent': runtime,
516
+ '@deepseek-ai/dsh-llm': runtime,
517
+ '@deepseek-ai/dsh-scope': runtime,
518
+ '@deepseek-ai/dsh-session': runtime,
519
+ '@deepseek-ai/dsh-system-prompt': runtime,
520
+ '@deepseek-ai/dsh-user-approval': runtime,
521
+ // Capability packages that the official plugins import but declare only as peers.
522
+ // A profile install leaves them out and boot then fails inside an otherwise
523
+ // healthy plugin's import with ERR_MODULE_NOT_FOUND.
524
+ '@deepseek-ai/dsh-attachment': runtime,
525
+ '@deepseek-ai/dsh-compaction': runtime,
526
+ '@deepseek-ai/dsh-fs': runtime,
527
+ '@deepseek-ai/dsh-shell': runtime,
528
+ '@deepseek-ai/dsh-spill': runtime,
529
+ '@deepseek-ai/dsh-sandbox': runtime,
530
+ '@deepseek-ai/dsh-ptc-runtime': runtime,
531
+ '@deepseek-ai/dsh-llm-deepseek': runtime,
532
+ '@deepseek-ai/dsh-deepseek-account': runtime,
533
+ '@deepseek-ai/dsh-anonymous-user-id': runtime,
534
+ '@deepseek-ai/dsh-bash-local': runtime,
535
+ '@deepseek-ai/dsh-client-store': runtime,
536
+ '@deepseek-ai/dsh-jobs': runtime,
537
+ '@deepseek-ai/dsh-sdk-protocol': runtime,
538
+ '@deepseek-ai/dsh-session-persistence': runtime,
539
+ '@deepseek-ai/dsh-session-telemetry': runtime,
540
+ '@deepseek-ai/dsh-session-title-llm': runtime,
541
+ '@deepseek-ai/dsh-util-workspace-path': runtime,
542
+ '@deepseek-ai/dsh-workflow': runtime,
495
543
  ...Object.fromEntries(baseBundles
496
544
  .filter(bundle => bundle.startsWith('@deepseek-ai/dsh-'))
497
545
  .map(bundle => [bundle, runtime])),
@@ -499,6 +547,19 @@ export function ensureProfile(paths, consumerDirectory, edition) {
499
547
  const compositionPackages = composition === undefined
500
548
  ? basePackages
501
549
  : { ...basePackages, ...composition.packages };
550
+ // Official cordis rows name the historical unscoped packages. The fork ships under
551
+ // `@sparkelf/*`, so the row would fail to resolve unless the profile also carries the
552
+ // historical name as an alias to the same version.
553
+ const rowAliases = {
554
+ 'dsh-better-sidebar': '@sparkelf/dsh-better-sidebar',
555
+ 'dsh-sql-workbench': '@sparkelf/dsh-sql-workbench',
556
+ };
557
+ for (const [alias, target] of Object.entries(rowAliases)) {
558
+ const spec = compositionPackages[target];
559
+ if (spec !== undefined && compositionPackages[alias] === undefined) {
560
+ compositionPackages[alias] = 'npm:' + target + '@' + spec;
561
+ }
562
+ }
502
563
  const compositionBundles = composition === undefined
503
564
  ? baseBundles
504
565
  : [...baseBundles, ...composition.bundles];
@@ -581,7 +642,7 @@ function writeProfileOverrides(profileDirectory, overrides, allowBuilds, omitted
581
642
  if (document.get('nodeLinker') === undefined)
582
643
  document.set('nodeLinker', 'hoisted');
583
644
  if (document.get('autoInstallPeers') === undefined)
584
- document.set('autoInstallPeers', false);
645
+ document.set('autoInstallPeers', true);
585
646
  writeFileSync(workspacePath, String(document));
586
647
  }
587
648
  /** Run git in one directory, returning undefined instead of throwing when asked to. */
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sparkelf/dsh-plus",
3
3
  "description": "DeepSeek Harness Plus official-base Web distribution profile and ranged compatibility patchset",
4
- "version": "0.2.2-alpha.2.2",
4
+ "version": "0.2.2-alpha.2.20",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -65,18 +65,17 @@
65
65
  "@sparkelf/dsh-api-client",
66
66
  "dsh-right-bg-anim",
67
67
  "@sparkelf/dsh-mobile-bridge",
68
- "@sparkelf/dsh-quant",
69
- "@sparkelf/dsh-client-ui-diagram-viewer"
68
+ "@sparkelf/dsh-quant"
70
69
  ],
71
70
  "dependencies": {
72
71
  "@sparkelf/dsh-mineru": "0.1.4",
73
72
  "@sparkelf/dsh-officecli": "0.1.4",
74
73
  "@sparkelf/dsh-plugin-supervisor": "0.1.9",
75
- "dsh-sql-workbench": "0.5.3",
74
+ "dsh-sql-workbench": "npm:@sparkelf/dsh-sql-workbench@0.5.3",
76
75
  "@sparkelf/dsh-workbench-vault": "0.1.2",
77
76
  "@sparkelf/dsh-ssh-manager": "0.7.4",
78
77
  "@sparkelf/dsh-api-client": "0.5.3",
79
- "dsh-better-sidebar": "0.28.0",
78
+ "dsh-better-sidebar": "npm:@sparkelf/dsh-better-sidebar@0.29.0-sparkelf.7",
80
79
  "@sparkelf/dsh-office-viewer-fonts": "0.1.5",
81
80
  "dsh-video-preview": "0.1.4",
82
81
  "dsh-right-bg-anim": "1.1.0",
@@ -85,7 +84,21 @@
85
84
  "@sparkelf/dsh-quant": "0.91.0-sparkelf.13",
86
85
  "@deepseek-ai/dsh-experimental-auto-review": "0.2.2-alpha.2",
87
86
  "@sparkelf/dsh-genui": "0.13.0-sparkelf.3",
88
- "@sparkelf/dsh-client-ui-diagram-viewer": "0.2.1-alpha.28"
87
+ "@deepseek-ai/dsh-anonymous-user-id": "0.2.2-alpha.2",
88
+ "@deepseek-ai/dsh-attachment": "0.2.2-alpha.2",
89
+ "@deepseek-ai/dsh-compaction": "0.2.2-alpha.2",
90
+ "@deepseek-ai/dsh-deepseek-account": "0.2.2-alpha.2",
91
+ "@deepseek-ai/dsh-fs": "0.2.2-alpha.2",
92
+ "@deepseek-ai/dsh-jobs": "0.2.2-alpha.2",
93
+ "@deepseek-ai/dsh-llm-deepseek": "0.2.2-alpha.2",
94
+ "@deepseek-ai/dsh-ptc-runtime": "0.2.2-alpha.2",
95
+ "@deepseek-ai/dsh-sandbox": "0.2.2-alpha.2",
96
+ "@deepseek-ai/dsh-session-persistence": "0.2.2-alpha.2",
97
+ "@deepseek-ai/dsh-session-telemetry": "0.2.2-alpha.2",
98
+ "@deepseek-ai/dsh-session-title-llm": "0.2.2-alpha.2",
99
+ "@deepseek-ai/dsh-shell": "0.2.2-alpha.2",
100
+ "@deepseek-ai/dsh-spill": "0.2.2-alpha.2",
101
+ "@deepseek-ai/dsh-workflow": "0.2.2-alpha.2"
89
102
  },
90
103
  "allowBuilds": {
91
104
  "@deepseek-ai/dsh-subprocess-local": true,
@@ -132,7 +145,8 @@
132
145
  "@deepseek-ai/dsh-client-ui-schedule": "npm:@sparkelf/dsh-client-ui-schedule@0.2.2-alpha.2",
133
146
  "@deepseek-ai/dsh-client-ui-sidebar-right": "npm:@sparkelf/dsh-client-ui-sidebar-right@0.2.2-alpha.2",
134
147
  "@deepseek-ai/dsh-atomic-write": "npm:@sparkelf/dsh-atomic-write@0.2.2-alpha.2",
135
- "@deepseek-ai/dsh-tool-executor-ptc": "npm:@sparkelf/dsh-tool-executor-ptc@0.2.2-alpha.2"
148
+ "@deepseek-ai/dsh-tool-executor-ptc": "npm:@sparkelf/dsh-tool-executor-ptc@0.2.2-alpha.2",
149
+ "@deepseek-ai/dsh-client-ui-slots": "0.2.2-alpha.2"
136
150
  },
137
151
  "standaloneVariants": {
138
152
  "dataops": {
@@ -556,35 +570,33 @@
556
570
  "@sparkelf/dsh-mineru",
557
571
  "@sparkelf/dsh-officecli",
558
572
  "dshmarket",
559
- "dsh-better-sidebar",
573
+ "@sparkelf/dsh-better-sidebar",
560
574
  "@sparkelf/dsh-office-viewer-fonts",
561
575
  "dsh-video-preview",
562
576
  "@sparkelf/dsh-genui",
563
577
  "@sparkelf/dsh-plugin-supervisor",
564
- "dsh-sql-workbench",
578
+ "@sparkelf/dsh-sql-workbench",
565
579
  "@sparkelf/dsh-ssh-manager",
566
580
  "@sparkelf/dsh-api-client",
567
581
  "dsh-right-bg-anim",
568
582
  "@sparkelf/dsh-mobile-bridge",
569
- "@sparkelf/dsh-quant",
570
- "@sparkelf/dsh-client-ui-diagram-viewer"
583
+ "@sparkelf/dsh-quant"
571
584
  ],
572
585
  "packages": {
573
586
  "@sparkelf/dsh-mineru": "0.1.4",
574
587
  "@sparkelf/dsh-officecli": "0.1.4",
575
588
  "@sparkelf/dsh-plugin-supervisor": "0.1.9",
576
- "dsh-sql-workbench": "0.5.3",
577
589
  "@sparkelf/dsh-workbench-vault": "0.1.2",
578
- "@sparkelf/dsh-ssh-manager": "0.7.4",
590
+ "@sparkelf/dsh-ssh-manager": "0.7.5",
579
591
  "@sparkelf/dsh-api-client": "0.5.3",
580
- "dsh-better-sidebar": "0.28.0",
581
- "@sparkelf/dsh-office-viewer-fonts": "0.1.5",
592
+ "@sparkelf/dsh-office-viewer-fonts": "0.1.6",
582
593
  "dsh-video-preview": "0.1.4",
583
594
  "dsh-right-bg-anim": "1.1.0",
584
595
  "@sparkelf/dsh-mobile-bridge": "0.2.18",
585
596
  "@sparkelf/dsh-quant": "0.91.0-sparkelf.13",
586
- "@sparkelf/dsh-genui": "0.13.0-sparkelf.3",
587
- "@sparkelf/dsh-client-ui-diagram-viewer": "0.2.1-alpha.28"
597
+ "@sparkelf/dsh-genui": "0.15.0-sparkelf.1",
598
+ "@sparkelf/dsh-sql-workbench": "0.5.4-sparkelf.1",
599
+ "@sparkelf/dsh-better-sidebar": "0.29.0-sparkelf.2"
588
600
  }
589
601
  },
590
602
  "team": {
@@ -600,7 +612,6 @@
600
612
  "@sparkelf/dsh-ssh-manager",
601
613
  "@sparkelf/dsh-api-client",
602
614
  "dsh-right-bg-anim",
603
- "@sparkelf/dsh-client-ui-diagram-viewer",
604
615
  "@sparkelf/dsh-dataops-managed",
605
616
  "@sparkelf/dsh-query-result-analysis",
606
617
  "@sparkelf/dsh-better-sidebar",
@@ -610,14 +621,14 @@
610
621
  "@sparkelf/dsh-ocr",
611
622
  "@sparkelf/dsh-dataops-account",
612
623
  "@sparkelf/dsh-kb-citation",
613
- "@sparkelf/dsh-task-bus"
624
+ "@sparkelf/dsh-task-bus",
625
+ "dsh-video-preview"
614
626
  ],
615
627
  "packages": {
616
628
  "@sparkelf/dsh-api-client": "0.5.3",
617
- "@sparkelf/dsh-client-ui-diagram-viewer": "0.2.1-alpha.28",
618
629
  "@sparkelf/dsh-dataops-managed": "0.3.21",
619
630
  "@sparkelf/dsh-genui": "0.15.0-sparkelf.1",
620
- "@sparkelf/dsh-knowledge-base": "0.1.21",
631
+ "@sparkelf/dsh-knowledge-base": "0.1.23",
621
632
  "@sparkelf/dsh-mineru": "0.1.4",
622
633
  "@sparkelf/dsh-office-viewer-fonts": "0.1.6",
623
634
  "@sparkelf/dsh-officecli": "0.1.4",
@@ -626,13 +637,13 @@
626
637
  "@sparkelf/dsh-workbench-vault": "0.1.2",
627
638
  "dsh-right-bg-anim": "1.1.0",
628
639
  "@sparkelf/dsh-task-bus": "0.1.0",
629
- "@sparkelf/dsh-credential-manager": "0.1.0",
640
+ "@sparkelf/dsh-credential-manager": "0.1.1",
630
641
  "@sparkelf/dsh-dataops-account": "0.2.0",
631
642
  "@sparkelf/dsh-group-chat": "0.5.1",
632
643
  "@sparkelf/dsh-kb-citation": "0.1.3",
633
644
  "@sparkelf/dsh-ocr": "0.1.0",
634
645
  "@sparkelf/dsh-query-result-analysis": "0.1.4",
635
- "@sparkelf/dsh-better-sidebar": "0.28.0-sparkelf.grid.17",
646
+ "@sparkelf/dsh-better-sidebar": "0.29.0-sparkelf.7",
636
647
  "dsh-video-preview": "0.1.4",
637
648
  "@sparkelf/dsh-sql-workbench": "0.5.4-sparkelf.1"
638
649
  }