fabro/apps/fabro-web/app/install-config.ts
Bryan Helmkamp 54ddaa2cee
feat(install): redesign web wizard and scope dev token to PAT installs
Redesign the install wizard for clarity:
- swap the sidebar layout for a centered column and a horizontal stepper
- make completed/current stepper entries clickable links
- reorder steps so Server URL precedes LLMs
- use env-var placeholders (ANTHROPIC_API_KEY, etc.) with
  per-provider "Where do I get this?" disclosures
- replace the readonly "Validated username" input with a success pill
- drop the GitHub App name field (GitHub confirms the name anyway)
- re-label the GitHub App option and split review rows by strategy
- add a copy action to the Server URL on the review screen

Scope the dev token to PAT installs:
- only generate the dev token, write its files, and set FABRO_DEV_TOKEN
  inside the GithubInstallState::Token arm
- mark dev_token optional on InstallFinishResponse in the OpenAPI spec
- hide the Development token card on /install/finishing when absent
- add app_install_finish_omits_dev_token_and_does_not_write_it test

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-19 16:11:02 -04:00

29 lines
706 B
TypeScript

export const INSTALL_PROVIDERS = [
{
id: "anthropic",
label: "Anthropic",
envVar: "ANTHROPIC_API_KEY",
keyHelp: {
url: "https://console.anthropic.com/settings/keys",
text: "Create one in the Anthropic Console under Settings → API keys.",
},
},
{
id: "openai",
label: "OpenAI",
envVar: "OPENAI_API_KEY",
keyHelp: {
url: "https://platform.openai.com/api-keys",
text: "Create one in the OpenAI platform under API keys.",
},
},
{
id: "gemini",
label: "Gemini",
envVar: "GEMINI_API_KEY",
keyHelp: {
url: "https://aistudio.google.com/apikey",
text: "Create one in Google AI Studio.",
},
},
] as const;