@aichatwar/shared 1.0.107 → 1.0.109
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.
|
@@ -39,3 +39,35 @@ export interface MessageDeletedEvent {
|
|
|
39
39
|
deletedAt: string;
|
|
40
40
|
};
|
|
41
41
|
}
|
|
42
|
+
export interface AiMessageCreatedEvent {
|
|
43
|
+
subject: Subjects.AiMessageCreated;
|
|
44
|
+
data: {
|
|
45
|
+
messageId: string;
|
|
46
|
+
roomId: string;
|
|
47
|
+
senderId: string;
|
|
48
|
+
senderType: 'human' | 'agent';
|
|
49
|
+
content: string;
|
|
50
|
+
attachments?: Array<{
|
|
51
|
+
url: string;
|
|
52
|
+
type: string;
|
|
53
|
+
meta: any;
|
|
54
|
+
}>;
|
|
55
|
+
createdAt: string;
|
|
56
|
+
dedupeKey: string;
|
|
57
|
+
aiReceivers: Array<{
|
|
58
|
+
agentId: string;
|
|
59
|
+
ownerUserId: string;
|
|
60
|
+
}>;
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
export interface AiMessageReplyEvent {
|
|
64
|
+
subject: Subjects.AiMessageReply;
|
|
65
|
+
data: {
|
|
66
|
+
originalMessageId: string;
|
|
67
|
+
roomId: string;
|
|
68
|
+
agentId: string;
|
|
69
|
+
ownerUserId: string;
|
|
70
|
+
content: string;
|
|
71
|
+
tempId?: string;
|
|
72
|
+
};
|
|
73
|
+
}
|
|
@@ -33,5 +33,7 @@ export declare enum Subjects {
|
|
|
33
33
|
MessageRead = "message.read",
|
|
34
34
|
MessageDeleted = "message.deleted",
|
|
35
35
|
MessageIngest = "message.ingest",
|
|
36
|
+
AiMessageCreated = "ai.message.created",
|
|
37
|
+
AiMessageReply = "ai.message.reply",
|
|
36
38
|
PresenceUpdated = "presence.updated"
|
|
37
39
|
}
|
package/build/events/subjects.js
CHANGED
|
@@ -37,5 +37,7 @@ var Subjects;
|
|
|
37
37
|
Subjects["MessageRead"] = "message.read";
|
|
38
38
|
Subjects["MessageDeleted"] = "message.deleted";
|
|
39
39
|
Subjects["MessageIngest"] = "message.ingest";
|
|
40
|
+
Subjects["AiMessageCreated"] = "ai.message.created";
|
|
41
|
+
Subjects["AiMessageReply"] = "ai.message.reply";
|
|
40
42
|
Subjects["PresenceUpdated"] = "presence.updated";
|
|
41
43
|
})(Subjects || (exports.Subjects = Subjects = {}));
|
|
@@ -8,18 +8,31 @@ const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
|
|
|
8
8
|
;
|
|
9
9
|
const extractJWTPayload = (req, res, next) => {
|
|
10
10
|
var _a;
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
let token;
|
|
12
|
+
// First, try to get token from session (cookie-based auth for web)
|
|
13
|
+
if ((_a = req.session) === null || _a === void 0 ? void 0 : _a.jwt) {
|
|
14
|
+
token = req.session.jwt;
|
|
13
15
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
catch (error) {
|
|
20
|
-
console.log(error.message);
|
|
16
|
+
// If no session token, try to get from Authorization header (Bearer token for mobile)
|
|
17
|
+
else if (req.headers.authorization) {
|
|
18
|
+
const authHeader = req.headers.authorization;
|
|
19
|
+
if (authHeader.startsWith('Bearer ')) {
|
|
20
|
+
token = authHeader.substring(7); // Remove 'Bearer ' prefix
|
|
21
21
|
}
|
|
22
|
+
}
|
|
23
|
+
// If no token found, continue without setting jwtPayload
|
|
24
|
+
if (!token) {
|
|
22
25
|
return next();
|
|
23
26
|
}
|
|
27
|
+
// Verify and extract JWT payload
|
|
28
|
+
try {
|
|
29
|
+
const payload = jsonwebtoken_1.default.verify(token, process.env.JWT_DEV);
|
|
30
|
+
req.jwtPayload = payload;
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
console.log(`JWT verification failed: ${error.message}`);
|
|
34
|
+
// Continue without setting jwtPayload - loginRequired middleware will handle 401
|
|
35
|
+
}
|
|
36
|
+
return next();
|
|
24
37
|
};
|
|
25
38
|
exports.extractJWTPayload = extractJWTPayload;
|