catalist-support-agent 1.0.1 → 1.0.3
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.
- package/dist/analysis/index.d.ts +2 -1
- package/dist/analysis/index.d.ts.map +1 -1
- package/dist/analysis/index.js +217 -7
- package/dist/analysis/index.js.map +1 -1
- package/package.json +1 -1
- package/ga-service-account.json +0 -13
- package/gmail-knowledge-migration.sql +0 -149
- package/nul +0 -1
package/dist/analysis/index.d.ts
CHANGED
|
@@ -35,7 +35,8 @@ export declare function triageMessage(message: InboundMessage): {
|
|
|
35
35
|
quickAssessment: string;
|
|
36
36
|
};
|
|
37
37
|
/**
|
|
38
|
-
* Check if a message is processable (not spam, auto-reply, etc.)
|
|
38
|
+
* Check if a message is processable (not spam, auto-reply, marketing, etc.)
|
|
39
|
+
* Returns false for emails we should skip to save LLM tokens.
|
|
39
40
|
*/
|
|
40
41
|
export declare function isProcessableMessage(message: InboundMessage): {
|
|
41
42
|
processable: boolean;
|
|
@@ -1 +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;
|
|
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;AAiLD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG;IAC7D,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAgFA"}
|
package/dist/analysis/index.js
CHANGED
|
@@ -215,27 +215,237 @@ export function triageMessage(message) {
|
|
|
215
215
|
quickAssessment: `${intent.primary} - ${sentiment.category} sentiment`,
|
|
216
216
|
};
|
|
217
217
|
}
|
|
218
|
+
// =============================================================================
|
|
219
|
+
// Email Filtering - Skip automated/marketing emails to save LLM tokens
|
|
220
|
+
// =============================================================================
|
|
218
221
|
/**
|
|
219
|
-
*
|
|
222
|
+
* Domains that send automated emails we should never respond to
|
|
223
|
+
*/
|
|
224
|
+
const SKIP_DOMAINS = [
|
|
225
|
+
// E-commerce platforms
|
|
226
|
+
'amazon.com', 'amazon.co.uk', 'amazon.de', 'amazon.ca',
|
|
227
|
+
'temu.com',
|
|
228
|
+
'mercadolibre.com', 'mercadolibre.com.mx', 'mercadolibre.com.ar',
|
|
229
|
+
'shopify.com', 'myshopify.com',
|
|
230
|
+
'ebay.com',
|
|
231
|
+
'walmart.com',
|
|
232
|
+
'aliexpress.com',
|
|
233
|
+
// Communication platforms
|
|
234
|
+
'slack.com', 'slackbot.com',
|
|
235
|
+
'reddit.com', 'redditmail.com',
|
|
236
|
+
'twilio.com', 'sendgrid.net', 'sendgrid.com',
|
|
237
|
+
'x.com', 'twitter.com',
|
|
238
|
+
'discord.com',
|
|
239
|
+
'linkedin.com',
|
|
240
|
+
'facebook.com', 'facebookmail.com',
|
|
241
|
+
// Developer/Tech services
|
|
242
|
+
'supabase.io', 'supabase.com',
|
|
243
|
+
'anthropic.com',
|
|
244
|
+
'github.com',
|
|
245
|
+
'vercel.com',
|
|
246
|
+
'netlify.com',
|
|
247
|
+
'heroku.com',
|
|
248
|
+
'aws.amazon.com', 'amazonaws.com',
|
|
249
|
+
'google.com', 'googlemail.com',
|
|
250
|
+
// Financial services
|
|
251
|
+
'mercury.com',
|
|
252
|
+
'wise.com', 'transferwise.com',
|
|
253
|
+
'stripe.com',
|
|
254
|
+
'paypal.com',
|
|
255
|
+
'plaid.com',
|
|
256
|
+
'brex.com',
|
|
257
|
+
// Review/Directory sites
|
|
258
|
+
'trustpilot.com',
|
|
259
|
+
'wholesalecentral.com',
|
|
260
|
+
'yelp.com',
|
|
261
|
+
'g2.com',
|
|
262
|
+
// Apple
|
|
263
|
+
'apple.com', 'icloud.com',
|
|
264
|
+
'id.apple.com',
|
|
265
|
+
// Tools
|
|
266
|
+
'selleramp.com',
|
|
267
|
+
'junglescout.com',
|
|
268
|
+
'helium10.com',
|
|
269
|
+
'keepa.com',
|
|
270
|
+
// Email marketing platforms
|
|
271
|
+
'mailchimp.com', 'mailchimpapp.com',
|
|
272
|
+
'constantcontact.com',
|
|
273
|
+
'hubspot.com',
|
|
274
|
+
'marketo.com',
|
|
275
|
+
'klaviyo.com',
|
|
276
|
+
'mailgun.com',
|
|
277
|
+
'postmarkapp.com',
|
|
278
|
+
'sendinblue.com', 'brevo.com',
|
|
279
|
+
// Newsletters
|
|
280
|
+
'substack.com',
|
|
281
|
+
'beehiiv.com',
|
|
282
|
+
'convertkit.com',
|
|
283
|
+
'buttondown.email',
|
|
284
|
+
];
|
|
285
|
+
/**
|
|
286
|
+
* Email address patterns to skip (regardless of domain)
|
|
287
|
+
*/
|
|
288
|
+
const SKIP_ADDRESS_PATTERNS = [
|
|
289
|
+
/^noreply@/i,
|
|
290
|
+
/^no-reply@/i,
|
|
291
|
+
/^donotreply@/i,
|
|
292
|
+
/^do-not-reply@/i,
|
|
293
|
+
/^mailer-daemon@/i,
|
|
294
|
+
/^postmaster@/i,
|
|
295
|
+
/^marketing@/i,
|
|
296
|
+
/^newsletter@/i,
|
|
297
|
+
/^notifications?@/i,
|
|
298
|
+
/^alerts?@/i,
|
|
299
|
+
/^updates?@/i,
|
|
300
|
+
/^info@.*\.(com|net|org)$/i, // Generic info@ from non-customer domains
|
|
301
|
+
/^support@(?!catalist)/i, // Support from other companies (not us)
|
|
302
|
+
/^team@/i,
|
|
303
|
+
/^hello@(?!catalist)/i,
|
|
304
|
+
/^news@/i,
|
|
305
|
+
/^digest@/i,
|
|
306
|
+
/^daily@/i,
|
|
307
|
+
/^weekly@/i,
|
|
308
|
+
/^monthly@/i,
|
|
309
|
+
/^automated@/i,
|
|
310
|
+
/^system@/i,
|
|
311
|
+
/^admin@(?!catalist)/i,
|
|
312
|
+
];
|
|
313
|
+
/**
|
|
314
|
+
* Subject line patterns indicating automated/marketing emails
|
|
315
|
+
*/
|
|
316
|
+
const SKIP_SUBJECT_PATTERNS = [
|
|
317
|
+
// Password/Security
|
|
318
|
+
/password reset/i,
|
|
319
|
+
/reset your password/i,
|
|
320
|
+
/verification code/i,
|
|
321
|
+
/verify your email/i,
|
|
322
|
+
/confirm your email/i,
|
|
323
|
+
/security code/i,
|
|
324
|
+
/one-time (password|code|passcode)/i,
|
|
325
|
+
/2fa|two.factor/i,
|
|
326
|
+
/login code/i,
|
|
327
|
+
/sign.in code/i,
|
|
328
|
+
// Newsletters/Marketing
|
|
329
|
+
/newsletter/i,
|
|
330
|
+
/weekly digest/i,
|
|
331
|
+
/daily digest/i,
|
|
332
|
+
/monthly update/i,
|
|
333
|
+
/\[newsletter\]/i,
|
|
334
|
+
/unsubscribe/i,
|
|
335
|
+
// Notifications
|
|
336
|
+
/shipping (confirmation|update|notification)/i,
|
|
337
|
+
/order (confirmation|shipped|delivered)/i,
|
|
338
|
+
/delivery (update|notification|confirmation)/i,
|
|
339
|
+
/tracking (number|update|information)/i,
|
|
340
|
+
/your (amazon|ebay|shopify|temu) order/i,
|
|
341
|
+
/payment (received|confirmed|processed)/i,
|
|
342
|
+
/invoice #?\d+/i,
|
|
343
|
+
/receipt for/i,
|
|
344
|
+
// Social notifications
|
|
345
|
+
/new (follower|like|comment|mention|message)/i,
|
|
346
|
+
/someone (mentioned|tagged|replied)/i,
|
|
347
|
+
/you have \d+ new/i,
|
|
348
|
+
// Promotional
|
|
349
|
+
/% off/i,
|
|
350
|
+
/limited time/i,
|
|
351
|
+
/flash sale/i,
|
|
352
|
+
/don't miss/i,
|
|
353
|
+
/exclusive offer/i,
|
|
354
|
+
/special offer/i,
|
|
355
|
+
/free shipping/i,
|
|
356
|
+
];
|
|
357
|
+
/**
|
|
358
|
+
* Content patterns indicating marketing/automated emails
|
|
359
|
+
*/
|
|
360
|
+
const SKIP_CONTENT_PATTERNS = [
|
|
361
|
+
/click here to unsubscribe/i,
|
|
362
|
+
/unsubscribe from (this|these|our)/i,
|
|
363
|
+
/manage (your )?email preferences/i,
|
|
364
|
+
/update (your )?subscription/i,
|
|
365
|
+
/opt.out of/i,
|
|
366
|
+
/view (this )?(email )?in (your )?browser/i,
|
|
367
|
+
/having trouble viewing/i,
|
|
368
|
+
/add us to your (address book|contacts)/i,
|
|
369
|
+
/this (email|message) was sent (to|by)/i,
|
|
370
|
+
/you('re| are) receiving this (because|email)/i,
|
|
371
|
+
/©\s*\d{4}/, // Copyright notice
|
|
372
|
+
/all rights reserved/i,
|
|
373
|
+
/privacy policy.*terms/i,
|
|
374
|
+
/if you no longer (wish|want) to receive/i,
|
|
375
|
+
];
|
|
376
|
+
/**
|
|
377
|
+
* Check if a message is processable (not spam, auto-reply, marketing, etc.)
|
|
378
|
+
* Returns false for emails we should skip to save LLM tokens.
|
|
220
379
|
*/
|
|
221
380
|
export function isProcessableMessage(message) {
|
|
222
381
|
const text = message.content.text.toLowerCase();
|
|
223
|
-
|
|
382
|
+
const subject = message.content.subject?.toLowerCase() || '';
|
|
383
|
+
const senderEmail = message.sender.email?.toLowerCase() || '';
|
|
384
|
+
// ==========================================================================
|
|
385
|
+
// 1. Check sender domain against skip list
|
|
386
|
+
// ==========================================================================
|
|
387
|
+
if (senderEmail) {
|
|
388
|
+
const domain = senderEmail.split('@')[1];
|
|
389
|
+
if (domain) {
|
|
390
|
+
for (const skipDomain of SKIP_DOMAINS) {
|
|
391
|
+
if (domain === skipDomain || domain.endsWith('.' + skipDomain)) {
|
|
392
|
+
return { processable: false, reason: `Automated sender: ${skipDomain}` };
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
// ==========================================================================
|
|
398
|
+
// 2. Check sender address patterns
|
|
399
|
+
// ==========================================================================
|
|
400
|
+
for (const pattern of SKIP_ADDRESS_PATTERNS) {
|
|
401
|
+
if (pattern.test(senderEmail)) {
|
|
402
|
+
return { processable: false, reason: `Automated address pattern: ${pattern.source}` };
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
// ==========================================================================
|
|
406
|
+
// 3. Check subject line patterns
|
|
407
|
+
// ==========================================================================
|
|
408
|
+
for (const pattern of SKIP_SUBJECT_PATTERNS) {
|
|
409
|
+
if (pattern.test(subject)) {
|
|
410
|
+
return { processable: false, reason: `Automated subject: ${pattern.source}` };
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
// ==========================================================================
|
|
414
|
+
// 4. Check for auto-reply indicators in content
|
|
415
|
+
// ==========================================================================
|
|
224
416
|
const autoReplyPatterns = [
|
|
225
417
|
/out of office/i,
|
|
226
418
|
/automatic reply/i,
|
|
227
419
|
/auto-reply/i,
|
|
228
|
-
/away from/i,
|
|
229
|
-
/delivery notification/i,
|
|
420
|
+
/away from (my )?(desk|office|email)/i,
|
|
421
|
+
/delivery (status )?notification/i,
|
|
230
422
|
/undeliverable/i,
|
|
423
|
+
/delivery failure/i,
|
|
424
|
+
/returned mail/i,
|
|
425
|
+
/mail delivery (failed|subsystem)/i,
|
|
231
426
|
];
|
|
232
427
|
for (const pattern of autoReplyPatterns) {
|
|
233
|
-
if (pattern.test(text)) {
|
|
428
|
+
if (pattern.test(text) || pattern.test(subject)) {
|
|
234
429
|
return { processable: false, reason: 'Auto-reply detected' };
|
|
235
430
|
}
|
|
236
431
|
}
|
|
237
|
-
//
|
|
238
|
-
|
|
432
|
+
// ==========================================================================
|
|
433
|
+
// 5. Check for marketing content patterns
|
|
434
|
+
// ==========================================================================
|
|
435
|
+
let marketingSignals = 0;
|
|
436
|
+
for (const pattern of SKIP_CONTENT_PATTERNS) {
|
|
437
|
+
if (pattern.test(text)) {
|
|
438
|
+
marketingSignals++;
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
// If 2+ marketing signals, likely a marketing email
|
|
442
|
+
if (marketingSignals >= 2) {
|
|
443
|
+
return { processable: false, reason: `Marketing email (${marketingSignals} signals)` };
|
|
444
|
+
}
|
|
445
|
+
// ==========================================================================
|
|
446
|
+
// 6. Check for empty content
|
|
447
|
+
// ==========================================================================
|
|
448
|
+
if (!text.trim() && !subject.trim()) {
|
|
239
449
|
return { processable: false, reason: 'Empty message' };
|
|
240
450
|
}
|
|
241
451
|
return { processable: true };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/analysis/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/analysis/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/ga-service-account.json
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"type": "service_account",
|
|
3
|
-
"project_id": "catalist-gmail-agent",
|
|
4
|
-
"private_key_id": "db802de422708b1c3f47c2707a4fecd39b64ca39",
|
|
5
|
-
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDOGnkcYVR7kc3p\nNMRow3/z+S0nfaQPs4Iz0eViWYNVvwlOOSPAX0qQyfspSYeAiHa4CizJ9PV2xTry\nk8FAkjQPbxiLfh1JGIoiIAx/mHXh/Gaux4baYm58nbPI3dS0zZ/xnUCKhhx12pkt\nQHl7gFejNbA2YcW5eB4WCUR32WtpEVJ3nAxzctR7Zf+ZavUcDdA7cXMJy/ACIiJa\n9EUhgeaUUg48T32vFkxKsrgzFWGA4el+IOTIUw45WhE/N5AGZAGxRsug5uICfgvm\nlri1XAsMWSji0T5t4qOhKTJJmNNVn3eFrmwh9dxinuKkqUzHd89+1vAUaQL0pBbY\neEtB6shJAgMBAAECggEAP5xWEtdLXtQSbE6X7AmivScDs7OIZjwuDFZU6LTd3yIV\n+imSijYe6m8ccJK8GoSDt6uURUSwWdbnqaTGuWomXTkZpzvmSAAl6gBgOyVQBM6E\n1p7IVTCaDyYRLgahNqhcHBM/r0FTGWC9dAT5OY/T/JB+cVpdzy9ugbichCz7hLKB\nJ/tfJUqtrCoLdQVL/FBD372gajiGHr6Wbra1paFNjPGLWprwpZm7ZVK3r+LJXlon\n8hux8umhKtXsbOHdnXuyl2rEgGOngzMI+quLQot3SvVifNYeL+vla4bYbUIFvPz/\nihCew7sCqAPu53MnWOQccFEnTpGV4n6olN1UsPwfjQKBgQDoSYcqGFP11cYfQL6v\nC8iY8u2Sw2iqP+fjR+DRCrLc30UDU1oJcGrDq7f44D/Y5P87ikogLRlWMRcF/XZ8\nyivvmBRQPLZ+bm4idmQnnSBXRTv9igVqW3+1FWdAlqJaTJRHjPWod48UDX3sBSPy\nozuYNaF23n/vSkLwp7eN0dGrUwKBgQDjJKvVuqpkzmgnvXIn2Fn4UV5Fp3zyqpbT\nSgpsyDaj+Oz+M30DV+OtYxNWqRtBFgzyrFKL33YQN0D3DA/xdrM3ToBOkr/wRKl0\n2gk06taeN/mF/STXGJ/+kEKIgsY9T1Pncyt/DRX9/sEeK1w1ebxYPNlKFPRmBPd+\nNW/VZHGmcwKBgQC3Dzs2MXX5hz9b4epkiSTNZKVVxCn4AeT9eOfz1jqfVlVNCaMr\nTSzWh720pQWsKMv8YD+KnAAbrRQ35Eg8kBeP+ooHsdEgUmb5QdQsY+fY3vcoGF2s\nM++xBe0ZOZ05DKDOwofW/GIFq5xRJLvvvDR6/8j/pNmt+xhGD+bYHULfgQKBgH5j\n4mXcJ4JORDCQvtujDHUbObzCdMlG2QQa9/AN/DGDisPr/I0Gs77AGXuoP20ZCv1h\nm9EO99AQHssY4Co5JYIJ4WVXTQwx+KT3yhWy8tc5SFQhRwWVQznQJeV19z8YTBTG\nxhY9PtaFkgnqkLWE1qO2wCXzwQafjuOgcmkoKgE3AoGAc7vLPsXVrWpyXs0x4z/6\npN8CNk2zG0PHtFER01Bl/rNd9W3w4uyYXKhrXcMn8RbzRudqGHcnGMve6zou8Ut/\n9k/rKTuTLrK4PjgskAylhdfNNNwtg+br0Xo7HHORXZZKmcL3CdgL2V2apB09w9pO\nbhfX1g5NXSxeeUwibQxm86s=\n-----END PRIVATE KEY-----\n",
|
|
6
|
-
"client_email": "ga4-api-access@catalist-gmail-agent.iam.gserviceaccount.com",
|
|
7
|
-
"client_id": "115755539456131901596",
|
|
8
|
-
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
|
|
9
|
-
"token_uri": "https://oauth2.googleapis.com/token",
|
|
10
|
-
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
|
|
11
|
-
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/ga4-api-access%40catalist-gmail-agent.iam.gserviceaccount.com",
|
|
12
|
-
"universe_domain": "googleapis.com"
|
|
13
|
-
}
|
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
-- Gmail Knowledge Base Migration (corrected order)
|
|
2
|
-
-- Apply this in Supabase Dashboard -> SQL Editor
|
|
3
|
-
|
|
4
|
-
-- 1. Enable pgvector extension
|
|
5
|
-
CREATE EXTENSION IF NOT EXISTS vector;
|
|
6
|
-
|
|
7
|
-
-- 2. Create enum types
|
|
8
|
-
DO $$ BEGIN
|
|
9
|
-
CREATE TYPE gmail_knowledge_review_status AS ENUM (
|
|
10
|
-
'pending', 'approved', 'rejected', 'needs_revision'
|
|
11
|
-
);
|
|
12
|
-
EXCEPTION WHEN duplicate_object THEN NULL;
|
|
13
|
-
END $$;
|
|
14
|
-
|
|
15
|
-
DO $$ BEGIN
|
|
16
|
-
CREATE TYPE gmail_import_batch_status AS ENUM (
|
|
17
|
-
'pending', 'in_progress', 'completed', 'failed', 'partial'
|
|
18
|
-
);
|
|
19
|
-
EXCEPTION WHEN duplicate_object THEN NULL;
|
|
20
|
-
END $$;
|
|
21
|
-
|
|
22
|
-
-- 3. Create gmail_import_batches FIRST (no FK dependencies)
|
|
23
|
-
CREATE TABLE IF NOT EXISTS gmail_import_batches (
|
|
24
|
-
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
25
|
-
email_account TEXT NOT NULL,
|
|
26
|
-
date_range_start TIMESTAMPTZ NOT NULL,
|
|
27
|
-
date_range_end TIMESTAMPTZ NOT NULL,
|
|
28
|
-
status gmail_import_batch_status NOT NULL DEFAULT 'pending',
|
|
29
|
-
total_threads_found INTEGER DEFAULT 0,
|
|
30
|
-
threads_processed INTEGER DEFAULT 0,
|
|
31
|
-
entries_created INTEGER DEFAULT 0,
|
|
32
|
-
entries_skipped INTEGER DEFAULT 0,
|
|
33
|
-
errors_encountered INTEGER DEFAULT 0,
|
|
34
|
-
started_at TIMESTAMPTZ,
|
|
35
|
-
completed_at TIMESTAMPTZ,
|
|
36
|
-
error_log JSONB DEFAULT '[]',
|
|
37
|
-
config_used JSONB DEFAULT '{}',
|
|
38
|
-
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
39
|
-
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
40
|
-
);
|
|
41
|
-
|
|
42
|
-
-- 4. Create gmail_extraction_state
|
|
43
|
-
CREATE TABLE IF NOT EXISTS gmail_extraction_state (
|
|
44
|
-
id SERIAL PRIMARY KEY,
|
|
45
|
-
email_address TEXT NOT NULL UNIQUE,
|
|
46
|
-
last_history_id TEXT,
|
|
47
|
-
last_extracted_at TIMESTAMPTZ,
|
|
48
|
-
total_entries_extracted INTEGER DEFAULT 0,
|
|
49
|
-
last_batch_id UUID REFERENCES gmail_import_batches(id) ON DELETE SET NULL,
|
|
50
|
-
consecutive_errors INTEGER DEFAULT 0,
|
|
51
|
-
last_error TEXT,
|
|
52
|
-
last_error_at TIMESTAMPTZ,
|
|
53
|
-
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
54
|
-
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
55
|
-
);
|
|
56
|
-
|
|
57
|
-
-- 5. Create gmail_knowledge_entries
|
|
58
|
-
CREATE TABLE IF NOT EXISTS gmail_knowledge_entries (
|
|
59
|
-
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
60
|
-
gmail_thread_id TEXT NOT NULL,
|
|
61
|
-
gmail_message_id TEXT NOT NULL,
|
|
62
|
-
question_subject TEXT,
|
|
63
|
-
question_text TEXT NOT NULL,
|
|
64
|
-
response_text TEXT NOT NULL,
|
|
65
|
-
customer_email TEXT NOT NULL,
|
|
66
|
-
customer_user_id INTEGER REFERENCES public."User"(id) ON DELETE SET NULL,
|
|
67
|
-
responder_email TEXT NOT NULL,
|
|
68
|
-
intent_category intent_category,
|
|
69
|
-
quality_score DECIMAL(4,3) DEFAULT 0.5,
|
|
70
|
-
review_status gmail_knowledge_review_status NOT NULL DEFAULT 'pending',
|
|
71
|
-
reviewed_by TEXT,
|
|
72
|
-
reviewed_at TIMESTAMPTZ,
|
|
73
|
-
review_notes TEXT,
|
|
74
|
-
embedding vector(1536),
|
|
75
|
-
tsv tsvector GENERATED ALWAYS AS (
|
|
76
|
-
setweight(to_tsvector('english', coalesce(question_subject, '')), 'A') ||
|
|
77
|
-
setweight(to_tsvector('english', coalesce(question_text, '')), 'B') ||
|
|
78
|
-
setweight(to_tsvector('english', coalesce(response_text, '')), 'C')
|
|
79
|
-
) STORED,
|
|
80
|
-
response_time_ms INTEGER,
|
|
81
|
-
resolution_indicator TEXT,
|
|
82
|
-
content_hash TEXT NOT NULL,
|
|
83
|
-
extracted_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
84
|
-
batch_id UUID REFERENCES gmail_import_batches(id) ON DELETE SET NULL,
|
|
85
|
-
pii_redacted BOOLEAN NOT NULL DEFAULT false,
|
|
86
|
-
pii_types_found TEXT[] DEFAULT '{}',
|
|
87
|
-
email_received_at TIMESTAMPTZ NOT NULL,
|
|
88
|
-
email_responded_at TIMESTAMPTZ,
|
|
89
|
-
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
90
|
-
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
91
|
-
);
|
|
92
|
-
|
|
93
|
-
-- 6. Create junction table
|
|
94
|
-
CREATE TABLE IF NOT EXISTS gmail_knowledge_order_links (
|
|
95
|
-
id SERIAL PRIMARY KEY,
|
|
96
|
-
knowledge_entry_id UUID NOT NULL REFERENCES gmail_knowledge_entries(id) ON DELETE CASCADE,
|
|
97
|
-
order_id TEXT,
|
|
98
|
-
invoice_number TEXT,
|
|
99
|
-
reference_type TEXT NOT NULL CHECK (reference_type IN ('order', 'invoice')),
|
|
100
|
-
confidence DECIMAL(4,3) DEFAULT 0.9,
|
|
101
|
-
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
102
|
-
CONSTRAINT has_reference CHECK (order_id IS NOT NULL OR invoice_number IS NOT NULL)
|
|
103
|
-
);
|
|
104
|
-
|
|
105
|
-
-- 7. Create indexes
|
|
106
|
-
CREATE UNIQUE INDEX IF NOT EXISTS idx_gmail_knowledge_message_id ON gmail_knowledge_entries(gmail_message_id);
|
|
107
|
-
CREATE INDEX IF NOT EXISTS idx_gmail_knowledge_content_hash ON gmail_knowledge_entries(content_hash);
|
|
108
|
-
CREATE INDEX IF NOT EXISTS idx_gmail_knowledge_tsv ON gmail_knowledge_entries USING gin(tsv);
|
|
109
|
-
CREATE INDEX IF NOT EXISTS idx_gmail_knowledge_customer_email ON gmail_knowledge_entries(customer_email);
|
|
110
|
-
CREATE INDEX IF NOT EXISTS idx_gmail_knowledge_review_status ON gmail_knowledge_entries(review_status);
|
|
111
|
-
CREATE INDEX IF NOT EXISTS idx_gmail_import_batches_email ON gmail_import_batches(email_account);
|
|
112
|
-
CREATE INDEX IF NOT EXISTS idx_gmail_import_batches_status ON gmail_import_batches(status);
|
|
113
|
-
|
|
114
|
-
-- 8. Enable RLS
|
|
115
|
-
ALTER TABLE gmail_knowledge_entries ENABLE ROW LEVEL SECURITY;
|
|
116
|
-
ALTER TABLE gmail_import_batches ENABLE ROW LEVEL SECURITY;
|
|
117
|
-
ALTER TABLE gmail_knowledge_order_links ENABLE ROW LEVEL SECURITY;
|
|
118
|
-
ALTER TABLE gmail_extraction_state ENABLE ROW LEVEL SECURITY;
|
|
119
|
-
|
|
120
|
-
-- 9. Create RLS policies for service_role
|
|
121
|
-
CREATE POLICY "Service role full access gmail_knowledge_entries" ON gmail_knowledge_entries FOR ALL USING (true);
|
|
122
|
-
CREATE POLICY "Service role full access gmail_import_batches" ON gmail_import_batches FOR ALL USING (true);
|
|
123
|
-
CREATE POLICY "Service role full access gmail_knowledge_order_links" ON gmail_knowledge_order_links FOR ALL USING (true);
|
|
124
|
-
CREATE POLICY "Service role full access gmail_extraction_state" ON gmail_extraction_state FOR ALL USING (true);
|
|
125
|
-
|
|
126
|
-
-- 10. Create stats function
|
|
127
|
-
CREATE OR REPLACE FUNCTION get_gmail_knowledge_stats()
|
|
128
|
-
RETURNS TABLE (
|
|
129
|
-
total_entries BIGINT,
|
|
130
|
-
approved_entries BIGINT,
|
|
131
|
-
pending_entries BIGINT,
|
|
132
|
-
entries_with_embeddings BIGINT
|
|
133
|
-
)
|
|
134
|
-
LANGUAGE plpgsql
|
|
135
|
-
SECURITY DEFINER
|
|
136
|
-
AS $$
|
|
137
|
-
BEGIN
|
|
138
|
-
RETURN QUERY
|
|
139
|
-
SELECT
|
|
140
|
-
COUNT(*)::BIGINT as total_entries,
|
|
141
|
-
COUNT(*) FILTER (WHERE review_status = 'approved')::BIGINT as approved_entries,
|
|
142
|
-
COUNT(*) FILTER (WHERE review_status = 'pending')::BIGINT as pending_entries,
|
|
143
|
-
COUNT(*) FILTER (WHERE embedding IS NOT NULL)::BIGINT as entries_with_embeddings
|
|
144
|
-
FROM gmail_knowledge_entries;
|
|
145
|
-
END;
|
|
146
|
-
$$;
|
|
147
|
-
|
|
148
|
-
GRANT EXECUTE ON FUNCTION get_gmail_knowledge_stats() TO authenticated;
|
|
149
|
-
GRANT EXECUTE ON FUNCTION get_gmail_knowledge_stats() TO service_role;
|
package/nul
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
dir: cannot access 'distindex.js': No such file or directory
|