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":"index.js","sourceRoot":"","sources":["../../src/embeddings/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * OpenAI Embedding Client
3
+ *
4
+ * Wrapper for OpenAI's embedding API with retry logic and error handling.
5
+ * Uses text-embedding-3-small model (1536 dimensions) for cost efficiency.
6
+ */
7
+ export interface EmbeddingResponse {
8
+ embedding: number[];
9
+ model: string;
10
+ usage: {
11
+ promptTokens: number;
12
+ totalTokens: number;
13
+ };
14
+ }
15
+ export interface BatchEmbeddingResponse {
16
+ embeddings: number[][];
17
+ model: string;
18
+ usage: {
19
+ promptTokens: number;
20
+ totalTokens: number;
21
+ };
22
+ }
23
+ export interface OpenAIEmbeddingConfig {
24
+ apiKey: string;
25
+ model?: string;
26
+ dimensions?: number;
27
+ maxRetries?: number;
28
+ baseDelayMs?: number;
29
+ }
30
+ export declare class OpenAIEmbeddingClient {
31
+ private readonly apiKey;
32
+ private readonly model;
33
+ private readonly dimensions;
34
+ private readonly maxRetries;
35
+ private readonly baseDelayMs;
36
+ private readonly apiUrl;
37
+ constructor(config: OpenAIEmbeddingConfig);
38
+ /**
39
+ * Generate embedding for a single text
40
+ */
41
+ embed(text: string): Promise<EmbeddingResponse>;
42
+ /**
43
+ * Generate embeddings for multiple texts in a batch
44
+ * OpenAI supports batching up to 2048 inputs
45
+ */
46
+ embedBatch(texts: string[]): Promise<BatchEmbeddingResponse>;
47
+ /**
48
+ * Call with exponential backoff retry
49
+ */
50
+ private callWithRetry;
51
+ /**
52
+ * Check if error is retryable
53
+ */
54
+ private isRetryableError;
55
+ /**
56
+ * Helper to delay execution
57
+ */
58
+ private delay;
59
+ /**
60
+ * Get client configuration info
61
+ */
62
+ getConfig(): {
63
+ model: string;
64
+ dimensions: number;
65
+ };
66
+ }
67
+ //# sourceMappingURL=openai-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-client.d.ts","sourceRoot":"","sources":["../../src/embeddings/openai-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAMD,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0C;gBAErD,MAAM,EAAE,qBAAqB;IAYzC;;OAEG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA+CrD;;;OAGG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA+ElE;;OAEG;YACW,aAAa;IA6B3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAexB;;OAEG;IACH,OAAO,CAAC,KAAK;IAIb;;OAEG;IACH,SAAS,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;CAMnD"}
@@ -0,0 +1,190 @@
1
+ /**
2
+ * OpenAI Embedding Client
3
+ *
4
+ * Wrapper for OpenAI's embedding API with retry logic and error handling.
5
+ * Uses text-embedding-3-small model (1536 dimensions) for cost efficiency.
6
+ */
7
+ import { EmbeddingError } from '../errors.js';
8
+ // =============================================================================
9
+ // OpenAI Embedding Client
10
+ // =============================================================================
11
+ export class OpenAIEmbeddingClient {
12
+ apiKey;
13
+ model;
14
+ dimensions;
15
+ maxRetries;
16
+ baseDelayMs;
17
+ apiUrl = 'https://api.openai.com/v1/embeddings';
18
+ constructor(config) {
19
+ if (!config.apiKey) {
20
+ throw new Error('OpenAI API key is required for embedding generation');
21
+ }
22
+ this.apiKey = config.apiKey;
23
+ this.model = config.model || 'text-embedding-3-small';
24
+ this.dimensions = config.dimensions || 1536;
25
+ this.maxRetries = config.maxRetries ?? 3;
26
+ this.baseDelayMs = config.baseDelayMs ?? 1000;
27
+ }
28
+ /**
29
+ * Generate embedding for a single text
30
+ */
31
+ async embed(text) {
32
+ if (!text || text.trim().length === 0) {
33
+ throw new EmbeddingError('Cannot generate embedding for empty text', 'validation');
34
+ }
35
+ // Truncate if too long (8191 tokens max for text-embedding-3-small)
36
+ // Approximate: 1 token ~= 4 characters for English
37
+ const maxChars = 32000; // Conservative limit
38
+ const truncatedText = text.length > maxChars ? text.substring(0, maxChars) : text;
39
+ const result = await this.callWithRetry(async () => {
40
+ const response = await fetch(this.apiUrl, {
41
+ method: 'POST',
42
+ headers: {
43
+ Authorization: `Bearer ${this.apiKey}`,
44
+ 'Content-Type': 'application/json',
45
+ },
46
+ body: JSON.stringify({
47
+ model: this.model,
48
+ input: truncatedText,
49
+ dimensions: this.dimensions,
50
+ }),
51
+ });
52
+ if (!response.ok) {
53
+ const errorData = await response.json().catch(() => ({}));
54
+ const errorMessage = errorData.error?.message || `HTTP ${response.status}`;
55
+ throw new EmbeddingError(`OpenAI embedding API error: ${errorMessage}`, 'api_error', { context: { status: response.status, error: errorData } });
56
+ }
57
+ return response.json();
58
+ });
59
+ return {
60
+ embedding: result.data[0].embedding,
61
+ model: result.model,
62
+ usage: {
63
+ promptTokens: result.usage.prompt_tokens,
64
+ totalTokens: result.usage.total_tokens,
65
+ },
66
+ };
67
+ }
68
+ /**
69
+ * Generate embeddings for multiple texts in a batch
70
+ * OpenAI supports batching up to 2048 inputs
71
+ */
72
+ async embedBatch(texts) {
73
+ if (!texts || texts.length === 0) {
74
+ throw new EmbeddingError('Cannot generate embeddings for empty batch', 'validation');
75
+ }
76
+ // Filter out empty texts and truncate long ones
77
+ const maxChars = 32000;
78
+ const processedTexts = texts
79
+ .filter((t) => t && t.trim().length > 0)
80
+ .map((t) => (t.length > maxChars ? t.substring(0, maxChars) : t));
81
+ if (processedTexts.length === 0) {
82
+ throw new EmbeddingError('No valid texts in batch after filtering', 'validation');
83
+ }
84
+ // OpenAI batch limit
85
+ const batchSize = 100;
86
+ const allEmbeddings = [];
87
+ let totalPromptTokens = 0;
88
+ let totalTokens = 0;
89
+ let model = '';
90
+ // Process in chunks
91
+ for (let i = 0; i < processedTexts.length; i += batchSize) {
92
+ const chunk = processedTexts.slice(i, i + batchSize);
93
+ const result = await this.callWithRetry(async () => {
94
+ const response = await fetch(this.apiUrl, {
95
+ method: 'POST',
96
+ headers: {
97
+ Authorization: `Bearer ${this.apiKey}`,
98
+ 'Content-Type': 'application/json',
99
+ },
100
+ body: JSON.stringify({
101
+ model: this.model,
102
+ input: chunk,
103
+ dimensions: this.dimensions,
104
+ }),
105
+ });
106
+ if (!response.ok) {
107
+ const errorData = await response.json().catch(() => ({}));
108
+ const errorMessage = errorData.error?.message || `HTTP ${response.status}`;
109
+ throw new EmbeddingError(`OpenAI embedding API error: ${errorMessage}`, 'api_error', { context: { status: response.status, error: errorData } });
110
+ }
111
+ return response.json();
112
+ });
113
+ // Sort by index to maintain order
114
+ const sortedData = result.data.sort((a, b) => a.index - b.index);
115
+ allEmbeddings.push(...sortedData.map((d) => d.embedding));
116
+ totalPromptTokens += result.usage.prompt_tokens;
117
+ totalTokens += result.usage.total_tokens;
118
+ model = result.model;
119
+ // Small delay between chunks to avoid rate limits
120
+ if (i + batchSize < processedTexts.length) {
121
+ await this.delay(100);
122
+ }
123
+ }
124
+ return {
125
+ embeddings: allEmbeddings,
126
+ model,
127
+ usage: {
128
+ promptTokens: totalPromptTokens,
129
+ totalTokens: totalTokens,
130
+ },
131
+ };
132
+ }
133
+ /**
134
+ * Call with exponential backoff retry
135
+ */
136
+ async callWithRetry(fn) {
137
+ let lastError = null;
138
+ for (let attempt = 0; attempt < this.maxRetries; attempt++) {
139
+ try {
140
+ return await fn();
141
+ }
142
+ catch (error) {
143
+ lastError = error instanceof Error ? error : new Error(String(error));
144
+ // Check if retryable
145
+ if (!this.isRetryableError(error)) {
146
+ throw error;
147
+ }
148
+ // Exponential backoff with jitter
149
+ const delayMs = this.baseDelayMs * Math.pow(2, attempt) * (0.5 + Math.random() * 0.5);
150
+ console.warn(`OpenAI embedding request failed (attempt ${attempt + 1}/${this.maxRetries}), ` +
151
+ `retrying in ${Math.round(delayMs)}ms: ${lastError.message}`);
152
+ await this.delay(delayMs);
153
+ }
154
+ }
155
+ throw lastError || new EmbeddingError('Max retries exceeded', 'api_error');
156
+ }
157
+ /**
158
+ * Check if error is retryable
159
+ */
160
+ isRetryableError(error) {
161
+ if (error instanceof EmbeddingError) {
162
+ const status = error.context?.status;
163
+ // Retry on rate limits (429) and server errors (5xx)
164
+ if (typeof status === 'number') {
165
+ return status === 429 || (status >= 500 && status < 600);
166
+ }
167
+ }
168
+ // Retry on network errors
169
+ if (error instanceof TypeError && error.message.includes('fetch')) {
170
+ return true;
171
+ }
172
+ return false;
173
+ }
174
+ /**
175
+ * Helper to delay execution
176
+ */
177
+ delay(ms) {
178
+ return new Promise((resolve) => setTimeout(resolve, ms));
179
+ }
180
+ /**
181
+ * Get client configuration info
182
+ */
183
+ getConfig() {
184
+ return {
185
+ model: this.model,
186
+ dimensions: this.dimensions,
187
+ };
188
+ }
189
+ }
190
+ //# sourceMappingURL=openai-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-client.js","sourceRoot":"","sources":["../../src/embeddings/openai-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,302 @@
1
+ /**
2
+ * Support Agent Error Hierarchy
3
+ *
4
+ * Custom error classes for the Support AI Agent SDK.
5
+ * Enables type-safe error handling, consistent error codes,
6
+ * and better recovery strategies.
7
+ *
8
+ * Error Categories:
9
+ * - IntakeError: Message reception and normalization failures
10
+ * - AnalysisError: Intent/sentiment/entity extraction failures
11
+ * - KnowledgeError: Customer/product data retrieval failures
12
+ * - GenerationError: Response generation failures
13
+ * - DeliveryError: Message delivery failures
14
+ * - EscalationError: Human escalation failures
15
+ * - BrandComplianceError: Brand rule violations
16
+ */
17
+ /**
18
+ * Base error class for all support agent errors
19
+ */
20
+ export declare class SupportAgentError extends Error {
21
+ readonly code: string;
22
+ readonly context?: Record<string, unknown>;
23
+ readonly timestamp: Date;
24
+ readonly recoverable: boolean;
25
+ readonly conversationId?: string;
26
+ readonly messageId?: string;
27
+ constructor(message: string, code: string, options?: {
28
+ context?: Record<string, unknown>;
29
+ recoverable?: boolean;
30
+ cause?: Error;
31
+ conversationId?: string;
32
+ messageId?: string;
33
+ });
34
+ /**
35
+ * Serialize error for logging and storage
36
+ */
37
+ toJSON(): Record<string, unknown>;
38
+ }
39
+ /**
40
+ * Error during message intake (webhook reception, parsing, normalization)
41
+ */
42
+ export declare class IntakeError extends SupportAgentError {
43
+ readonly channel: 'email' | 'sms' | 'slack';
44
+ readonly stage: 'webhook' | 'validation' | 'normalization' | 'deduplication' | 'threading';
45
+ constructor(message: string, channel: 'email' | 'sms' | 'slack', stage: IntakeError['stage'], options?: {
46
+ context?: Record<string, unknown>;
47
+ cause?: Error;
48
+ conversationId?: string;
49
+ messageId?: string;
50
+ });
51
+ }
52
+ /**
53
+ * Error when webhook signature validation fails
54
+ */
55
+ export declare class WebhookValidationError extends IntakeError {
56
+ constructor(channel: 'email' | 'sms' | 'slack', options?: {
57
+ context?: Record<string, unknown>;
58
+ cause?: Error;
59
+ });
60
+ }
61
+ /**
62
+ * Error when a duplicate message is detected
63
+ */
64
+ export declare class DuplicateMessageError extends IntakeError {
65
+ readonly originalMessageId: string;
66
+ constructor(channel: 'email' | 'sms' | 'slack', originalMessageId: string, options?: {
67
+ context?: Record<string, unknown>;
68
+ });
69
+ }
70
+ /**
71
+ * Error during message analysis (intent, sentiment, entities)
72
+ */
73
+ export declare class AnalysisError extends SupportAgentError {
74
+ readonly analysisType: 'intent' | 'sentiment' | 'entities' | 'urgency' | 'compliance';
75
+ constructor(message: string, analysisType: AnalysisError['analysisType'], options?: {
76
+ context?: Record<string, unknown>;
77
+ cause?: Error;
78
+ conversationId?: string;
79
+ messageId?: string;
80
+ });
81
+ }
82
+ /**
83
+ * Error when intent classification fails or returns low confidence
84
+ */
85
+ export declare class IntentClassificationError extends AnalysisError {
86
+ readonly confidence: number;
87
+ constructor(message: string, confidence: number, options?: {
88
+ context?: Record<string, unknown>;
89
+ cause?: Error;
90
+ conversationId?: string;
91
+ messageId?: string;
92
+ });
93
+ }
94
+ /**
95
+ * Error during knowledge retrieval (customer data, products, policies)
96
+ */
97
+ export declare class KnowledgeError extends SupportAgentError {
98
+ readonly knowledgeType: 'customer' | 'product' | 'policy' | 'similar_conversations' | 'templates';
99
+ constructor(message: string, knowledgeType: KnowledgeError['knowledgeType'], options?: {
100
+ context?: Record<string, unknown>;
101
+ cause?: Error;
102
+ conversationId?: string;
103
+ messageId?: string;
104
+ });
105
+ }
106
+ /**
107
+ * Error when customer cannot be identified or found
108
+ */
109
+ export declare class CustomerNotFoundError extends KnowledgeError {
110
+ readonly identifiers: {
111
+ email?: string;
112
+ phone?: string;
113
+ slackId?: string;
114
+ };
115
+ constructor(identifiers: CustomerNotFoundError['identifiers'], options?: {
116
+ context?: Record<string, unknown>;
117
+ conversationId?: string;
118
+ messageId?: string;
119
+ });
120
+ }
121
+ /**
122
+ * Error during response generation
123
+ */
124
+ export declare class GenerationError extends SupportAgentError {
125
+ readonly stage: 'context_assembly' | 'prompt_construction' | 'llm_call' | 'post_processing';
126
+ constructor(message: string, stage: GenerationError['stage'], options?: {
127
+ context?: Record<string, unknown>;
128
+ cause?: Error;
129
+ conversationId?: string;
130
+ messageId?: string;
131
+ });
132
+ }
133
+ /**
134
+ * Error when response quality check fails
135
+ */
136
+ export declare class ResponseQualityError extends GenerationError {
137
+ readonly qualityScore: number;
138
+ readonly issues: string[];
139
+ constructor(qualityScore: number, issues: string[], options?: {
140
+ context?: Record<string, unknown>;
141
+ conversationId?: string;
142
+ messageId?: string;
143
+ });
144
+ }
145
+ export type DeliveryChannel = 'email' | 'sms' | 'slack';
146
+ /**
147
+ * Error during message delivery
148
+ */
149
+ export declare class DeliveryError extends SupportAgentError {
150
+ readonly channel: DeliveryChannel;
151
+ readonly deliveryStage: 'preparation' | 'sending' | 'confirmation';
152
+ constructor(message: string, channel: DeliveryChannel, deliveryStage: DeliveryError['deliveryStage'], options?: {
153
+ context?: Record<string, unknown>;
154
+ cause?: Error;
155
+ conversationId?: string;
156
+ messageId?: string;
157
+ recoverable?: boolean;
158
+ });
159
+ }
160
+ /**
161
+ * Error when message bounces or permanently fails
162
+ */
163
+ export declare class PermanentDeliveryFailure extends DeliveryError {
164
+ readonly failureReason: 'bounced' | 'invalid_recipient' | 'blocked' | 'unsubscribed';
165
+ constructor(channel: DeliveryChannel, failureReason: PermanentDeliveryFailure['failureReason'], options?: {
166
+ context?: Record<string, unknown>;
167
+ conversationId?: string;
168
+ messageId?: string;
169
+ });
170
+ }
171
+ export type EscalationChannel = 'email' | 'sms' | 'slack';
172
+ /**
173
+ * Error during escalation to human agents
174
+ */
175
+ export declare class EscalationError extends SupportAgentError {
176
+ readonly escalationChannel?: EscalationChannel;
177
+ constructor(message: string, options?: {
178
+ channel?: EscalationChannel;
179
+ context?: Record<string, unknown>;
180
+ cause?: Error;
181
+ conversationId?: string;
182
+ messageId?: string;
183
+ });
184
+ }
185
+ /**
186
+ * Error when ALL escalation channels have failed
187
+ * Not recoverable via retry - requires fallback handling
188
+ */
189
+ export declare class AllEscalationChannelsFailedError extends SupportAgentError {
190
+ readonly channelErrors: Array<{
191
+ channel: EscalationChannel;
192
+ error: string;
193
+ }>;
194
+ readonly escalationId?: number;
195
+ constructor(channelErrors: AllEscalationChannelsFailedError['channelErrors'], options?: {
196
+ escalationId?: number;
197
+ context?: Record<string, unknown>;
198
+ conversationId?: string;
199
+ messageId?: string;
200
+ });
201
+ getSummary(): string;
202
+ }
203
+ /**
204
+ * Error when brand compliance rules are violated
205
+ * These errors ALWAYS require escalation - never recoverable by retry
206
+ */
207
+ export declare class BrandComplianceError extends SupportAgentError {
208
+ readonly violationType: 'forbidden_term_detected' | 'tone_violation' | 'terminology_violation' | 'pre_send_validation_failed';
209
+ readonly detectedTerms?: string[];
210
+ readonly complianceScore?: number;
211
+ constructor(message: string, violationType: BrandComplianceError['violationType'], options?: {
212
+ detectedTerms?: string[];
213
+ complianceScore?: number;
214
+ context?: Record<string, unknown>;
215
+ conversationId?: string;
216
+ messageId?: string;
217
+ });
218
+ }
219
+ /**
220
+ * Error when forbidden terms are detected in incoming or outgoing messages
221
+ */
222
+ export declare class ForbiddenTermsDetectedError extends BrandComplianceError {
223
+ readonly terms: string[];
224
+ readonly source: 'inbound_message' | 'generated_response';
225
+ constructor(terms: string[], source: ForbiddenTermsDetectedError['source'], options?: {
226
+ context?: Record<string, unknown>;
227
+ conversationId?: string;
228
+ messageId?: string;
229
+ });
230
+ }
231
+ /**
232
+ * Database operation errors
233
+ */
234
+ export declare class DatabaseError extends SupportAgentError {
235
+ readonly operation: 'query' | 'insert' | 'update' | 'delete';
236
+ readonly table?: string;
237
+ constructor(message: string, operation: DatabaseError['operation'], options?: {
238
+ table?: string;
239
+ context?: Record<string, unknown>;
240
+ cause?: Error;
241
+ conversationId?: string;
242
+ messageId?: string;
243
+ });
244
+ }
245
+ export type EmbeddingErrorType = 'api_error' | 'validation' | 'rate_limit' | 'timeout';
246
+ /**
247
+ * Error during embedding generation
248
+ */
249
+ export declare class EmbeddingError extends SupportAgentError {
250
+ readonly errorType: EmbeddingErrorType;
251
+ constructor(message: string, errorType: EmbeddingErrorType, options?: {
252
+ context?: Record<string, unknown>;
253
+ cause?: Error;
254
+ conversationId?: string;
255
+ messageId?: string;
256
+ });
257
+ }
258
+ /**
259
+ * Operation timeout errors
260
+ */
261
+ export declare class TimeoutError extends SupportAgentError {
262
+ readonly operationType: string;
263
+ readonly timeoutMs: number;
264
+ constructor(operationType: string, timeoutMs: number, options?: {
265
+ context?: Record<string, unknown>;
266
+ cause?: Error;
267
+ conversationId?: string;
268
+ messageId?: string;
269
+ });
270
+ }
271
+ export declare function isSupportAgentError(error: unknown): error is SupportAgentError;
272
+ export declare function isIntakeError(error: unknown): error is IntakeError;
273
+ export declare function isAnalysisError(error: unknown): error is AnalysisError;
274
+ export declare function isKnowledgeError(error: unknown): error is KnowledgeError;
275
+ export declare function isGenerationError(error: unknown): error is GenerationError;
276
+ export declare function isDeliveryError(error: unknown): error is DeliveryError;
277
+ export declare function isEscalationError(error: unknown): error is EscalationError;
278
+ export declare function isBrandComplianceError(error: unknown): error is BrandComplianceError;
279
+ export declare function isDatabaseError(error: unknown): error is DatabaseError;
280
+ export declare function isTimeoutError(error: unknown): error is TimeoutError;
281
+ export declare function isEmbeddingError(error: unknown): error is EmbeddingError;
282
+ export declare function isRecoverableError(error: unknown): boolean;
283
+ /**
284
+ * Convert unknown error to SupportAgentError
285
+ */
286
+ export declare function toSupportAgentError(error: unknown, options?: {
287
+ conversationId?: string;
288
+ messageId?: string;
289
+ }): SupportAgentError;
290
+ /**
291
+ * Extract error message from any error type
292
+ */
293
+ export declare function getErrorMessage(error: unknown): string;
294
+ /**
295
+ * Check if an error should trigger a retry
296
+ */
297
+ export declare function shouldRetry(error: unknown, attemptCount: number, maxAttempts: number): boolean;
298
+ /**
299
+ * Check if an error requires immediate escalation
300
+ */
301
+ export declare function requiresImmediateEscalation(error: unknown): boolean;
302
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}