@luckydraw/cumulus 0.8.4 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,17 +5,58 @@
5
5
  import { estimateTokens } from './context-budget.js';
6
6
  import { cosineSimilarity, embeddingsAvailable, embedSingleMessage, generateMissingEmbeddings, getEmbeddingProvider, loadEmbeddings, } from './embeddings.js';
7
7
  import { setOnAppendHook } from './history.js';
8
+ import { classifyQuery, getRetrievalWeights } from './query-classifier.js';
9
+ import { buildSegments, detectBoundary, findSegmentForMessage, loadSegmentBoundaries, saveSegmentBoundaries, } from './segments.js';
8
10
  import { SessionManager } from './session.js';
9
- // Wire up embed-on-write: generate embeddings for new messages in the background.
10
- // This runs on module load so all HistoryStore instances benefit automatically.
11
+ // Wire up embed-on-write + segment boundary detection.
12
+ // After embedding a new message, check if it starts a new topic segment.
11
13
  setOnAppendHook((threadPath, message) => {
12
14
  // Fire and forget — errors must not propagate to the caller
13
- embedSingleMessage(threadPath, { id: message.id, content: message.content }).catch(() => {
15
+ embedSingleMessage(threadPath, { id: message.id, content: message.content })
16
+ .then(async () => {
17
+ // After embedding succeeds, check for segment boundary
18
+ try {
19
+ const embeddings = await loadEmbeddings(threadPath);
20
+ const currentEmb = embeddings.get(message.id);
21
+ if (!currentEmb)
22
+ return;
23
+ // We need the previous message's embedding. The HistoryStore cache
24
+ // has the updated list, but we only need the previous message's ID.
25
+ // Load boundaries to find the message index (= total messages - 1).
26
+ const boundaries = await loadSegmentBoundaries(threadPath);
27
+ // Find the previous message's embedding by scanning the embeddings map.
28
+ // The message index is the number of embeddings that existed before this one.
29
+ // Since we just appended, the current message is the last. We need the
30
+ // second-to-last message's embedding. We don't have the index directly,
31
+ // so we store the previous message ID in a module-level tracker.
32
+ const prevId = lastMessageIdByThread.get(threadPath);
33
+ if (prevId) {
34
+ const prevEmb = embeddings.get(prevId);
35
+ if (prevEmb) {
36
+ // Estimate message index: count of entries in embeddings map - 1
37
+ const messageIndex = embeddings.size - 1;
38
+ const boundary = detectBoundary(messageIndex, message.content, currentEmb, prevEmb);
39
+ if (boundary) {
40
+ boundaries.push(boundary);
41
+ await saveSegmentBoundaries(threadPath, boundaries);
42
+ }
43
+ }
44
+ }
45
+ // Track this message as the "previous" for next append
46
+ lastMessageIdByThread.set(threadPath, message.id);
47
+ }
48
+ catch {
49
+ // Segment detection errors are non-fatal
50
+ }
51
+ })
52
+ .catch(() => {
14
53
  // Silently ignore embedding failures (e.g., model not loaded yet, disk error)
15
54
  });
16
55
  });
56
+ /** Track the last appended message ID per thread for segment boundary detection. */
57
+ const lastMessageIdByThread = new Map();
17
58
  /** Default budget fraction for retrieved context (40% of effective limit) */
18
- export const RETRIEVAL_BUDGET_FRACTION = 0.40;
59
+ export const RETRIEVAL_BUDGET_FRACTION = 0.4;
19
60
  /** Minimum candidates per source (floor when budget is tiny) */
20
61
  const MIN_HISTORY_CANDIDATES = 20;
21
62
  const MIN_CONTENT_CANDIDATES = 20;
@@ -412,8 +453,9 @@ function truncateToTokens(content, maxTokens) {
412
453
  }
413
454
  /**
414
455
  * Run hybrid search on conversation history.
456
+ * Uses query-type-aware weights and optional segment expansion.
415
457
  */
416
- async function searchHistory(query, historyStore, limit, expandedTerms) {
458
+ async function searchHistory(query, historyStore, limit, expandedTerms, queryType) {
417
459
  const t0 = Date.now();
418
460
  const allMsgs = await historyStore.getAll();
419
461
  // Exclude session docs from message search
@@ -495,18 +537,27 @@ async function searchHistory(query, historyStore, limit, expandedTerms) {
495
537
  // Fall back to keyword-only
496
538
  }
497
539
  }
498
- // Combine scores (hybrid)
540
+ // Get query-type-aware weights
541
+ const weights = queryType ? getRetrievalWeights(queryType) : null;
542
+ const kwWeight = weights?.keyword ?? 0.3;
543
+ const semWeight = weights?.semantic ?? 0.7;
544
+ const recencyWeight = weights?.recency ?? 0;
545
+ // Combine scores (hybrid with query-type weights)
499
546
  const combined = [];
500
547
  const allIndices = new Set([...keywordScores.keys(), ...semanticScores.keys()]);
548
+ // For recency scoring, we need the max index
549
+ const maxIndex = messages.length - 1;
501
550
  for (const index of allIndices) {
502
551
  const msg = messages[index];
503
552
  if (!msg)
504
553
  continue;
505
554
  const kwScore = keywordScores.get(index) ?? 0;
506
555
  const semScore = semanticScores.get(index) ?? 0;
507
- // Hybrid: combine with weights (semantic weighted higher)
508
- let finalScore = kwScore * 0.3 + semScore * 0.7;
509
- // Boost if both match
556
+ // Recency score: linear from 0 (oldest) to 1 (newest)
557
+ const recencyScore = maxIndex > 0 ? index / maxIndex : 1;
558
+ // Weighted combination
559
+ let finalScore = kwScore * kwWeight + semScore * semWeight + recencyScore * recencyWeight;
560
+ // Boost if both keyword and semantic match
510
561
  if (kwScore > 0 && semScore > 0) {
511
562
  finalScore *= 1.2;
512
563
  }
@@ -520,6 +571,10 @@ async function searchHistory(query, historyStore, limit, expandedTerms) {
520
571
  });
521
572
  }
522
573
  }
574
+ // For synthesis queries, apply MMR diversity penalty
575
+ if (weights?.diversify && useSemanticSearch) {
576
+ applyDiversityPenalty(combined, messages, limit);
577
+ }
523
578
  // Sort by score descending, then by index descending (most recent first for ties)
524
579
  combined.sort((a, b) => {
525
580
  if (Math.abs(b.score - a.score) > 0.01) {
@@ -529,6 +584,110 @@ async function searchHistory(query, historyStore, limit, expandedTerms) {
529
584
  });
530
585
  return combined.slice(0, limit);
531
586
  }
587
+ /**
588
+ * Apply MMR (Maximal Marginal Relevance) diversity penalty for synthesis queries.
589
+ * Penalizes results that are too similar to higher-scoring results already selected.
590
+ * Modifies scores in-place.
591
+ */
592
+ function applyDiversityPenalty(results, _messages, limit) {
593
+ if (results.length <= 1)
594
+ return;
595
+ // Sort by original score first
596
+ results.sort((a, b) => b.score - a.score);
597
+ // Greedy MMR: for each result after the first, penalize if its content
598
+ // is too similar to any already-selected result (using keyword overlap as proxy)
599
+ const selected = results.slice(0, Math.min(limit, results.length));
600
+ const lambda = 0.7; // Balance between relevance (1.0) and diversity (0.0)
601
+ for (let i = 1; i < selected.length; i++) {
602
+ const current = selected[i];
603
+ let maxSimilarityToSelected = 0;
604
+ // Compare to all previously selected items using content overlap
605
+ for (let j = 0; j < i; j++) {
606
+ const prev = selected[j];
607
+ // Simple word overlap as similarity proxy
608
+ const currentWords = new Set(current.message.content.toLowerCase().split(/\s+/));
609
+ const prevWords = prev.message.content.toLowerCase().split(/\s+/);
610
+ let overlap = 0;
611
+ for (const w of prevWords) {
612
+ if (currentWords.has(w))
613
+ overlap++;
614
+ }
615
+ const similarity = overlap / Math.max(currentWords.size, prevWords.length, 1);
616
+ maxSimilarityToSelected = Math.max(maxSimilarityToSelected, similarity);
617
+ }
618
+ // MMR: score = lambda * relevance - (1-lambda) * maxSimilarity
619
+ current.score = lambda * current.score - (1 - lambda) * maxSimilarityToSelected;
620
+ }
621
+ }
622
+ /**
623
+ * Expand search results by including full conversation segments.
624
+ * When a high-scoring message belongs to a segment, include all messages
625
+ * from that segment (with the segment's best score).
626
+ */
627
+ async function expandWithSegments(results, historyStore, totalMessages) {
628
+ const boundaries = await loadSegmentBoundaries(historyStore.threadPath);
629
+ if (boundaries.length === 0)
630
+ return results;
631
+ const segments = buildSegments(boundaries, totalMessages);
632
+ if (segments.length === 0)
633
+ return results;
634
+ const allMsgs = await historyStore.getAll();
635
+ const nonSessionMsgs = allMsgs.filter(m => m.role !== 'session');
636
+ // Track which indices are already included and their scores
637
+ const indexScores = new Map();
638
+ for (const r of results) {
639
+ indexScores.set(r.index, r);
640
+ }
641
+ // For each result, find its segment and add missing messages
642
+ const expanded = [];
643
+ const processedSegments = new Set(); // track by segment start index
644
+ for (const result of results) {
645
+ const segment = findSegmentForMessage(result.index, segments);
646
+ if (!segment || processedSegments.has(segment.start)) {
647
+ // No segment or already processed — keep original
648
+ if (!processedSegments.has(result.index)) {
649
+ expanded.push(result);
650
+ }
651
+ continue;
652
+ }
653
+ processedSegments.add(segment.start);
654
+ // Find best score in this segment from our results
655
+ let bestScore = result.score;
656
+ for (let i = segment.start; i <= segment.end; i++) {
657
+ const existing = indexScores.get(i);
658
+ if (existing && existing.score > bestScore) {
659
+ bestScore = existing.score;
660
+ }
661
+ }
662
+ // Add all segment messages (score = segment best * decay for non-matched messages)
663
+ for (let i = segment.start; i <= segment.end && i < nonSessionMsgs.length; i++) {
664
+ const msg = nonSessionMsgs[i];
665
+ if (!msg)
666
+ continue;
667
+ const existing = indexScores.get(i);
668
+ if (existing) {
669
+ expanded.push(existing);
670
+ }
671
+ else {
672
+ // Add as segment expansion with decayed score
673
+ expanded.push({
674
+ message: msg,
675
+ index: i,
676
+ score: bestScore * 0.6, // segment context gets 60% of best score
677
+ keywordScore: 0,
678
+ semanticScore: 0,
679
+ });
680
+ }
681
+ }
682
+ }
683
+ // Re-sort by score descending, then index
684
+ expanded.sort((a, b) => {
685
+ if (Math.abs(b.score - a.score) > 0.01)
686
+ return b.score - a.score;
687
+ return b.index - a.index;
688
+ });
689
+ return expanded;
690
+ }
532
691
  /**
533
692
  * Search session documents for relevant context.
534
693
  */
@@ -652,16 +811,20 @@ function formatRetrievedContext(historyResults, contentResults, sessionResults,
652
811
  * Runs hybrid search on history, content, and session stores.
653
812
  */
654
813
  export async function retrieve(query, historyStore, contentStore, options) {
655
- const { budgetTokens, currentSessionId, sessionsPath, recentMessages } = options;
814
+ const { budgetTokens, currentSessionId, sessionsPath, recentMessages, totalMessages } = options;
656
815
  const t0 = Date.now();
816
+ // Classify query type for weight adjustment
817
+ const queryType = classifyQuery(query);
818
+ const weights = getRetrievalWeights(queryType);
657
819
  // Expand query with context terms once, reuse for all searches
658
820
  const expandedTerms = recentMessages ? expandQueryWithContext(query, recentMessages) : undefined;
659
821
  const tExpand = Date.now();
660
- // Compute candidate limits proportional to budget
822
+ // Compute candidate limits proportional to budget, adjusted by query type
661
823
  const { historyCandidates, contentCandidates } = computeCandidateLimits(budgetTokens);
824
+ const adjustedHistoryCandidates = Math.max(MIN_HISTORY_CANDIDATES, Math.round(historyCandidates * weights.candidateMultiplier));
662
825
  // Run searches in parallel
663
- const [historyResults, contentResults, sessionResults] = await Promise.all([
664
- searchHistory(query, historyStore, historyCandidates, expandedTerms),
826
+ const [rawHistoryResults, contentResults, sessionResults] = await Promise.all([
827
+ searchHistory(query, historyStore, adjustedHistoryCandidates, expandedTerms, queryType),
665
828
  contentStore
666
829
  ? contentStore.search(query, { limit: contentCandidates, mode: 'hybrid', expandedTerms })
667
830
  : Promise.resolve([]),
@@ -669,6 +832,10 @@ export async function retrieve(query, historyStore, contentStore, options) {
669
832
  ? searchSessions(query, sessionsPath, currentSessionId)
670
833
  : Promise.resolve([]),
671
834
  ]);
835
+ // Expand results with full conversation segments when available
836
+ const historyResults = totalMessages && totalMessages > 0
837
+ ? await expandWithSegments(rawHistoryResults, historyStore, totalMessages)
838
+ : rawHistoryResults;
672
839
  const tSearch = Date.now();
673
840
  // Format into context string within budget
674
841
  const { context, historyCount, contentCount, tokensUsed } = formatRetrievedContext(historyResults, contentResults, sessionResults, budgetTokens);
@@ -676,10 +843,10 @@ export async function retrieve(query, historyStore, contentStore, options) {
676
843
  // Always log timing when retrieval takes > 2s (performance diagnostic)
677
844
  const totalMs = tFormat - t0;
678
845
  if (totalMs > 2000 || DEBUG_QUERY_EXPANSION) {
679
- console.error(`[RAG Timing] total=${totalMs}ms expand=${tExpand - t0}ms search=${tSearch - tExpand}ms format=${tFormat - tSearch}ms`);
680
- console.error(` Candidates: ${historyCandidates} history + ${contentCandidates} content (budget: ${budgetTokens} tokens, snippet: ${getMaxSnippetTokens(budgetTokens)}t)`);
681
- console.error(` Results: ${historyResults.length} history → ${historyCount} included, ${contentResults.length} content → ${contentCount} included`);
682
- console.error(` Tokens: ${tokensUsed} / ${budgetTokens} (${Math.round(tokensUsed / budgetTokens * 100)}%)`);
846
+ console.error(`[RAG Timing] total=${totalMs}ms expand=${tExpand - t0}ms search=${tSearch - tExpand}ms format=${tFormat - tSearch}ms queryType=${queryType}`);
847
+ console.error(` Candidates: ${adjustedHistoryCandidates} history + ${contentCandidates} content (budget: ${budgetTokens} tokens, snippet: ${getMaxSnippetTokens(budgetTokens)}t)`);
848
+ console.error(` Results: ${rawHistoryResults.length} history (${historyResults.length} with segments) → ${historyCount} included, ${contentResults.length} content → ${contentCount} included`);
849
+ console.error(` Tokens: ${tokensUsed} / ${budgetTokens} (${Math.round((tokensUsed / budgetTokens) * 100)}%)`);
683
850
  }
684
851
  if (DEBUG_QUERY_EXPANSION) {
685
852
  if (historyResults.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"retriever.js","sourceRoot":"","sources":["../../src/lib/retriever.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retriever.js","sourceRoot":"","sources":["../../src/lib/retriever.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Conversation segmentation — detects topic boundaries between consecutive messages
3
+ * and groups messages into segments for cluster retrieval.
4
+ *
5
+ * Boundaries are detected by comparing embeddings of consecutive messages.
6
+ * When cosine distance exceeds a threshold, a new segment starts.
7
+ */
8
+ /**
9
+ * A detected segment boundary — marks where a new topic starts.
10
+ */
11
+ export interface SegmentBoundary {
12
+ /** Message index where the new segment starts */
13
+ messageIndex: number;
14
+ /** ISO timestamp of boundary detection */
15
+ timestamp: string;
16
+ /** Cosine distance from the previous message that triggered the boundary */
17
+ distanceFromPrevious: number;
18
+ }
19
+ /**
20
+ * A segment is a contiguous range of message indices sharing a topic.
21
+ */
22
+ export interface Segment {
23
+ /** First message index (inclusive) */
24
+ start: number;
25
+ /** Last message index (inclusive) */
26
+ end: number;
27
+ }
28
+ /**
29
+ * Get the segments file path for a thread.
30
+ */
31
+ export declare function getSegmentsPath(threadPath: string): string;
32
+ /**
33
+ * Load segment boundaries from disk.
34
+ */
35
+ export declare function loadSegmentBoundaries(threadPath: string): Promise<SegmentBoundary[]>;
36
+ /**
37
+ * Save segment boundaries to disk (atomic write).
38
+ */
39
+ export declare function saveSegmentBoundaries(threadPath: string, boundaries: SegmentBoundary[]): Promise<void>;
40
+ /**
41
+ * Detect whether a new message starts a new segment.
42
+ * Compares the embedding of the new message to the previous message's embedding.
43
+ *
44
+ * Returns the boundary if a topic shift is detected, or null if same segment.
45
+ */
46
+ export declare function detectBoundary(messageIndex: number, messageContent: string, currentEmbedding: number[], previousEmbedding: number[]): SegmentBoundary | null;
47
+ /**
48
+ * Build segment ranges from boundaries.
49
+ * Given boundaries at indices [10, 25, 50] and totalMessages = 70:
50
+ * segments = [{0,9}, {10,24}, {25,49}, {50,69}]
51
+ */
52
+ export declare function buildSegments(boundaries: SegmentBoundary[], totalMessages: number): Segment[];
53
+ /**
54
+ * Find which segment a message belongs to.
55
+ * Returns the segment range, or null if no segments exist.
56
+ */
57
+ export declare function findSegmentForMessage(messageIndex: number, segments: Segment[]): Segment | null;
58
+ /**
59
+ * Run catch-up segmentation for messages that were added without boundary detection.
60
+ * Scans from `startIndex` to `endIndex` (inclusive), using provided embeddings.
61
+ *
62
+ * @param existingBoundaries - Already-known boundaries
63
+ * @param embeddings - Map of messageId → embedding vector
64
+ * @param messages - All messages in order (index = position)
65
+ * @param startIndex - First message index to check
66
+ * @param endIndex - Last message index to check (inclusive)
67
+ * @returns New boundaries detected during catch-up
68
+ */
69
+ export declare function catchUpSegmentation(existingBoundaries: SegmentBoundary[], embeddings: Map<string, number[]>, messages: Array<{
70
+ id: string;
71
+ content: string;
72
+ }>, startIndex: number, endIndex: number): SegmentBoundary[];
73
+ //# sourceMappingURL=segments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"segments.d.ts","sourceRoot":"","sources":["../../src/lib/segments.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAcH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAW1F;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,eAAe,EAAE,GAC5B,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,gBAAgB,EAAE,MAAM,EAAE,EAC1B,iBAAiB,EAAE,MAAM,EAAE,GAC1B,eAAe,GAAG,IAAI,CAkBxB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,eAAe,EAAE,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,EAAE,CAiB7F;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,OAAO,EAAE,GAClB,OAAO,GAAG,IAAI,CAOhB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,kBAAkB,EAAE,eAAe,EAAE,EACrC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EACjC,QAAQ,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,EAChD,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,eAAe,EAAE,CAsBnB"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Conversation segmentation — detects topic boundaries between consecutive messages
3
+ * and groups messages into segments for cluster retrieval.
4
+ *
5
+ * Boundaries are detected by comparing embeddings of consecutive messages.
6
+ * When cosine distance exceeds a threshold, a new segment starts.
7
+ */
8
+ import * as fs from 'fs/promises';
9
+ import { cosineSimilarity } from './embeddings.js';
10
+ /** Minimum content length (chars) to consider for boundary detection.
11
+ * Very short messages ("ok", "yes") don't carry enough topic signal. */
12
+ const MIN_CONTENT_LENGTH = 30;
13
+ /** Cosine distance threshold for topic shift.
14
+ * distance = 1 - similarity; distance > 0.5 means similarity < 0.5. */
15
+ const BOUNDARY_DISTANCE_THRESHOLD = 0.5;
16
+ /**
17
+ * Get the segments file path for a thread.
18
+ */
19
+ export function getSegmentsPath(threadPath) {
20
+ return threadPath.replace('.jsonl', '.segments.json');
21
+ }
22
+ /**
23
+ * Load segment boundaries from disk.
24
+ */
25
+ export async function loadSegmentBoundaries(threadPath) {
26
+ const segPath = getSegmentsPath(threadPath);
27
+ try {
28
+ const content = await fs.readFile(segPath, 'utf-8');
29
+ return JSON.parse(content);
30
+ }
31
+ catch (error) {
32
+ if (error.code === 'ENOENT') {
33
+ return [];
34
+ }
35
+ throw error;
36
+ }
37
+ }
38
+ /**
39
+ * Save segment boundaries to disk (atomic write).
40
+ */
41
+ export async function saveSegmentBoundaries(threadPath, boundaries) {
42
+ const segPath = getSegmentsPath(threadPath);
43
+ const tmpPath = segPath + '.tmp';
44
+ await fs.writeFile(tmpPath, JSON.stringify(boundaries, null, 2), 'utf-8');
45
+ await fs.rename(tmpPath, segPath);
46
+ }
47
+ /**
48
+ * Detect whether a new message starts a new segment.
49
+ * Compares the embedding of the new message to the previous message's embedding.
50
+ *
51
+ * Returns the boundary if a topic shift is detected, or null if same segment.
52
+ */
53
+ export function detectBoundary(messageIndex, messageContent, currentEmbedding, previousEmbedding) {
54
+ // Skip very short messages — not enough signal
55
+ if (messageContent.length < MIN_CONTENT_LENGTH) {
56
+ return null;
57
+ }
58
+ const similarity = cosineSimilarity(currentEmbedding, previousEmbedding);
59
+ const distance = 1 - similarity;
60
+ if (distance > BOUNDARY_DISTANCE_THRESHOLD) {
61
+ return {
62
+ messageIndex,
63
+ timestamp: new Date().toISOString(),
64
+ distanceFromPrevious: Math.round(distance * 1000) / 1000,
65
+ };
66
+ }
67
+ return null;
68
+ }
69
+ /**
70
+ * Build segment ranges from boundaries.
71
+ * Given boundaries at indices [10, 25, 50] and totalMessages = 70:
72
+ * segments = [{0,9}, {10,24}, {25,49}, {50,69}]
73
+ */
74
+ export function buildSegments(boundaries, totalMessages) {
75
+ if (totalMessages === 0)
76
+ return [];
77
+ const segments = [];
78
+ const starts = boundaries.map(b => b.messageIndex).sort((a, b) => a - b);
79
+ let prevStart = 0;
80
+ for (const start of starts) {
81
+ if (start > prevStart && start < totalMessages) {
82
+ segments.push({ start: prevStart, end: start - 1 });
83
+ prevStart = start;
84
+ }
85
+ }
86
+ // Final segment
87
+ segments.push({ start: prevStart, end: totalMessages - 1 });
88
+ return segments;
89
+ }
90
+ /**
91
+ * Find which segment a message belongs to.
92
+ * Returns the segment range, or null if no segments exist.
93
+ */
94
+ export function findSegmentForMessage(messageIndex, segments) {
95
+ for (const seg of segments) {
96
+ if (messageIndex >= seg.start && messageIndex <= seg.end) {
97
+ return seg;
98
+ }
99
+ }
100
+ return null;
101
+ }
102
+ /**
103
+ * Run catch-up segmentation for messages that were added without boundary detection.
104
+ * Scans from `startIndex` to `endIndex` (inclusive), using provided embeddings.
105
+ *
106
+ * @param existingBoundaries - Already-known boundaries
107
+ * @param embeddings - Map of messageId → embedding vector
108
+ * @param messages - All messages in order (index = position)
109
+ * @param startIndex - First message index to check
110
+ * @param endIndex - Last message index to check (inclusive)
111
+ * @returns New boundaries detected during catch-up
112
+ */
113
+ export function catchUpSegmentation(existingBoundaries, embeddings, messages, startIndex, endIndex) {
114
+ const knownIndices = new Set(existingBoundaries.map(b => b.messageIndex));
115
+ const newBoundaries = [];
116
+ for (let i = Math.max(1, startIndex); i <= endIndex; i++) {
117
+ if (knownIndices.has(i))
118
+ continue;
119
+ const current = messages[i];
120
+ const previous = messages[i - 1];
121
+ if (!current || !previous)
122
+ continue;
123
+ const currentEmb = embeddings.get(current.id);
124
+ const previousEmb = embeddings.get(previous.id);
125
+ if (!currentEmb || !previousEmb)
126
+ continue;
127
+ const boundary = detectBoundary(i, current.content, currentEmb, previousEmb);
128
+ if (boundary) {
129
+ newBoundaries.push(boundary);
130
+ }
131
+ }
132
+ return newBoundaries;
133
+ }
134
+ //# sourceMappingURL=segments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"segments.js","sourceRoot":"","sources":["../../src/lib/segments.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../src/tui/components/App.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,KAA4D,MAAM,OAAO,CAAC;AA0OjF,UAAU,QAAQ;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,GAAG,CAAC,EAAE,UAAU,EAAE,SAAiB,EAAE,EAAE,QAAQ,GAAG,KAAK,CAAC,YAAY,CA4oBnF"}
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../src/tui/components/App.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,KAA4D,MAAM,OAAO,CAAC;AA0OjF,UAAU,QAAQ;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,GAAG,CAAC,EAAE,UAAU,EAAE,SAAiB,EAAE,EAAE,QAAQ,GAAG,KAAK,CAAC,YAAY,CA6oBnF"}