@averyyy/pi-coding-agent 1.0.4-piclient.2 → 1.1.0-piclient.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/dist/bundle/chunks/{anthropic-messages-K2IO6UO3.js → anthropic-messages-VWV2LQLU.js} +1 -1
- package/dist/bundle/chunks/anthropic.js +1 -1
- package/dist/bundle/chunks/{azure-openai-responses-NHLW5JRZ.js → azure-openai-responses-TJZBTKRM.js} +1 -1
- package/dist/bundle/chunks/bedrock-converse-stream.js +2 -2
- package/dist/bundle/chunks/{chunk-AEYCEUYN.js → chunk-2DXGY63V.js} +3 -3
- package/dist/bundle/chunks/{chunk-T5R6KALE.js → chunk-3LNZZ237.js} +1 -1
- package/dist/bundle/chunks/{chunk-CSX55THN.js → chunk-4QEUO5LF.js} +3 -3
- package/dist/bundle/chunks/chunk-G7JAXKAE.js +11 -0
- package/dist/bundle/chunks/{chunk-44C62PJ2.js → chunk-IHNTZDOC.js} +1 -1
- package/dist/bundle/chunks/{chunk-O33PDY7S.js → chunk-JPAIS7JS.js} +1 -1
- package/dist/bundle/chunks/{chunk-5JWYRNJY.js → chunk-L2QJRZTO.js} +1 -1
- package/dist/bundle/chunks/chunk-LPXNMA2W.js +2 -0
- package/dist/bundle/chunks/chunk-LQELYOUU.js +2 -0
- package/dist/bundle/chunks/chunk-M6HKFBHF.js +2 -0
- package/dist/bundle/chunks/chunk-MFRJR46A.js +2 -0
- package/dist/bundle/chunks/{chunk-LD2P6SFZ.js → chunk-PMRZO46Y.js} +1 -1
- package/dist/bundle/chunks/chunk-QEAD7ZDM.js +82 -0
- package/dist/bundle/chunks/{chunk-BASBVYQV.js → chunk-SJAIFNJC.js} +1 -1
- package/dist/bundle/chunks/{chunk-S6UOZSLC.js → chunk-WMAKGH2U.js} +3 -3
- package/dist/bundle/chunks/{chunk-2AJMIBDW.js → chunk-XJNJKWWG.js} +3 -3
- package/dist/bundle/chunks/{chunk-EJGEBBJH.js → chunk-ZWP6SXVH.js} +74 -66
- package/dist/bundle/chunks/{cli-OLBSEIG4.js → cli-G46DCMLG.js} +2 -2
- package/dist/bundle/chunks/cloudflare-workers-ai-system-one-TXNQKF7U.js +2 -0
- package/dist/bundle/chunks/codemode-worker.js +2 -2
- package/dist/bundle/chunks/devin-runtime.js +1 -1
- package/dist/bundle/chunks/{easter-egg-3d-XLWVR7B5.js → easter-egg-3d-VPOZMPG6.js} +1 -1
- package/dist/bundle/chunks/{execute-JUL3TNKC.js → execute-W7LFAU5T.js} +11 -5
- package/dist/bundle/chunks/github-copilot.js +1 -1
- package/dist/bundle/chunks/{google-generative-ai-RDSM3DET.js → google-generative-ai-MU3HY65Y.js} +1 -1
- package/dist/bundle/chunks/{google-vertex-IAA22EFU.js → google-vertex-4KLEFGPG.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-ZP3T32V3.js → mistral-conversations-QSGGIXSP.js} +2 -2
- package/dist/bundle/chunks/openai-chatgpt.js +1 -1
- package/dist/bundle/chunks/{openai-codex-responses-SNUYQ3OP.js → openai-codex-responses-XHPOB5DF.js} +2 -2
- package/dist/bundle/chunks/openai-codex.js +1 -1
- package/dist/bundle/chunks/{openai-completions-PZGVLXR5.js → openai-completions-IIJZEEG4.js} +1 -1
- package/dist/bundle/chunks/openai-decisions-7HAB4DS5.js +5 -0
- package/dist/bundle/chunks/{openai-responses-VIKEOSVV.js → openai-responses-27B2XLS7.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-BBIT3FW5.js → runtime-PVOHGROZ.js} +1 -1
- package/dist/bundle/chunks/typesafe-system-one-JIF5KZZR.js +2 -0
- package/dist/bundle/chunks/{virtual-modules-YOBUQRP7.js → virtual-modules-OHBHZ266.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/pi-server-client.d.ts +2 -4
- package/dist/core/pi-server-client.d.ts.map +1 -1
- package/dist/core/pi-server-client.js +2 -13
- package/dist/core/pi-server-client.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/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +8 -3
- package/dist/core/tools/bash.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-A3JYRWB6.js +0 -2
- package/dist/bundle/chunks/chunk-CQ233VQM.js +0 -82
- package/dist/bundle/chunks/chunk-J43OEKXQ.js +0 -2
- package/dist/bundle/chunks/chunk-RUCGJH5V.js +0 -11
- package/dist/bundle/chunks/chunk-XBLMUBBW.js +0 -2
- package/dist/bundle/chunks/cloudflare-workers-ai-system-one-L4GFVN6I.js +0 -2
- package/dist/bundle/chunks/typesafe-system-one-ZZ2PGRBM.js +0 -2
|
@@ -106,6 +106,8 @@ export declare class InteractiveMode {
|
|
|
106
106
|
private retryEscapeHandler?;
|
|
107
107
|
private compactionQueuedMessages;
|
|
108
108
|
private shutdownRequested;
|
|
109
|
+
/** Reports working, blocked, done, and error states to terminals that support OSC 7501. */
|
|
110
|
+
private readonly programStatus;
|
|
109
111
|
/** The `/bug` hint is shown at most once per session so error output stays readable. */
|
|
110
112
|
private bugReportHintShown;
|
|
111
113
|
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;AAyC1F,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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"}
|
|
@@ -85,6 +85,7 @@ import { UserMessageSelectorComponent } from "./components/user-message-selector
|
|
|
85
85
|
import { editInExternalEditor } from "./external-editor.js";
|
|
86
86
|
import { refreshModelCatalogs } from "./model-catalog-refresh.js";
|
|
87
87
|
import { getModelSearchText } from "./model-search.js";
|
|
88
|
+
import { ProgramStatusReporter } from "./program-status-reporter.js";
|
|
88
89
|
import { shareSession } from "./session-share.js";
|
|
89
90
|
import { getAvailableThemes, getAvailableThemesWithPaths, getEditorTheme, getMarkdownTheme, getThemeByName, onThemeChange, SYSTEM_THEME_NAME, setRegisteredThemes, stopThemeWatcher, Theme, theme, } from "./theme/theme.js";
|
|
90
91
|
import { InteractiveThemeController } from "./theme/theme-controller.js";
|
|
@@ -317,6 +318,8 @@ export class InteractiveMode {
|
|
|
317
318
|
compactionQueuedMessages = [];
|
|
318
319
|
// Shutdown state
|
|
319
320
|
shutdownRequested = false;
|
|
321
|
+
/** Reports working, blocked, done, and error states to terminals that support OSC 7501. */
|
|
322
|
+
programStatus = new ProgramStatusReporter(() => this.ui.terminal, () => this.sessionManager.getSessionName());
|
|
320
323
|
/** The `/bug` hint is shown at most once per session so error output stays readable. */
|
|
321
324
|
bugReportHintShown = false;
|
|
322
325
|
installChangeWarningShown = false;
|
|
@@ -710,6 +713,7 @@ export class InteractiveMode {
|
|
|
710
713
|
this.ui.start();
|
|
711
714
|
this.bindAbortInputListener();
|
|
712
715
|
this.isInitialized = true;
|
|
716
|
+
this.programStatus.report();
|
|
713
717
|
this.ensurePngTranscoder();
|
|
714
718
|
this.themeController.applyFromSettings();
|
|
715
719
|
// The header and startup notices bake theme colors into their text, so build them once the terminal
|
|
@@ -1607,6 +1611,7 @@ export class InteractiveMode {
|
|
|
1607
1611
|
const session = this.session;
|
|
1608
1612
|
this.unsubscribe?.();
|
|
1609
1613
|
this.unsubscribe = undefined;
|
|
1614
|
+
this.programStatus.reset();
|
|
1610
1615
|
this.applyRuntimeSettings();
|
|
1611
1616
|
if (options.renderBeforeBind) {
|
|
1612
1617
|
this.renderCurrentSessionState();
|
|
@@ -2197,7 +2202,7 @@ export class InteractiveMode {
|
|
|
2197
2202
|
/**
|
|
2198
2203
|
* Show a selector for extensions.
|
|
2199
2204
|
*/
|
|
2200
|
-
showExtensionSelector(title, options, opts) {
|
|
2205
|
+
showExtensionSelector(title, options, opts, blocked = { kind: "question", message: title }) {
|
|
2201
2206
|
return new Promise((resolve) => {
|
|
2202
2207
|
if (opts?.signal?.aborted) {
|
|
2203
2208
|
resolve(undefined);
|
|
@@ -2221,6 +2226,8 @@ export class InteractiveMode {
|
|
|
2221
2226
|
this.editorContainer.clear();
|
|
2222
2227
|
this.editorContainer.addChild(this.extensionSelector);
|
|
2223
2228
|
this.ui.setFocus(this.extensionSelector);
|
|
2229
|
+
// Extension dialogs share the editor slot: opening one replaces the status of a displaced one.
|
|
2230
|
+
this.programStatus.setBlocked("extension-dialog", blocked);
|
|
2224
2231
|
this.ui.requestRender();
|
|
2225
2232
|
});
|
|
2226
2233
|
}
|
|
@@ -2232,6 +2239,7 @@ export class InteractiveMode {
|
|
|
2232
2239
|
this.editorContainer.clear();
|
|
2233
2240
|
this.editorContainer.addChild(this.editor);
|
|
2234
2241
|
this.extensionSelector = undefined;
|
|
2242
|
+
this.programStatus.setBlocked("extension-dialog", undefined);
|
|
2235
2243
|
this.ui.setFocus(this.editor);
|
|
2236
2244
|
this.ui.requestRender();
|
|
2237
2245
|
}
|
|
@@ -2239,7 +2247,10 @@ export class InteractiveMode {
|
|
|
2239
2247
|
* Show a confirmation dialog for extensions.
|
|
2240
2248
|
*/
|
|
2241
2249
|
async showExtensionConfirm(title, message, opts) {
|
|
2242
|
-
const result = await this.showExtensionSelector(`${title}\n${message}`, ["Yes", "No"], opts
|
|
2250
|
+
const result = await this.showExtensionSelector(`${title}\n${message}`, ["Yes", "No"], opts, {
|
|
2251
|
+
kind: "permission",
|
|
2252
|
+
message: title,
|
|
2253
|
+
});
|
|
2243
2254
|
return result === "Yes";
|
|
2244
2255
|
}
|
|
2245
2256
|
async promptForMissingSessionCwd(error) {
|
|
@@ -2273,6 +2284,7 @@ export class InteractiveMode {
|
|
|
2273
2284
|
this.editorContainer.clear();
|
|
2274
2285
|
this.editorContainer.addChild(this.extensionInput);
|
|
2275
2286
|
this.ui.setFocus(this.extensionInput);
|
|
2287
|
+
this.programStatus.setBlocked("extension-dialog", { kind: "question", message: title });
|
|
2276
2288
|
this.ui.requestRender();
|
|
2277
2289
|
});
|
|
2278
2290
|
}
|
|
@@ -2284,6 +2296,7 @@ export class InteractiveMode {
|
|
|
2284
2296
|
this.editorContainer.clear();
|
|
2285
2297
|
this.editorContainer.addChild(this.editor);
|
|
2286
2298
|
this.extensionInput = undefined;
|
|
2299
|
+
this.programStatus.setBlocked("extension-dialog", undefined);
|
|
2287
2300
|
this.ui.setFocus(this.editor);
|
|
2288
2301
|
this.ui.requestRender();
|
|
2289
2302
|
}
|
|
@@ -2303,6 +2316,7 @@ export class InteractiveMode {
|
|
|
2303
2316
|
this.editorContainer.clear();
|
|
2304
2317
|
this.editorContainer.addChild(this.extensionEditor);
|
|
2305
2318
|
this.ui.setFocus(this.extensionEditor);
|
|
2319
|
+
this.programStatus.setBlocked("extension-dialog", { kind: "question", message: title });
|
|
2306
2320
|
this.ui.requestRender();
|
|
2307
2321
|
});
|
|
2308
2322
|
}
|
|
@@ -2313,6 +2327,7 @@ export class InteractiveMode {
|
|
|
2313
2327
|
this.editorContainer.clear();
|
|
2314
2328
|
this.editorContainer.addChild(this.editor);
|
|
2315
2329
|
this.extensionEditor = undefined;
|
|
2330
|
+
this.programStatus.setBlocked("extension-dialog", undefined);
|
|
2316
2331
|
this.ui.setFocus(this.editor);
|
|
2317
2332
|
this.ui.requestRender();
|
|
2318
2333
|
}
|
|
@@ -2880,6 +2895,7 @@ export class InteractiveMode {
|
|
|
2880
2895
|
await this.init();
|
|
2881
2896
|
}
|
|
2882
2897
|
this.footer.invalidate();
|
|
2898
|
+
this.programStatus.handleEvent(event);
|
|
2883
2899
|
switch (event.type) {
|
|
2884
2900
|
case "agent_start":
|
|
2885
2901
|
this.pendingTools.clear();
|
|
@@ -3011,6 +3027,7 @@ export class InteractiveMode {
|
|
|
3011
3027
|
const component = new ToolExecutionComponent(content.name, content.id, content.arguments, {
|
|
3012
3028
|
showImages: this.settingsManager.getShowImages(),
|
|
3013
3029
|
imageWidthCells: this.settingsManager.getImageWidthCells(),
|
|
3030
|
+
outputPad: this.outputPad,
|
|
3014
3031
|
}, this.getRegisteredToolDefinition(content.name), this.ui, this.sessionManager.getCwd());
|
|
3015
3032
|
component.setExpanded(this.toolOutputExpanded);
|
|
3016
3033
|
this.chatContainer.addChild(component);
|
|
@@ -3081,6 +3098,7 @@ export class InteractiveMode {
|
|
|
3081
3098
|
component = new ToolExecutionComponent(event.toolName, event.toolCallId, event.args, {
|
|
3082
3099
|
showImages: this.settingsManager.getShowImages(),
|
|
3083
3100
|
imageWidthCells: this.settingsManager.getImageWidthCells(),
|
|
3101
|
+
outputPad: this.outputPad,
|
|
3084
3102
|
}, this.getRegisteredToolDefinition(event.toolName), this.ui, this.sessionManager.getCwd());
|
|
3085
3103
|
component.setExpanded(this.toolOutputExpanded);
|
|
3086
3104
|
this.chatContainer.addChild(component);
|
|
@@ -3103,7 +3121,7 @@ export class InteractiveMode {
|
|
|
3103
3121
|
this.maybeShowInstallChangeWarning();
|
|
3104
3122
|
const component = this.pendingTools.get(event.toolCallId);
|
|
3105
3123
|
if (component) {
|
|
3106
|
-
component.updateResult({ ...event.result, isError: event.isError });
|
|
3124
|
+
component.updateResult({ ...event.result, isError: event.isError, durationMs: event.durationMs });
|
|
3107
3125
|
this.pendingTools.delete(event.toolCallId);
|
|
3108
3126
|
this.ui.requestRender();
|
|
3109
3127
|
}
|
|
@@ -3312,7 +3330,7 @@ export class InteractiveMode {
|
|
|
3312
3330
|
if (!renderer) {
|
|
3313
3331
|
return;
|
|
3314
3332
|
}
|
|
3315
|
-
const component = new CustomEntryComponent(entry, renderer);
|
|
3333
|
+
const component = new CustomEntryComponent(entry, renderer, this.outputPad);
|
|
3316
3334
|
component.setExpanded(this.toolOutputExpanded);
|
|
3317
3335
|
if (!component.hasContent()) {
|
|
3318
3336
|
return;
|
|
@@ -3329,7 +3347,7 @@ export class InteractiveMode {
|
|
|
3329
3347
|
addMessageToChat(message, options) {
|
|
3330
3348
|
switch (message.role) {
|
|
3331
3349
|
case "bashExecution": {
|
|
3332
|
-
const component = new BashExecutionComponent(message.command, this.ui, message.excludeFromContext);
|
|
3350
|
+
const component = new BashExecutionComponent(message.command, this.ui, message.excludeFromContext, this.outputPad);
|
|
3333
3351
|
if (message.output) {
|
|
3334
3352
|
component.appendOutput(message.output);
|
|
3335
3353
|
}
|
|
@@ -3348,14 +3366,14 @@ export class InteractiveMode {
|
|
|
3348
3366
|
}
|
|
3349
3367
|
case "compactionSummary": {
|
|
3350
3368
|
this.chatContainer.addChild(new Spacer(1));
|
|
3351
|
-
const component = new CompactionSummaryMessageComponent(message, this.getMarkdownThemeWithSettings());
|
|
3369
|
+
const component = new CompactionSummaryMessageComponent(message, this.getMarkdownThemeWithSettings(), this.outputPad);
|
|
3352
3370
|
component.setExpanded(this.toolOutputExpanded);
|
|
3353
3371
|
this.chatContainer.addChild(component);
|
|
3354
3372
|
break;
|
|
3355
3373
|
}
|
|
3356
3374
|
case "branchSummary": {
|
|
3357
3375
|
this.chatContainer.addChild(new Spacer(1));
|
|
3358
|
-
const component = new BranchSummaryMessageComponent(message, this.getMarkdownThemeWithSettings());
|
|
3376
|
+
const component = new BranchSummaryMessageComponent(message, this.getMarkdownThemeWithSettings(), this.outputPad);
|
|
3359
3377
|
component.setExpanded(this.toolOutputExpanded);
|
|
3360
3378
|
this.chatContainer.addChild(component);
|
|
3361
3379
|
break;
|
|
@@ -3371,7 +3389,7 @@ export class InteractiveMode {
|
|
|
3371
3389
|
const skillBlock = parseSkillBlock(textContent);
|
|
3372
3390
|
if (skillBlock) {
|
|
3373
3391
|
// Render skill block (collapsible)
|
|
3374
|
-
const component = new SkillInvocationMessageComponent(skillBlock, this.getMarkdownThemeWithSettings());
|
|
3392
|
+
const component = new SkillInvocationMessageComponent(skillBlock, this.getMarkdownThemeWithSettings(), this.outputPad);
|
|
3375
3393
|
component.setExpanded(this.toolOutputExpanded);
|
|
3376
3394
|
this.chatContainer.addChild(component);
|
|
3377
3395
|
// Render user message separately if present
|
|
@@ -3440,6 +3458,7 @@ export class InteractiveMode {
|
|
|
3440
3458
|
const component = new ToolExecutionComponent(content.name, content.id, content.arguments, {
|
|
3441
3459
|
showImages: this.settingsManager.getShowImages(),
|
|
3442
3460
|
imageWidthCells: this.settingsManager.getImageWidthCells(),
|
|
3461
|
+
outputPad: this.outputPad,
|
|
3443
3462
|
}, this.getRegisteredToolDefinition(content.name), this.ui, this.sessionManager.getCwd());
|
|
3444
3463
|
component.setExpanded(this.toolOutputExpanded);
|
|
3445
3464
|
this.chatContainer.addChild(component);
|
|
@@ -3493,6 +3512,9 @@ export class InteractiveMode {
|
|
|
3493
3512
|
* @param options.populateHistory Add user messages to editor history
|
|
3494
3513
|
*/
|
|
3495
3514
|
renderSessionEntries(entries, options = {}) {
|
|
3515
|
+
// Selection coordinates point into the transcript being replaced (#9311).
|
|
3516
|
+
if (this.renderer instanceof TuiAltScreen)
|
|
3517
|
+
this.renderer.resetTextSelection();
|
|
3496
3518
|
const items = entries.flatMap((entry) => {
|
|
3497
3519
|
if (entry.type === "custom" || (entry.type === "usage" && entry.kind === "cache_warm")) {
|
|
3498
3520
|
return [entry];
|
|
@@ -4404,21 +4426,14 @@ export class InteractiveMode {
|
|
|
4404
4426
|
onOutputPadChange: (padding) => {
|
|
4405
4427
|
this.settingsManager.setOutputPad(padding);
|
|
4406
4428
|
this.outputPad = padding;
|
|
4407
|
-
|
|
4408
|
-
for (const child of
|
|
4409
|
-
if (child
|
|
4410
|
-
child instanceof CustomMessageComponent ||
|
|
4411
|
-
child instanceof UserMessageComponent) {
|
|
4429
|
+
for (const container of [this.chatContainer, this.pendingMessagesContainer]) {
|
|
4430
|
+
for (const child of container.children) {
|
|
4431
|
+
if ("setOutputPad" in child && typeof child.setOutputPad === "function") {
|
|
4412
4432
|
child.setOutputPad(padding);
|
|
4413
4433
|
}
|
|
4414
4434
|
}
|
|
4415
|
-
if (this.streamingComponent) {
|
|
4416
|
-
this.streamingComponent.setOutputPad(padding);
|
|
4417
|
-
}
|
|
4418
|
-
this.ui.requestRender();
|
|
4419
|
-
return;
|
|
4420
4435
|
}
|
|
4421
|
-
this.
|
|
4436
|
+
this.ui.requestRender();
|
|
4422
4437
|
},
|
|
4423
4438
|
onAutocompleteMaxVisibleChange: (maxVisible) => {
|
|
4424
4439
|
this.settingsManager.setAutocompleteMaxVisible(maxVisible);
|
|
@@ -5381,7 +5396,7 @@ export class InteractiveMode {
|
|
|
5381
5396
|
this.ui.requestRender();
|
|
5382
5397
|
};
|
|
5383
5398
|
try {
|
|
5384
|
-
await this.loginProvider(dialog, providerId, "api_key");
|
|
5399
|
+
await this.loginProvider(dialog, providerId, providerName, "api_key");
|
|
5385
5400
|
restoreEditor();
|
|
5386
5401
|
await this.completeProviderAuthentication(providerId, providerName, "api_key", previousModel);
|
|
5387
5402
|
}
|
|
@@ -5469,12 +5484,18 @@ export class InteractiveMode {
|
|
|
5469
5484
|
dialog.showProgress(event.message);
|
|
5470
5485
|
}
|
|
5471
5486
|
}
|
|
5472
|
-
async loginProvider(dialog, providerId, method) {
|
|
5473
|
-
|
|
5474
|
-
|
|
5475
|
-
|
|
5476
|
-
|
|
5477
|
-
|
|
5487
|
+
async loginProvider(dialog, providerId, providerName, method) {
|
|
5488
|
+
this.programStatus.setBlocked("login", { kind: "auth", message: `Log in to ${providerName}` });
|
|
5489
|
+
try {
|
|
5490
|
+
await this.session.modelRuntime.login(providerId, method, {
|
|
5491
|
+
signal: dialog.signal,
|
|
5492
|
+
prompt: (prompt) => this.showAuthPrompt(dialog, prompt, providerId),
|
|
5493
|
+
notify: (event) => this.notifyAuthDialog(dialog, event),
|
|
5494
|
+
}, { getDeviceId: () => this.settingsManager.getOrCreateDeviceId() });
|
|
5495
|
+
}
|
|
5496
|
+
finally {
|
|
5497
|
+
this.programStatus.setBlocked("login", undefined);
|
|
5498
|
+
}
|
|
5478
5499
|
}
|
|
5479
5500
|
async showLoginDialog(providerId, providerName, onBack) {
|
|
5480
5501
|
const previousModel = this.session.model;
|
|
@@ -5490,7 +5511,7 @@ export class InteractiveMode {
|
|
|
5490
5511
|
this.ui.requestRender();
|
|
5491
5512
|
};
|
|
5492
5513
|
try {
|
|
5493
|
-
await this.loginProvider(dialog, providerId, "oauth");
|
|
5514
|
+
await this.loginProvider(dialog, providerId, providerName, "oauth");
|
|
5494
5515
|
restoreEditor();
|
|
5495
5516
|
await this.completeProviderAuthentication(providerId, providerName, "oauth", previousModel);
|
|
5496
5517
|
if (providerId === RADIUS_PROVIDER_ID)
|
|
@@ -6077,7 +6098,7 @@ export class InteractiveMode {
|
|
|
6077
6098
|
if (eventResult?.result) {
|
|
6078
6099
|
const result = eventResult.result;
|
|
6079
6100
|
// Create UI component for display
|
|
6080
|
-
this.bashComponent = new BashExecutionComponent(command, this.ui, excludeFromContext);
|
|
6101
|
+
this.bashComponent = new BashExecutionComponent(command, this.ui, excludeFromContext, this.outputPad);
|
|
6081
6102
|
if (this.session.isStreaming) {
|
|
6082
6103
|
this.pendingMessagesContainer.addChild(this.bashComponent);
|
|
6083
6104
|
this.pendingBashComponents.push(this.bashComponent);
|
|
@@ -6098,7 +6119,7 @@ export class InteractiveMode {
|
|
|
6098
6119
|
}
|
|
6099
6120
|
// Normal execution path (possibly with custom operations)
|
|
6100
6121
|
const isDeferred = this.session.isStreaming;
|
|
6101
|
-
this.bashComponent = new BashExecutionComponent(command, this.ui, excludeFromContext);
|
|
6122
|
+
this.bashComponent = new BashExecutionComponent(command, this.ui, excludeFromContext, this.outputPad);
|
|
6102
6123
|
if (isDeferred) {
|
|
6103
6124
|
// Show in pending area when agent is streaming
|
|
6104
6125
|
this.pendingMessagesContainer.addChild(this.bashComponent);
|