dsh-advisor 0.5.2 → 0.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -4
- package/README.zh.md +8 -4
- package/lib/advisor-runtime.d.ts +111 -4
- package/lib/advisor-runtime.js +172 -10
- package/lib/advisor-runtime.js.map +1 -1
- package/lib/client/advisor-card.d.ts +2 -1
- package/lib/client/advisor-store.d.ts +32 -1
- package/lib/client/locales.d.ts +4 -0
- package/lib/client.js +77 -6
- package/lib/commands.d.ts +34 -1
- package/lib/commands.js +34 -1
- package/lib/commands.js.map +1 -1
- package/lib/config.d.ts +37 -2
- package/lib/config.js +10 -3
- package/lib/config.js.map +1 -1
- package/lib/gateway.d.ts +7 -5
- package/lib/gateway.js +17 -5
- package/lib/gateway.js.map +1 -1
- package/lib/index.js +46 -10
- package/lib/index.js.map +1 -1
- package/lib/tui-settings.d.ts +11 -6
- package/lib/tui-settings.js +36 -6
- package/lib/tui-settings.js.map +1 -1
- package/package.json +21 -21
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
[](https://www.npmjs.com/package/dsh-advisor)
|
|
6
6
|
[](LICENSE)
|
|
7
7
|

|
|
8
|
-

|
|
9
9
|

|
|
10
10
|
[](https://dshfind.com/plugins/omdsh-dev/dsh-advisor?ref=badge)
|
|
11
11
|
|
|
@@ -28,7 +28,7 @@ Same plugin, either front end — the only difference is the `--profile` flag. P
|
|
|
28
28
|
|
|
29
29
|
### Configuration
|
|
30
30
|
|
|
31
|
-
Edit the `config` of the `advisor` row in your profile's patch layer (`~/.dsh/profiles/<profile>/cordis.patch.yml`). All
|
|
31
|
+
Edit the `config` of the `advisor` row in your profile's patch layer (`~/.dsh/profiles/<profile>/cordis.patch.yml`). All seven fields are schema-volatile live fields (dsh ≥ 0.1.7-rc.1): the web card and the TUI `/settings` screen write this same entry config — persisted in the profile patch, committed without a remount. (A pre-0.1.7 `$DSH_HOME/settings.yaml` `advisor:` section no longer exists: dsh imports it into the active profile once and renames the file `.imported`.)
|
|
32
32
|
|
|
33
33
|
> **Breaking change (2026-09-26): the `enabled` config key was removed.** The plugin-row enable/disable toggle in the host UI is the master switch — a running row is enabled, and there is nothing left to configure for it. A stored profile still carrying an `enabled:` line keeps working: the line is **silently ignored** (accepted, never read, never re-persisted — 2026-09-27 ruling, no manual deletion needed); the key is deprecated and the write paths no longer persist it.
|
|
34
34
|
|
|
@@ -41,17 +41,21 @@ Edit the `config` of the `advisor` row in your profile's patch layer (`~/.dsh/pr
|
|
|
41
41
|
systemPrompt: "" # optional; "" = built-in reviewer prompt
|
|
42
42
|
immuneTurns: 3 # int ≥ 0, default 3 — cooldown after a delivered steer
|
|
43
43
|
maxDeltaMessages: 60 # int ≥ 0, default 60 — delta window; 0 = unbounded
|
|
44
|
+
maxTokens: 768 # int 128..16384, default 768 — token budget for one advisor review (issue #102)
|
|
45
|
+
proseFallback: false # boolean, default false — deliver a frame-less prose reply as a nit note (opt-in)
|
|
44
46
|
```
|
|
45
47
|
|
|
46
48
|
`provider` and `model` are **mandatory**: either missing or empty is a hard gate — the advisor never starts a model call and reports a disabled-with-reason status; unknown config keys are rejected.
|
|
47
49
|
|
|
50
|
+
If the advisor is enabled and its runtime looks healthy but it never speaks, check `/advisor status`: a non-zero `Dropped:` line names the class — `empty` replies mean a thinking model is exhausting the token budget on reasoning (raise `maxTokens`, int 128..16384; the issue reporter verified 4096 restores output), `unparsed` replies mean prose without a JSON frame is being dropped (enable `proseFallback`, which delivers the cleaned prose as a low-severity note; JSON frames stay primary). Details → [docs/configuration.md](docs/configuration.md).
|
|
51
|
+
|
|
48
52
|
The same keys are read and edited from **three surfaces** (one store — the advisor entry config above; every surface shares the same key set and the same hard gate, with the host-side gate as the final line of defense on every path):
|
|
49
53
|
|
|
50
54
|
1. **Plugin-row config** — the profile patch layer (`~/.dsh/profiles/<profile>/cordis.patch.yml`). This is where the config lives.
|
|
51
55
|
2. **dsh web Plugins page — the dsh-advisor bundle's own page** — the Advisor **card** (bundle key `dsh-advisor`), a flat settings form (the page's title/description come from the plugin's locale meta) with provider / model selects restricted to system-configured providers and their models, and the optional fields. Saving writes the advisor entry's config (landed through the config editor into the profile patch) and applies to running sessions immediately — no restart. The card requires a dsh web build whose shell declares the `plugins.bundle.config` card slot (dsh ≥ 0.1.7-rc.1) and loads packages that declare `dsh.client`; it reads and writes the config 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 a required field is empty.
|
|
52
56
|
3. **`/advisor` command** — per-session and ephemeral: it flips a session override and pins a per-session reviewer model, never the persisted config (see [Verify](#verify)).
|
|
53
57
|
|
|
54
|
-
In a **dsh-tui** profile the same
|
|
58
|
+
In a **dsh-tui** profile the same six keys are editable in the TUI `/settings` screen: run `dsh --profile dsh-tui`, open `/settings`, and edit the **Advisor** section (`provider` / `model` / `immuneTurns` / `maxDeltaMessages` / `maxTokens` / `proseFallback`, each with zh/en label + hint). Edits are staged and written on save through the revision-fenced `settings.mutate` into the same advisor entry config 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 the profile patch layer. 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 profile patch layer remains the edit path. `/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 leave `provider`/`model` empty — 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).
|
|
55
59
|
|
|
56
60
|

|
|
57
61
|
|
|
@@ -67,7 +71,7 @@ With the advisor installed and its plugin row enabled (the row switch on the Plu
|
|
|
67
71
|
/advisor toggle the advisor for this session
|
|
68
72
|
/advisor on enable the advisor for this session
|
|
69
73
|
/advisor off disable the advisor for this session
|
|
70
|
-
/advisor status show state, model, runtime status, pending count, last activity
|
|
74
|
+
/advisor status show state, model, runtime status, pending count, last activity, and drop counters when non-zero
|
|
71
75
|
/advisor model show the effective reviewer model and its source (session override or global default)
|
|
72
76
|
/advisor model set <provider> <model> pin a reviewer model for this session only
|
|
73
77
|
/advisor model reset drop the session pin and re-inherit the global defaults
|
package/README.zh.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
[](https://www.npmjs.com/package/dsh-advisor)
|
|
6
6
|
[](LICENSE)
|
|
7
7
|

|
|
8
|
-

|
|
9
9
|

|
|
10
10
|
[](https://dshfind.com/zh/plugins/omdsh-dev/dsh-advisor?ref=badge)
|
|
11
11
|
|
|
@@ -28,7 +28,7 @@ dsh plugin --profile dsh-tui add dsh-advisor # dsh-tui 终端 profile
|
|
|
28
28
|
|
|
29
29
|
### 配置
|
|
30
30
|
|
|
31
|
-
编辑 profile 补丁层(`~/.dsh/profiles/<profile>/cordis.patch.yml`)里 `advisor` 行的 `config
|
|
31
|
+
编辑 profile 补丁层(`~/.dsh/profiles/<profile>/cordis.patch.yml`)里 `advisor` 行的 `config`。七个字段全部是 schema-volatile 的 live 字段(dsh ≥ 0.1.7-rc.1):web 卡片与 TUI `/settings` 屏幕写入的就是这同一份 entry config——持久化在 profile 补丁层,无需重挂载即生效。(pre-0.1.7 的 `$DSH_HOME/settings.yaml` `advisor:` 分节已不存在:dsh 会在首次启动时把它导入活跃 profile 一次,并将该文件改名为 `.imported`。)
|
|
32
32
|
|
|
33
33
|
> **破坏性变更(2026-09-26):`enabled` 配置键已移除。** 宿主 UI 中插件行的启用/停用开关就是总开关——插件行在运行即启用,无需任何配置键。存量 profile 若仍携带 `enabled:` 行**继续正常工作**:该行会被**静默忽略**(接受但剥离,永不读取、永不回写——2026-09-27 裁决,无需手工删除);该键已废弃,写入路径不再持久化它。
|
|
34
34
|
|
|
@@ -41,17 +41,21 @@ dsh plugin --profile dsh-tui add dsh-advisor # dsh-tui 终端 profile
|
|
|
41
41
|
systemPrompt: "" # 可选;"" = 内置评审 prompt
|
|
42
42
|
immuneTurns: 3 # 整数 ≥ 0,默认 3 —— 打断性送达后的冷却步数
|
|
43
43
|
maxDeltaMessages: 60 # 整数 ≥ 0,默认 60 —— delta 窗口;0 = 无上限
|
|
44
|
+
maxTokens: 768 # 整数 128..16384,默认 768 —— 单次评审的 token 预算(issue #102)
|
|
45
|
+
proseFallback: false # 布尔,默认 false —— 无 JSON 帧时将散文回复作为 nit note 投递(opt-in)
|
|
44
46
|
```
|
|
45
47
|
|
|
46
48
|
`provider` 与 `model` 为**必填**:任一缺失或为空是一个硬门禁——advisor 不会发起任何模型调用,并报告带原因的禁用状态(disabled-with-reason);未知配置键会被拒绝。
|
|
47
49
|
|
|
50
|
+
若 advisor 已启用、runtime 状态正常却从不说话,请运行 `/advisor status`:非零的 `Dropped:` 行会指明类别——`empty`(空回复)表示思考型模型把 token 预算耗在了 reasoning 上(调高 `maxTokens`,整数 128..16384;issue 报告者实测 4096 可恢复产出);`unparsed`(无帧散文)表示正文不含 JSON 帧的回复被丢弃(开启 `proseFallback`,将清理后的散文作为低严重级 note 投递;JSON 帧始终优先)。详见 [docs/configuration.md](docs/configuration.md)。
|
|
51
|
+
|
|
48
52
|
同一组键可在**三个配置面**读取与编辑(只有一份存储——上面的 advisor entry config;各处使用同一组键与同一个硬门禁,宿主侧门禁始终是所有路径上的最后防线):
|
|
49
53
|
|
|
50
54
|
1. **插件行 config** —— profile 补丁层(`~/.dsh/profiles/<profile>/cordis.patch.yml`)。配置就存放在这里。
|
|
51
55
|
2. **dsh web 的「插件」页 —— dsh-advisor 组合包自己的页面** —— Advisor **卡片**(bundle key `dsh-advisor`),一个**平铺**的设置表单(页面标题/描述来自插件 locale 元数据),含只列出系统内已配置 provider 及其模型的 provider/model 选择框与可选字段。保存写入 advisor entry 的 config(经 config editor 落入 profile 补丁层),运行中的会话立即生效,无需重启。卡片要求 dsh web 构建的 shell 声明了 `plugins.bundle.config` 卡片 slot(dsh ≥ 0.1.7-rc.1)并能加载 `dsh.client` 声明包;它通过官方 `GatewayService` RPC 通道读写该配置(`/api/advisor/get` + `/api/advisor/set`),不受 settings 暴露白名单门控。卡片还会在必填字段为空时阻止保存。
|
|
52
56
|
3. **`/advisor` 指令** —— 按会话且临时:翻转的是会话级 override、并为会话钉住评审模型,从不修改持久化配置(见[验证](#验证))。
|
|
53
57
|
|
|
54
|
-
在 **dsh-tui** profile
|
|
58
|
+
在 **dsh-tui** profile 中,同样的六个键可在 TUI `/settings` 屏幕编辑:运行 `dsh --profile dsh-tui`、打开 `/settings`,编辑 **Advisor** 分节(`provider` / `model` / `immuneTurns` / `maxDeltaMessages` / `maxTokens` / `proseFallback`,每项均带中英文标签与提示)。编辑先暂存,保存时经 revision 栅栏保护的 `settings.mutate` 写入 web 卡片所写的同一份 advisor entry config,并 live 重应用、无需重启。`systemPrompt` **不是** TUI 字段(TUI text 控件为单行;多行 prompt 会被截断)——请经 web 卡片或 profile 补丁层编辑。该分节要求 dsh-tui ≥ v0.8.0(随 v0.8.0+ 组合包的 `dsh-tui-settings-sections` 行提供);旧版 dsh-tui 会干净地 no-op,profile 补丁层仍是编辑路径。`/advisor config` 仍是只读回读,seam 挂载时其编辑提示指向 `/settings` 屏幕。保存行为与 web 卡片不同:TUI seam 没有跨字段校验,一次保存可能把空 `provider`/`model` 写入——显式模型门禁会在运行时把它解析为 disabled-with-reason(可见于 `/advisor status` 与 `/advisor config`);web 卡片则会直接阻止这样的保存。完整参考 → [docs/configuration.md](docs/configuration.md)。
|
|
55
59
|
|
|
56
60
|

|
|
57
61
|
|
|
@@ -67,7 +71,7 @@ dsh --profile web --dump-config # 显示带 advisor 配置行的 "# == dsh-adv
|
|
|
67
71
|
/advisor toggle the advisor for this session
|
|
68
72
|
/advisor on enable the advisor for this session
|
|
69
73
|
/advisor off disable the advisor for this session
|
|
70
|
-
/advisor status show state, model, runtime status, pending count, last activity
|
|
74
|
+
/advisor status show state, model, runtime status, pending count, last activity, and drop counters when non-zero
|
|
71
75
|
/advisor model show the effective reviewer model and its source (session override or global default)
|
|
72
76
|
/advisor model set <provider> <model> pin a reviewer model for this session only
|
|
73
77
|
/advisor model reset drop the session pin and re-inherit the global defaults
|
package/lib/advisor-runtime.d.ts
CHANGED
|
@@ -10,9 +10,10 @@
|
|
|
10
10
|
* - a FIFO queue of pending transcript deltas (bounded — spec §6 "bounded
|
|
11
11
|
* backlog"; drop-newest when full);
|
|
12
12
|
* - a serialized async drain loop: one `llm.stream` call per delta with
|
|
13
|
-
* `{ provider, model, system, messages: [user delta], maxTokens
|
|
14
|
-
*
|
|
15
|
-
*
|
|
13
|
+
* `{ provider, model, system, messages: [user delta], maxTokens }` (the
|
|
14
|
+
* configured budget — {@link AdvisorRuntimeOptions.maxTokens}, default
|
|
15
|
+
* `ADVISOR_MAX_TOKENS`) and `purpose` left UNSET (KD-5 — an advisor call is
|
|
16
|
+
* an ordinary conversation request);
|
|
16
17
|
* - a call-level deadline on every `llm.stream` call (dsh-timeout `deadline`,
|
|
17
18
|
* fused with the dispose signal and raced per chunk): a hung provider stream
|
|
18
19
|
* times out instead of wedging the drain, and a timeout is a transient
|
|
@@ -20,6 +21,19 @@
|
|
|
20
21
|
* - KD-2 JSON-frame extraction: the first balanced `{…}` in the reply is
|
|
21
22
|
* parsed (tolerant of prose/fences), `note` must be non-empty (else
|
|
22
23
|
* drop+log), `severity` missing/invalid defaults to `nit`, no parse retry;
|
|
24
|
+
* the KD-I2 prose fallback (issue #102, opt-in — see
|
|
25
|
+
* {@link extractProseFallbackNote}) lets a reply that yields no valid
|
|
26
|
+
* frame note through as a nit note when the `proseFallback` option is on —
|
|
27
|
+
* no parseable frame at all, or frames whose note is empty/invalid; the
|
|
28
|
+
* JSON frame keeps priority (a usable frame note blocks the fallback), and
|
|
29
|
+
* the default (off) preserves the KD-2 drop semantics;
|
|
30
|
+
* - KD-I3 drop visibility (issue #102): a completed call whose reply yields
|
|
31
|
+
* no note is classified — EMPTY (body empty after trim; the classic case is
|
|
32
|
+
* a thinking model exhausting the token budget) vs UNPARSED (text present,
|
|
33
|
+
* no parseable frame, fallback off/rescued nothing) — counted with
|
|
34
|
+
* timestamps and warn-once hints, readable via the `emptyReplies` /
|
|
35
|
+
* `unparsedReplies` / `lastEmptyReplyAt` / `lastUnparsedReplyAt` getters
|
|
36
|
+
* (the T7 `/advisor status` surface);
|
|
23
37
|
* - the KD-5 failure policy: transient → 1 retry with a short backoff → drop;
|
|
24
38
|
* 3 consecutive dropped deltas → flush the pending backlog (never stall);
|
|
25
39
|
* permanent errors (`invalid_request_error`, model-not-found, "is not
|
|
@@ -90,6 +104,24 @@ export interface AdvisorRuntimeOptions {
|
|
|
90
104
|
readonly callTimeoutMs?: number;
|
|
91
105
|
/** Bounded backlog (spec §6); default 32 — drop-newest with a log when full. */
|
|
92
106
|
readonly maxQueued?: number;
|
|
107
|
+
/**
|
|
108
|
+
* Token budget for one advisor call (KD-I1, issue #102 — the config key
|
|
109
|
+
* `maxTokens` threaded through): when omitted the code default
|
|
110
|
+
* {@link ADVISOR_MAX_TOKENS} (768) applies, keeping every pre-existing
|
|
111
|
+
* 768 pin valid. Bounds (128..16384) are enforced by the config schema;
|
|
112
|
+
* the runtime threads the value as-is.
|
|
113
|
+
*/
|
|
114
|
+
readonly maxTokens?: number;
|
|
115
|
+
/**
|
|
116
|
+
* Opt-in prose fallback (KD-I2, issue #102): when true, a completed call
|
|
117
|
+
* whose reply has text but yields NO valid note from its JSON frames — no
|
|
118
|
+
* parseable frame at all, or frames whose note is empty/invalid — delivers
|
|
119
|
+
* the cleaned prose body ({@link extractProseFallbackNote}: trim → strip a
|
|
120
|
+
* surrounding fence → cap) as a `nit` note through the normal
|
|
121
|
+
* guard/delivery pipeline. Default false — the KD-2 drop semantics stay
|
|
122
|
+
* byte-identical.
|
|
123
|
+
*/
|
|
124
|
+
readonly proseFallback?: boolean;
|
|
93
125
|
/** The llm service (`ctx.llm`); injectable for tests. */
|
|
94
126
|
readonly llm: AdvisorLlm;
|
|
95
127
|
/**
|
|
@@ -121,13 +153,23 @@ export interface AdvisorRuntimeOptions {
|
|
|
121
153
|
* guard stays re-bounded downstream: `extractAdviceNote` caps the note at
|
|
122
154
|
* `ADVISOR_NOTE_MAX_CHARS` and `buildAdvisorMessage` bounds the notice
|
|
123
155
|
* summary via `boundContextSummary`.
|
|
156
|
+
*
|
|
157
|
+
* KD-I1 (issue #102, user direction 2026-09-29): KD-6's "code invariant, not
|
|
158
|
+
* an operator switch" ruling was superseded again — the budget is now
|
|
159
|
+
* operator-configurable (config key `maxTokens`, bounds 128..16384, Settings
|
|
160
|
+
* UI in Task 3) because thinking models behind third-party gateways exhaust a
|
|
161
|
+
* fixed budget on reasoning and return an EMPTY body (finish: max-tokens).
|
|
162
|
+
* This constant remains the CODE DEFAULT for unconfigured/plain entries: the
|
|
163
|
+
* runtime falls back to it, so default behavior (and every existing 768 pin)
|
|
164
|
+
* is unchanged.
|
|
124
165
|
*/
|
|
125
166
|
export declare const ADVISOR_MAX_TOKENS = 768;
|
|
126
167
|
/**
|
|
127
168
|
* One extracted note's length cap (qc3 F-2 / qc2 S-1): a verbose/rogue advisor
|
|
128
169
|
* reply must not inject an unbounded user-role message into the primary
|
|
129
170
|
* session (the token budget is now matched to this cap — 768). Truncated with
|
|
130
|
-
* a '…' marker.
|
|
171
|
+
* a '…' marker. The KD-I2 prose fallback note is capped by the same bound —
|
|
172
|
+
* a raised generation budget must not enlarge the injection surface.
|
|
131
173
|
*/
|
|
132
174
|
export declare const ADVISOR_NOTE_MAX_CHARS = 768;
|
|
133
175
|
/**
|
|
@@ -144,6 +186,25 @@ export declare const ADVISOR_NOTE_MAX_CHARS = 768;
|
|
|
144
186
|
* session). Never throws.
|
|
145
187
|
*/
|
|
146
188
|
export declare function extractAdviceNote(reply: string): AdviceNote | undefined;
|
|
189
|
+
/**
|
|
190
|
+
* The KD-I2 prose fallback cleanup (issue #102; opt-in — see
|
|
191
|
+
* {@link AdvisorRuntimeOptions.proseFallback}). Frozen-spec supersession
|
|
192
|
+
* note: the strict KD-2 JSON-frame requirement stays the DEFAULT — this
|
|
193
|
+
* function is applied at the extraction call site ONLY when
|
|
194
|
+
* {@link extractAdviceNote} extracted no valid note (no parseable frame, or
|
|
195
|
+
* every frame's note empty/invalid) AND the flag is on, so a reply whose
|
|
196
|
+
* frame yields a usable note still delivers that note.
|
|
197
|
+
*
|
|
198
|
+
* Cleanup: trim → strip ONE surrounding markdown fence (an unterminated or
|
|
199
|
+
* non-surrounding fence is kept as-is) → cap at {@link ADVISOR_NOTE_MAX_CHARS}
|
|
200
|
+
* with a '…' marker (the same injection bound as {@link extractAdviceNote} —
|
|
201
|
+
* a raised generation budget must not enlarge the primary session's injection
|
|
202
|
+
* surface). An empty result (whitespace-only reply, fence-only reply) is NOT
|
|
203
|
+
* prose: the caller classifies it as an EMPTY drop (KD-I3), never as an
|
|
204
|
+
* unparsed/prose case. Severity is always `nit` — prose carries no structured
|
|
205
|
+
* severity. Never throws.
|
|
206
|
+
*/
|
|
207
|
+
export declare function extractProseFallbackNote(reply: string): AdviceNote | undefined;
|
|
147
208
|
/**
|
|
148
209
|
* Per-session advisor runtime: queue deltas, async drain, `llm.stream` call,
|
|
149
210
|
* JSON-frame note extraction, and the KD-5 failure policy. All async work is
|
|
@@ -153,6 +214,8 @@ export declare class AdvisorRuntime {
|
|
|
153
214
|
private readonly provider;
|
|
154
215
|
private readonly model;
|
|
155
216
|
private readonly systemPrompt;
|
|
217
|
+
private readonly maxTokens;
|
|
218
|
+
private readonly proseFallback;
|
|
156
219
|
private readonly retryBackoffMs;
|
|
157
220
|
private readonly callTimeoutMs;
|
|
158
221
|
private readonly maxQueued;
|
|
@@ -181,6 +244,20 @@ export declare class AdvisorRuntime {
|
|
|
181
244
|
private drainPromise;
|
|
182
245
|
/** Epoch-ms of the last note accepted by the emission guard (T7 status). */
|
|
183
246
|
private lastActivityAt;
|
|
247
|
+
/**
|
|
248
|
+
* KD-I3 drop counters (issue #102): EMPTY vs UNPARSED no-note drops with
|
|
249
|
+
* their last-occurrence timestamps — the "advisor is running but never
|
|
250
|
+
* speaks" visibility surface (T2 renders them on `/advisor status`). Only
|
|
251
|
+
* COMPLETED model calls are classified here; transport drops stay in the
|
|
252
|
+
* KD-5 consecutive-drop path.
|
|
253
|
+
*/
|
|
254
|
+
private emptyReplyCount;
|
|
255
|
+
private unparsedReplyCount;
|
|
256
|
+
private lastEmptyReplyTimestamp;
|
|
257
|
+
private lastUnparsedReplyTimestamp;
|
|
258
|
+
/** Warn-once latches, one per drop class per runtime (KD-I3). */
|
|
259
|
+
private emptyReplyWarned;
|
|
260
|
+
private unparsedReplyWarned;
|
|
184
261
|
constructor(options: AdvisorRuntimeOptions);
|
|
185
262
|
/** Current per-session status (T7 `/advisor status` surface). */
|
|
186
263
|
status(): AdvisorRuntimeStatus;
|
|
@@ -191,6 +268,23 @@ export declare class AdvisorRuntime {
|
|
|
191
268
|
* emission guard, or `undefined` before the first accepted note.
|
|
192
269
|
*/
|
|
193
270
|
get lastActivity(): number | undefined;
|
|
271
|
+
/**
|
|
272
|
+
* KD-I3 (issue #102) — replies dropped because the body was empty after
|
|
273
|
+
* trim (mostly a reasoning model exhausting the token budget). Read-only
|
|
274
|
+
* status outlet, same style as `pendingCount`/`lastActivity`.
|
|
275
|
+
*/
|
|
276
|
+
get emptyReplies(): number;
|
|
277
|
+
/**
|
|
278
|
+
* KD-I3 (issue #102) — replies dropped because no valid note was extracted
|
|
279
|
+
* (no parseable JSON frame, or frames whose note is empty/invalid) and the
|
|
280
|
+
* prose fallback delivered nothing (`proseFallback` off, or on with an
|
|
281
|
+
* empty cleanup result). Read-only status outlet.
|
|
282
|
+
*/
|
|
283
|
+
get unparsedReplies(): number;
|
|
284
|
+
/** KD-I3 — epoch-ms of the last EMPTY-reply drop, `undefined` before the first. */
|
|
285
|
+
get lastEmptyReplyAt(): number | undefined;
|
|
286
|
+
/** KD-I3 — epoch-ms of the last UNPARSED-reply drop, `undefined` before the first. */
|
|
287
|
+
get lastUnparsedReplyAt(): number | undefined;
|
|
194
288
|
/**
|
|
195
289
|
* Queue one rendered transcript delta (from the T3 observer's `onDelta`).
|
|
196
290
|
* While `quota_exhausted`, deltas queue up (bounded) but the drain is never
|
|
@@ -226,6 +320,19 @@ export declare class AdvisorRuntime {
|
|
|
226
320
|
private processDelta;
|
|
227
321
|
/** One model call: build options, stream text, extract the note (KD-2). */
|
|
228
322
|
private callModel;
|
|
323
|
+
/**
|
|
324
|
+
* KD-I3: count + timestamp an EMPTY-reply drop and warn ONCE per runtime
|
|
325
|
+
* with the fix hint (raise the budget); repeats fall back to a debug line.
|
|
326
|
+
* The finish reason rides along — `max-tokens` vs `stop` is the
|
|
327
|
+
* budget-exhausted vs genuinely-empty tell (issue #102 evidence).
|
|
328
|
+
*/
|
|
329
|
+
private recordEmptyReply;
|
|
330
|
+
/**
|
|
331
|
+
* KD-I3: count + timestamp an UNPARSED-reply drop and warn ONCE per runtime
|
|
332
|
+
* with the fix hint (enable the prose fallback); repeats fall back to the
|
|
333
|
+
* original KD-2 debug line.
|
|
334
|
+
*/
|
|
335
|
+
private recordUnparsedReply;
|
|
229
336
|
private buildOptions;
|
|
230
337
|
/**
|
|
231
338
|
* Capability-gate the `reasoningEffort: 'off'` option (qc2 W-1 / qc1 W-1 /
|
package/lib/advisor-runtime.js
CHANGED
|
@@ -10,9 +10,10 @@
|
|
|
10
10
|
* - a FIFO queue of pending transcript deltas (bounded — spec §6 "bounded
|
|
11
11
|
* backlog"; drop-newest when full);
|
|
12
12
|
* - a serialized async drain loop: one `llm.stream` call per delta with
|
|
13
|
-
* `{ provider, model, system, messages: [user delta], maxTokens
|
|
14
|
-
*
|
|
15
|
-
*
|
|
13
|
+
* `{ provider, model, system, messages: [user delta], maxTokens }` (the
|
|
14
|
+
* configured budget — {@link AdvisorRuntimeOptions.maxTokens}, default
|
|
15
|
+
* `ADVISOR_MAX_TOKENS`) and `purpose` left UNSET (KD-5 — an advisor call is
|
|
16
|
+
* an ordinary conversation request);
|
|
16
17
|
* - a call-level deadline on every `llm.stream` call (dsh-timeout `deadline`,
|
|
17
18
|
* fused with the dispose signal and raced per chunk): a hung provider stream
|
|
18
19
|
* times out instead of wedging the drain, and a timeout is a transient
|
|
@@ -20,6 +21,19 @@
|
|
|
20
21
|
* - KD-2 JSON-frame extraction: the first balanced `{…}` in the reply is
|
|
21
22
|
* parsed (tolerant of prose/fences), `note` must be non-empty (else
|
|
22
23
|
* drop+log), `severity` missing/invalid defaults to `nit`, no parse retry;
|
|
24
|
+
* the KD-I2 prose fallback (issue #102, opt-in — see
|
|
25
|
+
* {@link extractProseFallbackNote}) lets a reply that yields no valid
|
|
26
|
+
* frame note through as a nit note when the `proseFallback` option is on —
|
|
27
|
+
* no parseable frame at all, or frames whose note is empty/invalid; the
|
|
28
|
+
* JSON frame keeps priority (a usable frame note blocks the fallback), and
|
|
29
|
+
* the default (off) preserves the KD-2 drop semantics;
|
|
30
|
+
* - KD-I3 drop visibility (issue #102): a completed call whose reply yields
|
|
31
|
+
* no note is classified — EMPTY (body empty after trim; the classic case is
|
|
32
|
+
* a thinking model exhausting the token budget) vs UNPARSED (text present,
|
|
33
|
+
* no parseable frame, fallback off/rescued nothing) — counted with
|
|
34
|
+
* timestamps and warn-once hints, readable via the `emptyReplies` /
|
|
35
|
+
* `unparsedReplies` / `lastEmptyReplyAt` / `lastUnparsedReplyAt` getters
|
|
36
|
+
* (the T7 `/advisor status` surface);
|
|
23
37
|
* - the KD-5 failure policy: transient → 1 retry with a short backoff → drop;
|
|
24
38
|
* 3 consecutive dropped deltas → flush the pending backlog (never stall);
|
|
25
39
|
* permanent errors (`invalid_request_error`, model-not-found, "is not
|
|
@@ -106,13 +120,23 @@ import { createEmissionGuard } from './emission-guard.js';
|
|
|
106
120
|
* guard stays re-bounded downstream: `extractAdviceNote` caps the note at
|
|
107
121
|
* `ADVISOR_NOTE_MAX_CHARS` and `buildAdvisorMessage` bounds the notice
|
|
108
122
|
* summary via `boundContextSummary`.
|
|
123
|
+
*
|
|
124
|
+
* KD-I1 (issue #102, user direction 2026-09-29): KD-6's "code invariant, not
|
|
125
|
+
* an operator switch" ruling was superseded again — the budget is now
|
|
126
|
+
* operator-configurable (config key `maxTokens`, bounds 128..16384, Settings
|
|
127
|
+
* UI in Task 3) because thinking models behind third-party gateways exhaust a
|
|
128
|
+
* fixed budget on reasoning and return an EMPTY body (finish: max-tokens).
|
|
129
|
+
* This constant remains the CODE DEFAULT for unconfigured/plain entries: the
|
|
130
|
+
* runtime falls back to it, so default behavior (and every existing 768 pin)
|
|
131
|
+
* is unchanged.
|
|
109
132
|
*/
|
|
110
133
|
export const ADVISOR_MAX_TOKENS = 768;
|
|
111
134
|
/**
|
|
112
135
|
* One extracted note's length cap (qc3 F-2 / qc2 S-1): a verbose/rogue advisor
|
|
113
136
|
* reply must not inject an unbounded user-role message into the primary
|
|
114
137
|
* session (the token budget is now matched to this cap — 768). Truncated with
|
|
115
|
-
* a '…' marker.
|
|
138
|
+
* a '…' marker. The KD-I2 prose fallback note is capped by the same bound —
|
|
139
|
+
* a raised generation budget must not enlarge the injection surface.
|
|
116
140
|
*/
|
|
117
141
|
export const ADVISOR_NOTE_MAX_CHARS = 768;
|
|
118
142
|
const DEFAULT_RETRY_BACKOFF_MS = 1_000;
|
|
@@ -207,6 +231,42 @@ export function extractAdviceNote(reply) {
|
|
|
207
231
|
}
|
|
208
232
|
return undefined;
|
|
209
233
|
}
|
|
234
|
+
/**
|
|
235
|
+
* A reply fully wrapped in ONE markdown fence: an opening fence line (with or
|
|
236
|
+
* without an info string) and a closing fence at the very end. Trailing prose
|
|
237
|
+
* after the closing fence means the fence is not surrounding — no match.
|
|
238
|
+
*/
|
|
239
|
+
const SURROUNDING_FENCE_PATTERN = /^```[^\n]*\n([\s\S]*?)\n?```$/;
|
|
240
|
+
/**
|
|
241
|
+
* The KD-I2 prose fallback cleanup (issue #102; opt-in — see
|
|
242
|
+
* {@link AdvisorRuntimeOptions.proseFallback}). Frozen-spec supersession
|
|
243
|
+
* note: the strict KD-2 JSON-frame requirement stays the DEFAULT — this
|
|
244
|
+
* function is applied at the extraction call site ONLY when
|
|
245
|
+
* {@link extractAdviceNote} extracted no valid note (no parseable frame, or
|
|
246
|
+
* every frame's note empty/invalid) AND the flag is on, so a reply whose
|
|
247
|
+
* frame yields a usable note still delivers that note.
|
|
248
|
+
*
|
|
249
|
+
* Cleanup: trim → strip ONE surrounding markdown fence (an unterminated or
|
|
250
|
+
* non-surrounding fence is kept as-is) → cap at {@link ADVISOR_NOTE_MAX_CHARS}
|
|
251
|
+
* with a '…' marker (the same injection bound as {@link extractAdviceNote} —
|
|
252
|
+
* a raised generation budget must not enlarge the primary session's injection
|
|
253
|
+
* surface). An empty result (whitespace-only reply, fence-only reply) is NOT
|
|
254
|
+
* prose: the caller classifies it as an EMPTY drop (KD-I3), never as an
|
|
255
|
+
* unparsed/prose case. Severity is always `nit` — prose carries no structured
|
|
256
|
+
* severity. Never throws.
|
|
257
|
+
*/
|
|
258
|
+
export function extractProseFallbackNote(reply) {
|
|
259
|
+
const match = SURROUNDING_FENCE_PATTERN.exec(reply.trim());
|
|
260
|
+
const text = (match?.[1] ?? reply).trim();
|
|
261
|
+
if (text.length === 0)
|
|
262
|
+
return undefined;
|
|
263
|
+
return {
|
|
264
|
+
note: text.length > ADVISOR_NOTE_MAX_CHARS
|
|
265
|
+
? `${text.slice(0, ADVISOR_NOTE_MAX_CHARS - 1)}…`
|
|
266
|
+
: text,
|
|
267
|
+
severity: 'nit',
|
|
268
|
+
};
|
|
269
|
+
}
|
|
210
270
|
/**
|
|
211
271
|
* omp's permanent-rejection wording (see the advisor runtime it ports): a
|
|
212
272
|
* request the provider refuses outright for this advisor configuration — no
|
|
@@ -275,6 +335,8 @@ export class AdvisorRuntime {
|
|
|
275
335
|
provider;
|
|
276
336
|
model;
|
|
277
337
|
systemPrompt;
|
|
338
|
+
maxTokens;
|
|
339
|
+
proseFallback;
|
|
278
340
|
retryBackoffMs;
|
|
279
341
|
callTimeoutMs;
|
|
280
342
|
maxQueued;
|
|
@@ -303,10 +365,26 @@ export class AdvisorRuntime {
|
|
|
303
365
|
drainPromise;
|
|
304
366
|
/** Epoch-ms of the last note accepted by the emission guard (T7 status). */
|
|
305
367
|
lastActivityAt;
|
|
368
|
+
/**
|
|
369
|
+
* KD-I3 drop counters (issue #102): EMPTY vs UNPARSED no-note drops with
|
|
370
|
+
* their last-occurrence timestamps — the "advisor is running but never
|
|
371
|
+
* speaks" visibility surface (T2 renders them on `/advisor status`). Only
|
|
372
|
+
* COMPLETED model calls are classified here; transport drops stay in the
|
|
373
|
+
* KD-5 consecutive-drop path.
|
|
374
|
+
*/
|
|
375
|
+
emptyReplyCount = 0;
|
|
376
|
+
unparsedReplyCount = 0;
|
|
377
|
+
lastEmptyReplyTimestamp;
|
|
378
|
+
lastUnparsedReplyTimestamp;
|
|
379
|
+
/** Warn-once latches, one per drop class per runtime (KD-I3). */
|
|
380
|
+
emptyReplyWarned = false;
|
|
381
|
+
unparsedReplyWarned = false;
|
|
306
382
|
constructor(options) {
|
|
307
383
|
this.provider = options.provider;
|
|
308
384
|
this.model = options.model;
|
|
309
385
|
this.systemPrompt = options.systemPrompt;
|
|
386
|
+
this.maxTokens = options.maxTokens ?? ADVISOR_MAX_TOKENS;
|
|
387
|
+
this.proseFallback = options.proseFallback ?? false;
|
|
310
388
|
this.retryBackoffMs = options.retryBackoffMs ?? DEFAULT_RETRY_BACKOFF_MS;
|
|
311
389
|
this.callTimeoutMs = options.callTimeoutMs ?? DEFAULT_CALL_TIMEOUT_MS;
|
|
312
390
|
this.maxQueued = options.maxQueued ?? DEFAULT_MAX_QUEUED;
|
|
@@ -330,6 +408,31 @@ export class AdvisorRuntime {
|
|
|
330
408
|
get lastActivity() {
|
|
331
409
|
return this.lastActivityAt;
|
|
332
410
|
}
|
|
411
|
+
/**
|
|
412
|
+
* KD-I3 (issue #102) — replies dropped because the body was empty after
|
|
413
|
+
* trim (mostly a reasoning model exhausting the token budget). Read-only
|
|
414
|
+
* status outlet, same style as `pendingCount`/`lastActivity`.
|
|
415
|
+
*/
|
|
416
|
+
get emptyReplies() {
|
|
417
|
+
return this.emptyReplyCount;
|
|
418
|
+
}
|
|
419
|
+
/**
|
|
420
|
+
* KD-I3 (issue #102) — replies dropped because no valid note was extracted
|
|
421
|
+
* (no parseable JSON frame, or frames whose note is empty/invalid) and the
|
|
422
|
+
* prose fallback delivered nothing (`proseFallback` off, or on with an
|
|
423
|
+
* empty cleanup result). Read-only status outlet.
|
|
424
|
+
*/
|
|
425
|
+
get unparsedReplies() {
|
|
426
|
+
return this.unparsedReplyCount;
|
|
427
|
+
}
|
|
428
|
+
/** KD-I3 — epoch-ms of the last EMPTY-reply drop, `undefined` before the first. */
|
|
429
|
+
get lastEmptyReplyAt() {
|
|
430
|
+
return this.lastEmptyReplyTimestamp;
|
|
431
|
+
}
|
|
432
|
+
/** KD-I3 — epoch-ms of the last UNPARSED-reply drop, `undefined` before the first. */
|
|
433
|
+
get lastUnparsedReplyAt() {
|
|
434
|
+
return this.lastUnparsedReplyTimestamp;
|
|
435
|
+
}
|
|
333
436
|
/**
|
|
334
437
|
* Queue one rendered transcript delta (from the T3 observer's `onDelta`).
|
|
335
438
|
* While `quota_exhausted`, deltas queue up (bounded) but the drain is never
|
|
@@ -557,10 +660,33 @@ export class AdvisorRuntime {
|
|
|
557
660
|
}
|
|
558
661
|
// stop | max-tokens | tool-calls: extract from the collected text (KD-2;
|
|
559
662
|
// no retry on parse failures — the frame must simply be absent/valid).
|
|
560
|
-
|
|
663
|
+
// KD-I3 drop classification (issue #102): an EMPTY trimmed reply is an
|
|
664
|
+
// empty drop (the classic case is a thinking model exhausting the token
|
|
665
|
+
// budget — finish: max-tokens); a reply with text but no parseable frame
|
|
666
|
+
// is an unparsed drop unless the opt-in prose fallback rescues it. Both
|
|
667
|
+
// classes are counted with a timestamp and warn once per runtime, so
|
|
668
|
+
// "the advisor is running but never speaks" is discoverable instead of
|
|
669
|
+
// debug-only. Drops still return 'no-note': KD-2 extraction failures are
|
|
670
|
+
// output-quality issues, not transport failures (no KD-5 retry, no
|
|
671
|
+
// consecutive-drop counting).
|
|
672
|
+
let note = extractAdviceNote(text);
|
|
561
673
|
if (note === undefined) {
|
|
562
|
-
|
|
563
|
-
|
|
674
|
+
if (text.trim().length === 0) {
|
|
675
|
+
this.recordEmptyReply(finish);
|
|
676
|
+
return { kind: 'no-note' };
|
|
677
|
+
}
|
|
678
|
+
// KD-I2 prose fallback (opt-in, default off): the JSON frame keeps
|
|
679
|
+
// priority — only when NO frame yields a usable note (an empty- or
|
|
680
|
+
// invalid-note frame included) AND the flag is on does the cleaned
|
|
681
|
+
// prose body become a nit note and re-enter the normal guard/delivery
|
|
682
|
+
// pipeline below. With the flag off the reply is dropped exactly as
|
|
683
|
+
// before (default behavior unchanged).
|
|
684
|
+
if (this.proseFallback)
|
|
685
|
+
note = extractProseFallbackNote(text);
|
|
686
|
+
if (note === undefined) {
|
|
687
|
+
this.recordUnparsedReply();
|
|
688
|
+
return { kind: 'no-note' };
|
|
689
|
+
}
|
|
564
690
|
}
|
|
565
691
|
try {
|
|
566
692
|
// The T5 emission guard sits between extraction and delivery: only
|
|
@@ -598,6 +724,37 @@ export class AdvisorRuntime {
|
|
|
598
724
|
__disposeResources(env_1);
|
|
599
725
|
}
|
|
600
726
|
}
|
|
727
|
+
/**
|
|
728
|
+
* KD-I3: count + timestamp an EMPTY-reply drop and warn ONCE per runtime
|
|
729
|
+
* with the fix hint (raise the budget); repeats fall back to a debug line.
|
|
730
|
+
* The finish reason rides along — `max-tokens` vs `stop` is the
|
|
731
|
+
* budget-exhausted vs genuinely-empty tell (issue #102 evidence).
|
|
732
|
+
*/
|
|
733
|
+
recordEmptyReply(finish) {
|
|
734
|
+
this.emptyReplyCount++;
|
|
735
|
+
this.lastEmptyReplyTimestamp = Date.now();
|
|
736
|
+
if (this.emptyReplyWarned) {
|
|
737
|
+
this.logger.debug('advisor: empty reply dropped', { finish: finish.kind });
|
|
738
|
+
return;
|
|
739
|
+
}
|
|
740
|
+
this.emptyReplyWarned = true;
|
|
741
|
+
this.logger.warn('advisor: empty reply dropped — reasoning may be exhausting the token budget; consider raising maxTokens', { finish: finish.kind });
|
|
742
|
+
}
|
|
743
|
+
/**
|
|
744
|
+
* KD-I3: count + timestamp an UNPARSED-reply drop and warn ONCE per runtime
|
|
745
|
+
* with the fix hint (enable the prose fallback); repeats fall back to the
|
|
746
|
+
* original KD-2 debug line.
|
|
747
|
+
*/
|
|
748
|
+
recordUnparsedReply() {
|
|
749
|
+
this.unparsedReplyCount++;
|
|
750
|
+
this.lastUnparsedReplyTimestamp = Date.now();
|
|
751
|
+
if (this.unparsedReplyWarned) {
|
|
752
|
+
this.logger.debug('advisor: reply yielded no note — dropped (no parseable non-empty JSON note in the reply)');
|
|
753
|
+
return;
|
|
754
|
+
}
|
|
755
|
+
this.unparsedReplyWarned = true;
|
|
756
|
+
this.logger.warn('advisor: reply yielded no note — dropped (no parseable non-empty JSON note in the reply); consider enabling proseFallback');
|
|
757
|
+
}
|
|
601
758
|
buildOptions(delta, signal, reasoningEffort) {
|
|
602
759
|
return {
|
|
603
760
|
provider: this.provider,
|
|
@@ -622,9 +779,14 @@ export class AdvisorRuntime {
|
|
|
622
779
|
// UNSUPPORTED_REASONING_EFFORT, silently killing the advisor for
|
|
623
780
|
// non-deepseek models — pre-n4 these worked because no effort was sent).
|
|
624
781
|
...(reasoningEffort === undefined ? {} : { reasoningEffort }),
|
|
625
|
-
//
|
|
626
|
-
//
|
|
627
|
-
|
|
782
|
+
// Token budget (KD-I1, issue #102): operator-configurable via the
|
|
783
|
+
// config key `maxTokens` (128..16384) — KD-6's code invariant was
|
|
784
|
+
// superseded because thinking models behind third-party gateways can
|
|
785
|
+
// exhaust a fixed budget on reasoning and return an empty body. The
|
|
786
|
+
// default stays the user-directed 768 (ADVISOR_MAX_TOKENS — see its
|
|
787
|
+
// supersession chain: 256 -> 5120 -> 768), so unconfigured runtimes
|
|
788
|
+
// behave exactly as before.
|
|
789
|
+
maxTokens: this.maxTokens,
|
|
628
790
|
signal,
|
|
629
791
|
// KD-5: `purpose` is a closed union ('compaction' | 'session-title'); an
|
|
630
792
|
// advisor call is an ordinary conversation request and leaves it unset.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advisor-runtime.js","sourceRoot":"","sources":["../src/advisor-runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"advisor-runtime.js","sourceRoot":"","sources":["../src/advisor-runtime.ts"],"names":[],"mappings":"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"}
|