@talkpilot/core-db 1.1.18 → 1.2.0
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/.cursor/rules/development.mdc +65 -65
- package/DEVELOPMENT.md +98 -98
- package/README.md +160 -160
- package/dist/talkpilot/calls/calls.getters.d.ts +2 -1
- package/dist/talkpilot/calls/calls.getters.d.ts.map +1 -1
- package/dist/talkpilot/calls/calls.getters.js +176 -0
- package/dist/talkpilot/calls/calls.getters.js.map +1 -1
- package/dist/talkpilot/calls/calls.types.d.ts +49 -2
- package/dist/talkpilot/calls/calls.types.d.ts.map +1 -1
- package/dist/talkpilot/calls/calls.types.js.map +1 -1
- package/dist/talkpilot/clientsConfig/clientsConfig.getters.d.ts +1 -0
- package/dist/talkpilot/clientsConfig/clientsConfig.getters.d.ts.map +1 -1
- package/dist/talkpilot/clientsConfig/clientsConfig.getters.js +13 -0
- package/dist/talkpilot/clientsConfig/clientsConfig.getters.js.map +1 -1
- package/dist/talkpilot/clientsConfig/clientsConfig.types.d.ts +2 -0
- package/dist/talkpilot/clientsConfig/clientsConfig.types.d.ts.map +1 -1
- package/jest.config.js +19 -19
- package/package.json +45 -45
- package/src/__tests__/setup.ts +20 -20
- package/src/connection.ts +42 -42
- package/src/index.ts +16 -16
- package/src/municipal/__tests__/validation.spec.ts +62 -62
- package/src/municipal/cities/cities.getters.ts +50 -50
- package/src/municipal/cities/cities.types.ts +11 -11
- package/src/municipal/cities/index.ts +2 -2
- package/src/municipal/departmentsSubjects/departmentsSubjects.getters.ts +282 -282
- package/src/municipal/departmentsSubjects/departmentsSubjects.types.ts +72 -72
- package/src/municipal/departmentsSubjects/index.ts +9 -9
- package/src/municipal/index.ts +21 -21
- package/src/municipal/mongodb-client.ts +61 -61
- package/src/municipal/streets/index.ts +2 -2
- package/src/municipal/streets/streets.getters.ts +125 -125
- package/src/municipal/streets/streets.types.ts +18 -18
- package/src/municipal/systemInstructions/__tests__/getters.spec.ts +113 -113
- package/src/municipal/systemInstructions/__tests__/setters.spec.ts +274 -274
- package/src/municipal/systemInstructions/index.ts +7 -7
- package/src/municipal/systemInstructions/instructions.getters.ts +57 -57
- package/src/municipal/systemInstructions/instructions.setters.ts +119 -119
- package/src/municipal/systemInstructions/instructions.types.ts +30 -30
- package/src/municipal/tickets/__tests__/tickets.getters.spec.ts +66 -66
- package/src/municipal/tickets/index.ts +2 -2
- package/src/municipal/tickets/tickets.getters.ts +261 -261
- package/src/municipal/tickets/tickets.types.ts +43 -43
- package/src/municipal/utils/types.ts +11 -11
- package/src/talkpilot/__tests__/db.spec.ts +38 -38
- package/src/talkpilot/__tests__/mongodb-client.spec.ts +18 -18
- package/src/talkpilot/__tests__/validation.spec.ts +68 -68
- package/src/talkpilot/agents/__tests__/agents.getters.spec.ts +29 -29
- package/src/talkpilot/agents/agents.getters.ts +34 -34
- package/src/talkpilot/agents/agents.types.ts +14 -14
- package/src/talkpilot/agents/index.ts +2 -2
- package/src/talkpilot/backgroundToolResults/__tests__/backgroundToolResults.getters.spec.ts +147 -147
- package/src/talkpilot/backgroundToolResults/backgroundToolResults.getters.ts +65 -65
- package/src/talkpilot/backgroundToolResults/backgroundToolResults.types.ts +23 -23
- package/src/talkpilot/backgroundToolResults/index.ts +2 -2
- package/src/talkpilot/calls/__tests__/callStats.utils.spec.ts +128 -128
- package/src/talkpilot/calls/__tests__/calls.spec.ts +252 -252
- package/src/talkpilot/calls/calls.getters.ts +446 -248
- package/src/talkpilot/calls/calls.types.ts +171 -116
- package/src/talkpilot/calls/index.ts +2 -2
- package/src/talkpilot/clientAudioBuffers/__tests__/clientAudioBuffer.getters.spec.ts +160 -160
- package/src/talkpilot/clientAudioBuffers/clientAudioBuffer.getters.ts +117 -117
- package/src/talkpilot/clientAudioBuffers/clientsAudioBuffers.types.ts +25 -25
- package/src/talkpilot/clientAudioBuffers/index.ts +2 -2
- package/src/talkpilot/clients/clients.getters.ts +16 -16
- package/src/talkpilot/clients/clients.types.ts +14 -14
- package/src/talkpilot/clients/index.ts +2 -2
- package/src/talkpilot/clientsConfig/__tests__/clientsConfig.spec.ts +106 -106
- package/src/talkpilot/clientsConfig/clientsConfig.getters.ts +44 -22
- package/src/talkpilot/clientsConfig/clientsConfig.types.ts +94 -92
- package/src/talkpilot/clientsConfig/index.ts +2 -2
- package/src/talkpilot/flows/__tests__/flows.schema.spec.ts +67 -67
- package/src/talkpilot/flows/flows.getter.ts +14 -14
- package/src/talkpilot/flows/flows.schema.ts +153 -153
- package/src/talkpilot/flows/flows.types.ts +184 -184
- package/src/talkpilot/flows/index.ts +2 -2
- package/src/talkpilot/groups/__tests__/groups.spec.ts +90 -90
- package/src/talkpilot/groups/__tests__/phone.utils.spec.ts +32 -32
- package/src/talkpilot/groups/groups.getters.ts +30 -30
- package/src/talkpilot/groups/groups.types.ts +29 -29
- package/src/talkpilot/groups/index.ts +3 -3
- package/src/talkpilot/groups/phone.utils.ts +46 -46
- package/src/talkpilot/index.ts +29 -29
- package/src/talkpilot/leads/index.ts +2 -2
- package/src/talkpilot/leads/leads.getter.ts +6 -6
- package/src/talkpilot/leads/leads.schema.ts +33 -33
- package/src/talkpilot/leads/leads.types.ts +20 -20
- package/src/talkpilot/mongodb-client.ts +78 -78
- package/src/talkpilot/phone_numbers/__tests__/phone_numbers.spec.ts +247 -247
- package/src/talkpilot/phone_numbers/index.ts +2 -2
- package/src/talkpilot/phone_numbers/phone_numbers.getter.ts +154 -154
- package/src/talkpilot/phone_numbers/phone_numbers.schema.ts +17 -17
- package/src/talkpilot/phone_numbers/phone_numbers.types.ts +30 -30
- package/src/talkpilot/plans/__tests__/plans.spec.ts +70 -70
- package/src/talkpilot/plans/index.ts +2 -2
- package/src/talkpilot/plans/plans.getters.ts +132 -132
- package/src/talkpilot/plans/plans.types.ts +89 -89
- package/src/talkpilot/results/index.ts +7 -7
- package/src/talkpilot/results/results.getter.ts +35 -35
- package/src/talkpilot/results/results.schema.ts +25 -25
- package/src/talkpilot/results/results.types.ts +34 -34
- package/src/talkpilot/retry_analyze/__tests__/retryAnalyze.getters.spec.ts +156 -156
- package/src/talkpilot/retry_analyze/index.ts +2 -2
- package/src/talkpilot/retry_analyze/retryAnalyze.getters.ts +75 -75
- package/src/talkpilot/retry_analyze/retryAnalyze.types.ts +13 -13
- package/src/talkpilot/sessions/__tests__/sessions.spec.ts +147 -147
- package/src/talkpilot/sessions/index.ts +2 -2
- package/src/talkpilot/sessions/sessions.getter.ts +92 -92
- package/src/talkpilot/sessions/sessions.schema.ts +34 -34
- package/src/talkpilot/sessions/sessions.types.ts +30 -30
- package/src/talkpilot/subscriptions/__tests__/subscriptions.getters.utils.spec.ts +45 -45
- package/src/talkpilot/subscriptions/index.ts +3 -3
- package/src/talkpilot/subscriptions/subscriptions.getters.ts +146 -146
- package/src/talkpilot/subscriptions/subscriptions.getters.utils.ts +33 -33
- package/src/talkpilot/subscriptions/subscriptions.types.ts +66 -66
- package/src/talkpilot/utils/__tests__/query.utils.spec.ts +49 -49
- package/src/talkpilot/utils/query.utils.ts +21 -21
- package/src/test-utils/db-utils.ts +24 -24
- package/src/test-utils/factories/index.ts +12 -12
- package/src/test-utils/factories/municipal/cities.ts +16 -16
- package/src/test-utils/factories/municipal/departmentsSubjects.ts +37 -37
- package/src/test-utils/factories/municipal/streets.ts +22 -22
- package/src/test-utils/factories/municipal/tickets.ts +39 -39
- package/src/test-utils/factories/talkpilot/agents.ts +19 -19
- package/src/test-utils/factories/talkpilot/calls.ts +37 -37
- package/src/test-utils/factories/talkpilot/clientAudioBuffers.ts +20 -20
- package/src/test-utils/factories/talkpilot/clientsConfig.ts +18 -18
- package/src/test-utils/factories/talkpilot/flows.ts +33 -33
- package/src/test-utils/factories/talkpilot/groups.ts +33 -33
- package/src/test-utils/factories/talkpilot/phone_numbers.ts +22 -22
- package/src/test-utils/factories/talkpilot/sessions.ts +35 -35
- package/src/utils/validation.ts +23 -23
- package/tsconfig.json +23 -23
|
@@ -1,113 +1,113 @@
|
|
|
1
|
-
import { createSystemInstruction } from "../instructions.setters";
|
|
2
|
-
import {
|
|
3
|
-
getSystemInstructionById,
|
|
4
|
-
getActiveSystemInstructionsByCity,
|
|
5
|
-
getSystemInstructionsByToolAndCity,
|
|
6
|
-
findSystemInstructions,
|
|
7
|
-
} from "../instructions.getters";
|
|
8
|
-
import { ObjectId } from "mongodb";
|
|
9
|
-
import { MIS_TOOLS, QUERY_TYPES } from "../instructions.types";
|
|
10
|
-
|
|
11
|
-
describe("System Instructions Getter Tests", () => {
|
|
12
|
-
const testCity = "Ashdod";
|
|
13
|
-
const otherCity = "Tel Aviv";
|
|
14
|
-
|
|
15
|
-
describe("getters", () => {
|
|
16
|
-
let instructionId: string;
|
|
17
|
-
|
|
18
|
-
beforeEach(async () => {
|
|
19
|
-
const id = await createSystemInstruction({
|
|
20
|
-
cityName: testCity,
|
|
21
|
-
instruction: "Find Me",
|
|
22
|
-
isActive: true,
|
|
23
|
-
tool: MIS_TOOLS.findSubject,
|
|
24
|
-
queryType: QUERY_TYPES.any,
|
|
25
|
-
tags: ["important", "urgent"],
|
|
26
|
-
});
|
|
27
|
-
instructionId = id.toString();
|
|
28
|
-
|
|
29
|
-
// for filtering tests
|
|
30
|
-
await createSystemInstruction({
|
|
31
|
-
cityName: testCity,
|
|
32
|
-
instruction: "Inactive One",
|
|
33
|
-
isActive: false,
|
|
34
|
-
tool: MIS_TOOLS.findSubject,
|
|
35
|
-
queryType: QUERY_TYPES.any,
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
await createSystemInstruction({
|
|
39
|
-
cityName: otherCity,
|
|
40
|
-
instruction: "Other City Instruction",
|
|
41
|
-
isActive: true,
|
|
42
|
-
tool: MIS_TOOLS.findStreet,
|
|
43
|
-
queryType: QUERY_TYPES.exactlyOne,
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
describe("getSystemInstructionById", () => {
|
|
48
|
-
it("given existing id when fetched then return the document", async () => {
|
|
49
|
-
const result = await getSystemInstructionById(instructionId);
|
|
50
|
-
expect(result?._id.toString()).toBe(instructionId);
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
it("given non-existent id when fetched then return null", async () => {
|
|
54
|
-
const result = await getSystemInstructionById(
|
|
55
|
-
new ObjectId().toHexString(),
|
|
56
|
-
);
|
|
57
|
-
expect(result).toBeNull();
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
describe("getActiveSystemInstructionsByCity", () => {
|
|
62
|
-
it("given city with active instructions when fetched then return only active documents for that city", async () => {
|
|
63
|
-
const result = await getActiveSystemInstructionsByCity(testCity);
|
|
64
|
-
expect(result.length).toBe(1);
|
|
65
|
-
expect(result[0].instruction).toBe("Find Me");
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
it("given city with no instructions when fetched then return empty array", async () => {
|
|
69
|
-
const result =
|
|
70
|
-
await getActiveSystemInstructionsByCity("NonExistentCity");
|
|
71
|
-
expect(result).toEqual([]);
|
|
72
|
-
});
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
describe("getSystemInstructionsByToolAndCity", () => {
|
|
76
|
-
it("given valid city and tool when fetched then return matching instructions", async () => {
|
|
77
|
-
const result = await getSystemInstructionsByToolAndCity(
|
|
78
|
-
testCity,
|
|
79
|
-
MIS_TOOLS.findSubject,
|
|
80
|
-
);
|
|
81
|
-
expect(result.length).toBe(2); // One active, one inactive
|
|
82
|
-
expect(
|
|
83
|
-
result.every(
|
|
84
|
-
(r) => r.cityName === testCity && r.tool === MIS_TOOLS.findSubject,
|
|
85
|
-
),
|
|
86
|
-
).toBe(true);
|
|
87
|
-
});
|
|
88
|
-
|
|
89
|
-
it("given valid city but wrong tool when fetched then return empty array", async () => {
|
|
90
|
-
const result = await getSystemInstructionsByToolAndCity(
|
|
91
|
-
testCity,
|
|
92
|
-
MIS_TOOLS.findStreet,
|
|
93
|
-
);
|
|
94
|
-
expect(result).toEqual([]);
|
|
95
|
-
});
|
|
96
|
-
});
|
|
97
|
-
|
|
98
|
-
describe("findSystemInstructions", () => {
|
|
99
|
-
it("given filter by tags when searched then return matching documents", async () => {
|
|
100
|
-
const result = await findSystemInstructions({
|
|
101
|
-
tags: { $in: ["important"] },
|
|
102
|
-
});
|
|
103
|
-
expect(result.length).toBe(1);
|
|
104
|
-
expect(result[0].instruction).toBe("Find Me");
|
|
105
|
-
});
|
|
106
|
-
|
|
107
|
-
it("given empty filter when searched then return all documents", async () => {
|
|
108
|
-
const result = await findSystemInstructions({});
|
|
109
|
-
expect(result.length).toBe(3);
|
|
110
|
-
});
|
|
111
|
-
});
|
|
112
|
-
});
|
|
113
|
-
});
|
|
1
|
+
import { createSystemInstruction } from "../instructions.setters";
|
|
2
|
+
import {
|
|
3
|
+
getSystemInstructionById,
|
|
4
|
+
getActiveSystemInstructionsByCity,
|
|
5
|
+
getSystemInstructionsByToolAndCity,
|
|
6
|
+
findSystemInstructions,
|
|
7
|
+
} from "../instructions.getters";
|
|
8
|
+
import { ObjectId } from "mongodb";
|
|
9
|
+
import { MIS_TOOLS, QUERY_TYPES } from "../instructions.types";
|
|
10
|
+
|
|
11
|
+
describe("System Instructions Getter Tests", () => {
|
|
12
|
+
const testCity = "Ashdod";
|
|
13
|
+
const otherCity = "Tel Aviv";
|
|
14
|
+
|
|
15
|
+
describe("getters", () => {
|
|
16
|
+
let instructionId: string;
|
|
17
|
+
|
|
18
|
+
beforeEach(async () => {
|
|
19
|
+
const id = await createSystemInstruction({
|
|
20
|
+
cityName: testCity,
|
|
21
|
+
instruction: "Find Me",
|
|
22
|
+
isActive: true,
|
|
23
|
+
tool: MIS_TOOLS.findSubject,
|
|
24
|
+
queryType: QUERY_TYPES.any,
|
|
25
|
+
tags: ["important", "urgent"],
|
|
26
|
+
});
|
|
27
|
+
instructionId = id.toString();
|
|
28
|
+
|
|
29
|
+
// for filtering tests
|
|
30
|
+
await createSystemInstruction({
|
|
31
|
+
cityName: testCity,
|
|
32
|
+
instruction: "Inactive One",
|
|
33
|
+
isActive: false,
|
|
34
|
+
tool: MIS_TOOLS.findSubject,
|
|
35
|
+
queryType: QUERY_TYPES.any,
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
await createSystemInstruction({
|
|
39
|
+
cityName: otherCity,
|
|
40
|
+
instruction: "Other City Instruction",
|
|
41
|
+
isActive: true,
|
|
42
|
+
tool: MIS_TOOLS.findStreet,
|
|
43
|
+
queryType: QUERY_TYPES.exactlyOne,
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
describe("getSystemInstructionById", () => {
|
|
48
|
+
it("given existing id when fetched then return the document", async () => {
|
|
49
|
+
const result = await getSystemInstructionById(instructionId);
|
|
50
|
+
expect(result?._id.toString()).toBe(instructionId);
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
it("given non-existent id when fetched then return null", async () => {
|
|
54
|
+
const result = await getSystemInstructionById(
|
|
55
|
+
new ObjectId().toHexString(),
|
|
56
|
+
);
|
|
57
|
+
expect(result).toBeNull();
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
describe("getActiveSystemInstructionsByCity", () => {
|
|
62
|
+
it("given city with active instructions when fetched then return only active documents for that city", async () => {
|
|
63
|
+
const result = await getActiveSystemInstructionsByCity(testCity);
|
|
64
|
+
expect(result.length).toBe(1);
|
|
65
|
+
expect(result[0].instruction).toBe("Find Me");
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
it("given city with no instructions when fetched then return empty array", async () => {
|
|
69
|
+
const result =
|
|
70
|
+
await getActiveSystemInstructionsByCity("NonExistentCity");
|
|
71
|
+
expect(result).toEqual([]);
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
describe("getSystemInstructionsByToolAndCity", () => {
|
|
76
|
+
it("given valid city and tool when fetched then return matching instructions", async () => {
|
|
77
|
+
const result = await getSystemInstructionsByToolAndCity(
|
|
78
|
+
testCity,
|
|
79
|
+
MIS_TOOLS.findSubject,
|
|
80
|
+
);
|
|
81
|
+
expect(result.length).toBe(2); // One active, one inactive
|
|
82
|
+
expect(
|
|
83
|
+
result.every(
|
|
84
|
+
(r) => r.cityName === testCity && r.tool === MIS_TOOLS.findSubject,
|
|
85
|
+
),
|
|
86
|
+
).toBe(true);
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
it("given valid city but wrong tool when fetched then return empty array", async () => {
|
|
90
|
+
const result = await getSystemInstructionsByToolAndCity(
|
|
91
|
+
testCity,
|
|
92
|
+
MIS_TOOLS.findStreet,
|
|
93
|
+
);
|
|
94
|
+
expect(result).toEqual([]);
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
describe("findSystemInstructions", () => {
|
|
99
|
+
it("given filter by tags when searched then return matching documents", async () => {
|
|
100
|
+
const result = await findSystemInstructions({
|
|
101
|
+
tags: { $in: ["important"] },
|
|
102
|
+
});
|
|
103
|
+
expect(result.length).toBe(1);
|
|
104
|
+
expect(result[0].instruction).toBe("Find Me");
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
it("given empty filter when searched then return all documents", async () => {
|
|
108
|
+
const result = await findSystemInstructions({});
|
|
109
|
+
expect(result.length).toBe(3);
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
});
|