@talkpilot/core-db 1.3.88 → 1.3.90

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 (36) hide show
  1. package/README.md +0 -19
  2. package/dist/talkpilot/contextNotes/contextNotes.getters.d.ts +1 -7
  3. package/dist/talkpilot/contextNotes/contextNotes.getters.d.ts.map +1 -1
  4. package/dist/talkpilot/contextNotes/contextNotes.getters.js +1 -37
  5. package/dist/talkpilot/contextNotes/contextNotes.getters.js.map +1 -1
  6. package/dist/talkpilot/contextNotes/contextNotes.types.d.ts +0 -6
  7. package/dist/talkpilot/contextNotes/contextNotes.types.d.ts.map +1 -1
  8. package/dist/talkpilot/flows/flows.schema.d.ts +9 -0
  9. package/dist/talkpilot/flows/flows.schema.d.ts.map +1 -1
  10. package/dist/talkpilot/flows/flows.schema.js +7 -0
  11. package/dist/talkpilot/flows/flows.schema.js.map +1 -1
  12. package/dist/talkpilot/flows/flows.types.d.ts +3 -0
  13. package/dist/talkpilot/flows/flows.types.d.ts.map +1 -1
  14. package/dist/talkpilot/subscriptions/subscriptions.utils.d.ts +4 -0
  15. package/dist/talkpilot/subscriptions/subscriptions.utils.d.ts.map +1 -0
  16. package/dist/talkpilot/subscriptions/subscriptions.utils.js +20 -0
  17. package/dist/talkpilot/subscriptions/subscriptions.utils.js.map +1 -0
  18. package/package.json +1 -1
  19. package/src/talkpilot/contextNotes/__tests__/contextNotes.getters.spec.ts +0 -141
  20. package/src/talkpilot/contextNotes/contextNotes.getters.ts +1 -75
  21. package/src/talkpilot/contextNotes/contextNotes.types.ts +0 -7
  22. package/src/talkpilot/flows/__tests__/flows.schema.spec.ts +11 -0
  23. package/src/talkpilot/flows/flows.schema.ts +7 -0
  24. package/src/talkpilot/flows/flows.types.ts +1 -0
  25. package/dist/configuration/gptLive.seed.d.ts +0 -2
  26. package/dist/configuration/gptLive.seed.d.ts.map +0 -1
  27. package/dist/configuration/gptLive.seed.js +0 -59
  28. package/dist/configuration/gptLive.seed.js.map +0 -1
  29. package/dist/talkpilot/clients/clients.quota.constants.d.ts +0 -2
  30. package/dist/talkpilot/clients/clients.quota.constants.d.ts.map +0 -1
  31. package/dist/talkpilot/clients/clients.quota.constants.js +0 -5
  32. package/dist/talkpilot/clients/clients.quota.constants.js.map +0 -1
  33. package/dist/talkpilot/clients/clients.quota.utils.d.ts +0 -8
  34. package/dist/talkpilot/clients/clients.quota.utils.d.ts.map +0 -1
  35. package/dist/talkpilot/clients/clients.quota.utils.js +0 -45
  36. package/dist/talkpilot/clients/clients.quota.utils.js.map +0 -1
package/README.md CHANGED
@@ -187,8 +187,6 @@ Refer to `DEVELOPMENT.md` for the full walkthrough, token instructions, and fact
187
187
  | 1.3.71 | Who ended a call (CP-1873): optional `Call.endedBy` (`system` / `agent` / `user`), `CallEndedByValues`, and `setCallEndedBy` (first write wins). **Breaking** vs 1.3.69–1.3.70: the value `resident` was replaced by `user`. |
188
188
  | 1.3.74 | Added `human` to `CallEndedByValues` (CP-1873): a human agent ended the call, after a transfer or in a conference. |
189
189
  | 1.3.82 | Complaint tracking on `muniIssues` (CP-1888): optional `status` / `response` / `updatedAt`; an editable TalkPilot response with up to `MUNI_ISSUE_MAX_RESPONSE_IMAGES` (5) `response.imageUrls` and `response.updatedAt`; `updateMuniIssueStatus`, `setMuniIssueResponse`, `findMuniIssuesByClient`, `countMuniIssuesByClient`, `getMuniIssueByIdForClient`; index `clientId_1_createdAt_-1`. |
190
- | 1.3.88 | Single-note writes on `contextNotes` (CP-1998): append, update, or remove one entry without replacing the rest of the list. |
191
-
192
190
 
193
191
  ### 1.1.9
194
192
 
@@ -837,23 +835,6 @@ New `CallEndedByValues.Human` (`"human"`): a human agent ended the call, either
837
835
 
838
836
  No — purely additive. **TalkPilot Server** should upgrade to **1.3.74** to write it.
839
837
 
840
- ### 1.3.85 — Single context-note writes (CP-1998)
841
-
842
- Append, update, or remove one note on a client/product document without replacing the rest of the `notes` array. `appendContextNoteEntry` creates the document when none exists yet. `setContextNoteEntries` still replaces the whole list.
843
-
844
- **Added**
845
-
846
- | Export | Purpose |
847
- | --- | --- |
848
- | `ContextNoteEntryWrite` | Fields the caller sets: `title`, `content`, `activeFrom`, `expiresAt`. The getter assigns `_id`, `createdAt`, and `updatedAt`. |
849
- | `appendContextNoteEntry(clientId, product, entry, now?)` | Pushes one note and upserts the document. Returns the stored entry. |
850
- | `updateContextNoteEntryFields(clientId, product, noteId, entry, now?)` | Replaces one note's writable fields and `updatedAt`. Leaves `createdAt` and the other notes alone. Returns `null` when the note is missing. |
851
- | `pullContextNoteEntry(clientId, product, noteId)` | Removes one note by id. Returns `false` when nothing changed. |
852
-
853
- **Do I need to update my app?**
854
-
855
- No — purely additive. Use these instead of `setContextNoteEntries` when only one note changes.
856
-
857
838
  ## 🛠 CI/CD & deployment
858
839
 
859
840
  - This package is consumed by Cloud Build-based services (TalkPilot Server, MIS, CIS) as a dependency when Docker images are built. Keep `dist/` in sync with your builds because the compiled artifact is what downstream services install.
@@ -1,5 +1,5 @@
1
1
  import { Collection, ObjectId, WithId } from "mongodb";
2
- import type { ContextNote, ContextNoteEntry, ContextNoteEntryWrite } from "./contextNotes.types";
2
+ import type { ContextNote, ContextNoteEntry } from "./contextNotes.types";
3
3
  export declare const getContextNotesCollection: () => Collection<ContextNote>;
4
4
  /** Returns all context note documents matching a clientId and product. */
5
5
  export declare const getContextNotes: (clientId: string, product: string) => Promise<WithId<ContextNote>[]>;
@@ -14,12 +14,6 @@ export declare const setContextNoteConfig: (id: ObjectId, clientId: string, conf
14
14
  systemPrompt?: string;
15
15
  product?: string;
16
16
  }) => Promise<boolean>;
17
- /** Appends one note. Other notes on the document are left untouched. */
18
- export declare const appendContextNoteEntry: (clientId: string, product: string, entry: ContextNoteEntryWrite, now?: Date) => Promise<ContextNoteEntry>;
19
- /** Replaces one note's fields. Other notes on the document are left untouched. */
20
- export declare const updateContextNoteEntryFields: (clientId: string, product: string, noteId: ObjectId, entry: ContextNoteEntryWrite, now?: Date) => Promise<ContextNoteEntry | null>;
21
- /** Removes one note by id. Other notes on the document are left untouched. */
22
- export declare const pullContextNoteEntry: (clientId: string, product: string, noteId: ObjectId) => Promise<boolean>;
23
17
  /** Removes a single note entry from a document by its _id. */
24
18
  export declare const deleteContextNoteEntry: (id: ObjectId, clientId: string, noteId: ObjectId) => Promise<boolean>;
25
19
  //# sourceMappingURL=contextNotes.getters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contextNotes.getters.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/contextNotes/contextNotes.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEvD,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,sBAAsB,CAAC;AAE9B,eAAO,MAAM,yBAAyB,QAAO,UAAU,CAAC,WAAW,CAElE,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,eAAe,GAC1B,UAAU,MAAM,EAChB,SAAS,MAAM,KACd,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAE/B,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,qBAAqB,GAChC,UAAU,MAAM,EAChB,SAAS,MAAM,KACd,OAAO,CAAC,gBAAgB,EAAE,CAU5B,CAAC;AAEF,2CAA2C;AAC3C,eAAO,MAAM,iBAAiB,GAC5B,MAAM,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,KAC7B,OAAO,CAAC,QAAQ,CAIlB,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,qBAAqB,GAChC,IAAI,QAAQ,EACZ,UAAU,MAAM,EAChB,OAAO,gBAAgB,EAAE,KACxB,OAAO,CAAC,OAAO,CAMjB,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,oBAAoB,GAC/B,IAAI,QAAQ,EACZ,UAAU,MAAM,EAChB,QAAQ;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,KAClD,OAAO,CAAC,OAAO,CAYjB,CAAC;AAQF,wEAAwE;AACxE,eAAO,MAAM,sBAAsB,GACjC,UAAU,MAAM,EAChB,SAAS,MAAM,EACf,OAAO,qBAAqB,EAC5B,MAAK,IAAiB,KACrB,OAAO,CAAC,gBAAgB,CAkB1B,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,4BAA4B,GACvC,UAAU,MAAM,EAChB,SAAS,MAAM,EACf,QAAQ,QAAQ,EAChB,OAAO,qBAAqB,EAC5B,MAAK,IAAiB,KACrB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAgBjC,CAAC;AAEF,8EAA8E;AAC9E,eAAO,MAAM,oBAAoB,GAC/B,UAAU,MAAM,EAChB,SAAS,MAAM,EACf,QAAQ,QAAQ,KACf,OAAO,CAAC,OAAO,CAMjB,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,sBAAsB,GACjC,IAAI,QAAQ,EACZ,UAAU,MAAM,EAChB,QAAQ,QAAQ,KACf,OAAO,CAAC,OAAO,CAMjB,CAAC"}
1
+ {"version":3,"file":"contextNotes.getters.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/contextNotes/contextNotes.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEvD,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE1E,eAAO,MAAM,yBAAyB,QAAO,UAAU,CAAC,WAAW,CAElE,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,eAAe,GAC1B,UAAU,MAAM,EAChB,SAAS,MAAM,KACd,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAE/B,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,qBAAqB,GAChC,UAAU,MAAM,EAChB,SAAS,MAAM,KACd,OAAO,CAAC,gBAAgB,EAAE,CAU5B,CAAC;AAEF,2CAA2C;AAC3C,eAAO,MAAM,iBAAiB,GAC5B,MAAM,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,KAC7B,OAAO,CAAC,QAAQ,CAIlB,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,qBAAqB,GAChC,IAAI,QAAQ,EACZ,UAAU,MAAM,EAChB,OAAO,gBAAgB,EAAE,KACxB,OAAO,CAAC,OAAO,CAMjB,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,oBAAoB,GAC/B,IAAI,QAAQ,EACZ,UAAU,MAAM,EAChB,QAAQ;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,KAClD,OAAO,CAAC,OAAO,CAYjB,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,sBAAsB,GACjC,IAAI,QAAQ,EACZ,UAAU,MAAM,EAChB,QAAQ,QAAQ,KACf,OAAO,CAAC,OAAO,CAMjB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deleteContextNoteEntry = exports.pullContextNoteEntry = exports.updateContextNoteEntryFields = exports.appendContextNoteEntry = exports.setContextNoteConfig = exports.setContextNoteEntries = exports.createContextNote = exports.getActiveContextNotes = exports.getContextNotes = exports.getContextNotesCollection = void 0;
3
+ exports.deleteContextNoteEntry = exports.setContextNoteConfig = exports.setContextNoteEntries = exports.createContextNote = exports.getActiveContextNotes = exports.getContextNotes = exports.getContextNotesCollection = void 0;
4
4
  const mongodb_1 = require("mongodb");
5
5
  const index_1 = require("../index");
6
6
  const getContextNotesCollection = () => {
@@ -46,42 +46,6 @@ const setContextNoteConfig = async (id, clientId, config) => {
46
46
  return result.matchedCount > 0;
47
47
  };
48
48
  exports.setContextNoteConfig = setContextNoteConfig;
49
- const findNoteEntryById = (doc, noteId) => doc?.notes.find((note) => note._id.equals(noteId)) ?? null;
50
- /** Appends one note. Other notes on the document are left untouched. */
51
- const appendContextNoteEntry = async (clientId, product, entry, now = new Date()) => {
52
- const note = {
53
- _id: new mongodb_1.ObjectId(),
54
- title: entry.title,
55
- content: entry.content,
56
- activeFrom: entry.activeFrom,
57
- expiresAt: entry.expiresAt,
58
- createdAt: now,
59
- updatedAt: now,
60
- };
61
- const saved = await (0, exports.getContextNotesCollection)().findOneAndUpdate({ clientId, product }, { $push: { notes: note } }, { upsert: true, returnDocument: "after" });
62
- return findNoteEntryById(saved, note._id) ?? note;
63
- };
64
- exports.appendContextNoteEntry = appendContextNoteEntry;
65
- /** Replaces one note's fields. Other notes on the document are left untouched. */
66
- const updateContextNoteEntryFields = async (clientId, product, noteId, entry, now = new Date()) => {
67
- const saved = await (0, exports.getContextNotesCollection)().findOneAndUpdate({ clientId, product, "notes._id": noteId }, {
68
- $set: {
69
- "notes.$.title": entry.title,
70
- "notes.$.content": entry.content,
71
- "notes.$.activeFrom": entry.activeFrom,
72
- "notes.$.expiresAt": entry.expiresAt,
73
- "notes.$.updatedAt": now,
74
- },
75
- }, { returnDocument: "after" });
76
- return findNoteEntryById(saved, noteId);
77
- };
78
- exports.updateContextNoteEntryFields = updateContextNoteEntryFields;
79
- /** Removes one note by id. Other notes on the document are left untouched. */
80
- const pullContextNoteEntry = async (clientId, product, noteId) => {
81
- const result = await (0, exports.getContextNotesCollection)().updateOne({ clientId, product, "notes._id": noteId }, { $pull: { notes: { _id: noteId } } });
82
- return result.modifiedCount > 0;
83
- };
84
- exports.pullContextNoteEntry = pullContextNoteEntry;
85
49
  /** Removes a single note entry from a document by its _id. */
86
50
  const deleteContextNoteEntry = async (id, clientId, noteId) => {
87
51
  const result = await (0, exports.getContextNotesCollection)().updateOne({ _id: id, clientId }, { $pull: { notes: { _id: noteId } } });
@@ -1 +1 @@
1
- {"version":3,"file":"contextNotes.getters.js","sourceRoot":"","sources":["../../../src/talkpilot/contextNotes/contextNotes.getters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contextNotes.getters.js","sourceRoot":"","sources":["../../../src/talkpilot/contextNotes/contextNotes.getters.ts"],"names":[],"mappings":"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"}
@@ -8,12 +8,6 @@ export type ContextNoteEntry = {
8
8
  createdAt: Date;
9
9
  updatedAt: Date;
10
10
  };
11
- export type ContextNoteEntryWrite = {
12
- title: string;
13
- content: string;
14
- activeFrom: Date;
15
- expiresAt: Date | null;
16
- };
17
11
  export type ContextNote = {
18
12
  _id: ObjectId;
19
13
  clientId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"contextNotes.types.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/contextNotes/contextNotes.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,QAAQ,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,IAAI,CAAC;IACjB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,IAAI,CAAC;IACjB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,GAAG,EAAE,QAAQ,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC"}
1
+ {"version":3,"file":"contextNotes.types.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/contextNotes/contextNotes.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,QAAQ,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,IAAI,CAAC;IACjB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,GAAG,EAAE,QAAQ,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC"}
@@ -20,6 +20,15 @@ export declare const flowMongoSchema: {
20
20
  readonly disableGenericPrompt: {
21
21
  readonly bsonType: "bool";
22
22
  };
23
+ readonly keypadInput: {
24
+ readonly bsonType: readonly ["object", "null"];
25
+ readonly properties: {
26
+ readonly enabled: {
27
+ readonly bsonType: "bool";
28
+ };
29
+ };
30
+ readonly additionalProperties: false;
31
+ };
23
32
  readonly voice: {
24
33
  readonly bsonType: readonly ["string", "null"];
25
34
  };
@@ -1 +1 @@
1
- {"version":3,"file":"flows.schema.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/flows/flows.schema.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmMlB,CAAC"}
1
+ {"version":3,"file":"flows.schema.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/flows/flows.schema.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0MlB,CAAC"}
@@ -16,6 +16,13 @@ exports.flowMongoSchema = {
16
16
  systemInstructions: { bsonType: "string" },
17
17
  initialSentence: { bsonType: "string" },
18
18
  disableGenericPrompt: { bsonType: "bool" },
19
+ keypadInput: {
20
+ bsonType: ["object", "null"],
21
+ properties: {
22
+ enabled: { bsonType: "bool" },
23
+ },
24
+ additionalProperties: false,
25
+ },
19
26
  voice: { bsonType: ["string", "null"] },
20
27
  conversationSettings: {
21
28
  bsonType: ["object", "null"],
@@ -1 +1 @@
1
- {"version":3,"file":"flows.schema.js","sourceRoot":"","sources":["../../../src/talkpilot/flows/flows.schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flows.schema.js","sourceRoot":"","sources":["../../../src/talkpilot/flows/flows.schema.ts"],"names":[],"mappings":"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"}
@@ -143,6 +143,9 @@ export type Flow = {
143
143
  freeTextContent?: string;
144
144
  isFreeText?: boolean;
145
145
  disableGenericPrompt?: boolean;
146
+ keypadInput?: {
147
+ enabled?: boolean;
148
+ } | null;
146
149
  _id?: ObjectId;
147
150
  flowName: string;
148
151
  clientId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"flows.types.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/flows/flows.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flows.types.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/flows/flows.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAInC,MAAM,MAAM,QAAQ,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAChD,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;AAErE,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;AACzD,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,UAAU,CAAC;AAElD,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC1B,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAErC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAEhC,CAAC;AAEF,MAAM,MAAM,QAAQ,GAChB,OAAO,GACP,KAAK,GACL,WAAW,GACX,WAAW,GACX,MAAM,GACN,aAAa,GACb,eAAe,GACf,KAAK,CAAC;AACV,KAAK,QAAQ,GAAG;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAErD,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC;AAEjD,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG;IACrC,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,EAAE,KAAK,CAAC;QAChB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACpB,CAAC,CAAC;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,YAAY,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC;AAE7D,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAClC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,0EAA0E;IAC1E,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,sBAAsB,GAAG,oBAAoB,CAAC;IACnE,kCAAkC,CAAC,EAAE,MAAM,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,UAAU,CAAC;AAE5C,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG;IACvC,IAAI,EAAE,aAAa,CAAC;IACpB,uFAAuF;IACvF,WAAW,EAAE,UAAU,CAAC;IACxB,0EAA0E;IAC1E,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG;IACzC,IAAI,EAAE,eAAe,CAAC;IACtB,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC;AAEjD,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,OAAO,GACP,aAAa,GACb,aAAa,GACb,QAAQ,GACR,eAAe,GACf,iBAAiB,GACjB,OAAO,CAAC;AAEZ,MAAM,MAAM,IAAI,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,OAAO,CAAC,EAAE,yBAAyB,CAAC;IACpC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAIF,MAAM,MAAM,uBAAuB,GAAG;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAIF,MAAM,MAAM,IAAI,GAAG;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,WAAW,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IAC3C,GAAG,CAAC,EAAE,QAAQ,CAAC;IAEf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IAEjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAE5C,YAAY,EAAE,WAAW,EAAE,CAAC;IAE5B,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC5B,cAAc,CAAC,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IACvC,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAGpB,UAAU,CAAC,EAAE,GAAG,CAAC;IAEjB,6EAA6E;IAC7E,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAGnD,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,OAAO,CACpC,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,UAAU,GAAG,WAAW,CAAC,CAC7C,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Filter } from 'mongodb';
2
+ import { Subscription, SimpleSubscriptionFilter } from '../index';
3
+ export declare const buildSimpleQuery: (filter: SimpleSubscriptionFilter) => Filter<Subscription>;
4
+ //# sourceMappingURL=subscriptions.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscriptions.utils.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/subscriptions/subscriptions.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,MAAM,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAA6B,MAAM,UAAU,CAAC;AAE7F,eAAO,MAAM,gBAAgB,GAAI,QAAQ,wBAAwB,KAAG,MAAM,CAAC,YAAY,CAetF,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildSimpleQuery = void 0;
4
+ const mongodb_1 = require("mongodb");
5
+ const index_1 = require("../index");
6
+ const buildSimpleQuery = (filter) => {
7
+ const query = {};
8
+ if (filter._id) {
9
+ query._id = new mongodb_1.ObjectId(filter._id);
10
+ }
11
+ index_1.simpleFields.forEach((field) => {
12
+ const val = filter[field];
13
+ if (val !== undefined) {
14
+ query[field] = val;
15
+ }
16
+ });
17
+ return query;
18
+ };
19
+ exports.buildSimpleQuery = buildSimpleQuery;
20
+ //# sourceMappingURL=subscriptions.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscriptions.utils.js","sourceRoot":"","sources":["../../../src/talkpilot/subscriptions/subscriptions.utils.ts"],"names":[],"mappings":";;;AAAA,qCAA2C;AAC3C,oCAA6F;AAEtF,MAAM,gBAAgB,GAAG,CAAC,MAAgC,EAAwB,EAAE;IACzF,MAAM,KAAK,GAAyB,EAAE,CAAC;IAEvC,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,KAAK,CAAC,GAAG,GAAG,IAAI,kBAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,oBAAY,CAAC,OAAO,CAAC,CAAC,KAAkB,EAAE,EAAE;QAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,KAAK,CAAC,KAAK,CAAC,GAAG,GAAU,CAAC;QAC5B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAfW,QAAA,gBAAgB,oBAe3B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@talkpilot/core-db",
3
- "version": "1.3.88",
3
+ "version": "1.3.90",
4
4
  "description": "Core database package for centralized connections and ORM integration.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -6,9 +6,6 @@ import {
6
6
  setContextNoteEntries,
7
7
  setContextNoteConfig,
8
8
  deleteContextNoteEntry,
9
- appendContextNoteEntry,
10
- updateContextNoteEntryFields,
11
- pullContextNoteEntry,
12
9
  } from "../contextNotes.getters";
13
10
  import { ObjectId } from "../../index";
14
11
  import {
@@ -206,144 +203,6 @@ describe("contextNotes getters", () => {
206
203
  expect(saved?.notes[0]._id.toString()).toBe(noteToKeep._id.toString());
207
204
  });
208
205
 
209
- it("should append one note without replacing the others", async () => {
210
- const kept = createContextNoteEntry({ title: "kept" });
211
- const doc = buildContextNote({ notes: [kept] });
212
- await createContextNote(doc);
213
- const now = new Date("2026-10-18T12:00:00.000Z");
214
-
215
- const added = await appendContextNoteEntry(
216
- doc.clientId,
217
- doc.product,
218
- {
219
- title: "added",
220
- content: "new content",
221
- activeFrom: now,
222
- expiresAt: null,
223
- },
224
- now,
225
- );
226
-
227
- const saved = await getContextNotesCollection().findOne({
228
- clientId: doc.clientId,
229
- product: doc.product,
230
- });
231
- expect(saved?.notes).toHaveLength(2);
232
- expect(saved?.notes[0]._id.toString()).toBe(kept._id.toString());
233
- expect(saved?.notes[1].title).toBe("added");
234
- expect(added._id.toString()).toBe(saved?.notes[1]._id.toString());
235
- expect(added.createdAt).toEqual(now);
236
- });
237
-
238
- it("should create the document when appending the first note", async () => {
239
- const clientId = new ObjectId().toString();
240
- const now = new Date("2026-10-18T12:00:00.000Z");
241
-
242
- const added = await appendContextNoteEntry(
243
- clientId,
244
- "Municipal",
245
- {
246
- title: "first",
247
- content: "content",
248
- activeFrom: now,
249
- expiresAt: null,
250
- },
251
- now,
252
- );
253
-
254
- const saved = await getContextNotes(clientId, "Municipal");
255
- expect(saved).toHaveLength(1);
256
- expect(saved[0].notes).toHaveLength(1);
257
- expect(saved[0].notes[0]._id.toString()).toBe(added._id.toString());
258
- });
259
-
260
- it("should update one note and leave the others unchanged", async () => {
261
- const kept = createContextNoteEntry({ title: "kept" });
262
- const target = createContextNoteEntry({ title: "before" });
263
- const doc = buildContextNote({ notes: [kept, target] });
264
- await createContextNote(doc);
265
- const now = new Date("2026-10-18T13:00:00.000Z");
266
- const activeFrom = new Date("2026-10-01T00:00:00.000Z");
267
-
268
- const updated = await updateContextNoteEntryFields(
269
- doc.clientId,
270
- doc.product,
271
- target._id,
272
- {
273
- title: "after",
274
- content: "changed",
275
- activeFrom,
276
- expiresAt: null,
277
- },
278
- now,
279
- );
280
-
281
- const saved = await getContextNotesCollection().findOne({
282
- clientId: doc.clientId,
283
- product: doc.product,
284
- });
285
- expect(updated?.title).toBe("after");
286
- expect(updated?.updatedAt).toEqual(now);
287
- expect(saved?.notes).toHaveLength(2);
288
- expect(saved?.notes[0].title).toBe("kept");
289
- expect(saved?.notes[1].title).toBe("after");
290
- expect(saved?.notes[1].content).toBe("changed");
291
- expect(saved?.notes[1].createdAt).toEqual(target.createdAt);
292
- });
293
-
294
- it("should return null when updating a missing note", async () => {
295
- const doc = buildContextNote({ notes: [createContextNoteEntry()] });
296
- await createContextNote(doc);
297
-
298
- const updated = await updateContextNoteEntryFields(
299
- doc.clientId,
300
- doc.product,
301
- new ObjectId(),
302
- {
303
- title: "missing",
304
- content: "missing",
305
- activeFrom: new Date(),
306
- expiresAt: null,
307
- },
308
- );
309
-
310
- expect(updated).toBeNull();
311
- });
312
-
313
- it("should pull one note and leave the others", async () => {
314
- const kept = createContextNoteEntry();
315
- const removed = createContextNoteEntry();
316
- const doc = buildContextNote({ notes: [kept, removed] });
317
- await createContextNote(doc);
318
-
319
- const pulled = await pullContextNoteEntry(
320
- doc.clientId,
321
- doc.product,
322
- removed._id,
323
- );
324
-
325
- const saved = await getContextNotesCollection().findOne({
326
- clientId: doc.clientId,
327
- product: doc.product,
328
- });
329
- expect(pulled).toBe(true);
330
- expect(saved?.notes).toHaveLength(1);
331
- expect(saved?.notes[0]._id.toString()).toBe(kept._id.toString());
332
- });
333
-
334
- it("should return false when pulling a missing note", async () => {
335
- const doc = buildContextNote({ notes: [createContextNoteEntry()] });
336
- await createContextNote(doc);
337
-
338
- const pulled = await pullContextNoteEntry(
339
- doc.clientId,
340
- doc.product,
341
- new ObjectId(),
342
- );
343
-
344
- expect(pulled).toBe(false);
345
- });
346
-
347
206
  it("should return false when deleteContextNoteEntry targets a non-existent note", async () => {
348
207
  const doc = buildContextNote({ notes: [] });
349
208
  const id = await createContextNote(doc);
@@ -1,10 +1,6 @@
1
1
  import { Collection, ObjectId, WithId } from "mongodb";
2
2
  import { getDb } from "../index";
3
- import type {
4
- ContextNote,
5
- ContextNoteEntry,
6
- ContextNoteEntryWrite,
7
- } from "./contextNotes.types";
3
+ import type { ContextNote, ContextNoteEntry } from "./contextNotes.types";
8
4
 
9
5
  export const getContextNotesCollection = (): Collection<ContextNote> => {
10
6
  return getDb().collection<ContextNote>("contextNotes");
@@ -75,76 +71,6 @@ export const setContextNoteConfig = async (
75
71
  return result.matchedCount > 0;
76
72
  };
77
73
 
78
- const findNoteEntryById = (
79
- doc: WithId<ContextNote> | null,
80
- noteId: ObjectId,
81
- ): ContextNoteEntry | null =>
82
- doc?.notes.find((note) => note._id.equals(noteId)) ?? null;
83
-
84
- /** Appends one note. Other notes on the document are left untouched. */
85
- export const appendContextNoteEntry = async (
86
- clientId: string,
87
- product: string,
88
- entry: ContextNoteEntryWrite,
89
- now: Date = new Date(),
90
- ): Promise<ContextNoteEntry> => {
91
- const note: ContextNoteEntry = {
92
- _id: new ObjectId(),
93
- title: entry.title,
94
- content: entry.content,
95
- activeFrom: entry.activeFrom,
96
- expiresAt: entry.expiresAt,
97
- createdAt: now,
98
- updatedAt: now,
99
- };
100
-
101
- const saved = await getContextNotesCollection().findOneAndUpdate(
102
- { clientId, product },
103
- { $push: { notes: note } },
104
- { upsert: true, returnDocument: "after" },
105
- );
106
-
107
- return findNoteEntryById(saved, note._id) ?? note;
108
- };
109
-
110
- /** Replaces one note's fields. Other notes on the document are left untouched. */
111
- export const updateContextNoteEntryFields = async (
112
- clientId: string,
113
- product: string,
114
- noteId: ObjectId,
115
- entry: ContextNoteEntryWrite,
116
- now: Date = new Date(),
117
- ): Promise<ContextNoteEntry | null> => {
118
- const saved = await getContextNotesCollection().findOneAndUpdate(
119
- { clientId, product, "notes._id": noteId },
120
- {
121
- $set: {
122
- "notes.$.title": entry.title,
123
- "notes.$.content": entry.content,
124
- "notes.$.activeFrom": entry.activeFrom,
125
- "notes.$.expiresAt": entry.expiresAt,
126
- "notes.$.updatedAt": now,
127
- },
128
- },
129
- { returnDocument: "after" },
130
- );
131
-
132
- return findNoteEntryById(saved, noteId);
133
- };
134
-
135
- /** Removes one note by id. Other notes on the document are left untouched. */
136
- export const pullContextNoteEntry = async (
137
- clientId: string,
138
- product: string,
139
- noteId: ObjectId,
140
- ): Promise<boolean> => {
141
- const result = await getContextNotesCollection().updateOne(
142
- { clientId, product, "notes._id": noteId },
143
- { $pull: { notes: { _id: noteId } } },
144
- );
145
- return result.modifiedCount > 0;
146
- };
147
-
148
74
  /** Removes a single note entry from a document by its _id. */
149
75
  export const deleteContextNoteEntry = async (
150
76
  id: ObjectId,
@@ -10,13 +10,6 @@ export type ContextNoteEntry = {
10
10
  updatedAt: Date;
11
11
  };
12
12
 
13
- export type ContextNoteEntryWrite = {
14
- title: string;
15
- content: string;
16
- activeFrom: Date;
17
- expiresAt: Date | null;
18
- };
19
-
20
13
  export type ContextNote = {
21
14
  _id: ObjectId;
22
15
  clientId: string;
@@ -3,6 +3,17 @@ import { getDb } from "../../index";
3
3
  import { flowMongoSchema } from "../flows.schema";
4
4
 
5
5
  describe("flowMongoSchema", () => {
6
+ it("defines keypadInput as an optional object", () => {
7
+ const schema: any = flowMongoSchema;
8
+
9
+ expect(schema.properties).toHaveProperty("keypadInput");
10
+ expect(schema.properties.keypadInput.bsonType).toEqual(["object", "null"]);
11
+ expect(schema.properties.keypadInput.properties.enabled.bsonType).toBe(
12
+ "bool",
13
+ );
14
+ expect(schema.required).not.toContain("keypadInput");
15
+ });
16
+
6
17
  it("defines disableGenericPrompt as optional bool", () => {
7
18
  const schema: any = flowMongoSchema;
8
19
 
@@ -13,6 +13,13 @@ export const flowMongoSchema = {
13
13
  systemInstructions: { bsonType: "string" },
14
14
  initialSentence: { bsonType: "string" },
15
15
  disableGenericPrompt: { bsonType: "bool" },
16
+ keypadInput: {
17
+ bsonType: ["object", "null"],
18
+ properties: {
19
+ enabled: { bsonType: "bool" },
20
+ },
21
+ additionalProperties: false,
22
+ },
16
23
  voice: { bsonType: ["string", "null"] },
17
24
  conversationSettings: {
18
25
  bsonType: ["object", "null"],
@@ -181,6 +181,7 @@ export type Flow = {
181
181
  freeTextContent?: string;
182
182
  isFreeText?: boolean;
183
183
  disableGenericPrompt?: boolean;
184
+ keypadInput?: { enabled?: boolean } | null;
184
185
  _id?: ObjectId;
185
186
 
186
187
  flowName: string;
@@ -1,2 +0,0 @@
1
- export declare function seedGptLiveDocuments(): Promise<void>;
2
- //# sourceMappingURL=gptLive.seed.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gptLive.seed.d.ts","sourceRoot":"","sources":["../../src/configuration/gptLive.seed.ts"],"names":[],"mappings":"AA2BA,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAyC1D"}
@@ -1,59 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.seedGptLiveDocuments = seedGptLiveDocuments;
4
- const mongodb_1 = require("mongodb");
5
- const models_getters_1 = require("./models/models.getters");
6
- const prompts_getters_1 = require("./prompts/prompts.getters");
7
- const GPT_LIVE_MODEL_ID = "gpt-live-1";
8
- const VOICE_PROMPT = "gptLiveVoiceInstructions";
9
- const BACKEND_PROMPT = "gptLiveBackendInstructions";
10
- const VOICE_INSTRUCTIONS = [
11
- "You are a phone agent on a live call. Speak naturally and briefly.",
12
- "{{flowInstructions}}",
13
- "Backchannel: {{backchannelPolicy}}",
14
- "Interruptions: {{interruptionPolicy}}",
15
- "Delegation: {{delegationPolicy}}",
16
- "When the flow is finished, say one short closing line and then stop talking.",
17
- ].join("\n");
18
- const BACKEND_INSTRUCTIONS = [
19
- "You are the reasoning backend for a phone agent. Use the tools to do the work.",
20
- "Return only what the tools returned. Never invent a result, a ticket number, or a confirmation.",
21
- "{{flowInstructions}}",
22
- "{{backchannelPolicy}}",
23
- "{{interruptionPolicy}}",
24
- "{{delegationPolicy}}",
25
- ].join("\n");
26
- async function seedGptLiveDocuments() {
27
- const now = new Date();
28
- await (0, models_getters_1.getModelsCollection)().updateOne({ modelId: GPT_LIVE_MODEL_ID, type: "realtime" }, {
29
- $setOnInsert: {
30
- _id: new mongodb_1.ObjectId(),
31
- modelId: GPT_LIVE_MODEL_ID,
32
- name: "GPT-Live 1",
33
- description: "Turnless full-duplex voice",
34
- type: "realtime",
35
- provider: "openai-live",
36
- available: true,
37
- features: { supportsAudio: true },
38
- configDefaults: { backendModel: "gpt-5.6-luna" },
39
- createdAt: now,
40
- updatedAt: now,
41
- },
42
- }, { upsert: true });
43
- for (const prompt of [
44
- { name: VOICE_PROMPT, content: VOICE_INSTRUCTIONS },
45
- { name: BACKEND_PROMPT, content: BACKEND_INSTRUCTIONS },
46
- ]) {
47
- await (0, prompts_getters_1.getPromptsCollection)().updateOne({ name: prompt.name }, {
48
- $setOnInsert: {
49
- _id: new mongodb_1.ObjectId(),
50
- name: prompt.name,
51
- content: prompt.content,
52
- productName: "municipal",
53
- createdAt: now,
54
- updatedAt: now,
55
- },
56
- }, { upsert: true });
57
- }
58
- }
59
- //# sourceMappingURL=gptLive.seed.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gptLive.seed.js","sourceRoot":"","sources":["../../src/configuration/gptLive.seed.ts"],"names":[],"mappings":";;AA2BA,oDAyCC;AApED,qCAA2C;AAC3C,4DAA8D;AAC9D,+DAAiE;AAGjE,MAAM,iBAAiB,GAAG,YAAY,CAAC;AACvC,MAAM,YAAY,GAAG,0BAA0B,CAAC;AAChD,MAAM,cAAc,GAAG,4BAA4B,CAAC;AAEpD,MAAM,kBAAkB,GAAG;IACzB,oEAAoE;IACpE,sBAAsB;IACtB,oCAAoC;IACpC,uCAAuC;IACvC,kCAAkC;IAClC,8EAA8E;CAC/E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,oBAAoB,GAAG;IAC3B,gFAAgF;IAChF,iGAAiG;IACjG,sBAAsB;IACtB,uBAAuB;IACvB,wBAAwB;IACxB,sBAAsB;CACvB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEN,KAAK,UAAU,oBAAoB;IACxC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,IAAA,oCAAmB,GAAE,CAAC,SAAS,CACnC,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,UAAU,EAAsB,EACpE;QACE,YAAY,EAAE;YACZ,GAAG,EAAE,IAAI,kBAAQ,EAAE;YACnB,OAAO,EAAE,iBAAiB;YAC1B,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,4BAA4B;YACzC,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,aAAa;YACvB,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;YACjC,cAAc,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE;YAChD,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;SACQ;KACzB,EACD,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI;QACnB,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,kBAAkB,EAAE;QACnD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,oBAAoB,EAAE;KACxD,EAAE,CAAC;QACF,MAAM,IAAA,sCAAoB,GAAE,CAAC,SAAS,CACpC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,EACrB;YACE,YAAY,EAAE;gBACZ,GAAG,EAAE,IAAI,kBAAQ,EAAE;gBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,WAAW,EAAE,WAAW;gBACxB,SAAS,EAAE,GAAG;gBACd,SAAS,EAAE,GAAG;aACf;SACF,EACD,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare const FULL_QUOTA_THRESHOLD = 100;
2
- //# sourceMappingURL=clients.quota.constants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clients.quota.constants.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/clients/clients.quota.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,MAAM,CAAC"}
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FULL_QUOTA_THRESHOLD = void 0;
4
- exports.FULL_QUOTA_THRESHOLD = 100;
5
- //# sourceMappingURL=clients.quota.constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clients.quota.constants.js","sourceRoot":"","sources":["../../../src/talkpilot/clients/clients.quota.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,GAAG,CAAC"}
@@ -1,8 +0,0 @@
1
- import type { ClientQuotaNotifications, ClientQuotaState, ClientQuotaStatus, QuotaThresholdAlert } from "./clients.quota.types";
2
- export declare const computeClientQuotaStatus: (quota: ClientQuotaState | null) => ClientQuotaStatus;
3
- export declare const getQuotaAlerts: (quota?: ClientQuotaState) => QuotaThresholdAlert[];
4
- export declare const findFullQuotaAlertIndex: (alerts: QuotaThresholdAlert[]) => number;
5
- export declare const getFullQuotaAlert: (quota?: ClientQuotaState) => QuotaThresholdAlert | undefined;
6
- export declare const isFullQuotaAlert: (thresholdPct: number) => boolean;
7
- export declare const toClientQuotaNotifications: (quota: ClientQuotaState | null) => ClientQuotaNotifications;
8
- //# sourceMappingURL=clients.quota.utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clients.quota.utils.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/clients/clients.quota.utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAQ/B,eAAO,MAAM,wBAAwB,GACnC,OAAO,gBAAgB,GAAG,IAAI,KAC7B,iBAiBF,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,QAAQ,gBAAgB,KAAG,mBAAmB,EAClC,CAAC;AAE5C,eAAO,MAAM,uBAAuB,GAAI,QAAQ,mBAAmB,EAAE,KAAG,MACP,CAAC;AAElE,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,gBAAgB,KACvB,mBAAmB,GAAG,SAIxB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,cAAc,MAAM,KAAG,OAClB,CAAC;AAEvC,eAAO,MAAM,0BAA0B,GACrC,OAAO,gBAAgB,GAAG,IAAI,KAC7B,wBASD,CAAC"}
@@ -1,45 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toClientQuotaNotifications = exports.isFullQuotaAlert = exports.getFullQuotaAlert = exports.findFullQuotaAlertIndex = exports.getQuotaAlerts = exports.computeClientQuotaStatus = void 0;
4
- const clients_quota_constants_1 = require("./clients.quota.constants");
5
- const computeUsagePct = (usedQuota, totalQuota) => totalQuota > 0 ? Math.round((usedQuota / totalQuota) * 100) : 0;
6
- const isPastExpiration = (expiresAt) => expiresAt ? Date.now() > new Date(expiresAt).getTime() : false;
7
- const computeClientQuotaStatus = (quota) => {
8
- if (!quota) {
9
- return { hasQuota: false };
10
- }
11
- const totalQuota = quota.totalQuota;
12
- const usedQuota = quota.usedQuota ?? 0;
13
- return {
14
- hasQuota: true,
15
- totalQuota,
16
- usedQuota,
17
- pct: computeUsagePct(usedQuota, totalQuota),
18
- expiresAt: quota.expiresAt ? new Date(quota.expiresAt).toISOString() : null,
19
- isExceeded: usedQuota >= totalQuota,
20
- isExpired: isPastExpiration(quota.expiresAt),
21
- };
22
- };
23
- exports.computeClientQuotaStatus = computeClientQuotaStatus;
24
- const getQuotaAlerts = (quota) => quota?.alerts?.length ? quota.alerts : [];
25
- exports.getQuotaAlerts = getQuotaAlerts;
26
- const findFullQuotaAlertIndex = (alerts) => alerts.findIndex((a) => a.thresholdPct >= clients_quota_constants_1.FULL_QUOTA_THRESHOLD);
27
- exports.findFullQuotaAlertIndex = findFullQuotaAlertIndex;
28
- const getFullQuotaAlert = (quota) => {
29
- const alerts = (0, exports.getQuotaAlerts)(quota);
30
- const index = (0, exports.findFullQuotaAlertIndex)(alerts);
31
- return index >= 0 ? alerts[index] : undefined;
32
- };
33
- exports.getFullQuotaAlert = getFullQuotaAlert;
34
- const isFullQuotaAlert = (thresholdPct) => thresholdPct >= clients_quota_constants_1.FULL_QUOTA_THRESHOLD;
35
- exports.isFullQuotaAlert = isFullQuotaAlert;
36
- const toClientQuotaNotifications = (quota) => ({
37
- alerts: (0, exports.getQuotaAlerts)(quota ?? undefined).map(({ thresholdPct, recipientEmails, thresholdSent }) => ({
38
- thresholdPct,
39
- recipientEmails: recipientEmails ?? [],
40
- ...(thresholdSent ? { thresholdSent: true } : {}),
41
- })),
42
- ...(quota?.expiredSent ? { expiredSent: true } : {}),
43
- });
44
- exports.toClientQuotaNotifications = toClientQuotaNotifications;
45
- //# sourceMappingURL=clients.quota.utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clients.quota.utils.js","sourceRoot":"","sources":["../../../src/talkpilot/clients/clients.quota.utils.ts"],"names":[],"mappings":"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"}