advisor-pi 1.0.0 → 1.0.3
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 +28 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +65 -13
- package/dist/index.js.map +1 -1
- package/package.json +6 -2
- package/src/index.ts +76 -13
package/README.md
CHANGED
|
@@ -20,8 +20,9 @@ advice to the executor.
|
|
|
20
20
|
- Tracks advisor uses per session branch and stops after the configured limit.
|
|
21
21
|
- Passes a prompt-cache preference (`none`, `short`, or `long`) where the
|
|
22
22
|
selected provider supports it.
|
|
23
|
-
-
|
|
24
|
-
|
|
23
|
+
- Defaults to `openai-codex/gpt-5.6-sol` with `high` thinking.
|
|
24
|
+
- Shows a compact `advisor:<provider>/<model> <thinking> <remaining>` status in Pi's
|
|
25
|
+
footer when UI is available.
|
|
25
26
|
|
|
26
27
|
## Commands
|
|
27
28
|
|
|
@@ -30,6 +31,7 @@ advice to the executor.
|
|
|
30
31
|
/advisor-pi enable
|
|
31
32
|
/advisor-pi disable
|
|
32
33
|
/advisor-pi model <provider>/<model>
|
|
34
|
+
/advisor-pi thinking <minimal|low|medium|high|xhigh|max>
|
|
33
35
|
/advisor-pi max-uses <number>
|
|
34
36
|
/advisor-pi cache <none|short|long>
|
|
35
37
|
/advisor-pi reset
|
|
@@ -38,7 +40,8 @@ advice to the executor.
|
|
|
38
40
|
Examples:
|
|
39
41
|
|
|
40
42
|
```text
|
|
41
|
-
/advisor-pi model
|
|
43
|
+
/advisor-pi model openai-codex/gpt-5.6-sol
|
|
44
|
+
/advisor-pi thinking high
|
|
42
45
|
/advisor-pi max-uses 5
|
|
43
46
|
/advisor-pi cache long
|
|
44
47
|
```
|
|
@@ -46,8 +49,9 @@ Examples:
|
|
|
46
49
|
## CLI flags
|
|
47
50
|
|
|
48
51
|
```bash
|
|
49
|
-
pi --advisor-model
|
|
50
|
-
--advisor-
|
|
52
|
+
pi --advisor-model openai-codex/gpt-5.6-sol \
|
|
53
|
+
--advisor-thinking high \
|
|
54
|
+
--advisor-max-uses 5 \
|
|
51
55
|
--advisor-cache short
|
|
52
56
|
```
|
|
53
57
|
|
|
@@ -59,13 +63,29 @@ pi --advisor-enabled=false
|
|
|
59
63
|
|
|
60
64
|
## Install
|
|
61
65
|
|
|
62
|
-
|
|
66
|
+
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`.
|
|
63
67
|
|
|
64
68
|
```bash
|
|
65
|
-
|
|
69
|
+
pi install npm:advisor-pi
|
|
70
|
+
pi install npm:advisor-pi@1.0.0 # pin version
|
|
71
|
+
pi install -l npm:advisor-pi # project-local (.pi/settings.json)
|
|
72
|
+
pi -e npm:advisor-pi # one session, no install
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Then run `/reload` in Pi (or restart).
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
pi list
|
|
79
|
+
pi update npm:advisor-pi
|
|
80
|
+
pi remove npm:advisor-pi
|
|
66
81
|
```
|
|
67
82
|
|
|
68
|
-
|
|
83
|
+
**From [pi-extensions](https://github.com/luongnv89/pi-extensions) (git):**
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
cp -r extensions/advisor-pi ~/.pi/agent/extensions/
|
|
87
|
+
# or: curl -fsSL .../install.sh | bash -s -- --auto
|
|
88
|
+
```
|
|
69
89
|
|
|
70
90
|
## Cost and latency
|
|
71
91
|
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAIN,KAAK,YAAY,EAEjB,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAIN,KAAK,YAAY,EAEjB,MAAM,iCAAiC,CAAC;AAqEzC,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EAAE,EAAE,YAAY,QAqY1D"}
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import {
|
|
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
4
|
const STATE_ENTRY = "advisor-pi-state";
|
|
5
5
|
const TOOL_NAME = "advisor";
|
|
6
|
-
const DEFAULT_ADVISOR_MODEL = "openai-codex/gpt-5.
|
|
7
|
-
const
|
|
6
|
+
const DEFAULT_ADVISOR_MODEL = "openai-codex/gpt-5.6-sol";
|
|
7
|
+
const LEGACY_DEFAULT_ADVISOR_MODEL = "openai-codex/gpt-5.5";
|
|
8
|
+
const DEFAULT_ADVISOR_THINKING_LEVEL = "high";
|
|
9
|
+
const DEFAULT_MAX_USES = 5;
|
|
8
10
|
const DEFAULT_CACHE_RETENTION = "short";
|
|
9
11
|
const DEFAULT_TIMEOUT_MS = 600_000;
|
|
10
12
|
const DEFAULT_MAX_TOKENS = 4_000;
|
|
@@ -24,7 +26,11 @@ export default function advisorPiExtension(pi) {
|
|
|
24
26
|
let config = defaultConfig();
|
|
25
27
|
let useCount = 0;
|
|
26
28
|
pi.registerFlag("advisor-model", {
|
|
27
|
-
description: "Advisor model as provider/model, e.g. openai-codex/gpt-5.
|
|
29
|
+
description: "Advisor model as provider/model, e.g. openai-codex/gpt-5.6-sol",
|
|
30
|
+
type: "string",
|
|
31
|
+
});
|
|
32
|
+
pi.registerFlag("advisor-thinking", {
|
|
33
|
+
description: "Advisor thinking level: minimal, low, medium, high, xhigh, or max",
|
|
28
34
|
type: "string",
|
|
29
35
|
});
|
|
30
36
|
pi.registerFlag("advisor-max-uses", {
|
|
@@ -68,7 +74,7 @@ export default function advisorPiExtension(pi) {
|
|
|
68
74
|
content: [
|
|
69
75
|
{
|
|
70
76
|
type: "text",
|
|
71
|
-
text: `Consulting advisor ${config.provider}/${config.modelId}...`,
|
|
77
|
+
text: `Consulting advisor ${config.provider}/${config.modelId} (${config.thinkingLevel})...`,
|
|
72
78
|
},
|
|
73
79
|
],
|
|
74
80
|
details: makeSkippedDetails(config, useCount, params),
|
|
@@ -88,7 +94,7 @@ export default function advisorPiExtension(pi) {
|
|
|
88
94
|
],
|
|
89
95
|
timestamp: Date.now(),
|
|
90
96
|
};
|
|
91
|
-
const response = await
|
|
97
|
+
const response = await completeSimple(model, {
|
|
92
98
|
systemPrompt: ADVISOR_SYSTEM_PROMPT,
|
|
93
99
|
messages: [userMessage],
|
|
94
100
|
}, {
|
|
@@ -96,6 +102,7 @@ export default function advisorPiExtension(pi) {
|
|
|
96
102
|
headers: auth.headers,
|
|
97
103
|
signal,
|
|
98
104
|
cacheRetention: config.cacheRetention,
|
|
105
|
+
reasoning: config.thinkingLevel,
|
|
99
106
|
sessionId: `advisor-pi:${ctx.sessionManager.getSessionId()}`,
|
|
100
107
|
maxTokens: config.maxTokens,
|
|
101
108
|
timeoutMs: config.timeoutMs,
|
|
@@ -119,6 +126,7 @@ export default function advisorPiExtension(pi) {
|
|
|
119
126
|
useCount,
|
|
120
127
|
maxUses: config.maxUses,
|
|
121
128
|
cacheRetention: config.cacheRetention,
|
|
129
|
+
thinkingLevel: config.thinkingLevel,
|
|
122
130
|
elapsedMs,
|
|
123
131
|
stopReason: response.stopReason,
|
|
124
132
|
usage: response.usage,
|
|
@@ -129,7 +137,7 @@ export default function advisorPiExtension(pi) {
|
|
|
129
137
|
content: [
|
|
130
138
|
{
|
|
131
139
|
type: "text",
|
|
132
|
-
text: `Advisor guidance (${useCount}/${config.maxUses}, ${config.provider}/${config.modelId}):\n\n${text}`,
|
|
140
|
+
text: `Advisor guidance (${useCount}/${config.maxUses}, ${config.provider}/${config.modelId}, ${config.thinkingLevel}):\n\n${text}`,
|
|
133
141
|
},
|
|
134
142
|
],
|
|
135
143
|
details,
|
|
@@ -137,7 +145,7 @@ export default function advisorPiExtension(pi) {
|
|
|
137
145
|
},
|
|
138
146
|
});
|
|
139
147
|
pi.registerCommand("advisor-pi", {
|
|
140
|
-
description: "Configure advisor-pi: status, enable, disable, model, max-uses, cache, reset",
|
|
148
|
+
description: "Configure advisor-pi: status, enable, disable, model, thinking, max-uses, cache, reset",
|
|
141
149
|
handler: async (args, ctx) => {
|
|
142
150
|
const result = handleCommand(args.trim(), ctx);
|
|
143
151
|
if (result.persist)
|
|
@@ -210,6 +218,12 @@ export default function advisorPiExtension(pi) {
|
|
|
210
218
|
config.modelId = parsed.modelId;
|
|
211
219
|
}
|
|
212
220
|
}
|
|
221
|
+
const thinkingFlag = api.getFlag("advisor-thinking");
|
|
222
|
+
if (typeof thinkingFlag === "string") {
|
|
223
|
+
const thinkingLevel = parseThinkingLevel(thinkingFlag);
|
|
224
|
+
if (thinkingLevel)
|
|
225
|
+
config.thinkingLevel = thinkingLevel;
|
|
226
|
+
}
|
|
213
227
|
const maxUsesFlag = api.getFlag("advisor-max-uses");
|
|
214
228
|
if (typeof maxUsesFlag === "string") {
|
|
215
229
|
const maxUses = parsePositiveInt(maxUsesFlag);
|
|
@@ -272,6 +286,24 @@ export default function advisorPiExtension(pi) {
|
|
|
272
286
|
updateToolState: false,
|
|
273
287
|
};
|
|
274
288
|
}
|
|
289
|
+
case "thinking": {
|
|
290
|
+
const thinkingLevel = parseThinkingLevel(value);
|
|
291
|
+
if (!thinkingLevel) {
|
|
292
|
+
return {
|
|
293
|
+
message: "Usage: /advisor-pi thinking <minimal|low|medium|high|xhigh|max>",
|
|
294
|
+
level: "error",
|
|
295
|
+
persist: false,
|
|
296
|
+
updateToolState: false,
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
config.thinkingLevel = thinkingLevel;
|
|
300
|
+
return {
|
|
301
|
+
message: `advisor-pi thinking level set to ${thinkingLevel}`,
|
|
302
|
+
level: "info",
|
|
303
|
+
persist: true,
|
|
304
|
+
updateToolState: false,
|
|
305
|
+
};
|
|
306
|
+
}
|
|
275
307
|
case "max-uses": {
|
|
276
308
|
const maxUses = parsePositiveInt(value);
|
|
277
309
|
if (maxUses === undefined) {
|
|
@@ -310,7 +342,7 @@ export default function advisorPiExtension(pi) {
|
|
|
310
342
|
}
|
|
311
343
|
default:
|
|
312
344
|
return {
|
|
313
|
-
message: "Usage: /advisor-pi [status|enable|disable|model <provider>/<model>|max-uses <n>|cache <none|short|long>|reset]",
|
|
345
|
+
message: "Usage: /advisor-pi [status|enable|disable|model <provider>/<model>|thinking <minimal|low|medium|high|xhigh|max>|max-uses <n>|cache <none|short|long>|reset]",
|
|
314
346
|
level: "error",
|
|
315
347
|
persist: false,
|
|
316
348
|
updateToolState: false,
|
|
@@ -335,7 +367,8 @@ export default function advisorPiExtension(pi) {
|
|
|
335
367
|
return;
|
|
336
368
|
}
|
|
337
369
|
const remaining = Math.max(0, config.maxUses - useCount);
|
|
338
|
-
|
|
370
|
+
const modelLabel = `${config.provider}/${config.modelId}`;
|
|
371
|
+
ctx.ui.setStatus("advisor-pi", ctx.ui.theme.fg(remaining > 0 ? "accent" : "warning", `advisor:${modelLabel} ${config.thinkingLevel} ${remaining}`));
|
|
339
372
|
}
|
|
340
373
|
function formatStatus(ctx) {
|
|
341
374
|
const model = ctx.modelRegistry.find(config.provider, config.modelId);
|
|
@@ -343,6 +376,7 @@ export default function advisorPiExtension(pi) {
|
|
|
343
376
|
return [
|
|
344
377
|
`advisor-pi ${config.enabled ? "enabled" : "disabled"}`,
|
|
345
378
|
`model: ${config.provider}/${config.modelId} (${availability})`,
|
|
379
|
+
`thinking: ${config.thinkingLevel}`,
|
|
346
380
|
`uses: ${useCount}/${config.maxUses}`,
|
|
347
381
|
`cache: ${config.cacheRetention}`,
|
|
348
382
|
].join(" • ");
|
|
@@ -360,11 +394,12 @@ Your role is strategic guidance only. You do not have tools and you do not make
|
|
|
360
394
|
|
|
361
395
|
Return guidance in short sections with bullets when useful.`;
|
|
362
396
|
function defaultConfig() {
|
|
363
|
-
const parsed = parseModelSpec(DEFAULT_ADVISOR_MODEL) ?? { provider: "openai-codex", modelId: "gpt-5.
|
|
397
|
+
const parsed = parseModelSpec(DEFAULT_ADVISOR_MODEL) ?? { provider: "openai-codex", modelId: "gpt-5.6-sol" };
|
|
364
398
|
return {
|
|
365
399
|
enabled: true,
|
|
366
400
|
provider: parsed.provider,
|
|
367
401
|
modelId: parsed.modelId,
|
|
402
|
+
thinkingLevel: DEFAULT_ADVISOR_THINKING_LEVEL,
|
|
368
403
|
maxUses: DEFAULT_MAX_USES,
|
|
369
404
|
cacheRetention: DEFAULT_CACHE_RETENTION,
|
|
370
405
|
maxTokens: DEFAULT_MAX_TOKENS,
|
|
@@ -375,7 +410,7 @@ function buildExecutorGuidance(config, useCount) {
|
|
|
375
410
|
const remaining = Math.max(0, config.maxUses - useCount);
|
|
376
411
|
return [
|
|
377
412
|
"Advisor-pi is enabled.",
|
|
378
|
-
`The advisor tool consults ${config.provider}/${config.modelId} for strategic guidance and has ${remaining}/${config.maxUses} uses remaining on this branch.`,
|
|
413
|
+
`The advisor tool consults ${config.provider}/${config.modelId} with ${config.thinkingLevel} thinking for strategic guidance and has ${remaining}/${config.maxUses} uses remaining on this branch.`,
|
|
379
414
|
"Use advisor for complex planning, risky implementation choices, repeated failures, or course correction. Do not use advisor for trivial edits or simple facts.",
|
|
380
415
|
`Advisor cache preference is ${config.cacheRetention}; caching support is provider-dependent.`,
|
|
381
416
|
].join("\n");
|
|
@@ -438,6 +473,7 @@ function makeSkippedDetails(config, useCount, params) {
|
|
|
438
473
|
useCount,
|
|
439
474
|
maxUses: config.maxUses,
|
|
440
475
|
cacheRetention: config.cacheRetention,
|
|
476
|
+
thinkingLevel: config.thinkingLevel,
|
|
441
477
|
elapsedMs: 0,
|
|
442
478
|
stopReason: "skipped",
|
|
443
479
|
},
|
|
@@ -456,15 +492,25 @@ function persistState(pi, config, useCount) {
|
|
|
456
492
|
pi.appendEntry(STATE_ENTRY, makeStateEntry(config, useCount));
|
|
457
493
|
}
|
|
458
494
|
function normalizeConfig(input, fallback) {
|
|
459
|
-
|
|
495
|
+
const normalized = {
|
|
460
496
|
enabled: typeof input.enabled === "boolean" ? input.enabled : fallback.enabled,
|
|
461
497
|
provider: typeof input.provider === "string" && input.provider ? input.provider : fallback.provider,
|
|
462
498
|
modelId: typeof input.modelId === "string" && input.modelId ? input.modelId : fallback.modelId,
|
|
499
|
+
thinkingLevel: parseThinkingLevel(input.thinkingLevel) ?? fallback.thinkingLevel,
|
|
463
500
|
maxUses: typeof input.maxUses === "number" && input.maxUses > 0 ? Math.floor(input.maxUses) : fallback.maxUses,
|
|
464
501
|
cacheRetention: parseCacheRetention(input.cacheRetention) ?? fallback.cacheRetention,
|
|
465
502
|
maxTokens: typeof input.maxTokens === "number" && input.maxTokens > 0 ? Math.floor(input.maxTokens) : fallback.maxTokens,
|
|
466
503
|
timeoutMs: typeof input.timeoutMs === "number" && input.timeoutMs > 0 ? Math.floor(input.timeoutMs) : fallback.timeoutMs,
|
|
467
504
|
};
|
|
505
|
+
const legacyDefault = parseModelSpec(LEGACY_DEFAULT_ADVISOR_MODEL);
|
|
506
|
+
if (input.thinkingLevel === undefined &&
|
|
507
|
+
legacyDefault &&
|
|
508
|
+
normalized.provider === legacyDefault.provider &&
|
|
509
|
+
normalized.modelId === legacyDefault.modelId) {
|
|
510
|
+
normalized.provider = fallback.provider;
|
|
511
|
+
normalized.modelId = fallback.modelId;
|
|
512
|
+
}
|
|
513
|
+
return normalized;
|
|
468
514
|
}
|
|
469
515
|
function parseModelSpec(value) {
|
|
470
516
|
const slash = value.indexOf("/");
|
|
@@ -486,4 +532,10 @@ function parseCacheRetention(value) {
|
|
|
486
532
|
return value;
|
|
487
533
|
return undefined;
|
|
488
534
|
}
|
|
535
|
+
function parseThinkingLevel(value) {
|
|
536
|
+
if (value === "minimal" || value === "low" || value === "medium" || value === "high" || value === "xhigh" || value === "max") {
|
|
537
|
+
return value;
|
|
538
|
+
}
|
|
539
|
+
return undefined;
|
|
540
|
+
}
|
|
489
541
|
//# sourceMappingURL=index.js.map
|
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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "advisor-pi",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"description": "Advisor-style strategic model guidance for Pi Coding Agent workflows",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -21,9 +21,13 @@
|
|
|
21
21
|
"prepublishOnly": "npm run build"
|
|
22
22
|
},
|
|
23
23
|
"pi": {
|
|
24
|
-
"extensions": [
|
|
24
|
+
"extensions": [
|
|
25
|
+
"./src/index.ts"
|
|
26
|
+
],
|
|
27
|
+
"image": "https://raw.githubusercontent.com/luongnv89/pi-extensions/main/assets/advisor-pi.png"
|
|
25
28
|
},
|
|
26
29
|
"keywords": [
|
|
30
|
+
"pi-package",
|
|
27
31
|
"pi",
|
|
28
32
|
"advisor",
|
|
29
33
|
"strategic-guidance",
|
package/src/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { completeSimple, StringEnum, type CacheRetention, type Message, type ThinkingLevel, type Usage } from "@earendil-works/pi-ai";
|
|
2
2
|
import {
|
|
3
3
|
buildSessionContext,
|
|
4
4
|
convertToLlm,
|
|
@@ -10,8 +10,10 @@ import { Type, type Static } from "typebox";
|
|
|
10
10
|
|
|
11
11
|
const STATE_ENTRY = "advisor-pi-state";
|
|
12
12
|
const TOOL_NAME = "advisor";
|
|
13
|
-
const DEFAULT_ADVISOR_MODEL = "openai-codex/gpt-5.
|
|
14
|
-
const
|
|
13
|
+
const DEFAULT_ADVISOR_MODEL = "openai-codex/gpt-5.6-sol";
|
|
14
|
+
const LEGACY_DEFAULT_ADVISOR_MODEL = "openai-codex/gpt-5.5";
|
|
15
|
+
const DEFAULT_ADVISOR_THINKING_LEVEL: AdvisorThinkingLevel = "high";
|
|
16
|
+
const DEFAULT_MAX_USES = 5;
|
|
15
17
|
const DEFAULT_CACHE_RETENTION: CacheRetention = "short";
|
|
16
18
|
const DEFAULT_TIMEOUT_MS = 600_000;
|
|
17
19
|
const DEFAULT_MAX_TOKENS = 4_000;
|
|
@@ -36,11 +38,13 @@ const advisorToolSchema = Type.Object({
|
|
|
36
38
|
});
|
|
37
39
|
|
|
38
40
|
type AdvisorToolInput = Static<typeof advisorToolSchema>;
|
|
41
|
+
type AdvisorThinkingLevel = ThinkingLevel | "max";
|
|
39
42
|
|
|
40
43
|
type AdvisorConfig = {
|
|
41
44
|
enabled: boolean;
|
|
42
45
|
provider: string;
|
|
43
46
|
modelId: string;
|
|
47
|
+
thinkingLevel: AdvisorThinkingLevel;
|
|
44
48
|
maxUses: number;
|
|
45
49
|
cacheRetention: CacheRetention;
|
|
46
50
|
maxTokens: number;
|
|
@@ -62,6 +66,7 @@ type AdvisorToolDetails = {
|
|
|
62
66
|
useCount: number;
|
|
63
67
|
maxUses: number;
|
|
64
68
|
cacheRetention: CacheRetention;
|
|
69
|
+
thinkingLevel: AdvisorThinkingLevel;
|
|
65
70
|
elapsedMs: number;
|
|
66
71
|
stopReason: string;
|
|
67
72
|
usage?: Usage;
|
|
@@ -74,7 +79,11 @@ export default function advisorPiExtension(pi: ExtensionAPI) {
|
|
|
74
79
|
let useCount = 0;
|
|
75
80
|
|
|
76
81
|
pi.registerFlag("advisor-model", {
|
|
77
|
-
description: "Advisor model as provider/model, e.g. openai-codex/gpt-5.
|
|
82
|
+
description: "Advisor model as provider/model, e.g. openai-codex/gpt-5.6-sol",
|
|
83
|
+
type: "string",
|
|
84
|
+
});
|
|
85
|
+
pi.registerFlag("advisor-thinking", {
|
|
86
|
+
description: "Advisor thinking level: minimal, low, medium, high, xhigh, or max",
|
|
78
87
|
type: "string",
|
|
79
88
|
});
|
|
80
89
|
pi.registerFlag("advisor-max-uses", {
|
|
@@ -127,7 +136,7 @@ export default function advisorPiExtension(pi: ExtensionAPI) {
|
|
|
127
136
|
content: [
|
|
128
137
|
{
|
|
129
138
|
type: "text",
|
|
130
|
-
text: `Consulting advisor ${config.provider}/${config.modelId}...`,
|
|
139
|
+
text: `Consulting advisor ${config.provider}/${config.modelId} (${config.thinkingLevel})...`,
|
|
131
140
|
},
|
|
132
141
|
],
|
|
133
142
|
details: makeSkippedDetails(config, useCount, params),
|
|
@@ -149,7 +158,7 @@ export default function advisorPiExtension(pi: ExtensionAPI) {
|
|
|
149
158
|
timestamp: Date.now(),
|
|
150
159
|
};
|
|
151
160
|
|
|
152
|
-
const response = await
|
|
161
|
+
const response = await completeSimple(
|
|
153
162
|
model,
|
|
154
163
|
{
|
|
155
164
|
systemPrompt: ADVISOR_SYSTEM_PROMPT,
|
|
@@ -160,6 +169,7 @@ export default function advisorPiExtension(pi: ExtensionAPI) {
|
|
|
160
169
|
headers: auth.headers,
|
|
161
170
|
signal,
|
|
162
171
|
cacheRetention: config.cacheRetention,
|
|
172
|
+
reasoning: config.thinkingLevel as ThinkingLevel,
|
|
163
173
|
sessionId: `advisor-pi:${ctx.sessionManager.getSessionId()}`,
|
|
164
174
|
maxTokens: config.maxTokens,
|
|
165
175
|
timeoutMs: config.timeoutMs,
|
|
@@ -187,6 +197,7 @@ export default function advisorPiExtension(pi: ExtensionAPI) {
|
|
|
187
197
|
useCount,
|
|
188
198
|
maxUses: config.maxUses,
|
|
189
199
|
cacheRetention: config.cacheRetention,
|
|
200
|
+
thinkingLevel: config.thinkingLevel,
|
|
190
201
|
elapsedMs,
|
|
191
202
|
stopReason: response.stopReason,
|
|
192
203
|
usage: response.usage,
|
|
@@ -198,7 +209,7 @@ export default function advisorPiExtension(pi: ExtensionAPI) {
|
|
|
198
209
|
content: [
|
|
199
210
|
{
|
|
200
211
|
type: "text",
|
|
201
|
-
text: `Advisor guidance (${useCount}/${config.maxUses}, ${config.provider}/${config.modelId}):\n\n${text}`,
|
|
212
|
+
text: `Advisor guidance (${useCount}/${config.maxUses}, ${config.provider}/${config.modelId}, ${config.thinkingLevel}):\n\n${text}`,
|
|
202
213
|
},
|
|
203
214
|
],
|
|
204
215
|
details,
|
|
@@ -207,7 +218,7 @@ export default function advisorPiExtension(pi: ExtensionAPI) {
|
|
|
207
218
|
});
|
|
208
219
|
|
|
209
220
|
pi.registerCommand("advisor-pi", {
|
|
210
|
-
description: "Configure advisor-pi: status, enable, disable, model, max-uses, cache, reset",
|
|
221
|
+
description: "Configure advisor-pi: status, enable, disable, model, thinking, max-uses, cache, reset",
|
|
211
222
|
handler: async (args, ctx) => {
|
|
212
223
|
const result = handleCommand(args.trim(), ctx);
|
|
213
224
|
if (result.persist) persistState(pi, config, useCount);
|
|
@@ -279,6 +290,12 @@ export default function advisorPiExtension(pi: ExtensionAPI) {
|
|
|
279
290
|
}
|
|
280
291
|
}
|
|
281
292
|
|
|
293
|
+
const thinkingFlag = api.getFlag("advisor-thinking");
|
|
294
|
+
if (typeof thinkingFlag === "string") {
|
|
295
|
+
const thinkingLevel = parseThinkingLevel(thinkingFlag);
|
|
296
|
+
if (thinkingLevel) config.thinkingLevel = thinkingLevel;
|
|
297
|
+
}
|
|
298
|
+
|
|
282
299
|
const maxUsesFlag = api.getFlag("advisor-max-uses");
|
|
283
300
|
if (typeof maxUsesFlag === "string") {
|
|
284
301
|
const maxUses = parsePositiveInt(maxUsesFlag);
|
|
@@ -346,6 +363,24 @@ export default function advisorPiExtension(pi: ExtensionAPI) {
|
|
|
346
363
|
updateToolState: false,
|
|
347
364
|
};
|
|
348
365
|
}
|
|
366
|
+
case "thinking": {
|
|
367
|
+
const thinkingLevel = parseThinkingLevel(value);
|
|
368
|
+
if (!thinkingLevel) {
|
|
369
|
+
return {
|
|
370
|
+
message: "Usage: /advisor-pi thinking <minimal|low|medium|high|xhigh|max>",
|
|
371
|
+
level: "error",
|
|
372
|
+
persist: false,
|
|
373
|
+
updateToolState: false,
|
|
374
|
+
};
|
|
375
|
+
}
|
|
376
|
+
config.thinkingLevel = thinkingLevel;
|
|
377
|
+
return {
|
|
378
|
+
message: `advisor-pi thinking level set to ${thinkingLevel}`,
|
|
379
|
+
level: "info",
|
|
380
|
+
persist: true,
|
|
381
|
+
updateToolState: false,
|
|
382
|
+
};
|
|
383
|
+
}
|
|
349
384
|
case "max-uses": {
|
|
350
385
|
const maxUses = parsePositiveInt(value);
|
|
351
386
|
if (maxUses === undefined) {
|
|
@@ -385,7 +420,7 @@ export default function advisorPiExtension(pi: ExtensionAPI) {
|
|
|
385
420
|
default:
|
|
386
421
|
return {
|
|
387
422
|
message:
|
|
388
|
-
"Usage: /advisor-pi [status|enable|disable|model <provider>/<model>|max-uses <n>|cache <none|short|long>|reset]",
|
|
423
|
+
"Usage: /advisor-pi [status|enable|disable|model <provider>/<model>|thinking <minimal|low|medium|high|xhigh|max>|max-uses <n>|cache <none|short|long>|reset]",
|
|
389
424
|
level: "error",
|
|
390
425
|
persist: false,
|
|
391
426
|
updateToolState: false,
|
|
@@ -410,7 +445,11 @@ export default function advisorPiExtension(pi: ExtensionAPI) {
|
|
|
410
445
|
return;
|
|
411
446
|
}
|
|
412
447
|
const remaining = Math.max(0, config.maxUses - useCount);
|
|
413
|
-
|
|
448
|
+
const modelLabel = `${config.provider}/${config.modelId}`;
|
|
449
|
+
ctx.ui.setStatus(
|
|
450
|
+
"advisor-pi",
|
|
451
|
+
ctx.ui.theme.fg(remaining > 0 ? "accent" : "warning", `advisor:${modelLabel} ${config.thinkingLevel} ${remaining}`),
|
|
452
|
+
);
|
|
414
453
|
}
|
|
415
454
|
|
|
416
455
|
function formatStatus(ctx: ExtensionContext): string {
|
|
@@ -419,6 +458,7 @@ export default function advisorPiExtension(pi: ExtensionAPI) {
|
|
|
419
458
|
return [
|
|
420
459
|
`advisor-pi ${config.enabled ? "enabled" : "disabled"}`,
|
|
421
460
|
`model: ${config.provider}/${config.modelId} (${availability})`,
|
|
461
|
+
`thinking: ${config.thinkingLevel}`,
|
|
422
462
|
`uses: ${useCount}/${config.maxUses}`,
|
|
423
463
|
`cache: ${config.cacheRetention}`,
|
|
424
464
|
].join(" • ");
|
|
@@ -438,11 +478,12 @@ Your role is strategic guidance only. You do not have tools and you do not make
|
|
|
438
478
|
Return guidance in short sections with bullets when useful.`;
|
|
439
479
|
|
|
440
480
|
function defaultConfig(): AdvisorConfig {
|
|
441
|
-
const parsed = parseModelSpec(DEFAULT_ADVISOR_MODEL) ?? { provider: "openai-codex", modelId: "gpt-5.
|
|
481
|
+
const parsed = parseModelSpec(DEFAULT_ADVISOR_MODEL) ?? { provider: "openai-codex", modelId: "gpt-5.6-sol" };
|
|
442
482
|
return {
|
|
443
483
|
enabled: true,
|
|
444
484
|
provider: parsed.provider,
|
|
445
485
|
modelId: parsed.modelId,
|
|
486
|
+
thinkingLevel: DEFAULT_ADVISOR_THINKING_LEVEL,
|
|
446
487
|
maxUses: DEFAULT_MAX_USES,
|
|
447
488
|
cacheRetention: DEFAULT_CACHE_RETENTION,
|
|
448
489
|
maxTokens: DEFAULT_MAX_TOKENS,
|
|
@@ -454,7 +495,7 @@ function buildExecutorGuidance(config: AdvisorConfig, useCount: number): string
|
|
|
454
495
|
const remaining = Math.max(0, config.maxUses - useCount);
|
|
455
496
|
return [
|
|
456
497
|
"Advisor-pi is enabled.",
|
|
457
|
-
`The advisor tool consults ${config.provider}/${config.modelId} for strategic guidance and has ${remaining}/${config.maxUses} uses remaining on this branch.`,
|
|
498
|
+
`The advisor tool consults ${config.provider}/${config.modelId} with ${config.thinkingLevel} thinking for strategic guidance and has ${remaining}/${config.maxUses} uses remaining on this branch.`,
|
|
458
499
|
"Use advisor for complex planning, risky implementation choices, repeated failures, or course correction. Do not use advisor for trivial edits or simple facts.",
|
|
459
500
|
`Advisor cache preference is ${config.cacheRetention}; caching support is provider-dependent.`,
|
|
460
501
|
].join("\n");
|
|
@@ -523,6 +564,7 @@ function makeSkippedDetails(config: AdvisorConfig, useCount: number, params: Adv
|
|
|
523
564
|
useCount,
|
|
524
565
|
maxUses: config.maxUses,
|
|
525
566
|
cacheRetention: config.cacheRetention,
|
|
567
|
+
thinkingLevel: config.thinkingLevel,
|
|
526
568
|
elapsedMs: 0,
|
|
527
569
|
stopReason: "skipped",
|
|
528
570
|
},
|
|
@@ -544,15 +586,29 @@ function persistState(pi: ExtensionAPI, config: AdvisorConfig, useCount: number)
|
|
|
544
586
|
}
|
|
545
587
|
|
|
546
588
|
function normalizeConfig(input: Partial<AdvisorConfig>, fallback: AdvisorConfig): AdvisorConfig {
|
|
547
|
-
|
|
589
|
+
const normalized: AdvisorConfig = {
|
|
548
590
|
enabled: typeof input.enabled === "boolean" ? input.enabled : fallback.enabled,
|
|
549
591
|
provider: typeof input.provider === "string" && input.provider ? input.provider : fallback.provider,
|
|
550
592
|
modelId: typeof input.modelId === "string" && input.modelId ? input.modelId : fallback.modelId,
|
|
593
|
+
thinkingLevel: parseThinkingLevel(input.thinkingLevel) ?? fallback.thinkingLevel,
|
|
551
594
|
maxUses: typeof input.maxUses === "number" && input.maxUses > 0 ? Math.floor(input.maxUses) : fallback.maxUses,
|
|
552
595
|
cacheRetention: parseCacheRetention(input.cacheRetention) ?? fallback.cacheRetention,
|
|
553
596
|
maxTokens: typeof input.maxTokens === "number" && input.maxTokens > 0 ? Math.floor(input.maxTokens) : fallback.maxTokens,
|
|
554
597
|
timeoutMs: typeof input.timeoutMs === "number" && input.timeoutMs > 0 ? Math.floor(input.timeoutMs) : fallback.timeoutMs,
|
|
555
598
|
};
|
|
599
|
+
|
|
600
|
+
const legacyDefault = parseModelSpec(LEGACY_DEFAULT_ADVISOR_MODEL);
|
|
601
|
+
if (
|
|
602
|
+
input.thinkingLevel === undefined &&
|
|
603
|
+
legacyDefault &&
|
|
604
|
+
normalized.provider === legacyDefault.provider &&
|
|
605
|
+
normalized.modelId === legacyDefault.modelId
|
|
606
|
+
) {
|
|
607
|
+
normalized.provider = fallback.provider;
|
|
608
|
+
normalized.modelId = fallback.modelId;
|
|
609
|
+
}
|
|
610
|
+
|
|
611
|
+
return normalized;
|
|
556
612
|
}
|
|
557
613
|
|
|
558
614
|
function parseModelSpec(value: string): { provider: string; modelId: string } | undefined {
|
|
@@ -575,3 +631,10 @@ function parseCacheRetention(value: unknown): CacheRetention | undefined {
|
|
|
575
631
|
return undefined;
|
|
576
632
|
}
|
|
577
633
|
|
|
634
|
+
function parseThinkingLevel(value: unknown): AdvisorThinkingLevel | undefined {
|
|
635
|
+
if (value === "minimal" || value === "low" || value === "medium" || value === "high" || value === "xhigh" || value === "max") {
|
|
636
|
+
return value;
|
|
637
|
+
}
|
|
638
|
+
return undefined;
|
|
639
|
+
}
|
|
640
|
+
|