n8n 2.12.3 → 2.13.1
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/abstract-server.d.ts +2 -0
- package/dist/abstract-server.js +5 -1
- package/dist/abstract-server.js.map +1 -1
- package/dist/build.tsbuildinfo +1 -1
- package/dist/commands/start.js +3 -0
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/webhook.js +1 -0
- package/dist/commands/webhook.js.map +1 -1
- package/dist/commands/worker.js +7 -5
- package/dist/commands/worker.js.map +1 -1
- package/dist/constants.d.ts +0 -1
- package/dist/constants.js +1 -2
- package/dist/constants.js.map +1 -1
- package/dist/controllers/project.controller.d.ts +2 -3
- package/dist/controllers/project.controller.js +8 -3
- package/dist/controllers/project.controller.js.map +1 -1
- package/dist/credentials/credentials.service.js +14 -8
- package/dist/credentials/credentials.service.js.map +1 -1
- package/dist/eventbus/event-message-classes/event-message-audit.d.ts +1 -0
- package/dist/eventbus/event-message-classes/event-message-audit.js.map +1 -1
- package/dist/eventbus/event-message-classes/index.d.ts +2 -2
- package/dist/eventbus/event-message-classes/index.js +1 -0
- package/dist/eventbus/event-message-classes/index.js.map +1 -1
- package/dist/events/maps/relay.event-map.d.ts +9 -0
- package/dist/events/relays/log-streaming.event-relay.d.ts +1 -0
- package/dist/events/relays/log-streaming.event-relay.js +21 -0
- package/dist/events/relays/log-streaming.event-relay.js.map +1 -1
- package/dist/execution-lifecycle/restore-binary-data-id.js +8 -2
- package/dist/execution-lifecycle/restore-binary-data-id.js.map +1 -1
- package/dist/load-nodes-and-credentials.js +3 -1
- package/dist/load-nodes-and-credentials.js.map +1 -1
- package/dist/metrics/prometheus-metrics.service.d.ts +2 -0
- package/dist/metrics/prometheus-metrics.service.js +29 -0
- package/dist/metrics/prometheus-metrics.service.js.map +1 -1
- package/dist/metrics/types.d.ts +1 -1
- package/dist/modules/chat-hub/chat-hub-agent.service.d.ts +3 -1
- package/dist/modules/chat-hub/chat-hub-agent.service.js +31 -7
- package/dist/modules/chat-hub/chat-hub-agent.service.js.map +1 -1
- package/dist/modules/chat-hub/chat-hub-event-relay.service.js +1 -1
- package/dist/modules/chat-hub/chat-hub-event-relay.service.js.map +1 -1
- package/dist/modules/chat-hub/chat-hub-execution.service.d.ts +1 -1
- package/dist/modules/chat-hub/chat-hub-execution.service.js +14 -10
- package/dist/modules/chat-hub/chat-hub-execution.service.js.map +1 -1
- package/dist/modules/chat-hub/chat-hub-extractor.d.ts +2 -2
- package/dist/modules/chat-hub/chat-hub-session.entity.d.ts +3 -1
- package/dist/modules/chat-hub/chat-hub-session.entity.js +4 -0
- package/dist/modules/chat-hub/chat-hub-session.entity.js.map +1 -1
- package/dist/modules/chat-hub/chat-hub-workflow.service.d.ts +2 -2
- package/dist/modules/chat-hub/chat-hub-workflow.service.js +37 -18
- package/dist/modules/chat-hub/chat-hub-workflow.service.js.map +1 -1
- package/dist/modules/chat-hub/chat-hub.controller.d.ts +4 -1
- package/dist/modules/chat-hub/chat-hub.controller.js +81 -1
- package/dist/modules/chat-hub/chat-hub.controller.js.map +1 -1
- package/dist/modules/chat-hub/chat-hub.module.d.ts +1 -0
- package/dist/modules/chat-hub/chat-hub.module.js +1 -0
- package/dist/modules/chat-hub/chat-hub.module.js.map +1 -1
- package/dist/modules/chat-hub/chat-hub.service.d.ts +5 -1
- package/dist/modules/chat-hub/chat-hub.service.js +235 -29
- package/dist/modules/chat-hub/chat-hub.service.js.map +1 -1
- package/dist/modules/chat-hub/chat-session.repository.d.ts +1 -1
- package/dist/modules/chat-hub/chat-session.repository.js +4 -1
- package/dist/modules/chat-hub/chat-session.repository.js.map +1 -1
- package/dist/modules/external-secrets.ee/external-secrets-manager.ee.js +3 -1
- package/dist/modules/external-secrets.ee/external-secrets-manager.ee.js.map +1 -1
- package/dist/modules/external-secrets.ee/external-secrets-settings.controller.ee.d.ts +16 -0
- package/dist/modules/external-secrets.ee/external-secrets-settings.controller.ee.js +74 -0
- package/dist/modules/external-secrets.ee/external-secrets-settings.controller.ee.js.map +1 -0
- package/dist/modules/external-secrets.ee/external-secrets-settings.service.ee.d.ts +9 -0
- package/dist/modules/external-secrets.ee/external-secrets-settings.service.ee.js +52 -0
- package/dist/modules/external-secrets.ee/external-secrets-settings.service.ee.js.map +1 -0
- package/dist/modules/external-secrets.ee/external-secrets.config.js +1 -1
- package/dist/modules/external-secrets.ee/external-secrets.config.js.map +1 -1
- package/dist/modules/external-secrets.ee/external-secrets.module.d.ts +1 -0
- package/dist/modules/external-secrets.ee/external-secrets.module.js +6 -0
- package/dist/modules/external-secrets.ee/external-secrets.module.js.map +1 -1
- package/dist/modules/external-secrets.ee/redaction.service.ee.js +3 -4
- package/dist/modules/external-secrets.ee/redaction.service.ee.js.map +1 -1
- package/dist/modules/external-secrets.ee/retry-manager.service.d.ts +1 -1
- package/dist/modules/external-secrets.ee/retry-manager.service.js +8 -2
- package/dist/modules/external-secrets.ee/retry-manager.service.js.map +1 -1
- package/dist/modules/external-secrets.ee/secret-provider-access-check.service.ee.d.ts +16 -2
- package/dist/modules/external-secrets.ee/secret-provider-access-check.service.ee.js +55 -2
- package/dist/modules/external-secrets.ee/secret-provider-access-check.service.ee.js.map +1 -1
- package/dist/modules/external-secrets.ee/secrets-providers-connections.controller.ee.js +2 -2
- package/dist/modules/external-secrets.ee/secrets-providers-connections.controller.ee.js.map +1 -1
- package/dist/modules/external-secrets.ee/secrets-providers-connections.service.ee.d.ts +13 -5
- package/dist/modules/external-secrets.ee/secrets-providers-connections.service.ee.js +68 -37
- package/dist/modules/external-secrets.ee/secrets-providers-connections.service.ee.js.map +1 -1
- package/dist/modules/external-secrets.ee/secrets-providers-project.controller.ee.d.ts +6 -5
- package/dist/modules/external-secrets.ee/secrets-providers-project.controller.ee.js +37 -24
- package/dist/modules/external-secrets.ee/secrets-providers-project.controller.ee.js.map +1 -1
- package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.js +9 -0
- package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.js.map +1 -1
- package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.js +9 -0
- package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.js.map +1 -1
- package/dist/modules/mcp/tools/workflow-builder/validate-workflow-code.tool.js +12 -1
- package/dist/modules/mcp/tools/workflow-builder/validate-workflow-code.tool.js.map +1 -1
- package/dist/modules/redaction/executions/execution-redaction.service.js +9 -0
- package/dist/modules/redaction/executions/execution-redaction.service.js.map +1 -1
- package/dist/modules/source-control.ee/source-control-helper.ee.js +4 -1
- package/dist/modules/source-control.ee/source-control-helper.ee.js.map +1 -1
- package/dist/modules/source-control.ee/source-control-status.service.ee.d.ts +3 -1
- package/dist/modules/source-control.ee/source-control-status.service.ee.js +86 -5
- package/dist/modules/source-control.ee/source-control-status.service.ee.js.map +1 -1
- package/dist/modules/source-control.ee/source-control.controller.ee.d.ts +4 -0
- package/dist/modules/source-control.ee/source-control.service.ee.d.ts +2 -0
- package/dist/modules/source-control.ee/types/exportable-folders.d.ts +1 -0
- package/dist/modules/sso-saml/saml.service.ee.d.ts +1 -0
- package/dist/modules/sso-saml/saml.service.ee.js +3 -0
- package/dist/modules/sso-saml/saml.service.ee.js.map +1 -1
- package/dist/modules/workflow-index/workflow-index.service.d.ts +5 -3
- package/dist/modules/workflow-index/workflow-index.service.js +40 -14
- package/dist/modules/workflow-index/workflow-index.service.js.map +1 -1
- package/dist/public-api/v1/openapi.yml +3 -0
- package/dist/scaling/worker-server.d.ts +2 -0
- package/dist/scaling/worker-server.js +6 -1
- package/dist/scaling/worker-server.js.map +1 -1
- package/dist/server.js +1 -0
- package/dist/server.js.map +1 -1
- package/dist/services/project.service.ee.d.ts +3 -2
- package/dist/services/project.service.ee.js +13 -0
- package/dist/services/project.service.ee.js.map +1 -1
- package/dist/services/role-cache.service.d.ts +1 -1
- package/dist/services/role-cache.service.js.map +1 -1
- package/dist/services/role.service.d.ts +3 -3
- package/dist/services/ssrf/ssrf-blocked-ip.error.js +6 -1
- package/dist/services/ssrf/ssrf-blocked-ip.error.js.map +1 -1
- package/dist/workflows/workflow-execution.service.d.ts +1 -1
- package/dist/workflows/workflow-execution.service.js +2 -1
- package/dist/workflows/workflow-execution.service.js.map +1 -1
- package/dist/workflows/workflow.service.d.ts +3 -2
- package/dist/workflows/workflow.service.js +12 -1
- package/dist/workflows/workflow.service.js.map +1 -1
- package/package.json +24 -24
|
@@ -43,7 +43,7 @@ let ChatHubController = class ChatHubController {
|
|
|
43
43
|
return await this.chatModelsService.getModels(req.user, payload.credentials);
|
|
44
44
|
}
|
|
45
45
|
async getConversations(req, _res, query) {
|
|
46
|
-
return await this.chatService.getConversations(req.user.id, query.limit, query.cursor);
|
|
46
|
+
return await this.chatService.getConversations(req.user.id, query.limit, query.cursor, query.type);
|
|
47
47
|
}
|
|
48
48
|
async getConversationMessages(req, _res, sessionId) {
|
|
49
49
|
return await this.chatService.getConversation(req.user.id, sessionId);
|
|
@@ -81,6 +81,21 @@ let ChatHubController = class ChatHubController {
|
|
|
81
81
|
status: 'streaming',
|
|
82
82
|
};
|
|
83
83
|
}
|
|
84
|
+
async sendMessageManual(req, _res, workflowId, payload) {
|
|
85
|
+
const pushRef = req.headers['push-ref'];
|
|
86
|
+
if (!pushRef) {
|
|
87
|
+
throw new bad_request_error_1.BadRequestError('push-ref header is required for manual execution');
|
|
88
|
+
}
|
|
89
|
+
await this.chatService.sendHumanMessageManual(req.user, {
|
|
90
|
+
...payload,
|
|
91
|
+
model: { provider: 'n8n', workflowId },
|
|
92
|
+
credentials: {},
|
|
93
|
+
userId: req.user.id,
|
|
94
|
+
}, (0, chat_hub_extractor_1.extractAuthenticationMetadata)(req), pushRef);
|
|
95
|
+
return {
|
|
96
|
+
status: 'streaming',
|
|
97
|
+
};
|
|
98
|
+
}
|
|
84
99
|
async editMessage(req, _res, sessionId, editId, payload) {
|
|
85
100
|
await this.chatService.editMessage(req.user, {
|
|
86
101
|
...payload,
|
|
@@ -92,6 +107,23 @@ let ChatHubController = class ChatHubController {
|
|
|
92
107
|
status: 'streaming',
|
|
93
108
|
};
|
|
94
109
|
}
|
|
110
|
+
async editMessageManual(req, _res, workflowId, sessionId, editId, payload) {
|
|
111
|
+
const pushRef = req.headers['push-ref'];
|
|
112
|
+
if (!pushRef) {
|
|
113
|
+
throw new bad_request_error_1.BadRequestError('push-ref header is required for manual execution');
|
|
114
|
+
}
|
|
115
|
+
await this.chatService.editMessageManual(req.user, {
|
|
116
|
+
...payload,
|
|
117
|
+
model: { provider: 'n8n', workflowId },
|
|
118
|
+
credentials: {},
|
|
119
|
+
sessionId,
|
|
120
|
+
editId,
|
|
121
|
+
userId: req.user.id,
|
|
122
|
+
}, (0, chat_hub_extractor_1.extractAuthenticationMetadata)(req), pushRef);
|
|
123
|
+
return {
|
|
124
|
+
status: 'streaming',
|
|
125
|
+
};
|
|
126
|
+
}
|
|
95
127
|
async regenerateMessage(req, _res, sessionId, retryId, payload) {
|
|
96
128
|
await this.chatService.regenerateAIMessage(req.user, {
|
|
97
129
|
...payload,
|
|
@@ -103,6 +135,23 @@ let ChatHubController = class ChatHubController {
|
|
|
103
135
|
status: 'streaming',
|
|
104
136
|
};
|
|
105
137
|
}
|
|
138
|
+
async regenerateMessageManual(req, _res, workflowId, sessionId, retryId, payload) {
|
|
139
|
+
const pushRef = req.headers['push-ref'];
|
|
140
|
+
if (!pushRef) {
|
|
141
|
+
throw new bad_request_error_1.BadRequestError('push-ref header is required for manual execution');
|
|
142
|
+
}
|
|
143
|
+
await this.chatService.regenerateAIMessageManual(req.user, {
|
|
144
|
+
...payload,
|
|
145
|
+
model: { provider: 'n8n', workflowId },
|
|
146
|
+
credentials: {},
|
|
147
|
+
sessionId,
|
|
148
|
+
retryId,
|
|
149
|
+
userId: req.user.id,
|
|
150
|
+
}, (0, chat_hub_extractor_1.extractAuthenticationMetadata)(req), pushRef);
|
|
151
|
+
return {
|
|
152
|
+
status: 'streaming',
|
|
153
|
+
};
|
|
154
|
+
}
|
|
106
155
|
async stopGeneration(req, res, sessionId, messageId) {
|
|
107
156
|
await this.chatService.stopGeneration(req.user, sessionId, messageId);
|
|
108
157
|
res.status(204).send();
|
|
@@ -226,6 +275,15 @@ __decorate([
|
|
|
226
275
|
__metadata("design:paramtypes", [Object, Object, api_types_1.ChatHubSendMessageRequest]),
|
|
227
276
|
__metadata("design:returntype", Promise)
|
|
228
277
|
], ChatHubController.prototype, "sendMessage", null);
|
|
278
|
+
__decorate([
|
|
279
|
+
(0, decorators_1.ProjectScope)('workflow:execute'),
|
|
280
|
+
(0, decorators_1.Post)('/conversations/manual/:workflowId/send'),
|
|
281
|
+
__param(2, (0, decorators_1.Param)('workflowId')),
|
|
282
|
+
__param(3, decorators_1.Body),
|
|
283
|
+
__metadata("design:type", Function),
|
|
284
|
+
__metadata("design:paramtypes", [Object, Object, String, api_types_1.ChatHubManualSendMessageRequest]),
|
|
285
|
+
__metadata("design:returntype", Promise)
|
|
286
|
+
], ChatHubController.prototype, "sendMessageManual", null);
|
|
229
287
|
__decorate([
|
|
230
288
|
(0, decorators_1.GlobalScope)('chatHub:message'),
|
|
231
289
|
(0, decorators_1.Post)('/conversations/:sessionId/messages/:messageId/edit'),
|
|
@@ -236,6 +294,17 @@ __decorate([
|
|
|
236
294
|
__metadata("design:paramtypes", [Object, Object, String, String, api_types_1.ChatHubEditMessageRequest]),
|
|
237
295
|
__metadata("design:returntype", Promise)
|
|
238
296
|
], ChatHubController.prototype, "editMessage", null);
|
|
297
|
+
__decorate([
|
|
298
|
+
(0, decorators_1.ProjectScope)('workflow:execute'),
|
|
299
|
+
(0, decorators_1.Post)('/conversations/manual/:workflowId/:sessionId/messages/:messageId/edit'),
|
|
300
|
+
__param(2, (0, decorators_1.Param)('workflowId')),
|
|
301
|
+
__param(3, (0, decorators_1.Param)('sessionId')),
|
|
302
|
+
__param(4, (0, decorators_1.Param)('messageId')),
|
|
303
|
+
__param(5, decorators_1.Body),
|
|
304
|
+
__metadata("design:type", Function),
|
|
305
|
+
__metadata("design:paramtypes", [Object, Object, String, String, String, api_types_1.ChatHubManualEditMessageRequest]),
|
|
306
|
+
__metadata("design:returntype", Promise)
|
|
307
|
+
], ChatHubController.prototype, "editMessageManual", null);
|
|
239
308
|
__decorate([
|
|
240
309
|
(0, decorators_1.GlobalScope)('chatHub:message'),
|
|
241
310
|
(0, decorators_1.Post)('/conversations/:sessionId/messages/:messageId/regenerate'),
|
|
@@ -246,6 +315,17 @@ __decorate([
|
|
|
246
315
|
__metadata("design:paramtypes", [Object, Object, String, String, api_types_1.ChatHubRegenerateMessageRequest]),
|
|
247
316
|
__metadata("design:returntype", Promise)
|
|
248
317
|
], ChatHubController.prototype, "regenerateMessage", null);
|
|
318
|
+
__decorate([
|
|
319
|
+
(0, decorators_1.ProjectScope)('workflow:execute'),
|
|
320
|
+
(0, decorators_1.Post)('/conversations/manual/:workflowId/:sessionId/messages/:messageId/regenerate'),
|
|
321
|
+
__param(2, (0, decorators_1.Param)('workflowId')),
|
|
322
|
+
__param(3, (0, decorators_1.Param)('sessionId')),
|
|
323
|
+
__param(4, (0, decorators_1.Param)('messageId')),
|
|
324
|
+
__param(5, decorators_1.Body),
|
|
325
|
+
__metadata("design:type", Function),
|
|
326
|
+
__metadata("design:paramtypes", [Object, Object, String, String, String, api_types_1.ChatHubManualRegenerateMessageRequest]),
|
|
327
|
+
__metadata("design:returntype", Promise)
|
|
328
|
+
], ChatHubController.prototype, "regenerateMessageManual", null);
|
|
249
329
|
__decorate([
|
|
250
330
|
(0, decorators_1.GlobalScope)('chatHub:message'),
|
|
251
331
|
(0, decorators_1.Post)('/conversations/:sessionId/messages/:messageId/stop'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-hub.controller.js","sourceRoot":"","sources":["../../../src/modules/chat-hub/chat-hub.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,8CAqBwB;AAExB,gDAUyB;AACzB,gCAAoC;AACpC,sCAA8C;AAE9C,oDAA4B;AAE5B,qEAA+D;AAC/D,6EAAuE;AACvE,mEAA6D;AAC7D,6DAAqE;AACrE,+EAAyE;AACzE,uEAAiE;AACjE,yDAAoD;AACpD,2EAAqE;AAErE,kFAA6E;AAE7E,MAAM,uBAAuB,GAAG,cAAS,CAAC,GAAG,CAAC,oDAAuB,CAAC,CAAC;AAGhE,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC7B,YACkB,WAA2B,EAC3B,iBAAuC,EACvC,gBAAqC,EACrC,eAAmC,EACnC,qBAA+C;QAJ/C,gBAAW,GAAX,WAAW,CAAgB;QAC3B,sBAAiB,GAAjB,iBAAiB,CAAsB;QACvC,qBAAgB,GAAhB,gBAAgB,CAAqB;QACrC,oBAAe,GAAf,eAAe,CAAoB;QACnC,0BAAqB,GAArB,qBAAqB,CAA0B;IAC9D,CAAC;IAIE,AAAN,KAAK,CAAC,SAAS,CACd,GAAyB,EACzB,IAAc,EACR,OAA6B;QAEnC,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9E,CAAC;IAIK,AAAN,KAAK,CAAC,gBAAgB,CACrB,GAAyB,EACzB,IAAc,EACP,KAAkC;QAEzC,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACxF,CAAC;IAIK,AAAN,KAAK,CAAC,uBAAuB,CAC5B,GAAyB,EACzB,IAAc,EACM,SAAwB;QAE5C,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACvE,CAAC;IAIK,AAAN,KAAK,CAAC,oBAAoB,CACzB,GAAyB,EACzB,GAAa,EACO,SAAwB,EACxB,SAAwB,EAC5B,KAAa;QAE7B,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAEnD,IAAI,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,mCAAe,CAAC,0BAA0B,CAAC,CAAC;QACvD,CAAC;QAGD,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAElE,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,0BAA0B,CAAC,GACzD,MAAM,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;QAEvF,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAExC,IAAI,0BAA0B,CAAC,QAAQ,EAAE,CAAC;YACzC,GAAG,CAAC,SAAS,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,CAAC,QAAQ,IAAI,CAAC,6BAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAEtE,GAAG,CAAC,SAAS,CACZ,qBAAqB,EACrB,aAAa,QAAQ,CAAC,CAAC,CAAC,cAAc,IAAA,wBAAgB,EAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACzE,CAAC;QACH,CAAC;QAED,IAAI,0BAA0B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAClD,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;YAC5C,OAAO;QACR,CAAC;QAED,OAAO,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAClD,0BAA0B,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACrD,0BAA0B,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACtD,0BAA0B,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACJ,CAAC;IAIK,AAAN,KAAK,CAAC,WAAW,CAChB,GAAyB,EACzB,IAAc,EACR,OAAkC;QAExC,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CACtC,GAAG,CAAC,IAAI,EACR;YACC,GAAG,OAAO;YACV,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE;SACnB,EACD,IAAA,kDAA6B,EAAC,GAAG,CAAC,CAClC,CAAC;QAEF,OAAO;YACN,MAAM,EAAE,WAAW;SACnB,CAAC;IACH,CAAC;IAIK,AAAN,KAAK,CAAC,WAAW,CAChB,GAAyB,EACzB,IAAc,EACM,SAAwB,EACxB,MAAqB,EACnC,OAAkC;QAExC,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CACjC,GAAG,CAAC,IAAI,EACR;YACC,GAAG,OAAO;YACV,SAAS;YACT,MAAM;YACN,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE;SACnB,EACD,IAAA,kDAA6B,EAAC,GAAG,CAAC,CAClC,CAAC;QAEF,OAAO;YACN,MAAM,EAAE,WAAW;SACnB,CAAC;IACH,CAAC;IAIK,AAAN,KAAK,CAAC,iBAAiB,CACtB,GAAyB,EACzB,IAAc,EACM,SAAwB,EACxB,OAAsB,EACpC,OAAwC;QAE9C,MAAM,IAAI,CAAC,WAAW,CAAC,mBAAmB,CACzC,GAAG,CAAC,IAAI,EACR;YACC,GAAG,OAAO;YACV,SAAS;YACT,OAAO;YACP,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE;SACnB,EACD,IAAA,kDAA6B,EAAC,GAAG,CAAC,CAClC,CAAC;QAEF,OAAO;YACN,MAAM,EAAE,WAAW;SACnB,CAAC;IACH,CAAC;IAIK,AAAN,KAAK,CAAC,cAAc,CACnB,GAAyB,EACzB,GAAa,EACO,SAAwB,EACxB,SAAwB;QAE5C,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACtE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;IAQK,AAAN,KAAK,CAAC,iBAAiB,CACtB,GAAyB,EACzB,IAAc,EACM,SAAwB,EACrC,KAA2B;QAGlC,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAElE,MAAM,oBAAoB,GAAG,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;QAErD,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;IAClF,CAAC;IAIK,AAAN,KAAK,CAAC,kBAAkB,CACvB,GAAyB,EACzB,IAAc,EACM,SAAwB,EACtC,OAAyC;QAE/C,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACpE,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACvE,CAAC;IAIK,AAAN,KAAK,CAAC,kBAAkB,CACvB,GAAyB,EACzB,GAAa,EACO,SAAwB;QAE5C,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAE7D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;IAIK,AAAN,KAAK,CAAC,QAAQ,CAAC,GAAyB;QACvC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,0CAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;IAIK,AAAN,KAAK,CAAC,UAAU,CACf,GAAyB,EACzB,IAAc,EACR,OAAiC;QAEvC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACtE,OAAO,0CAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAIK,AAAN,KAAK,CAAC,UAAU,CACf,GAAyB,EACzB,IAAc,EACG,MAAc,EACzB,OAAiC;QAEvC,IAAI,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9E,OAAO,0CAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAIK,AAAN,KAAK,CAAC,UAAU,CACf,GAAyB,EACzB,GAAa,EACI,MAAc;QAE/B,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;IAIK,AAAN,KAAK,CAAC,QAAQ,CAAC,GAAyB,EAAE,IAAc,EAAoB,OAAe;QAC1F,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC;IAIK,AAAN,KAAK,CAAC,WAAW,CAChB,GAAyB,EACzB,IAAc,EACR,OAAkC;QAExC,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IAIK,AAAN,KAAK,CAAC,WAAW,CAChB,GAAyB,EACzB,IAAc,EACI,OAAe,EAC3B,OAAkC;QAExC,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC;IAIK,AAAN,KAAK,CAAC,WAAW,CAChB,GAAyB,EACzB,GAAa,EACK,OAAe;QAEjC,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE9D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;IAMK,AAAN,KAAK,CAAC,gBAAgB,CACrB,GAAsF,EACtF,IAAc,EACI,OAAe;QAEjC,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,GAAG,CAAC,eAAe,CAAC;YAClC,IAAI,KAAK,YAAY,gBAAM,CAAC,WAAW,EAAE,CAAC;gBACzC,MAAM,IAAI,mCAAe,CAAC,sBAAsB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAClE,CAAC;YACD,MAAM,KAAK,YAAY,mCAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,mCAAe,CAAC,oBAAoB,CAAC,CAAC;QAC5F,CAAC;QAED,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,mCAAe,CAAC,mBAAmB,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC9E,CAAC;IAIK,AAAN,KAAK,CAAC,eAAe,CACpB,GAAyB,EACzB,GAAa,EACK,OAAe,EACP,eAAuB;QAEjD,MAAM,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QAChF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;IAEO,qBAAqB,CAAC,IAAY,EAAE,IAAkC;QAC7E,IAAI,8CAAkC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,mCAAe,CAAC,cAAc,IAAI,oCAAoC,CAAC,CAAC;QACnF,CAAC;QACD,IACC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAiB;YACpC,iDAAqC,CAAC,QAAQ,CAAC,IAAI,CAAC,EACnD,CAAC;YACF,MAAM,IAAI,mCAAe,CAAC,cAAc,IAAI,kCAAkC,CAAC,CAAC;QACjF,CAAC;IACF,CAAC;CACD,CAAA;AA5VY,8CAAiB;AAWvB;IAFL,IAAA,iBAAI,EAAC,SAAS,CAAC;IACf,IAAA,wBAAW,EAAC,iBAAiB,CAAC;IAI7B,WAAA,iBAAI,CAAA;;qDAAU,8CAAoB;;kDAGnC;AAIK;IAFL,IAAA,gBAAG,EAAC,gBAAgB,CAAC;IACrB,IAAA,wBAAW,EAAC,iBAAiB,CAAC;IAI7B,WAAA,kBAAK,CAAA;;qDAAQ,uCAA2B;;yDAGzC;AAIK;IAFL,IAAA,gBAAG,EAAC,2BAA2B,CAAC;IAChC,IAAA,wBAAW,EAAC,iBAAiB,CAAC;IAI7B,WAAA,IAAA,kBAAK,EAAC,WAAW,CAAC,CAAA;;;;gEAGnB;AAIK;IAFL,IAAA,gBAAG,EAAC,kEAAkE,CAAC;IACvE,IAAA,wBAAW,EAAC,iBAAiB,CAAC;IAI7B,WAAA,IAAA,kBAAK,EAAC,WAAW,CAAC,CAAA;IAClB,WAAA,IAAA,kBAAK,EAAC,WAAW,CAAC,CAAA;IAClB,WAAA,IAAA,kBAAK,EAAC,OAAO,CAAC,CAAA;;;;6DAsCf;AAIK;IAFL,IAAA,wBAAW,EAAC,iBAAiB,CAAC;IAC9B,IAAA,iBAAI,EAAC,qBAAqB,CAAC;IAI1B,WAAA,iBAAI,CAAA;;qDAAU,qCAAyB;;oDAcxC;AAIK;IAFL,IAAA,wBAAW,EAAC,iBAAiB,CAAC;IAC9B,IAAA,iBAAI,EAAC,oDAAoD,CAAC;IAIzD,WAAA,IAAA,kBAAK,EAAC,WAAW,CAAC,CAAA;IAClB,WAAA,IAAA,kBAAK,EAAC,WAAW,CAAC,CAAA;IAClB,WAAA,iBAAI,CAAA;;qEAAU,qCAAyB;;oDAgBxC;AAIK;IAFL,IAAA,wBAAW,EAAC,iBAAiB,CAAC;IAC9B,IAAA,iBAAI,EAAC,0DAA0D,CAAC;IAI/D,WAAA,IAAA,kBAAK,EAAC,WAAW,CAAC,CAAA;IAClB,WAAA,IAAA,kBAAK,EAAC,WAAW,CAAC,CAAA;IAClB,WAAA,iBAAI,CAAA;;qEAAU,2CAA+B;;0DAgB9C;AAIK;IAFL,IAAA,wBAAW,EAAC,iBAAiB,CAAC;IAC9B,IAAA,iBAAI,EAAC,oDAAoD,CAAC;IAIzD,WAAA,IAAA,kBAAK,EAAC,WAAW,CAAC,CAAA;IAClB,WAAA,IAAA,kBAAK,EAAC,WAAW,CAAC,CAAA;;;;uDAInB;AAQK;IAFL,IAAA,wBAAW,EAAC,iBAAiB,CAAC;IAC9B,IAAA,iBAAI,EAAC,qCAAqC,CAAC;IAI1C,WAAA,IAAA,kBAAK,EAAC,WAAW,CAAC,CAAA;IAClB,WAAA,kBAAK,CAAA;;6DAAQ,gCAAoB;;0DAQlC;AAIK;IAFL,IAAA,kBAAK,EAAC,2BAA2B,CAAC;IAClC,IAAA,wBAAW,EAAC,iBAAiB,CAAC;IAI7B,WAAA,IAAA,kBAAK,EAAC,WAAW,CAAC,CAAA;IAClB,WAAA,iBAAI,CAAA;;6DAAU,4CAAgC;;2DAO/C;AAIK;IAFL,IAAA,mBAAM,EAAC,2BAA2B,CAAC;IACnC,IAAA,wBAAW,EAAC,iBAAiB,CAAC;IAI7B,WAAA,IAAA,kBAAK,EAAC,WAAW,CAAC,CAAA;;;;2DAKnB;AAIK;IAFL,IAAA,gBAAG,EAAC,QAAQ,CAAC;IACb,IAAA,wBAAW,EAAC,iBAAiB,CAAC;;;;iDAI9B;AAIK;IAFL,IAAA,iBAAI,EAAC,QAAQ,CAAC;IACd,IAAA,wBAAW,EAAC,iBAAiB,CAAC;IAI7B,WAAA,iBAAI,CAAA;;qDAAU,oCAAwB;;mDAKvC;AAIK;IAFL,IAAA,kBAAK,EAAC,gBAAgB,CAAC;IACvB,IAAA,wBAAW,EAAC,iBAAiB,CAAC;IAI7B,WAAA,IAAA,kBAAK,EAAC,QAAQ,CAAC,CAAA;IACf,WAAA,iBAAI,CAAA;;6DAAU,oCAAwB;;mDAOvC;AAIK;IAFL,IAAA,mBAAM,EAAC,gBAAgB,CAAC;IACxB,IAAA,wBAAW,EAAC,iBAAiB,CAAC;IAI7B,WAAA,IAAA,kBAAK,EAAC,QAAQ,CAAC,CAAA;;;;mDAIhB;AAIK;IAFL,IAAA,gBAAG,EAAC,kBAAkB,CAAC;IACvB,IAAA,wBAAW,EAAC,mBAAmB,CAAC;IAC0B,WAAA,IAAA,kBAAK,EAAC,SAAS,CAAC,CAAA;;;;iDAE1E;AAIK;IAFL,IAAA,iBAAI,EAAC,SAAS,CAAC;IACf,IAAA,wBAAW,EAAC,qBAAqB,CAAC;IAIjC,WAAA,iBAAI,CAAA;;qDAAU,qCAAyB;;oDAGxC;AAIK;IAFL,IAAA,iBAAI,EAAC,kBAAkB,CAAC;IACxB,IAAA,wBAAW,EAAC,qBAAqB,CAAC;IAIjC,WAAA,IAAA,kBAAK,EAAC,SAAS,CAAC,CAAA;IAChB,WAAA,iBAAI,CAAA;;6DAAU,qCAAyB;;oDAGxC;AAIK;IAFL,IAAA,mBAAM,EAAC,kBAAkB,CAAC;IAC1B,IAAA,wBAAW,EAAC,qBAAqB,CAAC;IAIjC,WAAA,IAAA,kBAAK,EAAC,SAAS,CAAC,CAAA;;;;oDAKjB;AAMK;IAJL,IAAA,iBAAI,EAAC,wBAAwB,EAAE;QAC/B,WAAW,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KACrD,CAAC;IACD,IAAA,wBAAW,EAAC,qBAAqB,CAAC;IAIjC,WAAA,IAAA,kBAAK,EAAC,SAAS,CAAC,CAAA;;;;yDAgBjB;AAIK;IAFL,IAAA,mBAAM,EAAC,yCAAyC,CAAC;IACjD,IAAA,wBAAW,EAAC,qBAAqB,CAAC;IAIjC,WAAA,IAAA,kBAAK,EAAC,SAAS,CAAC,CAAA;IAChB,WAAA,IAAA,kBAAK,EAAC,iBAAiB,CAAC,CAAA;;;;wDAIzB;4BA/UW,iBAAiB;IAD7B,IAAA,2BAAc,EAAC,OAAO,CAAC;qCAGQ,iCAAc;QACR,8CAAoB;QACrB,4CAAmB;QACpB,0CAAkB;QACZ,sDAAwB;GANrD,iBAAiB,CA4V7B"}
|
|
1
|
+
{"version":3,"file":"chat-hub.controller.js","sourceRoot":"","sources":["../../../src/modules/chat-hub/chat-hub.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,8CAwBwB;AAExB,gDAWyB;AACzB,gCAAoC;AACpC,sCAA8C;AAE9C,oDAA4B;AAE5B,qEAA+D;AAC/D,6EAAuE;AACvE,mEAA6D;AAC7D,6DAAqE;AACrE,+EAAyE;AACzE,uEAAiE;AACjE,yDAAoD;AACpD,2EAAqE;AAErE,kFAA6E;AAE7E,MAAM,uBAAuB,GAAG,cAAS,CAAC,GAAG,CAAC,oDAAuB,CAAC,CAAC;AAGhE,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC7B,YACkB,WAA2B,EAC3B,iBAAuC,EACvC,gBAAqC,EACrC,eAAmC,EACnC,qBAA+C;QAJ/C,gBAAW,GAAX,WAAW,CAAgB;QAC3B,sBAAiB,GAAjB,iBAAiB,CAAsB;QACvC,qBAAgB,GAAhB,gBAAgB,CAAqB;QACrC,oBAAe,GAAf,eAAe,CAAoB;QACnC,0BAAqB,GAArB,qBAAqB,CAA0B;IAC9D,CAAC;IAIE,AAAN,KAAK,CAAC,SAAS,CACd,GAAyB,EACzB,IAAc,EACR,OAA6B;QAEnC,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9E,CAAC;IAIK,AAAN,KAAK,CAAC,gBAAgB,CACrB,GAAyB,EACzB,IAAc,EACP,KAAkC;QAEzC,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAC7C,GAAG,CAAC,IAAI,CAAC,EAAE,EACX,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,IAAI,CACV,CAAC;IACH,CAAC;IAIK,AAAN,KAAK,CAAC,uBAAuB,CAC5B,GAAyB,EACzB,IAAc,EACM,SAAwB;QAE5C,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACvE,CAAC;IAIK,AAAN,KAAK,CAAC,oBAAoB,CACzB,GAAyB,EACzB,GAAa,EACO,SAAwB,EACxB,SAAwB,EAC5B,KAAa;QAE7B,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAEnD,IAAI,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,mCAAe,CAAC,0BAA0B,CAAC,CAAC;QACvD,CAAC;QAGD,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAElE,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,0BAA0B,CAAC,GACzD,MAAM,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;QAEvF,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAExC,IAAI,0BAA0B,CAAC,QAAQ,EAAE,CAAC;YACzC,GAAG,CAAC,SAAS,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,CAAC,QAAQ,IAAI,CAAC,6BAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAEtE,GAAG,CAAC,SAAS,CACZ,qBAAqB,EACrB,aAAa,QAAQ,CAAC,CAAC,CAAC,cAAc,IAAA,wBAAgB,EAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACzE,CAAC;QACH,CAAC;QAED,IAAI,0BAA0B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAClD,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;YAC5C,OAAO;QACR,CAAC;QAED,OAAO,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAClD,0BAA0B,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACrD,0BAA0B,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACtD,0BAA0B,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACJ,CAAC;IAIK,AAAN,KAAK,CAAC,WAAW,CAChB,GAAyB,EACzB,IAAc,EACR,OAAkC;QAExC,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CACtC,GAAG,CAAC,IAAI,EACR;YACC,GAAG,OAAO;YACV,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE;SACnB,EACD,IAAA,kDAA6B,EAAC,GAAG,CAAC,CAClC,CAAC;QAEF,OAAO;YACN,MAAM,EAAE,WAAW;SACnB,CAAC;IACH,CAAC;IASK,AAAN,KAAK,CAAC,iBAAiB,CACtB,GAAyB,EACzB,IAAc,EACO,UAAkB,EACjC,OAAwC;QAE9C,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAuB,CAAC;QAC9D,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,IAAI,mCAAe,CAAC,kDAAkD,CAAC,CAAC;QAC/E,CAAC;QAED,MAAM,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAC5C,GAAG,CAAC,IAAI,EACR;YACC,GAAG,OAAO;YACV,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAc,EAAE,UAAU,EAAE;YAC/C,WAAW,EAAE,EAAE;YACf,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE;SACnB,EACD,IAAA,kDAA6B,EAAC,GAAG,CAAC,EAClC,OAAO,CACP,CAAC;QAEF,OAAO;YACN,MAAM,EAAE,WAAW;SACnB,CAAC;IACH,CAAC;IAIK,AAAN,KAAK,CAAC,WAAW,CAChB,GAAyB,EACzB,IAAc,EACM,SAAwB,EACxB,MAAqB,EACnC,OAAkC;QAExC,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CACjC,GAAG,CAAC,IAAI,EACR;YACC,GAAG,OAAO;YACV,SAAS;YACT,MAAM;YACN,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE;SACnB,EACD,IAAA,kDAA6B,EAAC,GAAG,CAAC,CAClC,CAAC;QAEF,OAAO;YACN,MAAM,EAAE,WAAW;SACnB,CAAC;IACH,CAAC;IAIK,AAAN,KAAK,CAAC,iBAAiB,CACtB,GAAyB,EACzB,IAAc,EACO,UAAkB,EACnB,SAAwB,EACxB,MAAqB,EACnC,OAAwC;QAE9C,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAuB,CAAC;QAC9D,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,IAAI,mCAAe,CAAC,kDAAkD,CAAC,CAAC;QAC/E,CAAC;QAED,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,CACvC,GAAG,CAAC,IAAI,EACR;YACC,GAAG,OAAO;YACV,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAc,EAAE,UAAU,EAAE;YAC/C,WAAW,EAAE,EAAE;YACf,SAAS;YACT,MAAM;YACN,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE;SACnB,EACD,IAAA,kDAA6B,EAAC,GAAG,CAAC,EAClC,OAAO,CACP,CAAC;QAEF,OAAO;YACN,MAAM,EAAE,WAAW;SACnB,CAAC;IACH,CAAC;IAIK,AAAN,KAAK,CAAC,iBAAiB,CACtB,GAAyB,EACzB,IAAc,EACM,SAAwB,EACxB,OAAsB,EACpC,OAAwC;QAE9C,MAAM,IAAI,CAAC,WAAW,CAAC,mBAAmB,CACzC,GAAG,CAAC,IAAI,EACR;YACC,GAAG,OAAO;YACV,SAAS;YACT,OAAO;YACP,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE;SACnB,EACD,IAAA,kDAA6B,EAAC,GAAG,CAAC,CAClC,CAAC;QAEF,OAAO;YACN,MAAM,EAAE,WAAW;SACnB,CAAC;IACH,CAAC;IAIK,AAAN,KAAK,CAAC,uBAAuB,CAC5B,GAAyB,EACzB,IAAc,EACO,UAAkB,EACnB,SAAwB,EACxB,OAAsB,EACpC,OAA8C;QAEpD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAuB,CAAC;QAC9D,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,IAAI,mCAAe,CAAC,kDAAkD,CAAC,CAAC;QAC/E,CAAC;QAED,MAAM,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAC/C,GAAG,CAAC,IAAI,EACR;YACC,GAAG,OAAO;YACV,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAc,EAAE,UAAU,EAAE;YAC/C,WAAW,EAAE,EAAE;YACf,SAAS;YACT,OAAO;YACP,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE;SACnB,EACD,IAAA,kDAA6B,EAAC,GAAG,CAAC,EAClC,OAAO,CACP,CAAC;QAEF,OAAO;YACN,MAAM,EAAE,WAAW;SACnB,CAAC;IACH,CAAC;IAIK,AAAN,KAAK,CAAC,cAAc,CACnB,GAAyB,EACzB,GAAa,EACO,SAAwB,EACxB,SAAwB;QAE5C,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACtE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;IAQK,AAAN,KAAK,CAAC,iBAAiB,CACtB,GAAyB,EACzB,IAAc,EACM,SAAwB,EACrC,KAA2B;QAGlC,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAElE,MAAM,oBAAoB,GAAG,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;QAErD,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;IAClF,CAAC;IAIK,AAAN,KAAK,CAAC,kBAAkB,CACvB,GAAyB,EACzB,IAAc,EACM,SAAwB,EACtC,OAAyC;QAE/C,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACpE,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACvE,CAAC;IAIK,AAAN,KAAK,CAAC,kBAAkB,CACvB,GAAyB,EACzB,GAAa,EACO,SAAwB;QAE5C,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAE7D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;IAIK,AAAN,KAAK,CAAC,QAAQ,CAAC,GAAyB;QACvC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,0CAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;IAIK,AAAN,KAAK,CAAC,UAAU,CACf,GAAyB,EACzB,IAAc,EACR,OAAiC;QAEvC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACtE,OAAO,0CAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAIK,AAAN,KAAK,CAAC,UAAU,CACf,GAAyB,EACzB,IAAc,EACG,MAAc,EACzB,OAAiC;QAEvC,IAAI,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9E,OAAO,0CAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAIK,AAAN,KAAK,CAAC,UAAU,CACf,GAAyB,EACzB,GAAa,EACI,MAAc;QAE/B,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;IAIK,AAAN,KAAK,CAAC,QAAQ,CAAC,GAAyB,EAAE,IAAc,EAAoB,OAAe;QAC1F,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC;IAIK,AAAN,KAAK,CAAC,WAAW,CAChB,GAAyB,EACzB,IAAc,EACR,OAAkC;QAExC,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IAIK,AAAN,KAAK,CAAC,WAAW,CAChB,GAAyB,EACzB,IAAc,EACI,OAAe,EAC3B,OAAkC;QAExC,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC;IAIK,AAAN,KAAK,CAAC,WAAW,CAChB,GAAyB,EACzB,GAAa,EACK,OAAe;QAEjC,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE9D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;IAMK,AAAN,KAAK,CAAC,gBAAgB,CACrB,GAAsF,EACtF,IAAc,EACI,OAAe;QAEjC,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,GAAG,CAAC,eAAe,CAAC;YAClC,IAAI,KAAK,YAAY,gBAAM,CAAC,WAAW,EAAE,CAAC;gBACzC,MAAM,IAAI,mCAAe,CAAC,sBAAsB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAClE,CAAC;YACD,MAAM,KAAK,YAAY,mCAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,mCAAe,CAAC,oBAAoB,CAAC,CAAC;QAC5F,CAAC;QAED,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,mCAAe,CAAC,mBAAmB,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC9E,CAAC;IAIK,AAAN,KAAK,CAAC,eAAe,CACpB,GAAyB,EACzB,GAAa,EACK,OAAe,EACP,eAAuB;QAEjD,MAAM,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QAChF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;IAEO,qBAAqB,CAAC,IAAY,EAAE,IAAkC;QAC7E,IAAI,8CAAkC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,mCAAe,CAAC,cAAc,IAAI,oCAAoC,CAAC,CAAC;QACnF,CAAC;QACD,IACC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAiB;YACpC,iDAAqC,CAAC,QAAQ,CAAC,IAAI,CAAC,EACnD,CAAC;YACF,MAAM,IAAI,mCAAe,CAAC,cAAc,IAAI,kCAAkC,CAAC,CAAC;QACjF,CAAC;IACF,CAAC;CACD,CAAA;AAxcY,8CAAiB;AAWvB;IAFL,IAAA,iBAAI,EAAC,SAAS,CAAC;IACf,IAAA,wBAAW,EAAC,iBAAiB,CAAC;IAI7B,WAAA,iBAAI,CAAA;;qDAAU,8CAAoB;;kDAGnC;AAIK;IAFL,IAAA,gBAAG,EAAC,gBAAgB,CAAC;IACrB,IAAA,wBAAW,EAAC,iBAAiB,CAAC;IAI7B,WAAA,kBAAK,CAAA;;qDAAQ,uCAA2B;;yDAQzC;AAIK;IAFL,IAAA,gBAAG,EAAC,2BAA2B,CAAC;IAChC,IAAA,wBAAW,EAAC,iBAAiB,CAAC;IAI7B,WAAA,IAAA,kBAAK,EAAC,WAAW,CAAC,CAAA;;;;gEAGnB;AAIK;IAFL,IAAA,gBAAG,EAAC,kEAAkE,CAAC;IACvE,IAAA,wBAAW,EAAC,iBAAiB,CAAC;IAI7B,WAAA,IAAA,kBAAK,EAAC,WAAW,CAAC,CAAA;IAClB,WAAA,IAAA,kBAAK,EAAC,WAAW,CAAC,CAAA;IAClB,WAAA,IAAA,kBAAK,EAAC,OAAO,CAAC,CAAA;;;;6DAsCf;AAIK;IAFL,IAAA,wBAAW,EAAC,iBAAiB,CAAC;IAC9B,IAAA,iBAAI,EAAC,qBAAqB,CAAC;IAI1B,WAAA,iBAAI,CAAA;;qDAAU,qCAAyB;;oDAcxC;AASK;IAFL,IAAA,yBAAY,EAAC,kBAAkB,CAAC;IAChC,IAAA,iBAAI,EAAC,wCAAwC,CAAC;IAI7C,WAAA,IAAA,kBAAK,EAAC,YAAY,CAAC,CAAA;IACnB,WAAA,iBAAI,CAAA;;6DAAU,2CAA+B;;0DAsB9C;AAIK;IAFL,IAAA,wBAAW,EAAC,iBAAiB,CAAC;IAC9B,IAAA,iBAAI,EAAC,oDAAoD,CAAC;IAIzD,WAAA,IAAA,kBAAK,EAAC,WAAW,CAAC,CAAA;IAClB,WAAA,IAAA,kBAAK,EAAC,WAAW,CAAC,CAAA;IAClB,WAAA,iBAAI,CAAA;;qEAAU,qCAAyB;;oDAgBxC;AAIK;IAFL,IAAA,yBAAY,EAAC,kBAAkB,CAAC;IAChC,IAAA,iBAAI,EAAC,uEAAuE,CAAC;IAI5E,WAAA,IAAA,kBAAK,EAAC,YAAY,CAAC,CAAA;IACnB,WAAA,IAAA,kBAAK,EAAC,WAAW,CAAC,CAAA;IAClB,WAAA,IAAA,kBAAK,EAAC,WAAW,CAAC,CAAA;IAClB,WAAA,iBAAI,CAAA;;6EAAU,2CAA+B;;0DAwB9C;AAIK;IAFL,IAAA,wBAAW,EAAC,iBAAiB,CAAC;IAC9B,IAAA,iBAAI,EAAC,0DAA0D,CAAC;IAI/D,WAAA,IAAA,kBAAK,EAAC,WAAW,CAAC,CAAA;IAClB,WAAA,IAAA,kBAAK,EAAC,WAAW,CAAC,CAAA;IAClB,WAAA,iBAAI,CAAA;;qEAAU,2CAA+B;;0DAgB9C;AAIK;IAFL,IAAA,yBAAY,EAAC,kBAAkB,CAAC;IAChC,IAAA,iBAAI,EAAC,6EAA6E,CAAC;IAIlF,WAAA,IAAA,kBAAK,EAAC,YAAY,CAAC,CAAA;IACnB,WAAA,IAAA,kBAAK,EAAC,WAAW,CAAC,CAAA;IAClB,WAAA,IAAA,kBAAK,EAAC,WAAW,CAAC,CAAA;IAClB,WAAA,iBAAI,CAAA;;6EAAU,iDAAqC;;gEAwBpD;AAIK;IAFL,IAAA,wBAAW,EAAC,iBAAiB,CAAC;IAC9B,IAAA,iBAAI,EAAC,oDAAoD,CAAC;IAIzD,WAAA,IAAA,kBAAK,EAAC,WAAW,CAAC,CAAA;IAClB,WAAA,IAAA,kBAAK,EAAC,WAAW,CAAC,CAAA;;;;uDAInB;AAQK;IAFL,IAAA,wBAAW,EAAC,iBAAiB,CAAC;IAC9B,IAAA,iBAAI,EAAC,qCAAqC,CAAC;IAI1C,WAAA,IAAA,kBAAK,EAAC,WAAW,CAAC,CAAA;IAClB,WAAA,kBAAK,CAAA;;6DAAQ,gCAAoB;;0DAQlC;AAIK;IAFL,IAAA,kBAAK,EAAC,2BAA2B,CAAC;IAClC,IAAA,wBAAW,EAAC,iBAAiB,CAAC;IAI7B,WAAA,IAAA,kBAAK,EAAC,WAAW,CAAC,CAAA;IAClB,WAAA,iBAAI,CAAA;;6DAAU,4CAAgC;;2DAO/C;AAIK;IAFL,IAAA,mBAAM,EAAC,2BAA2B,CAAC;IACnC,IAAA,wBAAW,EAAC,iBAAiB,CAAC;IAI7B,WAAA,IAAA,kBAAK,EAAC,WAAW,CAAC,CAAA;;;;2DAKnB;AAIK;IAFL,IAAA,gBAAG,EAAC,QAAQ,CAAC;IACb,IAAA,wBAAW,EAAC,iBAAiB,CAAC;;;;iDAI9B;AAIK;IAFL,IAAA,iBAAI,EAAC,QAAQ,CAAC;IACd,IAAA,wBAAW,EAAC,iBAAiB,CAAC;IAI7B,WAAA,iBAAI,CAAA;;qDAAU,oCAAwB;;mDAKvC;AAIK;IAFL,IAAA,kBAAK,EAAC,gBAAgB,CAAC;IACvB,IAAA,wBAAW,EAAC,iBAAiB,CAAC;IAI7B,WAAA,IAAA,kBAAK,EAAC,QAAQ,CAAC,CAAA;IACf,WAAA,iBAAI,CAAA;;6DAAU,oCAAwB;;mDAOvC;AAIK;IAFL,IAAA,mBAAM,EAAC,gBAAgB,CAAC;IACxB,IAAA,wBAAW,EAAC,iBAAiB,CAAC;IAI7B,WAAA,IAAA,kBAAK,EAAC,QAAQ,CAAC,CAAA;;;;mDAIhB;AAIK;IAFL,IAAA,gBAAG,EAAC,kBAAkB,CAAC;IACvB,IAAA,wBAAW,EAAC,mBAAmB,CAAC;IAC0B,WAAA,IAAA,kBAAK,EAAC,SAAS,CAAC,CAAA;;;;iDAE1E;AAIK;IAFL,IAAA,iBAAI,EAAC,SAAS,CAAC;IACf,IAAA,wBAAW,EAAC,qBAAqB,CAAC;IAIjC,WAAA,iBAAI,CAAA;;qDAAU,qCAAyB;;oDAGxC;AAIK;IAFL,IAAA,iBAAI,EAAC,kBAAkB,CAAC;IACxB,IAAA,wBAAW,EAAC,qBAAqB,CAAC;IAIjC,WAAA,IAAA,kBAAK,EAAC,SAAS,CAAC,CAAA;IAChB,WAAA,iBAAI,CAAA;;6DAAU,qCAAyB;;oDAGxC;AAIK;IAFL,IAAA,mBAAM,EAAC,kBAAkB,CAAC;IAC1B,IAAA,wBAAW,EAAC,qBAAqB,CAAC;IAIjC,WAAA,IAAA,kBAAK,EAAC,SAAS,CAAC,CAAA;;;;oDAKjB;AAMK;IAJL,IAAA,iBAAI,EAAC,wBAAwB,EAAE;QAC/B,WAAW,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KACrD,CAAC;IACD,IAAA,wBAAW,EAAC,qBAAqB,CAAC;IAIjC,WAAA,IAAA,kBAAK,EAAC,SAAS,CAAC,CAAA;;;;yDAgBjB;AAIK;IAFL,IAAA,mBAAM,EAAC,yCAAyC,CAAC;IACjD,IAAA,wBAAW,EAAC,qBAAqB,CAAC;IAIjC,WAAA,IAAA,kBAAK,EAAC,SAAS,CAAC,CAAA;IAChB,WAAA,IAAA,kBAAK,EAAC,iBAAiB,CAAC,CAAA;;;;wDAIzB;4BA3bW,iBAAiB;IAD7B,IAAA,2BAAc,EAAC,OAAO,CAAC;qCAGQ,iCAAc;QACR,8CAAoB;QACrB,4CAAmB;QACpB,0CAAkB;QACZ,sDAAwB;GANrD,iBAAiB,CAwc7B"}
|
|
@@ -16,6 +16,7 @@ export declare class ChatHubModule implements ModuleInterface {
|
|
|
16
16
|
enabled?: boolean | undefined;
|
|
17
17
|
}>;
|
|
18
18
|
semanticSearch: import("@n8n/api-types").ChatHubSemanticSearchSettings;
|
|
19
|
+
agentUploadMaxSizeMb: number;
|
|
19
20
|
}>;
|
|
20
21
|
entities(): Promise<(typeof import("./chat-hub-tool.entity").ChatHubTool | typeof import("./chat-hub-agent.entity").ChatHubAgent | typeof import("./chat-hub-session.entity").ChatHubSession | typeof import("./chat-hub-message.entity").ChatHubMessage)[]>;
|
|
21
22
|
shutdown(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-hub.module.js","sourceRoot":"","sources":["../../../src/modules/chat-hub/chat-hub.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"chat-hub.module.js","sourceRoot":"","sources":["../../../src/modules/chat-hub/chat-hub.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wCAA6D;AAE7D,gDAA4D;AAC5D,gCAAoC;AACpC,uCAA4C;AAGrC,IAAM,aAAa,GAAnB,MAAM,aAAa;IACzB,KAAK,CAAC,IAAI;QACT,wDAAa,uBAAuB,GAAC,CAAC;QACtC,wDAAa,gCAAgC,GAAC,CAAC;QAC/C,MAAM,EAAE,iBAAiB,EAAE,GAAG,wDAAa,gCAAgC,GAAC,CAAC;QAE7E,cAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAIjC,MAAM,WAAW,GAAG,cAAS,CAAC,GAAG,CAAC,yBAAgB,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;QACrE,MAAM,QAAQ,GAAG,cAAS,CAAC,GAAG,CAAC,2BAAgB,CAAC,CAAC,QAAQ,CAAC;QAC1D,IAAI,CAAC,WAAW,IAAI,QAAQ,EAAE,CAAC;YAC9B,wDAAa,sCAAsC,GAAC,CAAC;QACtD,CAAC;IACF,CAAC;IAED,KAAK,CAAC,QAAQ;QACb,MAAM,EAAE,sBAAsB,EAAE,GAAG,wDAAa,6BAA6B,GAAC,CAAC;QAC/E,MAAM,OAAO,GAAG,cAAS,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACtD,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC9D,OAAO,CAAC,UAAU,EAAE;YACpB,OAAO,CAAC,sBAAsB,EAAE;YAChC,OAAO,CAAC,yBAAyB,EAAE;SACnC,CAAC,CAAC;QAEH,OAAO;YACN,OAAO;YACP,SAAS;YACT,cAAc;YACd,oBAAoB,EAAE,cAAS,CAAC,GAAG,CAAC,qBAAY,CAAC,CAAC,SAAS,CAAC,mBAAmB;SAC/E,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ;QACb,MAAM,EAAE,cAAc,EAAE,GAAG,wDAAa,2BAA2B,GAAC,CAAC;QACrE,MAAM,EAAE,cAAc,EAAE,GAAG,wDAAa,2BAA2B,GAAC,CAAC;QACrE,MAAM,EAAE,YAAY,EAAE,GAAG,wDAAa,yBAAyB,GAAC,CAAC;QACjE,MAAM,EAAE,WAAW,EAAE,GAAG,wDAAa,wBAAwB,GAAC,CAAC;QAE/D,OAAO,CAAC,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;IACpE,CAAC;IAGK,AAAN,KAAK,CAAC,QAAQ,KAAI,CAAC;CACnB,CAAA;AA7CY,sCAAa;AA4CnB;IADL,IAAA,uBAAU,GAAE;;;;6CACM;wBA5CP,aAAa;IADzB,IAAA,0BAAa,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;GACvB,aAAa,CA6CzB"}
|
|
@@ -36,12 +36,13 @@ export declare class ChatHubService {
|
|
|
36
36
|
constructor(logger: Logger, errorReporter: ErrorReporter, executionRepository: ExecutionRepository, workflowFinderService: WorkflowFinderService, sessionRepository: ChatHubSessionRepository, messageRepository: ChatHubMessageRepository, chatHubAgentService: ChatHubAgentService, chatHubModelsService: ChatHubModelsService, chatHubAttachmentService: ChatHubAttachmentService, chatStreamService: ChatStreamService, chatHubExecutionService: ChatHubExecutionService, chatHubTitleService: ChatHubTitleService, chatHubToolService: ChatHubToolService, chatHubWorkflowService: ChatHubWorkflowService, globalConfig: GlobalConfig);
|
|
37
37
|
private pickCredentialId;
|
|
38
38
|
private ensurePreviousMessage;
|
|
39
|
+
private tryResumeWaitingExecution;
|
|
39
40
|
stopGeneration(user: User, sessionId: ChatSessionId, messageId: ChatMessageId): Promise<void>;
|
|
40
41
|
private getModelCredential;
|
|
41
42
|
private getChatSession;
|
|
42
43
|
private createChatSession;
|
|
43
44
|
private getChatMessage;
|
|
44
|
-
getConversations(userId: string, limit: number, cursor?: string): Promise<ChatHubConversationsResponse>;
|
|
45
|
+
getConversations(userId: string, limit: number, cursor?: string, type?: string): Promise<ChatHubConversationsResponse>;
|
|
45
46
|
ensureConversation(userId: string, sessionId: string, trx?: EntityManager): Promise<void>;
|
|
46
47
|
getConversation(userId: string, sessionId: string): Promise<ChatHubConversationResponse>;
|
|
47
48
|
private buildMessageHistory;
|
|
@@ -50,8 +51,11 @@ export declare class ChatHubService {
|
|
|
50
51
|
deleteSession(userId: string, sessionId: ChatSessionId): Promise<void>;
|
|
51
52
|
private ensureValidModel;
|
|
52
53
|
sendHumanMessage(user: User, payload: HumanMessagePayload, executionMetadata: ChatHubAuthenticationMetadata): Promise<void>;
|
|
54
|
+
sendHumanMessageManual(user: User, payload: HumanMessagePayload, executionMetadata: ChatHubAuthenticationMetadata, pushRef: string): Promise<void>;
|
|
53
55
|
editMessage(user: User, payload: EditMessagePayload, executionMetadata: ChatHubAuthenticationMetadata): Promise<void>;
|
|
56
|
+
editMessageManual(user: User, payload: EditMessagePayload, executionMetadata: ChatHubAuthenticationMetadata, pushRef: string): Promise<void>;
|
|
54
57
|
regenerateAIMessage(user: User, payload: RegenerateMessagePayload, executionMetadata: ChatHubAuthenticationMetadata): Promise<void>;
|
|
58
|
+
regenerateAIMessageManual(user: User, payload: RegenerateMessagePayload, executionMetadata: ChatHubAuthenticationMetadata, pushRef: string): Promise<void>;
|
|
55
59
|
reconnectToStream(sessionId: ChatSessionId, lastReceivedSequence: number): Promise<{
|
|
56
60
|
hasActiveStream: boolean;
|
|
57
61
|
currentMessageId: ChatMessageId | null;
|
|
@@ -66,6 +66,28 @@ let ChatHubService = class ChatHubService {
|
|
|
66
66
|
}
|
|
67
67
|
return previousMessage;
|
|
68
68
|
}
|
|
69
|
+
async tryResumeWaitingExecution(opts) {
|
|
70
|
+
const { workflow, previousMessage, message, sessionId, user, messageId, model } = opts;
|
|
71
|
+
if (model.provider !== 'n8n' ||
|
|
72
|
+
workflow.responseMode !== 'responseNodes' ||
|
|
73
|
+
previousMessage?.status !== 'waiting' ||
|
|
74
|
+
!previousMessage?.executionId) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
const execution = await this.executionRepository.findSingleExecution(previousMessage.executionId.toString(), {
|
|
78
|
+
includeData: true,
|
|
79
|
+
unflattenData: true,
|
|
80
|
+
});
|
|
81
|
+
if (!execution) {
|
|
82
|
+
throw new n8n_workflow_1.OperationalError('Chat session has expired.');
|
|
83
|
+
}
|
|
84
|
+
this.logger.debug(`Resuming execution ${execution.id} from waiting state for session ${sessionId}`);
|
|
85
|
+
await this.messageRepository.updateChatMessage(previousMessage.id, {
|
|
86
|
+
status: 'success',
|
|
87
|
+
});
|
|
88
|
+
void this.chatHubExecutionService.resumeChatExecution(execution, message, sessionId, user, messageId, model, workflow.responseMode);
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
69
91
|
async stopGeneration(user, sessionId, messageId) {
|
|
70
92
|
await this.ensureConversation(user.id, sessionId);
|
|
71
93
|
const message = await this.getChatMessage(sessionId, messageId, [
|
|
@@ -91,8 +113,8 @@ let ChatHubService = class ChatHubService {
|
|
|
91
113
|
async getChatSession(user, sessionId, trx) {
|
|
92
114
|
return await this.sessionRepository.getOneById(sessionId, user.id, trx);
|
|
93
115
|
}
|
|
94
|
-
async createChatSession(user, sessionId, model, credentialId, agentName, trx) {
|
|
95
|
-
await this.ensureValidModel(user, model, trx);
|
|
116
|
+
async createChatSession(user, sessionId, model, credentialId, manual, agentName, trx) {
|
|
117
|
+
await this.ensureValidModel(user, model, manual, trx);
|
|
96
118
|
const session = await this.sessionRepository.createChatSession({
|
|
97
119
|
id: sessionId,
|
|
98
120
|
ownerId: user.id,
|
|
@@ -100,6 +122,7 @@ let ChatHubService = class ChatHubService {
|
|
|
100
122
|
lastMessageAt: new Date(),
|
|
101
123
|
agentName,
|
|
102
124
|
credentialId,
|
|
125
|
+
type: manual ? 'manual' : 'production',
|
|
103
126
|
...model,
|
|
104
127
|
}, trx);
|
|
105
128
|
const enabledTools = await this.chatHubToolService.getEnabledTools(user.id, trx);
|
|
@@ -116,8 +139,8 @@ let ChatHubService = class ChatHubService {
|
|
|
116
139
|
}
|
|
117
140
|
return message;
|
|
118
141
|
}
|
|
119
|
-
async getConversations(userId, limit, cursor) {
|
|
120
|
-
const sessions = await this.sessionRepository.getManyByUserId(userId, limit + 1, cursor);
|
|
142
|
+
async getConversations(userId, limit, cursor, type) {
|
|
143
|
+
const sessions = await this.sessionRepository.getManyByUserId(userId, limit + 1, cursor, type);
|
|
121
144
|
const hasMore = sessions.length > limit;
|
|
122
145
|
const data = hasMore ? sessions.slice(0, limit) : sessions;
|
|
123
146
|
const nextCursor = hasMore ? data[data.length - 1].id : null;
|
|
@@ -171,7 +194,7 @@ let ChatHubService = class ChatHubService {
|
|
|
171
194
|
const sessionUpdates = {};
|
|
172
195
|
if (updates.agent) {
|
|
173
196
|
const model = updates.agent.model;
|
|
174
|
-
await this.ensureValidModel(user, model);
|
|
197
|
+
await this.ensureValidModel(user, model, false);
|
|
175
198
|
sessionUpdates.agentName = updates.agent.name;
|
|
176
199
|
sessionUpdates.provider = model.provider;
|
|
177
200
|
sessionUpdates.model = null;
|
|
@@ -204,7 +227,7 @@ let ChatHubService = class ChatHubService {
|
|
|
204
227
|
await this.sessionRepository.deleteChatHubSession(sessionId, trx);
|
|
205
228
|
});
|
|
206
229
|
}
|
|
207
|
-
async ensureValidModel(user, model, trx) {
|
|
230
|
+
async ensureValidModel(user, model, manual, trx) {
|
|
208
231
|
if (model.provider === 'custom-agent') {
|
|
209
232
|
const agent = await this.chatHubAgentService.getAgentById(model.agentId, user.id, trx);
|
|
210
233
|
if (!agent) {
|
|
@@ -212,11 +235,20 @@ let ChatHubService = class ChatHubService {
|
|
|
212
235
|
}
|
|
213
236
|
}
|
|
214
237
|
if (model.provider === 'n8n') {
|
|
215
|
-
const workflowEntity = await this.workflowFinderService.findWorkflowForUser(model.workflowId, user, ['workflow:execute-chat'], {
|
|
216
|
-
|
|
238
|
+
const workflowEntity = await this.workflowFinderService.findWorkflowForUser(model.workflowId, user, ['workflow:execute-chat'], {
|
|
239
|
+
includeTags: false,
|
|
240
|
+
includeParentFolder: false,
|
|
241
|
+
includeActiveVersion: manual ? false : true,
|
|
242
|
+
em: trx,
|
|
243
|
+
});
|
|
244
|
+
if (!workflowEntity) {
|
|
217
245
|
throw new bad_request_error_1.BadRequestError('Workflow not found for chat session initialization');
|
|
218
246
|
}
|
|
219
|
-
const
|
|
247
|
+
const nodes = manual ? workflowEntity.nodes : workflowEntity.activeVersion?.nodes;
|
|
248
|
+
if (!nodes) {
|
|
249
|
+
throw new bad_request_error_1.BadRequestError('Workflow not found for chat session initialization');
|
|
250
|
+
}
|
|
251
|
+
const chatTrigger = nodes.find((node) => node.type === n8n_workflow_1.CHAT_TRIGGER_NODE_TYPE);
|
|
220
252
|
if (!chatTrigger) {
|
|
221
253
|
throw new bad_request_error_1.BadRequestError('Chat trigger not found in workflow for chat session initialization');
|
|
222
254
|
}
|
|
@@ -233,7 +265,7 @@ let ChatHubService = class ChatHubService {
|
|
|
233
265
|
const result = await this.messageRepository.manager.transaction(async (trx) => {
|
|
234
266
|
let session = await this.getChatSession(user, sessionId, trx);
|
|
235
267
|
const isNewSession = !session;
|
|
236
|
-
session ??= await this.createChatSession(user, sessionId, model, credentialId, payload.agentName, trx);
|
|
268
|
+
session ??= await this.createChatSession(user, sessionId, model, credentialId, false, payload.agentName, trx);
|
|
237
269
|
const previousMessage = await this.ensurePreviousMessage(previousMessageId, sessionId, trx);
|
|
238
270
|
const messages = Object.fromEntries((session.messages ?? []).map((m) => [m.id, m]));
|
|
239
271
|
const history = this.buildMessageHistory(messages, previousMessageId);
|
|
@@ -278,25 +310,87 @@ let ChatHubService = class ChatHubService {
|
|
|
278
310
|
mimeType: a.mimeType,
|
|
279
311
|
})),
|
|
280
312
|
});
|
|
281
|
-
|
|
282
|
-
workflow
|
|
283
|
-
previousMessage
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
313
|
+
const resumed = await this.tryResumeWaitingExecution({
|
|
314
|
+
workflow,
|
|
315
|
+
previousMessage,
|
|
316
|
+
message,
|
|
317
|
+
sessionId,
|
|
318
|
+
user,
|
|
319
|
+
messageId,
|
|
320
|
+
model,
|
|
321
|
+
});
|
|
322
|
+
if (resumed)
|
|
323
|
+
return;
|
|
324
|
+
void this.executeChatWorkflowWithCleanup(user, model, workflow, sessionId, messageId, null, previousMessageId, credentials, message, processedAttachments);
|
|
325
|
+
}
|
|
326
|
+
async sendHumanMessageManual(user, payload, executionMetadata, pushRef) {
|
|
327
|
+
const { sessionId, messageId, message, model, credentials, previousMessageId, attachments, timeZone, } = payload;
|
|
328
|
+
const tz = timeZone ?? this.globalConfig.generic.timezone;
|
|
329
|
+
if (model.provider !== 'n8n') {
|
|
330
|
+
throw new bad_request_error_1.BadRequestError('Manual execution is only supported for n8n workflow agents');
|
|
331
|
+
}
|
|
332
|
+
const credentialId = this.getModelCredential(model, credentials);
|
|
333
|
+
let processedAttachments = [];
|
|
334
|
+
let workflow;
|
|
335
|
+
let previousMessage;
|
|
336
|
+
try {
|
|
337
|
+
const result = await this.messageRepository.manager.transaction(async (trx) => {
|
|
338
|
+
let session = await this.getChatSession(user, sessionId, trx);
|
|
339
|
+
session ??= await this.createChatSession(user, sessionId, model, credentialId, true, payload.agentName, trx);
|
|
340
|
+
const previousMessage = await this.ensurePreviousMessage(previousMessageId, sessionId, trx);
|
|
341
|
+
const messages = Object.fromEntries((session.messages ?? []).map((m) => [m.id, m]));
|
|
342
|
+
const history = this.buildMessageHistory(messages, previousMessageId);
|
|
343
|
+
if (attachments.length > 0) {
|
|
344
|
+
const policy = await this.chatHubWorkflowService.getAttachmentPolicy(model, user, trx, true);
|
|
345
|
+
this.chatHubAttachmentService.validateAttachments(attachments, policy.allowFileUploads, policy.allowedFilesMimeTypes);
|
|
346
|
+
}
|
|
347
|
+
processedAttachments = await this.chatHubAttachmentService.store(sessionId, messageId, attachments);
|
|
348
|
+
await this.messageRepository.createHumanMessage(payload, processedAttachments, user, previousMessageId, model, undefined, trx);
|
|
349
|
+
const tools = [];
|
|
350
|
+
const replyWorkflow = await this.chatHubWorkflowService.prepareReplyWorkflow(user, sessionId, credentials, model, history, message, tools, processedAttachments, tz, trx, executionMetadata, true);
|
|
351
|
+
return { workflow: replyWorkflow, previousMessage };
|
|
288
352
|
});
|
|
289
|
-
|
|
290
|
-
|
|
353
|
+
workflow = result.workflow;
|
|
354
|
+
previousMessage = result.previousMessage;
|
|
355
|
+
}
|
|
356
|
+
catch (error) {
|
|
357
|
+
if (processedAttachments.length > 0) {
|
|
358
|
+
try {
|
|
359
|
+
await this.chatHubAttachmentService.deleteAttachments(processedAttachments);
|
|
360
|
+
}
|
|
361
|
+
catch {
|
|
362
|
+
this.errorReporter.warn(`Could not clean up ${processedAttachments.length} files`);
|
|
363
|
+
}
|
|
291
364
|
}
|
|
292
|
-
|
|
293
|
-
await this.messageRepository.updateChatMessage(previousMessage.id, {
|
|
294
|
-
status: 'success',
|
|
295
|
-
});
|
|
296
|
-
void this.chatHubExecutionService.resumeChatExecution(execution, message, sessionId, user, messageId, model, workflow.responseMode);
|
|
297
|
-
return;
|
|
365
|
+
throw error;
|
|
298
366
|
}
|
|
299
|
-
|
|
367
|
+
if (!workflow) {
|
|
368
|
+
throw new n8n_workflow_1.UnexpectedError('Failed to prepare chat workflow.');
|
|
369
|
+
}
|
|
370
|
+
await this.chatStreamService.sendHumanMessage({
|
|
371
|
+
userId: user.id,
|
|
372
|
+
sessionId,
|
|
373
|
+
messageId,
|
|
374
|
+
previousMessageId,
|
|
375
|
+
content: message,
|
|
376
|
+
attachments: processedAttachments.map((a) => ({
|
|
377
|
+
id: a.id,
|
|
378
|
+
fileName: a.fileName ?? 'file',
|
|
379
|
+
mimeType: a.mimeType,
|
|
380
|
+
})),
|
|
381
|
+
});
|
|
382
|
+
const resumed = await this.tryResumeWaitingExecution({
|
|
383
|
+
workflow,
|
|
384
|
+
previousMessage,
|
|
385
|
+
message,
|
|
386
|
+
sessionId,
|
|
387
|
+
user,
|
|
388
|
+
messageId,
|
|
389
|
+
model,
|
|
390
|
+
});
|
|
391
|
+
if (resumed)
|
|
392
|
+
return;
|
|
393
|
+
void this.executeChatWorkflowWithCleanup(user, model, workflow, sessionId, messageId, null, previousMessageId, credentials, message, processedAttachments, pushRef);
|
|
300
394
|
}
|
|
301
395
|
async editMessage(user, payload, executionMetadata) {
|
|
302
396
|
const { sessionId, editId, messageId, message, model, credentials, timeZone } = payload;
|
|
@@ -364,6 +458,79 @@ let ChatHubService = class ChatHubService {
|
|
|
364
458
|
});
|
|
365
459
|
void this.executeChatWorkflowWithCleanup(user, model, workflow, sessionId, messageId, null, null, {}, '', []);
|
|
366
460
|
}
|
|
461
|
+
async editMessageManual(user, payload, executionMetadata, pushRef) {
|
|
462
|
+
const { sessionId, editId, messageId, message, model, credentials, timeZone } = payload;
|
|
463
|
+
const tz = timeZone ?? this.globalConfig.generic.timezone;
|
|
464
|
+
if (model.provider !== 'n8n') {
|
|
465
|
+
throw new bad_request_error_1.BadRequestError('Manual execution is only supported for n8n workflow agents');
|
|
466
|
+
}
|
|
467
|
+
let result = null;
|
|
468
|
+
let newStoredAttachments = [];
|
|
469
|
+
try {
|
|
470
|
+
result = await this.messageRepository.manager.transaction(async (trx) => {
|
|
471
|
+
const session = await this.getChatSession(user, sessionId, trx);
|
|
472
|
+
if (!session) {
|
|
473
|
+
throw new not_found_error_1.NotFoundError('Chat session not found');
|
|
474
|
+
}
|
|
475
|
+
const messageToEdit = await this.getChatMessage(session.id, editId, [], trx);
|
|
476
|
+
if (messageToEdit.type === 'ai') {
|
|
477
|
+
throw new bad_request_error_1.BadRequestError('Editing AI messages is not supported');
|
|
478
|
+
}
|
|
479
|
+
if (messageToEdit.type === 'human') {
|
|
480
|
+
const messages = Object.fromEntries((session.messages ?? []).map((m) => [m.id, m]));
|
|
481
|
+
const history = this.buildMessageHistory(messages, messageToEdit.previousMessageId);
|
|
482
|
+
const revisionOfMessageId = messageToEdit.revisionOfMessageId ?? messageToEdit.id;
|
|
483
|
+
const originalAttachments = messageToEdit.attachments ?? [];
|
|
484
|
+
const keptAttachments = payload.keepAttachmentIndices.flatMap((index) => {
|
|
485
|
+
const attachment = originalAttachments[index];
|
|
486
|
+
return attachment ? [attachment] : [];
|
|
487
|
+
});
|
|
488
|
+
if (payload.newAttachments.length > 0) {
|
|
489
|
+
const policy = await this.chatHubWorkflowService.getAttachmentPolicy(model, user, trx, true);
|
|
490
|
+
this.chatHubAttachmentService.validateAttachments(payload.newAttachments, policy.allowFileUploads, policy.allowedFilesMimeTypes);
|
|
491
|
+
}
|
|
492
|
+
newStoredAttachments =
|
|
493
|
+
payload.newAttachments.length > 0
|
|
494
|
+
? await this.chatHubAttachmentService.store(sessionId, messageId, payload.newAttachments)
|
|
495
|
+
: [];
|
|
496
|
+
const attachments = [...keptAttachments, ...newStoredAttachments];
|
|
497
|
+
await this.messageRepository.createHumanMessage(payload, attachments, user, messageToEdit.previousMessageId, model, revisionOfMessageId, trx);
|
|
498
|
+
const tools = [];
|
|
499
|
+
const workflow = await this.chatHubWorkflowService.prepareReplyWorkflow(user, sessionId, credentials, model, history, message, tools, attachments, tz, trx, executionMetadata, true);
|
|
500
|
+
return { workflow, combinedAttachments: attachments };
|
|
501
|
+
}
|
|
502
|
+
throw new bad_request_error_1.BadRequestError('Only human and AI messages can be edited');
|
|
503
|
+
});
|
|
504
|
+
}
|
|
505
|
+
catch (error) {
|
|
506
|
+
if (newStoredAttachments.length > 0) {
|
|
507
|
+
try {
|
|
508
|
+
await this.chatHubAttachmentService.deleteAttachments(newStoredAttachments);
|
|
509
|
+
}
|
|
510
|
+
catch {
|
|
511
|
+
this.errorReporter.warn(`Could not clean up ${newStoredAttachments.length} files`);
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
throw error;
|
|
515
|
+
}
|
|
516
|
+
if (!result?.workflow) {
|
|
517
|
+
return;
|
|
518
|
+
}
|
|
519
|
+
const { workflow } = result;
|
|
520
|
+
await this.chatStreamService.sendMessageEdit({
|
|
521
|
+
userId: user.id,
|
|
522
|
+
sessionId,
|
|
523
|
+
revisionOfMessageId: editId,
|
|
524
|
+
messageId,
|
|
525
|
+
content: message,
|
|
526
|
+
attachments: result.combinedAttachments.map((a) => ({
|
|
527
|
+
id: a.id,
|
|
528
|
+
fileName: a.fileName ?? 'file',
|
|
529
|
+
mimeType: a.mimeType,
|
|
530
|
+
})),
|
|
531
|
+
});
|
|
532
|
+
void this.executeChatWorkflowWithCleanup(user, model, workflow, sessionId, messageId, null, null, {}, '', [], pushRef);
|
|
533
|
+
}
|
|
367
534
|
async regenerateAIMessage(user, payload, executionMetadata) {
|
|
368
535
|
const { sessionId, retryId, model, credentials, timeZone } = payload;
|
|
369
536
|
const tz = timeZone ?? this.globalConfig.generic.timezone;
|
|
@@ -399,6 +566,44 @@ let ChatHubService = class ChatHubService {
|
|
|
399
566
|
});
|
|
400
567
|
void this.executeChatWorkflowWithCleanup(user, model, workflow, sessionId, previousMessageId, retryOfMessageId, null, {}, '', []);
|
|
401
568
|
}
|
|
569
|
+
async regenerateAIMessageManual(user, payload, executionMetadata, pushRef) {
|
|
570
|
+
const { sessionId, retryId, model, credentials, timeZone } = payload;
|
|
571
|
+
const tz = timeZone ?? this.globalConfig.generic.timezone;
|
|
572
|
+
if (model.provider !== 'n8n') {
|
|
573
|
+
throw new bad_request_error_1.BadRequestError('Manual execution is only supported for n8n workflow agents');
|
|
574
|
+
}
|
|
575
|
+
const { retryOfMessageId, previousMessageId, workflow } = await this.messageRepository.manager.transaction(async (trx) => {
|
|
576
|
+
const session = await this.getChatSession(user, sessionId, trx);
|
|
577
|
+
if (!session) {
|
|
578
|
+
throw new not_found_error_1.NotFoundError('Chat session not found');
|
|
579
|
+
}
|
|
580
|
+
const messageToRetry = await this.getChatMessage(session.id, retryId, [], trx);
|
|
581
|
+
if (messageToRetry.type !== 'ai') {
|
|
582
|
+
throw new bad_request_error_1.BadRequestError('Can only retry AI messages');
|
|
583
|
+
}
|
|
584
|
+
const messages = Object.fromEntries((session.messages ?? []).map((m) => [m.id, m]));
|
|
585
|
+
const history = this.buildMessageHistory(messages, messageToRetry.previousMessageId);
|
|
586
|
+
const lastHumanMessage = history.filter((m) => m.type === 'human').pop();
|
|
587
|
+
if (!lastHumanMessage) {
|
|
588
|
+
throw new bad_request_error_1.BadRequestError('No human message found to base the retry on');
|
|
589
|
+
}
|
|
590
|
+
const lastHumanMessageIndex = history.indexOf(lastHumanMessage);
|
|
591
|
+
if (lastHumanMessageIndex !== -1) {
|
|
592
|
+
history.splice(lastHumanMessageIndex);
|
|
593
|
+
}
|
|
594
|
+
const retryOfMessageId = messageToRetry.retryOfMessageId ?? messageToRetry.id;
|
|
595
|
+
const message = lastHumanMessage ? lastHumanMessage.content : '';
|
|
596
|
+
const attachments = lastHumanMessage.attachments ?? [];
|
|
597
|
+
const tools = [];
|
|
598
|
+
const workflow = await this.chatHubWorkflowService.prepareReplyWorkflow(user, sessionId, credentials, model, history, message, tools, attachments, tz, trx, executionMetadata, true);
|
|
599
|
+
return {
|
|
600
|
+
previousMessageId: lastHumanMessage.id,
|
|
601
|
+
retryOfMessageId,
|
|
602
|
+
workflow,
|
|
603
|
+
};
|
|
604
|
+
});
|
|
605
|
+
void this.executeChatWorkflowWithCleanup(user, model, workflow, sessionId, previousMessageId, retryOfMessageId, null, {}, '', [], pushRef);
|
|
606
|
+
}
|
|
402
607
|
async reconnectToStream(sessionId, lastReceivedSequence) {
|
|
403
608
|
const hasActiveStream = await this.chatStreamService.hasActiveStream(sessionId);
|
|
404
609
|
const currentMessageId = await this.chatStreamService.getCurrentMessageId(sessionId);
|
|
@@ -412,9 +617,9 @@ let ChatHubService = class ChatHubService {
|
|
|
412
617
|
: lastReceivedSequence,
|
|
413
618
|
};
|
|
414
619
|
}
|
|
415
|
-
async executeChatWorkflowWithCleanup(user, model, workflow, sessionId, previousMessageId, retryOfMessageId, originalPreviousMessageId, credentials, humanMessage, processedAttachments) {
|
|
416
|
-
await this.chatHubExecutionService.executeChatWorkflowWithCleanup(user, model, workflow.workflowData, workflow.executionData, sessionId, previousMessageId, retryOfMessageId, workflow.responseMode);
|
|
417
|
-
if (originalPreviousMessageId === null && humanMessage) {
|
|
620
|
+
async executeChatWorkflowWithCleanup(user, model, workflow, sessionId, previousMessageId, retryOfMessageId, originalPreviousMessageId, credentials, humanMessage, processedAttachments, pushRef) {
|
|
621
|
+
await this.chatHubExecutionService.executeChatWorkflowWithCleanup(user, model, workflow.workflowData, workflow.executionData, sessionId, previousMessageId, retryOfMessageId, workflow.responseMode, pushRef);
|
|
622
|
+
if (originalPreviousMessageId === null && humanMessage && !pushRef) {
|
|
418
623
|
try {
|
|
419
624
|
await this.chatHubTitleService.generateSessionTitle(user, sessionId, humanMessage, processedAttachments, credentials, model);
|
|
420
625
|
}
|
|
@@ -465,6 +670,7 @@ let ChatHubService = class ChatHubService {
|
|
|
465
670
|
agentId: session.agentId,
|
|
466
671
|
agentName: agent?.name ?? session.agentName ?? session.model ?? '',
|
|
467
672
|
agentIcon: agent?.icon ?? null,
|
|
673
|
+
type: session.type ?? 'production',
|
|
468
674
|
createdAt: session.createdAt.toISOString(),
|
|
469
675
|
updatedAt: session.updatedAt.toISOString(),
|
|
470
676
|
toolIds,
|