@defai.digital/ax-cli 3.7.2 → 3.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. package/README.md +148 -53
  2. package/dist/agent/context-manager.d.ts +15 -1
  3. package/dist/agent/context-manager.js +50 -19
  4. package/dist/agent/context-manager.js.map +1 -1
  5. package/dist/agent/dependency-resolver.js +13 -7
  6. package/dist/agent/dependency-resolver.js.map +1 -1
  7. package/dist/agent/llm-agent.d.ts +37 -0
  8. package/dist/agent/llm-agent.js +318 -98
  9. package/dist/agent/llm-agent.js.map +1 -1
  10. package/dist/agent/status-reporter.d.ts +114 -0
  11. package/dist/agent/status-reporter.js +335 -0
  12. package/dist/agent/status-reporter.js.map +1 -0
  13. package/dist/analyzers/best-practices/rules/typescript/no-magic-numbers.js +8 -2
  14. package/dist/analyzers/best-practices/rules/typescript/no-magic-numbers.js.map +1 -1
  15. package/dist/analyzers/best-practices/rules/typescript/no-unused-vars.js +3 -1
  16. package/dist/analyzers/best-practices/rules/typescript/no-unused-vars.js.map +1 -1
  17. package/dist/analyzers/best-practices/rules/typescript/prefer-const.js +3 -1
  18. package/dist/analyzers/best-practices/rules/typescript/prefer-const.js.map +1 -1
  19. package/dist/analyzers/best-practices/rules/typescript/prefer-readonly.js +3 -1
  20. package/dist/analyzers/best-practices/rules/typescript/prefer-readonly.js.map +1 -1
  21. package/dist/analyzers/code-smells/detectors/duplicate-code-detector.js +9 -3
  22. package/dist/analyzers/code-smells/detectors/duplicate-code-detector.js.map +1 -1
  23. package/dist/analyzers/git/churn-calculator.d.ts +2 -0
  24. package/dist/analyzers/git/churn-calculator.js +42 -8
  25. package/dist/analyzers/git/churn-calculator.js.map +1 -1
  26. package/dist/analyzers/git/hotspot-detector.js +2 -2
  27. package/dist/analyzers/git/hotspot-detector.js.map +1 -1
  28. package/dist/analyzers/metrics/metrics-analyzer.js +1 -1
  29. package/dist/analyzers/metrics/metrics-analyzer.js.map +1 -1
  30. package/dist/analyzers/security/security-analyzer.js +1 -1
  31. package/dist/analyzers/security/security-analyzer.js.map +1 -1
  32. package/dist/checkpoint/manager.d.ts +1 -0
  33. package/dist/checkpoint/manager.js +49 -9
  34. package/dist/checkpoint/manager.js.map +1 -1
  35. package/dist/checkpoint/storage.js +2 -2
  36. package/dist/checkpoint/storage.js.map +1 -1
  37. package/dist/commands/mcp-migrate.d.ts +9 -0
  38. package/dist/commands/mcp-migrate.js +172 -0
  39. package/dist/commands/mcp-migrate.js.map +1 -0
  40. package/dist/commands/status.d.ts +7 -0
  41. package/dist/commands/status.js +211 -0
  42. package/dist/commands/status.js.map +1 -0
  43. package/dist/commands/vscode.d.ts +7 -0
  44. package/dist/commands/vscode.js +363 -0
  45. package/dist/commands/vscode.js.map +1 -0
  46. package/dist/index.js +79 -30
  47. package/dist/index.js.map +1 -1
  48. package/dist/llm/client.js +33 -4
  49. package/dist/llm/client.js.map +1 -1
  50. package/dist/mcp/automatosx-loader.d.ts +84 -0
  51. package/dist/mcp/automatosx-loader.js +238 -0
  52. package/dist/mcp/automatosx-loader.js.map +1 -0
  53. package/dist/mcp/client-mutex-patch.d.ts +36 -0
  54. package/dist/mcp/client-mutex-patch.js +75 -0
  55. package/dist/mcp/client-mutex-patch.js.map +1 -0
  56. package/dist/mcp/client-v2.d.ts +229 -0
  57. package/dist/mcp/client-v2.js +740 -0
  58. package/dist/mcp/client-v2.js.map +1 -0
  59. package/dist/mcp/client.d.ts +111 -13
  60. package/dist/mcp/client.js +168 -253
  61. package/dist/mcp/client.js.map +1 -1
  62. package/dist/mcp/config-detector-v2.d.ts +83 -0
  63. package/dist/mcp/config-detector-v2.js +328 -0
  64. package/dist/mcp/config-detector-v2.js.map +1 -0
  65. package/dist/mcp/config-detector.d.ts +90 -0
  66. package/dist/mcp/config-detector.js +242 -0
  67. package/dist/mcp/config-detector.js.map +1 -0
  68. package/dist/mcp/config-migrator-v2.d.ts +89 -0
  69. package/dist/mcp/config-migrator-v2.js +288 -0
  70. package/dist/mcp/config-migrator-v2.js.map +1 -0
  71. package/dist/mcp/config-migrator.d.ts +63 -0
  72. package/dist/mcp/config-migrator.js +269 -0
  73. package/dist/mcp/config-migrator.js.map +1 -0
  74. package/dist/mcp/config-v2.d.ts +106 -0
  75. package/dist/mcp/config-v2.js +417 -0
  76. package/dist/mcp/config-v2.js.map +1 -0
  77. package/dist/mcp/config.d.ts +12 -1
  78. package/dist/mcp/config.js +95 -10
  79. package/dist/mcp/config.js.map +1 -1
  80. package/dist/mcp/error-formatter.d.ts +46 -0
  81. package/dist/mcp/error-formatter.js +244 -0
  82. package/dist/mcp/error-formatter.js.map +1 -0
  83. package/dist/mcp/health.d.ts +5 -0
  84. package/dist/mcp/health.js +22 -2
  85. package/dist/mcp/health.js.map +1 -1
  86. package/dist/mcp/invariants.d.ts +141 -0
  87. package/dist/mcp/invariants.js +243 -0
  88. package/dist/mcp/invariants.js.map +1 -0
  89. package/dist/mcp/mutex-safe.d.ts +153 -0
  90. package/dist/mcp/mutex-safe.js +260 -0
  91. package/dist/mcp/mutex-safe.js.map +1 -0
  92. package/dist/mcp/mutex.d.ts +73 -0
  93. package/dist/mcp/mutex.js +137 -0
  94. package/dist/mcp/mutex.js.map +1 -0
  95. package/dist/mcp/reconnection.d.ts +4 -0
  96. package/dist/mcp/reconnection.js +25 -1
  97. package/dist/mcp/reconnection.js.map +1 -1
  98. package/dist/mcp/transports-v2.d.ts +152 -0
  99. package/dist/mcp/transports-v2.js +481 -0
  100. package/dist/mcp/transports-v2.js.map +1 -0
  101. package/dist/mcp/type-safety.d.ts +231 -0
  102. package/dist/mcp/type-safety.js +273 -0
  103. package/dist/mcp/type-safety.js.map +1 -0
  104. package/dist/planner/task-planner.js +13 -0
  105. package/dist/planner/task-planner.js.map +1 -1
  106. package/dist/planner/types.d.ts +6 -6
  107. package/dist/schemas/confirmation-schemas.d.ts +2 -2
  108. package/dist/schemas/settings-schemas.d.ts +196 -0
  109. package/dist/schemas/settings-schemas.js +146 -5
  110. package/dist/schemas/settings-schemas.js.map +1 -1
  111. package/dist/sdk/index.d.ts +118 -2
  112. package/dist/sdk/index.js +146 -4
  113. package/dist/sdk/index.js.map +1 -1
  114. package/dist/sdk/testing.d.ts +182 -0
  115. package/dist/sdk/testing.js +231 -0
  116. package/dist/sdk/testing.js.map +1 -1
  117. package/dist/sdk/version.d.ts +114 -15
  118. package/dist/sdk/version.js +137 -15
  119. package/dist/sdk/version.js.map +1 -1
  120. package/dist/tools/bash.js +54 -9
  121. package/dist/tools/bash.js.map +1 -1
  122. package/dist/tools/registry.d.ts +146 -0
  123. package/dist/tools/registry.js +170 -0
  124. package/dist/tools/registry.js.map +1 -0
  125. package/dist/tools/search.js +12 -2
  126. package/dist/tools/search.js.map +1 -1
  127. package/dist/tools/text-editor.js +84 -26
  128. package/dist/tools/text-editor.js.map +1 -1
  129. package/dist/ui/components/chat-history.js +6 -1
  130. package/dist/ui/components/chat-history.js.map +1 -1
  131. package/dist/ui/components/chat-input.d.ts +2 -1
  132. package/dist/ui/components/chat-input.js +5 -2
  133. package/dist/ui/components/chat-input.js.map +1 -1
  134. package/dist/ui/components/chat-interface.js +187 -5
  135. package/dist/ui/components/chat-interface.js.map +1 -1
  136. package/dist/ui/components/context-breakdown.d.ts +23 -0
  137. package/dist/ui/components/context-breakdown.js +124 -0
  138. package/dist/ui/components/context-breakdown.js.map +1 -0
  139. package/dist/ui/components/keyboard-help.d.ts +17 -0
  140. package/dist/ui/components/keyboard-help.js +116 -0
  141. package/dist/ui/components/keyboard-help.js.map +1 -0
  142. package/dist/ui/components/keyboard-hints.js +2 -2
  143. package/dist/ui/components/keyboard-hints.js.map +1 -1
  144. package/dist/ui/components/quick-actions.js +43 -7
  145. package/dist/ui/components/quick-actions.js.map +1 -1
  146. package/dist/ui/components/status-bar.d.ts +3 -0
  147. package/dist/ui/components/status-bar.js +25 -16
  148. package/dist/ui/components/status-bar.js.map +1 -1
  149. package/dist/ui/components/toast-notification.d.ts +42 -0
  150. package/dist/ui/components/toast-notification.js +30 -2
  151. package/dist/ui/components/toast-notification.js.map +1 -1
  152. package/dist/ui/components/tool-group-display.js +34 -4
  153. package/dist/ui/components/tool-group-display.js.map +1 -1
  154. package/dist/ui/components/welcome-panel.js +2 -2
  155. package/dist/ui/components/welcome-panel.js.map +1 -1
  156. package/dist/ui/hooks/use-enhanced-input.d.ts +9 -1
  157. package/dist/ui/hooks/use-enhanced-input.js +901 -90
  158. package/dist/ui/hooks/use-enhanced-input.js.map +1 -1
  159. package/dist/ui/hooks/use-input-handler.d.ts +11 -1
  160. package/dist/ui/hooks/use-input-handler.js +67 -3
  161. package/dist/ui/hooks/use-input-handler.js.map +1 -1
  162. package/dist/ui/hooks/use-input-history.d.ts +1 -1
  163. package/dist/ui/hooks/use-input-history.js +50 -14
  164. package/dist/ui/hooks/use-input-history.js.map +1 -1
  165. package/dist/ui/utils/bracketed-paste-handler.d.ts +97 -0
  166. package/dist/ui/utils/bracketed-paste-handler.js +322 -0
  167. package/dist/ui/utils/bracketed-paste-handler.js.map +1 -0
  168. package/dist/ui/utils/change-summarizer.js +16 -6
  169. package/dist/ui/utils/change-summarizer.js.map +1 -1
  170. package/dist/ui/utils/tool-grouper.d.ts +10 -1
  171. package/dist/ui/utils/tool-grouper.js +143 -30
  172. package/dist/ui/utils/tool-grouper.js.map +1 -1
  173. package/dist/utils/auto-accept-logger.d.ts +173 -0
  174. package/dist/utils/auto-accept-logger.js +420 -0
  175. package/dist/utils/auto-accept-logger.js.map +1 -0
  176. package/dist/utils/background-task-manager.d.ts +11 -0
  177. package/dist/utils/background-task-manager.js +124 -38
  178. package/dist/utils/background-task-manager.js.map +1 -1
  179. package/dist/utils/confirmation-service.d.ts +1 -0
  180. package/dist/utils/confirmation-service.js +6 -1
  181. package/dist/utils/confirmation-service.js.map +1 -1
  182. package/dist/utils/encryption.d.ts +8 -0
  183. package/dist/utils/encryption.js +44 -27
  184. package/dist/utils/encryption.js.map +1 -1
  185. package/dist/utils/enhanced-error-messages.d.ts +33 -0
  186. package/dist/utils/enhanced-error-messages.js +420 -0
  187. package/dist/utils/enhanced-error-messages.js.map +1 -0
  188. package/dist/utils/error-handler.d.ts +13 -3
  189. package/dist/utils/error-handler.js +16 -4
  190. package/dist/utils/error-handler.js.map +1 -1
  191. package/dist/utils/external-editor.d.ts +47 -0
  192. package/dist/utils/external-editor.js +179 -0
  193. package/dist/utils/external-editor.js.map +1 -0
  194. package/dist/utils/history-migration.d.ts +9 -0
  195. package/dist/utils/history-migration.js +36 -0
  196. package/dist/utils/history-migration.js.map +1 -0
  197. package/dist/utils/paste-utils.js +12 -11
  198. package/dist/utils/paste-utils.js.map +1 -1
  199. package/dist/utils/rate-limiter.js +20 -1
  200. package/dist/utils/rate-limiter.js.map +1 -1
  201. package/dist/utils/safety-rules.d.ts +64 -0
  202. package/dist/utils/safety-rules.js +225 -0
  203. package/dist/utils/safety-rules.js.map +1 -0
  204. package/dist/utils/settings-manager.d.ts +89 -1
  205. package/dist/utils/settings-manager.js +359 -3
  206. package/dist/utils/settings-manager.js.map +1 -1
  207. package/dist/utils/token-counter.d.ts +2 -0
  208. package/dist/utils/token-counter.js +32 -9
  209. package/dist/utils/token-counter.js.map +1 -1
  210. package/dist/utils/version.d.ts +11 -2
  211. package/dist/utils/version.js +54 -21
  212. package/dist/utils/version.js.map +1 -1
  213. package/package.json +2 -1
@@ -0,0 +1,225 @@
1
+ /**
2
+ * Safety Rules for Auto-accept Mode - Phase 2
3
+ *
4
+ * Defines destructive operations that always require confirmation
5
+ * even when auto-accept mode is enabled.
6
+ *
7
+ * Safety Philosophy:
8
+ * - Auto-accept is for convenience, not carte blanche
9
+ * - Destructive operations ALWAYS require explicit confirmation
10
+ * - Better safe than sorry (false positives acceptable)
11
+ */
12
+ /**
13
+ * Predefined destructive operations
14
+ */
15
+ export const DESTRUCTIVE_OPERATIONS = {
16
+ git_push_main: {
17
+ id: 'git_push_main',
18
+ name: 'Push to Main Branch',
19
+ description: 'Pushing to main/master branch (potential to affect production)',
20
+ patterns: [
21
+ /git\s+push.*\s+(origin\s+)?(main|master)/i,
22
+ /git\s+push.*--force.*\s+(main|master)/i,
23
+ ],
24
+ severity: 'high',
25
+ },
26
+ git_force_push: {
27
+ id: 'git_force_push',
28
+ name: 'Force Push',
29
+ description: 'Force push can rewrite history and cause data loss',
30
+ patterns: [
31
+ /git\s+push.*--force/i,
32
+ /git\s+push.*-f\s/i,
33
+ ],
34
+ severity: 'high',
35
+ },
36
+ mass_delete: {
37
+ id: 'mass_delete',
38
+ name: 'Mass File Deletion',
39
+ description: 'Deleting 25+ files at once',
40
+ patterns: [
41
+ // This will be checked programmatically based on file count
42
+ ],
43
+ severity: 'high',
44
+ },
45
+ rm_rf: {
46
+ id: 'rm_rf',
47
+ name: 'Recursive Force Delete',
48
+ description: 'rm -rf can delete entire directory trees',
49
+ patterns: [
50
+ /rm\s+-rf/i,
51
+ /rm\s+-fr/i,
52
+ /rm\s+.*-r.*-f/i,
53
+ /rm\s+.*-f.*-r/i,
54
+ ],
55
+ severity: 'high',
56
+ },
57
+ npm_publish: {
58
+ id: 'npm_publish',
59
+ name: 'NPM Package Publish',
60
+ description: 'Publishing to npm registry (irreversible)',
61
+ patterns: [
62
+ /npm\s+publish/i,
63
+ /yarn\s+publish/i,
64
+ /pnpm\s+publish/i,
65
+ ],
66
+ severity: 'high',
67
+ },
68
+ drop_database: {
69
+ id: 'drop_database',
70
+ name: 'Drop Database',
71
+ description: 'Dropping database or tables',
72
+ patterns: [
73
+ /DROP\s+DATABASE/i,
74
+ /DROP\s+TABLE/i,
75
+ /DROP\s+SCHEMA/i,
76
+ /TRUNCATE\s+TABLE/i,
77
+ ],
78
+ severity: 'high',
79
+ },
80
+ docker_prune: {
81
+ id: 'docker_prune',
82
+ name: 'Docker System Prune',
83
+ description: 'Removing all unused Docker data',
84
+ patterns: [
85
+ /docker\s+system\s+prune/i,
86
+ /docker\s+volume\s+prune/i,
87
+ ],
88
+ severity: 'medium',
89
+ },
90
+ pip_uninstall_all: {
91
+ id: 'pip_uninstall_all',
92
+ name: 'Uninstall All Packages',
93
+ description: 'Uninstalling all Python packages',
94
+ patterns: [
95
+ /pip\s+freeze.*\|\s*xargs\s+pip\s+uninstall/i,
96
+ ],
97
+ severity: 'medium',
98
+ },
99
+ };
100
+ /**
101
+ * Check if a command matches any destructive operation patterns
102
+ */
103
+ export function isDestructiveCommand(command) {
104
+ const matchedOperations = [];
105
+ for (const operation of Object.values(DESTRUCTIVE_OPERATIONS)) {
106
+ for (const pattern of operation.patterns) {
107
+ if (pattern.test(command)) {
108
+ matchedOperations.push(operation);
109
+ break; // Only add each operation once
110
+ }
111
+ }
112
+ }
113
+ return {
114
+ isDestructive: matchedOperations.length > 0,
115
+ matchedOperations,
116
+ };
117
+ }
118
+ /**
119
+ * Check if a file operation is a mass deletion
120
+ */
121
+ export function isMassDelete(fileCount) {
122
+ return fileCount >= 25;
123
+ }
124
+ /**
125
+ * Get human-readable description of destructive operation
126
+ */
127
+ export function getOperationDescription(operation) {
128
+ return `${operation.name}: ${operation.description}`;
129
+ }
130
+ /**
131
+ * Check if operation ID should always require confirmation
132
+ */
133
+ export function shouldAlwaysConfirm(operationId, alwaysConfirmList) {
134
+ return alwaysConfirmList.includes(operationId);
135
+ }
136
+ /**
137
+ * Get all destructive operation IDs
138
+ */
139
+ export function getAllOperationIds() {
140
+ return Object.keys(DESTRUCTIVE_OPERATIONS);
141
+ }
142
+ /**
143
+ * Get default always-confirm list
144
+ */
145
+ export function getDefaultAlwaysConfirm() {
146
+ return [
147
+ 'git_push_main',
148
+ 'git_force_push',
149
+ 'mass_delete',
150
+ 'rm_rf',
151
+ 'npm_publish',
152
+ 'drop_database',
153
+ ];
154
+ }
155
+ /**
156
+ * Format operation severity for display
157
+ */
158
+ export function formatSeverity(severity) {
159
+ switch (severity) {
160
+ case 'high':
161
+ return '🔴 HIGH RISK';
162
+ case 'medium':
163
+ return '🟡 MEDIUM RISK';
164
+ case 'low':
165
+ return '🟢 LOW RISK';
166
+ }
167
+ }
168
+ /**
169
+ * Check if file operation is destructive
170
+ * Currently checks for:
171
+ * - Editing critical system files
172
+ * - Creating executable files
173
+ * - Editing configuration files in production-like paths
174
+ */
175
+ export function isDestructiveFileOperation(filepath, operation) {
176
+ const matchedOperations = [];
177
+ // Normalize path for consistent matching
178
+ const normalizedPath = filepath.toLowerCase().replace(/\\/g, '/');
179
+ // Check for critical system files
180
+ const criticalFiles = [
181
+ '/etc/passwd',
182
+ '/etc/shadow',
183
+ '/etc/sudoers',
184
+ '/etc/hosts',
185
+ '/boot/',
186
+ 'c:/windows/system32',
187
+ '.ssh/authorized_keys',
188
+ '.ssh/id_rsa',
189
+ '.ssh/id_ed25519',
190
+ '.aws/credentials',
191
+ '.env.production',
192
+ 'production.env',
193
+ ];
194
+ for (const pattern of criticalFiles) {
195
+ if (normalizedPath.includes(pattern.toLowerCase())) {
196
+ matchedOperations.push({
197
+ id: 'edit_critical_file',
198
+ name: 'Edit Critical System File',
199
+ description: 'Modifying critical system or security files',
200
+ patterns: [],
201
+ severity: 'high',
202
+ });
203
+ break;
204
+ }
205
+ }
206
+ // Check for executable file creation
207
+ if (operation === 'write' && (normalizedPath.endsWith('.exe') ||
208
+ normalizedPath.endsWith('.sh') ||
209
+ normalizedPath.endsWith('.bat') ||
210
+ normalizedPath.endsWith('.cmd') ||
211
+ normalizedPath.endsWith('.ps1'))) {
212
+ matchedOperations.push({
213
+ id: 'create_executable',
214
+ name: 'Create Executable File',
215
+ description: 'Creating executable or script files',
216
+ patterns: [],
217
+ severity: 'medium',
218
+ });
219
+ }
220
+ return {
221
+ isDestructive: matchedOperations.length > 0,
222
+ matchedOperations,
223
+ };
224
+ }
225
+ //# sourceMappingURL=safety-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safety-rules.js","sourceRoot":"","sources":["../../src/utils/safety-rules.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
- import type { UserSettings, ProjectSettings, SamplingSettings, ThinkingSettings, DualModelSettings } from "../schemas/settings-schemas.js";
1
+ import type { UserSettings, ProjectSettings, SamplingSettings, ThinkingSettings, DualModelSettings, InputSettings, ShortcutsSettings, PasteSettings, StatusBarSettings, AutoAcceptSettings, ExternalEditorSettings, ThinkingModeSettings } from "../schemas/settings-schemas.js";
2
2
  export type { UserSettings, ProjectSettings };
3
+ type RequiredInputSettings = Required<InputSettings>;
4
+ type RequiredShortcutsSettings = Required<ShortcutsSettings>;
5
+ type RequiredPasteSettings = Required<PasteSettings>;
3
6
  /**
4
7
  * Unified settings manager that handles both user-level and project-level settings
5
8
  */
@@ -52,6 +55,21 @@ export declare class SettingsManager {
52
55
  * Get a specific project setting
53
56
  */
54
57
  getProjectSetting<K extends keyof ProjectSettings>(key: K): ProjectSettings[K];
58
+ /**
59
+ * Phase 3: Get paste settings with proper defaults
60
+ * Priority: Project settings > User settings > Schema defaults
61
+ * v3.8.0: Now includes bracketed paste mode settings
62
+ */
63
+ getPasteSettings(): {
64
+ allowLargePaste: any;
65
+ maxPasteLength: any;
66
+ warningThreshold: any;
67
+ enableBracketedPaste: any;
68
+ showPasteIndicator: any;
69
+ maxPasteSize: any;
70
+ pasteTimeout: any;
71
+ enableFallback: any;
72
+ };
55
73
  /**
56
74
  * Get the current model with proper fallback logic:
57
75
  * 1. Project-specific model setting
@@ -128,6 +146,76 @@ export declare class SettingsManager {
128
146
  * Get the actual project settings path being used
129
147
  */
130
148
  getProjectSettingsPath(): string;
149
+ /**
150
+ * Get input configuration with proper defaults
151
+ * Priority: User settings > Schema defaults
152
+ */
153
+ getInputConfig(): RequiredInputSettings;
154
+ /**
155
+ * Update input configuration
156
+ * Merges with existing config and saves to user settings
157
+ */
158
+ updateInputConfig(config: Partial<InputSettings>): void;
159
+ /**
160
+ * Get shortcuts configuration with proper defaults
161
+ * Priority: User settings > Schema defaults
162
+ */
163
+ getShortcutsConfig(): RequiredShortcutsSettings;
164
+ /**
165
+ * Update shortcuts configuration
166
+ * Merges with existing config and saves to user settings
167
+ */
168
+ updateShortcutsConfig(config: Partial<ShortcutsSettings>): void;
169
+ /**
170
+ * Get paste configuration with proper defaults
171
+ * Priority: User settings > Schema defaults
172
+ */
173
+ getPasteConfig(): RequiredPasteSettings;
174
+ /**
175
+ * Update paste configuration
176
+ * Merges with existing config and saves to user settings
177
+ */
178
+ updatePasteConfig(config: Partial<PasteSettings>): void;
179
+ /**
180
+ * Get status bar configuration with proper defaults
181
+ * Priority: User settings > Schema defaults
182
+ */
183
+ getStatusBarConfig(): Required<StatusBarSettings>;
184
+ /**
185
+ * Update status bar configuration
186
+ * Merges with existing config and saves to user settings
187
+ */
188
+ updateStatusBarConfig(config: Partial<StatusBarSettings>): void;
189
+ /**
190
+ * Get auto-accept configuration with proper defaults
191
+ * Priority: User settings > Schema defaults
192
+ */
193
+ getAutoAcceptConfig(): AutoAcceptSettings;
194
+ /**
195
+ * Update auto-accept configuration
196
+ * Merges with existing config and saves to user settings
197
+ */
198
+ updateAutoAcceptConfig(config: Partial<AutoAcceptSettings>): void;
199
+ /**
200
+ * Get external editor configuration with proper defaults
201
+ * Priority: User settings > Schema defaults
202
+ */
203
+ getExternalEditorConfig(): ExternalEditorSettings;
204
+ /**
205
+ * Update external editor configuration
206
+ * Merges with existing config and saves to user settings
207
+ */
208
+ updateExternalEditorConfig(config: Partial<ExternalEditorSettings>): void;
209
+ /**
210
+ * Get thinking mode configuration with proper defaults
211
+ * Priority: User settings > Schema defaults
212
+ */
213
+ getThinkingModeConfig(): ThinkingModeSettings;
214
+ /**
215
+ * Update thinking mode configuration
216
+ * Merges with existing config and saves to user settings
217
+ */
218
+ updateThinkingModeConfig(config: Partial<ThinkingModeSettings>): void;
131
219
  }
132
220
  /**
133
221
  * Convenience function to get the singleton instance