@apart-tech/intelligence-core 1.11.5 → 1.11.6

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 (84) hide show
  1. package/dist/auth/ability.d.ts +4 -4
  2. package/dist/auth/ability.d.ts.map +1 -1
  3. package/dist/auth/ability.js +17 -11
  4. package/dist/auth/ability.js.map +1 -1
  5. package/dist/auth/ability.test.js +25 -12
  6. package/dist/auth/ability.test.js.map +1 -1
  7. package/dist/config/index.d.ts.map +1 -1
  8. package/dist/config/index.js +5 -1
  9. package/dist/config/index.js.map +1 -1
  10. package/dist/db/tenant.d.ts.map +1 -1
  11. package/dist/db/tenant.js +8 -0
  12. package/dist/db/tenant.js.map +1 -1
  13. package/dist/index.d.ts +6 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +4 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/services/__tests__/chunk-service.test.d.ts +2 -0
  18. package/dist/services/__tests__/chunk-service.test.d.ts.map +1 -0
  19. package/dist/services/__tests__/chunk-service.test.js +111 -0
  20. package/dist/services/__tests__/chunk-service.test.js.map +1 -0
  21. package/dist/services/__tests__/chunker.test.d.ts +2 -0
  22. package/dist/services/__tests__/chunker.test.d.ts.map +1 -0
  23. package/dist/services/__tests__/chunker.test.js +113 -0
  24. package/dist/services/__tests__/chunker.test.js.map +1 -0
  25. package/dist/services/__tests__/node-service.test.d.ts +2 -0
  26. package/dist/services/__tests__/node-service.test.d.ts.map +1 -0
  27. package/dist/services/__tests__/node-service.test.js +207 -0
  28. package/dist/services/__tests__/node-service.test.js.map +1 -0
  29. package/dist/services/__tests__/pii-detector-service.test.js +51 -0
  30. package/dist/services/__tests__/pii-detector-service.test.js.map +1 -1
  31. package/dist/services/__tests__/pii-encryption-service.test.js +37 -0
  32. package/dist/services/__tests__/pii-encryption-service.test.js.map +1 -1
  33. package/dist/services/__tests__/search-service.test.d.ts +2 -0
  34. package/dist/services/__tests__/search-service.test.d.ts.map +1 -0
  35. package/dist/services/__tests__/search-service.test.js +163 -0
  36. package/dist/services/__tests__/search-service.test.js.map +1 -0
  37. package/dist/services/backfill-chunks.d.ts +30 -0
  38. package/dist/services/backfill-chunks.d.ts.map +1 -0
  39. package/dist/services/backfill-chunks.js +55 -0
  40. package/dist/services/backfill-chunks.js.map +1 -0
  41. package/dist/services/chunk-service.d.ts +45 -0
  42. package/dist/services/chunk-service.d.ts.map +1 -0
  43. package/dist/services/chunk-service.js +111 -0
  44. package/dist/services/chunk-service.js.map +1 -0
  45. package/dist/services/chunker.d.ts +32 -0
  46. package/dist/services/chunker.d.ts.map +1 -0
  47. package/dist/services/chunker.js +289 -0
  48. package/dist/services/chunker.js.map +1 -0
  49. package/dist/services/context-service.d.ts +3 -1
  50. package/dist/services/context-service.d.ts.map +1 -1
  51. package/dist/services/context-service.js +17 -1
  52. package/dist/services/context-service.js.map +1 -1
  53. package/dist/services/node-service.d.ts +12 -1
  54. package/dist/services/node-service.d.ts.map +1 -1
  55. package/dist/services/node-service.js +54 -11
  56. package/dist/services/node-service.js.map +1 -1
  57. package/dist/services/pii-detector-service.d.ts +1 -0
  58. package/dist/services/pii-detector-service.d.ts.map +1 -1
  59. package/dist/services/pii-detector-service.js +95 -2
  60. package/dist/services/pii-detector-service.js.map +1 -1
  61. package/dist/services/pii-encryption-service.d.ts +10 -0
  62. package/dist/services/pii-encryption-service.d.ts.map +1 -1
  63. package/dist/services/pii-encryption-service.js +32 -0
  64. package/dist/services/pii-encryption-service.js.map +1 -1
  65. package/dist/services/search-service.d.ts +30 -1
  66. package/dist/services/search-service.d.ts.map +1 -1
  67. package/dist/services/search-service.js +262 -45
  68. package/dist/services/search-service.js.map +1 -1
  69. package/dist/services/tag-service.d.ts +78 -0
  70. package/dist/services/tag-service.d.ts.map +1 -0
  71. package/dist/services/tag-service.js +639 -0
  72. package/dist/services/tag-service.js.map +1 -0
  73. package/dist/services/tag-service.test.d.ts +2 -0
  74. package/dist/services/tag-service.test.d.ts.map +1 -0
  75. package/dist/services/tag-service.test.js +448 -0
  76. package/dist/services/tag-service.test.js.map +1 -0
  77. package/dist/services/workspace-service.d.ts +2 -0
  78. package/dist/services/workspace-service.d.ts.map +1 -1
  79. package/dist/services/workspace-service.js +7 -1
  80. package/dist/services/workspace-service.js.map +1 -1
  81. package/dist/types/index.d.ts +67 -2
  82. package/dist/types/index.d.ts.map +1 -1
  83. package/package.json +2 -2
  84. package/prisma/schema.prisma +180 -3
@@ -0,0 +1,289 @@
1
+ /**
2
+ * Pure text splitting function for content chunking.
3
+ * No I/O — takes text, returns chunk descriptors.
4
+ */
5
+ /** Target chunk size in estimated tokens */
6
+ export const TARGET_CHUNK_TOKENS = 400;
7
+ /** Hard cap — never exceed this */
8
+ export const MAX_CHUNK_TOKENS = 600;
9
+ /** Rough token estimate: ~4 chars per token */
10
+ export function estimateTokens(text) {
11
+ return Math.ceil(text.length / 4);
12
+ }
13
+ /**
14
+ * Parse markdown text into sections by headings.
15
+ * Each section carries its heading context and start offset.
16
+ */
17
+ function parseSections(text) {
18
+ const sections = [];
19
+ const headingRe = /^(#{1,6})\s+(.+)$/gm;
20
+ let lastIndex = 0;
21
+ let currentHeading = null;
22
+ let match;
23
+ while ((match = headingRe.exec(text)) !== null) {
24
+ // Content before this heading belongs to the previous section
25
+ if (match.index > lastIndex) {
26
+ const content = text.slice(lastIndex, match.index);
27
+ if (content.trim()) {
28
+ sections.push({
29
+ heading: currentHeading,
30
+ content,
31
+ startOffset: lastIndex,
32
+ });
33
+ }
34
+ }
35
+ currentHeading = match[2].trim();
36
+ lastIndex = match.index + match[0].length;
37
+ // Skip the newline after the heading
38
+ if (text[lastIndex] === "\n")
39
+ lastIndex++;
40
+ }
41
+ // Remaining content after last heading
42
+ if (lastIndex < text.length) {
43
+ const content = text.slice(lastIndex);
44
+ if (content.trim()) {
45
+ sections.push({
46
+ heading: currentHeading,
47
+ content,
48
+ startOffset: lastIndex,
49
+ });
50
+ }
51
+ }
52
+ // If no headings found, treat entire text as one section
53
+ if (sections.length === 0 && text.trim()) {
54
+ sections.push({ heading: null, content: text, startOffset: 0 });
55
+ }
56
+ return sections;
57
+ }
58
+ /**
59
+ * Check if a line starts a fenced code block (``` or ~~~).
60
+ */
61
+ function isCodeFence(line) {
62
+ const trimmed = line.trimStart();
63
+ return trimmed.startsWith("```") || trimmed.startsWith("~~~");
64
+ }
65
+ /**
66
+ * Split section content into paragraphs, keeping code blocks atomic.
67
+ * Returns array of paragraph strings.
68
+ */
69
+ function splitParagraphs(text) {
70
+ const lines = text.split("\n");
71
+ const paragraphs = [];
72
+ let current = [];
73
+ let inCodeBlock = false;
74
+ for (const line of lines) {
75
+ if (isCodeFence(line)) {
76
+ if (inCodeBlock) {
77
+ // Closing fence — end of code block
78
+ current.push(line);
79
+ inCodeBlock = false;
80
+ continue;
81
+ }
82
+ else {
83
+ // Opening fence — if we have accumulated text, flush it
84
+ if (current.length > 0 && current.some((l) => l.trim())) {
85
+ paragraphs.push(current.join("\n"));
86
+ current = [];
87
+ }
88
+ inCodeBlock = true;
89
+ current.push(line);
90
+ continue;
91
+ }
92
+ }
93
+ if (inCodeBlock) {
94
+ current.push(line);
95
+ continue;
96
+ }
97
+ // Empty line = paragraph boundary
98
+ if (line.trim() === "") {
99
+ if (current.length > 0 && current.some((l) => l.trim())) {
100
+ paragraphs.push(current.join("\n"));
101
+ current = [];
102
+ }
103
+ }
104
+ else {
105
+ current.push(line);
106
+ }
107
+ }
108
+ // Flush remaining
109
+ if (current.length > 0 && current.some((l) => l.trim())) {
110
+ paragraphs.push(current.join("\n"));
111
+ }
112
+ return paragraphs;
113
+ }
114
+ /**
115
+ * Find the last sentence boundary in text.
116
+ * Returns the index after the sentence-ending punctuation + space,
117
+ * or -1 if no boundary found.
118
+ */
119
+ function lastSentenceBoundary(text) {
120
+ // Look for ". " or "! " or "? " from the end
121
+ const sentenceEndRe = /[.!?]\s/g;
122
+ let lastIdx = -1;
123
+ let m;
124
+ while ((m = sentenceEndRe.exec(text)) !== null) {
125
+ lastIdx = m.index + m[0].length;
126
+ }
127
+ return lastIdx;
128
+ }
129
+ /**
130
+ * Split a single long paragraph into chunks at sentence boundaries.
131
+ * Returns chunks with overlap information.
132
+ */
133
+ function splitLongParagraph(text, heading, baseOffset) {
134
+ const chunks = [];
135
+ let remaining = text;
136
+ let offset = baseOffset;
137
+ let chunkIndex = 0;
138
+ let overlapText = "";
139
+ while (remaining.length > 0) {
140
+ const withOverlap = overlapText + remaining;
141
+ const overlapLen = overlapText.length;
142
+ if (estimateTokens(withOverlap) <= MAX_CHUNK_TOKENS) {
143
+ // Fits in one chunk
144
+ chunks.push({
145
+ content: withOverlap.trim(),
146
+ chunkIndex,
147
+ tokenCount: estimateTokens(withOverlap.trim()),
148
+ headingContext: heading,
149
+ startOffset: offset - overlapLen,
150
+ endOffset: offset + remaining.length,
151
+ overlapPrev: overlapLen,
152
+ });
153
+ break;
154
+ }
155
+ // Need to split — find a good boundary within TARGET_CHUNK_TOKENS
156
+ const targetChars = TARGET_CHUNK_TOKENS * 4;
157
+ const candidateEnd = Math.min(targetChars, withOverlap.length);
158
+ const candidate = withOverlap.slice(0, candidateEnd);
159
+ const boundary = lastSentenceBoundary(candidate);
160
+ let splitAt;
161
+ if (boundary > overlapLen && boundary > candidate.length * 0.3) {
162
+ splitAt = boundary;
163
+ }
164
+ else {
165
+ // No good sentence boundary — split at target size
166
+ splitAt = candidateEnd;
167
+ }
168
+ const chunkContent = withOverlap.slice(0, splitAt).trim();
169
+ const consumedFromRemaining = splitAt - overlapLen;
170
+ chunks.push({
171
+ content: chunkContent,
172
+ chunkIndex,
173
+ tokenCount: estimateTokens(chunkContent),
174
+ headingContext: heading,
175
+ startOffset: offset - overlapLen,
176
+ endOffset: offset + consumedFromRemaining,
177
+ overlapPrev: overlapLen,
178
+ });
179
+ // Build overlap for next chunk: last 1-2 sentences
180
+ const overlapCandidate = withOverlap.slice(Math.max(0, splitAt - 240), splitAt);
181
+ const overlapBoundary = lastSentenceBoundary(overlapCandidate);
182
+ if (overlapBoundary > 0) {
183
+ overlapText = overlapCandidate.slice(overlapBoundary);
184
+ }
185
+ else {
186
+ overlapText = "";
187
+ }
188
+ remaining = remaining.slice(consumedFromRemaining);
189
+ offset += consumedFromRemaining;
190
+ chunkIndex++;
191
+ }
192
+ return chunks;
193
+ }
194
+ /**
195
+ * Main entry point: split text into chunks suitable for embedding.
196
+ *
197
+ * Algorithm:
198
+ * 1. Parse markdown headings into sections
199
+ * 2. Within each section, split into paragraphs
200
+ * 3. Accumulate paragraphs into chunks up to ~TARGET_CHUNK_TOKENS
201
+ * 4. Structural boundaries (headings, paragraph breaks) → overlap = 0
202
+ * 5. Forced mid-paragraph splits → overlap = trailing sentences
203
+ * 6. Code blocks are atomic — never split within
204
+ */
205
+ export function chunkText(text) {
206
+ if (!text || !text.trim())
207
+ return [];
208
+ const sections = parseSections(text);
209
+ const allChunks = [];
210
+ let globalChunkIndex = 0;
211
+ for (const section of sections) {
212
+ const paragraphs = splitParagraphs(section.content);
213
+ let currentParagraphs = [];
214
+ let currentTokens = 0;
215
+ let chunkStartOffset = section.startOffset;
216
+ for (const para of paragraphs) {
217
+ const paraTokens = estimateTokens(para);
218
+ // Single paragraph exceeds max — split it
219
+ if (paraTokens > MAX_CHUNK_TOKENS) {
220
+ // Flush accumulated paragraphs first
221
+ if (currentParagraphs.length > 0) {
222
+ const content = currentParagraphs.join("\n\n").trim();
223
+ if (content) {
224
+ allChunks.push({
225
+ content,
226
+ chunkIndex: globalChunkIndex++,
227
+ tokenCount: estimateTokens(content),
228
+ headingContext: section.heading,
229
+ startOffset: chunkStartOffset,
230
+ endOffset: chunkStartOffset + content.length,
231
+ overlapPrev: 0,
232
+ });
233
+ }
234
+ currentParagraphs = [];
235
+ currentTokens = 0;
236
+ }
237
+ // Split the long paragraph
238
+ const paraOffset = section.startOffset +
239
+ section.content.indexOf(para);
240
+ const subChunks = splitLongParagraph(para, section.heading, paraOffset);
241
+ for (const sub of subChunks) {
242
+ allChunks.push({
243
+ ...sub,
244
+ chunkIndex: globalChunkIndex++,
245
+ });
246
+ }
247
+ chunkStartOffset = paraOffset + para.length;
248
+ continue;
249
+ }
250
+ // Would exceed target — flush current
251
+ if (currentTokens + paraTokens > TARGET_CHUNK_TOKENS && currentParagraphs.length > 0) {
252
+ const content = currentParagraphs.join("\n\n").trim();
253
+ if (content) {
254
+ allChunks.push({
255
+ content,
256
+ chunkIndex: globalChunkIndex++,
257
+ tokenCount: estimateTokens(content),
258
+ headingContext: section.heading,
259
+ startOffset: chunkStartOffset,
260
+ endOffset: chunkStartOffset + content.length,
261
+ overlapPrev: 0,
262
+ });
263
+ }
264
+ chunkStartOffset = section.startOffset + section.content.indexOf(para);
265
+ currentParagraphs = [];
266
+ currentTokens = 0;
267
+ }
268
+ currentParagraphs.push(para);
269
+ currentTokens += paraTokens;
270
+ }
271
+ // Flush remaining paragraphs in section
272
+ if (currentParagraphs.length > 0) {
273
+ const content = currentParagraphs.join("\n\n").trim();
274
+ if (content) {
275
+ allChunks.push({
276
+ content,
277
+ chunkIndex: globalChunkIndex++,
278
+ tokenCount: estimateTokens(content),
279
+ headingContext: section.heading,
280
+ startOffset: chunkStartOffset,
281
+ endOffset: chunkStartOffset + content.length,
282
+ overlapPrev: 0,
283
+ });
284
+ }
285
+ }
286
+ }
287
+ return allChunks;
288
+ }
289
+ //# sourceMappingURL=chunker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunker.js","sourceRoot":"","sources":["../../src/services/chunker.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import type { EdgeService } from "./edge-service.js";
4
4
  import type { NodeService } from "./node-service.js";
5
5
  import type { WorkspaceService } from "./workspace-service.js";
6
6
  import type { DomainService } from "./domain-service.js";
7
+ import type { ChunkService } from "./chunk-service.js";
7
8
  export declare class ContextService {
8
9
  private nodeService;
9
10
  private edgeService;
@@ -11,7 +12,8 @@ export declare class ContextService {
11
12
  private config;
12
13
  private workspaceService?;
13
14
  private domainService?;
14
- constructor(nodeService: NodeService, edgeService: EdgeService, searchService: SearchService, config: ApartConfig, workspaceService?: WorkspaceService | undefined, domainService?: DomainService | undefined);
15
+ private chunkService?;
16
+ constructor(nodeService: NodeService, edgeService: EdgeService, searchService: SearchService, config: ApartConfig, workspaceService?: WorkspaceService | undefined, domainService?: DomainService | undefined, chunkService?: ChunkService | undefined);
15
17
  assemble(options: ContextOptions): Promise<ContextPackage>;
16
18
  }
17
19
  //# sourceMappingURL=context-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context-service.d.ts","sourceRoot":"","sources":["../../src/services/context-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,WAAW,EAGZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,qBAAa,cAAc;IAEvB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,gBAAgB,CAAC;IACzB,OAAO,CAAC,aAAa,CAAC;gBALd,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,WAAW,EACnB,gBAAgB,CAAC,EAAE,gBAAgB,YAAA,EACnC,aAAa,CAAC,EAAE,aAAa,YAAA;IAGjC,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;CAsGjE"}
1
+ {"version":3,"file":"context-service.d.ts","sourceRoot":"","sources":["../../src/services/context-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,WAAW,EAGZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,qBAAa,cAAc;IAEvB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,gBAAgB,CAAC;IACzB,OAAO,CAAC,aAAa,CAAC;IACtB,OAAO,CAAC,YAAY,CAAC;gBANb,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,WAAW,EACnB,gBAAgB,CAAC,EAAE,gBAAgB,YAAA,EACnC,aAAa,CAAC,EAAE,aAAa,YAAA,EAC7B,YAAY,CAAC,EAAE,YAAY,YAAA;IAG/B,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;CAoHjE"}
@@ -5,13 +5,15 @@ export class ContextService {
5
5
  config;
6
6
  workspaceService;
7
7
  domainService;
8
- constructor(nodeService, edgeService, searchService, config, workspaceService, domainService) {
8
+ chunkService;
9
+ constructor(nodeService, edgeService, searchService, config, workspaceService, domainService, chunkService) {
9
10
  this.nodeService = nodeService;
10
11
  this.edgeService = edgeService;
11
12
  this.searchService = searchService;
12
13
  this.config = config;
13
14
  this.workspaceService = workspaceService;
14
15
  this.domainService = domainService;
16
+ this.chunkService = chunkService;
15
17
  }
16
18
  async assemble(options) {
17
19
  // Resolve workspace filter and merge into options (workspace values as defaults, explicit options override)
@@ -91,12 +93,26 @@ export class ContextService {
91
93
  edgeIds.add(e.id);
92
94
  return true;
93
95
  });
96
+ // Fetch chunks for context nodes if chunk service is available
97
+ let chunks;
98
+ if (this.chunkService) {
99
+ chunks = {};
100
+ for (const node of allNodes) {
101
+ const nodeChunks = await this.chunkService.getByNodeId(node.id);
102
+ if (nodeChunks.length > 0) {
103
+ chunks[node.id] = nodeChunks.map((c) => c.content);
104
+ }
105
+ }
106
+ if (Object.keys(chunks).length === 0)
107
+ chunks = undefined;
108
+ }
94
109
  return {
95
110
  nodes: allNodes,
96
111
  edges: uniqueEdges,
97
112
  query: options.query,
98
113
  assembledAt: new Date().toISOString(),
99
114
  ...(workspaceInfo && { workspace: workspaceInfo }),
115
+ ...(chunks && { chunks }),
100
116
  };
101
117
  }
102
118
  }
@@ -1 +1 @@
1
- {"version":3,"file":"context-service.js","sourceRoot":"","sources":["../../src/services/context-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-service.js","sourceRoot":"","sources":["../../src/services/context-service.ts"],"names":[],"mappings":"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"}
@@ -3,13 +3,15 @@ import type { Node, NodeStatus, EmbeddingProvider } from "../types/index.js";
3
3
  import { type TenantContext } from "../db/tenant.js";
4
4
  import type { PiiEncryptionService } from "./pii-encryption-service.js";
5
5
  import type { PiiEncryptionOptions } from "./pii-encryption-service.js";
6
+ import type { ChunkService } from "./chunk-service.js";
6
7
  export declare class NodeService {
7
8
  private db;
8
9
  private embeddings;
9
10
  private piiEncryption?;
10
11
  private piiOptions?;
12
+ private chunkService?;
11
13
  private tenantCtx;
12
- constructor(db: PrismaClient, embeddings: EmbeddingProvider, tenantCtx?: TenantContext, piiEncryption?: PiiEncryptionService | undefined, piiOptions?: PiiEncryptionOptions | undefined);
14
+ constructor(db: PrismaClient, embeddings: EmbeddingProvider, tenantCtx?: TenantContext, piiEncryption?: PiiEncryptionService | undefined, piiOptions?: PiiEncryptionOptions | undefined, chunkService?: ChunkService | undefined);
13
15
  create(input: {
14
16
  type: string;
15
17
  title: string;
@@ -51,6 +53,15 @@ export declare class NodeService {
51
53
  type: string;
52
54
  count: number;
53
55
  }[]>;
56
+ /**
57
+ * Strip PII from text before embedding to prevent PII reaching the provider.
58
+ * Returns stripped text if PII is configured and mode != disabled; else original.
59
+ */
60
+ private stripForEmbedding;
61
+ /**
62
+ * Returns the current PII mode string for provenance tracking, or null if disabled/unconfigured.
63
+ */
64
+ private resolvePiiMode;
54
65
  /**
55
66
  * Apply PII detection/encryption to node fields.
56
67
  * Returns processed fields and whether PII was found.
@@ -1 +1 @@
1
- {"version":3,"file":"node-service.d.ts","sourceRoot":"","sources":["../../src/services/node-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node-service.d.ts","sourceRoot":"","sources":["../../src/services/node-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAU,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EACV,IAAI,EACJ,UAAU,EACV,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACxF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,qBAAa,WAAW;IAIpB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,UAAU;IAElB,OAAO,CAAC,aAAa,CAAC;IACtB,OAAO,CAAC,UAAU,CAAC;IACnB,OAAO,CAAC,YAAY,CAAC;IARvB,OAAO,CAAC,SAAS,CAAgB;gBAGvB,EAAE,EAAE,YAAY,EAChB,UAAU,EAAE,iBAAiB,EACrC,SAAS,CAAC,EAAE,aAAa,EACjB,aAAa,CAAC,EAAE,oBAAoB,YAAA,EACpC,UAAU,CAAC,EAAE,oBAAoB,YAAA,EACjC,YAAY,CAAC,EAAE,YAAY,YAAA;IAK/B,MAAM,CAAC,KAAK,EAAE;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkDX,mBAAmB,CACvB,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,EACD,SAAS,EAAE,MAAM,EAAE,GAClB,OAAO,CAAC,IAAI,CAAC;IA0CV,mBAAmB,CACvB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,EACD,SAAS,EAAE,MAAM,EAAE,GAClB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IA+CjB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAsBrD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAMzC,MAAM,CACV,EAAE,EAAE,MAAM,EACV,KAAK,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GACA,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAsDjB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAa/D,UAAU,CAAC,KAAK,SAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAQvC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAcpC,SAAS,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAS7D;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAKtB;;;OAGG;IACH,OAAO,CAAC,QAAQ;CAgCjB"}
@@ -4,20 +4,24 @@ export class NodeService {
4
4
  embeddings;
5
5
  piiEncryption;
6
6
  piiOptions;
7
+ chunkService;
7
8
  tenantCtx;
8
- constructor(db, embeddings, tenantCtx, piiEncryption, piiOptions) {
9
+ constructor(db, embeddings, tenantCtx, piiEncryption, piiOptions, chunkService) {
9
10
  this.db = db;
10
11
  this.embeddings = embeddings;
11
12
  this.piiEncryption = piiEncryption;
12
13
  this.piiOptions = piiOptions;
14
+ this.chunkService = chunkService;
13
15
  this.tenantCtx = tenantCtx ?? { organizationId: SINGLE_TENANT_ORG_ID };
14
16
  }
15
17
  async create(input) {
16
- // Generate embedding from ORIGINAL text (before PII encryption)
17
- const embedding = await this.embeddings.embed(`${input.title}\n\n${input.content}`);
18
+ // Strip PII before embedding to prevent PII reaching the provider
19
+ const textForEmbedding = this.stripForEmbedding(`${input.title}\n\n${input.content}`);
20
+ const embedding = await this.embeddings.embed(textForEmbedding);
18
21
  const embeddingStr = `[${embedding.join(",")}]`;
19
- // Process PII if configured
22
+ // Process PII if configured (encrypt for storage)
20
23
  const { title, content, metadata, hasPii } = this.applyPii(input.title, input.content, input.metadata);
24
+ const piiMode = this.resolvePiiMode();
21
25
  const node = await this.db.node.create({
22
26
  data: {
23
27
  type: input.type,
@@ -31,20 +35,26 @@ export class NodeService {
31
35
  organizationId: this.tenantCtx.organizationId,
32
36
  },
33
37
  });
34
- // Update embedding and tsvector via raw SQL using ORIGINAL text
38
+ // Update embedding, tsvector, and PII mode via raw SQL
35
39
  const orgFilter = tenantWhere(this.tenantCtx);
36
40
  await this.db.$executeRaw `
37
41
  UPDATE nodes
38
42
  SET embedding = ${embeddingStr}::vector,
39
- search_vector = to_tsvector('english', ${input.title} || ' ' || ${input.content})
43
+ search_vector = to_tsvector('english', ${input.title} || ' ' || ${input.content}),
44
+ embedding_pii_mode = ${piiMode}
40
45
  WHERE id = ${node.id}::uuid
41
46
  AND ${orgFilter}
42
47
  `;
48
+ // Chunk the node content for granular retrieval
49
+ if (this.chunkService) {
50
+ await this.chunkService.chunkAndEmbed(node.id, input.title, input.content);
51
+ }
43
52
  return node;
44
53
  }
45
54
  async createWithEmbedding(input, embedding) {
46
55
  const embeddingStr = `[${embedding.join(",")}]`;
47
56
  const { title, content, metadata, hasPii } = this.applyPii(input.title, input.content, input.metadata);
57
+ const piiMode = this.resolvePiiMode();
48
58
  const node = await this.db.node.create({
49
59
  data: {
50
60
  type: input.type,
@@ -62,10 +72,14 @@ export class NodeService {
62
72
  await this.db.$executeRaw `
63
73
  UPDATE nodes
64
74
  SET embedding = ${embeddingStr}::vector,
65
- search_vector = to_tsvector('english', ${input.title} || ' ' || ${input.content})
75
+ search_vector = to_tsvector('english', ${input.title} || ' ' || ${input.content}),
76
+ embedding_pii_mode = ${piiMode}
66
77
  WHERE id = ${node.id}::uuid
67
78
  AND ${orgFilter}
68
79
  `;
80
+ if (this.chunkService) {
81
+ await this.chunkService.chunkAndEmbed(node.id, input.title, input.content);
82
+ }
69
83
  return node;
70
84
  }
71
85
  async updateWithEmbedding(id, input, embedding) {
@@ -75,6 +89,7 @@ export class NodeService {
75
89
  const originalTitle = input.title ?? existing.title;
76
90
  const originalContent = input.content ?? existing.content;
77
91
  const { title, content, metadata, hasPii } = this.applyPii(input.title ?? existing.title, input.content ?? existing.content, input.metadata);
92
+ const piiMode = this.resolvePiiMode();
78
93
  const updated = await this.db.node.update({
79
94
  where: { id },
80
95
  data: {
@@ -93,10 +108,14 @@ export class NodeService {
93
108
  await this.db.$executeRaw `
94
109
  UPDATE nodes
95
110
  SET embedding = ${embeddingStr}::vector,
96
- search_vector = to_tsvector('english', ${originalTitle} || ' ' || ${originalContent})
111
+ search_vector = to_tsvector('english', ${originalTitle} || ' ' || ${originalContent}),
112
+ embedding_pii_mode = ${piiMode}
97
113
  WHERE id = ${id}::uuid
98
114
  AND ${orgFilter}
99
115
  `;
116
+ if (this.chunkService) {
117
+ await this.chunkService.chunkAndEmbed(id, originalTitle, originalContent);
118
+ }
100
119
  return updated;
101
120
  }
102
121
  async resolveId(idOrPrefix) {
@@ -145,18 +164,24 @@ export class NodeService {
145
164
  version: existing.version + 1,
146
165
  },
147
166
  });
148
- // Re-embed and update tsvector if content changed (use ORIGINAL text)
167
+ // Re-embed and update tsvector if content changed
149
168
  if (input.title || input.content) {
150
- const embedding = await this.embeddings.embed(`${originalTitle}\n\n${originalContent}`);
169
+ const textForEmbedding = this.stripForEmbedding(`${originalTitle}\n\n${originalContent}`);
170
+ const embedding = await this.embeddings.embed(textForEmbedding);
151
171
  const embeddingStr = `[${embedding.join(",")}]`;
172
+ const piiMode = this.resolvePiiMode();
152
173
  const orgFilter = tenantWhere(this.tenantCtx);
153
174
  await this.db.$executeRaw `
154
175
  UPDATE nodes
155
176
  SET embedding = ${embeddingStr}::vector,
156
- search_vector = to_tsvector('english', ${originalTitle} || ' ' || ${originalContent})
177
+ search_vector = to_tsvector('english', ${originalTitle} || ' ' || ${originalContent}),
178
+ embedding_pii_mode = ${piiMode}
157
179
  WHERE id = ${id}::uuid
158
180
  AND ${orgFilter}
159
181
  `;
182
+ if (this.chunkService) {
183
+ await this.chunkService.chunkAndEmbed(id, originalTitle, originalContent);
184
+ }
160
185
  }
161
186
  return updated;
162
187
  }
@@ -204,6 +229,24 @@ export class NodeService {
204
229
  });
205
230
  return result.map((r) => ({ type: r.type, count: r._count.type }));
206
231
  }
232
+ /**
233
+ * Strip PII from text before embedding to prevent PII reaching the provider.
234
+ * Returns stripped text if PII is configured and mode != disabled; else original.
235
+ */
236
+ stripForEmbedding(text) {
237
+ if (!this.piiEncryption || !this.piiOptions || this.piiOptions.mode === "disabled") {
238
+ return text;
239
+ }
240
+ return this.piiEncryption.stripPii(text, this.piiOptions.allowedPiiTypes).text;
241
+ }
242
+ /**
243
+ * Returns the current PII mode string for provenance tracking, or null if disabled/unconfigured.
244
+ */
245
+ resolvePiiMode() {
246
+ if (!this.piiOptions || this.piiOptions.mode === "disabled")
247
+ return null;
248
+ return this.piiOptions.mode;
249
+ }
207
250
  /**
208
251
  * Apply PII detection/encryption to node fields.
209
252
  * Returns processed fields and whether PII was found.
@@ -1 +1 @@
1
- {"version":3,"file":"node-service.js","sourceRoot":"","sources":["../../src/services/node-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node-service.js","sourceRoot":"","sources":["../../src/services/node-service.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ export declare class PiiDetectorService {
16
16
  * Detect PII in a text string. Returns matches with their positions.
17
17
  */
18
18
  detect(text: string): PiiDetectionResult;
19
+ private detectNorwegianPatterns;
19
20
  /**
20
21
  * Detect PII in all string values of an object (shallow — top-level keys only).
21
22
  */
@@ -1 +1 @@
1
- {"version":3,"file":"pii-detector-service.d.ts","sourceRoot":"","sources":["../../src/services/pii-detector-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,QAAQ,EAAE,CAAC;CACrB;AAgBD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,SAAS,CAAe;gBAEpB,cAAc,CAAC,EAAE,UAAU,EAAE;IAOzC;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB;IAiCxC;;OAEG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC;CASjF"}
1
+ {"version":3,"file":"pii-detector-service.d.ts","sourceRoot":"","sources":["../../src/services/pii-detector-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,QAAQ,EAAE,CAAC;CACrB;AAyED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,SAAS,CAAe;gBAEpB,cAAc,CAAC,EAAE,UAAU,EAAE;IAOzC;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB;IA0CxC,OAAO,CAAC,uBAAuB;IA6B/B;;OAEG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC;CASjF"}