diff --git a/.env.example b/.env.example index 9030b5eb..21f84188 100644 --- a/.env.example +++ b/.env.example @@ -42,3 +42,6 @@ EMBEDDING_PROVIDER=local # Observability via Braintrust # BRAINTRUST_API_KEY=your_braintrust_key_here + +# Fast code editing/search via Morph +# MORPH_API_KEY=your_morph_key_here diff --git a/opc/scripts/setup/wizard.py b/opc/scripts/setup/wizard.py index dd0394a5..8eadc696 100644 --- a/opc/scripts/setup/wizard.py +++ b/opc/scripts/setup/wizard.py @@ -407,7 +407,7 @@ async def prompt_api_keys() -> dict[str, str]: """Prompt user for optional API keys. Returns: - dict with keys: perplexity, nia, braintrust + dict with keys: perplexity, nia, braintrust, morph """ console.print("\n[bold]API Keys (optional)[/bold]") console.print("Press Enter to skip any key you don't have.\n") @@ -415,11 +415,13 @@ async def prompt_api_keys() -> dict[str, str]: perplexity = Prompt.ask("Perplexity API key (web search)", default="") nia = Prompt.ask("Nia API key (documentation search)", default="") braintrust = Prompt.ask("Braintrust API key (observability)", default="") + morph = Prompt.ask("Morph API key (fast code editing/search)", default="") return { "perplexity": perplexity, "nia": nia, "braintrust": braintrust, + "morph": morph, } @@ -500,6 +502,8 @@ def generate_env_file(config: dict[str, Any], env_path: Path) -> None: lines.append(f"NIA_API_KEY={api_keys['nia']}") if api_keys.get("braintrust"): lines.append(f"BRAINTRUST_API_KEY={api_keys['braintrust']}") + if api_keys.get("morph"): + lines.append(f"MORPH_API_KEY={api_keys['morph']}") lines.append("") # Write file @@ -635,7 +639,7 @@ async def run_setup_wizard() -> None: if Confirm.ask("Configure API keys?", default=False): api_keys = await prompt_api_keys() else: - api_keys = {"perplexity": "", "nia": "", "braintrust": ""} + api_keys = {"perplexity": "", "nia": "", "braintrust": "", "morph": ""} # Step 5: Generate .env console.print("\n[bold]Step 5/13: Generating configuration...[/bold]")