c972392b78
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>
27 lines
791 B
TypeScript
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'
|