@mariozechner/pi-coding-agent 0.50.8 → 0.51.0

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 (122) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/README.md +4 -3
  3. package/dist/cli/args.d.ts.map +1 -1
  4. package/dist/cli/args.js +2 -0
  5. package/dist/cli/args.js.map +1 -1
  6. package/dist/cli/session-picker.d.ts.map +1 -1
  7. package/dist/cli/session-picker.js +3 -1
  8. package/dist/cli/session-picker.js.map +1 -1
  9. package/dist/config.d.ts.map +1 -1
  10. package/dist/config.js +9 -0
  11. package/dist/config.js.map +1 -1
  12. package/dist/core/extensions/index.d.ts +2 -2
  13. package/dist/core/extensions/index.d.ts.map +1 -1
  14. package/dist/core/extensions/index.js +1 -1
  15. package/dist/core/extensions/index.js.map +1 -1
  16. package/dist/core/extensions/types.d.ts +67 -5
  17. package/dist/core/extensions/types.d.ts.map +1 -1
  18. package/dist/core/extensions/types.js +4 -1
  19. package/dist/core/extensions/types.js.map +1 -1
  20. package/dist/core/extensions/wrapper.d.ts.map +1 -1
  21. package/dist/core/extensions/wrapper.js +1 -1
  22. package/dist/core/extensions/wrapper.js.map +1 -1
  23. package/dist/core/keybindings.d.ts +1 -1
  24. package/dist/core/keybindings.d.ts.map +1 -1
  25. package/dist/core/keybindings.js +2 -0
  26. package/dist/core/keybindings.js.map +1 -1
  27. package/dist/core/model-registry.d.ts.map +1 -1
  28. package/dist/core/model-registry.js +19 -17
  29. package/dist/core/model-registry.js.map +1 -1
  30. package/dist/core/package-manager.d.ts.map +1 -1
  31. package/dist/core/package-manager.js +11 -9
  32. package/dist/core/package-manager.js.map +1 -1
  33. package/dist/core/skills.d.ts.map +1 -1
  34. package/dist/core/skills.js +1 -0
  35. package/dist/core/skills.js.map +1 -1
  36. package/dist/core/tools/bash.d.ts +11 -0
  37. package/dist/core/tools/bash.d.ts.map +1 -1
  38. package/dist/core/tools/bash.js +18 -3
  39. package/dist/core/tools/bash.js.map +1 -1
  40. package/dist/core/tools/edit.d.ts +2 -0
  41. package/dist/core/tools/edit.d.ts.map +1 -1
  42. package/dist/core/tools/edit.js.map +1 -1
  43. package/dist/core/tools/find.d.ts +2 -0
  44. package/dist/core/tools/find.d.ts.map +1 -1
  45. package/dist/core/tools/find.js.map +1 -1
  46. package/dist/core/tools/grep.d.ts +2 -0
  47. package/dist/core/tools/grep.d.ts.map +1 -1
  48. package/dist/core/tools/grep.js.map +1 -1
  49. package/dist/core/tools/index.d.ts +7 -7
  50. package/dist/core/tools/index.d.ts.map +1 -1
  51. package/dist/core/tools/index.js +5 -5
  52. package/dist/core/tools/index.js.map +1 -1
  53. package/dist/core/tools/ls.d.ts +2 -0
  54. package/dist/core/tools/ls.d.ts.map +1 -1
  55. package/dist/core/tools/ls.js.map +1 -1
  56. package/dist/core/tools/read.d.ts +2 -0
  57. package/dist/core/tools/read.d.ts.map +1 -1
  58. package/dist/core/tools/read.js.map +1 -1
  59. package/dist/core/tools/write.d.ts +2 -0
  60. package/dist/core/tools/write.d.ts.map +1 -1
  61. package/dist/core/tools/write.js.map +1 -1
  62. package/dist/index.d.ts +3 -3
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +1 -1
  65. package/dist/index.js.map +1 -1
  66. package/dist/modes/interactive/components/session-selector-search.d.ts +3 -1
  67. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
  68. package/dist/modes/interactive/components/session-selector-search.js +13 -4
  69. package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
  70. package/dist/modes/interactive/components/session-selector.d.ts +11 -2
  71. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  72. package/dist/modes/interactive/components/session-selector.js +58 -12
  73. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  74. package/dist/modes/interactive/components/tree-selector.d.ts +6 -0
  75. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
  76. package/dist/modes/interactive/components/tree-selector.js +43 -16
  77. package/dist/modes/interactive/components/tree-selector.js.map +1 -1
  78. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  79. package/dist/modes/interactive/interactive-mode.js +6 -15
  80. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  81. package/dist/utils/clipboard-image.d.ts.map +1 -1
  82. package/dist/utils/clipboard-image.js +6 -3
  83. package/dist/utils/clipboard-image.js.map +1 -1
  84. package/dist/utils/clipboard-native.d.ts +7 -0
  85. package/dist/utils/clipboard-native.d.ts.map +1 -0
  86. package/dist/utils/clipboard-native.js +14 -0
  87. package/dist/utils/clipboard-native.js.map +1 -0
  88. package/dist/utils/clipboard.d.ts.map +1 -1
  89. package/dist/utils/clipboard.js +10 -1
  90. package/dist/utils/clipboard.js.map +1 -1
  91. package/dist/utils/tools-manager.d.ts.map +1 -1
  92. package/dist/utils/tools-manager.js +14 -0
  93. package/dist/utils/tools-manager.js.map +1 -1
  94. package/docs/extensions.md +57 -9
  95. package/docs/keybindings.md +1 -0
  96. package/docs/models.md +43 -14
  97. package/docs/rpc.md +188 -1
  98. package/docs/termux.md +127 -0
  99. package/examples/extensions/README.md +2 -0
  100. package/examples/extensions/antigravity-image-gen.ts +1 -1
  101. package/examples/extensions/bash-spawn-hook.ts +30 -0
  102. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  103. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  104. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  105. package/examples/extensions/custom-provider-qwen-cli/package.json +1 -1
  106. package/examples/extensions/hello.ts +1 -1
  107. package/examples/extensions/question.ts +1 -1
  108. package/examples/extensions/questionnaire.ts +1 -1
  109. package/examples/extensions/rpc-demo.ts +124 -0
  110. package/examples/extensions/sandbox/index.ts +1 -1
  111. package/examples/extensions/shutdown-command.ts +2 -2
  112. package/examples/extensions/ssh.ts +4 -4
  113. package/examples/extensions/subagent/index.ts +1 -1
  114. package/examples/extensions/titlebar-spinner.ts +58 -0
  115. package/examples/extensions/todo.ts +1 -1
  116. package/examples/extensions/tool-override.ts +1 -1
  117. package/examples/extensions/truncated-tool.ts +1 -1
  118. package/examples/extensions/with-deps/package-lock.json +2 -2
  119. package/examples/extensions/with-deps/package.json +1 -1
  120. package/examples/rpc-extension-ui.ts +632 -0
  121. package/examples/sdk/06-extensions.ts +1 -1
  122. package/package.json +7 -5
@@ -805,7 +805,7 @@ export class InteractiveMode {
805
805
  }
806
806
  this.chatContainer.clear();
807
807
  this.renderInitialMessages();
808
- if (result.editorText) {
808
+ if (result.editorText && !this.editor.getText().trim()) {
809
809
  this.editor.setText(result.editorText);
810
810
  }
811
811
  this.showStatus("Navigated to selected point");
@@ -2823,24 +2823,14 @@ export class InteractiveMode {
2823
2823
  showTreeSelector(initialSelectedId) {
2824
2824
  const tree = this.sessionManager.getTree();
2825
2825
  const realLeafId = this.sessionManager.getLeafId();
2826
- // Find the visible leaf for display (skip metadata entries like labels)
2827
- let visibleLeafId = realLeafId;
2828
- while (visibleLeafId) {
2829
- const entry = this.sessionManager.getEntry(visibleLeafId);
2830
- if (!entry)
2831
- break;
2832
- if (entry.type !== "label" && entry.type !== "custom")
2833
- break;
2834
- visibleLeafId = entry.parentId ?? null;
2835
- }
2836
2826
  if (tree.length === 0) {
2837
2827
  this.showStatus("No entries in session");
2838
2828
  return;
2839
2829
  }
2840
2830
  this.showSelector((done) => {
2841
- const selector = new TreeSelectorComponent(tree, visibleLeafId, this.ui.terminal.rows, async (entryId) => {
2842
- // Selecting the visible leaf is a no-op (already there)
2843
- if (entryId === visibleLeafId) {
2831
+ const selector = new TreeSelectorComponent(tree, realLeafId, this.ui.terminal.rows, async (entryId) => {
2832
+ // Selecting the current leaf is a no-op (already there)
2833
+ if (entryId === realLeafId) {
2844
2834
  done();
2845
2835
  this.showStatus("Already at this point");
2846
2836
  return;
@@ -2902,7 +2892,7 @@ export class InteractiveMode {
2902
2892
  // Update UI
2903
2893
  this.chatContainer.clear();
2904
2894
  this.renderInitialMessages();
2905
- if (result.editorText) {
2895
+ if (result.editorText && !this.editor.getText().trim()) {
2906
2896
  this.editor.setText(result.editorText);
2907
2897
  }
2908
2898
  this.showStatus("Navigated to selected point");
@@ -2946,6 +2936,7 @@ export class InteractiveMode {
2946
2936
  mgr.appendSessionInfo(next);
2947
2937
  },
2948
2938
  showRenameHint: true,
2939
+ keybindings: this.keybindings,
2949
2940
  }, this.sessionManager.getSessionFile());
2950
2941
  return { component: selector, focus: selector };
2951
2942
  });