@akon-labs/nexus-cli 0.1.10 → 0.1.11
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/dist/cli/require-login.d.ts.map +1 -1
- package/dist/cli/require-login.js +2 -2
- package/dist/cli/require-login.js.map +1 -1
- package/dist/cli.js +2492 -1088
- package/dist/core/agent-session.d.ts +3 -1
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +4 -0
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/extensions/index.d.ts +1 -1
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +6 -0
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +7 -1
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +14 -0
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +18 -0
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/graph-rail-store.d.ts +10 -0
- package/dist/core/graph-rail-store.d.ts.map +1 -1
- package/dist/core/graph-rail-store.js +9 -0
- package/dist/core/graph-rail-store.js.map +1 -1
- package/dist/core/keybindings.d.ts +2 -1
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +4 -1
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/tools/find.d.ts.map +1 -1
- package/dist/core/tools/find.js +1 -1
- package/dist/core/tools/find.js.map +1 -1
- package/dist/core/tools/grep.d.ts.map +1 -1
- package/dist/core/tools/grep.js +1 -1
- package/dist/core/tools/grep.js.map +1 -1
- package/dist/extensions/gitnexus/client.d.ts.map +1 -1
- package/dist/extensions/gitnexus/client.js +45 -14
- package/dist/extensions/gitnexus/client.js.map +1 -1
- package/dist/extensions/gitnexus/config.d.ts +15 -1
- package/dist/extensions/gitnexus/config.d.ts.map +1 -1
- package/dist/extensions/gitnexus/config.js +86 -2
- package/dist/extensions/gitnexus/config.js.map +1 -1
- package/dist/extensions/gitnexus/hub-api.d.ts +56 -0
- package/dist/extensions/gitnexus/hub-api.d.ts.map +1 -0
- package/dist/extensions/gitnexus/hub-api.js +105 -0
- package/dist/extensions/gitnexus/hub-api.js.map +1 -0
- package/dist/extensions/gitnexus/index-repo.d.ts +50 -0
- package/dist/extensions/gitnexus/index-repo.d.ts.map +1 -0
- package/dist/extensions/gitnexus/index-repo.js +162 -0
- package/dist/extensions/gitnexus/index-repo.js.map +1 -0
- package/dist/extensions/gitnexus/index.d.ts.map +1 -1
- package/dist/extensions/gitnexus/index.js +137 -17
- package/dist/extensions/gitnexus/index.js.map +1 -1
- package/dist/extensions/gitnexus/observatory.d.ts.map +1 -1
- package/dist/extensions/gitnexus/observatory.js +2 -2
- package/dist/extensions/gitnexus/observatory.js.map +1 -1
- package/dist/extensions/gitnexus/resolve.d.ts +9 -0
- package/dist/extensions/gitnexus/resolve.d.ts.map +1 -1
- package/dist/extensions/gitnexus/resolve.js +52 -2
- package/dist/extensions/gitnexus/resolve.js.map +1 -1
- package/dist/extensions/index.d.ts.map +1 -1
- package/dist/extensions/index.js +3 -0
- package/dist/extensions/index.js.map +1 -1
- package/dist/extensions/mcp/commands.d.ts +22 -2
- package/dist/extensions/mcp/commands.d.ts.map +1 -1
- package/dist/extensions/mcp/commands.js +201 -9
- package/dist/extensions/mcp/commands.js.map +1 -1
- package/dist/extensions/mcp/config.d.ts +2 -0
- package/dist/extensions/mcp/config.d.ts.map +1 -1
- package/dist/extensions/mcp/config.js +6 -1
- package/dist/extensions/mcp/config.js.map +1 -1
- package/dist/extensions/mcp/index.d.ts.map +1 -1
- package/dist/extensions/mcp/index.js +54 -5
- package/dist/extensions/mcp/index.js.map +1 -1
- package/dist/extensions/mcp/mcp-setup-panel.d.ts +63 -2
- package/dist/extensions/mcp/mcp-setup-panel.d.ts.map +1 -1
- package/dist/extensions/mcp/mcp-setup-panel.js +563 -77
- package/dist/extensions/mcp/mcp-setup-panel.js.map +1 -1
- package/dist/extensions/subagent/index.d.ts +2 -1
- package/dist/extensions/subagent/index.d.ts.map +1 -1
- package/dist/extensions/subagent/index.js +19 -6
- package/dist/extensions/subagent/index.js.map +1 -1
- package/dist/extensions/subagent-render.d.ts +3 -0
- package/dist/extensions/subagent-render.d.ts.map +1 -0
- package/dist/extensions/subagent-render.js +39 -0
- package/dist/extensions/subagent-render.js.map +1 -0
- package/dist/index.js +2524 -1120
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js +2 -0
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/command-palette.d.ts +2 -1
- package/dist/modes/interactive/components/command-palette.d.ts.map +1 -1
- package/dist/modes/interactive/components/command-palette.js +11 -4
- package/dist/modes/interactive/components/command-palette.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +9 -3
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/graph-rail.d.ts.map +1 -1
- package/dist/modes/interactive/components/graph-rail.js +18 -3
- package/dist/modes/interactive/components/graph-rail.js.map +1 -1
- package/dist/modes/interactive/components/keybinding-hints.d.ts +1 -0
- package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
- package/dist/modes/interactive/components/keybinding-hints.js +7 -1
- package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
- package/dist/modes/interactive/components/landing-panel.d.ts.map +1 -1
- package/dist/modes/interactive/components/landing-panel.js +15 -2
- package/dist/modes/interactive/components/landing-panel.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts +3 -2
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +12 -2
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +3 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +42 -8
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/rpc-entry.js +2492 -1088
- package/dist/utils/hidden-spawn.d.ts +29 -0
- package/dist/utils/hidden-spawn.d.ts.map +1 -0
- package/dist/utils/hidden-spawn.js +101 -0
- package/dist/utils/hidden-spawn.js.map +1 -0
- package/dist/vendor/ai.js +233 -233
- package/dist/vendor/tui.js +1 -1
- package/native/win32/build.mjs +95 -0
- package/native/win32/prebuilds/win32-x64/hidden-spawn.exe +0 -0
- package/native/win32/src/hidden-spawn.c +157 -0
- package/npm-shrinkwrap.json +2 -37
- package/package.json +7 -3
|
@@ -167,11 +167,15 @@ function formatLoginProviderCompletionDescription(provider) {
|
|
|
167
167
|
const authTypes = provider.authTypes.map(formatAuthSelectorProviderType).join("/");
|
|
168
168
|
return provider.name === provider.id ? authTypes : `${provider.name} · ${authTypes}`;
|
|
169
169
|
}
|
|
170
|
+
const FULLSCREEN_WHEEL_SCROLL_LINES = 3;
|
|
170
171
|
/** Composition root for selecting the interactive terminal renderer. */
|
|
171
172
|
export function createInteractiveTui(options) {
|
|
172
173
|
const terminal = options.terminal ?? new ProcessTerminal();
|
|
173
174
|
if (options.uiMode === "fullscreen") {
|
|
174
|
-
return new TuiAltScreen(terminal, options.showHardwareCursor, options.logDirectory, {
|
|
175
|
+
return new TuiAltScreen(terminal, options.showHardwareCursor, options.logDirectory, {
|
|
176
|
+
openUrl: openBrowser,
|
|
177
|
+
wheelScrollLines: FULLSCREEN_WHEEL_SCROLL_LINES,
|
|
178
|
+
});
|
|
175
179
|
}
|
|
176
180
|
return new TuiMainScreen(terminal, options.showHardwareCursor, options.logDirectory);
|
|
177
181
|
}
|
|
@@ -243,6 +247,7 @@ export class InteractiveMode {
|
|
|
243
247
|
defaultHiddenThinkingLabel = "Thinking...";
|
|
244
248
|
hiddenThinkingLabel = this.defaultHiddenThinkingLabel;
|
|
245
249
|
lastSigintTime = 0;
|
|
250
|
+
quitConfirmationTimer;
|
|
246
251
|
lastEscapeTime = 0;
|
|
247
252
|
anthropicSubscriptionWarningShown = false;
|
|
248
253
|
// Status line tracking (for mutating immediately-sequential status updates)
|
|
@@ -437,6 +442,10 @@ export class InteractiveMode {
|
|
|
437
442
|
handle.hide();
|
|
438
443
|
this.ui.setFocus(this.editor);
|
|
439
444
|
void this.defaultEditor.onSubmit?.(commandText);
|
|
445
|
+
}, (commandText) => {
|
|
446
|
+
handle.hide();
|
|
447
|
+
this.editor.setText(commandText);
|
|
448
|
+
this.ui.setFocus(this.editor);
|
|
440
449
|
}, () => {
|
|
441
450
|
handle.hide();
|
|
442
451
|
this.ui.setFocus(this.editor);
|
|
@@ -1575,6 +1584,10 @@ export class InteractiveMode {
|
|
|
1575
1584
|
getRegisteredToolDefinition(toolName) {
|
|
1576
1585
|
return this.session.getToolDefinition(toolName);
|
|
1577
1586
|
}
|
|
1587
|
+
/** Display-only renderer override for a tool, independent of which extension's definition executes it. */
|
|
1588
|
+
getRegisteredToolRenderer(toolName) {
|
|
1589
|
+
return this.session.getToolRenderer(toolName);
|
|
1590
|
+
}
|
|
1578
1591
|
getMarkdownTransformers() {
|
|
1579
1592
|
return [this.mermaidMarkdownTransformer, ...this.session.extensionRunner.getMarkdownTransformers()];
|
|
1580
1593
|
}
|
|
@@ -2594,7 +2607,7 @@ export class InteractiveMode {
|
|
|
2594
2607
|
const component = new ToolExecutionComponent(content.name, content.id, content.arguments, {
|
|
2595
2608
|
showImages: this.settingsManager.getShowImages(),
|
|
2596
2609
|
imageWidthCells: this.settingsManager.getImageWidthCells(),
|
|
2597
|
-
}, this.getRegisteredToolDefinition(content.name), this.ui, this.sessionManager.getCwd());
|
|
2610
|
+
}, this.getRegisteredToolDefinition(content.name), this.ui, this.sessionManager.getCwd(), this.getRegisteredToolRenderer(content.name));
|
|
2598
2611
|
component.setExpanded(this.toolOutputExpanded);
|
|
2599
2612
|
this.chatContainer.addChild(component);
|
|
2600
2613
|
this.pendingTools.set(content.id, component);
|
|
@@ -2664,7 +2677,7 @@ export class InteractiveMode {
|
|
|
2664
2677
|
component = new ToolExecutionComponent(event.toolName, event.toolCallId, event.args, {
|
|
2665
2678
|
showImages: this.settingsManager.getShowImages(),
|
|
2666
2679
|
imageWidthCells: this.settingsManager.getImageWidthCells(),
|
|
2667
|
-
}, this.getRegisteredToolDefinition(event.toolName), this.ui, this.sessionManager.getCwd());
|
|
2680
|
+
}, this.getRegisteredToolDefinition(event.toolName), this.ui, this.sessionManager.getCwd(), this.getRegisteredToolRenderer(event.toolName));
|
|
2668
2681
|
component.setExpanded(this.toolOutputExpanded);
|
|
2669
2682
|
this.chatContainer.addChild(component);
|
|
2670
2683
|
this.pendingTools.set(event.toolCallId, component);
|
|
@@ -2964,7 +2977,7 @@ export class InteractiveMode {
|
|
|
2964
2977
|
const component = new ToolExecutionComponent(content.name, content.id, content.arguments, {
|
|
2965
2978
|
showImages: this.settingsManager.getShowImages(),
|
|
2966
2979
|
imageWidthCells: this.settingsManager.getImageWidthCells(),
|
|
2967
|
-
}, this.getRegisteredToolDefinition(content.name), this.ui, this.sessionManager.getCwd());
|
|
2980
|
+
}, this.getRegisteredToolDefinition(content.name), this.ui, this.sessionManager.getCwd(), this.getRegisteredToolRenderer(content.name));
|
|
2968
2981
|
component.setExpanded(this.toolOutputExpanded);
|
|
2969
2982
|
this.chatContainer.addChild(component);
|
|
2970
2983
|
if (message.stopReason === "aborted" || message.stopReason === "error") {
|
|
@@ -3099,13 +3112,30 @@ export class InteractiveMode {
|
|
|
3099
3112
|
// =========================================================================
|
|
3100
3113
|
handleCtrlC() {
|
|
3101
3114
|
const now = Date.now();
|
|
3102
|
-
if (now - this.lastSigintTime <
|
|
3115
|
+
if (now - this.lastSigintTime < 2_000) {
|
|
3116
|
+
if (this.quitConfirmationTimer) {
|
|
3117
|
+
clearTimeout(this.quitConfirmationTimer);
|
|
3118
|
+
this.quitConfirmationTimer = undefined;
|
|
3119
|
+
}
|
|
3120
|
+
this.lastSigintTime = 0;
|
|
3121
|
+
this.setExtensionStatus("quit-confirmation", undefined);
|
|
3103
3122
|
void this.shutdown();
|
|
3123
|
+
return;
|
|
3104
3124
|
}
|
|
3105
|
-
|
|
3106
|
-
this.
|
|
3107
|
-
this.lastSigintTime = now;
|
|
3125
|
+
if (this.quitConfirmationTimer) {
|
|
3126
|
+
clearTimeout(this.quitConfirmationTimer);
|
|
3108
3127
|
}
|
|
3128
|
+
this.clearEditor();
|
|
3129
|
+
this.lastSigintTime = now;
|
|
3130
|
+
const shortcut = formatKeyText(this.keybindings.getKeys("app.clear").join("/"), { capitalize: true });
|
|
3131
|
+
this.setExtensionStatus("quit-confirmation", `Press ${shortcut} again to exit`);
|
|
3132
|
+
this.quitConfirmationTimer = setTimeout(() => {
|
|
3133
|
+
if (this.lastSigintTime !== now)
|
|
3134
|
+
return;
|
|
3135
|
+
this.lastSigintTime = 0;
|
|
3136
|
+
this.quitConfirmationTimer = undefined;
|
|
3137
|
+
this.setExtensionStatus("quit-confirmation", undefined);
|
|
3138
|
+
}, 2_000);
|
|
3109
3139
|
}
|
|
3110
3140
|
handleCtrlD() {
|
|
3111
3141
|
// Only called when editor is empty (enforced by CustomEditor)
|
|
@@ -3121,6 +3151,10 @@ export class InteractiveMode {
|
|
|
3121
3151
|
if (this.isShuttingDown)
|
|
3122
3152
|
return;
|
|
3123
3153
|
this.isShuttingDown = true;
|
|
3154
|
+
if (this.quitConfirmationTimer) {
|
|
3155
|
+
clearTimeout(this.quitConfirmationTimer);
|
|
3156
|
+
this.quitConfirmationTimer = undefined;
|
|
3157
|
+
}
|
|
3124
3158
|
this.graphRailUnsubscribe?.();
|
|
3125
3159
|
this.graphRailUnsubscribe = undefined;
|
|
3126
3160
|
this.landingPanel?.dispose();
|