@talkpilot/core-db 1.3.17 → 1.3.19

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 (80) hide show
  1. package/README.md +199 -58
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +1 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/municipal/index.d.ts +1 -1
  7. package/dist/municipal/index.d.ts.map +1 -1
  8. package/dist/municipal/tickets/tickets.statistics.getters.d.ts.map +1 -1
  9. package/dist/municipal/tickets/tickets.statistics.getters.js +6 -2
  10. package/dist/municipal/tickets/tickets.statistics.getters.js.map +1 -1
  11. package/dist/talkpilot/clientsConfig/clientsConfig.getters.d.ts +3 -0
  12. package/dist/talkpilot/clientsConfig/clientsConfig.getters.d.ts.map +1 -1
  13. package/dist/talkpilot/clientsConfig/clientsConfig.getters.js +17 -1
  14. package/dist/talkpilot/clientsConfig/clientsConfig.getters.js.map +1 -1
  15. package/dist/talkpilot/clientsConfig/clientsConfig.types.d.ts +2 -2
  16. package/dist/talkpilot/clientsConfig/clientsConfig.types.d.ts.map +1 -1
  17. package/dist/talkpilot/flows/flows.schema.d.ts +3 -0
  18. package/dist/talkpilot/flows/flows.schema.d.ts.map +1 -1
  19. package/dist/talkpilot/flows/flows.schema.js +1 -0
  20. package/dist/talkpilot/flows/flows.schema.js.map +1 -1
  21. package/dist/talkpilot/flows/flows.setter.d.ts +13 -0
  22. package/dist/talkpilot/flows/flows.setter.d.ts.map +1 -0
  23. package/dist/talkpilot/flows/flows.setter.js +90 -0
  24. package/dist/talkpilot/flows/flows.setter.js.map +1 -0
  25. package/dist/talkpilot/flows/flows.types.d.ts +2 -0
  26. package/dist/talkpilot/flows/flows.types.d.ts.map +1 -1
  27. package/dist/talkpilot/phone_numbers/phone_numbers.getter.d.ts +1 -0
  28. package/dist/talkpilot/phone_numbers/phone_numbers.getter.d.ts.map +1 -1
  29. package/dist/talkpilot/phone_numbers/phone_numbers.getter.js +8 -1
  30. package/dist/talkpilot/phone_numbers/phone_numbers.getter.js.map +1 -1
  31. package/dist/test-utils/factories/index.d.ts +1 -0
  32. package/dist/test-utils/factories/index.d.ts.map +1 -1
  33. package/dist/test-utils/factories/index.js +1 -0
  34. package/dist/test-utils/factories/index.js.map +1 -1
  35. package/dist/test-utils/factories/websitalk/scans.d.ts.map +1 -1
  36. package/dist/test-utils/factories/websitalk/scans.js +2 -1
  37. package/dist/test-utils/factories/websitalk/scans.js.map +1 -1
  38. package/dist/websitalk/index.d.ts +1 -0
  39. package/dist/websitalk/index.d.ts.map +1 -1
  40. package/dist/websitalk/index.js +1 -0
  41. package/dist/websitalk/index.js.map +1 -1
  42. package/dist/websitalk/scans/index.d.ts +2 -0
  43. package/dist/websitalk/scans/index.d.ts.map +1 -1
  44. package/dist/websitalk/scans/index.js +2 -0
  45. package/dist/websitalk/scans/index.js.map +1 -1
  46. package/dist/websitalk/scans/scans.getters.d.ts +10 -3
  47. package/dist/websitalk/scans/scans.getters.d.ts.map +1 -1
  48. package/dist/websitalk/scans/scans.getters.js +49 -9
  49. package/dist/websitalk/scans/scans.getters.js.map +1 -1
  50. package/dist/websitalk/scans/scans.types.d.ts +3 -8
  51. package/dist/websitalk/scans/scans.types.d.ts.map +1 -1
  52. package/package.json +1 -1
  53. package/src/index.ts +1 -0
  54. package/src/municipal/index.ts +1 -1
  55. package/src/municipal/tickets/tickets.statistics.getters.ts +16 -3
  56. package/src/talkpilot/calls/__tests__/calls.statistics.spec.ts +6 -4
  57. package/src/talkpilot/clientsConfig/__tests__/clientsConfig.getters.spec.ts +57 -5
  58. package/src/talkpilot/clientsConfig/__tests__/clientsConfig.spec.ts +0 -4
  59. package/src/talkpilot/clientsConfig/clientsConfig.getters.ts +24 -0
  60. package/src/talkpilot/clientsConfig/clientsConfig.types.ts +2 -2
  61. package/src/talkpilot/flows/__tests__/flows.schema.spec.ts +3 -0
  62. package/src/talkpilot/flows/flows.schema.ts +1 -0
  63. package/src/talkpilot/flows/flows.types.ts +2 -0
  64. package/src/talkpilot/phone_numbers/phone_numbers.getter.ts +13 -0
  65. package/src/test-utils/factories/index.ts +1 -0
  66. package/src/test-utils/factories/websitalk/scans.ts +2 -1
  67. package/src/test-utils/factories/websitalk/websiteUrls.ts +17 -0
  68. package/src/websitalk/index.ts +1 -0
  69. package/src/websitalk/scans/__tests__/scans.spec.ts +121 -26
  70. package/src/websitalk/scans/index.ts +2 -0
  71. package/src/websitalk/scans/scans.constants.ts +15 -0
  72. package/src/websitalk/scans/scans.getters.ts +64 -17
  73. package/src/websitalk/scans/scans.types.ts +3 -11
  74. package/src/websitalk/scans/scans.utils.ts +5 -0
  75. package/src/websitalk/websiteUrls/__tests__/websiteUrls.spec.ts +77 -0
  76. package/src/websitalk/websiteUrls/index.ts +2 -0
  77. package/src/websitalk/websiteUrls/websiteUrls.getters.ts +65 -0
  78. package/src/websitalk/websiteUrls/websiteUrls.types.ts +13 -0
  79. package/tsconfig.json +4 -4
  80. package/README_OLD.md +0 -160
package/README.md CHANGED
@@ -1,5 +1,6 @@
1
1
  L1:# @talkpilot/core-db
2
2
 
3
+ [NPM Version](https://www.npmjs.com/package/@talkpilot/core-db)
3
4
  `@talkpilot/core-db` is the shared TypeScript database package that wires TalkPilot APIs, municipal CRM integrations, and internal tools to a single, type-safe MongoDB surface. Every repo (MIS, CIS, TalkPilot Server, etc.) imports this package to avoid re-implementing connections, collections, or validation helpers.
4
5
 
5
6
  ## Purpose
@@ -33,13 +34,13 @@ L1:# @talkpilot/core-db
33
34
 
34
35
  ## Environment variables
35
36
 
36
- | Variable | Purpose | Required |
37
- |---------------------------|--------------------------------------------------------------------------------------|----------|
38
- | `MONGO_URI` | Primary MongoDB connection string for every domain (overridden by `MONGODB_URI`). | ✅ |
39
- | `MONGODB_URI` | Alternate connection string used when Mongo needs a second URI parameter. | ✅ |
40
- | `TALKPILOT_DB_NAME` | Optional override for the TalkPilot database name (defaults from URI path). | ❌ |
41
- | `MUNICIPAL_DB_NAME` | Optional override for the municipal database name (defaults to `municipal-data`). | ❌ |
42
- | `ENV` | Free-form label used in logs/validators (defaults to `unknown`). | ❌ |
37
+ | Variable | Purpose | Required |
38
+ |---------------------|-----------------------------------------------------------------------------------|----------|
39
+ | `MONGO_URI` | Primary MongoDB connection string for every domain (overridden by `MONGODB_URI`). | ✅ |
40
+ | `MONGODB_URI` | Alternate connection string used when Mongo needs a second URI parameter. | ✅ |
41
+ | `TALKPILOT_DB_NAME` | Optional override for the TalkPilot database name (defaults from URI path). | ❌ |
42
+ | `MUNICIPAL_DB_NAME` | Optional override for the municipal database name (defaults to `municipal-data`). | ❌ |
43
+ | `ENV` | Free-form label used in logs/validators (defaults to `unknown`). | ❌ |
43
44
 
44
45
  If you pass a `uri` directly to `mongodbClient.connect()` or `municipalDataMongodbClient.connect()`, the client will prefer that value over the env vars.
45
46
 
@@ -131,19 +132,25 @@ Refer to `DEVELOPMENT.md` for the full walkthrough, token instructions, and fact
131
132
 
132
133
  ### Version history
133
134
 
134
- | Version | Note |
135
- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
136
- | 1.1.9 | Maintenance release (build, test, format). |
137
- | 1.3.4 | Added new statistics getters for call & ticket dashboards (CP-149): summary, trend, hourly, and routing for calls, plus open/draft/subject ticket stats. **Removed** the legacy getters `getTicketsCountByCityAndDateRange` and `getTicketsSubjectStats`. |
135
+ | Version | Note |
136
+ |---------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
137
+ | 1.1.9 | Maintenance release (build, test, format). |
138
+ | 1.3.4 | Added new statistics getters for call & ticket dashboards (CP-149): summary, trend, hourly, and routing for calls, plus open/draft/subject ticket stats. **Removed** the legacy getters `getTicketsCountByCityAndDateRange` and `getTicketsSubjectStats`. |
138
139
  | 1.3.5 | Added the `muniIssues` collection & module (CP-1115): the `MuniIssue` document type, `createMuniIssue` (accepts a caller-supplied `_id` for a two-way Jira link), `generateMuniIssueId`, `getMuniIssueById` / `getMuniIssueByJiraKey`, a `$jsonSchema` validator with indexes (unique `jira.key`), and `ensureMuniIssuesCollection` to provision it at boot. |
139
- | 1.3.6 | Added `contextNotes` and `products` modules under `src/talkpilot/`. |
140
- | 1.3.7 | Added `disableGenericPrompt` optional boolean field to the `Flow` type and schema (CP-704). |
141
- | 1.3.8 | Ticket-count Map getters (CP-1200): deprecated `string[]` ticket getters and `CallsStatsFilter` fields, added `Map<string, number>` replacements; fixed ticket counting in `aggregateCallsSummary`. |
142
- | 1.3.9 | Fixed wrap-around hour filter boundary guards (CP-1166): excluded first-day morning calls and last-day evening calls from wrap-around windows. |
143
- | 1.3.10 | Added optional `isDraft` flag to `Ticket` (CP-1390): explicit draft marking with legacy fallback for existing tickets. |
144
- | 1.3.11 | Fixed pre-existing broken type declaration import in `clientsConfig.types.d.ts` that caused consumer `tsc` builds to fail. |
145
- | 1.3.12 | Added `callsWithTickets` to `CallsSummaryAggregation` (CP-1200): distinct call count with at least one open ticket, enabling accurate `ticketOpenRate` and `not_opened` calculations in consumers. |
140
+ | 1.3.6 | Added `contextNotes` and `products` modules under `src/talkpilot/`. |
141
+ | 1.3.7 | Added `disableGenericPrompt` optional boolean field to the `Flow` type and schema (CP-704). |
142
+ | 1.3.8 | Ticket-count Map getters (CP-1200): deprecated `string[]` ticket getters and `CallsStatsFilter` fields, added `Map<string, number>` replacements; fixed ticket counting in `aggregateCallsSummary`. |
143
+ | 1.3.9 | Fixed wrap-around hour filter boundary guards (CP-1166): excluded first-day morning calls and last-day evening calls from wrap-around windows. |
144
+ | 1.3.10 | Added optional `isDraft` flag to `Ticket` (CP-1390): explicit draft marking with legacy fallback for existing tickets. |
145
+ | 1.3.11 | Fixed pre-existing broken type declaration import in `clientsConfig.types.d.ts` that caused consumer `tsc` builds to fail. |
146
+ | 1.3.12 | Added `callsWithTickets` to `CallsSummaryAggregation` (CP-1200): distinct call count with at least one open ticket, enabling accurate `ticketOpenRate` and `not_opened` calculations in consumers. |
147
+ | 1.3.13 | Faulty release (redundant). Published with `Flow.useRedisTranscription` at the flow level; superseded by 1.3.14. |
148
+ | 1.3.14 | Added `FlowTool.useRedisTranscription` optional flag to control whether cached Redis transcriptions are used (defaults to `false`). |
149
+ | 1.3.15 | Multi-scan support for WebsiteTalk (CP-1372): `websiteUrls` collection, `Scan.websiteUrlId`, `OVERWRITTEN` status, `activeScanId` on `WebsiteTalkProduct`. **Breaking:** `Scan.baseUrl` removed; `getActiveScanStatus` removed. |
150
+ | 1.3.16 | Refactored WebsiteTalk scan status constants (CP-1372): `SCAN_STATUSES` object map, `FINISHED_SCAN_STATUSES` derived from it, `isInProgressScan` moved to `scans.utils`. No breaking API changes. |
146
151
  | 1.3.17 | Twilio call-status semantics for Websitalk dashboard: `inCallCount` KPI (`in-progress` + `answered`), `busy` is line-busy only; `updateCallStatusByCallSid`; expanded `CallStatus` union; `timeSavedMinutes` from `completed` only. |
152
+ | 1.3.18 | WebsiteTalk multi-website API (CP-1372): ships `websiteUrls` module, scan getters by `websiteUrlId`, `activeScanId` getters on `clientsConfig`. **Note:** 1.3.17 did not include these — they landed after merge. **Breaking:** `WebsiteTalkProduct.defaultBaseUrl` removed from type. |
153
+ | 1.3.19 | WebsiteTalk flow provisioning (WTIS activate-scan): optional `flowId` on `WebsiteTalkProduct`; `bindClientPhoneToFlow(clientId, flowId)` sets `flow_id` on the client's primary `phone_numbers` document so inbound calls route to the provisioned TalkPilot flow. |
147
154
  ### 1.1.9
148
155
 
149
156
  1. `npm run build`.
@@ -156,11 +163,11 @@ New call statistics getters for dashboards (summary, trend, hourly, routing) and
156
163
 
157
164
  **Removed**
158
165
 
159
- | Removed | Replacement |
160
- | --- | --- |
166
+ | Removed | Replacement |
167
+ |-------------------------------------|-----------------------------------------------------------------------------------------------------------------|
161
168
  | `getTicketsCountByCityAndDateRange` | `aggregateCallsSummary` + `findCallSidTicketCountsByCity` — note: returns `Map<string, number>`, not `string[]` |
162
- | `getTicketsSubjectStats` | `findSubjectsByCityAndDateRange` |
163
- | `SubjectStatsItem` | `SubjectItem` |
169
+ | `getTicketsSubjectStats` | `findSubjectsByCityAndDateRange` |
170
+ | `SubjectStatsItem` | `SubjectItem` |
164
171
 
165
172
  **Do I need to update my app?**
166
173
 
@@ -172,13 +179,13 @@ New `muniIssues` module under `src/municipal/` for issues reported from the call
172
179
 
173
180
  **Added**
174
181
 
175
- | Export | Purpose |
176
- | --- | --- |
177
- | `MuniIssue` / `CreateMuniIssueInput` | Document type and insert-input type (`issueContent` + `jira` domains). |
178
- | `createMuniIssue(input, id)` | Insert an issue; requires a caller-supplied `_id` from MIS (via `generateMuniIssueId`) so it matches the id embedded in the Jira ticket (two-way link). |
179
- | `generateMuniIssueId()` | Pre-generate the `_id` to pass to `createMuniIssue`. |
180
- | `getMuniIssueById` / `getMuniIssueByJiraKey` | Lookups by our id or by the Jira key. |
181
- | `ensureMuniIssuesCollection()` | Provision the `$jsonSchema` validator and indexes (unique `jira.key`); run once at MIS boot. |
182
+ | Export | Purpose |
183
+ |----------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------|
184
+ | `MuniIssue` / `CreateMuniIssueInput` | Document type and insert-input type (`issueContent` + `jira` domains). |
185
+ | `createMuniIssue(input, id)` | Insert an issue; requires a caller-supplied `_id` from MIS (via `generateMuniIssueId`) so it matches the id embedded in the Jira ticket (two-way link). |
186
+ | `generateMuniIssueId()` | Pre-generate the `_id` to pass to `createMuniIssue`. |
187
+ | `getMuniIssueById` / `getMuniIssueByJiraKey` | Lookups by our id or by the Jira key. |
188
+ | `ensureMuniIssuesCollection()` | Provision the `$jsonSchema` validator and indexes (unique `jira.key`); run once at MIS boot. |
182
189
 
183
190
  **Do I need to update my app?**
184
191
 
@@ -192,13 +199,13 @@ No — purely additive. New consumers (MIS) import these from `@talkpilot/core-d
192
199
 
193
200
  **Added**
194
201
 
195
- | Export | Purpose |
196
- | --- | --- |
197
- | `getContextNotes(clientId, product)` | Fetch context note documents for a client/product pair. |
198
- | `createContextNote(input)` | Insert a new context note document. |
199
- | `setContextNoteEntries(id, clientId, notes)` | Replace the notes list on an existing document. |
202
+ | Export | Purpose |
203
+ |----------------------------------------------|-----------------------------------------------------------------|
204
+ | `getContextNotes(clientId, product)` | Fetch context note documents for a client/product pair. |
205
+ | `createContextNote(input)` | Insert a new context note document. |
206
+ | `setContextNoteEntries(id, clientId, notes)` | Replace the notes list on an existing document. |
200
207
  | `setContextNoteConfig(id, clientId, config)` | Update `systemPrompt` and/or `product` on an existing document. |
201
- | `getAllProducts()` | Fetch the full product catalogue. |
208
+ | `getAllProducts()` | Fetch the full product catalogue. |
202
209
 
203
210
  **Do I need to update my app?**
204
211
 
@@ -210,8 +217,8 @@ Added an optional boolean field to the `Flow` type and MongoDB schema.
210
217
 
211
218
  **Added**
212
219
 
213
- | Export | Purpose |
214
- | --- | --- |
220
+ | Export | Purpose |
221
+ |-----------------------------|------------------------------------------------------------------------------------------------------------------------------------------|
215
222
  | `Flow.disableGenericPrompt` | Optional `boolean`. When `true`, disables the generic prompt for the flow. Existing flows without this field continue to work unchanged. |
216
223
 
217
224
  **Do I need to update my app?**
@@ -224,12 +231,12 @@ Adds `Map<string, number>` ticket getters that return per-call ticket counts. Th
224
231
 
225
232
  **Deprecated → Replacement**
226
233
 
227
- | Deprecated | Replacement |
228
- | --- | --- |
229
- | `findCallSidsWithTicketsByCity` | `findCallSidTicketCountsByCity` → `Map<string, number>` |
230
- | `findCallSidsWithDraftTicketsByCity` | `findCallSidDraftTicketCountsByCity` → `Map<string, number>` |
231
- | `CallsStatsFilter.callSidsWithTickets` | `CallsStatsFilter.callSidTicketCounts` |
232
- | `CallsStatsFilter.callSidsWithDraftTickets` | `CallsStatsFilter.callSidDraftTicketCounts` |
234
+ | Deprecated | Replacement |
235
+ |---------------------------------------------|--------------------------------------------------------------|
236
+ | `findCallSidsWithTicketsByCity` | `findCallSidTicketCountsByCity` → `Map<string, number>` |
237
+ | `findCallSidsWithDraftTicketsByCity` | `findCallSidDraftTicketCountsByCity` → `Map<string, number>` |
238
+ | `CallsStatsFilter.callSidsWithTickets` | `CallsStatsFilter.callSidTicketCounts` |
239
+ | `CallsStatsFilter.callSidsWithDraftTickets` | `CallsStatsFilter.callSidDraftTicketCounts` |
233
240
 
234
241
  **Do I need to update my app?**
235
242
 
@@ -254,8 +261,8 @@ Added an optional `isDraft` boolean field to the `Ticket` type.
254
261
 
255
262
  **Added**
256
263
 
257
- | Export | Purpose |
258
- | --- | --- |
264
+ | Export | Purpose |
265
+ |------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
259
266
  | `Ticket.isDraft` | Optional `boolean`. When `true`, the ticket is a draft. When `false`, it is not. When absent (legacy tickets), draft detection falls back to the previous `event_subject_id` heuristic. |
260
267
 
261
268
  **Affects:** `findCallSidDraftTicketCountsByCity`, `findCallSidsWithDraftTicketsByCity` (draft filtering in ticket statistics).
@@ -284,33 +291,167 @@ Added `callsWithTickets` to `CallsSummaryAggregation` — the number of distinct
284
291
 
285
292
  Yes — replace `openTickets` with `callsWithTickets` wherever you compute `ticketOpenRate` or `not_opened`.
286
293
 
287
- ### 1.3.17Websitalk call-status KPIs
294
+ ### 1.3.13Faulty release
295
+
296
+ This release incorrectly placed `useRedisTranscription` on `Flow` instead of `FlowTool`. It is redundant and should be skipped.
297
+
298
+ ### 1.3.14 — Redis transcription flag
299
+
300
+ Added an optional `FlowTool.useRedisTranscription` boolean that tells consumers whether to read transcriptions from Redis. Defaults to `false` when omitted.
301
+
302
+ **Do I need to update my app?**
303
+
304
+ No — this flag is optional. Only update if you want to opt into the Redis transcription path.
305
+
306
+ ### 1.3.15 — Multi-scan configuration (CP-1372)
307
+
308
+ Adds `websiteUrls` collection (CRUD getters), migrates scans from `baseUrl` to `websiteUrlId`, adds `OVERWRITTEN` scan status, and replaces `defaultBaseUrl`/`logoUrl` on `WebsiteTalkProduct` with `activeScanId` (+ getters).
288
309
 
289
- Aligns dashboard aggregation and `calls.status` with Twilio lifecycle semantics (outbound status callbacks).
310
+ **Breaking**
311
+
312
+ | Removed / changed | Replacement |
313
+ | --- | --- |
314
+ | `Scan.baseUrl` | `Scan.websiteUrlId` |
315
+ | `WebsiteTalkProduct.defaultBaseUrl` | `websiteUrls` collection |
316
+ | `getActiveScanStatus(clientId)` | `getInProgressScanByWebsiteUrl`, `findInProgressScansByClient` |
317
+
318
+ **Do I need to update my app?**
319
+
320
+ Yes — WTIS, CoreBrain, and CoreCrawler must adopt `websiteUrlId` and the new getters before upgrading.
321
+
322
+ ### 1.3.16 — Scan status constants refactor (CP-1372)
323
+
324
+ Centralizes scan status values under a single `SCAN_STATUSES` object map and derives terminal statuses from it.
325
+
326
+ **Changed**
327
+
328
+ | Area | What |
329
+ | --- | --- |
330
+ | `SCAN_STATUSES` | Object map (`SCAN_STATUSES.CHECKING`, `SCAN_STATUSES.COMPLETED`, …) instead of separate exported string constants. |
331
+ | `FINISHED_SCAN_STATUSES` | Derived from `SCAN_STATUSES` (`COMPLETED`, `FAILED`, `OVERWRITTEN`). |
332
+ | `isInProgressScan` | Moved to `scans.utils.ts` (exported from `scans` index). |
333
+ | `ScanStatus` type | Derived from `(typeof SCAN_STATUSES)[keyof typeof SCAN_STATUSES]`. |
334
+
335
+ **Do I need to update my app?**
336
+
337
+ No — behavior is unchanged. If you imported removed aliases like `COMPLETED_SCAN_STATUS`, switch to `SCAN_STATUSES.COMPLETED` (or keep using string literals / `ScanStatus` type).
338
+
339
+ ### 1.3.17 — Twilio call-status semantics (CP-1521)
340
+
341
+ Aligns dashboard KPIs and call-status updates with Twilio semantics so in-call counts update in real time.
290
342
 
291
343
  **Added**
292
344
 
293
345
  | Export | Purpose |
294
346
  | --- | --- |
295
- | `IN_CALL_STATUSES` | `["in-progress", "answered"]` live-call statuses for KPI counting. |
296
- | `updateCallStatusByCallSid(callSid, status)` | Sets `calls.status` only (status history stays on `results.calls.statuses`). |
297
- | `CallStatus` | Full Twilio union: `initiated`, `ringing`, `in-progress`, `answered`, `completed`, `busy`, `no-answer`, `failed`, `canceled`. |
347
+ | `updateCallStatusByCallSid(callSid, status)` | Set the current call status by `callSid`. |
348
+ | `IN_CALL_STATUSES` | `["in-progress", "answered"]` statuses counted as in-call. |
349
+ | `DashboardSummaryMetrics.inCallCount` | Replaces `busyCount`; counts in-progress + answered calls. |
298
350
 
299
351
  **Changed**
300
352
 
301
- | Before | After |
353
+ | Area | What |
302
354
  | --- | --- |
303
- | `DashboardSummaryMetrics.busyCount` (if used) | `DashboardSummaryMetrics.inCallCount` counts `in-progress` + `answered` only. |
304
- | `busy` treated as in-call in some consumers | `busy` = callee line busy / rejected; not counted as in-call. |
305
- | `timeSavedMinutes` could include non-completed durations | Summed from `completed` calls only (`callLength`). |
355
+ | Dashboard KPIs | `busyCount` `inCallCount`; `busy` is line-busy only, not in-call. |
356
+ | `timeSavedMinutes` | Computed from `completed` calls only. |
357
+ | `CallStatus` union | Expanded for Twilio-aligned statuses. |
358
+
359
+ **Do I need to update my app?**
360
+
361
+ Yes — if you read `busyCount` from dashboard KPIs, switch to `inCallCount`.
362
+
363
+ ### 1.3.18 — WebsiteTalk multi-website API (CP-1372)
364
+
365
+ Ships the full persistence API for multi-website / multi-scan. Versions 1.3.15–1.3.16 documented the design; **1.3.17 did not export these symbols** (CP-1372 merged into main after the 1.3.17 release). Upgrade to **1.3.18** if you see missing-export errors such as `getActiveScanId`, `getWebsiteUrlById`, or `WebsiteUrlDoc`.
366
+
367
+ **`websiteUrls` module**
368
+
369
+ | Export | Purpose |
370
+ | --- | --- |
371
+ | `WebsiteUrl` / `WebsiteUrlDoc` / `CreateWebsiteUrlInput` | Document types. |
372
+ | `getWebsiteUrlsCollection()` | Collection access. |
373
+ | `getWebsiteUrlsByClient(clientId)` | All websites for a client. |
374
+ | `getWebsiteUrlById(id)` | Lookup by id. |
375
+ | `findWebsiteUrls(filter?)` | Flexible query. |
376
+ | `createWebsiteUrl({ clientId, name, baseUrl })` | Create. |
377
+ | `updateWebsiteUrl(id, updates)` | Update `name` / `baseUrl`. |
378
+ | `deleteWebsiteUrl(id)` | Delete by id. |
379
+
380
+ **`clientsConfig` — selected scan**
381
+
382
+ | Export | Purpose |
383
+ | --- | --- |
384
+ | `getActiveScanId(clientId)` | Read `products.websiteTalk.activeScanId`. |
385
+ | `updateActiveScanId(clientId, scanId)` | Set the active scan for search. |
386
+ | `clearActiveScanId(clientId)` | Unset `activeScanId`. |
387
+
388
+ **`scans` — by `websiteUrlId`**
389
+
390
+ | Export | Purpose |
391
+ | --- | --- |
392
+ | `getScanById(id)` | Lookup by id. |
393
+ | `getScansByWebsiteUrl(websiteUrlId)` | All scans for a website. |
394
+ | `getLatestScanByWebsiteUrl(websiteUrlId)` | Most recent scan. |
395
+ | `getInProgressScanByWebsiteUrl(websiteUrlId)` | Latest scan if still in progress. |
396
+ | `findInProgressScansByClient(clientId)` | All in-progress scans for a client. |
397
+ | `hasScansForWebsiteUrl(websiteUrlId)` | Whether any scans exist. |
398
+ | `getLatestCompletedScanByWebsiteUrl(websiteUrlId)` | Most recent `COMPLETED` scan. |
399
+ | `updateScanDoc(scanId, updates)` | Partial update (e.g. mark `OVERWRITTEN`). |
400
+ | `deleteScansByWebsiteUrl(websiteUrlId)` | Delete all scans for a website. |
401
+
402
+ **Breaking / type changes**
403
+
404
+ | Removed | Replacement |
405
+ | --- | --- |
406
+ | `WebsiteTalkProduct.defaultBaseUrl` | `websiteUrls` collection (`name`, `baseUrl`) |
407
+ | `Scan.baseUrl` | `Scan.websiteUrlId` (see 1.3.15) |
408
+
409
+ **`OVERWRITTEN` scan status**
410
+
411
+ - `OVERWRITTEN` is part of `ScanStatus` / `SCAN_STATUSES`.
412
+ - Marking previous `COMPLETED` scans as overwritten is **not** done in `createScanDoc` — implement in the service layer (e.g. via `updateScanDoc`).
413
+
414
+ **Not in core-db (service layer)**
415
+
416
+ - `resolveActiveWebsiteContext` — join `activeScanId` → scan → websiteUrl.
417
+ - Migration from legacy `defaultBaseUrl`.
418
+
419
+ **Do I need to update my app?**
420
+
421
+ Yes — WTIS, CoreBrain, and CoreCrawler should upgrade to **1.3.18** and import the symbols above from `@talkpilot/core-db`. Stop reading `defaultBaseUrl` from `WebsiteTalkProduct`; use `websiteUrls` instead.
422
+
423
+ ### 1.3.19 — WebsiteTalk flow provisioning (WTIS activate-scan)
424
+
425
+ Persists the TalkPilot flow id on the client product config and links the client's primary phone number to that flow so inbound calls use the WebsiteTalk flow after `activate-scan`.
426
+
427
+ **`clientsConfig` — `WebsiteTalkProduct`**
428
+
429
+ | Field | Purpose |
430
+ | --- | --- |
431
+ | `WebsiteTalkProduct.flowId?` | Optional TalkPilot flow `_id` (hex string). Set by WTIS after `POST /flows/add_new_flow`; reused on later activations via `PUT /flows/edit_flow/:id`. |
432
+
433
+ **`phone_numbers`**
434
+
435
+ | Export | Purpose |
436
+ | --- | --- |
437
+ | `bindClientPhoneToFlow(clientId, flowId)` | Updates the **primary** `phone_numbers` row for `clientId`, setting `flow_id` to the given TalkPilot flow. Throws if no primary phone exists. |
438
+
439
+ **Typical service-layer flow (WTIS)**
440
+
441
+ 1. Build flow payload from template + `companyInfo` (generated at activate time).
442
+ 2. Create or update the flow via TalkPilot Server API (`add_new_flow` / `edit_flow`).
443
+ 3. On first create: `updateProductConfig(clientId, "websiteTalk", { flowId })`.
444
+ 4. `bindClientPhoneToFlow(clientId, flowId)` — ensure the phone routes to the flow.
445
+ 5. `updateActiveScanId(clientId, scanId)` — point search at the activated scan.
446
+
447
+ **Not in core-db (service layer)**
448
+
449
+ - Flow template substitution, Claude `companyInfo` generation, Firebase Storage template download, TalkPilot flow create/update HTTP calls.
306
450
 
307
451
  **Do I need to update my app?**
308
452
 
309
- Yesif you read dashboard KPIs or label call statuses in UI:
453
+ Nopurely additive. **WTIS** should upgrade to **1.3.19** (or later) and import `bindClientPhoneToFlow` plus `WebsiteTalkProduct.flowId` when implementing activate-scan flow provisioning.
310
454
 
311
- - Replace `busyCount` with `inCallCount` in dashboard consumers (e.g. WTIS, Websitalk Frontend).
312
- - Map `busy` to “line busy” / “תפוס”, not “in call” / “בשיחה”.
313
- - Use `updateCallStatusByCallSid` (or `updateCallByCallSid({ status })`) on every Twilio status webhook to keep `calls.status` current.
314
455
 
315
456
  ## 🛠 CI/CD & deployment
316
457
 
package/dist/index.d.ts CHANGED
@@ -11,4 +11,5 @@ export * from "./municipal/utils/types";
11
11
  export { websitalkMongodbClient, getDb as getWebsitalkDb, setDb as setWebsitalkDb, ObjectId as WebsitalkObjectId, } from "./websitalk";
12
12
  export * from "./websitalk/scans/scans.getters";
13
13
  export type * from "./websitalk/scans/scans.types";
14
+ export * from "./websitalk/websiteUrls";
14
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAE7B,OAAO,EACL,0BAA0B,EAC1B,KAAK,IAAI,kBAAkB,EAC3B,KAAK,IAAI,kBAAkB,EAC3B,QAAQ,IAAI,qBAAqB,GAClC,MAAM,aAAa,CAAC;AACrB,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AAExC,OAAO,EACL,sBAAsB,EACtB,KAAK,IAAI,cAAc,EACvB,KAAK,IAAI,cAAc,EACvB,QAAQ,IAAI,iBAAiB,GAC9B,MAAM,aAAa,CAAC;AACrB,cAAc,iCAAiC,CAAC;AAChD,mBAAmB,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAE7B,OAAO,EACL,0BAA0B,EAC1B,KAAK,IAAI,kBAAkB,EAC3B,KAAK,IAAI,kBAAkB,EAC3B,QAAQ,IAAI,qBAAqB,GAClC,MAAM,aAAa,CAAC;AACrB,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AAExC,OAAO,EACL,sBAAsB,EACtB,KAAK,IAAI,cAAc,EACvB,KAAK,IAAI,cAAc,EACvB,QAAQ,IAAI,iBAAiB,GAC9B,MAAM,aAAa,CAAC;AACrB,cAAc,iCAAiC,CAAC;AAChD,mBAAmB,+BAA+B,CAAC;AACnD,cAAc,yBAAyB,CAAC"}
package/dist/index.js CHANGED
@@ -36,4 +36,5 @@ Object.defineProperty(exports, "getWebsitalkDb", { enumerable: true, get: functi
36
36
  Object.defineProperty(exports, "setWebsitalkDb", { enumerable: true, get: function () { return websitalk_1.setDb; } });
37
37
  Object.defineProperty(exports, "WebsitalkObjectId", { enumerable: true, get: function () { return websitalk_1.ObjectId; } });
38
38
  __exportStar(require("./websitalk/scans/scans.getters"), exports);
39
+ __exportStar(require("./websitalk/websiteUrls"), exports);
39
40
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uBAAuB;AACvB,8CAA4B;AAC5B,+CAA6B;AAE7B,yCAKqB;AAJnB,uHAAA,0BAA0B,OAAA;AAC1B,+GAAA,KAAK,OAAsB;AAC3B,+GAAA,KAAK,OAAsB;AAC3B,kHAAA,QAAQ,OAAyB;AAEnC,qDAAmC;AACnC,sDAAoC;AACpC,kEAAgD;AAChD,sDAAoC;AACpC,iEAA+C;AAC/C,yDAAuC;AACvC,0DAAwC;AAExC,yCAKqB;AAJnB,mHAAA,sBAAsB,OAAA;AACtB,2GAAA,KAAK,OAAkB;AACvB,2GAAA,KAAK,OAAkB;AACvB,8GAAA,QAAQ,OAAqB;AAE/B,kEAAgD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uBAAuB;AACvB,8CAA4B;AAC5B,+CAA6B;AAE7B,yCAKqB;AAJnB,uHAAA,0BAA0B,OAAA;AAC1B,+GAAA,KAAK,OAAsB;AAC3B,+GAAA,KAAK,OAAsB;AAC3B,kHAAA,QAAQ,OAAyB;AAEnC,qDAAmC;AACnC,sDAAoC;AACpC,kEAAgD;AAChD,sDAAoC;AACpC,iEAA+C;AAC/C,yDAAuC;AACvC,0DAAwC;AAExC,yCAKqB;AAJnB,mHAAA,sBAAsB,OAAA;AACtB,2GAAA,KAAK,OAAkB;AACvB,2GAAA,KAAK,OAAkB;AACvB,8GAAA,QAAQ,OAAqB;AAE/B,kEAAgD;AAEhD,0DAAwC"}
@@ -6,7 +6,7 @@ export * from "./tickets";
6
6
  export * from "./systemInstructions";
7
7
  export * from "./muniIssues";
8
8
  export * from "./utils/types";
9
- export { CityName } from "./utils/types";
9
+ export type { CityName } from "./utils/types";
10
10
  export { municipalDataMongodbClient } from "./mongodb-client";
11
11
  export declare const setDb: (d: Db) => void;
12
12
  export declare const getDb: () => Db;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/municipal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,SAAS,CAAC;AAExD,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAG9D,eAAO,MAAM,KAAK,GAAI,GAAG,EAAE,SAE1B,CAAC;AAEF,eAAO,MAAM,KAAK,QAAO,EAGxB,CAAC;AACF,eAAO,MAAM,QAAQ,sBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/municipal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,SAAS,CAAC;AAExD,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAG9D,eAAO,MAAM,KAAK,GAAI,GAAG,EAAE,SAE1B,CAAC;AAEF,eAAO,MAAM,KAAK,QAAO,EAGxB,CAAC;AACF,eAAO,MAAM,QAAQ,sBAAgB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tickets.statistics.getters.d.ts","sourceRoot":"","sources":["../../../src/municipal/tickets/tickets.statistics.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAa1C,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAEzB,eAAO,MAAM,2BAA2B,GACtC,YAAY,oBAAoB,KAC/B,oBAKF,CAAC;AAEF,eAAO,MAAM,2BAA2B,GACtC,UAAU,MAAM,EAChB,QAAQ,MAAM,EACd,UAAU,MAAM,KACf,oBAGD,CAAC;AAEH,6DAA6D;AAC7D,eAAO,MAAM,6BAA6B,GACxC,UAAU,QAAQ,EAClB,YAAY,oBAAoB,KAC/B,OAAO,CAAC,MAAM,EAAE,CAalB,CAAC;AAEF,eAAO,MAAM,6BAA6B,GACxC,UAAU,QAAQ,EAClB,YAAY,oBAAoB,KAC/B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAkB7B,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,kCAAkC,GAC7C,UAAU,QAAQ,EAClB,YAAY,oBAAoB,KAC/B,OAAO,CAAC,MAAM,EAAE,CASlB,CAAC;AAEF,eAAO,MAAM,kCAAkC,GAC7C,UAAU,QAAQ,EAClB,YAAY,oBAAoB,KAC/B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAW7B,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,UAAU,QAAQ,EAClB,YAAY,oBAAoB,KAC/B,OAAO,CAAC,gBAAgB,EAAE,CAkB5B,CAAC"}
1
+ {"version":3,"file":"tickets.statistics.getters.d.ts","sourceRoot":"","sources":["../../../src/municipal/tickets/tickets.statistics.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAa1C,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAEzB,eAAO,MAAM,2BAA2B,GACtC,YAAY,oBAAoB,KAC/B,oBAKF,CAAC;AAEF,eAAO,MAAM,2BAA2B,GACtC,UAAU,MAAM,EAChB,QAAQ,MAAM,EACd,UAAU,MAAM,KACf,oBAGD,CAAC;AAEH,6DAA6D;AAC7D,eAAO,MAAM,6BAA6B,GACxC,UAAU,QAAQ,EAClB,YAAY,oBAAoB,KAC/B,OAAO,CAAC,MAAM,EAAE,CAalB,CAAC;AAEF,eAAO,MAAM,6BAA6B,GACxC,UAAU,QAAQ,EAClB,YAAY,oBAAoB,KAC/B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAkB7B,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,kCAAkC,GAC7C,UAAU,QAAQ,EAClB,YAAY,oBAAoB,KAC/B,OAAO,CAAC,MAAM,EAAE,CAclB,CAAC;AAEF,eAAO,MAAM,kCAAkC,GAC7C,UAAU,QAAQ,EAClB,YAAY,oBAAoB,KAC/B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAmB7B,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,UAAU,QAAQ,EAClB,YAAY,oBAAoB,KAC/B,OAAO,CAAC,gBAAgB,EAAE,CAkB5B,CAAC"}
@@ -43,7 +43,9 @@ exports.findCallSidTicketCountsByCity = findCallSidTicketCountsByCity;
43
43
  /** @deprecated Use findCallSidDraftTicketCountsByCity instead. */
44
44
  const findCallSidsWithDraftTicketsByCity = async (cityName, dateScope) => {
45
45
  const rows = await (0, tickets_statistics_aggregation_1.runTicketStatsAggregate)([
46
- { $match: (0, tickets_statistics_aggregation_1.ticketsWithCallSidMatch)(cityName, (0, exports.resolveTicketStatsDateRange)(dateScope)) },
46
+ {
47
+ $match: (0, tickets_statistics_aggregation_1.ticketsWithCallSidMatch)(cityName, (0, exports.resolveTicketStatsDateRange)(dateScope)),
48
+ },
47
49
  { $match: { $expr: tickets_statistics_aggregation_1.isDraftTicketExpr } },
48
50
  { $group: { _id: "$callSid" } },
49
51
  ]);
@@ -54,7 +56,9 @@ const findCallSidsWithDraftTicketsByCity = async (cityName, dateScope) => {
54
56
  exports.findCallSidsWithDraftTicketsByCity = findCallSidsWithDraftTicketsByCity;
55
57
  const findCallSidDraftTicketCountsByCity = async (cityName, dateScope) => {
56
58
  const rows = await (0, tickets_statistics_aggregation_1.runTicketStatsAggregate)([
57
- { $match: (0, tickets_statistics_aggregation_1.ticketsWithCallSidMatch)(cityName, (0, exports.resolveTicketStatsDateRange)(dateScope)) },
59
+ {
60
+ $match: (0, tickets_statistics_aggregation_1.ticketsWithCallSidMatch)(cityName, (0, exports.resolveTicketStatsDateRange)(dateScope)),
61
+ },
58
62
  { $match: { $expr: tickets_statistics_aggregation_1.isDraftTicketExpr } },
59
63
  { $group: { _id: "$callSid", ticketCount: { $sum: 1 } } },
60
64
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"tickets.statistics.getters.js","sourceRoot":"","sources":["../../../src/municipal/tickets/tickets.statistics.getters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tickets.statistics.getters.js","sourceRoot":"","sources":["../../../src/municipal/tickets/tickets.statistics.getters.ts"],"names":[],"mappings":"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"}
@@ -5,4 +5,7 @@ export declare const getClientConfig: (clientId: string) => Promise<import("mong
5
5
  export declare const getClientConfigByPhone: (phone: string) => Promise<import("mongodb").WithId<ClientConfigDoc> | null>;
6
6
  export declare const createClientConfigDoc: (clientConfig: ClientConfigDoc) => Promise<void>;
7
7
  export declare function updateProductConfig<K extends KnownProductKey>(clientId: string, productKey: K, updates: Partial<Products[K]>): Promise<void>;
8
+ export declare const getActiveScanId: (clientId: string) => Promise<string | undefined>;
9
+ export declare const updateActiveScanId: (clientId: string, scanId: string) => Promise<void>;
10
+ export declare const clearActiveScanId: (clientId: string) => Promise<void>;
8
11
  //# sourceMappingURL=clientsConfig.getters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"clientsConfig.getters.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/clientsConfig/clientsConfig.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAGf,QAAQ,EAER,eAAe,EAChB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,eAAO,MAAM,0BAA0B,QAAO,UAAU,CAAC,eAAe,CAEvE,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,8DAE/C,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAU,OAAO,MAAM,8DAIzD,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,cAAc,eAAe,KAC5B,OAAO,CAAC,IAAI,CAEd,CAAC;AAEF,wBAAsB,mBAAmB,CAAC,CAAC,SAAS,eAAe,EACjE,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,CAAC,EACb,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,CAoBf"}
1
+ {"version":3,"file":"clientsConfig.getters.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/clientsConfig/clientsConfig.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAGf,QAAQ,EAER,eAAe,EAChB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,eAAO,MAAM,0BAA0B,QAAO,UAAU,CAAC,eAAe,CAEvE,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,8DAE/C,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAU,OAAO,MAAM,8DAIzD,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,cAAc,eAAe,KAC5B,OAAO,CAAC,IAAI,CAEd,CAAC;AAEF,wBAAsB,mBAAmB,CAAC,CAAC,SAAS,eAAe,EACjE,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,CAAC,EACb,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED,eAAO,MAAM,eAAe,GAC1B,UAAU,MAAM,KACf,OAAO,CAAC,MAAM,GAAG,SAAS,CAG5B,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,UAAU,MAAM,EAChB,QAAQ,MAAM,KACb,OAAO,CAAC,IAAI,CAEd,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,IAAI,CAQtE,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createClientConfigDoc = exports.getClientConfigByPhone = exports.getClientConfig = exports.getClientsConfigCollection = void 0;
3
+ exports.clearActiveScanId = exports.updateActiveScanId = exports.getActiveScanId = exports.createClientConfigDoc = exports.getClientConfigByPhone = exports.getClientConfig = exports.getClientsConfigCollection = void 0;
4
4
  exports.updateProductConfig = updateProductConfig;
5
5
  const index_1 = require("../index");
6
6
  const getClientsConfigCollection = () => {
@@ -35,4 +35,20 @@ async function updateProductConfig(clientId, productKey, updates) {
35
35
  throw new Error(`No client config found for clientId: ${clientId}`);
36
36
  }
37
37
  }
38
+ const getActiveScanId = async (clientId) => {
39
+ const cfg = await (0, exports.getClientConfig)(clientId);
40
+ return cfg?.products?.websiteTalk?.activeScanId;
41
+ };
42
+ exports.getActiveScanId = getActiveScanId;
43
+ const updateActiveScanId = async (clientId, scanId) => {
44
+ await updateProductConfig(clientId, "websiteTalk", { activeScanId: scanId });
45
+ };
46
+ exports.updateActiveScanId = updateActiveScanId;
47
+ const clearActiveScanId = async (clientId) => {
48
+ const result = await (0, exports.getClientsConfigCollection)().updateOne({ clientId }, { $unset: { "products.websiteTalk.activeScanId": "" } });
49
+ if (result.matchedCount === 0) {
50
+ throw new Error(`No client config found for clientId: ${clientId}`);
51
+ }
52
+ };
53
+ exports.clearActiveScanId = clearActiveScanId;
38
54
  //# sourceMappingURL=clientsConfig.getters.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"clientsConfig.getters.js","sourceRoot":"","sources":["../../../src/talkpilot/clientsConfig/clientsConfig.getters.ts"],"names":[],"mappings":";;;AA8BA,kDAwBC;AAtDD,oCAOkB;AAGX,MAAM,0BAA0B,GAAG,GAAgC,EAAE;IAC1E,OAAO,IAAA,aAAK,GAAE,CAAC,UAAU,CAAkB,eAAe,CAAC,CAAC;AAC9D,CAAC,CAAC;AAFW,QAAA,0BAA0B,8BAErC;AAEK,MAAM,eAAe,GAAG,CAAC,QAAgB,EAAE,EAAE;IAClD,OAAO,IAAA,kCAA0B,GAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC5D,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B;AAEK,MAAM,sBAAsB,GAAG,KAAK,EAAE,KAAa,EAAE,EAAE;IAC5D,MAAM,MAAM,GAAG,MAAM,IAAA,+BAAuB,EAAC,KAAK,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO,IAAA,uBAAe,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC1C,CAAC,CAAC;AAJW,QAAA,sBAAsB,0BAIjC;AAEK,MAAM,qBAAqB,GAAG,KAAK,EACxC,YAA6B,EACd,EAAE;IACjB,MAAM,IAAA,kCAA0B,GAAE,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;AAC7D,CAAC,CAAC;AAJW,QAAA,qBAAqB,yBAIhC;AAEK,KAAK,UAAU,mBAAmB,CACvC,QAAgB,EAChB,UAAa,EACb,OAA6B;IAE7B,IAAI,CAAC,0BAAkB,CAAC,QAAQ,CAAC,UAA6B,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CACb,yBAAyB,UAAU,sBAAsB,0BAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACzF,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAA4B,EAAE,CAAC;IAClD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,aAAa,CAAC,YAAY,UAAU,IAAI,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;IACzD,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,IAAA,kCAA0B,GAAE,CAAC,SAAS,CACzD,EAAE,QAAQ,EAAE,EACZ,EAAE,IAAI,EAAE,aAAa,EAAE,CACxB,CAAC;IAEF,IAAI,MAAM,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,wCAAwC,QAAQ,EAAE,CAAC,CAAC;IACtE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"clientsConfig.getters.js","sourceRoot":"","sources":["../../../src/talkpilot/clientsConfig/clientsConfig.getters.ts"],"names":[],"mappings":"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"}
@@ -42,11 +42,11 @@ export type WebsiteTalkScheduler = {
42
42
  };
43
43
  /** Product config for the websiteTalk */
44
44
  export type WebsiteTalkProduct = {
45
- logoUrl: string;
46
45
  companyName: string;
47
46
  timezone: string;
48
47
  language: string;
49
- defaultBaseUrl: string;
48
+ activeScanId?: string;
49
+ flowId?: string;
50
50
  };
51
51
  /** Product config for the clinics scheduling integration. */
52
52
  export type ClinicsProduct = {
@@ -1 +1 @@
1
- {"version":3,"file":"clientsConfig.types.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/clientsConfig/clientsConfig.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clientsConfig.types.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/clientsConfig/clientsConfig.types.ts"],"names":[],"mappings":"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"}
@@ -236,6 +236,9 @@ export declare const flowMongoSchema: {
236
236
  readonly preventAudioDuringTool: {
237
237
  readonly bsonType: "bool";
238
238
  };
239
+ readonly useRedisTranscription: {
240
+ readonly bsonType: "bool";
241
+ };
239
242
  readonly sendUserAuthToken: {
240
243
  readonly bsonType: "bool";
241
244
  };
@@ -1 +1 @@
1
- {"version":3,"file":"flows.schema.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/flows/flows.schema.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyJlB,CAAC"}
1
+ {"version":3,"file":"flows.schema.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/flows/flows.schema.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0JlB,CAAC"}
@@ -141,6 +141,7 @@ exports.flowMongoSchema = {
141
141
  parameters: { bsonType: "object" },
142
142
  bodyFormat: { bsonType: "string", enum: ["json", "form-data"] },
143
143
  preventAudioDuringTool: { bsonType: "bool" },
144
+ useRedisTranscription: { bsonType: "bool" },
144
145
  sendUserAuthToken: { bsonType: "bool" },
145
146
  runInBackground: { bsonType: "bool" },
146
147
  backgroundToolType: {
@@ -1 +1 @@
1
- {"version":3,"file":"flows.schema.js","sourceRoot":"","sources":["../../../src/talkpilot/flows/flows.schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flows.schema.js","sourceRoot":"","sources":["../../../src/talkpilot/flows/flows.schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { Flow } from "./flows.types";
2
+ export type FlowTemplateParams = {
3
+ companyName: string;
4
+ companyInfo: string;
5
+ language: string;
6
+ wtisBaseUrl: string;
7
+ };
8
+ export declare const extractCompanyInfoFromFlow: (flow: Flow) => string;
9
+ type FlowTemplateFields = Omit<Flow, "_id" | "clientId" | "createdAt" | "updatedAt">;
10
+ export declare const applyFlowClientParams: (flow: Flow, params: FlowTemplateParams) => FlowTemplateFields;
11
+ export declare const substituteFlowTemplate: (template: Flow, params: FlowTemplateParams) => FlowTemplateFields;
12
+ export {};
13
+ //# sourceMappingURL=flows.setter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flows.setter.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/flows/flows.setter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AA2BF,eAAO,MAAM,0BAA0B,GAAI,MAAM,IAAI,KAAG,MAUvD,CAAC;AAgBF,KAAK,kBAAkB,GAAG,IAAI,CAC5B,IAAI,EACJ,KAAK,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,CAC/C,CAAC;AAKF,eAAO,MAAM,qBAAqB,GAChC,MAAM,IAAI,EACV,QAAQ,kBAAkB,KACzB,kBA+CF,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,UAAU,IAAI,EACd,QAAQ,kBAAkB,KACzB,kBAkCF,CAAC"}