@controlvector/cv-agent 1.10.0 → 1.10.1

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.
@@ -60,6 +60,104 @@ async function validateToken(hubUrl, token) {
60
60
  }
61
61
  }
62
62
  // ============================================================================
63
+ // OAuth Device Authorization Flow (RFC 8628)
64
+ // ============================================================================
65
+ const DEVICE_CLIENT_ID = 'cv-agent-cli';
66
+ const DEVICE_SCOPES = 'repo:read repo:write profile offline_access';
67
+ const POLL_INTERVAL_MS = 5000;
68
+ const MAX_POLL_ATTEMPTS = 180; // 15 minutes
69
+ async function deviceAuthFlow(hubUrl, appUrl) {
70
+ // Step 1: Request device authorization
71
+ const authRes = await fetch(`${hubUrl}/oauth/device/authorize`, {
72
+ method: 'POST',
73
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
74
+ body: new URLSearchParams({
75
+ client_id: DEVICE_CLIENT_ID,
76
+ scope: DEVICE_SCOPES,
77
+ }),
78
+ });
79
+ if (!authRes.ok) {
80
+ const err = await authRes.json().catch(() => ({}));
81
+ throw new Error(err.error_description || `Device auth failed: ${authRes.status}`);
82
+ }
83
+ const auth = await authRes.json();
84
+ // Step 2: Display code and open browser
85
+ console.log(chalk_1.default.bold(' ┌──────────────────────────────────────────┐'));
86
+ console.log(chalk_1.default.bold(' │ CV-Hub Device Authorization │'));
87
+ console.log(chalk_1.default.bold(' ├──────────────────────────────────────────┤'));
88
+ console.log(chalk_1.default.bold(' │ │'));
89
+ console.log(chalk_1.default.bold(' │ Open this URL in your browser: │'));
90
+ console.log(chalk_1.default.bold(` │ ${chalk_1.default.cyan(auth.verification_uri).padEnd(51)}│`));
91
+ console.log(chalk_1.default.bold(' │ │'));
92
+ console.log(chalk_1.default.bold(' │ Then enter this code: │'));
93
+ console.log(chalk_1.default.bold(` │ ${chalk_1.default.white.bold(auth.user_code)} │`));
94
+ console.log(chalk_1.default.bold(' │ │'));
95
+ console.log(chalk_1.default.bold(` │ ${chalk_1.default.gray(`Expires in ${Math.floor(auth.expires_in / 60)} minutes`).padEnd(51)}│`));
96
+ console.log(chalk_1.default.bold(' └──────────────────────────────────────────┘'));
97
+ console.log();
98
+ // Try to open browser
99
+ try {
100
+ const openCmd = process.platform === 'darwin' ? 'open' : process.platform === 'win32' ? 'start' : 'xdg-open';
101
+ (0, node_child_process_1.execSync)(`${openCmd} "${auth.verification_uri_complete}" 2>/dev/null`, { timeout: 5000 });
102
+ console.log(chalk_1.default.gray(' Browser opened. Waiting for authorization...'));
103
+ }
104
+ catch {
105
+ console.log(chalk_1.default.gray(' Open the URL above in your browser.'));
106
+ }
107
+ // Step 3: Poll for token
108
+ let interval = Math.max(auth.interval * 1000, POLL_INTERVAL_MS);
109
+ const expireTime = Date.now() + auth.expires_in * 1000;
110
+ for (let attempt = 0; attempt < MAX_POLL_ATTEMPTS; attempt++) {
111
+ await new Promise(r => setTimeout(r, interval));
112
+ if (Date.now() > expireTime) {
113
+ throw new Error('Authorization timed out');
114
+ }
115
+ const remaining = Math.ceil((expireTime - Date.now()) / 1000);
116
+ const mins = Math.floor(remaining / 60);
117
+ const secs = remaining % 60;
118
+ process.stdout.write(`\r Waiting for authorization... (${mins}:${secs.toString().padStart(2, '0')} remaining) `);
119
+ const tokenRes = await fetch(`${hubUrl}/oauth/token`, {
120
+ method: 'POST',
121
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
122
+ body: new URLSearchParams({
123
+ grant_type: 'urn:ietf:params:oauth:grant-type:device_code',
124
+ device_code: auth.device_code,
125
+ client_id: DEVICE_CLIENT_ID,
126
+ }),
127
+ });
128
+ const tokenData = await tokenRes.json();
129
+ if (tokenData.access_token) {
130
+ process.stdout.write('\r' + ' '.repeat(60) + '\r');
131
+ // Get username
132
+ let uname = 'user';
133
+ try {
134
+ const userRes = await fetch(`${hubUrl}/oauth/userinfo`, {
135
+ headers: { Authorization: `Bearer ${tokenData.access_token}` },
136
+ });
137
+ if (userRes.ok) {
138
+ const userInfo = await userRes.json();
139
+ uname = userInfo.preferred_username || userInfo.name || 'user';
140
+ }
141
+ }
142
+ catch { /* use default */ }
143
+ return { token: tokenData.access_token, username: uname };
144
+ }
145
+ if (tokenData.error === 'slow_down') {
146
+ interval += 5000;
147
+ }
148
+ else if (tokenData.error === 'access_denied') {
149
+ process.stdout.write('\r' + ' '.repeat(60) + '\r');
150
+ throw new Error('Authorization denied by user');
151
+ }
152
+ else if (tokenData.error === 'expired_token') {
153
+ process.stdout.write('\r' + ' '.repeat(60) + '\r');
154
+ throw new Error('Authorization expired');
155
+ }
156
+ // authorization_pending → keep polling
157
+ }
158
+ throw new Error('Authorization timed out');
159
+ }
160
+ // ============================================================================
63
161
  // Preflight Checks
64
162
  // ============================================================================
65
163
  function checkBinary(cmd) {
@@ -132,44 +230,25 @@ async function runSetup() {
132
230
  if (!token) {
133
231
  console.log(' Let\'s connect you to CV-Hub.');
134
232
  console.log();
135
- const autoName = `${(0, node_os_1.hostname)()}-${new Date().toISOString().slice(0, 10)}`;
136
- const tokenUrl = `${appUrl}/settings/tokens/new?name=${encodeURIComponent(autoName)}&scopes=agent,repo`;
137
- console.log(chalk_1.default.gray(` Opening: ${tokenUrl}`));
138
- // Try to open browser
233
+ // Use OAuth Device Authorization flow (RFC 8628)
234
+ // Same flow as cv-git: CLI gets a code, user approves in browser, CLI gets token
139
235
  try {
140
- const openCmd = process.platform === 'darwin' ? 'open' : process.platform === 'win32' ? 'start' : 'xdg-open';
141
- (0, node_child_process_1.execSync)(`${openCmd} "${tokenUrl}" 2>/dev/null`, { timeout: 5000 });
142
- }
143
- catch {
144
- console.log(chalk_1.default.gray(' (Could not open browser — copy the URL above)'));
236
+ const deviceResult = await deviceAuthFlow(hubUrl, appUrl);
237
+ token = deviceResult.token;
238
+ username = deviceResult.username;
239
+ console.log(chalk_1.default.green(' ✓') + ` Authenticated as ${chalk_1.default.bold(username)}`);
240
+ // Save to shared credentials
241
+ writeSharedCreds({ hub_url: hubUrl, token, username, created_at: new Date().toISOString() });
242
+ // Also save to cv-hub credentials for backward compatibility
243
+ await (0, credentials_js_1.writeCredentialField)('CV_HUB_PAT', token);
244
+ await (0, credentials_js_1.writeCredentialField)('CV_HUB_API', hubUrl);
145
245
  }
146
- console.log();
147
- // Prompt for token
148
- const readline = await import('node:readline');
149
- const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
150
- token = await new Promise((resolve) => {
151
- rl.question(' Paste your token here: ', (answer) => {
152
- rl.close();
153
- resolve(answer.trim());
154
- });
155
- });
156
- if (!token) {
157
- console.log(chalk_1.default.red(' No token provided. Run cva setup again.'));
158
- process.exit(1);
159
- }
160
- // Validate
161
- const user = await validateToken(hubUrl, token);
162
- if (!user) {
163
- console.log(chalk_1.default.red(' Token validation failed. Check your token and try again.'));
246
+ catch (err) {
247
+ console.log(chalk_1.default.red(` Authentication failed: ${err.message}`));
248
+ console.log(chalk_1.default.gray(' You can retry with: cva setup'));
249
+ console.log(chalk_1.default.gray(' Or manually: cva auth login --token <your-pat>'));
164
250
  process.exit(1);
165
251
  }
166
- username = user;
167
- console.log(chalk_1.default.green(' ✓') + ` Authenticated as ${chalk_1.default.bold(user)}`);
168
- // Save to shared credentials
169
- writeSharedCreds({ hub_url: hubUrl, token, username, created_at: new Date().toISOString() });
170
- // Also save to cv-hub credentials for backward compatibility
171
- await (0, credentials_js_1.writeCredentialField)('CV_HUB_PAT', token);
172
- await (0, credentials_js_1.writeCredentialField)('CV_HUB_API', hubUrl);
173
252
  }
174
253
  console.log();
175
254
  // ── Step 3: Claude.ai MCP Connector ────────────────────────────────
@@ -182,19 +261,90 @@ async function runSetup() {
182
261
  console.log(chalk_1.default.gray(' (You can do this later — setup will continue.)'));
183
262
  console.log();
184
263
  // ── Step 4: Repository Setup ───────────────────────────────────────
185
- const cwd = process.cwd();
186
- const isGitRepo = (0, node_fs_1.existsSync)((0, node_path_1.join)(cwd, '.git'));
187
- const hasCVDir = (0, node_fs_1.existsSync)((0, node_path_1.join)(cwd, '.cv'));
188
- const hasClaudeMd = (0, node_fs_1.existsSync)((0, node_path_1.join)(cwd, 'CLAUDE.md'));
189
- const repoName = (0, node_path_1.basename)(cwd);
264
+ let cwd = process.cwd();
265
+ let isGitRepo = (0, node_fs_1.existsSync)((0, node_path_1.join)(cwd, '.git'));
266
+ let repoName = (0, node_path_1.basename)(cwd);
190
267
  if (isGitRepo) {
191
268
  console.log(chalk_1.default.green(' ✓') + ` Git repo found: ${repoName}`);
192
269
  }
193
270
  else {
194
- console.log(' Initializing git repository...');
195
- (0, node_child_process_1.execSync)('git init && git checkout -b main', { cwd, stdio: 'pipe' });
196
- console.log(chalk_1.default.green(' ✓') + ' Git repo initialized');
271
+ // Offer options: init, clone, or change dir
272
+ const readline = await import('node:readline');
273
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
274
+ console.log(' No git repository found in this directory.');
275
+ console.log();
276
+ console.log(` ${chalk_1.default.cyan('a')} — Initialize a new project here: ${cwd}`);
277
+ console.log(` ${chalk_1.default.cyan('b')} — Clone an existing repo from CV-Hub`);
278
+ console.log();
279
+ const choice = await new Promise((resolve) => {
280
+ rl.question(' Choose [a/b]: ', (answer) => {
281
+ rl.close();
282
+ resolve(answer.trim().toLowerCase() || 'a');
283
+ });
284
+ });
285
+ if (choice === 'b' && token) {
286
+ // Clone from CV-Hub
287
+ try {
288
+ console.log(chalk_1.default.gray(' Fetching your repositories...'));
289
+ const controller = new AbortController();
290
+ const timeout = setTimeout(() => controller.abort(), 15_000);
291
+ const res = await fetch(`${hubUrl}/api/v1/repos?limit=50`, {
292
+ headers: { Authorization: `Bearer ${token}` },
293
+ signal: controller.signal,
294
+ });
295
+ clearTimeout(timeout);
296
+ if (res.ok) {
297
+ const data = await res.json();
298
+ const repos = data.repositories || [];
299
+ if (repos.length === 0) {
300
+ console.log(chalk_1.default.yellow(' No repos found on CV-Hub. Initializing a new project instead.'));
301
+ }
302
+ else {
303
+ console.log();
304
+ console.log(' Your CV-Hub repositories:');
305
+ const displayRepos = repos.slice(0, 20);
306
+ displayRepos.forEach((r, i) => {
307
+ const desc = r.description ? chalk_1.default.gray(` — ${r.description.substring(0, 40)}`) : '';
308
+ console.log(` ${chalk_1.default.cyan(String(i + 1).padStart(2))}. ${r.slug || r.name}${desc}`);
309
+ });
310
+ console.log();
311
+ const rl2 = readline.createInterface({ input: process.stdin, output: process.stdout });
312
+ const selection = await new Promise((resolve) => {
313
+ rl2.question(` Select a repo [1-${displayRepos.length}]: `, (answer) => {
314
+ rl2.close();
315
+ resolve(answer.trim());
316
+ });
317
+ });
318
+ const idx = parseInt(selection, 10) - 1;
319
+ if (idx >= 0 && idx < displayRepos.length) {
320
+ const repo = displayRepos[idx];
321
+ const gitHost = 'git.hub.controlvector.io';
322
+ const slug = repo.slug || repo.name;
323
+ const cloneUrl = `https://${username}:${token}@${gitHost}/${username}/${slug}.git`;
324
+ console.log(chalk_1.default.gray(` Cloning ${username}/${slug}...`));
325
+ (0, node_child_process_1.execSync)(`git clone ${cloneUrl} ${slug}`, { cwd, stdio: 'pipe', timeout: 60_000 });
326
+ cwd = (0, node_path_1.join)(cwd, slug);
327
+ process.chdir(cwd);
328
+ repoName = slug;
329
+ isGitRepo = true;
330
+ console.log(chalk_1.default.green(' ✓') + ` Cloned ${username}/${slug}`);
331
+ }
332
+ }
333
+ }
334
+ }
335
+ catch (err) {
336
+ console.log(chalk_1.default.yellow(` Could not fetch repos: ${err.message}. Initializing instead.`));
337
+ }
338
+ }
339
+ // If we haven't cloned, init a new repo
340
+ if (!isGitRepo) {
341
+ console.log(' Initializing git repository...');
342
+ (0, node_child_process_1.execSync)('git init && git checkout -b main', { cwd, stdio: 'pipe' });
343
+ console.log(chalk_1.default.green(' ✓') + ' Git repo initialized');
344
+ }
197
345
  }
346
+ const hasClaudeMd = (0, node_fs_1.existsSync)((0, node_path_1.join)(cwd, 'CLAUDE.md'));
347
+ const hasCVDir = (0, node_fs_1.existsSync)((0, node_path_1.join)(cwd, '.cv'));
198
348
  if (!hasClaudeMd) {
199
349
  const template = `# ${repoName}\n\n## Overview\n[Describe your project here]\n\n## Tech Stack\n[What languages/frameworks does this project use?]\n\n## Build & Run\n[How to build and run this project]\n`;
200
350
  (0, node_fs_1.writeFileSync)((0, node_path_1.join)(cwd, 'CLAUDE.md'), template);
@@ -203,6 +353,46 @@ async function runSetup() {
203
353
  else {
204
354
  console.log(chalk_1.default.green(' ✓') + ' CLAUDE.md present');
205
355
  }
356
+ // Ensure .gitignore blocks credentials and sensitive files
357
+ const gitignorePath = (0, node_path_1.join)(cwd, '.gitignore');
358
+ const CREDENTIAL_PATTERNS = [
359
+ '# Credentials and secrets (auto-added by cv-agent)',
360
+ '.env',
361
+ '.env.*',
362
+ '.claude/',
363
+ '.claude.json',
364
+ '.credentials*',
365
+ '*.pem',
366
+ '*.key',
367
+ '.ssh/',
368
+ '.gnupg/',
369
+ '.npm/',
370
+ '.config/',
371
+ '.zsh_history',
372
+ '.bash_history',
373
+ '.zsh_sessions/',
374
+ 'node_modules/',
375
+ '.DS_Store',
376
+ ];
377
+ try {
378
+ let gitignoreContent = '';
379
+ if ((0, node_fs_1.existsSync)(gitignorePath)) {
380
+ gitignoreContent = (0, node_fs_1.readFileSync)(gitignorePath, 'utf-8');
381
+ }
382
+ // Add any missing credential patterns
383
+ const missing = CREDENTIAL_PATTERNS.filter(p => !gitignoreContent.includes(p));
384
+ if (missing.length > 0) {
385
+ const addition = (gitignoreContent && !gitignoreContent.endsWith('\n') ? '\n' : '') + missing.join('\n') + '\n';
386
+ (0, node_fs_1.writeFileSync)(gitignorePath, gitignoreContent + addition);
387
+ console.log(chalk_1.default.green(' ✓') + ' .gitignore updated with credential protection');
388
+ }
389
+ else {
390
+ console.log(chalk_1.default.green(' ✓') + ' .gitignore has credential protection');
391
+ }
392
+ }
393
+ catch {
394
+ // Non-fatal
395
+ }
206
396
  if (!hasCVDir) {
207
397
  (0, node_fs_1.mkdirSync)((0, node_path_1.join)(cwd, '.cv'), { recursive: true });
208
398
  }
@@ -213,6 +403,25 @@ async function runSetup() {
213
403
  try {
214
404
  const existingRemote = (0, node_child_process_1.execSync)('git remote get-url cv-hub 2>/dev/null || echo ""', { cwd, encoding: 'utf8' }).trim();
215
405
  if (!existingRemote) {
406
+ // Create repo on CV-Hub (non-fatal if it already exists or fails)
407
+ try {
408
+ const controller = new AbortController();
409
+ const timeout = setTimeout(() => controller.abort(), 15_000);
410
+ await fetch(`${hubUrl}/api/v1/user/repos`, {
411
+ method: 'POST',
412
+ headers: {
413
+ Authorization: `Bearer ${token}`,
414
+ 'Content-Type': 'application/json',
415
+ },
416
+ body: JSON.stringify({ name: repoName, auto_init: false }),
417
+ signal: controller.signal,
418
+ });
419
+ clearTimeout(timeout);
420
+ console.log(chalk_1.default.green(' ✓') + ` Repo created on CV-Hub: ${username}/${repoName}`);
421
+ }
422
+ catch {
423
+ // May already exist — that's fine
424
+ }
216
425
  (0, node_child_process_1.execSync)(`git remote add cv-hub ${remoteUrl}`, { cwd, stdio: 'pipe' });
217
426
  console.log(chalk_1.default.green(' ✓') + ` Remote added: cv-hub → ${remoteUrl}`);
218
427
  }
@@ -223,19 +432,126 @@ async function runSetup() {
223
432
  catch {
224
433
  // Remote setup non-fatal
225
434
  }
435
+ // Configure git credentials for CV-Hub pushes
436
+ try {
437
+ const credStorePath = (0, node_path_1.join)((0, node_os_1.homedir)(), '.git-credentials');
438
+ const credLine = `https://${username}:${token}@${gitHost}`;
439
+ let existing = '';
440
+ try {
441
+ existing = (0, node_fs_1.readFileSync)(credStorePath, 'utf-8');
442
+ }
443
+ catch { /* doesn't exist yet */ }
444
+ if (!existing.includes(gitHost)) {
445
+ (0, node_fs_1.writeFileSync)(credStorePath, existing + credLine + '\n', { mode: 0o600 });
446
+ }
447
+ (0, node_child_process_1.execSync)(`git config --global credential.helper store`, { stdio: 'pipe' });
448
+ }
449
+ catch {
450
+ // Non-fatal
451
+ }
452
+ // Initial commit if repo has no commits
453
+ try {
454
+ (0, node_child_process_1.execSync)('git log --oneline -1', { cwd, stdio: 'pipe' });
455
+ // Has commits — check for uncommitted new files
456
+ const status = (0, node_child_process_1.execSync)('git status --porcelain', { cwd, encoding: 'utf8' }).trim();
457
+ if (status) {
458
+ (0, node_child_process_1.execSync)('git add -A', { cwd, stdio: 'pipe' });
459
+ (0, node_child_process_1.execSync)('git commit -m "chore: cv-agent setup"', { cwd, stdio: 'pipe' });
460
+ console.log(chalk_1.default.green(' ✓') + ' Changes committed');
461
+ }
462
+ }
463
+ catch {
464
+ // No commits yet — make initial commit
465
+ try {
466
+ (0, node_child_process_1.execSync)('git add -A', { cwd, stdio: 'pipe' });
467
+ (0, node_child_process_1.execSync)('git commit -m "Initial commit via cv-agent"', { cwd, stdio: 'pipe' });
468
+ console.log(chalk_1.default.green(' ✓') + ' Initial commit created');
469
+ }
470
+ catch { /* empty repo with nothing to commit */ }
471
+ }
472
+ // Push to CV-Hub
473
+ try {
474
+ (0, node_child_process_1.execSync)('git push -u cv-hub main 2>&1', { cwd, stdio: 'pipe', timeout: 30_000 });
475
+ console.log(chalk_1.default.green(' ✓') + ' Pushed to CV-Hub');
476
+ }
477
+ catch {
478
+ // Push may fail if repo doesn't exist yet or auth issue — non-fatal
479
+ console.log(chalk_1.default.gray(' (Push skipped — you can push later with: git push cv-hub main)'));
480
+ }
481
+ }
482
+ console.log();
483
+ // ── Step 5: Agent Daemon ────────────────────────────────────────────
484
+ let agentStatus = '';
485
+ const pidFile = (0, node_path_1.join)((0, node_os_1.homedir)(), '.config', 'controlvector', 'agent.pid');
486
+ // Check if agent is already running
487
+ let agentRunning = false;
488
+ try {
489
+ const pid = parseInt((0, node_fs_1.readFileSync)(pidFile, 'utf-8').trim(), 10);
490
+ if (pid > 0) {
491
+ process.kill(pid, 0); // throws if not running
492
+ agentRunning = true;
493
+ agentStatus = `running (PID ${pid})`;
494
+ console.log(chalk_1.default.green(' ✓') + ` Agent already running (PID ${pid})`);
495
+ }
496
+ }
497
+ catch {
498
+ // PID file missing or process dead
499
+ }
500
+ if (!agentRunning) {
501
+ const readline = await import('node:readline');
502
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
503
+ const answer = await new Promise((resolve) => {
504
+ rl.question(' Start the CV-Agent daemon? (Y/n): ', (a) => {
505
+ rl.close();
506
+ resolve(a.trim().toLowerCase() || 'y');
507
+ });
508
+ });
509
+ if (answer === 'y' || answer === 'yes' || answer === '') {
510
+ const machName = (0, node_os_1.hostname)().toLowerCase().replace(/[^a-z0-9-]/g, '-').replace(/-+/g, '-');
511
+ console.log(chalk_1.default.gray(` Starting agent as "${machName}"...`));
512
+ try {
513
+ const { spawn: spawnChild } = await import('node:child_process');
514
+ const child = spawnChild('cva', [
515
+ 'agent', '--auto-approve', '--machine', machName, '--working-dir', cwd,
516
+ ], {
517
+ detached: true,
518
+ stdio: 'ignore',
519
+ env: { ...process.env },
520
+ });
521
+ child.unref();
522
+ if (child.pid) {
523
+ (0, node_fs_1.mkdirSync)((0, node_path_1.join)((0, node_os_1.homedir)(), '.config', 'controlvector'), { recursive: true });
524
+ (0, node_fs_1.writeFileSync)(pidFile, String(child.pid), { mode: 0o600 });
525
+ agentStatus = `running (PID ${child.pid})`;
526
+ console.log(chalk_1.default.green(' ✓') + ` Agent started (PID ${child.pid}) — executor "${machName}"`);
527
+ }
528
+ }
529
+ catch (err) {
530
+ console.log(chalk_1.default.yellow(` Could not start agent: ${err.message}`));
531
+ console.log(chalk_1.default.gray(' Start manually with: cva agent --auto-approve'));
532
+ agentStatus = 'not started';
533
+ }
534
+ }
535
+ else {
536
+ agentStatus = 'not started';
537
+ console.log(chalk_1.default.gray(' Start anytime with: cva agent --auto-approve'));
538
+ }
226
539
  }
227
540
  console.log();
228
- // ── Step 5: Summary ────────────────────────────────────────────────
541
+ // ── Step 6: Summary ────────────────────────────────────────────────
229
542
  console.log(chalk_1.default.bold(' Setup Complete'));
230
543
  console.log(chalk_1.default.gray(' ' + '─'.repeat(40)));
231
544
  console.log(` ${chalk_1.default.green('✓')} Authenticated as: ${chalk_1.default.cyan(username)}`);
232
545
  console.log(` ${chalk_1.default.green('✓')} Repository: ${chalk_1.default.cyan(repoName)}`);
233
546
  console.log(` ${chalk_1.default.green('✓')} CLAUDE.md: present`);
547
+ if (agentStatus.startsWith('running')) {
548
+ console.log(` ${chalk_1.default.green('✓')} Agent daemon: ${chalk_1.default.cyan(agentStatus)}`);
549
+ }
234
550
  console.log(chalk_1.default.gray(' ' + '─'.repeat(40)));
235
551
  console.log();
236
552
  console.log(' What\'s next:');
237
- console.log(` ${chalk_1.default.cyan('cva agent --auto-approve')} — Start listening for tasks`);
238
- console.log(` Or open Claude.ai and dispatch a task to this repo.`);
553
+ console.log(' Open Claude.ai and try:');
554
+ console.log(chalk_1.default.cyan(` "Create a task in ${repoName} to add a hello world index.html"`));
239
555
  console.log();
240
556
  console.log(chalk_1.default.gray(` Dashboard: ${appUrl}`));
241
557
  console.log();
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;AAgmBH,oCAKC;AAnmBD,yCAAoC;AACpC,2DAA8C;AAC9C,qCAA6E;AAC7E,yCAA2C;AAC3C,qCAA4C;AAC5C,kDAA0B;AAC1B,4DAGiC;AAEjC,+EAA+E;AAC/E,6CAA6C;AAC7C,+EAA+E;AAE/E,MAAM,eAAe,GAAG,IAAA,gBAAI,EAAC,IAAA,iBAAO,GAAE,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;AACpE,MAAM,gBAAgB,GAAG,IAAA,gBAAI,EAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;AASnE,SAAS,eAAe;IACtB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC;QACjE,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;AAC1B,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAkB;IAC1C,IAAA,mBAAS,EAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,IAAA,uBAAa,EAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1F,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,MAAc,EAAE,KAAa;IACxD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;QAC7D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,cAAc,EAAE;YAC/C,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;YAC7C,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;QACH,YAAY,CAAC,OAAO,CAAC,CAAC;QACtB,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QACzB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAsD,CAAC;QAClF,OAAO,IAAI,CAAC,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,SAAS,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;AAC1B,CAAC;AAED,+EAA+E;AAC/E,6CAA6C;AAC7C,+EAA+E;AAE/E,MAAM,gBAAgB,GAAG,cAAc,CAAC;AACxC,MAAM,aAAa,GAAG,6CAA6C,CAAC;AACpE,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC9B,MAAM,iBAAiB,GAAG,GAAG,CAAC,CAAC,aAAa;AAO5C,KAAK,UAAU,cAAc,CAAC,MAAc,EAAE,MAAc;IAC1D,uCAAuC;IACvC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,yBAAyB,EAAE;QAC9D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;QAChE,IAAI,EAAE,IAAI,eAAe,CAAC;YACxB,SAAS,EAAE,gBAAgB;YAC3B,KAAK,EAAE,aAAa;SACrB,CAAC;KACH,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAmC,CAAC;QACrF,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,iBAAiB,IAAI,uBAAuB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAO9B,CAAC;IAEF,wCAAwC;IACxC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,QAAQ,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gBAAgB,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACpG,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,QAAQ,eAAK,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACpH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,sBAAsB;IACtB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;QAC7G,IAAA,6BAAQ,EAAC,GAAG,OAAO,KAAK,IAAI,CAAC,yBAAyB,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1F,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC,CAAC;IAC5E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,yBAAyB;IACzB,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAChE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IAEvD,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,iBAAiB,EAAE,OAAO,EAAE,EAAE,CAAC;QAC7D,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QAEhD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,SAAS,GAAG,EAAE,CAAC;QAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;QAElH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,cAAc,EAAE;YACpD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;YAChE,IAAI,EAAE,IAAI,eAAe,CAAC;gBACxB,UAAU,EAAE,8CAA8C;gBAC1D,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,SAAS,EAAE,gBAAgB;aAC5B,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAIpC,CAAC;QAEF,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;YAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;YAEnD,eAAe;YACf,IAAI,KAAK,GAAG,MAAM,CAAC;YACnB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,iBAAiB,EAAE;oBACtD,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,SAAS,CAAC,YAAY,EAAE,EAAE;iBAC/D,CAAC,CAAC;gBACH,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;oBACf,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,EAAoD,CAAC;oBACxF,KAAK,GAAG,QAAQ,CAAC,kBAAkB,IAAI,QAAQ,CAAC,IAAI,IAAI,MAAM,CAAC;gBACjE,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;YAE7B,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAC5D,CAAC;QAED,IAAI,SAAS,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YACpC,QAAQ,IAAI,IAAI,CAAC;QACnB,CAAC;aAAM,IAAI,SAAS,CAAC,KAAK,KAAK,eAAe,EAAE,CAAC;YAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;aAAM,IAAI,SAAS,CAAC,KAAK,KAAK,eAAe,EAAE,CAAC;YAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QACD,uCAAuC;IACzC,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;AAC7C,CAAC;AAED,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,SAAS,WAAW,CAAC,GAAW;IAC9B,IAAI,CAAC;QACH,OAAO,IAAA,6BAAQ,EAAC,GAAG,GAAG,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5F,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;AAC1B,CAAC;AAED,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,KAAK,UAAU,QAAQ;IACrB,MAAM,MAAM,GAAG,kCAAkC,CAAC;IAClD,MAAM,MAAM,GAAG,8BAA8B,CAAC;IAE9C,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,sEAAsE;IACtE,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAEzC,MAAM,WAAW,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC;IAChD,MAAM,aAAa,GAAG,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAEtD,OAAO,CAAC,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,WAAW,IAAI,aAAa,EAAE,CAAC,CAAC;IAC9G,OAAO,CAAC,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,UAAU,IAAI,aAAa,EAAE,CAAC,CAAC;IACxG,OAAO,CAAC,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,aAAa,IAAI,aAAa,EAAE,CAAC,CAAC;IACtH,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU,EAAE,CAAC;QAChC,IAAI,CAAC,WAAW;YAAE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,UAAU;YAAE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC,CAAC;QAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,wCAAwC,CAAC,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC,CAAC;QACnF,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,sEAAsE;IACtE,IAAI,QAA4B,CAAC;IACjC,IAAI,KAAyB,CAAC;IAE9B,0DAA0D;IAC1D,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/D,IAAI,IAAI,EAAE,CAAC;YACT,QAAQ,GAAG,IAAI,CAAC;YAChB,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,qBAAqB,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,2BAA2B;QAC3B,MAAM,KAAK,GAAG,MAAM,IAAA,gCAAe,GAAE,CAAC;QACtC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YAC3D,IAAI,IAAI,EAAE,CAAC;gBACT,QAAQ,GAAG,IAAI,CAAC;gBAChB,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,qBAAqB,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;gBACpG,2BAA2B;gBAC3B,gBAAgB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAC/F,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,iDAAiD;QACjD,iFAAiF;QACjF,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC1D,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;YAC3B,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;YAEjC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,qBAAqB,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAE9E,6BAA6B;YAC7B,gBAAgB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAE7F,6DAA6D;YAC7D,MAAM,IAAA,qCAAoB,EAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YAChD,MAAM,IAAA,qCAAoB,EAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,4BAA4B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC,CAAC;YAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,sEAAsE;IACtE,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,mDAAmD,kBAAkB,CAAC,GAAG,MAAM,MAAM,CAAC,EAAE,CAAC;IAExG,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,OAAO,MAAM,EAAE,CAAC,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,sEAAsE;IACtE,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACxB,IAAI,SAAS,GAAG,IAAA,oBAAU,EAAC,IAAA,gBAAI,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9C,IAAI,QAAQ,GAAG,IAAA,oBAAQ,EAAC,GAAG,CAAC,CAAC;IAE7B,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,oBAAoB,QAAQ,EAAE,CAAC,CAAC;IACnE,CAAC;SAAM,CAAC;QACN,4CAA4C;QAC5C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QAC/C,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAEtF,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,OAAO,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,qCAAqC,GAAG,EAAE,CAAC,CAAC;QAC9E,OAAO,CAAC,GAAG,CAAC,OAAO,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;YACnD,EAAE,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC,MAAc,EAAE,EAAE;gBACjD,EAAE,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;YAC5B,oBAAoB;YACpB,IAAI,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC;gBAC3D,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;gBACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;gBAC7D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,wBAAwB,EAAE;oBACzD,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;oBAC7C,MAAM,EAAE,UAAU,CAAC,MAAM;iBAC1B,CAAC,CAAC;gBACH,YAAY,CAAC,OAAO,CAAC,CAAC;gBAEtB,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;oBACX,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAoF,CAAC;oBAChH,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;oBAEtC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACvB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,iEAAiE,CAAC,CAAC,CAAC;oBAC/F,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,GAAG,EAAE,CAAC;wBACd,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;wBAC3C,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBACxC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;4BAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;4BACrF,OAAO,CAAC,GAAG,CAAC,OAAO,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;wBAC1F,CAAC,CAAC,CAAC;wBACH,OAAO,CAAC,GAAG,EAAE,CAAC;wBAEd,MAAM,GAAG,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;wBACvF,MAAM,SAAS,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;4BACtD,GAAG,CAAC,QAAQ,CAAC,sBAAsB,YAAY,CAAC,MAAM,KAAK,EAAE,CAAC,MAAc,EAAE,EAAE;gCAC9E,GAAG,CAAC,KAAK,EAAE,CAAC;gCACZ,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;4BACzB,CAAC,CAAC,CAAC;wBACL,CAAC,CAAC,CAAC;wBAEH,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;wBACxC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;4BAC1C,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;4BAC/B,MAAM,OAAO,GAAG,0BAA0B,CAAC;4BAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC;4BACpC,MAAM,QAAQ,GAAG,WAAW,QAAQ,IAAI,KAAK,IAAI,OAAO,IAAI,QAAQ,IAAI,IAAI,MAAM,CAAC;4BAEnF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,aAAa,QAAQ,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC;4BAC5D,IAAA,6BAAQ,EAAC,aAAa,QAAQ,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;4BACnF,GAAG,GAAG,IAAA,gBAAI,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;4BACtB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;4BACnB,QAAQ,GAAG,IAAI,CAAC;4BAChB,SAAS,GAAG,IAAI,CAAC;4BACjB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,QAAQ,IAAI,IAAI,EAAE,CAAC,CAAC;wBAClE,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,4BAA4B,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,CAAC;YAC9F,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;YAChD,IAAA,6BAAQ,EAAC,kCAAkC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,uBAAuB,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,IAAA,oBAAU,EAAC,IAAA,gBAAI,EAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,IAAA,oBAAU,EAAC,IAAA,gBAAI,EAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAE9C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,QAAQ,GAAG,KAAK,QAAQ,6KAA6K,CAAC;QAC5M,IAAA,uBAAa,EAAC,IAAA,gBAAI,EAAC,GAAG,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,oBAAoB,CAAC,CAAC;IACzD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,oBAAoB,CAAC,CAAC;IACzD,CAAC;IAED,2DAA2D;IAC3D,MAAM,aAAa,GAAG,IAAA,gBAAI,EAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAC9C,MAAM,mBAAmB,GAAG;QAC1B,oDAAoD;QACpD,MAAM;QACN,QAAQ;QACR,UAAU;QACV,cAAc;QACd,eAAe;QACf,OAAO;QACP,OAAO;QACP,OAAO;QACP,SAAS;QACT,OAAO;QACP,UAAU;QACV,cAAc;QACd,eAAe;QACf,gBAAgB;QAChB,eAAe;QACf,WAAW;KACZ,CAAC;IAEF,IAAI,CAAC;QACH,IAAI,gBAAgB,GAAG,EAAE,CAAC;QAC1B,IAAI,IAAA,oBAAU,EAAC,aAAa,CAAC,EAAE,CAAC;YAC9B,gBAAgB,GAAG,IAAA,sBAAY,EAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC1D,CAAC;QACD,sCAAsC;QACtC,MAAM,OAAO,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,CAAC,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YAChH,IAAA,uBAAa,EAAC,aAAa,EAAE,gBAAgB,GAAG,QAAQ,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,gDAAgD,CAAC,CAAC;QACrF,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,uCAAuC,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,YAAY;IACd,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,IAAA,mBAAS,EAAC,IAAA,gBAAI,EAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,2CAA2C;IAC3C,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,0BAA0B,CAAC;QAC3C,MAAM,SAAS,GAAG,WAAW,OAAO,IAAI,QAAQ,IAAI,QAAQ,MAAM,CAAC;QACnE,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,IAAA,6BAAQ,EAAC,kDAAkD,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACtH,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,kEAAkE;gBAClE,IAAI,CAAC;oBACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;oBACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;oBAC7D,MAAM,KAAK,CAAC,GAAG,MAAM,oBAAoB,EAAE;wBACzC,MAAM,EAAE,MAAM;wBACd,OAAO,EAAE;4BACP,aAAa,EAAE,UAAU,KAAK,EAAE;4BAChC,cAAc,EAAE,kBAAkB;yBACnC;wBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;wBAC1D,MAAM,EAAE,UAAU,CAAC,MAAM;qBAC1B,CAAC,CAAC;oBACH,YAAY,CAAC,OAAO,CAAC,CAAC;oBACtB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,4BAA4B,QAAQ,IAAI,QAAQ,EAAE,CAAC,CAAC;gBACvF,CAAC;gBAAC,MAAM,CAAC;oBACP,kCAAkC;gBACpC,CAAC;gBAED,IAAA,6BAAQ,EAAC,yBAAyB,SAAS,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBACvE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,2BAA2B,SAAS,EAAE,CAAC,CAAC;YAC3E,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,uBAAuB,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,yBAAyB;QAC3B,CAAC;QAED,8CAA8C;QAC9C,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,IAAA,gBAAI,EAAC,IAAA,iBAAO,GAAE,EAAE,kBAAkB,CAAC,CAAC;YAC1D,MAAM,QAAQ,GAAG,WAAW,QAAQ,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;YAC3D,IAAI,QAAQ,GAAG,EAAE,CAAC;YAClB,IAAI,CAAC;gBAAC,QAAQ,GAAG,IAAA,sBAAY,EAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,uBAAuB,CAAC,CAAC;YAC1F,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChC,IAAA,uBAAa,EAAC,aAAa,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAC5E,CAAC;YACD,IAAA,6BAAQ,EAAC,6CAA6C,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7E,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;QAED,wCAAwC;QACxC,IAAI,CAAC;YACH,IAAA,6BAAQ,EAAC,sBAAsB,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACzD,gDAAgD;YAChD,MAAM,MAAM,GAAG,IAAA,6BAAQ,EAAC,wBAAwB,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACpF,IAAI,MAAM,EAAE,CAAC;gBACX,IAAA,6BAAQ,EAAC,YAAY,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC/C,IAAA,6BAAQ,EAAC,uCAAuC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC1E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,oBAAoB,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,uCAAuC;YACvC,IAAI,CAAC;gBACH,IAAA,6BAAQ,EAAC,YAAY,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC/C,IAAA,6BAAQ,EAAC,6CAA6C,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBAChF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,yBAAyB,CAAC,CAAC;YAC9D,CAAC;YAAC,MAAM,CAAC,CAAC,uCAAuC,CAAC,CAAC;QACrD,CAAC;QAED,iBAAiB;QACjB,IAAI,CAAC;YACH,IAAA,6BAAQ,EAAC,8BAA8B,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAClF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,mBAAmB,CAAC,CAAC;QACxD,CAAC;QAAC,MAAM,CAAC;YACP,oEAAoE;YACpE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,uEAAuE;IACvE,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,MAAM,OAAO,GAAG,IAAA,gBAAI,EAAC,IAAA,iBAAO,GAAE,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;IAEzE,oCAAoC;IACpC,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAA,sBAAY,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAChE,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,wBAAwB;YAC9C,YAAY,GAAG,IAAI,CAAC;YACpB,WAAW,GAAG,gBAAgB,GAAG,GAAG,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,+BAA+B,GAAG,GAAG,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,mCAAmC;IACrC,CAAC;IAED,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QAC/C,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACtF,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;YACnD,EAAE,CAAC,QAAQ,CAAC,sCAAsC,EAAE,CAAC,CAAS,EAAE,EAAE;gBAChE,EAAE,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;YACxD,MAAM,QAAQ,GAAG,IAAA,kBAAQ,GAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC1F,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,wBAAwB,QAAQ,MAAM,CAAC,CAAC,CAAC;YAEhE,IAAI,CAAC;gBACH,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;gBACjE,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE;oBAC9B,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG;iBACvE,EAAE;oBACD,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,QAAQ;oBACf,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;iBACxB,CAAC,CAAC;gBACH,KAAK,CAAC,KAAK,EAAE,CAAC;gBAEd,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;oBACd,IAAA,mBAAS,EAAC,IAAA,gBAAI,EAAC,IAAA,iBAAO,GAAE,EAAE,SAAS,EAAE,eAAe,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC5E,IAAA,uBAAa,EAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC3D,WAAW,GAAG,gBAAgB,KAAK,CAAC,GAAG,GAAG,CAAC;oBAC3C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,uBAAuB,KAAK,CAAC,GAAG,iBAAiB,QAAQ,GAAG,CAAC,CAAC;gBACjG,CAAC;YACH,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,4BAA4B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACrE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC,CAAC;gBAC3E,WAAW,GAAG,aAAa,CAAC;YAC9B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,aAAa,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,sEAAsE;IACtE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC/E,OAAO,CAAC,GAAG,CAAC,KAAK,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,KAAK,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACxD,IAAI,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,KAAK,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,eAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,yBAAyB,QAAQ,mCAAmC,CAAC,CAAC,CAAC;IAC9F,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,EAAE,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,SAAgB,YAAY;IAC1B,MAAM,GAAG,GAAG,IAAI,mBAAO,CAAC,OAAO,CAAC,CAAC;IACjC,GAAG,CAAC,WAAW,CAAC,sEAAsE,CAAC,CAAC;IACxF,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrB,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -20,7 +20,7 @@ export interface ExecutorRegistrationMetadata {
20
20
  owner_project?: string;
21
21
  dispatch_guard?: string;
22
22
  }
23
- export declare function registerExecutor(creds: CVHubCredentials, machineName: string, workingDir: string, repositoryId?: string, metadata?: ExecutorRegistrationMetadata): Promise<{
23
+ export declare function registerExecutor(creds: CVHubCredentials, machineName: string, workingDir: string, repositoryId?: string, metadata?: ExecutorRegistrationMetadata, repoOwnerSlug?: string): Promise<{
24
24
  id: string;
25
25
  name: string;
26
26
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"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"}
package/dist/utils/api.js CHANGED
@@ -41,7 +41,7 @@ async function apiCall(creds, method, path, body) {
41
41
  body: body ? JSON.stringify(body) : undefined,
42
42
  });
43
43
  }
44
- async function registerExecutor(creds, machineName, workingDir, repositoryId, metadata) {
44
+ async function registerExecutor(creds, machineName, workingDir, repositoryId, metadata, repoOwnerSlug) {
45
45
  const body = {
46
46
  name: `cva:${machineName}`,
47
47
  machine_name: machineName,
@@ -66,7 +66,25 @@ async function registerExecutor(creds, machineName, workingDir, repositoryId, me
66
66
  body.owner_project = metadata.owner_project;
67
67
  if (metadata?.integration)
68
68
  body.integration = metadata.integration;
69
- const res = await apiCall(creds, 'POST', '/api/v1/executors', body);
69
+ let res = await apiCall(creds, 'POST', '/api/v1/executors', body);
70
+ // Handle multi-org 400: auto-resolve organization_id from repo owner slug
71
+ if (res.status === 400 && repoOwnerSlug) {
72
+ try {
73
+ const errData = await res.json();
74
+ const orgs = errData.error?.organizations;
75
+ if (orgs && orgs.length > 0) {
76
+ // Match repo owner slug to an org slug
77
+ const match = orgs.find((o) => o.slug.toLowerCase() === repoOwnerSlug.toLowerCase());
78
+ if (match) {
79
+ body.organization_id = match.id;
80
+ res = await apiCall(creds, 'POST', '/api/v1/executors', body);
81
+ }
82
+ }
83
+ }
84
+ catch {
85
+ // JSON parse failed — fall through to original error
86
+ }
87
+ }
70
88
  if (!res.ok) {
71
89
  const err = await res.text();
72
90
  throw new Error(`Failed to register executor: ${res.status} ${err}`);