@vaclav-synacek/pi-coding-agent-termux 0.50.9-0 → 0.51.1-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 (142) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/dist/cli/args.d.ts.map +1 -1
  3. package/dist/cli/args.js +1 -0
  4. package/dist/cli/args.js.map +1 -1
  5. package/dist/cli/session-picker.d.ts.map +1 -1
  6. package/dist/cli/session-picker.js +3 -1
  7. package/dist/cli/session-picker.js.map +1 -1
  8. package/dist/config.d.ts.map +1 -1
  9. package/dist/config.js +9 -0
  10. package/dist/config.js.map +1 -1
  11. package/dist/core/agent-session.d.ts +1 -0
  12. package/dist/core/agent-session.d.ts.map +1 -1
  13. package/dist/core/agent-session.js +24 -9
  14. package/dist/core/agent-session.js.map +1 -1
  15. package/dist/core/extensions/index.d.ts +3 -3
  16. package/dist/core/extensions/index.d.ts.map +1 -1
  17. package/dist/core/extensions/index.js +1 -1
  18. package/dist/core/extensions/index.js.map +1 -1
  19. package/dist/core/extensions/runner.d.ts +4 -0
  20. package/dist/core/extensions/runner.d.ts.map +1 -1
  21. package/dist/core/extensions/runner.js +4 -0
  22. package/dist/core/extensions/runner.js.map +1 -1
  23. package/dist/core/extensions/types.d.ts +74 -5
  24. package/dist/core/extensions/types.d.ts.map +1 -1
  25. package/dist/core/extensions/types.js +4 -1
  26. package/dist/core/extensions/types.js.map +1 -1
  27. package/dist/core/extensions/wrapper.d.ts.map +1 -1
  28. package/dist/core/extensions/wrapper.js +1 -1
  29. package/dist/core/extensions/wrapper.js.map +1 -1
  30. package/dist/core/keybindings.d.ts +1 -1
  31. package/dist/core/keybindings.d.ts.map +1 -1
  32. package/dist/core/keybindings.js +2 -0
  33. package/dist/core/keybindings.js.map +1 -1
  34. package/dist/core/model-registry.d.ts.map +1 -1
  35. package/dist/core/model-registry.js +19 -17
  36. package/dist/core/model-registry.js.map +1 -1
  37. package/dist/core/package-manager.d.ts.map +1 -1
  38. package/dist/core/package-manager.js +11 -9
  39. package/dist/core/package-manager.js.map +1 -1
  40. package/dist/core/settings-manager.d.ts +3 -0
  41. package/dist/core/settings-manager.d.ts.map +1 -1
  42. package/dist/core/settings-manager.js +15 -0
  43. package/dist/core/settings-manager.js.map +1 -1
  44. package/dist/core/skills.d.ts.map +1 -1
  45. package/dist/core/skills.js +1 -0
  46. package/dist/core/skills.js.map +1 -1
  47. package/dist/core/tools/bash.d.ts +11 -0
  48. package/dist/core/tools/bash.d.ts.map +1 -1
  49. package/dist/core/tools/bash.js +18 -3
  50. package/dist/core/tools/bash.js.map +1 -1
  51. package/dist/core/tools/edit.d.ts +2 -0
  52. package/dist/core/tools/edit.d.ts.map +1 -1
  53. package/dist/core/tools/edit.js.map +1 -1
  54. package/dist/core/tools/find.d.ts +2 -0
  55. package/dist/core/tools/find.d.ts.map +1 -1
  56. package/dist/core/tools/find.js.map +1 -1
  57. package/dist/core/tools/grep.d.ts +2 -0
  58. package/dist/core/tools/grep.d.ts.map +1 -1
  59. package/dist/core/tools/grep.js.map +1 -1
  60. package/dist/core/tools/index.d.ts +7 -7
  61. package/dist/core/tools/index.d.ts.map +1 -1
  62. package/dist/core/tools/index.js +5 -5
  63. package/dist/core/tools/index.js.map +1 -1
  64. package/dist/core/tools/ls.d.ts +2 -0
  65. package/dist/core/tools/ls.d.ts.map +1 -1
  66. package/dist/core/tools/ls.js.map +1 -1
  67. package/dist/core/tools/read.d.ts +2 -0
  68. package/dist/core/tools/read.d.ts.map +1 -1
  69. package/dist/core/tools/read.js.map +1 -1
  70. package/dist/core/tools/write.d.ts +2 -0
  71. package/dist/core/tools/write.d.ts.map +1 -1
  72. package/dist/core/tools/write.js.map +1 -1
  73. package/dist/index.d.ts +3 -3
  74. package/dist/index.d.ts.map +1 -1
  75. package/dist/index.js +1 -1
  76. package/dist/index.js.map +1 -1
  77. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
  78. package/dist/modes/interactive/components/custom-message.js +0 -7
  79. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  80. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  81. package/dist/modes/interactive/components/scoped-models-selector.js +4 -1
  82. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  83. package/dist/modes/interactive/components/session-selector-search.d.ts +3 -1
  84. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
  85. package/dist/modes/interactive/components/session-selector-search.js +13 -4
  86. package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
  87. package/dist/modes/interactive/components/session-selector.d.ts +11 -2
  88. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  89. package/dist/modes/interactive/components/session-selector.js +58 -12
  90. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  91. package/dist/modes/interactive/components/settings-selector.d.ts +2 -0
  92. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  93. package/dist/modes/interactive/components/settings-selector.js +12 -0
  94. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  95. package/dist/modes/interactive/components/tree-selector.d.ts +6 -0
  96. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
  97. package/dist/modes/interactive/components/tree-selector.js +43 -16
  98. package/dist/modes/interactive/components/tree-selector.js.map +1 -1
  99. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  100. package/dist/modes/interactive/interactive-mode.js +18 -15
  101. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  102. package/dist/modes/print-mode.d.ts.map +1 -1
  103. package/dist/modes/print-mode.js +4 -0
  104. package/dist/modes/print-mode.js.map +1 -1
  105. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  106. package/dist/modes/rpc/rpc-mode.js +4 -0
  107. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  108. package/dist/utils/clipboard-native.d.ts +7 -0
  109. package/dist/utils/clipboard-native.d.ts.map +1 -0
  110. package/dist/utils/clipboard-native.js +14 -0
  111. package/dist/utils/clipboard-native.js.map +1 -0
  112. package/dist/utils/tools-manager.d.ts.map +1 -1
  113. package/dist/utils/tools-manager.js +14 -0
  114. package/dist/utils/tools-manager.js.map +1 -1
  115. package/docs/extensions.md +57 -9
  116. package/docs/keybindings.md +1 -0
  117. package/docs/models.md +43 -14
  118. package/docs/rpc.md +188 -1
  119. package/docs/termux.md +127 -0
  120. package/examples/extensions/README.md +1 -0
  121. package/examples/extensions/antigravity-image-gen.ts +1 -1
  122. package/examples/extensions/bash-spawn-hook.ts +30 -0
  123. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  124. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  125. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  126. package/examples/extensions/custom-provider-qwen-cli/package.json +1 -1
  127. package/examples/extensions/hello.ts +1 -1
  128. package/examples/extensions/question.ts +1 -1
  129. package/examples/extensions/questionnaire.ts +1 -1
  130. package/examples/extensions/rpc-demo.ts +124 -0
  131. package/examples/extensions/sandbox/index.ts +1 -1
  132. package/examples/extensions/shutdown-command.ts +2 -2
  133. package/examples/extensions/ssh.ts +4 -4
  134. package/examples/extensions/subagent/index.ts +1 -1
  135. package/examples/extensions/todo.ts +1 -1
  136. package/examples/extensions/tool-override.ts +1 -1
  137. package/examples/extensions/truncated-tool.ts +1 -1
  138. package/examples/extensions/with-deps/package-lock.json +2 -2
  139. package/examples/extensions/with-deps/package.json +1 -1
  140. package/examples/rpc-extension-ui.ts +632 -0
  141. package/examples/sdk/06-extensions.ts +1 -1
  142. package/package.json +5 -5
@@ -138,6 +138,7 @@ export class InteractiveMode {
138
138
  this.session = session;
139
139
  this.version = VERSION;
140
140
  this.ui = new TUI(new ProcessTerminal(), this.settingsManager.getShowHardwareCursor());
141
+ this.ui.setClearOnShrink(this.settingsManager.getClearOnShrink());
141
142
  this.headerContainer = new Container();
142
143
  this.chatContainer = new Container();
143
144
  this.pendingMessagesContainer = new Container();
@@ -805,12 +806,16 @@ export class InteractiveMode {
805
806
  }
806
807
  this.chatContainer.clear();
807
808
  this.renderInitialMessages();
808
- if (result.editorText) {
809
+ if (result.editorText && !this.editor.getText().trim()) {
809
810
  this.editor.setText(result.editorText);
810
811
  }
811
812
  this.showStatus("Navigated to selected point");
812
813
  return { cancelled: false };
813
814
  },
815
+ switchSession: async (sessionPath) => {
816
+ await this.handleResumeSession(sessionPath);
817
+ return { cancelled: false };
818
+ },
814
819
  },
815
820
  shutdownHandler: () => {
816
821
  this.shutdownRequested = true;
@@ -2505,6 +2510,7 @@ export class InteractiveMode {
2505
2510
  editorPaddingX: this.settingsManager.getEditorPaddingX(),
2506
2511
  autocompleteMaxVisible: this.settingsManager.getAutocompleteMaxVisible(),
2507
2512
  quietStartup: this.settingsManager.getQuietStartup(),
2513
+ clearOnShrink: this.settingsManager.getClearOnShrink(),
2508
2514
  }, {
2509
2515
  onAutoCompactChange: (enabled) => {
2510
2516
  this.session.setAutoCompactionEnabled(enabled);
@@ -2592,6 +2598,10 @@ export class InteractiveMode {
2592
2598
  this.editor.setAutocompleteMaxVisible(maxVisible);
2593
2599
  }
2594
2600
  },
2601
+ onClearOnShrinkChange: (enabled) => {
2602
+ this.settingsManager.setClearOnShrink(enabled);
2603
+ this.ui.setClearOnShrink(enabled);
2604
+ },
2595
2605
  onCancel: () => {
2596
2606
  done();
2597
2607
  this.ui.requestRender();
@@ -2735,6 +2745,8 @@ export class InteractiveMode {
2735
2745
  // All enabled or none enabled = no filter
2736
2746
  this.session.setScopedModels([]);
2737
2747
  }
2748
+ await this.updateAvailableProviderCount();
2749
+ this.ui.requestRender();
2738
2750
  };
2739
2751
  this.showSelector((done) => {
2740
2752
  const selector = new ScopedModelsSelectorComponent({
@@ -2823,24 +2835,14 @@ export class InteractiveMode {
2823
2835
  showTreeSelector(initialSelectedId) {
2824
2836
  const tree = this.sessionManager.getTree();
2825
2837
  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
2838
  if (tree.length === 0) {
2837
2839
  this.showStatus("No entries in session");
2838
2840
  return;
2839
2841
  }
2840
2842
  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) {
2843
+ const selector = new TreeSelectorComponent(tree, realLeafId, this.ui.terminal.rows, async (entryId) => {
2844
+ // Selecting the current leaf is a no-op (already there)
2845
+ if (entryId === realLeafId) {
2844
2846
  done();
2845
2847
  this.showStatus("Already at this point");
2846
2848
  return;
@@ -2902,7 +2904,7 @@ export class InteractiveMode {
2902
2904
  // Update UI
2903
2905
  this.chatContainer.clear();
2904
2906
  this.renderInitialMessages();
2905
- if (result.editorText) {
2907
+ if (result.editorText && !this.editor.getText().trim()) {
2906
2908
  this.editor.setText(result.editorText);
2907
2909
  }
2908
2910
  this.showStatus("Navigated to selected point");
@@ -2946,6 +2948,7 @@ export class InteractiveMode {
2946
2948
  mgr.appendSessionInfo(next);
2947
2949
  },
2948
2950
  showRenameHint: true,
2951
+ keybindings: this.keybindings,
2949
2952
  }, this.sessionManager.getSessionFile());
2950
2953
  return { component: selector, focus: selector };
2951
2954
  });