@aiwayds/dsh-tui-pi 2.1.0 → 2.2.0
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/README.md +1 -1
- package/README.zh-CN.md +1 -1
- package/lib/agent-manager.d.ts +1 -1
- package/lib/agent-manager.js +3 -2
- package/lib/agent-manager.js.map +1 -1
- package/lib/agent-runtime.d.ts +97 -0
- package/lib/agent-runtime.js +151 -0
- package/lib/agent-runtime.js.map +1 -0
- package/lib/agents.d.ts +8 -2
- package/lib/agents.js +93 -43
- package/lib/agents.js.map +1 -1
- package/lib/model-profiles.d.ts +19 -25
- package/lib/model-profiles.js +13 -31
- package/lib/model-profiles.js.map +1 -1
- package/lib/preset.js +3 -3
- package/lib/preset.js.map +1 -1
- package/lib/profile.d.ts +32 -11
- package/lib/profile.js +27 -36
- package/lib/profile.js.map +1 -1
- package/lib/skills-manager.d.ts +1 -1
- package/lib/skills-manager.js +3 -2
- package/lib/skills-manager.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
pi-style terminal UI for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (dsh) — a plugin suite that turns dsh into a pi-like coding-agent experience: pi-tui look & feel, dsh slash commands, GitHub light/dark themes and a powerline footer.
|
|
6
6
|
|
|
7
|
-
**Requires dsh >= 0.1.2-alpha.4** — the plugin targets the 0.1.2-alpha host line only (the rc line is no longer supported; see [ADR 0002](docs/adr/0002-target-dsh-0.1.2-alpha.
|
|
7
|
+
**Requires dsh >= 0.1.2-alpha.4** — the plugin targets the 0.1.2-alpha host line only (the rc line is no longer supported; see [ADR 0002](docs/adr/0002-target-dsh-0.1.2-alpha.3-single-target.md)).
|
|
8
8
|
|
|
9
9
|
https://github.com/user-attachments/assets/6a7e00bb-1fd0-4bc5-9070-457f1e9fa54d
|
|
10
10
|
|
package/README.zh-CN.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
面向 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)(dsh)的 pi 风格终端 UI——一套把 dsh 变成 pi 式编码代理体验的插件套件:pi-tui 的外观与交互、dsh 斜杠命令、GitHub 明/暗主题和 powerline 状态栏。
|
|
6
6
|
|
|
7
|
-
**要求 dsh >= 0.1.2-alpha.4** —— 本插件只面向 0.1.2-alpha 宿主线(不再支持 rc 线,见 [ADR 0002](docs/adr/0002-target-dsh-0.1.2-alpha.
|
|
7
|
+
**要求 dsh >= 0.1.2-alpha.4** —— 本插件只面向 0.1.2-alpha 宿主线(不再支持 rc 线,见 [ADR 0002](docs/adr/0002-target-dsh-0.1.2-alpha.3-single-target.md))。
|
|
8
8
|
|
|
9
9
|
https://github.com/user-attachments/assets/6a7e00bb-1fd0-4bc5-9070-457f1e9fa54d
|
|
10
10
|
|
package/lib/agent-manager.d.ts
CHANGED
|
@@ -54,7 +54,7 @@ export type AgentParseResult = {
|
|
|
54
54
|
ok: false;
|
|
55
55
|
error: string;
|
|
56
56
|
};
|
|
57
|
-
/** The dsh agents directory (
|
|
57
|
+
/** The dsh agents directory (`$DSH_HOME/agents`, under the dsh home). */
|
|
58
58
|
export declare function agentsDir(): string;
|
|
59
59
|
/**
|
|
60
60
|
* The legacy agents directory from the first shipped layout (`~/dsh/agents`,
|
package/lib/agent-manager.js
CHANGED
|
@@ -26,9 +26,10 @@
|
|
|
26
26
|
import { existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
27
27
|
import { homedir } from 'node:os';
|
|
28
28
|
import { basename, join } from 'node:path';
|
|
29
|
-
|
|
29
|
+
import { dshHome } from "./append-system.js";
|
|
30
|
+
/** The dsh agents directory (`$DSH_HOME/agents`, under the dsh home). */
|
|
30
31
|
export function agentsDir() {
|
|
31
|
-
return join(
|
|
32
|
+
return join(dshHome(), 'agents');
|
|
32
33
|
}
|
|
33
34
|
/**
|
|
34
35
|
* The legacy agents directory from the first shipped layout (`~/dsh/agents`,
|
package/lib/agent-manager.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-manager.js","sourceRoot":"","sources":["../src/agent-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-manager.js","sourceRoot":"","sources":["../src/agent-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Profile-aware agent runtime composition — the single import seam for the
|
|
3
|
+
* dsh-subagent-registry contract (`workspaceProfileName` /
|
|
4
|
+
* `composeAgentRuntime` / `readModelProfilesDoc`, re-exported from the
|
|
5
|
+
* package root).
|
|
6
|
+
*
|
|
7
|
+
* The registry is probed once at module load. A registry build that has not
|
|
8
|
+
* shipped the contract yet (or one that fails to load) degrades to the
|
|
9
|
+
* built-in equivalent computed from this repo's own model-profiles store, so
|
|
10
|
+
* the /agents display and the scoped edit path keep working; once the
|
|
11
|
+
* registry ships the contract the very same call sites use it — no code
|
|
12
|
+
* changes needed.
|
|
13
|
+
*
|
|
14
|
+
* Composition semantics (shared with the registry's composeAgentRuntime,
|
|
15
|
+
* mirrored here so the fallback displays exactly what a spawn resolves):
|
|
16
|
+
* effective = frontmatter baseline ⊕ pinned profile overrides, per field —
|
|
17
|
+
* a recorded NON-EMPTY override wins; an absent/empty recorded value falls
|
|
18
|
+
* back to the baseline (an empty entry is the "recorded as inherit" shape,
|
|
19
|
+
* which in this model means the baseline still applies). `thinking` is
|
|
20
|
+
* whitelisted against the known effort ids, so a hand-edited store can
|
|
21
|
+
* never ship a host-rejected value. No pin, an unknown profile, a missing
|
|
22
|
+
* store or an unlistd agent → the baseline.
|
|
23
|
+
*
|
|
24
|
+
* Edit scoping uses the same store the writes land in: when the workspace is
|
|
25
|
+
* pinned to an existing profile, /agents model/think edits update that
|
|
26
|
+
* profile's per-agent overrides (model-profiles.json, workspace-scoped —
|
|
27
|
+
* the frontmatter baseline is untouched); otherwise they write the agent
|
|
28
|
+
* file's frontmatter, the pre-profile baseline behavior.
|
|
29
|
+
*/
|
|
30
|
+
import { type ModelProfilesDoc } from './model-profiles.ts';
|
|
31
|
+
/** The baseline values an agent file's frontmatter carries. `null` = the key is absent (inherit). */
|
|
32
|
+
export interface AgentRuntimeBase {
|
|
33
|
+
model?: string | null;
|
|
34
|
+
thinking?: string | null;
|
|
35
|
+
}
|
|
36
|
+
/** Composed effective values for a spawned agent. Absent = inherit the default. */
|
|
37
|
+
export interface AgentRuntimeValues {
|
|
38
|
+
model?: string;
|
|
39
|
+
thinking?: string;
|
|
40
|
+
}
|
|
41
|
+
/** Whether the registry shipped the contract (diagnostics / report hook). */
|
|
42
|
+
export declare function registryContractAvailable(): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Pure composition: frontmatter baseline ⊕ pinned profile overrides,
|
|
45
|
+
* resolved against `doc`/`startDir` explicitly — the test surface,
|
|
46
|
+
* semantically identical to the registry composer (per-field override,
|
|
47
|
+
* absent/empty recorded values fall back to the baseline).
|
|
48
|
+
*/
|
|
49
|
+
export declare function composeAgentValuesFromDoc(agentName: string, base: AgentRuntimeBase, doc: ModelProfilesDoc, startDir: string): AgentRuntimeValues;
|
|
50
|
+
/**
|
|
51
|
+
* The values to DISPLAY for one agent: frontmatter baseline ⊕ pinned
|
|
52
|
+
* profile overrides. Uses the registry composer when available, the
|
|
53
|
+
* built-in equivalent otherwise.
|
|
54
|
+
*/
|
|
55
|
+
export declare function composeAgentValues(agentName: string, base: AgentRuntimeBase, opts?: {
|
|
56
|
+
startDir?: string;
|
|
57
|
+
home?: string;
|
|
58
|
+
}): AgentRuntimeValues;
|
|
59
|
+
/** Where an /agents model/think edit lands. */
|
|
60
|
+
export type AgentEditTarget = {
|
|
61
|
+
kind: 'profile';
|
|
62
|
+
name: string;
|
|
63
|
+
} | {
|
|
64
|
+
kind: 'frontmatter';
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* The edit target for model/think edits in this workspace: pinned to an
|
|
68
|
+
* existing profile → that profile's per-agent overrides; no pin (or the
|
|
69
|
+
* pinned profile no longer exists) → the frontmatter baseline.
|
|
70
|
+
*/
|
|
71
|
+
export declare function agentEditTarget(opts?: {
|
|
72
|
+
startDir?: string;
|
|
73
|
+
home?: string;
|
|
74
|
+
}): AgentEditTarget;
|
|
75
|
+
/** One agent model/think edit payload (`null` = clear back to inherit). */
|
|
76
|
+
export interface AgentEditPayload {
|
|
77
|
+
model?: string | null;
|
|
78
|
+
thinking?: string | null;
|
|
79
|
+
}
|
|
80
|
+
export interface AgentEditResult {
|
|
81
|
+
/** Where the edit landed (drives the flash message / scope note). */
|
|
82
|
+
target: AgentEditTarget;
|
|
83
|
+
/** Error message when the write failed. */
|
|
84
|
+
error?: string;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Commit one agent model/thinking edit through the workspace-scoped path —
|
|
88
|
+
* the SINGLE write site (decision + write share one doc read, so the target
|
|
89
|
+
* cannot go stale mid-commit): the pinned profile's per-agent override when
|
|
90
|
+
* the workspace is pinned to an existing profile (model-profiles.json via
|
|
91
|
+
* the existing atomic save path, frontmatter untouched), the agent file's
|
|
92
|
+
* frontmatter otherwise.
|
|
93
|
+
*/
|
|
94
|
+
export declare function commitAgentModelEdit(agentName: string, agentFile: string, edit: AgentEditPayload, opts?: {
|
|
95
|
+
startDir?: string;
|
|
96
|
+
home?: string;
|
|
97
|
+
}): AgentEditResult;
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Profile-aware agent runtime composition — the single import seam for the
|
|
3
|
+
* dsh-subagent-registry contract (`workspaceProfileName` /
|
|
4
|
+
* `composeAgentRuntime` / `readModelProfilesDoc`, re-exported from the
|
|
5
|
+
* package root).
|
|
6
|
+
*
|
|
7
|
+
* The registry is probed once at module load. A registry build that has not
|
|
8
|
+
* shipped the contract yet (or one that fails to load) degrades to the
|
|
9
|
+
* built-in equivalent computed from this repo's own model-profiles store, so
|
|
10
|
+
* the /agents display and the scoped edit path keep working; once the
|
|
11
|
+
* registry ships the contract the very same call sites use it — no code
|
|
12
|
+
* changes needed.
|
|
13
|
+
*
|
|
14
|
+
* Composition semantics (shared with the registry's composeAgentRuntime,
|
|
15
|
+
* mirrored here so the fallback displays exactly what a spawn resolves):
|
|
16
|
+
* effective = frontmatter baseline ⊕ pinned profile overrides, per field —
|
|
17
|
+
* a recorded NON-EMPTY override wins; an absent/empty recorded value falls
|
|
18
|
+
* back to the baseline (an empty entry is the "recorded as inherit" shape,
|
|
19
|
+
* which in this model means the baseline still applies). `thinking` is
|
|
20
|
+
* whitelisted against the known effort ids, so a hand-edited store can
|
|
21
|
+
* never ship a host-rejected value. No pin, an unknown profile, a missing
|
|
22
|
+
* store or an unlistd agent → the baseline.
|
|
23
|
+
*
|
|
24
|
+
* Edit scoping uses the same store the writes land in: when the workspace is
|
|
25
|
+
* pinned to an existing profile, /agents model/think edits update that
|
|
26
|
+
* profile's per-agent overrides (model-profiles.json, workspace-scoped —
|
|
27
|
+
* the frontmatter baseline is untouched); otherwise they write the agent
|
|
28
|
+
* file's frontmatter, the pre-profile baseline behavior.
|
|
29
|
+
*/
|
|
30
|
+
var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
|
|
31
|
+
if (typeof path === "string" && /^\.\.?\//.test(path)) {
|
|
32
|
+
return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
|
|
33
|
+
return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
return path;
|
|
37
|
+
};
|
|
38
|
+
import { dshHome } from "./append-system.js";
|
|
39
|
+
import { loadModelProfiles, modelProfilesPath, resolvePinnedProfile, saveModelProfiles, } from "./model-profiles.js";
|
|
40
|
+
import { updateAgentFrontmatter } from "./agent-manager.js";
|
|
41
|
+
/** Probe the registry once; the result is cached for the process lifetime.
|
|
42
|
+
* The specifier is passed as a variable so TypeScript keeps the registry's
|
|
43
|
+
* type graph OUT of this project (its peer closures may declare conflicting
|
|
44
|
+
* session-event augmentations) — compatibility is checked structurally at
|
|
45
|
+
* runtime instead. */
|
|
46
|
+
async function probeRegistryRuntime() {
|
|
47
|
+
const specifier = '@aiwayds/dsh-subagent-registry';
|
|
48
|
+
try {
|
|
49
|
+
const mod = (await import(__rewriteRelativeImportExtension(specifier)));
|
|
50
|
+
if (typeof mod['composeAgentRuntime'] !== 'function'
|
|
51
|
+
|| typeof mod['workspaceProfileName'] !== 'function'
|
|
52
|
+
|| typeof mod['readModelProfilesDoc'] !== 'function')
|
|
53
|
+
return null;
|
|
54
|
+
return mod;
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
const registryRuntime = await probeRegistryRuntime();
|
|
61
|
+
/** Whether the registry shipped the contract (diagnostics / report hook). */
|
|
62
|
+
export function registryContractAvailable() {
|
|
63
|
+
return registryRuntime !== null;
|
|
64
|
+
}
|
|
65
|
+
/** The reasoning-effort ids the host accepts (mirrors the registry's THINKING_LEVELS). */
|
|
66
|
+
const THINKING_LEVELS = ['off', 'low', 'medium', 'high', 'max'];
|
|
67
|
+
/**
|
|
68
|
+
* Pure composition: frontmatter baseline ⊕ pinned profile overrides,
|
|
69
|
+
* resolved against `doc`/`startDir` explicitly — the test surface,
|
|
70
|
+
* semantically identical to the registry composer (per-field override,
|
|
71
|
+
* absent/empty recorded values fall back to the baseline).
|
|
72
|
+
*/
|
|
73
|
+
export function composeAgentValuesFromDoc(agentName, base, doc, startDir) {
|
|
74
|
+
const effective = {
|
|
75
|
+
...(typeof base.model === 'string' && base.model !== '' ? { model: base.model } : {}),
|
|
76
|
+
...(typeof base.thinking === 'string' && THINKING_LEVELS.includes(base.thinking) ? { thinking: base.thinking } : {}),
|
|
77
|
+
};
|
|
78
|
+
const profile = resolvePinnedProfile(doc, startDir);
|
|
79
|
+
const entry = profile?.agents[agentName];
|
|
80
|
+
if (entry === undefined)
|
|
81
|
+
return effective;
|
|
82
|
+
const model = entry.model;
|
|
83
|
+
if (model !== undefined && model !== '')
|
|
84
|
+
effective.model = model;
|
|
85
|
+
const thinking = entry.thinking;
|
|
86
|
+
if (thinking !== undefined && THINKING_LEVELS.includes(thinking))
|
|
87
|
+
effective.thinking = thinking;
|
|
88
|
+
return effective;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* The values to DISPLAY for one agent: frontmatter baseline ⊕ pinned
|
|
92
|
+
* profile overrides. Uses the registry composer when available, the
|
|
93
|
+
* built-in equivalent otherwise.
|
|
94
|
+
*/
|
|
95
|
+
export function composeAgentValues(agentName, base, opts = {}) {
|
|
96
|
+
const startDir = opts.startDir ?? process.cwd();
|
|
97
|
+
if (registryRuntime !== null) {
|
|
98
|
+
return registryRuntime.composeAgentRuntime(agentName, base, { startDir });
|
|
99
|
+
}
|
|
100
|
+
const doc = loadModelProfiles(modelProfilesPath(opts.home ?? dshHome()));
|
|
101
|
+
return composeAgentValuesFromDoc(agentName, base, doc, startDir);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* The edit target for model/think edits in this workspace: pinned to an
|
|
105
|
+
* existing profile → that profile's per-agent overrides; no pin (or the
|
|
106
|
+
* pinned profile no longer exists) → the frontmatter baseline.
|
|
107
|
+
*/
|
|
108
|
+
export function agentEditTarget(opts = {}) {
|
|
109
|
+
const doc = loadModelProfiles(modelProfilesPath(opts.home ?? dshHome()));
|
|
110
|
+
const profile = resolvePinnedProfile(doc, opts.startDir ?? process.cwd());
|
|
111
|
+
return profile === undefined ? { kind: 'frontmatter' } : { kind: 'profile', name: profile.name };
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Commit one agent model/thinking edit through the workspace-scoped path —
|
|
115
|
+
* the SINGLE write site (decision + write share one doc read, so the target
|
|
116
|
+
* cannot go stale mid-commit): the pinned profile's per-agent override when
|
|
117
|
+
* the workspace is pinned to an existing profile (model-profiles.json via
|
|
118
|
+
* the existing atomic save path, frontmatter untouched), the agent file's
|
|
119
|
+
* frontmatter otherwise.
|
|
120
|
+
*/
|
|
121
|
+
export function commitAgentModelEdit(agentName, agentFile, edit, opts = {}) {
|
|
122
|
+
const path = modelProfilesPath(opts.home ?? dshHome());
|
|
123
|
+
const doc = loadModelProfiles(path);
|
|
124
|
+
const profile = resolvePinnedProfile(doc, opts.startDir ?? process.cwd());
|
|
125
|
+
if (profile !== undefined) {
|
|
126
|
+
// Merge semantics: a thinking-only edit keeps the recorded model (and
|
|
127
|
+
// vice versa); a null value clears that one key back to inherit.
|
|
128
|
+
const entry = { ...(profile.agents[agentName] ?? {}) };
|
|
129
|
+
if (edit.model !== undefined) {
|
|
130
|
+
if (edit.model === null)
|
|
131
|
+
delete entry.model;
|
|
132
|
+
else
|
|
133
|
+
entry.model = edit.model;
|
|
134
|
+
}
|
|
135
|
+
if (edit.thinking !== undefined) {
|
|
136
|
+
if (edit.thinking === null)
|
|
137
|
+
delete entry.thinking;
|
|
138
|
+
else
|
|
139
|
+
entry.thinking = edit.thinking;
|
|
140
|
+
}
|
|
141
|
+
profile.agents[agentName] = entry;
|
|
142
|
+
const error = saveModelProfiles(path, doc);
|
|
143
|
+
return { target: { kind: 'profile', name: profile.name }, ...(error !== undefined ? { error } : {}) };
|
|
144
|
+
}
|
|
145
|
+
const error = updateAgentFrontmatter(agentFile, {
|
|
146
|
+
model: edit.model ?? null,
|
|
147
|
+
thinking: edit.thinking ?? null,
|
|
148
|
+
});
|
|
149
|
+
return { target: { kind: 'frontmatter' }, ...(error !== undefined ? { error } : {}) };
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=agent-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-runtime.js","sourceRoot":"","sources":["../src/agent-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;;;;;;;;;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,GAGlB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAyB3D;;;;uBAIuB;AACvB,KAAK,UAAU,oBAAoB;IACjC,MAAM,SAAS,GAAG,gCAAgC,CAAA;IAClD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,kCAAC,SAAS,EAAC,CAAuC,CAAA;QAC3E,IACE,OAAO,GAAG,CAAC,qBAAqB,CAAC,KAAK,UAAU;eAC7C,OAAO,GAAG,CAAC,sBAAsB,CAAC,KAAK,UAAU;eACjD,OAAO,GAAG,CAAC,sBAAsB,CAAC,KAAK,UAAU;YACpD,OAAO,IAAI,CAAA;QACb,OAAO,GAAiC,CAAA;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,MAAM,eAAe,GAAG,MAAM,oBAAoB,EAAE,CAAA;AAEpD,6EAA6E;AAC7E,MAAM,UAAU,yBAAyB;IACvC,OAAO,eAAe,KAAK,IAAI,CAAA;AACjC,CAAC;AAED,0FAA0F;AAC1F,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAU,CAAA;AAExE;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,SAAiB,EACjB,IAAsB,EACtB,GAAqB,EACrB,QAAgB;IAEhB,MAAM,SAAS,GAAuB;QACpC,GAAG,CAAC,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,GAAG,CAAC,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAK,eAAqC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5I,CAAA;IACD,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;IACnD,MAAM,KAAK,GAAG,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;IACxC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACzC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;IACzB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE;QAAE,SAAS,CAAC,KAAK,GAAG,KAAK,CAAA;IAChE,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;IAC/B,IAAI,QAAQ,KAAK,SAAS,IAAK,eAAqC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAA;IACtH,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,SAAiB,EACjB,IAAsB,EACtB,OAA6C,EAAE;IAE/C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;IAC/C,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;QAC7B,OAAO,eAAe,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;IAC3E,CAAC;IACD,MAAM,GAAG,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC,CAAC,CAAA;IACxE,OAAO,yBAAyB,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAA;AAClE,CAAC;AAOD;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,OAA6C,EAAE;IAC7E,MAAM,GAAG,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC,CAAC,CAAA;IACxE,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IACzE,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAA;AAClG,CAAC;AAeD;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAClC,SAAiB,EACjB,SAAiB,EACjB,IAAsB,EACtB,OAA6C,EAAE;IAE/C,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC,CAAA;IACtD,MAAM,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACnC,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IACzE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,sEAAsE;QACtE,iEAAiE;QACjE,MAAM,KAAK,GAAsB,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAA;QACzE,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAC,KAAK,CAAA;;gBACtC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QAC/B,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAC,QAAQ,CAAA;;gBAC5C,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QACrC,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAA;QACjC,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAC1C,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;IACvG,CAAC;IACD,MAAM,KAAK,GAAG,sBAAsB,CAAC,SAAS,EAAE;QAC9C,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;QACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;KAChC,CAAC,CAAA;IACF,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;AACvF,CAAC"}
|
package/lib/agents.d.ts
CHANGED
|
@@ -16,8 +16,14 @@
|
|
|
16
16
|
* `dsh-tui` settings namespace. Also the initial view when no agent
|
|
17
17
|
* files exist yet, so the caps stay configurable before any agent.
|
|
18
18
|
*
|
|
19
|
-
* Edits go
|
|
20
|
-
*
|
|
19
|
+
* Edits go through the workspace-scoped path: when this directory tree is
|
|
20
|
+
* pinned to an existing profile, model/think edits land in that profile's
|
|
21
|
+
* per-agent overrides ($DSH_HOME/model-profiles.json) and the frontmatter
|
|
22
|
+
* baseline is untouched; otherwise they write the agent file's frontmatter
|
|
23
|
+
* as before. The table and the fields window always show the COMPOSED
|
|
24
|
+
* values (frontmatter baseline ⊕ pinned-profile overrides — what a spawned
|
|
25
|
+
* agent actually gets), so an edit never looks like a no-op.
|
|
26
|
+
* `deep` stays a frontmatter-only key (profiles have no deep override).
|
|
21
27
|
*/
|
|
22
28
|
import type { Context } from '@deepseek-ai/cordis';
|
|
23
29
|
import { type TUI } from '@earendil-works/pi-tui';
|
package/lib/agents.js
CHANGED
|
@@ -16,11 +16,18 @@
|
|
|
16
16
|
* `dsh-tui` settings namespace. Also the initial view when no agent
|
|
17
17
|
* files exist yet, so the caps stay configurable before any agent.
|
|
18
18
|
*
|
|
19
|
-
* Edits go
|
|
20
|
-
*
|
|
19
|
+
* Edits go through the workspace-scoped path: when this directory tree is
|
|
20
|
+
* pinned to an existing profile, model/think edits land in that profile's
|
|
21
|
+
* per-agent overrides ($DSH_HOME/model-profiles.json) and the frontmatter
|
|
22
|
+
* baseline is untouched; otherwise they write the agent file's frontmatter
|
|
23
|
+
* as before. The table and the fields window always show the COMPOSED
|
|
24
|
+
* values (frontmatter baseline ⊕ pinned-profile overrides — what a spawned
|
|
25
|
+
* agent actually gets), so an edit never looks like a no-op.
|
|
26
|
+
* `deep` stays a frontmatter-only key (profiles have no deep override).
|
|
21
27
|
*/
|
|
22
28
|
import { getKeybindings, } from '@earendil-works/pi-tui';
|
|
23
29
|
import { agentsDir, listAgentFiles, migrateLegacyAgentsDir, seedFromZcode, updateAgentFrontmatter, zcodeAgentsDir, } from "./agent-manager.js";
|
|
30
|
+
import { agentEditTarget, commitAgentModelEdit, composeAgentValues, } from "./agent-runtime.js";
|
|
24
31
|
import { EditField } from "./settings.js";
|
|
25
32
|
import { readSubagentLimits, writeSubagentLimit } from "./theme-settings.js";
|
|
26
33
|
import { autoColumns, FieldPanel, PanelHost, TablePanel, ViewerPanel, } from "./panels.js";
|
|
@@ -77,24 +84,28 @@ function parseLimitInput(text) {
|
|
|
77
84
|
return { kind: 'value', value: Number(trimmed) };
|
|
78
85
|
}
|
|
79
86
|
/** The four agent-table columns under the auto layout: NAME/MODEL/DEEP fit
|
|
80
|
-
* the loaded agents (capped), DESCRIPTION runs to the right edge.
|
|
81
|
-
|
|
87
|
+
* the loaded agents (capped), DESCRIPTION runs to the right edge. The
|
|
88
|
+
* model cell shows the COMPOSED value (frontmatter ⊕ pinned profile). */
|
|
89
|
+
function agentColumns(agents, cell) {
|
|
82
90
|
return autoColumns([
|
|
83
91
|
{ key: 'name', title: 'name', cap: 16 },
|
|
84
92
|
{ key: 'model', title: 'model', cap: 30 },
|
|
85
93
|
{ key: 'deep', title: 'deep', align: 'right' },
|
|
86
94
|
{ key: 'description', title: 'description' },
|
|
87
|
-
], agents,
|
|
95
|
+
], agents, cell);
|
|
88
96
|
}
|
|
89
|
-
/** Cell text for one agent table row
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
97
|
+
/** Cell text for one agent table row, model column COMPOSED (baseline ⊕
|
|
98
|
+
* pinned-profile overrides — what a spawned agent actually gets). */
|
|
99
|
+
function agentCellFor(effective) {
|
|
100
|
+
return (agent, column) => {
|
|
101
|
+
const meta = agent.meta;
|
|
102
|
+
switch (column.key) {
|
|
103
|
+
case 'name': return meta.displayName ?? meta.name;
|
|
104
|
+
case 'model': return effective.get(meta.name)?.model ?? '(inherit)';
|
|
105
|
+
case 'deep': return String(meta.deep);
|
|
106
|
+
default: return meta.description ?? '';
|
|
107
|
+
}
|
|
108
|
+
};
|
|
98
109
|
}
|
|
99
110
|
/** The colored-dot title line of the fields window. */
|
|
100
111
|
function agentTitle(theme, meta) {
|
|
@@ -192,6 +203,24 @@ export async function openAgentManager(ctx, tui, theme, restoreFocus, preselect)
|
|
|
192
203
|
migrateLegacyAgentsDir(dir);
|
|
193
204
|
const seed = seedFromZcode(dir);
|
|
194
205
|
const { agents, broken } = listAgentFiles(dir);
|
|
206
|
+
const cwd = process.cwd();
|
|
207
|
+
/** Where model/think edits land in this workspace (decided at open; the
|
|
208
|
+
* commit rechecks against the same store, so the two cannot diverge). */
|
|
209
|
+
const editTarget = agentEditTarget({ startDir: cwd });
|
|
210
|
+
/** Composed runtime value per agent (baseline ⊕ pinned profile), resolved
|
|
211
|
+
* on open and after each edit — never inside a render callback (iron
|
|
212
|
+
* rule 1: no I/O in render). */
|
|
213
|
+
const effective = new Map();
|
|
214
|
+
const refreshEffective = () => {
|
|
215
|
+
effective.clear();
|
|
216
|
+
for (const agent of agents) {
|
|
217
|
+
effective.set(agent.meta.name, composeAgentValues(agent.meta.name, {
|
|
218
|
+
model: agent.meta.model ?? null,
|
|
219
|
+
thinking: agent.meta.thinking ?? null,
|
|
220
|
+
}, { startDir: cwd }));
|
|
221
|
+
}
|
|
222
|
+
};
|
|
223
|
+
refreshEffective();
|
|
195
224
|
const changed = [];
|
|
196
225
|
let detailStatus;
|
|
197
226
|
let limitsStatus;
|
|
@@ -213,9 +242,9 @@ export async function openAgentManager(ctx, tui, theme, restoreFocus, preselect)
|
|
|
213
242
|
pendingPreselect = undefined;
|
|
214
243
|
const table = new TablePanel(theme, {
|
|
215
244
|
title: '● Agents',
|
|
216
|
-
columns: agentColumns(agents),
|
|
245
|
+
columns: agentColumns(agents, (agent, key) => agentCellFor(effective)(agent, { key })),
|
|
217
246
|
rows: agents,
|
|
218
|
-
renderCell:
|
|
247
|
+
renderCell: agentCellFor(effective),
|
|
219
248
|
preselect: preselectIndex !== undefined && preselectIndex >= 0 ? preselectIndex : undefined,
|
|
220
249
|
footer: '↑↓ navigate · Enter open · Esc back · l limits',
|
|
221
250
|
// Defensive: an empty table (never shown, but guards the round-trip)
|
|
@@ -242,10 +271,14 @@ export async function openAgentManager(ctx, tui, theme, restoreFocus, preselect)
|
|
|
242
271
|
};
|
|
243
272
|
const showFields = (agent) => {
|
|
244
273
|
const meta = agent.meta;
|
|
274
|
+
const eff = effective.get(meta.name);
|
|
245
275
|
const content = (meta.description ?? '(no description)').split('\n');
|
|
276
|
+
content.push(editTarget.kind === 'profile'
|
|
277
|
+
? `model/think edits apply to profile "${editTarget.name}" (workspace-scoped — the frontmatter baseline stays untouched)`
|
|
278
|
+
: 'no workspace profile pin — edits write the frontmatter baseline (global)');
|
|
246
279
|
const fields = [
|
|
247
|
-
{ key: 'model', value:
|
|
248
|
-
{ key: 'thinking', value:
|
|
280
|
+
{ key: 'model', value: eff?.model ?? '(inherit — default model)', editable: true },
|
|
281
|
+
{ key: 'thinking', value: eff?.thinking ?? '(inherit)', editable: true },
|
|
249
282
|
{ key: 'deep', value: String(meta.deep), editable: true },
|
|
250
283
|
];
|
|
251
284
|
const view = new FieldPanel(theme, {
|
|
@@ -272,37 +305,44 @@ export async function openAgentManager(ctx, tui, theme, restoreFocus, preselect)
|
|
|
272
305
|
});
|
|
273
306
|
fieldsHandle = host.open(view);
|
|
274
307
|
};
|
|
275
|
-
/**
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
changed.push(agent.meta.name);
|
|
283
|
-
detailStatus = message;
|
|
284
|
-
}
|
|
285
|
-
showFields(agent);
|
|
308
|
+
/** The agent meta as the user sees it: composed values feed the picker's
|
|
309
|
+
* preselect (a profile override is what the fields window shows). */
|
|
310
|
+
const effectiveMeta = (agent) => {
|
|
311
|
+
const eff = effective.get(agent.meta.name);
|
|
312
|
+
return eff === undefined
|
|
313
|
+
? agent.meta
|
|
314
|
+
: { ...agent.meta, model: eff.model, thinking: eff.thinking };
|
|
286
315
|
};
|
|
287
316
|
const changeModel = async (agent) => {
|
|
288
|
-
const picked = await pickAgentModel(ctx, tui, theme, agent
|
|
317
|
+
const picked = await pickAgentModel(ctx, tui, theme, effectiveMeta(agent), host);
|
|
289
318
|
if (picked === undefined) {
|
|
290
319
|
showFields(agent);
|
|
291
320
|
return;
|
|
292
321
|
}
|
|
293
|
-
const
|
|
322
|
+
const result = commitAgentModelEdit(agent.meta.name, agent.path, {
|
|
294
323
|
model: picked.model,
|
|
295
324
|
thinking: picked.thinking,
|
|
296
|
-
});
|
|
297
|
-
if (error
|
|
325
|
+
}, { startDir: cwd });
|
|
326
|
+
if (result.error !== undefined) {
|
|
327
|
+
detailStatus = `✘ ${result.error}`;
|
|
328
|
+
showFields(agent);
|
|
329
|
+
return;
|
|
330
|
+
}
|
|
331
|
+
if (result.target.kind === 'frontmatter') {
|
|
298
332
|
agent.meta.model = picked.model;
|
|
299
333
|
agent.meta.thinking = picked.thinking ?? undefined;
|
|
300
334
|
}
|
|
335
|
+
refreshEffective();
|
|
336
|
+
if (!changed.includes(agent.meta.name))
|
|
337
|
+
changed.push(agent.meta.name);
|
|
301
338
|
const thinkText = picked.thinking !== null ? ` · think ${picked.thinking}` : '';
|
|
302
|
-
|
|
339
|
+
const scopeNote = result.target.kind === 'profile' ? ` (profile "${result.target.name}")` : '';
|
|
340
|
+
detailStatus = `saved ${agent.meta.name} → ${picked.model}${thinkText}${scopeNote}`;
|
|
341
|
+
showFields(agent);
|
|
303
342
|
};
|
|
304
343
|
const changeThinking = async (agent) => {
|
|
305
|
-
|
|
344
|
+
const model = effective.get(agent.meta.name)?.model;
|
|
345
|
+
if (model === undefined) {
|
|
306
346
|
detailStatus = '✘ no model set — pick a model first (m)';
|
|
307
347
|
showFields(agent);
|
|
308
348
|
return;
|
|
@@ -313,35 +353,45 @@ export async function openAgentManager(ctx, tui, theme, restoreFocus, preselect)
|
|
|
313
353
|
showFields(agent);
|
|
314
354
|
return;
|
|
315
355
|
}
|
|
316
|
-
const slash =
|
|
356
|
+
const slash = model.indexOf('/');
|
|
317
357
|
if (slash <= 0) {
|
|
318
|
-
detailStatus = `✘ cannot resolve think levels for ${
|
|
358
|
+
detailStatus = `✘ cannot resolve think levels for ${model}`;
|
|
319
359
|
showFields(agent);
|
|
320
360
|
return;
|
|
321
361
|
}
|
|
322
362
|
let efforts;
|
|
323
363
|
try {
|
|
324
|
-
efforts = (await llm.resolveModelInfo(
|
|
364
|
+
efforts = (await llm.resolveModelInfo(model.slice(0, slash), model.slice(slash + 1))).reasoning?.efforts;
|
|
325
365
|
}
|
|
326
366
|
catch {
|
|
327
367
|
efforts = undefined;
|
|
328
368
|
}
|
|
329
369
|
if (efforts === undefined || efforts.length === 0) {
|
|
330
|
-
detailStatus = `✘ ${
|
|
370
|
+
detailStatus = `✘ ${model} exposes no think levels`;
|
|
331
371
|
showFields(agent);
|
|
332
372
|
return;
|
|
333
373
|
}
|
|
334
|
-
const currentEffort = agent.meta.thinking;
|
|
374
|
+
const currentEffort = effective.get(agent.meta.name)?.thinking;
|
|
335
375
|
const chosen = await openEffortPicker(tui, theme, efforts, currentEffort, () => { }, () => fieldsHandle?.hide());
|
|
336
376
|
if (chosen === undefined) {
|
|
337
377
|
showFields(agent);
|
|
338
378
|
return;
|
|
339
379
|
}
|
|
340
380
|
const thinking = chosen.effort === 'default' ? null : chosen.effort;
|
|
341
|
-
const
|
|
342
|
-
if (error
|
|
381
|
+
const result = commitAgentModelEdit(agent.meta.name, agent.path, { thinking }, { startDir: cwd });
|
|
382
|
+
if (result.error !== undefined) {
|
|
383
|
+
detailStatus = `✘ ${result.error}`;
|
|
384
|
+
showFields(agent);
|
|
385
|
+
return;
|
|
386
|
+
}
|
|
387
|
+
if (result.target.kind === 'frontmatter')
|
|
343
388
|
agent.meta.thinking = thinking ?? undefined;
|
|
344
|
-
|
|
389
|
+
refreshEffective();
|
|
390
|
+
if (!changed.includes(agent.meta.name))
|
|
391
|
+
changed.push(agent.meta.name);
|
|
392
|
+
const scopeNote = result.target.kind === 'profile' ? ` (profile "${result.target.name}")` : '';
|
|
393
|
+
detailStatus = `saved ${agent.meta.name} → think ${thinking ?? 'inherit'}${scopeNote}`;
|
|
394
|
+
showFields(agent);
|
|
345
395
|
};
|
|
346
396
|
const showDeepEditor = (agent) => {
|
|
347
397
|
let committed = false;
|