@aiwayds/dsh-tui-pi 2.8.0 → 2.8.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/lib/preset.d.ts +25 -6
- package/lib/preset.js +93 -20
- package/lib/preset.js.map +1 -1
- package/package.json +1 -1
package/lib/preset.d.ts
CHANGED
|
@@ -39,16 +39,35 @@ export declare function __setPresetRootOverride(roots: PresetRoot[] | undefined)
|
|
|
39
39
|
* (alpha.3: shipped presets are bundled inside the `@deepseek-ai/dsh-agent-presets`
|
|
40
40
|
* package; locally authored presets live under the Harness home):
|
|
41
41
|
* 1. shipped root: the `presets/` dir inside the `@deepseek-ai/dsh-agent-presets`
|
|
42
|
-
* package
|
|
42
|
+
* package, located dynamically (see below)
|
|
43
43
|
* 2. user root: `~/.dsh/.agent-presets/`
|
|
44
|
-
* The shipped root is located by probing the known install layouts; the user
|
|
45
|
-
* root is the conventional `~/.dsh/.agent-presets/`.
|
|
46
44
|
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
45
|
+
* The shipped root must track the RUNNING HOST's copy of the package — the
|
|
46
|
+
* `/preset` switch sends the preset id to the host, which composes sessions
|
|
47
|
+
* from its own install, so a roster listing presets the host cannot see is
|
|
48
|
+
* worse than an empty one. Three strategies, first hit wins per id:
|
|
49
|
+
* a. walk up from the running dsh entry script (`process.argv[1]`, real
|
|
50
|
+
* path'd past the bin shim) probing `<dir>/node_modules/…` — the
|
|
51
|
+
* presets ship nested inside the dsh host package, so this finds the
|
|
52
|
+
* host's own copy at ANY install prefix (homebrew, nvm, a custom npm
|
|
53
|
+
* prefix, pnpm global); issue #3 shipped presets went missing on
|
|
54
|
+
* installs outside the probed prefixes
|
|
55
|
+
* b. resolve through this plugin's own module closure — covers monorepo
|
|
56
|
+
* dev runs and hoisted layouts where the package is reachable from the
|
|
57
|
+
* plugin even though the entry walk missed
|
|
58
|
+
* c. the known global prefixes as a static last-resort fallback
|
|
59
|
+
* The user root is the conventional `~/.dsh/.agent-presets/`.
|
|
60
|
+
*
|
|
61
|
+
* Nonexistent roots scan to an empty roster, so every candidate is probed.
|
|
50
62
|
*/
|
|
51
63
|
export declare function resolvePresetRoots(): PresetRoot[];
|
|
64
|
+
/**
|
|
65
|
+
* Walk up from `startDir` probing `<dir>/node_modules/@deepseek-ai/dsh-agent-presets/presets`.
|
|
66
|
+
* Exposed (with an injectable probe) for hermetic tests of the walk itself;
|
|
67
|
+
* `shippedRootsFromEntry` is the runtime wrapper that starts the walk from
|
|
68
|
+
* the running dsh entry script.
|
|
69
|
+
*/
|
|
70
|
+
export declare function shippedRootsFromEntryDir(startDir: string, probe?: (path: string) => boolean): string[];
|
|
52
71
|
/**
|
|
53
72
|
* Fetch the preset roster by scanning the filesystem roots. First-root-wins
|
|
54
73
|
* per id (shipped root before user root). Returns an empty array when no
|
package/lib/preset.js
CHANGED
|
@@ -12,8 +12,10 @@
|
|
|
12
12
|
* The roster is O(1) to read (an in-memory array). The module is pure except
|
|
13
13
|
* for the async `fetchPresetRoster` which scans the filesystem.
|
|
14
14
|
*/
|
|
15
|
+
import { existsSync, realpathSync } from 'node:fs';
|
|
15
16
|
import { access, readdir, readFile } from 'node:fs/promises';
|
|
16
|
-
import {
|
|
17
|
+
import { createRequire } from 'node:module';
|
|
18
|
+
import { dirname, join, resolve } from 'node:path';
|
|
17
19
|
import { dshHome } from "./append-system.js";
|
|
18
20
|
/** Test seam: replace the scanned roots for hermetic roster tests. */
|
|
19
21
|
let presetRootOverride;
|
|
@@ -25,35 +27,106 @@ export function __setPresetRootOverride(roots) {
|
|
|
25
27
|
* (alpha.3: shipped presets are bundled inside the `@deepseek-ai/dsh-agent-presets`
|
|
26
28
|
* package; locally authored presets live under the Harness home):
|
|
27
29
|
* 1. shipped root: the `presets/` dir inside the `@deepseek-ai/dsh-agent-presets`
|
|
28
|
-
* package
|
|
30
|
+
* package, located dynamically (see below)
|
|
29
31
|
* 2. user root: `~/.dsh/.agent-presets/`
|
|
30
|
-
* The shipped root is located by probing the known install layouts; the user
|
|
31
|
-
* root is the conventional `~/.dsh/.agent-presets/`.
|
|
32
32
|
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
33
|
+
* The shipped root must track the RUNNING HOST's copy of the package — the
|
|
34
|
+
* `/preset` switch sends the preset id to the host, which composes sessions
|
|
35
|
+
* from its own install, so a roster listing presets the host cannot see is
|
|
36
|
+
* worse than an empty one. Three strategies, first hit wins per id:
|
|
37
|
+
* a. walk up from the running dsh entry script (`process.argv[1]`, real
|
|
38
|
+
* path'd past the bin shim) probing `<dir>/node_modules/…` — the
|
|
39
|
+
* presets ship nested inside the dsh host package, so this finds the
|
|
40
|
+
* host's own copy at ANY install prefix (homebrew, nvm, a custom npm
|
|
41
|
+
* prefix, pnpm global); issue #3 shipped presets went missing on
|
|
42
|
+
* installs outside the probed prefixes
|
|
43
|
+
* b. resolve through this plugin's own module closure — covers monorepo
|
|
44
|
+
* dev runs and hoisted layouts where the package is reachable from the
|
|
45
|
+
* plugin even though the entry walk missed
|
|
46
|
+
* c. the known global prefixes as a static last-resort fallback
|
|
47
|
+
* The user root is the conventional `~/.dsh/.agent-presets/`.
|
|
48
|
+
*
|
|
49
|
+
* Nonexistent roots scan to an empty roster, so every candidate is probed.
|
|
36
50
|
*/
|
|
37
51
|
export function resolvePresetRoots() {
|
|
38
52
|
const roots = [];
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
'
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
53
|
+
const seen = new Set();
|
|
54
|
+
const pushShipped = (path) => {
|
|
55
|
+
if (seen.has(path))
|
|
56
|
+
return;
|
|
57
|
+
seen.add(path);
|
|
58
|
+
roots.push({ path, trust: 'system' });
|
|
59
|
+
};
|
|
60
|
+
for (const path of shippedRootsFromEntry())
|
|
61
|
+
pushShipped(path);
|
|
62
|
+
for (const path of shippedRootsFromClosure())
|
|
63
|
+
pushShipped(path);
|
|
64
|
+
for (const path of SHIPPED_FALLBACK_PREFIXES)
|
|
65
|
+
pushShipped(path);
|
|
52
66
|
// User root: $DSH_HOME/.agent-presets/
|
|
53
67
|
const userRoot = resolve(join(dshHome(), '.agent-presets'));
|
|
54
68
|
roots.push({ path: userRoot, trust: 'user' });
|
|
55
69
|
return roots;
|
|
56
70
|
}
|
|
71
|
+
/** The npm package that carries the shipped presets. */
|
|
72
|
+
const SHIPPED_PACKAGE = '@deepseek-ai/dsh-agent-presets';
|
|
73
|
+
/**
|
|
74
|
+
* The known global-prefix layouts, kept as the static last-resort fallback
|
|
75
|
+
* for the dynamic probes above (e.g. an embedded host without `argv[1]`).
|
|
76
|
+
*/
|
|
77
|
+
const SHIPPED_FALLBACK_PREFIXES = [
|
|
78
|
+
'/opt/homebrew/lib/node_modules/@deepseek-ai/dsh/node_modules/@deepseek-ai/dsh-agent-presets/presets',
|
|
79
|
+
'/usr/local/lib/node_modules/@deepseek-ai/dsh/node_modules/@deepseek-ai/dsh-agent-presets/presets',
|
|
80
|
+
'/opt/homebrew/lib/node_modules/@deepseek-ai/dsh-agent-presets/presets',
|
|
81
|
+
'/usr/local/lib/node_modules/@deepseek-ai/dsh-agent-presets/presets',
|
|
82
|
+
];
|
|
83
|
+
/**
|
|
84
|
+
* Walk up from `startDir` probing `<dir>/node_modules/@deepseek-ai/dsh-agent-presets/presets`.
|
|
85
|
+
* Exposed (with an injectable probe) for hermetic tests of the walk itself;
|
|
86
|
+
* `shippedRootsFromEntry` is the runtime wrapper that starts the walk from
|
|
87
|
+
* the running dsh entry script.
|
|
88
|
+
*/
|
|
89
|
+
export function shippedRootsFromEntryDir(startDir, probe = existsSync) {
|
|
90
|
+
const roots = [];
|
|
91
|
+
let dir = startDir;
|
|
92
|
+
for (;;) {
|
|
93
|
+
const candidate = join(dir, 'node_modules', SHIPPED_PACKAGE, 'presets');
|
|
94
|
+
if (probe(candidate))
|
|
95
|
+
roots.push(candidate);
|
|
96
|
+
const parent = dirname(dir);
|
|
97
|
+
if (parent === dir)
|
|
98
|
+
return roots;
|
|
99
|
+
dir = parent;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/** Start the entry walk from `process.argv[1]`, real path'd past bin shims. */
|
|
103
|
+
function shippedRootsFromEntry() {
|
|
104
|
+
const entry = process.argv[1];
|
|
105
|
+
if (entry === undefined || entry === '')
|
|
106
|
+
return [];
|
|
107
|
+
let start;
|
|
108
|
+
try {
|
|
109
|
+
start = dirname(realpathSync(entry));
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
return [];
|
|
113
|
+
}
|
|
114
|
+
return shippedRootsFromEntryDir(start);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Resolve the shipped package through this plugin's own module closure (the
|
|
118
|
+
* same `createRequire(import.meta.url)` idiom the host-floor guard uses, so
|
|
119
|
+
* it behaves identically under the profile loader).
|
|
120
|
+
*/
|
|
121
|
+
function shippedRootsFromClosure() {
|
|
122
|
+
try {
|
|
123
|
+
const req = createRequire(import.meta.url);
|
|
124
|
+
return [join(dirname(req.resolve(join(SHIPPED_PACKAGE, 'package.json'))), 'presets')];
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
return []; // not reachable from the plugin — the other strategies cover it
|
|
128
|
+
}
|
|
129
|
+
}
|
|
57
130
|
/**
|
|
58
131
|
* English display names for the shipped presets, keyed by preset id. Upstream
|
|
59
132
|
* publishes display metadata in Chinese only (e.g. `标准模式`) with no i18n
|
package/lib/preset.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preset.js","sourceRoot":"","sources":["../src/preset.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"preset.js","sourceRoot":"","sources":["../src/preset.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aiwayds/dsh-tui-pi",
|
|
3
|
-
"version": "2.8.
|
|
3
|
+
"version": "2.8.1",
|
|
4
4
|
"description": "A fully-featured pi-style terminal UI for DeepSeek Harness (dsh) — history look-back & fork-at-turn, guided preset switching, live subagent steering, model profiles & themes",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|