@0xmaxma/claude-gateway 2.0.1 → 2.0.3

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 (52) hide show
  1. package/README.md +7 -0
  2. package/dist/agent/runner.js +1 -1
  3. package/dist/agent/runner.js.map +1 -1
  4. package/dist/cli/commands/doctor.d.ts +1 -1
  5. package/dist/cli/commands/doctor.d.ts.map +1 -1
  6. package/dist/cli/commands/doctor.js +40 -2
  7. package/dist/cli/commands/doctor.js.map +1 -1
  8. package/dist/cli/dependencies.d.ts +22 -0
  9. package/dist/cli/dependencies.d.ts.map +1 -0
  10. package/dist/cli/dependencies.js +105 -0
  11. package/dist/cli/dependencies.js.map +1 -0
  12. package/dist/cli/index.js +2 -2
  13. package/dist/cli/index.js.map +1 -1
  14. package/dist/cli/startup-diagnostics.d.ts +15 -0
  15. package/dist/cli/startup-diagnostics.d.ts.map +1 -0
  16. package/dist/cli/startup-diagnostics.js +266 -0
  17. package/dist/cli/startup-diagnostics.js.map +1 -0
  18. package/dist/orchestration/bridge.d.ts +1 -0
  19. package/dist/orchestration/bridge.d.ts.map +1 -1
  20. package/dist/orchestration/bridge.js +7 -0
  21. package/dist/orchestration/bridge.js.map +1 -1
  22. package/dist/orchestration/process-turn.js +1 -1
  23. package/dist/orchestration/process-turn.js.map +1 -1
  24. package/dist/orchestration/runtime.d.ts +1 -1
  25. package/dist/orchestration/runtime.d.ts.map +1 -1
  26. package/dist/orchestration/runtime.js +45 -15
  27. package/dist/orchestration/runtime.js.map +1 -1
  28. package/dist/orchestration/store.d.ts.map +1 -1
  29. package/dist/orchestration/store.js +31 -1
  30. package/dist/orchestration/store.js.map +1 -1
  31. package/dist/orchestration/task-questions.d.ts +23 -5
  32. package/dist/orchestration/task-questions.d.ts.map +1 -1
  33. package/dist/orchestration/task-questions.js +126 -54
  34. package/dist/orchestration/task-questions.js.map +1 -1
  35. package/dist/orchestration/tasks/service.d.ts +2 -0
  36. package/dist/orchestration/tasks/service.d.ts.map +1 -1
  37. package/dist/orchestration/tasks/service.js +4 -0
  38. package/dist/orchestration/tasks/service.js.map +1 -1
  39. package/dist/voice/errors.d.ts +1 -1
  40. package/dist/voice/errors.d.ts.map +1 -1
  41. package/dist/voice/errors.js +4 -1
  42. package/dist/voice/errors.js.map +1 -1
  43. package/dist/voice/line-audio.d.ts.map +1 -1
  44. package/dist/voice/line-audio.js +14 -1
  45. package/dist/voice/line-audio.js.map +1 -1
  46. package/dist/voice/providers/gemini.js +1 -1
  47. package/dist/voice/providers/gemini.js.map +1 -1
  48. package/dist/voice/session.d.ts.map +1 -1
  49. package/dist/voice/session.js +7 -1
  50. package/dist/voice/session.js.map +1 -1
  51. package/mcp/tools/tasks/module.ts +1 -0
  52. package/package.json +1 -1
@@ -1,3 +1,3 @@
1
1
  import { CliConfigView } from '../http-client';
2
- export declare function runDoctor(flags: Record<string, string | boolean>, config: CliConfigView): Promise<number>;
2
+ export declare function runDoctor(flags: Record<string, string | boolean>, config: CliConfigView, positionals?: string[]): Promise<number>;
3
3
  //# sourceMappingURL=doctor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA2C,MAAM,gBAAgB,CAAC;AAyCxF,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAqK/G"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAA0D,MAAM,gBAAgB,CAAC;AA4CvG,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAmM3I"}
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.runDoctor = runDoctor;
4
+ const startup_diagnostics_1 = require("../startup-diagnostics");
5
+ const dependencies_1 = require("../dependencies");
6
+ const prompt_1 = require("../prompt");
7
+ const args_1 = require("../args");
4
8
  const http_client_1 = require("../http-client");
5
9
  const health_1 = require("../health");
6
10
  const manager_1 = require("../manager");
@@ -9,17 +13,51 @@ const colors_1 = require("../colors");
9
13
  const url_1 = require("../../cli-viewer/url");
10
14
  function printHelp() {
11
15
  const c = (0, colors_1.paletteFor)((0, output_1.helpStream)(true));
12
- (0, output_1.writeCommandHelp)(true, 'doctor', 'check config, key resolution, manager and connectivity', 'claude-gateway doctor [--url <url>] [--key <key>] [--config <path>] [--json]', [
16
+ (0, output_1.writeCommandHelp)(true, 'doctor', 'check startup, dependencies and connectivity; explicitly repair local setup', 'claude-gateway doctor [fix] [--yes] [--url <url>] [--key <key>] [--config <path>] [--json]', [
13
17
  ` Exits 0 when every check passes. Rows marked ${c.dim('[--]')} are informational and ${c.yellow('[warn]')}`,
14
18
  ' rows are advisory — neither fails the command. The key itself is never printed.',
19
+ ' fix: back up and repair owner config permissions/BOM, create missing logs, reset a failed user service,',
20
+ ' and install missing ffmpeg/ffprobe. No automatic start/restart or credential changes.',
21
+ ' --yes confirms repair in scripts. Remote-target diagnosis never repairs this host.',
15
22
  ]);
16
23
  }
17
- async function runDoctor(flags, config) {
24
+ async function runDoctor(flags, config, positionals = []) {
18
25
  if (flags.help === true) {
19
26
  printHelp();
20
27
  return 0;
21
28
  }
29
+ if (positionals.length > 1 || (positionals.length === 1 && positionals[0] !== 'fix') || (0, args_1.unknownFlagNames)(flags, new Set(['help', 'json', 'yes', 'url', 'key', 'config'])).length) {
30
+ process.stderr.write('Usage: claude-gateway doctor [fix] [--yes] [--config <path>] [--json]\n');
31
+ return 1;
32
+ }
33
+ for (const name of ['config', 'url', 'key']) {
34
+ if (flags[name] !== undefined && (typeof flags[name] !== 'string' || !flags[name].trim())) {
35
+ process.stderr.write(`--${name} requires a nonempty value. No repairs performed.\n`);
36
+ return 1;
37
+ }
38
+ }
39
+ const fixing = positionals[0] === 'fix';
22
40
  const checks = [];
41
+ if (fixing && (typeof flags.url === 'string' || !!process.env.CLAUDE_GATEWAY_URL)) {
42
+ process.stderr.write('doctor fix operates locally. Remove --url / CLAUDE_GATEWAY_URL and run it on the gateway host.\n');
43
+ return 1;
44
+ }
45
+ // Explicit remote targets never cause local disk, package or service changes.
46
+ const localDiagnostics = !flags.url && !process.env.CLAUDE_GATEWAY_URL;
47
+ if (localDiagnostics) {
48
+ const file = (0, startup_diagnostics_1.doctorConfigPath)(flags);
49
+ if (fixing) {
50
+ if (!await (0, prompt_1.confirmAction)(flags, 'repair local gateway setup', 'Repair local config permissions/encoding, missing logs, failed user-service state and install missing ffmpeg/ffprobe?'))
51
+ return 1;
52
+ checks.push(...(0, startup_diagnostics_1.repairStartup)(file), ...(0, startup_diagnostics_1.repairUserService)());
53
+ const repaired = await (0, dependencies_1.repairVoiceDependencies)();
54
+ checks.push({ name: 'voiceDependencyRepair', ok: repaired.ok, detail: repaired.detail });
55
+ config = (0, http_client_1.loadCliConfig)(file);
56
+ }
57
+ checks.push(...(0, startup_diagnostics_1.inspectStartup)(file), ...(0, startup_diagnostics_1.inspectUserService)());
58
+ for (const dependency of await (0, dependencies_1.checkDependencies)())
59
+ checks.push({ name: dependency.name, ok: dependency.ok, detail: dependency.detail, warn: !dependency.ok && !dependency.required });
60
+ }
23
61
  const hasKeys = !!(config.keys && config.keys.length);
24
62
  checks.push({ name: 'config', ok: hasKeys, detail: hasKeys ? `${config.keys.length} api key(s)` : 'no config / no api keys found' });
25
63
  const key = (0, http_client_1.resolveKey)({ flagKey: typeof flags.key === 'string' ? flags.key : undefined, env: process.env, config });
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ export interface DependencyCheck {
2
+ name: string;
3
+ ok: boolean;
4
+ detail: string;
5
+ required: boolean;
6
+ }
7
+ export type DependencyRunner = (file: string, args: string[], timeout: number) => Promise<string>;
8
+ export interface DependencyOptions {
9
+ run?: DependencyRunner;
10
+ platform?: NodeJS.Platform;
11
+ nodeVersion?: string;
12
+ uid?: number;
13
+ }
14
+ export declare function checkDependencies(options?: DependencyOptions): Promise<DependencyCheck[]>;
15
+ export interface DependencyRepair {
16
+ ok: boolean;
17
+ detail: string;
18
+ checks: DependencyCheck[];
19
+ }
20
+ /** Explicit doctor fix only. Never invoked by probes or voice requests. */
21
+ export declare function repairVoiceDependencies(options?: DependencyOptions): Promise<DependencyRepair>;
22
+ //# sourceMappingURL=dependencies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../src/cli/dependencies.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE;AACjG,MAAM,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAClG,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,EAAE,gBAAgB,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AA+BD,wBAAsB,iBAAiB,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CASnG;AACD,MAAM,WAAW,gBAAgB;IAAG,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,eAAe,EAAE,CAAA;CAAE;AAE5F,2EAA2E;AAC3E,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAIlG"}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkDependencies = checkDependencies;
4
+ exports.repairVoiceDependencies = repairVoiceDependencies;
5
+ const child_process_1 = require("child_process");
6
+ const runCommand = (file, args, timeout) => new Promise((resolve, reject) => {
7
+ // Gracefully ask the direct child to stop. sudo/package-manager descendants
8
+ // may still be finishing; never claim a process-tree termination guarantee.
9
+ let watchdog;
10
+ let completed = false;
11
+ const child = (0, child_process_1.execFile)(file, args, { timeout, killSignal: 'SIGTERM', maxBuffer: 256 * 1024, encoding: 'utf8',
12
+ env: { ...process.env, DEBIAN_FRONTEND: 'noninteractive' } }, (error, stdout) => {
13
+ completed = true;
14
+ if (watchdog)
15
+ clearTimeout(watchdog);
16
+ if (error)
17
+ reject(error);
18
+ else
19
+ resolve(stdout);
20
+ });
21
+ // execFile can wait indefinitely if a child ignores TERM or descendants hold
22
+ // its pipes. Bound the doctor's wait without force-killing package writes.
23
+ child.stdin?.end();
24
+ if (completed)
25
+ return;
26
+ watchdog = setTimeout(() => {
27
+ child.kill('SIGTERM');
28
+ child.stdin?.destroy();
29
+ child.stdout?.destroy();
30
+ child.stderr?.destroy();
31
+ child.unref();
32
+ reject(Object.assign(new Error('Dependency command timed out'), { code: 'DEPENDENCY_COMMAND_TIMEOUT' }));
33
+ }, timeout + 1000);
34
+ });
35
+ async function probe(name, run, required) {
36
+ try {
37
+ const output = await run(name, [name === 'ffmpeg' || name === 'ffprobe' ? '-version' : '--version'], 5000);
38
+ return { name, ok: true, required, detail: output.trim().split('\n')[0].slice(0, 160) || 'Available' };
39
+ }
40
+ catch {
41
+ return { name, ok: false, required, detail: `${name} is missing or cannot run in this environment's PATH.` };
42
+ }
43
+ }
44
+ async function checkDependencies(options = {}) {
45
+ const version = options.nodeVersion ?? process.versions.node;
46
+ const node = { name: 'node', ok: Number(version.split('.')[0]) >= 22, required: true,
47
+ detail: `Node.js ${version}; requires Node.js 22 or newer.` };
48
+ const checks = [node];
49
+ for (const name of ['claude', 'bun', 'ffmpeg', 'ffprobe']) {
50
+ checks.push(await probe(name, options.run ?? runCommand, name === 'claude' || name === 'bun'));
51
+ }
52
+ return checks;
53
+ }
54
+ let activeRepair;
55
+ /** Explicit doctor fix only. Never invoked by probes or voice requests. */
56
+ function repairVoiceDependencies(options = {}) {
57
+ if (activeRepair)
58
+ return activeRepair;
59
+ activeRepair = repair(options).finally(() => { activeRepair = undefined; });
60
+ return activeRepair;
61
+ }
62
+ async function repair(options) {
63
+ const run = options.run ?? runCommand;
64
+ const checks = await Promise.all(['ffmpeg', 'ffprobe'].map(name => probe(name, run, false)));
65
+ if (checks.every(check => check.ok))
66
+ return { ok: true, detail: 'ffmpeg and ffprobe are already available.', checks };
67
+ const platform = options.platform ?? process.platform;
68
+ let file, args, updateArgs;
69
+ if (platform === 'darwin') {
70
+ file = 'brew';
71
+ args = ['install', 'ffmpeg'];
72
+ }
73
+ else if (platform === 'linux') {
74
+ if (!(await probe('apt-get', run, false)).ok)
75
+ return { ok: false,
76
+ detail: 'Automatic repair requires apt-get on Linux. Install the ffmpeg package with your system package manager, then run claude-gateway doctor.', checks };
77
+ const root = (options.uid ?? process.getuid?.()) === 0;
78
+ file = root ? 'apt-get' : 'sudo';
79
+ updateArgs = root ? ['update'] : ['-n', 'apt-get', 'update'];
80
+ args = root ? ['install', '-y', 'ffmpeg'] : ['-n', 'apt-get', 'install', '-y', 'ffmpeg'];
81
+ }
82
+ else
83
+ return { ok: false, detail: 'Install ffmpeg and ffprobe using your operating system package manager, add them to PATH, then run claude-gateway doctor.', checks };
84
+ try {
85
+ if (updateArgs)
86
+ await run(file, updateArgs, 120000);
87
+ await run(file, args, 120000);
88
+ }
89
+ catch (error) {
90
+ const failure = error;
91
+ if (failure.code === 'DEPENDENCY_COMMAND_TIMEOUT' || failure.code === 'ETIMEDOUT' || failure.killed || failure.signal) {
92
+ return { ok: false, checks, detail: platform === 'linux'
93
+ ? 'Package installation was interrupted or timed out. Package-manager processes may still be running; wait for them to finish and do not remove lock files. If dpkg reports an interrupted configuration, ask an administrator to run sudo dpkg --configure -a, then sudo apt-get install -y ffmpeg. Run claude-gateway doctor again.'
94
+ : 'Package installation was interrupted or timed out. Homebrew processes may still be running; wait for them to finish, then run brew install ffmpeg and claude-gateway doctor again.' };
95
+ }
96
+ return { ok: false, checks,
97
+ detail: platform === 'darwin'
98
+ ? 'Could not install ffmpeg. Install Homebrew if needed, then run: brew install ffmpeg. Run claude-gateway doctor again.'
99
+ : 'Could not install ffmpeg without prompting. Ask an administrator to run: sudo apt-get update && sudo apt-get install -y ffmpeg. Run claude-gateway doctor again.' };
100
+ }
101
+ const after = await Promise.all(['ffmpeg', 'ffprobe'].map(name => probe(name, run, false)));
102
+ return { ok: after.every(check => check.ok), checks: after,
103
+ detail: after.every(check => check.ok) ? 'ffmpeg and ffprobe are ready.' : 'Installation completed, but ffmpeg or ffprobe is still unavailable in PATH. Run claude-gateway doctor in the gateway service environment.' };
104
+ }
105
+ //# sourceMappingURL=dependencies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../src/cli/dependencies.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -128,7 +128,7 @@ async function runCli(argv) {
128
128
  case 'claude':
129
129
  return await (0, update_1.runClaude)(positionals, flags);
130
130
  case 'doctor':
131
- return await (0, doctor_1.runDoctor)(flags, config);
131
+ return await (0, doctor_1.runDoctor)(flags, config, positionals);
132
132
  case 'debug-bundle':
133
133
  return await (0, debug_bundle_1.runDebugBundle)(flags);
134
134
  case 'agents':
@@ -330,7 +330,7 @@ exports.CORE_HELP = [
330
330
  ['app install', 'Install an app from the registry, GitHub, or a local path'],
331
331
  ['update [check]', 'Check for / install a newer claude-gateway'],
332
332
  ['claude version|update [check]', 'Inspect / update the Claude Code binary'],
333
- ['doctor', 'Check config/env/connectivity'],
333
+ ['doctor', 'Check startup/dependencies; fix local setup'],
334
334
  ['debug-bundle', 'Write a small redacted diagnostics bundle'],
335
335
  ['agents list|create|update', 'Create/manage agents (interactive wizard)'],
336
336
  ['tasks list|show|watch|cancel', 'Inspect and cancel orchestration tasks'],
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DA,wBA4DC;AAwND,0BAGC;AAnVD,2CAA6B;AAC7B,iCAAwD;AACxD,6DAA2E;AAE3E,+CAAkG;AAClG,qCAAqE;AACrE,qCAA6C;AAC7C,gDAAyD;AACzD,gDAAgD;AAChD,wCAAwC;AACxC,8CAAyD;AACzD,8CAA8C;AAC9C,0DAAyD;AACzD,8CAA8C;AAC9C,kDAAkD;AAClD,4CAA4C;AAE5C;;;;;;;;;;wBAUwB;AACxB,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AACzG;;;;;;;;;iEASiE;AACjE,MAAM,iBAAiB,GAAwB,IAAI,GAAG,CAAC;IACrD,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,QAAQ;IACR,MAAM;CACP,CAAC,CAAC;AACH,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;AACvD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;AAEhE;;;;;;;GAOG;AACI,KAAK,UAAU,MAAM,CAAC,IAAc;IACzC,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,IAAA,mBAAY,EAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;IACxE,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;IAErC,IAAI,CAAC,OAAO,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1C,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,CAAC;QAC3C,OAAO,CAAC,CAAC;IACX,CAAC;IACD,6EAA6E;IAC7E,uEAAuE;IACvE,2EAA2E;IAC3E,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,2BAAa,EAAC,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAE1F,IAAI,CAAC;QACH,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,KAAK;gBACR,OAAO,MAAM,iBAAiB,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAC7D,KAAK,SAAS;gBACZ,OAAO,MAAM,IAAA,6BAAmB,EAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAC/D,KAAK,SAAS;gBACZ,OAAO,MAAM,IAAA,oBAAU,EAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YACtD,KAAK,KAAK;gBACR,OAAO,MAAM,IAAA,YAAM,EAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAClD,KAAK,QAAQ;gBACX,OAAO,MAAM,IAAA,kBAAS,EAAC,gBAAgB,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;YAC/D,KAAK,QAAQ;gBACX,OAAO,MAAM,IAAA,kBAAS,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAC7C,KAAK,QAAQ;gBACX,OAAO,MAAM,IAAA,kBAAS,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACxC,KAAK,cAAc;gBACjB,OAAO,MAAM,IAAA,6BAAc,EAAC,KAAK,CAAC,CAAC;YACrC,KAAK,QAAQ;gBACX,OAAO,MAAM,IAAA,kBAAS,EAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YACrD,KAAK,OAAO;gBACV,OAAO,MAAM,IAAA,gBAAQ,EAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YACpD,KAAK,UAAU;gBACb,OAAO,MAAM,IAAA,sBAAW,EAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACzD,CAAC;QAED,8BAA8B;QAC9B,IAAI,CAAC,oCAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,OAAO,MAAM,CAAC,CAAC;YACxD,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACxB,OAAO,CAAC,CAAC;QACX,CAAC;QACD,OAAO,MAAM,kBAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACnE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAW,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;QAC3D,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,IAAY,EACZ,IAAc,EACd,QAAiB,EACjB,MAAqB;IAErB,0EAA0E;IAC1E,0EAA0E;IAC1E,MAAM,IAAI,GAAG,IAAA,mBAAY,EAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACrE,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,uEAAuE;QACvE,0DAA0D;QAC1D,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC9B,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IACD,MAAM,GAAG,GAAG,uCAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC/E,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC;QAC7D,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,yEAAyE;IACzE,qEAAqE;IACrE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,oBAAoB,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClH,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,IAAA,mBAAY,EAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAChE,MAAM,eAAe,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7C,uBAAuB;IACvB,IAAI,eAAe,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,OAAO,MAAM,CAAC,CAAC;QAC5D,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC;IACvB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;QAChC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,EAAE,EAAE,kBAAkB,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;IAEH,uBAAuB;IACvB,MAAM,KAAK,GAAuC,EAAE,CAAC;IACrD,IAAI,IAAyC,CAAC;IAC9C,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACnC,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;YACjE,OAAO,CAAC,CAAC;QACX,CAAC;QACD,0EAA0E;QAC1E,sEAAsE;QACtE,gCAAgC;QAChC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;YACjE,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,GAAG,MAAiC,CAAC;IAC3C,CAAC;IACD,MAAM,OAAO,GAAG,IAAA,uBAAgB,EAAC,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,iBAAiB,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1G,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,yEAAyE;QACzE,wEAAwE;QACxE,wEAAwE;QACxE,uEAAuE;QACvE,oDAAoD;QACpD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvF,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,eAAe,GAAa,EAAE,CAAC;IACrC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAE,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACjF,SAAS;QACX,CAAC;QACD,IAAI,CAAC,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC;YACrB,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;QAClE,CAAC;IACH,CAAC;IACD,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACnF,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,IAAA,4BAAc,EAAC,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3G,MAAM,GAAG,GAAG,IAAA,wBAAU,EAAC,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IAClF,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAO,EAAC;QAC3B,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,IAAI,EAAE,OAAO;QACb,OAAO;QACP,eAAe,EAAE,WAAW;QAC5B,GAAG;QACH,KAAK;QACL,IAAI,EAAE,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;KAC9C,CAAC,CAAC;IACH,IAAA,oBAAW,EAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC9C,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,WAAqB,EACrB,KAAuC,EACvC,MAAqB;IAErB,MAAM,MAAM,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACpD,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAC/C,sEAAsE;QACtE,IAAA,yBAAgB,EACd,KAAK,CAAC,IAAI,KAAK,IAAI,EACnB,KAAK,EACL,mDAAmD,EACnD,kEAAkE,CACnE,CAAC;QACF,OAAO,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACrE,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,IAAa,CAAC;IAClB,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC9D,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IACD,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,IAAA,4BAAc,EAAC,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3G,MAAM,GAAG,GAAG,IAAA,wBAAU,EAAC,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IAClF,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAO,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1G,IAAA,oBAAW,EAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC9C,OAAO,CAAC,CAAC;AACX,CAAC;AAED,iFAAiF;AAEjF,SAAS,OAAO,CAAC,CAA+B;IAC9C,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/C,CAAC;AAED,SAAS,WAAW;IAClB,IAAI,CAAC;QACH,uDAAuD;QACvD,8DAA8D;QAC9D,OAAQ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAyB,CAAC,OAAO,CAAC;IACpG,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,CAAmB;IACnC,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK;SACpB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC;SAChG,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,OAAO,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;AAC5G,CAAC;AAED;;;;uEAIuE;AAC1D,QAAA,MAAM,GAAG,EAAE,CAAC;AAEzB;2EAC2E;AAC9D,QAAA,WAAW,GAAG,EAAE,CAAC;AAEjB,QAAA,SAAS,GAA6C;IACjE,CAAC,6BAA6B,EAAE,4CAA4C,CAAC;IAC7E,6EAA6E;IAC7E,8EAA8E;IAC9E,0EAA0E;IAC1E,8EAA8E;IAC9E,uEAAuE;IACvE,CAAC,cAAc,EAAE,oDAAoD,CAAC;IACtE,CAAC,kCAAkC,EAAE,kDAAkD,CAAC;IACxF,4EAA4E;IAC5E,wEAAwE;IACxE,gEAAgE;IAChE,CAAC,4BAA4B,EAAE,6DAA6D,CAAC;IAC7F,CAAC,UAAU,EAAE,sCAAsC,CAAC;IACpD,CAAC,kCAAkC,EAAE,0CAA0C,CAAC;IAChF,CAAC,aAAa,EAAE,2DAA2D,CAAC;IAC5E,CAAC,gBAAgB,EAAE,4CAA4C,CAAC;IAChE,CAAC,+BAA+B,EAAE,yCAAyC,CAAC;IAC5E,CAAC,QAAQ,EAAE,+BAA+B,CAAC;IAC3C,CAAC,cAAc,EAAE,2CAA2C,CAAC;IAC7D,CAAC,2BAA2B,EAAE,2CAA2C,CAAC;IAC1E,CAAC,8BAA8B,EAAE,wCAAwC,CAAC;IAC1E,CAAC,+BAA+B,EAAE,yDAAyD,CAAC;IAC5F,CAAC,qBAAqB,EAAE,2CAA2C,CAAC;IACpE,CAAC,SAAS,EAAE,2BAA2B,CAAC;CACzC,CAAC;AAEF;;;;+DAI+D;AAC/D,SAAgB,OAAO,CAAC,IAAY,EAAE,IAAY,EAAE,KAAY,EAAE,KAAK,GAAG,cAAM;IAC9E,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK;QAAE,OAAO,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IACvF,OAAO,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAkB;IAC1C,MAAM,KAAK,GAAG,CAAC,GAAG,oCAAe,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,SAAS,CAAC,CAAC;IACrC,MAAM,CAAC,GAAG,IAAA,mBAAU,EAAC,MAAM,CAAC,CAAC;IAC7B,+FAA+F;IAC/F,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAC9B,yEAAyE;IACzE,wEAAwE;IACxE,iCAAiC;IACjC,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACvC,MAAM,MAAM,GACV,OAAO,KAAK,SAAS;QACnB,CAAC,CAAC,GAAG,IAAI,oDAAoD;QAC7D,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,oDAAoD,CAAC;IAC1F,MAAM,KAAK,GAAG;QACZ,MAAM;QACN,EAAE;QACF,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,4CAA4C;QAC/D,EAAE;QACF,CAAC,CAAC,IAAI,CAAC,sCAAsC,CAAC;QAC9C,GAAG,OAAO,CAAC,eAAe,EAAE,2DAA2D,EAAE,CAAC,CAAC,KAAK,CAAC;QACjG,EAAE;QACF,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACxB,GAAG,iBAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACvD,EAAE;QACF,GAAG,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC3E,2DAA2D;QAC3D,EAAE;QACF,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,oFAAoF;KAC/G,CAAC;IACF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,aAAa,CAAC,IAAY,EAAE,SAAkB;IACrD,MAAM,IAAI,GAAG,uCAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,SAAS,CAAC,CAAC;IACrC,MAAM,CAAC,GAAG,IAAA,mBAAU,EAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IAC9E,KAAK,MAAM,CAAC,IAAI,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,mBAAW,CAAC,CAAC,CAAC;IAC1F,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAmB,EAAE,SAAkB;IAC/D,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,SAAS,CAAC,CAAC;IACrC,MAAM,CAAC,GAAG,IAAA,mBAAU,EAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG;QACZ,GAAG,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;QACpD,EAAE;QACF,KAAK,CAAC,CAAC,OAAO,EAAE;QAChB,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE;KACzD,CAAC;IACF,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QACvH,CAAC;IACH,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DA,wBA4DC;AAwND,0BAGC;AAnVD,2CAA6B;AAC7B,iCAAwD;AACxD,6DAA2E;AAE3E,+CAAkG;AAClG,qCAAqE;AACrE,qCAA6C;AAC7C,gDAAyD;AACzD,gDAAgD;AAChD,wCAAwC;AACxC,8CAAyD;AACzD,8CAA8C;AAC9C,0DAAyD;AACzD,8CAA8C;AAC9C,kDAAkD;AAClD,4CAA4C;AAE5C;;;;;;;;;;wBAUwB;AACxB,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AACzG;;;;;;;;;iEASiE;AACjE,MAAM,iBAAiB,GAAwB,IAAI,GAAG,CAAC;IACrD,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,QAAQ;IACR,MAAM;CACP,CAAC,CAAC;AACH,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;AACvD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;AAEhE;;;;;;;GAOG;AACI,KAAK,UAAU,MAAM,CAAC,IAAc;IACzC,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,IAAA,mBAAY,EAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;IACxE,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;IAErC,IAAI,CAAC,OAAO,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1C,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,CAAC;QAC3C,OAAO,CAAC,CAAC;IACX,CAAC;IACD,6EAA6E;IAC7E,uEAAuE;IACvE,2EAA2E;IAC3E,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,2BAAa,EAAC,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAE1F,IAAI,CAAC;QACH,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,KAAK;gBACR,OAAO,MAAM,iBAAiB,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAC7D,KAAK,SAAS;gBACZ,OAAO,MAAM,IAAA,6BAAmB,EAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAC/D,KAAK,SAAS;gBACZ,OAAO,MAAM,IAAA,oBAAU,EAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YACtD,KAAK,KAAK;gBACR,OAAO,MAAM,IAAA,YAAM,EAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAClD,KAAK,QAAQ;gBACX,OAAO,MAAM,IAAA,kBAAS,EAAC,gBAAgB,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;YAC/D,KAAK,QAAQ;gBACX,OAAO,MAAM,IAAA,kBAAS,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAC7C,KAAK,QAAQ;gBACX,OAAO,MAAM,IAAA,kBAAS,EAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YACrD,KAAK,cAAc;gBACjB,OAAO,MAAM,IAAA,6BAAc,EAAC,KAAK,CAAC,CAAC;YACrC,KAAK,QAAQ;gBACX,OAAO,MAAM,IAAA,kBAAS,EAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YACrD,KAAK,OAAO;gBACV,OAAO,MAAM,IAAA,gBAAQ,EAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YACpD,KAAK,UAAU;gBACb,OAAO,MAAM,IAAA,sBAAW,EAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACzD,CAAC;QAED,8BAA8B;QAC9B,IAAI,CAAC,oCAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,OAAO,MAAM,CAAC,CAAC;YACxD,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACxB,OAAO,CAAC,CAAC;QACX,CAAC;QACD,OAAO,MAAM,kBAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACnE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAW,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;QAC3D,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,IAAY,EACZ,IAAc,EACd,QAAiB,EACjB,MAAqB;IAErB,0EAA0E;IAC1E,0EAA0E;IAC1E,MAAM,IAAI,GAAG,IAAA,mBAAY,EAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACrE,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,uEAAuE;QACvE,0DAA0D;QAC1D,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC9B,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IACD,MAAM,GAAG,GAAG,uCAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC/E,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC;QAC7D,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,yEAAyE;IACzE,qEAAqE;IACrE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,oBAAoB,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClH,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,IAAA,mBAAY,EAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAChE,MAAM,eAAe,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7C,uBAAuB;IACvB,IAAI,eAAe,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,OAAO,MAAM,CAAC,CAAC;QAC5D,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC;IACvB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;QAChC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,EAAE,EAAE,kBAAkB,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;IAEH,uBAAuB;IACvB,MAAM,KAAK,GAAuC,EAAE,CAAC;IACrD,IAAI,IAAyC,CAAC;IAC9C,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACnC,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;YACjE,OAAO,CAAC,CAAC;QACX,CAAC;QACD,0EAA0E;QAC1E,sEAAsE;QACtE,gCAAgC;QAChC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;YACjE,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,GAAG,MAAiC,CAAC;IAC3C,CAAC;IACD,MAAM,OAAO,GAAG,IAAA,uBAAgB,EAAC,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,iBAAiB,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1G,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,yEAAyE;QACzE,wEAAwE;QACxE,wEAAwE;QACxE,uEAAuE;QACvE,oDAAoD;QACpD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvF,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,eAAe,GAAa,EAAE,CAAC;IACrC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAE,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACjF,SAAS;QACX,CAAC;QACD,IAAI,CAAC,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC;YACrB,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;QAClE,CAAC;IACH,CAAC;IACD,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACnF,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,IAAA,4BAAc,EAAC,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3G,MAAM,GAAG,GAAG,IAAA,wBAAU,EAAC,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IAClF,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAO,EAAC;QAC3B,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,IAAI,EAAE,OAAO;QACb,OAAO;QACP,eAAe,EAAE,WAAW;QAC5B,GAAG;QACH,KAAK;QACL,IAAI,EAAE,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;KAC9C,CAAC,CAAC;IACH,IAAA,oBAAW,EAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC9C,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,WAAqB,EACrB,KAAuC,EACvC,MAAqB;IAErB,MAAM,MAAM,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACpD,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAC/C,sEAAsE;QACtE,IAAA,yBAAgB,EACd,KAAK,CAAC,IAAI,KAAK,IAAI,EACnB,KAAK,EACL,mDAAmD,EACnD,kEAAkE,CACnE,CAAC;QACF,OAAO,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACrE,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,IAAa,CAAC;IAClB,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC9D,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IACD,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,IAAA,4BAAc,EAAC,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3G,MAAM,GAAG,GAAG,IAAA,wBAAU,EAAC,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IAClF,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAO,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1G,IAAA,oBAAW,EAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC9C,OAAO,CAAC,CAAC;AACX,CAAC;AAED,iFAAiF;AAEjF,SAAS,OAAO,CAAC,CAA+B;IAC9C,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/C,CAAC;AAED,SAAS,WAAW;IAClB,IAAI,CAAC;QACH,uDAAuD;QACvD,8DAA8D;QAC9D,OAAQ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAyB,CAAC,OAAO,CAAC;IACpG,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,CAAmB;IACnC,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK;SACpB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC;SAChG,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,OAAO,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;AAC5G,CAAC;AAED;;;;uEAIuE;AAC1D,QAAA,MAAM,GAAG,EAAE,CAAC;AAEzB;2EAC2E;AAC9D,QAAA,WAAW,GAAG,EAAE,CAAC;AAEjB,QAAA,SAAS,GAA6C;IACjE,CAAC,6BAA6B,EAAE,4CAA4C,CAAC;IAC7E,6EAA6E;IAC7E,8EAA8E;IAC9E,0EAA0E;IAC1E,8EAA8E;IAC9E,uEAAuE;IACvE,CAAC,cAAc,EAAE,oDAAoD,CAAC;IACtE,CAAC,kCAAkC,EAAE,kDAAkD,CAAC;IACxF,4EAA4E;IAC5E,wEAAwE;IACxE,gEAAgE;IAChE,CAAC,4BAA4B,EAAE,6DAA6D,CAAC;IAC7F,CAAC,UAAU,EAAE,sCAAsC,CAAC;IACpD,CAAC,kCAAkC,EAAE,0CAA0C,CAAC;IAChF,CAAC,aAAa,EAAE,2DAA2D,CAAC;IAC5E,CAAC,gBAAgB,EAAE,4CAA4C,CAAC;IAChE,CAAC,+BAA+B,EAAE,yCAAyC,CAAC;IAC5E,CAAC,QAAQ,EAAE,6CAA6C,CAAC;IACzD,CAAC,cAAc,EAAE,2CAA2C,CAAC;IAC7D,CAAC,2BAA2B,EAAE,2CAA2C,CAAC;IAC1E,CAAC,8BAA8B,EAAE,wCAAwC,CAAC;IAC1E,CAAC,+BAA+B,EAAE,yDAAyD,CAAC;IAC5F,CAAC,qBAAqB,EAAE,2CAA2C,CAAC;IACpE,CAAC,SAAS,EAAE,2BAA2B,CAAC;CACzC,CAAC;AAEF;;;;+DAI+D;AAC/D,SAAgB,OAAO,CAAC,IAAY,EAAE,IAAY,EAAE,KAAY,EAAE,KAAK,GAAG,cAAM;IAC9E,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK;QAAE,OAAO,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IACvF,OAAO,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAkB;IAC1C,MAAM,KAAK,GAAG,CAAC,GAAG,oCAAe,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,SAAS,CAAC,CAAC;IACrC,MAAM,CAAC,GAAG,IAAA,mBAAU,EAAC,MAAM,CAAC,CAAC;IAC7B,+FAA+F;IAC/F,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAC9B,yEAAyE;IACzE,wEAAwE;IACxE,iCAAiC;IACjC,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACvC,MAAM,MAAM,GACV,OAAO,KAAK,SAAS;QACnB,CAAC,CAAC,GAAG,IAAI,oDAAoD;QAC7D,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,oDAAoD,CAAC;IAC1F,MAAM,KAAK,GAAG;QACZ,MAAM;QACN,EAAE;QACF,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,4CAA4C;QAC/D,EAAE;QACF,CAAC,CAAC,IAAI,CAAC,sCAAsC,CAAC;QAC9C,GAAG,OAAO,CAAC,eAAe,EAAE,2DAA2D,EAAE,CAAC,CAAC,KAAK,CAAC;QACjG,EAAE;QACF,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACxB,GAAG,iBAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACvD,EAAE;QACF,GAAG,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC3E,2DAA2D;QAC3D,EAAE;QACF,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,oFAAoF;KAC/G,CAAC;IACF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,aAAa,CAAC,IAAY,EAAE,SAAkB;IACrD,MAAM,IAAI,GAAG,uCAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,SAAS,CAAC,CAAC;IACrC,MAAM,CAAC,GAAG,IAAA,mBAAU,EAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IAC9E,KAAK,MAAM,CAAC,IAAI,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,mBAAW,CAAC,CAAC,CAAC;IAC1F,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAmB,EAAE,SAAkB;IAC/D,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,SAAS,CAAC,CAAC;IACrC,MAAM,CAAC,GAAG,IAAA,mBAAU,EAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG;QACZ,GAAG,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;QACpD,EAAE;QACF,KAAK,CAAC,CAAC,OAAO,EAAE;QAChB,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE;KACzD,CAAC;IACF,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QACvH,CAAC;IACH,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,15 @@
1
+ export interface StartupCheck {
2
+ name: string;
3
+ ok: boolean;
4
+ detail: string;
5
+ warn?: boolean;
6
+ info?: boolean;
7
+ }
8
+ export declare function doctorConfigPath(flags: Record<string, string | boolean>): string;
9
+ /** Deliberately no loadConfig(): startup migration and permission repair mutate disk. */
10
+ export declare function inspectStartup(file: string): StartupCheck[];
11
+ /** Only repair files owned by this OS user; never follow a config symlink. */
12
+ export declare function repairStartup(file: string): StartupCheck[];
13
+ export declare function inspectUserService(): StartupCheck[];
14
+ export declare function repairUserService(): StartupCheck[];
15
+ //# sourceMappingURL=startup-diagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startup-diagnostics.d.ts","sourceRoot":"","sources":["../../src/cli/startup-diagnostics.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,YAAY;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE;AAC3G,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,MAAM,CAEhF;AAWD,yFAAyF;AACzF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAsC3D;AA4BD,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAgD1D;AAED,wBAAgB,kBAAkB,IAAI,YAAY,EAAE,CAQnD;AACD,wBAAgB,iBAAiB,IAAI,YAAY,EAAE,CAIlD"}
@@ -0,0 +1,266 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.doctorConfigPath = doctorConfigPath;
37
+ exports.inspectStartup = inspectStartup;
38
+ exports.repairStartup = repairStartup;
39
+ exports.inspectUserService = inspectUserService;
40
+ exports.repairUserService = repairUserService;
41
+ const fs = __importStar(require("fs"));
42
+ const os = __importStar(require("os"));
43
+ const path = __importStar(require("path"));
44
+ const crypto_1 = require("crypto");
45
+ const child_process_1 = require("child_process");
46
+ const http_client_1 = require("./http-client");
47
+ function doctorConfigPath(flags) {
48
+ return path.resolve((0, http_client_1.expandHome)(typeof flags.config === 'string' ? flags.config : process.env.GATEWAY_CONFIG || path.join(os.homedir(), '.claude-gateway', 'config.json')));
49
+ }
50
+ const errorCode = (error) => error.code || 'FAILED';
51
+ function resolvedLogDirectory(config) {
52
+ const configured = typeof config?.gateway?.logDir === 'string' ? config.gateway.logDir : path.join(os.homedir(), '.claude-gateway', 'logs');
53
+ const resolved = configured.replace(/\$\{([^}]+)\}/g, (_match, name) => {
54
+ if (process.env[name] === undefined)
55
+ throw Object.assign(new Error(), { code: 'UNRESOLVED_LOG_DIR_ENV' });
56
+ return process.env[name];
57
+ });
58
+ if (!resolved.trim())
59
+ throw Object.assign(new Error(), { code: 'EMPTY_LOG_DIR' });
60
+ return path.resolve((0, http_client_1.expandHome)(resolved));
61
+ }
62
+ /** Deliberately no loadConfig(): startup migration and permission repair mutate disk. */
63
+ function inspectStartup(file) {
64
+ const checks = [];
65
+ let raw;
66
+ try {
67
+ raw = fs.readFileSync(file, 'utf8');
68
+ }
69
+ catch (error) {
70
+ return [{ name: 'configFile', ok: false, detail: `${file}: ${errorCode(error)}. Restore or create a valid config; check file ownership.` }];
71
+ }
72
+ let config;
73
+ try {
74
+ config = JSON.parse(raw);
75
+ }
76
+ catch {
77
+ return [{ name: 'configFile', ok: false, detail: raw.charCodeAt(0) === 0xfeff ? 'UTF-8 BOM prevents parsing. Run claude-gateway doctor fix.' : 'Invalid JSON. Correct the syntax or restore a known-good backup; no configuration content was printed.' }];
78
+ }
79
+ const valid = config && !Array.isArray(config) && typeof config === 'object' && Array.isArray(config.agents) && config.agents.length > 0 && config.gateway && !Array.isArray(config.gateway) && typeof config.gateway === 'object';
80
+ checks.push({ name: 'configStructure', ok: !!valid, detail: valid ? 'gateway object and nonempty agents array present (not a full runtime validation)' : 'Expected gateway object and nonempty agents array. Restore/correct config; doctor will not invent credentials or agents.' });
81
+ try {
82
+ const stat = fs.statSync(file);
83
+ const privateMode = (stat.mode & 0o777) === 0o600;
84
+ fs.accessSync(file, fs.constants.R_OK | fs.constants.W_OK);
85
+ checks.push({ name: 'configAccess', ok: true, warn: !privateMode, detail: privateMode ? 'readable/writable; mode 0600' : 'mode is not 0600; doctor fix can restrict permissions on a file owned by this user' });
86
+ }
87
+ catch (error) {
88
+ checks.push({ name: 'configAccess', ok: false, detail: `Config cannot be read/written (${errorCode(error)}). doctor fix can repair owner permission bits; foreign ownership requires administrator action.` });
89
+ }
90
+ let logDir;
91
+ try {
92
+ logDir = resolvedLogDirectory(config);
93
+ }
94
+ catch (error) {
95
+ checks.push({ name: 'logDirectory', ok: false, detail: `${errorCode(error)}. Supply the same environment variables used by the gateway.` });
96
+ return checks;
97
+ }
98
+ for (const [name, dir] of [['runtimeDirectory', path.dirname(file)], ['logDirectory', logDir]]) {
99
+ try {
100
+ if (!fs.statSync(dir).isDirectory())
101
+ throw Object.assign(new Error(), { code: 'ENOTDIR' });
102
+ fs.accessSync(dir, fs.constants.W_OK | fs.constants.X_OK);
103
+ checks.push({ name, ok: true, detail: `writable: ${dir}` });
104
+ }
105
+ catch (error) {
106
+ checks.push({ name, ok: false, detail: `${dir}: ${errorCode(error)}. Check directory ownership/permissions; doctor fix creates a missing log directory.` });
107
+ }
108
+ }
109
+ // Only known signatures; never return log lines, prompts, tokens or provider payloads.
110
+ const log = path.join(logDir, 'gateway.log');
111
+ try {
112
+ const fd = fs.openSync(log, 'r');
113
+ let tail;
114
+ try {
115
+ const size = fs.fstatSync(fd).size, bytes = Buffer.alloc(Math.min(size, 65536));
116
+ const read = fs.readSync(fd, bytes, 0, bytes.length, Math.max(0, size - bytes.length));
117
+ tail = bytes.subarray(0, read).toString();
118
+ }
119
+ finally {
120
+ fs.closeSync(fd);
121
+ }
122
+ const hints = [
123
+ [/EADDRINUSE/, 'Port already in use. Identify its owner before changing the port or stopping a process.'],
124
+ [/EACCES|EPERM/, 'Permission denied. Check config/runtime directory ownership and the service user.'],
125
+ [/ORCHESTRATION_ALREADY_RUNNING/, 'Another orchestrator holds the instance lock. Do not delete the lock database; check the existing process.'],
126
+ [/ConfigValidationError|No valid agents/, 'Startup config validation failed. Inspect gateway logs locally and correct the reported field.'],
127
+ [/ENOENT|executable.*not found/, 'A runtime file or executable was missing. Check dependency results and service executable paths.'],
128
+ ];
129
+ for (const [pattern, detail] of hints)
130
+ if (pattern.test(tail))
131
+ checks.push({ name: 'recentStartupLog', ok: true, info: true, detail: `${detail} Historical log match; may already be resolved.` });
132
+ }
133
+ catch { /* A fresh/down gateway need not have logs yet. */ }
134
+ return checks;
135
+ }
136
+ /** Recover read access through a pinned descriptor, never a path-based chmod.
137
+ * Linux O_PATH works even for mode 000; other platforms can recover write-only
138
+ * files with O_WRONLY. Neither open truncates or writes configuration contents.
139
+ */
140
+ function recoverConfigReadAccess(file) {
141
+ const noFollow = fs.constants.O_NOFOLLOW || 0;
142
+ const linux = process.platform === 'linux';
143
+ // Linux UAPI O_PATH is not exposed by Node's fs.constants.
144
+ const descriptor = fs.openSync(file, (linux ? 0x200000 : fs.constants.O_WRONLY) | noFollow | fs.constants.O_NONBLOCK);
145
+ try {
146
+ const stat = fs.fstatSync(descriptor);
147
+ if (!stat.isFile() || !process.getuid || stat.uid !== process.getuid()) {
148
+ throw Object.assign(new Error(), { code: 'UNSAFE_CONFIG_OWNER_OR_TYPE' });
149
+ }
150
+ // O_PATH cannot be fchmod'ed. This proc link targets the pinned inode even
151
+ // if the original name is replaced; do not substitute chmod(file).
152
+ if (linux)
153
+ fs.chmodSync(`/proc/self/fd/${descriptor}`, 0o600);
154
+ else
155
+ fs.fchmodSync(descriptor, 0o600);
156
+ const current = fs.lstatSync(file);
157
+ if (!current.isFile() || current.ino !== stat.ino || current.dev !== stat.dev) {
158
+ throw Object.assign(new Error(), { code: 'CONFIG_CHANGED_RETRY' });
159
+ }
160
+ return stat;
161
+ }
162
+ finally {
163
+ fs.closeSync(descriptor);
164
+ }
165
+ }
166
+ /** Only repair files owned by this OS user; never follow a config symlink. */
167
+ function repairStartup(file) {
168
+ const actions = [];
169
+ let fd;
170
+ try {
171
+ // Descriptor operations cannot follow a symlink swapped after this open.
172
+ const flags = fs.constants.O_RDONLY | (fs.constants.O_NOFOLLOW || 0) | fs.constants.O_NONBLOCK;
173
+ let restoredReadAccess = false;
174
+ try {
175
+ fd = fs.openSync(file, flags);
176
+ }
177
+ catch (error) {
178
+ if (errorCode(error) !== 'EACCES')
179
+ throw error;
180
+ const recovered = recoverConfigReadAccess(file);
181
+ restoredReadAccess = true;
182
+ actions.push({ name: 'configReadAccess', ok: true, detail: 'Restored owner read/write permissions (0600); contents unchanged. Creating a private content backup next.' });
183
+ fd = fs.openSync(file, flags);
184
+ const reopened = fs.fstatSync(fd);
185
+ if (reopened.ino !== recovered.ino || reopened.dev !== recovered.dev)
186
+ throw Object.assign(new Error(), { code: 'CONFIG_CHANGED_RETRY' });
187
+ }
188
+ const stat = fs.fstatSync(fd);
189
+ if (!stat.isFile() || fs.lstatSync(file).isSymbolicLink() || (process.getuid && stat.uid !== process.getuid()))
190
+ throw Object.assign(new Error(), { code: 'UNSAFE_CONFIG_OWNER_OR_TYPE' });
191
+ let raw = fs.readFileSync(fd, 'utf8');
192
+ const assertUnchanged = () => {
193
+ const current = fs.lstatSync(file);
194
+ if (!current.isFile() || current.ino !== stat.ino || current.dev !== stat.dev || fs.readFileSync(file, 'utf8') !== raw)
195
+ throw Object.assign(new Error(), { code: 'CONFIG_CHANGED_RETRY' });
196
+ };
197
+ if (restoredReadAccess || (stat.mode & 0o777) !== 0o600) {
198
+ fs.writeFileSync(`${file}.doctor-${(0, crypto_1.randomUUID)()}.bak`, raw, { mode: 0o600, flag: 'wx' });
199
+ assertUnchanged();
200
+ fs.fchmodSync(fd, 0o600);
201
+ actions.push({ name: 'configPermissions', ok: true, detail: 'Backed up config and restored owner read/write permissions (0600).' });
202
+ }
203
+ if (raw.charCodeAt(0) === 0xfeff) {
204
+ const stripped = raw.slice(1);
205
+ JSON.parse(stripped);
206
+ fs.writeFileSync(`${file}.doctor-bom-${(0, crypto_1.randomUUID)()}.bak`, raw, { mode: 0o600, flag: 'wx' });
207
+ const temp = `${file}.doctor-${(0, crypto_1.randomUUID)()}.tmp`;
208
+ let created = false;
209
+ try {
210
+ fs.writeFileSync(temp, stripped, { mode: 0o600, flag: 'wx' });
211
+ created = true;
212
+ assertUnchanged();
213
+ fs.renameSync(temp, file);
214
+ }
215
+ finally {
216
+ if (created) {
217
+ try {
218
+ fs.unlinkSync(temp);
219
+ }
220
+ catch { /* renamed already */ }
221
+ }
222
+ }
223
+ raw = stripped;
224
+ actions.push({ name: 'configEncoding', ok: true, detail: 'Backed up config and removed UTF-8 BOM; all configuration values preserved.' });
225
+ }
226
+ const dir = resolvedLogDirectory(JSON.parse(raw));
227
+ if (!fs.existsSync(dir)) {
228
+ fs.mkdirSync(dir, { recursive: true, mode: 0o700 });
229
+ actions.push({ name: 'logDirectory', ok: true, detail: `Created ${dir}` });
230
+ }
231
+ }
232
+ catch (error) {
233
+ actions.push({ name: 'startupRepair', ok: false, detail: `Could not complete safe config repair (${errorCode(error)}). Correct JSON/ownership/environment manually; no credentials or agents were replaced.` });
234
+ }
235
+ finally {
236
+ if (fd !== undefined)
237
+ fs.closeSync(fd);
238
+ }
239
+ return actions;
240
+ }
241
+ function inspectUserService() {
242
+ if (process.platform !== 'linux')
243
+ return [];
244
+ try {
245
+ const output = (0, child_process_1.execFileSync)('systemctl', ['--user', 'show', 'claude-gateway.service', '--property=LoadState,ActiveState,Result'], { timeout: 3000, stdio: ['ignore', 'pipe', 'ignore'], encoding: 'utf8' });
246
+ if (/LoadState=not-found/.test(output))
247
+ return [];
248
+ const failed = /ActiveState=failed/.test(output);
249
+ return [{ name: 'userService', ok: !failed, detail: failed ? 'User service failed. doctor fix resets the failure latch; then use service start. If executable paths changed, use service install to regenerate the unit.' : 'User service present; use service status for manager details.' }];
250
+ }
251
+ catch {
252
+ return [];
253
+ }
254
+ }
255
+ function repairUserService() {
256
+ if (!inspectUserService().some(check => !check.ok))
257
+ return [];
258
+ try {
259
+ (0, child_process_1.execFileSync)('systemctl', ['--user', 'reset-failed', 'claude-gateway.service'], { timeout: 3000, stdio: 'ignore' });
260
+ return [{ name: 'userServiceRepair', ok: true, detail: 'Reset failed user-service state. No process was started/restarted. Run claude-gateway service start after remaining checks pass.' }];
261
+ }
262
+ catch {
263
+ return [{ name: 'userServiceRepair', ok: false, detail: 'Could not reset user service. Inspect systemctl --user status claude-gateway.service.' }];
264
+ }
265
+ }
266
+ //# sourceMappingURL=startup-diagnostics.js.map