@vybestack/llxprt-code 0.1.19-beta → 0.1.19

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.
Files changed (115) hide show
  1. package/README.md +49 -2
  2. package/dist/package.json +3 -3
  3. package/dist/src/auth/anthropic-oauth-provider.d.ts +33 -0
  4. package/dist/src/auth/anthropic-oauth-provider.js +129 -0
  5. package/dist/src/auth/anthropic-oauth-provider.js.map +1 -0
  6. package/dist/src/auth/gemini-oauth-provider.d.ts +15 -0
  7. package/dist/src/auth/gemini-oauth-provider.js +33 -0
  8. package/dist/src/auth/gemini-oauth-provider.js.map +1 -0
  9. package/dist/src/auth/oauth-manager.d.ts +110 -0
  10. package/dist/src/auth/oauth-manager.js +345 -0
  11. package/dist/src/auth/oauth-manager.js.map +1 -0
  12. package/dist/src/auth/oauth-manager.spec.d.ts +6 -0
  13. package/dist/src/auth/oauth-manager.spec.js +523 -0
  14. package/dist/src/auth/oauth-manager.spec.js.map +1 -0
  15. package/dist/src/auth/qwen-oauth-provider.d.ts +14 -0
  16. package/dist/src/auth/qwen-oauth-provider.js +75 -0
  17. package/dist/src/auth/qwen-oauth-provider.js.map +1 -0
  18. package/dist/src/auth/types.d.ts +7 -0
  19. package/dist/src/auth/types.js +7 -0
  20. package/dist/src/auth/types.js.map +1 -0
  21. package/dist/src/config/auth.js +6 -0
  22. package/dist/src/config/auth.js.map +1 -1
  23. package/dist/src/config/config.js +32 -15
  24. package/dist/src/config/config.js.map +1 -1
  25. package/dist/src/config/keyBindings.d.ts +2 -0
  26. package/dist/src/config/keyBindings.js +7 -8
  27. package/dist/src/config/keyBindings.js.map +1 -1
  28. package/dist/src/config/settings.d.ts +3 -62
  29. package/dist/src/config/settings.js.map +1 -1
  30. package/dist/src/config/settingsSchema.d.ts +587 -0
  31. package/dist/src/config/settingsSchema.js +565 -0
  32. package/dist/src/config/settingsSchema.js.map +1 -0
  33. package/dist/src/gemini.js +23 -5
  34. package/dist/src/gemini.js.map +1 -1
  35. package/dist/src/generated/git-commit.d.ts +1 -1
  36. package/dist/src/generated/git-commit.js +1 -1
  37. package/dist/src/providers/providerManagerInstance.d.ts +2 -0
  38. package/dist/src/providers/providerManagerInstance.js +45 -5
  39. package/dist/src/providers/providerManagerInstance.js.map +1 -1
  40. package/dist/src/services/BuiltinCommandLoader.js +2 -0
  41. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  42. package/dist/src/ui/App.js +108 -17
  43. package/dist/src/ui/App.js.map +1 -1
  44. package/dist/src/ui/IdeIntegrationNudge.d.ts +7 -4
  45. package/dist/src/ui/IdeIntegrationNudge.js +26 -6
  46. package/dist/src/ui/IdeIntegrationNudge.js.map +1 -1
  47. package/dist/src/ui/commands/authCommand.d.ts +11 -1
  48. package/dist/src/ui/commands/authCommand.js +153 -48
  49. package/dist/src/ui/commands/authCommand.js.map +1 -1
  50. package/dist/src/ui/commands/diagnosticsCommand.js +94 -10
  51. package/dist/src/ui/commands/diagnosticsCommand.js.map +1 -1
  52. package/dist/src/ui/commands/ideCommand.js +7 -4
  53. package/dist/src/ui/commands/ideCommand.js.map +1 -1
  54. package/dist/src/ui/commands/keyCommand.js +32 -2
  55. package/dist/src/ui/commands/keyCommand.js.map +1 -1
  56. package/dist/src/ui/commands/keyfileCommand.js +15 -12
  57. package/dist/src/ui/commands/keyfileCommand.js.map +1 -1
  58. package/dist/src/ui/commands/modelCommand.js +21 -3
  59. package/dist/src/ui/commands/modelCommand.js.map +1 -1
  60. package/dist/src/ui/commands/providerCommand.js +52 -14
  61. package/dist/src/ui/commands/providerCommand.js.map +1 -1
  62. package/dist/src/ui/commands/setCommand.js +17 -1
  63. package/dist/src/ui/commands/setCommand.js.map +1 -1
  64. package/dist/src/ui/commands/settingsCommand.d.ts +7 -0
  65. package/dist/src/ui/commands/settingsCommand.js +16 -0
  66. package/dist/src/ui/commands/settingsCommand.js.map +1 -0
  67. package/dist/src/ui/commands/toolformatCommand.js +79 -23
  68. package/dist/src/ui/commands/toolformatCommand.js.map +1 -1
  69. package/dist/src/ui/commands/types.d.ts +1 -1
  70. package/dist/src/ui/commands/types.js.map +1 -1
  71. package/dist/src/ui/components/AuthDialog.js +55 -62
  72. package/dist/src/ui/components/AuthDialog.js.map +1 -1
  73. package/dist/src/ui/components/Footer.d.ts +1 -0
  74. package/dist/src/ui/components/Footer.js +2 -2
  75. package/dist/src/ui/components/Footer.js.map +1 -1
  76. package/dist/src/ui/components/InputPrompt.d.ts +1 -0
  77. package/dist/src/ui/components/InputPrompt.js +59 -7
  78. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  79. package/dist/src/ui/components/OAuthCodeDialog.d.ts +13 -0
  80. package/dist/src/ui/components/OAuthCodeDialog.js +52 -0
  81. package/dist/src/ui/components/OAuthCodeDialog.js.map +1 -0
  82. package/dist/src/ui/components/SettingsDialog.d.ts +14 -0
  83. package/dist/src/ui/components/SettingsDialog.js +247 -0
  84. package/dist/src/ui/components/SettingsDialog.js.map +1 -0
  85. package/dist/src/ui/components/ThemeDialog.js +4 -15
  86. package/dist/src/ui/components/ThemeDialog.js.map +1 -1
  87. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +2 -2
  88. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  89. package/dist/src/ui/components/shared/text-buffer.d.ts +17 -4
  90. package/dist/src/ui/components/shared/text-buffer.js +224 -70
  91. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  92. package/dist/src/ui/components/shared/vim-buffer-actions.js +137 -151
  93. package/dist/src/ui/components/shared/vim-buffer-actions.js.map +1 -1
  94. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +1 -1
  95. package/dist/src/ui/hooks/slashCommandProcessor.js +5 -1
  96. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  97. package/dist/src/ui/hooks/useAuthCommand.js +14 -20
  98. package/dist/src/ui/hooks/useAuthCommand.js.map +1 -1
  99. package/dist/src/ui/hooks/useGeminiStream.d.ts +2 -1
  100. package/dist/src/ui/hooks/useGeminiStream.js +67 -25
  101. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  102. package/dist/src/ui/hooks/useSettingsCommand.d.ts +10 -0
  103. package/dist/src/ui/hooks/useSettingsCommand.js +21 -0
  104. package/dist/src/ui/hooks/useSettingsCommand.js.map +1 -0
  105. package/dist/src/ui/reducers/appReducer.d.ts +3 -2
  106. package/dist/src/ui/reducers/appReducer.js +1 -0
  107. package/dist/src/ui/reducers/appReducer.js.map +1 -1
  108. package/dist/src/utils/dialogScopeUtils.d.ts +31 -0
  109. package/dist/src/utils/dialogScopeUtils.js +48 -0
  110. package/dist/src/utils/dialogScopeUtils.js.map +1 -0
  111. package/dist/src/utils/settingsUtils.d.ts +126 -0
  112. package/dist/src/utils/settingsUtils.js +327 -0
  113. package/dist/src/utils/settingsUtils.js.map +1 -0
  114. package/dist/tsconfig.tsbuildinfo +1 -1
  115. package/package.json +3 -3
@@ -0,0 +1,587 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { MCPServerConfig, BugCommandSettings, TelemetrySettings, AuthType, ChatCompressionSettings } from '@vybestack/llxprt-code-core';
7
+ import { CustomTheme } from '../ui/themes/theme.js';
8
+ export interface SettingDefinition {
9
+ type: 'boolean' | 'string' | 'number' | 'array' | 'object';
10
+ label: string;
11
+ category: string;
12
+ requiresRestart: boolean;
13
+ default: boolean | string | number | string[] | object | undefined;
14
+ description?: string;
15
+ parentKey?: string;
16
+ childKey?: string;
17
+ key?: string;
18
+ properties?: SettingsSchema;
19
+ showInDialog?: boolean;
20
+ }
21
+ export interface SettingsSchema {
22
+ [key: string]: SettingDefinition;
23
+ }
24
+ export type MemoryImportFormat = 'tree' | 'flat';
25
+ export type DnsResolutionOrder = 'ipv4first' | 'verbatim';
26
+ /**
27
+ * The canonical schema for all settings.
28
+ * The structure of this object defines the structure of the `Settings` type.
29
+ * `as const` is crucial for TypeScript to infer the most specific types possible.
30
+ */
31
+ export declare const SETTINGS_SCHEMA: {
32
+ readonly theme: {
33
+ readonly type: "string";
34
+ readonly label: "Theme";
35
+ readonly category: "UI";
36
+ readonly requiresRestart: false;
37
+ readonly default: string | undefined;
38
+ readonly description: "The color theme for the UI.";
39
+ readonly showInDialog: false;
40
+ };
41
+ readonly customThemes: {
42
+ readonly type: "object";
43
+ readonly label: "Custom Themes";
44
+ readonly category: "UI";
45
+ readonly requiresRestart: false;
46
+ readonly default: Record<string, CustomTheme>;
47
+ readonly description: "Custom theme definitions.";
48
+ readonly showInDialog: false;
49
+ };
50
+ readonly hideWindowTitle: {
51
+ readonly type: "boolean";
52
+ readonly label: "Hide Window Title";
53
+ readonly category: "UI";
54
+ readonly requiresRestart: true;
55
+ readonly default: false;
56
+ readonly description: "Hide the window title bar";
57
+ readonly showInDialog: true;
58
+ };
59
+ readonly hideTips: {
60
+ readonly type: "boolean";
61
+ readonly label: "Hide Tips";
62
+ readonly category: "UI";
63
+ readonly requiresRestart: false;
64
+ readonly default: false;
65
+ readonly description: "Hide helpful tips in the UI";
66
+ readonly showInDialog: true;
67
+ };
68
+ readonly hideBanner: {
69
+ readonly type: "boolean";
70
+ readonly label: "Hide Banner";
71
+ readonly category: "UI";
72
+ readonly requiresRestart: false;
73
+ readonly default: false;
74
+ readonly description: "Hide the application banner";
75
+ readonly showInDialog: true;
76
+ };
77
+ readonly showMemoryUsage: {
78
+ readonly type: "boolean";
79
+ readonly label: "Show Memory Usage";
80
+ readonly category: "UI";
81
+ readonly requiresRestart: false;
82
+ readonly default: false;
83
+ readonly description: "Display memory usage information in the UI";
84
+ readonly showInDialog: true;
85
+ };
86
+ readonly usageStatisticsEnabled: {
87
+ readonly type: "boolean";
88
+ readonly label: "Enable Usage Statistics";
89
+ readonly category: "General";
90
+ readonly requiresRestart: true;
91
+ readonly default: true;
92
+ readonly description: "Enable collection of usage statistics";
93
+ readonly showInDialog: true;
94
+ };
95
+ readonly autoConfigureMaxOldSpaceSize: {
96
+ readonly type: "boolean";
97
+ readonly label: "Auto Configure Max Old Space Size";
98
+ readonly category: "General";
99
+ readonly requiresRestart: true;
100
+ readonly default: false;
101
+ readonly description: "Automatically configure Node.js memory limits";
102
+ readonly showInDialog: true;
103
+ };
104
+ readonly preferredEditor: {
105
+ readonly type: "string";
106
+ readonly label: "Preferred Editor";
107
+ readonly category: "General";
108
+ readonly requiresRestart: false;
109
+ readonly default: string | undefined;
110
+ readonly description: "The preferred editor to open files in.";
111
+ readonly showInDialog: false;
112
+ };
113
+ readonly maxSessionTurns: {
114
+ readonly type: "number";
115
+ readonly label: "Max Session Turns";
116
+ readonly category: "General";
117
+ readonly requiresRestart: false;
118
+ readonly default: number | undefined;
119
+ readonly description: "Maximum number of user/model/tool turns to keep in a session.";
120
+ readonly showInDialog: false;
121
+ };
122
+ readonly memoryImportFormat: {
123
+ readonly type: "string";
124
+ readonly label: "Memory Import Format";
125
+ readonly category: "General";
126
+ readonly requiresRestart: false;
127
+ readonly default: MemoryImportFormat | undefined;
128
+ readonly description: "The format to use when importing memory.";
129
+ readonly showInDialog: false;
130
+ };
131
+ readonly memoryDiscoveryMaxDirs: {
132
+ readonly type: "number";
133
+ readonly label: "Memory Discovery Max Dirs";
134
+ readonly category: "General";
135
+ readonly requiresRestart: false;
136
+ readonly default: number | undefined;
137
+ readonly description: "Maximum number of directories to search for memory.";
138
+ readonly showInDialog: false;
139
+ };
140
+ readonly contextFileName: {
141
+ readonly type: "object";
142
+ readonly label: "Context File Name";
143
+ readonly category: "General";
144
+ readonly requiresRestart: false;
145
+ readonly default: string | string[] | undefined;
146
+ readonly description: "The name of the context file.";
147
+ readonly showInDialog: false;
148
+ };
149
+ readonly vimMode: {
150
+ readonly type: "boolean";
151
+ readonly label: "Vim Mode";
152
+ readonly category: "Mode";
153
+ readonly requiresRestart: false;
154
+ readonly default: false;
155
+ readonly description: "Enable Vim keybindings";
156
+ readonly showInDialog: true;
157
+ };
158
+ readonly ideMode: {
159
+ readonly type: "boolean";
160
+ readonly label: "IDE Mode";
161
+ readonly category: "Mode";
162
+ readonly requiresRestart: true;
163
+ readonly default: false;
164
+ readonly description: "Enable IDE integration mode";
165
+ readonly showInDialog: true;
166
+ };
167
+ readonly accessibility: {
168
+ readonly type: "object";
169
+ readonly label: "Accessibility";
170
+ readonly category: "Accessibility";
171
+ readonly requiresRestart: true;
172
+ readonly default: {};
173
+ readonly description: "Accessibility settings.";
174
+ readonly showInDialog: false;
175
+ readonly properties: {
176
+ readonly disableLoadingPhrases: {
177
+ readonly type: "boolean";
178
+ readonly label: "Disable Loading Phrases";
179
+ readonly category: "Accessibility";
180
+ readonly requiresRestart: true;
181
+ readonly default: false;
182
+ readonly description: "Disable loading phrases for accessibility";
183
+ readonly showInDialog: true;
184
+ };
185
+ };
186
+ };
187
+ readonly checkpointing: {
188
+ readonly type: "object";
189
+ readonly label: "Checkpointing";
190
+ readonly category: "Checkpointing";
191
+ readonly requiresRestart: true;
192
+ readonly default: {};
193
+ readonly description: "Session checkpointing settings.";
194
+ readonly showInDialog: false;
195
+ readonly properties: {
196
+ readonly enabled: {
197
+ readonly type: "boolean";
198
+ readonly label: "Enable Checkpointing";
199
+ readonly category: "Checkpointing";
200
+ readonly requiresRestart: true;
201
+ readonly default: false;
202
+ readonly description: "Enable session checkpointing for recovery";
203
+ readonly showInDialog: false;
204
+ };
205
+ };
206
+ };
207
+ readonly fileFiltering: {
208
+ readonly type: "object";
209
+ readonly label: "File Filtering";
210
+ readonly category: "File Filtering";
211
+ readonly requiresRestart: true;
212
+ readonly default: {};
213
+ readonly description: "Settings for git-aware file filtering.";
214
+ readonly showInDialog: false;
215
+ readonly properties: {
216
+ readonly respectGitIgnore: {
217
+ readonly type: "boolean";
218
+ readonly label: "Respect .gitignore";
219
+ readonly category: "File Filtering";
220
+ readonly requiresRestart: true;
221
+ readonly default: true;
222
+ readonly description: "Respect .gitignore files when searching";
223
+ readonly showInDialog: true;
224
+ };
225
+ readonly respectLlxprtIgnore: {
226
+ readonly type: "boolean";
227
+ readonly label: "Respect .llxprtignore";
228
+ readonly category: "File Filtering";
229
+ readonly requiresRestart: true;
230
+ readonly default: true;
231
+ readonly description: "Respect .llxprtignore files when searching";
232
+ readonly showInDialog: true;
233
+ };
234
+ readonly enableRecursiveFileSearch: {
235
+ readonly type: "boolean";
236
+ readonly label: "Enable Recursive File Search";
237
+ readonly category: "File Filtering";
238
+ readonly requiresRestart: true;
239
+ readonly default: true;
240
+ readonly description: "Enable recursive file search functionality";
241
+ readonly showInDialog: true;
242
+ };
243
+ };
244
+ };
245
+ readonly disableAutoUpdate: {
246
+ readonly type: "boolean";
247
+ readonly label: "Disable Auto Update";
248
+ readonly category: "Updates";
249
+ readonly requiresRestart: false;
250
+ readonly default: false;
251
+ readonly description: "Disable automatic updates";
252
+ readonly showInDialog: true;
253
+ };
254
+ readonly selectedAuthType: {
255
+ readonly type: "string";
256
+ readonly label: "Selected Auth Type";
257
+ readonly category: "Advanced";
258
+ readonly requiresRestart: true;
259
+ readonly default: AuthType | undefined;
260
+ readonly description: "The currently selected authentication type.";
261
+ readonly showInDialog: false;
262
+ };
263
+ readonly useExternalAuth: {
264
+ readonly type: "boolean";
265
+ readonly label: "Use External Auth";
266
+ readonly category: "Advanced";
267
+ readonly requiresRestart: true;
268
+ readonly default: boolean | undefined;
269
+ readonly description: "Whether to use an external authentication flow.";
270
+ readonly showInDialog: false;
271
+ };
272
+ readonly sandbox: {
273
+ readonly type: "object";
274
+ readonly label: "Sandbox";
275
+ readonly category: "Advanced";
276
+ readonly requiresRestart: true;
277
+ readonly default: boolean | string | undefined;
278
+ readonly description: "Sandbox execution environment (can be a boolean or a path string).";
279
+ readonly showInDialog: false;
280
+ };
281
+ readonly coreTools: {
282
+ readonly type: "array";
283
+ readonly label: "Core Tools";
284
+ readonly category: "Advanced";
285
+ readonly requiresRestart: true;
286
+ readonly default: string[] | undefined;
287
+ readonly description: "Paths to core tool definitions.";
288
+ readonly showInDialog: false;
289
+ };
290
+ readonly excludeTools: {
291
+ readonly type: "array";
292
+ readonly label: "Exclude Tools";
293
+ readonly category: "Advanced";
294
+ readonly requiresRestart: true;
295
+ readonly default: string[] | undefined;
296
+ readonly description: "Tool names to exclude from discovery.";
297
+ readonly showInDialog: false;
298
+ };
299
+ readonly toolDiscoveryCommand: {
300
+ readonly type: "string";
301
+ readonly label: "Tool Discovery Command";
302
+ readonly category: "Advanced";
303
+ readonly requiresRestart: true;
304
+ readonly default: string | undefined;
305
+ readonly description: "Command to run for tool discovery.";
306
+ readonly showInDialog: false;
307
+ };
308
+ readonly toolCallCommand: {
309
+ readonly type: "string";
310
+ readonly label: "Tool Call Command";
311
+ readonly category: "Advanced";
312
+ readonly requiresRestart: true;
313
+ readonly default: string | undefined;
314
+ readonly description: "Command to run for tool calls.";
315
+ readonly showInDialog: false;
316
+ };
317
+ readonly mcpServerCommand: {
318
+ readonly type: "string";
319
+ readonly label: "MCP Server Command";
320
+ readonly category: "Advanced";
321
+ readonly requiresRestart: true;
322
+ readonly default: string | undefined;
323
+ readonly description: "Command to start an MCP server.";
324
+ readonly showInDialog: false;
325
+ };
326
+ readonly mcpServers: {
327
+ readonly type: "object";
328
+ readonly label: "MCP Servers";
329
+ readonly category: "Advanced";
330
+ readonly requiresRestart: true;
331
+ readonly default: Record<string, MCPServerConfig>;
332
+ readonly description: "Configuration for MCP servers.";
333
+ readonly showInDialog: false;
334
+ };
335
+ readonly allowMCPServers: {
336
+ readonly type: "array";
337
+ readonly label: "Allow MCP Servers";
338
+ readonly category: "Advanced";
339
+ readonly requiresRestart: true;
340
+ readonly default: string[] | undefined;
341
+ readonly description: "A whitelist of MCP servers to allow.";
342
+ readonly showInDialog: false;
343
+ };
344
+ readonly excludeMCPServers: {
345
+ readonly type: "array";
346
+ readonly label: "Exclude MCP Servers";
347
+ readonly category: "Advanced";
348
+ readonly requiresRestart: true;
349
+ readonly default: string[] | undefined;
350
+ readonly description: "A blacklist of MCP servers to exclude.";
351
+ readonly showInDialog: false;
352
+ };
353
+ readonly telemetry: {
354
+ readonly type: "object";
355
+ readonly label: "Telemetry";
356
+ readonly category: "Advanced";
357
+ readonly requiresRestart: true;
358
+ readonly default: TelemetrySettings | undefined;
359
+ readonly description: "Telemetry configuration.";
360
+ readonly showInDialog: false;
361
+ };
362
+ readonly bugCommand: {
363
+ readonly type: "object";
364
+ readonly label: "Bug Command";
365
+ readonly category: "Advanced";
366
+ readonly requiresRestart: false;
367
+ readonly default: BugCommandSettings | undefined;
368
+ readonly description: "Configuration for the bug report command.";
369
+ readonly showInDialog: false;
370
+ };
371
+ readonly summarizeToolOutput: {
372
+ readonly type: "object";
373
+ readonly label: "Summarize Tool Output";
374
+ readonly category: "Advanced";
375
+ readonly requiresRestart: false;
376
+ readonly default: Record<string, {
377
+ tokenBudget?: number;
378
+ }> | undefined;
379
+ readonly description: "Settings for summarizing tool output.";
380
+ readonly showInDialog: false;
381
+ };
382
+ readonly ideModeFeature: {
383
+ readonly type: "boolean";
384
+ readonly label: "IDE Mode Feature Flag";
385
+ readonly category: "Advanced";
386
+ readonly requiresRestart: true;
387
+ readonly default: boolean | undefined;
388
+ readonly description: "Internal feature flag for IDE mode.";
389
+ readonly showInDialog: false;
390
+ };
391
+ readonly dnsResolutionOrder: {
392
+ readonly type: "string";
393
+ readonly label: "DNS Resolution Order";
394
+ readonly category: "Advanced";
395
+ readonly requiresRestart: true;
396
+ readonly default: DnsResolutionOrder | undefined;
397
+ readonly description: "The DNS resolution order.";
398
+ readonly showInDialog: false;
399
+ };
400
+ readonly excludedProjectEnvVars: {
401
+ readonly type: "array";
402
+ readonly label: "Excluded Project Environment Variables";
403
+ readonly category: "Advanced";
404
+ readonly requiresRestart: false;
405
+ readonly default: string[];
406
+ readonly description: "Environment variables to exclude from project context.";
407
+ readonly showInDialog: false;
408
+ };
409
+ readonly disableUpdateNag: {
410
+ readonly type: "boolean";
411
+ readonly label: "Disable Update Nag";
412
+ readonly category: "Updates";
413
+ readonly requiresRestart: false;
414
+ readonly default: false;
415
+ readonly description: "Disable update notification prompts.";
416
+ readonly showInDialog: false;
417
+ };
418
+ readonly includeDirectories: {
419
+ readonly type: "array";
420
+ readonly label: "Include Directories";
421
+ readonly category: "General";
422
+ readonly requiresRestart: false;
423
+ readonly default: string[];
424
+ readonly description: "Additional directories to include in the workspace context.";
425
+ readonly showInDialog: false;
426
+ };
427
+ readonly loadMemoryFromIncludeDirectories: {
428
+ readonly type: "boolean";
429
+ readonly label: "Load Memory From Include Directories";
430
+ readonly category: "General";
431
+ readonly requiresRestart: false;
432
+ readonly default: false;
433
+ readonly description: "Whether to load memory files from include directories.";
434
+ readonly showInDialog: true;
435
+ };
436
+ readonly model: {
437
+ readonly type: "string";
438
+ readonly label: "Model";
439
+ readonly category: "General";
440
+ readonly requiresRestart: false;
441
+ readonly default: string | undefined;
442
+ readonly description: "The Gemini model to use for conversations.";
443
+ readonly showInDialog: false;
444
+ };
445
+ readonly hasSeenIdeIntegrationNudge: {
446
+ readonly type: "boolean";
447
+ readonly label: "Has Seen IDE Integration Nudge";
448
+ readonly category: "General";
449
+ readonly requiresRestart: false;
450
+ readonly default: false;
451
+ readonly description: "Whether the user has seen the IDE integration nudge.";
452
+ readonly showInDialog: false;
453
+ };
454
+ readonly folderTrustFeature: {
455
+ readonly type: "boolean";
456
+ readonly label: "Folder Trust Feature";
457
+ readonly category: "General";
458
+ readonly requiresRestart: false;
459
+ readonly default: false;
460
+ readonly description: "Enable folder trust feature for enhanced security.";
461
+ readonly showInDialog: true;
462
+ };
463
+ readonly folderTrust: {
464
+ readonly type: "boolean";
465
+ readonly label: "Folder Trust";
466
+ readonly category: "General";
467
+ readonly requiresRestart: false;
468
+ readonly default: false;
469
+ readonly description: "Setting to track whether Folder trust is enabled.";
470
+ readonly showInDialog: true;
471
+ };
472
+ readonly chatCompression: {
473
+ readonly type: "object";
474
+ readonly label: "Chat Compression";
475
+ readonly category: "General";
476
+ readonly requiresRestart: false;
477
+ readonly default: ChatCompressionSettings | undefined;
478
+ readonly description: "Chat compression settings.";
479
+ readonly showInDialog: false;
480
+ };
481
+ readonly showLineNumbers: {
482
+ readonly type: "boolean";
483
+ readonly label: "Show Line Numbers";
484
+ readonly category: "General";
485
+ readonly requiresRestart: false;
486
+ readonly default: false;
487
+ readonly description: "Show line numbers in the chat.";
488
+ readonly showInDialog: true;
489
+ };
490
+ readonly defaultProfile: {
491
+ readonly type: "string";
492
+ readonly label: "Default Profile";
493
+ readonly category: "Provider";
494
+ readonly requiresRestart: true;
495
+ readonly default: string | undefined;
496
+ readonly description: "Default provider profile to use.";
497
+ readonly showInDialog: false;
498
+ };
499
+ readonly providerApiKeys: {
500
+ readonly type: "object";
501
+ readonly label: "Provider API Keys";
502
+ readonly category: "Provider";
503
+ readonly requiresRestart: true;
504
+ readonly default: Record<string, string>;
505
+ readonly description: "API keys for different providers.";
506
+ readonly showInDialog: false;
507
+ };
508
+ readonly providerBaseUrls: {
509
+ readonly type: "object";
510
+ readonly label: "Provider Base URLs";
511
+ readonly category: "Provider";
512
+ readonly requiresRestart: true;
513
+ readonly default: Record<string, string>;
514
+ readonly description: "Base URLs for different providers.";
515
+ readonly showInDialog: false;
516
+ };
517
+ readonly providerToolFormatOverrides: {
518
+ readonly type: "object";
519
+ readonly label: "Provider Tool Format Overrides";
520
+ readonly category: "Provider";
521
+ readonly requiresRestart: true;
522
+ readonly default: Record<string, string>;
523
+ readonly description: "Tool format overrides for different providers.";
524
+ readonly showInDialog: false;
525
+ };
526
+ readonly providerKeyfiles: {
527
+ readonly type: "object";
528
+ readonly label: "Provider Keyfiles";
529
+ readonly category: "Provider";
530
+ readonly requiresRestart: true;
531
+ readonly default: Record<string, string>;
532
+ readonly description: "Keyfile paths for different providers.";
533
+ readonly showInDialog: false;
534
+ };
535
+ readonly enableTextToolCallParsing: {
536
+ readonly type: "boolean";
537
+ readonly label: "Enable Text Tool Call Parsing";
538
+ readonly category: "Advanced";
539
+ readonly requiresRestart: false;
540
+ readonly default: false;
541
+ readonly description: "Enable parsing of tool calls from text responses.";
542
+ readonly showInDialog: false;
543
+ };
544
+ readonly textToolCallModels: {
545
+ readonly type: "array";
546
+ readonly label: "Text Tool Call Models";
547
+ readonly category: "Advanced";
548
+ readonly requiresRestart: false;
549
+ readonly default: string[];
550
+ readonly description: "Models that support text-based tool call parsing.";
551
+ readonly showInDialog: false;
552
+ };
553
+ readonly openaiResponsesEnabled: {
554
+ readonly type: "boolean";
555
+ readonly label: "OpenAI Responses Enabled";
556
+ readonly category: "Advanced";
557
+ readonly requiresRestart: false;
558
+ readonly default: false;
559
+ readonly description: "Enable OpenAI Responses API compatibility.";
560
+ readonly showInDialog: false;
561
+ };
562
+ readonly shellReplacement: {
563
+ readonly type: "boolean";
564
+ readonly label: "Shell Replacement";
565
+ readonly category: "Advanced";
566
+ readonly requiresRestart: false;
567
+ readonly default: false;
568
+ readonly description: "Allow command substitution in shell commands.";
569
+ readonly showInDialog: false;
570
+ };
571
+ readonly oauthEnabledProviders: {
572
+ readonly type: "object";
573
+ readonly label: "OAuth Enabled Providers";
574
+ readonly category: "Provider";
575
+ readonly requiresRestart: true;
576
+ readonly default: Record<string, boolean>;
577
+ readonly description: "OAuth enablement configuration per provider.";
578
+ readonly showInDialog: false;
579
+ };
580
+ };
581
+ type InferSettings<T extends SettingsSchema> = {
582
+ -readonly [K in keyof T]?: T[K] extends {
583
+ properties: SettingsSchema;
584
+ } ? InferSettings<T[K]['properties']> : T[K]['default'] extends boolean ? boolean : T[K]['default'];
585
+ };
586
+ export type Settings = InferSettings<typeof SETTINGS_SCHEMA>;
587
+ export {};