@google/gemini-cli 0.36.0-preview.8 → 0.37.0-preview.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/bundle/{chunk-N22U7LIR.js → chunk-3TN4SOLW.js} +6651 -4180
- package/bundle/{chunk-S2IQOR7T.js → chunk-7UZ4Y32N.js} +214 -66
- package/bundle/{chunk-QBLIM2T2.js → chunk-A62NZYIK.js} +711 -240
- package/bundle/{chunk-5JDHTAA3.js → chunk-LEK5YYAR.js} +6295 -4094
- package/bundle/{chunk-MYI75E6G.js → chunk-R5X4CMUM.js} +233 -70
- package/bundle/{chunk-5Y6Y7SEB.js → chunk-TJ76C6AA.js} +16847 -9496
- package/bundle/chunk-U4FACSVX.js +30 -0
- package/bundle/{chunk-UUJ4JLTB.js → chunk-ULC3DHVX.js} +711 -240
- package/bundle/{chunk-642LNT3F.js → chunk-XX7JYMTE.js} +765 -306
- package/bundle/{core-N4UNRLQA.js → core-5OME6LT4.js} +58 -4
- package/bundle/{dist-HD2ZHBHJ.js → core-CUCGSGCA.js} +58 -4
- package/bundle/{devtoolsService-7D3WUF33.js → devtoolsService-4FIYD6OW.js} +20 -3
- package/bundle/{devtoolsService-NA7MR5UO.js → devtoolsService-IDLWLZFQ.js} +21 -5
- package/bundle/{devtoolsService-Y53ZUB56.js → devtoolsService-TVWW3DBW.js} +20 -3
- package/bundle/{dist-JYY2GAAR.js → dist-YWCADMDD.js} +58 -4
- package/bundle/docs/CONTRIBUTING.md +10 -7
- package/bundle/docs/assets/theme-tokyonight-dark.png +0 -0
- package/bundle/docs/changelogs/index.md +24 -0
- package/bundle/docs/changelogs/latest.md +366 -459
- package/bundle/docs/changelogs/preview.md +362 -356
- package/bundle/docs/cli/acp-mode.md +126 -0
- package/bundle/docs/cli/cli-reference.md +1 -1
- package/bundle/docs/cli/notifications.md +5 -5
- package/bundle/docs/cli/plan-mode.md +12 -8
- package/bundle/docs/cli/sandbox.md +1 -1
- package/bundle/docs/cli/settings.md +14 -13
- package/bundle/docs/cli/themes.md +5 -0
- package/bundle/docs/core/index.md +2 -2
- package/bundle/docs/core/subagents.md +134 -23
- package/bundle/docs/get-started/gemini-3.md +1 -1
- package/bundle/docs/get-started/index.md +127 -1
- package/bundle/docs/ide-integration/index.md +99 -24
- package/bundle/docs/index.md +0 -2
- package/bundle/docs/redirects.json +1 -0
- package/bundle/docs/reference/commands.md +1 -3
- package/bundle/docs/reference/configuration.md +182 -91
- package/bundle/docs/reference/keyboard-shortcuts.md +14 -6
- package/bundle/docs/reference/policy-engine.md +16 -30
- package/bundle/docs/reference/tools.md +56 -23
- package/bundle/docs/resources/quota-and-pricing.md +23 -9
- package/bundle/docs/sidebar.json +11 -4
- package/bundle/docs/tools/planning.md +6 -4
- package/bundle/events-CLX3JQHP.js +12 -0
- package/bundle/gemini.js +342 -52
- package/bundle/{interactiveCli-R5N55BDV.js → interactiveCli-4WFWOVAQ.js} +5066 -4010
- package/bundle/{interactiveCli-LFO7EWZS.js → interactiveCli-4ZZ72DR3.js} +5066 -4010
- package/bundle/{interactiveCli-2JRQPNZP.js → interactiveCli-6SIGBRWS.js} +5279 -4240
- package/bundle/{memoryDiscovery-BQGYT4OD.js → memoryDiscovery-NS2EGHYH.js} +3 -1
- package/bundle/{memoryDiscovery-FCEPFZ3M.js → memoryDiscovery-VL3OH25S.js} +3 -1
- package/bundle/node_modules/@google/gemini-cli-devtools/dist/client/main.js +26 -19
- package/bundle/node_modules/@google/gemini-cli-devtools/dist/src/_client-assets.d.ts +1 -1
- package/bundle/node_modules/@google/gemini-cli-devtools/dist/src/_client-assets.js +1 -1
- package/bundle/node_modules/@google/gemini-cli-devtools/dist/src/_client-assets.js.map +1 -1
- package/bundle/node_modules/@google/gemini-cli-devtools/dist/src/index.js +35 -1
- package/bundle/node_modules/@google/gemini-cli-devtools/dist/src/index.js.map +1 -1
- package/bundle/node_modules/@google/gemini-cli-devtools/package.json +1 -1
- package/bundle/{oauth2-provider-2WD22PTI.js → oauth2-provider-HGHECKPY.js} +2 -2
- package/bundle/{oauth2-provider-QOWLZC44.js → oauth2-provider-TYBJKXSJ.js} +2 -2
- package/bundle/{oauth2-provider-34BPLPQX.js → oauth2-provider-YYRJ44X5.js} +73 -39
- package/bundle/policies/discovered.toml +7 -0
- package/bundle/policies/non-interactive.toml +7 -0
- package/bundle/policies/plan.toml +25 -0
- package/bundle/policies/read-only.toml +6 -0
- package/bundle/policies/sandbox-default.toml +3 -2
- package/bundle/policies/write.toml +21 -0
- package/bundle/policies/yolo.toml +1 -1
- package/package.json +1 -1
- package/bundle/chunk-FWCJAF6L.js +0 -97905
- package/bundle/chunk-X6CSYCBW.js +0 -354180
- package/bundle/devtoolsService-VU7N6PSG.js +0 -854
- package/bundle/dist-QEB25IFU.js +0 -1886
- package/bundle/docs/get-started/examples.md +0 -141
- package/bundle/interactiveCli-A6H7VTMC.js +0 -49299
- package/bundle/oauth2-provider-MZAUZWUS.js +0 -237
|
@@ -55,6 +55,8 @@ import {
|
|
|
55
55
|
convertToRestPayload,
|
|
56
56
|
createCache,
|
|
57
57
|
decodeTagName,
|
|
58
|
+
deleteSessionArtifactsAsync,
|
|
59
|
+
deleteSubagentSessionDirAndArtifactsAsync,
|
|
58
60
|
disableBracketedPasteMode,
|
|
59
61
|
disableKittyKeyboardProtocol,
|
|
60
62
|
disableModifyOtherKeys,
|
|
@@ -150,6 +152,7 @@ import {
|
|
|
150
152
|
require_toml,
|
|
151
153
|
require_undici,
|
|
152
154
|
require_valid,
|
|
155
|
+
resetBrowserSession,
|
|
153
156
|
sanitizeFilenamePart,
|
|
154
157
|
sessionId,
|
|
155
158
|
shouldLaunchBrowser,
|
|
@@ -164,7 +167,7 @@ import {
|
|
|
164
167
|
tokenLimit,
|
|
165
168
|
uiTelemetryService,
|
|
166
169
|
yellowBright
|
|
167
|
-
} from "./chunk-
|
|
170
|
+
} from "./chunk-LEK5YYAR.js";
|
|
168
171
|
import {
|
|
169
172
|
ApprovalMode,
|
|
170
173
|
CoreEvent,
|
|
@@ -193,7 +196,11 @@ import {
|
|
|
193
196
|
shortenPath,
|
|
194
197
|
tildeifyPath,
|
|
195
198
|
unescapePath
|
|
196
|
-
} from "./chunk-
|
|
199
|
+
} from "./chunk-7UZ4Y32N.js";
|
|
200
|
+
import {
|
|
201
|
+
AppEvent,
|
|
202
|
+
appEvents
|
|
203
|
+
} from "./chunk-U4FACSVX.js";
|
|
197
204
|
import {
|
|
198
205
|
__commonJS,
|
|
199
206
|
__export,
|
|
@@ -34576,12 +34583,12 @@ var require_prompt = __commonJS({
|
|
|
34576
34583
|
var readline = __require("readline");
|
|
34577
34584
|
var _require = require_util3();
|
|
34578
34585
|
var action = _require.action;
|
|
34579
|
-
var
|
|
34586
|
+
var EventEmitter5 = __require("events");
|
|
34580
34587
|
var _require2 = require_src3();
|
|
34581
34588
|
var beep2 = _require2.beep;
|
|
34582
34589
|
var cursor = _require2.cursor;
|
|
34583
34590
|
var color = require_kleur();
|
|
34584
|
-
var Prompt = class extends
|
|
34591
|
+
var Prompt = class extends EventEmitter5 {
|
|
34585
34592
|
constructor(opts = {}) {
|
|
34586
34593
|
super();
|
|
34587
34594
|
this.firstRender = true;
|
|
@@ -36581,9 +36588,9 @@ var require_prompts = __commonJS({
|
|
|
36581
36588
|
$4.date = (args) => toPrompt("DatePrompt", args);
|
|
36582
36589
|
$4.confirm = (args) => toPrompt("ConfirmPrompt", args);
|
|
36583
36590
|
$4.list = (args) => {
|
|
36584
|
-
const
|
|
36591
|
+
const sep4 = args.separator || ",";
|
|
36585
36592
|
return toPrompt("TextPrompt", args, {
|
|
36586
|
-
onSubmit: (str) => str.split(
|
|
36593
|
+
onSubmit: (str) => str.split(sep4).map((s3) => s3.trim())
|
|
36587
36594
|
});
|
|
36588
36595
|
};
|
|
36589
36596
|
$4.toggle = (args) => toPrompt("TogglePrompt", args);
|
|
@@ -37041,10 +37048,10 @@ var require_prompt2 = __commonJS({
|
|
|
37041
37048
|
"use strict";
|
|
37042
37049
|
var readline = __require("readline");
|
|
37043
37050
|
var { action } = require_util4();
|
|
37044
|
-
var
|
|
37051
|
+
var EventEmitter5 = __require("events");
|
|
37045
37052
|
var { beep: beep2, cursor } = require_src3();
|
|
37046
37053
|
var color = require_kleur();
|
|
37047
|
-
var Prompt = class extends
|
|
37054
|
+
var Prompt = class extends EventEmitter5 {
|
|
37048
37055
|
constructor(opts = {}) {
|
|
37049
37056
|
super();
|
|
37050
37057
|
this.firstRender = true;
|
|
@@ -38871,9 +38878,9 @@ var require_prompts2 = __commonJS({
|
|
|
38871
38878
|
$4.date = (args) => toPrompt("DatePrompt", args);
|
|
38872
38879
|
$4.confirm = (args) => toPrompt("ConfirmPrompt", args);
|
|
38873
38880
|
$4.list = (args) => {
|
|
38874
|
-
const
|
|
38881
|
+
const sep4 = args.separator || ",";
|
|
38875
38882
|
return toPrompt("TextPrompt", args, {
|
|
38876
|
-
onSubmit: (str) => str.split(
|
|
38883
|
+
onSubmit: (str) => str.split(sep4).map((s3) => s3.trim())
|
|
38877
38884
|
});
|
|
38878
38885
|
};
|
|
38879
38886
|
$4.toggle = (args) => toPrompt("TogglePrompt", args);
|
|
@@ -43484,6 +43491,7 @@ function mapCoreStatusToDisplayStatus(coreStatus) {
|
|
|
43484
43491
|
return checkExhaustive(coreStatus);
|
|
43485
43492
|
}
|
|
43486
43493
|
}
|
|
43494
|
+
var isTodoList = (res) => typeof res === "object" && res !== null && "todos" in res;
|
|
43487
43495
|
var emptyIcon = " ";
|
|
43488
43496
|
|
|
43489
43497
|
// packages/cli/src/utils/cleanup.ts
|
|
@@ -43521,6 +43529,10 @@ async function runExitCleanup() {
|
|
|
43521
43529
|
}
|
|
43522
43530
|
}
|
|
43523
43531
|
cleanupFunctions.length = 0;
|
|
43532
|
+
try {
|
|
43533
|
+
await resetBrowserSession();
|
|
43534
|
+
} catch (_2) {
|
|
43535
|
+
}
|
|
43524
43536
|
if (configForTelemetry) {
|
|
43525
43537
|
try {
|
|
43526
43538
|
await configForTelemetry.dispose();
|
|
@@ -43619,12 +43631,15 @@ var ConsolePatcher = class {
|
|
|
43619
43631
|
};
|
|
43620
43632
|
formatArgs = (args) => util.format(...args);
|
|
43621
43633
|
patchConsoleMethod = (type) => (...args) => {
|
|
43622
|
-
if (this.params.
|
|
43623
|
-
if (type
|
|
43624
|
-
|
|
43634
|
+
if (this.params.interactive === false) {
|
|
43635
|
+
if ((type === "info" || type === "log") && !this.params.debugMode) {
|
|
43636
|
+
return;
|
|
43625
43637
|
}
|
|
43626
|
-
}
|
|
43627
|
-
|
|
43638
|
+
}
|
|
43639
|
+
if (type !== "debug" || this.params.debugMode) {
|
|
43640
|
+
if (this.params.stderr) {
|
|
43641
|
+
this.originalConsoleError(this.formatArgs(args));
|
|
43642
|
+
} else {
|
|
43628
43643
|
this.params.onNewMessage?.({
|
|
43629
43644
|
type,
|
|
43630
43645
|
content: this.formatArgs(args),
|
|
@@ -56122,6 +56137,10 @@ var COMPLETED_SHELL_MAX_LINES = 15;
|
|
|
56122
56137
|
var SUBAGENT_MAX_LINES = 15;
|
|
56123
56138
|
var MIN_TERMINAL_WIDTH_FOR_FULL_LABEL = 100;
|
|
56124
56139
|
var DEFAULT_COMPRESSION_THRESHOLD = 0.5;
|
|
56140
|
+
var SKILLS_DOCS_URL = "https://github.com/google-gemini/gemini-cli/blob/main/docs/cli/skills.md";
|
|
56141
|
+
var COMPACT_TOOL_SUBVIEW_MAX_LINES = 15;
|
|
56142
|
+
var MAX_SHELL_OUTPUT_SIZE = 1e7;
|
|
56143
|
+
var SHELL_OUTPUT_TRUNCATION_BUFFER = 1e6;
|
|
56125
56144
|
|
|
56126
56145
|
// packages/cli/src/ui/themes/theme.ts
|
|
56127
56146
|
var import_tinygradient = __toESM(require_tinygradient(), 1);
|
|
@@ -58639,33 +58658,11 @@ function deriveShortIdFromFileName(fileName) {
|
|
|
58639
58658
|
}
|
|
58640
58659
|
return null;
|
|
58641
58660
|
}
|
|
58642
|
-
function
|
|
58643
|
-
return path4.join(tempDir, "logs", `session-${safeSessionId}.jsonl`);
|
|
58644
|
-
}
|
|
58645
|
-
async function deleteSessionArtifactsAsync(sessionId2, config) {
|
|
58661
|
+
async function cleanupSessionAndSubagentsAsync(sessionId2, config) {
|
|
58646
58662
|
const tempDir = config.storage.getProjectTempDir();
|
|
58647
|
-
const
|
|
58648
|
-
|
|
58649
|
-
|
|
58650
|
-
if (logPath.startsWith(logsDir)) {
|
|
58651
|
-
await fs8.unlink(logPath).catch(() => {
|
|
58652
|
-
});
|
|
58653
|
-
}
|
|
58654
|
-
const toolOutputDir = path4.join(
|
|
58655
|
-
tempDir,
|
|
58656
|
-
TOOL_OUTPUTS_DIR,
|
|
58657
|
-
`session-${safeSessionId}`
|
|
58658
|
-
);
|
|
58659
|
-
const toolOutputsBase = path4.join(tempDir, TOOL_OUTPUTS_DIR);
|
|
58660
|
-
if (toolOutputDir.startsWith(toolOutputsBase)) {
|
|
58661
|
-
await fs8.rm(toolOutputDir, { recursive: true, force: true }).catch(() => {
|
|
58662
|
-
});
|
|
58663
|
-
}
|
|
58664
|
-
const sessionDir = path4.join(tempDir, safeSessionId);
|
|
58665
|
-
if (safeSessionId && sessionDir.startsWith(tempDir + path4.sep)) {
|
|
58666
|
-
await fs8.rm(sessionDir, { recursive: true, force: true }).catch(() => {
|
|
58667
|
-
});
|
|
58668
|
-
}
|
|
58663
|
+
const chatsDir = path4.join(tempDir, "chats");
|
|
58664
|
+
await deleteSessionArtifactsAsync(sessionId2, tempDir);
|
|
58665
|
+
await deleteSubagentSessionDirAndArtifactsAsync(sessionId2, chatsDir, tempDir);
|
|
58669
58666
|
}
|
|
58670
58667
|
async function cleanupExpiredSessions(config, settings) {
|
|
58671
58668
|
const result = {
|
|
@@ -58729,7 +58726,7 @@ async function cleanupExpiredSessions(config, settings) {
|
|
|
58729
58726
|
if (!fullSessionId || fullSessionId !== config.getSessionId()) {
|
|
58730
58727
|
await fs8.unlink(filePath);
|
|
58731
58728
|
if (fullSessionId) {
|
|
58732
|
-
await
|
|
58729
|
+
await cleanupSessionAndSubagentsAsync(fullSessionId, config);
|
|
58733
58730
|
}
|
|
58734
58731
|
result.deleted++;
|
|
58735
58732
|
} else {
|
|
@@ -58750,7 +58747,7 @@ async function cleanupExpiredSessions(config, settings) {
|
|
|
58750
58747
|
await fs8.unlink(sessionPath);
|
|
58751
58748
|
const sessionId2 = sessionToDelete.sessionInfo?.id;
|
|
58752
58749
|
if (sessionId2) {
|
|
58753
|
-
await
|
|
58750
|
+
await cleanupSessionAndSubagentsAsync(sessionId2, config);
|
|
58754
58751
|
}
|
|
58755
58752
|
if (config.getDebugMode()) {
|
|
58756
58753
|
debugLogger.debug(
|
|
@@ -59144,7 +59141,7 @@ var SETTINGS_SCHEMA = {
|
|
|
59144
59141
|
category: "General",
|
|
59145
59142
|
requiresRestart: false,
|
|
59146
59143
|
default: false,
|
|
59147
|
-
description: "Enable run-event notifications for action-required prompts and session completion.
|
|
59144
|
+
description: "Enable run-event notifications for action-required prompts and session completion.",
|
|
59148
59145
|
showInDialog: true
|
|
59149
59146
|
},
|
|
59150
59147
|
checkpointing: {
|
|
@@ -59176,13 +59173,22 @@ var SETTINGS_SCHEMA = {
|
|
|
59176
59173
|
description: "Planning features configuration.",
|
|
59177
59174
|
showInDialog: false,
|
|
59178
59175
|
properties: {
|
|
59176
|
+
enabled: {
|
|
59177
|
+
type: "boolean",
|
|
59178
|
+
label: "Enable Plan Mode",
|
|
59179
|
+
category: "General",
|
|
59180
|
+
requiresRestart: true,
|
|
59181
|
+
default: true,
|
|
59182
|
+
description: "Enable Plan Mode for read-only safety during planning.",
|
|
59183
|
+
showInDialog: true
|
|
59184
|
+
},
|
|
59179
59185
|
directory: {
|
|
59180
59186
|
type: "string",
|
|
59181
59187
|
label: "Plan Directory",
|
|
59182
59188
|
category: "General",
|
|
59183
59189
|
requiresRestart: true,
|
|
59184
59190
|
default: void 0,
|
|
59185
|
-
description: "The directory where planning artifacts are stored. If not specified, defaults to the system temporary directory.",
|
|
59191
|
+
description: "The directory where planning artifacts are stored. If not specified, defaults to the system temporary directory. A custom directory requires a policy to allow write access in Plan Mode.",
|
|
59186
59192
|
showInDialog: true
|
|
59187
59193
|
},
|
|
59188
59194
|
modelRouting: {
|
|
@@ -59430,6 +59436,15 @@ var SETTINGS_SCHEMA = {
|
|
|
59430
59436
|
description: 'Show the "? for shortcuts" hint above the input.',
|
|
59431
59437
|
showInDialog: true
|
|
59432
59438
|
},
|
|
59439
|
+
compactToolOutput: {
|
|
59440
|
+
type: "boolean",
|
|
59441
|
+
label: "Compact Tool Output",
|
|
59442
|
+
category: "UI",
|
|
59443
|
+
requiresRestart: false,
|
|
59444
|
+
default: false,
|
|
59445
|
+
description: "Display tool outputs (like directory listings and file reads) in a compact, structured format.",
|
|
59446
|
+
showInDialog: true
|
|
59447
|
+
},
|
|
59433
59448
|
hideBanner: {
|
|
59434
59449
|
type: "boolean",
|
|
59435
59450
|
label: "Hide Banner",
|
|
@@ -60041,6 +60056,15 @@ var SETTINGS_SCHEMA = {
|
|
|
60041
60056
|
description: "Disable user input on browser window during automation.",
|
|
60042
60057
|
showInDialog: false
|
|
60043
60058
|
},
|
|
60059
|
+
maxActionsPerTask: {
|
|
60060
|
+
type: "number",
|
|
60061
|
+
label: "Max Actions Per Task",
|
|
60062
|
+
category: "Advanced",
|
|
60063
|
+
requiresRestart: false,
|
|
60064
|
+
default: 100,
|
|
60065
|
+
description: "The maximum number of tool calls allowed per browser task. Enforcement is hard: the agent will be terminated when the limit is reached.",
|
|
60066
|
+
showInDialog: false
|
|
60067
|
+
},
|
|
60044
60068
|
confirmSensitiveActions: {
|
|
60045
60069
|
type: "boolean",
|
|
60046
60070
|
label: "Confirm Sensitive Actions",
|
|
@@ -60109,6 +60133,16 @@ var SETTINGS_SCHEMA = {
|
|
|
60109
60133
|
description: "Maximum number of directories to search for memory.",
|
|
60110
60134
|
showInDialog: true
|
|
60111
60135
|
},
|
|
60136
|
+
memoryBoundaryMarkers: {
|
|
60137
|
+
type: "array",
|
|
60138
|
+
label: "Memory Boundary Markers",
|
|
60139
|
+
category: "Context",
|
|
60140
|
+
requiresRestart: true,
|
|
60141
|
+
default: [".git"],
|
|
60142
|
+
description: "File or directory names that mark the boundary for GEMINI.md discovery. The upward traversal stops at the first directory containing any of these markers. An empty array disables parent traversal.",
|
|
60143
|
+
showInDialog: false,
|
|
60144
|
+
items: { type: "string" }
|
|
60145
|
+
},
|
|
60112
60146
|
includeDirectories: {
|
|
60113
60147
|
type: "array",
|
|
60114
60148
|
label: "Include Directories",
|
|
@@ -60260,6 +60294,20 @@ var SETTINGS_SCHEMA = {
|
|
|
60260
60294
|
`,
|
|
60261
60295
|
showInDialog: true
|
|
60262
60296
|
},
|
|
60297
|
+
backgroundCompletionBehavior: {
|
|
60298
|
+
type: "enum",
|
|
60299
|
+
label: "Background Completion Behavior",
|
|
60300
|
+
category: "Tools",
|
|
60301
|
+
requiresRestart: false,
|
|
60302
|
+
default: "silent",
|
|
60303
|
+
description: "Controls what happens when a background shell command finishes. 'silent' (default): quietly exits in background. 'inject': automatically returns output to agent. 'notify': shows brief message in chat.",
|
|
60304
|
+
showInDialog: false,
|
|
60305
|
+
options: [
|
|
60306
|
+
{ label: "Silent", value: "silent" },
|
|
60307
|
+
{ label: "Inject", value: "inject" },
|
|
60308
|
+
{ label: "Notify", value: "notify" }
|
|
60309
|
+
]
|
|
60310
|
+
},
|
|
60263
60311
|
pager: {
|
|
60264
60312
|
type: "string",
|
|
60265
60313
|
label: "Pager",
|
|
@@ -60682,54 +60730,6 @@ var SETTINGS_SCHEMA = {
|
|
|
60682
60730
|
description: "Setting to enable experimental features",
|
|
60683
60731
|
showInDialog: false,
|
|
60684
60732
|
properties: {
|
|
60685
|
-
toolOutputMasking: {
|
|
60686
|
-
type: "object",
|
|
60687
|
-
label: "Tool Output Masking",
|
|
60688
|
-
category: "Experimental",
|
|
60689
|
-
requiresRestart: true,
|
|
60690
|
-
ignoreInDocs: false,
|
|
60691
|
-
default: {},
|
|
60692
|
-
description: "Advanced settings for tool output masking to manage context window efficiency.",
|
|
60693
|
-
showInDialog: false,
|
|
60694
|
-
properties: {
|
|
60695
|
-
enabled: {
|
|
60696
|
-
type: "boolean",
|
|
60697
|
-
label: "Enable Tool Output Masking",
|
|
60698
|
-
category: "Experimental",
|
|
60699
|
-
requiresRestart: true,
|
|
60700
|
-
default: true,
|
|
60701
|
-
description: "Enables tool output masking to save tokens.",
|
|
60702
|
-
showInDialog: true
|
|
60703
|
-
},
|
|
60704
|
-
toolProtectionThreshold: {
|
|
60705
|
-
type: "number",
|
|
60706
|
-
label: "Tool Protection Threshold",
|
|
60707
|
-
category: "Experimental",
|
|
60708
|
-
requiresRestart: true,
|
|
60709
|
-
default: 5e4,
|
|
60710
|
-
description: "Minimum number of tokens to protect from masking (most recent tool outputs).",
|
|
60711
|
-
showInDialog: false
|
|
60712
|
-
},
|
|
60713
|
-
minPrunableTokensThreshold: {
|
|
60714
|
-
type: "number",
|
|
60715
|
-
label: "Min Prunable Tokens Threshold",
|
|
60716
|
-
category: "Experimental",
|
|
60717
|
-
requiresRestart: true,
|
|
60718
|
-
default: 3e4,
|
|
60719
|
-
description: "Minimum prunable tokens required to trigger a masking pass.",
|
|
60720
|
-
showInDialog: false
|
|
60721
|
-
},
|
|
60722
|
-
protectLatestTurn: {
|
|
60723
|
-
type: "boolean",
|
|
60724
|
-
label: "Protect Latest Turn",
|
|
60725
|
-
category: "Experimental",
|
|
60726
|
-
requiresRestart: true,
|
|
60727
|
-
default: true,
|
|
60728
|
-
description: "Ensures the absolute latest turn is never masked, regardless of token count.",
|
|
60729
|
-
showInDialog: false
|
|
60730
|
-
}
|
|
60731
|
-
}
|
|
60732
|
-
},
|
|
60733
60733
|
enableAgents: {
|
|
60734
60734
|
type: "boolean",
|
|
60735
60735
|
label: "Enable Agents",
|
|
@@ -60820,15 +60820,6 @@ var SETTINGS_SCHEMA = {
|
|
|
60820
60820
|
description: "Use OSC 52 for copying. This may be more robust than the default system when using remote terminal sessions (if your terminal is configured to allow it).",
|
|
60821
60821
|
showInDialog: true
|
|
60822
60822
|
},
|
|
60823
|
-
plan: {
|
|
60824
|
-
type: "boolean",
|
|
60825
|
-
label: "Plan",
|
|
60826
|
-
category: "Experimental",
|
|
60827
|
-
requiresRestart: true,
|
|
60828
|
-
default: true,
|
|
60829
|
-
description: "Enable Plan Mode.",
|
|
60830
|
-
showInDialog: true
|
|
60831
|
-
},
|
|
60832
60823
|
taskTracker: {
|
|
60833
60824
|
type: "boolean",
|
|
60834
60825
|
label: "Task Tracker",
|
|
@@ -60923,6 +60914,15 @@ var SETTINGS_SCHEMA = {
|
|
|
60923
60914
|
description: "Replace the built-in save_memory tool with a memory manager subagent that supports adding, removing, de-duplicating, and organizing memories.",
|
|
60924
60915
|
showInDialog: true
|
|
60925
60916
|
},
|
|
60917
|
+
contextManagement: {
|
|
60918
|
+
type: "boolean",
|
|
60919
|
+
label: "Enable Context Management",
|
|
60920
|
+
category: "Experimental",
|
|
60921
|
+
requiresRestart: true,
|
|
60922
|
+
default: false,
|
|
60923
|
+
description: "Enable logic for context management.",
|
|
60924
|
+
showInDialog: true
|
|
60925
|
+
},
|
|
60926
60926
|
topicUpdateNarration: {
|
|
60927
60927
|
type: "boolean",
|
|
60928
60928
|
label: "Topic & Update Narration",
|
|
@@ -61178,6 +61178,159 @@ var SETTINGS_SCHEMA = {
|
|
|
61178
61178
|
mergeStrategy: "concat" /* CONCAT */
|
|
61179
61179
|
}
|
|
61180
61180
|
},
|
|
61181
|
+
contextManagement: {
|
|
61182
|
+
type: "object",
|
|
61183
|
+
label: "Context Management",
|
|
61184
|
+
category: "Experimental",
|
|
61185
|
+
requiresRestart: true,
|
|
61186
|
+
default: {},
|
|
61187
|
+
description: "Settings for agent history and tool distillation context management.",
|
|
61188
|
+
showInDialog: false,
|
|
61189
|
+
properties: {
|
|
61190
|
+
historyWindow: {
|
|
61191
|
+
type: "object",
|
|
61192
|
+
label: "History Window Settings",
|
|
61193
|
+
category: "Context Management",
|
|
61194
|
+
requiresRestart: true,
|
|
61195
|
+
default: {},
|
|
61196
|
+
showInDialog: false,
|
|
61197
|
+
properties: {
|
|
61198
|
+
maxTokens: {
|
|
61199
|
+
type: "number",
|
|
61200
|
+
label: "Max Tokens",
|
|
61201
|
+
category: "Context Management",
|
|
61202
|
+
requiresRestart: true,
|
|
61203
|
+
default: 15e4,
|
|
61204
|
+
description: "The number of tokens to allow before triggering compression.",
|
|
61205
|
+
showInDialog: false
|
|
61206
|
+
},
|
|
61207
|
+
retainedTokens: {
|
|
61208
|
+
type: "number",
|
|
61209
|
+
label: "Retained Tokens",
|
|
61210
|
+
category: "Context Management",
|
|
61211
|
+
requiresRestart: true,
|
|
61212
|
+
default: 4e4,
|
|
61213
|
+
description: "The number of tokens to always retain.",
|
|
61214
|
+
showInDialog: false
|
|
61215
|
+
}
|
|
61216
|
+
}
|
|
61217
|
+
},
|
|
61218
|
+
messageLimits: {
|
|
61219
|
+
type: "object",
|
|
61220
|
+
label: "Message Limits",
|
|
61221
|
+
category: "Context Management",
|
|
61222
|
+
requiresRestart: true,
|
|
61223
|
+
default: {},
|
|
61224
|
+
showInDialog: false,
|
|
61225
|
+
properties: {
|
|
61226
|
+
normalMaxTokens: {
|
|
61227
|
+
type: "number",
|
|
61228
|
+
label: "Normal Maximum Tokens",
|
|
61229
|
+
category: "Context Management",
|
|
61230
|
+
requiresRestart: true,
|
|
61231
|
+
default: 2500,
|
|
61232
|
+
description: "The target number of tokens to budget for a normal conversation turn.",
|
|
61233
|
+
showInDialog: false
|
|
61234
|
+
},
|
|
61235
|
+
retainedMaxTokens: {
|
|
61236
|
+
type: "number",
|
|
61237
|
+
label: "Retained Maximum Tokens",
|
|
61238
|
+
category: "Context Management",
|
|
61239
|
+
requiresRestart: true,
|
|
61240
|
+
default: 12e3,
|
|
61241
|
+
description: "The maximum number of tokens a single conversation turn can consume before truncation.",
|
|
61242
|
+
showInDialog: false
|
|
61243
|
+
},
|
|
61244
|
+
normalizationHeadRatio: {
|
|
61245
|
+
type: "number",
|
|
61246
|
+
label: "Normalization Head Ratio",
|
|
61247
|
+
category: "Context Management",
|
|
61248
|
+
requiresRestart: true,
|
|
61249
|
+
default: 0.25,
|
|
61250
|
+
description: "The ratio of tokens to retain from the beginning of a truncated message (0.0 to 1.0).",
|
|
61251
|
+
showInDialog: false
|
|
61252
|
+
}
|
|
61253
|
+
}
|
|
61254
|
+
},
|
|
61255
|
+
tools: {
|
|
61256
|
+
type: "object",
|
|
61257
|
+
label: "Context Management Tools",
|
|
61258
|
+
category: "Context Management",
|
|
61259
|
+
requiresRestart: true,
|
|
61260
|
+
default: {},
|
|
61261
|
+
showInDialog: false,
|
|
61262
|
+
properties: {
|
|
61263
|
+
distillation: {
|
|
61264
|
+
type: "object",
|
|
61265
|
+
label: "Tool Distillation",
|
|
61266
|
+
category: "Context Management",
|
|
61267
|
+
requiresRestart: true,
|
|
61268
|
+
default: {},
|
|
61269
|
+
showInDialog: false,
|
|
61270
|
+
properties: {
|
|
61271
|
+
maxOutputTokens: {
|
|
61272
|
+
type: "number",
|
|
61273
|
+
label: "Max Output Tokens",
|
|
61274
|
+
category: "Context Management",
|
|
61275
|
+
requiresRestart: true,
|
|
61276
|
+
default: 1e4,
|
|
61277
|
+
description: "Maximum tokens to show to the model when truncating large tool outputs.",
|
|
61278
|
+
showInDialog: false
|
|
61279
|
+
},
|
|
61280
|
+
summarizationThresholdTokens: {
|
|
61281
|
+
type: "number",
|
|
61282
|
+
label: "Tool Summarization Threshold",
|
|
61283
|
+
category: "Context Management",
|
|
61284
|
+
requiresRestart: true,
|
|
61285
|
+
default: 2e4,
|
|
61286
|
+
description: "Threshold above which truncated tool outputs will be summarized by an LLM.",
|
|
61287
|
+
showInDialog: false
|
|
61288
|
+
}
|
|
61289
|
+
}
|
|
61290
|
+
},
|
|
61291
|
+
outputMasking: {
|
|
61292
|
+
type: "object",
|
|
61293
|
+
label: "Tool Output Masking",
|
|
61294
|
+
category: "Context Management",
|
|
61295
|
+
requiresRestart: true,
|
|
61296
|
+
ignoreInDocs: false,
|
|
61297
|
+
default: {},
|
|
61298
|
+
description: "Advanced settings for tool output masking to manage context window efficiency.",
|
|
61299
|
+
showInDialog: false,
|
|
61300
|
+
properties: {
|
|
61301
|
+
protectionThresholdTokens: {
|
|
61302
|
+
type: "number",
|
|
61303
|
+
label: "Tool Protection Threshold (Tokens)",
|
|
61304
|
+
category: "Context Management",
|
|
61305
|
+
requiresRestart: true,
|
|
61306
|
+
default: 5e4,
|
|
61307
|
+
description: "Minimum number of tokens to protect from masking (most recent tool outputs).",
|
|
61308
|
+
showInDialog: false
|
|
61309
|
+
},
|
|
61310
|
+
minPrunableThresholdTokens: {
|
|
61311
|
+
type: "number",
|
|
61312
|
+
label: "Min Prunable Tokens Threshold",
|
|
61313
|
+
category: "Context Management",
|
|
61314
|
+
requiresRestart: true,
|
|
61315
|
+
default: 3e4,
|
|
61316
|
+
description: "Minimum prunable tokens required to trigger a masking pass.",
|
|
61317
|
+
showInDialog: false
|
|
61318
|
+
},
|
|
61319
|
+
protectLatestTurn: {
|
|
61320
|
+
type: "boolean",
|
|
61321
|
+
label: "Protect Latest Turn",
|
|
61322
|
+
category: "Context Management",
|
|
61323
|
+
requiresRestart: true,
|
|
61324
|
+
default: true,
|
|
61325
|
+
description: "Ensures the absolute latest turn is never masked, regardless of token count.",
|
|
61326
|
+
showInDialog: false
|
|
61327
|
+
}
|
|
61328
|
+
}
|
|
61329
|
+
}
|
|
61330
|
+
}
|
|
61331
|
+
}
|
|
61332
|
+
}
|
|
61333
|
+
},
|
|
61181
61334
|
admin: {
|
|
61182
61335
|
type: "object",
|
|
61183
61336
|
label: "Admin",
|
|
@@ -62931,7 +63084,7 @@ function migrateExperimentalSettings(settings, loadedSettings, scope, removeDepr
|
|
|
62931
63084
|
let modified = false;
|
|
62932
63085
|
const migrateExperimental = (oldKey, migrateFn) => {
|
|
62933
63086
|
const old = experimentalSettings[oldKey];
|
|
62934
|
-
if (old) {
|
|
63087
|
+
if (old !== void 0) {
|
|
62935
63088
|
foundDeprecated?.push(`experimental.${oldKey}`);
|
|
62936
63089
|
migrateFn(old);
|
|
62937
63090
|
modified = true;
|
|
@@ -62983,6 +63136,21 @@ function migrateExperimentalSettings(settings, loadedSettings, scope, removeDepr
|
|
|
62983
63136
|
if (old["enabled"] !== void 0) override["enabled"] = old["enabled"];
|
|
62984
63137
|
agentsOverrides["cli_help"] = override;
|
|
62985
63138
|
});
|
|
63139
|
+
migrateExperimental("plan", (planValue) => {
|
|
63140
|
+
const generalSettings = settings.general || {};
|
|
63141
|
+
const newGeneral = { ...generalSettings };
|
|
63142
|
+
const planSettings = (
|
|
63143
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
|
|
63144
|
+
newGeneral["plan"] || {}
|
|
63145
|
+
);
|
|
63146
|
+
const newPlan = { ...planSettings };
|
|
63147
|
+
if (newPlan["enabled"] === void 0) {
|
|
63148
|
+
newPlan["enabled"] = planValue;
|
|
63149
|
+
newGeneral["plan"] = newPlan;
|
|
63150
|
+
loadedSettings.setValue(scope, "general", newGeneral);
|
|
63151
|
+
modified = true;
|
|
63152
|
+
}
|
|
63153
|
+
});
|
|
62986
63154
|
if (modified) {
|
|
62987
63155
|
agentsSettings["overrides"] = agentsOverrides;
|
|
62988
63156
|
loadedSettings.setValue(scope, "agents", agentsSettings);
|
|
@@ -62990,6 +63158,7 @@ function migrateExperimentalSettings(settings, loadedSettings, scope, removeDepr
|
|
|
62990
63158
|
const newExperimental = { ...experimentalSettings };
|
|
62991
63159
|
delete newExperimental["codebaseInvestigatorSettings"];
|
|
62992
63160
|
delete newExperimental["cliHelpAgentSettings"];
|
|
63161
|
+
delete newExperimental["plan"];
|
|
62993
63162
|
loadedSettings.setValue(scope, "experimental", newExperimental);
|
|
62994
63163
|
}
|
|
62995
63164
|
return true;
|
|
@@ -63286,19 +63455,6 @@ var useFocus = () => {
|
|
|
63286
63455
|
};
|
|
63287
63456
|
};
|
|
63288
63457
|
|
|
63289
|
-
// packages/cli/src/utils/events.ts
|
|
63290
|
-
import { EventEmitter as EventEmitter3 } from "node:events";
|
|
63291
|
-
var AppEvent = /* @__PURE__ */ ((AppEvent2) => {
|
|
63292
|
-
AppEvent2["OpenDebugConsole"] = "open-debug-console";
|
|
63293
|
-
AppEvent2["Flicker"] = "flicker";
|
|
63294
|
-
AppEvent2["SelectionWarning"] = "selection-warning";
|
|
63295
|
-
AppEvent2["PasteTimeout"] = "paste-timeout";
|
|
63296
|
-
AppEvent2["TerminalBackground"] = "terminal-background";
|
|
63297
|
-
AppEvent2["TransientMessage"] = "transient-message";
|
|
63298
|
-
return AppEvent2;
|
|
63299
|
-
})(AppEvent || {});
|
|
63300
|
-
var appEvents = new EventEmitter3();
|
|
63301
|
-
|
|
63302
63458
|
// packages/cli/src/ui/utils/terminalCapabilityManager.ts
|
|
63303
63459
|
import * as fs11 from "node:fs";
|
|
63304
63460
|
|
|
@@ -63543,6 +63699,12 @@ var TerminalCapabilityManager = class _TerminalCapabilityManager {
|
|
|
63543
63699
|
isKittyProtocolEnabled() {
|
|
63544
63700
|
return this.kittyEnabled;
|
|
63545
63701
|
}
|
|
63702
|
+
isGhosttyTerminal(env3 = process.env) {
|
|
63703
|
+
const termProgram = env3["TERM_PROGRAM"]?.toLowerCase();
|
|
63704
|
+
const term = env3["TERM"]?.toLowerCase();
|
|
63705
|
+
const name = this.getTerminalName()?.toLowerCase();
|
|
63706
|
+
return !!(name?.includes("ghostty") || termProgram?.includes("ghostty") || term?.includes("ghostty"));
|
|
63707
|
+
}
|
|
63546
63708
|
supportsOsc9Notifications(env3 = process.env) {
|
|
63547
63709
|
if (env3["WT_SESSION"]) {
|
|
63548
63710
|
return false;
|
|
@@ -64256,6 +64418,7 @@ var Command = /* @__PURE__ */ ((Command2) => {
|
|
|
64256
64418
|
Command2["EXPAND_SUGGESTION"] = "suggest.expand";
|
|
64257
64419
|
Command2["COLLAPSE_SUGGESTION"] = "suggest.collapse";
|
|
64258
64420
|
Command2["SUBMIT"] = "input.submit";
|
|
64421
|
+
Command2["QUEUE_MESSAGE"] = "input.queueMessage";
|
|
64259
64422
|
Command2["NEWLINE"] = "input.newline";
|
|
64260
64423
|
Command2["OPEN_EXTERNAL_EDITOR"] = "input.openExternalEditor";
|
|
64261
64424
|
Command2["PASTE_CLIPBOARD"] = "input.paste";
|
|
@@ -64282,6 +64445,8 @@ var Command = /* @__PURE__ */ ((Command2) => {
|
|
|
64282
64445
|
Command2["UNFOCUS_BACKGROUND_SHELL"] = "background.unfocus";
|
|
64283
64446
|
Command2["UNFOCUS_BACKGROUND_SHELL_LIST"] = "background.unfocusList";
|
|
64284
64447
|
Command2["SHOW_BACKGROUND_SHELL_UNFOCUS_WARNING"] = "background.unfocusWarning";
|
|
64448
|
+
Command2["UPDATE_EXTENSION"] = "extension.update";
|
|
64449
|
+
Command2["LINK_EXTENSION"] = "extension.link";
|
|
64285
64450
|
return Command2;
|
|
64286
64451
|
})(Command || {});
|
|
64287
64452
|
var KeyBinding = class _KeyBinding {
|
|
@@ -64491,6 +64656,7 @@ var defaultKeyBindingConfig = /* @__PURE__ */ new Map([
|
|
|
64491
64656
|
// Text Input
|
|
64492
64657
|
// Must also exclude shift to allow shift+enter for newline
|
|
64493
64658
|
["input.submit" /* SUBMIT */, [new KeyBinding("enter")]],
|
|
64659
|
+
["input.queueMessage" /* QUEUE_MESSAGE */, [new KeyBinding("tab")]],
|
|
64494
64660
|
[
|
|
64495
64661
|
"input.newline" /* NEWLINE */,
|
|
64496
64662
|
[
|
|
@@ -64534,7 +64700,10 @@ var defaultKeyBindingConfig = /* @__PURE__ */ new Map([
|
|
|
64534
64700
|
["background.kill" /* KILL_BACKGROUND_SHELL */, [new KeyBinding("ctrl+k")]],
|
|
64535
64701
|
["background.unfocus" /* UNFOCUS_BACKGROUND_SHELL */, [new KeyBinding("shift+tab")]],
|
|
64536
64702
|
["background.unfocusList" /* UNFOCUS_BACKGROUND_SHELL_LIST */, [new KeyBinding("tab")]],
|
|
64537
|
-
["background.unfocusWarning" /* SHOW_BACKGROUND_SHELL_UNFOCUS_WARNING */, [new KeyBinding("tab")]]
|
|
64703
|
+
["background.unfocusWarning" /* SHOW_BACKGROUND_SHELL_UNFOCUS_WARNING */, [new KeyBinding("tab")]],
|
|
64704
|
+
// Extension Controls
|
|
64705
|
+
["extension.update" /* UPDATE_EXTENSION */, [new KeyBinding("i")]],
|
|
64706
|
+
["extension.link" /* LINK_EXTENSION */, [new KeyBinding("l")]]
|
|
64538
64707
|
]);
|
|
64539
64708
|
var keybindingsSchema = external_exports.array(
|
|
64540
64709
|
external_exports.object({
|
|
@@ -66656,6 +66825,152 @@ var XCode = new Theme(
|
|
|
66656
66825
|
xcodeColors
|
|
66657
66826
|
);
|
|
66658
66827
|
|
|
66828
|
+
// packages/cli/src/ui/themes/builtin/dark/tokyonight-dark.ts
|
|
66829
|
+
var palette = {
|
|
66830
|
+
bg: "#1a1b26",
|
|
66831
|
+
bg_dark: "#16161e",
|
|
66832
|
+
bg_dark1: "#0C0E14",
|
|
66833
|
+
bg_highlight: "#292e42",
|
|
66834
|
+
blue: "#7aa2f7",
|
|
66835
|
+
blue0: "#3d59a1",
|
|
66836
|
+
blue1: "#2ac3de",
|
|
66837
|
+
blue2: "#0db9d7",
|
|
66838
|
+
blue5: "#89ddff",
|
|
66839
|
+
blue6: "#b4f9f8",
|
|
66840
|
+
blue7: "#394b70",
|
|
66841
|
+
comment: "#565f89",
|
|
66842
|
+
cyan: "#7dcfff",
|
|
66843
|
+
fg: "#c0caf5",
|
|
66844
|
+
fg_dark: "#a9b1d6",
|
|
66845
|
+
fg_gutter: "#3b4261",
|
|
66846
|
+
green: "#9ece6a",
|
|
66847
|
+
green1: "#73daca",
|
|
66848
|
+
green2: "#41a6b5",
|
|
66849
|
+
magenta: "#bb9af7",
|
|
66850
|
+
magenta2: "#ff007c",
|
|
66851
|
+
orange: "#ff9e64",
|
|
66852
|
+
purple: "#9d7cd8",
|
|
66853
|
+
red: "#f7768e",
|
|
66854
|
+
red1: "#db4b4b",
|
|
66855
|
+
teal: "#1abc9c",
|
|
66856
|
+
yellow: "#e0af68",
|
|
66857
|
+
diff: {
|
|
66858
|
+
add: "#243e4a",
|
|
66859
|
+
change: "#1f2231",
|
|
66860
|
+
delete: "#4a272f"
|
|
66861
|
+
}
|
|
66862
|
+
};
|
|
66863
|
+
var tokyoNightColors = {
|
|
66864
|
+
type: "dark",
|
|
66865
|
+
Background: palette.bg,
|
|
66866
|
+
Foreground: palette.fg,
|
|
66867
|
+
LightBlue: palette.purple,
|
|
66868
|
+
AccentBlue: palette.magenta,
|
|
66869
|
+
AccentPurple: palette.blue,
|
|
66870
|
+
AccentCyan: palette.cyan,
|
|
66871
|
+
AccentGreen: palette.teal,
|
|
66872
|
+
AccentYellow: palette.yellow,
|
|
66873
|
+
AccentRed: palette.red1,
|
|
66874
|
+
DiffAdded: palette.diff.add,
|
|
66875
|
+
DiffRemoved: palette.diff.delete,
|
|
66876
|
+
Comment: palette.comment,
|
|
66877
|
+
Gray: palette.fg_dark,
|
|
66878
|
+
DarkGray: palette.fg_gutter,
|
|
66879
|
+
FocusColor: palette.blue,
|
|
66880
|
+
GradientColors: [palette.blue, palette.magenta, palette.cyan]
|
|
66881
|
+
};
|
|
66882
|
+
var TokyoNight = new Theme(
|
|
66883
|
+
"Tokyo Night",
|
|
66884
|
+
"dark",
|
|
66885
|
+
{
|
|
66886
|
+
hljs: {
|
|
66887
|
+
display: "block",
|
|
66888
|
+
overflowX: "auto",
|
|
66889
|
+
padding: "0.5em",
|
|
66890
|
+
background: palette.bg,
|
|
66891
|
+
color: palette.fg
|
|
66892
|
+
},
|
|
66893
|
+
"hljs-addition": { background: palette.diff.add },
|
|
66894
|
+
"hljs-attr": { color: palette.green1 },
|
|
66895
|
+
"hljs-attribute": { color: palette.green1 },
|
|
66896
|
+
"hljs-brace": { color: palette.fg_dark },
|
|
66897
|
+
"hljs-built_in": { color: palette.blue1 },
|
|
66898
|
+
"hljs-builtin-symbol": { color: palette.blue1 },
|
|
66899
|
+
"hljs-bullet": {
|
|
66900
|
+
color: palette.orange,
|
|
66901
|
+
fontWeight: "bold"
|
|
66902
|
+
},
|
|
66903
|
+
"hljs-char": { color: palette.green },
|
|
66904
|
+
"hljs-char-escape": { color: palette.magenta },
|
|
66905
|
+
"hljs-character": { color: palette.green },
|
|
66906
|
+
"hljs-class": { color: palette.blue1 },
|
|
66907
|
+
"hljs-class-title": { color: palette.blue1 },
|
|
66908
|
+
"hljs-code": { color: palette.green },
|
|
66909
|
+
"hljs-comment": {
|
|
66910
|
+
color: palette.comment,
|
|
66911
|
+
fontStyle: "italic"
|
|
66912
|
+
},
|
|
66913
|
+
"hljs-computation-expression": { color: palette.cyan },
|
|
66914
|
+
"hljs-deletion": { background: palette.diff.delete },
|
|
66915
|
+
"hljs-doctag": { color: palette.yellow },
|
|
66916
|
+
"hljs-emphasis": { fontStyle: "italic" },
|
|
66917
|
+
"hljs-function": { color: palette.blue },
|
|
66918
|
+
"hljs-function-dispatch": { color: palette.blue },
|
|
66919
|
+
"hljs-keyword": {
|
|
66920
|
+
color: palette.magenta,
|
|
66921
|
+
fontStyle: "italic"
|
|
66922
|
+
},
|
|
66923
|
+
"hljs-label": { color: palette.blue },
|
|
66924
|
+
"hljs-link": { color: palette.teal },
|
|
66925
|
+
"hljs-literal": { color: palette.orange },
|
|
66926
|
+
"hljs-message-name": { color: palette.blue },
|
|
66927
|
+
"hljs-meta": { color: palette.cyan },
|
|
66928
|
+
"hljs-meta-prompt": { color: palette.fg_dark },
|
|
66929
|
+
"hljs-name": { color: palette.magenta },
|
|
66930
|
+
"hljs-named-character": { color: palette.blue1 },
|
|
66931
|
+
"hljs-number": { color: palette.orange },
|
|
66932
|
+
"hljs-operator": { color: palette.blue5 },
|
|
66933
|
+
"hljs-params": { color: palette.yellow },
|
|
66934
|
+
"hljs-property": { color: palette.green1 },
|
|
66935
|
+
"hljs-punctuation": { color: palette.fg_dark },
|
|
66936
|
+
"hljs-quote": {
|
|
66937
|
+
color: palette.comment,
|
|
66938
|
+
fontStyle: "italic"
|
|
66939
|
+
},
|
|
66940
|
+
"hljs-regex": { color: palette.blue6 },
|
|
66941
|
+
"hljs-regexp": { color: palette.blue6 },
|
|
66942
|
+
"hljs-rest_arg": {
|
|
66943
|
+
color: interpolateColor(palette.yellow, palette.fg, 0.8)
|
|
66944
|
+
},
|
|
66945
|
+
"hljs-section": {
|
|
66946
|
+
color: palette.blue,
|
|
66947
|
+
fontWeight: "bold"
|
|
66948
|
+
},
|
|
66949
|
+
"hljs-selector-attr": { color: palette.cyan },
|
|
66950
|
+
"hljs-selector-class": { color: palette.green1 },
|
|
66951
|
+
"hljs-selector-id": { color: palette.green1 },
|
|
66952
|
+
"hljs-selector-pseudo": { color: palette.cyan },
|
|
66953
|
+
"hljs-selector-tag": { color: palette.magenta },
|
|
66954
|
+
"hljs-string": { color: palette.green },
|
|
66955
|
+
"hljs-strong": { fontWeight: "bold" },
|
|
66956
|
+
"hljs-subst": { color: palette.blue5 },
|
|
66957
|
+
"hljs-symbol": { color: palette.magenta },
|
|
66958
|
+
"hljs-tag": { color: palette.blue1 },
|
|
66959
|
+
"hljs-template-tag": { color: palette.blue5 },
|
|
66960
|
+
"hljs-template-variable": { color: palette.fg },
|
|
66961
|
+
"hljs-title": { color: palette.blue },
|
|
66962
|
+
"hljs-title-class": { color: palette.blue1 },
|
|
66963
|
+
"hljs-title-class-inherited": { color: palette.blue1 },
|
|
66964
|
+
"hljs-title-function": { color: palette.blue },
|
|
66965
|
+
"hljs-title-function-invoke": { color: palette.blue },
|
|
66966
|
+
"hljs-type": { color: palette.blue1 },
|
|
66967
|
+
"hljs-variable": { color: palette.fg },
|
|
66968
|
+
"hljs-variable-constant": { color: palette.orange },
|
|
66969
|
+
"hljs-variable-language": { color: palette.red }
|
|
66970
|
+
},
|
|
66971
|
+
tokyoNightColors
|
|
66972
|
+
);
|
|
66973
|
+
|
|
66659
66974
|
// packages/cli/src/ui/themes/theme-manager.ts
|
|
66660
66975
|
import * as fs13 from "node:fs";
|
|
66661
66976
|
import * as path6 from "node:path";
|
|
@@ -67155,6 +67470,7 @@ var ThemeManager = class {
|
|
|
67155
67470
|
SolarizedDark,
|
|
67156
67471
|
SolarizedLight,
|
|
67157
67472
|
XCode,
|
|
67473
|
+
TokyoNight,
|
|
67158
67474
|
ANSI,
|
|
67159
67475
|
ANSILight
|
|
67160
67476
|
];
|
|
@@ -68128,8 +68444,8 @@ function getInstallationInfo(projectRoot, isAutoUpdateEnabled) {
|
|
|
68128
68444
|
}
|
|
68129
68445
|
|
|
68130
68446
|
// packages/cli/src/utils/updateEventEmitter.ts
|
|
68131
|
-
import { EventEmitter as
|
|
68132
|
-
var updateEventEmitter = new
|
|
68447
|
+
import { EventEmitter as EventEmitter3 } from "node:events";
|
|
68448
|
+
var updateEventEmitter = new EventEmitter3();
|
|
68133
68449
|
|
|
68134
68450
|
// packages/cli/src/utils/spawnWrapper.ts
|
|
68135
68451
|
import { spawn } from "node:child_process";
|
|
@@ -68191,12 +68507,19 @@ Automatic update is not available in sandbox mode.`
|
|
|
68191
68507
|
combinedMessage += `
|
|
68192
68508
|
${installationInfo.updateMessage}`;
|
|
68193
68509
|
}
|
|
68194
|
-
updateEventEmitter.emit("update-received", {
|
|
68195
|
-
message: combinedMessage
|
|
68196
|
-
});
|
|
68197
68510
|
if (!installationInfo.updateCommand || !settings.merged.general.enableAutoUpdate) {
|
|
68511
|
+
updateEventEmitter.emit("update-received", {
|
|
68512
|
+
...info,
|
|
68513
|
+
message: combinedMessage,
|
|
68514
|
+
isUpdating: false
|
|
68515
|
+
});
|
|
68198
68516
|
return;
|
|
68199
68517
|
}
|
|
68518
|
+
updateEventEmitter.emit("update-received", {
|
|
68519
|
+
...info,
|
|
68520
|
+
message: combinedMessage,
|
|
68521
|
+
isUpdating: true
|
|
68522
|
+
});
|
|
68200
68523
|
if (_updateInProgress) {
|
|
68201
68524
|
return;
|
|
68202
68525
|
}
|
|
@@ -75480,7 +75803,7 @@ var incrementMaxListeners = (eventEmitter, maxListenersIncrement, signal) => {
|
|
|
75480
75803
|
};
|
|
75481
75804
|
|
|
75482
75805
|
// packages/cli/node_modules/execa/lib/ipc/forward.js
|
|
75483
|
-
import { EventEmitter as
|
|
75806
|
+
import { EventEmitter as EventEmitter4 } from "node:events";
|
|
75484
75807
|
|
|
75485
75808
|
// packages/cli/node_modules/execa/lib/ipc/incoming.js
|
|
75486
75809
|
import { once as once2 } from "node:events";
|
|
@@ -75562,7 +75885,7 @@ var getIpcEmitter = (anyProcess, channel, isSubprocess) => {
|
|
|
75562
75885
|
if (IPC_EMITTERS.has(anyProcess)) {
|
|
75563
75886
|
return IPC_EMITTERS.get(anyProcess);
|
|
75564
75887
|
}
|
|
75565
|
-
const ipcEmitter = new
|
|
75888
|
+
const ipcEmitter = new EventEmitter4();
|
|
75566
75889
|
ipcEmitter.connected = true;
|
|
75567
75890
|
IPC_EMITTERS.set(anyProcess, ipcEmitter);
|
|
75568
75891
|
forwardEvents({
|
|
@@ -80257,6 +80580,7 @@ var parseSlashCommand = (query, commands) => {
|
|
|
80257
80580
|
let commandToExecute;
|
|
80258
80581
|
let pathIndex = 0;
|
|
80259
80582
|
const canonicalPath = [];
|
|
80583
|
+
let parentCommand;
|
|
80260
80584
|
for (const part of commandPath) {
|
|
80261
80585
|
let foundCommand = currentCommands.find((cmd) => cmd.name === part);
|
|
80262
80586
|
if (!foundCommand) {
|
|
@@ -80265,6 +80589,7 @@ var parseSlashCommand = (query, commands) => {
|
|
|
80265
80589
|
);
|
|
80266
80590
|
}
|
|
80267
80591
|
if (foundCommand) {
|
|
80592
|
+
parentCommand = commandToExecute;
|
|
80268
80593
|
commandToExecute = foundCommand;
|
|
80269
80594
|
canonicalPath.push(foundCommand.name);
|
|
80270
80595
|
pathIndex++;
|
|
@@ -80278,6 +80603,13 @@ var parseSlashCommand = (query, commands) => {
|
|
|
80278
80603
|
}
|
|
80279
80604
|
}
|
|
80280
80605
|
const args = parts.slice(pathIndex).join(" ");
|
|
80606
|
+
if (commandToExecute && commandToExecute.takesArgs === false && args.length > 0 && parentCommand && parentCommand.action) {
|
|
80607
|
+
return {
|
|
80608
|
+
commandToExecute: parentCommand,
|
|
80609
|
+
args: parts.slice(pathIndex - 1).join(" "),
|
|
80610
|
+
canonicalPath: canonicalPath.slice(0, -1)
|
|
80611
|
+
};
|
|
80612
|
+
}
|
|
80281
80613
|
return { commandToExecute, args, canonicalPath };
|
|
80282
80614
|
};
|
|
80283
80615
|
|
|
@@ -85274,11 +85606,11 @@ var useSessionBrowser = (config, onLoadHistory) => {
|
|
|
85274
85606
|
* Deletes a session by ID using the ChatRecordingService.
|
|
85275
85607
|
*/
|
|
85276
85608
|
handleDeleteSession: (0, import_react41.useCallback)(
|
|
85277
|
-
(session) => {
|
|
85609
|
+
async (session) => {
|
|
85278
85610
|
try {
|
|
85279
85611
|
const chatRecordingService = config.getGeminiClient()?.getChatRecordingService();
|
|
85280
85612
|
if (chatRecordingService) {
|
|
85281
|
-
chatRecordingService.deleteSession(session.file);
|
|
85613
|
+
await chatRecordingService.deleteSession(session.file);
|
|
85282
85614
|
}
|
|
85283
85615
|
} catch (error) {
|
|
85284
85616
|
coreEvents.emitFeedback("error", "Error deleting session:", error);
|
|
@@ -87735,7 +88067,7 @@ var authCommand = {
|
|
|
87735
88067
|
import process34 from "node:process";
|
|
87736
88068
|
|
|
87737
88069
|
// packages/cli/src/generated/git-commit.ts
|
|
87738
|
-
var GIT_COMMIT_INFO = "
|
|
88070
|
+
var GIT_COMMIT_INFO = "c0f8f3cb7";
|
|
87739
88071
|
|
|
87740
88072
|
// packages/cli/src/ui/utils/historyExportUtils.ts
|
|
87741
88073
|
import * as fsPromises2 from "node:fs/promises";
|
|
@@ -87934,6 +88266,7 @@ var listCommand = {
|
|
|
87934
88266
|
description: "List saved manual conversation checkpoints",
|
|
87935
88267
|
kind: "built-in" /* BUILT_IN */,
|
|
87936
88268
|
autoExecute: true,
|
|
88269
|
+
takesArgs: false,
|
|
87937
88270
|
action: async (context) => {
|
|
87938
88271
|
const chatDetails = await getSavedChatTags(context, false);
|
|
87939
88272
|
const item = {
|
|
@@ -88220,10 +88553,18 @@ var chatCommand = {
|
|
|
88220
88553
|
description: "Browse auto-saved conversations and manage chat checkpoints",
|
|
88221
88554
|
kind: "built-in" /* BUILT_IN */,
|
|
88222
88555
|
autoExecute: true,
|
|
88223
|
-
action: async () =>
|
|
88224
|
-
|
|
88225
|
-
|
|
88226
|
-
|
|
88556
|
+
action: async (context, args) => {
|
|
88557
|
+
if (args) {
|
|
88558
|
+
const parsed = parseSlashCommand(`/${args}`, chatResumeSubCommands);
|
|
88559
|
+
if (parsed.commandToExecute?.action) {
|
|
88560
|
+
return parsed.commandToExecute.action(context, parsed.args);
|
|
88561
|
+
}
|
|
88562
|
+
}
|
|
88563
|
+
return {
|
|
88564
|
+
type: "dialog",
|
|
88565
|
+
dialog: "sessionBrowser"
|
|
88566
|
+
};
|
|
88567
|
+
},
|
|
88227
88568
|
subCommands: chatResumeSubCommands
|
|
88228
88569
|
};
|
|
88229
88570
|
|
|
@@ -88249,6 +88590,7 @@ var clearCommand = {
|
|
|
88249
88590
|
}
|
|
88250
88591
|
if (geminiClient) {
|
|
88251
88592
|
context.ui.setDebugMessage("Clearing terminal and resetting chat.");
|
|
88593
|
+
await resetBrowserSession();
|
|
88252
88594
|
await geminiClient.resetChat();
|
|
88253
88595
|
} else {
|
|
88254
88596
|
context.ui.setDebugMessage("Clearing terminal.");
|
|
@@ -89426,7 +89768,9 @@ function ExtensionDetails({
|
|
|
89426
89768
|
onBack,
|
|
89427
89769
|
onInstall,
|
|
89428
89770
|
onLink,
|
|
89429
|
-
isInstalled
|
|
89771
|
+
isInstalled,
|
|
89772
|
+
updateState,
|
|
89773
|
+
onUpdate
|
|
89430
89774
|
}) {
|
|
89431
89775
|
const keyMatchers = useKeyMatchers();
|
|
89432
89776
|
const [consentRequest, setConsentRequest] = (0, import_react55.useState)(null);
|
|
@@ -89461,7 +89805,7 @@ function ExtensionDetails({
|
|
|
89461
89805
|
);
|
|
89462
89806
|
return true;
|
|
89463
89807
|
}
|
|
89464
|
-
if (
|
|
89808
|
+
if (keyMatchers["extension.link" /* LINK_EXTENSION */](key) && isLinkable && !isInstalled && !isInstalling) {
|
|
89465
89809
|
setIsInstalling(true);
|
|
89466
89810
|
void onLink(
|
|
89467
89811
|
(prompt) => new Promise((resolve9) => {
|
|
@@ -89470,6 +89814,10 @@ function ExtensionDetails({
|
|
|
89470
89814
|
);
|
|
89471
89815
|
return true;
|
|
89472
89816
|
}
|
|
89817
|
+
if (keyMatchers["extension.update" /* UPDATE_EXTENSION */](key) && updateState === "update available" /* UPDATE_AVAILABLE */ && !isInstalling) {
|
|
89818
|
+
void onUpdate?.();
|
|
89819
|
+
return true;
|
|
89820
|
+
}
|
|
89473
89821
|
return false;
|
|
89474
89822
|
},
|
|
89475
89823
|
{ isActive: true, priority: true }
|
|
@@ -89533,7 +89881,9 @@ function ExtensionDetails({
|
|
|
89533
89881
|
">",
|
|
89534
89882
|
" "
|
|
89535
89883
|
] }),
|
|
89536
|
-
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Text, { color: theme.text.primary, bold: true, children: extension.extensionName })
|
|
89884
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Text, { color: theme.text.primary, bold: true, children: extension.extensionName }),
|
|
89885
|
+
updateState === "update available" /* UPDATE_AVAILABLE */ && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Box_default, { marginLeft: 1, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Text, { color: theme.status.warning, children: "[I] Update" }) }),
|
|
89886
|
+
updateState === "updating" /* UPDATING */ && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Box_default, { marginLeft: 1, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Text, { color: theme.text.secondary, children: "[Updating...]" }) })
|
|
89537
89887
|
] }),
|
|
89538
89888
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
89539
89889
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
@@ -89614,7 +89964,7 @@ function ExtensionDetails({
|
|
|
89614
89964
|
]
|
|
89615
89965
|
}
|
|
89616
89966
|
),
|
|
89617
|
-
isInstalled && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Box_default, { flexDirection: "row", marginTop: 1, justifyContent: "center", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Text, { color: theme.status.success, children: "Already Installed" }) })
|
|
89967
|
+
isInstalled && updateState !== "updating" /* UPDATING */ && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Box_default, { flexDirection: "row", marginTop: 1, justifyContent: "center", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Text, { color: theme.status.success, children: "Already Installed" }) })
|
|
89618
89968
|
]
|
|
89619
89969
|
}
|
|
89620
89970
|
);
|
|
@@ -89633,11 +89983,11 @@ function ExtensionRegistryView({
|
|
|
89633
89983
|
"",
|
|
89634
89984
|
config.getExtensionRegistryURI()
|
|
89635
89985
|
);
|
|
89636
|
-
const { terminalHeight, staticExtraHeight } = useUIState();
|
|
89986
|
+
const { terminalHeight, staticExtraHeight, historyManager } = useUIState();
|
|
89637
89987
|
const [selectedExtension, setSelectedExtension] = (0, import_react56.useState)(null);
|
|
89638
|
-
const { extensionsUpdateState } = useExtensionUpdates(
|
|
89988
|
+
const { extensionsUpdateState, dispatchExtensionStateUpdate } = useExtensionUpdates(
|
|
89639
89989
|
extensionManager,
|
|
89640
|
-
|
|
89990
|
+
historyManager.addItem,
|
|
89641
89991
|
config.getEnableExtensionReloading()
|
|
89642
89992
|
);
|
|
89643
89993
|
const [installedExtensions, setInstalledExtensions] = (0, import_react56.useState)(
|
|
@@ -89674,6 +90024,21 @@ function ExtensionRegistryView({
|
|
|
89674
90024
|
},
|
|
89675
90025
|
[onLink, extensionManager]
|
|
89676
90026
|
);
|
|
90027
|
+
const handleUpdate = (0, import_react56.useCallback)(
|
|
90028
|
+
async (extension) => {
|
|
90029
|
+
dispatchExtensionStateUpdate({
|
|
90030
|
+
type: "SCHEDULE_UPDATE",
|
|
90031
|
+
payload: {
|
|
90032
|
+
all: false,
|
|
90033
|
+
names: [extension.extensionName],
|
|
90034
|
+
onComplete: () => {
|
|
90035
|
+
setInstalledExtensions(extensionManager.getExtensions());
|
|
90036
|
+
}
|
|
90037
|
+
}
|
|
90038
|
+
});
|
|
90039
|
+
},
|
|
90040
|
+
[dispatchExtensionStateUpdate, extensionManager]
|
|
90041
|
+
);
|
|
89677
90042
|
const renderItem = (0, import_react56.useCallback)(
|
|
89678
90043
|
(item, isActive, _labelWidth) => {
|
|
89679
90044
|
const isInstalled = installedExtensions.some(
|
|
@@ -89682,7 +90047,6 @@ function ExtensionRegistryView({
|
|
|
89682
90047
|
const updateState = extensionsUpdateState.get(
|
|
89683
90048
|
item.extension.extensionName
|
|
89684
90049
|
);
|
|
89685
|
-
const hasUpdate = updateState === "update available" /* UPDATE_AVAILABLE */;
|
|
89686
90050
|
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(Box_default, { flexDirection: "row", width: "100%", justifyContent: "space-between", children: [
|
|
89687
90051
|
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(Box_default, { flexDirection: "row", flexShrink: 1, minWidth: 0, children: [
|
|
89688
90052
|
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Box_default, { width: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
@@ -89701,8 +90065,7 @@ function ExtensionRegistryView({
|
|
|
89701
90065
|
}
|
|
89702
90066
|
) }),
|
|
89703
90067
|
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Box_default, { flexShrink: 0, marginX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Text, { color: theme.text.secondary, children: "|" }) }),
|
|
89704
|
-
isInstalled && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Box_default, { marginRight: 1, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Text, { color: theme.status.success, children: "[Installed]" }) }),
|
|
89705
|
-
hasUpdate && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Box_default, { marginRight: 1, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Text, { color: theme.status.warning, children: "[Update available]" }) }),
|
|
90068
|
+
updateState === "update available" /* UPDATE_AVAILABLE */ ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Box_default, { marginRight: 1, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Text, { color: theme.status.warning, children: "[Update available]" }) }) : updateState === "updating" /* UPDATING */ ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Box_default, { marginRight: 1, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Text, { color: theme.text.secondary, children: "[Updating...]" }) }) : isInstalled && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Box_default, { marginRight: 1, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Text, { color: theme.status.success, children: "[Installed]" }) }),
|
|
89706
90069
|
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Box_default, { flexShrink: 1, minWidth: 0, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: item.description }) })
|
|
89707
90070
|
] }),
|
|
89708
90071
|
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(Box_default, { flexShrink: 0, marginLeft: 2, width: 8, flexDirection: "row", children: [
|
|
@@ -89802,7 +90165,13 @@ function ExtensionRegistryView({
|
|
|
89802
90165
|
},
|
|
89803
90166
|
isInstalled: installedExtensions.some(
|
|
89804
90167
|
(e) => e.name === selectedExtension.extensionName
|
|
89805
|
-
)
|
|
90168
|
+
),
|
|
90169
|
+
updateState: extensionsUpdateState.get(
|
|
90170
|
+
selectedExtension.extensionName
|
|
90171
|
+
),
|
|
90172
|
+
onUpdate: async () => {
|
|
90173
|
+
await handleUpdate(selectedExtension);
|
|
90174
|
+
}
|
|
89806
90175
|
}
|
|
89807
90176
|
)
|
|
89808
90177
|
] });
|
|
@@ -90417,6 +90786,7 @@ var listExtensionsCommand = {
|
|
|
90417
90786
|
description: "List active extensions",
|
|
90418
90787
|
kind: "built-in" /* BUILT_IN */,
|
|
90419
90788
|
autoExecute: true,
|
|
90789
|
+
takesArgs: false,
|
|
90420
90790
|
action: listAction2
|
|
90421
90791
|
};
|
|
90422
90792
|
var updateExtensionsCommand = {
|
|
@@ -90470,6 +90840,7 @@ var exploreExtensionsCommand = {
|
|
|
90470
90840
|
description: "Open extensions page in your browser",
|
|
90471
90841
|
kind: "built-in" /* BUILT_IN */,
|
|
90472
90842
|
autoExecute: true,
|
|
90843
|
+
takesArgs: false,
|
|
90473
90844
|
action: exploreAction
|
|
90474
90845
|
};
|
|
90475
90846
|
var reloadCommand = {
|
|
@@ -90497,26 +90868,35 @@ function extensionsCommand(enableExtensionReloading) {
|
|
|
90497
90868
|
linkCommand,
|
|
90498
90869
|
configCommand2
|
|
90499
90870
|
] : [];
|
|
90871
|
+
const subCommands = [
|
|
90872
|
+
listExtensionsCommand,
|
|
90873
|
+
updateExtensionsCommand,
|
|
90874
|
+
exploreExtensionsCommand,
|
|
90875
|
+
reloadCommand,
|
|
90876
|
+
...conditionalCommands
|
|
90877
|
+
];
|
|
90500
90878
|
return {
|
|
90501
90879
|
name: "extensions",
|
|
90502
90880
|
description: "Manage extensions",
|
|
90503
90881
|
kind: "built-in" /* BUILT_IN */,
|
|
90504
90882
|
autoExecute: false,
|
|
90505
|
-
subCommands
|
|
90506
|
-
|
|
90507
|
-
|
|
90508
|
-
|
|
90509
|
-
|
|
90510
|
-
|
|
90511
|
-
|
|
90512
|
-
|
|
90513
|
-
|
|
90514
|
-
|
|
90515
|
-
)
|
|
90883
|
+
subCommands,
|
|
90884
|
+
action: async (context, args) => {
|
|
90885
|
+
if (args) {
|
|
90886
|
+
const parsed = parseSlashCommand(`/${args}`, subCommands);
|
|
90887
|
+
if (parsed.commandToExecute?.action) {
|
|
90888
|
+
return parsed.commandToExecute.action(context, parsed.args);
|
|
90889
|
+
}
|
|
90890
|
+
}
|
|
90891
|
+
return listExtensionsCommand.action(context, args);
|
|
90892
|
+
}
|
|
90516
90893
|
};
|
|
90517
90894
|
}
|
|
90518
90895
|
|
|
90519
90896
|
// packages/cli/src/ui/components/FooterConfigDialog.tsx
|
|
90897
|
+
var import_react60 = __toESM(require_react(), 1);
|
|
90898
|
+
|
|
90899
|
+
// packages/cli/src/ui/components/Footer.tsx
|
|
90520
90900
|
var import_react59 = __toESM(require_react(), 1);
|
|
90521
90901
|
|
|
90522
90902
|
// packages/cli/src/ui/components/ConsoleSummaryDisplay.tsx
|
|
@@ -90546,12 +90926,13 @@ import process38 from "node:process";
|
|
|
90546
90926
|
var import_react58 = __toESM(require_react(), 1);
|
|
90547
90927
|
import process37 from "node:process";
|
|
90548
90928
|
var import_jsx_runtime18 = __toESM(require_jsx_runtime(), 1);
|
|
90549
|
-
var MemoryUsageDisplay = ({
|
|
90550
|
-
color = theme.text.primary
|
|
90551
|
-
}) => {
|
|
90929
|
+
var MemoryUsageDisplay = ({ color = theme.text.primary, isActive = true }) => {
|
|
90552
90930
|
const [memoryUsage, setMemoryUsage] = (0, import_react58.useState)("");
|
|
90553
90931
|
const [memoryUsageColor, setMemoryUsageColor] = (0, import_react58.useState)(color);
|
|
90554
90932
|
(0, import_react58.useEffect)(() => {
|
|
90933
|
+
if (!isActive) {
|
|
90934
|
+
return;
|
|
90935
|
+
}
|
|
90555
90936
|
const updateMemory = () => {
|
|
90556
90937
|
const usage = process37.memoryUsage().rss;
|
|
90557
90938
|
setMemoryUsage(formatBytes(usage));
|
|
@@ -90562,7 +90943,7 @@ var MemoryUsageDisplay = ({
|
|
|
90562
90943
|
const intervalId = setInterval(updateMemory, 2e3);
|
|
90563
90944
|
updateMemory();
|
|
90564
90945
|
return () => clearInterval(intervalId);
|
|
90565
|
-
}, [color]);
|
|
90946
|
+
}, [color, isActive]);
|
|
90566
90947
|
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Text, { color: memoryUsageColor, children: memoryUsage }) });
|
|
90567
90948
|
};
|
|
90568
90949
|
|
|
@@ -90712,6 +91093,11 @@ var ALL_ITEMS = [
|
|
|
90712
91093
|
header: "session",
|
|
90713
91094
|
description: "Unique identifier for the current session"
|
|
90714
91095
|
},
|
|
91096
|
+
{
|
|
91097
|
+
id: "auth",
|
|
91098
|
+
header: "/auth",
|
|
91099
|
+
description: "Current authentication info"
|
|
91100
|
+
},
|
|
90715
91101
|
{
|
|
90716
91102
|
id: "code-changes",
|
|
90717
91103
|
header: "diff",
|
|
@@ -90732,6 +91118,7 @@ var DEFAULT_ORDER = [
|
|
|
90732
91118
|
"quota",
|
|
90733
91119
|
"memory-usage",
|
|
90734
91120
|
"session-id",
|
|
91121
|
+
"auth",
|
|
90735
91122
|
"code-changes",
|
|
90736
91123
|
"token-count"
|
|
90737
91124
|
];
|
|
@@ -90765,8 +91152,12 @@ function deriveItemsFromLegacySettings(settings) {
|
|
|
90765
91152
|
}
|
|
90766
91153
|
var VALID_IDS = new Set(ALL_ITEMS.map((i) => i.id));
|
|
90767
91154
|
function resolveFooterState(settings) {
|
|
90768
|
-
const
|
|
90769
|
-
const
|
|
91155
|
+
const showUserIdentity = settings.ui?.showUserIdentity !== false;
|
|
91156
|
+
const filteredValidIds = showUserIdentity ? VALID_IDS : new Set([...VALID_IDS].filter((id) => id !== "auth"));
|
|
91157
|
+
const source = (settings.ui?.footer?.items ?? deriveItemsFromLegacySettings(settings)).filter((id) => filteredValidIds.has(id));
|
|
91158
|
+
const others = DEFAULT_ORDER.filter(
|
|
91159
|
+
(id) => !source.includes(id) && filteredValidIds.has(id)
|
|
91160
|
+
);
|
|
90770
91161
|
return {
|
|
90771
91162
|
orderedIds: [...source, ...others],
|
|
90772
91163
|
selectedIds: new Set(source)
|
|
@@ -90869,11 +91260,26 @@ var FooterRow = ({ items, showLabels }) => {
|
|
|
90869
91260
|
function isFooterItemId(id) {
|
|
90870
91261
|
return ALL_ITEMS.some((i) => i.id === id);
|
|
90871
91262
|
}
|
|
90872
|
-
var Footer = (
|
|
91263
|
+
var Footer = ({
|
|
91264
|
+
copyModeEnabled = false
|
|
91265
|
+
}) => {
|
|
90873
91266
|
const uiState = useUIState();
|
|
90874
91267
|
const config = useConfig();
|
|
90875
91268
|
const settings = useSettings();
|
|
90876
91269
|
const { vimEnabled, vimMode } = useVimMode();
|
|
91270
|
+
const authType = config.getContentGeneratorConfig()?.authType;
|
|
91271
|
+
const [email, setEmail] = (0, import_react59.useState)();
|
|
91272
|
+
(0, import_react59.useEffect)(() => {
|
|
91273
|
+
if (authType) {
|
|
91274
|
+
const userAccountManager = new UserAccountManager();
|
|
91275
|
+
setEmail(userAccountManager.getCachedGoogleAccount() ?? void 0);
|
|
91276
|
+
} else {
|
|
91277
|
+
setEmail(void 0);
|
|
91278
|
+
}
|
|
91279
|
+
}, [authType]);
|
|
91280
|
+
if (copyModeEnabled) {
|
|
91281
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { height: 1 });
|
|
91282
|
+
}
|
|
90877
91283
|
const {
|
|
90878
91284
|
model,
|
|
90879
91285
|
targetDir,
|
|
@@ -91031,7 +91437,18 @@ var Footer = () => {
|
|
|
91031
91437
|
break;
|
|
91032
91438
|
}
|
|
91033
91439
|
case "memory-usage": {
|
|
91034
|
-
addCol(
|
|
91440
|
+
addCol(
|
|
91441
|
+
id,
|
|
91442
|
+
header,
|
|
91443
|
+
() => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
91444
|
+
MemoryUsageDisplay,
|
|
91445
|
+
{
|
|
91446
|
+
color: itemColor,
|
|
91447
|
+
isActive: !uiState.copyModeEnabled
|
|
91448
|
+
}
|
|
91449
|
+
),
|
|
91450
|
+
10
|
|
91451
|
+
);
|
|
91035
91452
|
break;
|
|
91036
91453
|
}
|
|
91037
91454
|
case "session-id": {
|
|
@@ -91043,6 +91460,18 @@ var Footer = () => {
|
|
|
91043
91460
|
);
|
|
91044
91461
|
break;
|
|
91045
91462
|
}
|
|
91463
|
+
case "auth": {
|
|
91464
|
+
if (!settings.merged.ui.showUserIdentity) break;
|
|
91465
|
+
if (!authType) break;
|
|
91466
|
+
const displayStr = authType === AuthType.LOGIN_WITH_GOOGLE ? email ?? "google" : authType;
|
|
91467
|
+
addCol(
|
|
91468
|
+
id,
|
|
91469
|
+
header,
|
|
91470
|
+
() => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: itemColor, wrap: "truncate-end", children: displayStr }),
|
|
91471
|
+
displayStr.length
|
|
91472
|
+
);
|
|
91473
|
+
break;
|
|
91474
|
+
}
|
|
91046
91475
|
case "code-changes": {
|
|
91047
91476
|
const added = uiState.sessionStats.metrics.files.totalLinesAdded;
|
|
91048
91477
|
const removed = uiState.sessionStats.metrics.files.totalLinesRemoved;
|
|
@@ -91190,14 +91619,14 @@ var FooterConfigDialog = ({
|
|
|
91190
91619
|
const keyMatchers = useKeyMatchers();
|
|
91191
91620
|
const { settings, setSetting } = useSettingsStore();
|
|
91192
91621
|
const { constrainHeight, terminalHeight, staticExtraHeight } = useUIState();
|
|
91193
|
-
const [state, dispatch] = (0,
|
|
91622
|
+
const [state, dispatch] = (0, import_react60.useReducer)(
|
|
91194
91623
|
footerConfigReducer,
|
|
91195
91624
|
void 0,
|
|
91196
91625
|
() => resolveFooterState(settings.merged)
|
|
91197
91626
|
);
|
|
91198
91627
|
const { orderedIds, selectedIds } = state;
|
|
91199
|
-
const [focusKey, setFocusKey] = (0,
|
|
91200
|
-
const listItems = (0,
|
|
91628
|
+
const [focusKey, setFocusKey] = (0, import_react60.useState)(orderedIds[0]);
|
|
91629
|
+
const listItems = (0, import_react60.useMemo)(() => {
|
|
91201
91630
|
const items = orderedIds.map((id) => {
|
|
91202
91631
|
const item = ALL_ITEMS.find((i) => i.id === id);
|
|
91203
91632
|
if (!item) return null;
|
|
@@ -91232,7 +91661,7 @@ var FooterConfigDialog = ({
|
|
|
91232
91661
|
});
|
|
91233
91662
|
return items;
|
|
91234
91663
|
}, [orderedIds]);
|
|
91235
|
-
const handleSaveAndClose = (0,
|
|
91664
|
+
const handleSaveAndClose = (0, import_react60.useCallback)(() => {
|
|
91236
91665
|
const finalItems = orderedIds.filter((id) => selectedIds.has(id));
|
|
91237
91666
|
const currentSetting = settings.merged.ui?.footer?.items;
|
|
91238
91667
|
if (JSON.stringify(finalItems) !== JSON.stringify(currentSetting)) {
|
|
@@ -91246,17 +91675,17 @@ var FooterConfigDialog = ({
|
|
|
91246
91675
|
settings.merged.ui?.footer?.items,
|
|
91247
91676
|
onClose
|
|
91248
91677
|
]);
|
|
91249
|
-
const handleResetToDefaults = (0,
|
|
91678
|
+
const handleResetToDefaults = (0, import_react60.useCallback)(() => {
|
|
91250
91679
|
setSetting("User" /* User */, "ui.footer.items", void 0);
|
|
91251
91680
|
const newState = resolveFooterState(settings.merged);
|
|
91252
91681
|
dispatch({ type: "SET_STATE", payload: newState });
|
|
91253
91682
|
setFocusKey(newState.orderedIds[0]);
|
|
91254
91683
|
}, [setSetting, settings.merged]);
|
|
91255
|
-
const handleToggleLabels = (0,
|
|
91684
|
+
const handleToggleLabels = (0, import_react60.useCallback)(() => {
|
|
91256
91685
|
const current = settings.merged.ui.footer.showLabels !== false;
|
|
91257
91686
|
setSetting("User" /* User */, "ui.footer.showLabels", !current);
|
|
91258
91687
|
}, [setSetting, settings.merged.ui.footer.showLabels]);
|
|
91259
|
-
const handleSelect = (0,
|
|
91688
|
+
const handleSelect = (0, import_react60.useCallback)(
|
|
91260
91689
|
(item) => {
|
|
91261
91690
|
if (item.type === "config") {
|
|
91262
91691
|
dispatch({ type: "TOGGLE_ITEM", id: item.id });
|
|
@@ -91268,7 +91697,7 @@ var FooterConfigDialog = ({
|
|
|
91268
91697
|
},
|
|
91269
91698
|
[handleResetToDefaults, handleToggleLabels]
|
|
91270
91699
|
);
|
|
91271
|
-
const handleHighlight = (0,
|
|
91700
|
+
const handleHighlight = (0, import_react60.useCallback)((item) => {
|
|
91272
91701
|
setFocusKey(item.key);
|
|
91273
91702
|
}, []);
|
|
91274
91703
|
useKeypress(
|
|
@@ -91294,7 +91723,7 @@ var FooterConfigDialog = ({
|
|
|
91294
91723
|
{ isActive: true, priority: true }
|
|
91295
91724
|
);
|
|
91296
91725
|
const showLabels = settings.merged.ui.footer.showLabels !== false;
|
|
91297
|
-
const previewContent = (0,
|
|
91726
|
+
const previewContent = (0, import_react60.useMemo)(() => {
|
|
91298
91727
|
if (focusKey === "reset") {
|
|
91299
91728
|
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Text, { color: theme.ui.comment, italic: true, children: "Default footer (uses legacy settings)" });
|
|
91300
91729
|
}
|
|
@@ -91318,6 +91747,7 @@ var FooterConfigDialog = ({
|
|
|
91318
91747
|
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Text, { color: getColor("code-changes"), children: " " }),
|
|
91319
91748
|
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Text, { color: getColor("code-changes", theme.status.error), children: "-4" })
|
|
91320
91749
|
] }),
|
|
91750
|
+
auth: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Text, { color: getColor("auth", itemColor), children: "test@example.com" }),
|
|
91321
91751
|
"token-count": /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Text, { color: getColor("token-count", itemColor), children: "1.5k tokens" })
|
|
91322
91752
|
};
|
|
91323
91753
|
const rowItems = itemsToPreview.filter((id) => mockData[id]).map((id) => ({
|
|
@@ -91475,10 +91905,10 @@ var shortcutsCommand = {
|
|
|
91475
91905
|
};
|
|
91476
91906
|
|
|
91477
91907
|
// packages/cli/src/ui/components/RewindViewer.tsx
|
|
91478
|
-
var
|
|
91908
|
+
var import_react63 = __toESM(require_react(), 1);
|
|
91479
91909
|
|
|
91480
91910
|
// packages/cli/src/ui/hooks/useRewind.ts
|
|
91481
|
-
var
|
|
91911
|
+
var import_react61 = __toESM(require_react(), 1);
|
|
91482
91912
|
|
|
91483
91913
|
// packages/cli/src/ui/utils/rewindFileOps.ts
|
|
91484
91914
|
import fs38 from "node:fs/promises";
|
|
@@ -91631,15 +92061,15 @@ async function revertFileChanges(conversation, targetMessageId) {
|
|
|
91631
92061
|
|
|
91632
92062
|
// packages/cli/src/ui/hooks/useRewind.ts
|
|
91633
92063
|
function useRewind(conversation) {
|
|
91634
|
-
const [selectedMessageId, setSelectedMessageId] = (0,
|
|
92064
|
+
const [selectedMessageId, setSelectedMessageId] = (0, import_react61.useState)(
|
|
91635
92065
|
null
|
|
91636
92066
|
);
|
|
91637
|
-
const [confirmationStats, setConfirmationStats] = (0,
|
|
91638
|
-
const getStats = (0,
|
|
92067
|
+
const [confirmationStats, setConfirmationStats] = (0, import_react61.useState)(null);
|
|
92068
|
+
const getStats = (0, import_react61.useCallback)(
|
|
91639
92069
|
(userMessage) => calculateTurnStats(conversation, userMessage),
|
|
91640
92070
|
[conversation]
|
|
91641
92071
|
);
|
|
91642
|
-
const selectMessage = (0,
|
|
92072
|
+
const selectMessage = (0, import_react61.useCallback)(
|
|
91643
92073
|
(messageId) => {
|
|
91644
92074
|
const msg = conversation.messages.find((m2) => m2.id === messageId);
|
|
91645
92075
|
if (msg) {
|
|
@@ -91649,7 +92079,7 @@ function useRewind(conversation) {
|
|
|
91649
92079
|
},
|
|
91650
92080
|
[conversation]
|
|
91651
92081
|
);
|
|
91652
|
-
const clearSelection = (0,
|
|
92082
|
+
const clearSelection = (0, import_react61.useCallback)(() => {
|
|
91653
92083
|
setSelectedMessageId(null);
|
|
91654
92084
|
setConfirmationStats(null);
|
|
91655
92085
|
}, []);
|
|
@@ -91663,7 +92093,7 @@ function useRewind(conversation) {
|
|
|
91663
92093
|
}
|
|
91664
92094
|
|
|
91665
92095
|
// packages/cli/src/ui/components/RewindConfirmation.tsx
|
|
91666
|
-
var
|
|
92096
|
+
var import_react62 = __toESM(require_react(), 1);
|
|
91667
92097
|
var import_jsx_runtime24 = __toESM(require_jsx_runtime(), 1);
|
|
91668
92098
|
var REWIND_OPTIONS = [
|
|
91669
92099
|
{
|
|
@@ -91708,7 +92138,7 @@ var RewindConfirmation = ({
|
|
|
91708
92138
|
const handleSelect = (outcome) => {
|
|
91709
92139
|
onConfirm(outcome);
|
|
91710
92140
|
};
|
|
91711
|
-
const options = (0,
|
|
92141
|
+
const options = (0, import_react62.useMemo)(() => {
|
|
91712
92142
|
if (stats) {
|
|
91713
92143
|
return REWIND_OPTIONS;
|
|
91714
92144
|
}
|
|
@@ -91835,7 +92265,7 @@ var RewindViewer = ({
|
|
|
91835
92265
|
onRewind
|
|
91836
92266
|
}) => {
|
|
91837
92267
|
const keyMatchers = useKeyMatchers();
|
|
91838
|
-
const [isRewinding, setIsRewinding] = (0,
|
|
92268
|
+
const [isRewinding, setIsRewinding] = (0, import_react63.useState)(false);
|
|
91839
92269
|
const { terminalWidth, terminalHeight } = useUIState();
|
|
91840
92270
|
const isScreenReaderEnabled = use_is_screen_reader_enabled_default();
|
|
91841
92271
|
const {
|
|
@@ -91845,15 +92275,15 @@ var RewindViewer = ({
|
|
|
91845
92275
|
selectMessage,
|
|
91846
92276
|
clearSelection
|
|
91847
92277
|
} = useRewind(conversation);
|
|
91848
|
-
const [highlightedMessageId, setHighlightedMessageId] = (0,
|
|
91849
|
-
const [expandedMessageId, setExpandedMessageId] = (0,
|
|
92278
|
+
const [highlightedMessageId, setHighlightedMessageId] = (0, import_react63.useState)(null);
|
|
92279
|
+
const [expandedMessageId, setExpandedMessageId] = (0, import_react63.useState)(
|
|
91850
92280
|
null
|
|
91851
92281
|
);
|
|
91852
|
-
const interactions = (0,
|
|
92282
|
+
const interactions = (0, import_react63.useMemo)(
|
|
91853
92283
|
() => conversation.messages.filter((msg) => msg.type === "user"),
|
|
91854
92284
|
[conversation.messages]
|
|
91855
92285
|
);
|
|
91856
|
-
const items = (0,
|
|
92286
|
+
const items = (0, import_react63.useMemo)(() => {
|
|
91857
92287
|
const interactionItems = interactions.map((msg, idx) => ({
|
|
91858
92288
|
key: `${msg.id || "msg"}-${idx}`,
|
|
91859
92289
|
value: msg,
|
|
@@ -92209,7 +92639,7 @@ var rewindCommand = {
|
|
|
92209
92639
|
};
|
|
92210
92640
|
|
|
92211
92641
|
// packages/cli/src/ui/commands/hooksCommand.ts
|
|
92212
|
-
var
|
|
92642
|
+
var import_react65 = __toESM(require_react(), 1);
|
|
92213
92643
|
|
|
92214
92644
|
// packages/cli/src/utils/hookSettings.ts
|
|
92215
92645
|
function enableHook(settings, hookName) {
|
|
@@ -92347,7 +92777,7 @@ function renderHookActionFeedback(result, formatScope) {
|
|
|
92347
92777
|
}
|
|
92348
92778
|
|
|
92349
92779
|
// packages/cli/src/ui/components/HooksDialog.tsx
|
|
92350
|
-
var
|
|
92780
|
+
var import_react64 = __toESM(require_react(), 1);
|
|
92351
92781
|
var import_jsx_runtime27 = __toESM(require_jsx_runtime(), 1);
|
|
92352
92782
|
var DEFAULT_MAX_VISIBLE_HOOKS = 8;
|
|
92353
92783
|
var HooksDialog = ({
|
|
@@ -92356,8 +92786,8 @@ var HooksDialog = ({
|
|
|
92356
92786
|
maxVisibleHooks = DEFAULT_MAX_VISIBLE_HOOKS
|
|
92357
92787
|
}) => {
|
|
92358
92788
|
const keyMatchers = useKeyMatchers();
|
|
92359
|
-
const [scrollOffset, setScrollOffset] = (0,
|
|
92360
|
-
const flattenedHooks = (0,
|
|
92789
|
+
const [scrollOffset, setScrollOffset] = (0, import_react64.useState)(0);
|
|
92790
|
+
const flattenedHooks = (0, import_react64.useMemo)(() => {
|
|
92361
92791
|
const result = [];
|
|
92362
92792
|
const hooksByEvent = hooks.reduce(
|
|
92363
92793
|
(acc, hook) => {
|
|
@@ -92501,7 +92931,7 @@ function panelAction(context) {
|
|
|
92501
92931
|
const allHooks = hookSystem?.getAllHooks() || [];
|
|
92502
92932
|
return {
|
|
92503
92933
|
type: "custom_dialog",
|
|
92504
|
-
component: (0,
|
|
92934
|
+
component: (0, import_react65.createElement)(HooksDialog, {
|
|
92505
92935
|
hooks: allHooks,
|
|
92506
92936
|
onClose: () => context.ui.removeComponent()
|
|
92507
92937
|
})
|
|
@@ -93136,7 +93566,7 @@ Use /mcp auth <server-name> to authenticate.`
|
|
|
93136
93566
|
type: "info",
|
|
93137
93567
|
text: `Starting OAuth authentication for MCP server '${serverName}'...`
|
|
93138
93568
|
});
|
|
93139
|
-
const { MCPOAuthProvider } = await import("./dist-
|
|
93569
|
+
const { MCPOAuthProvider } = await import("./dist-YWCADMDD.js");
|
|
93140
93570
|
let oauthConfig = server.oauth;
|
|
93141
93571
|
if (!oauthConfig) {
|
|
93142
93572
|
oauthConfig = { enabled: false };
|
|
@@ -93186,7 +93616,7 @@ Use /mcp auth <server-name> to authenticate.`
|
|
|
93186
93616
|
);
|
|
93187
93617
|
}
|
|
93188
93618
|
};
|
|
93189
|
-
var listAction3 = async (context, showDescriptions = false, showSchema = false) => {
|
|
93619
|
+
var listAction3 = async (context, showDescriptions = false, showSchema = false, serverNameFilter) => {
|
|
93190
93620
|
const agentContext = context.services.agentContext;
|
|
93191
93621
|
const config = agentContext?.config;
|
|
93192
93622
|
if (!config) {
|
|
@@ -93205,9 +93635,19 @@ var listAction3 = async (context, showDescriptions = false, showSchema = false)
|
|
|
93205
93635
|
content: "Could not retrieve tool registry."
|
|
93206
93636
|
};
|
|
93207
93637
|
}
|
|
93208
|
-
|
|
93209
|
-
const serverNames = Object.keys(mcpServers);
|
|
93638
|
+
let mcpServers = config.getMcpClientManager()?.getMcpServers() || {};
|
|
93210
93639
|
const blockedMcpServers = config.getMcpClientManager()?.getBlockedMcpServers() || [];
|
|
93640
|
+
if (serverNameFilter) {
|
|
93641
|
+
const filter = serverNameFilter.trim().toLowerCase();
|
|
93642
|
+
if (filter) {
|
|
93643
|
+
mcpServers = Object.fromEntries(
|
|
93644
|
+
Object.entries(mcpServers).filter(
|
|
93645
|
+
([name]) => name.toLowerCase().includes(filter) || normalizeServerId(name).includes(filter)
|
|
93646
|
+
)
|
|
93647
|
+
);
|
|
93648
|
+
}
|
|
93649
|
+
}
|
|
93650
|
+
const serverNames = Object.keys(mcpServers);
|
|
93211
93651
|
const connectingServers = serverNames.filter(
|
|
93212
93652
|
(name) => getMCPServerStatus(name) === MCPServerStatus.CONNECTING
|
|
93213
93653
|
);
|
|
@@ -93293,7 +93733,7 @@ var listCommand2 = {
|
|
|
93293
93733
|
description: "List configured MCP servers and tools",
|
|
93294
93734
|
kind: "built-in" /* BUILT_IN */,
|
|
93295
93735
|
autoExecute: true,
|
|
93296
|
-
action: (context) => listAction3(context)
|
|
93736
|
+
action: (context, args) => listAction3(context, false, false, args)
|
|
93297
93737
|
};
|
|
93298
93738
|
var descCommand = {
|
|
93299
93739
|
name: "desc",
|
|
@@ -93301,14 +93741,14 @@ var descCommand = {
|
|
|
93301
93741
|
description: "List configured MCP servers and tools with descriptions",
|
|
93302
93742
|
kind: "built-in" /* BUILT_IN */,
|
|
93303
93743
|
autoExecute: true,
|
|
93304
|
-
action: (context) => listAction3(context, true)
|
|
93744
|
+
action: (context, args) => listAction3(context, true, false, args)
|
|
93305
93745
|
};
|
|
93306
93746
|
var schemaCommand = {
|
|
93307
93747
|
name: "schema",
|
|
93308
93748
|
description: "List configured MCP servers and tools with descriptions and schemas",
|
|
93309
93749
|
kind: "built-in" /* BUILT_IN */,
|
|
93310
93750
|
autoExecute: true,
|
|
93311
|
-
action: (context) => listAction3(context, true, true)
|
|
93751
|
+
action: (context, args) => listAction3(context, true, true, args)
|
|
93312
93752
|
};
|
|
93313
93753
|
var reloadCommand2 = {
|
|
93314
93754
|
name: "reload",
|
|
@@ -93316,6 +93756,7 @@ var reloadCommand2 = {
|
|
|
93316
93756
|
description: "Reloads MCP servers",
|
|
93317
93757
|
kind: "built-in" /* BUILT_IN */,
|
|
93318
93758
|
autoExecute: true,
|
|
93759
|
+
takesArgs: false,
|
|
93319
93760
|
action: async (context) => {
|
|
93320
93761
|
const agentContext = context.services.agentContext;
|
|
93321
93762
|
const config = agentContext?.config;
|
|
@@ -93476,7 +93917,16 @@ var mcpCommand = {
|
|
|
93476
93917
|
enableCommand4,
|
|
93477
93918
|
disableCommand4
|
|
93478
93919
|
],
|
|
93479
|
-
action: async (context) =>
|
|
93920
|
+
action: async (context, args) => {
|
|
93921
|
+
if (args) {
|
|
93922
|
+
const parsed = parseSlashCommand(`/${args}`, mcpCommand.subCommands);
|
|
93923
|
+
if (parsed.commandToExecute?.action) {
|
|
93924
|
+
return parsed.commandToExecute.action(context, parsed.args);
|
|
93925
|
+
}
|
|
93926
|
+
return listAction3(context, false, false, args);
|
|
93927
|
+
}
|
|
93928
|
+
return listAction3(context);
|
|
93929
|
+
}
|
|
93480
93930
|
};
|
|
93481
93931
|
|
|
93482
93932
|
// packages/cli/src/ui/commands/memoryCommand.ts
|
|
@@ -93636,7 +94086,7 @@ var modelCommand = {
|
|
|
93636
94086
|
};
|
|
93637
94087
|
|
|
93638
94088
|
// packages/cli/src/ui/components/triage/TriageDuplicates.tsx
|
|
93639
|
-
var
|
|
94089
|
+
var import_react66 = __toESM(require_react(), 1);
|
|
93640
94090
|
var import_jsx_runtime28 = __toESM(require_jsx_runtime(), 1);
|
|
93641
94091
|
var VISIBLE_LINES_COLLAPSED = 6;
|
|
93642
94092
|
var VISIBLE_LINES_EXPANDED = 20;
|
|
@@ -93662,7 +94112,7 @@ var TriageDuplicates = ({
|
|
|
93662
94112
|
initialLimit = 50
|
|
93663
94113
|
}) => {
|
|
93664
94114
|
const keyMatchers = useKeyMatchers();
|
|
93665
|
-
const [state, setState] = (0,
|
|
94115
|
+
const [state, setState] = (0, import_react66.useState)({
|
|
93666
94116
|
status: "loading",
|
|
93667
94117
|
issues: [],
|
|
93668
94118
|
currentIndex: 0,
|
|
@@ -93670,18 +94120,18 @@ var TriageDuplicates = ({
|
|
|
93670
94120
|
analyzingIds: /* @__PURE__ */ new Set(),
|
|
93671
94121
|
message: "Fetching issues..."
|
|
93672
94122
|
});
|
|
93673
|
-
const [focusSection, setFocusSection] = (0,
|
|
93674
|
-
const [selectedCandidateIndex, setSelectedCandidateIndex] = (0,
|
|
93675
|
-
const [targetExpanded, setTargetExpanded] = (0,
|
|
93676
|
-
const [targetScrollOffset, setTargetScrollOffset] = (0,
|
|
93677
|
-
const [candidateScrollOffset, setCandidateScrollOffset] = (0,
|
|
93678
|
-
const [inputAction, setInputAction] = (0,
|
|
93679
|
-
const [processedHistory, setProcessedHistory] = (0,
|
|
94123
|
+
const [focusSection, setFocusSection] = (0, import_react66.useState)("target");
|
|
94124
|
+
const [selectedCandidateIndex, setSelectedCandidateIndex] = (0, import_react66.useState)(0);
|
|
94125
|
+
const [targetExpanded, setTargetExpanded] = (0, import_react66.useState)(false);
|
|
94126
|
+
const [targetScrollOffset, setTargetScrollOffset] = (0, import_react66.useState)(0);
|
|
94127
|
+
const [candidateScrollOffset, setCandidateScrollOffset] = (0, import_react66.useState)(0);
|
|
94128
|
+
const [inputAction, setInputAction] = (0, import_react66.useState)("");
|
|
94129
|
+
const [processedHistory, setProcessedHistory] = (0, import_react66.useState)(
|
|
93680
94130
|
[]
|
|
93681
94131
|
);
|
|
93682
|
-
const [showHistory, setShowHistory] = (0,
|
|
93683
|
-
const [candidateListScrollOffset, setCandidateListScrollOffset] = (0,
|
|
93684
|
-
(0,
|
|
94132
|
+
const [showHistory, setShowHistory] = (0, import_react66.useState)(false);
|
|
94133
|
+
const [candidateListScrollOffset, setCandidateListScrollOffset] = (0, import_react66.useState)(0);
|
|
94134
|
+
(0, import_react66.useEffect)(() => {
|
|
93685
94135
|
if (selectedCandidateIndex < candidateListScrollOffset) {
|
|
93686
94136
|
setCandidateListScrollOffset(selectedCandidateIndex);
|
|
93687
94137
|
} else if (selectedCandidateIndex >= candidateListScrollOffset + VISIBLE_CANDIDATES) {
|
|
@@ -93708,7 +94158,7 @@ var TriageDuplicates = ({
|
|
|
93708
94158
|
return null;
|
|
93709
94159
|
}
|
|
93710
94160
|
};
|
|
93711
|
-
const analyzeIssue = (0,
|
|
94161
|
+
const analyzeIssue = (0, import_react66.useCallback)(
|
|
93712
94162
|
async (issue) => {
|
|
93713
94163
|
const dupComment = issue.comments.find(
|
|
93714
94164
|
(c) => c.body.includes("Found possible duplicate issues:")
|
|
@@ -93849,7 +94299,7 @@ Return a JSON object with:
|
|
|
93849
94299
|
},
|
|
93850
94300
|
[config]
|
|
93851
94301
|
);
|
|
93852
|
-
(0,
|
|
94302
|
+
(0, import_react66.useEffect)(() => {
|
|
93853
94303
|
if (state.issues.length === 0) return;
|
|
93854
94304
|
const analyzeNext = async () => {
|
|
93855
94305
|
const issuesToAnalyze = state.issues.slice(
|
|
@@ -93898,7 +94348,7 @@ Return a JSON object with:
|
|
|
93898
94348
|
state.analyzingIds,
|
|
93899
94349
|
analyzeIssue
|
|
93900
94350
|
]);
|
|
93901
|
-
(0,
|
|
94351
|
+
(0, import_react66.useEffect)(() => {
|
|
93902
94352
|
const issue = state.issues[state.currentIndex];
|
|
93903
94353
|
if (!issue) return;
|
|
93904
94354
|
const analysis = state.analysisCache.get(issue.number);
|
|
@@ -93934,7 +94384,7 @@ Return a JSON object with:
|
|
|
93934
94384
|
state.analysisCache,
|
|
93935
94385
|
state.analyzingIds
|
|
93936
94386
|
]);
|
|
93937
|
-
const fetchIssues = (0,
|
|
94387
|
+
const fetchIssues = (0, import_react66.useCallback)(async (limit) => {
|
|
93938
94388
|
try {
|
|
93939
94389
|
const { stdout } = await spawnAsync("gh", [
|
|
93940
94390
|
"issue",
|
|
@@ -93974,10 +94424,10 @@ Return a JSON object with:
|
|
|
93974
94424
|
}));
|
|
93975
94425
|
}
|
|
93976
94426
|
}, []);
|
|
93977
|
-
(0,
|
|
94427
|
+
(0, import_react66.useEffect)(() => {
|
|
93978
94428
|
void fetchIssues(initialLimit);
|
|
93979
94429
|
}, [fetchIssues, initialLimit]);
|
|
93980
|
-
const handleNext = (0,
|
|
94430
|
+
const handleNext = (0, import_react66.useCallback)(() => {
|
|
93981
94431
|
const nextIndex = state.currentIndex + 1;
|
|
93982
94432
|
if (nextIndex < state.issues.length) {
|
|
93983
94433
|
setFocusSection("target");
|
|
@@ -94485,7 +94935,7 @@ Return a JSON object with:
|
|
|
94485
94935
|
};
|
|
94486
94936
|
|
|
94487
94937
|
// packages/cli/src/ui/components/triage/TriageIssues.tsx
|
|
94488
|
-
var
|
|
94938
|
+
var import_react67 = __toESM(require_react(), 1);
|
|
94489
94939
|
var import_jsx_runtime29 = __toESM(require_jsx_runtime(), 1);
|
|
94490
94940
|
var VISIBLE_LINES_COLLAPSED2 = 8;
|
|
94491
94941
|
var VISIBLE_LINES_EXPANDED2 = 20;
|
|
@@ -94504,7 +94954,7 @@ var TriageIssues = ({
|
|
|
94504
94954
|
until
|
|
94505
94955
|
}) => {
|
|
94506
94956
|
const keyMatchers = useKeyMatchers();
|
|
94507
|
-
const [state, setState] = (0,
|
|
94957
|
+
const [state, setState] = (0, import_react67.useState)({
|
|
94508
94958
|
status: "loading",
|
|
94509
94959
|
issues: [],
|
|
94510
94960
|
currentIndex: 0,
|
|
@@ -94512,15 +94962,15 @@ var TriageIssues = ({
|
|
|
94512
94962
|
analyzingIds: /* @__PURE__ */ new Set(),
|
|
94513
94963
|
message: "Fetching issues..."
|
|
94514
94964
|
});
|
|
94515
|
-
const [targetExpanded, setTargetExpanded] = (0,
|
|
94516
|
-
const [targetScrollOffset, setTargetScrollOffset] = (0,
|
|
94517
|
-
const [isEditingComment, setIsEditingComment] = (0,
|
|
94518
|
-
const [processedHistory, setProcessedHistory] = (0,
|
|
94965
|
+
const [targetExpanded, setTargetExpanded] = (0, import_react67.useState)(false);
|
|
94966
|
+
const [targetScrollOffset, setTargetScrollOffset] = (0, import_react67.useState)(0);
|
|
94967
|
+
const [isEditingComment, setIsEditingComment] = (0, import_react67.useState)(false);
|
|
94968
|
+
const [processedHistory, setProcessedHistory] = (0, import_react67.useState)(
|
|
94519
94969
|
[]
|
|
94520
94970
|
);
|
|
94521
|
-
const [showHistory, setShowHistory] = (0,
|
|
94522
|
-
const abortControllerRef = (0,
|
|
94523
|
-
(0,
|
|
94971
|
+
const [showHistory, setShowHistory] = (0, import_react67.useState)(false);
|
|
94972
|
+
const abortControllerRef = (0, import_react67.useRef)(new AbortController());
|
|
94973
|
+
(0, import_react67.useEffect)(
|
|
94524
94974
|
() => () => {
|
|
94525
94975
|
abortControllerRef.current.abort();
|
|
94526
94976
|
},
|
|
@@ -94532,12 +94982,12 @@ var TriageIssues = ({
|
|
|
94532
94982
|
});
|
|
94533
94983
|
const currentIssue = state.issues[state.currentIndex];
|
|
94534
94984
|
const analysis = currentIssue ? state.analysisCache.get(currentIssue.number) : void 0;
|
|
94535
|
-
(0,
|
|
94985
|
+
(0, import_react67.useEffect)(() => {
|
|
94536
94986
|
if (analysis?.suggested_comment && !isEditingComment) {
|
|
94537
94987
|
commentBuffer.setText(analysis.suggested_comment);
|
|
94538
94988
|
}
|
|
94539
94989
|
}, [analysis, commentBuffer, isEditingComment]);
|
|
94540
|
-
const fetchIssues = (0,
|
|
94990
|
+
const fetchIssues = (0, import_react67.useCallback)(
|
|
94541
94991
|
async (limit) => {
|
|
94542
94992
|
try {
|
|
94543
94993
|
const searchParts = [
|
|
@@ -94585,10 +95035,10 @@ var TriageIssues = ({
|
|
|
94585
95035
|
},
|
|
94586
95036
|
[until]
|
|
94587
95037
|
);
|
|
94588
|
-
(0,
|
|
95038
|
+
(0, import_react67.useEffect)(() => {
|
|
94589
95039
|
void fetchIssues(initialLimit);
|
|
94590
95040
|
}, [fetchIssues, initialLimit]);
|
|
94591
|
-
const analyzeIssue = (0,
|
|
95041
|
+
const analyzeIssue = (0, import_react67.useCallback)(
|
|
94592
95042
|
async (issue) => {
|
|
94593
95043
|
const client = config.getBaseLlmClient();
|
|
94594
95044
|
const prompt = `
|
|
@@ -94647,7 +95097,7 @@ Return a JSON object with:
|
|
|
94647
95097
|
},
|
|
94648
95098
|
[config]
|
|
94649
95099
|
);
|
|
94650
|
-
(0,
|
|
95100
|
+
(0, import_react67.useEffect)(() => {
|
|
94651
95101
|
if (state.issues.length === 0) return;
|
|
94652
95102
|
const analyzeNext = async () => {
|
|
94653
95103
|
const issuesToAnalyze = state.issues.slice(
|
|
@@ -94694,7 +95144,7 @@ Return a JSON object with:
|
|
|
94694
95144
|
state.analyzingIds,
|
|
94695
95145
|
analyzeIssue
|
|
94696
95146
|
]);
|
|
94697
|
-
const handleNext = (0,
|
|
95147
|
+
const handleNext = (0, import_react67.useCallback)(() => {
|
|
94698
95148
|
const nextIndex = state.currentIndex + 1;
|
|
94699
95149
|
if (nextIndex < state.issues.length) {
|
|
94700
95150
|
setTargetExpanded(false);
|
|
@@ -94709,7 +95159,7 @@ Return a JSON object with:
|
|
|
94709
95159
|
}));
|
|
94710
95160
|
}
|
|
94711
95161
|
}, [state.currentIndex, state.issues.length]);
|
|
94712
|
-
(0,
|
|
95162
|
+
(0, import_react67.useEffect)(() => {
|
|
94713
95163
|
if (currentIssue && state.analysisCache.has(currentIssue.number)) {
|
|
94714
95164
|
const res = state.analysisCache.get(currentIssue.number);
|
|
94715
95165
|
if (res.recommendation === "keep") {
|
|
@@ -95219,6 +95669,12 @@ var planCommand = {
|
|
|
95219
95669
|
if (previousApprovalMode !== ApprovalMode.PLAN) {
|
|
95220
95670
|
coreEvents.emitFeedback("info", "Switched to Plan Mode.");
|
|
95221
95671
|
}
|
|
95672
|
+
if (context.invocation?.args) {
|
|
95673
|
+
return {
|
|
95674
|
+
type: "submit_prompt",
|
|
95675
|
+
content: context.invocation.args
|
|
95676
|
+
};
|
|
95677
|
+
}
|
|
95222
95678
|
const approvedPlanPath = config.getApprovedPlanPath();
|
|
95223
95679
|
if (!approvedPlanPath) {
|
|
95224
95680
|
return;
|
|
@@ -95235,12 +95691,14 @@ var planCommand = {
|
|
|
95235
95691
|
type: "gemini" /* GEMINI */,
|
|
95236
95692
|
text: partToString(content.llmContent)
|
|
95237
95693
|
});
|
|
95694
|
+
return;
|
|
95238
95695
|
} catch (error) {
|
|
95239
95696
|
coreEvents.emitFeedback(
|
|
95240
95697
|
"error",
|
|
95241
95698
|
`Failed to read approved plan at ${approvedPlanPath}: ${error}`,
|
|
95242
95699
|
error
|
|
95243
95700
|
);
|
|
95701
|
+
return;
|
|
95244
95702
|
}
|
|
95245
95703
|
},
|
|
95246
95704
|
subCommands: [
|
|
@@ -95249,6 +95707,7 @@ var planCommand = {
|
|
|
95249
95707
|
description: "Copy the currently approved plan to your clipboard",
|
|
95250
95708
|
kind: "built-in" /* BUILT_IN */,
|
|
95251
95709
|
autoExecute: true,
|
|
95710
|
+
takesArgs: false,
|
|
95252
95711
|
action: copyAction
|
|
95253
95712
|
}
|
|
95254
95713
|
]
|
|
@@ -96224,7 +96683,15 @@ var skillsCommand = {
|
|
|
96224
96683
|
action: reloadAction2
|
|
96225
96684
|
}
|
|
96226
96685
|
],
|
|
96227
|
-
action:
|
|
96686
|
+
action: async (context, args) => {
|
|
96687
|
+
if (args) {
|
|
96688
|
+
const parsed = parseSlashCommand(`/${args}`, skillsCommand.subCommands);
|
|
96689
|
+
if (parsed.commandToExecute?.action) {
|
|
96690
|
+
return parsed.commandToExecute.action(context, parsed.args);
|
|
96691
|
+
}
|
|
96692
|
+
}
|
|
96693
|
+
return listAction4(context, args);
|
|
96694
|
+
}
|
|
96228
96695
|
};
|
|
96229
96696
|
|
|
96230
96697
|
// packages/cli/src/ui/commands/settingsCommand.ts
|
|
@@ -96240,15 +96707,15 @@ var settingsCommand = {
|
|
|
96240
96707
|
})
|
|
96241
96708
|
};
|
|
96242
96709
|
|
|
96243
|
-
// packages/cli/src/ui/commands/
|
|
96244
|
-
var
|
|
96245
|
-
name: "
|
|
96246
|
-
altNames: ["
|
|
96710
|
+
// packages/cli/src/ui/commands/tasksCommand.ts
|
|
96711
|
+
var tasksCommand = {
|
|
96712
|
+
name: "tasks",
|
|
96713
|
+
altNames: ["bg", "background"],
|
|
96247
96714
|
kind: "built-in" /* BUILT_IN */,
|
|
96248
|
-
description: "Toggle background
|
|
96715
|
+
description: "Toggle background tasks view",
|
|
96249
96716
|
autoExecute: true,
|
|
96250
96717
|
action: async (context) => {
|
|
96251
|
-
context.ui.
|
|
96718
|
+
context.ui.toggleBackgroundTasks();
|
|
96252
96719
|
}
|
|
96253
96720
|
};
|
|
96254
96721
|
|
|
@@ -96772,7 +97239,7 @@ var BuiltinCommandLoader = class {
|
|
|
96772
97239
|
}
|
|
96773
97240
|
] : [skillsCommand] : [],
|
|
96774
97241
|
settingsCommand,
|
|
96775
|
-
|
|
97242
|
+
tasksCommand,
|
|
96776
97243
|
vimCommand,
|
|
96777
97244
|
setupGithubCommand,
|
|
96778
97245
|
terminalSetupCommand,
|
|
@@ -97533,6 +98000,10 @@ export {
|
|
|
97533
98000
|
ACTIVE_SHELL_MAX_LINES,
|
|
97534
98001
|
COMPLETED_SHELL_MAX_LINES,
|
|
97535
98002
|
SUBAGENT_MAX_LINES,
|
|
98003
|
+
SKILLS_DOCS_URL,
|
|
98004
|
+
COMPACT_TOOL_SUBVIEW_MAX_LINES,
|
|
98005
|
+
MAX_SHELL_OUTPUT_SIZE,
|
|
98006
|
+
SHELL_OUTPUT_TRUNCATION_BUFFER,
|
|
97536
98007
|
require_tinygradient,
|
|
97537
98008
|
INK_SUPPORTED_NAMES,
|
|
97538
98009
|
INK_NAME_TO_HEX_MAP,
|
|
@@ -97558,6 +98029,7 @@ export {
|
|
|
97558
98029
|
escapeAnsiCtrlCodes,
|
|
97559
98030
|
require_react,
|
|
97560
98031
|
mapCoreStatusToDisplayStatus,
|
|
98032
|
+
isTodoList,
|
|
97561
98033
|
RESUME_LATEST,
|
|
97562
98034
|
SessionError,
|
|
97563
98035
|
cleanMessage,
|
|
@@ -97663,7 +98135,6 @@ export {
|
|
|
97663
98135
|
parseMouseEvent,
|
|
97664
98136
|
isIncompleteMouseSequence,
|
|
97665
98137
|
useFocus,
|
|
97666
|
-
appEvents,
|
|
97667
98138
|
SettingsContext,
|
|
97668
98139
|
useSettings,
|
|
97669
98140
|
useSettingsStore,
|