pi-studio 0.9.35 → 0.9.36
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/CHANGELOG.md +5 -0
- package/client/studio-client.js +4 -2
- package/index.ts +8 -7
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,11 @@ All notable changes to `pi-studio` are documented here.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.9.36] — 2026-07-13
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
- Added `max` to the Studio footer Pi thinking selector to match newer Pi thinking levels.
|
|
11
|
+
|
|
7
12
|
## [0.9.35] — 2026-07-13
|
|
8
13
|
|
|
9
14
|
### Added
|
package/client/studio-client.js
CHANGED
|
@@ -3322,7 +3322,7 @@
|
|
|
3322
3322
|
}
|
|
3323
3323
|
|
|
3324
3324
|
function getPiThinkingLevels() {
|
|
3325
|
-
return ["off", "minimal", "low", "medium", "high", "xhigh"];
|
|
3325
|
+
return ["off", "minimal", "low", "medium", "high", "xhigh", "max"];
|
|
3326
3326
|
}
|
|
3327
3327
|
|
|
3328
3328
|
function renderFooterModelMenu() {
|
|
@@ -3339,7 +3339,9 @@
|
|
|
3339
3339
|
modelOptionsHtml.unshift("<option value='" + escapeHtml(currentValue) + "' selected>" + escapeHtml(label || "current model") + "</option>");
|
|
3340
3340
|
}
|
|
3341
3341
|
const thinking = piThinkingLevel || "off";
|
|
3342
|
-
const
|
|
3342
|
+
const thinkingLevels = getPiThinkingLevels();
|
|
3343
|
+
if (thinking && !thinkingLevels.includes(thinking)) thinkingLevels.push(thinking);
|
|
3344
|
+
const thinkingOptionsHtml = thinkingLevels.map((level) => {
|
|
3343
3345
|
return "<option value='" + escapeHtml(level) + "'" + (level === thinking ? " selected" : "") + ">Thinking: " + escapeHtml(level) + "</option>";
|
|
3344
3346
|
});
|
|
3345
3347
|
footerModelMenuEl.innerHTML = ""
|
package/index.ts
CHANGED
|
@@ -44,6 +44,7 @@ type StudioReplRuntime = "shell" | "python" | "ipython" | "julia" | "r" | "ghci"
|
|
|
44
44
|
type StudioQuizAngle = "general" | "scientist" | "mathematician" | "statistician" | "developer" | "reviewer";
|
|
45
45
|
type StudioQuizScope = "selection" | "editor" | "file" | "folder" | "repo";
|
|
46
46
|
type StudioQuizThinking = "off" | "minimal" | "low" | "medium" | "high";
|
|
47
|
+
type StudioPiThinkingLevel = ModelThinkingLevel | "max";
|
|
47
48
|
|
|
48
49
|
const STUDIO_CSS_URL = new URL("./client/studio.css", import.meta.url);
|
|
49
50
|
const STUDIO_ANNOTATION_HELPERS_URL = new URL("./client/studio-annotation-helpers.js", import.meta.url);
|
|
@@ -358,7 +359,7 @@ interface PiModelSelectRequestMessage {
|
|
|
358
359
|
|
|
359
360
|
interface PiThinkingLevelRequestMessage {
|
|
360
361
|
type: "pi_thinking_level_request";
|
|
361
|
-
level:
|
|
362
|
+
level: StudioPiThinkingLevel;
|
|
362
363
|
}
|
|
363
364
|
|
|
364
365
|
interface PiThemeSelectRequestMessage {
|
|
@@ -8445,7 +8446,7 @@ function parseIncomingMessage(data: RawData): IncomingStudioMessage | null {
|
|
|
8445
8446
|
|
|
8446
8447
|
if (msg.type === "pi_thinking_level_request" && typeof msg.level === "string") {
|
|
8447
8448
|
const level = msg.level.trim().toLowerCase();
|
|
8448
|
-
if (level === "off" || level === "minimal" || level === "low" || level === "medium" || level === "high" || level === "xhigh") {
|
|
8449
|
+
if (level === "off" || level === "minimal" || level === "low" || level === "medium" || level === "high" || level === "xhigh" || level === "max") {
|
|
8449
8450
|
return {
|
|
8450
8451
|
type: "pi_thinking_level_request",
|
|
8451
8452
|
level,
|
|
@@ -11076,17 +11077,17 @@ export default function (pi: ExtensionAPI) {
|
|
|
11076
11077
|
}
|
|
11077
11078
|
};
|
|
11078
11079
|
|
|
11079
|
-
const getThinkingLevelSafe = ():
|
|
11080
|
+
const getThinkingLevelSafe = (): StudioPiThinkingLevel | undefined => {
|
|
11080
11081
|
try {
|
|
11081
|
-
return pi.getThinkingLevel() as
|
|
11082
|
+
return pi.getThinkingLevel() as StudioPiThinkingLevel;
|
|
11082
11083
|
} catch {
|
|
11083
11084
|
return undefined;
|
|
11084
11085
|
}
|
|
11085
11086
|
};
|
|
11086
11087
|
|
|
11087
|
-
const setThinkingLevelSafe = (level:
|
|
11088
|
-
// Pi's CLI/model config support "off"
|
|
11089
|
-
(pi.setThinkingLevel as (nextLevel:
|
|
11088
|
+
const setThinkingLevelSafe = (level: StudioPiThinkingLevel) => {
|
|
11089
|
+
// Pi's CLI/model config support "off" and newer levels such as "max"; some extension API typings still expose a narrower reasoning-only type.
|
|
11090
|
+
(pi.setThinkingLevel as (nextLevel: StudioPiThinkingLevel) => void)(level);
|
|
11090
11091
|
};
|
|
11091
11092
|
|
|
11092
11093
|
const refreshRuntimeMetadata = (ctx?: { cwd?: string; model?: { provider?: string; id?: string; name?: string; reasoning?: boolean } | undefined }) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-studio",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.36",
|
|
4
4
|
"description": "Two-pane browser workspace for pi with prompt/response editing, annotations, critiques, active quiz, prompt/response history, live previews, and tmux-backed REPL/literate REPL workflows",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|