@vaclav-synacek/pi-coding-agent-termux 0.50.7-1 → 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.
- package/CHANGELOG.md +94 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +2 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/session-picker.d.ts.map +1 -1
- package/dist/cli/session-picker.js +3 -1
- package/dist/cli/session-picker.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +9 -0
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session.d.ts +5 -1
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +76 -15
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/extensions/index.d.ts +3 -3
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +19 -1
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +42 -0
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +88 -6
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js +4 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/extensions/wrapper.d.ts.map +1 -1
- package/dist/core/extensions/wrapper.js +1 -1
- package/dist/core/extensions/wrapper.js.map +1 -1
- package/dist/core/keybindings.d.ts +1 -1
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +8 -0
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +27 -18
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +11 -9
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/resource-loader.d.ts +24 -0
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +88 -19
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +1 -0
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-manager.d.ts +2 -0
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +2 -0
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-manager.d.ts +5 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +16 -0
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +1 -0
- package/dist/core/skills.js.map +1 -1
- package/dist/core/tools/bash.d.ts +11 -0
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +18 -3
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/edit.d.ts +2 -0
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/find.d.ts +2 -0
- package/dist/core/tools/find.d.ts.map +1 -1
- package/dist/core/tools/find.js.map +1 -1
- package/dist/core/tools/grep.d.ts +2 -0
- package/dist/core/tools/grep.d.ts.map +1 -1
- package/dist/core/tools/grep.js.map +1 -1
- package/dist/core/tools/index.d.ts +7 -7
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js +5 -5
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/ls.d.ts +2 -0
- package/dist/core/tools/ls.d.ts.map +1 -1
- package/dist/core/tools/ls.js.map +1 -1
- package/dist/core/tools/read.d.ts +2 -0
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js.map +1 -1
- package/dist/core/tools/write.d.ts +2 -0
- package/dist/core/tools/write.d.ts.map +1 -1
- package/dist/core/tools/write.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-message.js +0 -7
- package/dist/modes/interactive/components/custom-message.js.map +1 -1
- package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -1
- package/dist/modes/interactive/components/daxnuts.js +1 -1
- package/dist/modes/interactive/components/daxnuts.js.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.js +4 -1
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
- package/dist/modes/interactive/components/session-selector-search.d.ts +4 -2
- package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector-search.js +13 -4
- package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
- package/dist/modes/interactive/components/session-selector.d.ts +12 -2
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector.js +188 -57
- package/dist/modes/interactive/components/session-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +2 -0
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +12 -0
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/tree-selector.d.ts +6 -0
- package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/tree-selector.js +43 -16
- package/dist/modes/interactive/components/tree-selector.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +24 -15
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/print-mode.d.ts.map +1 -1
- package/dist/modes/print-mode.js +4 -0
- package/dist/modes/print-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +4 -0
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/utils/clipboard-image.d.ts.map +1 -1
- package/dist/utils/clipboard-image.js +52 -10
- package/dist/utils/clipboard-image.js.map +1 -1
- package/dist/utils/clipboard-native.d.ts +7 -0
- package/dist/utils/clipboard-native.d.ts.map +1 -0
- package/dist/utils/clipboard-native.js +14 -0
- package/dist/utils/clipboard-native.js.map +1 -0
- package/dist/utils/tools-manager.d.ts.map +1 -1
- package/dist/utils/tools-manager.js +14 -0
- package/dist/utils/tools-manager.js.map +1 -1
- package/docs/custom-provider.md +2 -1
- package/docs/extensions.md +57 -9
- package/docs/keybindings.md +9 -0
- package/docs/models.md +43 -14
- package/docs/rpc.md +188 -1
- package/docs/settings.md +5 -1
- package/docs/termux.md +127 -0
- package/examples/extensions/README.md +9 -0
- package/examples/extensions/antigravity-image-gen.ts +1 -1
- package/examples/extensions/bash-spawn-hook.ts +30 -0
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/custom-provider-qwen-cli/index.ts +345 -0
- package/examples/extensions/custom-provider-qwen-cli/package.json +16 -0
- package/examples/extensions/dynamic-resources/SKILL.md +8 -0
- package/examples/extensions/dynamic-resources/dynamic.json +79 -0
- package/examples/extensions/dynamic-resources/dynamic.md +5 -0
- package/examples/extensions/dynamic-resources/index.ts +15 -0
- package/examples/extensions/hello.ts +1 -1
- package/examples/extensions/question.ts +1 -1
- package/examples/extensions/questionnaire.ts +1 -1
- package/examples/extensions/rpc-demo.ts +124 -0
- package/examples/extensions/sandbox/index.ts +1 -1
- package/examples/extensions/shutdown-command.ts +2 -2
- package/examples/extensions/ssh.ts +4 -4
- package/examples/extensions/subagent/index.ts +1 -1
- package/examples/extensions/titlebar-spinner.ts +58 -0
- package/examples/extensions/todo.ts +1 -1
- package/examples/extensions/tool-override.ts +1 -1
- package/examples/extensions/truncated-tool.ts +1 -1
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/examples/rpc-extension-ui.ts +632 -0
- package/examples/sdk/06-extensions.ts +1 -1
- package/examples/sdk/12-full-control.ts +1 -0
- package/package.json +6 -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();
|
|
@@ -660,6 +661,7 @@ export class InteractiveMode {
|
|
|
660
661
|
const sectionHeader = (name, color = "mdHeading") => theme.fg(color, `[${name}]`);
|
|
661
662
|
const contextFiles = this.session.resourceLoader.getAgentsFiles().agentsFiles;
|
|
662
663
|
if (contextFiles.length > 0) {
|
|
664
|
+
this.chatContainer.addChild(new Spacer(1));
|
|
663
665
|
const contextList = contextFiles.map((f) => theme.fg("dim", ` ${this.formatDisplayPath(f.path)}`)).join("\n");
|
|
664
666
|
this.chatContainer.addChild(new Text(`${sectionHeader("Context")}\n${contextList}`, 0, 0));
|
|
665
667
|
this.chatContainer.addChild(new Spacer(1));
|
|
@@ -804,12 +806,16 @@ export class InteractiveMode {
|
|
|
804
806
|
}
|
|
805
807
|
this.chatContainer.clear();
|
|
806
808
|
this.renderInitialMessages();
|
|
807
|
-
if (result.editorText) {
|
|
809
|
+
if (result.editorText && !this.editor.getText().trim()) {
|
|
808
810
|
this.editor.setText(result.editorText);
|
|
809
811
|
}
|
|
810
812
|
this.showStatus("Navigated to selected point");
|
|
811
813
|
return { cancelled: false };
|
|
812
814
|
},
|
|
815
|
+
switchSession: async (sessionPath) => {
|
|
816
|
+
await this.handleResumeSession(sessionPath);
|
|
817
|
+
return { cancelled: false };
|
|
818
|
+
},
|
|
813
819
|
},
|
|
814
820
|
shutdownHandler: () => {
|
|
815
821
|
this.shutdownRequested = true;
|
|
@@ -818,6 +824,8 @@ export class InteractiveMode {
|
|
|
818
824
|
this.showExtensionError(error.extensionPath, error.error, error.stack);
|
|
819
825
|
},
|
|
820
826
|
});
|
|
827
|
+
setRegisteredThemes(this.session.resourceLoader.getThemes().themes);
|
|
828
|
+
this.rebuildAutocomplete();
|
|
821
829
|
const extensionRunner = this.session.extensionRunner;
|
|
822
830
|
if (!extensionRunner) {
|
|
823
831
|
this.showLoadedResources({ extensionPaths: [], force: false });
|
|
@@ -1428,6 +1436,9 @@ export class InteractiveMode {
|
|
|
1428
1436
|
this.defaultEditor.onAction("externalEditor", () => this.openExternalEditor());
|
|
1429
1437
|
this.defaultEditor.onAction("followUp", () => this.handleFollowUp());
|
|
1430
1438
|
this.defaultEditor.onAction("dequeue", () => this.handleDequeue());
|
|
1439
|
+
this.defaultEditor.onAction("newSession", () => this.handleClearCommand());
|
|
1440
|
+
this.defaultEditor.onAction("tree", () => this.showTreeSelector());
|
|
1441
|
+
this.defaultEditor.onAction("fork", () => this.showUserMessageSelector());
|
|
1431
1442
|
this.defaultEditor.onChange = (text) => {
|
|
1432
1443
|
const wasBashMode = this.isBashMode;
|
|
1433
1444
|
this.isBashMode = text.trimStart().startsWith("!");
|
|
@@ -2499,6 +2510,7 @@ export class InteractiveMode {
|
|
|
2499
2510
|
editorPaddingX: this.settingsManager.getEditorPaddingX(),
|
|
2500
2511
|
autocompleteMaxVisible: this.settingsManager.getAutocompleteMaxVisible(),
|
|
2501
2512
|
quietStartup: this.settingsManager.getQuietStartup(),
|
|
2513
|
+
clearOnShrink: this.settingsManager.getClearOnShrink(),
|
|
2502
2514
|
}, {
|
|
2503
2515
|
onAutoCompactChange: (enabled) => {
|
|
2504
2516
|
this.session.setAutoCompactionEnabled(enabled);
|
|
@@ -2586,6 +2598,10 @@ export class InteractiveMode {
|
|
|
2586
2598
|
this.editor.setAutocompleteMaxVisible(maxVisible);
|
|
2587
2599
|
}
|
|
2588
2600
|
},
|
|
2601
|
+
onClearOnShrinkChange: (enabled) => {
|
|
2602
|
+
this.settingsManager.setClearOnShrink(enabled);
|
|
2603
|
+
this.ui.setClearOnShrink(enabled);
|
|
2604
|
+
},
|
|
2589
2605
|
onCancel: () => {
|
|
2590
2606
|
done();
|
|
2591
2607
|
this.ui.requestRender();
|
|
@@ -2729,6 +2745,8 @@ export class InteractiveMode {
|
|
|
2729
2745
|
// All enabled or none enabled = no filter
|
|
2730
2746
|
this.session.setScopedModels([]);
|
|
2731
2747
|
}
|
|
2748
|
+
await this.updateAvailableProviderCount();
|
|
2749
|
+
this.ui.requestRender();
|
|
2732
2750
|
};
|
|
2733
2751
|
this.showSelector((done) => {
|
|
2734
2752
|
const selector = new ScopedModelsSelectorComponent({
|
|
@@ -2817,24 +2835,14 @@ export class InteractiveMode {
|
|
|
2817
2835
|
showTreeSelector(initialSelectedId) {
|
|
2818
2836
|
const tree = this.sessionManager.getTree();
|
|
2819
2837
|
const realLeafId = this.sessionManager.getLeafId();
|
|
2820
|
-
// Find the visible leaf for display (skip metadata entries like labels)
|
|
2821
|
-
let visibleLeafId = realLeafId;
|
|
2822
|
-
while (visibleLeafId) {
|
|
2823
|
-
const entry = this.sessionManager.getEntry(visibleLeafId);
|
|
2824
|
-
if (!entry)
|
|
2825
|
-
break;
|
|
2826
|
-
if (entry.type !== "label" && entry.type !== "custom")
|
|
2827
|
-
break;
|
|
2828
|
-
visibleLeafId = entry.parentId ?? null;
|
|
2829
|
-
}
|
|
2830
2838
|
if (tree.length === 0) {
|
|
2831
2839
|
this.showStatus("No entries in session");
|
|
2832
2840
|
return;
|
|
2833
2841
|
}
|
|
2834
2842
|
this.showSelector((done) => {
|
|
2835
|
-
const selector = new TreeSelectorComponent(tree,
|
|
2836
|
-
// Selecting the
|
|
2837
|
-
if (entryId ===
|
|
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) {
|
|
2838
2846
|
done();
|
|
2839
2847
|
this.showStatus("Already at this point");
|
|
2840
2848
|
return;
|
|
@@ -2896,7 +2904,7 @@ export class InteractiveMode {
|
|
|
2896
2904
|
// Update UI
|
|
2897
2905
|
this.chatContainer.clear();
|
|
2898
2906
|
this.renderInitialMessages();
|
|
2899
|
-
if (result.editorText) {
|
|
2907
|
+
if (result.editorText && !this.editor.getText().trim()) {
|
|
2900
2908
|
this.editor.setText(result.editorText);
|
|
2901
2909
|
}
|
|
2902
2910
|
this.showStatus("Navigated to selected point");
|
|
@@ -2940,6 +2948,7 @@ export class InteractiveMode {
|
|
|
2940
2948
|
mgr.appendSessionInfo(next);
|
|
2941
2949
|
},
|
|
2942
2950
|
showRenameHint: true,
|
|
2951
|
+
keybindings: this.keybindings,
|
|
2943
2952
|
}, this.sessionManager.getSessionFile());
|
|
2944
2953
|
return { component: selector, focus: selector };
|
|
2945
2954
|
});
|