@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.
- package/README.md +863 -816
- package/dist/talkpilot/auditLogs/auditLogs.getters.d.ts +8 -0
- package/dist/talkpilot/auditLogs/auditLogs.getters.d.ts.map +1 -0
- package/dist/talkpilot/auditLogs/auditLogs.getters.js +26 -0
- package/dist/talkpilot/auditLogs/auditLogs.getters.js.map +1 -0
- package/dist/talkpilot/auditLogs/auditLogs.setters.d.ts +3 -0
- package/dist/talkpilot/auditLogs/auditLogs.setters.d.ts.map +1 -0
- package/dist/talkpilot/auditLogs/auditLogs.setters.js +9 -0
- package/dist/talkpilot/auditLogs/auditLogs.setters.js.map +1 -0
- package/dist/talkpilot/auditLogs/auditLogs.types.d.ts +11 -0
- package/dist/talkpilot/auditLogs/auditLogs.types.d.ts.map +1 -0
- package/dist/talkpilot/{callTokenUsage/callTokenUsage.types.js → auditLogs/auditLogs.types.js} +1 -1
- package/dist/talkpilot/auditLogs/auditLogs.types.js.map +1 -0
- package/dist/talkpilot/auditLogs/index.d.ts +3 -0
- package/dist/talkpilot/auditLogs/index.d.ts.map +1 -0
- package/dist/talkpilot/{callTokenUsage → auditLogs}/index.js +2 -1
- package/dist/talkpilot/auditLogs/index.js.map +1 -0
- package/dist/talkpilot/calls/calls.constants.d.ts +9 -1
- package/dist/talkpilot/calls/calls.constants.d.ts.map +1 -1
- package/dist/talkpilot/calls/calls.constants.js +9 -1
- package/dist/talkpilot/calls/calls.constants.js.map +1 -1
- package/dist/talkpilot/calls/calls.getters.d.ts +7 -1
- package/dist/talkpilot/calls/calls.getters.d.ts.map +1 -1
- package/dist/talkpilot/calls/calls.getters.js +181 -1
- package/dist/talkpilot/calls/calls.getters.js.map +1 -1
- package/dist/talkpilot/calls/calls.types.d.ts +35 -0
- package/dist/talkpilot/calls/calls.types.d.ts.map +1 -1
- package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.getters.d.ts +4 -0
- package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.getters.d.ts.map +1 -0
- package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.getters.js +9 -0
- package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.getters.js.map +1 -0
- package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.setters.d.ts +3 -0
- package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.setters.d.ts.map +1 -0
- package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.setters.js +9 -0
- package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.setters.js.map +1 -0
- package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.types.d.ts +10 -0
- package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.types.d.ts.map +1 -0
- package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.types.js +3 -0
- package/dist/talkpilot/clientDeletionLogs/clientDeletionLogs.types.js.map +1 -0
- package/dist/talkpilot/clientDeletionLogs/index.d.ts +4 -0
- package/dist/talkpilot/clientDeletionLogs/index.d.ts.map +1 -0
- package/dist/talkpilot/clientDeletionLogs/index.js +20 -0
- package/dist/talkpilot/clientDeletionLogs/index.js.map +1 -0
- package/dist/talkpilot/clients/clients.constants.d.ts +3 -0
- package/dist/talkpilot/clients/clients.constants.d.ts.map +1 -0
- package/dist/talkpilot/clients/clients.constants.js +6 -0
- package/dist/talkpilot/clients/clients.constants.js.map +1 -0
- package/dist/talkpilot/clients/clients.getters.d.ts +2 -0
- package/dist/talkpilot/clients/clients.getters.d.ts.map +1 -1
- package/dist/talkpilot/clients/clients.getters.js +15 -1
- package/dist/talkpilot/clients/clients.getters.js.map +1 -1
- package/dist/talkpilot/clients/clients.lifecycle.d.ts +10 -0
- package/dist/talkpilot/clients/clients.lifecycle.d.ts.map +1 -0
- package/dist/talkpilot/clients/clients.lifecycle.js +95 -0
- package/dist/talkpilot/clients/clients.lifecycle.js.map +1 -0
- package/dist/talkpilot/clients/clients.types.d.ts +21 -0
- package/dist/talkpilot/clients/clients.types.d.ts.map +1 -1
- package/dist/talkpilot/clients/index.d.ts +2 -0
- package/dist/talkpilot/clients/index.d.ts.map +1 -1
- package/dist/talkpilot/clients/index.js +2 -0
- package/dist/talkpilot/clients/index.js.map +1 -1
- package/dist/talkpilot/index.d.ts +1 -1
- package/dist/talkpilot/index.d.ts.map +1 -1
- package/dist/talkpilot/index.js +1 -1
- package/dist/talkpilot/index.js.map +1 -1
- package/dist/talkpilot/phone_numbers/phone_numbers.getter.d.ts +9 -1
- package/dist/talkpilot/phone_numbers/phone_numbers.getter.d.ts.map +1 -1
- package/dist/talkpilot/phone_numbers/phone_numbers.getter.js +66 -1
- package/dist/talkpilot/phone_numbers/phone_numbers.getter.js.map +1 -1
- package/dist/talkpilot/phone_numbers/phone_numbers.types.d.ts +5 -0
- package/dist/talkpilot/phone_numbers/phone_numbers.types.d.ts.map +1 -1
- package/dist/talkpilot/results/results.constants.d.ts +4 -0
- package/dist/talkpilot/results/results.constants.d.ts.map +1 -0
- package/dist/talkpilot/results/results.constants.js +10 -0
- package/dist/talkpilot/results/results.constants.js.map +1 -0
- package/dist/talkpilot/results/results.statistics.getters.d.ts +12 -0
- package/dist/talkpilot/results/results.statistics.getters.d.ts.map +1 -0
- package/dist/talkpilot/results/results.statistics.getters.js +258 -0
- package/dist/talkpilot/results/results.statistics.getters.js.map +1 -0
- package/dist/talkpilot/results/results.statistics.types.d.ts +22 -0
- package/dist/talkpilot/results/results.statistics.types.d.ts.map +1 -0
- package/dist/talkpilot/results/results.statistics.types.js +3 -0
- package/dist/talkpilot/results/results.statistics.types.js.map +1 -0
- package/dist/test-utils/factories/index.d.ts +2 -0
- package/dist/test-utils/factories/index.d.ts.map +1 -1
- package/dist/test-utils/factories/index.js +2 -0
- package/dist/test-utils/factories/index.js.map +1 -1
- package/dist/test-utils/factories/talkpilot/clients.d.ts +14 -0
- package/dist/test-utils/factories/talkpilot/clients.d.ts.map +1 -0
- package/dist/test-utils/factories/talkpilot/clients.js +19 -0
- package/dist/test-utils/factories/talkpilot/clients.js.map +1 -0
- package/dist/test-utils/factories/talkpilot/results.d.ts +16 -0
- package/dist/test-utils/factories/talkpilot/results.d.ts.map +1 -0
- package/dist/test-utils/factories/talkpilot/results.js +40 -0
- package/dist/test-utils/factories/talkpilot/results.js.map +1 -0
- package/package.json +1 -1
- package/src/talkpilot/auditLogs/__tests__/auditLogs.spec.ts +91 -0
- package/src/talkpilot/auditLogs/auditLogs.getters.ts +26 -0
- package/src/talkpilot/auditLogs/auditLogs.types.ts +12 -0
- package/src/talkpilot/auditLogs/index.ts +2 -0
- package/src/talkpilot/calls/__tests__/calls.statistics.getters.spec.ts +374 -0
- package/src/talkpilot/calls/calls.constants.ts +12 -0
- package/src/talkpilot/calls/calls.getters.ts +546 -277
- package/src/talkpilot/calls/calls.types.ts +189 -149
- package/src/talkpilot/clients/__tests__/clients.getters.spec.ts +51 -0
- package/src/talkpilot/clients/__tests__/clients.lifecycle.spec.ts +166 -0
- package/src/talkpilot/clients/clients.constants.ts +2 -0
- package/src/talkpilot/clients/clients.getters.ts +13 -0
- package/src/talkpilot/clients/clients.lifecycle.ts +116 -0
- package/src/talkpilot/clients/clients.types.ts +19 -0
- package/src/talkpilot/clients/index.ts +2 -0
- package/src/talkpilot/index.ts +1 -1
- package/src/talkpilot/phone_numbers/__tests__/phone_numbers.spec.ts +257 -13
- package/src/talkpilot/phone_numbers/phone_numbers.getter.ts +85 -1
- package/src/talkpilot/phone_numbers/phone_numbers.types.ts +6 -0
- package/src/test-utils/factories/index.ts +2 -0
- package/src/test-utils/factories/talkpilot/clients.ts +21 -0
- package/src/test-utils/factories/talkpilot/results.ts +43 -0
- package/dist/talkpilot/callTokenUsage/callTokenUsage.getters.d.ts +0 -4
- package/dist/talkpilot/callTokenUsage/callTokenUsage.getters.d.ts.map +0 -1
- package/dist/talkpilot/callTokenUsage/callTokenUsage.getters.js +0 -30
- package/dist/talkpilot/callTokenUsage/callTokenUsage.getters.js.map +0 -1
- package/dist/talkpilot/callTokenUsage/callTokenUsage.types.d.ts +0 -28
- package/dist/talkpilot/callTokenUsage/callTokenUsage.types.d.ts.map +0 -1
- package/dist/talkpilot/callTokenUsage/callTokenUsage.types.js.map +0 -1
- package/dist/talkpilot/callTokenUsage/index.d.ts +0 -3
- package/dist/talkpilot/callTokenUsage/index.d.ts.map +0 -1
- package/dist/talkpilot/callTokenUsage/index.js.map +0 -1
- package/src/talkpilot/callTokenUsage/__tests__/callTokenUsage.getters.spec.ts +0 -57
- package/src/talkpilot/callTokenUsage/callTokenUsage.getters.ts +0 -42
- package/src/talkpilot/callTokenUsage/callTokenUsage.types.ts +0 -28
- 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 +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
|
-
};
|