catalist-support-agent 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/dist/admin-portal.d.ts +43 -0
  2. package/dist/admin-portal.d.ts.map +1 -0
  3. package/dist/admin-portal.js +166 -0
  4. package/dist/admin-portal.js.map +1 -0
  5. package/dist/analysis/entities.d.ts +73 -0
  6. package/dist/analysis/entities.d.ts.map +1 -0
  7. package/dist/analysis/entities.js +378 -0
  8. package/dist/analysis/entities.js.map +1 -0
  9. package/dist/analysis/index.d.ts +44 -0
  10. package/dist/analysis/index.d.ts.map +1 -0
  11. package/dist/analysis/index.js +243 -0
  12. package/dist/analysis/index.js.map +1 -0
  13. package/dist/analysis/intent.d.ts +49 -0
  14. package/dist/analysis/intent.d.ts.map +1 -0
  15. package/dist/analysis/intent.js +320 -0
  16. package/dist/analysis/intent.js.map +1 -0
  17. package/dist/analysis/sentiment.d.ts +57 -0
  18. package/dist/analysis/sentiment.d.ts.map +1 -0
  19. package/dist/analysis/sentiment.js +351 -0
  20. package/dist/analysis/sentiment.js.map +1 -0
  21. package/dist/brand/compliance.d.ts +122 -0
  22. package/dist/brand/compliance.d.ts.map +1 -0
  23. package/dist/brand/compliance.js +378 -0
  24. package/dist/brand/compliance.js.map +1 -0
  25. package/dist/brand/forbidden-terms.d.ts +99 -0
  26. package/dist/brand/forbidden-terms.d.ts.map +1 -0
  27. package/dist/brand/forbidden-terms.js +265 -0
  28. package/dist/brand/forbidden-terms.js.map +1 -0
  29. package/dist/brand/index.d.ts +10 -0
  30. package/dist/brand/index.d.ts.map +1 -0
  31. package/dist/brand/index.js +12 -0
  32. package/dist/brand/index.js.map +1 -0
  33. package/dist/config.d.ts +325 -0
  34. package/dist/config.d.ts.map +1 -0
  35. package/dist/config.js +492 -0
  36. package/dist/config.js.map +1 -0
  37. package/dist/delivery/index.d.ts +84 -0
  38. package/dist/delivery/index.d.ts.map +1 -0
  39. package/dist/delivery/index.js +435 -0
  40. package/dist/delivery/index.js.map +1 -0
  41. package/dist/embeddings/cache.d.ts +96 -0
  42. package/dist/embeddings/cache.d.ts.map +1 -0
  43. package/dist/embeddings/cache.js +193 -0
  44. package/dist/embeddings/cache.js.map +1 -0
  45. package/dist/embeddings/index.d.ts +152 -0
  46. package/dist/embeddings/index.d.ts.map +1 -0
  47. package/dist/embeddings/index.js +337 -0
  48. package/dist/embeddings/index.js.map +1 -0
  49. package/dist/embeddings/openai-client.d.ts +67 -0
  50. package/dist/embeddings/openai-client.d.ts.map +1 -0
  51. package/dist/embeddings/openai-client.js +190 -0
  52. package/dist/embeddings/openai-client.js.map +1 -0
  53. package/dist/errors.d.ts +302 -0
  54. package/dist/errors.d.ts.map +1 -0
  55. package/dist/errors.js +508 -0
  56. package/dist/errors.js.map +1 -0
  57. package/dist/escalation/index.d.ts +93 -0
  58. package/dist/escalation/index.d.ts.map +1 -0
  59. package/dist/escalation/index.js +436 -0
  60. package/dist/escalation/index.js.map +1 -0
  61. package/dist/extraction/deduplication.d.ts +97 -0
  62. package/dist/extraction/deduplication.d.ts.map +1 -0
  63. package/dist/extraction/deduplication.js +271 -0
  64. package/dist/extraction/deduplication.js.map +1 -0
  65. package/dist/extraction/gmail-extractor.d.ts +160 -0
  66. package/dist/extraction/gmail-extractor.d.ts.map +1 -0
  67. package/dist/extraction/gmail-extractor.js +396 -0
  68. package/dist/extraction/gmail-extractor.js.map +1 -0
  69. package/dist/extraction/gmail-token-manager.d.ts +36 -0
  70. package/dist/extraction/gmail-token-manager.d.ts.map +1 -0
  71. package/dist/extraction/gmail-token-manager.js +146 -0
  72. package/dist/extraction/gmail-token-manager.js.map +1 -0
  73. package/dist/extraction/index.d.ts +13 -0
  74. package/dist/extraction/index.d.ts.map +1 -0
  75. package/dist/extraction/index.js +20 -0
  76. package/dist/extraction/index.js.map +1 -0
  77. package/dist/extraction/pii-handler.d.ts +100 -0
  78. package/dist/extraction/pii-handler.d.ts.map +1 -0
  79. package/dist/extraction/pii-handler.js +295 -0
  80. package/dist/extraction/pii-handler.js.map +1 -0
  81. package/dist/extraction/pipeline.d.ts +94 -0
  82. package/dist/extraction/pipeline.d.ts.map +1 -0
  83. package/dist/extraction/pipeline.js +380 -0
  84. package/dist/extraction/pipeline.js.map +1 -0
  85. package/dist/extraction/quality-filter.d.ts +99 -0
  86. package/dist/extraction/quality-filter.d.ts.map +1 -0
  87. package/dist/extraction/quality-filter.js +370 -0
  88. package/dist/extraction/quality-filter.js.map +1 -0
  89. package/dist/extraction/rate-limiter.d.ts +90 -0
  90. package/dist/extraction/rate-limiter.d.ts.map +1 -0
  91. package/dist/extraction/rate-limiter.js +242 -0
  92. package/dist/extraction/rate-limiter.js.map +1 -0
  93. package/dist/extraction/state-manager.d.ts +126 -0
  94. package/dist/extraction/state-manager.d.ts.map +1 -0
  95. package/dist/extraction/state-manager.js +344 -0
  96. package/dist/extraction/state-manager.js.map +1 -0
  97. package/dist/generation/index.d.ts +75 -0
  98. package/dist/generation/index.d.ts.map +1 -0
  99. package/dist/generation/index.js +641 -0
  100. package/dist/generation/index.js.map +1 -0
  101. package/dist/index.d.ts +96 -0
  102. package/dist/index.d.ts.map +1 -0
  103. package/dist/index.js +233 -0
  104. package/dist/index.js.map +1 -0
  105. package/dist/intake/index.d.ts +15 -0
  106. package/dist/intake/index.d.ts.map +1 -0
  107. package/dist/intake/index.js +19 -0
  108. package/dist/intake/index.js.map +1 -0
  109. package/dist/intake/normalizer.d.ts +163 -0
  110. package/dist/intake/normalizer.d.ts.map +1 -0
  111. package/dist/intake/normalizer.js +309 -0
  112. package/dist/intake/normalizer.js.map +1 -0
  113. package/dist/intake/postmark.d.ts +72 -0
  114. package/dist/intake/postmark.d.ts.map +1 -0
  115. package/dist/intake/postmark.js +276 -0
  116. package/dist/intake/postmark.js.map +1 -0
  117. package/dist/intake/slack.d.ts +106 -0
  118. package/dist/intake/slack.d.ts.map +1 -0
  119. package/dist/intake/slack.js +378 -0
  120. package/dist/intake/slack.js.map +1 -0
  121. package/dist/intake/twilio.d.ts +86 -0
  122. package/dist/intake/twilio.d.ts.map +1 -0
  123. package/dist/intake/twilio.js +283 -0
  124. package/dist/intake/twilio.js.map +1 -0
  125. package/dist/knowledge/index.d.ts +100 -0
  126. package/dist/knowledge/index.d.ts.map +1 -0
  127. package/dist/knowledge/index.js +516 -0
  128. package/dist/knowledge/index.js.map +1 -0
  129. package/dist/knowledge/invoice-resolver.d.ts +62 -0
  130. package/dist/knowledge/invoice-resolver.d.ts.map +1 -0
  131. package/dist/knowledge/invoice-resolver.js +267 -0
  132. package/dist/knowledge/invoice-resolver.js.map +1 -0
  133. package/dist/types.d.ts +535 -0
  134. package/dist/types.d.ts.map +1 -0
  135. package/dist/types.js +48 -0
  136. package/dist/types.js.map +1 -0
  137. package/ga-service-account.json +13 -0
  138. package/gmail-knowledge-migration.sql +149 -0
  139. package/nul +1 -0
  140. package/package.json +55 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entities.js","sourceRoot":"","sources":["../../src/analysis/entities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Analysis Pipeline Module
3
+ *
4
+ * Provides comprehensive message analysis including:
5
+ * - Intent classification
6
+ * - Sentiment analysis
7
+ * - Entity extraction
8
+ * - Urgency scoring
9
+ * - Brand compliance assessment
10
+ */
11
+ import type { InboundMessage, AnalysisResult } from '../types.js';
12
+ export { IntentClassificationService, getIntentClassificationService, classifyIntent, classifyIntentHeuristic, getIntentDescription, isHighPriorityIntent, isAutonomouslyHandleableIntent, } from './intent.js';
13
+ export { SentimentAnalysisService, getSentimentAnalysisService, analyzeSentiment, analyzeSentimentHeuristic, shouldConsiderEscalationBySentiment, getUrgencyScore, combineUrgency, } from './sentiment.js';
14
+ export { EntityExtractionService, getEntityExtractionService, extractEntities, extractEntitiesRegex, mergeEntities, hasOrderReference, hasProductReference, getPrimaryOrderNumber, getTotalAmount, } from './entities.js';
15
+ export interface AnalysisPipelineOptions {
16
+ /** Use heuristics instead of Claude (faster, less accurate) */
17
+ useHeuristics?: boolean;
18
+ /** Skip brand compliance check */
19
+ skipBrandCompliance?: boolean;
20
+ /** Previous conversation context for better intent classification */
21
+ conversationContext?: string;
22
+ /** Customer tier for urgency adjustment */
23
+ customerTier?: 'standard' | 'premium' | 'enterprise';
24
+ }
25
+ /**
26
+ * Run the complete analysis pipeline on a message
27
+ */
28
+ export declare function analyzeMessage(message: InboundMessage, options?: AnalysisPipelineOptions): Promise<AnalysisResult>;
29
+ /**
30
+ * Quick analysis for message triage (faster, less detailed)
31
+ */
32
+ export declare function triageMessage(message: InboundMessage): {
33
+ priority: 'critical' | 'high' | 'medium' | 'low';
34
+ requiresEscalation: boolean;
35
+ quickAssessment: string;
36
+ };
37
+ /**
38
+ * Check if a message is processable (not spam, auto-reply, etc.)
39
+ */
40
+ export declare function isProcessableMessage(message: InboundMessage): {
41
+ processable: boolean;
42
+ reason?: string;
43
+ };
44
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analysis/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EAOf,MAAM,aAAa,CAAC;AAwBrB,OAAO,EACL,2BAA2B,EAC3B,8BAA8B,EAC9B,cAAc,EACd,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,8BAA8B,GAC/B,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,gBAAgB,EAChB,yBAAyB,EACzB,mCAAmC,EACnC,eAAe,EACf,cAAc,GACf,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,GACf,MAAM,eAAe,CAAC;AAMvB,MAAM,WAAW,uBAAuB;IACtC,+DAA+D;IAC/D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kCAAkC;IAClC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,qEAAqE;IACrE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,2CAA2C;IAC3C,YAAY,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,YAAY,CAAC;CACtD;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,cAAc,CAAC,CAkFzB;AA+GD;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG;IACtD,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;CACzB,CAgDA;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG;IAC7D,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAyBA"}
@@ -0,0 +1,243 @@
1
+ /**
2
+ * Analysis Pipeline Module
3
+ *
4
+ * Provides comprehensive message analysis including:
5
+ * - Intent classification
6
+ * - Sentiment analysis
7
+ * - Entity extraction
8
+ * - Urgency scoring
9
+ * - Brand compliance assessment
10
+ */
11
+ import { createConversationId } from '../types.js';
12
+ import { classifyIntent, classifyIntentHeuristic, isHighPriorityIntent, isAutonomouslyHandleableIntent, } from './intent.js';
13
+ import { analyzeSentiment, analyzeSentimentHeuristic, shouldConsiderEscalationBySentiment, getUrgencyScore, } from './sentiment.js';
14
+ import { extractEntities, extractEntitiesRegex, mergeEntities } from './entities.js';
15
+ import { scanMessageContent, createComplianceStatusFromScan, } from '../brand/index.js';
16
+ import { shouldEscalateByConfidence } from '../config.js';
17
+ // Re-export individual services
18
+ export { IntentClassificationService, getIntentClassificationService, classifyIntent, classifyIntentHeuristic, getIntentDescription, isHighPriorityIntent, isAutonomouslyHandleableIntent, } from './intent.js';
19
+ export { SentimentAnalysisService, getSentimentAnalysisService, analyzeSentiment, analyzeSentimentHeuristic, shouldConsiderEscalationBySentiment, getUrgencyScore, combineUrgency, } from './sentiment.js';
20
+ export { EntityExtractionService, getEntityExtractionService, extractEntities, extractEntitiesRegex, mergeEntities, hasOrderReference, hasProductReference, getPrimaryOrderNumber, getTotalAmount, } from './entities.js';
21
+ /**
22
+ * Run the complete analysis pipeline on a message
23
+ */
24
+ export async function analyzeMessage(message, options = {}) {
25
+ const startTime = Date.now();
26
+ const errors = [];
27
+ // 1. Intent Classification
28
+ let intent;
29
+ try {
30
+ intent = options.useHeuristics
31
+ ? classifyIntentHeuristic(message)
32
+ : await classifyIntent(message, options.conversationContext);
33
+ }
34
+ catch (error) {
35
+ errors.push(`Intent classification failed: ${error instanceof Error ? error.message : 'Unknown'}`);
36
+ intent = classifyIntentHeuristic(message);
37
+ }
38
+ // 2. Sentiment Analysis
39
+ let sentiment;
40
+ try {
41
+ sentiment = options.useHeuristics
42
+ ? analyzeSentimentHeuristic(message)
43
+ : await analyzeSentiment(message);
44
+ }
45
+ catch (error) {
46
+ errors.push(`Sentiment analysis failed: ${error instanceof Error ? error.message : 'Unknown'}`);
47
+ sentiment = analyzeSentimentHeuristic(message);
48
+ }
49
+ // 3. Entity Extraction
50
+ let entities;
51
+ try {
52
+ const claudeEntities = options.useHeuristics
53
+ ? extractEntitiesRegex(message)
54
+ : await extractEntities(message);
55
+ const regexEntities = extractEntitiesRegex(message);
56
+ entities = mergeEntities(claudeEntities, regexEntities);
57
+ }
58
+ catch (error) {
59
+ errors.push(`Entity extraction failed: ${error instanceof Error ? error.message : 'Unknown'}`);
60
+ entities = extractEntitiesRegex(message);
61
+ }
62
+ // 4. Brand Compliance Check
63
+ let brandCompliance;
64
+ if (options.skipBrandCompliance) {
65
+ brandCompliance = {
66
+ status: 'compliant',
67
+ score: 100,
68
+ checkedAt: new Date().toISOString(),
69
+ };
70
+ }
71
+ else {
72
+ const scanResult = scanMessageContent(message.content);
73
+ brandCompliance = createComplianceStatusFromScan(scanResult);
74
+ }
75
+ // 5. Calculate Urgency Score
76
+ const urgencyScore = calculateUrgencyScore(sentiment, intent, options.customerTier);
77
+ // 6. Calculate Overall Confidence
78
+ const overallConfidence = calculateOverallConfidence(intent.confidence, sentiment, entities);
79
+ // 7. Determine if Escalation is Required
80
+ const { escalationRequired, escalationReasons } = determineEscalationRequirement(intent, sentiment, brandCompliance, overallConfidence);
81
+ // Build the analysis result
82
+ const result = {
83
+ messageId: message.id,
84
+ conversationId: message.conversationId ?? createConversationId('pending'),
85
+ intent,
86
+ sentiment,
87
+ entities,
88
+ brandCompliance,
89
+ urgencyScore,
90
+ overallConfidence,
91
+ escalationRequired,
92
+ escalationReasons: escalationReasons.length > 0 ? escalationReasons : undefined,
93
+ analyzedAt: new Date().toISOString(),
94
+ };
95
+ return result;
96
+ }
97
+ /**
98
+ * Calculate urgency score combining multiple factors
99
+ */
100
+ function calculateUrgencyScore(sentiment, intent, customerTier) {
101
+ let score = getUrgencyScore(sentiment.urgency);
102
+ // Adjust for intent priority
103
+ if (isHighPriorityIntent(intent.primary)) {
104
+ score = Math.min(1, score + 0.2);
105
+ }
106
+ // Adjust for negative sentiment
107
+ if (sentiment.category === 'negative') {
108
+ score = Math.min(1, score + 0.15);
109
+ }
110
+ // Adjust for customer tier
111
+ if (customerTier === 'enterprise') {
112
+ score = Math.min(1, score + 0.15);
113
+ }
114
+ else if (customerTier === 'premium') {
115
+ score = Math.min(1, score + 0.1);
116
+ }
117
+ return Math.round(score * 100) / 100;
118
+ }
119
+ /**
120
+ * Calculate overall confidence in the analysis
121
+ */
122
+ function calculateOverallConfidence(intentConfidence, sentiment, entities) {
123
+ // Base confidence from intent
124
+ let confidence = intentConfidence * 0.6;
125
+ // Add confidence if we extracted useful entities
126
+ const hasUsefulEntities = entities.orderNumbers?.length ||
127
+ entities.productNames?.length ||
128
+ entities.productSkus?.length;
129
+ if (hasUsefulEntities) {
130
+ confidence += 0.2;
131
+ }
132
+ // Sentiment confidence boost for clear sentiment
133
+ if (Math.abs(sentiment.score) > 0.5) {
134
+ confidence += 0.1;
135
+ }
136
+ // Cap at 0.95 to always leave room for uncertainty
137
+ return Math.min(0.95, Math.round(confidence * 100) / 100);
138
+ }
139
+ /**
140
+ * Determine if the message requires escalation to human agents
141
+ */
142
+ function determineEscalationRequirement(intent, sentiment, brandCompliance, overallConfidence) {
143
+ const reasons = [];
144
+ // CRITICAL: Brand compliance violations always require escalation
145
+ if (brandCompliance.status === 'blocked') {
146
+ reasons.push(`Forbidden terms detected: ${brandCompliance.detectedTerms?.join(', ')}`);
147
+ }
148
+ // Low confidence requires human review
149
+ if (shouldEscalateByConfidence(overallConfidence)) {
150
+ reasons.push(`Low analysis confidence: ${Math.round(overallConfidence * 100)}%`);
151
+ }
152
+ // Complaints always get human attention
153
+ if (intent.primary === 'complaint') {
154
+ reasons.push('Customer complaint requires human attention');
155
+ }
156
+ // Critical urgency
157
+ if (sentiment.urgency === 'critical') {
158
+ reasons.push('Critical urgency level detected');
159
+ }
160
+ // Strong negative sentiment
161
+ if (shouldConsiderEscalationBySentiment(sentiment)) {
162
+ reasons.push(`Negative sentiment detected (score: ${sentiment.score.toFixed(2)})`);
163
+ }
164
+ // Intent not autonomously handleable
165
+ if (!isAutonomouslyHandleableIntent(intent.primary)) {
166
+ reasons.push(`Intent "${intent.primary}" requires human handling`);
167
+ }
168
+ return {
169
+ escalationRequired: reasons.length > 0,
170
+ escalationReasons: reasons,
171
+ };
172
+ }
173
+ /**
174
+ * Quick analysis for message triage (faster, less detailed)
175
+ */
176
+ export function triageMessage(message) {
177
+ // Quick brand compliance check
178
+ const brandScan = scanMessageContent(message.content);
179
+ if (brandScan.hasForbiddenTerms) {
180
+ return {
181
+ priority: 'high',
182
+ requiresEscalation: true,
183
+ quickAssessment: `Contains forbidden terms: ${brandScan.detectedTerms.join(', ')}`,
184
+ };
185
+ }
186
+ // Quick sentiment heuristics
187
+ const sentiment = analyzeSentimentHeuristic(message);
188
+ if (sentiment.urgency === 'critical') {
189
+ return {
190
+ priority: 'critical',
191
+ requiresEscalation: true,
192
+ quickAssessment: 'Critical urgency detected',
193
+ };
194
+ }
195
+ if (sentiment.category === 'negative' && sentiment.score < -0.5) {
196
+ return {
197
+ priority: 'high',
198
+ requiresEscalation: false,
199
+ quickAssessment: 'Strong negative sentiment',
200
+ };
201
+ }
202
+ // Quick intent heuristics
203
+ const intent = classifyIntentHeuristic(message);
204
+ if (intent.primary === 'complaint') {
205
+ return {
206
+ priority: 'high',
207
+ requiresEscalation: true,
208
+ quickAssessment: 'Complaint detected',
209
+ };
210
+ }
211
+ // Default assessment
212
+ return {
213
+ priority: sentiment.urgency === 'high' ? 'high' : 'medium',
214
+ requiresEscalation: false,
215
+ quickAssessment: `${intent.primary} - ${sentiment.category} sentiment`,
216
+ };
217
+ }
218
+ /**
219
+ * Check if a message is processable (not spam, auto-reply, etc.)
220
+ */
221
+ export function isProcessableMessage(message) {
222
+ const text = message.content.text.toLowerCase();
223
+ // Check for auto-reply indicators
224
+ const autoReplyPatterns = [
225
+ /out of office/i,
226
+ /automatic reply/i,
227
+ /auto-reply/i,
228
+ /away from/i,
229
+ /delivery notification/i,
230
+ /undeliverable/i,
231
+ ];
232
+ for (const pattern of autoReplyPatterns) {
233
+ if (pattern.test(text)) {
234
+ return { processable: false, reason: 'Auto-reply detected' };
235
+ }
236
+ }
237
+ // Check for empty content
238
+ if (!text.trim() && !message.content.subject?.trim()) {
239
+ return { processable: false, reason: 'Empty message' };
240
+ }
241
+ return { processable: true };
242
+ }
243
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/analysis/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAYH,OAAO,EAAE,oBAAoB,EAAmB,MAAM,aAAa,CAAC;AACpE,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,oBAAoB,EACpB,8BAA8B,GAC/B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,mCAAmC,EACnC,eAAe,GAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACrF,OAAO,EACL,kBAAkB,EAClB,8BAA8B,GAE/B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAA8B,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAEtF,gCAAgC;AAChC,OAAO,EACL,2BAA2B,EAC3B,8BAA8B,EAC9B,cAAc,EACd,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,8BAA8B,GAC/B,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,gBAAgB,EAChB,yBAAyB,EACzB,mCAAmC,EACnC,eAAe,EACf,cAAc,GACf,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,GACf,MAAM,eAAe,CAAC;AAiBvB;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAuB,EACvB,UAAmC,EAAE;IAErC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,2BAA2B;IAC3B,IAAI,MAA4B,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,GAAG,OAAO,CAAC,aAAa;YAC5B,CAAC,CAAC,uBAAuB,CAAC,OAAO,CAAC;YAClC,CAAC,CAAC,MAAM,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,iCAAiC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QACnG,MAAM,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,wBAAwB;IACxB,IAAI,SAA4B,CAAC;IACjC,IAAI,CAAC;QACH,SAAS,GAAG,OAAO,CAAC,aAAa;YAC/B,CAAC,CAAC,yBAAyB,CAAC,OAAO,CAAC;YACpC,CAAC,CAAC,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,8BAA8B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QAChG,SAAS,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,uBAAuB;IACvB,IAAI,QAA2B,CAAC;IAChC,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,OAAO,CAAC,aAAa;YAC1C,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC;YAC/B,CAAC,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,aAAa,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACpD,QAAQ,GAAG,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,6BAA6B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QAC/F,QAAQ,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,4BAA4B;IAC5B,IAAI,eAAsC,CAAC;IAC3C,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAChC,eAAe,GAAG;YAChB,MAAM,EAAE,WAAW;YACnB,KAAK,EAAE,GAAG;YACV,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvD,eAAe,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAC;IAC/D,CAAC;IAED,6BAA6B;IAC7B,MAAM,YAAY,GAAG,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAEpF,kCAAkC;IAClC,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAE7F,yCAAyC;IACzC,MAAM,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,GAAG,8BAA8B,CAC9E,MAAM,EACN,SAAS,EACT,eAAe,EACf,iBAAiB,CAClB,CAAC;IAEF,4BAA4B;IAC5B,MAAM,MAAM,GAAmB;QAC7B,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,oBAAoB,CAAC,SAAS,CAAC;QACzE,MAAM;QACN,SAAS;QACT,QAAQ;QACR,eAAe;QACf,YAAY;QACZ,iBAAiB;QACjB,kBAAkB;QAClB,iBAAiB,EAAE,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS;QAC/E,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACrC,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAC5B,SAA4B,EAC5B,MAA4B,EAC5B,YAAoD;IAEpD,IAAI,KAAK,GAAG,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAE/C,6BAA6B;IAC7B,IAAI,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACzC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,gCAAgC;IAChC,IAAI,SAAS,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QACtC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,2BAA2B;IAC3B,IAAI,YAAY,KAAK,YAAY,EAAE,CAAC;QAClC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;IACpC,CAAC;SAAM,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QACtC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,SAAS,0BAA0B,CACjC,gBAAwB,EACxB,SAA4B,EAC5B,QAA2B;IAE3B,8BAA8B;IAC9B,IAAI,UAAU,GAAG,gBAAgB,GAAG,GAAG,CAAC;IAExC,iDAAiD;IACjD,MAAM,iBAAiB,GACrB,QAAQ,CAAC,YAAY,EAAE,MAAM;QAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM;QAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE/B,IAAI,iBAAiB,EAAE,CAAC;QACtB,UAAU,IAAI,GAAG,CAAC;IACpB,CAAC;IAED,iDAAiD;IACjD,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC;QACpC,UAAU,IAAI,GAAG,CAAC;IACpB,CAAC;IAED,mDAAmD;IACnD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,SAAS,8BAA8B,CACrC,MAA4B,EAC5B,SAA4B,EAC5B,eAAsC,EACtC,iBAAyB;IAEzB,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,kEAAkE;IAClE,IAAI,eAAe,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACzC,OAAO,CAAC,IAAI,CACV,6BAA8B,eAA+C,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAC1G,CAAC;IACJ,CAAC;IAED,uCAAuC;IACvC,IAAI,0BAA0B,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,4BAA4B,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACnF,CAAC;IAED,wCAAwC;IACxC,IAAI,MAAM,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;IAC9D,CAAC;IAED,mBAAmB;IACnB,IAAI,SAAS,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAClD,CAAC;IAED,4BAA4B;IAC5B,IAAI,mCAAmC,CAAC,SAAS,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,uCAAuC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACrF,CAAC;IAED,qCAAqC;IACrC,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAAC;IACrE,CAAC;IAED,OAAO;QACL,kBAAkB,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC;QACtC,iBAAiB,EAAE,OAAO;KAC3B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAuB;IAKnD,+BAA+B;IAC/B,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtD,IAAI,SAAS,CAAC,iBAAiB,EAAE,CAAC;QAChC,OAAO;YACL,QAAQ,EAAE,MAAM;YAChB,kBAAkB,EAAE,IAAI;YACxB,eAAe,EAAE,6BAA6B,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SACnF,CAAC;IACJ,CAAC;IAED,6BAA6B;IAC7B,MAAM,SAAS,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAErD,IAAI,SAAS,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QACrC,OAAO;YACL,QAAQ,EAAE,UAAU;YACpB,kBAAkB,EAAE,IAAI;YACxB,eAAe,EAAE,2BAA2B;SAC7C,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,CAAC,QAAQ,KAAK,UAAU,IAAI,SAAS,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC;QAChE,OAAO;YACL,QAAQ,EAAE,MAAM;YAChB,kBAAkB,EAAE,KAAK;YACzB,eAAe,EAAE,2BAA2B;SAC7C,CAAC;IACJ,CAAC;IAED,0BAA0B;IAC1B,MAAM,MAAM,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAEhD,IAAI,MAAM,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO;YACL,QAAQ,EAAE,MAAM;YAChB,kBAAkB,EAAE,IAAI;YACxB,eAAe,EAAE,oBAAoB;SACtC,CAAC;IACJ,CAAC;IAED,qBAAqB;IACrB,OAAO;QACL,QAAQ,EAAE,SAAS,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;QAC1D,kBAAkB,EAAE,KAAK;QACzB,eAAe,EAAE,GAAG,MAAM,CAAC,OAAO,MAAM,SAAS,CAAC,QAAQ,YAAY;KACvE,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAuB;IAI1D,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IAEhD,kCAAkC;IAClC,MAAM,iBAAiB,GAAG;QACxB,gBAAgB;QAChB,kBAAkB;QAClB,aAAa;QACb,YAAY;QACZ,wBAAwB;QACxB,gBAAgB;KACjB,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,iBAAiB,EAAE,CAAC;QACxC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;QACrD,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IACzD,CAAC;IAED,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Intent Classification Service
3
+ *
4
+ * Categorizes support messages into intent categories using Claude.
5
+ * Determines what the customer is asking about or trying to accomplish.
6
+ */
7
+ import type { IntentCategory, IntentClassification, InboundMessage } from '../types.js';
8
+ export declare class IntentClassificationService {
9
+ private client;
10
+ private getClient;
11
+ /**
12
+ * Classify the intent of a message
13
+ */
14
+ classify(message: InboundMessage, conversationContext?: string): Promise<IntentClassification>;
15
+ /**
16
+ * Parse the classification response from Claude
17
+ */
18
+ private parseClassificationResponse;
19
+ /**
20
+ * Validate that a string is a valid intent category
21
+ */
22
+ private isValidIntentCategory;
23
+ /**
24
+ * Classify intent using heuristics (fallback when Claude is unavailable)
25
+ */
26
+ classifyWithHeuristics(message: InboundMessage): IntentClassification;
27
+ }
28
+ export declare function getIntentClassificationService(): IntentClassificationService;
29
+ /**
30
+ * Classify message intent
31
+ */
32
+ export declare function classifyIntent(message: InboundMessage, conversationContext?: string): Promise<IntentClassification>;
33
+ /**
34
+ * Classify intent using heuristics (fallback)
35
+ */
36
+ export declare function classifyIntentHeuristic(message: InboundMessage): IntentClassification;
37
+ /**
38
+ * Get intent description
39
+ */
40
+ export declare function getIntentDescription(intent: IntentCategory): string;
41
+ /**
42
+ * Check if intent requires immediate attention
43
+ */
44
+ export declare function isHighPriorityIntent(intent: IntentCategory): boolean;
45
+ /**
46
+ * Check if intent can likely be handled autonomously
47
+ */
48
+ export declare function isAutonomouslyHandleableIntent(intent: IntentCategory): boolean;
49
+ //# sourceMappingURL=intent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent.d.ts","sourceRoot":"","sources":["../../src/analysis/intent.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACpB,cAAc,EAGf,MAAM,aAAa,CAAC;AA+DrB,qBAAa,2BAA2B;IACtC,OAAO,CAAC,MAAM,CAA0B;IAExC,OAAO,CAAC,SAAS;IAgBjB;;OAEG;IACG,QAAQ,CACZ,OAAO,EAAE,cAAc,EACvB,mBAAmB,CAAC,EAAE,MAAM,GAC3B,OAAO,CAAC,oBAAoB,CAAC;IAwEhC;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAmCnC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;OAEG;IACH,sBAAsB,CAAC,OAAO,EAAE,cAAc,GAAG,oBAAoB;CAsGtE;AAQD,wBAAgB,8BAA8B,IAAI,2BAA2B,CAK5E;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,cAAc,EACvB,mBAAmB,CAAC,EAAE,MAAM,GAC3B,OAAO,CAAC,oBAAoB,CAAC,CAE/B;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,cAAc,GAAG,oBAAoB,CAErF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAEnE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAGpE;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAU9E"}