@cogitator-ai/cli 0.5.19 → 0.6.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 (105) hide show
  1. package/README.md +105 -44
  2. package/dist/commands/add.d.ts +11 -0
  3. package/dist/commands/add.d.ts.map +1 -0
  4. package/dist/commands/add.js +79 -0
  5. package/dist/commands/add.js.map +1 -0
  6. package/dist/commands/assistant.d.ts.map +1 -1
  7. package/dist/commands/assistant.js +14 -12
  8. package/dist/commands/assistant.js.map +1 -1
  9. package/dist/commands/build.d.ts +16 -1
  10. package/dist/commands/build.d.ts.map +1 -1
  11. package/dist/commands/build.js +53 -48
  12. package/dist/commands/build.js.map +1 -1
  13. package/dist/commands/daemon.d.ts.map +1 -1
  14. package/dist/commands/daemon.js +17 -13
  15. package/dist/commands/daemon.js.map +1 -1
  16. package/dist/commands/deploy.d.ts +59 -0
  17. package/dist/commands/deploy.d.ts.map +1 -1
  18. package/dist/commands/deploy.js +181 -99
  19. package/dist/commands/deploy.js.map +1 -1
  20. package/dist/commands/dev.d.ts +14 -0
  21. package/dist/commands/dev.d.ts.map +1 -0
  22. package/dist/commands/dev.js +84 -0
  23. package/dist/commands/dev.js.map +1 -0
  24. package/dist/commands/doctor.d.ts +5 -0
  25. package/dist/commands/doctor.d.ts.map +1 -0
  26. package/dist/commands/doctor.js +52 -0
  27. package/dist/commands/doctor.js.map +1 -0
  28. package/dist/commands/eval.d.ts +12 -0
  29. package/dist/commands/eval.d.ts.map +1 -0
  30. package/dist/commands/eval.js +90 -0
  31. package/dist/commands/eval.js.map +1 -0
  32. package/dist/commands/init.d.ts +10 -33
  33. package/dist/commands/init.d.ts.map +1 -1
  34. package/dist/commands/init.js +89 -321
  35. package/dist/commands/init.js.map +1 -1
  36. package/dist/commands/logs.d.ts.map +1 -1
  37. package/dist/commands/logs.js +9 -6
  38. package/dist/commands/logs.js.map +1 -1
  39. package/dist/commands/mcp.d.ts +18 -0
  40. package/dist/commands/mcp.d.ts.map +1 -0
  41. package/dist/commands/mcp.js +155 -0
  42. package/dist/commands/mcp.js.map +1 -0
  43. package/dist/commands/models.d.ts.map +1 -1
  44. package/dist/commands/models.js +43 -15
  45. package/dist/commands/models.js.map +1 -1
  46. package/dist/commands/run.d.ts +17 -1
  47. package/dist/commands/run.d.ts.map +1 -1
  48. package/dist/commands/run.js +75 -28
  49. package/dist/commands/run.js.map +1 -1
  50. package/dist/commands/skill.d.ts.map +1 -1
  51. package/dist/commands/skill.js +23 -23
  52. package/dist/commands/skill.js.map +1 -1
  53. package/dist/commands/status.d.ts +21 -0
  54. package/dist/commands/status.d.ts.map +1 -1
  55. package/dist/commands/status.js +64 -39
  56. package/dist/commands/status.js.map +1 -1
  57. package/dist/commands/up.d.ts.map +1 -1
  58. package/dist/commands/up.js +26 -24
  59. package/dist/commands/up.js.map +1 -1
  60. package/dist/commands/wizard.d.ts.map +1 -1
  61. package/dist/commands/wizard.js +5 -0
  62. package/dist/commands/wizard.js.map +1 -1
  63. package/dist/index.js +9 -42
  64. package/dist/index.js.map +1 -1
  65. package/dist/program.d.ts +4 -0
  66. package/dist/program.d.ts.map +1 -0
  67. package/dist/program.js +61 -0
  68. package/dist/program.js.map +1 -0
  69. package/dist/utils/add.d.ts +81 -0
  70. package/dist/utils/add.d.ts.map +1 -0
  71. package/dist/utils/add.js +151 -0
  72. package/dist/utils/add.js.map +1 -0
  73. package/dist/utils/cli.d.ts +49 -0
  74. package/dist/utils/cli.d.ts.map +1 -0
  75. package/dist/utils/cli.js +106 -0
  76. package/dist/utils/cli.js.map +1 -0
  77. package/dist/utils/docs.d.ts +39 -0
  78. package/dist/utils/docs.d.ts.map +1 -0
  79. package/dist/utils/docs.js +198 -0
  80. package/dist/utils/docs.js.map +1 -0
  81. package/dist/utils/doctor.d.ts +41 -0
  82. package/dist/utils/doctor.d.ts.map +1 -0
  83. package/dist/utils/doctor.js +378 -0
  84. package/dist/utils/doctor.js.map +1 -0
  85. package/dist/utils/evals.d.ts +50 -0
  86. package/dist/utils/evals.d.ts.map +1 -0
  87. package/dist/utils/evals.js +78 -0
  88. package/dist/utils/evals.js.map +1 -0
  89. package/dist/utils/ollama.d.ts +5 -0
  90. package/dist/utils/ollama.d.ts.map +1 -1
  91. package/dist/utils/ollama.js +13 -5
  92. package/dist/utils/ollama.js.map +1 -1
  93. package/dist/utils/provider-models.d.ts +8 -2
  94. package/dist/utils/provider-models.d.ts.map +1 -1
  95. package/dist/utils/provider-models.js +32 -52
  96. package/dist/utils/provider-models.js.map +1 -1
  97. package/dist/utils/registry-worker.d.ts +2 -0
  98. package/dist/utils/registry-worker.d.ts.map +1 -0
  99. package/dist/utils/registry-worker.js +35 -0
  100. package/dist/utils/registry-worker.js.map +1 -0
  101. package/dist/utils/registry.d.ts +19 -0
  102. package/dist/utils/registry.d.ts.map +1 -0
  103. package/dist/utils/registry.js +58 -0
  104. package/dist/utils/registry.js.map +1 -0
  105. package/package.json +16 -10
@@ -3,77 +3,104 @@ import chalk from 'chalk';
3
3
  import ora from 'ora';
4
4
  import { existsSync } from 'node:fs';
5
5
  import { resolve } from 'node:path';
6
- import { loadConfig } from '@cogitator-ai/config';
6
+ import { findConfigFile, loadConfig, loadEnvConfig } from '@cogitator-ai/config';
7
7
  import { Deployer } from '@cogitator-ai/deploy';
8
8
  import { log } from '../utils/logger.js';
9
+ import { CommandError, UsageError, errorMessage, EXIT, examplesHelp, printJson, } from '../utils/cli.js';
9
10
  function isDeployTarget(value, available) {
10
11
  return available.includes(value);
11
12
  }
12
- function resolveTarget(flag, configTarget, available) {
13
- const raw = flag ?? configTarget ?? 'docker';
13
+ function resolveTarget(requested, available) {
14
+ const raw = requested ?? 'docker';
14
15
  if (!isDeployTarget(raw, available)) {
15
- log.error(`Unsupported deploy target: "${raw}"`);
16
- log.dim(`Available targets: ${available.join(', ')}`);
17
- process.exit(1);
16
+ throw new UsageError(`Unsupported deploy target: "${raw}"`, [
17
+ `Available targets: ${available.join(', ')}`,
18
+ ]);
18
19
  }
19
20
  return raw;
20
21
  }
21
- function loadDeployConfig(projectDir, configPath) {
22
- if (configPath && !existsSync(resolve(projectDir, configPath))) {
23
- log.error(`Config file not found: ${resolve(projectDir, configPath)}`);
24
- process.exit(1);
22
+ /**
23
+ * Resolves the config file and the settings of a deploy. The config file is
24
+ * the one passed with `-c` (an error when it does not exist), else the
25
+ * project's own, found like `loadConfig` finds it. The analyzer reads the
26
+ * model, memory and deploy section from that same file.
27
+ */
28
+ export function resolveDeployInputs(projectDir, flags) {
29
+ const configPath = flags.config ? resolve(projectDir, flags.config) : findConfigFile(projectDir);
30
+ if (flags.config && configPath && !existsSync(configPath)) {
31
+ throw new Error(`Config file not found: ${configPath}`);
25
32
  }
33
+ const fileDeploy = configPath ? loadConfig({ configPath, skipEnv: true }).deploy : undefined;
34
+ const envDeploy = loadEnvConfig().deploy ?? {};
35
+ const overrides = {
36
+ ...(envDeploy.target ? { target: envDeploy.target } : {}),
37
+ ...(envDeploy.port ? { port: envDeploy.port } : {}),
38
+ ...(envDeploy.registry ? { registry: envDeploy.registry } : {}),
39
+ ...(flags.registry ? { registry: flags.registry } : {}),
40
+ ...(flags.region ? { region: flags.region } : {}),
41
+ };
42
+ return {
43
+ configPath,
44
+ target: flags.target ?? overrides.target ?? fileDeploy?.target,
45
+ overrides,
46
+ };
47
+ }
48
+ function loadDeployInputs(projectDir, flags) {
26
49
  try {
27
- const config = loadConfig(configPath ? { configPath: resolve(projectDir, configPath) } : {});
28
- return config.deploy;
50
+ return resolveDeployInputs(projectDir, flags);
29
51
  }
30
52
  catch (error) {
31
- log.error(`Failed to load config: ${error instanceof Error ? error.message : String(error)}`);
32
- process.exit(1);
53
+ throw new CommandError(`Failed to load config: ${error instanceof Error ? error.message : String(error)}`);
33
54
  }
34
55
  }
35
- function buildConfigOverrides(flags, fileConfig) {
36
- const overrides = {};
37
- if (fileConfig) {
38
- Object.assign(overrides, fileConfig);
39
- }
40
- if (flags.registry) {
41
- overrides.registry = flags.registry;
42
- }
43
- if (flags.region) {
44
- overrides.region = flags.region;
45
- }
46
- return overrides;
56
+ function spin(text, flags) {
57
+ return ora({ text, isSilent: flags.json === true }).start();
47
58
  }
48
- async function runDeploy(flags) {
49
- const projectDir = resolve(process.cwd());
50
- const deployer = new Deployer();
51
- const fileConfig = loadDeployConfig(projectDir, flags.config);
52
- const target = resolveTarget(flags.target, fileConfig?.target, deployer.availableTargets());
53
- const configOverrides = buildConfigOverrides(flags, fileConfig);
54
- const spinner = ora('Analyzing project...').start();
55
- let plan;
56
- try {
57
- plan = await deployer.plan({
58
- projectDir,
59
- target,
60
- dryRun: flags.dryRun,
61
- noPush: !flags.push,
62
- configOverrides,
63
- });
64
- }
65
- catch (error) {
66
- spinner.fail('Failed to plan deployment');
67
- log.error(error instanceof Error ? error.message : String(error));
68
- process.exit(1);
69
- }
70
- spinner.stop();
59
+ /** A deploy plan as data: what `--json` prints and what the terminal view shows. */
60
+ export function describePlan(plan, target, configPath) {
61
+ const { config, preflight } = plan;
62
+ return {
63
+ target,
64
+ ...(configPath && { configPath }),
65
+ config: {
66
+ ...(config.kind && { kind: config.kind }),
67
+ ...(config.server && { server: config.server }),
68
+ ...(config.port && { port: config.port }),
69
+ ...(config.region && { region: config.region }),
70
+ ...(config.registry && { registry: config.registry }),
71
+ ...(config.image && { image: config.image }),
72
+ ...(config.instances && { instances: config.instances }),
73
+ },
74
+ services: {
75
+ redis: Boolean(config.services?.redis),
76
+ postgres: Boolean(config.services?.postgres),
77
+ provisioned: target === 'docker',
78
+ },
79
+ volumes: (config.volumes ?? []).map((volume) => volume.path),
80
+ secrets: config.secrets ?? [],
81
+ warnings: plan.warnings,
82
+ preflight: {
83
+ passed: preflight.passed,
84
+ checks: preflight.checks.map(({ name, passed, message, fix }) => ({
85
+ name,
86
+ passed,
87
+ message,
88
+ ...(fix && { fix }),
89
+ })),
90
+ },
91
+ };
92
+ }
93
+ function printPlan(summary) {
94
+ const { config, target } = summary;
71
95
  console.log();
72
96
  log.info(`Deploy plan for ${chalk.bold(target)}`);
73
97
  console.log();
74
- const { config, preflight } = plan;
75
98
  console.log(chalk.dim(' Configuration:'));
99
+ if (summary.configPath)
100
+ console.log(` Config: ${chalk.cyan(summary.configPath)}`);
76
101
  console.log(` Target: ${chalk.cyan(target)}`);
102
+ if (config.kind)
103
+ console.log(` Kind: ${chalk.cyan(config.kind)}`);
77
104
  if (config.server)
78
105
  console.log(` Server: ${chalk.cyan(config.server)}`);
79
106
  if (config.port)
@@ -87,50 +114,85 @@ async function runDeploy(flags) {
87
114
  if (config.instances)
88
115
  console.log(` Instances: ${chalk.cyan(String(config.instances))}`);
89
116
  console.log();
90
- if (plan.warnings.length > 0) {
117
+ if (summary.warnings.length > 0) {
91
118
  console.log(chalk.dim(' Warnings:'));
92
- for (const warning of plan.warnings) {
119
+ for (const warning of summary.warnings)
93
120
  console.log(` ${chalk.yellow('!')} ${warning}`);
94
- }
95
121
  console.log();
96
122
  }
97
- if (config.services?.redis || config.services?.postgres) {
123
+ const { services } = summary;
124
+ if (services.redis || services.postgres) {
125
+ const icon = services.provisioned ? chalk.green('●') : chalk.yellow('○');
126
+ const note = (variable) => services.provisioned ? '' : chalk.dim(` (not provisioned on ${target}, set ${variable})`);
98
127
  console.log(chalk.dim(' Services:'));
99
- if (config.services.redis)
100
- console.log(` ${chalk.green('●')} Redis`);
101
- if (config.services.postgres)
102
- console.log(` ${chalk.green('●')} PostgreSQL`);
128
+ if (services.redis)
129
+ console.log(` ${icon} Redis${note('REDIS_URL')}`);
130
+ if (services.postgres)
131
+ console.log(` ${icon} PostgreSQL${note('DATABASE_URL')}`);
103
132
  console.log();
104
133
  }
105
- if (config.secrets && config.secrets.length > 0) {
134
+ if (summary.volumes.length > 0) {
135
+ console.log(chalk.dim(' Volumes:'));
136
+ for (const volume of summary.volumes)
137
+ console.log(` ${chalk.green('●')} ${volume}`);
138
+ console.log();
139
+ }
140
+ if (summary.secrets.length > 0) {
106
141
  console.log(chalk.dim(' Required secrets:'));
107
- for (const secret of config.secrets) {
142
+ for (const secret of summary.secrets)
108
143
  console.log(` ${chalk.yellow('○')} ${secret}`);
109
- }
110
144
  console.log();
111
145
  }
112
146
  console.log(chalk.dim(' Preflight checks:'));
113
- for (const check of preflight.checks) {
147
+ for (const check of summary.preflight.checks) {
114
148
  const icon = check.passed ? chalk.green('✓') : chalk.red('✗');
115
149
  console.log(` ${icon} ${check.message}`);
116
150
  }
117
151
  console.log();
118
- if (!preflight.passed) {
119
- log.error('Preflight checks failed');
120
- console.log();
121
- const failures = preflight.checks.filter((c) => !c.passed);
122
- for (const failure of failures) {
123
- if (failure.fix) {
124
- log.dim(` Fix: ${failure.fix}`);
125
- }
126
- }
127
- process.exit(1);
152
+ }
153
+ async function runDeploy(flags) {
154
+ const projectDir = resolve(process.cwd());
155
+ const deployer = new Deployer();
156
+ const inputs = loadDeployInputs(projectDir, flags);
157
+ const target = resolveTarget(inputs.target, deployer.availableTargets());
158
+ const configOverrides = inputs.overrides;
159
+ const spinner = spin('Analyzing project...', flags);
160
+ let plan;
161
+ try {
162
+ plan = await deployer.plan({
163
+ projectDir,
164
+ target,
165
+ dryRun: flags.dryRun,
166
+ noPush: !flags.push,
167
+ configOverrides,
168
+ configPath: inputs.configPath,
169
+ });
170
+ }
171
+ catch (error) {
172
+ spinner.fail('Failed to plan deployment');
173
+ throw new CommandError(errorMessage(error));
174
+ }
175
+ spinner.stop();
176
+ const summary = describePlan(plan, target, inputs.configPath);
177
+ const passed = summary.preflight.passed;
178
+ if (flags.json && (flags.dryRun || !passed)) {
179
+ printJson({ ok: passed, dryRun: flags.dryRun === true, ...summary });
180
+ if (!passed)
181
+ process.exitCode = EXIT.failed;
182
+ return;
183
+ }
184
+ if (!flags.json)
185
+ printPlan(summary);
186
+ if (!passed) {
187
+ throw new CommandError('Preflight checks failed', {
188
+ hints: summary.preflight.checks.flatMap((check) => (check.fix ? [`Fix: ${check.fix}`] : [])),
189
+ });
128
190
  }
129
191
  if (flags.dryRun) {
130
- log.success('Dry run completed — no changes made');
192
+ log.success('Dry run completed, no changes made');
131
193
  return;
132
194
  }
133
- const deploySpinner = ora('Deploying...').start();
195
+ const deploySpinner = spin('Deploying...', flags);
134
196
  let result;
135
197
  try {
136
198
  result = await deployer.deploy({
@@ -139,17 +201,27 @@ async function runDeploy(flags) {
139
201
  dryRun: false,
140
202
  noPush: !flags.push,
141
203
  configOverrides,
204
+ configPath: inputs.configPath,
142
205
  });
143
206
  }
144
207
  catch (error) {
145
208
  deploySpinner.fail('Deploy failed');
146
- log.error(error instanceof Error ? error.message : String(error));
147
- process.exit(1);
209
+ throw new CommandError(errorMessage(error));
148
210
  }
149
211
  if (!result.success) {
150
212
  deploySpinner.fail('Deploy failed');
151
- log.error(result.error ?? 'Unknown error');
152
- process.exit(1);
213
+ throw new CommandError(result.error ?? 'Unknown error');
214
+ }
215
+ if (flags.json) {
216
+ deploySpinner.stop();
217
+ printJson({
218
+ ok: true,
219
+ dryRun: false,
220
+ ...summary,
221
+ ...(result.url && { url: result.url }),
222
+ ...(result.endpoints && { endpoints: result.endpoints }),
223
+ });
224
+ return;
153
225
  }
154
226
  deploySpinner.succeed('Deployed successfully');
155
227
  console.log();
@@ -169,28 +241,32 @@ async function runDeploy(flags) {
169
241
  }
170
242
  console.log();
171
243
  log.dim('Commands:');
172
- console.log(` cogitator deploy status — check deployment status`);
173
- console.log(` cogitator deploy destroy — tear down deployment`);
244
+ console.log(` cogitator deploy status check deployment status`);
245
+ console.log(` cogitator deploy destroy tear down deployment`);
174
246
  console.log();
175
247
  }
176
248
  async function runDeployStatus(flags) {
177
249
  const projectDir = resolve(process.cwd());
178
250
  const deployer = new Deployer();
179
- const fileConfig = loadDeployConfig(projectDir, flags.config);
180
- const target = resolveTarget(flags.target, fileConfig?.target, deployer.availableTargets());
181
- const configOverrides = buildConfigOverrides(flags, fileConfig);
182
- const spinner = ora('Checking deployment status...').start();
183
- const deployConfig = { ...configOverrides, target };
251
+ const inputs = loadDeployInputs(projectDir, flags);
252
+ const target = resolveTarget(inputs.target, deployer.availableTargets());
253
+ const spinner = spin('Checking deployment status...', flags);
254
+ const deployConfig = { ...inputs.overrides, target };
184
255
  let status;
185
256
  try {
186
- status = await deployer.status(target, deployConfig, projectDir);
257
+ status = await deployer.status(target, deployConfig, projectDir, {
258
+ configPath: inputs.configPath,
259
+ });
187
260
  }
188
261
  catch (error) {
189
262
  spinner.fail('Failed to check status');
190
- log.error(error instanceof Error ? error.message : String(error));
191
- process.exit(1);
263
+ throw new CommandError(errorMessage(error));
192
264
  }
193
265
  spinner.stop();
266
+ if (flags.json) {
267
+ printJson({ ok: true, target, ...status });
268
+ return;
269
+ }
194
270
  console.log();
195
271
  if (status.running) {
196
272
  log.success(`Deployment is ${chalk.green('running')}`);
@@ -210,19 +286,19 @@ async function runDeployStatus(flags) {
210
286
  async function runDeployDestroy(flags) {
211
287
  const projectDir = resolve(process.cwd());
212
288
  const deployer = new Deployer();
213
- const fileConfig = loadDeployConfig(projectDir, flags.config);
214
- const target = resolveTarget(flags.target, fileConfig?.target, deployer.availableTargets());
215
- const configOverrides = buildConfigOverrides(flags, fileConfig);
216
- const spinner = ora(`Destroying ${target} deployment...`).start();
217
- const deployConfig = { ...configOverrides, target };
289
+ const inputs = loadDeployInputs(projectDir, flags);
290
+ const target = resolveTarget(inputs.target, deployer.availableTargets());
291
+ const spinner = spin(`Destroying ${target} deployment...`, flags);
292
+ const deployConfig = { ...inputs.overrides, target };
218
293
  try {
219
- await deployer.destroy(target, deployConfig, projectDir);
294
+ await deployer.destroy(target, deployConfig, projectDir, { configPath: inputs.configPath });
220
295
  spinner.succeed('Deployment destroyed');
296
+ if (flags.json)
297
+ printJson({ ok: true, target, destroyed: true });
221
298
  }
222
299
  catch (err) {
223
300
  spinner.fail('Failed to destroy deployment');
224
- log.error(err instanceof Error ? err.message : String(err));
225
- process.exit(1);
301
+ throw new CommandError(errorMessage(err));
226
302
  }
227
303
  }
228
304
  export const deployCommand = new Command('deploy')
@@ -234,6 +310,14 @@ export const deployCommand = new Command('deploy')
234
310
  .option('--no-push', 'Skip pushing image to registry')
235
311
  .option('--dry-run', 'Show deploy plan without executing')
236
312
  .option('--region <region>', 'Deploy region')
313
+ .option('--json', 'print the plan, the result or the status as JSON')
314
+ .addHelpText('after', examplesHelp([
315
+ ['cogitator deploy --dry-run', 'check the plan: secrets, services, preflight'],
316
+ ['cogitator deploy --dry-run --json', 'the same plan for scripts and CI'],
317
+ ['cogitator deploy --target fly', 'build and deploy to Fly.io'],
318
+ ['cogitator deploy status', 'is the deployment running?'],
319
+ ['cogitator deploy destroy', 'tear the deployment down'],
320
+ ]))
237
321
  .action(async (action, flags) => {
238
322
  switch (action) {
239
323
  case 'status':
@@ -246,9 +330,7 @@ export const deployCommand = new Command('deploy')
246
330
  await runDeploy(flags);
247
331
  break;
248
332
  default:
249
- log.error(`Unknown action: "${action}"`);
250
- log.dim('Available actions: status, destroy');
251
- process.exit(1);
333
+ throw new UsageError(`Unknown action: "${action}"`, ['Available actions: status, destroy']);
252
334
  }
253
335
  });
254
336
  //# sourceMappingURL=deploy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAmB,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EACL,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,IAAI,EACJ,YAAY,EACZ,SAAS,GACV,MAAM,iBAAiB,CAAC;AAazB,SAAS,cAAc,CAAC,KAAa,EAAE,SAA4B;IACjE,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,aAAa,CAAC,SAA6B,EAAE,SAA4B;IAChF,MAAM,GAAG,GAAG,SAAS,IAAI,QAAQ,CAAC;IAClC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,UAAU,CAAC,+BAA+B,GAAG,GAAG,EAAE;YAC1D,sBAAsB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SAC7C,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAYD;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAAkB,EAClB,KAAqE;IAErE,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IACjG,IAAI,KAAK,CAAC,MAAM,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,0BAA0B,UAAU,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7F,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC;IAC/C,MAAM,SAAS,GAA0B;QACvC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClD,CAAC;IAEF,OAAO;QACL,UAAU;QACV,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,IAAI,UAAU,EAAE,MAAM;QAC9D,SAAS;KACV,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAkB,EAAE,KAAkB;IAC9D,IAAI,CAAC;QACH,OAAO,mBAAmB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,YAAY,CACpB,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACnF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,IAAI,CAAC,IAAY,EAAE,KAAkB;IAC5C,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;AAC9D,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,YAAY,CAAC,IAAgB,EAAE,MAAoB,EAAE,UAAmB;IACtF,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IACnC,OAAO;QACL,MAAM;QACN,GAAG,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,CAAC;QACjC,MAAM,EAAE;YACN,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;YACzC,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;YAC/C,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;YACzC,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;YAC/C,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrD,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;YAC5C,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;SACzD;QACD,QAAQ,EAAE;YACR,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC;YACtC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC;YAC5C,WAAW,EAAE,MAAM,KAAK,QAAQ;SACjC;QACD,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;QAC5D,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;QAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,SAAS,EAAE;YACT,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;gBAChE,IAAI;gBACJ,MAAM;gBACN,OAAO;gBACP,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC;aACpB,CAAC,CAAC;SACJ;KACF,CAAC;AACJ,CAAC;AAID,SAAS,SAAS,CAAC,OAAoB;IACrC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACnC,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,GAAG,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC3C,IAAI,OAAO,CAAC,UAAU;QAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACvF,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACnD,IAAI,MAAM,CAAC,IAAI;QAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzE,IAAI,MAAM,CAAC,MAAM;QAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7E,IAAI,MAAM,CAAC,IAAI;QAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IACjF,IAAI,MAAM,CAAC,MAAM;QAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7E,IAAI,MAAM,CAAC,QAAQ;QAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjF,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3E,IAAI,MAAM,CAAC,SAAS;QAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5F,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;QACtC,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ;YAAE,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;QAC3F,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC7B,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzE,MAAM,IAAI,GAAG,CAAC,QAAgB,EAAE,EAAE,CAChC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,MAAM,SAAS,QAAQ,GAAG,CAAC,CAAC;QAC5F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;QACtC,IAAI,QAAQ,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,SAAS,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACzE,IAAI,QAAQ,CAAC,QAAQ;YAAE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,cAAc,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QACpF,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;QACrC,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO;YAAE,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;QACvF,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC9C,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO;YAAE,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;QACxF,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,KAAkB;IACzC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAE1C,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACzE,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC;IAEzC,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;IACpD,IAAI,IAAgB,CAAC;IACrB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC;YACzB,UAAU;YACV,MAAM;YACN,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI;YACnB,eAAe;YACf,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC1C,MAAM,IAAI,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,CAAC,IAAI,EAAE,CAAC;IAEf,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;IACxC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5C,SAAS,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5C,OAAO;IACT,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,IAAI;QAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAEpC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,YAAY,CAAC,yBAAyB,EAAE;YAChD,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAC7F,CAAC,CAAC;IACL,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,GAAG,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;QAClD,OAAO;IACT,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IAElD,IAAI,MAAoB,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YAC7B,UAAU;YACV,MAAM;YACN,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI;YACnB,eAAe;YACf,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACpC,MAAM,IAAI,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACpC,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,KAAK,IAAI,eAAe,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,aAAa,CAAC,IAAI,EAAE,CAAC;QACrB,SAAS,CAAC;YACR,EAAE,EAAE,IAAI;YACR,MAAM,EAAE,KAAK;YACb,GAAG,OAAO;YACV,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;YACtC,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;SACzD,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,aAAa,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACrB,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,KAAkB;IAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAEzE,MAAM,OAAO,GAAG,IAAI,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;IAE7D,MAAM,YAAY,GAAiB,EAAE,GAAG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IACnE,IAAI,MAAoB,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE;YAC/D,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACvC,MAAM,IAAI,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,CAAC,IAAI,EAAE,CAAC;IACf,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,GAAG,CAAC,OAAO,CAAC,iBAAiB,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACvD,IAAI,MAAM,CAAC,GAAG;YAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtE,IAAI,MAAM,CAAC,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1F,IAAI,MAAM,CAAC,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACtC,GAAG,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,KAAkB;IAChD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAEzE,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,MAAM,gBAAgB,EAAE,KAAK,CAAC,CAAC;IAElE,MAAM,YAAY,GAAiB,EAAE,GAAG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAEnE,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QAC5F,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QACxC,IAAI,KAAK,CAAC,IAAI;YAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC7C,MAAM,IAAI,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,+BAA+B,CAAC;KAC5C,QAAQ,CAAC,UAAU,EAAE,oCAAoC,CAAC;KAC1D,MAAM,CAAC,uBAAuB,EAAE,6BAA6B,CAAC;KAC9D,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,CAAC;KACjD,MAAM,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;KACpD,MAAM,CAAC,WAAW,EAAE,gCAAgC,CAAC;KACrD,MAAM,CAAC,WAAW,EAAE,oCAAoC,CAAC;KACzD,MAAM,CAAC,mBAAmB,EAAE,eAAe,CAAC;KAC5C,MAAM,CAAC,QAAQ,EAAE,kDAAkD,CAAC;KACpE,WAAW,CACV,OAAO,EACP,YAAY,CAAC;IACX,CAAC,4BAA4B,EAAE,8CAA8C,CAAC;IAC9E,CAAC,mCAAmC,EAAE,kCAAkC,CAAC;IACzE,CAAC,+BAA+B,EAAE,4BAA4B,CAAC;IAC/D,CAAC,yBAAyB,EAAE,4BAA4B,CAAC;IACzD,CAAC,0BAA0B,EAAE,0BAA0B,CAAC;CACzD,CAAC,CACH;KACA,MAAM,CAAC,KAAK,EAAE,MAA0B,EAAE,KAAkB,EAAE,EAAE;IAC/D,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ;YACX,MAAM,eAAe,CAAC,KAAK,CAAC,CAAC;YAC7B,MAAM;QACR,KAAK,SAAS;YACZ,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC9B,MAAM;QACR,KAAK,SAAS;YACZ,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;YACvB,MAAM;QACR;YACE,MAAM,IAAI,UAAU,CAAC,oBAAoB,MAAM,GAAG,EAAE,CAAC,oCAAoC,CAAC,CAAC,CAAC;IAChG,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { Command } from 'commander';
2
+ import { type StudioHandle } from '@cogitator-ai/studio';
3
+ export interface DevFlags {
4
+ port?: string;
5
+ host?: string;
6
+ open?: boolean;
7
+ watch?: boolean;
8
+ }
9
+ /** Opens `url` in the default browser; a failure is only reported. */
10
+ export declare function openBrowser(url: string): void;
11
+ /** Starts Cogitator Studio for the project in `projectDir` and resolves once it listens. */
12
+ export declare function runDev(projectDir: string, flags: DevFlags): Promise<StudioHandle>;
13
+ export declare const devCommand: Command;
14
+ //# sourceMappingURL=dev.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAItE,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAUD,sEAAsE;AACtE,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAc7C;AAED,4FAA4F;AAC5F,wBAAsB,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,CA4CvF;AAED,eAAO,MAAM,UAAU,SAwBnB,CAAC"}
@@ -0,0 +1,84 @@
1
+ import { Command } from 'commander';
2
+ import { spawn } from 'node:child_process';
3
+ import chalk from 'chalk';
4
+ import { startStudio } from '@cogitator-ai/studio';
5
+ import { examplesHelp, UsageError } from '../utils/cli.js';
6
+ import { log } from '../utils/logger.js';
7
+ function parsePort(value) {
8
+ if (value === undefined)
9
+ return undefined;
10
+ const port = Number(value);
11
+ if (!Number.isInteger(port) || port < 0 || port > 65_535)
12
+ throw new UsageError(`--port takes a port number, got "${value}"`);
13
+ return port;
14
+ }
15
+ /** Opens `url` in the default browser; a failure is only reported. */
16
+ export function openBrowser(url) {
17
+ const [command, args] = process.platform === 'darwin'
18
+ ? ['open', [url]]
19
+ : process.platform === 'win32'
20
+ ? ['cmd', ['/c', 'start', '', url]]
21
+ : ['xdg-open', [url]];
22
+ try {
23
+ const child = spawn(command, args, { stdio: 'ignore', detached: true });
24
+ child.on('error', () => log.dim(`Open ${url} in your browser`));
25
+ child.unref();
26
+ }
27
+ catch {
28
+ log.dim(`Open ${url} in your browser`);
29
+ }
30
+ }
31
+ /** Starts Cogitator Studio for the project in `projectDir` and resolves once it listens. */
32
+ export async function runDev(projectDir, flags) {
33
+ const studio = await startStudio({
34
+ projectDir,
35
+ ...(flags.host && { host: flags.host }),
36
+ ...(flags.port !== undefined && { port: parsePort(flags.port), strictPort: true }),
37
+ watch: flags.watch !== false,
38
+ log: (line, stream) => {
39
+ const prefix = chalk.dim('project ›');
40
+ if (stream === 'stderr')
41
+ console.error(prefix, line);
42
+ else
43
+ console.log(prefix, line);
44
+ },
45
+ });
46
+ console.log();
47
+ console.log(` ${chalk.bold('Cogitator Studio')} ${chalk.cyan(studio.url)}`);
48
+ if (studio.token) {
49
+ console.log(chalk.yellow(' Reachable from other machines: share the URL only with people who may run your agents.'));
50
+ }
51
+ console.log(chalk.dim(' Chat with agents, read traces and costs, approve tool calls, run workflows, fork runs.'));
52
+ console.log(chalk.dim(' The project reloads when you save. Ctrl+C stops the studio.'));
53
+ console.log();
54
+ studio.ready().then(() => {
55
+ const status = studio.hostStatus();
56
+ if (status.state === 'ready') {
57
+ const { agents, workflows, swarms } = status.registry;
58
+ log.success(`Loaded ${agents.length} agent${agents.length === 1 ? '' : 's'}, ${workflows.length} workflow${workflows.length === 1 ? '' : 's'}, ${swarms.length} swarm${swarms.length === 1 ? '' : 's'}`);
59
+ }
60
+ }, (error) => log.error(`The project does not load: ${error instanceof Error ? error.message : String(error)}`));
61
+ return studio;
62
+ }
63
+ export const devCommand = new Command('dev')
64
+ .description('Open Cogitator Studio: chat with agents, traces and costs, approvals, workflow runs and forks')
65
+ .option('-p, --port <port>', 'port to listen on (default 4321, the next free one)')
66
+ .option('--host <host>', 'interface to listen on; anything but localhost needs the printed token')
67
+ .option('--no-open', 'do not open the browser')
68
+ .option('--no-watch', 'do not reload the project when files change')
69
+ .addHelpText('after', examplesHelp([
70
+ ['cogitator dev', 'the studio for the project in this directory'],
71
+ ['cogitator dev --port 4400 --no-open', 'a fixed port, no browser'],
72
+ ['cogitator dev --host 0.0.0.0', 'reachable from your network, with a token'],
73
+ ]))
74
+ .action(async (flags) => {
75
+ const studio = await runDev(process.cwd(), flags);
76
+ if (flags.open !== false && !process.env.CI)
77
+ openBrowser(studio.url);
78
+ const stop = () => {
79
+ void studio.close().finally(() => process.exit(0));
80
+ };
81
+ process.once('SIGINT', stop);
82
+ process.once('SIGTERM', stop);
83
+ });
84
+ //# sourceMappingURL=dev.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAqB,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AASzC,SAAS,SAAS,CAAC,KAAyB;IAC1C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,MAAM;QACtD,MAAM,IAAI,UAAU,CAAC,oCAAoC,KAAK,GAAG,CAAC,CAAC;IACrE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GACnB,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAC3B,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO;YAC5B,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,GAAG,kBAAkB,CAAC,CAAC,CAAC;QAChE,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,GAAG,CAAC,GAAG,CAAC,QAAQ,GAAG,kBAAkB,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAED,4FAA4F;AAC5F,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,UAAkB,EAAE,KAAe;IAC9D,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;QAC/B,UAAU;QACV,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QACvC,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QAClF,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,KAAK;QAC5B,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YACpB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACtC,IAAI,MAAM,KAAK,QAAQ;gBAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;;gBAChD,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACjC,CAAC;KACF,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9E,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,0FAA0F,CAC3F,CACF,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CACP,0FAA0F,CAC3F,CACF,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC,CAAC;IACxF,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,CACjB,GAAG,EAAE;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACnC,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;YAC7B,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC;YACtD,GAAG,CAAC,OAAO,CACT,UAAU,MAAM,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,MAAM,YAAY,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAC5L,CAAC;QACJ,CAAC;IACH,CAAC,EACD,CAAC,KAAc,EAAE,EAAE,CACjB,GAAG,CAAC,KAAK,CACP,8BAA8B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACvF,CACJ,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC;KACzC,WAAW,CACV,+FAA+F,CAChG;KACA,MAAM,CAAC,mBAAmB,EAAE,qDAAqD,CAAC;KAClF,MAAM,CAAC,eAAe,EAAE,wEAAwE,CAAC;KACjG,MAAM,CAAC,WAAW,EAAE,yBAAyB,CAAC;KAC9C,MAAM,CAAC,YAAY,EAAE,6CAA6C,CAAC;KACnE,WAAW,CACV,OAAO,EACP,YAAY,CAAC;IACX,CAAC,eAAe,EAAE,8CAA8C,CAAC;IACjE,CAAC,qCAAqC,EAAE,0BAA0B,CAAC;IACnE,CAAC,8BAA8B,EAAE,2CAA2C,CAAC;CAC9E,CAAC,CACH;KACA,MAAM,CAAC,KAAK,EAAE,KAAe,EAAE,EAAE;IAChC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;IAClD,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QAAE,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACrE,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC7B,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { Command } from 'commander';
2
+ import { type DoctorCheck } from '../utils/doctor.js';
3
+ export declare function formatChecks(checks: readonly DoctorCheck[]): string;
4
+ export declare const doctorCommand: Command;
5
+ //# sourceMappingURL=doctor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAA6B,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAQjF,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,GAAG,MAAM,CAenE;AAED,eAAO,MAAM,aAAa,SA4BtB,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { examplesHelp } from '../utils/cli.js';
4
+ import { loadProjectEnv, runDoctor } from '../utils/doctor.js';
5
+ const ICONS = {
6
+ pass: chalk.green('✓'),
7
+ warn: chalk.yellow('!'),
8
+ fail: chalk.red('✗'),
9
+ };
10
+ export function formatChecks(checks) {
11
+ const width = Math.max(...checks.map((check) => check.label.length));
12
+ const lines = checks.map((check) => {
13
+ const line = ` ${ICONS[check.status]} ${check.label.padEnd(width)} ${check.detail}`;
14
+ return check.fix ? `${line}\n ${' '.repeat(width + 4)}${chalk.dim(`→ ${check.fix}`)}` : line;
15
+ });
16
+ const failed = checks.filter((check) => check.status === 'fail').length;
17
+ const warned = checks.filter((check) => check.status === 'warn').length;
18
+ const summary = failed > 0
19
+ ? chalk.red(`${failed} problem${failed === 1 ? '' : 's'} to fix`)
20
+ : warned > 0
21
+ ? chalk.yellow(`Ready, with ${warned} warning${warned === 1 ? '' : 's'}`)
22
+ : chalk.green('Everything is ready');
23
+ return ['', ...lines, '', ` ${summary}`, ''].join('\n');
24
+ }
25
+ export const doctorCommand = new Command('doctor')
26
+ .description('Check that a project can run: Node, packages, config, keys, models and services')
27
+ .option('--json', 'print the checks as JSON')
28
+ .option('--offline', 'skip checks that call the model provider or connect to services')
29
+ .addHelpText('after', examplesHelp([
30
+ ['cogitator doctor', 'check what the project needs to run'],
31
+ ['cogitator doctor --offline', 'skip the provider and service probes'],
32
+ ['cogitator doctor --json', 'the checks for CI'],
33
+ ]))
34
+ .action(async (options) => {
35
+ const projectDir = process.cwd();
36
+ loadProjectEnv(projectDir);
37
+ const checks = await runDoctor({
38
+ projectDir,
39
+ env: process.env,
40
+ nodeVersion: process.version,
41
+ probe: !options.offline,
42
+ });
43
+ const ok = checks.every((check) => check.status !== 'fail');
44
+ if (options.json) {
45
+ console.log(JSON.stringify({ ok, checks }, null, 2));
46
+ }
47
+ else {
48
+ console.log(formatChecks(checks));
49
+ }
50
+ process.exitCode = ok ? 0 : 1;
51
+ });
52
+ //# sourceMappingURL=doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}