pi-namespace-patch 1.0.4-namespace.1 → 1.1.0-namespace.2
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 +52 -0
- package/README.md +9 -3
- package/dist/bundle/chunks/{anthropic-messages-Y22YDKSW.js → anthropic-messages-KT2ID7DZ.js} +1 -1
- package/dist/bundle/chunks/anthropic.js +1 -1
- package/dist/bundle/chunks/{azure-openai-responses-YJDJIIDQ.js → azure-openai-responses-6A4PNZTH.js} +1 -1
- package/dist/bundle/chunks/bedrock-converse-stream.js +2 -2
- package/dist/bundle/chunks/chunk-33CRHCAK.js +2 -0
- package/dist/bundle/chunks/{chunk-F4TCZWQO.js → chunk-BK6FEHYX.js} +3 -3
- package/dist/bundle/chunks/chunk-CH4ZBH45.js +11 -0
- package/dist/bundle/chunks/{chunk-XXKX4I4Z.js → chunk-GXLAGZ3Z.js} +1 -1
- package/dist/bundle/chunks/{chunk-YTMEKMOC.js → chunk-J757S5U3.js} +1 -1
- package/dist/bundle/chunks/chunk-LPXNMA2W.js +2 -0
- package/dist/bundle/chunks/{chunk-TAOL3JFA.js → chunk-LTSARG5Q.js} +1 -1
- package/dist/bundle/chunks/{chunk-VLMAON6X.js → chunk-MXTZIDYW.js} +3 -3
- package/dist/bundle/chunks/chunk-O7YIWAPD.js +2 -0
- package/dist/bundle/chunks/{chunk-64GOPQSC.js → chunk-OTL6MGLJ.js} +3 -3
- package/dist/bundle/chunks/{chunk-LD2P6SFZ.js → chunk-PMRZO46Y.js} +1 -1
- package/dist/bundle/chunks/{chunk-ERIW6MDO.js → chunk-Q7ROD45H.js} +66 -59
- package/dist/bundle/chunks/{chunk-FKGBRPJC.js → chunk-SYCGMWFH.js} +1 -1
- package/dist/bundle/chunks/{chunk-YKYP4C4A.js → chunk-UH5J7I7X.js} +3 -3
- package/dist/bundle/chunks/{chunk-WE4MXUQS.js → chunk-VLRCF7MR.js} +1 -1
- package/dist/bundle/chunks/chunk-W5MPVSHA.js +82 -0
- package/dist/bundle/chunks/chunk-Y4NYF362.js +2 -0
- package/dist/bundle/chunks/{cli-FRW732V6.js → cli-OQYLWLA3.js} +2 -2
- package/dist/bundle/chunks/cloudflare-workers-ai-system-one-U3AH4ODQ.js +2 -0
- package/dist/bundle/chunks/codemode-worker.js +2 -2
- package/dist/bundle/chunks/{easter-egg-3d-GBYHZI2E.js → easter-egg-3d-TQFQS342.js} +1 -1
- package/dist/bundle/chunks/{execute-MNHU53Y5.js → execute-7IRB5TUX.js} +11 -5
- package/dist/bundle/chunks/github-copilot.js +1 -1
- package/dist/bundle/chunks/{google-generative-ai-XMFHGQC5.js → google-generative-ai-X2VFFS4I.js} +1 -1
- package/dist/bundle/chunks/{google-vertex-4XRRNP74.js → google-vertex-KMGHFTSP.js} +1 -1
- package/dist/bundle/chunks/image-resize-worker.js +1 -1
- package/dist/bundle/chunks/{llama-cpp-classify-XT44PI3C.js → llama-cpp-classify-FYN623RH.js} +2 -2
- package/dist/bundle/chunks/{mistral-conversations-Q22M3IBG.js → mistral-conversations-PRZLM26U.js} +2 -2
- package/dist/bundle/chunks/openai-chatgpt.js +1 -1
- package/dist/bundle/chunks/{openai-codex-responses-4MYQSO5E.js → openai-codex-responses-ZSLJZYOE.js} +2 -2
- package/dist/bundle/chunks/openai-codex.js +1 -1
- package/dist/bundle/chunks/{openai-completions-OSRCWAAA.js → openai-completions-WWQW7S3V.js} +1 -1
- package/dist/bundle/chunks/openai-decisions-QLZKZLAK.js +5 -0
- package/dist/bundle/chunks/{openai-responses-UHF3DHNG.js → openai-responses-KV7QHJY6.js} +1 -1
- package/dist/bundle/chunks/{openrouter-images-ZVXWCSIM.js → openrouter-images-DUPG5DZO.js} +1 -1
- package/dist/bundle/chunks/{pi-messages-TM5SOOIW.js → pi-messages-YHKPQIHC.js} +1 -1
- package/dist/bundle/chunks/{runtime-FW2HXAJ6.js → runtime-ROGZ2EXI.js} +1 -1
- package/dist/bundle/chunks/typesafe-system-one-B4NNEG67.js +2 -0
- package/dist/bundle/chunks/{virtual-modules-3HQKVCRO.js → virtual-modules-4Y4G76EB.js} +1 -1
- package/dist/bundle/cli-runtime.js +1 -1
- package/dist/bundle/index.js +1 -1
- package/dist/bundle/rpc-entry.js +1 -1
- package/dist/cli/args.d.ts +1 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +13 -1
- package/dist/cli/args.js.map +1 -1
- package/dist/core/agent-session.d.ts +7 -0
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +12 -7
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/bash-executor.d.ts.map +1 -1
- package/dist/core/bash-executor.js +40 -45
- package/dist/core/bash-executor.js.map +1 -1
- package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
- package/dist/core/export-html/tool-renderer.js +2 -0
- package/dist/core/export-html/tool-renderer.js.map +1 -1
- package/dist/core/extensions/types.d.ts +11 -0
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/model-runtime.d.ts.map +1 -1
- package/dist/core/model-runtime.js +2 -1
- package/dist/core/model-runtime.js.map +1 -1
- package/dist/core/nested-tool-calls.d.ts +1 -0
- package/dist/core/nested-tool-calls.d.ts.map +1 -1
- package/dist/core/nested-tool-calls.js +1 -0
- package/dist/core/nested-tool-calls.js.map +1 -1
- package/dist/core/sdk.d.ts +4 -0
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +17 -5
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/settings-manager.d.ts +13 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +37 -13
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/tools/renderers/bash.d.ts.map +1 -1
- package/dist/core/tools/renderers/bash.js +8 -3
- package/dist/core/tools/renderers/bash.js.map +1 -1
- package/dist/core/tools/renderers/edit.d.ts.map +1 -1
- package/dist/core/tools/renderers/edit.js +5 -4
- package/dist/core/tools/renderers/edit.js.map +1 -1
- package/dist/extensions/codemode/execute.d.ts.map +1 -1
- package/dist/extensions/codemode/execute.js +63 -7
- package/dist/extensions/codemode/execute.js.map +1 -1
- package/dist/extensions/codemode/tool.js +2 -2
- package/dist/extensions/codemode/tool.js.map +1 -1
- package/dist/extensions/llama/provider.d.ts.map +1 -1
- package/dist/extensions/llama/provider.js +34 -11
- package/dist/extensions/llama/provider.js.map +1 -1
- package/dist/extensions/mcp/cli.js +17 -23
- package/dist/extensions/mcp/cli.js.map +1 -1
- package/dist/extensions/mcp/index.d.ts.map +1 -1
- package/dist/extensions/mcp/index.js +165 -64
- package/dist/extensions/mcp/index.js.map +1 -1
- package/dist/extensions/mcp/oauth.d.ts +5 -3
- package/dist/extensions/mcp/oauth.d.ts.map +1 -1
- package/dist/extensions/mcp/oauth.js +36 -10
- package/dist/extensions/mcp/oauth.js.map +1 -1
- package/dist/extensions/mcp/ui.d.ts +3 -3
- package/dist/extensions/mcp/ui.d.ts.map +1 -1
- package/dist/extensions/mcp/ui.js +10 -2
- package/dist/extensions/mcp/ui.js.map +1 -1
- package/dist/modes/interactive/components/bash-execution.d.ts +5 -1
- package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/bash-execution.js +17 -14
- package/dist/modes/interactive/components/bash-execution.js.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.d.ts +2 -1
- package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.js +5 -2
- package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.d.ts +2 -1
- package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.js +5 -2
- package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/custom-entry.d.ts +3 -1
- package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-entry.js +8 -2
- package/dist/modes/interactive/components/custom-entry.js.map +1 -1
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-message.js +1 -0
- package/dist/modes/interactive/components/custom-message.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +1 -1
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.d.ts +2 -1
- package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.js +5 -2
- package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts +5 -0
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +10 -0
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +2 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +50 -29
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/program-status-reporter.d.ts +34 -0
- package/dist/modes/interactive/program-status-reporter.d.ts.map +1 -0
- package/dist/modes/interactive/program-status-reporter.js +110 -0
- package/dist/modes/interactive/program-status-reporter.js.map +1 -0
- package/dist/package-manager-cli.d.ts.map +1 -1
- package/dist/package-manager-cli.js +24 -0
- package/dist/package-manager-cli.js.map +1 -1
- package/dist/utils/ansi.d.ts +8 -0
- package/dist/utils/ansi.d.ts.map +1 -1
- package/dist/utils/ansi.js +30 -11
- package/dist/utils/ansi.js.map +1 -1
- package/dist/utils/clipboard.d.ts.map +1 -1
- package/dist/utils/clipboard.js +12 -11
- package/dist/utils/clipboard.js.map +1 -1
- package/dist/utils/image-resize-core.d.ts +12 -0
- package/dist/utils/image-resize-core.d.ts.map +1 -1
- package/dist/utils/image-resize-core.js +5 -0
- package/dist/utils/image-resize-core.js.map +1 -1
- package/dist/utils/image-resize-worker.js +3 -2
- package/dist/utils/image-resize-worker.js.map +1 -1
- package/dist/utils/image-resize.d.ts.map +1 -1
- package/dist/utils/image-resize.js +9 -10
- package/dist/utils/image-resize.js.map +1 -1
- package/docs/cli.md +4 -4
- package/docs/codemode.md +23 -3
- package/docs/environment-variables.md +1 -0
- package/docs/json.md +3 -3
- package/docs/llama-cpp.md +8 -1
- package/docs/message-types.md +22 -4
- package/docs/models.md +4 -1
- package/docs/providers.md +27 -0
- package/docs/settings.md +3 -3
- package/docs/terminal-setup.md +14 -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/gondolin/package-lock.json +2 -2
- package/examples/extensions/gondolin/package.json +1 -1
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/package.json +12 -12
- package/dist/bundle/chunks/chunk-2QSWSXFK.js +0 -82
- package/dist/bundle/chunks/chunk-A3JYRWB6.js +0 -2
- package/dist/bundle/chunks/chunk-C47CLQZK.js +0 -2
- package/dist/bundle/chunks/chunk-HQHD6PZI.js +0 -2
- package/dist/bundle/chunks/chunk-KJUDFE6Y.js +0 -11
- package/dist/bundle/chunks/cloudflare-workers-ai-system-one-NM3JRRWQ.js +0 -2
- package/dist/bundle/chunks/typesafe-system-one-PRR5K6CI.js +0 -2
|
@@ -104,6 +104,8 @@ export declare class InteractiveMode {
|
|
|
104
104
|
private retryEscapeHandler?;
|
|
105
105
|
private compactionQueuedMessages;
|
|
106
106
|
private shutdownRequested;
|
|
107
|
+
/** Reports working, blocked, done, and error states to terminals that support OSC 7501. */
|
|
108
|
+
private readonly programStatus;
|
|
107
109
|
/** The `/bug` hint is shown at most once per session so error output stays readable. */
|
|
108
110
|
private bugReportHintShown;
|
|
109
111
|
private installChangeWarningShown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive-mode.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-mode.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,EAEN,KAAK,YAAY,EAKjB,MAAM,8BAA8B,CAAC;AActC,OAAO,EAYN,KAAK,QAAQ,EASb,MAAM,wBAAwB,CAAC;AAehC,OAAO,EAAE,KAAK,mBAAmB,EAAkC,MAAM,qCAAqC,CAAC;AAC/G,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,sCAAsC,CAAC;AAwC1F,OAAO,EAEN,cAAc,EAGd,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAmBpF,OAAO,EAAwB,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"interactive-mode.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-mode.ts"],"names":[],"mappings":"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"}
|
|
@@ -84,6 +84,7 @@ import { UserMessageSelectorComponent } from "./components/user-message-selector
|
|
|
84
84
|
import { editInExternalEditor } from "./external-editor.js";
|
|
85
85
|
import { refreshModelCatalogs } from "./model-catalog-refresh.js";
|
|
86
86
|
import { getModelSearchText } from "./model-search.js";
|
|
87
|
+
import { ProgramStatusReporter } from "./program-status-reporter.js";
|
|
87
88
|
import { shareSession } from "./session-share.js";
|
|
88
89
|
import { getAvailableThemes, getAvailableThemesWithPaths, getEditorTheme, getMarkdownTheme, getThemeByName, onThemeChange, SYSTEM_THEME_NAME, setRegisteredThemes, stopThemeWatcher, Theme, theme, } from "./theme/theme.js";
|
|
89
90
|
import { InteractiveThemeController } from "./theme/theme-controller.js";
|
|
@@ -314,6 +315,8 @@ export class InteractiveMode {
|
|
|
314
315
|
compactionQueuedMessages = [];
|
|
315
316
|
// Shutdown state
|
|
316
317
|
shutdownRequested = false;
|
|
318
|
+
/** Reports working, blocked, done, and error states to terminals that support OSC 7501. */
|
|
319
|
+
programStatus = new ProgramStatusReporter(() => this.ui.terminal, () => this.sessionManager.getSessionName());
|
|
317
320
|
/** The `/bug` hint is shown at most once per session so error output stays readable. */
|
|
318
321
|
bugReportHintShown = false;
|
|
319
322
|
installChangeWarningShown = false;
|
|
@@ -712,6 +715,7 @@ export class InteractiveMode {
|
|
|
712
715
|
// Start the UI before initializing extensions so session_start handlers can use interactive dialogs
|
|
713
716
|
this.ui.start();
|
|
714
717
|
this.isInitialized = true;
|
|
718
|
+
this.programStatus.report();
|
|
715
719
|
this.ensurePngTranscoder();
|
|
716
720
|
this.themeController.applyFromSettings();
|
|
717
721
|
// The header and startup notices bake theme colors into their text, so build them once the terminal
|
|
@@ -1595,6 +1599,7 @@ export class InteractiveMode {
|
|
|
1595
1599
|
const session = this.session;
|
|
1596
1600
|
this.unsubscribe?.();
|
|
1597
1601
|
this.unsubscribe = undefined;
|
|
1602
|
+
this.programStatus.reset();
|
|
1598
1603
|
this.applyRuntimeSettings();
|
|
1599
1604
|
if (options.renderBeforeBind) {
|
|
1600
1605
|
this.renderCurrentSessionState();
|
|
@@ -2111,7 +2116,7 @@ export class InteractiveMode {
|
|
|
2111
2116
|
/**
|
|
2112
2117
|
* Show a selector for extensions.
|
|
2113
2118
|
*/
|
|
2114
|
-
showExtensionSelector(title, options, opts) {
|
|
2119
|
+
showExtensionSelector(title, options, opts, blocked = { kind: "question", message: title }) {
|
|
2115
2120
|
return new Promise((resolve) => {
|
|
2116
2121
|
if (opts?.signal?.aborted) {
|
|
2117
2122
|
resolve(undefined);
|
|
@@ -2135,6 +2140,8 @@ export class InteractiveMode {
|
|
|
2135
2140
|
this.editorContainer.clear();
|
|
2136
2141
|
this.editorContainer.addChild(this.extensionSelector);
|
|
2137
2142
|
this.ui.setFocus(this.extensionSelector);
|
|
2143
|
+
// Extension dialogs share the editor slot: opening one replaces the status of a displaced one.
|
|
2144
|
+
this.programStatus.setBlocked("extension-dialog", blocked);
|
|
2138
2145
|
this.ui.requestRender();
|
|
2139
2146
|
});
|
|
2140
2147
|
}
|
|
@@ -2146,6 +2153,7 @@ export class InteractiveMode {
|
|
|
2146
2153
|
this.editorContainer.clear();
|
|
2147
2154
|
this.editorContainer.addChild(this.editor);
|
|
2148
2155
|
this.extensionSelector = undefined;
|
|
2156
|
+
this.programStatus.setBlocked("extension-dialog", undefined);
|
|
2149
2157
|
this.ui.setFocus(this.editor);
|
|
2150
2158
|
this.ui.requestRender();
|
|
2151
2159
|
}
|
|
@@ -2153,7 +2161,10 @@ export class InteractiveMode {
|
|
|
2153
2161
|
* Show a confirmation dialog for extensions.
|
|
2154
2162
|
*/
|
|
2155
2163
|
async showExtensionConfirm(title, message, opts) {
|
|
2156
|
-
const result = await this.showExtensionSelector(`${title}\n${message}`, ["Yes", "No"], opts
|
|
2164
|
+
const result = await this.showExtensionSelector(`${title}\n${message}`, ["Yes", "No"], opts, {
|
|
2165
|
+
kind: "permission",
|
|
2166
|
+
message: title,
|
|
2167
|
+
});
|
|
2157
2168
|
return result === "Yes";
|
|
2158
2169
|
}
|
|
2159
2170
|
async promptForMissingSessionCwd(error) {
|
|
@@ -2187,6 +2198,7 @@ export class InteractiveMode {
|
|
|
2187
2198
|
this.editorContainer.clear();
|
|
2188
2199
|
this.editorContainer.addChild(this.extensionInput);
|
|
2189
2200
|
this.ui.setFocus(this.extensionInput);
|
|
2201
|
+
this.programStatus.setBlocked("extension-dialog", { kind: "question", message: title });
|
|
2190
2202
|
this.ui.requestRender();
|
|
2191
2203
|
});
|
|
2192
2204
|
}
|
|
@@ -2198,6 +2210,7 @@ export class InteractiveMode {
|
|
|
2198
2210
|
this.editorContainer.clear();
|
|
2199
2211
|
this.editorContainer.addChild(this.editor);
|
|
2200
2212
|
this.extensionInput = undefined;
|
|
2213
|
+
this.programStatus.setBlocked("extension-dialog", undefined);
|
|
2201
2214
|
this.ui.setFocus(this.editor);
|
|
2202
2215
|
this.ui.requestRender();
|
|
2203
2216
|
}
|
|
@@ -2217,6 +2230,7 @@ export class InteractiveMode {
|
|
|
2217
2230
|
this.editorContainer.clear();
|
|
2218
2231
|
this.editorContainer.addChild(this.extensionEditor);
|
|
2219
2232
|
this.ui.setFocus(this.extensionEditor);
|
|
2233
|
+
this.programStatus.setBlocked("extension-dialog", { kind: "question", message: title });
|
|
2220
2234
|
this.ui.requestRender();
|
|
2221
2235
|
});
|
|
2222
2236
|
}
|
|
@@ -2227,6 +2241,7 @@ export class InteractiveMode {
|
|
|
2227
2241
|
this.editorContainer.clear();
|
|
2228
2242
|
this.editorContainer.addChild(this.editor);
|
|
2229
2243
|
this.extensionEditor = undefined;
|
|
2244
|
+
this.programStatus.setBlocked("extension-dialog", undefined);
|
|
2230
2245
|
this.ui.setFocus(this.editor);
|
|
2231
2246
|
this.ui.requestRender();
|
|
2232
2247
|
}
|
|
@@ -2739,6 +2754,7 @@ export class InteractiveMode {
|
|
|
2739
2754
|
await this.init();
|
|
2740
2755
|
}
|
|
2741
2756
|
this.footer.invalidate();
|
|
2757
|
+
this.programStatus.handleEvent(event);
|
|
2742
2758
|
switch (event.type) {
|
|
2743
2759
|
case "agent_start":
|
|
2744
2760
|
this.pendingTools.clear();
|
|
@@ -2844,6 +2860,7 @@ export class InteractiveMode {
|
|
|
2844
2860
|
const component = new ToolExecutionComponent(content.name, content.id, content.arguments, {
|
|
2845
2861
|
showImages: this.settingsManager.getShowImages(),
|
|
2846
2862
|
imageWidthCells: this.settingsManager.getImageWidthCells(),
|
|
2863
|
+
outputPad: this.outputPad,
|
|
2847
2864
|
}, this.getRegisteredToolDefinition(content.name), this.ui, this.sessionManager.getCwd());
|
|
2848
2865
|
component.setExpanded(this.toolOutputExpanded);
|
|
2849
2866
|
this.chatContainer.addChild(component);
|
|
@@ -2914,6 +2931,7 @@ export class InteractiveMode {
|
|
|
2914
2931
|
component = new ToolExecutionComponent(event.toolName, event.toolCallId, event.args, {
|
|
2915
2932
|
showImages: this.settingsManager.getShowImages(),
|
|
2916
2933
|
imageWidthCells: this.settingsManager.getImageWidthCells(),
|
|
2934
|
+
outputPad: this.outputPad,
|
|
2917
2935
|
}, this.getRegisteredToolDefinition(event.toolName), this.ui, this.sessionManager.getCwd());
|
|
2918
2936
|
component.setExpanded(this.toolOutputExpanded);
|
|
2919
2937
|
this.chatContainer.addChild(component);
|
|
@@ -2936,7 +2954,7 @@ export class InteractiveMode {
|
|
|
2936
2954
|
this.maybeShowInstallChangeWarning();
|
|
2937
2955
|
const component = this.pendingTools.get(event.toolCallId);
|
|
2938
2956
|
if (component) {
|
|
2939
|
-
component.updateResult({ ...event.result, isError: event.isError });
|
|
2957
|
+
component.updateResult({ ...event.result, isError: event.isError, durationMs: event.durationMs });
|
|
2940
2958
|
this.pendingTools.delete(event.toolCallId);
|
|
2941
2959
|
this.ui.requestRender();
|
|
2942
2960
|
}
|
|
@@ -3120,7 +3138,7 @@ export class InteractiveMode {
|
|
|
3120
3138
|
if (!renderer) {
|
|
3121
3139
|
return;
|
|
3122
3140
|
}
|
|
3123
|
-
const component = new CustomEntryComponent(entry, renderer);
|
|
3141
|
+
const component = new CustomEntryComponent(entry, renderer, this.outputPad);
|
|
3124
3142
|
component.setExpanded(this.toolOutputExpanded);
|
|
3125
3143
|
if (!component.hasContent()) {
|
|
3126
3144
|
return;
|
|
@@ -3137,7 +3155,7 @@ export class InteractiveMode {
|
|
|
3137
3155
|
addMessageToChat(message, options) {
|
|
3138
3156
|
switch (message.role) {
|
|
3139
3157
|
case "bashExecution": {
|
|
3140
|
-
const component = new BashExecutionComponent(message.command, this.ui, message.excludeFromContext);
|
|
3158
|
+
const component = new BashExecutionComponent(message.command, this.ui, message.excludeFromContext, this.outputPad);
|
|
3141
3159
|
if (message.output) {
|
|
3142
3160
|
component.appendOutput(message.output);
|
|
3143
3161
|
}
|
|
@@ -3156,14 +3174,14 @@ export class InteractiveMode {
|
|
|
3156
3174
|
}
|
|
3157
3175
|
case "compactionSummary": {
|
|
3158
3176
|
this.chatContainer.addChild(new Spacer(1));
|
|
3159
|
-
const component = new CompactionSummaryMessageComponent(message, this.getMarkdownThemeWithSettings());
|
|
3177
|
+
const component = new CompactionSummaryMessageComponent(message, this.getMarkdownThemeWithSettings(), this.outputPad);
|
|
3160
3178
|
component.setExpanded(this.toolOutputExpanded);
|
|
3161
3179
|
this.chatContainer.addChild(component);
|
|
3162
3180
|
break;
|
|
3163
3181
|
}
|
|
3164
3182
|
case "branchSummary": {
|
|
3165
3183
|
this.chatContainer.addChild(new Spacer(1));
|
|
3166
|
-
const component = new BranchSummaryMessageComponent(message, this.getMarkdownThemeWithSettings());
|
|
3184
|
+
const component = new BranchSummaryMessageComponent(message, this.getMarkdownThemeWithSettings(), this.outputPad);
|
|
3167
3185
|
component.setExpanded(this.toolOutputExpanded);
|
|
3168
3186
|
this.chatContainer.addChild(component);
|
|
3169
3187
|
break;
|
|
@@ -3179,7 +3197,7 @@ export class InteractiveMode {
|
|
|
3179
3197
|
const skillBlock = parseSkillBlock(textContent);
|
|
3180
3198
|
if (skillBlock) {
|
|
3181
3199
|
// Render skill block (collapsible)
|
|
3182
|
-
const component = new SkillInvocationMessageComponent(skillBlock, this.getMarkdownThemeWithSettings());
|
|
3200
|
+
const component = new SkillInvocationMessageComponent(skillBlock, this.getMarkdownThemeWithSettings(), this.outputPad);
|
|
3183
3201
|
component.setExpanded(this.toolOutputExpanded);
|
|
3184
3202
|
this.chatContainer.addChild(component);
|
|
3185
3203
|
// Render user message separately if present
|
|
@@ -3248,6 +3266,7 @@ export class InteractiveMode {
|
|
|
3248
3266
|
const component = new ToolExecutionComponent(content.name, content.id, content.arguments, {
|
|
3249
3267
|
showImages: this.settingsManager.getShowImages(),
|
|
3250
3268
|
imageWidthCells: this.settingsManager.getImageWidthCells(),
|
|
3269
|
+
outputPad: this.outputPad,
|
|
3251
3270
|
}, this.getRegisteredToolDefinition(content.name), this.ui, this.sessionManager.getCwd());
|
|
3252
3271
|
component.setExpanded(this.toolOutputExpanded);
|
|
3253
3272
|
this.chatContainer.addChild(component);
|
|
@@ -3301,6 +3320,9 @@ export class InteractiveMode {
|
|
|
3301
3320
|
* @param options.populateHistory Add user messages to editor history
|
|
3302
3321
|
*/
|
|
3303
3322
|
renderSessionEntries(entries, options = {}) {
|
|
3323
|
+
// Selection coordinates point into the transcript being replaced (#9311).
|
|
3324
|
+
if (this.renderer instanceof TuiAltScreen)
|
|
3325
|
+
this.renderer.resetTextSelection();
|
|
3304
3326
|
const items = entries.flatMap((entry) => {
|
|
3305
3327
|
if (entry.type === "custom" || (entry.type === "usage" && entry.kind === "cache_warm")) {
|
|
3306
3328
|
return [entry];
|
|
@@ -4190,21 +4212,14 @@ export class InteractiveMode {
|
|
|
4190
4212
|
onOutputPadChange: (padding) => {
|
|
4191
4213
|
this.settingsManager.setOutputPad(padding);
|
|
4192
4214
|
this.outputPad = padding;
|
|
4193
|
-
|
|
4194
|
-
for (const child of
|
|
4195
|
-
if (child
|
|
4196
|
-
child instanceof CustomMessageComponent ||
|
|
4197
|
-
child instanceof UserMessageComponent) {
|
|
4215
|
+
for (const container of [this.chatContainer, this.pendingMessagesContainer]) {
|
|
4216
|
+
for (const child of container.children) {
|
|
4217
|
+
if ("setOutputPad" in child && typeof child.setOutputPad === "function") {
|
|
4198
4218
|
child.setOutputPad(padding);
|
|
4199
4219
|
}
|
|
4200
4220
|
}
|
|
4201
|
-
if (this.streamingComponent) {
|
|
4202
|
-
this.streamingComponent.setOutputPad(padding);
|
|
4203
|
-
}
|
|
4204
|
-
this.ui.requestRender();
|
|
4205
|
-
return;
|
|
4206
4221
|
}
|
|
4207
|
-
this.
|
|
4222
|
+
this.ui.requestRender();
|
|
4208
4223
|
},
|
|
4209
4224
|
onAutocompleteMaxVisibleChange: (maxVisible) => {
|
|
4210
4225
|
this.settingsManager.setAutocompleteMaxVisible(maxVisible);
|
|
@@ -5167,7 +5182,7 @@ export class InteractiveMode {
|
|
|
5167
5182
|
this.ui.requestRender();
|
|
5168
5183
|
};
|
|
5169
5184
|
try {
|
|
5170
|
-
await this.loginProvider(dialog, providerId, "api_key");
|
|
5185
|
+
await this.loginProvider(dialog, providerId, providerName, "api_key");
|
|
5171
5186
|
restoreEditor();
|
|
5172
5187
|
await this.completeProviderAuthentication(providerId, providerName, "api_key", previousModel);
|
|
5173
5188
|
}
|
|
@@ -5255,12 +5270,18 @@ export class InteractiveMode {
|
|
|
5255
5270
|
dialog.showProgress(event.message);
|
|
5256
5271
|
}
|
|
5257
5272
|
}
|
|
5258
|
-
async loginProvider(dialog, providerId, method) {
|
|
5259
|
-
|
|
5260
|
-
|
|
5261
|
-
|
|
5262
|
-
|
|
5263
|
-
|
|
5273
|
+
async loginProvider(dialog, providerId, providerName, method) {
|
|
5274
|
+
this.programStatus.setBlocked("login", { kind: "auth", message: `Log in to ${providerName}` });
|
|
5275
|
+
try {
|
|
5276
|
+
await this.session.modelRuntime.login(providerId, method, {
|
|
5277
|
+
signal: dialog.signal,
|
|
5278
|
+
prompt: (prompt) => this.showAuthPrompt(dialog, prompt, providerId),
|
|
5279
|
+
notify: (event) => this.notifyAuthDialog(dialog, event),
|
|
5280
|
+
}, { getDeviceId: () => this.settingsManager.getOrCreateDeviceId() });
|
|
5281
|
+
}
|
|
5282
|
+
finally {
|
|
5283
|
+
this.programStatus.setBlocked("login", undefined);
|
|
5284
|
+
}
|
|
5264
5285
|
}
|
|
5265
5286
|
async showLoginDialog(providerId, providerName, onBack) {
|
|
5266
5287
|
const previousModel = this.session.model;
|
|
@@ -5276,7 +5297,7 @@ export class InteractiveMode {
|
|
|
5276
5297
|
this.ui.requestRender();
|
|
5277
5298
|
};
|
|
5278
5299
|
try {
|
|
5279
|
-
await this.loginProvider(dialog, providerId, "oauth");
|
|
5300
|
+
await this.loginProvider(dialog, providerId, providerName, "oauth");
|
|
5280
5301
|
restoreEditor();
|
|
5281
5302
|
await this.completeProviderAuthentication(providerId, providerName, "oauth", previousModel);
|
|
5282
5303
|
if (providerId === RADIUS_PROVIDER_ID)
|
|
@@ -5863,7 +5884,7 @@ export class InteractiveMode {
|
|
|
5863
5884
|
if (eventResult?.result) {
|
|
5864
5885
|
const result = eventResult.result;
|
|
5865
5886
|
// Create UI component for display
|
|
5866
|
-
this.bashComponent = new BashExecutionComponent(command, this.ui, excludeFromContext);
|
|
5887
|
+
this.bashComponent = new BashExecutionComponent(command, this.ui, excludeFromContext, this.outputPad);
|
|
5867
5888
|
if (this.session.isStreaming) {
|
|
5868
5889
|
this.pendingMessagesContainer.addChild(this.bashComponent);
|
|
5869
5890
|
this.pendingBashComponents.push(this.bashComponent);
|
|
@@ -5884,7 +5905,7 @@ export class InteractiveMode {
|
|
|
5884
5905
|
}
|
|
5885
5906
|
// Normal execution path (possibly with custom operations)
|
|
5886
5907
|
const isDeferred = this.session.isStreaming;
|
|
5887
|
-
this.bashComponent = new BashExecutionComponent(command, this.ui, excludeFromContext);
|
|
5908
|
+
this.bashComponent = new BashExecutionComponent(command, this.ui, excludeFromContext, this.outputPad);
|
|
5888
5909
|
if (isDeferred) {
|
|
5889
5910
|
// Show in pending area when agent is streaming
|
|
5890
5911
|
this.pendingMessagesContainer.addChild(this.bashComponent);
|