@mariozechner/pi-coding-agent 0.56.1 → 0.56.3

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.
Files changed (55) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/README.md +1 -1
  3. package/dist/core/agent-session.d.ts +1 -0
  4. package/dist/core/agent-session.d.ts.map +1 -1
  5. package/dist/core/agent-session.js +50 -17
  6. package/dist/core/agent-session.js.map +1 -1
  7. package/dist/core/auth-storage.d.ts +2 -1
  8. package/dist/core/auth-storage.d.ts.map +1 -1
  9. package/dist/core/auth-storage.js +25 -1
  10. package/dist/core/auth-storage.js.map +1 -1
  11. package/dist/core/compaction/utils.d.ts +3 -0
  12. package/dist/core/compaction/utils.d.ts.map +1 -1
  13. package/dist/core/compaction/utils.js +16 -1
  14. package/dist/core/compaction/utils.js.map +1 -1
  15. package/dist/core/extensions/loader.d.ts.map +1 -1
  16. package/dist/core/extensions/loader.js +4 -4
  17. package/dist/core/extensions/loader.js.map +1 -1
  18. package/dist/core/model-resolver.d.ts.map +1 -1
  19. package/dist/core/model-resolver.js +2 -2
  20. package/dist/core/model-resolver.js.map +1 -1
  21. package/dist/core/settings-manager.d.ts +4 -0
  22. package/dist/core/settings-manager.d.ts.map +1 -1
  23. package/dist/core/settings-manager.js +36 -2
  24. package/dist/core/settings-manager.js.map +1 -1
  25. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  26. package/dist/modes/interactive/components/footer.js +8 -23
  27. package/dist/modes/interactive/components/footer.js.map +1 -1
  28. package/dist/modes/interactive/components/settings-selector.d.ts +2 -0
  29. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  30. package/dist/modes/interactive/components/settings-selector.js +10 -0
  31. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  32. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  33. package/dist/modes/interactive/components/tool-execution.js +14 -4
  34. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  35. package/dist/modes/interactive/components/tree-selector.d.ts +4 -2
  36. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
  37. package/dist/modes/interactive/components/tree-selector.js +4 -3
  38. package/dist/modes/interactive/components/tree-selector.js.map +1 -1
  39. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  40. package/dist/modes/interactive/interactive-mode.js +19 -5
  41. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  42. package/docs/compaction.md +2 -0
  43. package/docs/custom-provider.md +11 -7
  44. package/docs/extensions.md +13 -1
  45. package/docs/models.md +5 -1
  46. package/docs/settings.md +1 -0
  47. package/docs/tmux.md +39 -0
  48. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  49. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  50. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  51. package/examples/extensions/custom-provider-qwen-cli/package.json +1 -1
  52. package/examples/extensions/with-deps/index.ts +1 -5
  53. package/examples/extensions/with-deps/package-lock.json +2 -2
  54. package/examples/extensions/with-deps/package.json +1 -1
  55. package/package.json +4 -4
@@ -1289,10 +1289,18 @@ export class InteractiveMode {
1289
1289
  // Use duck typing since instanceof fails across jiti module boundaries
1290
1290
  const customEditor = newEditor;
1291
1291
  if ("actionHandlers" in customEditor && customEditor.actionHandlers instanceof Map) {
1292
- customEditor.onEscape = () => this.defaultEditor.onEscape?.();
1293
- customEditor.onCtrlD = () => this.defaultEditor.onCtrlD?.();
1294
- customEditor.onPasteImage = () => this.defaultEditor.onPasteImage?.();
1295
- customEditor.onExtensionShortcut = (data) => this.defaultEditor.onExtensionShortcut?.(data);
1292
+ if (!customEditor.onEscape) {
1293
+ customEditor.onEscape = () => this.defaultEditor.onEscape?.();
1294
+ }
1295
+ if (!customEditor.onCtrlD) {
1296
+ customEditor.onCtrlD = () => this.defaultEditor.onCtrlD?.();
1297
+ }
1298
+ if (!customEditor.onPasteImage) {
1299
+ customEditor.onPasteImage = () => this.defaultEditor.onPasteImage?.();
1300
+ }
1301
+ if (!customEditor.onExtensionShortcut) {
1302
+ customEditor.onExtensionShortcut = (data) => this.defaultEditor.onExtensionShortcut?.(data);
1303
+ }
1296
1304
  // Copy action handlers (clear, suspend, model switching, etc.)
1297
1305
  for (const [action, handler] of this.defaultEditor.actionHandlers) {
1298
1306
  customEditor.actionHandlers.set(action, handler);
@@ -2547,6 +2555,7 @@ export class InteractiveMode {
2547
2555
  hideThinkingBlock: this.hideThinkingBlock,
2548
2556
  collapseChangelog: this.settingsManager.getCollapseChangelog(),
2549
2557
  doubleEscapeAction: this.settingsManager.getDoubleEscapeAction(),
2558
+ treeFilterMode: this.settingsManager.getTreeFilterMode(),
2550
2559
  showHardwareCursor: this.settingsManager.getShowHardwareCursor(),
2551
2560
  editorPaddingX: this.settingsManager.getEditorPaddingX(),
2552
2561
  autocompleteMaxVisible: this.settingsManager.getAutocompleteMaxVisible(),
@@ -2625,6 +2634,9 @@ export class InteractiveMode {
2625
2634
  onDoubleEscapeActionChange: (action) => {
2626
2635
  this.settingsManager.setDoubleEscapeAction(action);
2627
2636
  },
2637
+ onTreeFilterModeChange: (mode) => {
2638
+ this.settingsManager.setTreeFilterMode(mode);
2639
+ },
2628
2640
  onShowHardwareCursorChange: (enabled) => {
2629
2641
  this.settingsManager.setShowHardwareCursor(enabled);
2630
2642
  this.ui.setShowHardwareCursor(enabled);
@@ -2878,6 +2890,7 @@ export class InteractiveMode {
2878
2890
  showTreeSelector(initialSelectedId) {
2879
2891
  const tree = this.sessionManager.getTree();
2880
2892
  const realLeafId = this.sessionManager.getLeafId();
2893
+ const initialFilterMode = this.settingsManager.getTreeFilterMode();
2881
2894
  if (tree.length === 0) {
2882
2895
  this.showStatus("No entries in session");
2883
2896
  return;
@@ -2971,7 +2984,7 @@ export class InteractiveMode {
2971
2984
  }, (entryId, label) => {
2972
2985
  this.sessionManager.appendLabelChange(entryId, label);
2973
2986
  this.ui.requestRender();
2974
- }, initialSelectedId);
2987
+ }, initialSelectedId, initialFilterMode);
2975
2988
  return { component: selector, focus: selector };
2976
2989
  });
2977
2990
  }
@@ -3526,6 +3539,7 @@ export class InteractiveMode {
3526
3539
  // New session via session (emits extension session events)
3527
3540
  await this.session.newSession();
3528
3541
  // Clear UI state
3542
+ this.headerContainer.clear();
3529
3543
  this.chatContainer.clear();
3530
3544
  this.pendingMessagesContainer.clear();
3531
3545
  this.compactionQueuedMessages = [];