@talkpilot/core-db 1.3.66 → 1.3.68

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 (356) hide show
  1. package/.cursor/rules/development.mdc +65 -65
  2. package/AGENTS.md +49 -49
  3. package/DEVELOPMENT.md +141 -141
  4. package/README.md +1 -48
  5. package/dist/configuration/models/models.constants.d.ts +1 -1
  6. package/dist/configuration/models/models.constants.d.ts.map +1 -1
  7. package/dist/configuration/models/models.constants.js +6 -1
  8. package/dist/configuration/models/models.constants.js.map +1 -1
  9. package/dist/municipal/departmentsSubjects/departmentsSubjects.setters.d.ts +10 -0
  10. package/dist/municipal/departmentsSubjects/departmentsSubjects.setters.d.ts.map +1 -0
  11. package/dist/municipal/departmentsSubjects/departmentsSubjects.setters.js +15 -0
  12. package/dist/municipal/departmentsSubjects/departmentsSubjects.setters.js.map +1 -0
  13. package/dist/municipal/streets/streets.setters.d.ts +10 -0
  14. package/dist/municipal/streets/streets.setters.d.ts.map +1 -0
  15. package/dist/municipal/streets/streets.setters.js +15 -0
  16. package/dist/municipal/streets/streets.setters.js.map +1 -0
  17. package/dist/reconcile/index.d.ts +5 -0
  18. package/dist/reconcile/index.d.ts.map +1 -0
  19. package/dist/{talkpilot/clientDeletionLogs → reconcile}/index.js +4 -3
  20. package/dist/reconcile/index.js.map +1 -0
  21. package/dist/reconcile/reconcile.diff.d.ts +4 -0
  22. package/dist/reconcile/reconcile.diff.d.ts.map +1 -0
  23. package/dist/reconcile/reconcile.diff.js +36 -0
  24. package/dist/reconcile/reconcile.diff.js.map +1 -0
  25. package/dist/reconcile/reconcile.execute.d.ts +7 -0
  26. package/dist/reconcile/reconcile.execute.d.ts.map +1 -0
  27. package/dist/reconcile/reconcile.execute.js +20 -0
  28. package/dist/reconcile/reconcile.execute.js.map +1 -0
  29. package/dist/reconcile/reconcile.ops.d.ts +12 -0
  30. package/dist/reconcile/reconcile.ops.d.ts.map +1 -0
  31. package/dist/reconcile/reconcile.ops.js +24 -0
  32. package/dist/reconcile/reconcile.ops.js.map +1 -0
  33. package/dist/reconcile/reconcile.types.d.ts +32 -0
  34. package/dist/reconcile/reconcile.types.d.ts.map +1 -0
  35. package/dist/{talkpilot/auditLogs/auditLogs.types.js → reconcile/reconcile.types.js} +1 -1
  36. package/dist/reconcile/reconcile.types.js.map +1 -0
  37. package/dist/talkpilot/callTokenUsage/callTokenUsage.getters.d.ts +4 -0
  38. package/dist/talkpilot/callTokenUsage/callTokenUsage.getters.d.ts.map +1 -0
  39. package/dist/talkpilot/callTokenUsage/callTokenUsage.getters.js +30 -0
  40. package/dist/talkpilot/callTokenUsage/callTokenUsage.getters.js.map +1 -0
  41. package/dist/talkpilot/callTokenUsage/callTokenUsage.types.d.ts +28 -0
  42. package/dist/talkpilot/callTokenUsage/callTokenUsage.types.d.ts.map +1 -0
  43. package/dist/talkpilot/{clientDeletionLogs/clientDeletionLogs.types.js → callTokenUsage/callTokenUsage.types.js} +1 -1
  44. package/dist/talkpilot/callTokenUsage/callTokenUsage.types.js.map +1 -0
  45. package/dist/talkpilot/callTokenUsage/index.d.ts +3 -0
  46. package/dist/talkpilot/callTokenUsage/index.d.ts.map +1 -0
  47. package/dist/talkpilot/{auditLogs → callTokenUsage}/index.js +1 -2
  48. package/dist/talkpilot/callTokenUsage/index.js.map +1 -0
  49. package/dist/talkpilot/calls/calls.constants.d.ts +1 -9
  50. package/dist/talkpilot/calls/calls.constants.d.ts.map +1 -1
  51. package/dist/talkpilot/calls/calls.constants.js +1 -9
  52. package/dist/talkpilot/calls/calls.constants.js.map +1 -1
  53. package/dist/talkpilot/calls/calls.getters.d.ts +1 -7
  54. package/dist/talkpilot/calls/calls.getters.d.ts.map +1 -1
  55. package/dist/talkpilot/calls/calls.getters.js +1 -181
  56. package/dist/talkpilot/calls/calls.getters.js.map +1 -1
  57. package/dist/talkpilot/calls/calls.types.d.ts +2 -35
  58. package/dist/talkpilot/calls/calls.types.d.ts.map +1 -1
  59. package/dist/talkpilot/clients/clients.getters.d.ts +0 -2
  60. package/dist/talkpilot/clients/clients.getters.d.ts.map +1 -1
  61. package/dist/talkpilot/clients/clients.getters.js +1 -15
  62. package/dist/talkpilot/clients/clients.getters.js.map +1 -1
  63. package/dist/talkpilot/clients/clients.types.d.ts +0 -21
  64. package/dist/talkpilot/clients/clients.types.d.ts.map +1 -1
  65. package/dist/talkpilot/clients/index.d.ts +0 -2
  66. package/dist/talkpilot/clients/index.d.ts.map +1 -1
  67. package/dist/talkpilot/clients/index.js +0 -2
  68. package/dist/talkpilot/clients/index.js.map +1 -1
  69. package/dist/talkpilot/index.d.ts +1 -1
  70. package/dist/talkpilot/index.d.ts.map +1 -1
  71. package/dist/talkpilot/index.js +1 -1
  72. package/dist/talkpilot/index.js.map +1 -1
  73. package/dist/talkpilot/phone_numbers/phone_numbers.getter.d.ts +1 -9
  74. package/dist/talkpilot/phone_numbers/phone_numbers.getter.d.ts.map +1 -1
  75. package/dist/talkpilot/phone_numbers/phone_numbers.getter.js +1 -66
  76. package/dist/talkpilot/phone_numbers/phone_numbers.getter.js.map +1 -1
  77. package/dist/talkpilot/phone_numbers/phone_numbers.types.d.ts +0 -5
  78. package/dist/talkpilot/phone_numbers/phone_numbers.types.d.ts.map +1 -1
  79. package/dist/test-utils/factories/index.d.ts +0 -2
  80. package/dist/test-utils/factories/index.d.ts.map +1 -1
  81. package/dist/test-utils/factories/index.js +0 -2
  82. package/dist/test-utils/factories/index.js.map +1 -1
  83. package/jest.config.js +20 -20
  84. package/package.json +46 -46
  85. package/src/__tests__/setup.ts +20 -20
  86. package/src/bulkWrite/__tests__/bulkWrite.spec.ts +65 -65
  87. package/src/bulkWrite/bulkWrite.ops.ts +45 -45
  88. package/src/bulkWrite/bulkWrite.types.ts +4 -4
  89. package/src/bulkWrite/index.ts +2 -2
  90. package/src/config.ts +9 -9
  91. package/src/configuration/index.ts +17 -17
  92. package/src/configuration/internalModels/index.ts +3 -3
  93. package/src/configuration/internalModels/internalModels.constants.ts +1 -1
  94. package/src/configuration/internalModels/internalModels.getters.ts +33 -33
  95. package/src/configuration/internalModels/internalModels.types.ts +12 -12
  96. package/src/configuration/models/__tests__/models.getters.spec.ts +67 -67
  97. package/src/configuration/models/index.ts +27 -27
  98. package/src/configuration/models/models.constants.ts +20 -15
  99. package/src/configuration/models/models.getters.ts +71 -71
  100. package/src/configuration/models/models.types.ts +80 -80
  101. package/src/configuration/mongodb-client.ts +62 -62
  102. package/src/configuration/prompts/index.ts +2 -2
  103. package/src/configuration/prompts/prompts.getters.ts +49 -49
  104. package/src/configuration/prompts/prompts.types.ts +11 -11
  105. package/src/connection.ts +81 -81
  106. package/src/index.ts +47 -47
  107. package/src/municipal/__tests__/validation.spec.ts +62 -62
  108. package/src/municipal/cities/cities.getters.ts +50 -50
  109. package/src/municipal/cities/cities.types.ts +11 -11
  110. package/src/municipal/cities/index.ts +2 -2
  111. package/src/municipal/departmentsSubjects/__tests__/departmentsSubjects.spec.ts +272 -272
  112. package/src/municipal/departmentsSubjects/departmentsSubjects.getters.ts +317 -317
  113. package/src/municipal/departmentsSubjects/departmentsSubjects.types.ts +73 -73
  114. package/src/municipal/departmentsSubjects/index.ts +9 -9
  115. package/src/municipal/index.ts +22 -22
  116. package/src/municipal/mongodb-client.ts +61 -61
  117. package/src/municipal/muniIssues/__tests__/muniIssues.setters.spec.ts +94 -94
  118. package/src/municipal/muniIssues/__tests__/muniIssues.setup.spec.ts +92 -92
  119. package/src/municipal/muniIssues/index.ts +17 -17
  120. package/src/municipal/muniIssues/muniIssues.constants.ts +18 -18
  121. package/src/municipal/muniIssues/muniIssues.getters.ts +24 -24
  122. package/src/municipal/muniIssues/muniIssues.schema.ts +66 -66
  123. package/src/municipal/muniIssues/muniIssues.setters.ts +24 -24
  124. package/src/municipal/muniIssues/muniIssues.setup.ts +65 -65
  125. package/src/municipal/muniIssues/muniIssues.types.ts +37 -37
  126. package/src/municipal/streets/__tests__/streets.spec.ts +253 -253
  127. package/src/municipal/streets/index.ts +2 -2
  128. package/src/municipal/streets/streets.getters.ts +140 -140
  129. package/src/municipal/streets/streets.types.ts +19 -19
  130. package/src/municipal/systemInstructions/__tests__/getters.spec.ts +113 -113
  131. package/src/municipal/systemInstructions/__tests__/setters.spec.ts +274 -274
  132. package/src/municipal/systemInstructions/index.ts +7 -7
  133. package/src/municipal/systemInstructions/instructions.getters.ts +57 -57
  134. package/src/municipal/systemInstructions/instructions.setters.ts +119 -119
  135. package/src/municipal/systemInstructions/instructions.types.ts +30 -30
  136. package/src/municipal/tickets/__tests__/tickets.getters.spec.ts +30 -30
  137. package/src/municipal/tickets/__tests__/tickets.statistics.spec.ts +99 -99
  138. package/src/municipal/tickets/index.ts +9 -9
  139. package/src/municipal/tickets/tickets.constants.ts +8 -8
  140. package/src/municipal/tickets/tickets.getters.ts +121 -121
  141. package/src/municipal/tickets/tickets.statistics.aggregation.ts +110 -110
  142. package/src/municipal/tickets/tickets.statistics.getters.ts +145 -145
  143. package/src/municipal/tickets/tickets.types.ts +54 -54
  144. package/src/municipal/utils/types.ts +11 -11
  145. package/src/talkpilot/__tests__/db.spec.ts +38 -38
  146. package/src/talkpilot/__tests__/mongodb-client.spec.ts +18 -18
  147. package/src/talkpilot/__tests__/validation.spec.ts +68 -68
  148. package/src/talkpilot/agents/__tests__/agents.getters.spec.ts +29 -29
  149. package/src/talkpilot/agents/agents.getters.ts +34 -34
  150. package/src/talkpilot/agents/agents.types.ts +14 -14
  151. package/src/talkpilot/agents/index.ts +2 -2
  152. package/src/talkpilot/backgroundToolResults/__tests__/backgroundToolResults.getters.spec.ts +147 -147
  153. package/src/talkpilot/backgroundToolResults/backgroundToolResults.getters.ts +65 -65
  154. package/src/talkpilot/backgroundToolResults/backgroundToolResults.types.ts +23 -23
  155. package/src/talkpilot/backgroundToolResults/index.ts +2 -2
  156. package/src/talkpilot/callTokenUsage/__tests__/callTokenUsage.getters.spec.ts +57 -0
  157. package/src/talkpilot/callTokenUsage/callTokenUsage.getters.ts +42 -0
  158. package/src/talkpilot/callTokenUsage/callTokenUsage.types.ts +28 -0
  159. package/src/talkpilot/callTokenUsage/index.ts +2 -0
  160. package/src/talkpilot/calls/__tests__/callStats.utils.spec.ts +128 -128
  161. package/src/talkpilot/calls/__tests__/calls.dashboard.spec.ts +229 -229
  162. package/src/talkpilot/calls/__tests__/calls.spec.ts +471 -471
  163. package/src/talkpilot/calls/__tests__/calls.statistics.spec.ts +483 -483
  164. package/src/talkpilot/calls/calls.constants.ts +49 -61
  165. package/src/talkpilot/calls/calls.getters.ts +1 -270
  166. package/src/talkpilot/calls/calls.statistics.getters.ts +668 -668
  167. package/src/talkpilot/calls/calls.statistics.types.ts +48 -48
  168. package/src/talkpilot/calls/calls.types.ts +2 -40
  169. package/src/talkpilot/calls/dashboard/calls.dashboard.ts +295 -295
  170. package/src/talkpilot/calls/dashboard/calls.dashboard.types.ts +57 -57
  171. package/src/talkpilot/calls/index.ts +6 -6
  172. package/src/talkpilot/clientAudioBuffers/__tests__/clientAudioBuffer.getters.spec.ts +160 -160
  173. package/src/talkpilot/clientAudioBuffers/clientAudioBuffer.getters.ts +117 -117
  174. package/src/talkpilot/clientAudioBuffers/clientsAudioBuffers.types.ts +25 -25
  175. package/src/talkpilot/clientAudioBuffers/index.ts +2 -2
  176. package/src/talkpilot/clients/__tests__/clients.quota.spec.ts +123 -123
  177. package/src/talkpilot/clients/clients.getters.ts +19 -32
  178. package/src/talkpilot/clients/clients.quota.getters.ts +119 -119
  179. package/src/talkpilot/clients/clients.quota.types.ts +27 -27
  180. package/src/talkpilot/clients/clients.types.ts +18 -37
  181. package/src/talkpilot/clients/index.ts +4 -6
  182. package/src/talkpilot/clientsConfig/__tests__/clientsConfig.getters.spec.ts +423 -423
  183. package/src/talkpilot/clientsConfig/__tests__/clientsConfig.spec.ts +212 -212
  184. package/src/talkpilot/clientsConfig/clientsConfig.constants.ts +2 -2
  185. package/src/talkpilot/clientsConfig/clientsConfig.getters.ts +247 -247
  186. package/src/talkpilot/clientsConfig/clientsConfig.types.ts +137 -137
  187. package/src/talkpilot/clientsConfig/index.ts +3 -3
  188. package/src/talkpilot/contextNotes/__tests__/contextNotes.getters.spec.ts +217 -217
  189. package/src/talkpilot/contextNotes/contextNotes.getters.ts +85 -85
  190. package/src/talkpilot/contextNotes/contextNotes.types.ts +20 -20
  191. package/src/talkpilot/contextNotes/index.ts +2 -2
  192. package/src/talkpilot/flows/__tests__/flows.schema.spec.ts +124 -124
  193. package/src/talkpilot/flows/flows.getter.ts +34 -34
  194. package/src/talkpilot/flows/flows.schema.ts +180 -180
  195. package/src/talkpilot/flows/flows.types.ts +211 -211
  196. package/src/talkpilot/flows/index.ts +7 -7
  197. package/src/talkpilot/groups/__tests__/groups.spec.ts +90 -90
  198. package/src/talkpilot/groups/__tests__/phone.utils.spec.ts +32 -32
  199. package/src/talkpilot/groups/groups.getters.ts +30 -30
  200. package/src/talkpilot/groups/groups.types.ts +29 -29
  201. package/src/talkpilot/groups/index.ts +3 -3
  202. package/src/talkpilot/groups/phone.utils.ts +46 -46
  203. package/src/talkpilot/index.ts +32 -32
  204. package/src/talkpilot/leads/index.ts +2 -2
  205. package/src/talkpilot/leads/leads.getter.ts +6 -6
  206. package/src/talkpilot/leads/leads.schema.ts +33 -33
  207. package/src/talkpilot/leads/leads.types.ts +20 -20
  208. package/src/talkpilot/mongodb-client.ts +78 -78
  209. package/src/talkpilot/phone_numbers/__tests__/phone_numbers.spec.ts +530 -774
  210. package/src/talkpilot/phone_numbers/index.ts +2 -2
  211. package/src/talkpilot/phone_numbers/phone_numbers.getter.ts +240 -324
  212. package/src/talkpilot/phone_numbers/phone_numbers.schema.ts +17 -17
  213. package/src/talkpilot/phone_numbers/phone_numbers.types.ts +30 -36
  214. package/src/talkpilot/phone_numbers/phone_numbers.utils.ts +9 -9
  215. package/src/talkpilot/plans/__tests__/plans.spec.ts +70 -70
  216. package/src/talkpilot/plans/index.ts +2 -2
  217. package/src/talkpilot/plans/plans.getters.ts +132 -132
  218. package/src/talkpilot/plans/plans.types.ts +89 -89
  219. package/src/talkpilot/products/__tests__/products.getters.spec.ts +44 -44
  220. package/src/talkpilot/products/index.ts +2 -2
  221. package/src/talkpilot/products/products.getters.ts +12 -12
  222. package/src/talkpilot/products/products.types.ts +9 -9
  223. package/src/talkpilot/results/index.ts +7 -7
  224. package/src/talkpilot/results/results.getter.ts +39 -39
  225. package/src/talkpilot/results/results.schema.ts +25 -25
  226. package/src/talkpilot/results/results.types.ts +34 -34
  227. package/src/talkpilot/retry_analyze/__tests__/retryAnalyze.getters.spec.ts +156 -156
  228. package/src/talkpilot/retry_analyze/index.ts +2 -2
  229. package/src/talkpilot/retry_analyze/retryAnalyze.getters.ts +84 -84
  230. package/src/talkpilot/retry_analyze/retryAnalyze.types.ts +13 -13
  231. package/src/talkpilot/sessions/__tests__/sessions.spec.ts +147 -147
  232. package/src/talkpilot/sessions/index.ts +2 -2
  233. package/src/talkpilot/sessions/sessions.getter.ts +92 -92
  234. package/src/talkpilot/sessions/sessions.schema.ts +34 -34
  235. package/src/talkpilot/sessions/sessions.types.ts +30 -30
  236. package/src/talkpilot/subscriptions/__tests__/subscriptions.getters.utils.spec.ts +45 -45
  237. package/src/talkpilot/subscriptions/index.ts +3 -3
  238. package/src/talkpilot/subscriptions/subscriptions.getters.ts +146 -146
  239. package/src/talkpilot/subscriptions/subscriptions.getters.utils.ts +33 -33
  240. package/src/talkpilot/subscriptions/subscriptions.types.ts +66 -66
  241. package/src/talkpilot/utils/__tests__/query.utils.spec.ts +49 -49
  242. package/src/talkpilot/utils/query.utils.ts +21 -21
  243. package/src/test-utils/db-utils.ts +33 -33
  244. package/src/test-utils/factories/index.ts +18 -20
  245. package/src/test-utils/factories/municipal/cities.ts +16 -16
  246. package/src/test-utils/factories/municipal/departmentsSubjects.ts +37 -37
  247. package/src/test-utils/factories/municipal/muniIssues.ts +32 -32
  248. package/src/test-utils/factories/municipal/streets.ts +22 -22
  249. package/src/test-utils/factories/municipal/tickets.ts +39 -39
  250. package/src/test-utils/factories/talkpilot/agents.ts +19 -19
  251. package/src/test-utils/factories/talkpilot/calls.ts +37 -37
  252. package/src/test-utils/factories/talkpilot/clientAudioBuffers.ts +20 -20
  253. package/src/test-utils/factories/talkpilot/clientsConfig.ts +18 -18
  254. package/src/test-utils/factories/talkpilot/contextNotes.ts +40 -40
  255. package/src/test-utils/factories/talkpilot/flows.ts +33 -33
  256. package/src/test-utils/factories/talkpilot/groups.ts +33 -33
  257. package/src/test-utils/factories/talkpilot/phone_numbers.ts +22 -22
  258. package/src/test-utils/factories/talkpilot/sessions.ts +35 -35
  259. package/src/test-utils/factories/websitalk/knowledgeDocuments.ts +29 -29
  260. package/src/test-utils/factories/websitalk/scanResources.ts +26 -26
  261. package/src/test-utils/factories/websitalk/scans.ts +30 -30
  262. package/src/test-utils/factories/websitalk/websiteUrls.ts +17 -17
  263. package/src/utils/date.utils.ts +126 -126
  264. package/src/utils/shared.types.ts +4 -4
  265. package/src/utils/validation.ts +23 -23
  266. package/src/websitalk/index.ts +18 -18
  267. package/src/websitalk/knowledgeDocuments/__tests__/knowledgeDocuments.spec.ts +238 -238
  268. package/src/websitalk/knowledgeDocuments/index.ts +3 -3
  269. package/src/websitalk/knowledgeDocuments/knowledgeDocuments.constants.ts +26 -26
  270. package/src/websitalk/knowledgeDocuments/knowledgeDocuments.getters.ts +95 -95
  271. package/src/websitalk/knowledgeDocuments/knowledgeDocuments.types.ts +75 -75
  272. package/src/websitalk/mongodb-client.ts +61 -61
  273. package/src/websitalk/scanResources/__tests__/scanResources.spec.ts +267 -267
  274. package/src/websitalk/scanResources/index.ts +4 -4
  275. package/src/websitalk/scanResources/scanResources.constants.ts +60 -60
  276. package/src/websitalk/scanResources/scanResources.getters.ts +128 -128
  277. package/src/websitalk/scanResources/scanResources.types.ts +105 -105
  278. package/src/websitalk/scanResources/scanResources.utils.ts +31 -31
  279. package/src/websitalk/scans/__tests__/scans.spec.ts +362 -362
  280. package/src/websitalk/scans/index.ts +4 -4
  281. package/src/websitalk/scans/scans.constants.ts +18 -18
  282. package/src/websitalk/scans/scans.getters.ts +172 -172
  283. package/src/websitalk/scans/scans.types.ts +58 -58
  284. package/src/websitalk/scans/scans.utils.ts +5 -5
  285. package/src/websitalk/websiteUrls/__tests__/websiteUrls.spec.ts +77 -77
  286. package/src/websitalk/websiteUrls/index.ts +2 -2
  287. package/src/websitalk/websiteUrls/websiteUrls.getters.ts +65 -65
  288. package/src/websitalk/websiteUrls/websiteUrls.types.ts +13 -13
  289. package/tsconfig.json +23 -23
  290. package/dist/talkpilot/auditLogs/auditLogs.getters.d.ts +0 -8
  291. package/dist/talkpilot/auditLogs/auditLogs.getters.d.ts.map +0 -1
  292. package/dist/talkpilot/auditLogs/auditLogs.getters.js +0 -26
  293. package/dist/talkpilot/auditLogs/auditLogs.getters.js.map +0 -1
  294. package/dist/talkpilot/auditLogs/auditLogs.setters.d.ts +0 -3
  295. package/dist/talkpilot/auditLogs/auditLogs.setters.d.ts.map +0 -1
  296. package/dist/talkpilot/auditLogs/auditLogs.setters.js +0 -9
  297. package/dist/talkpilot/auditLogs/auditLogs.setters.js.map +0 -1
  298. package/dist/talkpilot/auditLogs/auditLogs.types.d.ts +0 -11
  299. package/dist/talkpilot/auditLogs/auditLogs.types.d.ts.map +0 -1
  300. package/dist/talkpilot/auditLogs/auditLogs.types.js.map +0 -1
  301. package/dist/talkpilot/auditLogs/index.d.ts +0 -3
  302. package/dist/talkpilot/auditLogs/index.d.ts.map +0 -1
  303. package/dist/talkpilot/auditLogs/index.js.map +0 -1
  304. package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.getters.d.ts +0 -4
  305. package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.getters.d.ts.map +0 -1
  306. package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.getters.js +0 -9
  307. package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.getters.js.map +0 -1
  308. package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.setters.d.ts +0 -3
  309. package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.setters.d.ts.map +0 -1
  310. package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.setters.js +0 -9
  311. package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.setters.js.map +0 -1
  312. package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.types.d.ts +0 -10
  313. package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.types.d.ts.map +0 -1
  314. package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.types.js.map +0 -1
  315. package/dist/talkpilot/clientDeletionLogs/index.d.ts +0 -4
  316. package/dist/talkpilot/clientDeletionLogs/index.d.ts.map +0 -1
  317. package/dist/talkpilot/clientDeletionLogs/index.js.map +0 -1
  318. package/dist/talkpilot/clients/clients.constants.d.ts +0 -3
  319. package/dist/talkpilot/clients/clients.constants.d.ts.map +0 -1
  320. package/dist/talkpilot/clients/clients.constants.js +0 -6
  321. package/dist/talkpilot/clients/clients.constants.js.map +0 -1
  322. package/dist/talkpilot/clients/clients.lifecycle.d.ts +0 -10
  323. package/dist/talkpilot/clients/clients.lifecycle.d.ts.map +0 -1
  324. package/dist/talkpilot/clients/clients.lifecycle.js +0 -95
  325. package/dist/talkpilot/clients/clients.lifecycle.js.map +0 -1
  326. package/dist/talkpilot/results/results.constants.d.ts +0 -4
  327. package/dist/talkpilot/results/results.constants.d.ts.map +0 -1
  328. package/dist/talkpilot/results/results.constants.js +0 -10
  329. package/dist/talkpilot/results/results.constants.js.map +0 -1
  330. package/dist/talkpilot/results/results.statistics.getters.d.ts +0 -12
  331. package/dist/talkpilot/results/results.statistics.getters.d.ts.map +0 -1
  332. package/dist/talkpilot/results/results.statistics.getters.js +0 -258
  333. package/dist/talkpilot/results/results.statistics.getters.js.map +0 -1
  334. package/dist/talkpilot/results/results.statistics.types.d.ts +0 -22
  335. package/dist/talkpilot/results/results.statistics.types.d.ts.map +0 -1
  336. package/dist/talkpilot/results/results.statistics.types.js +0 -3
  337. package/dist/talkpilot/results/results.statistics.types.js.map +0 -1
  338. package/dist/test-utils/factories/talkpilot/clients.d.ts +0 -14
  339. package/dist/test-utils/factories/talkpilot/clients.d.ts.map +0 -1
  340. package/dist/test-utils/factories/talkpilot/clients.js +0 -19
  341. package/dist/test-utils/factories/talkpilot/clients.js.map +0 -1
  342. package/dist/test-utils/factories/talkpilot/results.d.ts +0 -16
  343. package/dist/test-utils/factories/talkpilot/results.d.ts.map +0 -1
  344. package/dist/test-utils/factories/talkpilot/results.js +0 -40
  345. package/dist/test-utils/factories/talkpilot/results.js.map +0 -1
  346. package/src/talkpilot/auditLogs/__tests__/auditLogs.spec.ts +0 -91
  347. package/src/talkpilot/auditLogs/auditLogs.getters.ts +0 -26
  348. package/src/talkpilot/auditLogs/auditLogs.types.ts +0 -12
  349. package/src/talkpilot/auditLogs/index.ts +0 -2
  350. package/src/talkpilot/calls/__tests__/calls.statistics.getters.spec.ts +0 -374
  351. package/src/talkpilot/clients/__tests__/clients.getters.spec.ts +0 -51
  352. package/src/talkpilot/clients/__tests__/clients.lifecycle.spec.ts +0 -166
  353. package/src/talkpilot/clients/clients.constants.ts +0 -2
  354. package/src/talkpilot/clients/clients.lifecycle.ts +0 -116
  355. package/src/test-utils/factories/talkpilot/clients.ts +0 -21
  356. package/src/test-utils/factories/talkpilot/results.ts +0 -43
@@ -0,0 +1 @@
1
+ {"version":3,"file":"departmentsSubjects.setters.d.ts","sourceRoot":"","sources":["../../../src/municipal/departmentsSubjects/departmentsSubjects.setters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGhE;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,GACvC,YAAY,qBAAqB,CAAC,iBAAiB,CAAC,EAAE,EACtD,UAAU,gBAAgB,KACzB,OAAO,CAAC,eAAe,CAEzB,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.bulkWriteDepartmentsSubjects = void 0;
4
+ const departmentsSubjects_getters_1 = require("./departmentsSubjects.getters");
5
+ /**
6
+ * Generic batch write for the departmentsSubjects collection — a thin passthrough to the
7
+ * driver's bulkWrite, with no diffing/key-building/business logic. `operations` must be
8
+ * non-empty (the driver throws on an empty batch). Errors (including partial failures under
9
+ * `{ ordered: false }`) propagate unchanged, so callers can still catch `MongoBulkWriteError`.
10
+ */
11
+ const bulkWriteDepartmentsSubjects = async (operations, options) => {
12
+ return (0, departmentsSubjects_getters_1.getDepartmentsSubjectsCollection)().bulkWrite(operations, options);
13
+ };
14
+ exports.bulkWriteDepartmentsSubjects = bulkWriteDepartmentsSubjects;
15
+ //# sourceMappingURL=departmentsSubjects.setters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"departmentsSubjects.setters.js","sourceRoot":"","sources":["../../../src/municipal/departmentsSubjects/departmentsSubjects.setters.ts"],"names":[],"mappings":";;;AAEA,+EAAiF;AAEjF;;;;;GAKG;AACI,MAAM,4BAA4B,GAAG,KAAK,EAC/C,UAAsD,EACtD,OAA0B,EACA,EAAE;IAC5B,OAAO,IAAA,8DAAgC,GAAE,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAC3E,CAAC,CAAC;AALW,QAAA,4BAA4B,gCAKvC"}
@@ -0,0 +1,10 @@
1
+ import { AnyBulkWriteOperation, BulkWriteOptions, BulkWriteResult } from "mongodb";
2
+ import { Street } from "./streets.types";
3
+ /**
4
+ * Generic batch write for the streets collection — a thin passthrough to the driver's
5
+ * bulkWrite, with no diffing/key-building/business logic. `operations` must be non-empty
6
+ * (the driver throws on an empty batch). Errors (including partial failures under
7
+ * `{ ordered: false }`) propagate unchanged, so callers can still catch `MongoBulkWriteError`.
8
+ */
9
+ export declare const bulkWriteStreets: (operations: AnyBulkWriteOperation<Street>[], options?: BulkWriteOptions) => Promise<BulkWriteResult>;
10
+ //# sourceMappingURL=streets.setters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streets.setters.d.ts","sourceRoot":"","sources":["../../../src/municipal/streets/streets.setters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AACnF,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzC;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,YAAY,qBAAqB,CAAC,MAAM,CAAC,EAAE,EAC3C,UAAU,gBAAgB,KACzB,OAAO,CAAC,eAAe,CAEzB,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.bulkWriteStreets = void 0;
4
+ const streets_getters_1 = require("./streets.getters");
5
+ /**
6
+ * Generic batch write for the streets collection — a thin passthrough to the driver's
7
+ * bulkWrite, with no diffing/key-building/business logic. `operations` must be non-empty
8
+ * (the driver throws on an empty batch). Errors (including partial failures under
9
+ * `{ ordered: false }`) propagate unchanged, so callers can still catch `MongoBulkWriteError`.
10
+ */
11
+ const bulkWriteStreets = async (operations, options) => {
12
+ return (0, streets_getters_1.getStreetsCollection)().bulkWrite(operations, options);
13
+ };
14
+ exports.bulkWriteStreets = bulkWriteStreets;
15
+ //# sourceMappingURL=streets.setters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streets.setters.js","sourceRoot":"","sources":["../../../src/municipal/streets/streets.setters.ts"],"names":[],"mappings":";;;AAEA,uDAAyD;AAEzD;;;;;GAKG;AACI,MAAM,gBAAgB,GAAG,KAAK,EACnC,UAA2C,EAC3C,OAA0B,EACA,EAAE;IAC5B,OAAO,IAAA,sCAAoB,GAAE,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAC/D,CAAC,CAAC;AALW,QAAA,gBAAgB,oBAK3B"}
@@ -0,0 +1,5 @@
1
+ export * from "./reconcile.types";
2
+ export * from "./reconcile.ops";
3
+ export * from "./reconcile.diff";
4
+ export * from "./reconcile.execute";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/reconcile/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC"}
@@ -14,7 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./clientDeletionLogs.types"), exports);
18
- __exportStar(require("./clientDeletionLogs.getters"), exports);
19
- __exportStar(require("./clientDeletionLogs.setters"), exports);
17
+ __exportStar(require("./reconcile.types"), exports);
18
+ __exportStar(require("./reconcile.ops"), exports);
19
+ __exportStar(require("./reconcile.diff"), exports);
20
+ __exportStar(require("./reconcile.execute"), exports);
20
21
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reconcile/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,kDAAgC;AAChC,mDAAiC;AACjC,sDAAoC"}
@@ -0,0 +1,4 @@
1
+ import { Document } from "mongodb";
2
+ import { ReconcileConfig, ReconcileDiffResult } from "./reconcile.types";
3
+ export declare function computeReconcileDiff<TSource, TDb extends Document, TKey extends string | number>(config: ReconcileConfig<TSource, TDb, TKey>, now?: Date): ReconcileDiffResult<TDb>;
4
+ //# sourceMappingURL=reconcile.diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reconcile.diff.d.ts","sourceRoot":"","sources":["../../src/reconcile/reconcile.diff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEzE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,GAAG,SAAS,QAAQ,EAAE,IAAI,SAAS,MAAM,GAAG,MAAM,EAC9F,MAAM,EAAE,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAC3C,GAAG,GAAE,IAAiB,GACrB,mBAAmB,CAAC,GAAG,CAAC,CA8C1B"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.computeReconcileDiff = computeReconcileDiff;
4
+ function computeReconcileDiff(config, now = new Date()) {
5
+ const { source, dbRecords, getSourceKey, getDbKey, buildInsertOp, buildUpdateOp, buildDeactivateOp, shouldDeactivate = () => true, } = config;
6
+ const dbByKey = new Map(dbRecords.map((dbRecord) => [getDbKey(dbRecord), dbRecord]));
7
+ const sourceKeys = new Set();
8
+ const bulkOps = [];
9
+ const counts = { inserted: 0, updated: 0, deactivated: 0, exists: 0 };
10
+ for (const sourceRecord of source) {
11
+ const key = getSourceKey(sourceRecord);
12
+ sourceKeys.add(key);
13
+ const dbRecord = dbByKey.get(key);
14
+ if (!dbRecord) {
15
+ bulkOps.push(buildInsertOp(sourceRecord, now));
16
+ counts.inserted++;
17
+ continue;
18
+ }
19
+ const updateOp = buildUpdateOp(sourceRecord, dbRecord, now);
20
+ if (updateOp) {
21
+ bulkOps.push(updateOp);
22
+ counts.updated++;
23
+ }
24
+ else {
25
+ counts.exists++;
26
+ }
27
+ }
28
+ for (const dbRecord of dbRecords) {
29
+ if (!sourceKeys.has(getDbKey(dbRecord)) && shouldDeactivate(dbRecord)) {
30
+ bulkOps.push(buildDeactivateOp(dbRecord, now));
31
+ counts.deactivated++;
32
+ }
33
+ }
34
+ return { bulkOps, counts };
35
+ }
36
+ //# sourceMappingURL=reconcile.diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reconcile.diff.js","sourceRoot":"","sources":["../../src/reconcile/reconcile.diff.ts"],"names":[],"mappings":";;AAGA,oDAiDC;AAjDD,SAAgB,oBAAoB,CAClC,MAA2C,EAC3C,MAAY,IAAI,IAAI,EAAE;IAEtB,MAAM,EACJ,MAAM,EACN,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,gBAAgB,GAAG,GAAG,EAAE,CAAC,IAAI,GAC9B,GAAG,MAAM,CAAC;IAEX,MAAM,OAAO,GAAG,IAAI,GAAG,CAAY,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAChG,MAAM,UAAU,GAAG,IAAI,GAAG,EAAQ,CAAC;IAEnC,MAAM,OAAO,GAAwC,EAAE,CAAC;IACxD,MAAM,MAAM,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IAEtE,KAAK,MAAM,YAAY,IAAI,MAAM,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;QACvC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,QAAQ,EAAE,CAAC;YAClB,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,aAAa,CAAC,YAAY,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC5D,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvB,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtE,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { BulkWriteOptions, Collection, Document } from "mongodb";
2
+ import { BulkWriteOp } from "./reconcile.types";
3
+ export interface ExecuteReconcileBulkWriteResult {
4
+ errors: string[];
5
+ }
6
+ export declare function executeReconcileBulkWrite<TDb extends Document>(collection: Collection<TDb>, bulkOps: BulkWriteOp<TDb>[], options?: BulkWriteOptions): Promise<ExecuteReconcileBulkWriteResult>;
7
+ //# sourceMappingURL=reconcile.execute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reconcile.execute.d.ts","sourceRoot":"","sources":["../../src/reconcile/reconcile.execute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAuB,MAAM,SAAS,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,WAAW,+BAA+B;IAC9C,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,wBAAsB,yBAAyB,CAAC,GAAG,SAAS,QAAQ,EAClE,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,EAC3B,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,EAC3B,OAAO,GAAE,gBAAqC,GAC7C,OAAO,CAAC,+BAA+B,CAAC,CAa1C"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.executeReconcileBulkWrite = executeReconcileBulkWrite;
4
+ const mongodb_1 = require("mongodb");
5
+ async function executeReconcileBulkWrite(collection, bulkOps, options = { ordered: false }) {
6
+ if (bulkOps.length === 0)
7
+ return { errors: [] };
8
+ try {
9
+ await collection.bulkWrite(bulkOps, options);
10
+ return { errors: [] };
11
+ }
12
+ catch (err) {
13
+ if (err instanceof mongodb_1.MongoBulkWriteError) {
14
+ const writeErrors = [err.writeErrors].flat();
15
+ return { errors: writeErrors.map((writeError) => `Write error: ${writeError.errmsg}`) };
16
+ }
17
+ return { errors: [err instanceof Error ? err.message : String(err)] };
18
+ }
19
+ }
20
+ //# sourceMappingURL=reconcile.execute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reconcile.execute.js","sourceRoot":"","sources":["../../src/reconcile/reconcile.execute.ts"],"names":[],"mappings":";;AAOA,8DAiBC;AAxBD,qCAAsF;AAO/E,KAAK,UAAU,yBAAyB,CAC7C,UAA2B,EAC3B,OAA2B,EAC3B,UAA4B,EAAE,OAAO,EAAE,KAAK,EAAE;IAE9C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAEhD,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC7C,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACxB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,6BAAmB,EAAE,CAAC;YACvC,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7C,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,gBAAgB,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;QAC1F,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;IACxE,CAAC;AACH,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { Document, Filter } from "mongodb";
2
+ import { BulkWriteOp } from "./reconcile.types";
3
+ /**
4
+ * updateOne with a plain $set — e.g. a deactivation:
5
+ * buildSetOp({ _id }, { isActive: false, updatedAt: now })
6
+ */
7
+ export declare function buildSetOp<T extends Document>(filter: Filter<T>, setFields: Partial<T>): BulkWriteOp<T>;
8
+ /**
9
+ * updateOne with $set + $setOnInsert + upsert:true.
10
+ */
11
+ export declare function buildUpsertOp<T extends Document>(filter: Filter<T>, setFields: Partial<T>, setOnInsertFields?: Partial<T>): BulkWriteOp<T>;
12
+ //# sourceMappingURL=reconcile.ops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reconcile.ops.d.ts","sourceRoot":"","sources":["../../src/reconcile/reconcile.ops.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAEvG;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,QAAQ,EAC9C,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EACjB,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,EACrB,iBAAiB,GAAE,OAAO,CAAC,CAAC,CAAM,GACjC,WAAW,CAAC,CAAC,CAAC,CAQhB"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildSetOp = buildSetOp;
4
+ exports.buildUpsertOp = buildUpsertOp;
5
+ /**
6
+ * updateOne with a plain $set — e.g. a deactivation:
7
+ * buildSetOp({ _id }, { isActive: false, updatedAt: now })
8
+ */
9
+ function buildSetOp(filter, setFields) {
10
+ return { updateOne: { filter, update: { $set: setFields } } };
11
+ }
12
+ /**
13
+ * updateOne with $set + $setOnInsert + upsert:true.
14
+ */
15
+ function buildUpsertOp(filter, setFields, setOnInsertFields = {}) {
16
+ return {
17
+ updateOne: {
18
+ filter,
19
+ update: { $set: setFields, $setOnInsert: setOnInsertFields },
20
+ upsert: true,
21
+ },
22
+ };
23
+ }
24
+ //# sourceMappingURL=reconcile.ops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reconcile.ops.js","sourceRoot":"","sources":["../../src/reconcile/reconcile.ops.ts"],"names":[],"mappings":";;AAOA,gCAEC;AAKD,sCAYC;AAvBD;;;GAGG;AACH,SAAgB,UAAU,CAAqB,MAAiB,EAAE,SAAqB;IACrF,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;AAChE,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAC3B,MAAiB,EACjB,SAAqB,EACrB,oBAAgC,EAAE;IAElC,OAAO;QACL,SAAS,EAAE;YACT,MAAM;YACN,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,iBAAiB,EAAE;YAC5D,MAAM,EAAE,IAAI;SACb;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { AnyBulkWriteOperation, Document } from "mongodb";
2
+ export type BulkWriteOp<T extends Document> = AnyBulkWriteOperation<T>;
3
+ export interface ReconcileCounts {
4
+ inserted: number;
5
+ updated: number;
6
+ deactivated: number;
7
+ exists: number;
8
+ }
9
+ export interface ReconcileDiffResult<TDb extends Document> {
10
+ bulkOps: BulkWriteOp<TDb>[];
11
+ counts: ReconcileCounts;
12
+ }
13
+ export interface ReconcileConfig<TSource, TDb extends Document, TKey extends string | number> {
14
+ source: TSource[];
15
+ dbRecords: TDb[];
16
+ getSourceKey: (source: TSource) => TKey;
17
+ getDbKey: (dbRecord: TDb) => TKey;
18
+ buildInsertOp: (source: TSource, now: Date) => BulkWriteOp<TDb>;
19
+ /** Return null when unchanged — counted as `exists`, no op emitted. */
20
+ buildUpdateOp: (source: TSource, existing: TDb, now: Date) => BulkWriteOp<TDb> | null;
21
+ /**
22
+ * Called for every dbRecord missing from source (and passing shouldDeactivate).
23
+ * The caller decides the op shape entirely — typically via buildSetOp.
24
+ */
25
+ buildDeactivateOp: (dbRecord: TDb, now: Date) => BulkWriteOp<TDb>;
26
+ /**
27
+ * Whether a missing dbRecord should even be considered for deactivation.
28
+ * Defaults to always true — core-db has no opinion on what "already inactive" means.
29
+ */
30
+ shouldDeactivate?: (dbRecord: TDb) => boolean;
31
+ }
32
+ //# sourceMappingURL=reconcile.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reconcile.types.d.ts","sourceRoot":"","sources":["../../src/reconcile/reconcile.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE1D,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,QAAQ,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAEvE,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB,CAAC,GAAG,SAAS,QAAQ;IACvD,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;IAC5B,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,MAAM,WAAW,eAAe,CAAC,OAAO,EAAE,GAAG,SAAS,QAAQ,EAAE,IAAI,SAAS,MAAM,GAAG,MAAM;IAC1F,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,SAAS,EAAE,GAAG,EAAE,CAAC;IACjB,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,QAAQ,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI,CAAC;IAClC,aAAa,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,KAAK,WAAW,CAAC,GAAG,CAAC,CAAC;IAChE,uEAAuE;IACvE,aAAa,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,KAAK,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACtF;;;OAGG;IACH,iBAAiB,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,KAAK,WAAW,CAAC,GAAG,CAAC,CAAC;IAClE;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,OAAO,CAAC;CAC/C"}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=auditLogs.types.js.map
3
+ //# sourceMappingURL=reconcile.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reconcile.types.js","sourceRoot":"","sources":["../../src/reconcile/reconcile.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { CallTokenUsage, CallTokenUsageDoc } from "./callTokenUsage.types";
2
+ export declare const getCallTokenUsageCollection: () => import("mongodb").Collection<CallTokenUsageDoc>;
3
+ export declare const incrementCallTokenUsage: (callSid: string, { provider, model, ...counters }: CallTokenUsage) => Promise<void>;
4
+ //# sourceMappingURL=callTokenUsage.getters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callTokenUsage.getters.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/callTokenUsage/callTokenUsage.getters.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3E,eAAO,MAAM,2BAA2B,uDAEvC,CAAC;AAkBF,eAAO,MAAM,uBAAuB,GAClC,SAAS,MAAM,EACf,kCAAkC,cAAc,KAC/C,OAAO,CAAC,IAAI,CAcd,CAAC"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.incrementCallTokenUsage = exports.getCallTokenUsageCollection = void 0;
4
+ const index_1 = require("../index");
5
+ const getCallTokenUsageCollection = () => {
6
+ return (0, index_1.getDb)().collection("callTokenUsage");
7
+ };
8
+ exports.getCallTokenUsageCollection = getCallTokenUsageCollection;
9
+ // Unique callSid, so concurrent first reports of a call upsert one document, not several.
10
+ const callSidIndexByDb = new WeakMap();
11
+ const ensureCallSidIndex = () => {
12
+ const db = (0, index_1.getDb)();
13
+ let index = callSidIndexByDb.get(db);
14
+ if (!index) {
15
+ index = (0, exports.getCallTokenUsageCollection)().createIndex({ callSid: 1 }, { unique: true });
16
+ callSidIndexByDb.set(db, index);
17
+ }
18
+ return index;
19
+ };
20
+ const incrementCallTokenUsage = async (callSid, { provider, model, ...counters }) => {
21
+ await ensureCallSidIndex();
22
+ const now = new Date();
23
+ await (0, exports.getCallTokenUsageCollection)().updateOne({ callSid }, {
24
+ $inc: Object.fromEntries(Object.entries(counters).filter(([, value]) => (value ?? 0) > 0)),
25
+ $set: { provider, ...(model && { model }), updatedAt: now },
26
+ $setOnInsert: { createdAt: now },
27
+ }, { upsert: true });
28
+ };
29
+ exports.incrementCallTokenUsage = incrementCallTokenUsage;
30
+ //# sourceMappingURL=callTokenUsage.getters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callTokenUsage.getters.js","sourceRoot":"","sources":["../../../src/talkpilot/callTokenUsage/callTokenUsage.getters.ts"],"names":[],"mappings":";;;AACA,oCAAiC;AAG1B,MAAM,2BAA2B,GAAG,GAAG,EAAE;IAC9C,OAAO,IAAA,aAAK,GAAE,CAAC,UAAU,CAAoB,gBAAgB,CAAC,CAAC;AACjE,CAAC,CAAC;AAFW,QAAA,2BAA2B,+BAEtC;AAEF,0FAA0F;AAC1F,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAAuB,CAAC;AAE5D,MAAM,kBAAkB,GAAG,GAAoB,EAAE;IAC/C,MAAM,EAAE,GAAG,IAAA,aAAK,GAAE,CAAC;IACnB,IAAI,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,IAAA,mCAA2B,GAAE,CAAC,WAAW,CAC/C,EAAE,OAAO,EAAE,CAAC,EAAE,EACd,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAC;QACF,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEK,MAAM,uBAAuB,GAAG,KAAK,EAC1C,OAAe,EACf,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAkB,EACjC,EAAE;IACjB,MAAM,kBAAkB,EAAE,CAAC;IAC3B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,IAAA,mCAA2B,GAAE,CAAC,SAAS,CAC3C,EAAE,OAAO,EAAE,EACX;QACE,IAAI,EAAE,MAAM,CAAC,WAAW,CACtB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CACjE;QACD,IAAI,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE;QAC3D,YAAY,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE;KACE,EACpC,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAC;AACJ,CAAC,CAAC;AAjBW,QAAA,uBAAuB,2BAiBlC"}
@@ -0,0 +1,28 @@
1
+ export type CallTokenUsage = {
2
+ provider: string;
3
+ model?: string;
4
+ responsesCount?: number;
5
+ inputTokens?: number;
6
+ outputTokens?: number;
7
+ totalTokens?: number;
8
+ inputTextTokens?: number;
9
+ inputAudioTokens?: number;
10
+ inputImageTokens?: number;
11
+ cachedInputTokens?: number;
12
+ cachedInputTextTokens?: number;
13
+ cachedInputAudioTokens?: number;
14
+ cachedInputImageTokens?: number;
15
+ outputTextTokens?: number;
16
+ outputAudioTokens?: number;
17
+ thoughtsTokens?: number;
18
+ toolUseTokens?: number;
19
+ billableAudioSeconds?: number;
20
+ sessionSeconds?: number;
21
+ textInputsCount?: number;
22
+ };
23
+ export type CallTokenUsageDoc = CallTokenUsage & {
24
+ callSid: string;
25
+ createdAt: Date;
26
+ updatedAt: Date;
27
+ };
28
+ //# sourceMappingURL=callTokenUsage.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callTokenUsage.types.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/callTokenUsage/callTokenUsage.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,cAAc,GAAG;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB,CAAC"}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=clientDeletionLogs.types.js.map
3
+ //# sourceMappingURL=callTokenUsage.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callTokenUsage.types.js","sourceRoot":"","sources":["../../../src/talkpilot/callTokenUsage/callTokenUsage.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export * from "./callTokenUsage.getters";
2
+ export type * from "./callTokenUsage.types";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/callTokenUsage/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,mBAAmB,wBAAwB,CAAC"}
@@ -14,6 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./auditLogs.types"), exports);
18
- __exportStar(require("./auditLogs.getters"), exports);
17
+ __exportStar(require("./callTokenUsage.getters"), exports);
19
18
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/talkpilot/callTokenUsage/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC"}
@@ -6,12 +6,6 @@ export declare const CONFERENCE_ROLE_SUPERVISOR: "supervisor";
6
6
  export declare const IN_CALL_STATUSES: readonly ["in-progress", "answered"];
7
7
  /** Terminal Twilio call statuses — no further status callbacks expected. */
8
8
  export declare const FINAL_STATUSES: readonly ["no-answer", "completed", "busy", "failed", "canceled"];
9
- /** sessionId used for calls that arrived without an existing session (incoming calls). */
10
- export declare const INCOMING_SESSION_ID = "incomingCall";
11
- /** Twilio call statuses considered "currently active" for the live calls summary. */
12
- export declare const ACTIVE_STATUSES: string[];
13
- /** Lookback window for the "active calls right now" summary. */
14
- export declare const ACTIVE_CALLS_WINDOW_MS: number;
15
9
  /** Hours in a single day. */
16
10
  export declare const HOURS_PER_DAY = 24;
17
11
  /** Max execution time (ms) for calls statistics aggregations. */
@@ -37,7 +31,5 @@ export declare const CallStatusValues: {
37
31
  readonly Failed: "failed";
38
32
  readonly Canceled: "canceled";
39
33
  };
40
- export declare const ALL_CALL_STATUSES: ("failed" | "in-progress" | "answered" | "no-answer" | "completed" | "busy" | "canceled" | "initiated" | "ringing")[];
41
- /** All statuses shown in the breakdown tables — kept separate so CallStatusValues stays untouched. */
42
- export declare const ALL_STATUSES_FOR_BREAKDOWN: readonly [...("failed" | "in-progress" | "answered" | "no-answer" | "completed" | "busy" | "canceled" | "initiated" | "ringing")[], "queued"];
34
+ export declare const ALL_CALL_STATUSES: ("in-progress" | "answered" | "no-answer" | "completed" | "busy" | "failed" | "canceled" | "initiated" | "ringing")[];
43
35
  //# sourceMappingURL=calls.constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"calls.constants.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/calls/calls.constants.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,eAAO,MAAM,wBAAwB,EAAG,UAAmB,CAAC;AAE5D,gDAAgD;AAChD,eAAO,MAAM,0BAA0B,EAAG,YAAqB,CAAC;AAEhE,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,sCAAuC,CAAC;AAErE,4EAA4E;AAC5E,eAAO,MAAM,cAAc,mEAMjB,CAAC;AAEX,0FAA0F;AAC1F,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAElD,qFAAqF;AACrF,eAAO,MAAM,eAAe,UAAkB,CAAC;AAE/C,gEAAgE;AAChE,eAAO,MAAM,sBAAsB,QAAqB,CAAC;AAEzD,6BAA6B;AAC7B,eAAO,MAAM,aAAa,KAAK,CAAC;AAEhC,iEAAiE;AACjE,eAAO,MAAM,iBAAiB,QAAS,CAAC;AAExC;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAC/C,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAE9C,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAEhD,eAAO,MAAM,gBAAgB;;;;;;;;;;CAUnB,CAAC;AAEX,eAAO,MAAM,iBAAiB,uHAAkC,CAAC;AAEjE,sGAAsG;AACtG,eAAO,MAAM,0BAA0B,+IAA4C,CAAC"}
1
+ {"version":3,"file":"calls.constants.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/calls/calls.constants.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,eAAO,MAAM,wBAAwB,EAAG,UAAmB,CAAC;AAE5D,gDAAgD;AAChD,eAAO,MAAM,0BAA0B,EAAG,YAAqB,CAAC;AAEhE,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,sCAAuC,CAAC;AAErE,4EAA4E;AAC5E,eAAO,MAAM,cAAc,mEAMjB,CAAC;AAEX,6BAA6B;AAC7B,eAAO,MAAM,aAAa,KAAK,CAAC;AAEhC,iEAAiE;AACjE,eAAO,MAAM,iBAAiB,QAAS,CAAC;AAExC;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAC/C,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAE9C,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAEhD,eAAO,MAAM,gBAAgB;;;;;;;;;;CAUnB,CAAC;AAEX,eAAO,MAAM,iBAAiB,uHAAkC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ALL_STATUSES_FOR_BREAKDOWN = exports.ALL_CALL_STATUSES = exports.CallStatusValues = exports.TOOL_EXECUTIONS_DEFAULT_LIMIT = exports.TOOL_EXECUTIONS_DEFAULT_SKIP = exports.TREND_WEEK_BUCKET_MIN_MONTHS = exports.TREND_MONTH_BUCKET_MIN_MONTHS = exports.STATS_MAX_TIME_MS = exports.HOURS_PER_DAY = exports.ACTIVE_CALLS_WINDOW_MS = exports.ACTIVE_STATUSES = exports.INCOMING_SESSION_ID = exports.FINAL_STATUSES = exports.IN_CALL_STATUSES = exports.CONFERENCE_ROLE_SUPERVISOR = exports.CONFERENCE_ROLE_CUSTOMER = void 0;
3
+ exports.ALL_CALL_STATUSES = exports.CallStatusValues = exports.TOOL_EXECUTIONS_DEFAULT_LIMIT = exports.TOOL_EXECUTIONS_DEFAULT_SKIP = exports.TREND_WEEK_BUCKET_MIN_MONTHS = exports.TREND_MONTH_BUCKET_MIN_MONTHS = exports.STATS_MAX_TIME_MS = exports.HOURS_PER_DAY = exports.FINAL_STATUSES = exports.IN_CALL_STATUSES = exports.CONFERENCE_ROLE_SUPERVISOR = exports.CONFERENCE_ROLE_CUSTOMER = void 0;
4
4
  /** Customer role within a conference call. */
5
5
  exports.CONFERENCE_ROLE_CUSTOMER = "customer";
6
6
  /** Supervisor role within a conference call. */
@@ -15,12 +15,6 @@ exports.FINAL_STATUSES = [
15
15
  "failed",
16
16
  "canceled",
17
17
  ];
18
- /** sessionId used for calls that arrived without an existing session (incoming calls). */
19
- exports.INCOMING_SESSION_ID = "incomingCall";
20
- /** Twilio call statuses considered "currently active" for the live calls summary. */
21
- exports.ACTIVE_STATUSES = ["in-progress"];
22
- /** Lookback window for the "active calls right now" summary. */
23
- exports.ACTIVE_CALLS_WINDOW_MS = 2 * 60 * 60 * 1000;
24
18
  /** Hours in a single day. */
25
19
  exports.HOURS_PER_DAY = 24;
26
20
  /** Max execution time (ms) for calls statistics aggregations. */
@@ -47,6 +41,4 @@ exports.CallStatusValues = {
47
41
  Canceled: "canceled",
48
42
  };
49
43
  exports.ALL_CALL_STATUSES = Object.values(exports.CallStatusValues);
50
- /** All statuses shown in the breakdown tables — kept separate so CallStatusValues stays untouched. */
51
- exports.ALL_STATUSES_FOR_BREAKDOWN = [...exports.ALL_CALL_STATUSES, "queued"];
52
44
  //# sourceMappingURL=calls.constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"calls.constants.js","sourceRoot":"","sources":["../../../src/talkpilot/calls/calls.constants.ts"],"names":[],"mappings":";;;AAAA,8CAA8C;AACjC,QAAA,wBAAwB,GAAG,UAAmB,CAAC;AAE5D,gDAAgD;AACnC,QAAA,0BAA0B,GAAG,YAAqB,CAAC;AAEhE,wEAAwE;AAC3D,QAAA,gBAAgB,GAAG,CAAC,aAAa,EAAE,UAAU,CAAU,CAAC;AAErE,4EAA4E;AAC/D,QAAA,cAAc,GAAG;IAC5B,WAAW;IACX,WAAW;IACX,MAAM;IACN,QAAQ;IACR,UAAU;CACF,CAAC;AAEX,0FAA0F;AAC7E,QAAA,mBAAmB,GAAG,cAAc,CAAC;AAElD,qFAAqF;AACxE,QAAA,eAAe,GAAG,CAAC,aAAa,CAAC,CAAC;AAE/C,gEAAgE;AACnD,QAAA,sBAAsB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEzD,6BAA6B;AAChB,QAAA,aAAa,GAAG,EAAE,CAAC;AAEhC,iEAAiE;AACpD,QAAA,iBAAiB,GAAG,MAAM,CAAC;AAExC;;;;;GAKG;AACU,QAAA,6BAA6B,GAAG,CAAC,CAAC;AAClC,QAAA,4BAA4B,GAAG,CAAC,CAAC;AAEjC,QAAA,4BAA4B,GAAG,CAAC,CAAC;AACjC,QAAA,6BAA6B,GAAG,EAAE,CAAC;AAEnC,QAAA,gBAAgB,GAAG;IAC9B,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,aAAa;IACzB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,WAAW;IACrB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;CACZ,CAAC;AAEE,QAAA,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,wBAAgB,CAAC,CAAC;AAEjE,sGAAsG;AACzF,QAAA,0BAA0B,GAAG,CAAC,GAAG,yBAAiB,EAAE,QAAQ,CAAU,CAAC"}
1
+ {"version":3,"file":"calls.constants.js","sourceRoot":"","sources":["../../../src/talkpilot/calls/calls.constants.ts"],"names":[],"mappings":";;;AAAA,8CAA8C;AACjC,QAAA,wBAAwB,GAAG,UAAmB,CAAC;AAE5D,gDAAgD;AACnC,QAAA,0BAA0B,GAAG,YAAqB,CAAC;AAEhE,wEAAwE;AAC3D,QAAA,gBAAgB,GAAG,CAAC,aAAa,EAAE,UAAU,CAAU,CAAC;AAErE,4EAA4E;AAC/D,QAAA,cAAc,GAAG;IAC5B,WAAW;IACX,WAAW;IACX,MAAM;IACN,QAAQ;IACR,UAAU;CACF,CAAC;AAEX,6BAA6B;AAChB,QAAA,aAAa,GAAG,EAAE,CAAC;AAEhC,iEAAiE;AACpD,QAAA,iBAAiB,GAAG,MAAM,CAAC;AAExC;;;;;GAKG;AACU,QAAA,6BAA6B,GAAG,CAAC,CAAC;AAClC,QAAA,4BAA4B,GAAG,CAAC,CAAC;AAEjC,QAAA,4BAA4B,GAAG,CAAC,CAAC;AACjC,QAAA,6BAA6B,GAAG,EAAE,CAAC;AAEnC,QAAA,gBAAgB,GAAG;IAC9B,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,aAAa;IACzB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,WAAW;IACrB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;CACZ,CAAC;AAEE,QAAA,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,wBAAgB,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { Call, CallDoc, CallQueryOptions, CallUpdateParams } from "../index";
2
- import type { CountOpts, DateRange, ToolExecution, CallStatus, ActiveCallsSummary, TodayCallsSummary, ClientCallStats, SessionCallStats, StatsDateRangeParams } from "./calls.types";
2
+ import type { CountOpts, DateRange, ToolExecution, CallStatus } from "./calls.types";
3
3
  import { Filter, ObjectId } from "mongodb";
4
4
  import { DashboardHeatmapMetric } from "./dashboard/calls.dashboard.types";
5
5
  export declare const getCallsCollection: () => import("mongodb").Collection<Call>;
@@ -40,10 +40,4 @@ export declare function getCallsStatsForDateRange(clientId: string, startStr: st
40
40
  * Aggregate calls by hour for a given date (createdAt converted to given timezone). Hour format "HH:mm".
41
41
  */
42
42
  export declare function getCallsHourlyAggregation(clientId: string, dateStr: string, timezone: string): Promise<DashboardHeatmapMetric[]>;
43
- export declare const aggregateActiveCallsSummary: (clientId?: string) => Promise<ActiveCallsSummary>;
44
- export declare const aggregateTodayCallsSummary: ({ dateFrom, dateTo, clientId, timezone, }: StatsDateRangeParams) => Promise<TodayCallsSummary>;
45
- export declare const aggregateClientCallStats: ({ dateFrom, dateTo, clientId, timezone, }: StatsDateRangeParams) => Promise<ClientCallStats[]>;
46
- export declare const aggregateSessionCallStats: ({ dateFrom, dateTo, clientId, timezone, }: StatsDateRangeParams) => Promise<SessionCallStats[]>;
47
- export declare const getAllClientsLastCallDate: () => Promise<Map<string, Date>>;
48
- export declare const findClientIdsByCallSids: (callSids: string[]) => Promise<Map<string, string>>;
49
43
  //# sourceMappingURL=calls.getters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"calls.getters.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/calls/calls.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,OAAO,EACP,gBAAgB,EAChB,gBAAgB,EAEjB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EACT,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,eAAe,CAAC;AASvB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAG3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAO3E,eAAO,MAAM,kBAAkB,0CAE9B,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,SAAS,MAAM,mDAE/C,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,aAAa,MAAM,8CAIxD,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,UAAU,MAAM,8CAEhD,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,QAAQ,QAAQ,8CAE9C,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,MAAM,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW,GAAG,KAAK,CAAC,qDAQpD,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,SAAS,MAAM,EACf,SAAS,gBAAgB,KACxB,OAAO,CAAC,OAAO,GAAG,IAAI,CAWxB,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,SAAS,MAAM,EACf,OAAO,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,KACtE,OAAO,CAAC,aAAa,EAAE,CAUzB,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,SAAS,MAAM,EACf,QAAQ,UAAU,KACjB,OAAO,CAAC,OAAO,GAAG,IAAI,CAKtB,CAAC;AAEJ,eAAO,MAAM,iBAAiB,GAC5B,SAAS,MAAM,EACf,WAAW,aAAa,KACvB,OAAO,CAAC,IAAI,CAKd,CAAC;AAIF,eAAO,MAAM,4BAA4B,GACvC,UAAU,MAAM,EAChB,WAAW,IAAI,EACf,SAAS,IAAI,8CAWd,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,EACnB,UAAU,gBAAgB,KACzB,OAAO,CAAC,OAAO,EAAE,CAGnB,CAAC;AAEF,eAAO,MAAM,UAAU,GAAU,OAAO,MAAM,CAAC,IAAI,CAAC,KAAG,OAAO,CAAC,MAAM,CAEpE,CAAC;AAEF,wBAAsB,wBAAwB,CAC5C,mBAAmB,EAAE,MAAM,EAC3B,IAAI,GAAE,SAAc,EACpB,KAAK,GAAE,SAAc,GACpB,OAAO,CAAC,MAAM,CAAC,CAoBjB;AAED,eAAO,MAAM,KAAK;qBACC,IAAI,SAAS,IAAI,KAAG,SAAS;sBAC9B,SAAS;qBACV,SAAS;qBAKT,SAAS;yBAKH,IAAI,KAAG,SAAS;CAItC,CAAC;AAEF,wBAAgB,UAAU,CAAC,CAAC,GAAE,IAAiB,GAAG,IAAI,CAIrD;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAInD;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CA2CjE;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,sBAAsB,EAAE,CAAC,CA2BnC;AAoCD,eAAO,MAAM,2BAA2B,GACtC,WAAW,MAAM,KAChB,OAAO,CAAC,kBAAkB,CA0C5B,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAU,2CAK9C,oBAAoB,KAAG,OAAO,CAAC,iBAAiB,CAmDlD,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAU,2CAK5C,oBAAoB,KAAG,OAAO,CAAC,eAAe,EAAE,CAkClD,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAU,2CAK7C,oBAAoB,KAAG,OAAO,CAAC,gBAAgB,EAAE,CAuCnD,CAAC;AAEF,eAAO,MAAM,yBAAyB,QAAa,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAQ3E,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,UAAU,MAAM,EAAE,KACjB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAW7B,CAAC"}
1
+ {"version":3,"file":"calls.getters.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/calls/calls.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,OAAO,EACP,gBAAgB,EAChB,gBAAgB,EAEjB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAKrF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAG3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAE3E,eAAO,MAAM,kBAAkB,0CAE9B,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,SAAS,MAAM,mDAE/C,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,aAAa,MAAM,8CAIxD,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,UAAU,MAAM,8CAEhD,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,QAAQ,QAAQ,8CAE9C,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,MAAM,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW,GAAG,KAAK,CAAC,qDAQpD,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,SAAS,MAAM,EACf,SAAS,gBAAgB,KACxB,OAAO,CAAC,OAAO,GAAG,IAAI,CAWxB,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,SAAS,MAAM,EACf,OAAO,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,KACtE,OAAO,CAAC,aAAa,EAAE,CAUzB,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,SAAS,MAAM,EACf,QAAQ,UAAU,KACjB,OAAO,CAAC,OAAO,GAAG,IAAI,CAKtB,CAAC;AAEJ,eAAO,MAAM,iBAAiB,GAC5B,SAAS,MAAM,EACf,WAAW,aAAa,KACvB,OAAO,CAAC,IAAI,CAKd,CAAC;AAIF,eAAO,MAAM,4BAA4B,GACvC,UAAU,MAAM,EAChB,WAAW,IAAI,EACf,SAAS,IAAI,8CAWd,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,EACnB,UAAU,gBAAgB,KACzB,OAAO,CAAC,OAAO,EAAE,CAGnB,CAAC;AAEF,eAAO,MAAM,UAAU,GAAU,OAAO,MAAM,CAAC,IAAI,CAAC,KAAG,OAAO,CAAC,MAAM,CAEpE,CAAC;AAEF,wBAAsB,wBAAwB,CAC5C,mBAAmB,EAAE,MAAM,EAC3B,IAAI,GAAE,SAAc,EACpB,KAAK,GAAE,SAAc,GACpB,OAAO,CAAC,MAAM,CAAC,CAoBjB;AAED,eAAO,MAAM,KAAK;qBACC,IAAI,SAAS,IAAI,KAAG,SAAS;sBAC9B,SAAS;qBACV,SAAS;qBAKT,SAAS;yBAKH,IAAI,KAAG,SAAS;CAItC,CAAC;AAEF,wBAAgB,UAAU,CAAC,CAAC,GAAE,IAAiB,GAAG,IAAI,CAIrD;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAInD;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CA2CjE;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,sBAAsB,EAAE,CAAC,CA2BnC"}