@steno-ai/engine 0.1.14 → 0.1.16

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 (232) hide show
  1. package/dist/adapters/storage.d.ts +29 -2
  2. package/dist/adapters/storage.d.ts.map +1 -1
  3. package/dist/extraction/pipeline.d.ts.map +1 -1
  4. package/dist/extraction/pipeline.js +165 -0
  5. package/dist/extraction/pipeline.js.map +1 -1
  6. package/dist/extraction/types.d.ts +2 -0
  7. package/dist/extraction/types.d.ts.map +1 -1
  8. package/dist/identity/index.d.ts +2 -0
  9. package/dist/identity/index.d.ts.map +1 -0
  10. package/dist/identity/index.js +2 -0
  11. package/dist/identity/index.js.map +1 -0
  12. package/dist/identity/resolver.d.ts +31 -0
  13. package/dist/identity/resolver.d.ts.map +1 -0
  14. package/dist/identity/resolver.js +122 -0
  15. package/dist/identity/resolver.js.map +1 -0
  16. package/dist/index.d.ts +1 -0
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +1 -0
  19. package/dist/index.js.map +1 -1
  20. package/dist/models/entity.d.ts +32 -0
  21. package/dist/models/entity.d.ts.map +1 -1
  22. package/dist/models/entity.js +11 -0
  23. package/dist/models/entity.js.map +1 -1
  24. package/dist/retrieval/graph-traversal.d.ts +4 -1
  25. package/dist/retrieval/graph-traversal.d.ts.map +1 -1
  26. package/dist/retrieval/graph-traversal.js +6 -3
  27. package/dist/retrieval/graph-traversal.js.map +1 -1
  28. package/dist/retrieval/search.d.ts.map +1 -1
  29. package/dist/retrieval/search.js +56 -3
  30. package/dist/retrieval/search.js.map +1 -1
  31. package/dist/retrieval/types.d.ts +1 -0
  32. package/dist/retrieval/types.d.ts.map +1 -1
  33. package/dist/retrieval/types.js.map +1 -1
  34. package/package.json +1 -1
  35. package/src/adapters/storage.ts +35 -2
  36. package/src/extraction/pipeline.ts +213 -0
  37. package/src/extraction/types.ts +2 -0
  38. package/src/identity/index.ts +1 -0
  39. package/src/identity/resolver.ts +149 -0
  40. package/src/index.ts +1 -0
  41. package/src/models/entity.ts +13 -0
  42. package/src/retrieval/graph-traversal.ts +7 -4
  43. package/src/retrieval/search.ts +58 -3
  44. package/src/retrieval/types.ts +1 -0
  45. package/src/adapters/cache.d.ts +0 -9
  46. package/src/adapters/cache.d.ts.map +0 -1
  47. package/src/adapters/cache.js +0 -2
  48. package/src/adapters/cache.js.map +0 -1
  49. package/src/adapters/embedding.d.ts +0 -7
  50. package/src/adapters/embedding.d.ts.map +0 -1
  51. package/src/adapters/embedding.js +0 -2
  52. package/src/adapters/embedding.js.map +0 -1
  53. package/src/adapters/llm.d.ts +0 -19
  54. package/src/adapters/llm.d.ts.map +0 -1
  55. package/src/adapters/llm.js +0 -2
  56. package/src/adapters/llm.js.map +0 -1
  57. package/src/adapters/perplexity-embedding.d.ts +0 -24
  58. package/src/adapters/perplexity-embedding.d.ts.map +0 -1
  59. package/src/adapters/perplexity-embedding.js +0 -78
  60. package/src/adapters/perplexity-embedding.js.map +0 -1
  61. package/src/adapters/storage.d.ts +0 -173
  62. package/src/adapters/storage.d.ts.map +0 -1
  63. package/src/adapters/storage.js +0 -2
  64. package/src/adapters/storage.js.map +0 -1
  65. package/src/config.d.ts +0 -296
  66. package/src/config.d.ts.map +0 -1
  67. package/src/config.js +0 -92
  68. package/src/config.js.map +0 -1
  69. package/src/extraction/contradiction.d.ts +0 -15
  70. package/src/extraction/contradiction.d.ts.map +0 -1
  71. package/src/extraction/contradiction.js +0 -23
  72. package/src/extraction/contradiction.js.map +0 -1
  73. package/src/extraction/cross-linker.d.ts +0 -23
  74. package/src/extraction/cross-linker.d.ts.map +0 -1
  75. package/src/extraction/cross-linker.js +0 -146
  76. package/src/extraction/cross-linker.js.map +0 -1
  77. package/src/extraction/dedup.d.ts +0 -12
  78. package/src/extraction/dedup.d.ts.map +0 -1
  79. package/src/extraction/dedup.js +0 -93
  80. package/src/extraction/dedup.js.map +0 -1
  81. package/src/extraction/entity-extractor.d.ts +0 -30
  82. package/src/extraction/entity-extractor.d.ts.map +0 -1
  83. package/src/extraction/entity-extractor.js +0 -145
  84. package/src/extraction/entity-extractor.js.map +0 -1
  85. package/src/extraction/hasher.d.ts +0 -5
  86. package/src/extraction/hasher.d.ts.map +0 -1
  87. package/src/extraction/hasher.js +0 -8
  88. package/src/extraction/hasher.js.map +0 -1
  89. package/src/extraction/heuristic.d.ts +0 -3
  90. package/src/extraction/heuristic.d.ts.map +0 -1
  91. package/src/extraction/heuristic.js +0 -282
  92. package/src/extraction/heuristic.js.map +0 -1
  93. package/src/extraction/llm-extractor.d.ts +0 -23
  94. package/src/extraction/llm-extractor.d.ts.map +0 -1
  95. package/src/extraction/llm-extractor.js +0 -240
  96. package/src/extraction/llm-extractor.js.map +0 -1
  97. package/src/extraction/pipeline.d.ts +0 -30
  98. package/src/extraction/pipeline.d.ts.map +0 -1
  99. package/src/extraction/pipeline.js +0 -413
  100. package/src/extraction/pipeline.js.map +0 -1
  101. package/src/extraction/prompts.d.ts +0 -28
  102. package/src/extraction/prompts.d.ts.map +0 -1
  103. package/src/extraction/prompts.js +0 -205
  104. package/src/extraction/prompts.js.map +0 -1
  105. package/src/extraction/sliding-window.d.ts +0 -41
  106. package/src/extraction/sliding-window.d.ts.map +0 -1
  107. package/src/extraction/sliding-window.js +0 -84
  108. package/src/extraction/sliding-window.js.map +0 -1
  109. package/src/extraction/types.d.ts +0 -80
  110. package/src/extraction/types.d.ts.map +0 -1
  111. package/src/extraction/types.js +0 -2
  112. package/src/extraction/types.js.map +0 -1
  113. package/src/feedback/tracker.d.ts +0 -25
  114. package/src/feedback/tracker.d.ts.map +0 -1
  115. package/src/feedback/tracker.js +0 -90
  116. package/src/feedback/tracker.js.map +0 -1
  117. package/src/models/api-key.d.ts +0 -54
  118. package/src/models/api-key.d.ts.map +0 -1
  119. package/src/models/api-key.js +0 -21
  120. package/src/models/api-key.js.map +0 -1
  121. package/src/models/edge.d.ts +0 -78
  122. package/src/models/edge.d.ts.map +0 -1
  123. package/src/models/edge.js +0 -29
  124. package/src/models/edge.js.map +0 -1
  125. package/src/models/entity.d.ts +0 -60
  126. package/src/models/entity.d.ts.map +0 -1
  127. package/src/models/entity.js +0 -22
  128. package/src/models/entity.js.map +0 -1
  129. package/src/models/extraction.d.ts +0 -111
  130. package/src/models/extraction.d.ts.map +0 -1
  131. package/src/models/extraction.js +0 -40
  132. package/src/models/extraction.js.map +0 -1
  133. package/src/models/fact-entity.d.ts +0 -33
  134. package/src/models/fact-entity.d.ts.map +0 -1
  135. package/src/models/fact-entity.js +0 -14
  136. package/src/models/fact-entity.js.map +0 -1
  137. package/src/models/fact.d.ts +0 -191
  138. package/src/models/fact.d.ts.map +0 -1
  139. package/src/models/fact.js +0 -72
  140. package/src/models/fact.js.map +0 -1
  141. package/src/models/index.d.ts +0 -13
  142. package/src/models/index.d.ts.map +0 -1
  143. package/src/models/index.js +0 -13
  144. package/src/models/index.js.map +0 -1
  145. package/src/models/memory-access.d.ts +0 -89
  146. package/src/models/memory-access.d.ts.map +0 -1
  147. package/src/models/memory-access.js +0 -33
  148. package/src/models/memory-access.js.map +0 -1
  149. package/src/models/session.d.ts +0 -60
  150. package/src/models/session.d.ts.map +0 -1
  151. package/src/models/session.js +0 -23
  152. package/src/models/session.js.map +0 -1
  153. package/src/models/tenant.d.ts +0 -448
  154. package/src/models/tenant.d.ts.map +0 -1
  155. package/src/models/tenant.js +0 -23
  156. package/src/models/tenant.js.map +0 -1
  157. package/src/models/trigger.d.ts +0 -87
  158. package/src/models/trigger.d.ts.map +0 -1
  159. package/src/models/trigger.js +0 -41
  160. package/src/models/trigger.js.map +0 -1
  161. package/src/models/usage-record.d.ts +0 -37
  162. package/src/models/usage-record.d.ts.map +0 -1
  163. package/src/models/usage-record.js +0 -14
  164. package/src/models/usage-record.js.map +0 -1
  165. package/src/models/webhook.d.ts +0 -50
  166. package/src/models/webhook.d.ts.map +0 -1
  167. package/src/models/webhook.js +0 -25
  168. package/src/models/webhook.js.map +0 -1
  169. package/src/retrieval/compound-search.d.ts +0 -13
  170. package/src/retrieval/compound-search.d.ts.map +0 -1
  171. package/src/retrieval/compound-search.js +0 -87
  172. package/src/retrieval/compound-search.js.map +0 -1
  173. package/src/retrieval/contradiction-surfacer.d.ts +0 -18
  174. package/src/retrieval/contradiction-surfacer.d.ts.map +0 -1
  175. package/src/retrieval/contradiction-surfacer.js +0 -64
  176. package/src/retrieval/contradiction-surfacer.js.map +0 -1
  177. package/src/retrieval/embedding-cache.d.ts +0 -17
  178. package/src/retrieval/embedding-cache.d.ts.map +0 -1
  179. package/src/retrieval/embedding-cache.js +0 -56
  180. package/src/retrieval/embedding-cache.js.map +0 -1
  181. package/src/retrieval/fusion.d.ts +0 -27
  182. package/src/retrieval/fusion.d.ts.map +0 -1
  183. package/src/retrieval/fusion.js +0 -87
  184. package/src/retrieval/fusion.js.map +0 -1
  185. package/src/retrieval/graph-traversal.d.ts +0 -29
  186. package/src/retrieval/graph-traversal.d.ts.map +0 -1
  187. package/src/retrieval/graph-traversal.js +0 -208
  188. package/src/retrieval/graph-traversal.js.map +0 -1
  189. package/src/retrieval/query-expansion.d.ts +0 -20
  190. package/src/retrieval/query-expansion.d.ts.map +0 -1
  191. package/src/retrieval/query-expansion.js +0 -76
  192. package/src/retrieval/query-expansion.js.map +0 -1
  193. package/src/retrieval/reranker.d.ts +0 -15
  194. package/src/retrieval/reranker.d.ts.map +0 -1
  195. package/src/retrieval/reranker.js +0 -47
  196. package/src/retrieval/reranker.js.map +0 -1
  197. package/src/retrieval/salience-scorer.d.ts +0 -15
  198. package/src/retrieval/salience-scorer.d.ts.map +0 -1
  199. package/src/retrieval/salience-scorer.js +0 -41
  200. package/src/retrieval/salience-scorer.js.map +0 -1
  201. package/src/retrieval/search.d.ts +0 -21
  202. package/src/retrieval/search.d.ts.map +0 -1
  203. package/src/retrieval/search.js +0 -228
  204. package/src/retrieval/search.js.map +0 -1
  205. package/src/retrieval/temporal-scorer.d.ts +0 -18
  206. package/src/retrieval/temporal-scorer.d.ts.map +0 -1
  207. package/src/retrieval/temporal-scorer.js +0 -106
  208. package/src/retrieval/temporal-scorer.js.map +0 -1
  209. package/src/retrieval/trigger-matcher.d.ts +0 -18
  210. package/src/retrieval/trigger-matcher.d.ts.map +0 -1
  211. package/src/retrieval/trigger-matcher.js +0 -134
  212. package/src/retrieval/trigger-matcher.js.map +0 -1
  213. package/src/retrieval/types.d.ts +0 -70
  214. package/src/retrieval/types.d.ts.map +0 -1
  215. package/src/retrieval/types.js +0 -9
  216. package/src/retrieval/types.js.map +0 -1
  217. package/src/retrieval/vector-search.d.ts +0 -5
  218. package/src/retrieval/vector-search.d.ts.map +0 -1
  219. package/src/retrieval/vector-search.js +0 -24
  220. package/src/retrieval/vector-search.js.map +0 -1
  221. package/src/salience/decay.d.ts +0 -9
  222. package/src/salience/decay.d.ts.map +0 -1
  223. package/src/salience/decay.js +0 -15
  224. package/src/salience/decay.js.map +0 -1
  225. package/src/scratchpad/scratchpad.d.ts +0 -23
  226. package/src/scratchpad/scratchpad.d.ts.map +0 -1
  227. package/src/scratchpad/scratchpad.js +0 -137
  228. package/src/scratchpad/scratchpad.js.map +0 -1
  229. package/src/sessions/manager.d.ts +0 -11
  230. package/src/sessions/manager.d.ts.map +0 -1
  231. package/src/sessions/manager.js +0 -63
  232. package/src/sessions/manager.js.map +0 -1
@@ -1,23 +0,0 @@
1
- import type { LLMAdapter } from '../adapters/llm.js';
2
- import type { ExtractionResult } from './types.js';
3
- import type { ExtractionTier, DomainEntityType } from '../config.js';
4
- export interface LLMExtractorConfig {
5
- llm: LLMAdapter;
6
- tier: ExtractionTier;
7
- entityTypes?: string[];
8
- domainEntityTypes?: DomainEntityType[];
9
- }
10
- /**
11
- * Two-pass extraction like Mem0:
12
- * Pass 1: Extract facts as simple strings (focused, high quality)
13
- * Pass 2: Extract entities + edges from the facts (separate concern)
14
- */
15
- export declare function extractWithLLM(config: LLMExtractorConfig, input: string, existingFacts?: Array<{
16
- lineageId: string;
17
- content: string;
18
- }>): Promise<ExtractionResult>;
19
- /**
20
- * Normalize an entity name to a clean canonical form.
21
- */
22
- export declare function normalizeEntityName(raw: string): string;
23
- //# sourceMappingURL=llm-extractor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"llm-extractor.d.ts","sourceRoot":"","sources":["llm-extractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAiD,MAAM,YAAY,CAAC;AAClG,OAAO,KAAK,EAAE,cAAc,EAAY,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAI/E,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,UAAU,CAAC;IAChB,IAAI,EAAE,cAAc,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACxC;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,MAAM,EACb,aAAa,CAAC,EAAE,KAAK,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GAC5D,OAAO,CAAC,gBAAgB,CAAC,CAgN3B;AAsBD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAavD"}
@@ -1,240 +0,0 @@
1
- import { buildFactExtractionPrompt, buildGraphExtractionPrompt } from './prompts.js';
2
- import { createEnrichedSegments } from './sliding-window.js';
3
- /**
4
- * Two-pass extraction like Mem0:
5
- * Pass 1: Extract facts as simple strings (focused, high quality)
6
- * Pass 2: Extract entities + edges from the facts (separate concern)
7
- */
8
- export async function extractWithLLM(config, input, existingFacts) {
9
- let totalTokensIn = 0;
10
- let totalTokensOut = 0;
11
- // ── PASS 1: Fact extraction with Sliding Window Inference ──
12
- // For long inputs, split into overlapping segments so the LLM can resolve
13
- // pronouns and references using surrounding context (like Hydra DB).
14
- const segments = createEnrichedSegments(input);
15
- let factStrings = [];
16
- let factEntries = [];
17
- // Process segments (in parallel for speed, up to 4 at a time)
18
- const segmentBatches = [];
19
- for (let i = 0; i < segments.length; i += 4) {
20
- segmentBatches.push(segments.slice(i, i + 4));
21
- }
22
- for (const batch of segmentBatches) {
23
- const batchPromises = batch.map(async (seg) => {
24
- const factMessages = buildFactExtractionPrompt(seg.contextWindow);
25
- // Append existing facts for dedup context
26
- if (existingFacts && existingFacts.length > 0) {
27
- const factsBlock = existingFacts
28
- .map(f => `- [lineage: ${f.lineageId}] ${f.content}`)
29
- .join('\n');
30
- factMessages[1].content += `\n\n--- EXISTING FACTS (skip duplicates, mark updates) ---\n${factsBlock}`;
31
- }
32
- // Also append already-extracted facts from previous segments to avoid duplicates
33
- if (factEntries.length > 0) {
34
- const alreadyExtracted = factEntries.map(f => `- ${f.text}`).join('\n');
35
- factMessages[1].content += `\n\n--- ALREADY EXTRACTED (skip these) ---\n${alreadyExtracted}`;
36
- }
37
- try {
38
- const factResponse = await config.llm.complete(factMessages, { temperature: 0, responseFormat: 'json' });
39
- totalTokensIn += factResponse.tokensInput;
40
- totalTokensOut += factResponse.tokensOutput;
41
- const parsed = JSON.parse(factResponse.content);
42
- const rawFacts = Array.isArray(parsed.facts) ? parsed.facts : [];
43
- const entries = [];
44
- for (const f of rawFacts) {
45
- if (typeof f === 'string') {
46
- const trimmed = f.trim();
47
- if (trimmed.length > 0)
48
- entries.push({ text: trimmed, importance: 0.5, sourceChunk: seg.contextWindow, isPattern: false });
49
- }
50
- else if (f && typeof f === 'object') {
51
- const obj = f;
52
- const text = (typeof obj.t === 'string' ? obj.t : typeof obj.text === 'string' ? obj.text : '').trim();
53
- const importance = typeof obj.i === 'number' ? obj.i : typeof obj.importance === 'number' ? obj.importance : 0.5;
54
- const eventDate = obj.ed ? new Date(obj.ed) : undefined;
55
- const documentDate = obj.dd ? new Date(obj.dd) : undefined;
56
- const isPattern = obj.p === true;
57
- if (text.length > 0)
58
- entries.push({
59
- text,
60
- importance: Math.max(0, Math.min(1, importance)),
61
- sourceChunk: seg.contextWindow,
62
- eventDate: eventDate && !isNaN(eventDate.getTime()) ? eventDate : undefined,
63
- documentDate: documentDate && !isNaN(documentDate.getTime()) ? documentDate : undefined,
64
- isPattern,
65
- });
66
- }
67
- }
68
- return entries;
69
- }
70
- catch {
71
- return [];
72
- }
73
- });
74
- const batchResults = await Promise.all(batchPromises);
75
- for (const entries of batchResults) {
76
- factEntries.push(...entries);
77
- }
78
- }
79
- // Deduplicate facts by content similarity (simple string match)
80
- const seenContent = new Set();
81
- factEntries = factEntries.filter(e => {
82
- const key = e.text.toLowerCase().trim();
83
- if (seenContent.has(key))
84
- return false;
85
- seenContent.add(key);
86
- return true;
87
- });
88
- factStrings = factEntries.map(e => e.text);
89
- if (factEntries.length === 0) {
90
- return emptyResult(config.tier, config.llm.model);
91
- }
92
- if (factStrings.length === 0) {
93
- return emptyResult(config.tier, config.llm.model);
94
- }
95
- // Build ExtractedFact objects from parsed entries with LLM-scored importance
96
- const facts = factEntries.map(({ text, importance, sourceChunk, eventDate, documentDate, isPattern }) => ({
97
- content: text,
98
- importance,
99
- confidence: 0.8,
100
- sourceType: 'conversation',
101
- modality: 'text',
102
- tags: isPattern ? ['pattern'] : [],
103
- originalContent: input,
104
- entityCanonicalNames: [],
105
- sourceChunk,
106
- eventDate,
107
- documentDate,
108
- }));
109
- // ── Contextual memory wrappers ──
110
- // Prepend source context so the embedding captures the full meaning.
111
- // E.g. "User went to the gym" becomes "Context: <segment>... | Fact: User went to the gym"
112
- // This is a transient field — only used at embedding time, never stored.
113
- for (const fact of facts) {
114
- const src = fact.sourceChunk ?? input;
115
- const contextPrefix = src.length > 100
116
- ? `Context: ${src.slice(0, 200).trim()}... | Fact: `
117
- : `Context: ${src.trim()} | Fact: `;
118
- fact.contextualContent = contextPrefix + fact.content;
119
- }
120
- // ── PASS 2: Graph extraction (entities + edges) from the facts ──
121
- let entities = [];
122
- let edges = [];
123
- try {
124
- const graphMessages = buildGraphExtractionPrompt(factStrings, config.entityTypes, config.domainEntityTypes);
125
- const graphResponse = await config.llm.complete(graphMessages, { temperature: 0, responseFormat: 'json' });
126
- totalTokensIn += graphResponse.tokensInput;
127
- totalTokensOut += graphResponse.tokensOutput;
128
- const graphParsed = JSON.parse(graphResponse.content);
129
- // Parse entities
130
- const seenEntities = new Set();
131
- if (Array.isArray(graphParsed.entities)) {
132
- for (const e of graphParsed.entities) {
133
- if (!e || typeof e.name !== 'string')
134
- continue;
135
- const entity = e;
136
- const canonical = normalizeEntityName(entity.name);
137
- if (canonical.length === 0 || seenEntities.has(canonical))
138
- continue;
139
- seenEntities.add(canonical);
140
- // Capture properties from domain entity types (e.g., {"company_size": "enterprise"})
141
- const rawProps = entity.properties;
142
- const properties = (rawProps && typeof rawProps === 'object' && !Array.isArray(rawProps))
143
- ? rawProps
144
- : {};
145
- entities.push({
146
- name: canonical.split(' ').map(w => w.charAt(0).toUpperCase() + w.slice(1)).join(' '),
147
- entityType: String(entity.entity_type ?? entity.type ?? 'concept'),
148
- canonicalName: canonical,
149
- properties,
150
- });
151
- }
152
- }
153
- // Parse edges
154
- if (Array.isArray(graphParsed.edges)) {
155
- for (const r of graphParsed.edges) {
156
- if (!r)
157
- continue;
158
- const rel = r;
159
- const rawSource = typeof rel.source === 'string' ? rel.source :
160
- typeof rel.source_name === 'string' ? rel.source_name : null;
161
- const rawTarget = typeof rel.target === 'string' ? rel.target :
162
- typeof rel.target_name === 'string' ? rel.target_name : null;
163
- if (!rawSource || !rawTarget)
164
- continue;
165
- const source = normalizeEntityName(rawSource);
166
- const target = normalizeEntityName(rawTarget);
167
- if (!source || !target)
168
- continue;
169
- edges.push({
170
- sourceName: source,
171
- targetName: target,
172
- relation: String(rel.relation ?? 'related_to'),
173
- edgeType: isValidEdgeType(rel.edge_type) ? rel.edge_type : 'associative',
174
- confidence: 0.8,
175
- });
176
- }
177
- }
178
- // Link entities to facts by text match
179
- for (const fact of facts) {
180
- const contentLower = fact.content.toLowerCase();
181
- for (const entity of entities) {
182
- if (entity.canonicalName === 'user') {
183
- if (contentLower.startsWith('user ') || contentLower.includes(' user ')) {
184
- fact.entityCanonicalNames.push(entity.canonicalName);
185
- }
186
- }
187
- else if (entity.canonicalName.length >= 3 && contentLower.includes(entity.canonicalName)) {
188
- fact.entityCanonicalNames.push(entity.canonicalName);
189
- }
190
- }
191
- }
192
- }
193
- catch {
194
- // Graph pass failed — we still have facts, just no graph. That's OK.
195
- }
196
- return {
197
- facts,
198
- entities,
199
- edges,
200
- tier: config.tier,
201
- confidence: 0.8,
202
- tokensInput: totalTokensIn,
203
- tokensOutput: totalTokensOut,
204
- model: config.llm.model,
205
- };
206
- }
207
- function emptyResult(tier, model) {
208
- return {
209
- facts: [],
210
- entities: [],
211
- edges: [],
212
- tier,
213
- confidence: 0,
214
- tokensInput: 0,
215
- tokensOutput: 0,
216
- model,
217
- };
218
- }
219
- function isValidEdgeType(t) {
220
- return (typeof t === 'string' &&
221
- ['associative', 'causal', 'temporal', 'contradictory', 'hierarchical'].includes(t));
222
- }
223
- /**
224
- * Normalize an entity name to a clean canonical form.
225
- */
226
- export function normalizeEntityName(raw) {
227
- let name = raw.trim();
228
- name = name.replace(/^[-–—*•#>]+\s*/g, '');
229
- name = name.replace(/'s$/i, '');
230
- name = name.replace(/\u2019s$/i, '');
231
- name = name.replace(/^[^a-zA-Z0-9]+/, '');
232
- name = name.replace(/[^a-zA-Z0-9]+$/, '');
233
- const leadingNoise = /^(the|a|an|when|where|how|what|why|who|is|are|was|were|has|have|had|my|our|their|his|her|its|this|that|these|those)\s+/i;
234
- name = name.replace(leadingNoise, '');
235
- name = name.replace(leadingNoise, '');
236
- name = name.replace(/\s+/g, ' ').trim();
237
- name = name.toLowerCase();
238
- return name;
239
- }
240
- //# sourceMappingURL=llm-extractor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"llm-extractor.js","sourceRoot":"","sources":["llm-extractor.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- import type { StorageAdapter } from '../adapters/storage.js';
2
- import type { EmbeddingAdapter } from '../adapters/embedding.js';
3
- import type { LLMAdapter } from '../adapters/llm.js';
4
- import type { DomainEntityType } from '../config.js';
5
- import type { ExtractionInput, PipelineResult, ExtractedFact, ExtractedEntity } from './types.js';
6
- export interface PipelineConfig {
7
- storage: StorageAdapter;
8
- embedding: EmbeddingAdapter;
9
- cheapLLM: LLMAdapter;
10
- smartLLM?: LLMAdapter;
11
- extractionTier?: 'heuristic_only' | 'cheap_only' | 'auto' | 'smart_only';
12
- embeddingModel: string;
13
- embeddingDim: number;
14
- decayHalfLifeDays?: number;
15
- decayNormalizationK?: number;
16
- entityTypes?: string[];
17
- domainEntityTypes?: DomainEntityType[];
18
- }
19
- export declare function inputToText(input: ExtractionInput): string;
20
- export declare function mergeFacts(heuristic: ExtractedFact[], llm: ExtractedFact[]): ExtractedFact[];
21
- export declare function mergeEntities(heuristic: ExtractedEntity[], llm: ExtractedEntity[]): ExtractedEntity[];
22
- export declare function runExtractionPipeline(config: PipelineConfig, input: ExtractionInput): Promise<PipelineResult>;
23
- /**
24
- * Run extraction for a pre-created extraction record (from queue).
25
- * Unlike runExtractionPipeline, this does NOT create the extraction record
26
- * or perform hash-based dedup — both were already handled by the API route.
27
- * It updates the existing record through the pipeline lifecycle.
28
- */
29
- export declare function runExtractionFromQueue(config: PipelineConfig, extractionId: string, input: ExtractionInput): Promise<PipelineResult>;
30
- //# sourceMappingURL=pipeline.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAc,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,aAAa,EACb,eAAe,EAEhB,MAAM,YAAY,CAAC;AAUpB,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,QAAQ,EAAE,UAAU,CAAC;IACrB,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,cAAc,CAAC,EAAE,gBAAgB,GAAG,YAAY,GAAG,MAAM,GAAG,YAAY,CAAC;IACzE,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACxC;AAMD,wBAAgB,WAAW,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAiB1D;AAED,wBAAgB,UAAU,CACxB,SAAS,EAAE,aAAa,EAAE,EAC1B,GAAG,EAAE,aAAa,EAAE,GACnB,aAAa,EAAE,CAIjB;AAED,wBAAgB,aAAa,CAC3B,SAAS,EAAE,eAAe,EAAE,EAC5B,GAAG,EAAE,eAAe,EAAE,GACrB,eAAe,EAAE,CAQnB;AAiVD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,cAAc,CAAC,CAiFzB;AAMD;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,cAAc,EACtB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,cAAc,CAAC,CAiBzB"}