@nairon-ai/aegis 0.4.9 → 0.4.10

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.
package/README.md CHANGED
@@ -78,6 +78,8 @@ GitHub App credentials are saved in `.aegis/.env` and backed up for your Mac use
78
78
 
79
79
  If you connect Linear, Aegis fetches your Linear teams after you paste the API key and lets you choose by name, for example `Engineering (ENG)`. You do not need to hunt for Linear UUIDs manually.
80
80
 
81
+ Setup reruns check each completed step first. Existing API keys, webhook secrets, Linear team, Telegram config, production context, model choice, and Worker URL are reused unless you choose to reconfigure that step.
82
+
81
83
  ### Deployed AFK Mode
82
84
 
83
85
  Deploy only after the local dry-run works.
@@ -323,6 +323,40 @@ function sleep(ms) {
323
323
  function hasGitHubAppConfig(config) {
324
324
  return Boolean(config.githubAppId && config.githubAppPrivateKey && config.githubInstallationId);
325
325
  }
326
+ function hasLinearConfig(config) {
327
+ return Boolean(config.linearApiKey && config.linearTeamId);
328
+ }
329
+ function hasLinearWorkflowConfig(config) {
330
+ return Boolean(config.linearReadyStatus &&
331
+ config.linearInProgressStatus &&
332
+ config.linearNeedsInfoStatus &&
333
+ config.linearBlockedStatus &&
334
+ config.linearBugLabel);
335
+ }
336
+ function hasAutomationConfig(config) {
337
+ const hasModelKey = !config.agentModel?.startsWith("openai/") || Boolean(config.openaiApiKey);
338
+ return Boolean(config.readyLabel &&
339
+ config.bugLabel &&
340
+ config.automationMode &&
341
+ config.agentModel &&
342
+ hasModelKey);
343
+ }
344
+ function hasProductionContextConfig(config) {
345
+ return Boolean(config.contextProfile &&
346
+ (config.contextProfile === "minimal" ||
347
+ config.databaseUrl ||
348
+ (config.vercelToken && config.vercelProjectId)));
349
+ }
350
+ function hasTelegramConfig(config) {
351
+ return Boolean(config.telegramBotToken && config.telegramChatId);
352
+ }
353
+ function maskSecret(value) {
354
+ if (!value)
355
+ return "not configured";
356
+ if (value.length <= 8)
357
+ return "configured";
358
+ return `${value.slice(0, 4)}...${value.slice(-4)}`;
359
+ }
326
360
  function detectInstalledAegisApps(monitoredRepo) {
327
361
  if (!monitoredRepo)
328
362
  return [];
@@ -371,6 +405,22 @@ function slugify(value) {
371
405
  .replace(/^-|-$/g, "");
372
406
  }
373
407
  async function setupLinear(config) {
408
+ let forceTeamSelection = false;
409
+ let forceWorkflowSelection = false;
410
+ if (hasLinearConfig(config)) {
411
+ printStep("Step 4: Linear already connected", [
412
+ `Using saved API key ${maskSecret(config.linearApiKey)}.`,
413
+ `Watching team ${config.linearTeamId}.`,
414
+ config.linearProjectId
415
+ ? `Limited to project ${config.linearProjectId}.`
416
+ : "Watching the whole Linear team.",
417
+ ]);
418
+ const reconfigure = await promptConfirm("Reconfigure Linear?", false);
419
+ if (!reconfigure)
420
+ return;
421
+ forceTeamSelection = true;
422
+ forceWorkflowSelection = true;
423
+ }
374
424
  printStep("Step 4: optional Linear connection", [
375
425
  "Use this only if your team tracks bugs in Linear.",
376
426
  "If you only use GitHub Issues, choose no.",
@@ -379,33 +429,52 @@ async function setupLinear(config) {
379
429
  const enable = await promptConfirm("Connect Linear too?", Boolean(config.linearApiKey));
380
430
  if (!enable)
381
431
  return;
382
- printStep("Linear API key", [
383
- "Open Linear settings, create a personal API key, then paste it here.",
384
- "Aegis uses it to read ready bug tickets and comment with status updates.",
385
- ]);
386
- config.linearApiKey = await promptText("Linear API key:", config.linearApiKey);
387
- await setupLinearTeam(config);
388
- printStep("Linear webhook secret", [
389
- "This protects Linear webhook calls after deploy.",
390
- "Choose yes and Aegis will generate one.",
391
- ]);
392
- const generateSecret = await promptConfirm("Generate a Linear webhook signing secret?", !config.linearWebhookSecret);
393
- config.linearWebhookSecret = generateSecret
394
- ? crypto.randomUUID()
395
- : await promptText("Linear webhook signing secret:", config.linearWebhookSecret);
396
- printStep("Linear statuses and labels", [
397
- "These names must match your Linear workflow.",
398
- "If your team uses the default names, press Enter through these prompts.",
399
- ]);
400
- config.linearReadyStatus = await promptText("Linear ready status name:", config.linearReadyStatus ?? "Ready to Implement");
401
- config.linearInProgressStatus = await promptText("Linear in-progress status name:", config.linearInProgressStatus ?? "In Progress");
402
- config.linearNeedsInfoStatus = await promptText("Linear needs-info status name:", config.linearNeedsInfoStatus ?? "Needs Info");
403
- config.linearBlockedStatus = await promptText("Linear blocked status name:", config.linearBlockedStatus ?? "Blocked");
404
- config.linearBugLabel = await promptText("Linear bug label:", config.linearBugLabel ?? "bug");
432
+ if (config.linearApiKey) {
433
+ consola.info(`Using saved Linear API key ${maskSecret(config.linearApiKey)}.`);
434
+ }
435
+ else {
436
+ printStep("Linear API key", [
437
+ "Open Linear settings, create a personal API key, then paste it here.",
438
+ "Aegis uses it to read ready bug tickets and comment with status updates.",
439
+ ]);
440
+ config.linearApiKey = await promptText("Linear API key:", config.linearApiKey);
441
+ }
442
+ await setupLinearTeam(config, forceTeamSelection);
443
+ if (config.linearWebhookSecret) {
444
+ consola.info("Linear webhook secret is already configured.");
445
+ }
446
+ else {
447
+ printStep("Linear webhook secret", [
448
+ "This protects Linear webhook calls after deploy.",
449
+ "Choose yes and Aegis will generate one.",
450
+ ]);
451
+ const generateSecret = await promptConfirm("Generate a Linear webhook signing secret?", true);
452
+ config.linearWebhookSecret = generateSecret
453
+ ? crypto.randomUUID()
454
+ : await promptText("Linear webhook signing secret:", config.linearWebhookSecret);
455
+ }
456
+ if (hasLinearWorkflowConfig(config) && !forceWorkflowSelection) {
457
+ consola.info("Linear statuses and bug label are already configured.");
458
+ }
459
+ else {
460
+ printStep("Linear statuses and labels", [
461
+ "These names must match your Linear workflow.",
462
+ "If your team uses the default names, press Enter through these prompts.",
463
+ ]);
464
+ config.linearReadyStatus = await promptText("Linear ready status name:", config.linearReadyStatus ?? "Ready to Implement");
465
+ config.linearInProgressStatus = await promptText("Linear in-progress status name:", config.linearInProgressStatus ?? "In Progress");
466
+ config.linearNeedsInfoStatus = await promptText("Linear needs-info status name:", config.linearNeedsInfoStatus ?? "Needs Info");
467
+ config.linearBlockedStatus = await promptText("Linear blocked status name:", config.linearBlockedStatus ?? "Blocked");
468
+ config.linearBugLabel = await promptText("Linear bug label:", config.linearBugLabel ?? "bug");
469
+ }
405
470
  }
406
- async function setupLinearTeam(config) {
471
+ async function setupLinearTeam(config, forceSelection = false) {
407
472
  if (!config.linearApiKey)
408
473
  return;
474
+ if (config.linearTeamId && !forceSelection) {
475
+ consola.info(`Using saved Linear team ${config.linearTeamId}.`);
476
+ return;
477
+ }
409
478
  printStep("Linear team/project", [
410
479
  "Aegis will fetch your Linear teams so you can pick one by name.",
411
480
  "Project ID is optional. Leave it blank to watch the whole team.",
@@ -464,6 +533,19 @@ function formatLinearTeam(team) {
464
533
  return `${team.name} (${team.key})`;
465
534
  }
466
535
  async function setupAutomation(config) {
536
+ if (hasAutomationConfig(config)) {
537
+ printStep("Steps 5-7: automation already configured", [
538
+ `GitHub labels: ${config.bugLabel}, ${config.readyLabel}.`,
539
+ `Mode: ${config.automationMode}.`,
540
+ `Model: ${config.agentModel}.`,
541
+ config.openaiApiKey
542
+ ? `OpenAI key: ${maskSecret(config.openaiApiKey)}.`
543
+ : "OpenAI key: not configured.",
544
+ ]);
545
+ const reconfigure = await promptConfirm("Reconfigure labels, mode, or model?", false);
546
+ if (!reconfigure)
547
+ return;
548
+ }
467
549
  printStep("Step 5: GitHub labels Aegis should watch", [
468
550
  "Aegis only picks up open issues with both labels.",
469
551
  "Default labels are bug and ready to implement.",
@@ -491,7 +573,12 @@ async function setupAutomation(config) {
491
573
  "It is stored in .aegis/.env and later copied to Cloudflare secrets during deploy.",
492
574
  "Leave blank only if you configured a different model provider yourself.",
493
575
  ]);
494
- config.openaiApiKey = await promptText("OpenAI API key:", config.openaiApiKey);
576
+ if (config.openaiApiKey) {
577
+ consola.info(`Using saved OpenAI API key ${maskSecret(config.openaiApiKey)}.`);
578
+ }
579
+ else {
580
+ config.openaiApiKey = await promptText("OpenAI API key:", config.openaiApiKey);
581
+ }
495
582
  }
496
583
  async function promptAgentModel(current) {
497
584
  const selectedModel = current ?? DEFAULT_AGENT_MODEL;
@@ -505,6 +592,23 @@ async function promptAgentModel(current) {
505
592
  return await promptText("Custom Flue model:", selectedModel);
506
593
  }
507
594
  async function setupProductionContext(config) {
595
+ if (hasProductionContextConfig(config)) {
596
+ printStep("Step 8: production context already configured", [
597
+ `Context profile: ${config.contextProfile}.`,
598
+ config.databaseUrl
599
+ ? "Read-only database URL: configured."
600
+ : "Read-only database URL: not set.",
601
+ config.vercelToken
602
+ ? `Vercel token: ${maskSecret(config.vercelToken)}.`
603
+ : "Vercel token: not set.",
604
+ config.vercelProjectId
605
+ ? `Vercel project: ${config.vercelProjectId}.`
606
+ : "Vercel project: not set.",
607
+ ]);
608
+ const reconfigure = await promptConfirm("Reconfigure production context?", false);
609
+ if (!reconfigure)
610
+ return;
611
+ }
508
612
  printStep("Step 8: production context", [
509
613
  "Start with Minimal. It uses only issue text and repo code.",
510
614
  "Production context lets Aegis inspect read-only database data and Vercel logs.",
@@ -527,6 +631,18 @@ async function setupProductionContext(config) {
527
631
  config.vercelTeamId = await promptText("Vercel team ID (optional):", config.vercelTeamId);
528
632
  }
529
633
  async function setupTelegram(config) {
634
+ if (hasTelegramConfig(config)) {
635
+ printStep("Step 9: Telegram already connected", [
636
+ `Bot token: ${maskSecret(config.telegramBotToken)}.`,
637
+ `Chat ID: ${config.telegramChatId}.`,
638
+ config.telegramWebhookSecret
639
+ ? "Telegram webhook secret: configured."
640
+ : "Telegram webhook secret: not configured.",
641
+ ]);
642
+ const reconfigure = await promptConfirm("Reconfigure Telegram?", false);
643
+ if (!reconfigure)
644
+ return;
645
+ }
530
646
  printStep("Step 9: optional Telegram approval pings", [
531
647
  "Use this if you want Aegis to message you when it needs approval.",
532
648
  "For the first local dry-run, choose no.",
@@ -539,18 +655,42 @@ async function setupTelegram(config) {
539
655
  "Create a bot with BotFather, paste the bot token, then paste your chat ID.",
540
656
  "Aegis will send short approval summaries to that chat.",
541
657
  ]);
542
- config.telegramBotToken = await promptText("Telegram bot token:", config.telegramBotToken);
543
- config.telegramChatId = await promptText("Telegram chat ID:", config.telegramChatId);
544
- printStep("Telegram webhook secret", [
545
- "This protects Telegram webhook calls after deploy.",
546
- "Choose yes and Aegis will generate one.",
547
- ]);
548
- const generateSecret = await promptConfirm("Generate a Telegram webhook secret?", !config.telegramWebhookSecret);
549
- config.telegramWebhookSecret = generateSecret
550
- ? crypto.randomUUID()
551
- : await promptText("Telegram webhook secret:", config.telegramWebhookSecret);
658
+ if (config.telegramBotToken) {
659
+ consola.info(`Using saved Telegram bot token ${maskSecret(config.telegramBotToken)}.`);
660
+ }
661
+ else {
662
+ config.telegramBotToken = await promptText("Telegram bot token:", config.telegramBotToken);
663
+ }
664
+ if (config.telegramChatId) {
665
+ consola.info(`Using saved Telegram chat ID ${config.telegramChatId}.`);
666
+ }
667
+ else {
668
+ config.telegramChatId = await promptText("Telegram chat ID:", config.telegramChatId);
669
+ }
670
+ if (config.telegramWebhookSecret) {
671
+ consola.info("Telegram webhook secret is already configured.");
672
+ }
673
+ else {
674
+ printStep("Telegram webhook secret", [
675
+ "This protects Telegram webhook calls after deploy.",
676
+ "Choose yes and Aegis will generate one.",
677
+ ]);
678
+ const generateSecret = await promptConfirm("Generate a Telegram webhook secret?", true);
679
+ config.telegramWebhookSecret = generateSecret
680
+ ? crypto.randomUUID()
681
+ : await promptText("Telegram webhook secret:", config.telegramWebhookSecret);
682
+ }
552
683
  }
553
684
  async function setupWorker(config) {
685
+ if (config.workerUrl) {
686
+ printStep("Step 10: Worker URL already saved", [
687
+ `Using ${config.workerUrl}.`,
688
+ "Deploy updates this automatically when possible.",
689
+ ]);
690
+ const reconfigure = await promptConfirm("Reconfigure Worker URL?", false);
691
+ if (!reconfigure)
692
+ return;
693
+ }
554
694
  printStep("Step 10: Worker URL", [
555
695
  "Leave this blank before your first deploy.",
556
696
  "After deploy, Aegis saves the Worker URL automatically.",
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/cli/commands/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/cli/commands/setup.ts"],"names":[],"mappings":"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"}
package/docs/SETUP.md CHANGED
@@ -156,6 +156,7 @@ Important answers:
156
156
  - GitHub auth: use `One-click GitHub App` unless you already know how to create a fine-grained GitHub token. If setup already saved a GitHub App, Aegis reuses it on reruns. If GitHub has an installed Aegis app but local credentials are missing, setup detects it and asks you to generate a new app private key so it can recover the existing app.
157
157
  - GitHub App reuse: Aegis saves app credentials in `.aegis/.env` and backs them up for your Mac user under `~/.aegis/github-apps/`. Future setup runs restore them automatically.
158
158
  - Linear team: after you paste the Linear API key, Aegis fetches your teams and lets you choose by name. You do not need to copy the Linear team UUID manually.
159
+ - Setup reruns: each configured step is checked first. Existing API keys, webhook secrets, model settings, Telegram config, production context, and Worker URL are reused unless you explicitly choose to reconfigure that step.
159
160
  - `GitHub webhook secret`: generate one and keep it in `.aegis/.env`
160
161
  - `Automation mode`: start with `plan-first`
161
162
  - `Context profile`: start with `minimal`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nairon-ai/aegis",
3
- "version": "0.4.9",
3
+ "version": "0.4.10",
4
4
  "description": "Self-hosted AFK bug-fixing agent for GitHub Issues and Linear",
5
5
  "type": "module",
6
6
  "repository": {
@@ -376,6 +376,50 @@ function hasGitHubAppConfig(config: AegisCliConfig): boolean {
376
376
  return Boolean(config.githubAppId && config.githubAppPrivateKey && config.githubInstallationId);
377
377
  }
378
378
 
379
+ function hasLinearConfig(config: AegisCliConfig): boolean {
380
+ return Boolean(config.linearApiKey && config.linearTeamId);
381
+ }
382
+
383
+ function hasLinearWorkflowConfig(config: AegisCliConfig): boolean {
384
+ return Boolean(
385
+ config.linearReadyStatus &&
386
+ config.linearInProgressStatus &&
387
+ config.linearNeedsInfoStatus &&
388
+ config.linearBlockedStatus &&
389
+ config.linearBugLabel,
390
+ );
391
+ }
392
+
393
+ function hasAutomationConfig(config: AegisCliConfig): boolean {
394
+ const hasModelKey = !config.agentModel?.startsWith("openai/") || Boolean(config.openaiApiKey);
395
+ return Boolean(
396
+ config.readyLabel &&
397
+ config.bugLabel &&
398
+ config.automationMode &&
399
+ config.agentModel &&
400
+ hasModelKey,
401
+ );
402
+ }
403
+
404
+ function hasProductionContextConfig(config: AegisCliConfig): boolean {
405
+ return Boolean(
406
+ config.contextProfile &&
407
+ (config.contextProfile === "minimal" ||
408
+ config.databaseUrl ||
409
+ (config.vercelToken && config.vercelProjectId)),
410
+ );
411
+ }
412
+
413
+ function hasTelegramConfig(config: AegisCliConfig): boolean {
414
+ return Boolean(config.telegramBotToken && config.telegramChatId);
415
+ }
416
+
417
+ function maskSecret(value: string | undefined): string {
418
+ if (!value) return "not configured";
419
+ if (value.length <= 8) return "configured";
420
+ return `${value.slice(0, 4)}...${value.slice(-4)}`;
421
+ }
422
+
379
423
  function detectInstalledAegisApps(monitoredRepo: string | undefined): InstalledGitHubApp[] {
380
424
  if (!monitoredRepo) return [];
381
425
  const [owner, repo] = monitoredRepo.split("/");
@@ -437,6 +481,22 @@ function slugify(value: string): string {
437
481
  }
438
482
 
439
483
  async function setupLinear(config: AegisCliConfig): Promise<void> {
484
+ let forceTeamSelection = false;
485
+ let forceWorkflowSelection = false;
486
+ if (hasLinearConfig(config)) {
487
+ printStep("Step 4: Linear already connected", [
488
+ `Using saved API key ${maskSecret(config.linearApiKey)}.`,
489
+ `Watching team ${config.linearTeamId}.`,
490
+ config.linearProjectId
491
+ ? `Limited to project ${config.linearProjectId}.`
492
+ : "Watching the whole Linear team.",
493
+ ]);
494
+ const reconfigure = await promptConfirm("Reconfigure Linear?", false);
495
+ if (!reconfigure) return;
496
+ forceTeamSelection = true;
497
+ forceWorkflowSelection = true;
498
+ }
499
+
440
500
  printStep("Step 4: optional Linear connection", [
441
501
  "Use this only if your team tracks bugs in Linear.",
442
502
  "If you only use GitHub Issues, choose no.",
@@ -445,50 +505,65 @@ async function setupLinear(config: AegisCliConfig): Promise<void> {
445
505
  const enable = await promptConfirm("Connect Linear too?", Boolean(config.linearApiKey));
446
506
  if (!enable) return;
447
507
 
448
- printStep("Linear API key", [
449
- "Open Linear settings, create a personal API key, then paste it here.",
450
- "Aegis uses it to read ready bug tickets and comment with status updates.",
451
- ]);
452
- config.linearApiKey = await promptText("Linear API key:", config.linearApiKey);
453
- await setupLinearTeam(config);
508
+ if (config.linearApiKey) {
509
+ consola.info(`Using saved Linear API key ${maskSecret(config.linearApiKey)}.`);
510
+ } else {
511
+ printStep("Linear API key", [
512
+ "Open Linear settings, create a personal API key, then paste it here.",
513
+ "Aegis uses it to read ready bug tickets and comment with status updates.",
514
+ ]);
515
+ config.linearApiKey = await promptText("Linear API key:", config.linearApiKey);
516
+ }
517
+ await setupLinearTeam(config, forceTeamSelection);
454
518
 
455
- printStep("Linear webhook secret", [
456
- "This protects Linear webhook calls after deploy.",
457
- "Choose yes and Aegis will generate one.",
458
- ]);
459
- const generateSecret = await promptConfirm(
460
- "Generate a Linear webhook signing secret?",
461
- !config.linearWebhookSecret,
462
- );
463
- config.linearWebhookSecret = generateSecret
464
- ? crypto.randomUUID()
465
- : await promptText("Linear webhook signing secret:", config.linearWebhookSecret);
466
- printStep("Linear statuses and labels", [
467
- "These names must match your Linear workflow.",
468
- "If your team uses the default names, press Enter through these prompts.",
469
- ]);
470
- config.linearReadyStatus = await promptText(
471
- "Linear ready status name:",
472
- config.linearReadyStatus ?? "Ready to Implement",
473
- );
474
- config.linearInProgressStatus = await promptText(
475
- "Linear in-progress status name:",
476
- config.linearInProgressStatus ?? "In Progress",
477
- );
478
- config.linearNeedsInfoStatus = await promptText(
479
- "Linear needs-info status name:",
480
- config.linearNeedsInfoStatus ?? "Needs Info",
481
- );
482
- config.linearBlockedStatus = await promptText(
483
- "Linear blocked status name:",
484
- config.linearBlockedStatus ?? "Blocked",
485
- );
486
- config.linearBugLabel = await promptText("Linear bug label:", config.linearBugLabel ?? "bug");
519
+ if (config.linearWebhookSecret) {
520
+ consola.info("Linear webhook secret is already configured.");
521
+ } else {
522
+ printStep("Linear webhook secret", [
523
+ "This protects Linear webhook calls after deploy.",
524
+ "Choose yes and Aegis will generate one.",
525
+ ]);
526
+ const generateSecret = await promptConfirm("Generate a Linear webhook signing secret?", true);
527
+ config.linearWebhookSecret = generateSecret
528
+ ? crypto.randomUUID()
529
+ : await promptText("Linear webhook signing secret:", config.linearWebhookSecret);
530
+ }
531
+
532
+ if (hasLinearWorkflowConfig(config) && !forceWorkflowSelection) {
533
+ consola.info("Linear statuses and bug label are already configured.");
534
+ } else {
535
+ printStep("Linear statuses and labels", [
536
+ "These names must match your Linear workflow.",
537
+ "If your team uses the default names, press Enter through these prompts.",
538
+ ]);
539
+ config.linearReadyStatus = await promptText(
540
+ "Linear ready status name:",
541
+ config.linearReadyStatus ?? "Ready to Implement",
542
+ );
543
+ config.linearInProgressStatus = await promptText(
544
+ "Linear in-progress status name:",
545
+ config.linearInProgressStatus ?? "In Progress",
546
+ );
547
+ config.linearNeedsInfoStatus = await promptText(
548
+ "Linear needs-info status name:",
549
+ config.linearNeedsInfoStatus ?? "Needs Info",
550
+ );
551
+ config.linearBlockedStatus = await promptText(
552
+ "Linear blocked status name:",
553
+ config.linearBlockedStatus ?? "Blocked",
554
+ );
555
+ config.linearBugLabel = await promptText("Linear bug label:", config.linearBugLabel ?? "bug");
556
+ }
487
557
  }
488
558
 
489
- async function setupLinearTeam(config: AegisCliConfig): Promise<void> {
559
+ async function setupLinearTeam(config: AegisCliConfig, forceSelection = false): Promise<void> {
490
560
  if (!config.linearApiKey) return;
491
561
 
562
+ if (config.linearTeamId && !forceSelection) {
563
+ consola.info(`Using saved Linear team ${config.linearTeamId}.`);
564
+ return;
565
+ }
566
+
492
567
  printStep("Linear team/project", [
493
568
  "Aegis will fetch your Linear teams so you can pick one by name.",
494
569
  "Project ID is optional. Leave it blank to watch the whole team.",
@@ -565,6 +640,19 @@ function formatLinearTeam(team: LinearTeam): string {
565
640
  }
566
641
 
567
642
  async function setupAutomation(config: AegisCliConfig): Promise<void> {
643
+ if (hasAutomationConfig(config)) {
644
+ printStep("Steps 5-7: automation already configured", [
645
+ `GitHub labels: ${config.bugLabel}, ${config.readyLabel}.`,
646
+ `Mode: ${config.automationMode}.`,
647
+ `Model: ${config.agentModel}.`,
648
+ config.openaiApiKey
649
+ ? `OpenAI key: ${maskSecret(config.openaiApiKey)}.`
650
+ : "OpenAI key: not configured.",
651
+ ]);
652
+ const reconfigure = await promptConfirm("Reconfigure labels, mode, or model?", false);
653
+ if (!reconfigure) return;
654
+ }
655
+
568
656
  printStep("Step 5: GitHub labels Aegis should watch", [
569
657
  "Aegis only picks up open issues with both labels.",
570
658
  "Default labels are bug and ready to implement.",
@@ -599,7 +687,11 @@ async function setupAutomation(config: AegisCliConfig): Promise<void> {
599
687
  "It is stored in .aegis/.env and later copied to Cloudflare secrets during deploy.",
600
688
  "Leave blank only if you configured a different model provider yourself.",
601
689
  ]);
602
- config.openaiApiKey = await promptText("OpenAI API key:", config.openaiApiKey);
690
+ if (config.openaiApiKey) {
691
+ consola.info(`Using saved OpenAI API key ${maskSecret(config.openaiApiKey)}.`);
692
+ } else {
693
+ config.openaiApiKey = await promptText("OpenAI API key:", config.openaiApiKey);
694
+ }
603
695
  }
604
696
 
605
697
  async function promptAgentModel(current: string | undefined): Promise<string> {
@@ -618,6 +710,23 @@ async function promptAgentModel(current: string | undefined): Promise<string> {
618
710
  }
619
711
 
620
712
  async function setupProductionContext(config: AegisCliConfig): Promise<void> {
713
+ if (hasProductionContextConfig(config)) {
714
+ printStep("Step 8: production context already configured", [
715
+ `Context profile: ${config.contextProfile}.`,
716
+ config.databaseUrl
717
+ ? "Read-only database URL: configured."
718
+ : "Read-only database URL: not set.",
719
+ config.vercelToken
720
+ ? `Vercel token: ${maskSecret(config.vercelToken)}.`
721
+ : "Vercel token: not set.",
722
+ config.vercelProjectId
723
+ ? `Vercel project: ${config.vercelProjectId}.`
724
+ : "Vercel project: not set.",
725
+ ]);
726
+ const reconfigure = await promptConfirm("Reconfigure production context?", false);
727
+ if (!reconfigure) return;
728
+ }
729
+
621
730
  printStep("Step 8: production context", [
622
731
  "Start with Minimal. It uses only issue text and repo code.",
623
732
  "Production context lets Aegis inspect read-only database data and Vercel logs.",
@@ -648,6 +757,18 @@ async function setupProductionContext(config: AegisCliConfig): Promise<void> {
648
757
  }
649
758
 
650
759
  async function setupTelegram(config: AegisCliConfig): Promise<void> {
760
+ if (hasTelegramConfig(config)) {
761
+ printStep("Step 9: Telegram already connected", [
762
+ `Bot token: ${maskSecret(config.telegramBotToken)}.`,
763
+ `Chat ID: ${config.telegramChatId}.`,
764
+ config.telegramWebhookSecret
765
+ ? "Telegram webhook secret: configured."
766
+ : "Telegram webhook secret: not configured.",
767
+ ]);
768
+ const reconfigure = await promptConfirm("Reconfigure Telegram?", false);
769
+ if (!reconfigure) return;
770
+ }
771
+
651
772
  printStep("Step 9: optional Telegram approval pings", [
652
773
  "Use this if you want Aegis to message you when it needs approval.",
653
774
  "For the first local dry-run, choose no.",
@@ -663,22 +784,40 @@ async function setupTelegram(config: AegisCliConfig): Promise<void> {
663
784
  "Create a bot with BotFather, paste the bot token, then paste your chat ID.",
664
785
  "Aegis will send short approval summaries to that chat.",
665
786
  ]);
666
- config.telegramBotToken = await promptText("Telegram bot token:", config.telegramBotToken);
667
- config.telegramChatId = await promptText("Telegram chat ID:", config.telegramChatId);
668
- printStep("Telegram webhook secret", [
669
- "This protects Telegram webhook calls after deploy.",
670
- "Choose yes and Aegis will generate one.",
671
- ]);
672
- const generateSecret = await promptConfirm(
673
- "Generate a Telegram webhook secret?",
674
- !config.telegramWebhookSecret,
675
- );
676
- config.telegramWebhookSecret = generateSecret
677
- ? crypto.randomUUID()
678
- : await promptText("Telegram webhook secret:", config.telegramWebhookSecret);
787
+ if (config.telegramBotToken) {
788
+ consola.info(`Using saved Telegram bot token ${maskSecret(config.telegramBotToken)}.`);
789
+ } else {
790
+ config.telegramBotToken = await promptText("Telegram bot token:", config.telegramBotToken);
791
+ }
792
+ if (config.telegramChatId) {
793
+ consola.info(`Using saved Telegram chat ID ${config.telegramChatId}.`);
794
+ } else {
795
+ config.telegramChatId = await promptText("Telegram chat ID:", config.telegramChatId);
796
+ }
797
+ if (config.telegramWebhookSecret) {
798
+ consola.info("Telegram webhook secret is already configured.");
799
+ } else {
800
+ printStep("Telegram webhook secret", [
801
+ "This protects Telegram webhook calls after deploy.",
802
+ "Choose yes and Aegis will generate one.",
803
+ ]);
804
+ const generateSecret = await promptConfirm("Generate a Telegram webhook secret?", true);
805
+ config.telegramWebhookSecret = generateSecret
806
+ ? crypto.randomUUID()
807
+ : await promptText("Telegram webhook secret:", config.telegramWebhookSecret);
808
+ }
679
809
  }
680
810
 
681
811
  async function setupWorker(config: AegisCliConfig): Promise<void> {
812
+ if (config.workerUrl) {
813
+ printStep("Step 10: Worker URL already saved", [
814
+ `Using ${config.workerUrl}.`,
815
+ "Deploy updates this automatically when possible.",
816
+ ]);
817
+ const reconfigure = await promptConfirm("Reconfigure Worker URL?", false);
818
+ if (!reconfigure) return;
819
+ }
820
+
682
821
  printStep("Step 10: Worker URL", [
683
822
  "Leave this blank before your first deploy.",
684
823
  "After deploy, Aegis saves the Worker URL automatically.",