@adonis-agora/agent 0.63.0 → 0.64.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/CHANGELOG.md +21 -0
- package/dist/src/action-proposal-outcome.d.ts +4 -0
- package/dist/src/action-proposal-outcome.d.ts.map +1 -1
- package/dist/src/action-proposal-outcome.js +23 -4
- package/dist/src/action-proposal-outcome.js.map +1 -1
- package/dist/src/action-proposal-text.d.ts +5 -0
- package/dist/src/action-proposal-text.d.ts.map +1 -1
- package/dist/src/action-proposal-text.js +4 -3
- package/dist/src/action-proposal-text.js.map +1 -1
- package/dist/src/channels/adapters/evolution_api.d.ts +21 -7
- package/dist/src/channels/adapters/evolution_api.d.ts.map +1 -1
- package/dist/src/channels/adapters/evolution_api.js +113 -36
- package/dist/src/channels/adapters/evolution_api.js.map +1 -1
- package/dist/src/channels/adapters/whatsmiau.d.ts +28 -0
- package/dist/src/channels/adapters/whatsmiau.d.ts.map +1 -0
- package/dist/src/channels/adapters/whatsmiau.js +22 -0
- package/dist/src/channels/adapters/whatsmiau.js.map +1 -0
- package/dist/src/channels/handler.d.ts +25 -2
- package/dist/src/channels/handler.d.ts.map +1 -1
- package/dist/src/channels/handler.js +142 -18
- package/dist/src/channels/handler.js.map +1 -1
- package/dist/src/channels/index.d.ts +4 -3
- package/dist/src/channels/index.d.ts.map +1 -1
- package/dist/src/channels/index.js +3 -2
- package/dist/src/channels/index.js.map +1 -1
- package/dist/src/channels/questions.d.ts +2 -0
- package/dist/src/channels/questions.d.ts.map +1 -1
- package/dist/src/channels/questions.js +41 -0
- package/dist/src/channels/questions.js.map +1 -1
- package/dist/src/channels/types.d.ts +29 -2
- package/dist/src/channels/types.d.ts.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.js +1 -1
- package/package.json +1 -1
- package/skills/agent-setup/SKILL.md +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# @adonis-agora/agent
|
|
2
2
|
|
|
3
|
+
## 0.64.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#318](https://github.com/DavideCarvalho/adonis-agora-agent/pull/318) [`b7592bc`](https://github.com/DavideCarvalho/adonis-agora-agent/commit/b7592bcb48e07b10241ac78a4860bc08ac16bc09) Thanks [@DavideCarvalho](https://github.com/DavideCarvalho)! - channels: `whatsmiau()` / `evolutionApi()` read Whatsmiau's incoming messages, which carry no `fromMe` (Go `omitempty`) — a message without `fromMe` counts as incoming only with `status: 'received'`; `fromMe: true` and any other status stay ignored. `key.remoteLid` is recognized as the chat's LID alias. The handler now logs a webhook that parsed to no message (event and reason, no content; `warn` when it looked like a person's message, else `debug`), with the reason from the new optional `ChannelAdapter.ignored(body)`.
|
|
8
|
+
|
|
9
|
+
`whatsmiau()` no longer appends the text reply instruction to the buttons message (its buttons render); `evolutionApi({ buttons: true })` still does, and the text fallback (a 4xx, or buttons off) keeps the full instruction.
|
|
10
|
+
|
|
11
|
+
A Whatsmiau button press arrives without its id (`buttonsResponseMessage` with only the label): the adapter marks it `buttonWithoutId`, and the handler maps the label to the one still-pending proposal card it sent to that conversation (remembered in the channel store); with several, it falls back to the text decision. The outcome message admitted to the thread leads with the tool's presentation text and no longer includes the proposal id (`Action "x" completed. Result: …`). Warmer pt-BR replies in `ptBrActionProposalText` ("Confirmado! Já estou cuidando disso.", "Tudo bem, cancelado. Nada foi feito.", "Esse pedido expirou; nada foi feito.").
|
|
12
|
+
|
|
13
|
+
## 0.64.0
|
|
14
|
+
|
|
15
|
+
### Minor Changes
|
|
16
|
+
|
|
17
|
+
- [#316](https://github.com/DavideCarvalho/adonis-agora-agent/pull/316) [`4f75931`](https://github.com/DavideCarvalho/adonis-agora-agent/commit/4f75931ad3cc531be5bced67d8a5ea3b6a12db08) Thanks [@DavideCarvalho](https://github.com/DavideCarvalho)! - Text channels: Brazilian Portuguese texts, self-sufficient buttons, and LID chats replied to by phone.
|
|
18
|
+
|
|
19
|
+
- `ptBrChannelTexts` (and `ptBrChannelQuestionTexts`) ship next to `DEFAULT_CHANNEL_TEXTS`. When the agent's `actionProposalText` is `ptBrActionProposalText` (its vocabulary now carries `language: 'pt-BR'`), `channels.handle` starts from the Portuguese texts, so the reply words ("sim"/"não") and what the channel says agree; `texts` overrides that base part by part. `channelTextsFor(vocabulary)` returns the set picked.
|
|
20
|
+
- A buttons message now carries the text reply instruction (`OutboundMessage.instruction`); `evolutionApi` puts it in the buttons description, so a phone that shows no buttons can still answer by text.
|
|
21
|
+
- New `whatsmiau()` adapter, exported next to `evolutionApi`: the same Evolution-format implementation for [Whatsmiau](https://github.com/verbeux-ai/whatsmiau) (built on whatsmeow), with reply buttons on by default (they render; Evolution's Baileys `nativeFlow` buttons were not shown at all on the phone in testing with 2.3.7) and the `/v1` route prefix added to a host-only `url` (a url already ending in `/v1`, `/v2`… is kept). `evolutionApi` keeps buttons off by default.
|
|
22
|
+
- `evolutionApi` LID chats: with `key.remoteJidAlt` (or `senderPn`) present, `conversation` is now the phone jid instead of the `@lid` jid, so replies are sent to the phone number and a chat keeps one conversation id whether it arrives addressed by phone or by LID. Conversation → thread mappings stored under a `@lid` jid start a new thread.
|
|
23
|
+
|
|
3
24
|
## 0.63.0
|
|
4
25
|
|
|
5
26
|
### Minor Changes
|
|
@@ -8,5 +8,9 @@ export declare function claimActionProposalOutcome(row: ActionProposal, command:
|
|
|
8
8
|
}, now: number, token: string): ActionProposal | null;
|
|
9
9
|
export declare function actionProposalOutcomeFenceValid(row: ActionProposal, command: ActionProposalOutcomeLease, now: number): boolean;
|
|
10
10
|
export declare function actionProposalOutcomeScope(outcome: ActionProposalOutcome): ActionProposalScope;
|
|
11
|
+
/**
|
|
12
|
+
* The outcome message admitted to the thread. The tool's own presentation text (`present` /
|
|
13
|
+
* `emitUi`), when it has one, leads — what a person reads in the history; the summary follows.
|
|
14
|
+
*/
|
|
11
15
|
export declare function actionProposalOutcomeText(outcome: ActionProposalOutcome): string;
|
|
12
16
|
//# sourceMappingURL=action-proposal-outcome.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-proposal-outcome.d.ts","sourceRoot":"","sources":["../../src/action-proposal-outcome.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,qBAAqB,EACrB,0BAA0B,EAC3B,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,MAAM,EACX,EAAE,GAAE,gBAAgB,EAAO,EAC3B,IAAI,CAAC,EAAE,MAAM,GACZ,cAAc,CAgChB;AACD,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAC9C,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACZ,cAAc,GAAG,IAAI,CAmBvB;AACD,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,0BAA0B,EACnC,GAAG,EAAE,MAAM,GACV,OAAO,CAoBT;
|
|
1
|
+
{"version":3,"file":"action-proposal-outcome.d.ts","sourceRoot":"","sources":["../../src/action-proposal-outcome.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,qBAAqB,EACrB,0BAA0B,EAC3B,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,MAAM,EACX,EAAE,GAAE,gBAAgB,EAAO,EAC3B,IAAI,CAAC,EAAE,MAAM,GACZ,cAAc,CAgChB;AACD,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAC9C,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACZ,cAAc,GAAG,IAAI,CAmBvB;AACD,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,0BAA0B,EACnC,GAAG,EAAE,MAAM,GACV,OAAO,CAoBT;AAaD,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,qBAAqB,GAAG,mBAAmB,CAE9F;AAeD;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,CAGhF"}
|
|
@@ -70,17 +70,36 @@ export function actionProposalOutcomeFenceValid(row, command, now) {
|
|
|
70
70
|
delivery.lease.generation === command.generation &&
|
|
71
71
|
now < delivery.lease.expiresAt);
|
|
72
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* What happened, for the model (it reads the result from here) and the chat history. No proposal id:
|
|
75
|
+
* the structured outcome stored with the message carries it.
|
|
76
|
+
*/
|
|
73
77
|
function outcomeSummary(outcome) {
|
|
78
|
+
const tool = JSON.stringify(outcome.toolName);
|
|
74
79
|
if (outcome.executionStatus === 'succeeded')
|
|
75
|
-
return `Action ${
|
|
80
|
+
return `Action ${tool} completed.${Object.hasOwn(outcome, 'result') ? ` Result: ${JSON.stringify(outcome.result)}` : ''}`;
|
|
76
81
|
if (outcome.executionStatus === 'failed')
|
|
77
|
-
return `Action ${
|
|
78
|
-
return `Action ${
|
|
82
|
+
return `Action ${tool} failed: ${JSON.stringify(outcome.error ?? 'Execution failed')}`;
|
|
83
|
+
return `Action ${tool} was ${outcome.decision} and was not executed.${outcome.error ? ` Reason: ${JSON.stringify(outcome.error)}` : ''}`;
|
|
79
84
|
}
|
|
80
85
|
export function actionProposalOutcomeScope(outcome) {
|
|
81
86
|
return { tenantRef: outcome.tenantRef, actorRef: outcome.actorRef, threadId: outcome.threadId };
|
|
82
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* Text a database column can hold: NUL and unpaired surrogates — which Postgres and SQLite refuse —
|
|
90
|
+
* are written as their JSON escapes, the way the JSON summary already carries them.
|
|
91
|
+
*/
|
|
92
|
+
function storableText(text) {
|
|
93
|
+
return text
|
|
94
|
+
.replaceAll(String.fromCharCode(0), '\\u0000')
|
|
95
|
+
.replace(/[\ud800-\udbff](?![\udc00-\udfff])|(?<![\ud800-\udbff])[\udc00-\udfff]/g, (char) => `\\u${char.charCodeAt(0).toString(16)}`);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* The outcome message admitted to the thread. The tool's own presentation text (`present` /
|
|
99
|
+
* `emitUi`), when it has one, leads — what a person reads in the history; the summary follows.
|
|
100
|
+
*/
|
|
83
101
|
export function actionProposalOutcomeText(outcome) {
|
|
84
|
-
|
|
102
|
+
const text = outcome.text === undefined ? undefined : storableText(outcome.text).trim();
|
|
103
|
+
return text ? `${text}\n\n${outcomeSummary(outcome)}` : outcomeSummary(outcome);
|
|
85
104
|
}
|
|
86
105
|
//# sourceMappingURL=action-proposal-outcome.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-proposal-outcome.js","sourceRoot":"","sources":["../../src/action-proposal-outcome.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"action-proposal-outcome.js","sourceRoot":"","sources":["../../src/action-proposal-outcome.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,6 +39,11 @@ export interface TextActionProposalVocabulary {
|
|
|
39
39
|
reject: readonly string[];
|
|
40
40
|
/** The phrase after an approve word that also approves later calls of the tool in this thread. */
|
|
41
41
|
remember: readonly string[];
|
|
42
|
+
/**
|
|
43
|
+
* The language these words are in (a BCP 47 tag, e.g. `pt-BR`). Surfaces that speak on their own
|
|
44
|
+
* (text channels) pick their default texts by it, so the words and the texts agree.
|
|
45
|
+
*/
|
|
46
|
+
language?: string;
|
|
42
47
|
}
|
|
43
48
|
/** English. Portuguese ships as {@link ptBrActionProposalText}; any other language via config. */
|
|
44
49
|
export declare const DEFAULT_TEXT_ACTION_PROPOSAL_VOCABULARY: TextActionProposalVocabulary;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-proposal-text.d.ts","sourceRoot":"","sources":["../../src/action-proposal-text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,4BAA4B,EAC7B,MAAM,gCAAgC,CAAC;AAExC,MAAM,WAAW,2BAA2B;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,sBAAsB,CAAC;CAClC;AACD,MAAM,MAAM,4BAA4B,GACpC;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAAE,GAC9C;IACE,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,UAAU,GAAG,UAAU,CAAC;IAClC,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEN;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,2BAA2B,EAAE,EACjD,UAAU,CAAC,EAAE,4BAA4B,GACxC,4BAA4B,CAe9B;AAED,MAAM,MAAM,yBAAyB,GACjC;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IACE,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,UAAU,GAAG,UAAU,CAAC;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEN;;;GAGG;AACH,MAAM,WAAW,4BAA4B;IAC3C,kCAAkC;IAClC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,gCAAgC;IAChC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,kGAAkG;IAClG,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"action-proposal-text.d.ts","sourceRoot":"","sources":["../../src/action-proposal-text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,4BAA4B,EAC7B,MAAM,gCAAgC,CAAC;AAExC,MAAM,WAAW,2BAA2B;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,sBAAsB,CAAC;CAClC;AACD,MAAM,MAAM,4BAA4B,GACpC;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAAE,GAC9C;IACE,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,UAAU,GAAG,UAAU,CAAC;IAClC,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEN;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,2BAA2B,EAAE,EACjD,UAAU,CAAC,EAAE,4BAA4B,GACxC,4BAA4B,CAe9B;AAED,MAAM,MAAM,yBAAyB,GACjC;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IACE,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,UAAU,GAAG,UAAU,CAAC;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEN;;;GAGG;AACH,MAAM,WAAW,4BAA4B;IAC3C,kCAAkC;IAClC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,gCAAgC;IAChC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,kGAAkG;IAClG,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,kGAAkG;AAClG,eAAO,MAAM,uCAAuC,EAAE,4BAIrD,CAAC;AAEF,qFAAqF;AACrF,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,sFAAsF;IACtF,SAAS,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,SAAS,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAAC;IAClD,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,oCAAoC,EAAE,yBAOlD,CAAC;AAEF,2FAA2F;AAC3F,MAAM,WAAW,wBAAwB;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC,4BAA4B,CAAC,CAAC;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,CAAC;CAC9C;AAED,gEAAgE;AAChE,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,4BAA4B,EACpC,QAAQ,EAAE,UAAU,GAAG,UAAU,EACjC,OAAO,GAAE,yBAAgE,GACxE,MAAM,CAQR;AAWD,4GAA4G;AAC5G,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,MAAM,EACZ,UAAU,GAAE,4BAAsE,GACjF,yBAAyB,CAsB3B;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,wBAAwB,CAgCrE,CAAC"}
|
|
@@ -87,6 +87,7 @@ export function parseTextActionProposalCommand(text, vocabulary = DEFAULT_TEXT_A
|
|
|
87
87
|
*/
|
|
88
88
|
export const ptBrActionProposalText = {
|
|
89
89
|
vocabulary: {
|
|
90
|
+
language: 'pt-BR',
|
|
90
91
|
approve: [
|
|
91
92
|
'sim',
|
|
92
93
|
'confirmo',
|
|
@@ -108,9 +109,9 @@ export const ptBrActionProposalText = {
|
|
|
108
109
|
remember: ['sempre nesta conversa', ...DEFAULT_TEXT_ACTION_PROPOSAL_VOCABULARY.remember],
|
|
109
110
|
},
|
|
110
111
|
replies: {
|
|
111
|
-
approved: '
|
|
112
|
-
rejected: '
|
|
113
|
-
expired: '
|
|
112
|
+
approved: 'Confirmado! Já estou cuidando disso.',
|
|
113
|
+
rejected: 'Tudo bem, cancelado. Nada foi feito.',
|
|
114
|
+
expired: 'Esse pedido expirou; nada foi feito.',
|
|
114
115
|
unchanged: 'Não foi possível alterar esta proposta; atualize a lista para consultar seu estado.',
|
|
115
116
|
ambiguous: (ids) => `Qual proposta? Responda confirmar #ID ou cancelar #ID: ${ids.join(', ')}`,
|
|
116
117
|
tooMany: 'Há várias propostas. Confirme ou rejeite usando #ID explícito.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-proposal-text.js","sourceRoot":"","sources":["../../src/action-proposal-text.ts"],"names":[],"mappings":"AAmBA;;;;GAIG;AACH,MAAM,UAAU,iCAAiC,CAC/C,IAAY,EACZ,SAAiD,EACjD,UAAyC;IAEzC,MAAM,OAAO,GAAG,8BAA8B,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACjE,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW;QAAE,OAAO,OAAO,CAAC;IACnD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACvC,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;IAChF,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,UAAU,CAAC;YAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QAC5F,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAC5E,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IACzD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACjG,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAC/C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAC9E,CAAC;
|
|
1
|
+
{"version":3,"file":"action-proposal-text.js","sourceRoot":"","sources":["../../src/action-proposal-text.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,8 @@ import { type ChannelFetch } from '../http.js';
|
|
|
2
2
|
import type { ChannelAdapter } from '../types.js';
|
|
3
3
|
export interface EvolutionApiOptions {
|
|
4
4
|
/**
|
|
5
|
-
* The Evolution API server
|
|
6
|
-
*
|
|
7
|
-
* (`https://api.whatsmiau.dev/v2`).
|
|
5
|
+
* The Evolution API server — `https://evolution.example.com`. A compatible host that serves the
|
|
6
|
+
* same routes under a prefix takes it here (`https://evolution.example.com/api`).
|
|
8
7
|
*/
|
|
9
8
|
url: string;
|
|
10
9
|
/** The instance (the connected WhatsApp number) to send from and accept webhooks for. */
|
|
@@ -20,8 +19,11 @@ export interface EvolutionApiOptions {
|
|
|
20
19
|
webhookToken: string | false;
|
|
21
20
|
/**
|
|
22
21
|
* Send proposals with reply buttons (`POST /message/sendButtons/{instance}`). Off by default:
|
|
23
|
-
*
|
|
24
|
-
*
|
|
22
|
+
* Evolution (Baileys) sends them as a `nativeFlow` interactive message that WhatsApp did not show
|
|
23
|
+
* at all in our test (2.3.7, Android recipient) — while Evolution still reported it sent. For
|
|
24
|
+
* Whatsmiau, whose buttons render, use `whatsmiau()` (buttons on). The buttons message carries the
|
|
25
|
+
* text instruction too ("Reply *yes* to confirm…"), for a phone that shows the text but not the
|
|
26
|
+
* buttons; a 4xx from that endpoint falls back to the text-only message.
|
|
25
27
|
*/
|
|
26
28
|
buttons?: boolean;
|
|
27
29
|
/** Answer messages in groups too (the sender is the participant). Default `false`. */
|
|
@@ -40,10 +42,22 @@ export interface EvolutionApiOptions {
|
|
|
40
42
|
* `https://app.example.com/webhooks/whatsapp?token=<webhookToken>`.
|
|
41
43
|
*
|
|
42
44
|
* Reads `messages.upsert` (text, extended text, button and list replies, images, audio, video,
|
|
43
|
-
* documents and stickers); ignores the instance's own messages
|
|
44
|
-
* groups. Sends with `POST {url}/message/sendText/{instance}`. Downloads media from the webhook's
|
|
45
|
+
* documents and stickers); ignores the instance's own messages (an item without `fromMe` counts as
|
|
46
|
+
* incoming only with `status: 'received'`), broadcasts and (unless `groups`) groups. Sends with `POST {url}/message/sendText/{instance}`. Downloads media from the webhook's
|
|
45
47
|
* inline `base64` (Evolution's "webhook base64" setting), else its `mediaUrl`, else
|
|
46
48
|
* `POST {url}/chat/getBase64FromMediaMessage/{instance}`.
|
|
47
49
|
*/
|
|
48
50
|
export declare function evolutionApi(options: EvolutionApiOptions): ChannelAdapter;
|
|
51
|
+
/**
|
|
52
|
+
* The adapter for any server speaking Evolution's webhook and routes — `evolutionApi()` and
|
|
53
|
+
* `whatsmiau()` differ only in their defaults. Internal.
|
|
54
|
+
*/
|
|
55
|
+
export declare function evolutionFormatAdapter(options: EvolutionApiOptions, defaults: {
|
|
56
|
+
buttons: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Put the reply instruction in the buttons message too — for a server whose buttons may not
|
|
59
|
+
* render (Evolution). Off where they render (Whatsmiau): the card shows the buttons alone.
|
|
60
|
+
*/
|
|
61
|
+
instructionWithButtons: boolean;
|
|
62
|
+
}): ChannelAdapter;
|
|
49
63
|
//# sourceMappingURL=evolution_api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evolution_api.d.ts","sourceRoot":"","sources":["../../../../src/channels/adapters/evolution_api.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EAUlB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EACV,cAAc,
|
|
1
|
+
{"version":3,"file":"evolution_api.d.ts","sourceRoot":"","sources":["../../../../src/channels/adapters/evolution_api.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EAUlB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EACV,cAAc,EAMf,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ,yFAAyF;IACzF,QAAQ,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,YAAY,EAAE,MAAM,GAAG,KAAK,CAAC;IAC7B;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sFAAsF;IACtF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6FAA6F;IAC7F,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAuND;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,cAAc,CAEzE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE;IACR,OAAO,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,sBAAsB,EAAE,OAAO,CAAC;CACjC,GACA,cAAc,CA4HhB"}
|
|
@@ -68,29 +68,61 @@ function mediaOf(message, key) {
|
|
|
68
68
|
}
|
|
69
69
|
return undefined;
|
|
70
70
|
}
|
|
71
|
+
const LID_JID = /@lid$/;
|
|
72
|
+
/** The message types of a button or list reply. */
|
|
73
|
+
const REPLY_TYPES = new Set([
|
|
74
|
+
'buttonsResponseMessage',
|
|
75
|
+
'templateButtonReplyMessage',
|
|
76
|
+
'listResponseMessage',
|
|
77
|
+
'interactiveResponseMessage',
|
|
78
|
+
]);
|
|
79
|
+
/**
|
|
80
|
+
* Is the message from the person (not sent by the instance itself)? Explicit `fromMe: false` → yes,
|
|
81
|
+
* `fromMe: true` → no. Absent from both the key and the data — Whatsmiau (Go, `omitempty`) drops a
|
|
82
|
+
* `false` — only a `status: 'received'` says it came in; any other status is never assumed incoming,
|
|
83
|
+
* so the agent never answers its own messages.
|
|
84
|
+
*/
|
|
85
|
+
function direction(key, data) {
|
|
86
|
+
if (key.fromMe === true || data.fromMe === true)
|
|
87
|
+
return 'own';
|
|
88
|
+
if (key.fromMe === false || data.fromMe === false)
|
|
89
|
+
return 'incoming';
|
|
90
|
+
if (key.fromMe === undefined && data.fromMe === undefined && data.status === 'received') {
|
|
91
|
+
return 'incoming';
|
|
92
|
+
}
|
|
93
|
+
return 'unknown';
|
|
94
|
+
}
|
|
71
95
|
function parseOne(data, options) {
|
|
72
96
|
const key = record(data.key);
|
|
73
97
|
const remoteJid = str(key?.remoteJid);
|
|
74
98
|
const id = str(key?.id);
|
|
75
99
|
if (!key || !remoteJid || !id)
|
|
76
|
-
return
|
|
77
|
-
|
|
78
|
-
if (
|
|
79
|
-
return
|
|
80
|
-
if (
|
|
81
|
-
return
|
|
100
|
+
return { skipped: 'no message key', unexpected: true };
|
|
101
|
+
const from = direction(key, data);
|
|
102
|
+
if (from === 'own')
|
|
103
|
+
return { skipped: 'own message' };
|
|
104
|
+
if (from === 'unknown') {
|
|
105
|
+
return { skipped: `fromMe missing and status ${String(data.status)}`, unexpected: true };
|
|
106
|
+
}
|
|
107
|
+
if (remoteJid.endsWith('@broadcast') || remoteJid.endsWith('@newsletter')) {
|
|
108
|
+
return { skipped: 'broadcast' };
|
|
109
|
+
}
|
|
82
110
|
const group = remoteJid.endsWith('@g.us');
|
|
83
111
|
if (group && options.groups !== true)
|
|
84
|
-
return
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
112
|
+
return { skipped: 'group' };
|
|
113
|
+
// A chat is addressed by its phone jid or by its `@lid` one (`addressingMode: 'lid'`), and the
|
|
114
|
+
// server adds the other alongside when it knows it: Evolution `remoteJidAlt` (older versions
|
|
115
|
+
// `senderPn`), Whatsmiau `remoteLid`. The phone wins, so the chat keeps one id either way.
|
|
116
|
+
const aliases = [remoteJid, str(key.remoteJidAlt), str(key.senderPn), str(key.remoteLid)];
|
|
117
|
+
const phoneJid = aliases.find((jid) => jid !== undefined && PHONE_JID.test(jid));
|
|
118
|
+
const lidJid = aliases.find((jid) => jid !== undefined && LID_JID.test(jid));
|
|
119
|
+
const chat = phoneJid ?? lidJid ?? remoteJid;
|
|
120
|
+
const sender = group ? str(key.participant) : chat;
|
|
89
121
|
if (sender === undefined)
|
|
90
|
-
return
|
|
122
|
+
return { skipped: 'no group participant', unexpected: true };
|
|
91
123
|
const message = record(data.message);
|
|
92
124
|
if (!message)
|
|
93
|
-
return
|
|
125
|
+
return { skipped: 'no message body' };
|
|
94
126
|
const button = buttonReply(message);
|
|
95
127
|
const file = button ? undefined : mediaOf(message, key);
|
|
96
128
|
const text = button
|
|
@@ -98,18 +130,59 @@ function parseOne(data, options) {
|
|
|
98
130
|
: file
|
|
99
131
|
? (file.caption ?? '')
|
|
100
132
|
: (str(message.conversation) ?? str(record(message.extendedTextMessage)?.text));
|
|
101
|
-
if (text === undefined || (text.trim() === '' && !file))
|
|
102
|
-
return
|
|
133
|
+
if (text === undefined || (text.trim() === '' && !file)) {
|
|
134
|
+
return { skipped: 'unsupported message type' };
|
|
135
|
+
}
|
|
136
|
+
// Whatsmiau forwards a button press as `messageType: 'buttonsResponseMessage'` with only the
|
|
137
|
+
// label in `message.conversation` — the button's id is lost.
|
|
138
|
+
const pressWithoutId = !button && !file && REPLY_TYPES.has(str(data.messageType) ?? '');
|
|
103
139
|
return {
|
|
104
140
|
id,
|
|
105
141
|
from: addressOf(sender),
|
|
106
|
-
|
|
142
|
+
// Replies go to the phone when it is known — `sendText`'s `number` is a phone number; the `@lid`
|
|
143
|
+
// jid only when it is all there is.
|
|
144
|
+
conversation: group ? remoteJid : chat,
|
|
107
145
|
text: text.trim(),
|
|
108
146
|
...(button ? { buttonId: button.id } : {}),
|
|
147
|
+
...(pressWithoutId ? { buttonWithoutId: true } : {}),
|
|
109
148
|
...(file ? { media: [file.media] } : {}),
|
|
110
149
|
raw: data,
|
|
111
150
|
};
|
|
112
151
|
}
|
|
152
|
+
/** The messages in a webhook body, or why there are none. */
|
|
153
|
+
function readBody(body, options) {
|
|
154
|
+
const envelope = record(body);
|
|
155
|
+
if (!envelope)
|
|
156
|
+
return { messages: null, ignored: { reason: 'not a JSON object' } };
|
|
157
|
+
const rawEvent = str(envelope.event);
|
|
158
|
+
const event = rawEvent?.toLowerCase().replace(/_/g, '.');
|
|
159
|
+
const named = rawEvent !== undefined ? { event: rawEvent } : {};
|
|
160
|
+
if (event !== 'messages.upsert') {
|
|
161
|
+
return { messages: null, ignored: { ...named, reason: 'not a messages.upsert event' } };
|
|
162
|
+
}
|
|
163
|
+
const from = str(envelope.instance);
|
|
164
|
+
if (from !== undefined && from !== options.instance) {
|
|
165
|
+
return { messages: null, ignored: { ...named, reason: 'another instance' } };
|
|
166
|
+
}
|
|
167
|
+
const items = (Array.isArray(envelope.data) ? envelope.data : [envelope.data])
|
|
168
|
+
.map((item) => record(item))
|
|
169
|
+
.filter((item) => item !== undefined)
|
|
170
|
+
.map((item) => parseOne(item, options));
|
|
171
|
+
const messages = items.filter((item) => !('skipped' in item));
|
|
172
|
+
if (messages.length > 0)
|
|
173
|
+
return { messages };
|
|
174
|
+
const skipped = items.filter((item) => 'skipped' in item);
|
|
175
|
+
if (skipped.length === 0)
|
|
176
|
+
return { messages, ignored: { ...named, reason: 'no data' } };
|
|
177
|
+
return {
|
|
178
|
+
messages,
|
|
179
|
+
ignored: {
|
|
180
|
+
...named,
|
|
181
|
+
reason: [...new Set(skipped.map((item) => item.skipped))].join(', '),
|
|
182
|
+
...(skipped.some((item) => item.unexpected) ? { unexpected: true } : {}),
|
|
183
|
+
},
|
|
184
|
+
};
|
|
185
|
+
}
|
|
113
186
|
/** The WhatsApp reply-button limit. */
|
|
114
187
|
const MAX_BUTTONS = 3;
|
|
115
188
|
/**
|
|
@@ -118,23 +191,31 @@ const MAX_BUTTONS = 3;
|
|
|
118
191
|
* `https://app.example.com/webhooks/whatsapp?token=<webhookToken>`.
|
|
119
192
|
*
|
|
120
193
|
* Reads `messages.upsert` (text, extended text, button and list replies, images, audio, video,
|
|
121
|
-
* documents and stickers); ignores the instance's own messages
|
|
122
|
-
* groups. Sends with `POST {url}/message/sendText/{instance}`. Downloads media from the webhook's
|
|
194
|
+
* documents and stickers); ignores the instance's own messages (an item without `fromMe` counts as
|
|
195
|
+
* incoming only with `status: 'received'`), broadcasts and (unless `groups`) groups. Sends with `POST {url}/message/sendText/{instance}`. Downloads media from the webhook's
|
|
123
196
|
* inline `base64` (Evolution's "webhook base64" setting), else its `mediaUrl`, else
|
|
124
197
|
* `POST {url}/chat/getBase64FromMediaMessage/{instance}`.
|
|
125
198
|
*/
|
|
126
199
|
export function evolutionApi(options) {
|
|
200
|
+
return evolutionFormatAdapter(options, { buttons: false, instructionWithButtons: true });
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* The adapter for any server speaking Evolution's webhook and routes — `evolutionApi()` and
|
|
204
|
+
* `whatsmiau()` differ only in their defaults. Internal.
|
|
205
|
+
*/
|
|
206
|
+
export function evolutionFormatAdapter(options, defaults) {
|
|
127
207
|
const name = options.name ?? 'whatsapp';
|
|
128
208
|
const fetcher = options.fetch ?? globalThis.fetch;
|
|
129
209
|
const timeoutMs = options.timeoutMs ?? 20_000;
|
|
130
210
|
const base = options.url.replace(/\/+$/, '');
|
|
131
211
|
const instance = encodeURIComponent(options.instance);
|
|
132
212
|
const headers = { apikey: options.apiKey };
|
|
213
|
+
const buttons = options.buttons ?? defaults.buttons;
|
|
133
214
|
const post = (path, body) => postJson(name, fetcher, `${base}${path}/${instance}`, headers, body, timeoutMs);
|
|
134
215
|
return {
|
|
135
216
|
name,
|
|
136
217
|
capabilities: {
|
|
137
|
-
...(
|
|
218
|
+
...(buttons ? { buttons: MAX_BUTTONS } : {}),
|
|
138
219
|
markdown: 'whatsapp',
|
|
139
220
|
maxLength: options.maxLength ?? 4096,
|
|
140
221
|
},
|
|
@@ -151,21 +232,10 @@ export function evolutionApi(options) {
|
|
|
151
232
|
return supplied.some((token) => safeEqual(token, options.webhookToken));
|
|
152
233
|
},
|
|
153
234
|
parse(body) {
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
if (event !== 'messages.upsert')
|
|
159
|
-
return null;
|
|
160
|
-
const from = str(envelope.instance);
|
|
161
|
-
if (from !== undefined && from !== options.instance)
|
|
162
|
-
return null;
|
|
163
|
-
const items = Array.isArray(envelope.data) ? envelope.data : [envelope.data];
|
|
164
|
-
return items
|
|
165
|
-
.map((item) => record(item))
|
|
166
|
-
.filter((item) => item !== undefined)
|
|
167
|
-
.map((item) => parseOne(item, options))
|
|
168
|
-
.filter((item) => item !== null);
|
|
235
|
+
return readBody(body, options).messages;
|
|
236
|
+
},
|
|
237
|
+
ignored(body) {
|
|
238
|
+
return readBody(body, options).ignored ?? null;
|
|
169
239
|
},
|
|
170
240
|
async download(media, { maxBytes }) {
|
|
171
241
|
const ref = media.ref;
|
|
@@ -204,10 +274,17 @@ export function evolutionApi(options) {
|
|
|
204
274
|
},
|
|
205
275
|
async send(conversation, message) {
|
|
206
276
|
const number = addressOf(conversation);
|
|
207
|
-
if (message.buttons !== undefined &&
|
|
277
|
+
if (message.buttons !== undefined && buttons) {
|
|
208
278
|
const [first = '', ...rest] = message.text.split('\n');
|
|
209
279
|
const title = first.replace(/[*_~]/g, '').trim();
|
|
210
|
-
|
|
280
|
+
// Where buttons may not render, the reply instruction rides along: a phone that shows the
|
|
281
|
+
// text but not the buttons can still answer by text.
|
|
282
|
+
const instruction = defaults.instructionWithButtons
|
|
283
|
+
? (message.instruction?.trim() ?? '')
|
|
284
|
+
: '';
|
|
285
|
+
const description = [rest.join('\n').trim(), instruction]
|
|
286
|
+
.filter((part) => part !== '')
|
|
287
|
+
.join('\n\n');
|
|
211
288
|
if (title.length <= 60 && description.length <= 1024 && message.buttons.length > 0) {
|
|
212
289
|
try {
|
|
213
290
|
await post('/message/sendButtons', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evolution_api.js","sourceRoot":"","sources":["../../../../src/channels/adapters/evolution_api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"evolution_api.js","sourceRoot":"","sources":["../../../../src/channels/adapters/evolution_api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { ChannelAdapter } from '../types.js';
|
|
2
|
+
import { type EvolutionApiOptions } from './evolution_api.js';
|
|
3
|
+
export interface WhatsmiauOptions extends EvolutionApiOptions {
|
|
4
|
+
/**
|
|
5
|
+
* The Whatsmiau server, host only — `http://whatsmiau:8080`. The route prefix is added for you:
|
|
6
|
+
* `/v1` (self-hosted Whatsmiau serves Evolution's routes there). A url that already ends in a
|
|
7
|
+
* version (`https://api.whatsmiau.dev/v2`, the hosted service) is used as is.
|
|
8
|
+
*/
|
|
9
|
+
url: string;
|
|
10
|
+
/**
|
|
11
|
+
* Send proposals with reply buttons (`POST /v1/message/sendButtons/{instance}`). Default `true`:
|
|
12
|
+
* Whatsmiau runs on whatsmeow, whose buttons WhatsApp renders, so the buttons message carries no
|
|
13
|
+
* text instruction (the person can still answer by text); a 4xx from that endpoint falls back to
|
|
14
|
+
* the text-only message, instruction included.
|
|
15
|
+
*/
|
|
16
|
+
buttons?: boolean;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* WhatsApp through [Whatsmiau](https://github.com/verbeux-ai/whatsmiau) — an Evolution-compatible
|
|
20
|
+
* server built on whatsmeow (verbeux-ai's fork). The same webhook, routes and options as
|
|
21
|
+
* `evolutionApi()`, with two differences: the route prefix (`/v1`) is added to `url`, and reply
|
|
22
|
+
* buttons are on by default — Whatsmiau's render on the phone, where Evolution's (Baileys) did not in
|
|
23
|
+
* our test (so the buttons card carries no text instruction; the text fallback does). Point the
|
|
24
|
+
* instance's webhook (`POST /v1/webhook/set/{instance}`, event
|
|
25
|
+
* `MESSAGES_UPSERT`) at the route, with the token.
|
|
26
|
+
*/
|
|
27
|
+
export declare function whatsmiau(options: WhatsmiauOptions): ChannelAdapter;
|
|
28
|
+
//# sourceMappingURL=whatsmiau.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whatsmiau.d.ts","sourceRoot":"","sources":["../../../../src/channels/adapters/whatsmiau.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,KAAK,mBAAmB,EAA0B,MAAM,oBAAoB,CAAC;AAEtF,MAAM,WAAW,gBAAiB,SAAQ,mBAAmB;IAC3D;;;;OAIG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAQD;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,cAAc,CAQnE"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { evolutionFormatAdapter } from './evolution_api.js';
|
|
2
|
+
/** `http://host:8080` → `http://host:8080/v1`; a url ending in `/v1`, `/v2`… as is. */
|
|
3
|
+
function whatsmiauBase(url) {
|
|
4
|
+
const trimmed = url.replace(/\/+$/, '');
|
|
5
|
+
return /\/v\d+$/.test(trimmed) ? trimmed : `${trimmed}/v1`;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* WhatsApp through [Whatsmiau](https://github.com/verbeux-ai/whatsmiau) — an Evolution-compatible
|
|
9
|
+
* server built on whatsmeow (verbeux-ai's fork). The same webhook, routes and options as
|
|
10
|
+
* `evolutionApi()`, with two differences: the route prefix (`/v1`) is added to `url`, and reply
|
|
11
|
+
* buttons are on by default — Whatsmiau's render on the phone, where Evolution's (Baileys) did not in
|
|
12
|
+
* our test (so the buttons card carries no text instruction; the text fallback does). Point the
|
|
13
|
+
* instance's webhook (`POST /v1/webhook/set/{instance}`, event
|
|
14
|
+
* `MESSAGES_UPSERT`) at the route, with the token.
|
|
15
|
+
*/
|
|
16
|
+
export function whatsmiau(options) {
|
|
17
|
+
return evolutionFormatAdapter({ ...options, url: whatsmiauBase(options.url) }, {
|
|
18
|
+
buttons: true,
|
|
19
|
+
instructionWithButtons: false,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=whatsmiau.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whatsmiau.js","sourceRoot":"","sources":["../../../../src/channels/adapters/whatsmiau.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAkBtF,uFAAuF;AACvF,SAAS,aAAa,CAAC,GAAW;IAChC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxC,OAAO,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,KAAK,CAAC;AAC7D,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CAAC,OAAyB;IACjD,OAAO,sBAAsB,CAC3B,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAC/C;QACE,OAAO,EAAE,IAAI;QACb,sBAAsB,EAAE,KAAK;KAC9B,CACF,CAAC;AACJ,CAAC"}
|