crewly 1.2.7 → 1.2.9
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/config/skills/agent/core/reply-chat/execute.sh +59 -0
- package/config/skills/agent/core/reply-chat/instructions.md +27 -0
- package/config/skills/agent/core/reply-chat/skill.json +20 -0
- package/config/skills/orchestrator/reply-chat/execute.sh +136 -0
- package/config/skills/orchestrator/reply-chat/instructions.md +53 -0
- package/config/skills/orchestrator/reply-chat/skill.json +20 -0
- package/dist/backend/backend/src/constants.d.ts +9 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +9 -0
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/messaging/messenger.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/messaging/messenger.routes.js +6 -3
- package/dist/backend/backend/src/controllers/messaging/messenger.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/settings/settings.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/settings/settings.controller.js +97 -2
- package/dist/backend/backend/src/controllers/settings/settings.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/team/team.controller.js +149 -1
- package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts +5 -0
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +30 -0
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.js +126 -86
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/auditor-scheduler.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/auditor-scheduler.service.js +14 -3
- package/dist/backend/backend/src/services/agent/auditor-scheduler.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts +16 -2
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js +52 -5
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js.map +1 -1
- package/dist/backend/backend/src/services/agent/gemini-runtime.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/gemini-runtime.service.js +22 -9
- package/dist/backend/backend/src/services/agent/gemini-runtime.service.js.map +1 -1
- package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/event-bus/event-bus.service.js +4 -3
- package/dist/backend/backend/src/services/event-bus/event-bus.service.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.d.ts +58 -2
- package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.js +158 -7
- package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/google-chat-initializer.d.ts +43 -0
- package/dist/backend/backend/src/services/messaging/google-chat-initializer.d.ts.map +1 -0
- package/dist/backend/backend/src/services/messaging/google-chat-initializer.js +138 -0
- package/dist/backend/backend/src/services/messaging/google-chat-initializer.js.map +1 -0
- package/dist/backend/backend/src/services/messaging/response-router.service.d.ts +12 -0
- package/dist/backend/backend/src/services/messaging/response-router.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/response-router.service.js +27 -42
- package/dist/backend/backend/src/services/messaging/response-router.service.js.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.js +12 -3
- package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.js.map +1 -1
- package/dist/backend/backend/src/services/settings/settings.service.d.ts +9 -1
- package/dist/backend/backend/src/services/settings/settings.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/settings/settings.service.js +12 -1
- package/dist/backend/backend/src/services/settings/settings.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/notify-reconciliation.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/notify-reconciliation.service.js +13 -0
- package/dist/backend/backend/src/services/slack/notify-reconciliation.service.js.map +1 -1
- package/dist/backend/backend/src/types/chat.types.d.ts +1 -1
- package/dist/backend/backend/src/types/chat.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/chat.types.js +1 -1
- package/dist/backend/backend/src/types/chat.types.js.map +1 -1
- package/dist/backend/backend/src/types/settings.types.d.ts +93 -0
- package/dist/backend/backend/src/types/settings.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/settings.types.js +131 -0
- package/dist/backend/backend/src/types/settings.types.js.map +1 -1
- package/dist/backend/backend/src/types/skill.types.js +2 -2
- package/dist/backend/backend/src/types/skill.types.js.map +1 -1
- package/dist/backend/backend/src/utils/format-error.d.ts +8 -0
- package/dist/backend/backend/src/utils/format-error.d.ts.map +1 -0
- package/dist/backend/backend/src/utils/format-error.js +10 -0
- package/dist/backend/backend/src/utils/format-error.js.map +1 -0
- package/dist/backend/backend/src/websocket/terminal.gateway.d.ts.map +1 -1
- package/dist/backend/backend/src/websocket/terminal.gateway.js +15 -10
- package/dist/backend/backend/src/websocket/terminal.gateway.js.map +1 -1
- package/dist/cli/backend/src/constants.d.ts +9 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +9 -0
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/types/chat.types.d.ts +1 -1
- package/dist/cli/backend/src/types/chat.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/chat.types.js +1 -1
- package/dist/cli/backend/src/types/chat.types.js.map +1 -1
- package/dist/cli/backend/src/types/settings.types.d.ts +93 -0
- package/dist/cli/backend/src/types/settings.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/settings.types.js +131 -0
- package/dist/cli/backend/src/types/settings.types.js.map +1 -1
- package/dist/cli/backend/src/types/skill.types.js +2 -2
- package/dist/cli/backend/src/types/skill.types.js.map +1 -1
- package/frontend/dist/assets/index-58509b6a.js +4919 -0
- package/frontend/dist/assets/{index-dee3a3a9.css → index-ddb38eb0.css} +1 -1
- package/frontend/dist/index.html +2 -2
- package/package.json +1 -1
- package/frontend/dist/assets/index-5cf8820f.js +0 -4919
package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.js
CHANGED
|
@@ -28,12 +28,18 @@ export class GoogleChatMessengerAdapter {
|
|
|
28
28
|
webhookUrl = null;
|
|
29
29
|
/** Service account key JSON string */
|
|
30
30
|
serviceAccountKey = null;
|
|
31
|
-
/**
|
|
31
|
+
/** Authentication mode: service_account (JWT) or adc (refresh token) */
|
|
32
|
+
authMode = 'service_account';
|
|
33
|
+
/** ADC credentials (parsed from application_default_credentials.json) */
|
|
34
|
+
adcCredentials = null;
|
|
35
|
+
/** Access token obtained from service account or ADC (cached) */
|
|
32
36
|
accessToken = null;
|
|
33
37
|
/** Access token expiry timestamp */
|
|
34
38
|
tokenExpiresAt = 0;
|
|
35
39
|
/** OAuth2 scopes for the current mode */
|
|
36
40
|
tokenScopes = GOOGLE_CHAT_PUBSUB_CONSTANTS.CHAT_SCOPE;
|
|
41
|
+
/** Pending token refresh promise to deduplicate concurrent requests (RL2) */
|
|
42
|
+
pendingTokenRefresh = null;
|
|
37
43
|
/** Full Pub/Sub subscription resource name (e.g. projects/PROJECT/subscriptions/SUB) */
|
|
38
44
|
subscriptionName = null;
|
|
39
45
|
/** GCP project ID (for Pub/Sub mode) */
|
|
@@ -63,6 +69,7 @@ export class GoogleChatMessengerAdapter {
|
|
|
63
69
|
const projectId = config.projectId;
|
|
64
70
|
const subscriptionName = config.subscriptionName;
|
|
65
71
|
const onIncomingMessage = config.onIncomingMessage;
|
|
72
|
+
const authMode = (config.authMode === 'adc' ? 'adc' : 'service_account');
|
|
66
73
|
// Webhook mode
|
|
67
74
|
if (typeof webhookUrl === 'string' && webhookUrl) {
|
|
68
75
|
if (!webhookUrl.startsWith('https://chat.googleapis.com/')) {
|
|
@@ -73,10 +80,35 @@ export class GoogleChatMessengerAdapter {
|
|
|
73
80
|
this.mode = 'webhook';
|
|
74
81
|
return;
|
|
75
82
|
}
|
|
76
|
-
//
|
|
83
|
+
// ADC mode — use Application Default Credentials (no SA key needed)
|
|
84
|
+
if (authMode === 'adc') {
|
|
85
|
+
const adcCreds = await this.loadAdcCredentials();
|
|
86
|
+
this.resetState();
|
|
87
|
+
this.authMode = 'adc';
|
|
88
|
+
this.adcCredentials = adcCreds;
|
|
89
|
+
// Pub/Sub mode: requires projectId + subscriptionName
|
|
90
|
+
if (typeof projectId === 'string' && projectId &&
|
|
91
|
+
typeof subscriptionName === 'string' && subscriptionName) {
|
|
92
|
+
this.projectId = projectId;
|
|
93
|
+
this.subscriptionName = `projects/${projectId}/subscriptions/${subscriptionName}`;
|
|
94
|
+
this.tokenScopes = `${GOOGLE_CHAT_PUBSUB_CONSTANTS.CHAT_SCOPE} ${GOOGLE_CHAT_PUBSUB_CONSTANTS.PUBSUB_SCOPE}`;
|
|
95
|
+
this.mode = 'pubsub';
|
|
96
|
+
if (typeof onIncomingMessage === 'function') {
|
|
97
|
+
this.onIncomingMessage = onIncomingMessage;
|
|
98
|
+
}
|
|
99
|
+
this.startPubSubPull();
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
// Service account mode with ADC auth (send-only)
|
|
103
|
+
this.mode = 'service-account';
|
|
104
|
+
this.tokenScopes = GOOGLE_CHAT_PUBSUB_CONSTANTS.CHAT_SCOPE;
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
// Service Account mode — requires a service account key
|
|
77
108
|
if (typeof serviceAccountKey === 'string' && serviceAccountKey) {
|
|
78
109
|
this.validateServiceAccountKey(serviceAccountKey);
|
|
79
110
|
this.resetState();
|
|
111
|
+
this.authMode = 'service_account';
|
|
80
112
|
this.serviceAccountKey = serviceAccountKey;
|
|
81
113
|
// Pub/Sub mode: requires projectId + subscriptionName
|
|
82
114
|
if (typeof projectId === 'string' && projectId &&
|
|
@@ -96,7 +128,7 @@ export class GoogleChatMessengerAdapter {
|
|
|
96
128
|
this.tokenScopes = GOOGLE_CHAT_PUBSUB_CONSTANTS.CHAT_SCOPE;
|
|
97
129
|
return;
|
|
98
130
|
}
|
|
99
|
-
throw new Error('Google Chat requires either a webhookUrl or
|
|
131
|
+
throw new Error('Google Chat requires either a webhookUrl, serviceAccountKey, or authMode: adc');
|
|
100
132
|
}
|
|
101
133
|
/**
|
|
102
134
|
* Send a text message to a Google Chat space.
|
|
@@ -114,7 +146,8 @@ export class GoogleChatMessengerAdapter {
|
|
|
114
146
|
await this.sendViaWebhook(text, options?.threadId);
|
|
115
147
|
return;
|
|
116
148
|
}
|
|
117
|
-
if ((this.mode === 'service-account' || this.mode === 'pubsub') &&
|
|
149
|
+
if ((this.mode === 'service-account' || this.mode === 'pubsub') &&
|
|
150
|
+
(this.serviceAccountKey || this.adcCredentials)) {
|
|
118
151
|
await this.sendViaApi(channel, text, options?.threadId);
|
|
119
152
|
return;
|
|
120
153
|
}
|
|
@@ -131,6 +164,7 @@ export class GoogleChatMessengerAdapter {
|
|
|
131
164
|
platform: this.platform,
|
|
132
165
|
details: {
|
|
133
166
|
mode: this.mode,
|
|
167
|
+
authMode: this.authMode,
|
|
134
168
|
...(this.mode === 'pubsub' ? {
|
|
135
169
|
subscriptionName: this.subscriptionName,
|
|
136
170
|
projectId: this.projectId,
|
|
@@ -332,8 +366,8 @@ export class GoogleChatMessengerAdapter {
|
|
|
332
366
|
* @param threadName - Optional full thread name (e.g., "spaces/SPACE/threads/THREAD")
|
|
333
367
|
*/
|
|
334
368
|
async sendViaApi(space, text, threadName) {
|
|
335
|
-
if (!this.serviceAccountKey) {
|
|
336
|
-
throw new Error('
|
|
369
|
+
if (!this.serviceAccountKey && !this.adcCredentials) {
|
|
370
|
+
throw new Error('No credentials configured (service account key or ADC)');
|
|
337
371
|
}
|
|
338
372
|
if (!space || !space.startsWith('spaces/')) {
|
|
339
373
|
throw new Error('Invalid Google Chat space name. Must start with "spaces/"');
|
|
@@ -369,7 +403,7 @@ export class GoogleChatMessengerAdapter {
|
|
|
369
403
|
/**
|
|
370
404
|
* Get a valid access token, refreshing if needed.
|
|
371
405
|
*
|
|
372
|
-
* Uses
|
|
406
|
+
* Uses JWT-based OAuth2 for service accounts, or refresh_token flow for ADC.
|
|
373
407
|
* The scope includes Pub/Sub when in pubsub mode.
|
|
374
408
|
*
|
|
375
409
|
* @returns Valid access token string
|
|
@@ -379,6 +413,39 @@ export class GoogleChatMessengerAdapter {
|
|
|
379
413
|
if (this.accessToken && Date.now() < this.tokenExpiresAt - 60_000) {
|
|
380
414
|
return this.accessToken;
|
|
381
415
|
}
|
|
416
|
+
// Deduplicate concurrent refresh requests (RL2)
|
|
417
|
+
if (this.pendingTokenRefresh) {
|
|
418
|
+
return this.pendingTokenRefresh;
|
|
419
|
+
}
|
|
420
|
+
this.pendingTokenRefresh = this.refreshAccessToken();
|
|
421
|
+
try {
|
|
422
|
+
return await this.pendingTokenRefresh;
|
|
423
|
+
}
|
|
424
|
+
finally {
|
|
425
|
+
this.pendingTokenRefresh = null;
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
/**
|
|
429
|
+
* Perform the actual token refresh.
|
|
430
|
+
*
|
|
431
|
+
* Dispatches to the appropriate flow based on authMode:
|
|
432
|
+
* - `service_account`: JWT-based OAuth2 flow with SA private key
|
|
433
|
+
* - `adc`: Refresh token flow using ADC credentials
|
|
434
|
+
*
|
|
435
|
+
* @returns Fresh access token string
|
|
436
|
+
*/
|
|
437
|
+
async refreshAccessToken() {
|
|
438
|
+
if (this.authMode === 'adc') {
|
|
439
|
+
return this.refreshAccessTokenViaAdc();
|
|
440
|
+
}
|
|
441
|
+
return this.refreshAccessTokenViaJwt();
|
|
442
|
+
}
|
|
443
|
+
/**
|
|
444
|
+
* Refresh access token via JWT-based OAuth2 flow (service account).
|
|
445
|
+
*
|
|
446
|
+
* @returns Fresh access token string
|
|
447
|
+
*/
|
|
448
|
+
async refreshAccessTokenViaJwt() {
|
|
382
449
|
if (!this.serviceAccountKey) {
|
|
383
450
|
throw new Error('Service account key not configured');
|
|
384
451
|
}
|
|
@@ -413,6 +480,41 @@ export class GoogleChatMessengerAdapter {
|
|
|
413
480
|
this.tokenExpiresAt = Date.now() + data.expires_in * 1000;
|
|
414
481
|
return this.accessToken;
|
|
415
482
|
}
|
|
483
|
+
/**
|
|
484
|
+
* Refresh access token via ADC (Application Default Credentials).
|
|
485
|
+
*
|
|
486
|
+
* Uses the refresh_token from the ADC JSON file to obtain a new access token
|
|
487
|
+
* from Google's OAuth2 token endpoint. This supports credentials created by
|
|
488
|
+
* `gcloud auth application-default login`.
|
|
489
|
+
*
|
|
490
|
+
* @returns Fresh access token string
|
|
491
|
+
*/
|
|
492
|
+
async refreshAccessTokenViaAdc() {
|
|
493
|
+
if (!this.adcCredentials) {
|
|
494
|
+
throw new Error('ADC credentials not loaded');
|
|
495
|
+
}
|
|
496
|
+
const { client_id, client_secret, refresh_token } = this.adcCredentials;
|
|
497
|
+
const body = new URLSearchParams({
|
|
498
|
+
grant_type: 'refresh_token',
|
|
499
|
+
client_id,
|
|
500
|
+
client_secret,
|
|
501
|
+
refresh_token,
|
|
502
|
+
});
|
|
503
|
+
const resp = await fetch('https://oauth2.googleapis.com/token', {
|
|
504
|
+
method: 'POST',
|
|
505
|
+
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
|
506
|
+
body: body.toString(),
|
|
507
|
+
signal: AbortSignal.timeout(GOOGLE_CHAT_PUBSUB_CONSTANTS.FETCH_TIMEOUT_MS),
|
|
508
|
+
});
|
|
509
|
+
if (!resp.ok) {
|
|
510
|
+
const details = await resp.text();
|
|
511
|
+
throw new Error(`ADC token refresh failed (${resp.status}): ${details}`);
|
|
512
|
+
}
|
|
513
|
+
const data = await resp.json();
|
|
514
|
+
this.accessToken = data.access_token;
|
|
515
|
+
this.tokenExpiresAt = Date.now() + data.expires_in * 1000;
|
|
516
|
+
return this.accessToken;
|
|
517
|
+
}
|
|
416
518
|
// ===========================================================================
|
|
417
519
|
// Helpers
|
|
418
520
|
// ===========================================================================
|
|
@@ -436,6 +538,52 @@ export class GoogleChatMessengerAdapter {
|
|
|
436
538
|
throw err;
|
|
437
539
|
}
|
|
438
540
|
}
|
|
541
|
+
/**
|
|
542
|
+
* Load ADC (Application Default Credentials) from the filesystem.
|
|
543
|
+
*
|
|
544
|
+
* Checks (in order):
|
|
545
|
+
* 1. `GOOGLE_APPLICATION_CREDENTIALS` environment variable (custom path)
|
|
546
|
+
* 2. Default gcloud ADC path: `~/.config/gcloud/application_default_credentials.json`
|
|
547
|
+
*
|
|
548
|
+
* @returns Parsed ADC credentials
|
|
549
|
+
* @throws Error if the ADC file is not found or invalid
|
|
550
|
+
*/
|
|
551
|
+
async loadAdcCredentials() {
|
|
552
|
+
const { readFile } = await import('node:fs/promises');
|
|
553
|
+
const { join } = await import('node:path');
|
|
554
|
+
const { homedir } = await import('node:os');
|
|
555
|
+
const envPath = process.env.GOOGLE_APPLICATION_CREDENTIALS;
|
|
556
|
+
const defaultPath = join(homedir(), '.config', 'gcloud', 'application_default_credentials.json');
|
|
557
|
+
const credPath = envPath || defaultPath;
|
|
558
|
+
let raw;
|
|
559
|
+
try {
|
|
560
|
+
raw = await readFile(credPath, 'utf-8');
|
|
561
|
+
}
|
|
562
|
+
catch {
|
|
563
|
+
throw new Error(`ADC credentials file not found at ${credPath}. ` +
|
|
564
|
+
'Run: gcloud auth application-default login --scopes=' +
|
|
565
|
+
'https://www.googleapis.com/auth/chat.bot,' +
|
|
566
|
+
'https://www.googleapis.com/auth/pubsub,' +
|
|
567
|
+
'https://www.googleapis.com/auth/cloud-platform');
|
|
568
|
+
}
|
|
569
|
+
let parsed;
|
|
570
|
+
try {
|
|
571
|
+
parsed = JSON.parse(raw);
|
|
572
|
+
}
|
|
573
|
+
catch {
|
|
574
|
+
throw new Error('ADC credentials file is not valid JSON');
|
|
575
|
+
}
|
|
576
|
+
if (!parsed.client_id || !parsed.client_secret || !parsed.refresh_token) {
|
|
577
|
+
throw new Error('ADC credentials file must contain client_id, client_secret, and refresh_token. ' +
|
|
578
|
+
'Ensure you ran gcloud auth application-default login with the correct scopes.');
|
|
579
|
+
}
|
|
580
|
+
return {
|
|
581
|
+
client_id: parsed.client_id,
|
|
582
|
+
client_secret: parsed.client_secret,
|
|
583
|
+
refresh_token: parsed.refresh_token,
|
|
584
|
+
type: parsed.type || 'authorized_user',
|
|
585
|
+
};
|
|
586
|
+
}
|
|
439
587
|
/**
|
|
440
588
|
* Reset all internal state to defaults.
|
|
441
589
|
*/
|
|
@@ -443,9 +591,12 @@ export class GoogleChatMessengerAdapter {
|
|
|
443
591
|
this.stopPubSubPull();
|
|
444
592
|
this.webhookUrl = null;
|
|
445
593
|
this.serviceAccountKey = null;
|
|
594
|
+
this.authMode = 'service_account';
|
|
595
|
+
this.adcCredentials = null;
|
|
446
596
|
this.accessToken = null;
|
|
447
597
|
this.tokenExpiresAt = 0;
|
|
448
598
|
this.tokenScopes = GOOGLE_CHAT_PUBSUB_CONSTANTS.CHAT_SCOPE;
|
|
599
|
+
this.pendingTokenRefresh = null;
|
|
449
600
|
this.subscriptionName = null;
|
|
450
601
|
this.projectId = null;
|
|
451
602
|
this.onIncomingMessage = null;
|
package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-chat-messenger.adapter.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/messaging/adapters/google-chat-messenger.adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"google-chat-messenger.adapter.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/messaging/adapters/google-chat-messenger.adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAsDrE;;;;;GAKG;AACH,MAAM,OAAO,0BAA0B;IAC5B,QAAQ,GAAsB,aAAa,CAAC;IAErD,8BAA8B;IACtB,IAAI,GAAmB,MAAM,CAAC;IAEtC,sDAAsD;IAC9C,UAAU,GAAkB,IAAI,CAAC;IAEzC,sCAAsC;IAC9B,iBAAiB,GAAkB,IAAI,CAAC;IAEhD,wEAAwE;IAChE,QAAQ,GAAuB,iBAAiB,CAAC;IAEzD,yEAAyE;IACjE,cAAc,GAA0B,IAAI,CAAC;IAErD,iEAAiE;IACzD,WAAW,GAAkB,IAAI,CAAC;IAE1C,oCAAoC;IAC5B,cAAc,GAAG,CAAC,CAAC;IAE3B,yCAAyC;IACjC,WAAW,GAAW,4BAA4B,CAAC,UAAU,CAAC;IAEtE,6EAA6E;IACrE,mBAAmB,GAA2B,IAAI,CAAC;IAE3D,wFAAwF;IAChF,gBAAgB,GAAkB,IAAI,CAAC;IAE/C,wCAAwC;IAChC,SAAS,GAAkB,IAAI,CAAC;IAExC,kCAAkC;IAC1B,iBAAiB,GAA0C,IAAI,CAAC;IAExE,qCAAqC;IAC7B,iBAAiB,GAAsC,IAAI,CAAC;IAEpE,qCAAqC;IAC7B,mBAAmB,GAAG,CAAC,CAAC;IAEhC,sDAAsD;IAC9C,UAAU,GAAG,KAAK,CAAC;IAE3B;;;;;;;;;;OAUG;IACH,KAAK,CAAC,UAAU,CAAC,MAA+B;QAC9C,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACrC,MAAM,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;QACnD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACnC,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACjD,MAAM,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;QACnD,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAuB,CAAC;QAE/F,eAAe;QACf,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,EAAE,CAAC;YACjD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,8BAA8B,CAAC,EAAE,CAAC;gBAC3D,MAAM,IAAI,KAAK,CAAC,+EAA+E,CAAC,CAAC;YACnG,CAAC;YACD,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC7B,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;YACtB,OAAO;QACT,CAAC;QAED,oEAAoE;QACpE,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACjD,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;YAE/B,sDAAsD;YACtD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS;gBAC1C,OAAO,gBAAgB,KAAK,QAAQ,IAAI,gBAAgB,EAAE,CAAC;gBAC7D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;gBAC3B,IAAI,CAAC,gBAAgB,GAAG,YAAY,SAAS,kBAAkB,gBAAgB,EAAE,CAAC;gBAClF,IAAI,CAAC,WAAW,GAAG,GAAG,4BAA4B,CAAC,UAAU,IAAI,4BAA4B,CAAC,YAAY,EAAE,CAAC;gBAC7G,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;gBAErB,IAAI,OAAO,iBAAiB,KAAK,UAAU,EAAE,CAAC;oBAC5C,IAAI,CAAC,iBAAiB,GAAG,iBAA+C,CAAC;gBAC3E,CAAC;gBAED,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,OAAO;YACT,CAAC;YAED,iDAAiD;YACjD,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;YAC9B,IAAI,CAAC,WAAW,GAAG,4BAA4B,CAAC,UAAU,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,wDAAwD;QACxD,IAAI,OAAO,iBAAiB,KAAK,QAAQ,IAAI,iBAAiB,EAAE,CAAC;YAC/D,IAAI,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,CAAC;YAElD,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC;YAClC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;YAE3C,sDAAsD;YACtD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS;gBAC1C,OAAO,gBAAgB,KAAK,QAAQ,IAAI,gBAAgB,EAAE,CAAC;gBAC7D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;gBAC3B,IAAI,CAAC,gBAAgB,GAAG,YAAY,SAAS,kBAAkB,gBAAgB,EAAE,CAAC;gBAClF,IAAI,CAAC,WAAW,GAAG,GAAG,4BAA4B,CAAC,UAAU,IAAI,4BAA4B,CAAC,YAAY,EAAE,CAAC;gBAC7G,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;gBAErB,IAAI,OAAO,iBAAiB,KAAK,UAAU,EAAE,CAAC;oBAC5C,IAAI,CAAC,iBAAiB,GAAG,iBAA+C,CAAC;gBAC3E,CAAC;gBAED,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,OAAO;YACT,CAAC;YAED,mCAAmC;YACnC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;YAC9B,IAAI,CAAC,WAAW,GAAG,4BAA4B,CAAC,UAAU,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,+EAA+E,CAAC,CAAC;IACnG,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,IAAY,EAAE,OAA+B;QAC9E,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC/C,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAiB,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;YAC3D,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACH,SAAS;QACP,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,IAAI,KAAK,MAAM;YAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE;gBACP,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC;oBAC3B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;oBACvC,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU;oBAC/D,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;iBAC9C,CAAC,CAAC,CAAC,EAAE,CAAC;aACR;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,8EAA8E;IAC9E,oBAAoB;IACpB,8EAA8E;IAE9E;;OAEG;IACK,eAAe;QACrB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAExB,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;YAC9C,IAAI,IAAI,CAAC,UAAU;gBAAE,OAAO;YAC5B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC1B,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;YAC/B,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC3B,IAAI,IAAI,CAAC,mBAAmB,IAAI,4BAA4B,CAAC,wBAAwB,EAAE,CAAC;oBACtF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACzB,CAAC;YACH,CAAC;QACH,CAAC,EAAE,4BAA4B,CAAC,gBAAgB,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACK,cAAc;QACpB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACtC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,GAAG,4BAA4B,CAAC,eAAe,IAAI,IAAI,CAAC,gBAAgB,OAAO,CAAC;QAEhG,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE;YAChC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,KAAK,EAAE;gBAChC,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,4BAA4B,CAAC,qBAAqB,EAAE,CAAC;YACzF,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,4BAA4B,CAAC,gBAAgB,CAAC;SAC3E,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAC,MAAM,MAAM,OAAO,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAoD,CAAC;QAEjF,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjE,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAE5B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI;gBAAE,SAAS;YAErC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC/E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAqB,CAAC;gBACtD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;YAAC,MAAM,CAAC;gBACP,qDAAqD;YACvD,CAAC;QACH,CAAC;QAED,0EAA0E;QAC1E,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,gBAAgB,CAAC,KAAuB;QAC9C,gFAAgF;QAChF,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;YACrD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC;QAC1C,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QACpD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QAEzF,MAAM,eAAe,GAAoB;YACvC,QAAQ,EAAE,aAAa;YACvB,cAAc,EAAE,SAAS;YACzB,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE,UAAU;YAClB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;YACxB,2EAA2E;YAC3E,4DAA4D;YAC5D,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACnF,CAAC;QAEF,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,mBAAmB,CAAC,MAAgB;QAChD,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAAE,OAAO;QAEnC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,GAAG,4BAA4B,CAAC,eAAe,IAAI,IAAI,CAAC,gBAAgB,cAAc,CAAC;QAEtG,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE;YAC/B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,KAAK,EAAE;gBAChC,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;YAChC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,4BAA4B,CAAC,gBAAgB,CAAC;SAC3E,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,CAAC,MAAM,MAAM,OAAO,EAAE,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,eAAe;IACf,8EAA8E;IAE9E;;;;;OAKG;IACK,KAAK,CAAC,cAAc,CAAC,IAAY,EAAE,SAAkB;QAC3D,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,IAAI,GAA4B,EAAE,IAAI,EAAE,CAAC;QAC/C,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,GAAG,EAAE,SAAS,EAAE,CAAC;QAC9B,CAAC;QAED,8EAA8E;QAC9E,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;QAC1B,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAChD,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,yDAAyD,CAAC;QACpF,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC5B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,iCAAiC,EAAE;YAC9D,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,4BAA4B,CAAC,gBAAgB,CAAC;SAC3E,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,CAAC,MAAM,MAAM,OAAO,EAAE,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACK,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,IAAY,EAAE,UAAmB;QACvE,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,CAAC;QAED,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC/E,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE1C,MAAM,IAAI,GAA4B,EAAE,IAAI,EAAE,CAAC;QAC/C,IAAI,UAAU,EAAE,CAAC;YACf,4DAA4D;YAC5D,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QACrC,CAAC;QAED,6DAA6D;QAC7D,IAAI,GAAG,GAAG,GAAG,4BAA4B,CAAC,aAAa,IAAI,KAAK,WAAW,CAAC;QAC5E,IAAI,UAAU,EAAE,CAAC;YACf,GAAG,IAAI,0DAA0D,CAAC;QACpE,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC5B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,KAAK,EAAE;gBAChC,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,4BAA4B,CAAC,gBAAgB,CAAC;SAC3E,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAC,MAAM,MAAM,OAAO,EAAE,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,OAAO;IACP,8EAA8E;IAE9E;;;;;;;OAOG;IACH,KAAK,CAAC,cAAc;QAClB,uDAAuD;QACvD,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,GAAG,MAAM,EAAE,CAAC;YAClE,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;QAED,gDAAgD;QAChD,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,mBAAmB,CAAC;QAClC,CAAC;QAED,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACrD,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC;QACxC,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAClC,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,kBAAkB;QAC9B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACzC,CAAC;QACD,OAAO,IAAI,CAAC,wBAAwB,EAAE,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,wBAAwB;QACpC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAE1C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC/F,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;YACzC,GAAG,EAAE,GAAG,CAAC,YAAY;YACrB,KAAK,EAAE,IAAI,CAAC,WAAW;YACvB,GAAG,EAAE,qCAAqC;YAC1C,GAAG,EAAE,GAAG;YACR,GAAG,EAAE,GAAG,GAAG,IAAI;SAChB,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAE1B,6CAA6C;QAC7C,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,OAAO,EAAE,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAE5D,MAAM,GAAG,GAAG,GAAG,MAAM,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;QAEhD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,qCAAqC,EAAE;YAC9D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;YAChE,IAAI,EAAE,oEAAoE,GAAG,EAAE;YAC/E,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,4BAA4B,CAAC,gBAAgB,CAAC;SAC3E,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,CAAC,MAAM,MAAM,OAAO,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAkD,CAAC;QAC/E,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;QACrC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAE1D,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,wBAAwB;QACpC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC;QAExE,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC;YAC/B,UAAU,EAAE,eAAe;YAC3B,SAAS;YACT,aAAa;YACb,aAAa;SACd,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,qCAAqC,EAAE;YAC9D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;YAChE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;YACrB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,4BAA4B,CAAC,gBAAgB,CAAC;SAC3E,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,CAAC,MAAM,MAAM,OAAO,EAAE,CAAC,CAAC;QAC3E,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAkD,CAAC;QAC/E,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;QACrC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAE1D,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,8EAA8E;IAC9E,UAAU;IACV,8EAA8E;IAE9E;;;;;OAKG;IACK,yBAAyB,CAAC,GAAW;QAC3C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBAChD,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;YACnF,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;gBAC/B,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YAC5D,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,kBAAkB;QACtB,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACtD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QAE5C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC;QAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,sCAAsC,CAAC,CAAC;QACjG,MAAM,QAAQ,GAAG,OAAO,IAAI,WAAW,CAAC;QAExC,IAAI,GAAW,CAAC;QAChB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CACb,qCAAqC,QAAQ,IAAI;gBACjD,sDAAsD;gBACtD,2CAA2C;gBAC3C,yCAAyC;gBACzC,gDAAgD,CACjD,CAAC;QACJ,CAAC;QAED,IAAI,MAA+B,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YACxE,MAAM,IAAI,KAAK,CACb,iFAAiF;gBACjF,+EAA+E,CAChF,CAAC;QACJ,CAAC;QAED,OAAO;YACL,SAAS,EAAE,MAAM,CAAC,SAAmB;YACrC,aAAa,EAAE,MAAM,CAAC,aAAuB;YAC7C,aAAa,EAAE,MAAM,CAAC,aAAuB;YAC7C,IAAI,EAAG,MAAM,CAAC,IAAe,IAAI,iBAAiB;SACnD,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,UAAU;QAChB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC;QAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,4BAA4B,CAAC,UAAU,CAAC;QAC3D,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;IACrB,CAAC;CACF"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Google Chat Initializer
|
|
3
|
+
*
|
|
4
|
+
* Handles automatic Google Chat adapter reconnection on backend restart.
|
|
5
|
+
* Loads saved credentials from `~/.crewly/google-chat-credentials.json`
|
|
6
|
+
* and reinitializes the adapter (including Pub/Sub pull loop).
|
|
7
|
+
*
|
|
8
|
+
* Follows the same pattern as `slack-initializer.ts` and
|
|
9
|
+
* `whatsapp-initializer.ts`.
|
|
10
|
+
*
|
|
11
|
+
* @module services/messaging/google-chat-initializer
|
|
12
|
+
*/
|
|
13
|
+
import type { MessageQueueService } from './message-queue.service.js';
|
|
14
|
+
/**
|
|
15
|
+
* Result of initialization attempt
|
|
16
|
+
*/
|
|
17
|
+
export interface GoogleChatInitResult {
|
|
18
|
+
/** Whether initialization was attempted */
|
|
19
|
+
attempted: boolean;
|
|
20
|
+
/** Whether initialization succeeded */
|
|
21
|
+
success: boolean;
|
|
22
|
+
/** Error message if failed */
|
|
23
|
+
error?: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Options for Google Chat initialization
|
|
27
|
+
*/
|
|
28
|
+
export interface GoogleChatInitOptions {
|
|
29
|
+
/** Optional MessageQueueService for enqueuing incoming Pub/Sub messages */
|
|
30
|
+
messageQueueService?: MessageQueueService;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Initialize Google Chat integration from saved credentials.
|
|
34
|
+
*
|
|
35
|
+
* Designed to be called during backend startup. Checks for a saved
|
|
36
|
+
* credentials file and reinitializes the adapter if found. For Pub/Sub
|
|
37
|
+
* mode, also restarts the pull loop with the incoming message callback.
|
|
38
|
+
*
|
|
39
|
+
* @param options - Optional initialization options
|
|
40
|
+
* @returns Result object indicating success or failure
|
|
41
|
+
*/
|
|
42
|
+
export declare function initializeGoogleChatIfConfigured(options?: GoogleChatInitOptions): Promise<GoogleChatInitResult>;
|
|
43
|
+
//# sourceMappingURL=google-chat-initializer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google-chat-initializer.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/messaging/google-chat-initializer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAUH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAKtE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,2CAA2C;IAC3C,SAAS,EAAE,OAAO,CAAC;IACnB,uCAAuC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,2EAA2E;IAC3E,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAyED;;;;;;;;;GASG;AACH,wBAAsB,gCAAgC,CACpD,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,oBAAoB,CAAC,CAkD/B"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Google Chat Initializer
|
|
3
|
+
*
|
|
4
|
+
* Handles automatic Google Chat adapter reconnection on backend restart.
|
|
5
|
+
* Loads saved credentials from `~/.crewly/google-chat-credentials.json`
|
|
6
|
+
* and reinitializes the adapter (including Pub/Sub pull loop).
|
|
7
|
+
*
|
|
8
|
+
* Follows the same pattern as `slack-initializer.ts` and
|
|
9
|
+
* `whatsapp-initializer.ts`.
|
|
10
|
+
*
|
|
11
|
+
* @module services/messaging/google-chat-initializer
|
|
12
|
+
*/
|
|
13
|
+
import { promises as fs } from 'fs';
|
|
14
|
+
import path from 'path';
|
|
15
|
+
import os from 'os';
|
|
16
|
+
import { CREWLY_CONSTANTS, MESSAGE_SOURCES } from '../../constants.js';
|
|
17
|
+
import { MessengerRegistryService } from './messenger-registry.service.js';
|
|
18
|
+
import { GoogleChatMessengerAdapter } from './adapters/google-chat-messenger.adapter.js';
|
|
19
|
+
import { LoggerService } from '../core/logger.service.js';
|
|
20
|
+
import { formatError } from '../../utils/format-error.js';
|
|
21
|
+
const logger = LoggerService.getInstance().createComponentLogger('GoogleChatInitializer');
|
|
22
|
+
/**
|
|
23
|
+
* Get the path to the Google Chat credentials file.
|
|
24
|
+
*
|
|
25
|
+
* @returns Absolute path to the credentials JSON file
|
|
26
|
+
*/
|
|
27
|
+
function getCredentialPath() {
|
|
28
|
+
return path.join(os.homedir(), CREWLY_CONSTANTS.PATHS.CREWLY_HOME, 'google-chat-credentials.json');
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Load saved Google Chat credentials from disk.
|
|
32
|
+
*
|
|
33
|
+
* @returns Parsed credentials object or null if not found
|
|
34
|
+
*/
|
|
35
|
+
async function loadSavedCredentials() {
|
|
36
|
+
const credPath = getCredentialPath();
|
|
37
|
+
try {
|
|
38
|
+
const raw = await fs.readFile(credPath, 'utf-8');
|
|
39
|
+
const parsed = JSON.parse(raw);
|
|
40
|
+
if (typeof parsed !== 'object' || parsed === null) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
return parsed;
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Create the incoming message callback for Google Chat Pub/Sub mode.
|
|
51
|
+
*
|
|
52
|
+
* Replicates the same callback from `messenger.routes.ts` so that
|
|
53
|
+
* auto-reconnected Pub/Sub subscriptions can route messages to the
|
|
54
|
+
* orchestrator via the message queue.
|
|
55
|
+
*
|
|
56
|
+
* @param queueService - The message queue service to enqueue into
|
|
57
|
+
* @param adapter - The Google Chat adapter for sending replies
|
|
58
|
+
* @returns Callback function for incoming messages
|
|
59
|
+
*/
|
|
60
|
+
function createIncomingCallback(queueService, adapter) {
|
|
61
|
+
return (msg) => {
|
|
62
|
+
const replyPromise = new Promise((resolve) => {
|
|
63
|
+
const sourceMetadata = {
|
|
64
|
+
channelId: msg.channelId,
|
|
65
|
+
userId: msg.userId,
|
|
66
|
+
threadId: msg.threadId,
|
|
67
|
+
googleChatResolve: resolve,
|
|
68
|
+
};
|
|
69
|
+
queueService.enqueue({
|
|
70
|
+
content: msg.text,
|
|
71
|
+
conversationId: msg.conversationId,
|
|
72
|
+
source: MESSAGE_SOURCES.GOOGLE_CHAT,
|
|
73
|
+
sourceMetadata,
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
replyPromise.then(async (response) => {
|
|
77
|
+
try {
|
|
78
|
+
await adapter.sendMessage(msg.channelId, response, { threadId: msg.threadId });
|
|
79
|
+
}
|
|
80
|
+
catch (err) {
|
|
81
|
+
const replyLogger = LoggerService.getInstance().createComponentLogger('GoogleChatReply');
|
|
82
|
+
replyLogger.error('Failed to send reply', { channelId: msg.channelId, error: formatError(err) });
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Initialize Google Chat integration from saved credentials.
|
|
89
|
+
*
|
|
90
|
+
* Designed to be called during backend startup. Checks for a saved
|
|
91
|
+
* credentials file and reinitializes the adapter if found. For Pub/Sub
|
|
92
|
+
* mode, also restarts the pull loop with the incoming message callback.
|
|
93
|
+
*
|
|
94
|
+
* @param options - Optional initialization options
|
|
95
|
+
* @returns Result object indicating success or failure
|
|
96
|
+
*/
|
|
97
|
+
export async function initializeGoogleChatIfConfigured(options) {
|
|
98
|
+
const savedConfig = await loadSavedCredentials();
|
|
99
|
+
if (!savedConfig) {
|
|
100
|
+
logger.info('No saved credentials found — skipping initialization');
|
|
101
|
+
return { attempted: false, success: false };
|
|
102
|
+
}
|
|
103
|
+
try {
|
|
104
|
+
logger.info('Found saved Google Chat credentials, attempting auto-reconnect', {
|
|
105
|
+
hasWebhookUrl: Boolean(savedConfig.webhookUrl),
|
|
106
|
+
hasServiceAccountKey: Boolean(savedConfig.serviceAccountKey),
|
|
107
|
+
hasAuthMode: Boolean(savedConfig.authMode),
|
|
108
|
+
hasProjectId: Boolean(savedConfig.projectId),
|
|
109
|
+
hasSubscriptionName: Boolean(savedConfig.subscriptionName),
|
|
110
|
+
});
|
|
111
|
+
const registry = MessengerRegistryService.getInstance();
|
|
112
|
+
let adapter = registry.get('google-chat');
|
|
113
|
+
if (!adapter) {
|
|
114
|
+
adapter = new GoogleChatMessengerAdapter();
|
|
115
|
+
registry.register(adapter);
|
|
116
|
+
}
|
|
117
|
+
// Build config from saved credentials
|
|
118
|
+
const config = { ...savedConfig };
|
|
119
|
+
// For Pub/Sub mode, inject the incoming message callback
|
|
120
|
+
if (config.subscriptionName && config.projectId && options?.messageQueueService) {
|
|
121
|
+
config.onIncomingMessage = createIncomingCallback(options.messageQueueService, adapter);
|
|
122
|
+
}
|
|
123
|
+
await adapter.initialize(config);
|
|
124
|
+
const status = adapter.getStatus();
|
|
125
|
+
logger.info('Google Chat auto-reconnect successful', {
|
|
126
|
+
mode: status.details?.mode,
|
|
127
|
+
authMode: status.details?.authMode,
|
|
128
|
+
pullActive: status.details?.pullActive,
|
|
129
|
+
});
|
|
130
|
+
return { attempted: true, success: true };
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
134
|
+
logger.error('Google Chat auto-reconnect failed', { error: errorMessage });
|
|
135
|
+
return { attempted: true, success: false, error: errorMessage };
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=google-chat-initializer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google-chat-initializer.js","sourceRoot":"","sources":["../../../../../../backend/src/services/messaging/google-chat-initializer.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,6 +53,18 @@ export declare class ResponseRouterService {
|
|
|
53
53
|
* @param response - The response content
|
|
54
54
|
*/
|
|
55
55
|
private routeToGoogleChat;
|
|
56
|
+
/**
|
|
57
|
+
* Resolve a source-specific callback stored in the message's sourceMetadata.
|
|
58
|
+
*
|
|
59
|
+
* Shared helper used by routeToSlack, routeToGoogleChat, and routeError
|
|
60
|
+
* to avoid duplicating the resolve-callback pattern.
|
|
61
|
+
*
|
|
62
|
+
* @param message - The QueuedMessage containing the callback in sourceMetadata
|
|
63
|
+
* @param response - The response string to pass to the callback
|
|
64
|
+
* @param callbackKey - The key in sourceMetadata that holds the resolve function
|
|
65
|
+
* @param label - Human-readable label for log messages (e.g. "Slack", "Google Chat")
|
|
66
|
+
*/
|
|
67
|
+
private resolveCallback;
|
|
56
68
|
/**
|
|
57
69
|
* Route an error to the appropriate destination.
|
|
58
70
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-router.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/messaging/response-router.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"response-router.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/messaging/response-router.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAEpE;;;;;;;;;GASG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAkB;;IAMhC;;;;;OAKG;IACH,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAwB7D;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc;IAQtB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IAIpB;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,eAAe;IAwBvB;;;;;OAKG;IACH,UAAU,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CA2BxD"}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* @module services/messaging/response-router
|
|
9
9
|
*/
|
|
10
10
|
import { LoggerService } from '../core/logger.service.js';
|
|
11
|
+
import { formatError } from '../../utils/format-error.js';
|
|
11
12
|
/**
|
|
12
13
|
* ResponseRouterService routes orchestrator responses to the appropriate
|
|
13
14
|
* destination based on the message source.
|
|
@@ -75,29 +76,7 @@ export class ResponseRouterService {
|
|
|
75
76
|
* @param response - The response content
|
|
76
77
|
*/
|
|
77
78
|
routeToSlack(message, response) {
|
|
78
|
-
|
|
79
|
-
if (typeof slackResolve === 'function') {
|
|
80
|
-
try {
|
|
81
|
-
slackResolve(response);
|
|
82
|
-
this.logger.debug('Slack response resolved', {
|
|
83
|
-
messageId: message.id,
|
|
84
|
-
conversationId: message.conversationId,
|
|
85
|
-
responseLength: response.length,
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
catch (error) {
|
|
89
|
-
this.logger.error('Failed to resolve Slack response', {
|
|
90
|
-
messageId: message.id,
|
|
91
|
-
error: error instanceof Error ? error.message : String(error),
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
this.logger.warn('Slack message has no slackResolve callback', {
|
|
97
|
-
messageId: message.id,
|
|
98
|
-
conversationId: message.conversationId,
|
|
99
|
-
});
|
|
100
|
-
}
|
|
79
|
+
this.resolveCallback(message, response, 'slackResolve', 'Slack');
|
|
101
80
|
}
|
|
102
81
|
/**
|
|
103
82
|
* Route response to Google Chat by calling the googleChatResolve callback.
|
|
@@ -107,25 +86,39 @@ export class ResponseRouterService {
|
|
|
107
86
|
* @param response - The response content
|
|
108
87
|
*/
|
|
109
88
|
routeToGoogleChat(message, response) {
|
|
110
|
-
|
|
111
|
-
|
|
89
|
+
this.resolveCallback(message, response, 'googleChatResolve', 'Google Chat');
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Resolve a source-specific callback stored in the message's sourceMetadata.
|
|
93
|
+
*
|
|
94
|
+
* Shared helper used by routeToSlack, routeToGoogleChat, and routeError
|
|
95
|
+
* to avoid duplicating the resolve-callback pattern.
|
|
96
|
+
*
|
|
97
|
+
* @param message - The QueuedMessage containing the callback in sourceMetadata
|
|
98
|
+
* @param response - The response string to pass to the callback
|
|
99
|
+
* @param callbackKey - The key in sourceMetadata that holds the resolve function
|
|
100
|
+
* @param label - Human-readable label for log messages (e.g. "Slack", "Google Chat")
|
|
101
|
+
*/
|
|
102
|
+
resolveCallback(message, response, callbackKey, label) {
|
|
103
|
+
const resolve = message.sourceMetadata?.[callbackKey];
|
|
104
|
+
if (typeof resolve === 'function') {
|
|
112
105
|
try {
|
|
113
|
-
|
|
114
|
-
this.logger.debug(
|
|
106
|
+
resolve(response);
|
|
107
|
+
this.logger.debug(`${label} response resolved`, {
|
|
115
108
|
messageId: message.id,
|
|
116
109
|
conversationId: message.conversationId,
|
|
117
110
|
responseLength: response.length,
|
|
118
111
|
});
|
|
119
112
|
}
|
|
120
113
|
catch (error) {
|
|
121
|
-
this.logger.error(
|
|
114
|
+
this.logger.error(`Failed to resolve ${label} response`, {
|
|
122
115
|
messageId: message.id,
|
|
123
|
-
error:
|
|
116
|
+
error: formatError(error),
|
|
124
117
|
});
|
|
125
118
|
}
|
|
126
119
|
}
|
|
127
120
|
else {
|
|
128
|
-
this.logger.warn(
|
|
121
|
+
this.logger.warn(`${label} message has no ${callbackKey} callback`, {
|
|
129
122
|
messageId: message.id,
|
|
130
123
|
conversationId: message.conversationId,
|
|
131
124
|
});
|
|
@@ -145,20 +138,12 @@ export class ResponseRouterService {
|
|
|
145
138
|
error,
|
|
146
139
|
});
|
|
147
140
|
break;
|
|
148
|
-
case 'slack':
|
|
149
|
-
|
|
150
|
-
if (typeof slackResolve === 'function') {
|
|
151
|
-
slackResolve(`Error: ${error}`);
|
|
152
|
-
}
|
|
141
|
+
case 'slack':
|
|
142
|
+
this.resolveCallback(message, `Error: ${error}`, 'slackResolve', 'Slack');
|
|
153
143
|
break;
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
const gchatResolve = message.sourceMetadata?.googleChatResolve;
|
|
157
|
-
if (typeof gchatResolve === 'function') {
|
|
158
|
-
gchatResolve(`Error: ${error}`);
|
|
159
|
-
}
|
|
144
|
+
case 'google_chat':
|
|
145
|
+
this.resolveCallback(message, `Error: ${error}`, 'googleChatResolve', 'Google Chat');
|
|
160
146
|
break;
|
|
161
|
-
}
|
|
162
147
|
case 'system_event':
|
|
163
148
|
this.logger.debug('System event error routed (no-op)', {
|
|
164
149
|
messageId: message.id,
|