advisor-pi 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -30,10 +30,19 @@ advice to the executor.
30
30
  Stored legacy defaults are only migrated when the migration target resolves.
31
31
  - Shows a compact `advisor:<provider>/<model> <thinking> <remaining>` status in Pi's
32
32
  footer when UI is available.
33
+ - In the terminal TUI, bare `/advisor-pi` opens an interactive settings menu. It
34
+ edits enabled state, model, thinking, use limit, transcript cap, and cache
35
+ retention; it also shows the current branch use count and offers a confirmed
36
+ reset. Each accepted edit is validated and persisted immediately. Enter a
37
+ `provider/model` ID to select a model; Pi's registry validates it. The menu
38
+ does not list arbitrary configured model IDs, which could contain private data.
39
+ Use arrow keys and Enter to select, and Escape to cancel a prompt or exit the
40
+ menu; **Close** exits without further changes.
33
41
 
34
42
  ## Commands
35
43
 
36
44
  ```text
45
+ /advisor-pi
37
46
  /advisor-pi status
38
47
  /advisor-pi enable
39
48
  /advisor-pi disable
@@ -55,6 +64,10 @@ Examples:
55
64
  /advisor-pi cache long
56
65
  ```
57
66
 
67
+ Bare `/advisor-pi` keeps the text status response in print, JSON, and other
68
+ non-TUI modes. `/advisor-pi reset` remains available as the explicit command
69
+ for resetting this session branch's use count.
70
+
58
71
  ## CLI flags
59
72
 
60
73
  ```bash
@@ -71,6 +84,18 @@ Disable on startup:
71
84
  pi --advisor-enabled=false
72
85
  ```
73
86
 
87
+ ## Settings persistence
88
+
89
+ Deliberate `/advisor-pi` edits are stored as private, validated per-setting
90
+ JSON files in `~/.pi/agent/advisor-pi-preferences/` (under Pi's
91
+ `getAgentDir()`): `enabled.json`, `model.json` (provider and model ID are one
92
+ logical setting), `thinkingLevel.json`, `maxUses.json`, `cacheRetention.json`,
93
+ and `maxTranscriptChars.json`. The stored settings are enabled state,
94
+ model, thinking level, max uses, cache preference, and transcript cap. Advisor
95
+ `useCount`, branch replay state, and runtime-only request settings remain
96
+ session-only. Explicit startup flags override the stored settings for that
97
+ session and are not written back.
98
+
74
99
  ## Install
75
100
 
76
101
  Published on npm: [`advisor-pi`](https://www.npmjs.com/package/advisor-pi). Register the package with **Pi** (`pi install`) — plain `npm install` does not add it to Pi's `settings.json`.
@@ -0,0 +1,12 @@
1
+ import type { AdvisorConfig } from "./index.js";
2
+ /** Rows used by the interactive advisor-pi settings menu. */
3
+ export type MenuRow<TKey extends string = string> = {
4
+ key: TKey;
5
+ label: string;
6
+ };
7
+ export type MenuKey = "enabled" | "model" | "thinking" | "max-uses" | "max-transcript-chars" | "cache" | "reset" | "close";
8
+ /** Build the top-level settings rows, including the current value for each setting. */
9
+ export declare function buildMenuRows(config: AdvisorConfig, useCount?: number): MenuRow<MenuKey>[];
10
+ /** Maps a selected label back to its row; cancelled dialogs return undefined. */
11
+ export declare function rowForLabel<TKey extends string>(rows: MenuRow<TKey>[], label: string | undefined): MenuRow<TKey> | undefined;
12
+ //# sourceMappingURL=config-ui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-ui.d.ts","sourceRoot":"","sources":["../src/config-ui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,6DAA6D;AAC7D,MAAM,MAAM,OAAO,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,IAAI;IAAE,GAAG,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjF,MAAM,MAAM,OAAO,GAChB,SAAS,GACT,OAAO,GACP,UAAU,GACV,UAAU,GACV,sBAAsB,GACtB,OAAO,GACP,OAAO,GACP,OAAO,CAAC;AAEX,uFAAuF;AACvF,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,SAAI,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,CAiBrF;AAED,iFAAiF;AACjF,wBAAgB,WAAW,CAAC,IAAI,SAAS,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAG5H"}
@@ -0,0 +1,26 @@
1
+ /** Build the top-level settings rows, including the current value for each setting. */
2
+ export function buildMenuRows(config, useCount = 0) {
3
+ const entries = [
4
+ ["enabled", "Advisor enabled", config.enabled ? "enabled" : "disabled"],
5
+ ["model", "Advisor model", "configured (use /advisor-pi status for ID)"],
6
+ ["thinking", "Advisor thinking", config.thinkingLevel],
7
+ ["max-uses", "Max advisor uses", String(config.maxUses)],
8
+ ["max-transcript-chars", "Max transcript chars", String(config.maxTranscriptChars)],
9
+ ["cache", "Cache retention", config.cacheRetention],
10
+ ];
11
+ const width = Math.max(...entries.map(([, label]) => label.length));
12
+ const rows = entries.map(([key, label, value]) => ({
13
+ key,
14
+ label: `${label.padEnd(width)} ${value}`,
15
+ }));
16
+ rows.push({ key: "reset", label: `Reset use count (${useCount} used)` });
17
+ rows.push({ key: "close", label: "Close" });
18
+ return rows;
19
+ }
20
+ /** Maps a selected label back to its row; cancelled dialogs return undefined. */
21
+ export function rowForLabel(rows, label) {
22
+ if (label === undefined)
23
+ return undefined;
24
+ return rows.find((row) => row.label === label);
25
+ }
26
+ //# sourceMappingURL=config-ui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-ui.js","sourceRoot":"","sources":["../src/config-ui.ts"],"names":[],"mappings":"AAeA,uFAAuF;AACvF,MAAM,UAAU,aAAa,CAAC,MAAqB,EAAE,QAAQ,GAAG,CAAC;IAChE,MAAM,OAAO,GAAqC;QACjD,CAAC,SAAS,EAAE,iBAAiB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;QACvE,CAAC,OAAO,EAAE,eAAe,EAAE,4CAA4C,CAAC;QACxE,CAAC,UAAU,EAAE,kBAAkB,EAAE,MAAM,CAAC,aAAa,CAAC;QACtD,CAAC,UAAU,EAAE,kBAAkB,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxD,CAAC,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACnF,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,CAAC,cAAc,CAAC;KACnD,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACpE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAClD,GAAG;QACH,KAAK,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE;KACzC,CAAC,CAAC,CAAC;IACJ,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,qBAAqB,QAAQ,QAAQ,EAAE,CAAC,CAAC;IAC1E,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5C,OAAO,IAAI,CAAC;AACb,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,WAAW,CAAsB,IAAqB,EAAE,KAAyB;IAChG,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;AAChD,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,11 +1,13 @@
1
1
  import { type CacheRetention, type ThinkingLevel } from "@earendil-works/pi-ai";
2
2
  import { type ExtensionAPI } from "@earendil-works/pi-coding-agent";
3
+ export { loadPreferences, preferencesPath, savePreferences, savePreferencesPatch } from "./preferences.js";
4
+ export type { AdvisorPreferences, AdvisorPreferencesConfig, AdvisorPreferencesPatch } from "./preferences.js";
3
5
  export declare const STATE_ENTRY = "advisor-pi-state";
4
6
  export declare const DEFAULT_ADVISOR_MODEL = "openai-codex/gpt-5.6-sol";
5
7
  export declare const LEGACY_DEFAULT_ADVISOR_MODEL = "openai-codex/gpt-5.5";
6
8
  export declare const DEFAULT_MAX_TRANSCRIPT_CHARS = 20000;
7
9
  type AdvisorThinkingLevel = ThinkingLevel | "max";
8
- type AdvisorConfig = {
10
+ export type AdvisorConfig = {
9
11
  enabled: boolean;
10
12
  provider: string;
11
13
  modelId: string;
@@ -29,12 +31,15 @@ export type ModelRegistryLike = {
29
31
  id?: unknown;
30
32
  }>;
31
33
  };
34
+ export type NormalizeConfigOptions = {
35
+ migrateLegacyDefault?: boolean;
36
+ };
32
37
  export default function advisorPiExtension(pi: ExtensionAPI): void;
33
38
  export declare function defaultConfig(): AdvisorConfig;
34
39
  export declare function truncateTranscript(text: string, maxChars: number): string;
35
40
  export declare function makeStateEntry(config: AdvisorConfig, useCount: number): AdvisorStateEntry;
36
41
  export declare function persistState(pi: ExtensionAPI, config: AdvisorConfig, useCount: number): void;
37
- export declare function normalizeConfig(input: Partial<AdvisorConfig>, fallback: AdvisorConfig, registry?: ModelRegistryLike): AdvisorConfig;
42
+ export declare function normalizeConfig(input: Partial<AdvisorConfig>, fallback: AdvisorConfig, registry?: ModelRegistryLike, options?: NormalizeConfigOptions): AdvisorConfig;
38
43
  export declare function modelResolves(registry: ModelRegistryLike | undefined, provider: string, modelId: string): boolean;
39
44
  export declare function resolveAdvisorModel(registry: ModelRegistryLike | undefined, candidates: Array<{
40
45
  provider: string;
@@ -47,5 +52,4 @@ export declare function parseModelSpec(value: string): {
47
52
  provider: string;
48
53
  modelId: string;
49
54
  } | undefined;
50
- export {};
51
55
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,KAAK,cAAc,EAAgB,KAAK,aAAa,EAAc,MAAM,uBAAuB,CAAC;AACtI,OAAO,EAIN,KAAK,YAAY,EAEjB,MAAM,iCAAiC,CAAC;AAGzC,eAAO,MAAM,WAAW,qBAAqB,CAAC;AAE9C,eAAO,MAAM,qBAAqB,6BAA6B,CAAC;AAChE,eAAO,MAAM,4BAA4B,yBAAyB,CAAC;AAMnE,eAAO,MAAM,4BAA4B,QAAS,CAAC;AAsBnD,KAAK,oBAAoB,GAAG,aAAa,GAAG,KAAK,CAAC;AAElD,KAAK,aAAa,GAAG;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,oBAAoB,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACxB,OAAO,EAAE,CAAC,CAAC;IACX,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CAClB,CAAC;AAkBF,MAAM,MAAM,iBAAiB,GAAG;IAC/B,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IACrD,YAAY,CAAC,EAAE,MAAM,KAAK,CAAC;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,EAAE,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACjE,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EAAE,EAAE,YAAY,QAob1D;AAcD,wBAAgB,aAAa,IAAI,aAAa,CAa7C;AAoBD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKzE;AAiED,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAOzF;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAE5F;AAED,wBAAgB,eAAe,CAC9B,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,EAC7B,QAAQ,EAAE,aAAa,EACvB,QAAQ,CAAC,EAAE,iBAAiB,GAC1B,aAAa,CAwCf;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,iBAAiB,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAQjH;AAED,wBAAgB,mBAAmB,CAClC,QAAQ,EAAE,iBAAiB,GAAG,SAAS,EACvC,UAAU,EAAE,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GACtD;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAenD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAO/F"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,6 +1,9 @@
1
1
  import { completeSimple, StringEnum } from "@earendil-works/pi-ai";
2
2
  import { buildSessionContext, convertToLlm, serializeConversation, } from "@earendil-works/pi-coding-agent";
3
3
  import { Type } from "typebox";
4
+ import { loadPreferences, savePreferencesPatch } from "./preferences.js";
5
+ import { buildMenuRows, rowForLabel } from "./config-ui.js";
6
+ export { loadPreferences, preferencesPath, savePreferences, savePreferencesPatch } from "./preferences.js";
4
7
  export const STATE_ENTRY = "advisor-pi-state";
5
8
  const TOOL_NAME = "advisor";
6
9
  export const DEFAULT_ADVISOR_MODEL = "openai-codex/gpt-5.6-sol";
@@ -23,8 +26,11 @@ const advisorToolSchema = Type.Object({
23
26
  description: "Optional extra context that is not obvious from the transcript, such as constraints, current plan, or failed attempts.",
24
27
  })),
25
28
  });
29
+ function isTuiContext(ctx) {
30
+ return ctx.mode === "tui" && ctx.hasUI;
31
+ }
26
32
  export default function advisorPiExtension(pi) {
27
- let config = defaultConfig();
33
+ let config = normalizeConfig(loadPreferences(), defaultConfig(), undefined, { migrateLegacyDefault: false });
28
34
  let useCount = 0;
29
35
  pi.registerFlag("advisor-model", {
30
36
  description: "Advisor model as provider/model, e.g. openai-codex/gpt-5.6-sol",
@@ -49,7 +55,6 @@ export default function advisorPiExtension(pi) {
49
55
  pi.registerFlag("advisor-enabled", {
50
56
  description: "Enable the advisor tool on startup",
51
57
  type: "boolean",
52
- default: true,
53
58
  });
54
59
  pi.registerTool({
55
60
  name: TOOL_NAME,
@@ -64,7 +69,8 @@ export default function advisorPiExtension(pi) {
64
69
  parameters: advisorToolSchema,
65
70
  executionMode: "sequential",
66
71
  async execute(_toolCallId, params, signal, onUpdate, ctx) {
67
- refreshStateFromBranch(ctx);
72
+ // Branch state is replayed at session_start/session_tree; refreshing here
73
+ // would reapply startup flags over explicit in-session command edits.
68
74
  if (!config.enabled) {
69
75
  return advisorDisabledResult(config, useCount, params);
70
76
  }
@@ -152,13 +158,14 @@ export default function advisorPiExtension(pi) {
152
158
  pi.registerCommand("advisor-pi", {
153
159
  description: "Configure advisor-pi: status, enable, disable, model, thinking, max-uses, max-transcript-chars, cache, reset",
154
160
  handler: async (args, ctx) => {
155
- const result = handleCommand(args.trim(), ctx);
156
- if (result.persist)
157
- persistState(pi, config, useCount);
158
- if (result.updateToolState)
159
- syncActiveTool(pi);
160
- updateStatus(ctx);
161
- ctx.ui.notify(result.message, result.level);
161
+ const trimmed = args.trim();
162
+ // Bare /advisor-pi is interactive only in the terminal TUI. Other modes
163
+ // keep the existing status response for scripts and print output.
164
+ if (!trimmed && isTuiContext(ctx)) {
165
+ await openConfigPanel(ctx);
166
+ return;
167
+ }
168
+ await applyCommand(trimmed, ctx);
162
169
  },
163
170
  });
164
171
  pi.on("session_start", async (_event, ctx) => {
@@ -178,11 +185,10 @@ export default function advisorPiExtension(pi) {
178
185
  persistState(pi, config, useCount);
179
186
  });
180
187
  function refreshStateFromBranch(ctx) {
181
- config = defaultConfig();
188
+ config = normalizeConfig(loadPreferences(), defaultConfig(), ctx.modelRegistry, { migrateLegacyDefault: false });
182
189
  useCount = 0;
183
- const restoredFromBranch = restoreStateFromSession(ctx, ctx.modelRegistry);
184
- if (!restoredFromBranch)
185
- applyStartupFlags(pi, ctx.modelRegistry);
190
+ restoreStateFromSession(ctx, ctx.modelRegistry);
191
+ applyStartupFlags(pi, ctx.modelRegistry);
186
192
  ensureAdvisorModelResolves(ctx);
187
193
  syncActiveTool(pi);
188
194
  updateStatus(ctx);
@@ -213,10 +219,10 @@ export default function advisorPiExtension(pi) {
213
219
  return restored;
214
220
  }
215
221
  function applyStartupFlags(api, registry) {
216
- const enabledFlag = api.getFlag("advisor-enabled");
222
+ const enabledFlag = flagValue(api, "advisor-enabled");
217
223
  if (typeof enabledFlag === "boolean")
218
224
  config.enabled = enabledFlag;
219
- const modelFlag = api.getFlag("advisor-model");
225
+ const modelFlag = flagValue(api, "advisor-model");
220
226
  if (typeof modelFlag === "string" && modelFlag.trim()) {
221
227
  const parsed = parseModelSpec(modelFlag.trim());
222
228
  if (parsed && (!registry || modelResolves(registry, parsed.provider, parsed.modelId))) {
@@ -224,25 +230,25 @@ export default function advisorPiExtension(pi) {
224
230
  config.modelId = parsed.modelId;
225
231
  }
226
232
  }
227
- const thinkingFlag = api.getFlag("advisor-thinking");
233
+ const thinkingFlag = flagValue(api, "advisor-thinking");
228
234
  if (typeof thinkingFlag === "string") {
229
235
  const thinkingLevel = parseThinkingLevel(thinkingFlag);
230
236
  if (thinkingLevel)
231
237
  config.thinkingLevel = thinkingLevel;
232
238
  }
233
- const maxUsesFlag = api.getFlag("advisor-max-uses");
239
+ const maxUsesFlag = flagValue(api, "advisor-max-uses");
234
240
  if (typeof maxUsesFlag === "string") {
235
241
  const maxUses = parsePositiveInt(maxUsesFlag);
236
242
  if (maxUses !== undefined)
237
243
  config.maxUses = maxUses;
238
244
  }
239
- const cacheFlag = api.getFlag("advisor-cache");
245
+ const cacheFlag = flagValue(api, "advisor-cache");
240
246
  if (typeof cacheFlag === "string") {
241
247
  const cacheRetention = parseCacheRetention(cacheFlag);
242
248
  if (cacheRetention)
243
249
  config.cacheRetention = cacheRetention;
244
250
  }
245
- const maxTranscriptCharsFlag = api.getFlag("advisor-max-transcript-chars");
251
+ const maxTranscriptCharsFlag = flagValue(api, "advisor-max-transcript-chars");
246
252
  if (typeof maxTranscriptCharsFlag === "string") {
247
253
  const maxTranscriptChars = parsePositiveInt(maxTranscriptCharsFlag);
248
254
  if (maxTranscriptChars !== undefined)
@@ -265,6 +271,13 @@ export default function advisorPiExtension(pi) {
265
271
  ctx.ui.notify(`Advisor model ${previous} not found. Falling back to ${working.provider}/${working.modelId}.`, "warning");
266
272
  }
267
273
  }
274
+ async function persistPreferencesForEdit(ctx, patch) {
275
+ if (await savePreferencesPatch(patch))
276
+ return;
277
+ if (ctx.hasUI) {
278
+ ctx.ui.notify("Could not save advisor-pi preferences; this change applies to the current session only.", "warning");
279
+ }
280
+ }
268
281
  function handleCommand(args, ctx) {
269
282
  if (!args || args === "status") {
270
283
  return {
@@ -279,10 +292,22 @@ export default function advisorPiExtension(pi) {
279
292
  switch (command) {
280
293
  case "enable":
281
294
  config.enabled = true;
282
- return { message: "advisor-pi enabled", level: "info", persist: true, updateToolState: true };
295
+ return {
296
+ message: "advisor-pi enabled",
297
+ level: "info",
298
+ persist: true,
299
+ preferencePatch: { enabled: true },
300
+ updateToolState: true,
301
+ };
283
302
  case "disable":
284
303
  config.enabled = false;
285
- return { message: "advisor-pi disabled", level: "info", persist: true, updateToolState: true };
304
+ return {
305
+ message: "advisor-pi disabled",
306
+ level: "info",
307
+ persist: true,
308
+ preferencePatch: { enabled: false },
309
+ updateToolState: true,
310
+ };
286
311
  case "reset":
287
312
  useCount = 0;
288
313
  return { message: "advisor-pi use count reset", level: "info", persist: true, updateToolState: false };
@@ -311,6 +336,7 @@ export default function advisorPiExtension(pi) {
311
336
  message: `advisor-pi model set to ${config.provider}/${config.modelId}`,
312
337
  level: "info",
313
338
  persist: true,
339
+ preferencePatch: { provider: config.provider, modelId: config.modelId },
314
340
  updateToolState: false,
315
341
  };
316
342
  }
@@ -329,6 +355,7 @@ export default function advisorPiExtension(pi) {
329
355
  message: `advisor-pi thinking level set to ${thinkingLevel}`,
330
356
  level: "info",
331
357
  persist: true,
358
+ preferencePatch: { thinkingLevel },
332
359
  updateToolState: false,
333
360
  };
334
361
  }
@@ -347,6 +374,7 @@ export default function advisorPiExtension(pi) {
347
374
  message: `advisor-pi max uses set to ${maxUses}`,
348
375
  level: "info",
349
376
  persist: true,
377
+ preferencePatch: { maxUses },
350
378
  updateToolState: false,
351
379
  };
352
380
  }
@@ -365,6 +393,7 @@ export default function advisorPiExtension(pi) {
365
393
  message: `advisor-pi cache set to ${cacheRetention}`,
366
394
  level: "info",
367
395
  persist: true,
396
+ preferencePatch: { cacheRetention },
368
397
  updateToolState: false,
369
398
  };
370
399
  }
@@ -383,6 +412,7 @@ export default function advisorPiExtension(pi) {
383
412
  message: `advisor-pi max transcript chars set to ${maxTranscriptChars}`,
384
413
  level: "info",
385
414
  persist: true,
415
+ preferencePatch: { maxTranscriptChars },
386
416
  updateToolState: false,
387
417
  };
388
418
  }
@@ -395,6 +425,111 @@ export default function advisorPiExtension(pi) {
395
425
  };
396
426
  }
397
427
  }
428
+ async function applyCommand(args, ctx, options = {}) {
429
+ const result = handleCommand(args, ctx);
430
+ if (result.persist) {
431
+ persistState(pi, config, useCount);
432
+ if (result.preferencePatch)
433
+ await persistPreferencesForEdit(ctx, result.preferencePatch);
434
+ }
435
+ if (result.updateToolState)
436
+ syncActiveTool(pi);
437
+ updateStatus(ctx);
438
+ const message = options.redactModelErrors && result.level === "error" ? "Advisor model not found" : result.message;
439
+ ctx.ui.notify(message, result.level);
440
+ }
441
+ async function openConfigPanel(ctx) {
442
+ for (;;) {
443
+ const rows = buildMenuRows(config, useCount);
444
+ const choice = await ctx.ui.select("advisor-pi settings", rows.map((row) => row.label));
445
+ const row = rowForLabel(rows, choice);
446
+ // Escape returns undefined, which closes the panel without changing state.
447
+ if (!row || row.key === "close")
448
+ return;
449
+ await applyMenuChoice(row.key, ctx);
450
+ }
451
+ }
452
+ async function applyMenuChoice(key, ctx) {
453
+ switch (key) {
454
+ case "enabled": {
455
+ const choice = await ctx.ui.select("Advisor enabled", ["enabled", "disabled"]);
456
+ if (choice !== "enabled" && choice !== "disabled")
457
+ return;
458
+ const enabled = choice === "enabled";
459
+ if (enabled === config.enabled)
460
+ return;
461
+ const confirmed = await ctx.ui.confirm(enabled ? "Enable advisor-pi?" : "Disable advisor-pi?", enabled
462
+ ? "The advisor tool will be available to the executor."
463
+ : "The advisor tool will be removed from the active tool list.");
464
+ if (!confirmed)
465
+ return;
466
+ await applyCommand(enabled ? "enable" : "disable", ctx);
467
+ return;
468
+ }
469
+ case "model": {
470
+ const typed = await ctx.ui.input("Advisor model", "provider/model");
471
+ if (typed === undefined)
472
+ return;
473
+ const parsed = parseModelSpec(typed);
474
+ if (!parsed) {
475
+ ctx.ui.notify("Expected provider/model", "error");
476
+ return;
477
+ }
478
+ let model;
479
+ try {
480
+ model = ctx.modelRegistry.find(parsed.provider, parsed.modelId);
481
+ }
482
+ catch {
483
+ model = undefined;
484
+ }
485
+ if (!model) {
486
+ ctx.ui.notify("Advisor model not found", "error");
487
+ return;
488
+ }
489
+ await applyCommand(`model ${parsed.provider}/${parsed.modelId}`, ctx, { redactModelErrors: true });
490
+ return;
491
+ }
492
+ case "thinking": {
493
+ const choice = await ctx.ui.select("Advisor thinking", ["minimal", "low", "medium", "high", "xhigh", "max"]);
494
+ if (!parseThinkingLevel(choice))
495
+ return;
496
+ await applyCommand(`thinking ${choice}`, ctx);
497
+ return;
498
+ }
499
+ case "max-uses": {
500
+ const value = await ctx.ui.input("Maximum advisor uses", String(config.maxUses));
501
+ if (value === undefined)
502
+ return;
503
+ await applyCommand(`max-uses ${value}`, ctx);
504
+ return;
505
+ }
506
+ case "max-transcript-chars": {
507
+ const value = await ctx.ui.input("Maximum transcript characters", String(config.maxTranscriptChars));
508
+ if (value === undefined)
509
+ return;
510
+ await applyCommand(`max-transcript-chars ${value}`, ctx);
511
+ return;
512
+ }
513
+ case "cache": {
514
+ const choice = await ctx.ui.select("Advisor cache retention", ["none", "short", "long"]);
515
+ if (!parseCacheRetention(choice))
516
+ return;
517
+ await applyCommand(`cache ${choice}`, ctx);
518
+ return;
519
+ }
520
+ case "reset": {
521
+ if (useCount <= 0)
522
+ return;
523
+ const confirmed = await ctx.ui.confirm("Reset advisor use count?", `This clears ${useCount} advisor use${useCount === 1 ? "" : "s"} for the current session branch.`);
524
+ if (!confirmed)
525
+ return;
526
+ await applyCommand("reset", ctx);
527
+ return;
528
+ }
529
+ case "close":
530
+ return;
531
+ }
532
+ }
398
533
  function syncActiveTool(api) {
399
534
  const activeTools = api.getActiveTools();
400
535
  const hasAdvisor = activeTools.includes(TOOL_NAME);
@@ -547,22 +682,29 @@ export function makeStateEntry(config, useCount) {
547
682
  export function persistState(pi, config, useCount) {
548
683
  pi.appendEntry(STATE_ENTRY, makeStateEntry(config, useCount));
549
684
  }
550
- export function normalizeConfig(input, fallback, registry) {
685
+ export function normalizeConfig(input, fallback, registry, options = {}) {
551
686
  const normalized = {
552
687
  enabled: typeof input.enabled === "boolean" ? input.enabled : fallback.enabled,
553
- provider: typeof input.provider === "string" && input.provider ? input.provider : fallback.provider,
554
- modelId: typeof input.modelId === "string" && input.modelId ? input.modelId : fallback.modelId,
688
+ provider: typeof input.provider === "string" && input.provider.trim() ? input.provider.trim() : fallback.provider,
689
+ modelId: typeof input.modelId === "string" && input.modelId.trim() ? input.modelId.trim() : fallback.modelId,
555
690
  thinkingLevel: parseThinkingLevel(input.thinkingLevel) ?? fallback.thinkingLevel,
556
- maxUses: typeof input.maxUses === "number" && input.maxUses > 0 ? Math.floor(input.maxUses) : fallback.maxUses,
691
+ maxUses: typeof input.maxUses === "number" && Number.isFinite(input.maxUses) && Math.floor(input.maxUses) > 0
692
+ ? Math.floor(input.maxUses)
693
+ : fallback.maxUses,
557
694
  cacheRetention: parseCacheRetention(input.cacheRetention) ?? fallback.cacheRetention,
558
- maxTokens: typeof input.maxTokens === "number" && input.maxTokens > 0 ? Math.floor(input.maxTokens) : fallback.maxTokens,
559
- timeoutMs: typeof input.timeoutMs === "number" && input.timeoutMs > 0 ? Math.floor(input.timeoutMs) : fallback.timeoutMs,
560
- maxTranscriptChars: typeof input.maxTranscriptChars === "number" && input.maxTranscriptChars > 0
695
+ maxTokens: typeof input.maxTokens === "number" && Number.isFinite(input.maxTokens) && Math.floor(input.maxTokens) > 0
696
+ ? Math.floor(input.maxTokens)
697
+ : fallback.maxTokens,
698
+ timeoutMs: typeof input.timeoutMs === "number" && Number.isFinite(input.timeoutMs) && Math.floor(input.timeoutMs) > 0
699
+ ? Math.floor(input.timeoutMs)
700
+ : fallback.timeoutMs,
701
+ maxTranscriptChars: typeof input.maxTranscriptChars === "number" && Number.isFinite(input.maxTranscriptChars) && Math.floor(input.maxTranscriptChars) > 0
561
702
  ? Math.floor(input.maxTranscriptChars)
562
703
  : fallback.maxTranscriptChars,
563
704
  };
564
705
  const legacyDefault = parseModelSpec(LEGACY_DEFAULT_ADVISOR_MODEL);
565
- if (input.thinkingLevel === undefined &&
706
+ if (options.migrateLegacyDefault !== false &&
707
+ input.thinkingLevel === undefined &&
566
708
  legacyDefault &&
567
709
  normalized.provider === legacyDefault.provider &&
568
710
  normalized.modelId === legacyDefault.modelId) {
@@ -613,17 +755,25 @@ export function resolveAdvisorModel(registry, candidates) {
613
755
  return undefined;
614
756
  }
615
757
  export function parseModelSpec(value) {
616
- const slash = value.indexOf("/");
617
- if (slash <= 0 || slash === value.length - 1)
758
+ const trimmed = value.trim();
759
+ const slash = trimmed.indexOf("/");
760
+ if (slash <= 0 || slash === trimmed.length - 1)
618
761
  return undefined;
619
- return {
620
- provider: value.slice(0, slash),
621
- modelId: value.slice(slash + 1),
622
- };
762
+ const provider = trimmed.slice(0, slash).trim();
763
+ const modelId = trimmed.slice(slash + 1).trim();
764
+ if (!provider || !modelId)
765
+ return undefined;
766
+ return { provider, modelId };
767
+ }
768
+ function flagValue(api, name) {
769
+ return typeof api.getFlag === "function" ? api.getFlag(name) : undefined;
623
770
  }
624
771
  function parsePositiveInt(value) {
625
- const parsed = Number.parseInt(value, 10);
626
- if (!Number.isFinite(parsed) || parsed <= 0)
772
+ const trimmed = value.trim();
773
+ if (!/^\d+$/.test(trimmed))
774
+ return undefined;
775
+ const parsed = Number(trimmed);
776
+ if (!Number.isSafeInteger(parsed) || parsed <= 0)
627
777
  return undefined;
628
778
  return parsed;
629
779
  }
package/dist/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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"}