You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
oabrivard 439e547367 Phase 4: LLM provider abstraction with Gemini, user API key encryption
Backend:
- LlmProvider async trait with generate_search_pass/generate_rewrite_pass
- GeminiProvider: googleSearch grounding (pass 1), structured JSON output (pass 2)
- AES-256-GCM encryption for user API keys at rest (per-key random nonces)
- MasterKey with zeroize-on-drop (no Clone to prevent unzeroized copies)
- User API key endpoints: list (prefix only), create/update, delete, test
- Dynamic category schema builder for structured LLM output
- Provider factory (Gemini implemented, OpenAI/Anthropic stubbed for Phase 6)
- 37 new unit tests (encryption, schema, Gemini serialization, factory)
- 17 integration tests (CRUD, encryption verification, ownership isolation)

Frontend:
- ApiKeyManager component: per-provider key management in Settings
- Password input with show/hide toggle, key prefix display (monospace)
- Test button validates key with minimal LLM call
- Status badges (configured/not configured)
- 11 new tests

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
3 months ago
.claude Phase 3: Admin module with provider/model curation, rate limits, user management 3 months ago
backend Phase 4: LLM provider abstraction with Gemini, user API key encryption 3 months ago
docs Finished phase 1 3 months ago
frontend Phase 4: LLM provider abstraction with Gemini, user API key encryption 3 months ago
src Initial commit 3 months ago
.env.example Finished phase 1 3 months ago
.gitignore Finished phase 1 3 months ago
CLAUDE.md Updated Claude code config 3 months ago
README.md Initial commit 3 months ago
docker-compose.yml Finished phase 1 3 months ago
firebase-applet-config.json Initial commit 3 months ago
firebase-blueprint.json Initial commit 3 months ago
firestore.rules Initial commit 3 months ago
index.html Initial commit 3 months ago
metadata.json Initial commit 3 months ago
package-lock.json Initial commit 3 months ago
package.json Initial commit 3 months ago
tsconfig.json Initial commit 3 months ago
vite.config.ts Initial commit 3 months ago

README.md

GHBanner

Run and deploy your AI Studio app

This contains everything you need to run your app locally.

View your app in AI Studio: https://ai.studio/apps/633f0b39-1bef-446a-acd0-a427cc7be39b

Run Locally

Prerequisites: Node.js

  1. Install dependencies: npm install
  2. Set the GEMINI_API_KEY in .env.local to your Gemini API key
  3. Run the app: npm run dev