@esso0428/pi-subagents 0.17.11 → 0.17.13
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 +12 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +42 -26
- package/dist/index.js.map +1 -1
- package/dist/ui/agent-widget.d.ts +102 -91
- package/dist/ui/agent-widget.d.ts.map +1 -1
- package/dist/ui/agent-widget.js +578 -361
- package/dist/ui/agent-widget.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +38 -24
- package/src/ui/agent-widget.ts +609 -355
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.17.13] - 2026-10-01
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
- **Repaired the Agents widget lifecycle and interaction model**: runtime agent updates are cached and rendered without stale rows, modal history selectors suspend background widget input, and nested agents remain visible under their owning parent.
|
|
14
|
+
- **Preserved durable transcript-backed agents after runtime cleanup**, including model and accumulated-cost details for completed and historical rows.
|
|
15
|
+
- **Improved widget layout resilience** with correct scrollbar bounds and restoration of the v0.17.6 selector foundation across short and long terminal layouts.
|
|
16
|
+
|
|
17
|
+
## [0.17.12] - 2026-09-30
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
- **Agent history selectors now own arrow and Enter input while open**, preventing the background Agents widget from moving instead of the `/agents` history list.
|
|
21
|
+
|
|
10
22
|
## [0.17.11] - 2026-09-30
|
|
11
23
|
|
|
12
24
|
### 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,EAA8G,MAAM,iCAAiC,CAAC;AAC5L,OAAO,EAAE,SAAS,EAA2F,MAAM,wBAAwB,CAAC;AAyB5I,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,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EAAc,KAAK,YAAY,EAA8G,MAAM,iCAAiC,CAAC;AAC5L,OAAO,EAAE,SAAS,EAA2F,MAAM,wBAAwB,CAAC;AAyB5I,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,QA+uHxC"}
|
package/dist/index.js
CHANGED
|
@@ -2730,7 +2730,16 @@ Terse command-style prompts produce shallow, generic work.
|
|
|
2730
2730
|
if (noAgentsMsg) {
|
|
2731
2731
|
ctx.ui.notify(noAgentsMsg, "info");
|
|
2732
2732
|
}
|
|
2733
|
-
|
|
2733
|
+
// The widget also listens through the global terminal-input hook. Pause it
|
|
2734
|
+
// while the top-level menu owns the same arrow/Enter keys.
|
|
2735
|
+
widget.suspendNavigation();
|
|
2736
|
+
let choice;
|
|
2737
|
+
try {
|
|
2738
|
+
choice = await ctx.ui.select("Agents", options);
|
|
2739
|
+
}
|
|
2740
|
+
finally {
|
|
2741
|
+
widget.resumeNavigation();
|
|
2742
|
+
}
|
|
2734
2743
|
if (!choice)
|
|
2735
2744
|
return;
|
|
2736
2745
|
if (choice.startsWith("Running agents (")) {
|
|
@@ -2856,31 +2865,38 @@ Terse command-style prompts produce shallow, generic work.
|
|
|
2856
2865
|
selection.index = index;
|
|
2857
2866
|
}
|
|
2858
2867
|
};
|
|
2859
|
-
|
|
2860
|
-
|
|
2861
|
-
|
|
2862
|
-
|
|
2863
|
-
|
|
2864
|
-
|
|
2865
|
-
|
|
2866
|
-
|
|
2867
|
-
|
|
2868
|
-
|
|
2869
|
-
|
|
2870
|
-
|
|
2871
|
-
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
2875
|
-
|
|
2876
|
-
|
|
2877
|
-
|
|
2878
|
-
|
|
2879
|
-
|
|
2880
|
-
|
|
2881
|
-
|
|
2882
|
-
|
|
2883
|
-
|
|
2868
|
+
widget.suspendNavigation();
|
|
2869
|
+
let choice;
|
|
2870
|
+
try {
|
|
2871
|
+
choice = await ctx.ui.custom((_tui, _theme, _kb, done) => {
|
|
2872
|
+
const list = new SelectList(options, Math.min(options.length, 10), getSelectListTheme());
|
|
2873
|
+
list.setSelectedIndex(initialIndex);
|
|
2874
|
+
const initialItem = options[initialIndex];
|
|
2875
|
+
if (initialItem)
|
|
2876
|
+
remember(initialItem.value);
|
|
2877
|
+
list.onSelectionChange = item => remember(item.value);
|
|
2878
|
+
list.onSelect = item => {
|
|
2879
|
+
remember(item.value);
|
|
2880
|
+
done(item.value);
|
|
2881
|
+
};
|
|
2882
|
+
list.onCancel = () => done(undefined);
|
|
2883
|
+
const container = new Container();
|
|
2884
|
+
container.addChild(new Text(title, 0, 0));
|
|
2885
|
+
container.addChild(new Spacer(1));
|
|
2886
|
+
container.addChild(list);
|
|
2887
|
+
return {
|
|
2888
|
+
render: (width) => container.render(width),
|
|
2889
|
+
invalidate: () => container.invalidate(),
|
|
2890
|
+
handleInput: (data) => {
|
|
2891
|
+
if (!isKeyRelease(data))
|
|
2892
|
+
list.handleInput(data);
|
|
2893
|
+
},
|
|
2894
|
+
};
|
|
2895
|
+
});
|
|
2896
|
+
}
|
|
2897
|
+
finally {
|
|
2898
|
+
widget.resumeNavigation();
|
|
2899
|
+
}
|
|
2884
2900
|
if (!choice)
|
|
2885
2901
|
return undefined;
|
|
2886
2902
|
return pairs.find(({ record }) => record.id === choice)?.record;
|