@mono-agent/whatsapp-adapter 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +53 -0
- package/dist/adapter.d.ts +127 -0
- package/dist/adapter.d.ts.map +1 -0
- package/dist/adapter.js +300 -0
- package/dist/adapter.js.map +1 -0
- package/dist/baileys-socket.d.ts +16 -0
- package/dist/baileys-socket.d.ts.map +1 -0
- package/dist/baileys-socket.js +22 -0
- package/dist/baileys-socket.js.map +1 -0
- package/dist/config.d.ts +51 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +117 -0
- package/dist/config.js.map +1 -0
- package/dist/event-runner.d.ts +52 -0
- package/dist/event-runner.d.ts.map +1 -0
- package/dist/event-runner.js +174 -0
- package/dist/event-runner.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/message-normalizer.d.ts +14 -0
- package/dist/message-normalizer.d.ts.map +1 -0
- package/dist/message-normalizer.js +145 -0
- package/dist/message-normalizer.js.map +1 -0
- package/dist/message-stream.d.ts +37 -0
- package/dist/message-stream.d.ts.map +1 -0
- package/dist/message-stream.js +83 -0
- package/dist/message-stream.js.map +1 -0
- package/dist/start.d.ts +57 -0
- package/dist/start.d.ts.map +1 -0
- package/dist/start.js +95 -0
- package/dist/start.js.map +1 -0
- package/dist/types.d.ts +71 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +33 -0
package/README.md
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# @mono-agent/whatsapp-adapter
|
|
2
|
+
|
|
3
|
+
## Category
|
|
4
|
+
|
|
5
|
+
Category: `communication`
|
|
6
|
+
|
|
7
|
+
## Responsibility
|
|
8
|
+
|
|
9
|
+
WhatsApp communication adapter for agent hosts using Baileys-compatible sockets. It normalizes WhatsApp messages, handles direct and group mention triggers, streams replies, supports cancellation, and enforces explicit chat allowlists or allow-all mode.
|
|
10
|
+
|
|
11
|
+
## Install / Usage
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
pnpm --filter @mono-agent/whatsapp-adapter run build
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
import {
|
|
19
|
+
WhatsAppAdapter,
|
|
20
|
+
WhatsAppEventRunner,
|
|
21
|
+
createBaileysWhatsAppSocket,
|
|
22
|
+
loadWhatsAppAdapterConfig,
|
|
23
|
+
whatsappFieldGroup,
|
|
24
|
+
} from "@mono-agent/whatsapp-adapter";
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Hosts provide a Baileys socket, adapter options, and a structural `AgentResponder`. The base responder, stream, response, and cancellation contracts come from `@mono-agent/agent-contracts`.
|
|
28
|
+
|
|
29
|
+
## Public API
|
|
30
|
+
|
|
31
|
+
- `WhatsAppAdapter`, `WhatsAppAdapterOptions`
|
|
32
|
+
- `WhatsAppEventRunner`
|
|
33
|
+
- `createBaileysWhatsAppSocket`
|
|
34
|
+
- `normalizeWhatsAppMessage`, `isGroupJid`
|
|
35
|
+
- `WhatsAppMessageStream`, `splitWhatsAppText`
|
|
36
|
+
- `loadWhatsAppAdapterConfig`, `redactWhatsAppAdapterConfig`, `whatsappFieldGroup`
|
|
37
|
+
- WhatsApp socket, message, trigger, config, and event-runner types
|
|
38
|
+
|
|
39
|
+
## Dependency Boundary
|
|
40
|
+
|
|
41
|
+
This adapter depends on Baileys plus shared contracts/settings primitives, but must not depend on the harness, operator console, core config, another communication adapter, memory, or runtime package. It communicates through structural responder and socket interfaces.
|
|
42
|
+
|
|
43
|
+
## What This Package Does Not Own
|
|
44
|
+
|
|
45
|
+
It does not manage QR/login persistence policy, build prompts, run models, store memory, expose UI, or define core core agent settings.
|
|
46
|
+
|
|
47
|
+
## Verification
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
pnpm --filter @mono-agent/whatsapp-adapter run build
|
|
51
|
+
pnpm --filter @mono-agent/whatsapp-adapter run typecheck
|
|
52
|
+
pnpm --filter @mono-agent/whatsapp-adapter run test
|
|
53
|
+
```
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { type AgentMessageStream, type AgentRequestBase, type AgentResponder as SharedAgentResponder, type AgentResponse } from "@mono-agent/agent-contracts";
|
|
2
|
+
import { type WhatsAppMessageIgnoredReason } from "./message-normalizer.js";
|
|
3
|
+
import { type WhatsAppMessageStreamLogger } from "./message-stream.js";
|
|
4
|
+
import type { WhatsAppChatKind, WhatsAppJid, WhatsAppRawMessage, WhatsAppSocketLike } from "./types.js";
|
|
5
|
+
export type WhatsAppGroupTriggerMode = "mention" | "any";
|
|
6
|
+
export type WhatsAppTriggerKind = "direct" | "group_mention" | "group_any";
|
|
7
|
+
export interface WhatsAppTriggerOptions {
|
|
8
|
+
groupMode?: WhatsAppGroupTriggerMode;
|
|
9
|
+
botJids?: WhatsAppJid[];
|
|
10
|
+
mentionTextAliases?: string[];
|
|
11
|
+
stripMentionText?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface AgentRequest extends AgentRequestBase {
|
|
14
|
+
conversationId: string;
|
|
15
|
+
chatJid: WhatsAppJid;
|
|
16
|
+
remoteJid: WhatsAppJid;
|
|
17
|
+
chatKind: WhatsAppChatKind;
|
|
18
|
+
senderJid?: WhatsAppJid;
|
|
19
|
+
participantJid?: WhatsAppJid;
|
|
20
|
+
messageId?: string;
|
|
21
|
+
text: string;
|
|
22
|
+
trigger: WhatsAppTriggerKind;
|
|
23
|
+
abortSignal: AbortSignal;
|
|
24
|
+
metadata: {
|
|
25
|
+
whatsapp: WhatsAppRequestMetadata;
|
|
26
|
+
[key: string]: unknown;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export interface WhatsAppRequestMetadata {
|
|
30
|
+
chat: {
|
|
31
|
+
jid: WhatsAppJid;
|
|
32
|
+
kind: WhatsAppChatKind;
|
|
33
|
+
};
|
|
34
|
+
message: {
|
|
35
|
+
id?: string;
|
|
36
|
+
timestamp?: number;
|
|
37
|
+
};
|
|
38
|
+
sender?: {
|
|
39
|
+
jid: WhatsAppJid;
|
|
40
|
+
pushName?: string;
|
|
41
|
+
};
|
|
42
|
+
participantJid?: WhatsAppJid;
|
|
43
|
+
mentionedJids: WhatsAppJid[];
|
|
44
|
+
trigger: WhatsAppTriggerKind;
|
|
45
|
+
}
|
|
46
|
+
export type { AgentResponse };
|
|
47
|
+
export type AgentResponder = SharedAgentResponder<AgentRequest, AgentMessageStream, AgentResponse>;
|
|
48
|
+
export interface WhatsAppAdapterMessages {
|
|
49
|
+
welcomeText?: string;
|
|
50
|
+
helpText?: string;
|
|
51
|
+
busyText?: string;
|
|
52
|
+
unauthorizedText?: string;
|
|
53
|
+
cancelledText?: string;
|
|
54
|
+
errorText?: string;
|
|
55
|
+
unsupportedText?: string;
|
|
56
|
+
mentionRequiredText?: string;
|
|
57
|
+
}
|
|
58
|
+
export interface WhatsAppAdapterStreamOptions {
|
|
59
|
+
initialStatusText?: string;
|
|
60
|
+
sendInitialStatus?: boolean;
|
|
61
|
+
maxMessageChars?: number;
|
|
62
|
+
}
|
|
63
|
+
export interface WhatsAppAdapterLogger extends WhatsAppMessageStreamLogger {
|
|
64
|
+
info?(message: string, metadata?: Record<string, unknown>): void;
|
|
65
|
+
}
|
|
66
|
+
export interface WhatsAppAdapterOptions {
|
|
67
|
+
socket: WhatsAppSocketLike;
|
|
68
|
+
responder: AgentResponder;
|
|
69
|
+
allowedChatJids?: WhatsAppJid[];
|
|
70
|
+
allowAllChats?: boolean;
|
|
71
|
+
trigger?: WhatsAppTriggerOptions;
|
|
72
|
+
stream?: WhatsAppAdapterStreamOptions;
|
|
73
|
+
messages?: WhatsAppAdapterMessages;
|
|
74
|
+
logger?: WhatsAppAdapterLogger;
|
|
75
|
+
}
|
|
76
|
+
export type WhatsAppAdapterIgnoredReason = WhatsAppMessageIgnoredReason | "mention_required" | "non_message_update" | "history_sync_ignored";
|
|
77
|
+
export type WhatsAppMessageHandlingResult = {
|
|
78
|
+
kind: "handled";
|
|
79
|
+
chatJid: WhatsAppJid;
|
|
80
|
+
messageId?: string;
|
|
81
|
+
action: "command" | "responded";
|
|
82
|
+
command?: "start" | "help";
|
|
83
|
+
trigger: WhatsAppTriggerKind;
|
|
84
|
+
metadata?: Record<string, unknown>;
|
|
85
|
+
} | {
|
|
86
|
+
kind: "ignored";
|
|
87
|
+
reason: WhatsAppAdapterIgnoredReason;
|
|
88
|
+
chatJid?: WhatsAppJid;
|
|
89
|
+
messageId?: string;
|
|
90
|
+
} | {
|
|
91
|
+
kind: "unauthorized";
|
|
92
|
+
chatJid: WhatsAppJid;
|
|
93
|
+
messageId?: string;
|
|
94
|
+
} | {
|
|
95
|
+
kind: "busy";
|
|
96
|
+
chatJid: WhatsAppJid;
|
|
97
|
+
messageId?: string;
|
|
98
|
+
} | {
|
|
99
|
+
kind: "cancelled";
|
|
100
|
+
chatJid: WhatsAppJid;
|
|
101
|
+
messageId?: string;
|
|
102
|
+
} | {
|
|
103
|
+
kind: "error";
|
|
104
|
+
chatJid?: WhatsAppJid;
|
|
105
|
+
messageId?: string;
|
|
106
|
+
error: unknown;
|
|
107
|
+
};
|
|
108
|
+
export declare class WhatsAppAdapter {
|
|
109
|
+
private readonly socket;
|
|
110
|
+
private readonly responder;
|
|
111
|
+
private readonly allowAllChats;
|
|
112
|
+
private readonly allowedChatJids;
|
|
113
|
+
private readonly triggerOptions;
|
|
114
|
+
private readonly streamOptions;
|
|
115
|
+
private readonly messages;
|
|
116
|
+
private readonly logger;
|
|
117
|
+
private readonly activeRuns;
|
|
118
|
+
constructor(options: WhatsAppAdapterOptions);
|
|
119
|
+
handleMessage(rawMessage: WhatsAppRawMessage): Promise<WhatsAppMessageHandlingResult>;
|
|
120
|
+
private handleIgnoredMessage;
|
|
121
|
+
private respondToMessage;
|
|
122
|
+
private resolveTrigger;
|
|
123
|
+
private stripMentionAliases;
|
|
124
|
+
private isAuthorized;
|
|
125
|
+
private sendText;
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/adapter.js
ADDED
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
import { isAgentResponseCancelledError, } from "@mono-agent/agent-contracts";
|
|
2
|
+
import { normalizeWhatsAppMessage, } from "./message-normalizer.js";
|
|
3
|
+
import { WhatsAppMessageStream, } from "./message-stream.js";
|
|
4
|
+
const DEFAULT_MESSAGES = {
|
|
5
|
+
welcomeText: "Hello! Send me a WhatsApp text message and I will pass it to the configured agent.",
|
|
6
|
+
helpText: "Send a text message to talk to the agent. Use /cancel to stop the current response.",
|
|
7
|
+
busyText: "I am still working on your previous message. Use /cancel to stop it.",
|
|
8
|
+
unauthorizedText: "This WhatsApp chat is not authorized to use this bot.",
|
|
9
|
+
cancelledText: "Cancelled.",
|
|
10
|
+
errorText: "The agent failed while processing your message.",
|
|
11
|
+
unsupportedText: "I can only handle WhatsApp text messages in this adapter for now.",
|
|
12
|
+
mentionRequiredText: "Mention this bot to trigger the agent in this group.",
|
|
13
|
+
};
|
|
14
|
+
const DEFAULT_STREAM_OPTIONS = {
|
|
15
|
+
initialStatusText: "Thinking…",
|
|
16
|
+
sendInitialStatus: true,
|
|
17
|
+
maxMessageChars: 3_800,
|
|
18
|
+
};
|
|
19
|
+
export class WhatsAppAdapter {
|
|
20
|
+
socket;
|
|
21
|
+
responder;
|
|
22
|
+
allowAllChats;
|
|
23
|
+
allowedChatJids;
|
|
24
|
+
triggerOptions;
|
|
25
|
+
streamOptions;
|
|
26
|
+
messages;
|
|
27
|
+
logger;
|
|
28
|
+
activeRuns = new Map();
|
|
29
|
+
constructor(options) {
|
|
30
|
+
this.socket = options.socket;
|
|
31
|
+
this.responder = options.responder;
|
|
32
|
+
this.allowAllChats = options.allowAllChats === true;
|
|
33
|
+
this.allowedChatJids = new Set(options.allowedChatJids?.map((chatJid) => normalizeJidForMatch(chatJid)) ?? []);
|
|
34
|
+
const mentionTextAliases = options.trigger?.mentionTextAliases ?? [];
|
|
35
|
+
this.triggerOptions = {
|
|
36
|
+
groupMode: options.trigger?.groupMode ?? "mention",
|
|
37
|
+
botJids: options.trigger?.botJids ?? [],
|
|
38
|
+
mentionTextAliases,
|
|
39
|
+
stripMentionText: options.trigger?.stripMentionText ?? mentionTextAliases.length > 0,
|
|
40
|
+
};
|
|
41
|
+
this.streamOptions = { ...DEFAULT_STREAM_OPTIONS, ...options.stream };
|
|
42
|
+
this.messages = { ...DEFAULT_MESSAGES, ...options.messages };
|
|
43
|
+
this.logger = options.logger;
|
|
44
|
+
if (!this.allowAllChats && this.allowedChatJids.size === 0) {
|
|
45
|
+
throw new TypeError("WhatsAppAdapter requires allowedChatJids or allowAllChats: true.");
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
async handleMessage(rawMessage) {
|
|
49
|
+
const normalized = normalizeWhatsAppMessage(rawMessage);
|
|
50
|
+
if (normalized.kind === "ignored") {
|
|
51
|
+
return await this.handleIgnoredMessage(normalized);
|
|
52
|
+
}
|
|
53
|
+
const message = normalized.message;
|
|
54
|
+
if (!this.isAuthorized(message.chatJid)) {
|
|
55
|
+
await this.sendText(message.chatJid, this.messages.unauthorizedText);
|
|
56
|
+
return withMessageId({ kind: "unauthorized", chatJid: message.chatJid }, message.messageId);
|
|
57
|
+
}
|
|
58
|
+
const trigger = this.resolveTrigger(message);
|
|
59
|
+
if (trigger === undefined) {
|
|
60
|
+
this.logger?.debug?.("WhatsApp group message ignored because mention is required.", {
|
|
61
|
+
chatJid: message.chatJid,
|
|
62
|
+
messageId: message.messageId,
|
|
63
|
+
});
|
|
64
|
+
return withMessageId({ kind: "ignored", reason: "mention_required", chatJid: message.chatJid }, message.messageId);
|
|
65
|
+
}
|
|
66
|
+
if (trigger.text.length === 0) {
|
|
67
|
+
await this.sendText(message.chatJid, this.messages.unsupportedText);
|
|
68
|
+
return withMessageId({ kind: "ignored", reason: "empty_text", chatJid: message.chatJid }, message.messageId);
|
|
69
|
+
}
|
|
70
|
+
const command = parseCommand(trigger.text);
|
|
71
|
+
if (command?.name === "start") {
|
|
72
|
+
await this.sendText(message.chatJid, this.messages.welcomeText);
|
|
73
|
+
return withMessageId({
|
|
74
|
+
kind: "handled",
|
|
75
|
+
chatJid: message.chatJid,
|
|
76
|
+
action: "command",
|
|
77
|
+
command: "start",
|
|
78
|
+
trigger: trigger.kind,
|
|
79
|
+
}, message.messageId);
|
|
80
|
+
}
|
|
81
|
+
if (command?.name === "help") {
|
|
82
|
+
await this.sendText(message.chatJid, this.messages.helpText);
|
|
83
|
+
return withMessageId({
|
|
84
|
+
kind: "handled",
|
|
85
|
+
chatJid: message.chatJid,
|
|
86
|
+
action: "command",
|
|
87
|
+
command: "help",
|
|
88
|
+
trigger: trigger.kind,
|
|
89
|
+
}, message.messageId);
|
|
90
|
+
}
|
|
91
|
+
const runKey = message.chatJid;
|
|
92
|
+
const activeRun = this.activeRuns.get(runKey);
|
|
93
|
+
if (command?.name === "cancel") {
|
|
94
|
+
if (activeRun !== undefined) {
|
|
95
|
+
activeRun.controller.abort(new Error("Cancelled by WhatsApp user."));
|
|
96
|
+
}
|
|
97
|
+
await this.sendText(message.chatJid, this.messages.cancelledText);
|
|
98
|
+
return withMessageId({ kind: "cancelled", chatJid: message.chatJid }, message.messageId);
|
|
99
|
+
}
|
|
100
|
+
if (activeRun !== undefined) {
|
|
101
|
+
await this.sendText(message.chatJid, this.messages.busyText);
|
|
102
|
+
return withMessageId({ kind: "busy", chatJid: message.chatJid }, message.messageId);
|
|
103
|
+
}
|
|
104
|
+
return await this.respondToMessage(message, trigger, runKey);
|
|
105
|
+
}
|
|
106
|
+
async handleIgnoredMessage(ignored) {
|
|
107
|
+
if (ignored.chatJid === undefined) {
|
|
108
|
+
return ignored;
|
|
109
|
+
}
|
|
110
|
+
const silentReason = ignored.reason === "from_self" ||
|
|
111
|
+
ignored.reason === "status_broadcast_ignored" ||
|
|
112
|
+
ignored.reason === "broadcast_ignored";
|
|
113
|
+
if (silentReason) {
|
|
114
|
+
return ignored;
|
|
115
|
+
}
|
|
116
|
+
if (!this.isAuthorized(ignored.chatJid)) {
|
|
117
|
+
await this.sendText(ignored.chatJid, this.messages.unauthorizedText);
|
|
118
|
+
return withMessageId({ kind: "unauthorized", chatJid: ignored.chatJid }, ignored.messageId);
|
|
119
|
+
}
|
|
120
|
+
await this.sendText(ignored.chatJid, this.messages.unsupportedText);
|
|
121
|
+
return ignored;
|
|
122
|
+
}
|
|
123
|
+
async respondToMessage(message, trigger, runKey) {
|
|
124
|
+
const controller = new AbortController();
|
|
125
|
+
const activeRun = { controller };
|
|
126
|
+
this.activeRuns.set(runKey, activeRun);
|
|
127
|
+
const streamOptions = {
|
|
128
|
+
socket: this.socket,
|
|
129
|
+
chatJid: message.chatJid,
|
|
130
|
+
initialStatusText: this.streamOptions.initialStatusText,
|
|
131
|
+
sendInitialStatus: this.streamOptions.sendInitialStatus,
|
|
132
|
+
maxMessageChars: this.streamOptions.maxMessageChars,
|
|
133
|
+
quotedMessage: message.raw,
|
|
134
|
+
};
|
|
135
|
+
if (this.logger !== undefined) {
|
|
136
|
+
streamOptions.logger = this.logger;
|
|
137
|
+
}
|
|
138
|
+
const stream = new WhatsAppMessageStream(streamOptions);
|
|
139
|
+
try {
|
|
140
|
+
await stream.status(this.streamOptions.initialStatusText);
|
|
141
|
+
if (controller.signal.aborted) {
|
|
142
|
+
await stream.finish(this.messages.cancelledText);
|
|
143
|
+
return withMessageId({ kind: "cancelled", chatJid: message.chatJid }, message.messageId);
|
|
144
|
+
}
|
|
145
|
+
const request = buildAgentRequest(message, trigger, controller.signal);
|
|
146
|
+
const response = await this.responder.respond(request, stream);
|
|
147
|
+
if (controller.signal.aborted) {
|
|
148
|
+
await stream.finish(this.messages.cancelledText);
|
|
149
|
+
return withMessageId({ kind: "cancelled", chatJid: message.chatJid }, message.messageId);
|
|
150
|
+
}
|
|
151
|
+
await stream.finish(response.text);
|
|
152
|
+
const result = {
|
|
153
|
+
kind: "handled",
|
|
154
|
+
chatJid: message.chatJid,
|
|
155
|
+
action: "responded",
|
|
156
|
+
trigger: trigger.kind,
|
|
157
|
+
};
|
|
158
|
+
if (message.messageId !== undefined) {
|
|
159
|
+
result.messageId = message.messageId;
|
|
160
|
+
}
|
|
161
|
+
if (response.metadata !== undefined) {
|
|
162
|
+
result.metadata = response.metadata;
|
|
163
|
+
}
|
|
164
|
+
return result;
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
if (controller.signal.aborted || isAgentResponseCancelledError(error)) {
|
|
168
|
+
await finishSafely(stream, this.messages.cancelledText, this.logger);
|
|
169
|
+
return withMessageId({ kind: "cancelled", chatJid: message.chatJid }, message.messageId);
|
|
170
|
+
}
|
|
171
|
+
this.logger?.error?.("WhatsApp adapter responder failed.", {
|
|
172
|
+
error: error instanceof Error ? error.message : String(error),
|
|
173
|
+
});
|
|
174
|
+
await finishSafely(stream, this.messages.errorText, this.logger);
|
|
175
|
+
const result = {
|
|
176
|
+
kind: "error",
|
|
177
|
+
chatJid: message.chatJid,
|
|
178
|
+
error,
|
|
179
|
+
};
|
|
180
|
+
if (message.messageId !== undefined) {
|
|
181
|
+
result.messageId = message.messageId;
|
|
182
|
+
}
|
|
183
|
+
return result;
|
|
184
|
+
}
|
|
185
|
+
finally {
|
|
186
|
+
if (this.activeRuns.get(runKey) === activeRun) {
|
|
187
|
+
this.activeRuns.delete(runKey);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
resolveTrigger(message) {
|
|
192
|
+
if (message.chatKind === "direct") {
|
|
193
|
+
return { kind: "direct", text: this.stripMentionAliases(message.text).trim() };
|
|
194
|
+
}
|
|
195
|
+
if (this.triggerOptions.groupMode === "any") {
|
|
196
|
+
return { kind: "group_any", text: this.stripMentionAliases(message.text).trim() };
|
|
197
|
+
}
|
|
198
|
+
if (!mentionsAnyBotJid(message.mentionedJids, this.triggerOptions.botJids)) {
|
|
199
|
+
return undefined;
|
|
200
|
+
}
|
|
201
|
+
return { kind: "group_mention", text: this.stripMentionAliases(message.text).trim() };
|
|
202
|
+
}
|
|
203
|
+
stripMentionAliases(text) {
|
|
204
|
+
if (!this.triggerOptions.stripMentionText) {
|
|
205
|
+
return text;
|
|
206
|
+
}
|
|
207
|
+
let stripped = text;
|
|
208
|
+
for (const alias of this.triggerOptions.mentionTextAliases) {
|
|
209
|
+
const normalizedAlias = alias.trim();
|
|
210
|
+
if (normalizedAlias.length === 0) {
|
|
211
|
+
continue;
|
|
212
|
+
}
|
|
213
|
+
stripped = stripped.replaceAll(normalizedAlias, " ");
|
|
214
|
+
}
|
|
215
|
+
return stripped.replace(/\s+/gu, " ").trim();
|
|
216
|
+
}
|
|
217
|
+
isAuthorized(chatJid) {
|
|
218
|
+
return this.allowAllChats || this.allowedChatJids.has(normalizeJidForMatch(chatJid));
|
|
219
|
+
}
|
|
220
|
+
async sendText(chatJid, text) {
|
|
221
|
+
await this.socket.sendMessage(chatJid, { text });
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
function buildAgentRequest(message, trigger, abortSignal) {
|
|
225
|
+
const metadata = {
|
|
226
|
+
chat: { jid: message.chatJid, kind: message.chatKind },
|
|
227
|
+
message: {},
|
|
228
|
+
mentionedJids: message.mentionedJids,
|
|
229
|
+
trigger: trigger.kind,
|
|
230
|
+
};
|
|
231
|
+
if (message.messageId !== undefined) {
|
|
232
|
+
metadata.message.id = message.messageId;
|
|
233
|
+
}
|
|
234
|
+
if (message.timestamp !== undefined) {
|
|
235
|
+
metadata.message.timestamp = message.timestamp;
|
|
236
|
+
}
|
|
237
|
+
if (message.senderJid !== undefined) {
|
|
238
|
+
metadata.sender = { jid: message.senderJid };
|
|
239
|
+
if (message.pushName !== undefined) {
|
|
240
|
+
metadata.sender.pushName = message.pushName;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
if (message.participantJid !== undefined) {
|
|
244
|
+
metadata.participantJid = message.participantJid;
|
|
245
|
+
}
|
|
246
|
+
const request = {
|
|
247
|
+
conversationId: `whatsapp:${message.chatJid}`,
|
|
248
|
+
chatJid: message.chatJid,
|
|
249
|
+
remoteJid: message.remoteJid,
|
|
250
|
+
chatKind: message.chatKind,
|
|
251
|
+
text: trigger.text,
|
|
252
|
+
trigger: trigger.kind,
|
|
253
|
+
abortSignal,
|
|
254
|
+
metadata: { whatsapp: metadata },
|
|
255
|
+
};
|
|
256
|
+
if (message.senderJid !== undefined) {
|
|
257
|
+
request.senderJid = message.senderJid;
|
|
258
|
+
}
|
|
259
|
+
if (message.participantJid !== undefined) {
|
|
260
|
+
request.participantJid = message.participantJid;
|
|
261
|
+
}
|
|
262
|
+
if (message.messageId !== undefined) {
|
|
263
|
+
request.messageId = message.messageId;
|
|
264
|
+
}
|
|
265
|
+
return request;
|
|
266
|
+
}
|
|
267
|
+
function parseCommand(text) {
|
|
268
|
+
const match = text.match(/^\/([A-Za-z0-9_]+)(?:@[A-Za-z0-9_]+)?(?:\s|$)/u);
|
|
269
|
+
if (match?.[1] === undefined) {
|
|
270
|
+
return undefined;
|
|
271
|
+
}
|
|
272
|
+
return { name: match[1].toLowerCase() };
|
|
273
|
+
}
|
|
274
|
+
async function finishSafely(stream, text, logger) {
|
|
275
|
+
try {
|
|
276
|
+
await stream.finish(text);
|
|
277
|
+
}
|
|
278
|
+
catch (error) {
|
|
279
|
+
logger?.error?.("Failed to send WhatsApp terminal stream message.", {
|
|
280
|
+
error: error instanceof Error ? error.message : String(error),
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
function mentionsAnyBotJid(mentionedJids, botJids) {
|
|
285
|
+
if (botJids.length === 0) {
|
|
286
|
+
return false;
|
|
287
|
+
}
|
|
288
|
+
const configured = new Set(botJids.map((jid) => normalizeJidForMatch(jid)));
|
|
289
|
+
return mentionedJids.some((jid) => configured.has(normalizeJidForMatch(jid)));
|
|
290
|
+
}
|
|
291
|
+
function normalizeJidForMatch(jid) {
|
|
292
|
+
return jid.trim().toLowerCase();
|
|
293
|
+
}
|
|
294
|
+
function withMessageId(result, messageId) {
|
|
295
|
+
if (messageId !== undefined) {
|
|
296
|
+
result.messageId = messageId;
|
|
297
|
+
}
|
|
298
|
+
return result;
|
|
299
|
+
}
|
|
300
|
+
//# sourceMappingURL=adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type UserFacingSocketConfig, type WASocket } from "@whiskeysockets/baileys";
|
|
2
|
+
import type { WhatsAppSocketLike } from "./types.js";
|
|
3
|
+
export interface BaileysWhatsAppSocketOptions {
|
|
4
|
+
authDir: string;
|
|
5
|
+
browserName?: string;
|
|
6
|
+
markOnlineOnConnect?: boolean;
|
|
7
|
+
syncFullHistory?: boolean;
|
|
8
|
+
socketConfig?: Omit<Partial<UserFacingSocketConfig>, "auth">;
|
|
9
|
+
}
|
|
10
|
+
export interface BaileysWhatsAppSocket {
|
|
11
|
+
socket: WhatsAppSocketLike;
|
|
12
|
+
baileysSocket: WASocket;
|
|
13
|
+
saveCreds: () => Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
export declare function createBaileysWhatsAppSocket(options: BaileysWhatsAppSocketOptions): Promise<BaileysWhatsAppSocket>;
|
|
16
|
+
//# sourceMappingURL=baileys-socket.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baileys-socket.d.ts","sourceRoot":"","sources":["../src/baileys-socket.ts"],"names":[],"mappings":"AAAA,OAAqB,EAGnB,KAAK,sBAAsB,EAC3B,KAAK,QAAQ,EACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC,CAAC;CAC9D;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,aAAa,EAAE,QAAQ,CAAC;IACxB,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAED,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,qBAAqB,CAAC,CAwBhC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import makeWASocket, { Browsers, useMultiFileAuthState, } from "@whiskeysockets/baileys";
|
|
2
|
+
export async function createBaileysWhatsAppSocket(options) {
|
|
3
|
+
if (typeof options.authDir !== "string" || options.authDir.trim().length === 0) {
|
|
4
|
+
throw new TypeError("createBaileysWhatsAppSocket requires a non-empty authDir.");
|
|
5
|
+
}
|
|
6
|
+
const { state, saveCreds } = await useMultiFileAuthState(options.authDir);
|
|
7
|
+
const socketConfig = {
|
|
8
|
+
...options.socketConfig,
|
|
9
|
+
auth: state,
|
|
10
|
+
browser: options.socketConfig?.browser ??
|
|
11
|
+
Browsers.appropriate(options.browserName ?? "Agent"),
|
|
12
|
+
markOnlineOnConnect: options.socketConfig?.markOnlineOnConnect ?? options.markOnlineOnConnect ?? false,
|
|
13
|
+
syncFullHistory: options.socketConfig?.syncFullHistory ?? options.syncFullHistory ?? false,
|
|
14
|
+
};
|
|
15
|
+
const baileysSocket = makeWASocket(socketConfig);
|
|
16
|
+
return {
|
|
17
|
+
socket: baileysSocket,
|
|
18
|
+
baileysSocket,
|
|
19
|
+
saveCreds,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=baileys-socket.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baileys-socket.js","sourceRoot":"","sources":["../src/baileys-socket.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,EAAE,EACnB,QAAQ,EACR,qBAAqB,GAGtB,MAAM,yBAAyB,CAAC;AAiBjC,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,OAAqC;IAErC,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/E,MAAM,IAAI,SAAS,CAAC,2DAA2D,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1E,MAAM,YAAY,GAA2B;QAC3C,GAAG,OAAO,CAAC,YAAY;QACvB,IAAI,EAAE,KAAK;QACX,OAAO,EACL,OAAO,CAAC,YAAY,EAAE,OAAO;YAC7B,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC;QACtD,mBAAmB,EACjB,OAAO,CAAC,YAAY,EAAE,mBAAmB,IAAI,OAAO,CAAC,mBAAmB,IAAI,KAAK;QACnF,eAAe,EACb,OAAO,CAAC,YAAY,EAAE,eAAe,IAAI,OAAO,CAAC,eAAe,IAAI,KAAK;KAC5E,CAAC;IACF,MAAM,aAAa,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;IAEjD,OAAO;QACL,MAAM,EAAE,aAA8C;QACtD,aAAa;QACb,SAAS;KACV,CAAC;AACJ,CAAC"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { FieldGroup, SettingsJson } from "@mono-agent/settings";
|
|
2
|
+
import type { WhatsAppGroupTriggerMode } from "./adapter.js";
|
|
3
|
+
import type { WhatsAppJid } from "./types.js";
|
|
4
|
+
export interface WhatsAppAdapterTriggerConfig {
|
|
5
|
+
readonly groupMode: WhatsAppGroupTriggerMode;
|
|
6
|
+
readonly botJids: readonly WhatsAppJid[];
|
|
7
|
+
readonly mentionTextAliases: readonly string[];
|
|
8
|
+
readonly stripMentionText: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface WhatsAppAdapterConfig {
|
|
11
|
+
readonly allowedChatJids: readonly WhatsAppJid[];
|
|
12
|
+
readonly allowAllChats: boolean;
|
|
13
|
+
readonly trigger: WhatsAppAdapterTriggerConfig;
|
|
14
|
+
}
|
|
15
|
+
export interface RedactedWhatsAppAdapterConfig {
|
|
16
|
+
readonly allowedChatJids: {
|
|
17
|
+
readonly count: number;
|
|
18
|
+
};
|
|
19
|
+
readonly allowAllChats: boolean;
|
|
20
|
+
readonly trigger: {
|
|
21
|
+
readonly groupMode: WhatsAppGroupTriggerMode;
|
|
22
|
+
readonly botJids: {
|
|
23
|
+
readonly count: number;
|
|
24
|
+
};
|
|
25
|
+
readonly mentionTextAliases: {
|
|
26
|
+
readonly count: number;
|
|
27
|
+
};
|
|
28
|
+
readonly stripMentionText: boolean;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export type WhatsAppAdapterConfigErrorCode = "missing_required_config" | "invalid_config";
|
|
32
|
+
export interface WhatsAppAdapterConfigErrorDetails {
|
|
33
|
+
readonly code?: WhatsAppAdapterConfigErrorCode;
|
|
34
|
+
readonly env?: string;
|
|
35
|
+
readonly reason?: string;
|
|
36
|
+
readonly [key: string]: unknown;
|
|
37
|
+
}
|
|
38
|
+
export declare class WhatsAppAdapterConfigError extends Error {
|
|
39
|
+
readonly code: WhatsAppAdapterConfigErrorCode;
|
|
40
|
+
readonly details: WhatsAppAdapterConfigErrorDetails;
|
|
41
|
+
constructor(code: WhatsAppAdapterConfigErrorCode, message: string, details?: WhatsAppAdapterConfigErrorDetails);
|
|
42
|
+
}
|
|
43
|
+
export interface LoadWhatsAppAdapterConfigInput {
|
|
44
|
+
readonly env: Record<string, string | undefined>;
|
|
45
|
+
readonly json?: SettingsJson;
|
|
46
|
+
readonly jsonPath?: string;
|
|
47
|
+
}
|
|
48
|
+
export declare const whatsappFieldGroup: FieldGroup;
|
|
49
|
+
export declare function loadWhatsAppAdapterConfig(input: LoadWhatsAppAdapterConfigInput): Promise<WhatsAppAdapterConfig>;
|
|
50
|
+
export declare function redactWhatsAppAdapterConfig(config: WhatsAppAdapterConfig): RedactedWhatsAppAdapterConfig;
|
|
51
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAErE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI9C,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,SAAS,EAAE,wBAAwB,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;IACzC,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;CACpC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,eAAe,EAAE,SAAS,WAAW,EAAE,CAAC;IACjD,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,4BAA4B,CAAC;CAChD;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,eAAe,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,SAAS,EAAE,wBAAwB,CAAC;QAC7C,QAAQ,CAAC,OAAO,EAAE;YAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QAC7C,QAAQ,CAAC,kBAAkB,EAAE;YAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QACxD,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;KACpC,CAAC;CACH;AAED,MAAM,MAAM,8BAA8B,GACtC,yBAAyB,GACzB,gBAAgB,CAAC;AAErB,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,8BAA8B,CAAC;IAC/C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,QAAQ,CAAC,IAAI,EAAE,8BAA8B,CAAC;IAC9C,QAAQ,CAAC,OAAO,EAAE,iCAAiC,CAAC;gBAGlD,IAAI,EAAE,8BAA8B,EACpC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,iCAAsC;CAOlD;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACjD,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAcD,eAAO,MAAM,kBAAkB,EAAE,UAuD/B,CAAC;AAEH,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,8BAA8B,GACpC,OAAO,CAAC,qBAAqB,CAAC,CA2ChC;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,qBAAqB,GAC5B,6BAA6B,CAW/B"}
|