Files
property-match/src/services/aiService.ts
T
Benjamin Sutter c972392b78 feat: OpenRouter-ready AI service — all 11 methods implemented
IAIService:
+ generateMatchExplanation, summarizeTradeOffs, generateDataQualitySummary,
  classifyMarketSignal (4 new methods covering all documented AI output types)

OpenRouterAIService:
- All 11 methods now make real API calls via withFallback() pattern
- Every fallback is explicit (console.warn/error) — no silent mock bleed-through
- Proper JSON extraction with type-safe parsers, no any casts
- parseNeed: AI JSON → ParseNeedResult mapping (no TODO stubs)
- generateFollowUpQuestions, generateMatchExplanation, summarizeTradeOffs,
  generateDataQualitySummary, classifyMarketSignal, generateOfferEmail,
  extractCriteria, generateFollowUp: fully implemented

Prompts: +followUpQuestionsPrompt, +tradeOffPrompt, +dataQualityPrompt, +marketSignalPrompt

Factory (index.ts):
- VITE_AI_PROVIDER=mock|openrouter (new, takes priority)
- VITE_USE_REAL_AI=true still supported (legacy compat)
- Missing API key → explicit console.warn + MockAIService fallback

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 12:43:51 +02:00

27 lines
791 B
TypeScript

/**
* Backward-compatible barrel re-export.
*
* All existing import paths (e.g. `import { aiService } from '../../services/aiService'`)
* continue to work without any change in the call sites.
*
* To add new AI features: extend IAIService and implement in MockAIService / OpenRouterAIService.
*/
export { aiService, MockAIService, OpenRouterAIService } from './ai'
export type { IAIService } from './ai'
export type {
DecisionBrief,
ComparisonSummary,
CriteriaExtractionResult,
AIServiceProvider,
ParsedListingData,
OfferEmailPayload,
MatchExplanation,
MatchExplanationInput,
TradeOffInput,
TradeOffSummary,
DataQualityInput,
DataQualitySummary,
MarketSignalClassification,
} from './ai/IAIService'
export { parseListingText } from './ai/mock/listingParser'