AI-powered hardware inventory management for homelab environments
- internal/ai/types.go: IntakeRequest, IntakeResult, TierConfig, AIConfig domain types - internal/ai/client.go: AIClient interface + TierClient (go-openai, BaseURL tier-routing) - internal/ai/mock.go: MockAIClient test double with HighConfidenceResult/LowConfidenceResult fixtures - internal/ai/prompts/intake.go: BuildIntakePrompt() JSON-extraction prompt template - internal/config/config.go: Config.AI AIConfig field, tier defaults, env bindings, ai_config.json merge - ai_config.json: template config with placeholder Tier2 API key - .gitignore: add ai_config.local.json pattern for real keys (T-02-01 mitigation) - All tests pass: TestMockAIClient, TestMockAIClientError, TestTierClientConstruction, TestAIConfigDefaults |
||
|---|---|---|
| .planning | ||
| cmd/hwlab | ||
| internal | ||
| scripts | ||
| web/dist | ||
| .env.example | ||
| .gitignore | ||
| ai_config.json | ||
| assets.go | ||
| CLAUDE.md | ||
| config.json | ||
| go.mod | ||
| go.sum | ||
| Makefile | ||