@mariozechner/pi-coding-agent 0.52.9 → 0.52.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.
Files changed (55) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/README.md +20 -1
  3. package/dist/cli/args.d.ts.map +1 -1
  4. package/dist/cli/args.js +7 -1
  5. package/dist/cli/args.js.map +1 -1
  6. package/dist/core/agent-session.d.ts.map +1 -1
  7. package/dist/core/agent-session.js +80 -5
  8. package/dist/core/agent-session.js.map +1 -1
  9. package/dist/core/extensions/index.d.ts +1 -1
  10. package/dist/core/extensions/index.d.ts.map +1 -1
  11. package/dist/core/extensions/index.js.map +1 -1
  12. package/dist/core/extensions/runner.d.ts.map +1 -1
  13. package/dist/core/extensions/runner.js +1 -0
  14. package/dist/core/extensions/runner.js.map +1 -1
  15. package/dist/core/extensions/types.d.ts +58 -7
  16. package/dist/core/extensions/types.d.ts.map +1 -1
  17. package/dist/core/extensions/types.js.map +1 -1
  18. package/dist/core/model-resolver.d.ts +29 -1
  19. package/dist/core/model-resolver.d.ts.map +1 -1
  20. package/dist/core/model-resolver.js +94 -4
  21. package/dist/core/model-resolver.js.map +1 -1
  22. package/dist/index.d.ts +1 -1
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js.map +1 -1
  25. package/dist/main.d.ts.map +1 -1
  26. package/dist/main.js +35 -14
  27. package/dist/main.js.map +1 -1
  28. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  29. package/dist/modes/interactive/components/footer.js +9 -16
  30. package/dist/modes/interactive/components/footer.js.map +1 -1
  31. package/dist/modes/interactive/interactive-mode.d.ts +3 -0
  32. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  33. package/dist/modes/interactive/interactive-mode.js +18 -0
  34. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  35. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  36. package/dist/modes/rpc/rpc-mode.js +4 -0
  37. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  38. package/dist/utils/git.d.ts +5 -1
  39. package/dist/utils/git.d.ts.map +1 -1
  40. package/dist/utils/git.js +14 -3
  41. package/dist/utils/git.js.map +1 -1
  42. package/dist/utils/tools-manager.d.ts.map +1 -1
  43. package/dist/utils/tools-manager.js +1 -1
  44. package/dist/utils/tools-manager.js.map +1 -1
  45. package/docs/extensions.md +44 -1
  46. package/docs/packages.md +5 -7
  47. package/docs/rpc.md +1 -1
  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/trigger-compact.ts +1 -1
  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
@@ -111,6 +111,7 @@ export class InteractiveMode {
111
111
  extensionSelector = undefined;
112
112
  extensionInput = undefined;
113
113
  extensionEditor = undefined;
114
+ extensionTerminalInputUnsubscribers = new Set();
114
115
  // Extension widgets (components rendered above/below the editor)
115
116
  extensionWidgetsAbove = new Map();
116
117
  extensionWidgetsBelow = new Map();
@@ -966,6 +967,7 @@ export class InteractiveMode {
966
967
  this.hideExtensionEditor();
967
968
  }
968
969
  this.ui.hideOverlay();
970
+ this.clearExtensionTerminalInputListeners();
969
971
  this.setExtensionFooter(undefined);
970
972
  this.setExtensionHeader(undefined);
971
973
  this.clearExtensionWidgets();
@@ -1067,6 +1069,20 @@ export class InteractiveMode {
1067
1069
  }
1068
1070
  this.ui.requestRender();
1069
1071
  }
1072
+ addExtensionTerminalInputListener(handler) {
1073
+ const unsubscribe = this.ui.addInputListener(handler);
1074
+ this.extensionTerminalInputUnsubscribers.add(unsubscribe);
1075
+ return () => {
1076
+ unsubscribe();
1077
+ this.extensionTerminalInputUnsubscribers.delete(unsubscribe);
1078
+ };
1079
+ }
1080
+ clearExtensionTerminalInputListeners() {
1081
+ for (const unsubscribe of this.extensionTerminalInputUnsubscribers) {
1082
+ unsubscribe();
1083
+ }
1084
+ this.extensionTerminalInputUnsubscribers.clear();
1085
+ }
1070
1086
  /**
1071
1087
  * Create the ExtensionUIContext for extensions.
1072
1088
  */
@@ -1076,6 +1092,7 @@ export class InteractiveMode {
1076
1092
  confirm: (title, message, opts) => this.showExtensionConfirm(title, message, opts),
1077
1093
  input: (title, placeholder, opts) => this.showExtensionInput(title, placeholder, opts),
1078
1094
  notify: (message, type) => this.showExtensionNotify(message, type),
1095
+ onTerminalInput: (handler) => this.addExtensionTerminalInputListener(handler),
1079
1096
  setStatus: (key, text) => this.setExtensionStatus(key, text),
1080
1097
  setWorkingMessage: (message) => {
1081
1098
  if (this.loadingAnimation) {
@@ -3672,6 +3689,7 @@ export class InteractiveMode {
3672
3689
  this.loadingAnimation.stop();
3673
3690
  this.loadingAnimation = undefined;
3674
3691
  }
3692
+ this.clearExtensionTerminalInputListeners();
3675
3693
  this.footer.dispose();
3676
3694
  this.footerDataProvider.dispose();
3677
3695
  if (this.unsubscribe) {