@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.
Files changed (35) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/src/action-proposal-outcome.d.ts +4 -0
  3. package/dist/src/action-proposal-outcome.d.ts.map +1 -1
  4. package/dist/src/action-proposal-outcome.js +23 -4
  5. package/dist/src/action-proposal-outcome.js.map +1 -1
  6. package/dist/src/action-proposal-text.d.ts +5 -0
  7. package/dist/src/action-proposal-text.d.ts.map +1 -1
  8. package/dist/src/action-proposal-text.js +4 -3
  9. package/dist/src/action-proposal-text.js.map +1 -1
  10. package/dist/src/channels/adapters/evolution_api.d.ts +21 -7
  11. package/dist/src/channels/adapters/evolution_api.d.ts.map +1 -1
  12. package/dist/src/channels/adapters/evolution_api.js +113 -36
  13. package/dist/src/channels/adapters/evolution_api.js.map +1 -1
  14. package/dist/src/channels/adapters/whatsmiau.d.ts +28 -0
  15. package/dist/src/channels/adapters/whatsmiau.d.ts.map +1 -0
  16. package/dist/src/channels/adapters/whatsmiau.js +22 -0
  17. package/dist/src/channels/adapters/whatsmiau.js.map +1 -0
  18. package/dist/src/channels/handler.d.ts +25 -2
  19. package/dist/src/channels/handler.d.ts.map +1 -1
  20. package/dist/src/channels/handler.js +142 -18
  21. package/dist/src/channels/handler.js.map +1 -1
  22. package/dist/src/channels/index.d.ts +4 -3
  23. package/dist/src/channels/index.d.ts.map +1 -1
  24. package/dist/src/channels/index.js +3 -2
  25. package/dist/src/channels/index.js.map +1 -1
  26. package/dist/src/channels/questions.d.ts +2 -0
  27. package/dist/src/channels/questions.d.ts.map +1 -1
  28. package/dist/src/channels/questions.js +41 -0
  29. package/dist/src/channels/questions.js.map +1 -1
  30. package/dist/src/channels/types.d.ts +29 -2
  31. package/dist/src/channels/types.d.ts.map +1 -1
  32. package/dist/src/index.d.ts +1 -1
  33. package/dist/src/index.js +1 -1
  34. package/package.json +1 -1
  35. 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;AAQD,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,qBAAqB,GAAG,mBAAmB,CAE9F;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,CAEhF"}
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 ${JSON.stringify(outcome.toolName)} completed (proposal ${JSON.stringify(outcome.proposalId)}).${Object.hasOwn(outcome, 'result') ? ` Result: ${JSON.stringify(outcome.result)}` : ''}`;
80
+ return `Action ${tool} completed.${Object.hasOwn(outcome, 'result') ? ` Result: ${JSON.stringify(outcome.result)}` : ''}`;
76
81
  if (outcome.executionStatus === 'failed')
77
- return `Action ${JSON.stringify(outcome.toolName)} failed (proposal ${JSON.stringify(outcome.proposalId)}): ${JSON.stringify(outcome.error ?? 'Execution failed')}`;
78
- return `Action ${JSON.stringify(outcome.toolName)} was ${outcome.decision} (proposal ${JSON.stringify(outcome.proposalId)}) and was not executed.${outcome.error ? ` Reason: ${JSON.stringify(outcome.error)}` : ''}`;
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
- return outcomeSummary(outcome) + (outcome.text ? ` UI: ${JSON.stringify(outcome.text)}` : '');
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;CAC7B;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,CA+BrE,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: 'Proposta aprovada e enfileirada para execução.',
112
- rejected: 'Proposta rejeitada; nenhuma ação foi executada.',
113
- expired: 'A proposta expirou; nenhuma ação foi executada.',
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":"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"}
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, without a trailing slash — `https://evolution.example.com`. A
6
- * compatible host that serves the same routes under a prefix takes it here
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
- * WhatsApp does not reliably render buttons sent from a non-Business-API session, so many
24
- * instances show nothing. When on, a 4xx from that endpoint falls back to the text instruction.
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, broadcasts and (unless `groups`)
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,EAKf,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;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;;;;OAIG;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;AAkID;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,cAAc,CA2HzE"}
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 null;
77
- // Only a message explicitly marked as incoming: never assume a missing `fromMe` means "not mine".
78
- if (!(key.fromMe === false || data.fromMe === false) || key.fromMe === true)
79
- return null;
80
- if (remoteJid.endsWith('@broadcast') || remoteJid.endsWith('@newsletter'))
81
- return null;
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 null;
85
- const sender = group
86
- ? str(key.participant)
87
- : // A `@lid` chat hides the number; Evolution adds it alongside when it knows it.
88
- ([remoteJid, str(key.remoteJidAlt), str(key.senderPn)].find((jid) => jid !== undefined && PHONE_JID.test(jid)) ?? remoteJid);
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 null;
122
+ return { skipped: 'no group participant', unexpected: true };
91
123
  const message = record(data.message);
92
124
  if (!message)
93
- return null;
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 null;
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
- conversation: remoteJid,
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, broadcasts and (unless `groups`)
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
- ...(options.buttons === true ? { buttons: MAX_BUTTONS } : {}),
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
- const envelope = record(body);
155
- if (!envelope)
156
- return null;
157
- const event = str(envelope.event)?.toLowerCase().replace(/_/g, '.');
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 && options.buttons === true) {
277
+ if (message.buttons !== undefined && buttons) {
208
278
  const [first = '', ...rest] = message.text.split('\n');
209
279
  const title = first.replace(/[*_~]/g, '').trim();
210
- const description = rest.join('\n').trim();
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"}