dsh-advisor 0.1.3 → 0.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/lib/client.js CHANGED
@@ -364,7 +364,7 @@ var AdvisorSettingsStore = class {
364
364
  __publicField(this, "catalogPromise");
365
365
  /**
366
366
  * Bumped by every successful load(): an in-flight catalog fetch started
367
- * before a bump is stale (the models/changed invalidation that triggered
367
+ * before a bump is stale (the connection/reset invalidation that triggered
368
368
  * the reload happened mid-fetch) and caches nothing (qc1 W-1 / qc3 S-1).
369
369
  */
370
370
  __publicField(this, "catalogGeneration", 0);
@@ -822,6 +822,11 @@ function apply(ctx) {
822
822
  });
823
823
  };
824
824
  const disposers = [ctx.on("connection/reset", refresh)];
825
+ const remote = ctx.get("remote");
826
+ if (remote) {
827
+ disposers.push(remote.$on("settings/document-updated", refresh));
828
+ disposers.push(remote.$on("llm/adapters-updated", refresh));
829
+ }
825
830
  return () => {
826
831
  for (const dispose of disposers) dispose();
827
832
  };
package/lib/commands.d.ts CHANGED
@@ -8,6 +8,7 @@
8
8
  * - `/advisor on` — enable the advisor for this session;
9
9
  * - `/advisor off` — disable the advisor for this session;
10
10
  * - `/advisor status` — report the per-session status surface;
11
+ * - `/advisor config` — show the composed advisor config (settings readback);
11
12
  * - anything else — usage text.
12
13
  *
13
14
  * Toggle/on/off are **session-scoped and ephemeral**: they drive a per-session
@@ -37,6 +38,8 @@ export type AdvisorCommand = {
37
38
  readonly kind: 'off';
38
39
  } | {
39
40
  readonly kind: 'status';
41
+ } | {
42
+ readonly kind: 'config';
40
43
  } | {
41
44
  readonly kind: 'usage';
42
45
  };
@@ -103,6 +106,49 @@ export interface AdvisorSessionStatus {
103
106
  * the pending count, and the last accepted-note activity (ISO, or `never`).
104
107
  */
105
108
  export declare function advisorStatusText(status: AdvisorSessionStatus): string;
109
+ /**
110
+ * Composed-config surface consumed by `/advisor config`. **Session-less by
111
+ * design**: the wiring builds it from the same resolved config the web card
112
+ * reads (`/api/advisor/get` — schema defaults → plugin-row base → settings
113
+ * user layer, with the hard gate applied), so a per-session `/advisor off`
114
+ * override can never misreport settings.yaml. Runtime state stays owned by
115
+ * the status surface (`AdvisorSessionStatus`); config and status are separate.
116
+ */
117
+ export interface AdvisorComposedConfig {
118
+ /** Config-level composed switch — NOT the per-session override. */
119
+ readonly enabled: boolean;
120
+ /** Present iff the composed config is disabled by the explicit gate. */
121
+ readonly disabledReason?: string;
122
+ /** Composed provider route (shown even while disabled — spec §5.2). */
123
+ readonly provider?: string;
124
+ /** Composed model id (shown even while disabled — spec §5.2). */
125
+ readonly model?: string;
126
+ /** Cooldown after a delivered interrupt (spec §6). */
127
+ readonly immuneTurns: number;
128
+ /** Delta window; 0 = unbounded (KD-3). */
129
+ readonly maxDeltaMessages: number;
130
+ /** True when the composed config carries a custom system prompt ("" = unset). */
131
+ readonly systemPromptSet: boolean;
132
+ /**
133
+ * First line of the system prompt, truncated to ≤ 80 chars (empty when
134
+ * unset — the `<default>` marker is the renderer's job).
135
+ */
136
+ readonly systemPromptSummary: string;
137
+ }
138
+ /**
139
+ * First line of a system prompt, truncated to ≤ 80 chars with a trailing
140
+ * ellipsis when the first line is longer — the TUI one-liner readback, never
141
+ * a full dump (AC-2). Empty when the prompt is unset ('' → the renderer shows
142
+ * `<default>`).
143
+ */
144
+ export declare function summarizeSystemPrompt(prompt: string): string;
145
+ /**
146
+ * 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).
150
+ */
151
+ export declare function advisorConfigText(config: AdvisorComposedConfig): string;
106
152
  /**
107
153
  * The session-scoped operations the `/advisor` handler drives. Implemented by
108
154
  * the wiring (`index.ts`) against the observer, the per-session runtimes, and
@@ -119,6 +165,8 @@ export interface AdvisorCommandController {
119
165
  setEnabled(sessionId: string, enabled: boolean, sessionLength?: number): void;
120
166
  /** Snapshot the per-session status surface. */
121
167
  getStatus(sessionId: string): AdvisorSessionStatus;
168
+ /** Snapshot the composed config surface (session-less settings readback). */
169
+ getConfig(): AdvisorComposedConfig;
122
170
  }
123
171
  /** Minimal command registry surface (satisfied by the dsh `CommandService`). */
124
172
  export interface AdvisorCommandRegistry {
package/lib/commands.js CHANGED
@@ -8,6 +8,7 @@
8
8
  * - `/advisor on` — enable the advisor for this session;
9
9
  * - `/advisor off` — disable the advisor for this session;
10
10
  * - `/advisor status` — report the per-session status surface;
11
+ * - `/advisor config` — show the composed advisor config (settings readback);
11
12
  * - anything else — usage text.
12
13
  *
13
14
  * Toggle/on/off are **session-scoped and ephemeral**: they drive a per-session
@@ -42,6 +43,8 @@ export function parseAdvisorCommand(rawInput) {
42
43
  return { kind: 'off' };
43
44
  if (argument === 'status')
44
45
  return { kind: 'status' };
46
+ if (argument === 'config')
47
+ return { kind: 'config' };
45
48
  return { kind: 'usage' };
46
49
  }
47
50
  // ---------------------------------------------------------------------------
@@ -100,13 +103,56 @@ export function advisorStatusText(status) {
100
103
  lines.push(`Last activity: ${status.lastActivityAt === undefined ? 'never' : new Date(status.lastActivityAt).toISOString()}`);
101
104
  return lines.join('\n');
102
105
  }
106
+ /**
107
+ * First line of a system prompt, truncated to ≤ 80 chars with a trailing
108
+ * ellipsis when the first line is longer — the TUI one-liner readback, never
109
+ * a full dump (AC-2). Empty when the prompt is unset ('' → the renderer shows
110
+ * `<default>`).
111
+ */
112
+ export function summarizeSystemPrompt(prompt) {
113
+ // CRLF prompts (schema allows any string) leave a trailing \r on the first
114
+ // line — strip it as a line-ending artifact, not content (qc2 F-3).
115
+ const firstLine = (prompt.split('\n')[0] ?? '').replace(/\r$/, '');
116
+ if (firstLine.length <= 80)
117
+ return firstLine;
118
+ return `${firstLine.slice(0, 79)}…`;
119
+ }
120
+ /**
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).
125
+ */
126
+ export function advisorConfigText(config) {
127
+ const lines = [];
128
+ lines.push(config.enabled ? 'Advisor config: enabled' : 'Advisor config: disabled');
129
+ if (config.provider && config.model) {
130
+ lines.push(`Model: ${config.provider}/${config.model}`);
131
+ }
132
+ lines.push(`immuneTurns: ${config.immuneTurns}`);
133
+ lines.push(`maxDeltaMessages: ${config.maxDeltaMessages === 0 ? 'unbounded' : config.maxDeltaMessages}`);
134
+ // The set-vs-default signal is systemPromptSet, NOT the summary: a custom
135
+ // prompt whose first line is empty (e.g. '\nsecond line') summarizes to ''
136
+ // but must still read as set, not <default> (qc2 F-3).
137
+ lines.push(!config.systemPromptSet
138
+ ? 'systemPrompt: <default>'
139
+ : config.systemPromptSummary === ''
140
+ ? 'systemPrompt: "(empty first line)"'
141
+ : `systemPrompt: "${config.systemPromptSummary}"`);
142
+ if (config.disabledReason !== undefined)
143
+ lines.push(`Reason: ${config.disabledReason}`);
144
+ lines.push('');
145
+ lines.push('Edit: ~/.dsh/profiles/<profile>/cordis.patch.yml (plugin row) or $DSH_HOME/settings.yaml (advisor: section)');
146
+ return lines.join('\n');
147
+ }
103
148
  /** Usage text for an unknown `/advisor` subcommand. */
104
149
  export const USAGE = [
105
- 'Usage: /advisor [on|off|status]',
150
+ 'Usage: /advisor [on|off|status|config]',
106
151
  ' /advisor toggle the advisor for this session',
107
152
  ' /advisor on enable the advisor for this session',
108
153
  ' /advisor off disable the advisor for this session',
109
154
  ' /advisor status show per-session advisor status (state, model, runtime, pending, last activity)',
155
+ ' /advisor config show the composed advisor config (settings readback)',
110
156
  ].join('\n');
111
157
  /**
112
158
  * "Enabled" outcome text — mentions the S4 gate when it blocks model calls.
@@ -162,6 +208,9 @@ function createAdvisorCommandHandler(controller) {
162
208
  }
163
209
  case 'status':
164
210
  return { kind: 'success', text: advisorStatusText(controller.getStatus(sessionId)) };
211
+ case 'config':
212
+ // Session-less readback: the composed config, never the session state.
213
+ return { kind: 'success', text: advisorConfigText(controller.getConfig()) };
165
214
  case 'usage':
166
215
  return { kind: 'success', text: USAGE };
167
216
  }
@@ -178,7 +227,7 @@ export function registerAdvisorCommands(registry, controller) {
178
227
  return registry.register({
179
228
  name: 'advisor',
180
229
  description: 'Toggle, enable, disable, or inspect the per-session advisor',
181
- input: { hint: '[on|off|status]' },
230
+ input: { hint: '[on|off|status|config]' },
182
231
  handler: createAdvisorCommandHandler(controller),
183
232
  });
184
233
  }
@@ -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
@@ -23,6 +23,9 @@
23
23
  * (registered through the conditional `ctx.inject(['commands'], ...)` child)
24
24
  * drive a per-session override consulted by the runtime gate — the commands
25
25
  * start/stop per-session runtimes without touching the persisted config.
26
+ * T2-tui (plan dsh-advisor-tui-client-n8): `/advisor config` — a session-less
27
+ * readback of the composed `advisor` namespace (same resolved config the web
28
+ * card reads), never the per-session override.
26
29
  * Settings (plan dsh-advisor-settings-n2): the plugin-row config is the
27
30
  * composition base of the `advisor` settings namespace (`src/settings.ts`),
28
31
  * read live through the bridge source; committed settings edits re-apply
package/lib/index.js CHANGED
@@ -23,6 +23,9 @@
23
23
  * (registered through the conditional `ctx.inject(['commands'], ...)` child)
24
24
  * drive a per-session override consulted by the runtime gate — the commands
25
25
  * start/stop per-session runtimes without touching the persisted config.
26
+ * T2-tui (plan dsh-advisor-tui-client-n8): `/advisor config` — a session-less
27
+ * readback of the composed `advisor` namespace (same resolved config the web
28
+ * card reads), never the per-session override.
26
29
  * Settings (plan dsh-advisor-settings-n2): the plugin-row config is the
27
30
  * composition base of the `advisor` settings namespace (`src/settings.ts`),
28
31
  * read live through the bridge source; committed settings edits re-apply
@@ -44,7 +47,8 @@ import { SessionTranscriptObserver } from './transcript.js';
44
47
  import { AdvisorRuntime } from './advisor-runtime.js';
45
48
  import { AdvisorDelivery } from './delivery.js';
46
49
  import { DEFAULT_ADVISOR_SYSTEM_PROMPT } from './prompts.js';
47
- import { AdvisorSessionOverrides, registerAdvisorCommands } from './commands.js';
50
+ import { AdvisorSessionOverrides, registerAdvisorCommands, summarizeSystemPrompt } from './commands.js';
51
+ import { installTuiClient } from './tui.js';
48
52
  export const name = 'dsh-advisor';
49
53
  /** Services the advisor consumes; the row loads once all are available. */
50
54
  export const inject = ['sessions', 'agents', 'llm'];
@@ -138,13 +142,27 @@ export function apply(ctx, config) {
138
142
  // plugin-row throw contract is unchanged: construction-time reads below
139
143
  // (delivery/observer latches) still use the throwing `resolved()`, so a bad
140
144
  // entry rejects the plugin row at load (config.test.ts ⑤).
141
- const safeFallback = (reason) => ({
142
- enabled: false,
143
- systemPrompt: '',
144
- immuneTurns: 3,
145
- maxDeltaMessages: 60,
146
- disabledReason: reason,
147
- });
145
+ const safeFallback = (reason) => {
146
+ // S1 (gateway readConfig parity): when the raw source is still readable,
147
+ // seed the scalar latches from it — an invalid user layer only drops the
148
+ // offending keys, so /advisor config (and /advisor status) never
149
+ // misreport immuneTurns / maxDeltaMessages / systemPrompt vs the web
150
+ // card's /api/advisor/get readback.
151
+ let raw;
152
+ try {
153
+ raw = sourceConfig();
154
+ }
155
+ catch {
156
+ // unreadable source — fall back to the schema defaults below
157
+ }
158
+ return {
159
+ enabled: false,
160
+ systemPrompt: raw?.systemPrompt ?? '',
161
+ immuneTurns: raw?.immuneTurns ?? 3,
162
+ maxDeltaMessages: raw?.maxDeltaMessages ?? 60,
163
+ disabledReason: reason,
164
+ };
165
+ };
148
166
  const safeResolved = () => {
149
167
  try {
150
168
  return resolveAdvisorConfig(sourceConfig());
@@ -474,6 +492,30 @@ export function apply(ctx, config) {
474
492
  lastActivityAt: runtime?.lastActivity,
475
493
  };
476
494
  },
495
+ // T2 (plan dsh-advisor-tui-client-n8): the composed-config readback.
496
+ // Session-less BY DESIGN — reads `safeResolved()` (schema defaults →
497
+ // plugin-row base → settings user layer, with the hard gate applied),
498
+ // the SAME bridge source the web card reads through `resolveAdvisorConfig`
499
+ // (`/api/advisor/get` has no session either). NEVER `effectiveConfig`/
500
+ // `safeEffective` here: those bake the per-session `/advisor` override
501
+ // into `enabled`, and a `/advisor off` session toggle must never make
502
+ // the settings readback misreport settings.yaml. Runtime state stays
503
+ // owned by `status`; this read reports config only. Every field comes
504
+ // from that one resolved value; the systemPrompt summary is the first
505
+ // line (≤ 80 chars) of `resolved.systemPrompt`, '' → unset.
506
+ getConfig() {
507
+ const resolved = safeResolved();
508
+ return {
509
+ enabled: resolved.enabled,
510
+ ...(resolved.disabledReason === undefined ? {} : { disabledReason: resolved.disabledReason }),
511
+ provider: resolved.provider,
512
+ model: resolved.model,
513
+ immuneTurns: resolved.immuneTurns,
514
+ maxDeltaMessages: resolved.maxDeltaMessages,
515
+ systemPromptSet: resolved.systemPrompt !== '',
516
+ systemPromptSummary: summarizeSystemPrompt(resolved.systemPrompt),
517
+ };
518
+ },
477
519
  };
478
520
  // T7: the command child activates ONLY when a command registry is composed
479
521
  // (conditional child activation — `commands` must NOT join the top-level
@@ -481,5 +523,13 @@ export function apply(ctx, config) {
481
523
  ctx.inject(['commands'], (commandCtx) => {
482
524
  registerAdvisorCommands(commandCtx.commands, controller);
483
525
  });
526
+ // T1 (plan dsh-advisor-tui-client-n8): the dsh-tui client seam — the
527
+ // `tuiCommandTrees` /advisor provider (zh/en `/`-menu description +
528
+ // `on|off|status|config` completion). Runs AFTER the single-reviewer
529
+ // claim, so the tree registers at most once per process (duplicate-root
530
+ // registration would throw in the host registry). The inject is
531
+ // conditional like `commands`/`settings`/`typert`: profiles without the
532
+ // `dsh-tui-command-trees` row keep working (clean no-op).
533
+ installTuiClient(ctx);
484
534
  }
485
535
  //# 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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"}
package/lib/tui.d.ts ADDED
@@ -0,0 +1,60 @@
1
+ /**
2
+ * dsh-tui client surface (plan dsh-advisor-tui-client-n8, T1) — the
3
+ * `tuiCommandTrees` /advisor provider.
4
+ *
5
+ * In a `dsh --profile dsh-tui` terminal session the plugin's `/advisor`
6
+ * command (registered through the conditional `ctx.inject(['commands'], ...)`
7
+ * child) already lands in the TUI `/` menu via the command-registry merge.
8
+ * What the TUI cannot infer is the LOCALIZED row description and the typed
9
+ * subcommand COMPLETION — those come from the optional `tuiCommandTrees`
10
+ * host service (`src/dsh-adapter/command-trees.ts` in dsh-TUI): a provider
11
+ * declares `root`, zh/en `descriptions`, and a `children(canonicalPath)`
12
+ * completion tree (root at index 0; the TUI asks at depth 2 when completing
13
+ * `/advisor <sub> ⋯`).
14
+ *
15
+ * This module is the advisor's TUI seam: `installTuiClient` conditionally
16
+ * injects `tuiCommandTrees` and registers the `/advisor` tree when the
17
+ * service exists; a profile without the `dsh-tui-command-trees` row (or any
18
+ * non-TUI host) gets a clean no-op. The provider shapes are minimal LOCAL
19
+ * structural copies of the dsh-TUI types — the advisor MUST NOT import
20
+ * `@deepseek-harness-tui/dsh-tui` (zero new peers, plan Global Constraint),
21
+ * so drift against the upstream shape is bounded to the structural cast at
22
+ * the inject boundary and pinned by `tests/tui-client.test.ts`.
23
+ *
24
+ * @module dsh-advisor/tui
25
+ */
26
+ import type { Context } from '@deepseek-ai/cordis';
27
+ /** Localized (zh/en) descriptions — structural mirror of dsh-TUI's
28
+ * `LocalizedDescriptions` (the TUI `/` row + completion descriptions). */
29
+ export type TuiLocalizedDescriptions = Readonly<Partial<Record<'zh' | 'en', string>>>;
30
+ /** One completion node — structural mirror of dsh-TUI's
31
+ * `CommandCompletionNode` (`src/commands.ts` in dsh-TUI). */
32
+ export interface TuiCommandCompletionNode {
33
+ name: string;
34
+ aliases?: readonly string[];
35
+ description: string;
36
+ descriptions?: TuiLocalizedDescriptions;
37
+ tag?: string;
38
+ descriptionKey?: string;
39
+ }
40
+ /** A `/`-menu command tree provider — structural mirror of dsh-TUI's
41
+ * `TuiCommandTreeProvider`. `children` receives the canonical path with the
42
+ * root at index 0. */
43
+ export interface TuiCommandTreeProvider {
44
+ root: string;
45
+ descriptions?: TuiLocalizedDescriptions;
46
+ children(canonicalPath: readonly string[]): readonly TuiCommandCompletionNode[];
47
+ }
48
+ /** The `/advisor` tree root (matches the command registry name). */
49
+ export declare const ADVISOR_TUI_ROOT = "advisor";
50
+ /**
51
+ * Install the advisor's TUI client surface: register the `/advisor`
52
+ * `tuiCommandTrees` provider when the host service exists (conditional
53
+ * inject; absent service → clean no-op). Called from `apply()` AFTER the
54
+ * single-reviewer claim, so the tree registers at most once per process
55
+ * (a duplicate-root registration would throw in the host registry). The
56
+ * structural accessor keeps the inject key in the standard position: the
57
+ * cordis Context has no `tuiCommandTrees` augmentation in this repo, so the
58
+ * service is read through a local structural cast.
59
+ */
60
+ export declare function installTuiClient(ctx: Context): void;
package/lib/tui.js ADDED
@@ -0,0 +1,113 @@
1
+ /**
2
+ * dsh-tui client surface (plan dsh-advisor-tui-client-n8, T1) — the
3
+ * `tuiCommandTrees` /advisor provider.
4
+ *
5
+ * In a `dsh --profile dsh-tui` terminal session the plugin's `/advisor`
6
+ * command (registered through the conditional `ctx.inject(['commands'], ...)`
7
+ * child) already lands in the TUI `/` menu via the command-registry merge.
8
+ * What the TUI cannot infer is the LOCALIZED row description and the typed
9
+ * subcommand COMPLETION — those come from the optional `tuiCommandTrees`
10
+ * host service (`src/dsh-adapter/command-trees.ts` in dsh-TUI): a provider
11
+ * declares `root`, zh/en `descriptions`, and a `children(canonicalPath)`
12
+ * completion tree (root at index 0; the TUI asks at depth 2 when completing
13
+ * `/advisor <sub> ⋯`).
14
+ *
15
+ * This module is the advisor's TUI seam: `installTuiClient` conditionally
16
+ * injects `tuiCommandTrees` and registers the `/advisor` tree when the
17
+ * service exists; a profile without the `dsh-tui-command-trees` row (or any
18
+ * non-TUI host) gets a clean no-op. The provider shapes are minimal LOCAL
19
+ * structural copies of the dsh-TUI types — the advisor MUST NOT import
20
+ * `@deepseek-harness-tui/dsh-tui` (zero new peers, plan Global Constraint),
21
+ * so drift against the upstream shape is bounded to the structural cast at
22
+ * the inject boundary and pinned by `tests/tui-client.test.ts`.
23
+ *
24
+ * @module dsh-advisor/tui
25
+ */
26
+ /** The `/advisor` tree root (matches the command registry name). */
27
+ export const ADVISOR_TUI_ROOT = 'advisor';
28
+ /** The four typed `/advisor` subcommands surfaced as completion children.
29
+ * Bare `/advisor` (toggle) is the empty-argument default, not a completion
30
+ * child (compass S1); `USAGE` is the unknown-subcommand fallback, not a
31
+ * named command. */
32
+ const ADVISOR_SUBCOMMANDS = ['on', 'off', 'status', 'config'];
33
+ /** zh/en copy for the `/` menu row (shown via the host's `descriptions(root)`). */
34
+ const ADVISOR_TUI_DESCRIPTIONS = {
35
+ zh: '按会话运行的评审顾问:开启 / 关闭 / 状态 / 配置',
36
+ en: 'Per-session advisor: enable, disable, status, or config',
37
+ };
38
+ /** zh/en copy per completion node. `description` is the plain fallback the
39
+ * node carries; `descriptions` is the localized map the TUI prefers. */
40
+ const SUBCOMMAND_DESCRIPTIONS = {
41
+ on: {
42
+ description: 'Enable the advisor for this session',
43
+ descriptions: {
44
+ zh: '为本会话启用顾问',
45
+ en: 'Enable the advisor for this session',
46
+ },
47
+ },
48
+ off: {
49
+ description: 'Disable the advisor for this session',
50
+ descriptions: {
51
+ zh: '为本会话禁用顾问',
52
+ en: 'Disable the advisor for this session',
53
+ },
54
+ },
55
+ status: {
56
+ description: 'Show per-session advisor status (state, model, runtime, pending, last activity)',
57
+ descriptions: {
58
+ zh: '查看本会话顾问状态(开关、模型、运行态、待处理、最近活动)',
59
+ en: 'Show per-session advisor status (state, model, runtime, pending, last activity)',
60
+ },
61
+ },
62
+ config: {
63
+ description: 'Show the composed advisor config (settings readback)',
64
+ descriptions: {
65
+ zh: '查看组合后的顾问配置(设置回读)',
66
+ en: 'Show the composed advisor config (settings readback)',
67
+ },
68
+ },
69
+ };
70
+ /** The `/advisor` completion tree. `children` NEVER throws: unknown paths and
71
+ * a bare `[]` return an empty list (leaves have no deeper completion — the
72
+ * TUI asks at depth 2). */
73
+ const advisorTree = {
74
+ root: ADVISOR_TUI_ROOT,
75
+ descriptions: ADVISOR_TUI_DESCRIPTIONS,
76
+ children(canonicalPath) {
77
+ // Root at index 0: only `['advisor']` asks for the subcommand list.
78
+ if (canonicalPath.length !== 1 || canonicalPath[0] !== ADVISOR_TUI_ROOT)
79
+ return [];
80
+ return ADVISOR_SUBCOMMANDS.map((name) => ({
81
+ name,
82
+ description: SUBCOMMAND_DESCRIPTIONS[name].description,
83
+ descriptions: SUBCOMMAND_DESCRIPTIONS[name].descriptions,
84
+ }));
85
+ },
86
+ };
87
+ /**
88
+ * Install the advisor's TUI client surface: register the `/advisor`
89
+ * `tuiCommandTrees` provider when the host service exists (conditional
90
+ * inject; absent service → clean no-op). Called from `apply()` AFTER the
91
+ * single-reviewer claim, so the tree registers at most once per process
92
+ * (a duplicate-root registration would throw in the host registry). The
93
+ * structural accessor keeps the inject key in the standard position: the
94
+ * cordis Context has no `tuiCommandTrees` augmentation in this repo, so the
95
+ * service is read through a local structural cast.
96
+ */
97
+ export function installTuiClient(ctx) {
98
+ ctx.inject(['tuiCommandTrees'], (tctx) => {
99
+ const trees = tctx.tuiCommandTrees;
100
+ if (trees === undefined)
101
+ return;
102
+ try {
103
+ return trees.register(advisorTree);
104
+ }
105
+ catch (error) {
106
+ if (!(error instanceof Error) || !error.message.includes('already registered'))
107
+ throw error;
108
+ tctx.logger('advisor').debug('advisor tui tree already registered — no tree on this fiber (multi-fiber dedupe)');
109
+ return () => { };
110
+ }
111
+ });
112
+ }
113
+ //# sourceMappingURL=tui.js.map
package/lib/tui.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tui.js","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AA4BH,oEAAoE;AACpE,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAA;AAEzC;;;oBAGoB;AACpB,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAA;AAItE,mFAAmF;AACnF,MAAM,wBAAwB,GAA6B;IACzD,EAAE,EAAE,8BAA8B;IAClC,EAAE,EAAE,yDAAyD;CAC9D,CAAA;AAED;wEACwE;AACxE,MAAM,uBAAuB,GAAyG;IACpI,EAAE,EAAE;QACF,WAAW,EAAE,qCAAqC;QAClD,YAAY,EAAE;YACZ,EAAE,EAAE,UAAU;YACd,EAAE,EAAE,qCAAqC;SAC1C;KACF;IACD,GAAG,EAAE;QACH,WAAW,EAAE,sCAAsC;QACnD,YAAY,EAAE;YACZ,EAAE,EAAE,UAAU;YACd,EAAE,EAAE,sCAAsC;SAC3C;KACF;IACD,MAAM,EAAE;QACN,WAAW,EAAE,iFAAiF;QAC9F,YAAY,EAAE;YACZ,EAAE,EAAE,+BAA+B;YACnC,EAAE,EAAE,iFAAiF;SACtF;KACF;IACD,MAAM,EAAE;QACN,WAAW,EAAE,sDAAsD;QACnE,YAAY,EAAE;YACZ,EAAE,EAAE,kBAAkB;YACtB,EAAE,EAAE,sDAAsD;SAC3D;KACF;CACF,CAAA;AAED;;2BAE2B;AAC3B,MAAM,WAAW,GAA2B;IAC1C,IAAI,EAAE,gBAAgB;IACtB,YAAY,EAAE,wBAAwB;IACtC,QAAQ,CAAC,aAAgC;QACvC,oEAAoE;QACpE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,gBAAgB;YAAE,OAAO,EAAE,CAAA;QAClF,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACxC,IAAI;YACJ,WAAW,EAAE,uBAAuB,CAAC,IAAI,CAAC,CAAC,WAAW;YACtD,YAAY,EAAE,uBAAuB,CAAC,IAAI,CAAC,CAAC,YAAY;SACzD,CAAC,CAAC,CAAA;IACL,CAAC;CACF,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAY;IAC3C,GAAG,CAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE;QACvC,MAAM,KAAK,GAAI,IAA6F,CAAC,eAAe,CAAA;QAC5H,IAAI,KAAK,KAAK,SAAS;YAAE,OAAM;QAC/B,IAAI,CAAC;YACH,OAAO,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QACpC,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,kFAAkF,CAAC,CAAA;YAChH,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.1.3",
3
+ "version": "0.2.0",
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": {