@codex-infinity/pi-infinity 0.64.2 → 0.65.1
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 +57 -34
- package/README.md +5 -3
- package/dist/cli/args.d.ts +7 -4
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +37 -15
- package/dist/cli/args.js.map +1 -1
- package/dist/core/agent-session-runtime.d.ts +51 -102
- package/dist/core/agent-session-runtime.d.ts.map +1 -1
- package/dist/core/agent-session-runtime.js +103 -138
- package/dist/core/agent-session-runtime.js.map +1 -1
- package/dist/core/agent-session-services.d.ts +86 -0
- package/dist/core/agent-session-services.d.ts.map +1 -0
- package/dist/core/agent-session-services.js +116 -0
- package/dist/core/agent-session-services.js.map +1 -0
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +1 -1
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/extensions/index.d.ts +2 -2
- 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/types.d.ts +10 -13
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js +10 -0
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/index.d.ts +3 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +3 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/keybindings.d.ts +4 -1
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +3 -14
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/package-manager.d.ts +20 -0
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +32 -0
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +21 -0
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/sdk.d.ts +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +1 -1
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/settings-manager.d.ts +1 -1
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +2 -1
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +202 -456
- package/dist/main.js.map +1 -1
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js +20 -0
- package/dist/migrations.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +3 -2
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +56 -29
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/print-mode.d.ts +2 -2
- 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-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js +1 -0
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts +2 -2
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +23 -15
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/package-manager-cli.d.ts +4 -0
- package/dist/package-manager-cli.d.ts.map +1 -0
- package/dist/package-manager-cli.js +234 -0
- package/dist/package-manager-cli.js.map +1 -0
- package/docs/extensions.md +34 -26
- package/docs/sdk.md +109 -46
- package/docs/settings.md +1 -1
- 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/package.json +1 -1
- package/examples/extensions/hello.ts +18 -17
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/examples/sdk/13-session-runtime.ts +30 -12
- package/examples/sdk/README.md +2 -0
- package/package.json +4 -4
|
@@ -48,7 +48,7 @@ import { ToolExecutionComponent } from "./components/tool-execution.js";
|
|
|
48
48
|
import { TreeSelectorComponent } from "./components/tree-selector.js";
|
|
49
49
|
import { UserMessageComponent } from "./components/user-message.js";
|
|
50
50
|
import { UserMessageSelectorComponent } from "./components/user-message-selector.js";
|
|
51
|
-
import { getAvailableThemes, getAvailableThemesWithPaths, getEditorTheme, getMarkdownTheme, getThemeByName, initTheme, onThemeChange, setRegisteredThemes, setTheme, setThemeInstance, Theme, theme, } from "./theme/theme.js";
|
|
51
|
+
import { getAvailableThemes, getAvailableThemesWithPaths, getEditorTheme, getMarkdownTheme, getThemeByName, initTheme, onThemeChange, setRegisteredThemes, setTheme, setThemeInstance, stopThemeWatcher, Theme, theme, } from "./theme/theme.js";
|
|
52
52
|
function isExpandable(obj) {
|
|
53
53
|
return typeof obj === "object" && obj !== null && "setExpanded" in obj && typeof obj.setExpanded === "function";
|
|
54
54
|
}
|
|
@@ -880,23 +880,33 @@ export class InteractiveMode {
|
|
|
880
880
|
this.loadingAnimation = undefined;
|
|
881
881
|
}
|
|
882
882
|
this.statusContainer.clear();
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
883
|
+
try {
|
|
884
|
+
const result = await this.runtimeHost.newSession(options);
|
|
885
|
+
if (!result.cancelled) {
|
|
886
|
+
await this.handleRuntimeSessionChange();
|
|
887
|
+
this.renderCurrentSessionState();
|
|
888
|
+
this.ui.requestRender();
|
|
889
|
+
}
|
|
890
|
+
return result;
|
|
891
|
+
}
|
|
892
|
+
catch (error) {
|
|
893
|
+
return this.handleFatalRuntimeError("Failed to create session", error);
|
|
888
894
|
}
|
|
889
|
-
return result;
|
|
890
895
|
},
|
|
891
896
|
fork: async (entryId) => {
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
897
|
+
try {
|
|
898
|
+
const result = await this.runtimeHost.fork(entryId);
|
|
899
|
+
if (!result.cancelled) {
|
|
900
|
+
await this.handleRuntimeSessionChange();
|
|
901
|
+
this.renderCurrentSessionState();
|
|
902
|
+
this.editor.setText(result.selectedText ?? "");
|
|
903
|
+
this.showStatus("Forked to new session");
|
|
904
|
+
}
|
|
905
|
+
return { cancelled: result.cancelled };
|
|
906
|
+
}
|
|
907
|
+
catch (error) {
|
|
908
|
+
return this.handleFatalRuntimeError("Failed to fork session", error);
|
|
898
909
|
}
|
|
899
|
-
return { cancelled: result.cancelled };
|
|
900
910
|
},
|
|
901
911
|
navigateTree: async (targetId, options) => {
|
|
902
912
|
const result = await this.session.navigateTree(targetId, {
|
|
@@ -971,6 +981,13 @@ export class InteractiveMode {
|
|
|
971
981
|
this.updateEditorBorderColor();
|
|
972
982
|
this.updateTerminalTitle();
|
|
973
983
|
}
|
|
984
|
+
async handleFatalRuntimeError(prefix, error) {
|
|
985
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
986
|
+
this.showError(`${prefix}: ${message}`);
|
|
987
|
+
stopThemeWatcher();
|
|
988
|
+
this.stop();
|
|
989
|
+
process.exit(1);
|
|
990
|
+
}
|
|
974
991
|
renderCurrentSessionState() {
|
|
975
992
|
this.chatContainer.clear();
|
|
976
993
|
this.pendingMessagesContainer.clear();
|
|
@@ -3170,13 +3187,18 @@ export class InteractiveMode {
|
|
|
3170
3187
|
this.loadingAnimation = undefined;
|
|
3171
3188
|
}
|
|
3172
3189
|
this.statusContainer.clear();
|
|
3173
|
-
|
|
3174
|
-
|
|
3175
|
-
|
|
3190
|
+
try {
|
|
3191
|
+
const result = await this.runtimeHost.switchSession(sessionPath);
|
|
3192
|
+
if (result.cancelled) {
|
|
3193
|
+
return;
|
|
3194
|
+
}
|
|
3195
|
+
await this.handleRuntimeSessionChange();
|
|
3196
|
+
this.renderCurrentSessionState();
|
|
3197
|
+
this.showStatus("Resumed session");
|
|
3198
|
+
}
|
|
3199
|
+
catch (error) {
|
|
3200
|
+
await this.handleFatalRuntimeError("Failed to resume session", error);
|
|
3176
3201
|
}
|
|
3177
|
-
await this.handleRuntimeSessionChange();
|
|
3178
|
-
this.renderCurrentSessionState();
|
|
3179
|
-
this.showStatus("Resumed session");
|
|
3180
3202
|
}
|
|
3181
3203
|
async showOAuthSelector(mode) {
|
|
3182
3204
|
if (mode === "logout") {
|
|
@@ -3409,7 +3431,7 @@ export class InteractiveMode {
|
|
|
3409
3431
|
this.showStatus(`Session imported from: ${inputPath}`);
|
|
3410
3432
|
}
|
|
3411
3433
|
catch (error) {
|
|
3412
|
-
this.
|
|
3434
|
+
await this.handleFatalRuntimeError("Failed to import session", error);
|
|
3413
3435
|
}
|
|
3414
3436
|
}
|
|
3415
3437
|
async handleShareCommand() {
|
|
@@ -3724,15 +3746,20 @@ export class InteractiveMode {
|
|
|
3724
3746
|
this.loadingAnimation = undefined;
|
|
3725
3747
|
}
|
|
3726
3748
|
this.statusContainer.clear();
|
|
3727
|
-
|
|
3728
|
-
|
|
3729
|
-
|
|
3749
|
+
try {
|
|
3750
|
+
const result = await this.runtimeHost.newSession();
|
|
3751
|
+
if (result.cancelled) {
|
|
3752
|
+
return;
|
|
3753
|
+
}
|
|
3754
|
+
await this.handleRuntimeSessionChange();
|
|
3755
|
+
this.renderCurrentSessionState();
|
|
3756
|
+
this.chatContainer.addChild(new Spacer(1));
|
|
3757
|
+
this.chatContainer.addChild(new Text(`${theme.fg("accent", "✓ New session started")}`, 1, 1));
|
|
3758
|
+
this.ui.requestRender();
|
|
3759
|
+
}
|
|
3760
|
+
catch (error) {
|
|
3761
|
+
await this.handleFatalRuntimeError("Failed to create session", error);
|
|
3730
3762
|
}
|
|
3731
|
-
await this.handleRuntimeSessionChange();
|
|
3732
|
-
this.renderCurrentSessionState();
|
|
3733
|
-
this.chatContainer.addChild(new Spacer(1));
|
|
3734
|
-
this.chatContainer.addChild(new Text(`${theme.fg("accent", "✓ New session started")}`, 1, 1));
|
|
3735
|
-
this.ui.requestRender();
|
|
3736
3763
|
}
|
|
3737
3764
|
handleDebugCommand() {
|
|
3738
3765
|
const width = this.ui.terminal.columns;
|