@sparkelf/dsh-plus 0.2.0-rc.2 → 0.2.0-rc.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/cordis.patch.yml +23 -11
- package/lib/bin.js +469 -20
- package/lib/types/bin.js +14 -0
- package/lib/types/standalone-capabilities.d.ts +109 -0
- package/lib/types/standalone-capabilities.js +332 -0
- package/lib/types/standalone-cli.js +136 -14
- package/lib/types/standalone-profile.d.ts +45 -1
- package/lib/types/standalone-profile.js +84 -5
- package/lib/types/standalone-server.js +2 -2
- package/package.json +77 -28
|
@@ -8,12 +8,56 @@
|
|
|
8
8
|
* the launcher mounts exactly the bundles the profile names and nothing expands a
|
|
9
9
|
* bundle's own list.
|
|
10
10
|
*/
|
|
11
|
-
/** Profile name a standalone installation owns. */
|
|
11
|
+
/** Profile name a standalone installation owns when its package declares none. */
|
|
12
12
|
export declare const STANDALONE_PROFILE = "plus";
|
|
13
|
+
/**
|
|
14
|
+
* Read the profile name the installing package declares.
|
|
15
|
+
*
|
|
16
|
+
* A standalone package describes the profile it materializes, so a reduced variant can
|
|
17
|
+
* own a differently named profile beside the full one instead of overwriting it. The
|
|
18
|
+
* declaration travels with the package because npm resolves the tree long before any
|
|
19
|
+
* command of ours runs, and the distribution cannot name a profile for a package it
|
|
20
|
+
* does not own.
|
|
21
|
+
*
|
|
22
|
+
* @param anchor - path inside the installing package's tree.
|
|
23
|
+
* @param fallback - profile name to use when the declaration is absent.
|
|
24
|
+
* @returns the declared profile name, or the fallback.
|
|
25
|
+
*/
|
|
26
|
+
export declare function resolveStandaloneProfile(anchor: string, fallback?: string): string;
|
|
27
|
+
/** What the installing package declares about the deployment it owns. */
|
|
28
|
+
export interface StandaloneDeclaration {
|
|
29
|
+
/** Profile name the launcher materializes. */
|
|
30
|
+
readonly profileName: string;
|
|
31
|
+
/**
|
|
32
|
+
* Capabilities the deployment must not install, as package name to override spec.
|
|
33
|
+
*
|
|
34
|
+
* npm substitutes rather than deletes, so each entry names the placeholder the
|
|
35
|
+
* capability is replaced with. The profile workspace applies these as overrides,
|
|
36
|
+
* which is where pnpm reads them.
|
|
37
|
+
*/
|
|
38
|
+
readonly omittedPackages: Readonly<Record<string, string>>;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Read the deployment facts the installing package declares.
|
|
42
|
+
*
|
|
43
|
+
* A standalone package describes the profile it materializes and the capabilities it
|
|
44
|
+
* omits, so a reduced variant owns a differently named profile and a reduced install
|
|
45
|
+
* without the distribution naming either. The declaration travels with the package
|
|
46
|
+
* because npm resolves the tree long before any command of ours runs.
|
|
47
|
+
*
|
|
48
|
+
* @param anchor - path inside the installing package's tree.
|
|
49
|
+
* @param fallback - profile name to use when the declaration is absent.
|
|
50
|
+
* @returns the declared profile name and omitted capabilities.
|
|
51
|
+
*/
|
|
52
|
+
export declare function readStandaloneDeclaration(anchor: string, fallback?: string): StandaloneDeclaration;
|
|
13
53
|
/** Resolved locations for one standalone installation. */
|
|
14
54
|
export interface StandalonePaths {
|
|
15
55
|
/** DSH home holding profiles, credentials, and session data. */
|
|
16
56
|
readonly home: string;
|
|
57
|
+
/** Profile name the launcher boots, as the installing package declares it. */
|
|
58
|
+
readonly profileName: string;
|
|
59
|
+
/** Capabilities the deployment omits, as package name to override spec. */
|
|
60
|
+
readonly omittedPackages: Readonly<Record<string, string>>;
|
|
17
61
|
/** Profile directory the launcher boots. */
|
|
18
62
|
readonly profileDirectory: string;
|
|
19
63
|
/** Installed Plus distribution directory. */
|
|
@@ -14,8 +14,79 @@ import { createRequire } from 'node:module';
|
|
|
14
14
|
import { homedir } from 'node:os';
|
|
15
15
|
import { dirname, join, posix, resolve, win32 } from 'node:path';
|
|
16
16
|
import { parseDocument } from 'yaml';
|
|
17
|
-
/** Profile name a standalone installation owns. */
|
|
17
|
+
/** Profile name a standalone installation owns when its package declares none. */
|
|
18
18
|
export const STANDALONE_PROFILE = 'plus';
|
|
19
|
+
/**
|
|
20
|
+
* Read the profile name the installing package declares.
|
|
21
|
+
*
|
|
22
|
+
* A standalone package describes the profile it materializes, so a reduced variant can
|
|
23
|
+
* own a differently named profile beside the full one instead of overwriting it. The
|
|
24
|
+
* declaration travels with the package because npm resolves the tree long before any
|
|
25
|
+
* command of ours runs, and the distribution cannot name a profile for a package it
|
|
26
|
+
* does not own.
|
|
27
|
+
*
|
|
28
|
+
* @param anchor - path inside the installing package's tree.
|
|
29
|
+
* @param fallback - profile name to use when the declaration is absent.
|
|
30
|
+
* @returns the declared profile name, or the fallback.
|
|
31
|
+
*/
|
|
32
|
+
export function resolveStandaloneProfile(anchor, fallback = STANDALONE_PROFILE) {
|
|
33
|
+
return readStandaloneDeclaration(anchor, fallback).profileName;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Read the deployment facts the installing package declares.
|
|
37
|
+
*
|
|
38
|
+
* A standalone package describes the profile it materializes and the capabilities it
|
|
39
|
+
* omits, so a reduced variant owns a differently named profile and a reduced install
|
|
40
|
+
* without the distribution naming either. The declaration travels with the package
|
|
41
|
+
* because npm resolves the tree long before any command of ours runs.
|
|
42
|
+
*
|
|
43
|
+
* @param anchor - path inside the installing package's tree.
|
|
44
|
+
* @param fallback - profile name to use when the declaration is absent.
|
|
45
|
+
* @returns the declared profile name and omitted capabilities.
|
|
46
|
+
*/
|
|
47
|
+
export function readStandaloneDeclaration(anchor, fallback = STANDALONE_PROFILE) {
|
|
48
|
+
// The anchor is the CLI file; walk out to the package that declares the forwarder.
|
|
49
|
+
let current = resolve(anchor);
|
|
50
|
+
for (;;) {
|
|
51
|
+
const manifestPath = join(current, 'package.json');
|
|
52
|
+
const declared = readStandaloneFacts(manifestPath);
|
|
53
|
+
if (declared !== undefined)
|
|
54
|
+
return declared;
|
|
55
|
+
const parent = dirname(current);
|
|
56
|
+
if (parent === current)
|
|
57
|
+
return { profileName: fallback, omittedPackages: {} };
|
|
58
|
+
current = parent;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/** Read one manifest's standalone declaration, or undefined when it carries none. */
|
|
62
|
+
function readStandaloneFacts(manifestPath) {
|
|
63
|
+
if (!existsSync(manifestPath))
|
|
64
|
+
return undefined;
|
|
65
|
+
let standalone;
|
|
66
|
+
try {
|
|
67
|
+
const manifest = JSON.parse(readFileSync(manifestPath, 'utf8'));
|
|
68
|
+
standalone = manifest.dshPlusStandalone;
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
// A package whose manifest cannot be read declares nothing; the caller keeps walking
|
|
72
|
+
// because the declaring package may sit above it.
|
|
73
|
+
return undefined;
|
|
74
|
+
}
|
|
75
|
+
const profile = standalone?.profile;
|
|
76
|
+
if (standalone === undefined || typeof profile !== 'string' || profile === '')
|
|
77
|
+
return undefined;
|
|
78
|
+
const rawOmitted = standalone.omittedPackages;
|
|
79
|
+
const omittedPackages = {};
|
|
80
|
+
if (rawOmitted !== undefined && typeof rawOmitted === 'object' && !Array.isArray(rawOmitted)) {
|
|
81
|
+
for (const [name, spec] of Object.entries(rawOmitted)) {
|
|
82
|
+
if (typeof spec !== 'string' || spec === '') {
|
|
83
|
+
throw new Error('dshPlusStandalone.omittedPackages.' + name + ' must be a non-empty string');
|
|
84
|
+
}
|
|
85
|
+
omittedPackages[name] = spec;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return { profileName: profile, omittedPackages };
|
|
89
|
+
}
|
|
19
90
|
function requireRecord(value, label) {
|
|
20
91
|
if (value === null || typeof value !== 'object' || Array.isArray(value))
|
|
21
92
|
throw new Error(label + ' must be an object');
|
|
@@ -336,9 +407,12 @@ function linkBundle(consumerModules, name, source) {
|
|
|
336
407
|
/** Resolve every path a command needs, without creating anything. */
|
|
337
408
|
export function resolvePaths(anchor, env = process.env) {
|
|
338
409
|
const home = resolveHome(env);
|
|
410
|
+
const declaration = readStandaloneDeclaration(anchor);
|
|
339
411
|
return {
|
|
340
412
|
home,
|
|
341
|
-
|
|
413
|
+
profileName: declaration.profileName,
|
|
414
|
+
omittedPackages: declaration.omittedPackages,
|
|
415
|
+
profileDirectory: join(home, 'profiles', declaration.profileName),
|
|
342
416
|
distributionDirectory: resolveDistributionDirectory(anchor),
|
|
343
417
|
};
|
|
344
418
|
}
|
|
@@ -366,7 +440,7 @@ export function ensureProfile(paths, consumerDirectory) {
|
|
|
366
440
|
// script allowlist — and a distribution release changes them. Rewriting on every
|
|
367
441
|
// start is what lets an upgraded installation receive the new values; a profile
|
|
368
442
|
// written once keeps whatever its own release decided and can never be corrected.
|
|
369
|
-
writeProfileOverrides(paths.profileDirectory, distribution.overrides, distribution.allowBuilds);
|
|
443
|
+
writeProfileOverrides(paths.profileDirectory, distribution.overrides, distribution.allowBuilds, paths.omittedPackages);
|
|
370
444
|
installProfilePackages(paths, consumerDirectory);
|
|
371
445
|
return false;
|
|
372
446
|
}
|
|
@@ -392,7 +466,7 @@ export function ensureProfile(paths, consumerDirectory) {
|
|
|
392
466
|
};
|
|
393
467
|
writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) + '\n');
|
|
394
468
|
// The overrides must reach the workspace before the install that reads them.
|
|
395
|
-
writeProfileOverrides(paths.profileDirectory, distribution.overrides, distribution.allowBuilds);
|
|
469
|
+
writeProfileOverrides(paths.profileDirectory, distribution.overrides, distribution.allowBuilds, paths.omittedPackages);
|
|
396
470
|
installProfilePackages(paths, consumerDirectory);
|
|
397
471
|
return true;
|
|
398
472
|
}
|
|
@@ -406,7 +480,7 @@ export function ensureProfile(paths, consumerDirectory) {
|
|
|
406
480
|
* @param profileDirectory - the standalone profile directory.
|
|
407
481
|
* @param overrides - official package name to published replacement spec.
|
|
408
482
|
*/
|
|
409
|
-
function writeProfileOverrides(profileDirectory, overrides, allowBuilds) {
|
|
483
|
+
function writeProfileOverrides(profileDirectory, overrides, allowBuilds, omittedPackages) {
|
|
410
484
|
const workspacePath = join(profileDirectory, 'pnpm-workspace.yaml');
|
|
411
485
|
const document = parseDocument(existsSync(workspacePath) ? readFileSync(workspacePath, 'utf8') : '');
|
|
412
486
|
const [documentError] = document.errors;
|
|
@@ -416,6 +490,11 @@ function writeProfileOverrides(profileDirectory, overrides, allowBuilds) {
|
|
|
416
490
|
document.set('packages', ['.']);
|
|
417
491
|
for (const [name, spec] of Object.entries(overrides))
|
|
418
492
|
document.setIn(['overrides', name], spec);
|
|
493
|
+
// A capability the deployment omits is substituted rather than deleted, because npm's
|
|
494
|
+
// override has no removal form. Writing it here keeps the omission in the one place
|
|
495
|
+
// pnpm reads, so an install never receives the capability the variant excluded.
|
|
496
|
+
for (const [name, spec] of Object.entries(omittedPackages))
|
|
497
|
+
document.setIn(['overrides', name], spec);
|
|
419
498
|
// pnpm refuses an install whose packages want to run build scripts until each is
|
|
420
499
|
// decided, so the distribution's reviewed decisions travel with the install rather
|
|
421
500
|
// than waiting for an interactive approval no start can offer.
|
|
@@ -99,8 +99,8 @@ export function spawnServer(options) {
|
|
|
99
99
|
env: options.env,
|
|
100
100
|
});
|
|
101
101
|
const stream = createWriteStream(options.logPath);
|
|
102
|
-
output.stdout
|
|
103
|
-
output.stderr
|
|
102
|
+
output.stdout.pipe(stream);
|
|
103
|
+
output.stderr.pipe(stream);
|
|
104
104
|
output.unref();
|
|
105
105
|
if (output.pid === undefined)
|
|
106
106
|
throw new Error('the server process did not start');
|
package/package.json
CHANGED
|
@@ -3,24 +3,30 @@
|
|
|
3
3
|
"dsh-plus": "lib/bin.js"
|
|
4
4
|
},
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@
|
|
7
|
-
"@sparkelf/dsh-
|
|
8
|
-
"@sparkelf/dsh-patch-browser-
|
|
9
|
-
"@sparkelf/dsh-patch-
|
|
10
|
-
"@sparkelf/dsh-patch-
|
|
11
|
-
"@sparkelf/dsh-patch-
|
|
12
|
-
"@sparkelf/dsh-patch-
|
|
13
|
-
"@sparkelf/dsh-patch-
|
|
14
|
-
"@sparkelf/dsh-patch-
|
|
15
|
-
"@sparkelf/dsh-patch-
|
|
16
|
-
"@sparkelf/dsh-patch-
|
|
17
|
-
"@sparkelf/dsh-patch-
|
|
18
|
-
"@sparkelf/dsh-patch-
|
|
19
|
-
"@sparkelf/dsh-patch-
|
|
20
|
-
"@sparkelf/dsh-
|
|
21
|
-
"@sparkelf/dsh-
|
|
22
|
-
"@sparkelf/dsh-
|
|
23
|
-
"@sparkelf/dsh-
|
|
6
|
+
"@deepseek-ai/dsh-tool-session-query": ">=0.1.6-alpha.1",
|
|
7
|
+
"@sparkelf/dsh-client-ui-skill-center": ">=0.2.0-rc.17",
|
|
8
|
+
"@sparkelf/dsh-patch-better-sidebar-browser-url-seed": ">=0.2.0-rc.17",
|
|
9
|
+
"@sparkelf/dsh-patch-better-sidebar-html-preview-path": ">=0.2.0-rc.17",
|
|
10
|
+
"@sparkelf/dsh-patch-better-sidebar-main-view-session": ">=0.2.0-rc.17",
|
|
11
|
+
"@sparkelf/dsh-patch-better-sidebar-media-path": ">=0.2.0-rc.17",
|
|
12
|
+
"@sparkelf/dsh-patch-browser-auth-mode": ">=0.2.0-rc.17",
|
|
13
|
+
"@sparkelf/dsh-patch-composer-popover-boundaries": ">=0.2.0-rc.17",
|
|
14
|
+
"@sparkelf/dsh-patch-legacy-code-preset": ">=0.2.0-rc.17",
|
|
15
|
+
"@sparkelf/dsh-patch-mobile-journal-generation": ">=0.2.0-rc.17",
|
|
16
|
+
"@sparkelf/dsh-patch-officecli-deliverables": ">=0.2.0-rc.17",
|
|
17
|
+
"@sparkelf/dsh-patch-ptc-mcp-schema-types": ">=0.2.0-rc.17",
|
|
18
|
+
"@sparkelf/dsh-patch-responses-reasoning-status": ">=0.2.0-rc.17",
|
|
19
|
+
"@sparkelf/dsh-patch-session-export-chinese": ">=0.2.0-rc.17",
|
|
20
|
+
"@sparkelf/dsh-patch-session-format-legacy-restart": ">=0.2.0-rc.17",
|
|
21
|
+
"@sparkelf/dsh-patch-session-log-trajectory-toolbar": ">=0.2.0-rc.17",
|
|
22
|
+
"@sparkelf/dsh-patch-session-query-unindexable-session": ">=0.2.0-rc.17",
|
|
23
|
+
"@sparkelf/dsh-patch-subagent-settings-presets": ">=0.2.0-rc.17",
|
|
24
|
+
"@sparkelf/dsh-patch-web-base-path": ">=0.2.0-rc.17",
|
|
25
|
+
"@sparkelf/dsh-patch-workspace-storage-restore": ">=0.2.0-rc.17",
|
|
26
|
+
"@sparkelf/dsh-patch-wsl-native-open": ">=0.2.0-rc.17",
|
|
27
|
+
"@sparkelf/dsh-plugin-backup": ">=0.2.0-rc.17",
|
|
28
|
+
"@sparkelf/dsh-plugin-mcp-credentials": ">=0.2.0-rc.17",
|
|
29
|
+
"@sparkelf/dsh-plugin-subagent-settings": ">=0.2.0-rc.17",
|
|
24
30
|
"dshmarket": ">=1.45.1",
|
|
25
31
|
"semver": ">=7.7.3",
|
|
26
32
|
"yaml": ">=2.9.0"
|
|
@@ -43,6 +49,8 @@
|
|
|
43
49
|
"formatVersion": 1,
|
|
44
50
|
"patchPackages": [
|
|
45
51
|
"@sparkelf/dsh-patch-better-sidebar-media-path",
|
|
52
|
+
"@sparkelf/dsh-patch-better-sidebar-main-view-session",
|
|
53
|
+
"@sparkelf/dsh-patch-better-sidebar-browser-url-seed",
|
|
46
54
|
"@sparkelf/dsh-patch-officecli-deliverables",
|
|
47
55
|
"@sparkelf/dsh-patch-browser-auth-mode",
|
|
48
56
|
"@sparkelf/dsh-patch-workspace-storage-restore",
|
|
@@ -54,6 +62,10 @@
|
|
|
54
62
|
"@sparkelf/dsh-patch-ptc-mcp-schema-types",
|
|
55
63
|
"@sparkelf/dsh-patch-web-base-path",
|
|
56
64
|
"@sparkelf/dsh-patch-composer-popover-boundaries",
|
|
65
|
+
"@sparkelf/dsh-patch-session-format-legacy-restart",
|
|
66
|
+
"@sparkelf/dsh-patch-wsl-native-open",
|
|
67
|
+
"@sparkelf/dsh-patch-better-sidebar-html-preview-path",
|
|
68
|
+
"@sparkelf/dsh-patch-session-query-unindexable-session",
|
|
57
69
|
"@sparkelf/dsh-patch-mobile-journal-generation"
|
|
58
70
|
],
|
|
59
71
|
"profile": {
|
|
@@ -70,10 +82,11 @@
|
|
|
70
82
|
},
|
|
71
83
|
"bundles": [
|
|
72
84
|
"@deepseek-ai/dsh-base",
|
|
85
|
+
"@deepseek-ai/dsh-experimental-agent-team-profile",
|
|
73
86
|
"@deepseek-ai/dsh-web-app",
|
|
87
|
+
"@deepseek-ai/dsh-experimental-agent-team-web-profile",
|
|
74
88
|
"@sparkelf/dsh-mineru",
|
|
75
89
|
"@sparkelf/dsh-officecli",
|
|
76
|
-
"@sparkelf/dsh-mobile-bridge",
|
|
77
90
|
"dshmarket",
|
|
78
91
|
"@huanlin/dsh-plugin-better-locale",
|
|
79
92
|
"dsh-better-sidebar",
|
|
@@ -85,48 +98,79 @@
|
|
|
85
98
|
"@sparkelf/dsh-plus",
|
|
86
99
|
"dsh-sql-workbench",
|
|
87
100
|
"@sparkelf/dsh-ssh-manager",
|
|
88
|
-
"@sparkelf/dsh-api-client"
|
|
101
|
+
"@sparkelf/dsh-api-client",
|
|
102
|
+
"dsh-right-bg-anim"
|
|
89
103
|
],
|
|
90
104
|
"dependencies": {
|
|
91
|
-
"@changfenhuang/dsh-genui": "0.
|
|
92
|
-
"@
|
|
105
|
+
"@changfenhuang/dsh-genui": "0.11.0",
|
|
106
|
+
"@deepseek-ai/dsh-experimental-agent-team-profile": ">=0.1.6-alpha.1",
|
|
107
|
+
"@deepseek-ai/dsh-experimental-agent-team-web-profile": ">=0.1.6-alpha.1",
|
|
108
|
+
"@huanlin/dsh-plugin-better-locale": "0.4.3",
|
|
93
109
|
"@sparkelf/dsh-api-client": "0.5.1",
|
|
94
110
|
"@sparkelf/dsh-mineru": "0.1.2",
|
|
95
111
|
"@sparkelf/dsh-office-viewer-fonts": "0.1.2",
|
|
96
112
|
"@sparkelf/dsh-officecli": "0.1.2",
|
|
97
113
|
"@sparkelf/dsh-plugin-better-sidebar-office": "0.2.1",
|
|
98
|
-
"@sparkelf/dsh-plugin-supervisor": "0.1.
|
|
114
|
+
"@sparkelf/dsh-plugin-supervisor": "0.1.6",
|
|
99
115
|
"@sparkelf/dsh-ssh-manager": "0.7.2",
|
|
100
116
|
"@sparkelf/dsh-workbench-vault": "0.1.2",
|
|
101
117
|
"dsh-better-sidebar": "0.19.1",
|
|
118
|
+
"dsh-right-bg-anim": "1.1.0",
|
|
102
119
|
"dsh-sql-workbench": "0.5.1",
|
|
103
120
|
"dsh-video-preview": "0.1.4"
|
|
104
121
|
},
|
|
105
122
|
"overrides": {
|
|
106
|
-
"@deepseek-ai/dsh-agent-presets": "npm:@sparkelf/dsh-agent-presets@0.1.6-alpha.
|
|
123
|
+
"@deepseek-ai/dsh-agent-presets": "npm:@sparkelf/dsh-agent-presets@0.1.6-alpha.3",
|
|
107
124
|
"@deepseek-ai/dsh-api-gateway": "npm:@sparkelf/dsh-api-gateway@0.1.6-alpha.2",
|
|
108
|
-
"@deepseek-ai/dsh-api-session-controller": "npm:@sparkelf/dsh-api-session-controller@0.1.6-alpha.
|
|
125
|
+
"@deepseek-ai/dsh-api-session-controller": "npm:@sparkelf/dsh-api-session-controller@0.1.6-alpha.3",
|
|
126
|
+
"@deepseek-ai/dsh-api-terminal-controller": "npm:@sparkelf/dsh-api-terminal-controller@0.1.6-alpha.3",
|
|
109
127
|
"@deepseek-ai/dsh-client-connection": "npm:@sparkelf/dsh-client-connection@0.1.6-alpha.2",
|
|
110
128
|
"@deepseek-ai/dsh-client-ui-agent-preset": "npm:@sparkelf/dsh-client-ui-agent-preset@0.1.6-alpha.2",
|
|
111
|
-
"@deepseek-ai/dsh-client-ui-conversation": "npm:@sparkelf/dsh-client-ui-conversation@0.1.6-alpha.2",
|
|
112
129
|
"@deepseek-ai/dsh-client-ui-deliverables": "npm:@sparkelf/dsh-client-ui-deliverables@0.1.6-alpha.2",
|
|
113
130
|
"@deepseek-ai/dsh-client-ui-layout": "npm:@sparkelf/dsh-client-ui-layout@0.1.6-alpha.2",
|
|
114
131
|
"@deepseek-ai/dsh-client-ui-model-selection": "npm:@sparkelf/dsh-client-ui-model-selection@0.1.6-alpha.2",
|
|
132
|
+
"@deepseek-ai/dsh-client-ui-permission-presets": "npm:@sparkelf/dsh-client-ui-permission-presets@0.1.6-alpha.2",
|
|
115
133
|
"@deepseek-ai/dsh-client-ui-primitives": "npm:@sparkelf/dsh-client-ui-primitives@0.1.6-alpha.2",
|
|
116
134
|
"@deepseek-ai/dsh-client-ui-settings-models": "npm:@sparkelf/dsh-client-ui-settings-models@0.1.6-alpha.2",
|
|
117
135
|
"@deepseek-ai/dsh-client-ui-trajectory": "npm:@sparkelf/dsh-client-ui-trajectory@0.1.6-alpha.2",
|
|
118
136
|
"@deepseek-ai/dsh-host-frontend-static": "npm:@sparkelf/dsh-host-frontend-static@0.1.6-alpha.2",
|
|
137
|
+
"@deepseek-ai/dsh-host-open-in-app": "npm:@sparkelf/dsh-host-open-in-app@0.1.6-alpha.2",
|
|
119
138
|
"@deepseek-ai/dsh-host-webserver": "npm:@sparkelf/dsh-host-webserver@0.1.6-alpha.2",
|
|
139
|
+
"@deepseek-ai/dsh-llm": "npm:@sparkelf/dsh-llm@0.1.6-alpha.2",
|
|
120
140
|
"@deepseek-ai/dsh-llm-pi-ai": "npm:@sparkelf/dsh-llm-pi-ai@0.1.6-alpha.2",
|
|
141
|
+
"@deepseek-ai/dsh-native-command": "npm:@sparkelf/dsh-native-command@0.1.6-alpha.2",
|
|
142
|
+
"@deepseek-ai/dsh-session-format-v0-to-v1": "npm:@sparkelf/dsh-session-format-v0-to-v1@0.1.6-alpha.2",
|
|
121
143
|
"@deepseek-ai/dsh-session-log-export": "npm:@sparkelf/dsh-session-log-export@0.1.6-alpha.2",
|
|
144
|
+
"@deepseek-ai/dsh-session-query-sqlite": "npm:@sparkelf/dsh-session-query-sqlite@0.1.6-alpha.2",
|
|
145
|
+
"@deepseek-ai/dsh-subagent": "npm:@sparkelf/dsh-subagent@0.1.6-alpha.2",
|
|
122
146
|
"@deepseek-ai/dsh-tools": "npm:@sparkelf/dsh-tools@0.1.6-alpha.2",
|
|
123
147
|
"@deepseek-ai/dsh-web-app": "npm:@sparkelf/dsh-web-app@0.1.6-alpha.2",
|
|
124
148
|
"@deepseek-ai/dsh-web-frontend": "npm:@sparkelf/dsh-web-frontend@0.1.6-alpha.2",
|
|
125
149
|
"@deepseek-ai/dsh-workspace": "npm:@sparkelf/dsh-workspace@0.1.6-alpha.2"
|
|
150
|
+
},
|
|
151
|
+
"standaloneVariants": {
|
|
152
|
+
"dataops": {
|
|
153
|
+
"excludeBundles": [],
|
|
154
|
+
"excludePackages": [
|
|
155
|
+
"@deepseek-ai/dsh-computer-use",
|
|
156
|
+
"@deepseek-ai/dsh-experimental-computer-use-cua-driver-mcp",
|
|
157
|
+
"@deepseek-ai/dsh-web-search-exa"
|
|
158
|
+
],
|
|
159
|
+
"includeBundles": [
|
|
160
|
+
"@sparkelf/dsh-dataops-managed",
|
|
161
|
+
"@sparkelf/dsh-query-result-analysis"
|
|
162
|
+
],
|
|
163
|
+
"includePackages": {
|
|
164
|
+
"@sparkelf/dsh-dataops-managed": "0.3.2",
|
|
165
|
+
"@sparkelf/dsh-query-result-analysis": "0.1.2"
|
|
166
|
+
},
|
|
167
|
+
"packageName": "@sparkelf/dsh-dataops-standalone",
|
|
168
|
+
"profile": "dataops-web"
|
|
169
|
+
}
|
|
126
170
|
}
|
|
127
171
|
},
|
|
128
172
|
"sourceBase": {
|
|
129
|
-
"revision": "
|
|
173
|
+
"revision": "ddefc45fbc7f8e46dd73185e68295696d1297887"
|
|
130
174
|
}
|
|
131
175
|
},
|
|
132
176
|
"exports": {
|
|
@@ -152,6 +196,11 @@
|
|
|
152
196
|
"license": "MIT",
|
|
153
197
|
"main": "lib/index.js",
|
|
154
198
|
"name": "@sparkelf/dsh-plus",
|
|
199
|
+
"optionalDependencies": {
|
|
200
|
+
"@deepseek-ai/dsh-computer-use": ">=0.1.6-alpha.1",
|
|
201
|
+
"@deepseek-ai/dsh-experimental-computer-use-cua-driver-mcp": ">=0.1.6-alpha.1",
|
|
202
|
+
"@deepseek-ai/dsh-web-search-exa": ">=0.1.6-alpha.1"
|
|
203
|
+
},
|
|
155
204
|
"peerDependencies": {
|
|
156
205
|
"@deepseek-ai/cordis": ">=4.0.1"
|
|
157
206
|
},
|
|
@@ -165,5 +214,5 @@
|
|
|
165
214
|
},
|
|
166
215
|
"type": "module",
|
|
167
216
|
"types": "lib/types/index.d.ts",
|
|
168
|
-
"version": "0.2.0-rc.
|
|
217
|
+
"version": "0.2.0-rc.20"
|
|
169
218
|
}
|