fawn-memory 0.0.3

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 (126) hide show
  1. package/README.md +118 -0
  2. package/dist/index.d.ts +14 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +183 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/knowpro/answerContextSchema.d.ts +20 -0
  7. package/dist/knowpro/answerContextSchema.d.ts.map +1 -0
  8. package/dist/knowpro/answerContextSchema.js +4 -0
  9. package/dist/knowpro/answerContextSchema.js.map +1 -0
  10. package/dist/knowpro/answerResponseSchema.d.ts +7 -0
  11. package/dist/knowpro/answerResponseSchema.d.ts.map +1 -0
  12. package/dist/knowpro/answerResponseSchema.js +4 -0
  13. package/dist/knowpro/answerResponseSchema.js.map +1 -0
  14. package/dist/knowpro/answerTranslator.d.ts +5 -0
  15. package/dist/knowpro/answerTranslator.d.ts.map +1 -0
  16. package/dist/knowpro/answerTranslator.js +10 -0
  17. package/dist/knowpro/answerTranslator.js.map +1 -0
  18. package/dist/knowpro/collections.d.ts +14 -0
  19. package/dist/knowpro/collections.d.ts.map +1 -0
  20. package/dist/knowpro/collections.js +52 -0
  21. package/dist/knowpro/collections.js.map +1 -0
  22. package/dist/knowpro/conversation.d.ts +63 -0
  23. package/dist/knowpro/conversation.d.ts.map +1 -0
  24. package/dist/knowpro/conversation.js +247 -0
  25. package/dist/knowpro/conversation.js.map +1 -0
  26. package/dist/knowpro/dateTimeSchema.d.ts +19 -0
  27. package/dist/knowpro/dateTimeSchema.d.ts.map +1 -0
  28. package/dist/knowpro/dateTimeSchema.js +4 -0
  29. package/dist/knowpro/dateTimeSchema.js.map +1 -0
  30. package/dist/knowpro/entities.d.ts +9 -0
  31. package/dist/knowpro/entities.d.ts.map +1 -0
  32. package/dist/knowpro/entities.js +63 -0
  33. package/dist/knowpro/entities.js.map +1 -0
  34. package/dist/knowpro/interfaces.d.ts +637 -0
  35. package/dist/knowpro/interfaces.d.ts.map +1 -0
  36. package/dist/knowpro/interfaces.js +4 -0
  37. package/dist/knowpro/interfaces.js.map +1 -0
  38. package/dist/knowpro/knowledge.d.ts +19 -0
  39. package/dist/knowpro/knowledge.d.ts.map +1 -0
  40. package/dist/knowpro/knowledge.js +97 -0
  41. package/dist/knowpro/knowledge.js.map +1 -0
  42. package/dist/knowpro/knowledgeSchema.d.ts +39 -0
  43. package/dist/knowpro/knowledgeSchema.d.ts.map +1 -0
  44. package/dist/knowpro/knowledgeSchema.js +2 -0
  45. package/dist/knowpro/knowledgeSchema.js.map +1 -0
  46. package/dist/knowpro/llmProvider.d.ts +17 -0
  47. package/dist/knowpro/llmProvider.d.ts.map +1 -0
  48. package/dist/knowpro/llmProvider.js +105 -0
  49. package/dist/knowpro/llmProvider.js.map +1 -0
  50. package/dist/knowpro/relatedTermsSchema.d.ts +24 -0
  51. package/dist/knowpro/relatedTermsSchema.d.ts.map +1 -0
  52. package/dist/knowpro/relatedTermsSchema.js +6 -0
  53. package/dist/knowpro/relatedTermsSchema.js.map +1 -0
  54. package/dist/knowpro/schema.d.ts +24 -0
  55. package/dist/knowpro/schema.d.ts.map +1 -0
  56. package/dist/knowpro/schema.js +55 -0
  57. package/dist/knowpro/schema.js.map +1 -0
  58. package/dist/knowpro/search.d.ts +8 -0
  59. package/dist/knowpro/search.d.ts.map +1 -0
  60. package/dist/knowpro/search.js +448 -0
  61. package/dist/knowpro/search.js.map +1 -0
  62. package/dist/knowpro/searchQuerySchema.d.ts +40 -0
  63. package/dist/knowpro/searchQuerySchema.d.ts.map +1 -0
  64. package/dist/knowpro/searchQuerySchema.js +4 -0
  65. package/dist/knowpro/searchQuerySchema.js.map +1 -0
  66. package/dist/knowpro/searchQueryTranslator.d.ts +33 -0
  67. package/dist/knowpro/searchQueryTranslator.d.ts.map +1 -0
  68. package/dist/knowpro/searchQueryTranslator.js +47 -0
  69. package/dist/knowpro/searchQueryTranslator.js.map +1 -0
  70. package/dist/knowpro/semanticRef.d.ts +4 -0
  71. package/dist/knowpro/semanticRef.d.ts.map +1 -0
  72. package/dist/knowpro/semanticRef.js +62 -0
  73. package/dist/knowpro/semanticRef.js.map +1 -0
  74. package/dist/knowpro/semanticRefIndex.d.ts +48 -0
  75. package/dist/knowpro/semanticRefIndex.d.ts.map +1 -0
  76. package/dist/knowpro/semanticRefIndex.js +388 -0
  77. package/dist/knowpro/semanticRefIndex.js.map +1 -0
  78. package/dist/knowpro/storageProvider.d.ts +7 -0
  79. package/dist/knowpro/storageProvider.d.ts.map +1 -0
  80. package/dist/knowpro/storageProvider.js +61 -0
  81. package/dist/knowpro/storageProvider.js.map +1 -0
  82. package/dist/knowpro/timestampIndex.d.ts +43 -0
  83. package/dist/knowpro/timestampIndex.d.ts.map +1 -0
  84. package/dist/knowpro/timestampIndex.js +324 -0
  85. package/dist/knowpro/timestampIndex.js.map +1 -0
  86. package/dist/rag/chunking.d.ts +6 -0
  87. package/dist/rag/chunking.d.ts.map +1 -0
  88. package/dist/rag/chunking.js +83 -0
  89. package/dist/rag/chunking.js.map +1 -0
  90. package/dist/rag/embeddingProvider.d.ts +34 -0
  91. package/dist/rag/embeddingProvider.d.ts.map +1 -0
  92. package/dist/rag/embeddingProvider.js +95 -0
  93. package/dist/rag/embeddingProvider.js.map +1 -0
  94. package/dist/rag/index.d.ts +8 -0
  95. package/dist/rag/index.d.ts.map +1 -0
  96. package/dist/rag/index.js +7 -0
  97. package/dist/rag/index.js.map +1 -0
  98. package/dist/rag/knowproAdapter.d.ts +44 -0
  99. package/dist/rag/knowproAdapter.d.ts.map +1 -0
  100. package/dist/rag/knowproAdapter.js +66 -0
  101. package/dist/rag/knowproAdapter.js.map +1 -0
  102. package/dist/rag/ragIndex.d.ts +101 -0
  103. package/dist/rag/ragIndex.d.ts.map +1 -0
  104. package/dist/rag/ragIndex.js +305 -0
  105. package/dist/rag/ragIndex.js.map +1 -0
  106. package/dist/rag/similarity.d.ts +15 -0
  107. package/dist/rag/similarity.d.ts.map +1 -0
  108. package/dist/rag/similarity.js +47 -0
  109. package/dist/rag/similarity.js.map +1 -0
  110. package/dist/rag/types.d.ts +61 -0
  111. package/dist/rag/types.d.ts.map +1 -0
  112. package/dist/rag/types.js +2 -0
  113. package/dist/rag/types.js.map +1 -0
  114. package/dist/rag/vectorIndex.d.ts +102 -0
  115. package/dist/rag/vectorIndex.d.ts.map +1 -0
  116. package/dist/rag/vectorIndex.js +236 -0
  117. package/dist/rag/vectorIndex.js.map +1 -0
  118. package/dist/utils/async.d.ts +25 -0
  119. package/dist/utils/async.d.ts.map +1 -0
  120. package/dist/utils/async.js +55 -0
  121. package/dist/utils/async.js.map +1 -0
  122. package/dist/utils/string.d.ts +3 -0
  123. package/dist/utils/string.d.ts.map +1 -0
  124. package/dist/utils/string.js +15 -0
  125. package/dist/utils/string.js.map +1 -0
  126. package/package.json +48 -0
@@ -0,0 +1,43 @@
1
+ import type { ITimestampToTextRangeIndex, MessageOrdinal } from "./interfaces.js";
2
+ /**
3
+ * Creates an in-memory implementation of ITimestampToTextRangeIndex
4
+ */
5
+ export declare function createTimestampIndex(): ITimestampToTextRangeIndex;
6
+ /**
7
+ * Extended timestamp index with additional query methods for search ranking.
8
+ * This extends the base ITimestampToTextRangeIndex with semantic-ref aware methods.
9
+ */
10
+ export interface TimestampIndexExtended extends ITimestampToTextRangeIndex {
11
+ /** Get timestamp for a specific message */
12
+ getMessageTimestamp(messageOrdinal: MessageOrdinal): Date | undefined;
13
+ /** Get all messages on a specific day */
14
+ getMessagesOnDay(date: Date): MessageOrdinal[];
15
+ /** Get all messages before a date */
16
+ getMessagesBefore(date: Date): MessageOrdinal[];
17
+ /** Get all messages after a date */
18
+ getMessagesAfter(date: Date): MessageOrdinal[];
19
+ /** Get all timestamps sorted chronologically */
20
+ getAllSorted(): Array<{
21
+ messageOrdinal: MessageOrdinal;
22
+ timestamp: Date;
23
+ }>;
24
+ /** Get the date range of all indexed messages */
25
+ getDateRange(): {
26
+ earliest: Date;
27
+ latest: Date;
28
+ } | undefined;
29
+ /** Get count of indexed timestamps */
30
+ size(): number;
31
+ }
32
+ /**
33
+ * Creates an extended timestamp index with additional query methods
34
+ */
35
+ export declare function createTimestampIndexExtended(): TimestampIndexExtended;
36
+ /** Parse common temporal expressions to date ranges */
37
+ export declare function parseTemporalExpression(expression: string, referenceDate?: Date): {
38
+ start: Date;
39
+ end: Date;
40
+ } | undefined;
41
+ /** Check if a query contains temporal references */
42
+ export declare function hasTemporalReference(query: string): boolean;
43
+ //# sourceMappingURL=timestampIndex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timestampIndex.d.ts","sourceRoot":"","sources":["../../src/knowpro/timestampIndex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAER,0BAA0B,EAE1B,cAAc,EAEjB,MAAM,iBAAiB,CAAC;AAqBzB;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,0BAA0B,CAwFjE;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,0BAA0B;IACtE,2CAA2C;IAC3C,mBAAmB,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,CAAC;IAEtE,yCAAyC;IACzC,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,cAAc,EAAE,CAAC;IAE/C,qCAAqC;IACrC,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,cAAc,EAAE,CAAC;IAEhD,oCAAoC;IACpC,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,cAAc,EAAE,CAAC;IAE/C,gDAAgD;IAChD,YAAY,IAAI,KAAK,CAAC;QAAE,cAAc,EAAE,cAAc,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC;IAE3E,iDAAiD;IACjD,YAAY,IAAI;QAAE,QAAQ,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,IAAI,CAAA;KAAE,GAAG,SAAS,CAAC;IAE7D,sCAAsC;IACtC,IAAI,IAAI,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,sBAAsB,CAyJrE;AAED,uDAAuD;AACvD,wBAAgB,uBAAuB,CACnC,UAAU,EAAE,MAAM,EAClB,aAAa,GAAE,IAAiB,GACjC;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,IAAI,CAAA;CAAE,GAAG,SAAS,CA4ExC;AAED,oDAAoD;AACpD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAwB3D"}
@@ -0,0 +1,324 @@
1
+ /** Helper to get day key (YYYY-MM-DD) from a date */
2
+ function getDayKey(date) {
3
+ return date.toISOString().split('T')[0];
4
+ }
5
+ /** Helper to get start of day */
6
+ function startOfDay(date) {
7
+ const d = new Date(date);
8
+ d.setHours(0, 0, 0, 0);
9
+ return d;
10
+ }
11
+ /** Helper to get end of day */
12
+ function endOfDay(date) {
13
+ const d = new Date(date);
14
+ d.setHours(23, 59, 59, 999);
15
+ return d;
16
+ }
17
+ /**
18
+ * Creates an in-memory implementation of ITimestampToTextRangeIndex
19
+ */
20
+ export function createTimestampIndex() {
21
+ // Message ordinal -> timestamp string
22
+ const messageToTimestamp = new Map();
23
+ // Day-level index: "YYYY-MM-DD" -> message ordinals
24
+ const dayIndex = new Map();
25
+ // Sorted array for range queries (maintained on demand)
26
+ let sortedEntries = null;
27
+ function invalidateSortedCache() {
28
+ sortedEntries = null;
29
+ }
30
+ function addTimestamp(messageOrdinal, timestamp) {
31
+ try {
32
+ const date = new Date(timestamp);
33
+ if (isNaN(date.getTime())) {
34
+ return false;
35
+ }
36
+ messageToTimestamp.set(messageOrdinal, timestamp);
37
+ const dayKey = getDayKey(date);
38
+ let dayMessages = dayIndex.get(dayKey);
39
+ if (!dayMessages) {
40
+ dayMessages = new Set();
41
+ dayIndex.set(dayKey, dayMessages);
42
+ }
43
+ dayMessages.add(messageOrdinal);
44
+ invalidateSortedCache();
45
+ return true;
46
+ }
47
+ catch {
48
+ return false;
49
+ }
50
+ }
51
+ function addTimestamps(messageTimestamps) {
52
+ let numberCompleted = 0;
53
+ for (const [messageOrdinal, timestamp] of messageTimestamps) {
54
+ if (addTimestamp(messageOrdinal, timestamp)) {
55
+ numberCompleted++;
56
+ }
57
+ }
58
+ return { numberCompleted };
59
+ }
60
+ function ensureSorted() {
61
+ if (sortedEntries === null) {
62
+ sortedEntries = [];
63
+ for (const [messageOrdinal, timestamp] of messageToTimestamp) {
64
+ sortedEntries.push({ messageOrdinal, timestamp: new Date(timestamp) });
65
+ }
66
+ sortedEntries.sort((a, b) => a.timestamp.getTime() - b.timestamp.getTime());
67
+ }
68
+ return sortedEntries;
69
+ }
70
+ function lookupRange(dateRange) {
71
+ const sorted = ensureSorted();
72
+ const startTime = dateRange.start.getTime();
73
+ const endTime = dateRange.end ? dateRange.end.getTime() : Infinity;
74
+ const results = [];
75
+ for (const entry of sorted) {
76
+ const time = entry.timestamp.getTime();
77
+ if (time >= startTime && time <= endTime) {
78
+ results.push({
79
+ timestamp: messageToTimestamp.get(entry.messageOrdinal),
80
+ range: {
81
+ start: { messageOrdinal: entry.messageOrdinal }
82
+ }
83
+ });
84
+ }
85
+ else if (time > endTime) {
86
+ break; // Past the end, no need to continue
87
+ }
88
+ }
89
+ return results;
90
+ }
91
+ return {
92
+ addTimestamp,
93
+ addTimestamps,
94
+ lookupRange
95
+ };
96
+ }
97
+ /**
98
+ * Creates an extended timestamp index with additional query methods
99
+ */
100
+ export function createTimestampIndexExtended() {
101
+ // Message ordinal -> timestamp string
102
+ const messageToTimestamp = new Map();
103
+ // Day-level index: "YYYY-MM-DD" -> message ordinals
104
+ const dayIndex = new Map();
105
+ // Sorted array for range queries (maintained on demand)
106
+ let sortedEntries = null;
107
+ function invalidateSortedCache() {
108
+ sortedEntries = null;
109
+ }
110
+ function addTimestamp(messageOrdinal, timestamp) {
111
+ try {
112
+ const date = new Date(timestamp);
113
+ if (isNaN(date.getTime())) {
114
+ return false;
115
+ }
116
+ messageToTimestamp.set(messageOrdinal, timestamp);
117
+ const dayKey = getDayKey(date);
118
+ let dayMessages = dayIndex.get(dayKey);
119
+ if (!dayMessages) {
120
+ dayMessages = new Set();
121
+ dayIndex.set(dayKey, dayMessages);
122
+ }
123
+ dayMessages.add(messageOrdinal);
124
+ invalidateSortedCache();
125
+ return true;
126
+ }
127
+ catch {
128
+ return false;
129
+ }
130
+ }
131
+ function addTimestamps(messageTimestamps) {
132
+ let numberCompleted = 0;
133
+ for (const [messageOrdinal, timestamp] of messageTimestamps) {
134
+ if (addTimestamp(messageOrdinal, timestamp)) {
135
+ numberCompleted++;
136
+ }
137
+ }
138
+ return { numberCompleted };
139
+ }
140
+ function ensureSorted() {
141
+ if (sortedEntries === null) {
142
+ sortedEntries = [];
143
+ for (const [messageOrdinal, timestamp] of messageToTimestamp) {
144
+ sortedEntries.push({ messageOrdinal, timestamp: new Date(timestamp) });
145
+ }
146
+ sortedEntries.sort((a, b) => a.timestamp.getTime() - b.timestamp.getTime());
147
+ }
148
+ return sortedEntries;
149
+ }
150
+ function lookupRange(dateRange) {
151
+ const sorted = ensureSorted();
152
+ const startTime = dateRange.start.getTime();
153
+ const endTime = dateRange.end ? dateRange.end.getTime() : Infinity;
154
+ const results = [];
155
+ for (const entry of sorted) {
156
+ const time = entry.timestamp.getTime();
157
+ if (time >= startTime && time <= endTime) {
158
+ results.push({
159
+ timestamp: messageToTimestamp.get(entry.messageOrdinal),
160
+ range: {
161
+ start: { messageOrdinal: entry.messageOrdinal }
162
+ }
163
+ });
164
+ }
165
+ else if (time > endTime) {
166
+ break;
167
+ }
168
+ }
169
+ return results;
170
+ }
171
+ function getMessageTimestamp(messageOrdinal) {
172
+ const ts = messageToTimestamp.get(messageOrdinal);
173
+ return ts ? new Date(ts) : undefined;
174
+ }
175
+ function getMessagesOnDay(date) {
176
+ const dayKey = getDayKey(date);
177
+ const messages = dayIndex.get(dayKey);
178
+ return messages ? [...messages] : [];
179
+ }
180
+ function getMessagesBefore(date) {
181
+ const sorted = ensureSorted();
182
+ const targetTime = date.getTime();
183
+ const results = [];
184
+ for (const entry of sorted) {
185
+ if (entry.timestamp.getTime() < targetTime) {
186
+ results.push(entry.messageOrdinal);
187
+ }
188
+ else {
189
+ break;
190
+ }
191
+ }
192
+ return results;
193
+ }
194
+ function getMessagesAfter(date) {
195
+ const sorted = ensureSorted();
196
+ const targetTime = date.getTime();
197
+ const results = [];
198
+ for (const entry of sorted) {
199
+ if (entry.timestamp.getTime() > targetTime) {
200
+ results.push(entry.messageOrdinal);
201
+ }
202
+ }
203
+ return results;
204
+ }
205
+ function getAllSorted() {
206
+ return [...ensureSorted()];
207
+ }
208
+ function getDateRange() {
209
+ const sorted = ensureSorted();
210
+ if (sorted.length === 0) {
211
+ return undefined;
212
+ }
213
+ return {
214
+ earliest: sorted[0].timestamp,
215
+ latest: sorted[sorted.length - 1].timestamp
216
+ };
217
+ }
218
+ function size() {
219
+ return messageToTimestamp.size;
220
+ }
221
+ return {
222
+ addTimestamp,
223
+ addTimestamps,
224
+ lookupRange,
225
+ getMessageTimestamp,
226
+ getMessagesOnDay,
227
+ getMessagesBefore,
228
+ getMessagesAfter,
229
+ getAllSorted,
230
+ getDateRange,
231
+ size
232
+ };
233
+ }
234
+ /** Parse common temporal expressions to date ranges */
235
+ export function parseTemporalExpression(expression, referenceDate = new Date()) {
236
+ const lower = expression.toLowerCase().trim();
237
+ const ref = new Date(referenceDate);
238
+ // Today
239
+ if (lower === 'today') {
240
+ return { start: startOfDay(ref), end: endOfDay(ref) };
241
+ }
242
+ // Yesterday
243
+ if (lower === 'yesterday') {
244
+ const yesterday = new Date(ref);
245
+ yesterday.setDate(yesterday.getDate() - 1);
246
+ return { start: startOfDay(yesterday), end: endOfDay(yesterday) };
247
+ }
248
+ // Last week
249
+ if (lower === 'last week') {
250
+ const end = new Date(ref);
251
+ const start = new Date(ref);
252
+ start.setDate(start.getDate() - 7);
253
+ return { start: startOfDay(start), end: endOfDay(end) };
254
+ }
255
+ // Last month
256
+ if (lower === 'last month') {
257
+ const end = new Date(ref);
258
+ const start = new Date(ref);
259
+ start.setMonth(start.getMonth() - 1);
260
+ return { start: startOfDay(start), end: endOfDay(end) };
261
+ }
262
+ // Last N days
263
+ const lastNDaysMatch = lower.match(/last (\d+) days?/);
264
+ if (lastNDaysMatch) {
265
+ const days = parseInt(lastNDaysMatch[1]);
266
+ const end = new Date(ref);
267
+ const start = new Date(ref);
268
+ start.setDate(start.getDate() - days);
269
+ return { start: startOfDay(start), end: endOfDay(end) };
270
+ }
271
+ // This week (start of week to now)
272
+ if (lower === 'this week') {
273
+ const start = new Date(ref);
274
+ const dayOfWeek = start.getDay();
275
+ start.setDate(start.getDate() - dayOfWeek); // Go to Sunday
276
+ return { start: startOfDay(start), end: endOfDay(ref) };
277
+ }
278
+ // This month
279
+ if (lower === 'this month') {
280
+ const start = new Date(ref.getFullYear(), ref.getMonth(), 1);
281
+ return { start: startOfDay(start), end: endOfDay(ref) };
282
+ }
283
+ // Month names (e.g., "in January", "January 2024")
284
+ const months = ['january', 'february', 'march', 'april', 'may', 'june',
285
+ 'july', 'august', 'september', 'october', 'november', 'december'];
286
+ for (let i = 0; i < months.length; i++) {
287
+ if (lower.includes(months[i])) {
288
+ const yearMatch = lower.match(/\d{4}/);
289
+ const year = yearMatch ? parseInt(yearMatch[0]) : ref.getFullYear();
290
+ const start = new Date(year, i, 1);
291
+ const end = new Date(year, i + 1, 0); // Last day of month
292
+ return { start: startOfDay(start), end: endOfDay(end) };
293
+ }
294
+ }
295
+ // Specific date formats (try to parse)
296
+ const dateAttempt = new Date(expression);
297
+ if (!isNaN(dateAttempt.getTime())) {
298
+ return { start: startOfDay(dateAttempt), end: endOfDay(dateAttempt) };
299
+ }
300
+ return undefined;
301
+ }
302
+ /** Check if a query contains temporal references */
303
+ export function hasTemporalReference(query) {
304
+ const lower = query.toLowerCase();
305
+ const temporalKeywords = [
306
+ 'when', 'today', 'yesterday', 'last week', 'last month', 'this week',
307
+ 'this month', 'last year', 'this year', 'ago', 'before', 'after',
308
+ 'january', 'february', 'march', 'april', 'may', 'june',
309
+ 'july', 'august', 'september', 'october', 'november', 'december',
310
+ 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday',
311
+ 'morning', 'afternoon', 'evening', 'night',
312
+ 'recently', 'earlier', 'later', 'during'
313
+ ];
314
+ // Check for year patterns (4 digits)
315
+ if (/\b(19|20)\d{2}\b/.test(lower)) {
316
+ return true;
317
+ }
318
+ // Check for date patterns
319
+ if (/\b\d{1,2}\/\d{1,2}(\/\d{2,4})?\b/.test(lower)) {
320
+ return true;
321
+ }
322
+ return temporalKeywords.some(keyword => lower.includes(keyword));
323
+ }
324
+ //# sourceMappingURL=timestampIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timestampIndex.js","sourceRoot":"","sources":["../../src/knowpro/timestampIndex.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { TextChunk, ChunkingConfig } from './types.js';
2
+ /**
3
+ * Split text into chunks based on configuration
4
+ */
5
+ export declare function chunkText(text: string, config: ChunkingConfig, idPrefix?: string): TextChunk[];
6
+ //# sourceMappingURL=chunking.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunking.d.ts","sourceRoot":"","sources":["../../src/rag/chunking.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5D;;GAEG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,cAAc,EACtB,QAAQ,GAAE,MAAgB,GACzB,SAAS,EAAE,CAmEb"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Split text into chunks based on configuration
3
+ */
4
+ export function chunkText(text, config, idPrefix = 'chunk') {
5
+ const { maxChunkSize, overlap = 0, splitOnSentences = true } = config;
6
+ if (text.length === 0) {
7
+ return [];
8
+ }
9
+ if (text.length <= maxChunkSize) {
10
+ return [{
11
+ id: `${idPrefix}-0`,
12
+ text
13
+ }];
14
+ }
15
+ const chunks = [];
16
+ if (splitOnSentences) {
17
+ // Split on sentence boundaries (., !, ?)
18
+ const sentences = text.match(/[^.!?]+[.!?]+/g) || [text];
19
+ let currentChunk = '';
20
+ let chunkIndex = 0;
21
+ for (const sentence of sentences) {
22
+ if (currentChunk.length + sentence.length <= maxChunkSize) {
23
+ currentChunk += sentence;
24
+ }
25
+ else {
26
+ if (currentChunk) {
27
+ chunks.push({
28
+ id: `${idPrefix}-${chunkIndex++}`,
29
+ text: currentChunk.trim()
30
+ });
31
+ }
32
+ // If single sentence is too large, split it
33
+ if (sentence.length > maxChunkSize) {
34
+ const parts = splitLongText(sentence, maxChunkSize, overlap);
35
+ for (const part of parts) {
36
+ chunks.push({
37
+ id: `${idPrefix}-${chunkIndex++}`,
38
+ text: part.trim()
39
+ });
40
+ }
41
+ currentChunk = '';
42
+ }
43
+ else {
44
+ currentChunk = sentence;
45
+ }
46
+ }
47
+ }
48
+ if (currentChunk) {
49
+ chunks.push({
50
+ id: `${idPrefix}-${chunkIndex}`,
51
+ text: currentChunk.trim()
52
+ });
53
+ }
54
+ }
55
+ else {
56
+ // Simple character-based splitting with overlap
57
+ const parts = splitLongText(text, maxChunkSize, overlap);
58
+ for (let i = 0; i < parts.length; i++) {
59
+ chunks.push({
60
+ id: `${idPrefix}-${i}`,
61
+ text: parts[i].trim()
62
+ });
63
+ }
64
+ }
65
+ return chunks.filter(chunk => chunk.text.length > 0);
66
+ }
67
+ /**
68
+ * Split long text into fixed-size chunks with overlap
69
+ */
70
+ function splitLongText(text, maxSize, overlap) {
71
+ const chunks = [];
72
+ let start = 0;
73
+ while (start < text.length) {
74
+ const end = Math.min(start + maxSize, text.length);
75
+ chunks.push(text.substring(start, end));
76
+ if (end === text.length) {
77
+ break;
78
+ }
79
+ start = end - overlap;
80
+ }
81
+ return chunks;
82
+ }
83
+ //# sourceMappingURL=chunking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunking.js","sourceRoot":"","sources":["../../src/rag/chunking.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { Embedding } from './types.js';
2
+ export type EmbeddingProviderType = 'openai' | 'voyage';
3
+ export interface EmbeddingProviderConfig {
4
+ provider: EmbeddingProviderType;
5
+ apiKey: string;
6
+ model?: string;
7
+ }
8
+ export interface EmbeddingProvider {
9
+ readonly name: EmbeddingProviderType;
10
+ readonly model: string;
11
+ readonly dimensions: number;
12
+ /**
13
+ * Generate embeddings for a batch of texts
14
+ */
15
+ generateEmbeddings(texts: string[]): Promise<Embedding[]>;
16
+ }
17
+ /**
18
+ * OpenAI embedding provider
19
+ */
20
+ export declare function createOpenAIEmbeddingProvider(apiKey: string, model?: string): EmbeddingProvider;
21
+ /**
22
+ * Voyage AI embedding provider (recommended by Anthropic)
23
+ */
24
+ export declare function createVoyageEmbeddingProvider(apiKey: string, model?: string): EmbeddingProvider;
25
+ export declare function createEmbeddingProvider(config: EmbeddingProviderConfig): EmbeddingProvider;
26
+ /**
27
+ * Create embedding provider from environment variables
28
+ * Uses EMBEDDING_PROVIDER env var (defaults to 'openai')
29
+ * API keys:
30
+ * - OpenAI: OPENAI_API_KEY
31
+ * - Voyage: VOYAGE_API_KEY
32
+ */
33
+ export declare function createEmbeddingProviderFromEnv(): EmbeddingProvider;
34
+ //# sourceMappingURL=embeddingProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddingProvider.d.ts","sourceRoot":"","sources":["../../src/rag/embeddingProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAExD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,qBAAqB,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;CAC3D;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,MAAiC,GACvC,iBAAiB,CA8BnB;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,MAAmB,GACzB,iBAAiB,CA8BnB;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,uBAAuB,GAAG,iBAAiB,CAS1F;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,IAAI,iBAAiB,CAiBlE"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * OpenAI embedding provider
3
+ */
4
+ export function createOpenAIEmbeddingProvider(apiKey, model = 'text-embedding-3-small') {
5
+ const dimensions = model === 'text-embedding-3-small' ? 1536 :
6
+ model === 'text-embedding-3-large' ? 3072 : 1536;
7
+ return {
8
+ name: 'openai',
9
+ model,
10
+ dimensions,
11
+ async generateEmbeddings(texts) {
12
+ const response = await fetch('https://api.openai.com/v1/embeddings', {
13
+ method: 'POST',
14
+ headers: {
15
+ 'Content-Type': 'application/json',
16
+ 'Authorization': `Bearer ${apiKey}`
17
+ },
18
+ body: JSON.stringify({
19
+ input: texts,
20
+ model
21
+ })
22
+ });
23
+ if (!response.ok) {
24
+ const error = await response.text();
25
+ throw new Error(`OpenAI embedding API error: ${error}`);
26
+ }
27
+ const data = await response.json();
28
+ return data.data.map((item) => item.embedding);
29
+ }
30
+ };
31
+ }
32
+ /**
33
+ * Voyage AI embedding provider (recommended by Anthropic)
34
+ */
35
+ export function createVoyageEmbeddingProvider(apiKey, model = 'voyage-3') {
36
+ const dimensions = model === 'voyage-3' ? 1024 :
37
+ model === 'voyage-3-lite' ? 512 : 1024;
38
+ return {
39
+ name: 'voyage',
40
+ model,
41
+ dimensions,
42
+ async generateEmbeddings(texts) {
43
+ const response = await fetch('https://api.voyageai.com/v1/embeddings', {
44
+ method: 'POST',
45
+ headers: {
46
+ 'Content-Type': 'application/json',
47
+ 'Authorization': `Bearer ${apiKey}`
48
+ },
49
+ body: JSON.stringify({
50
+ input: texts,
51
+ model
52
+ })
53
+ });
54
+ if (!response.ok) {
55
+ const error = await response.text();
56
+ throw new Error(`Voyage AI embedding API error: ${error}`);
57
+ }
58
+ const data = await response.json();
59
+ return data.data.map((item) => item.embedding);
60
+ }
61
+ };
62
+ }
63
+ export function createEmbeddingProvider(config) {
64
+ switch (config.provider) {
65
+ case 'openai':
66
+ return createOpenAIEmbeddingProvider(config.apiKey, config.model);
67
+ case 'voyage':
68
+ return createVoyageEmbeddingProvider(config.apiKey, config.model);
69
+ default:
70
+ throw new Error(`Unknown embedding provider: ${config.provider}`);
71
+ }
72
+ }
73
+ /**
74
+ * Create embedding provider from environment variables
75
+ * Uses EMBEDDING_PROVIDER env var (defaults to 'openai')
76
+ * API keys:
77
+ * - OpenAI: OPENAI_API_KEY
78
+ * - Voyage: VOYAGE_API_KEY
79
+ */
80
+ export function createEmbeddingProviderFromEnv() {
81
+ const provider = (process.env.EMBEDDING_PROVIDER || 'openai');
82
+ let apiKey;
83
+ if (provider === 'voyage') {
84
+ apiKey = process.env.VOYAGE_API_KEY;
85
+ }
86
+ else {
87
+ apiKey = process.env.OPENAI_API_KEY || process.env.OPENAI_SDK_KEY;
88
+ }
89
+ const model = process.env.EMBEDDING_MODEL;
90
+ if (!apiKey) {
91
+ throw new Error(`Missing API key for embedding provider: ${provider}`);
92
+ }
93
+ return createEmbeddingProvider({ provider, apiKey, model });
94
+ }
95
+ //# sourceMappingURL=embeddingProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddingProvider.js","sourceRoot":"","sources":["../../src/rag/embeddingProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export { RAGIndex, type RAGIndexConfig, type VectorBackend, type FAISSIndexType } from './ragIndex.js';
2
+ export { createVectorIndex, BruteForceIndex, FAISSIndex, HNSWIndex, type VectorIndex } from './vectorIndex.js';
3
+ export { createEmbeddingProvider, createEmbeddingProviderFromEnv, createOpenAIEmbeddingProvider, createVoyageEmbeddingProvider, type EmbeddingProvider, type EmbeddingProviderType, type EmbeddingProviderConfig } from './embeddingProvider.js';
4
+ export { chunkText } from './chunking.js';
5
+ export { cosineSimilarity, normalizeVector, dotProduct } from './similarity.js';
6
+ export type { Embedding, TextChunk, EmbeddedChunk, SimilaritySearchResult, ChunkingConfig } from './types.js';
7
+ export { KnowproRAGAdapter, createKnowproRAGAdapter } from './knowproAdapter.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rag/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,SAAS,EACT,KAAK,WAAW,EACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,uBAAuB,EACvB,8BAA8B,EAC9B,6BAA6B,EAC7B,6BAA6B,EAC7B,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC7B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,SAAS,EACV,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,UAAU,EACX,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,SAAS,EACT,SAAS,EACT,aAAa,EACb,sBAAsB,EACtB,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { RAGIndex } from './ragIndex.js';
2
+ export { createVectorIndex, BruteForceIndex, FAISSIndex, HNSWIndex } from './vectorIndex.js';
3
+ export { createEmbeddingProvider, createEmbeddingProviderFromEnv, createOpenAIEmbeddingProvider, createVoyageEmbeddingProvider } from './embeddingProvider.js';
4
+ export { chunkText } from './chunking.js';
5
+ export { cosineSimilarity, normalizeVector, dotProduct } from './similarity.js';
6
+ export { KnowproRAGAdapter, createKnowproRAGAdapter } from './knowproAdapter.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rag/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAIT,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,SAAS,EAEV,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,uBAAuB,EACvB,8BAA8B,EAC9B,6BAA6B,EAC7B,6BAA6B,EAI9B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,SAAS,EACV,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,UAAU,EACX,MAAM,iBAAiB,CAAC;AAUzB,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,qBAAqB,CAAC"}