gh-multi 0.1.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.
Files changed (53) hide show
  1. package/README.md +70 -0
  2. package/gh-multi-dist/constants.d.ts +14 -0
  3. package/gh-multi-dist/constants.js +16 -0
  4. package/gh-multi-dist/constants.js.map +1 -0
  5. package/gh-multi-dist/index.d.ts +4 -0
  6. package/gh-multi-dist/index.js +110 -0
  7. package/gh-multi-dist/index.js.map +1 -0
  8. package/gh-multi-dist/plugin/accounts.d.ts +62 -0
  9. package/gh-multi-dist/plugin/accounts.js +703 -0
  10. package/gh-multi-dist/plugin/accounts.js.map +1 -0
  11. package/gh-multi-dist/plugin/cli.d.ts +19 -0
  12. package/gh-multi-dist/plugin/cli.js +409 -0
  13. package/gh-multi-dist/plugin/cli.js.map +1 -0
  14. package/gh-multi-dist/plugin/config/index.d.ts +2 -0
  15. package/gh-multi-dist/plugin/config/index.js +3 -0
  16. package/gh-multi-dist/plugin/config/index.js.map +1 -0
  17. package/gh-multi-dist/plugin/config/loader.d.ts +3 -0
  18. package/gh-multi-dist/plugin/config/loader.js +78 -0
  19. package/gh-multi-dist/plugin/config/loader.js.map +1 -0
  20. package/gh-multi-dist/plugin/config/schema.d.ts +28 -0
  21. package/gh-multi-dist/plugin/config/schema.js +10 -0
  22. package/gh-multi-dist/plugin/config/schema.js.map +1 -0
  23. package/gh-multi-dist/plugin/device_flow.d.ts +18 -0
  24. package/gh-multi-dist/plugin/device_flow.js +78 -0
  25. package/gh-multi-dist/plugin/device_flow.js.map +1 -0
  26. package/gh-multi-dist/plugin/fetch.d.ts +3 -0
  27. package/gh-multi-dist/plugin/fetch.js +156 -0
  28. package/gh-multi-dist/plugin/fetch.js.map +1 -0
  29. package/gh-multi-dist/plugin/index.d.ts +5 -0
  30. package/gh-multi-dist/plugin/index.js +6 -0
  31. package/gh-multi-dist/plugin/index.js.map +1 -0
  32. package/gh-multi-dist/plugin/logger.d.ts +43 -0
  33. package/gh-multi-dist/plugin/logger.js +169 -0
  34. package/gh-multi-dist/plugin/logger.js.map +1 -0
  35. package/gh-multi-dist/plugin/models.d.ts +2 -0
  36. package/gh-multi-dist/plugin/models.js +96 -0
  37. package/gh-multi-dist/plugin/models.js.map +1 -0
  38. package/gh-multi-dist/plugin/quota.d.ts +11 -0
  39. package/gh-multi-dist/plugin/quota.js +42 -0
  40. package/gh-multi-dist/plugin/quota.js.map +1 -0
  41. package/gh-multi-dist/plugin/token.d.ts +5 -0
  42. package/gh-multi-dist/plugin/token.js +7 -0
  43. package/gh-multi-dist/plugin/token.js.map +1 -0
  44. package/gh-multi-dist/plugin/ui/ansi.d.ts +41 -0
  45. package/gh-multi-dist/plugin/ui/ansi.js +67 -0
  46. package/gh-multi-dist/plugin/ui/ansi.js.map +1 -0
  47. package/gh-multi-dist/plugin/ui/confirm.d.ts +1 -0
  48. package/gh-multi-dist/plugin/ui/confirm.js +15 -0
  49. package/gh-multi-dist/plugin/ui/confirm.js.map +1 -0
  50. package/gh-multi-dist/plugin/ui/select.d.ts +13 -0
  51. package/gh-multi-dist/plugin/ui/select.js +170 -0
  52. package/gh-multi-dist/plugin/ui/select.js.map +1 -0
  53. package/package.json +52 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../src/plugin/accounts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { CopilotAccountManager } from './accounts.js';
2
+ export declare class CopilotCLI {
3
+ private accountManager;
4
+ private deviceFlow;
5
+ constructor(accountManager: CopilotAccountManager);
6
+ showMenu(): Promise<void>;
7
+ runAuthFlow(mode: 'add' | 'manage'): Promise<void>;
8
+ private showMainMenu;
9
+ private listAccounts;
10
+ private checkQuota;
11
+ private handleDeviceFlow;
12
+ private manageAccounts;
13
+ private manageSingleAccount;
14
+ private waitForKey;
15
+ private configureSettings;
16
+ private changeRotationStrategy;
17
+ private toggleDebugMode;
18
+ private resetToDefaults;
19
+ }
@@ -0,0 +1,409 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ import { GitHubDeviceFlowStrategy } from './device_flow.js';
4
+ import { loadConfig, DEFAULT_CONFIG, getUserConfigPath } from './config/index.js';
5
+ import { fetchQuota } from './quota.js';
6
+ import { select } from './ui/select.js';
7
+ import { confirm } from './ui/confirm.js';
8
+ import { ANSI } from './ui/ansi.js';
9
+ async function saveConfig(config) {
10
+ const filePath = getUserConfigPath();
11
+ const dir = path.dirname(filePath);
12
+ if (!fs.existsSync(dir)) {
13
+ await fs.promises.mkdir(dir, { recursive: true });
14
+ }
15
+ await fs.promises.writeFile(filePath, JSON.stringify(config, null, 2));
16
+ }
17
+ export class CopilotCLI {
18
+ accountManager;
19
+ deviceFlow;
20
+ constructor(accountManager) {
21
+ this.accountManager = accountManager;
22
+ this.deviceFlow = new GitHubDeviceFlowStrategy();
23
+ }
24
+ async showMenu() {
25
+ await this.showMainMenu();
26
+ }
27
+ async runAuthFlow(mode) {
28
+ process.stdout.write(ANSI.moveTo(1, 1));
29
+ if (mode === 'add') {
30
+ await this.handleDeviceFlow();
31
+ }
32
+ else {
33
+ await this.showMainMenu();
34
+ }
35
+ }
36
+ async showMainMenu() {
37
+ while (true) {
38
+ process.stdout.write(ANSI.clearScreen);
39
+ process.stdout.write(ANSI.moveTo(1, 1));
40
+ console.log(`${ANSI.bold}${ANSI.cyan}GitHub Copilot Manager${ANSI.reset}\n`);
41
+ const action = await select([
42
+ { label: 'Login / Add Account', value: 'add', hint: 'Authenticate with a new GitHub account' },
43
+ { label: 'List Accounts', value: 'list', hint: 'View all configured accounts' },
44
+ { label: 'Check Quota', value: 'quota', hint: 'View usage limits for active account' },
45
+ { label: 'Manage Accounts', value: 'manage', hint: 'Enable, disable, or remove accounts' },
46
+ { label: 'Configure Settings', value: 'settings', hint: 'Adjust plugin behavior and limits' },
47
+ { label: 'Exit', value: 'exit', color: 'red' },
48
+ ], { message: 'What would you like to do?' });
49
+ if (!action || action === 'exit') {
50
+ break;
51
+ }
52
+ try {
53
+ switch (action) {
54
+ case 'add':
55
+ await this.handleDeviceFlow();
56
+ break;
57
+ case 'list':
58
+ await this.listAccounts();
59
+ break;
60
+ case 'quota':
61
+ await this.checkQuota();
62
+ break;
63
+ case 'manage':
64
+ await this.manageAccounts();
65
+ break;
66
+ case 'settings':
67
+ await this.configureSettings();
68
+ break;
69
+ }
70
+ }
71
+ catch (error) {
72
+ console.error(`\n${ANSI.red}Error: ${error.message}${ANSI.reset}\n`);
73
+ await this.waitForKey();
74
+ }
75
+ }
76
+ }
77
+ async listAccounts() {
78
+ const accounts = this.accountManager.listAccounts();
79
+ console.log(`\n${ANSI.bold}Configured Accounts:${ANSI.reset}\n`);
80
+ if (accounts.length === 0) {
81
+ console.log(`${ANSI.dim}No accounts found.${ANSI.reset}`);
82
+ }
83
+ else {
84
+ const allNoAccess = accounts.every(a => a.sku === 'no_access');
85
+ if (allNoAccess) {
86
+ console.log(`${ANSI.red}No accounts have GitHub Copilot enabled. Enable at github.com/settings/copilot${ANSI.reset}\n`);
87
+ }
88
+ const quotaPromises = accounts.map(async (acc) => {
89
+ if (acc.status === 'active' && acc.enabled !== false) {
90
+ try {
91
+ return { username: acc.username, quota: await fetchQuota(acc.oauthToken) };
92
+ }
93
+ catch {
94
+ return { username: acc.username, quota: null };
95
+ }
96
+ }
97
+ return { username: acc.username, quota: null };
98
+ });
99
+ const quotas = await Promise.all(quotaPromises);
100
+ quotas.forEach(q => {
101
+ if (q.quota) {
102
+ this.accountManager.updateAccountQuota(q.username, q.quota);
103
+ }
104
+ });
105
+ const quotaMap = new Map(quotas.map(q => [q.username, q.quota]));
106
+ accounts.forEach(acc => {
107
+ const statusColor = acc.status === 'active' ? ANSI.green : ANSI.red;
108
+ const isEnabled = acc.enabled !== false;
109
+ const enabledStatus = isEnabled ? '' : `${ANSI.dim} (Disabled)${ANSI.reset}`;
110
+ const quota = quotaMap.get(acc.username);
111
+ let planInfo = '';
112
+ let noAccessTag = '';
113
+ if (acc.sku === 'no_access') {
114
+ noAccessTag = ` ${ANSI.red}[NO ACCESS]${ANSI.reset}`;
115
+ }
116
+ if (quota) {
117
+ let planName = quota.plan;
118
+ if (quota.sku === 'free_limited_copilot') {
119
+ planName = 'Free';
120
+ }
121
+ planName = planName.charAt(0).toUpperCase() + planName.slice(1);
122
+ planInfo = ` - ${planName} Plan`;
123
+ }
124
+ console.log(`- ${ANSI.bold}${acc.username}${ANSI.reset} ${statusColor}[${acc.status}]${ANSI.reset}${enabledStatus}${noAccessTag}${planInfo}`);
125
+ console.log(` ${ANSI.dim}Added: ${new Date(acc.addedAt).toLocaleDateString()}${ANSI.reset}`);
126
+ console.log(` ${ANSI.dim}Health: ${acc.health_score}/100${ANSI.reset}`);
127
+ if (quota) {
128
+ const premTotal = quota.premium.total;
129
+ const premRemaining = quota.premium.remaining;
130
+ const premUsed = premTotal - premRemaining;
131
+ const premStr = `${premUsed}/${premTotal}`;
132
+ let premPercent = '';
133
+ if (premTotal > 0) {
134
+ const p = Math.round((premUsed / premTotal) * 100);
135
+ premPercent = ` (${p}%)`;
136
+ }
137
+ console.log(` Premium: ${premStr}${premPercent}`);
138
+ if (quota.resetDate) {
139
+ const date = new Date(quota.resetDate);
140
+ const dateStr = date.toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' });
141
+ console.log(` Resets: ${dateStr}`);
142
+ }
143
+ }
144
+ console.log('');
145
+ });
146
+ }
147
+ await this.waitForKey();
148
+ }
149
+ async checkQuota() {
150
+ const accounts = this.accountManager.listAccounts();
151
+ const activeAccounts = accounts.filter(a => a.status === 'active' && a.enabled !== false);
152
+ if (activeAccounts.length === 0) {
153
+ console.log(`\n${ANSI.yellow}No active accounts found to check.${ANSI.reset}`);
154
+ await this.waitForKey();
155
+ return;
156
+ }
157
+ let username = activeAccounts[0].username;
158
+ const items = activeAccounts.map(acc => ({
159
+ label: acc.username,
160
+ value: acc.username
161
+ }));
162
+ items.push({ label: '', value: 'sep', separator: true });
163
+ items.push({ label: 'Back', value: 'back' });
164
+ const selected = await select(items, { message: 'Select account to check quota:' });
165
+ if (!selected || selected === 'back') {
166
+ return;
167
+ }
168
+ username = selected;
169
+ const account = activeAccounts.find(a => a.username === username);
170
+ console.log(`\n${ANSI.cyan}Fetching quota for ${username}...${ANSI.reset}`);
171
+ const quota = await fetchQuota(account.oauthToken);
172
+ if (!quota) {
173
+ console.log(`\n${ANSI.red}Unable to fetch quota details.${ANSI.reset}`);
174
+ await this.waitForKey();
175
+ return;
176
+ }
177
+ this.accountManager.updateAccountQuota(username, quota);
178
+ process.stdout.write(ANSI.clearScreen);
179
+ process.stdout.write(ANSI.moveTo(1, 1));
180
+ const boxWidth = 40;
181
+ const border = '─'.repeat(boxWidth - 2);
182
+ console.log(`╭${border}╮`);
183
+ console.log(`│ Account: ${username.padEnd(boxWidth - 13)}│`);
184
+ let planDisplay = quota.sku;
185
+ if (quota.sku === 'free_limited_copilot')
186
+ planDisplay = 'Free Limited';
187
+ const planType = quota.plan.charAt(0).toUpperCase() + quota.plan.slice(1);
188
+ planDisplay += ` (${planType})`;
189
+ if (planDisplay.length > boxWidth - 10)
190
+ planDisplay = planDisplay.substring(0, boxWidth - 13) + '...';
191
+ console.log(`│ Plan: ${planDisplay.padEnd(boxWidth - 10)}│`);
192
+ console.log(`│${' '.repeat(boxWidth - 2)}│`);
193
+ const drawBar = (label, used, total) => {
194
+ console.log(`│ ${label.padEnd(boxWidth - 5)}│`);
195
+ if (total === -1) {
196
+ console.log(`│ Unlimited${' '.repeat(boxWidth - 13)}│`);
197
+ }
198
+ else {
199
+ const width = 18;
200
+ const percent = Math.min(100, Math.round((used / total) * 100));
201
+ const filled = Math.round((width * percent) / 100);
202
+ const empty = width - filled;
203
+ const bar = '█'.repeat(filled) + '░'.repeat(empty);
204
+ const text = `${used}/${total} (${percent}%)`;
205
+ const line = ` ${bar} ${text}`;
206
+ console.log(`│${line.padEnd(boxWidth - 2)}│`);
207
+ }
208
+ console.log(`│${' '.repeat(boxWidth - 2)}│`);
209
+ };
210
+ drawBar('Premium Requests', quota.premium.total - quota.premium.remaining, quota.premium.total);
211
+ if (quota.resetDate) {
212
+ const date = new Date(quota.resetDate);
213
+ const dateStr = date.toLocaleDateString('en-US', { month: 'long', day: 'numeric', year: 'numeric' });
214
+ console.log(`│ Resets: ${dateStr.padEnd(boxWidth - 12)}│`);
215
+ }
216
+ console.log(`╰${border}╯`);
217
+ await this.waitForKey();
218
+ }
219
+ async handleDeviceFlow() {
220
+ console.log(`\n${ANSI.cyan}Initializing Device Flow Authentication...${ANSI.reset}`);
221
+ try {
222
+ const response = await this.deviceFlow.login();
223
+ console.log(`\n${ANSI.green}Authentication Successful!${ANSI.reset}`);
224
+ console.log('Retrieving user details...');
225
+ const account = await this.accountManager.addAccount(response.access_token);
226
+ console.log(`\n${ANSI.green}Successfully added account: ${ANSI.bold}${account.username}${ANSI.reset}`);
227
+ }
228
+ catch (error) {
229
+ console.error(`\n${ANSI.red}Authentication failed: ${error.message}${ANSI.reset}`);
230
+ }
231
+ await this.waitForKey('Press Enter to continue...');
232
+ }
233
+ async manageAccounts() {
234
+ while (true) {
235
+ const accounts = this.accountManager.listAccounts();
236
+ if (accounts.length === 0) {
237
+ console.log(`\n${ANSI.yellow}No accounts to manage.${ANSI.reset}`);
238
+ await this.waitForKey();
239
+ return;
240
+ }
241
+ const items = accounts.map(acc => {
242
+ const isEnabled = acc.enabled !== false;
243
+ return {
244
+ label: acc.username,
245
+ value: acc.username,
246
+ hint: `[${acc.status}]${isEnabled ? '' : ' (Disabled)'}${acc.sku === 'no_access' ? ' [NO ACCESS]' : ''}`,
247
+ color: isEnabled && acc.status === 'active' ? 'green' : undefined
248
+ };
249
+ });
250
+ items.push({ label: '', value: 'sep', separator: true });
251
+ items.push({ label: 'Back', value: 'back' });
252
+ const username = await select(items, {
253
+ message: 'Select an account to manage:',
254
+ subtitle: `${accounts.length} accounts configured`
255
+ });
256
+ if (!username || username === 'back') {
257
+ return;
258
+ }
259
+ await this.manageSingleAccount(username);
260
+ }
261
+ }
262
+ async manageSingleAccount(username) {
263
+ const account = this.accountManager.listAccounts().find(a => a.username === username);
264
+ if (!account) {
265
+ return;
266
+ }
267
+ const isEnabled = account.enabled !== false;
268
+ const action = await select([
269
+ {
270
+ label: 'Check Access',
271
+ value: 'check_access',
272
+ hint: 'Re-verify Copilot subscription status'
273
+ },
274
+ {
275
+ label: isEnabled ? 'Disable Account' : 'Enable Account',
276
+ value: 'toggle',
277
+ color: isEnabled ? 'yellow' : 'green'
278
+ },
279
+ {
280
+ label: 'Remove Account',
281
+ value: 'remove',
282
+ color: 'red'
283
+ },
284
+ { label: 'Back', value: 'back' }
285
+ ], { message: `Manage ${ANSI.bold}${username}${ANSI.reset}:` });
286
+ if (action === 'check_access') {
287
+ console.log(`\n${ANSI.cyan}Checking access for ${username}...${ANSI.reset}`);
288
+ const updated = await this.accountManager.refreshAccountInfo(username);
289
+ if (updated) {
290
+ if (updated.sku === 'no_access') {
291
+ console.log(`${ANSI.red}Account still has no Copilot access.${ANSI.reset}`);
292
+ }
293
+ else {
294
+ console.log(`${ANSI.green}Account access verified! SKU: ${updated.sku}${ANSI.reset}`);
295
+ if (updated.status === 'active' && updated.enabled) {
296
+ console.log(`${ANSI.green}Account is now active.${ANSI.reset}`);
297
+ }
298
+ }
299
+ }
300
+ else {
301
+ console.log(`${ANSI.red}Failed to refresh account info.${ANSI.reset}`);
302
+ }
303
+ await this.waitForKey();
304
+ }
305
+ else if (action === 'toggle') {
306
+ const newState = !isEnabled;
307
+ await this.accountManager.toggleAccount(username, newState);
308
+ console.log(`\n${ANSI.green}Account ${username} is now ${newState ? 'enabled' : 'disabled'}.${ANSI.reset}`);
309
+ await new Promise(resolve => setTimeout(resolve, 1000));
310
+ }
311
+ else if (action === 'remove') {
312
+ const confirmed = await confirm(`Are you sure you want to remove ${username}?`, false);
313
+ if (confirmed) {
314
+ await this.accountManager.removeAccount(username);
315
+ console.log(`\n${ANSI.green}Account removed.${ANSI.reset}`);
316
+ await new Promise(resolve => setTimeout(resolve, 1000));
317
+ return;
318
+ }
319
+ }
320
+ }
321
+ async waitForKey(message = 'Press Enter to return...') {
322
+ console.log(`\n${ANSI.dim}${message}${ANSI.reset}`);
323
+ await new Promise(resolve => {
324
+ if (process.stdin.isTTY) {
325
+ process.stdin.setRawMode(true);
326
+ }
327
+ process.stdin.resume();
328
+ process.stdin.once('data', () => {
329
+ if (process.stdin.isTTY) {
330
+ process.stdin.setRawMode(false);
331
+ }
332
+ process.stdin.pause();
333
+ resolve();
334
+ });
335
+ });
336
+ }
337
+ async configureSettings() {
338
+ let config = await loadConfig();
339
+ while (true) {
340
+ process.stdout.write(ANSI.clearScreen);
341
+ process.stdout.write(ANSI.moveTo(1, 1));
342
+ console.log(`${ANSI.bold}${ANSI.cyan}Configure Settings${ANSI.reset}\n`);
343
+ const choice = await select([
344
+ { label: 'Change Rotation Strategy', value: 'rotation' },
345
+ { label: 'Toggle Debug Mode', value: 'debug' },
346
+ { label: 'Reset to Defaults', value: 'reset' },
347
+ { label: '', value: 'sep', separator: true },
348
+ { label: '← Back', value: 'back' }
349
+ ], {
350
+ message: 'Select a setting to configure:'
351
+ });
352
+ if (choice === 'back' || !choice) {
353
+ break;
354
+ }
355
+ switch (choice) {
356
+ case 'rotation':
357
+ config = await this.changeRotationStrategy(config);
358
+ break;
359
+ case 'debug':
360
+ config = await this.toggleDebugMode(config);
361
+ break;
362
+ case 'reset':
363
+ config = await this.resetToDefaults();
364
+ break;
365
+ }
366
+ }
367
+ }
368
+ async changeRotationStrategy(config) {
369
+ const strategy = await select([
370
+ { label: 'Round Robin (Recommended)', value: 'round-robin', hint: 'Rotates account every request' },
371
+ { label: 'Sticky', value: 'sticky', hint: 'Keeps same account for a session' },
372
+ { label: 'Least Used', value: 'least-used', hint: 'Selects account with most quota' },
373
+ { label: 'Random', value: 'random', hint: 'Selects random account' },
374
+ { label: '', value: 'sep', separator: true },
375
+ { label: 'Cancel', value: 'cancel' }
376
+ ], {
377
+ message: 'Select Rotation Strategy:'
378
+ });
379
+ if (strategy && strategy !== 'cancel' && strategy !== config.rotation_strategy) {
380
+ const newConfig = { ...config };
381
+ newConfig.rotation_strategy = strategy;
382
+ await saveConfig(newConfig);
383
+ console.log(`\n${ANSI.green}Rotation strategy updated to ${strategy}.${ANSI.reset}`);
384
+ await new Promise(resolve => setTimeout(resolve, 1000));
385
+ return newConfig;
386
+ }
387
+ return config;
388
+ }
389
+ async toggleDebugMode(config) {
390
+ const isDebug = config.logging.level === 'debug' || config.logging.level === 'trace';
391
+ const newConfig = { ...config };
392
+ newConfig.logging.level = isDebug ? 'info' : 'debug';
393
+ await saveConfig(newConfig);
394
+ console.log(`\n${ANSI.green}Debug mode ${newConfig.logging.level === 'debug' ? 'enabled' : 'disabled'}.${ANSI.reset}`);
395
+ await new Promise(resolve => setTimeout(resolve, 1000));
396
+ return newConfig;
397
+ }
398
+ async resetToDefaults() {
399
+ const confirmed = await confirm('Are you sure you want to reset all settings to defaults?', false);
400
+ if (confirmed) {
401
+ await saveConfig(DEFAULT_CONFIG);
402
+ console.log(`\n${ANSI.green}Settings reset to defaults.${ANSI.reset}`);
403
+ await new Promise(resolve => setTimeout(resolve, 1000));
404
+ return DEFAULT_CONFIG;
405
+ }
406
+ return await loadConfig();
407
+ }
408
+ }
409
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/plugin/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAiB,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,MAAM,EAAY,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,KAAK,UAAU,UAAU,CAAC,MAAqB;IAC7C,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;IACrC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,OAAO,UAAU;IAGD;IAFZ,UAAU,CAA2B;IAE7C,YAAoB,cAAqC;QAArC,mBAAc,GAAd,cAAc,CAAuB;QACvD,IAAI,CAAC,UAAU,GAAG,IAAI,wBAAwB,EAAE,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAsB;QACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAExC,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,OAAO,IAAI,EAAE,CAAC;YACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAExC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,yBAAyB,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;YAE7E,MAAM,MAAM,GAAG,MAAM,MAAM,CACzB;gBACE,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,wCAAwC,EAAE;gBAC9F,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,8BAA8B,EAAE;gBAC/E,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,sCAAsC,EAAE;gBAEtF,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,qCAAqC,EAAE;gBAC1F,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,mCAAmC,EAAE;gBAC7F,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE;aAC/C,EACD,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAC1C,CAAC;YAEF,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACjC,MAAM;YACR,CAAC;YAED,IAAI,CAAC;gBACH,QAAQ,MAAM,EAAE,CAAC;oBACf,KAAK,KAAK;wBACR,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;wBAC9B,MAAM;oBACR,KAAK,MAAM;wBACT,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;wBAC1B,MAAM;oBACR,KAAK,OAAO;wBACV,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;wBACxB,MAAM;oBAER,KAAK,QAAQ;wBACX,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;wBAC5B,MAAM;oBACR,KAAK,UAAU;wBACb,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBAC/B,MAAM;gBACV,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,GAAG,UAAW,KAAe,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;gBAChF,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;QAEpD,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,uBAAuB,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;QAEjE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,qBAAqB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC;YAE/D,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,iFAAiF,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;YAC1H,CAAC;YAED,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBAC7C,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;oBACpD,IAAI,CAAC;wBACF,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC9E,CAAC;oBAAC,MAAM,CAAC;wBACN,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;oBAClD,CAAC;gBACJ,CAAC;gBACD,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YACnD,CAAC,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAEhD,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACf,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;oBACV,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;gBAChE,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAEjE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACrB,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBACpE,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,KAAK,KAAK,CAAC;gBACxC,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,cAAc,IAAI,CAAC,KAAK,EAAE,CAAC;gBAE7E,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACzC,IAAI,QAAQ,GAAG,EAAE,CAAC;gBAClB,IAAI,WAAW,GAAG,EAAE,CAAC;gBAErB,IAAI,GAAG,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;oBAC1B,WAAW,GAAG,IAAI,IAAI,CAAC,GAAG,cAAc,IAAI,CAAC,KAAK,EAAE,CAAC;gBACzD,CAAC;gBAED,IAAI,KAAK,EAAE,CAAC;oBACR,IAAI,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;oBAC1B,IAAI,KAAK,CAAC,GAAG,KAAK,sBAAsB,EAAE,CAAC;wBACvC,QAAQ,GAAG,MAAM,CAAC;oBACtB,CAAC;oBACD,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAChE,QAAQ,GAAG,MAAM,QAAQ,OAAO,CAAC;gBACrC,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,IAAI,WAAW,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,GAAG,aAAa,GAAG,WAAW,GAAG,QAAQ,EAAE,CAAC,CAAC;gBAC9I,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,kBAAkB,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC9F,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,WAAW,GAAG,CAAC,YAAY,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBAEzE,IAAI,KAAK,EAAE,CAAC;oBACR,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;oBACtC,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;oBAC9C,MAAM,QAAQ,GAAG,SAAS,GAAG,aAAa,CAAC;oBAC3C,MAAM,OAAO,GAAG,GAAG,QAAQ,IAAI,SAAS,EAAE,CAAC;oBAE3C,IAAI,WAAW,GAAG,EAAE,CAAC;oBACrB,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;wBAChB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC;wBACnD,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC;oBAC7B,CAAC;oBAED,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,GAAG,WAAW,EAAE,CAAC,CAAC;oBAEnD,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;wBAClB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;wBACvC,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;wBACtG,OAAO,CAAC,GAAG,CAAC,aAAa,OAAO,EAAE,CAAC,CAAC;oBACxC,CAAC;gBACL,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;IAC1B,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;QACpD,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC;QAE1F,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,MAAM,qCAAqC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAC/E,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,IAAI,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAE1C,MAAM,KAAK,GAAuB,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzD,KAAK,EAAE,GAAG,CAAC,QAAQ;YACnB,KAAK,EAAE,GAAG,CAAC,QAAQ;SACtB,CAAC,CAAC,CAAC;QACJ,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAE7C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC,CAAC;QAEpF,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACrC,OAAO;QACT,CAAC;QACD,QAAQ,GAAG,QAAQ,CAAC;QAEpB,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAE,CAAC;QAEnE,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,sBAAsB,QAAQ,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC5E,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAEnD,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,iCAAiC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACxE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACxB,OAAO;QACX,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAExD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAExC,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QAExC,OAAO,CAAC,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,eAAe,QAAQ,CAAC,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QAE9D,IAAI,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC;QAC5B,IAAI,KAAK,CAAC,GAAG,KAAK,sBAAsB;YAAE,WAAW,GAAG,cAAc,CAAC;QAEvE,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1E,WAAW,IAAI,KAAK,QAAQ,GAAG,CAAC;QAEhC,IAAI,WAAW,CAAC,MAAM,GAAG,QAAQ,GAAG,EAAE;YAAE,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;QAEtG,OAAO,CAAC,GAAG,CAAC,YAAY,WAAW,CAAC,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAE7C,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,IAAY,EAAE,KAAa,EAAE,EAAE;YAC3D,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;YAC9D,CAAC;iBAAM,CAAC;gBACH,MAAM,KAAK,GAAG,EAAE,CAAC;gBACjB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;gBAChE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;gBACnD,MAAM,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;gBAC7B,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACnD,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC;gBAC9C,MAAM,IAAI,GAAG,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACnD,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACjD,CAAC,CAAC;QAEF,OAAO,CAAC,kBAAkB,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEhG,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;YACrG,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,CAAC,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACjE,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC;QAE3B,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;IAC1B,CAAC;IAIO,KAAK,CAAC,gBAAgB;QAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,6CAA6C,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAErF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YAE/C,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,6BAA6B,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACtE,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YAE1C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAE5E,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,+BAA+B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAEzG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,GAAG,0BAA2B,KAAe,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAChG,CAAC;QAED,MAAM,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC;IACtD,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;YAEpD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,MAAM,yBAAyB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBACnE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;gBACxB,OAAO;YACT,CAAC;YAED,MAAM,KAAK,GAAuB,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACnD,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,KAAK,KAAK,CAAC;gBACxC,OAAO;oBACL,KAAK,EAAE,GAAG,CAAC,QAAQ;oBACnB,KAAK,EAAE,GAAG,CAAC,QAAQ;oBACnB,IAAI,EAAE,IAAI,GAAG,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,GAAG,GAAG,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE;oBACxG,KAAK,EAAE,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;iBAClE,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACzD,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAE7C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE;gBACnC,OAAO,EAAE,8BAA8B;gBACvC,QAAQ,EAAE,GAAG,QAAQ,CAAC,MAAM,sBAAsB;aACnD,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACrC,OAAO;YACT,CAAC;YAED,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,QAAgB;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;QAEtF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC;QAE5C,MAAM,MAAM,GAAG,MAAM,MAAM,CACzB;YACE;gBACE,KAAK,EAAE,cAAc;gBACrB,KAAK,EAAE,cAAc;gBACrB,IAAI,EAAE,uCAAuC;aAC9C;YACD;gBACE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,gBAAgB;gBACvD,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO;aACtC;YACD;gBACE,KAAK,EAAE,gBAAgB;gBACvB,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,KAAK;aACb;YACD,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;SACjC,EACD,EAAE,OAAO,EAAE,UAAU,IAAI,CAAC,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAC5D,CAAC;QAEF,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,uBAAuB,QAAQ,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAC7E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAEvE,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,OAAO,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;oBAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,uCAAuC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBAChF,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,iCAAiC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;oBACtF,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;wBACjD,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,yBAAyB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;oBACpE,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,CAAC;gBACL,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,kCAAkC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAC1E,CAAC;YACD,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC;aAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,CAAC,SAAS,CAAC;YAC5B,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,WAAW,QAAQ,WAAW,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAC5G,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAC1D,CAAC;aAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,mCAAmC,QAAQ,GAAG,EAAE,KAAK,CAAC,CAAC;YAEvF,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAClD,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,mBAAmB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC5D,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;gBACxD,OAAO;YACT,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,OAAO,GAAG,0BAA0B;QAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,GAAG,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACpD,MAAM,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YAChC,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBACxB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;gBAC9B,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;oBACxB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBAClC,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBACtB,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAC7B,IAAI,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAEhC,OAAO,IAAI,EAAE,CAAC;YACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,qBAAqB,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;YAEzE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAS;gBAClC,EAAE,KAAK,EAAE,0BAA0B,EAAE,KAAK,EAAE,UAAU,EAAE;gBACxD,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,OAAO,EAAE;gBAC9C,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,OAAO,EAAE;gBAC9C,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;gBAC5C,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE;aACnC,EAAE;gBACD,OAAO,EAAE,gCAAgC;aAC1C,CAAC,CAAC;YAEH,IAAI,MAAM,KAAK,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjC,MAAM;YACR,CAAC;YAED,QAAQ,MAAM,EAAE,CAAC;gBACf,KAAK,UAAU;oBACb,MAAM,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;oBACnD,MAAM;gBACR,KAAK,OAAO;oBACV,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;oBAC5C,MAAM;gBACR,KAAK,OAAO;oBACV,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;oBACtC,MAAM;YACV,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,MAAqB;QACxD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAS;YACpC,EAAE,KAAK,EAAE,2BAA2B,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,+BAA+B,EAAE;YACnG,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,kCAAkC,EAAE;YAC9E,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,iCAAiC,EAAE;YACrF,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,wBAAwB,EAAE;YACpE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;YAC5C,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;SACrC,EAAE;YACD,OAAO,EAAE,2BAA2B;SACrC,CAAC,CAAC;QAEH,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC/E,MAAM,SAAS,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;YAChC,SAAS,CAAC,iBAAiB,GAAG,QAAe,CAAC;YAC9C,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,gCAAgC,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACrF,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YACxD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,MAAqB;QACjD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,KAAK,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC;QAErF,MAAM,SAAS,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;QAChC,SAAS,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QAErD,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,cAAc,SAAS,CAAC,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACvH,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAExD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,KAAK,CAAC,eAAe;QAC3B,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,0DAA0D,EAAE,KAAK,CAAC,CAAC;QAEnG,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,UAAU,CAAC,cAAc,CAAC,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,8BAA8B,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACvE,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YACxD,OAAO,cAAc,CAAC;QACxB,CAAC;QAED,OAAO,MAAM,UAAU,EAAE,CAAC;IAC5B,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export * from './schema.js';
2
+ export * from './loader.js';
@@ -0,0 +1,3 @@
1
+ export * from './schema.js';
2
+ export * from './loader.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugin/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { CopilotConfig } from './schema.js';
2
+ export declare function getUserConfigPath(): string;
3
+ export declare function loadConfig(): Promise<CopilotConfig>;
@@ -0,0 +1,78 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ import { homedir } from 'os';
4
+ import { createLogger } from '../logger.js';
5
+ import { CopilotConfigSchema, DEFAULT_CONFIG } from './schema.js';
6
+ const log = createLogger('config');
7
+ export function getUserConfigPath() {
8
+ if (process.env.OPENCODE_CONFIG_DIR) {
9
+ return path.join(process.env.OPENCODE_CONFIG_DIR, 'copilot.json');
10
+ }
11
+ return path.join(process.env.HOME || homedir(), '.config', 'opencode', 'copilot.json');
12
+ }
13
+ async function loadJsonFile(filePath) {
14
+ try {
15
+ if (fs.existsSync(filePath)) {
16
+ const content = await fs.promises.readFile(filePath, 'utf-8');
17
+ return JSON.parse(content);
18
+ }
19
+ }
20
+ catch (error) {
21
+ log.warn(`Failed to load config from ${filePath}:`, { error });
22
+ }
23
+ return null;
24
+ }
25
+ function isObject(item) {
26
+ return (item && typeof item === 'object' && !Array.isArray(item));
27
+ }
28
+ function deepMerge(target, source) {
29
+ const output = { ...target };
30
+ if (isObject(target) && isObject(source)) {
31
+ Object.keys(source).forEach(key => {
32
+ if (isObject(source[key])) {
33
+ if (!(key in target)) {
34
+ Object.assign(output, { [key]: source[key] });
35
+ }
36
+ else {
37
+ output[key] = deepMerge(target[key], source[key]);
38
+ }
39
+ }
40
+ else {
41
+ Object.assign(output, { [key]: source[key] });
42
+ }
43
+ });
44
+ }
45
+ return output;
46
+ }
47
+ function applyEnvOverrides(config) {
48
+ const newConfig = JSON.parse(JSON.stringify(config)); // Deep clone
49
+ // Rotation Strategy
50
+ if (process.env.COPILOT_ROTATION_STRATEGY) {
51
+ newConfig.rotation_strategy = process.env.COPILOT_ROTATION_STRATEGY;
52
+ }
53
+ if (process.env.OPENCODE_COPILOT_ROTATION_STRATEGY) {
54
+ newConfig.rotation_strategy = process.env.OPENCODE_COPILOT_ROTATION_STRATEGY;
55
+ }
56
+ // Debug / Logging
57
+ if (process.env.COPILOT_DEBUG === 'true') {
58
+ newConfig.logging.level = 'debug';
59
+ }
60
+ if (process.env.OPENCODE_COPILOT_LOGGING_LEVEL) {
61
+ newConfig.logging.level = process.env.OPENCODE_COPILOT_LOGGING_LEVEL;
62
+ }
63
+ if (process.env.OPENCODE_COPILOT_LOGGING_ENABLED) {
64
+ newConfig.logging.enabled = process.env.OPENCODE_COPILOT_LOGGING_ENABLED === 'true';
65
+ }
66
+ return newConfig;
67
+ }
68
+ export async function loadConfig() {
69
+ let config = { ...DEFAULT_CONFIG };
70
+ // 2. Load user config
71
+ const userConfig = await loadJsonFile(getUserConfigPath());
72
+ if (userConfig) {
73
+ config = deepMerge(config, userConfig);
74
+ }
75
+ config = applyEnvOverrides(config);
76
+ return CopilotConfigSchema.parse(config);
77
+ }
78
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/plugin/config/loader.ts"],"names":[],"mappings":"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"}