pi-squire 0.18.4 → 0.19.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/CHANGELOG.md +13 -1
- package/README.md +5 -6
- package/package.json +5 -5
- package/src/navigator.ts +1 -0
- package/src/new-delegate.ts +1 -0
- package/src/render.ts +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,17 @@ follows [Semantic Versioning](https://semver.org/).
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.19.0] - 2026-11-02
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
|
|
13
|
+
- **Breaking:** Pi 1.5.0 or later is now required. Delegate result expand hints use Pi's
|
|
14
|
+
configured keybinding, and the inline delegate dashboard and new-delegate
|
|
15
|
+
settings form report that Pi is waiting for a choice. The render tests now
|
|
16
|
+
require the configured key in the hint instead of accepting a missing key;
|
|
17
|
+
dashboard and form tests pin their blocked-input status. The active-tools
|
|
18
|
+
test fake now preserves retained tools' order, matching Pi 1.5.
|
|
19
|
+
|
|
9
20
|
## [0.18.4] - 2026-11-02
|
|
10
21
|
|
|
11
22
|
### Fixed
|
|
@@ -1072,7 +1083,8 @@ author's dotfiles; the changes below are against that copy.
|
|
|
1072
1083
|
|
|
1073
1084
|
- The published file list includes `child.ts`, which `index.ts` imports.
|
|
1074
1085
|
|
|
1075
|
-
[Unreleased]: https://github.com/gvanderclay/pi-squire/compare/v0.
|
|
1086
|
+
[Unreleased]: https://github.com/gvanderclay/pi-squire/compare/v0.19.0...HEAD
|
|
1087
|
+
[0.19.0]: https://github.com/gvanderclay/pi-squire/compare/v0.18.4...v0.19.0
|
|
1076
1088
|
[0.18.4]: https://github.com/gvanderclay/pi-squire/compare/v0.18.3...v0.18.4
|
|
1077
1089
|
[0.18.3]: https://github.com/gvanderclay/pi-squire/compare/v0.18.2...v0.18.3
|
|
1078
1090
|
[0.18.2]: https://github.com/gvanderclay/pi-squire/compare/v0.18.1...v0.18.2
|
package/README.md
CHANGED
|
@@ -10,12 +10,11 @@ answers with one message, which the parent session shows as a result.
|
|
|
10
10
|
|
|
11
11
|
You need:
|
|
12
12
|
|
|
13
|
-
- Pi 1.
|
|
14
|
-
pi-squire is tested with. It provides
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
`typebox`.
|
|
13
|
+
- Pi 1.5.0 or later, on macOS or Linux (not Windows). Pi 1.5.0 is the version
|
|
14
|
+
pi-squire is tested with. It provides configured keybinding hints for delegate
|
|
15
|
+
results, blocked-input status for inline choice screens, and the extension
|
|
16
|
+
APIs the package relies on. Pi supplies the peer dependencies
|
|
17
|
+
`@earendil-works/pi-coding-agent` and `typebox`.
|
|
19
18
|
- tmux 3.2 or later, with the Pi session running in a tmux pane. That is the
|
|
20
19
|
first version with `new-session -e`. Windows are placed
|
|
21
20
|
relative to the pane's session (see [Where delegate windows
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-squire",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.0",
|
|
4
4
|
"description": "Starts a delegate Pi session in a background tmux window, sends it the task over message:*, and shows the parent its result",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pi-package",
|
|
@@ -45,15 +45,15 @@
|
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|
|
47
47
|
"@earendil-works/pi-ai": "*",
|
|
48
|
-
"@earendil-works/pi-coding-agent": ">=1.
|
|
48
|
+
"@earendil-works/pi-coding-agent": ">=1.5.0",
|
|
49
49
|
"@earendil-works/pi-tui": "*",
|
|
50
50
|
"typebox": "*"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"@biomejs/biome": "2.5.14",
|
|
54
|
-
"@earendil-works/pi-ai": "1.
|
|
55
|
-
"@earendil-works/pi-coding-agent": "1.
|
|
56
|
-
"@earendil-works/pi-tui": "1.
|
|
54
|
+
"@earendil-works/pi-ai": "1.5.0",
|
|
55
|
+
"@earendil-works/pi-coding-agent": "1.5.0",
|
|
56
|
+
"@earendil-works/pi-tui": "1.5.0",
|
|
57
57
|
"@types/node": "26.6.5",
|
|
58
58
|
"pi-session-mail": "0.6.0",
|
|
59
59
|
"typebox": "1.4.3",
|
package/src/navigator.ts
CHANGED
package/src/new-delegate.ts
CHANGED
|
@@ -441,6 +441,7 @@ export async function startNewDelegate(ctx: ExtensionContext, deps: NewDelegateD
|
|
|
441
441
|
cwdProblem: (value: string): string | undefined => cwdProblem(value, ctx.cwd),
|
|
442
442
|
done,
|
|
443
443
|
}),
|
|
444
|
+
{ blocked: { kind: "question", message: "Choose delegate settings" } },
|
|
444
445
|
);
|
|
445
446
|
if (chosen === undefined) return;
|
|
446
447
|
await deps.start({ agent: agent.name, task, ...(label === undefined ? {} : { label }), ...chosen }, ctx);
|
package/src/render.ts
CHANGED
|
@@ -9,7 +9,6 @@ import { homedir } from "node:os";
|
|
|
9
9
|
|
|
10
10
|
import {
|
|
11
11
|
getMarkdownTheme,
|
|
12
|
-
keyHint,
|
|
13
12
|
type MessageRenderer,
|
|
14
13
|
type MessageRenderOptions,
|
|
15
14
|
type Theme,
|
|
@@ -178,7 +177,7 @@ function idLines(details: MessageDetails): string[] {
|
|
|
178
177
|
*/
|
|
179
178
|
export function renderMessage(
|
|
180
179
|
message: Parameters<MessageRenderer>[0],
|
|
181
|
-
{ expanded, outputPad }: MessageRenderOptions,
|
|
180
|
+
{ expanded, outputPad, keyHint }: MessageRenderOptions,
|
|
182
181
|
theme: Theme,
|
|
183
182
|
): Component | undefined {
|
|
184
183
|
const details = message.details as MessageDetails | undefined;
|
|
@@ -192,7 +191,8 @@ export function renderMessage(
|
|
|
192
191
|
box.addChild(expanded ? new Text(header, 0, 0) : new TruncatedText(header));
|
|
193
192
|
if (details.kind === "result" && details.limit !== undefined)
|
|
194
193
|
box.addChild(new Text(theme.fg("warning", details.limit), 0, 0));
|
|
195
|
-
for (const child of expanded ? expandedLines(details, theme) : collapsedLines(details, theme))
|
|
194
|
+
for (const child of expanded ? expandedLines(details, theme) : collapsedLines(details, theme, keyHint))
|
|
195
|
+
box.addChild(child);
|
|
196
196
|
return box;
|
|
197
197
|
}
|
|
198
198
|
|
|
@@ -209,7 +209,7 @@ function headerLine(details: MessageDetails, status: string, theme: Theme): stri
|
|
|
209
209
|
}
|
|
210
210
|
|
|
211
211
|
/** A result's first lines, a count of the rest, and the expand hint. */
|
|
212
|
-
function collapsedLines(details: MessageDetails, theme: Theme): Component[] {
|
|
212
|
+
function collapsedLines(details: MessageDetails, theme: Theme, keyHint: MessageRenderOptions["keyHint"]): Component[] {
|
|
213
213
|
const children: Component[] = [];
|
|
214
214
|
if (details.kind === "result") {
|
|
215
215
|
const lines = plainLines(details.body);
|