@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 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
@@ -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,EAAiE,MAAM,wBAAwB,CAAC;AAyBlH,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,QAwqHxC"}
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 === "\u001b[B")
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 === "\u001b[A")
2842
+ else if (matchesKey(data, Key.up))
2841
2843
  index = Math.max(0, index - 1);
2842
- else if (data === "\r" || data === "\n") {
2844
+ else if (matchesKey(data, Key.enter)) {
2843
2845
  runningSelectionIndex = index;
2844
2846
  done(agents[index]);
2845
2847
  }
2846
- else if (data === "\u001b") {
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 === "\u001b[B")
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 === "\u001b[A")
2874
+ else if (matchesKey(data, Key.up))
2871
2875
  index = Math.max(0, index - 1);
2872
- else if (data === "\r" || data === "\n") {
2876
+ else if (matchesKey(data, Key.enter)) {
2873
2877
  historySelectionIndex = index;
2874
2878
  done(history[index]);
2875
2879
  }
2876
- else if (data === "\u001b")
2880
+ else if (matchesKey(data, Key.escape) || matchesKey(data, Key.ctrl("c")))
2877
2881
  done(undefined);
2878
2882
  },
2879
2883
  };