@norman-else/dsh-claude 0.1.36 → 0.1.38
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/INSTALL.md +55 -55
- package/LICENSE +21 -21
- package/cordis.patch.yml +12 -12
- package/legacy-preset/agent.cordis.yml +11 -11
- package/legacy-preset/preset.yml +4 -4
- package/lib/bin.mjs +0 -0
- package/lib/bin.mjs.map +1 -1
- package/lib/client.d.ts +4 -0
- package/lib/client.js +176 -33
- package/lib/client.js.map +1 -1
- package/lib/index.mjs +217 -57
- package/lib/index.mjs.map +1 -1
- package/lib/presenters-BBoM1Ju1.mjs.map +1 -1
- package/lib/preset-installer-loenwnLS.mjs.map +1 -1
- package/lib/preset-route.mjs.map +1 -1
- package/package.json +195 -189
- package/preset/claude/agent.cordis.yml +11 -11
- package/preset/claude/preset.yml +4 -4
package/INSTALL.md
CHANGED
|
@@ -1,55 +1,55 @@
|
|
|
1
|
-
# Agent Installation Runbook
|
|
2
|
-
|
|
3
|
-
This runbook is idempotent for a local `dsh-claude` checkout and an existing DSH `web` profile.
|
|
4
|
-
|
|
5
|
-
## 1. Verify the checkout
|
|
6
|
-
|
|
7
|
-
```sh
|
|
8
|
-
cd /path/to/dsh-claude
|
|
9
|
-
export PATH="/opt/homebrew/bin:$PATH"
|
|
10
|
-
pnpm install
|
|
11
|
-
pnpm check
|
|
12
|
-
node lib/bin.mjs doctor
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
Stop if Doctor cannot find an authenticated local Claude Code installation. Do not request, copy, or write credentials.
|
|
16
|
-
|
|
17
|
-
## 2. Link the bundle into the current Web profile
|
|
18
|
-
|
|
19
|
-
The bundle keeps a protected compatibility preset at `$DSH_HOME/.agent-presets/claude`, because DSH Desktop 2.0.4 does not retain third-party preset roots from bundle patches. Its route uses the active profile package source to avoid duplicate client-module Loaders. User-modified preset files are preserved.
|
|
20
|
-
|
|
21
|
-
```sh
|
|
22
|
-
dsh plugin --profile web add "link:$(pwd)"
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
Do not start another DSH Web server. This bundle must load in the existing app at `http://127.0.0.1:56454`.
|
|
26
|
-
|
|
27
|
-
## 3. Refresh and smoke test
|
|
28
|
-
|
|
29
|
-
1. Refresh the existing DSH Web page.
|
|
30
|
-
2. Confirm **Claude** appears in the new-session Agent Preset picker.
|
|
31
|
-
3. Run one existing native preset prompt and verify it remains native.
|
|
32
|
-
4. Create a Claude session and send a read-only prompt.
|
|
33
|
-
5. Send one edit prompt; verify DSH displays a permission request. Exercise reject first, then allow once with a harmless temporary file.
|
|
34
|
-
6. Cancel a running prompt and confirm the cancelled session owns no child `claude` process that is still executing cancelled work or left orphaned/unowned.
|
|
35
|
-
7. Refresh the browser and continue the session.
|
|
36
|
-
8. Restart DSH and confirm the next prompt resumes the persisted Claude session.
|
|
37
|
-
|
|
38
|
-
A live prompt can consume the user's Claude subscription. Keep it minimal.
|
|
39
|
-
|
|
40
|
-
## 4. Uninstall
|
|
41
|
-
|
|
42
|
-
Clean up the managed preset while the profile can still execute the package CLI, then remove the plugin:
|
|
43
|
-
|
|
44
|
-
```sh
|
|
45
|
-
dsh plugin --profile web exec dsh-claude remove-preset
|
|
46
|
-
dsh plugin --profile web remove @norman-else/dsh-claude
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
DSH has no plugin uninstall lifecycle hook, so direct package removal can leave the compatibility preset behind. After direct removal, no source checkout is required; run the matching package version:
|
|
50
|
-
|
|
51
|
-
```sh
|
|
52
|
-
pnpm dlx @norman-else/dsh-claude@<version> remove-preset
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
Cleanup refuses to delete user-modified preset content.
|
|
1
|
+
# Agent Installation Runbook
|
|
2
|
+
|
|
3
|
+
This runbook is idempotent for a local `dsh-claude` checkout and an existing DSH `web` profile.
|
|
4
|
+
|
|
5
|
+
## 1. Verify the checkout
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
cd /path/to/dsh-claude
|
|
9
|
+
export PATH="/opt/homebrew/bin:$PATH"
|
|
10
|
+
pnpm install
|
|
11
|
+
pnpm check
|
|
12
|
+
node lib/bin.mjs doctor
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Stop if Doctor cannot find an authenticated local Claude Code installation. Do not request, copy, or write credentials.
|
|
16
|
+
|
|
17
|
+
## 2. Link the bundle into the current Web profile
|
|
18
|
+
|
|
19
|
+
The bundle keeps a protected compatibility preset at `$DSH_HOME/.agent-presets/claude`, because DSH Desktop 2.0.4 does not retain third-party preset roots from bundle patches. Its route uses the active profile package source to avoid duplicate client-module Loaders. User-modified preset files are preserved.
|
|
20
|
+
|
|
21
|
+
```sh
|
|
22
|
+
dsh plugin --profile web add "link:$(pwd)"
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Do not start another DSH Web server. This bundle must load in the existing app at `http://127.0.0.1:56454`.
|
|
26
|
+
|
|
27
|
+
## 3. Refresh and smoke test
|
|
28
|
+
|
|
29
|
+
1. Refresh the existing DSH Web page.
|
|
30
|
+
2. Confirm **Claude** appears in the new-session Agent Preset picker.
|
|
31
|
+
3. Run one existing native preset prompt and verify it remains native.
|
|
32
|
+
4. Create a Claude session and send a read-only prompt.
|
|
33
|
+
5. Send one edit prompt; verify DSH displays a permission request. Exercise reject first, then allow once with a harmless temporary file.
|
|
34
|
+
6. Cancel a running prompt and confirm the cancelled session owns no child `claude` process that is still executing cancelled work or left orphaned/unowned.
|
|
35
|
+
7. Refresh the browser and continue the session.
|
|
36
|
+
8. Restart DSH and confirm the next prompt resumes the persisted Claude session.
|
|
37
|
+
|
|
38
|
+
A live prompt can consume the user's Claude subscription. Keep it minimal.
|
|
39
|
+
|
|
40
|
+
## 4. Uninstall
|
|
41
|
+
|
|
42
|
+
Clean up the managed preset while the profile can still execute the package CLI, then remove the plugin:
|
|
43
|
+
|
|
44
|
+
```sh
|
|
45
|
+
dsh plugin --profile web exec dsh-claude remove-preset
|
|
46
|
+
dsh plugin --profile web remove @norman-else/dsh-claude
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
DSH has no plugin uninstall lifecycle hook, so direct package removal can leave the compatibility preset behind. After direct removal, no source checkout is required; run the matching package version:
|
|
50
|
+
|
|
51
|
+
```sh
|
|
52
|
+
pnpm dlx @norman-else/dsh-claude@<version> remove-preset
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Cleanup refuses to delete user-modified preset content.
|
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 dsh-claude contributors
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 dsh-claude contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/cordis.patch.yml
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
# dsh-claude host bundle. The preset stays inside this package as a system
|
|
2
|
-
# preset, so removing the profile dependency removes the complete integration.
|
|
3
|
-
- id: agent-presets
|
|
4
|
-
config:
|
|
5
|
-
default: standard
|
|
6
|
-
roots:
|
|
7
|
-
- path: !!js "process.getBuiltinModule('node:path').join(process.getBuiltinModule('node:path').dirname(process.getBuiltinModule('node:module').createRequire(ctx.baseUrl).resolve('@norman-else/dsh-claude/package.json')), 'preset')"
|
|
8
|
-
trust: system
|
|
9
|
-
|
|
10
|
-
- insert:
|
|
11
|
-
- id: llm-claude
|
|
12
|
-
name: '@norman-else/dsh-claude'
|
|
1
|
+
# dsh-claude host bundle. The preset stays inside this package as a system
|
|
2
|
+
# preset, so removing the profile dependency removes the complete integration.
|
|
3
|
+
- id: agent-presets
|
|
4
|
+
config:
|
|
5
|
+
default: standard
|
|
6
|
+
roots:
|
|
7
|
+
- path: !!js "process.getBuiltinModule('node:path').join(process.getBuiltinModule('node:path').dirname(process.getBuiltinModule('node:module').createRequire(ctx.baseUrl).resolve('@norman-else/dsh-claude/package.json')), 'preset')"
|
|
8
|
+
trust: system
|
|
9
|
+
|
|
10
|
+
- insert:
|
|
11
|
+
- id: llm-claude
|
|
12
|
+
name: '@norman-else/dsh-claude'
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
# Shipped by dsh-claude. Claude Code owns the inner agent loop and tools;
|
|
2
|
-
# this system preset contributes only the request-route override. DSH resolves
|
|
3
|
-
# the bare package specifier from the host profile when mounting system roots.
|
|
4
|
-
- id: claude-code-route
|
|
5
|
-
name: '@norman-else/dsh-claude/preset-route'
|
|
6
|
-
# Entry-local isolate realm: each session's preset mount gets its own
|
|
7
|
-
# claudeCommands service instance (keeps mountPreset's leaked-service check
|
|
8
|
-
# happy and prevents cross-session collisions). The host reads it through
|
|
9
|
-
# dsh-agent-presets' serviceForAgent().
|
|
10
|
-
isolate:
|
|
11
|
-
claudeCommands: true
|
|
1
|
+
# Shipped by dsh-claude. Claude Code owns the inner agent loop and tools;
|
|
2
|
+
# this system preset contributes only the request-route override. DSH resolves
|
|
3
|
+
# the bare package specifier from the host profile when mounting system roots.
|
|
4
|
+
- id: claude-code-route
|
|
5
|
+
name: '@norman-else/dsh-claude/preset-route'
|
|
6
|
+
# Entry-local isolate realm: each session's preset mount gets its own
|
|
7
|
+
# claudeCommands service instance (keeps mountPreset's leaked-service check
|
|
8
|
+
# happy and prevents cross-session collisions). The host reads it through
|
|
9
|
+
# dsh-agent-presets' serviceForAgent().
|
|
10
|
+
isolate:
|
|
11
|
+
claudeCommands: true
|
package/legacy-preset/preset.yml
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Shipped by dsh-claude. Copy this system preset under a new id to customize it.
|
|
2
|
-
name: Claude
|
|
3
|
-
description: Use the local Claude Code as the complete agent runtime inside DSH.
|
|
4
|
-
order: 10
|
|
1
|
+
# Shipped by dsh-claude. Copy this system preset under a new id to customize it.
|
|
2
|
+
name: Claude
|
|
3
|
+
description: Use the local Claude Code as the complete agent runtime inside DSH.
|
|
4
|
+
order: 10
|
package/lib/bin.mjs
CHANGED
|
File without changes
|
package/lib/bin.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.mjs","names":[],"sources":["../src/bin.ts"],"sourcesContent":["#!/usr/bin/env node\
|
|
1
|
+
{"version":3,"file":"bin.mjs","names":[],"sources":["../src/bin.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { access } from 'node:fs/promises'\nimport { constants } from 'node:fs'\nimport { homedir } from 'node:os'\nimport { delimiter, isAbsolute, join } from 'node:path'\nimport { spawnSync } from 'node:child_process'\nimport { scrubbedParentEnv } from '@deepseek-ai/dsh-subprocess'\nimport { parseClaudeVersion } from './executable.ts'\nimport { ensureManagedPreset, removeManagedPreset } from './preset-installer.ts'\n\nfunction option(name: string): string | undefined {\n const index = process.argv.indexOf(name)\n return index < 0 ? undefined : process.argv[index + 1]\n}\n\nasync function executable(configured?: string): Promise<string | undefined> {\n const candidates: string[] = []\n if (configured !== undefined) candidates.push(configured)\n else {\n for (const directory of (process.env.PATH ?? '').split(delimiter)) {\n if (directory.length > 0) candidates.push(join(directory, 'claude'))\n }\n candidates.push(join(homedir(), '.local', 'bin', 'claude'), '/opt/homebrew/bin/claude', '/usr/local/bin/claude')\n }\n for (const candidate of [...new Set(candidates)]) {\n if (!isAbsolute(candidate)) continue\n try {\n await access(candidate, constants.X_OK)\n return candidate\n } catch {\n // Continue to the next documented candidate.\n }\n }\n return undefined\n}\n\nfunction run(executablePath: string, args: string[]) {\n return spawnSync(executablePath, args, {\n encoding: 'utf8',\n env: scrubbedParentEnv(),\n timeout: 15_000,\n windowsHide: true,\n })\n}\n\nasync function doctor(): Promise<number> {\n const configured = option('--executable') ?? process.env.DSH_CLAUDE_CODE_EXECUTABLE\n const path = await executable(configured)\n if (path === undefined) {\n process.stdout.write(`${JSON.stringify({\n executable: { status: 'missing', searched: configured === undefined ? ['claude', '~/.local/bin/claude', '/opt/homebrew/bin/claude', '/usr/local/bin/claude'] : [configured] },\n version: { status: 'not-run' },\n authentication: { status: 'not-run' },\n message: 'Set executablePath to an absolute Claude Code CLI path',\n }, null, 2)}\\n`)\n return 1\n }\n const versionProbe = run(path, ['--version'])\n const version = parseClaudeVersion(`${versionProbe.stdout ?? ''}\\n${versionProbe.stderr ?? ''}`)\n const authProbe = run(path, ['auth', 'status', '--json'])\n let authentication: Record<string, unknown> = { status: 'unknown' }\n if (authProbe.status === 0) {\n try {\n const value = JSON.parse(authProbe.stdout) as Record<string, unknown>\n authentication = {\n status: value.loggedIn === true ? 'signed-in' : 'signed-out',\n ...(typeof value.authMethod === 'string' ? { method: value.authMethod } : {}),\n ...(typeof value.apiProvider === 'string' ? { provider: value.apiProvider } : {}),\n ...(typeof value.subscriptionType === 'string' ? { subscription: value.subscriptionType } : {}),\n }\n } catch {\n authentication = { status: 'unknown', message: 'Authentication status was not valid JSON' }\n }\n }\n process.stdout.write(`${JSON.stringify({\n executable: { status: 'found', path },\n version: version === undefined ? { status: 'error' } : { status: 'ok', value: version },\n authentication,\n handshake: 'not-run',\n }, null, 2)}\\n`)\n return version === undefined ? 1 : 0\n}\n\nasync function main(): Promise<number> {\n const command = process.argv[2] ?? 'doctor'\n if (command === 'doctor') return doctor()\n if (command === 'install-preset') {\n process.stdout.write(`${await ensureManagedPreset()}\\n`)\n return 0\n }\n if (command === 'remove-preset') {\n process.stdout.write(`${await removeManagedPreset()}\\n`)\n return 0\n }\n process.stderr.write(`Usage: dsh-claude [doctor [--executable PATH] | install-preset | remove-preset]\\n`)\n return 2\n}\n\ntry {\n process.exitCode = await main()\n} catch (error) {\n process.stderr.write(`${error instanceof Error ? error.message : String(error)}\\n`)\n process.exitCode = 1\n}\n"],"mappings":"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"}
|
package/lib/client.d.ts
CHANGED
|
@@ -148,6 +148,7 @@ declare const en: {
|
|
|
148
148
|
readonly repositoryProgressDismiss: "Dismiss Worktree progress";
|
|
149
149
|
readonly repositoryProgress_inspecting: "Checking repository and branch";
|
|
150
150
|
readonly repositoryProgress_fetching: "Refreshing remote references";
|
|
151
|
+
readonly repositoryProgress_summarizing: "Naming the branch after the request";
|
|
151
152
|
readonly 'repositoryProgress_creating-worktree': "Creating branch and Worktree";
|
|
152
153
|
readonly 'repositoryProgress_saving-worktree': "Saving Worktree state";
|
|
153
154
|
readonly 'repositoryProgress_switching-branch': "Switching local branch";
|
|
@@ -205,6 +206,9 @@ declare const en: {
|
|
|
205
206
|
readonly diffCommentNext: "Next comment";
|
|
206
207
|
readonly diffCommentPosition: "Comment {index} of {total}";
|
|
207
208
|
readonly diffCommentCounter: "{index}/{total}";
|
|
209
|
+
readonly diffCardExpand: "Show {count} more lines";
|
|
210
|
+
readonly diffCardCollapse: "Show less";
|
|
211
|
+
readonly diffCardFiles: "{count} files";
|
|
208
212
|
readonly diffExpandAll: "Expand all files";
|
|
209
213
|
readonly diffCollapseAll: "Collapse all files";
|
|
210
214
|
readonly diffRestore: "Restore diff panel";
|