dsh-advisor 0.2.0 → 0.2.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/README.i18n.yaml CHANGED
@@ -3,5 +3,5 @@
3
3
  # editing either side, bring the other along and re-record with:
4
4
  # git hash-object README.md
5
5
  # git hash-object README.zh.md
6
- README.md: 6da971fed9908121287601132c6e39ff66dba750
7
- README.zh.md: 4c770571e72e38e64c9cf48a789cc41aa544192b
6
+ README.md: ef98d163d84f2db4ee6a5345d467eee27644ff3b
7
+ README.zh.md: 228f1d220635cbf7aba0ef72dc32e293a6635eaa
package/README.md CHANGED
@@ -46,7 +46,7 @@ The same keys compose across **three surfaces** (later layers override earlier o
46
46
  2. **dsh web Settings page — the "插件配置" (Plugin Configuration) page** — the Advisor **card** (id `advisor`) with the enabled toggle, provider / model selects restricted to system-configured providers and their models, and the optional fields. Saving writes into the `advisor` settings namespace and applies to new sessions immediately — no restart. The card requires a current dsh web build whose shell declares the `settings.plugin.item` card slot and loads packages that declare `dsh.client`; it reads and writes the namespace through the official `GatewayService` RPC channel (`/api/advisor/get` + `/api/advisor/set`), which is not gated by the settings exposure allowlist. It additionally blocks saving while enabled with a required field empty.
47
47
  3. **`/advisor` command** — per-session and ephemeral: it flips a session override, never the persisted config (see [Verify](#verify)).
48
48
 
49
- In a **dsh-tui** profile there is no settings page: the same two persisted surfaces (profile patch layer + global `$DSH_HOME/settings.yaml`) compose the config, and `/advisor config` prints the composed config as a read-only readback with edit hints. Full reference → [docs/configuration.md](docs/configuration.md).
49
+ In a **dsh-tui** profile the same five keys are editable in the TUI `/settings` screen: run `dsh --profile dsh-tui`, open `/settings`, and edit the **Advisor** section (`enabled` / `provider` / `model` / `immuneTurns` / `maxDeltaMessages`, each with zh/en label + hint). Edits are staged and written on save through the revision-fenced `settings.mutate` into the same `advisor` namespace user layer the web card writes, and re-apply live without a restart. `systemPrompt` is NOT a TUI field (the TUI text control is single-line; a multi-line prompt would be truncated) — edit it via the web card or `$DSH_HOME/settings.yaml`. The section requires dsh-tui ≥ v0.8.0 (shipped in the `dsh-tui-settings-sections` row of the v0.8.0+ bundle); older dsh-tui versions no-op it cleanly and the two file paths profile patch layer + global `$DSH_HOME/settings.yaml` remain the edit paths. `/advisor config` stays a read-only readback whose edit hint names the `/settings` screen when the seam is mounted. Save behavior differs from the web card: the TUI seam has no cross-field validation, so a save may set `enabled: true` with empty `provider`/`model` — the explicit model gate resolves that to disabled-with-reason at runtime (visible via `/advisor status` and `/advisor config`); the web card blocks such a save outright. Full reference → [docs/configuration.md](docs/configuration.md).
50
50
 
51
51
  ![Advisor card on the dsh web Settings (插件配置) page](docs/screenshots/advisor-settings-card.webp)
52
52
 
@@ -67,7 +67,7 @@ With the advisor installed and enabled, control it in-session with the `/advisor
67
67
 
68
68
  `/advisor on|off|toggle` are session-scoped and ephemeral: they flip a per-session override, never the persisted config. Enabling a session whose config lacks `provider`/`model` starts no model call — `/advisor status` (and the `/advisor on` reply) shows the gate reason: the advisor runs only when enabled **with** both configured. `/advisor on` is also the manual recovery path: a session advisor paused by a quota/rate-limit (`quota_exhausted` — no auto-resume timer) resumes in place, and a halted advisor (permanent model error, e.g. invalid credentials) is rebuilt fresh for the session.
69
69
 
70
- In a **dsh-tui** profile, `/advisor config` additionally reads back the composed configuration — read-only, with edit hints: the web Settings card is web-only, and the TUI has no settings page and no write command, so edit through the profile patch layer or `$DSH_HOME/settings.yaml`. The `/advisor` / `on|off|status|config` commands are listed in the TUI `/` menu with subcommand completion (command discovery requires the `dsh-tui-command-trees` row — the shipped dsh-tui bundle has it).
70
+ In a **dsh-tui** profile, `/advisor config` additionally reads back the composed configuration — read-only, with edit hints naming the real write paths: the TUI `/settings` screen (Advisor section, dsh-tui v0.8.0), the profile patch layer, and the shared `$DSH_HOME/settings.yaml` `advisor:` section. The `/advisor` / `on|off|status|config` commands are listed in the TUI `/` menu with subcommand completion (command discovery requires the `dsh-tui-command-trees` row — the shipped dsh-tui bundle has it).
71
71
 
72
72
  ## Features
73
73
 
package/README.zh.md CHANGED
@@ -46,7 +46,7 @@ advisor 默认关闭。启用后,`provider` 与 `model` 为**必填**:`enabl
46
46
  2. **dsh web Settings 页 —— "插件配置"页** —— Advisor **卡片**(id `advisor`),含 enabled 开关、只列出系统内已配置 provider 及其模型的 provider/model 选择框与可选字段。保存写入 `advisor` settings namespace,新会话立即生效,无需重启。卡片要求当前版本的 dsh web 构建(其 web shell 声明了 `settings.plugin.item` 卡片 slot 并能加载 `dsh.client` 声明包);它通过官方 `GatewayService` RPC 通道读写该命名空间(`/api/advisor/get` + `/api/advisor/set`),不受 settings 暴露白名单门控。卡片还会在 enabled 且必填字段为空时阻止保存。
47
47
  3. **`/advisor` 指令** —— 按会话且临时:翻转的是会话级 override,从不修改持久化配置(见[验证](#验证))。
48
48
 
49
- **dsh-tui** profile 没有设置页:同样由两个持久化配置面(profile 补丁层 + 全局 `$DSH_HOME/settings.yaml`)合成配置,`/advisor config` 以只读回读方式打印合成后的配置并附编辑提示。完整参考 → [docs/configuration.md](docs/configuration.md)。
49
+ **dsh-tui** profile 中,同样的五个键可在 TUI `/settings` 屏幕编辑:运行 `dsh --profile dsh-tui`、打开 `/settings`,编辑 **Advisor** 分节(`enabled` / `provider` / `model` / `immuneTurns` / `maxDeltaMessages`,每项均带中英文标签与提示)。编辑先暂存,保存时经 revision 栅栏保护的 `settings.mutate` 写入 web 卡片所写的同一个 `advisor` 命名空间 user layer,并 live 重应用、无需重启。`systemPrompt` **不是** TUI 字段(TUI text 控件为单行;多行 prompt 会被截断)——请经 web 卡片或 `$DSH_HOME/settings.yaml` 编辑。该分节要求 dsh-tui ≥ v0.8.0(随 v0.8.0+ 组合包的 `dsh-tui-settings-sections` 行提供);旧版 dsh-tui 会干净地 no-op,仍以两个文件路径——profile 补丁层 + 全局 `$DSH_HOME/settings.yaml`——作为编辑路径。`/advisor config` 仍是只读回读,seam 挂载时其编辑提示指向 `/settings` 屏幕。保存行为与 web 卡片不同:TUI seam 没有跨字段校验,一次保存可能把 `enabled: true` 与空 `provider`/`model` 一起写入——显式模型门禁会在运行时把它解析为 disabled-with-reason(可见于 `/advisor status` 与 `/advisor config`);web 卡片则会直接阻止这样的保存。完整参考 → [docs/configuration.md](docs/configuration.md)。
50
50
 
51
51
  ![dsh web Settings("插件配置")页上的 Advisor 卡片](docs/screenshots/advisor-settings-card.webp)
52
52
 
@@ -67,7 +67,7 @@ dsh --profile web --dump-config # 显示带 advisor 配置行的 "# == dsh-adv
67
67
 
68
68
  `/advisor on|off|toggle` 是会话级且临时的:它们翻转的是按会话的 override,从不修改持久化配置。启用一个 config 缺少 `provider`/`model` 的会话不会发起模型调用——`/advisor status`(以及 `/advisor on` 的回复)会显示门禁原因:advisor 只有在启用**且**两者均已配置时才运行。`/advisor on` 也是手动恢复路径:被 quota/rate-limit 暂停的会话 advisor(`quota_exhausted`——无自动恢复定时器)会在原地恢复;被终止的 advisor(永久性模型错误,如凭据无效)会为该会话全新重建。
69
69
 
70
- 在 **dsh-tui** profile 中,`/advisor config` 额外回读组合配置——只读,附编辑提示:web Settings 卡片仅限 web,TUI 没有设置页、也没有写指令,请通过 profile 补丁层或 `$DSH_HOME/settings.yaml` 修改。`/advisor` / `on|off|status|config` 指令出现在 TUI 的 `/` 菜单中并带子命令补全(指令发现要求 `dsh-tui-command-trees` 行——随附的 dsh-tui 组合包自带)。
70
+ 在 **dsh-tui** profile 中,`/advisor config` 额外回读组合配置——只读,编辑提示指向真实的写路径:TUI `/settings` 屏幕(Advisor 分节,dsh-tui v0.8.0)、profile 补丁层与共享的 `$DSH_HOME/settings.yaml` 的 `advisor:` 分节。`/advisor` / `on|off|status|config` 指令出现在 TUI 的 `/` 菜单中并带子命令补全(指令发现要求 `dsh-tui-command-trees` 行——随附的 dsh-tui 组合包自带)。
71
71
 
72
72
  ## 能力一览
73
73
 
package/lib/commands.d.ts CHANGED
@@ -134,6 +134,17 @@ export interface AdvisorComposedConfig {
134
134
  * unset — the `<default>` marker is the renderer's job).
135
135
  */
136
136
  readonly systemPromptSummary: string;
137
+ /**
138
+ * Whether the dsh-tui `tuiSettingsSections` seam is mounted (dsh-tui ≥
139
+ * v0.8.0) — a RENDERER INPUT for the edit hint, computed LIVE at render
140
+ * time by the wiring (`ctx.get('tuiSettingsSections') !== undefined`, plan
141
+ * dsh-advisor-tui-settings-n9 T2). An environment signal, never derived
142
+ * from the per-session override; it does not change the resolved-config
143
+ * read. When true the hint lists the TUI `/settings` screen as a write
144
+ * path; when false the n8 hint (profile patch layer + settings.yaml) is
145
+ * shown unchanged.
146
+ */
147
+ readonly tuiSettingsAvailable: boolean;
137
148
  }
138
149
  /**
139
150
  * First line of a system prompt, truncated to ≤ 80 chars with a trailing
@@ -144,9 +155,11 @@ export interface AdvisorComposedConfig {
144
155
  export declare function summarizeSystemPrompt(prompt: string): string;
145
156
  /**
146
157
  * Render the composed config surface. Mirrors the status renderer's minimal
147
- * line style; the edit hint points at the two operator edit paths (profile
148
- * patch layer + the shared `$DSH_HOME/settings.yaml` `advisor:` section the
149
- * web card writes).
158
+ * line style; the edit hint points at the operator edit paths — when the TUI
159
+ * `tuiSettingsSections` seam is mounted (dsh-tui ≥ v0.8.0) the TUI `/settings`
160
+ * Advisor section is listed FIRST, followed by the profile patch layer + the
161
+ * shared `$DSH_HOME/settings.yaml` `advisor:` section the web card writes;
162
+ * otherwise only the two file paths (n8 text, byte-identical).
150
163
  */
151
164
  export declare function advisorConfigText(config: AdvisorComposedConfig): string;
152
165
  /**
package/lib/commands.js CHANGED
@@ -119,9 +119,11 @@ export function summarizeSystemPrompt(prompt) {
119
119
  }
120
120
  /**
121
121
  * Render the composed config surface. Mirrors the status renderer's minimal
122
- * line style; the edit hint points at the two operator edit paths (profile
123
- * patch layer + the shared `$DSH_HOME/settings.yaml` `advisor:` section the
124
- * web card writes).
122
+ * line style; the edit hint points at the operator edit paths — when the TUI
123
+ * `tuiSettingsSections` seam is mounted (dsh-tui ≥ v0.8.0) the TUI `/settings`
124
+ * Advisor section is listed FIRST, followed by the profile patch layer + the
125
+ * shared `$DSH_HOME/settings.yaml` `advisor:` section the web card writes;
126
+ * otherwise only the two file paths (n8 text, byte-identical).
125
127
  */
126
128
  export function advisorConfigText(config) {
127
129
  const lines = [];
@@ -142,7 +144,14 @@ export function advisorConfigText(config) {
142
144
  if (config.disabledReason !== undefined)
143
145
  lines.push(`Reason: ${config.disabledReason}`);
144
146
  lines.push('');
145
- lines.push('Edit: ~/.dsh/profiles/<profile>/cordis.patch.yml (plugin row) or $DSH_HOME/settings.yaml (advisor: section)');
147
+ // T2 (plan dsh-advisor-tui-settings-n9): truthful edit hint. The TUI
148
+ // `/settings` screen is a real write path only while the `tuiSettingsSections`
149
+ // seam is mounted — the renderer branch follows the LIVE
150
+ // `tuiSettingsAvailable` input the wiring supplies at render time; the
151
+ // absent-seam text is the n8 line, byte-identical.
152
+ lines.push(config.tuiSettingsAvailable
153
+ ? 'Edit: TUI /settings screen (Advisor section, dsh-tui ≥ v0.8.0) or ~/.dsh/profiles/<profile>/cordis.patch.yml (plugin row) or $DSH_HOME/settings.yaml (advisor: section)'
154
+ : 'Edit: ~/.dsh/profiles/<profile>/cordis.patch.yml (plugin row) or $DSH_HOME/settings.yaml (advisor: section)');
146
155
  return lines.join('\n');
147
156
  }
148
157
  /** Usage text for an unknown `/advisor` subcommand. */
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -26,6 +26,11 @@
26
26
  * T2-tui (plan dsh-advisor-tui-client-n8): `/advisor config` — a session-less
27
27
  * readback of the composed `advisor` namespace (same resolved config the web
28
28
  * card reads), never the per-session override.
29
+ * T2 (plan dsh-advisor-tui-settings-n9): the readback's edit hint is truthful
30
+ * — `getConfig()` reports `tuiSettingsAvailable` LIVE at render time
31
+ * (`ctx.get('tuiSettingsSections') !== undefined`), so the hint names the TUI
32
+ * `/settings` Advisor section as a write path exactly while the seam is
33
+ * mounted; the readback itself stays session-less and read-only.
29
34
  * Settings (plan dsh-advisor-settings-n2): the plugin-row config is the
30
35
  * composition base of the `advisor` settings namespace (`src/settings.ts`),
31
36
  * read live through the bridge source; committed settings edits re-apply
package/lib/index.js CHANGED
@@ -26,6 +26,11 @@
26
26
  * T2-tui (plan dsh-advisor-tui-client-n8): `/advisor config` — a session-less
27
27
  * readback of the composed `advisor` namespace (same resolved config the web
28
28
  * card reads), never the per-session override.
29
+ * T2 (plan dsh-advisor-tui-settings-n9): the readback's edit hint is truthful
30
+ * — `getConfig()` reports `tuiSettingsAvailable` LIVE at render time
31
+ * (`ctx.get('tuiSettingsSections') !== undefined`), so the hint names the TUI
32
+ * `/settings` Advisor section as a write path exactly while the seam is
33
+ * mounted; the readback itself stays session-less and read-only.
29
34
  * Settings (plan dsh-advisor-settings-n2): the plugin-row config is the
30
35
  * composition base of the `advisor` settings namespace (`src/settings.ts`),
31
36
  * read live through the bridge source; committed settings edits re-apply
@@ -49,6 +54,7 @@ import { AdvisorDelivery } from './delivery.js';
49
54
  import { DEFAULT_ADVISOR_SYSTEM_PROMPT } from './prompts.js';
50
55
  import { AdvisorSessionOverrides, registerAdvisorCommands, summarizeSystemPrompt } from './commands.js';
51
56
  import { installTuiClient } from './tui.js';
57
+ import { TUI_SETTINGS_SECTIONS, installTuiSettingsSection } from './tui-settings.js';
52
58
  export const name = 'dsh-advisor';
53
59
  /** Services the advisor consumes; the row loads once all are available. */
54
60
  export const inject = ['sessions', 'agents', 'llm'];
@@ -514,6 +520,24 @@ export function apply(ctx, config) {
514
520
  maxDeltaMessages: resolved.maxDeltaMessages,
515
521
  systemPromptSet: resolved.systemPrompt !== '',
516
522
  systemPromptSummary: summarizeSystemPrompt(resolved.systemPrompt),
523
+ // T2 (plan dsh-advisor-tui-settings-n9): the truthful edit-hint input.
524
+ // Computed LIVE at render time — `ctx.get(TUI_SETTINGS_SECTIONS) !==
525
+ // undefined` (architect ruling): the upstream seam supports mid-session
526
+ // mount/unmount via `subscribe()`, so a captured boolean set by the
527
+ // inject child would go stale without extra bookkeeping; `ctx.get` is
528
+ // the minimal truthful observable. An environment signal, NEVER derived
529
+ // from the per-session override — the readback stays session-less and
530
+ // read-only (this read only ever probes service presence).
531
+ //
532
+ // Servability assumption (QC2): a mounted `tuiSettingsSections` seam
533
+ // implies a composed settings service in real dsh-tui profiles (the
534
+ // `/settings` screen requires it), so the hint's "TUI /settings screen
535
+ // (Advisor section)" claim is truthful; in the unreachable
536
+ // seam-without-settings corner the section would render unavailable in
537
+ // the host screen. The probe key is the SHARED
538
+ // `TUI_SETTINGS_SECTIONS` constant (S-001) — the same key the section
539
+ // registration condition uses, so the two cannot drift apart.
540
+ tuiSettingsAvailable: ctx.get(TUI_SETTINGS_SECTIONS) !== undefined,
517
541
  };
518
542
  },
519
543
  };
@@ -531,5 +555,15 @@ export function apply(ctx, config) {
531
555
  // conditional like `commands`/`settings`/`typert`: profiles without the
532
556
  // `dsh-tui-command-trees` row keep working (clean no-op).
533
557
  installTuiClient(ctx);
558
+ // T1 (plan dsh-advisor-tui-settings-n9): the dsh-tui settings-section seam —
559
+ // the `tuiSettingsSections` "Advisor" section (editable `/settings` screen
560
+ // fields: enabled/provider/model/immuneTurns/maxDeltaMessages). Runs AFTER
561
+ // the single-reviewer claim like `installTuiClient`, so the section
562
+ // registers at most once per process (duplicate-ns registration is
563
+ // contained inside the module). The inject is conditional: profiles without
564
+ // the `dsh-tui-settings-sections` row (dsh-tui < v0.8.0, non-TUI hosts)
565
+ // keep working (clean no-op). Order vs `installTuiClient` is irrelevant —
566
+ // independent services; kept adjacent for cohesion.
567
+ installTuiSettingsSection(ctx);
534
568
  }
535
569
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,144 @@
1
+ /**
2
+ * dsh-tui settings-section seam (plan dsh-advisor-tui-settings-n9, T1) — the
3
+ * `tuiSettingsSections` Advisor section.
4
+ *
5
+ * dsh-tui ≥ v0.8.0 ships a `/settings` screen; optional plugins declare what
6
+ * is editable there by registering a SECTION over their settings namespace on
7
+ * the optional `tuiSettingsSections` host service
8
+ * (`src/dsh-adapter/settings-sections.ts` in dsh-TUI — a small host-only
9
+ * registry; storage + validation stay with the dsh settings service). The
10
+ * screen then renders the section's fields, stages edits, and writes them on
11
+ * save through the revision-fenced `settings.mutate` into the section's
12
+ * namespace user layer — for the advisor that is the already-registered
13
+ * `advisor` namespace (`src/settings.ts` `installAdvisorSettings`), so the
14
+ * section is fully writable.
15
+ *
16
+ * This module is the advisor's settings-seam surface:
17
+ * `installTuiSettingsSection` conditionally injects `tuiSettingsSections` and
18
+ * registers {@link ADVISOR_TUI_SETTINGS_SECTION} when the service exists; a
19
+ * profile without the `dsh-tui-settings-sections` row (dsh-tui < v0.8.0, or
20
+ * any non-TUI host) gets a clean no-op. The provider shapes are minimal LOCAL
21
+ * structural copies of the dsh-TUI types — the advisor MUST NOT import
22
+ * `@deepseek-harness-tui/dsh-tui` (zero new peers, plan Global Constraint),
23
+ * so drift against the upstream shape is bounded to the structural cast at
24
+ * the inject boundary and pinned by `tests/tui-settings.test.ts`.
25
+ *
26
+ * Upstream revision pin: the structural shapes mirror
27
+ * `@deepseek-harness-tui/dsh-tui` v0.8.0 (`src/dsh-adapter/settings-sections.ts`,
28
+ * dsh-TUI commit `02ff08e`). Residual drift window: an upstream
29
+ * addition/rename of a REQUIRED field would NOT fail the structural cast (the
30
+ * cast goes through `unknown`) and could cause host-side misrender rather than
31
+ * a compile error — re-verify against the dsh-TUI repo when bumping.
32
+ *
33
+ * Field subset (grill-me locked): the section covers the five SAFE §5.1 keys
34
+ * (`enabled` / `provider` / `model` / `immuneTurns` / `maxDeltaMessages`).
35
+ * `systemPrompt` is intentionally NOT a field — the TUI `text` control is
36
+ * single-line, and editing a multi-line prompt there would truncate/replace
37
+ * it (data loss). It stays editable via the web card or
38
+ * `$DSH_HOME/settings.yaml`. The TUI seam has no cross-field validation
39
+ * (upstream behavior, recorded): a save may set `enabled: true` with empty
40
+ * `provider`/`model`, which the S4 explicit model gate (spec §5.2) resolves
41
+ * to disabled-with-reason at runtime; the settings-service schema
42
+ * re-validation on mutate is the value-level backstop (a non-schema value
43
+ * fails the whole save before persist).
44
+ *
45
+ * @module dsh-advisor/tui-settings
46
+ */
47
+ import type { Context } from '@deepseek-ai/cordis';
48
+ /** Localized (zh/en) descriptions — structural mirror of dsh-TUI's
49
+ * `LocalizedDescriptions` (the `/settings` section + field labels/hints). */
50
+ export type TuiLocalizedDescriptions = Readonly<Partial<Record<'zh' | 'en', string>>>;
51
+ /** One `kind: 'select'` choice — structural mirror of dsh-TUI's
52
+ * `TuiSettingsFieldOption`. */
53
+ export interface TuiSettingsFieldOption {
54
+ /** Stored value. */
55
+ value: string;
56
+ /** Display label (English; also the fallback). */
57
+ label: string;
58
+ /** Provider-owned translations for the label. */
59
+ descriptions?: TuiLocalizedDescriptions;
60
+ }
61
+ /** The write one field's draft stages when the section is saved — structural
62
+ * mirror of dsh-TUI's `TuiSettingsFieldWrite`. */
63
+ export type TuiSettingsFieldWrite = {
64
+ kind: 'set';
65
+ value: unknown;
66
+ } | {
67
+ kind: 'clear';
68
+ };
69
+ /** One editable field inside a section — structural mirror of dsh-TUI's
70
+ * `TuiSettingsField`. `path` uses the settings-service `mutate` path
71
+ * vocabulary (object keys); the advisor's §5.1 flat keys map directly as
72
+ * single-element paths. */
73
+ export interface TuiSettingsField {
74
+ /** Key path from the section root, in the settings service's `mutate` path
75
+ * vocabulary (object keys; dict keys name their entry directly). */
76
+ path: readonly string[];
77
+ /** Short field label (English; also the fallback). */
78
+ label: string;
79
+ /** Provider-owned translations for the label. */
80
+ descriptions?: TuiLocalizedDescriptions;
81
+ /** Optional one-line help rendered under the field. */
82
+ hint?: string;
83
+ /** Provider-owned translations for the hint. */
84
+ hintDescriptions?: TuiLocalizedDescriptions;
85
+ kind: 'text' | 'number' | 'boolean' | 'select';
86
+ /** Choices for `kind: 'select'` (ignored otherwise). */
87
+ options?: readonly TuiSettingsFieldOption[];
88
+ /** Input placeholder for `kind: 'text' | 'number'`. */
89
+ placeholder?: string;
90
+ /** Credential control (mirrors the web cards' CardSecretSpec). */
91
+ secret?: {
92
+ ref: string;
93
+ };
94
+ /** Render a stored value as draft text (defaults to the kind's conversion). */
95
+ format?(value: unknown): string;
96
+ /** The write this draft text stages, or `undefined` when the text is not a
97
+ * value this field accepts (defaults to the kind's conversion — an empty
98
+ * text/number draft stages a clear, re-inheriting the composition layer). */
99
+ parse?(text: string): TuiSettingsFieldWrite | undefined;
100
+ }
101
+ /** One plugin's section inside the TUI `/settings` screen — structural mirror
102
+ * of dsh-TUI's `TuiSettingsSection`. */
103
+ export interface TuiSettingsSection {
104
+ /** Settings namespace this section edits; the screen marks the section
105
+ * unavailable when the composition serves no such namespace. */
106
+ ns: string;
107
+ /** Section title (English; also the fallback). */
108
+ title: string;
109
+ /** Provider-owned translations for the title. */
110
+ descriptions?: TuiLocalizedDescriptions;
111
+ /** Editable fields, in display order. */
112
+ fields: readonly TuiSettingsField[];
113
+ }
114
+ /** The `tuiSettingsSections` host service key — the ONE name the T1
115
+ * registration condition (`installTuiSettingsSection`'s inject) and the T2
116
+ * hint truthfulness probe (`getConfig`'s `ctx.get`) are both keyed on. Shared
117
+ * so the registration condition and the render-time hint can never drift
118
+ * apart (S-001, plan QC fix wave). */
119
+ export declare const TUI_SETTINGS_SECTIONS = "tuiSettingsSections";
120
+ /** Test-friendly alias for the section namespace (`'advisor'`). The section
121
+ * itself reuses the shared {@link ADVISOR_SETTINGS_NAMESPACE} brand — a
122
+ * mismatched ns would silently render the section "unavailable" in the host
123
+ * screen (the alias exists so tests can pin the value without importing the
124
+ * settings module's brand). */
125
+ export declare const ADVISOR_TUI_SETTINGS_NS = "advisor";
126
+ /** The declared "Advisor" section for the dsh-tui `/settings` screen: the
127
+ * five safe §5.1 keys (enabled/provider/model/immuneTurns/maxDeltaMessages)
128
+ * with zh/en labels + hints. Field paths are single-element §5.1 flat keys,
129
+ * so staged edits map 1:1 onto the namespace `mutate` paths. */
130
+ export declare const ADVISOR_TUI_SETTINGS_SECTION: TuiSettingsSection;
131
+ /**
132
+ * Install the advisor's TUI settings-section surface: register the "Advisor"
133
+ * section on `tuiSettingsSections` when the host service exists (conditional
134
+ * inject; absent service → clean no-op). Called from `apply()` AFTER the
135
+ * single-reviewer claim (next to `installTuiClient`), so the section registers
136
+ * at most once per process. The structural accessor keeps the inject key in
137
+ * the standard position: the cordis Context has no `tuiSettingsSections`
138
+ * augmentation in this repo, so the service is read through a local
139
+ * structural cast. The inject child's return value (the registry disposer)
140
+ * is the child's own effect disposer, so the section withdraws when this
141
+ * fiber (or the service) goes away; a duplicate-ns registration is contained
142
+ * (debug log + no-op disposer, never throws — multi-fiber dedupe).
143
+ */
144
+ export declare function installTuiSettingsSection(ctx: Context): void;
@@ -0,0 +1,145 @@
1
+ /**
2
+ * dsh-tui settings-section seam (plan dsh-advisor-tui-settings-n9, T1) — the
3
+ * `tuiSettingsSections` Advisor section.
4
+ *
5
+ * dsh-tui ≥ v0.8.0 ships a `/settings` screen; optional plugins declare what
6
+ * is editable there by registering a SECTION over their settings namespace on
7
+ * the optional `tuiSettingsSections` host service
8
+ * (`src/dsh-adapter/settings-sections.ts` in dsh-TUI — a small host-only
9
+ * registry; storage + validation stay with the dsh settings service). The
10
+ * screen then renders the section's fields, stages edits, and writes them on
11
+ * save through the revision-fenced `settings.mutate` into the section's
12
+ * namespace user layer — for the advisor that is the already-registered
13
+ * `advisor` namespace (`src/settings.ts` `installAdvisorSettings`), so the
14
+ * section is fully writable.
15
+ *
16
+ * This module is the advisor's settings-seam surface:
17
+ * `installTuiSettingsSection` conditionally injects `tuiSettingsSections` and
18
+ * registers {@link ADVISOR_TUI_SETTINGS_SECTION} when the service exists; a
19
+ * profile without the `dsh-tui-settings-sections` row (dsh-tui < v0.8.0, or
20
+ * any non-TUI host) gets a clean no-op. The provider shapes are minimal LOCAL
21
+ * structural copies of the dsh-TUI types — the advisor MUST NOT import
22
+ * `@deepseek-harness-tui/dsh-tui` (zero new peers, plan Global Constraint),
23
+ * so drift against the upstream shape is bounded to the structural cast at
24
+ * the inject boundary and pinned by `tests/tui-settings.test.ts`.
25
+ *
26
+ * Upstream revision pin: the structural shapes mirror
27
+ * `@deepseek-harness-tui/dsh-tui` v0.8.0 (`src/dsh-adapter/settings-sections.ts`,
28
+ * dsh-TUI commit `02ff08e`). Residual drift window: an upstream
29
+ * addition/rename of a REQUIRED field would NOT fail the structural cast (the
30
+ * cast goes through `unknown`) and could cause host-side misrender rather than
31
+ * a compile error — re-verify against the dsh-TUI repo when bumping.
32
+ *
33
+ * Field subset (grill-me locked): the section covers the five SAFE §5.1 keys
34
+ * (`enabled` / `provider` / `model` / `immuneTurns` / `maxDeltaMessages`).
35
+ * `systemPrompt` is intentionally NOT a field — the TUI `text` control is
36
+ * single-line, and editing a multi-line prompt there would truncate/replace
37
+ * it (data loss). It stays editable via the web card or
38
+ * `$DSH_HOME/settings.yaml`. The TUI seam has no cross-field validation
39
+ * (upstream behavior, recorded): a save may set `enabled: true` with empty
40
+ * `provider`/`model`, which the S4 explicit model gate (spec §5.2) resolves
41
+ * to disabled-with-reason at runtime; the settings-service schema
42
+ * re-validation on mutate is the value-level backstop (a non-schema value
43
+ * fails the whole save before persist).
44
+ *
45
+ * @module dsh-advisor/tui-settings
46
+ */
47
+ import { ADVISOR_SETTINGS_NAMESPACE } from './settings.js';
48
+ /** The `tuiSettingsSections` host service key — the ONE name the T1
49
+ * registration condition (`installTuiSettingsSection`'s inject) and the T2
50
+ * hint truthfulness probe (`getConfig`'s `ctx.get`) are both keyed on. Shared
51
+ * so the registration condition and the render-time hint can never drift
52
+ * apart (S-001, plan QC fix wave). */
53
+ export const TUI_SETTINGS_SECTIONS = 'tuiSettingsSections';
54
+ /** Test-friendly alias for the section namespace (`'advisor'`). The section
55
+ * itself reuses the shared {@link ADVISOR_SETTINGS_NAMESPACE} brand — a
56
+ * mismatched ns would silently render the section "unavailable" in the host
57
+ * screen (the alias exists so tests can pin the value without importing the
58
+ * settings module's brand). */
59
+ export const ADVISOR_TUI_SETTINGS_NS = 'advisor';
60
+ /** The declared "Advisor" section for the dsh-tui `/settings` screen: the
61
+ * five safe §5.1 keys (enabled/provider/model/immuneTurns/maxDeltaMessages)
62
+ * with zh/en labels + hints. Field paths are single-element §5.1 flat keys,
63
+ * so staged edits map 1:1 onto the namespace `mutate` paths. */
64
+ export const ADVISOR_TUI_SETTINGS_SECTION = {
65
+ ns: ADVISOR_SETTINGS_NAMESPACE,
66
+ title: 'Advisor',
67
+ descriptions: {
68
+ zh: '顾问评审设置',
69
+ en: 'Advisor settings',
70
+ },
71
+ fields: [
72
+ {
73
+ path: ['enabled'],
74
+ kind: 'boolean',
75
+ label: 'Enabled',
76
+ descriptions: { zh: '启用', en: 'Enabled' },
77
+ hint: 'Master switch for the advisor.',
78
+ hintDescriptions: { zh: '顾问总开关。', en: 'Master switch for the advisor.' },
79
+ },
80
+ {
81
+ path: ['provider'],
82
+ kind: 'text',
83
+ label: 'Provider',
84
+ descriptions: { zh: 'Provider', en: 'Provider' },
85
+ hint: 'Provider route; required (non-empty) when enabled.',
86
+ hintDescriptions: { zh: 'Provider 路由;启用时必须非空。', en: 'Provider route; required (non-empty) when enabled.' },
87
+ placeholder: 'e.g. deepseek-official',
88
+ },
89
+ {
90
+ path: ['model'],
91
+ kind: 'text',
92
+ label: 'Model',
93
+ descriptions: { zh: 'Model', en: 'Model' },
94
+ hint: 'Model id; required (non-empty) when enabled.',
95
+ hintDescriptions: { zh: '模型 ID;启用时必须非空。', en: 'Model id; required (non-empty) when enabled.' },
96
+ placeholder: 'e.g. deepseek-v4-flash',
97
+ },
98
+ {
99
+ path: ['immuneTurns'],
100
+ kind: 'number',
101
+ label: 'Immune turns',
102
+ descriptions: { zh: '免疫轮数', en: 'Immune turns' },
103
+ hint: 'Cooldown after a delivered interrupt (integer ≥ 0).',
104
+ hintDescriptions: { zh: '投递一次建议后的冷却轮数(整数 ≥ 0)。', en: 'Cooldown after a delivered interrupt (integer ≥ 0).' },
105
+ },
106
+ {
107
+ path: ['maxDeltaMessages'],
108
+ kind: 'number',
109
+ label: 'Max delta messages',
110
+ descriptions: { zh: '最大增量消息数', en: 'Max delta messages' },
111
+ hint: 'Delta window (integer ≥ 0; 0 = unbounded).',
112
+ hintDescriptions: { zh: '增量窗口(整数 ≥ 0;0 = 不限)。', en: 'Delta window (integer ≥ 0; 0 = unbounded).' },
113
+ },
114
+ ],
115
+ };
116
+ /**
117
+ * Install the advisor's TUI settings-section surface: register the "Advisor"
118
+ * section on `tuiSettingsSections` when the host service exists (conditional
119
+ * inject; absent service → clean no-op). Called from `apply()` AFTER the
120
+ * single-reviewer claim (next to `installTuiClient`), so the section registers
121
+ * at most once per process. The structural accessor keeps the inject key in
122
+ * the standard position: the cordis Context has no `tuiSettingsSections`
123
+ * augmentation in this repo, so the service is read through a local
124
+ * structural cast. The inject child's return value (the registry disposer)
125
+ * is the child's own effect disposer, so the section withdraws when this
126
+ * fiber (or the service) goes away; a duplicate-ns registration is contained
127
+ * (debug log + no-op disposer, never throws — multi-fiber dedupe).
128
+ */
129
+ export function installTuiSettingsSection(ctx) {
130
+ ctx.inject([TUI_SETTINGS_SECTIONS], (tctx) => {
131
+ const sections = tctx.tuiSettingsSections;
132
+ if (sections === undefined)
133
+ return;
134
+ try {
135
+ return sections.register(ADVISOR_TUI_SETTINGS_SECTION);
136
+ }
137
+ catch (error) {
138
+ if (!(error instanceof Error) || !error.message.includes('already registered'))
139
+ throw error;
140
+ tctx.logger('advisor').debug('advisor tui settings section already registered — no section on this fiber (multi-fiber dedupe)');
141
+ return () => { };
142
+ }
143
+ });
144
+ }
145
+ //# sourceMappingURL=tui-settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tui-settings.js","sourceRoot":"","sources":["../src/tui-settings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAGH,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAA;AAoE1D;;;;sCAIsC;AACtC,MAAM,CAAC,MAAM,qBAAqB,GAAG,qBAAqB,CAAA;AAE1D;;;;+BAI+B;AAC/B,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAS,CAAA;AAEhD;;;gEAGgE;AAChE,MAAM,CAAC,MAAM,4BAA4B,GAAuB;IAC9D,EAAE,EAAE,0BAA0B;IAC9B,KAAK,EAAE,SAAS;IAChB,YAAY,EAAE;QACZ,EAAE,EAAE,QAAQ;QACZ,EAAE,EAAE,kBAAkB;KACvB;IACD,MAAM,EAAE;QACN;YACE,IAAI,EAAE,CAAC,SAAS,CAAC;YACjB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,SAAS;YAChB,YAAY,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE;YACzC,IAAI,EAAE,gCAAgC;YACtC,gBAAgB,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,gCAAgC,EAAE;SACzE;QACD;YACE,IAAI,EAAE,CAAC,UAAU,CAAC;YAClB,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,UAAU;YACjB,YAAY,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE;YAChD,IAAI,EAAE,oDAAoD;YAC1D,gBAAgB,EAAE,EAAE,EAAE,EAAE,sBAAsB,EAAE,EAAE,EAAE,oDAAoD,EAAE;YAC1G,WAAW,EAAE,wBAAwB;SACtC;QACD;YACE,IAAI,EAAE,CAAC,OAAO,CAAC;YACf,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,OAAO;YACd,YAAY,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE;YAC1C,IAAI,EAAE,8CAA8C;YACpD,gBAAgB,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,8CAA8C,EAAE;YAC9F,WAAW,EAAE,wBAAwB;SACtC;QACD;YACE,IAAI,EAAE,CAAC,aAAa,CAAC;YACrB,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,cAAc;YACrB,YAAY,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE;YAChD,IAAI,EAAE,qDAAqD;YAC3D,gBAAgB,EAAE,EAAE,EAAE,EAAE,uBAAuB,EAAE,EAAE,EAAE,qDAAqD,EAAE;SAC7G;QACD;YACE,IAAI,EAAE,CAAC,kBAAkB,CAAC;YAC1B,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,oBAAoB;YAC3B,YAAY,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,oBAAoB,EAAE;YACzD,IAAI,EAAE,4CAA4C;YAClD,gBAAgB,EAAE,EAAE,EAAE,EAAE,sBAAsB,EAAE,EAAE,EAAE,4CAA4C,EAAE;SACnG;KACF;CACF,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,yBAAyB,CAAC,GAAY;IACpD,GAAG,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE;QAC3C,MAAM,QAAQ,GAAI,IAA6F,CAAC,mBAAmB,CAAA;QACnI,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAM;QAClC,IAAI,CAAC;YACH,OAAO,QAAQ,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAA;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC;gBAAE,MAAM,KAAK,CAAA;YAC3F,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,iGAAiG,CAAC,CAAA;YAC/H,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;QACjB,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-advisor",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "type": "module",
5
5
  "description": "dsh plugin bundle porting the omp advisor subsystem: a per-session reviewer model that observes the primary transcript and injects severity-ranked advice (nit/concern/blocker).",
6
6
  "repository": {