@0xmaxma/claude-gateway 1.8.10 → 1.8.12

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 (74) hide show
  1. package/README.md +14 -1
  2. package/config.template.json +2 -1
  3. package/dist/agent/runner.d.ts +72 -0
  4. package/dist/agent/runner.d.ts.map +1 -1
  5. package/dist/agent/runner.js +300 -6
  6. package/dist/agent/runner.js.map +1 -1
  7. package/dist/api/router.d.ts.map +1 -1
  8. package/dist/api/router.js +1001 -4
  9. package/dist/api/router.js.map +1 -1
  10. package/dist/api/webhooks-router.d.ts +2 -0
  11. package/dist/api/webhooks-router.d.ts.map +1 -1
  12. package/dist/api/webhooks-router.js +2 -0
  13. package/dist/api/webhooks-router.js.map +1 -1
  14. package/dist/api/whatsapp-access.d.ts +123 -0
  15. package/dist/api/whatsapp-access.d.ts.map +1 -0
  16. package/dist/api/whatsapp-access.js +135 -0
  17. package/dist/api/whatsapp-access.js.map +1 -0
  18. package/dist/api/whatsapp-cloud-access.d.ts +48 -0
  19. package/dist/api/whatsapp-cloud-access.d.ts.map +1 -0
  20. package/dist/api/whatsapp-cloud-access.js +58 -0
  21. package/dist/api/whatsapp-cloud-access.js.map +1 -0
  22. package/dist/api/whatsapp-cloud-client.d.ts +143 -0
  23. package/dist/api/whatsapp-cloud-client.d.ts.map +1 -0
  24. package/dist/api/whatsapp-cloud-client.js +298 -0
  25. package/dist/api/whatsapp-cloud-client.js.map +1 -0
  26. package/dist/api/whatsapp-cloud-webhook-router.d.ts +132 -0
  27. package/dist/api/whatsapp-cloud-webhook-router.d.ts.map +1 -0
  28. package/dist/api/whatsapp-cloud-webhook-router.js +494 -0
  29. package/dist/api/whatsapp-cloud-webhook-router.js.map +1 -0
  30. package/dist/config/loader.d.ts.map +1 -1
  31. package/dist/config/loader.js +7 -0
  32. package/dist/config/loader.js.map +1 -1
  33. package/dist/config/whatsapp-accounts.d.ts +77 -0
  34. package/dist/config/whatsapp-accounts.d.ts.map +1 -0
  35. package/dist/config/whatsapp-accounts.js +218 -0
  36. package/dist/config/whatsapp-accounts.js.map +1 -0
  37. package/dist/history/db.d.ts.map +1 -1
  38. package/dist/history/db.js +43 -11
  39. package/dist/history/db.js.map +1 -1
  40. package/dist/history/types.d.ts +18 -1
  41. package/dist/history/types.d.ts.map +1 -1
  42. package/dist/history/types.js +1 -1
  43. package/dist/history/types.js.map +1 -1
  44. package/dist/index.js +18 -0
  45. package/dist/index.js.map +1 -1
  46. package/dist/session/process.d.ts.map +1 -1
  47. package/dist/session/process.js +37 -0
  48. package/dist/session/process.js.map +1 -1
  49. package/dist/shared/image-optimize.d.ts +32 -0
  50. package/dist/shared/image-optimize.d.ts.map +1 -0
  51. package/dist/shared/image-optimize.js +197 -0
  52. package/dist/shared/image-optimize.js.map +1 -0
  53. package/dist/shared/image-sniff.d.ts +9 -0
  54. package/dist/shared/image-sniff.d.ts.map +1 -1
  55. package/dist/shared/image-sniff.js +13 -0
  56. package/dist/shared/image-sniff.js.map +1 -1
  57. package/dist/shared/text-chunk.d.ts +37 -0
  58. package/dist/shared/text-chunk.d.ts.map +1 -0
  59. package/dist/shared/text-chunk.js +105 -0
  60. package/dist/shared/text-chunk.js.map +1 -0
  61. package/dist/shared/whatsapp-ack.d.ts +13 -0
  62. package/dist/shared/whatsapp-ack.d.ts.map +1 -0
  63. package/dist/shared/whatsapp-ack.js +16 -0
  64. package/dist/shared/whatsapp-ack.js.map +1 -0
  65. package/dist/types.d.ts +158 -0
  66. package/dist/types.d.ts.map +1 -1
  67. package/dist/whatsapp/manager.d.ts +173 -0
  68. package/dist/whatsapp/manager.d.ts.map +1 -0
  69. package/dist/whatsapp/manager.js +838 -0
  70. package/dist/whatsapp/manager.js.map +1 -0
  71. package/mcp/server.ts +4 -0
  72. package/mcp/tools/whatsapp/module.ts +162 -0
  73. package/mcp/tools/whatsapp-cloud/module.ts +536 -0
  74. package/package.json +9 -4
@@ -0,0 +1,77 @@
1
+ import type { WhatsAppAccountConfig } from '../types';
2
+ /** Reserved id of the pre-multi-account session — see the module doc above. */
3
+ export declare const DEFAULT_WHATSAPP_ACCOUNT_ID = "default";
4
+ /** Bare state directory name; also the 'default' account's directory verbatim. */
5
+ export declare const WHATSAPP_STATE_DIR = ".whatsapp-state";
6
+ /**
7
+ * Account ids double as on-disk directory names and as MCP `account_id`
8
+ * values, so they're restricted to a conservative slug: lowercase
9
+ * alphanumerics plus `-`/`_`, never a path traversal or a dotfile.
10
+ */
11
+ export declare const WHATSAPP_ACCOUNT_ID_RE: RegExp;
12
+ /**
13
+ * Resolve the Baileys state directory for one account.
14
+ *
15
+ * 'default' deliberately uses the BARE `.whatsapp-state/` path rather than
16
+ * `.whatsapp-state/default/`: that is the directory a pre-multi-account
17
+ * gateway already linked into, and moving it is the one operation that could
18
+ * lose a live session. Every other account nests one level below it, which
19
+ * cannot collide with Baileys' own files (it writes `creds.json` and
20
+ * `<key-type>-<id>.json`, never a directory).
21
+ */
22
+ export declare function whatsAppStateDir(workspace: string, accountId: string): string;
23
+ /**
24
+ * The accounts an agent actually runs, given its (possibly absent) config.
25
+ *
26
+ * An absent/empty array resolves to a lone 'default' account so an agent that
27
+ * has never touched WhatsApp still gets a linkable manager — exactly the
28
+ * pre-multi-account behavior, where AgentRunner constructed a WhatsAppManager
29
+ * unconditionally because there was no config field to gate on.
30
+ */
31
+ export declare function resolveWhatsAppAccounts(cfg: {
32
+ accounts?: WhatsAppAccountConfig[];
33
+ } | undefined): WhatsAppAccountConfig[];
34
+ /** Look up one account's config by id (undefined when it isn't configured). */
35
+ export declare function findWhatsAppAccount(cfg: {
36
+ accounts?: WhatsAppAccountConfig[];
37
+ } | undefined, accountId: string): WhatsAppAccountConfig | undefined;
38
+ /**
39
+ * True when `block` is a `whatsapp` config in the OLD flat shape — i.e. an
40
+ * object that has no `accounts` array. An empty `{}` counts as legacy (it
41
+ * upgrades to a bare 'default' account); anything already carrying `accounts`
42
+ * does not.
43
+ */
44
+ export declare function isLegacyWhatsAppBlock(block: unknown): boolean;
45
+ /**
46
+ * Convert an old flat `whatsapp` block into the new `{ accounts: [...] }`
47
+ * shape, lifting every legacy access-control field onto a single account
48
+ * whose id is 'default' (which keeps the existing on-disk session — see the
49
+ * module doc). Absent fields stay absent rather than being materialized as
50
+ * explicit undefineds, so the rewritten JSON stays as small as the original.
51
+ */
52
+ export declare function upgradeWhatsAppBlock(block: Record<string, unknown>): {
53
+ accounts: WhatsAppAccountConfig[];
54
+ };
55
+ /**
56
+ * Upgrade one agent entry in place. Returns true when it was rewritten.
57
+ * Safe to call repeatedly — an already-upgraded agent is left untouched.
58
+ */
59
+ export declare function upgradeAgentWhatsAppAccounts(agent: Record<string, unknown>): boolean;
60
+ /**
61
+ * Upgrade every agent in a parsed config object in place. Returns the ids of
62
+ * the agents that were rewritten (empty when nothing needed upgrading).
63
+ */
64
+ export declare function upgradeWhatsAppAccountsInConfig(config: Record<string, unknown>): string[];
65
+ /**
66
+ * Read config.json, upgrade any legacy `whatsapp` blocks, and atomically
67
+ * write it back so the migration is permanent (a later save from the API
68
+ * would otherwise re-persist the old shape from whatever was last read).
69
+ *
70
+ * Best-effort by design: a missing/unreadable/invalid config is left alone
71
+ * and reported as "nothing upgraded" — boot continues into loadConfig, which
72
+ * produces the real, user-facing error for a broken config. The in-memory
73
+ * normalization in loadConfig means runtime is correct even if this write
74
+ * fails (e.g. read-only filesystem).
75
+ */
76
+ export declare function upgradeWhatsAppAccountsFile(configPath: string): string[];
77
+ //# sourceMappingURL=whatsapp-accounts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whatsapp-accounts.d.ts","sourceRoot":"","sources":["../../src/config/whatsapp-accounts.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAGtD,+EAA+E;AAC/E,eAAO,MAAM,2BAA2B,YAAY,CAAC;AAErD,kFAAkF;AAClF,eAAO,MAAM,kBAAkB,oBAAoB,CAAC;AAEpD;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,QAA+B,CAAC;AAmBnE;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAG7E;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE;IAAE,QAAQ,CAAC,EAAE,qBAAqB,EAAE,CAAA;CAAE,GAAG,SAAS,GACtD,qBAAqB,EAAE,CAIzB;AAED,+EAA+E;AAC/E,wBAAgB,mBAAmB,CACjC,GAAG,EAAE;IAAE,QAAQ,CAAC,EAAE,qBAAqB,EAAE,CAAA;CAAE,GAAG,SAAS,EACvD,SAAS,EAAE,MAAM,GAChB,qBAAqB,GAAG,SAAS,CAEnC;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAG7D;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACpE,QAAQ,EAAE,qBAAqB,EAAE,CAAC;CACnC,CAMA;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAKpF;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAUzF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAmBxE"}
@@ -0,0 +1,218 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.WHATSAPP_ACCOUNT_ID_RE = exports.WHATSAPP_STATE_DIR = exports.DEFAULT_WHATSAPP_ACCOUNT_ID = void 0;
37
+ exports.whatsAppStateDir = whatsAppStateDir;
38
+ exports.resolveWhatsAppAccounts = resolveWhatsAppAccounts;
39
+ exports.findWhatsAppAccount = findWhatsAppAccount;
40
+ exports.isLegacyWhatsAppBlock = isLegacyWhatsAppBlock;
41
+ exports.upgradeWhatsAppBlock = upgradeWhatsAppBlock;
42
+ exports.upgradeAgentWhatsAppAccounts = upgradeAgentWhatsAppAccounts;
43
+ exports.upgradeWhatsAppAccountsInConfig = upgradeWhatsAppAccountsInConfig;
44
+ exports.upgradeWhatsAppAccountsFile = upgradeWhatsAppAccountsFile;
45
+ /**
46
+ * WhatsApp multi-account config shape — normalization, back-compat upgrade,
47
+ * and the on-disk state-directory rule.
48
+ *
49
+ * Phase 1 of the WhatsApp feature-parity plan replaced `AgentConfig.whatsapp`'s
50
+ * single flat block:
51
+ *
52
+ * "whatsapp": { "dmPolicy": "allowlist", "dmAllowlist": ["…"] }
53
+ *
54
+ * with an array of per-number accounts:
55
+ *
56
+ * "whatsapp": { "accounts": [ { "id": "default", "dmPolicy": "allowlist", … } ] }
57
+ *
58
+ * A gateway upgraded in place will have live config.json files (and a LIVE
59
+ * linked Baileys session on disk) in the old shape, so:
60
+ *
61
+ * 1. {@link upgradeAgentWhatsAppAccounts} rewrites the old shape into the new
62
+ * one in memory, and {@link upgradeWhatsAppAccountsFile} writes it back so
63
+ * the config self-heals permanently on first load.
64
+ * 2. The synthesized account is always `id: 'default'`, and 'default' is
65
+ * special-cased in {@link whatsAppStateDir} to keep using the historical
66
+ * BARE `<workspace>/.whatsapp-state/` directory. Nothing on disk moves, so
67
+ * an already-linked number stays linked across the upgrade. Only NEW
68
+ * accounts get a `<workspace>/.whatsapp-state/<id>/` subdirectory.
69
+ */
70
+ const fs = __importStar(require("fs"));
71
+ const path = __importStar(require("path"));
72
+ const config_write_lock_1 = require("./config-write-lock");
73
+ /** Reserved id of the pre-multi-account session — see the module doc above. */
74
+ exports.DEFAULT_WHATSAPP_ACCOUNT_ID = 'default';
75
+ /** Bare state directory name; also the 'default' account's directory verbatim. */
76
+ exports.WHATSAPP_STATE_DIR = '.whatsapp-state';
77
+ /**
78
+ * Account ids double as on-disk directory names and as MCP `account_id`
79
+ * values, so they're restricted to a conservative slug: lowercase
80
+ * alphanumerics plus `-`/`_`, never a path traversal or a dotfile.
81
+ */
82
+ exports.WHATSAPP_ACCOUNT_ID_RE = /^[a-z0-9][a-z0-9_-]{0,31}$/;
83
+ /** The legacy flat fields that get lifted onto the synthesized 'default' account. */
84
+ const LEGACY_ACCESS_FIELDS = [
85
+ 'dmPolicy',
86
+ 'dmAllowlist',
87
+ 'groupPolicy',
88
+ 'groupAllowlist',
89
+ 'requireMention',
90
+ 'pairing',
91
+ // Phase 2 behaviour flags. They postdate the flat shape, so a genuine
92
+ // pre-Phase-1 config never carries them — but a hand-edited config.json can
93
+ // still have them sitting in a flat block, and lifting them costs nothing
94
+ // (absent fields stay absent, so an untouched config still upgrades to the
95
+ // exact same JSON it did before).
96
+ 'sendReadReceipts',
97
+ 'reactionLevel',
98
+ ];
99
+ /**
100
+ * Resolve the Baileys state directory for one account.
101
+ *
102
+ * 'default' deliberately uses the BARE `.whatsapp-state/` path rather than
103
+ * `.whatsapp-state/default/`: that is the directory a pre-multi-account
104
+ * gateway already linked into, and moving it is the one operation that could
105
+ * lose a live session. Every other account nests one level below it, which
106
+ * cannot collide with Baileys' own files (it writes `creds.json` and
107
+ * `<key-type>-<id>.json`, never a directory).
108
+ */
109
+ function whatsAppStateDir(workspace, accountId) {
110
+ const base = path.join(workspace, exports.WHATSAPP_STATE_DIR);
111
+ return accountId === exports.DEFAULT_WHATSAPP_ACCOUNT_ID ? base : path.join(base, accountId);
112
+ }
113
+ /**
114
+ * The accounts an agent actually runs, given its (possibly absent) config.
115
+ *
116
+ * An absent/empty array resolves to a lone 'default' account so an agent that
117
+ * has never touched WhatsApp still gets a linkable manager — exactly the
118
+ * pre-multi-account behavior, where AgentRunner constructed a WhatsAppManager
119
+ * unconditionally because there was no config field to gate on.
120
+ */
121
+ function resolveWhatsAppAccounts(cfg) {
122
+ const accounts = cfg?.accounts;
123
+ if (Array.isArray(accounts) && accounts.length > 0)
124
+ return accounts;
125
+ return [{ id: exports.DEFAULT_WHATSAPP_ACCOUNT_ID }];
126
+ }
127
+ /** Look up one account's config by id (undefined when it isn't configured). */
128
+ function findWhatsAppAccount(cfg, accountId) {
129
+ return resolveWhatsAppAccounts(cfg).find((a) => a.id === accountId);
130
+ }
131
+ /**
132
+ * True when `block` is a `whatsapp` config in the OLD flat shape — i.e. an
133
+ * object that has no `accounts` array. An empty `{}` counts as legacy (it
134
+ * upgrades to a bare 'default' account); anything already carrying `accounts`
135
+ * does not.
136
+ */
137
+ function isLegacyWhatsAppBlock(block) {
138
+ if (!block || typeof block !== 'object' || Array.isArray(block))
139
+ return false;
140
+ return !Array.isArray(block.accounts);
141
+ }
142
+ /**
143
+ * Convert an old flat `whatsapp` block into the new `{ accounts: [...] }`
144
+ * shape, lifting every legacy access-control field onto a single account
145
+ * whose id is 'default' (which keeps the existing on-disk session — see the
146
+ * module doc). Absent fields stay absent rather than being materialized as
147
+ * explicit undefineds, so the rewritten JSON stays as small as the original.
148
+ */
149
+ function upgradeWhatsAppBlock(block) {
150
+ const account = { id: exports.DEFAULT_WHATSAPP_ACCOUNT_ID };
151
+ for (const field of LEGACY_ACCESS_FIELDS) {
152
+ if (block[field] !== undefined)
153
+ account[field] = block[field];
154
+ }
155
+ return { accounts: [account] };
156
+ }
157
+ /**
158
+ * Upgrade one agent entry in place. Returns true when it was rewritten.
159
+ * Safe to call repeatedly — an already-upgraded agent is left untouched.
160
+ */
161
+ function upgradeAgentWhatsAppAccounts(agent) {
162
+ const block = agent.whatsapp;
163
+ if (!isLegacyWhatsAppBlock(block))
164
+ return false;
165
+ agent.whatsapp = upgradeWhatsAppBlock(block);
166
+ return true;
167
+ }
168
+ /**
169
+ * Upgrade every agent in a parsed config object in place. Returns the ids of
170
+ * the agents that were rewritten (empty when nothing needed upgrading).
171
+ */
172
+ function upgradeWhatsAppAccountsInConfig(config) {
173
+ const agents = config.agents;
174
+ if (!Array.isArray(agents))
175
+ return [];
176
+ const upgraded = [];
177
+ for (const agent of agents) {
178
+ if (!agent || typeof agent !== 'object' || Array.isArray(agent))
179
+ continue;
180
+ const entry = agent;
181
+ if (upgradeAgentWhatsAppAccounts(entry))
182
+ upgraded.push(String(entry.id ?? '<unknown>'));
183
+ }
184
+ return upgraded;
185
+ }
186
+ /**
187
+ * Read config.json, upgrade any legacy `whatsapp` blocks, and atomically
188
+ * write it back so the migration is permanent (a later save from the API
189
+ * would otherwise re-persist the old shape from whatever was last read).
190
+ *
191
+ * Best-effort by design: a missing/unreadable/invalid config is left alone
192
+ * and reported as "nothing upgraded" — boot continues into loadConfig, which
193
+ * produces the real, user-facing error for a broken config. The in-memory
194
+ * normalization in loadConfig means runtime is correct even if this write
195
+ * fails (e.g. read-only filesystem).
196
+ */
197
+ function upgradeWhatsAppAccountsFile(configPath) {
198
+ let config;
199
+ try {
200
+ config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
201
+ }
202
+ catch {
203
+ return [];
204
+ }
205
+ if (!config || typeof config !== 'object' || Array.isArray(config))
206
+ return [];
207
+ const upgraded = upgradeWhatsAppAccountsInConfig(config);
208
+ if (upgraded.length === 0)
209
+ return [];
210
+ // Reuse the project-wide hardened writer (mode 0600 + randomUUID() tmp
211
+ // suffix — both load-bearing, see config-write-lock.ts's own doc comment
212
+ // and issue #460) instead of a bespoke writeFileSync/renameSync pair that
213
+ // would silently downgrade config.json's permissions on the very first
214
+ // legacy-block upgrade.
215
+ (0, config_write_lock_1.writeConfigAtomicSync)(configPath, config);
216
+ return upgraded;
217
+ }
218
+ //# sourceMappingURL=whatsapp-accounts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whatsapp-accounts.js","sourceRoot":"","sources":["../../src/config/whatsapp-accounts.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/history/db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/history/db.ts"],"names":[],"mappings":"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"}
@@ -58,8 +58,8 @@ class HistoryDB {
58
58
  this.db.exec('PRAGMA synchronous=NORMAL');
59
59
  this.db.exec('PRAGMA foreign_keys=ON');
60
60
  this._initSchema();
61
- this.insertStmt = this.db.prepare(`INSERT INTO messages (chat_id, session_id, source, role, content, sender_name, sender_id, platform_message_id, media_files, image_refs, ts)
62
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`);
61
+ this.insertStmt = this.db.prepare(`INSERT INTO messages (chat_id, session_id, source, role, content, sender_name, sender_id, platform_message_id, media_files, image_refs, replied_to_message_id, replied_to_text, replied_to_user, ts)
62
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`);
63
63
  }
64
64
  static forAgent(agentsBaseDir, agentId) {
65
65
  const key = `${agentsBaseDir}::${agentId}`;
@@ -99,6 +99,9 @@ class HistoryDB {
99
99
  platform_message_id TEXT,
100
100
  media_files TEXT,
101
101
  image_refs TEXT,
102
+ replied_to_message_id TEXT,
103
+ replied_to_text TEXT,
104
+ replied_to_user TEXT,
102
105
  ts INTEGER NOT NULL,
103
106
  created_at INTEGER NOT NULL DEFAULT (unixepoch() * 1000)
104
107
  );
@@ -167,18 +170,36 @@ class HistoryDB {
167
170
  CREATE INDEX IF NOT EXISTS idx_skill_review_runs_ts ON skill_review_runs(ts);
168
171
 
169
172
  `);
170
- // image_refs (#74) postdates existing DBs: CREATE TABLE IF NOT EXISTS won't
171
- // touch them, so migrate with an explicit existence check. Only ALTER when the
172
- // column is genuinely absent — a blanket try/catch would also swallow real
173
- // failures (disk full, corruption) as if the column already existed.
173
+ // Additive column migrations. These postdate existing DBs: CREATE TABLE IF NOT
174
+ // EXISTS won't touch them, so migrate with an explicit existence check. Only
175
+ // ALTER when the column is genuinely absent — a blanket try/catch would also
176
+ // swallow real failures (disk full, corruption) as if the column already
177
+ // existed. Reading table_info once and filtering makes the whole step
178
+ // idempotent: a second startup sees every column present and ALTERs nothing.
179
+ //
180
+ // image_refs (#74) — catalog refs a user turn pointed at
181
+ // replied_to_message_id / replied_to_text / replied_to_user (WhatsApp Phase 2)
182
+ // — quoted-message context, so the dashboard can render "in reply to X".
183
+ //
184
+ // All nullable, so SQLite's ADD COLUMN is an O(1) schema-only rewrite and
185
+ // existing rows keep their history with NULLs in the new columns.
186
+ const ADDITIVE_MESSAGE_COLUMNS = [
187
+ ['image_refs', 'TEXT'],
188
+ ['replied_to_message_id', 'TEXT'],
189
+ ['replied_to_text', 'TEXT'],
190
+ ['replied_to_user', 'TEXT'],
191
+ ];
174
192
  const messageCols = this.db.prepare('PRAGMA table_info(messages)').all();
175
- if (!messageCols.some((c) => c.name === 'image_refs')) {
176
- this.db.exec('ALTER TABLE messages ADD COLUMN image_refs TEXT');
193
+ const present = new Set(messageCols.map((c) => c.name));
194
+ for (const [name, ddlType] of ADDITIVE_MESSAGE_COLUMNS) {
195
+ if (!present.has(name)) {
196
+ this.db.exec(`ALTER TABLE messages ADD COLUMN ${name} ${ddlType}`);
197
+ }
177
198
  }
178
199
  }
179
200
  insertMessage(msg) {
180
201
  try {
181
- this.insertStmt.run(msg.chatId, msg.sessionId, msg.source, msg.role, msg.content, msg.senderName ?? null, msg.senderId ?? null, msg.platformMessageId ?? null, msg.mediaFiles ? JSON.stringify(msg.mediaFiles) : null, msg.imageRefs?.length ? JSON.stringify(msg.imageRefs) : null, msg.ts);
202
+ this.insertStmt.run(msg.chatId, msg.sessionId, msg.source, msg.role, msg.content, msg.senderName ?? null, msg.senderId ?? null, msg.platformMessageId ?? null, msg.mediaFiles ? JSON.stringify(msg.mediaFiles) : null, msg.imageRefs?.length ? JSON.stringify(msg.imageRefs) : null, msg.repliedToMessageId ?? null, msg.repliedToText ?? null, msg.repliedToUser ?? null, msg.ts);
182
203
  }
183
204
  catch (err) {
184
205
  // Non-fatal — history is best-effort
@@ -461,7 +482,8 @@ class HistoryDB {
461
482
  // skipped or repeated when the caller passes the cursor's id component back.
462
483
  const sql = `
463
484
  SELECT id, chat_id, session_id, source, role, content, sender_name, sender_id,
464
- platform_message_id, media_files, image_refs, ts
485
+ platform_message_id, media_files, image_refs,
486
+ replied_to_message_id, replied_to_text, replied_to_user, ts
465
487
  FROM messages
466
488
  WHERE ${conditions.join(' AND ')}
467
489
  ORDER BY ts ${order}, id ${order}
@@ -499,7 +521,9 @@ class HistoryDB {
499
521
  SELECT
500
522
  messages.id, messages.chat_id, messages.session_id, messages.source,
501
523
  messages.role, messages.content, messages.sender_name, messages.sender_id,
502
- messages.platform_message_id, messages.media_files, messages.ts,
524
+ messages.platform_message_id, messages.media_files,
525
+ messages.replied_to_message_id, messages.replied_to_text,
526
+ messages.replied_to_user, messages.ts,
503
527
  snippet(messages_fts, 0, '<b>', '</b>', '...', 32) AS snippet
504
528
  FROM messages_fts
505
529
  JOIN messages ON messages.id = messages_fts.rowid
@@ -677,6 +701,14 @@ class HistoryDB {
677
701
  platformMessageId: r['platform_message_id'] ?? undefined,
678
702
  mediaFiles,
679
703
  ...(imageRefs?.length ? { imageRefs } : {}),
704
+ // Reply context (WhatsApp Phase 2). Conditionally spread like imageRefs, so a
705
+ // message that never quoted anything carries no repliedTo* keys at all — the
706
+ // frontend can treat "key absent" as "not a reply" rather than probing for
707
+ // null. Cloud API rows legitimately have the id but not text/user, so each
708
+ // key is independently gated.
709
+ ...(r['replied_to_message_id'] ? { repliedToMessageId: r['replied_to_message_id'] } : {}),
710
+ ...(r['replied_to_text'] ? { repliedToText: r['replied_to_text'] } : {}),
711
+ ...(r['replied_to_user'] ? { repliedToUser: r['replied_to_user'] } : {}),
680
712
  ts: r['ts'],
681
713
  };
682
714
  }
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/history/db.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAC7B,uCAAyB;AACzB,6CAA0D;AAe1D;;;;;;GAMG;AACU,QAAA,iBAAiB,GAAG,IAAI,CAAC;AACtC,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,MAAM,cAAc,GAAG,GAAG,CAAC;AAE3B,wDAAwD;AACxD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAqB,CAAC;AAsC3C,MAAa,SAAS;IAKpB,YAAoB,MAAc,EAAE,OAAe;QACjD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,EAAE,GAAG,IAAI,0BAAY,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACxC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC1C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACvC,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC/B;gDAC0C,CAC3C,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,aAAqB,EAAE,OAAe;QACpD,MAAM,GAAG,GAAG,GAAG,aAAa,KAAK,OAAO,EAAE,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YAC/D,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;IACzB,CAAC;IAED,oFAAoF;IACpF,oGAAoG;IACpG,MAAM,CAAC,MAAM,CAAC,QAAgB,EAAE,OAAe;QAC7C,MAAM,GAAG,GAAG,QAAQ,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YACjD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,aAAqB,EAAE,OAAe;QACjD,KAAK,CAAC,MAAM,CAAC,GAAG,aAAa,KAAK,OAAO,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,QAAgB,EAAE,OAAe;QAC/C,KAAK,CAAC,MAAM,CAAC,QAAQ,QAAQ,KAAK,OAAO,EAAE,CAAC,CAAC;IAC/C,CAAC;IAEO,WAAW;QACjB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgFZ,CAAC,CAAC;QAEH,4EAA4E;QAC5E,+EAA+E;QAC/E,2EAA2E;QAC3E,qEAAqE;QACrE,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,GAAG,EAA6B,CAAC;QACpG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,aAAa,CAAC,GAAmB;QAC/B,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,GAAG,CACjB,GAAG,CAAC,MAAM,EACV,GAAG,CAAC,SAAS,EACb,GAAG,CAAC,MAAM,EACV,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,OAAO,EACX,GAAG,CAAC,UAAU,IAAI,IAAI,EACtB,GAAG,CAAC,QAAQ,IAAI,IAAI,EACpB,GAAG,CAAC,iBAAiB,IAAI,IAAI,EAC7B,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EACtD,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAC5D,GAAG,CAAC,EAAE,CACP,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,qCAAqC;YACrC,OAAO,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,OAAO,yBAAyB,EAAE,GAAG,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,qFAAqF;IAErF,8CAA8C;IAC9C,gBAAgB,CAAC,GAAkB;QACjC,IAAI,CAAC;YACH,IAAI,CAAC,EAAE;iBACJ,OAAO,CACN;;oDAE0C,CAC3C;iBACA,GAAG,CACF,GAAG,CAAC,SAAS,EACb,GAAG,CAAC,OAAO,EACX,GAAG,CAAC,EAAE,EACN,GAAG,CAAC,SAAS,EACb,GAAG,CAAC,UAAU,EACd,GAAG,CAAC,QAAQ,EACZ,GAAG,CAAC,SAAS,EACb,GAAG,CAAC,aAAa,EACjB,GAAG,CAAC,YAAY,EAChB,GAAG,CAAC,UAAU,EACd,GAAG,CAAC,OAAO,CACZ,CAAC;QACN,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,OAAO,4BAA4B,EAAE,GAAG,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED,8DAA8D;IAC9D,wBAAwB,CAAC,SAAiB;QACxC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;iBACjB,OAAO,CAAC,uEAAuE,CAAC;iBAChF,GAAG,CAAC,SAAS,CAAmC,CAAC;YACpD,OAAO,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,OAAO,oCAAoC,EAAE,GAAG,CAAC,CAAC;YACnF,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,oBAAoB,CAAC,SAAiB,EAAE,KAAK,GAAG,GAAG;QACjD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;iBACjB,OAAO,CACN;yDAC+C,CAChD;iBACA,GAAG,CAAC,SAAS,EAAE,KAAK,CAAmC,CAAC;YAC3D,OAAO,IAAI;iBACR,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACX,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC7B,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gBACnC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACzB,CAAC,CAAC;iBACF,OAAO,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,OAAO,gCAAgC,EAAE,GAAG,CAAC,CAAC;YAC/E,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,eAAe,CAAC,OAAO,GAAG,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;iBACjB,OAAO,CAAC,0DAA0D,CAAC;iBACnE,GAAG,CAAC,OAAO,CAAmC,CAAC;YAClD,OAAO,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,OAAO,2BAA2B,EAAE,GAAG,CAAC,CAAC;YAC1E,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,8FAA8F;IAC9F,kBAAkB,CAAC,GAAgF;QACjG,IAAI,CAAC;YACH,IAAI,CAAC,EAAE;iBACJ,OAAO,CACN;;;;;;sCAM4B,CAC7B;iBACA,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,kBAAkB,EAAE,GAAG,CAAC,WAAW,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACxG,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,OAAO,8BAA8B,EAAE,GAAG,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,IAAY,EAAE,EAAU;QACtC,IAAI,CAAC;YACH,IAAI,CAAC,EAAE;iBACJ,OAAO,CACN;;;;kDAIwC,CACzC;iBACA,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACnB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,OAAO,2BAA2B,EAAE,GAAG,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,cAAc,CAAC,IAAY,EAAE,MAAe;QAC1C,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAChG,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,OAAO,0BAA0B,EAAE,GAAG,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,eAAe,CAAC,IAAY;QAC1B,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,OAAO,2BAA2B,EAAE,GAAG,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,YAAY,CAAC,IAAY;QACvB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC,GAAG,CAAC,IAAI,CAEnE,CAAC;YACd,OAAO,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,OAAO,wBAAwB,EAAE,GAAG,CAAC,CAAC;YACvE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,cAAc;QACZ,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,GAAG,EAAoC,CAAC;YAClG,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,OAAO,0BAA0B,EAAE,GAAG,CAAC,CAAC;YACzE,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,oDAAoD;IACpD,eAAe,CAAC,GAAiB;QAC/B,IAAI,CAAC;YACH,IAAI,CAAC,EAAE;iBACJ,OAAO,CACN;kCACwB,CACzB;iBACA,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;QACjF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,OAAO,2BAA2B,EAAE,GAAG,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,oBAAoB,CAAC,EAAU;QAC7B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;iBAChB,OAAO,CAAC,2DAA2D,CAAC;iBACpE,GAAG,CAAC,EAAE,CAA8B,CAAC;YACxC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,OAAO,gCAAgC,EAAE,GAAG,CAAC,CAAC;YAC/E,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,cAAc,CAAC,OAAO,GAAG,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;iBACjB,OAAO,CAAC,+DAA+D,CAAC;iBACxE,GAAG,CAAC,OAAO,CAAmC,CAAC;YAClD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACtB,SAAS,EAAG,CAAC,CAAC,YAAY,CAAY,IAAI,IAAI;gBAC9C,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,aAAa,EAAG,CAAC,CAAC,gBAAgB,CAAY,IAAI,IAAI;gBACtD,OAAO,EAAG,CAAC,CAAC,SAAS,CAAY,IAAI,IAAI;gBACzC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;aAC5C,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,OAAO,0BAA0B,EAAE,GAAG,CAAC,CAAC;YACzE,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,wGAAwG;IACxG,cAAc,CAAC,QAAgB;QAC7B,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC;YACH,OAAO,IAAK,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAkB,IAAI,CAAC,CAAC;YAC3G,OAAO;gBACJ,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAkB,IAAI,CAAC,CAAC;QACzG,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,OAAO,0BAA0B,EAAE,GAAG,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,SAAS;QACP,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;yCAQQ,cAAc;;;;;;;;;KASlD,CAAC,CAAC,GAAG,EAOJ,CAAC;QAEH,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxB,MAAM,EAAE,GAAG,CAAC,OAAO;YACnB,MAAM,EAAE,GAAG,CAAC,MAAuB;YACnC,WAAW,EAAE,GAAG,CAAC,YAAY;YAC7B,YAAY,EAAE,GAAG,CAAC,aAAa;YAC/B,UAAU,EAAE,GAAG,CAAC,WAAW;YAC3B,kBAAkB,EAAE,GAAG,CAAC,YAAY;SACrC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,WAAW,CAAC,MAAc,EAAE,OAAuB,EAAE;QACnD,0FAA0F;QAC1F,sEAAsE;QACtE,wFAAwF;QACxF,gGAAgG;QAChG,4FAA4F;QAC5F,8FAA8F;QAC9F,0FAA0F;QAC1F,qFAAqF;QACrF,oFAAoF;QACpF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,IAAI,aAAa,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;QACjF,MAAM,QAAQ,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,yBAAiB,CAAC,CAAC;QACpD,MAAM,UAAU,GAAa,CAAC,aAAa,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAwB,CAAC,MAAM,CAAC,CAAC;QAE7C,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9B,CAAC;QACD,uFAAuF;QACvF,qFAAqF;QACrF,sFAAsF;QACtF,oFAAoF;QACpF,mFAAmF;QACnF,4BAA4B;QAC5B,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAChC,UAAU,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;gBACnD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC/B,UAAU,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;gBACnD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,qCAAqC;QACrC,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,yCAAyC;QAC9F,6EAA6E;QAC7E,6EAA6E;QAC7E,iFAAiF;QACjF,kFAAkF;QAClF,6EAA6E;QAC7E,MAAM,GAAG,GAAG;;;;cAIF,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;oBAClB,KAAK,QAAQ,KAAK;;KAEjC,CAAC;QAEF,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAmC,CAAC;QACnF,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEpD,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,OAAO,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/E,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAE,QAAQ,CAAC,IAAI,CAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QAChE,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAE,QAAQ,CAAC,IAAI,CAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QAElE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;IACzD,CAAC;IAED,cAAc,CAAC,MAAc,EAAE,KAAa,EAAE,OAAmB,EAAE;QACjE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QAEhC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YAClB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACnD,CAAC;QAED,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7D,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACnD,CAAC;QAED,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;OAKjC,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAoB,CAAC;YAC1E,MAAM,KAAK,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;YAEjC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;;OAW5B,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,CAAmC,CAAC;YAC/F,MAAM,OAAO,GAAmB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC/C,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;gBACxB,OAAO,EAAG,CAAC,CAAC,SAAS,CAAmB,IAAI,EAAE;aAC/C,CAAC,CAAC,CAAC;YAEJ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;QACtE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACnD,CAAC;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACH,aAAa,CAAC,MAAc,EAAE,IAAoB;QAChD,+DAA+D;QAC/D,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,UAAU,GAAa,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAClE,MAAM,MAAM,GAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACjE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9B,CAAC;QAED,0FAA0F;QAC1F,8FAA8F;QAC9F,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;QAC9C,MAAM,GAAG,GAAG;;;cAGF,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;;KAEjC,CAAC;QAEF,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,MAAM,CAA2B,CAAC;QACrF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,YAAY,CAAC,MAAe;QAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;QAezB,KAAK;;;KAGR,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CASd,CAAC;QAEH,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxB,MAAM,EAAE,GAAG,CAAC,OAAO,IAAI,IAAI;YAC3B,SAAS,EAAE,GAAG,CAAC,UAAU;YACzB,MAAM,EAAE,GAAG,CAAC,MAAuB;YACnC,YAAY,EAAE,GAAG,CAAC,aAAa;YAC/B,SAAS,EAAE,GAAG,CAAC,UAAU;YACzB,YAAY,EAAE,GAAG,CAAC,aAAa;YAC/B,WAAW,EAAE,GAAG,CAAC,YAAY,IAAI,IAAI;YACrC,eAAe,EAAG,GAAG,CAAC,iBAAiC,IAAI,IAAI;YAC/D,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;;;;;OAMG;IACH,gBAAgB,CACd,SAAiB;QAEjB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B;;+BAEyB,CAC1B,CAAC,GAAG,CAAC,SAAS,CAAiG,CAAC;QAEjH,MAAM,GAAG,GAA2F,EAAE,CAAC;QACvG,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAa,CAAC;gBAC3D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;oBAAE,SAAS,CAAC,0BAA0B;gBACpE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YAC/F,CAAC;YAAC,MAAM,CAAC;gBACP,wBAAwB;YAC1B,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,SAAS,CAAC,MAAc;QACtB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxE,CAAC;IAED,YAAY,CAAC,MAAc,EAAE,SAAiB;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,mGAAmG,CACpG,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAmC,CAAC;QAC3D,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC;gBAAC,UAAU,CAAC,IAAI,CAAC,GAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAc,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;QAC7F,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,2DAA2D,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACpG,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,QAAgB;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,2EAA2E,CAC5E,CAAC,GAAG,CAAC,QAAQ,CAAmC,CAAC;QAElD,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAa,CAAC;gBACtD,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;YAC5B,CAAC;YAAC,MAAM,CAAC;gBACP,wBAAwB;YAC1B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEnE,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,aAAa,CAAC,CAA0B;QAC9C,IAAI,UAAgC,CAAC;QACrC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,CAAC,aAAa,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC7D,IAAI,CAAC;gBACH,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAW,CAAa,CAAC;YAClE,CAAC;YAAC,MAAM,CAAC;gBACP,UAAU,GAAG,SAAS,CAAC;YACzB,CAAC;QACH,CAAC;QACD,IAAI,SAA+B,CAAC;QACpC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,CAAC,YAAY,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC3D,IAAI,CAAC;gBACH,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAW,CAAa,CAAC;YAChE,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS,GAAG,SAAS,CAAC;YACxB,CAAC;QACH,CAAC;QACD,OAAO;YACL,EAAE,EAAE,CAAC,CAAC,IAAI,CAAW;YACrB,MAAM,EAAE,CAAC,CAAC,SAAS,CAAW;YAC9B,SAAS,EAAE,CAAC,CAAC,YAAY,CAAW;YACpC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAkB;YACpC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAgB;YAC9B,OAAO,EAAE,CAAC,CAAC,SAAS,CAAW;YAC/B,UAAU,EAAG,CAAC,CAAC,aAAa,CAAmB,IAAI,SAAS;YAC5D,QAAQ,EAAG,CAAC,CAAC,WAAW,CAAmB,IAAI,SAAS;YACxD,iBAAiB,EAAG,CAAC,CAAC,qBAAqB,CAAmB,IAAI,SAAS;YAC3E,UAAU;YACV,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,EAAE,EAAE,CAAC,CAAC,IAAI,CAAW;SACtB,CAAC;IACJ,CAAC;CACF;AAntBD,8BAmtBC;AAED,kFAAkF;AAElF,SAAS,gBAAgB,CAAC,CAA0B;IAClD,OAAO;QACL,SAAS,EAAE,CAAC,CAAC,YAAY,CAAW;QACpC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACnC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACvC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACzC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACrC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACvC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC/C,YAAY,EAAG,CAAC,CAAC,eAAe,CAAmB,IAAI,IAAI;QAC3D,UAAU,EAAG,CAAC,CAAC,aAAa,CAAmB,IAAI,IAAI;QACvD,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;KACnC,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,CAA0B;IACjD,OAAO;QACL,IAAI,EAAE,CAAC,CAAC,MAAM,CAAW;QACzB,MAAM,EAAG,CAAC,CAAC,QAAQ,CAAY,IAAI,MAAM;QACzC,SAAS,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;QACnE,kBAAkB,EAAG,CAAC,CAAC,sBAAsB,CAAmB,IAAI,IAAI;QACxE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC3C,UAAU,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;QACxE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KACjC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/history/db.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@
15
15
  * impossible to reintroduce for this union — adding a channel here updates
16
16
  * every consumer's type AND its guard in one place.
17
17
  */
18
- export declare const CHAT_CHANNELS: readonly ["telegram", "discord", "line", "slack"];
18
+ export declare const CHAT_CHANNELS: readonly ["telegram", "discord", "line", "slack", "whatsapp", "whatsapp_cloud"];
19
19
  export type ChatChannel = (typeof CHAT_CHANNELS)[number];
20
20
  export declare function isChatChannel(value: unknown): value is ChatChannel;
21
21
  /** ChatChannel plus 'api' — a session spawned via direct API access, not a channel. */
@@ -44,6 +44,23 @@ export interface HistoryMessage {
44
44
  * the UI joins them against the session image catalog to show which earlier
45
45
  * images the message pointed at. Never used for generation replay. */
46
46
  imageRefs?: string[];
47
+ /** Reply context of an inbound message that quoted an earlier one (WhatsApp
48
+ * Phase 2). Sourced from the `replied_*` meta keys both WhatsApp channels
49
+ * populate — the same ones buildChannelXml renders into `<replied>` for the
50
+ * agent — persisted here so the web dashboard can show "in reply to X".
51
+ *
52
+ * Named repliedTo* rather than mirroring the raw meta keys, to stay with this
53
+ * interface's camelCase convention (senderId / platformMessageId).
54
+ *
55
+ * Display-only. Never used to compose or send a reply.
56
+ *
57
+ * Availability differs per channel: Baileys (`whatsapp`) inlines the quoted
58
+ * message so all three are set; the Cloud API (`whatsapp_cloud`) webhook
59
+ * reports only the quoted message's id, so repliedToText/repliedToUser stay
60
+ * undefined there. */
61
+ repliedToMessageId?: string;
62
+ repliedToText?: string;
63
+ repliedToUser?: string;
47
64
  ts: number;
48
65
  }
49
66
  export interface MessagePage {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/history/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/history/types.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@ exports.toChatChannel = toChatChannel;
20
20
  * impossible to reintroduce for this union — adding a channel here updates
21
21
  * every consumer's type AND its guard in one place.
22
22
  */
23
- exports.CHAT_CHANNELS = ['telegram', 'discord', 'line', 'slack'];
23
+ exports.CHAT_CHANNELS = ['telegram', 'discord', 'line', 'slack', 'whatsapp', 'whatsapp_cloud'];
24
24
  function isChatChannel(value) {
25
25
  return typeof value === 'string' && exports.CHAT_CHANNELS.includes(value);
26
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/history/types.ts"],"names":[],"mappings":";;;AAmBA,sCAEC;AAWD,sCAEC;AAlCD;;;;;;;;;;;;;;;;GAgBG;AACU,QAAA,aAAa,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAU,CAAC;AAE/E,SAAgB,aAAa,CAAC,KAAc;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,qBAAmC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC3F,CAAC;AAMD;;;;GAIG;AACH,SAAgB,aAAa,CAAC,MAAwB;IACpD,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/history/types.ts"],"names":[],"mappings":";;;AAmBA,sCAEC;AAWD,sCAEC;AAlCD;;;;;;;;;;;;;;;;GAgBG;AACU,QAAA,aAAa,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,gBAAgB,CAAU,CAAC;AAE7G,SAAgB,aAAa,CAAC,KAAc;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,qBAAmC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC3F,CAAC;AAMD;;;;GAIG;AACH,SAAgB,aAAa,CAAC,MAAwB;IACpD,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;AACrD,CAAC"}
package/dist/index.js CHANGED
@@ -48,6 +48,7 @@ const loader_1 = require("./config/loader");
48
48
  const agent_env_1 = require("./config/agent-env");
49
49
  const migrator_1 = require("./config/migrator");
50
50
  const bootstrap_1 = require("./config/bootstrap");
51
+ const whatsapp_accounts_1 = require("./config/whatsapp-accounts");
51
52
  const workspace_loader_1 = require("./agent/workspace-loader");
52
53
  const knowledge_1 = require("./agent/knowledge");
53
54
  const skills_1 = require("./skills");
@@ -532,6 +533,23 @@ async function main() {
532
533
  catch (err) {
533
534
  console.warn(`[gateway] Config migration skipped: ${err.message}`);
534
535
  }
536
+ // ── WhatsApp multi-account upgrade (Phase 1) ─────────────────────────────
537
+ // Rewrite any legacy flat `whatsapp` block into `{ accounts: [{id:'default'…}] }`
538
+ // and persist it, so the config self-heals once instead of being re-normalized
539
+ // on every boot. Runs OUTSIDE the configVersion-gated migration above: a config
540
+ // already stamped at the current template version still needs this. The
541
+ // synthesized account keeps id 'default', which maps to the existing bare
542
+ // `.whatsapp-state/` directory — a linked session never moves.
543
+ try {
544
+ const upgradedAgents = (0, whatsapp_accounts_1.upgradeWhatsAppAccountsFile)(CONFIG_PATH);
545
+ if (upgradedAgents.length > 0) {
546
+ console.log(`[gateway] Upgraded WhatsApp config to multi-account shape for: ${upgradedAgents.join(', ')}.`);
547
+ }
548
+ }
549
+ catch (err) {
550
+ // Non-fatal — loadConfig normalizes the same thing in memory below.
551
+ console.warn(`[gateway] WhatsApp multi-account config upgrade skipped: ${err.message}`);
552
+ }
535
553
  console.log(`[gateway] Loading config from ${CONFIG_PATH}`);
536
554
  // Skips are collected rather than logged inline: the structured logger needs
537
555
  // config.gateway.logDir, so it cannot exist until this call returns. They are