@talkpilot/core-db 1.3.64 → 1.3.66

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 (132) hide show
  1. package/README.md +863 -816
  2. package/dist/talkpilot/auditLogs/auditLogs.getters.d.ts +8 -0
  3. package/dist/talkpilot/auditLogs/auditLogs.getters.d.ts.map +1 -0
  4. package/dist/talkpilot/auditLogs/auditLogs.getters.js +26 -0
  5. package/dist/talkpilot/auditLogs/auditLogs.getters.js.map +1 -0
  6. package/dist/talkpilot/auditLogs/auditLogs.setters.d.ts +3 -0
  7. package/dist/talkpilot/auditLogs/auditLogs.setters.d.ts.map +1 -0
  8. package/dist/talkpilot/auditLogs/auditLogs.setters.js +9 -0
  9. package/dist/talkpilot/auditLogs/auditLogs.setters.js.map +1 -0
  10. package/dist/talkpilot/auditLogs/auditLogs.types.d.ts +11 -0
  11. package/dist/talkpilot/auditLogs/auditLogs.types.d.ts.map +1 -0
  12. package/dist/talkpilot/{callTokenUsage/callTokenUsage.types.js → auditLogs/auditLogs.types.js} +1 -1
  13. package/dist/talkpilot/auditLogs/auditLogs.types.js.map +1 -0
  14. package/dist/talkpilot/auditLogs/index.d.ts +3 -0
  15. package/dist/talkpilot/auditLogs/index.d.ts.map +1 -0
  16. package/dist/talkpilot/{callTokenUsage → auditLogs}/index.js +2 -1
  17. package/dist/talkpilot/auditLogs/index.js.map +1 -0
  18. package/dist/talkpilot/calls/calls.constants.d.ts +9 -1
  19. package/dist/talkpilot/calls/calls.constants.d.ts.map +1 -1
  20. package/dist/talkpilot/calls/calls.constants.js +9 -1
  21. package/dist/talkpilot/calls/calls.constants.js.map +1 -1
  22. package/dist/talkpilot/calls/calls.getters.d.ts +7 -1
  23. package/dist/talkpilot/calls/calls.getters.d.ts.map +1 -1
  24. package/dist/talkpilot/calls/calls.getters.js +181 -1
  25. package/dist/talkpilot/calls/calls.getters.js.map +1 -1
  26. package/dist/talkpilot/calls/calls.types.d.ts +35 -0
  27. package/dist/talkpilot/calls/calls.types.d.ts.map +1 -1
  28. package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.getters.d.ts +4 -0
  29. package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.getters.d.ts.map +1 -0
  30. package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.getters.js +9 -0
  31. package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.getters.js.map +1 -0
  32. package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.setters.d.ts +3 -0
  33. package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.setters.d.ts.map +1 -0
  34. package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.setters.js +9 -0
  35. package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.setters.js.map +1 -0
  36. package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.types.d.ts +10 -0
  37. package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.types.d.ts.map +1 -0
  38. package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.types.js +3 -0
  39. package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.types.js.map +1 -0
  40. package/dist/talkpilot/clientDeletionLogs/index.d.ts +4 -0
  41. package/dist/talkpilot/clientDeletionLogs/index.d.ts.map +1 -0
  42. package/dist/talkpilot/clientDeletionLogs/index.js +20 -0
  43. package/dist/talkpilot/clientDeletionLogs/index.js.map +1 -0
  44. package/dist/talkpilot/clients/clients.constants.d.ts +3 -0
  45. package/dist/talkpilot/clients/clients.constants.d.ts.map +1 -0
  46. package/dist/talkpilot/clients/clients.constants.js +6 -0
  47. package/dist/talkpilot/clients/clients.constants.js.map +1 -0
  48. package/dist/talkpilot/clients/clients.getters.d.ts +2 -0
  49. package/dist/talkpilot/clients/clients.getters.d.ts.map +1 -1
  50. package/dist/talkpilot/clients/clients.getters.js +15 -1
  51. package/dist/talkpilot/clients/clients.getters.js.map +1 -1
  52. package/dist/talkpilot/clients/clients.lifecycle.d.ts +10 -0
  53. package/dist/talkpilot/clients/clients.lifecycle.d.ts.map +1 -0
  54. package/dist/talkpilot/clients/clients.lifecycle.js +95 -0
  55. package/dist/talkpilot/clients/clients.lifecycle.js.map +1 -0
  56. package/dist/talkpilot/clients/clients.types.d.ts +21 -0
  57. package/dist/talkpilot/clients/clients.types.d.ts.map +1 -1
  58. package/dist/talkpilot/clients/index.d.ts +2 -0
  59. package/dist/talkpilot/clients/index.d.ts.map +1 -1
  60. package/dist/talkpilot/clients/index.js +2 -0
  61. package/dist/talkpilot/clients/index.js.map +1 -1
  62. package/dist/talkpilot/index.d.ts +1 -1
  63. package/dist/talkpilot/index.d.ts.map +1 -1
  64. package/dist/talkpilot/index.js +1 -1
  65. package/dist/talkpilot/index.js.map +1 -1
  66. package/dist/talkpilot/phone_numbers/phone_numbers.getter.d.ts +9 -1
  67. package/dist/talkpilot/phone_numbers/phone_numbers.getter.d.ts.map +1 -1
  68. package/dist/talkpilot/phone_numbers/phone_numbers.getter.js +66 -1
  69. package/dist/talkpilot/phone_numbers/phone_numbers.getter.js.map +1 -1
  70. package/dist/talkpilot/phone_numbers/phone_numbers.types.d.ts +5 -0
  71. package/dist/talkpilot/phone_numbers/phone_numbers.types.d.ts.map +1 -1
  72. package/dist/talkpilot/results/results.constants.d.ts +4 -0
  73. package/dist/talkpilot/results/results.constants.d.ts.map +1 -0
  74. package/dist/talkpilot/results/results.constants.js +10 -0
  75. package/dist/talkpilot/results/results.constants.js.map +1 -0
  76. package/dist/talkpilot/results/results.statistics.getters.d.ts +12 -0
  77. package/dist/talkpilot/results/results.statistics.getters.d.ts.map +1 -0
  78. package/dist/talkpilot/results/results.statistics.getters.js +258 -0
  79. package/dist/talkpilot/results/results.statistics.getters.js.map +1 -0
  80. package/dist/talkpilot/results/results.statistics.types.d.ts +22 -0
  81. package/dist/talkpilot/results/results.statistics.types.d.ts.map +1 -0
  82. package/dist/talkpilot/results/results.statistics.types.js +3 -0
  83. package/dist/talkpilot/results/results.statistics.types.js.map +1 -0
  84. package/dist/test-utils/factories/index.d.ts +2 -0
  85. package/dist/test-utils/factories/index.d.ts.map +1 -1
  86. package/dist/test-utils/factories/index.js +2 -0
  87. package/dist/test-utils/factories/index.js.map +1 -1
  88. package/dist/test-utils/factories/talkpilot/clients.d.ts +14 -0
  89. package/dist/test-utils/factories/talkpilot/clients.d.ts.map +1 -0
  90. package/dist/test-utils/factories/talkpilot/clients.js +19 -0
  91. package/dist/test-utils/factories/talkpilot/clients.js.map +1 -0
  92. package/dist/test-utils/factories/talkpilot/results.d.ts +16 -0
  93. package/dist/test-utils/factories/talkpilot/results.d.ts.map +1 -0
  94. package/dist/test-utils/factories/talkpilot/results.js +40 -0
  95. package/dist/test-utils/factories/talkpilot/results.js.map +1 -0
  96. package/package.json +1 -1
  97. package/src/talkpilot/auditLogs/__tests__/auditLogs.spec.ts +91 -0
  98. package/src/talkpilot/auditLogs/auditLogs.getters.ts +26 -0
  99. package/src/talkpilot/auditLogs/auditLogs.types.ts +12 -0
  100. package/src/talkpilot/auditLogs/index.ts +2 -0
  101. package/src/talkpilot/calls/__tests__/calls.statistics.getters.spec.ts +374 -0
  102. package/src/talkpilot/calls/calls.constants.ts +12 -0
  103. package/src/talkpilot/calls/calls.getters.ts +546 -277
  104. package/src/talkpilot/calls/calls.types.ts +189 -149
  105. package/src/talkpilot/clients/__tests__/clients.getters.spec.ts +51 -0
  106. package/src/talkpilot/clients/__tests__/clients.lifecycle.spec.ts +166 -0
  107. package/src/talkpilot/clients/clients.constants.ts +2 -0
  108. package/src/talkpilot/clients/clients.getters.ts +13 -0
  109. package/src/talkpilot/clients/clients.lifecycle.ts +116 -0
  110. package/src/talkpilot/clients/clients.types.ts +19 -0
  111. package/src/talkpilot/clients/index.ts +2 -0
  112. package/src/talkpilot/index.ts +1 -1
  113. package/src/talkpilot/phone_numbers/__tests__/phone_numbers.spec.ts +257 -13
  114. package/src/talkpilot/phone_numbers/phone_numbers.getter.ts +85 -1
  115. package/src/talkpilot/phone_numbers/phone_numbers.types.ts +6 -0
  116. package/src/test-utils/factories/index.ts +2 -0
  117. package/src/test-utils/factories/talkpilot/clients.ts +21 -0
  118. package/src/test-utils/factories/talkpilot/results.ts +43 -0
  119. package/dist/talkpilot/callTokenUsage/callTokenUsage.getters.d.ts +0 -4
  120. package/dist/talkpilot/callTokenUsage/callTokenUsage.getters.d.ts.map +0 -1
  121. package/dist/talkpilot/callTokenUsage/callTokenUsage.getters.js +0 -30
  122. package/dist/talkpilot/callTokenUsage/callTokenUsage.getters.js.map +0 -1
  123. package/dist/talkpilot/callTokenUsage/callTokenUsage.types.d.ts +0 -28
  124. package/dist/talkpilot/callTokenUsage/callTokenUsage.types.d.ts.map +0 -1
  125. package/dist/talkpilot/callTokenUsage/callTokenUsage.types.js.map +0 -1
  126. package/dist/talkpilot/callTokenUsage/index.d.ts +0 -3
  127. package/dist/talkpilot/callTokenUsage/index.d.ts.map +0 -1
  128. package/dist/talkpilot/callTokenUsage/index.js.map +0 -1
  129. package/src/talkpilot/callTokenUsage/__tests__/callTokenUsage.getters.spec.ts +0 -57
  130. package/src/talkpilot/callTokenUsage/callTokenUsage.getters.ts +0 -42
  131. package/src/talkpilot/callTokenUsage/callTokenUsage.types.ts +0 -28
  132. package/src/talkpilot/callTokenUsage/index.ts +0 -2
@@ -1,28 +0,0 @@
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
@@ -1 +0,0 @@
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 +0,0 @@
1
- {"version":3,"file":"callTokenUsage.types.js","sourceRoot":"","sources":["../../../src/talkpilot/callTokenUsage/callTokenUsage.types.ts"],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- export * from "./callTokenUsage.getters";
2
- export type * from "./callTokenUsage.types";
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/callTokenUsage/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,mBAAmB,wBAAwB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/talkpilot/callTokenUsage/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC"}
@@ -1,57 +0,0 @@
1
- import {
2
- getCallTokenUsageCollection,
3
- incrementCallTokenUsage,
4
- } from "../callTokenUsage.getters";
5
-
6
- describe("callTokenUsage getters", () => {
7
- it("should add each report to the call totals and keep provider and model", async () => {
8
- await incrementCallTokenUsage("CA-usage-1", {
9
- provider: "openai",
10
- model: "gpt-realtime",
11
- inputTokens: 10,
12
- });
13
- await incrementCallTokenUsage("CA-usage-1", {
14
- provider: "openai",
15
- inputTokens: 5,
16
- });
17
-
18
- const usage = await getCallTokenUsageCollection().findOne({
19
- callSid: "CA-usage-1",
20
- });
21
- expect(usage).toMatchObject({
22
- provider: "openai",
23
- model: "gpt-realtime",
24
- inputTokens: 15,
25
- });
26
- });
27
-
28
- it("should create a single document when first reports arrive together", async () => {
29
- await Promise.all(
30
- Array.from({ length: 10 }, () =>
31
- incrementCallTokenUsage("CA-usage-2", {
32
- provider: "xai",
33
- textInputsCount: 1,
34
- }),
35
- ),
36
- );
37
-
38
- const docs = await getCallTokenUsageCollection()
39
- .find({ callSid: "CA-usage-2" })
40
- .toArray();
41
- expect(docs).toHaveLength(1);
42
- expect(docs[0].textInputsCount).toBe(10);
43
- });
44
-
45
- it("should not write zero counters", async () => {
46
- await incrementCallTokenUsage("CA-usage-3", {
47
- provider: "gemini",
48
- inputTokens: 3,
49
- outputTokens: 0,
50
- });
51
-
52
- const usage = await getCallTokenUsageCollection().findOne({
53
- callSid: "CA-usage-3",
54
- });
55
- expect(usage).not.toHaveProperty("outputTokens");
56
- });
57
- });
@@ -1,42 +0,0 @@
1
- import { Db, UpdateFilter } from "mongodb";
2
- import { getDb } from "../index";
3
- import { CallTokenUsage, CallTokenUsageDoc } from "./callTokenUsage.types";
4
-
5
- export const getCallTokenUsageCollection = () => {
6
- return getDb().collection<CallTokenUsageDoc>("callTokenUsage");
7
- };
8
-
9
- // Unique callSid, so concurrent first reports of a call upsert one document, not several.
10
- const callSidIndexByDb = new WeakMap<Db, Promise<string>>();
11
-
12
- const ensureCallSidIndex = (): Promise<string> => {
13
- const db = getDb();
14
- let index = callSidIndexByDb.get(db);
15
- if (!index) {
16
- index = getCallTokenUsageCollection().createIndex(
17
- { callSid: 1 },
18
- { unique: true },
19
- );
20
- callSidIndexByDb.set(db, index);
21
- }
22
- return index;
23
- };
24
-
25
- export const incrementCallTokenUsage = async (
26
- callSid: string,
27
- { provider, model, ...counters }: CallTokenUsage,
28
- ): Promise<void> => {
29
- await ensureCallSidIndex();
30
- const now = new Date();
31
- await getCallTokenUsageCollection().updateOne(
32
- { callSid },
33
- {
34
- $inc: Object.fromEntries(
35
- Object.entries(counters).filter(([, value]) => (value ?? 0) > 0),
36
- ),
37
- $set: { provider, ...(model && { model }), updatedAt: now },
38
- $setOnInsert: { createdAt: now },
39
- } as UpdateFilter<CallTokenUsageDoc>,
40
- { upsert: true },
41
- );
42
- };
@@ -1,28 +0,0 @@
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
-
24
- export type CallTokenUsageDoc = CallTokenUsage & {
25
- callSid: string;
26
- createdAt: Date;
27
- updatedAt: Date;
28
- };
@@ -1,2 +0,0 @@
1
- export * from "./callTokenUsage.getters";
2
- export type * from "./callTokenUsage.types";