@esso0428/pi-subagents 0.17.8 → 0.17.10
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 +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -9
- package/dist/index.js.map +1 -1
- package/dist/ui/agent-widget.d.ts +5 -2
- package/dist/ui/agent-widget.d.ts.map +1 -1
- package/dist/ui/agent-widget.js +64 -39
- package/dist/ui/agent-widget.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +11 -9
- package/src/ui/agent-widget.ts +64 -38
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.17.10] - 2026-09-30
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
- **Agents and `/agents` history selection now use normalized keyboard events**, visibly mark the selected row, ignore key-release events, and close cleanly with `Esc` or `Ctrl-C`.
|
|
14
|
+
|
|
15
|
+
## [0.17.9] - 2026-09-30
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
- **Restored v0.17.6 Agents-panel input behavior**: key-release events and non-editor focus no longer steal prompt/menu navigation, spinner updates remain animated, and very short terminals can hide the widget to preserve editor space.
|
|
19
|
+
|
|
10
20
|
## [0.17.8] - 2026-09-30
|
|
11
21
|
|
|
12
22
|
### Fixed
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EAAc,KAAK,YAAY,EAA0F,MAAM,iCAAiC,CAAC;AACxK,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EAAc,KAAK,YAAY,EAA0F,MAAM,iCAAiC,CAAC;AACxK,OAAO,EAAE,SAAS,EAA+E,MAAM,wBAAwB,CAAC;AAyBhI,OAAO,EAAE,KAAK,WAAW,EAAuK,MAAM,YAAY,CAAC;AAEnN,OAAO,EAeL,KAAK,KAAK,EAEX,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EAA2B,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAChG,OAAO,EAAE,mBAAmB,EAAE,KAAK,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAmBrG,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GACvB,SAAS,CAKX;AAgKD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,CAatE;AAED,6DAA6D;AAC7D,eAAO,MAAM,kBAAkB,4BAA4B,CAAC;AAE5D;;;;GAIG;AACH,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,KAAK,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;AAEvG,MAAM,CAAC,OAAO,WAAW,EAAE,EAAE,YAAY,QA0qHxC"}
|
package/dist/index.js
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from "node:fs";
|
|
13
13
|
import { isAbsolute, join } from "node:path";
|
|
14
14
|
import { defineTool, getAgentDir, getSettingsListTheme } from "@earendil-works/pi-coding-agent";
|
|
15
|
-
import { Container, Key, matchesKey, SettingsList, Spacer, Text } from "@earendil-works/pi-tui";
|
|
15
|
+
import { Container, isKeyRelease, Key, matchesKey, SettingsList, Spacer, Text } from "@earendil-works/pi-tui";
|
|
16
16
|
import { Type } from "@sinclair/typebox";
|
|
17
17
|
import { abortable } from "./abortable.js";
|
|
18
18
|
import { hasAgentBadge, renderAgentName } from "./agent-color.js";
|
|
@@ -2835,15 +2835,17 @@ Terse command-style prompts produce shallow, generic work.
|
|
|
2835
2835
|
render: (width) => agents.map((agent, row) => `${row === index ? "→" : " "} ${agent.description}`.slice(0, width)),
|
|
2836
2836
|
invalidate() { },
|
|
2837
2837
|
handleInput(data) {
|
|
2838
|
-
if (data
|
|
2838
|
+
if (isKeyRelease(data))
|
|
2839
|
+
return;
|
|
2840
|
+
if (matchesKey(data, Key.down))
|
|
2839
2841
|
index = Math.min(agents.length - 1, index + 1);
|
|
2840
|
-
else if (data
|
|
2842
|
+
else if (matchesKey(data, Key.up))
|
|
2841
2843
|
index = Math.max(0, index - 1);
|
|
2842
|
-
else if (data
|
|
2844
|
+
else if (matchesKey(data, Key.enter)) {
|
|
2843
2845
|
runningSelectionIndex = index;
|
|
2844
2846
|
done(agents[index]);
|
|
2845
2847
|
}
|
|
2846
|
-
else if (data
|
|
2848
|
+
else if (matchesKey(data, Key.escape) || matchesKey(data, Key.ctrl("c"))) {
|
|
2847
2849
|
runningSelectionIndex = index;
|
|
2848
2850
|
done(undefined);
|
|
2849
2851
|
}
|
|
@@ -2865,15 +2867,17 @@ Terse command-style prompts produce shallow, generic work.
|
|
|
2865
2867
|
render: (width) => history.map((record, row) => `${row === index ? "→" : " "} ${record.description}`.slice(0, width)),
|
|
2866
2868
|
invalidate() { },
|
|
2867
2869
|
handleInput(data) {
|
|
2868
|
-
if (data
|
|
2870
|
+
if (isKeyRelease(data))
|
|
2871
|
+
return;
|
|
2872
|
+
if (matchesKey(data, Key.down))
|
|
2869
2873
|
index = Math.min(history.length - 1, index + 1);
|
|
2870
|
-
else if (data
|
|
2874
|
+
else if (matchesKey(data, Key.up))
|
|
2871
2875
|
index = Math.max(0, index - 1);
|
|
2872
|
-
else if (data
|
|
2876
|
+
else if (matchesKey(data, Key.enter)) {
|
|
2873
2877
|
historySelectionIndex = index;
|
|
2874
2878
|
done(history[index]);
|
|
2875
2879
|
}
|
|
2876
|
-
else if (data
|
|
2880
|
+
else if (matchesKey(data, Key.escape) || matchesKey(data, Key.ctrl("c")))
|
|
2877
2881
|
done(undefined);
|
|
2878
2882
|
},
|
|
2879
2883
|
};
|