@ran-sh/dsh-crew 0.5.0 → 0.5.1
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/package.json +157 -133
- package/scripts/verify-npm-install.mjs +16 -3
- package/src/runtime-identity.mjs +1 -1
package/package.json
CHANGED
|
@@ -1,137 +1,161 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@ran-sh/dsh-crew",
|
|
3
|
-
"version": "0.5.
|
|
4
|
-
"type": "module",
|
|
5
|
-
"main": "./src/hub/entry.mjs",
|
|
6
|
-
"bin": {
|
|
7
|
-
"dsh-crew": "bin/dsh-crew.mjs"
|
|
8
|
-
},
|
|
9
|
-
"description": "DeepSeek Harness plugin: dispatch work to DSH agents from Claude Code / Codex, as native subagents with live progress",
|
|
10
|
-
"dsh": {
|
|
11
|
-
"bundle": {
|
|
12
|
-
"patch": "./cordis.patch.yml"
|
|
13
|
-
},
|
|
14
|
-
"client": {
|
|
15
|
-
"inject": [
|
|
16
|
-
"@deepseek-ai/dsh-client-runtime",
|
|
17
|
-
"@deepseek-ai/dsh-client-locale",
|
|
18
|
-
"@deepseek-ai/dsh-client-ui-slots",
|
|
19
|
-
"@deepseek-ai/dsh-client-ui-settings"
|
|
20
|
-
],
|
|
21
|
-
"platform": "web"
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
|
-
"scripts": {
|
|
25
|
-
"mcp": "node src/server.mjs",
|
|
26
|
-
"build:client": "tsdown src/client/entry.tsx --format cjs --platform browser --target es2022 --tsconfig tsconfig.client.json --deps.never-bundle react --deps.never-bundle react/jsx-runtime --deps.never-bundle react-dom --deps.never-bundle react-dom/client --out-dir .client-build --clean --logLevel warn && node scripts/build-client.mjs",
|
|
27
|
-
"verify:npm-install": "node scripts/verify-npm-install.mjs",
|
|
28
|
-
"verify:npm-install:official": "node scripts/verify-npm-install.mjs --with-official-dsh",
|
|
29
|
-
"verify:official-bridge": "node scripts/verify-official-bridge-e2e.mjs"
|
|
30
|
-
},
|
|
31
|
-
"dependencies": {
|
|
32
|
-
"@modelcontextprotocol/sdk": "^1.25.4",
|
|
33
|
-
"zod": "^3.24.0"
|
|
34
|
-
},
|
|
35
|
-
"exports": {
|
|
36
|
-
".": "./src/hub/entry.mjs",
|
|
37
|
-
"./client": "./lib/client.js",
|
|
38
|
-
"./package.json": "./package.json"
|
|
39
|
-
},
|
|
40
|
-
"peerDependencies": {
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"@deepseek-ai/dsh-agent": "0.1.1-rc.2",
|
|
44
|
-
"@deepseek-ai/dsh-
|
|
45
|
-
"@deepseek-ai/dsh-
|
|
46
|
-
"@deepseek-ai/dsh-
|
|
47
|
-
"@deepseek-ai/dsh-
|
|
48
|
-
"@deepseek-ai/dsh-
|
|
49
|
-
"@deepseek-ai/dsh-
|
|
50
|
-
"@deepseek-ai/dsh-
|
|
51
|
-
"@deepseek-ai/dsh-
|
|
52
|
-
"@deepseek-ai/dsh-
|
|
53
|
-
"@deepseek-ai/dsh-
|
|
54
|
-
"@deepseek-ai/dsh-sdk-
|
|
55
|
-
"@deepseek-ai/dsh-
|
|
56
|
-
"@deepseek-ai/dsh-
|
|
57
|
-
"@deepseek-ai/dsh-
|
|
58
|
-
"@deepseek-ai/dsh-
|
|
59
|
-
"@deepseek-ai/dsh-
|
|
60
|
-
"@deepseek-ai/dsh-
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
},
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"@
|
|
70
|
-
"@deepseek-ai/dsh-
|
|
71
|
-
"@deepseek-ai/dsh-
|
|
72
|
-
"@deepseek-ai/dsh-
|
|
73
|
-
"@deepseek-ai/dsh-
|
|
74
|
-
"@deepseek-ai/dsh-
|
|
75
|
-
"@deepseek-ai/dsh-
|
|
76
|
-
"@deepseek-ai/dsh-
|
|
77
|
-
"@deepseek-ai/dsh-
|
|
78
|
-
"@deepseek-ai/dsh-
|
|
79
|
-
"@deepseek-ai/dsh-
|
|
80
|
-
"@deepseek-ai/dsh-
|
|
81
|
-
"@deepseek-ai/dsh-
|
|
82
|
-
"@deepseek-ai/dsh-
|
|
83
|
-
"@deepseek-ai/dsh-
|
|
84
|
-
"@deepseek-ai/dsh-
|
|
85
|
-
"
|
|
86
|
-
"
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
"@deepseek-ai/dsh-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
"
|
|
94
|
-
"
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
"
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
"dsh",
|
|
102
|
-
"deepseek",
|
|
103
|
-
"
|
|
104
|
-
"
|
|
105
|
-
"
|
|
106
|
-
"
|
|
107
|
-
"
|
|
108
|
-
"
|
|
109
|
-
"
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
"
|
|
113
|
-
"
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
"
|
|
118
|
-
"
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
"
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
"
|
|
126
|
-
"
|
|
1
|
+
{
|
|
2
|
+
"name": "@ran-sh/dsh-crew",
|
|
3
|
+
"version": "0.5.1",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./src/hub/entry.mjs",
|
|
6
|
+
"bin": {
|
|
7
|
+
"dsh-crew": "bin/dsh-crew.mjs"
|
|
8
|
+
},
|
|
9
|
+
"description": "DeepSeek Harness plugin: dispatch work to DSH agents from Claude Code / Codex, as native subagents with live progress",
|
|
10
|
+
"dsh": {
|
|
11
|
+
"bundle": {
|
|
12
|
+
"patch": "./cordis.patch.yml"
|
|
13
|
+
},
|
|
14
|
+
"client": {
|
|
15
|
+
"inject": [
|
|
16
|
+
"@deepseek-ai/dsh-client-runtime",
|
|
17
|
+
"@deepseek-ai/dsh-client-locale",
|
|
18
|
+
"@deepseek-ai/dsh-client-ui-slots",
|
|
19
|
+
"@deepseek-ai/dsh-client-ui-settings"
|
|
20
|
+
],
|
|
21
|
+
"platform": "web"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"scripts": {
|
|
25
|
+
"mcp": "node src/server.mjs",
|
|
26
|
+
"build:client": "tsdown src/client/entry.tsx --format cjs --platform browser --target es2022 --tsconfig tsconfig.client.json --deps.never-bundle react --deps.never-bundle react/jsx-runtime --deps.never-bundle react-dom --deps.never-bundle react-dom/client --out-dir .client-build --clean --logLevel warn && node scripts/build-client.mjs",
|
|
27
|
+
"verify:npm-install": "node scripts/verify-npm-install.mjs",
|
|
28
|
+
"verify:npm-install:official": "node scripts/verify-npm-install.mjs --with-official-dsh",
|
|
29
|
+
"verify:official-bridge": "node scripts/verify-official-bridge-e2e.mjs"
|
|
30
|
+
},
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"@modelcontextprotocol/sdk": "^1.25.4",
|
|
33
|
+
"zod": "^3.24.0"
|
|
34
|
+
},
|
|
35
|
+
"exports": {
|
|
36
|
+
".": "./src/hub/entry.mjs",
|
|
37
|
+
"./client": "./lib/client.js",
|
|
38
|
+
"./package.json": "./package.json"
|
|
39
|
+
},
|
|
40
|
+
"peerDependencies": {
|
|
41
|
+
"@deepseek-ai/dsh-agent": "0.1.1-rc.2",
|
|
42
|
+
"@deepseek-ai/dsh-agent-presets": "0.1.1-rc.2",
|
|
43
|
+
"@deepseek-ai/dsh-agent-spine-demo": "0.1.1-rc.2",
|
|
44
|
+
"@deepseek-ai/dsh-bash-local": "0.1.1-rc.2",
|
|
45
|
+
"@deepseek-ai/dsh-compaction-basic": "0.1.1-rc.2",
|
|
46
|
+
"@deepseek-ai/dsh-fs-local": "0.1.1-rc.2",
|
|
47
|
+
"@deepseek-ai/dsh-fs-observation-policy": "0.1.1-rc.2",
|
|
48
|
+
"@deepseek-ai/dsh-llm": "0.1.1-rc.2",
|
|
49
|
+
"@deepseek-ai/dsh-llm-deepseek": "0.1.1-rc.2",
|
|
50
|
+
"@deepseek-ai/dsh-sandbox-local": "0.1.1-rc.2",
|
|
51
|
+
"@deepseek-ai/dsh-sandbox-policy": "0.1.1-rc.2",
|
|
52
|
+
"@deepseek-ai/dsh-sdk-client": "0.1.1-rc.2",
|
|
53
|
+
"@deepseek-ai/dsh-sdk-jsonrpc-demo": "0.1.1-rc.2",
|
|
54
|
+
"@deepseek-ai/dsh-sdk-jsonrpc-server": "0.1.1-rc.2",
|
|
55
|
+
"@deepseek-ai/dsh-session": "0.1.1-rc.2",
|
|
56
|
+
"@deepseek-ai/dsh-session-persistence-jsonl": "0.1.1-rc.2",
|
|
57
|
+
"@deepseek-ai/dsh-subprocess-local": "0.1.1-rc.2",
|
|
58
|
+
"@deepseek-ai/dsh-token-meter": "0.1.1-rc.2",
|
|
59
|
+
"@deepseek-ai/dsh-tool-fs": "0.1.1-rc.2",
|
|
60
|
+
"@deepseek-ai/dsh-tool-todo": "0.1.1-rc.2",
|
|
61
|
+
"react": "^18.0.0",
|
|
62
|
+
"react-dom": "^18.0.0"
|
|
63
|
+
},
|
|
64
|
+
"peerDependenciesMeta": {
|
|
65
|
+
"@deepseek-ai/dsh-agent": { "optional": true },
|
|
66
|
+
"@deepseek-ai/dsh-agent-presets": { "optional": true },
|
|
67
|
+
"@deepseek-ai/dsh-agent-spine-demo": { "optional": true },
|
|
68
|
+
"@deepseek-ai/dsh-bash-local": { "optional": true },
|
|
69
|
+
"@deepseek-ai/dsh-compaction-basic": { "optional": true },
|
|
70
|
+
"@deepseek-ai/dsh-fs-local": { "optional": true },
|
|
71
|
+
"@deepseek-ai/dsh-fs-observation-policy": { "optional": true },
|
|
72
|
+
"@deepseek-ai/dsh-llm": { "optional": true },
|
|
73
|
+
"@deepseek-ai/dsh-llm-deepseek": { "optional": true },
|
|
74
|
+
"@deepseek-ai/dsh-sandbox-local": { "optional": true },
|
|
75
|
+
"@deepseek-ai/dsh-sandbox-policy": { "optional": true },
|
|
76
|
+
"@deepseek-ai/dsh-sdk-client": { "optional": true },
|
|
77
|
+
"@deepseek-ai/dsh-sdk-jsonrpc-demo": { "optional": true },
|
|
78
|
+
"@deepseek-ai/dsh-sdk-jsonrpc-server": { "optional": true },
|
|
79
|
+
"@deepseek-ai/dsh-session": { "optional": true },
|
|
80
|
+
"@deepseek-ai/dsh-session-persistence-jsonl": { "optional": true },
|
|
81
|
+
"@deepseek-ai/dsh-subprocess-local": { "optional": true },
|
|
82
|
+
"@deepseek-ai/dsh-token-meter": { "optional": true },
|
|
83
|
+
"@deepseek-ai/dsh-tool-fs": { "optional": true },
|
|
84
|
+
"@deepseek-ai/dsh-tool-todo": { "optional": true },
|
|
85
|
+
"react": { "optional": true },
|
|
86
|
+
"react-dom": { "optional": true }
|
|
87
|
+
},
|
|
88
|
+
"devDependencies": {
|
|
89
|
+
"@deepseek-ai/dsh-agent": "0.1.1-rc.2",
|
|
90
|
+
"@deepseek-ai/dsh-agent-presets": "0.1.1-rc.2",
|
|
91
|
+
"@deepseek-ai/dsh-agent-spine-demo": "0.1.1-rc.2",
|
|
92
|
+
"@deepseek-ai/dsh-bash-local": "0.1.1-rc.2",
|
|
93
|
+
"@deepseek-ai/dsh-compaction-basic": "0.1.1-rc.2",
|
|
94
|
+
"@deepseek-ai/dsh-fs-local": "0.1.1-rc.2",
|
|
95
|
+
"@deepseek-ai/dsh-fs-observation-policy": "0.1.1-rc.2",
|
|
96
|
+
"@deepseek-ai/dsh-llm": "0.1.1-rc.2",
|
|
97
|
+
"@deepseek-ai/dsh-llm-deepseek": "0.1.1-rc.2",
|
|
98
|
+
"@deepseek-ai/dsh-sandbox-local": "0.1.1-rc.2",
|
|
99
|
+
"@deepseek-ai/dsh-sandbox-policy": "0.1.1-rc.2",
|
|
100
|
+
"@deepseek-ai/dsh-sdk-client": "0.1.1-rc.2",
|
|
101
|
+
"@deepseek-ai/dsh-sdk-jsonrpc-demo": "0.1.1-rc.2",
|
|
102
|
+
"@deepseek-ai/dsh-sdk-jsonrpc-server": "0.1.1-rc.2",
|
|
103
|
+
"@deepseek-ai/dsh-session": "0.1.1-rc.2",
|
|
104
|
+
"@deepseek-ai/dsh-session-persistence-jsonl": "0.1.1-rc.2",
|
|
105
|
+
"@deepseek-ai/dsh-subprocess-local": "0.1.1-rc.2",
|
|
106
|
+
"@deepseek-ai/dsh-token-meter": "0.1.1-rc.2",
|
|
107
|
+
"@deepseek-ai/dsh-tool-fs": "0.1.1-rc.2",
|
|
108
|
+
"@deepseek-ai/dsh-tool-todo": "0.1.1-rc.2",
|
|
109
|
+
"@types/react": "^18.3.0",
|
|
110
|
+
"react": "^18.3.1",
|
|
111
|
+
"react-dom": "^18.3.1",
|
|
112
|
+
"tsdown": "0.22.14",
|
|
113
|
+
"typescript": "^5.6.0"
|
|
114
|
+
},
|
|
115
|
+
"license": "MIT",
|
|
116
|
+
"repository": {
|
|
117
|
+
"type": "git",
|
|
118
|
+
"url": "git+https://github.com/Ran-sh/dsh-crew.git"
|
|
119
|
+
},
|
|
120
|
+
"homepage": "https://github.com/Ran-sh/dsh-crew",
|
|
121
|
+
"bugs": {
|
|
122
|
+
"url": "https://github.com/Ran-sh/dsh-crew/issues"
|
|
123
|
+
},
|
|
124
|
+
"keywords": [
|
|
125
|
+
"dsh",
|
|
126
|
+
"deepseek",
|
|
127
|
+
"claude-code",
|
|
128
|
+
"codex",
|
|
129
|
+
"subagent",
|
|
130
|
+
"worker",
|
|
131
|
+
"multimodal",
|
|
132
|
+
"plugin",
|
|
133
|
+
"agent"
|
|
134
|
+
],
|
|
135
|
+
"files": [
|
|
136
|
+
"bin",
|
|
137
|
+
"lib",
|
|
138
|
+
"src",
|
|
139
|
+
"scripts",
|
|
140
|
+
"agents",
|
|
141
|
+
"commands",
|
|
142
|
+
"codex",
|
|
143
|
+
"statusline",
|
|
144
|
+
"official-web-bridge",
|
|
145
|
+
"cordis.patch.yml",
|
|
146
|
+
"worker.cordis.yml",
|
|
147
|
+
".claude-plugin",
|
|
148
|
+
".mcp.json",
|
|
149
|
+
"README.md",
|
|
150
|
+
"README.*.md",
|
|
127
151
|
"docs/job-contracts.md",
|
|
128
152
|
"docs/readiness-matrix.md",
|
|
129
153
|
"docs/gpt-relay-extension.md",
|
|
130
154
|
"docs/ui-surfaces.md",
|
|
131
|
-
"docs/images/dsh-crew-logo.png",
|
|
132
|
-
"docs/images/dsh-crew-overview.png",
|
|
133
|
-
"docs/images/dsh-crew-host.png",
|
|
134
|
-
"docs/images/dsh-crew-jobs.png",
|
|
135
|
-
"LICENSE"
|
|
136
|
-
]
|
|
137
|
-
}
|
|
155
|
+
"docs/images/dsh-crew-logo.png",
|
|
156
|
+
"docs/images/dsh-crew-overview.png",
|
|
157
|
+
"docs/images/dsh-crew-host.png",
|
|
158
|
+
"docs/images/dsh-crew-jobs.png",
|
|
159
|
+
"LICENSE"
|
|
160
|
+
]
|
|
161
|
+
}
|
|
@@ -9,13 +9,13 @@
|
|
|
9
9
|
// or fully resolving the very large official DSH dependency graph.
|
|
10
10
|
|
|
11
11
|
import { mkdtemp, readFile, rm } from 'node:fs/promises';
|
|
12
|
+
import { existsSync } from 'node:fs';
|
|
12
13
|
import os from 'node:os';
|
|
13
14
|
import path from 'node:path';
|
|
14
15
|
import { spawnSync } from 'node:child_process';
|
|
15
16
|
import { fileURLToPath } from 'node:url';
|
|
16
17
|
|
|
17
18
|
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
|
|
18
|
-
const npmCommand = process.platform === 'win32' ? 'npm.cmd' : 'npm';
|
|
19
19
|
const registry = process.env.NPM_REGISTRY ?? 'https://registry.npmjs.org/';
|
|
20
20
|
export const supportedDshVersion = '0.1.1-rc.2';
|
|
21
21
|
const verifyOfficialDsh = process.argv.includes('--with-official-dsh');
|
|
@@ -23,6 +23,19 @@ const DSH_PACKAGE = '@deepseek-ai/dsh';
|
|
|
23
23
|
const DSH_PREFIX = '@deepseek-ai/dsh-';
|
|
24
24
|
const MAX_DIRECT_PEERS = 64;
|
|
25
25
|
|
|
26
|
+
export function resolveNpmInvocation({
|
|
27
|
+
platform = process.platform,
|
|
28
|
+
nodePath = process.execPath,
|
|
29
|
+
fileExists = existsSync,
|
|
30
|
+
} = {}) {
|
|
31
|
+
if (platform !== 'win32') return { command: 'npm', argsPrefix: [] };
|
|
32
|
+
const npmCli = path.join(path.dirname(nodePath), 'node_modules', 'npm', 'bin', 'npm-cli.js');
|
|
33
|
+
if (!fileExists(npmCli)) throw new Error(`npm CLI was not found beside Node.js: ${npmCli}`);
|
|
34
|
+
return { command: nodePath, argsPrefix: [npmCli] };
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const npmInvocation = resolveNpmInvocation();
|
|
38
|
+
|
|
26
39
|
/**
|
|
27
40
|
* The candidate version is derived from the candidate package manifest at the
|
|
28
41
|
* checkout root instead of a hard-coded release literal, so the verifier never
|
|
@@ -217,10 +230,10 @@ export async function auditOfficialDshCohort({
|
|
|
217
230
|
}
|
|
218
231
|
|
|
219
232
|
function run(args, cwd = root) {
|
|
220
|
-
const result = spawnSync(
|
|
233
|
+
const result = spawnSync(npmInvocation.command, [...npmInvocation.argsPrefix, ...args], {
|
|
221
234
|
cwd,
|
|
222
235
|
encoding: 'utf8',
|
|
223
|
-
shell:
|
|
236
|
+
shell: false,
|
|
224
237
|
windowsHide: true,
|
|
225
238
|
});
|
|
226
239
|
if (result.error) throw result.error;
|
package/src/runtime-identity.mjs
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
// Keep this module pure and dependency-free so Hub, MCP and tests all use the
|
|
9
9
|
// exact same compatibility rules.
|
|
10
10
|
|
|
11
|
-
export const RUNTIME_VERSION = '0.5.
|
|
11
|
+
export const RUNTIME_VERSION = '0.5.1';
|
|
12
12
|
export const HUB_PROTOCOL_VERSION = 1;
|
|
13
13
|
|
|
14
14
|
export const HUB_CAPABILITIES = Object.freeze([
|