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/README.i18n.yaml +2 -2
- package/README.md +61 -244
- package/README.zh.md +60 -109
- package/lib/advisor-runtime.d.ts +34 -26
- package/lib/advisor-runtime.js +56 -32
- package/lib/advisor-runtime.js.map +1 -1
- package/lib/client/advisor-store.d.ts +1 -1
- package/lib/client.js +6 -1
- package/lib/commands.d.ts +48 -0
- package/lib/commands.js +51 -2
- package/lib/commands.js.map +1 -1
- package/lib/index.d.ts +3 -0
- package/lib/index.js +58 -8
- package/lib/index.js.map +1 -1
- package/lib/tui.d.ts +60 -0
- package/lib/tui.js +113 -0
- package/lib/tui.js.map +1 -0
- package/package.json +1 -1
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
|
|
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
|
}
|
package/lib/commands.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAkBH;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAA;IAChC,IAAI,QAAQ,KAAK,EAAE;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;IAC9C,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IAC5C,IAAI,QAAQ,KAAK,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;IAC9C,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;IACpD,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;IACpD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;AAC1B,CAAC;AAED,8EAA8E;AAC9E,6DAA6D;AAC7D,8EAA8E;AAE9E;;;;;;GAMG;AACH,MAAM,OAAO,uBAAuB;IAGd;IAFH,SAAS,GAAG,IAAI,GAAG,EAAmB,CAAA;IAEvD,YAAoB,aAAsB;QAAtB,kBAAa,GAAb,aAAa,CAAS;IAAG,CAAC;IAE9C,sEAAsE;IACtE,SAAS,CAAC,SAAiB;QACzB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,aAAa,CAAA;IAC5D,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CAAC,OAAgB;QAC/B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAA;IAC9B,CAAC;IAED,wCAAwC;IACxC,GAAG,CAAC,SAAiB,EAAE,OAAgB;QACrC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IACxC,CAAC;IAED,sEAAsE;IACtE,KAAK,CAAC,SAAiB;QACrB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAClC,CAAC;CACF;AAgCD;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAA4B;IAC5D,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAA;IACrE,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,cAAc,EAAE,CAAC,CAAA;IACvF,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;IACzD,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,YAAY,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IAClF,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,aAAa,GAAG,OAAO,EAAE,CAAC,CAAA;IACxD,KAAK,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;IAC7H,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAoCD;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAClD,2EAA2E;IAC3E,oEAAoE;IACpE,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAClE,IAAI,SAAS,CAAC,MAAM,IAAI,EAAE;QAAE,OAAO,SAAS,CAAA;IAC5C,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAA;AACrC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAA6B;IAC7D,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAA;IACnF,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;IACzD,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;IAChD,KAAK,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,gBAAgB,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAA;IACxG,0EAA0E;IAC1E,2EAA2E;IAC3E,uDAAuD;IACvD,KAAK,CAAC,IAAI,CACR,CAAC,MAAM,CAAC,eAAe;QACrB,CAAC,CAAC,yBAAyB;QAC3B,CAAC,CAAC,MAAM,CAAC,mBAAmB,KAAK,EAAE;YACjC,CAAC,CAAC,oCAAoC;YACtC,CAAC,CAAC,kBAAkB,MAAM,CAAC,mBAAmB,GAAG,CACtD,CAAA;IACD,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,cAAc,EAAE,CAAC,CAAA;IACvF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,6GAA6G,CAAC,CAAA;IACzH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AA+BD,uDAAuD;AACvD,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,wCAAwC;IACxC,yDAAyD;IACzD,yDAAyD;IACzD,0DAA0D;IAC1D,qGAAqG;IACrG,0EAA0E;CAC3E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAEZ;;;;;GAKG;AACH,SAAS,UAAU,CAAC,MAA4B;IAC9C,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS;QAAE,OAAO,8BAA8B,CAAA;IAC9E,OAAO,8DAA8D,MAAM,CAAC,cAAc,EAAE,CAAA;AAC9F,CAAC;AAED,4DAA4D;AAC5D,SAAS,2BAA2B,CAAC,UAAoC;IACvE,OAAO,CAAC,UAA6B,EAAiB,EAAE;QACtD,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA;QAC7C,QAAQ,mBAAmB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;YACtD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;gBAC9C,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAA;gBAC5B,yDAAyD;gBACzD,UAAU,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;gBACjG,IAAI,CAAC,IAAI;oBAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAAA;gBAC5E,kEAAkE;gBAClE,wDAAwD;gBACxD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAA;YAC/E,CAAC;YACD,KAAK,IAAI,CAAC,CAAC,CAAC;gBACV,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;gBAC9C,iEAAiE;gBACjE,uEAAuE;gBACvE,qEAAqE;gBACrE,oEAAoE;gBACpE,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO;uBAC/B,CAAC,MAAM,CAAC,aAAa,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,KAAK,iBAAiB,CAAC,CAAA;gBACtF,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;oBACrC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,yCAAyC,EAAE,CAAA;gBAC7E,CAAC;gBACD,UAAU,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;gBAC9E,oEAAoE;gBACpE,oEAAoE;gBACpE,kEAAkE;gBAClE,kBAAkB;gBAClB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAA;YAC/E,CAAC;YACD,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;gBAC9C,IAAI,CAAC,MAAM,CAAC,OAAO;oBAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,0CAA0C,EAAE,CAAA;gBACjG,UAAU,CAAC,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;gBACvC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAAA;YACnE,CAAC;YACD,KAAK,QAAQ;gBACX,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAA;YACtF,KAAK,QAAQ;gBACX,uEAAuE;gBACvE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,EAAE,CAAA;YAC7E,KAAK,OAAO;gBACV,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;QAC3C,CAAC;IACH,CAAC,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CACrC,QAAgC,EAChC,UAAoC;IAEpC,OAAO,QAAQ,CAAC,QAAQ,CAAC;QACvB,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,6DAA6D;QAC1E,KAAK,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE;QACzC,OAAO,EAAE,2BAA2B,CAAC,UAAU,CAAC;KACjD,CAAC,CAAA;AACJ,CAAC"}
|
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
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
maxDeltaMessages
|
|
146
|
-
|
|
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.
|
|
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": {
|