@mono-agent/whatsapp-adapter 0.4.0 → 0.5.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 +30 -6
- package/dist/channel-driver.d.ts +17 -0
- package/dist/channel-driver.d.ts.map +1 -0
- package/dist/channel-driver.js +156 -0
- package/dist/channel-driver.js.map +1 -0
- package/dist/config.d.ts +6 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +15 -74
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -3
package/README.md
CHANGED
|
@@ -8,7 +8,11 @@ Category: `communication`
|
|
|
8
8
|
|
|
9
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
10
|
|
|
11
|
-
|
|
11
|
+
This is a **plugin-tier** package: it publishes to npm in the mono-agent lockstep at the same version as the core packages, but it is not part of the core `@mono-agent/agent-app` dependency closure. `@mono-agent/agent-app` loads it only when a host declares it under `channels.plugins[]`.
|
|
12
|
+
|
|
13
|
+
**Upgrading from 0.4.0 (npm skew):** the standalone `0.4.0` build predates the `channels.plugins[]` seam — it has no `createChannelDriver` export, so `agent-app` refuses it with `Channel plugin @mono-agent/whatsapp-adapter must export createChannelDriver(options) returning a ChannelDriver`, and it drags the retired `@mono-agent/settings` package into your install tree. Upgrade to the current lockstep version (matching your `@mono-agent/agent-app`) to fix both.
|
|
14
|
+
|
|
15
|
+
The adapter is opt-in: plugin `config.enabled` / `MONO_AGENT_WHATSAPP_ENABLED` defaults to `false`. While disabled the loader skips allowlist validation and the channel reports `disabled` rather than `waiting_for_config`. Set `enabled: true` to turn it on; a missing allowlist (without allow-all) then surfaces as a real `waiting_for_config` reason.
|
|
12
16
|
|
|
13
17
|
## Install / Usage
|
|
14
18
|
|
|
@@ -22,10 +26,29 @@ import {
|
|
|
22
26
|
WhatsAppEventRunner,
|
|
23
27
|
createBaileysWhatsAppSocket,
|
|
24
28
|
loadWhatsAppAdapterConfig,
|
|
25
|
-
|
|
29
|
+
WHATSAPP_CONFIG_FIELDS,
|
|
26
30
|
} from "@mono-agent/whatsapp-adapter";
|
|
27
31
|
```
|
|
28
32
|
|
|
33
|
+
Config-loaded channel usage:
|
|
34
|
+
|
|
35
|
+
```json
|
|
36
|
+
{
|
|
37
|
+
"channels": {
|
|
38
|
+
"plugins": [
|
|
39
|
+
{
|
|
40
|
+
"package": "@mono-agent/whatsapp-adapter",
|
|
41
|
+
"id": "whatsapp",
|
|
42
|
+
"config": {
|
|
43
|
+
"enabled": true,
|
|
44
|
+
"allowedChatJids": ["123@s.whatsapp.net"]
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
29
52
|
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`.
|
|
30
53
|
|
|
31
54
|
## Public API
|
|
@@ -33,14 +56,15 @@ Hosts provide a Baileys socket, adapter options, and a structural `AgentResponde
|
|
|
33
56
|
- `WhatsAppAdapter`, `WhatsAppAdapterOptions`
|
|
34
57
|
- `WhatsAppEventRunner`
|
|
35
58
|
- `createBaileysWhatsAppSocket`
|
|
59
|
+
- `createWhatsAppChannelDriver`, `createChannelDriver`
|
|
36
60
|
- `normalizeWhatsAppMessage`, `isGroupJid`
|
|
37
|
-
- `WhatsAppMessageStream
|
|
38
|
-
- `loadWhatsAppAdapterConfig`, `redactWhatsAppAdapterConfig`, `
|
|
39
|
-
- WhatsApp socket, message, trigger, config, and event-runner types
|
|
61
|
+
- `WhatsAppMessageStream`
|
|
62
|
+
- `loadWhatsAppAdapterConfig`, `redactWhatsAppAdapterConfig`, `WHATSAPP_CONFIG_FIELDS`
|
|
63
|
+
- WhatsApp socket, message, trigger, config, channel-driver, and event-runner types
|
|
40
64
|
|
|
41
65
|
## Dependency Boundary
|
|
42
66
|
|
|
43
|
-
This adapter depends on Baileys plus shared contracts
|
|
67
|
+
This adapter depends on Baileys plus shared `@mono-agent/agent-contracts` primitives, but must not depend on the harness, core config, another communication adapter, memory, or runtime package. It communicates through structural responder and socket interfaces.
|
|
44
68
|
|
|
45
69
|
## What This Package Does Not Own
|
|
46
70
|
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ChannelDriver, SettingsJsonValue } from "@mono-agent/agent-contracts";
|
|
2
|
+
import { type WhatsAppAdapterConfig } from "./config.js";
|
|
3
|
+
import { type StartWhatsAppAdapterOptions, type WhatsAppAdapterStartResult, type WhatsAppSocketFactory } from "./start.js";
|
|
4
|
+
export type WhatsAppChannelDriverConfig = {
|
|
5
|
+
readonly [key: string]: SettingsJsonValue;
|
|
6
|
+
};
|
|
7
|
+
export interface WhatsAppChannelDriverOptions {
|
|
8
|
+
readonly id?: string;
|
|
9
|
+
readonly label?: string;
|
|
10
|
+
readonly config?: WhatsAppChannelDriverConfig;
|
|
11
|
+
readonly authDir?: string;
|
|
12
|
+
readonly socketFactory?: WhatsAppSocketFactory;
|
|
13
|
+
readonly startAdapter?: (options: StartWhatsAppAdapterOptions) => Promise<WhatsAppAdapterStartResult>;
|
|
14
|
+
}
|
|
15
|
+
export declare function createWhatsAppChannelDriver(options?: WhatsAppChannelDriverOptions): ChannelDriver<WhatsAppAdapterConfig>;
|
|
16
|
+
export declare const createChannelDriver: typeof createWhatsAppChannelDriver;
|
|
17
|
+
//# sourceMappingURL=channel-driver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel-driver.d.ts","sourceRoot":"","sources":["../src/channel-driver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAIV,aAAa,EAGb,iBAAiB,EAClB,MAAM,6BAA6B,CAAC;AAQrC,OAAO,EAIL,KAAK,qBAAqB,EAC3B,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAC/B,KAAK,qBAAqB,EAC3B,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAC;CAC3C,CAAC;AAEF,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,2BAA2B,CAAC;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,qBAAqB,CAAC;IAC/C,QAAQ,CAAC,YAAY,CAAC,EAAE,CACtB,OAAO,EAAE,2BAA2B,KACjC,OAAO,CAAC,0BAA0B,CAAC,CAAC;CAC1C;AAUD,wBAAgB,2BAA2B,CACzC,OAAO,GAAE,4BAAiC,GACzC,aAAa,CAAC,qBAAqB,CAAC,CAqDtC;AAED,eAAO,MAAM,mBAAmB,oCAA8B,CAAC"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { resolve } from "node:path";
|
|
2
|
+
import { encodeJsonEnvValue, normalizeOptionalString, readJsonSection, readSettingsJson, } from "@mono-agent/agent-contracts";
|
|
3
|
+
import { loadWhatsAppAdapterConfig, WhatsAppAdapterConfigError, WHATSAPP_CONFIG_FIELDS, } from "./config.js";
|
|
4
|
+
import { startWhatsAppAdapter, } from "./start.js";
|
|
5
|
+
const BOOLEAN_RAW_CONFIG_FIELDS = ["enabled", "allowAllChats", "stripMentionText"];
|
|
6
|
+
const STRING_RAW_CONFIG_FIELDS = ["groupMode"];
|
|
7
|
+
const STRING_ARRAY_RAW_CONFIG_FIELDS = ["allowedChatJids", "botJids", "mentionTextAliases"];
|
|
8
|
+
const DEFAULT_CHANNEL_ID = "whatsapp";
|
|
9
|
+
const DEFAULT_CHANNEL_LABEL = "WhatsApp";
|
|
10
|
+
const DISABLED_REASON = "WhatsApp is disabled.";
|
|
11
|
+
const CONFIG_VIEW_PLACEHOLDER = "\u2014";
|
|
12
|
+
export function createWhatsAppChannelDriver(options = {}) {
|
|
13
|
+
const id = options.id ?? DEFAULT_CHANNEL_ID;
|
|
14
|
+
const label = options.label ?? DEFAULT_CHANNEL_LABEL;
|
|
15
|
+
return {
|
|
16
|
+
id,
|
|
17
|
+
label,
|
|
18
|
+
async configView(input) {
|
|
19
|
+
const section = await readWhatsAppConfigViewSection(options, input);
|
|
20
|
+
let status = "active";
|
|
21
|
+
try {
|
|
22
|
+
const config = await loadWhatsAppChannelConfig(options, input);
|
|
23
|
+
if (!config.enabled) {
|
|
24
|
+
status = "disabled";
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
if (!isWhatsAppConfigError(error)) {
|
|
29
|
+
throw error;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
id,
|
|
34
|
+
label,
|
|
35
|
+
status,
|
|
36
|
+
fields: WHATSAPP_CONFIG_FIELDS.map((field) => toChannelConfigViewField(field, section, input.env)),
|
|
37
|
+
};
|
|
38
|
+
},
|
|
39
|
+
async loadConfig(input) {
|
|
40
|
+
return await loadWhatsAppChannelConfig(options, input);
|
|
41
|
+
},
|
|
42
|
+
isConfigError(error) {
|
|
43
|
+
return isWhatsAppConfigError(error);
|
|
44
|
+
},
|
|
45
|
+
disabledReason(config) {
|
|
46
|
+
return config.enabled ? undefined : DISABLED_REASON;
|
|
47
|
+
},
|
|
48
|
+
async start(input) {
|
|
49
|
+
const startAdapter = options.startAdapter ?? startWhatsAppAdapter;
|
|
50
|
+
const result = await startAdapter({
|
|
51
|
+
authDir: options.authDir ?? resolve(input.cwd, ".mono-agent", "whatsapp-auth"),
|
|
52
|
+
config: input.config,
|
|
53
|
+
responder: input.responder,
|
|
54
|
+
...(input.logger === undefined ? {} : { logger: input.logger }),
|
|
55
|
+
onQr: (qr) => {
|
|
56
|
+
input.logger?.info?.("WhatsApp login QR code received; scan it with the WhatsApp app.", { qr });
|
|
57
|
+
},
|
|
58
|
+
...(options.socketFactory === undefined ? {} : { createSocket: options.socketFactory }),
|
|
59
|
+
});
|
|
60
|
+
return {
|
|
61
|
+
summary: {},
|
|
62
|
+
stop: () => result.stop(),
|
|
63
|
+
};
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
export const createChannelDriver = createWhatsAppChannelDriver;
|
|
68
|
+
async function loadWhatsAppChannelConfig(options, input) {
|
|
69
|
+
if (options.config !== undefined) {
|
|
70
|
+
validateWhatsAppChannelDriverConfig(options.config);
|
|
71
|
+
return await loadWhatsAppAdapterConfig({
|
|
72
|
+
env: input.env,
|
|
73
|
+
json: { whatsapp: options.config },
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
return await loadWhatsAppAdapterConfig({
|
|
77
|
+
env: input.env,
|
|
78
|
+
jsonPath: input.configPath,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
async function readWhatsAppConfigViewSection(options, input) {
|
|
82
|
+
if (options.config !== undefined) {
|
|
83
|
+
return options.config;
|
|
84
|
+
}
|
|
85
|
+
const { json } = await readSettingsJson(input.configPath);
|
|
86
|
+
return readJsonSection(json, DEFAULT_CHANNEL_ID);
|
|
87
|
+
}
|
|
88
|
+
function isWhatsAppConfigError(error) {
|
|
89
|
+
return error instanceof WhatsAppAdapterConfigError;
|
|
90
|
+
}
|
|
91
|
+
function toChannelConfigViewField(field, section, env) {
|
|
92
|
+
const envValue = normalizeOptionalString(env[field.env]);
|
|
93
|
+
const jsonValue = encodeJsonEnvValue(field.fromJson(section), field.kind ?? "string");
|
|
94
|
+
const resolved = envValue ?? jsonValue;
|
|
95
|
+
const source = envValue !== undefined ? "env" : jsonValue !== undefined ? "json" : "default";
|
|
96
|
+
return {
|
|
97
|
+
id: field.id,
|
|
98
|
+
label: labelForFieldId(field.id),
|
|
99
|
+
value: field.secret === true ? (resolved === undefined ? "unset" : "set") : resolved ?? CONFIG_VIEW_PLACEHOLDER,
|
|
100
|
+
source,
|
|
101
|
+
...(field.secret === true ? { redacted: true } : {}),
|
|
102
|
+
envKey: field.env,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
function labelForFieldId(id) {
|
|
106
|
+
const words = id
|
|
107
|
+
.split(".")
|
|
108
|
+
.slice(1)
|
|
109
|
+
.join(" ")
|
|
110
|
+
.replace(/([a-z0-9])([A-Z])/gu, "$1 $2")
|
|
111
|
+
.toLowerCase();
|
|
112
|
+
return words.charAt(0).toUpperCase() + words.slice(1);
|
|
113
|
+
}
|
|
114
|
+
function validateWhatsAppChannelDriverConfig(config) {
|
|
115
|
+
for (const key of BOOLEAN_RAW_CONFIG_FIELDS) {
|
|
116
|
+
validateRawField(config, key, `whatsapp.${key}`, isBooleanValue, "a boolean");
|
|
117
|
+
}
|
|
118
|
+
for (const key of STRING_RAW_CONFIG_FIELDS) {
|
|
119
|
+
validateRawField(config, key, `whatsapp.${key}`, isStringValue, "a string");
|
|
120
|
+
}
|
|
121
|
+
for (const key of STRING_ARRAY_RAW_CONFIG_FIELDS) {
|
|
122
|
+
validateRawField(config, key, `whatsapp.${key}`, isStringArrayValue, "an array of strings");
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
function validateRawField(config, key, field, isValid, expected) {
|
|
126
|
+
if (!Object.prototype.hasOwnProperty.call(config, key)) {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
const value = config[key];
|
|
130
|
+
if (isValid(value)) {
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
throw new WhatsAppAdapterConfigError("invalid_config", `${field} must be ${expected}.`, { field, expected, reason: describeRawValue(value) });
|
|
134
|
+
}
|
|
135
|
+
function isBooleanValue(value) {
|
|
136
|
+
return typeof value === "boolean";
|
|
137
|
+
}
|
|
138
|
+
function isStringValue(value) {
|
|
139
|
+
return typeof value === "string";
|
|
140
|
+
}
|
|
141
|
+
function isStringArrayValue(value) {
|
|
142
|
+
return Array.isArray(value) && value.every((item) => typeof item === "string");
|
|
143
|
+
}
|
|
144
|
+
function describeRawValue(value) {
|
|
145
|
+
if (value === undefined) {
|
|
146
|
+
return "undefined";
|
|
147
|
+
}
|
|
148
|
+
if (value === null) {
|
|
149
|
+
return "null";
|
|
150
|
+
}
|
|
151
|
+
if (Array.isArray(value)) {
|
|
152
|
+
return "array";
|
|
153
|
+
}
|
|
154
|
+
return typeof value;
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=channel-driver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel-driver.js","sourceRoot":"","sources":["../src/channel-driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,eAAe,EACf,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,sBAAsB,GAEvB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,oBAAoB,GAIrB,MAAM,YAAY,CAAC;AAiBpB,MAAM,yBAAyB,GAAG,CAAC,SAAS,EAAE,eAAe,EAAE,kBAAkB,CAAU,CAAC;AAC5F,MAAM,wBAAwB,GAAG,CAAC,WAAW,CAAU,CAAC;AACxD,MAAM,8BAA8B,GAAG,CAAC,iBAAiB,EAAE,SAAS,EAAE,oBAAoB,CAAU,CAAC;AACrG,MAAM,kBAAkB,GAAG,UAAU,CAAC;AACtC,MAAM,qBAAqB,GAAG,UAAU,CAAC;AACzC,MAAM,eAAe,GAAG,uBAAuB,CAAC;AAChD,MAAM,uBAAuB,GAAG,QAAQ,CAAC;AAEzC,MAAM,UAAU,2BAA2B,CACzC,UAAwC,EAAE;IAE1C,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,IAAI,kBAAkB,CAAC;IAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,qBAAqB,CAAC;IACrD,OAAO;QACL,EAAE;QACF,KAAK;QACL,KAAK,CAAC,UAAU,CAAC,KAAK;YACpB,MAAM,OAAO,GAAG,MAAM,6BAA6B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACpE,IAAI,MAAM,GAAuC,QAAQ,CAAC;YAC1D,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC/D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,MAAM,GAAG,UAAU,CAAC;gBACtB,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;oBAClC,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;YACD,OAAO;gBACL,EAAE;gBACF,KAAK;gBACL,MAAM;gBACN,MAAM,EAAE,sBAAsB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;aACnG,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,UAAU,CAAC,KAAK;YACpB,OAAO,MAAM,yBAAyB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACzD,CAAC;QACD,aAAa,CAAC,KAAK;YACjB,OAAO,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QACD,cAAc,CAAC,MAAM;YACnB,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC;QACtD,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,KAAK;YACf,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,oBAAoB,CAAC;YAClE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;gBAChC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,aAAa,EAAE,eAAe,CAAC;gBAC9E,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC/D,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;oBACX,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,iEAAiE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;gBAClG,CAAC;gBACD,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;aACxF,CAAC,CAAC;YACH,OAAO;gBACL,OAAO,EAAE,EAAE;gBACX,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;aAC1B,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,2BAA2B,CAAC;AAE/D,KAAK,UAAU,yBAAyB,CACtC,OAAqC,EACrC,KAAyB;IAEzB,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,mCAAmC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACpD,OAAO,MAAM,yBAAyB,CAAC;YACrC,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAyB;SAC1D,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,yBAAyB,CAAC;QACrC,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,QAAQ,EAAE,KAAK,CAAC,UAAU;KAC3B,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,6BAA6B,CAC1C,OAAqC,EACrC,KAAyB;IAEzB,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,MAAiC,CAAC;IACnD,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC1D,OAAO,eAAe,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc;IAC3C,OAAO,KAAK,YAAY,0BAA0B,CAAC;AACrD,CAAC;AAED,SAAS,wBAAwB,CAC/B,KAAuB,EACvB,OAAgC,EAChC,GAAuC;IAEvC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC;IACtF,MAAM,QAAQ,GAAG,QAAQ,IAAI,SAAS,CAAC;IACvC,MAAM,MAAM,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7F,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,KAAK,EAAE,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,uBAAuB;QAC/G,MAAM;QACN,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,MAAM,EAAE,KAAK,CAAC,GAAG;KAClB,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,EAAU;IACjC,MAAM,KAAK,GAAG,EAAE;SACb,KAAK,CAAC,GAAG,CAAC;SACV,KAAK,CAAC,CAAC,CAAC;SACR,IAAI,CAAC,GAAG,CAAC;SACT,OAAO,CAAC,qBAAqB,EAAE,OAAO,CAAC;SACvC,WAAW,EAAE,CAAC;IACjB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,mCAAmC,CAAC,MAAmC;IAC9E,KAAK,MAAM,GAAG,IAAI,yBAAyB,EAAE,CAAC;QAC5C,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;IAChF,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAC3C,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,EAAE,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;IAC9E,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,8BAA8B,EAAE,CAAC;QACjD,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,EAAE,EAAE,kBAAkB,EAAE,qBAAqB,CAAC,CAAC;IAC9F,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CACvB,MAAmC,EACnC,GAAW,EACX,KAAa,EACb,OAA0D,EAC1D,QAAgB;IAEhB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;QACvD,OAAO;IACT,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACnB,OAAO;IACT,CAAC;IACD,MAAM,IAAI,0BAA0B,CAClC,gBAAgB,EAChB,GAAG,KAAK,YAAY,QAAQ,GAAG,EAC/B,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,CACrD,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAoC;IAC1D,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC;AACpC,CAAC;AAED,SAAS,aAAa,CAAC,KAAoC;IACzD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACnC,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAoC;IAC9D,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAoC;IAC5D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,OAAO,KAAK,CAAC;AACtB,CAAC"}
|
package/dist/config.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { JsonEnvFieldSpec, SettingsJson } from "@mono-agent/agent-contracts";
|
|
2
2
|
import type { WhatsAppGroupTriggerMode } from "./adapter.js";
|
|
3
3
|
import type { WhatsAppJid } from "./types.js";
|
|
4
4
|
export interface WhatsAppAdapterTriggerConfig {
|
|
@@ -47,7 +47,11 @@ export interface LoadWhatsAppAdapterConfigInput {
|
|
|
47
47
|
readonly json?: SettingsJson;
|
|
48
48
|
readonly jsonPath?: string;
|
|
49
49
|
}
|
|
50
|
-
export declare const whatsappFieldGroup: FieldGroup;
|
|
51
50
|
export declare function loadWhatsAppAdapterConfig(input: LoadWhatsAppAdapterConfigInput): Promise<WhatsAppAdapterConfig>;
|
|
52
51
|
export declare function redactWhatsAppAdapterConfig(config: WhatsAppAdapterConfig): RedactedWhatsAppAdapterConfig;
|
|
52
|
+
/**
|
|
53
|
+
* The `whatsapp` section's field registry: the single source of truth both the
|
|
54
|
+
* JSON→env layering below and the app's config provenance view derive from.
|
|
55
|
+
*/
|
|
56
|
+
export declare const WHATSAPP_CONFIG_FIELDS: readonly JsonEnvFieldSpec[];
|
|
53
57
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAElF,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,OAAO,EAAE,OAAO,CAAC;IAC1B,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,OAAO,EAAE,OAAO,CAAC;IAC1B,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,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,8BAA8B,GACpC,OAAO,CAAC,qBAAqB,CAAC,CAsDhC;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,qBAAqB,GAC5B,6BAA6B,CAY/B;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,gBAAgB,EAQ7D,CAAC"}
|
package/dist/config.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { fieldSpecMappings, layerJsonOntoEnv, readBoolean, readChoice, readCsv, readJsonSection, readSettingsJson, } from "@mono-agent/agent-contracts";
|
|
2
2
|
const WHATSAPP_GROUP_MODES = ["mention", "any"];
|
|
3
3
|
export class WhatsAppAdapterConfigError extends Error {
|
|
4
4
|
code;
|
|
@@ -12,69 +12,6 @@ export class WhatsAppAdapterConfigError extends Error {
|
|
|
12
12
|
}
|
|
13
13
|
const invalidConfig = (message, details) => new WhatsAppAdapterConfigError("invalid_config", message, details);
|
|
14
14
|
const missingRequiredConfig = (message, details) => new WhatsAppAdapterConfigError("missing_required_config", message, details);
|
|
15
|
-
export const whatsappFieldGroup = defineFieldGroup({
|
|
16
|
-
id: "whatsapp",
|
|
17
|
-
label: "WhatsApp",
|
|
18
|
-
description: "Optional WhatsApp adapter allowlist and group trigger configuration.",
|
|
19
|
-
fields: [
|
|
20
|
-
{
|
|
21
|
-
id: "whatsapp.enabled",
|
|
22
|
-
label: "Enable WhatsApp",
|
|
23
|
-
description: "Start the WhatsApp adapter with the app. Off by default.",
|
|
24
|
-
kind: "switch",
|
|
25
|
-
path: ["whatsapp", "enabled"],
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
id: "whatsapp.allowedChatJids",
|
|
29
|
-
label: "Allowed chat JIDs",
|
|
30
|
-
description: "Comma-separated list of chat JIDs the adapter will respond to.",
|
|
31
|
-
kind: "csv",
|
|
32
|
-
placeholder: "123@s.whatsapp.net, 456@g.us",
|
|
33
|
-
path: ["whatsapp", "allowedChatJids"],
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
id: "whatsapp.allowAllChats",
|
|
37
|
-
label: "Allow all chats",
|
|
38
|
-
description: "Explicitly permit every chat. Leave off when using an allowlist.",
|
|
39
|
-
kind: "switch",
|
|
40
|
-
path: ["whatsapp", "allowAllChats"],
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
id: "whatsapp.groupMode",
|
|
44
|
-
label: "Group mode",
|
|
45
|
-
description: "Whether group messages require a configured bot mention or any group text may trigger.",
|
|
46
|
-
kind: "select",
|
|
47
|
-
options: [
|
|
48
|
-
{ value: "mention", label: "mention" },
|
|
49
|
-
{ value: "any", label: "any" },
|
|
50
|
-
],
|
|
51
|
-
path: ["whatsapp", "groupMode"],
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
id: "whatsapp.botJids",
|
|
55
|
-
label: "Bot JIDs",
|
|
56
|
-
description: "Comma-separated JIDs that count as bot mentions in groups.",
|
|
57
|
-
kind: "csv",
|
|
58
|
-
placeholder: "123@s.whatsapp.net",
|
|
59
|
-
path: ["whatsapp", "botJids"],
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
id: "whatsapp.mentionTextAliases",
|
|
63
|
-
label: "Mention aliases",
|
|
64
|
-
description: "Comma-separated mention text aliases to strip from triggered messages.",
|
|
65
|
-
kind: "csv",
|
|
66
|
-
placeholder: "@agent, Assistant",
|
|
67
|
-
path: ["whatsapp", "mentionTextAliases"],
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
id: "whatsapp.stripMentionText",
|
|
71
|
-
label: "Strip mention text",
|
|
72
|
-
description: "Remove configured mention aliases before sending text to the responder.",
|
|
73
|
-
kind: "switch",
|
|
74
|
-
path: ["whatsapp", "stripMentionText"],
|
|
75
|
-
},
|
|
76
|
-
],
|
|
77
|
-
});
|
|
78
15
|
export async function loadWhatsAppAdapterConfig(input) {
|
|
79
16
|
const json = input.json ?? (input.jsonPath === undefined ? {} : (await readSettingsJson(input.jsonPath)).json);
|
|
80
17
|
const env = layerWhatsAppJsonOntoEnv(json, input.env);
|
|
@@ -115,16 +52,20 @@ export function redactWhatsAppAdapterConfig(config) {
|
|
|
115
52
|
},
|
|
116
53
|
};
|
|
117
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* The `whatsapp` section's field registry: the single source of truth both the
|
|
57
|
+
* JSON→env layering below and the app's config provenance view derive from.
|
|
58
|
+
*/
|
|
59
|
+
export const WHATSAPP_CONFIG_FIELDS = [
|
|
60
|
+
{ id: "whatsapp.enabled", env: "MONO_AGENT_WHATSAPP_ENABLED", kind: "boolean", fromJson: (s) => s.enabled },
|
|
61
|
+
{ id: "whatsapp.allowedChatJids", env: "MONO_AGENT_WHATSAPP_ALLOWED_CHAT_JIDS", kind: "csv", fromJson: (s) => s.allowedChatJids },
|
|
62
|
+
{ id: "whatsapp.allowAllChats", env: "MONO_AGENT_WHATSAPP_ALLOW_ALL_CHATS", kind: "boolean", fromJson: (s) => s.allowAllChats },
|
|
63
|
+
{ id: "whatsapp.groupMode", env: "MONO_AGENT_WHATSAPP_GROUP_MODE", fromJson: (s) => s.groupMode },
|
|
64
|
+
{ id: "whatsapp.botJids", env: "MONO_AGENT_WHATSAPP_BOT_JIDS", kind: "csv", fromJson: (s) => s.botJids },
|
|
65
|
+
{ id: "whatsapp.mentionTextAliases", env: "MONO_AGENT_WHATSAPP_MENTION_TEXT_ALIASES", kind: "csv", fromJson: (s) => s.mentionTextAliases },
|
|
66
|
+
{ id: "whatsapp.stripMentionText", env: "MONO_AGENT_WHATSAPP_STRIP_MENTION_TEXT", kind: "boolean", fromJson: (s) => s.stripMentionText },
|
|
67
|
+
];
|
|
118
68
|
function layerWhatsAppJsonOntoEnv(json, env) {
|
|
119
|
-
|
|
120
|
-
return layerJsonOntoEnv(env, [
|
|
121
|
-
{ env: "MONO_AGENT_WHATSAPP_ENABLED", value: section.enabled, kind: "boolean" },
|
|
122
|
-
{ env: "MONO_AGENT_WHATSAPP_ALLOWED_CHAT_JIDS", value: section.allowedChatJids, kind: "csv" },
|
|
123
|
-
{ env: "MONO_AGENT_WHATSAPP_ALLOW_ALL_CHATS", value: section.allowAllChats, kind: "boolean" },
|
|
124
|
-
{ env: "MONO_AGENT_WHATSAPP_GROUP_MODE", value: section.groupMode },
|
|
125
|
-
{ env: "MONO_AGENT_WHATSAPP_BOT_JIDS", value: section.botJids, kind: "csv" },
|
|
126
|
-
{ env: "MONO_AGENT_WHATSAPP_MENTION_TEXT_ALIASES", value: section.mentionTextAliases, kind: "csv" },
|
|
127
|
-
{ env: "MONO_AGENT_WHATSAPP_STRIP_MENTION_TEXT", value: section.stripMentionText, kind: "boolean" },
|
|
128
|
-
]);
|
|
69
|
+
return layerJsonOntoEnv(env, fieldSpecMappings(readJsonSection(json, "whatsapp"), WHATSAPP_CONFIG_FIELDS));
|
|
129
70
|
}
|
|
130
71
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export { isGroupJid, normalizeWhatsAppMessage } from "./message-normalizer.js";
|
|
|
5
5
|
export type { AgentMessageStream } from "@mono-agent/agent-contracts";
|
|
6
6
|
export type { WhatsAppMessageStreamLogger, WhatsAppMessageStreamOptions, } from "./message-stream.js";
|
|
7
7
|
export { WhatsAppMessageStream } from "./message-stream.js";
|
|
8
|
-
export { loadWhatsAppAdapterConfig, redactWhatsAppAdapterConfig,
|
|
8
|
+
export { loadWhatsAppAdapterConfig, redactWhatsAppAdapterConfig, WHATSAPP_CONFIG_FIELDS, WhatsAppAdapterConfigError, } from "./config.js";
|
|
9
9
|
export type { LoadWhatsAppAdapterConfigInput, RedactedWhatsAppAdapterConfig, WhatsAppAdapterConfig, WhatsAppAdapterConfigErrorCode, WhatsAppAdapterConfigErrorDetails, } from "./config.js";
|
|
10
10
|
export type { LongLike, WhatsAppChatKind, WhatsAppContextInfoLike, WhatsAppEventEmitterLike, WhatsAppJid, WhatsAppMessageContentLike, WhatsAppMessageKeyLike, WhatsAppRawMessage, WhatsAppSendMessageContent, WhatsAppSendMessageOptions, WhatsAppSentMessage, WhatsAppSocketLike, WhatsAppTextMessage, } from "./types.js";
|
|
11
11
|
export type { BaileysWhatsAppSocket, BaileysWhatsAppSocketOptions, } from "./baileys-socket.js";
|
|
@@ -14,4 +14,6 @@ export type { WhatsAppConnectionUpdate, WhatsAppEventRunnerLogger, WhatsAppEvent
|
|
|
14
14
|
export { WhatsAppEventRunner } from "./event-runner.js";
|
|
15
15
|
export { startWhatsAppAdapter } from "./start.js";
|
|
16
16
|
export type { StartWhatsAppAdapterOptions, WhatsAppAdapterStartLogger, WhatsAppAdapterStartResult, WhatsAppSocketFactory, } from "./start.js";
|
|
17
|
+
export { createChannelDriver, createWhatsAppChannelDriver, } from "./channel-driver.js";
|
|
18
|
+
export type { WhatsAppChannelDriverConfig, WhatsAppChannelDriverOptions, } from "./channel-driver.js";
|
|
17
19
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,YAAY,EACZ,cAAc,EACd,aAAa,EACb,4BAA4B,EAC5B,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,4BAA4B,EAC5B,wBAAwB,EACxB,6BAA6B,EAC7B,uBAAuB,EACvB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,YAAY,EACV,4BAA4B,EAC5B,kCAAkC,GACnC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAE/E,YAAY,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACtE,YAAY,EACV,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,YAAY,EACZ,cAAc,EACd,aAAa,EACb,4BAA4B,EAC5B,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,4BAA4B,EAC5B,wBAAwB,EACxB,6BAA6B,EAC7B,uBAAuB,EACvB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,YAAY,EACV,4BAA4B,EAC5B,kCAAkC,GACnC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAE/E,YAAY,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACtE,YAAY,EACV,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,8BAA8B,EAC9B,6BAA6B,EAC7B,qBAAqB,EACrB,8BAA8B,EAC9B,iCAAiC,GAClC,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,QAAQ,EACR,gBAAgB,EAChB,uBAAuB,EACvB,wBAAwB,EACxB,WAAW,EACX,0BAA0B,EAC1B,sBAAsB,EACtB,kBAAkB,EAClB,0BAA0B,EAC1B,0BAA0B,EAC1B,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAElE,YAAY,EACV,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,+BAA+B,GAChC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,YAAY,EACV,2BAA2B,EAC3B,0BAA0B,EAC1B,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
export { WhatsAppAdapter } from "./adapter.js";
|
|
2
2
|
export { isGroupJid, normalizeWhatsAppMessage } from "./message-normalizer.js";
|
|
3
3
|
export { WhatsAppMessageStream } from "./message-stream.js";
|
|
4
|
-
export { loadWhatsAppAdapterConfig, redactWhatsAppAdapterConfig,
|
|
4
|
+
export { loadWhatsAppAdapterConfig, redactWhatsAppAdapterConfig, WHATSAPP_CONFIG_FIELDS, WhatsAppAdapterConfigError, } from "./config.js";
|
|
5
5
|
export { createBaileysWhatsAppSocket } from "./baileys-socket.js";
|
|
6
6
|
export { WhatsAppEventRunner } from "./event-runner.js";
|
|
7
7
|
export { startWhatsAppAdapter } from "./start.js";
|
|
8
|
+
export { createChannelDriver, createWhatsAppChannelDriver, } from "./channel-driver.js";
|
|
8
9
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAM/C,OAAO,EAAE,UAAU,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAO/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAM/C,OAAO,EAAE,UAAU,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAO/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AA6BrB,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAQlE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAQlD,OAAO,EACL,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mono-agent/whatsapp-adapter",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "WhatsApp communication adapter for host-compatible runtimes using Baileys.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -18,8 +18,7 @@
|
|
|
18
18
|
"README.md"
|
|
19
19
|
],
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@mono-agent/agent-contracts": "0.
|
|
22
|
-
"@mono-agent/settings": "0.4.0",
|
|
21
|
+
"@mono-agent/agent-contracts": "0.5.0",
|
|
23
22
|
"@whiskeysockets/baileys": "^7.0.0-rc11"
|
|
24
23
|
},
|
|
25
24
|
"publishConfig": {
|