@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.
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/content-store.d.ts.map +1 -1
- package/dist/lib/content-store.js +6 -2
- package/dist/lib/content-store.js.map +1 -1
- package/dist/lib/embeddings.d.ts.map +1 -1
- package/dist/lib/embeddings.js.map +1 -1
- package/dist/lib/history.d.ts.map +1 -1
- package/dist/lib/history.js.map +1 -1
- package/dist/lib/query-classifier.d.ts +37 -0
- package/dist/lib/query-classifier.d.ts.map +1 -0
- package/dist/lib/query-classifier.js +102 -0
- package/dist/lib/query-classifier.js.map +1 -0
- package/dist/lib/retriever.d.ts +2 -0
- package/dist/lib/retriever.d.ts.map +1 -1
- package/dist/lib/retriever.js +184 -17
- package/dist/lib/retriever.js.map +1 -1
- package/dist/lib/segments.d.ts +73 -0
- package/dist/lib/segments.d.ts.map +1 -0
- package/dist/lib/segments.js +134 -0
- package/dist/lib/segments.js.map +1 -0
- package/dist/tui/components/App.d.ts.map +1 -1
- package/dist/tui/components/App.js.map +1 -1
- package/package.json +1 -1
package/dist/lib/retriever.js
CHANGED
|
@@ -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
|
|
10
|
-
//
|
|
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 })
|
|
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.
|
|
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
|
-
//
|
|
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
|
-
//
|
|
508
|
-
|
|
509
|
-
//
|
|
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 [
|
|
664
|
-
searchHistory(query, historyStore,
|
|
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: ${
|
|
681
|
-
console.error(` Results: ${
|
|
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":"AAAA;;;GAGG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,EACpB,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAyB,eAAe,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,kFAAkF;AAClF,gFAAgF;AAChF,eAAe,CAAC,CAAC,UAAkB,EAAE,OAAgB,EAAE,EAAE;IACvD,4DAA4D;IAC5D,kBAAkB,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QACtF,8EAA8E;IAChF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,6EAA6E;AAC7E,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,CAAC;AAE9C,gEAAgE;AAChE,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAClC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAElC,wDAAwD;AACxD,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B,wDAAwD;AACxD,MAAM,2BAA2B,GAAG,GAAG,CAAC;AACxC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAEtC,mEAAmE;AACnE,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAEvC,mCAAmC;AACnC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAE5B,gEAAgE;AAChE,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAEtC;;6EAE6E;AAC7E,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAExC;;;;GAIG;AACH,SAAS,sBAAsB,CAAC,YAAoB;IAIlD,sFAAsF;IACtF,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,GAAG,2BAA2B,CAAC,GAAG,GAAG,CAAC,CAAC;IACtF,4BAA4B;IAC5B,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,mBAAmB,CAAC,CAAC;IACxE,OAAO;QACL,iBAAiB,EAAE,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC;QAC3D,iBAAiB,EAAE,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC;KAC5D,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,YAAoB,EAAE,WAAoB;IACrE,MAAM,IAAI,GAAG,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,2BAA2B,CAAC;IAC7F,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CACpB,iBAAiB,EACjB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,uBAAuB,CAAC,CACpD,CAAC;IACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;AAClC,CAAC;AA6CD,2DAA2D;AAC3D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IACzB,KAAK;IACL,GAAG;IACH,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,MAAM;IACN,IAAI;IACJ,MAAM;IACN,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,IAAI;IACJ,MAAM;IACN,KAAK;IACL,KAAK;IACL,IAAI;IACJ,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,OAAO;IACP,QAAQ;IACR,KAAK;IACL,OAAO;IACP,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,IAAI;IACJ,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,GAAG;IACH,KAAK;IACL,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,OAAO;IACP,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,IAAI;IACJ,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,IAAI;IACJ,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,SAAS;IACT,QAAQ;IACR,OAAO;IACP,OAAO;IACP,KAAK;IACL,OAAO;IACP,MAAM;IACN,SAAS;IACT,QAAQ;IACR,OAAO;IACP,OAAO;IACP,SAAS;IACT,OAAO;IACP,MAAM;IACN,KAAK;IACL,IAAI;IACJ,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,SAAS;IACT,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,QAAQ;IACR,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,IAAI;IACJ,MAAM;IACN,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,UAAU;IACV,WAAW;IACX,QAAQ;IACR,UAAU;IACV,OAAO;IACP,SAAS;IACT,OAAO;IACP,MAAM;CACP,CAAC,CAAC;AAEH,4DAA4D;AAC5D,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B;;;GAGG;AACH,SAAS,uBAAuB,CAAC,QAAkD;IACjF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAErC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAoE,CAAC;IAElG,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC;QAEnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACjB,IAAI,MAAM;oBAAE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;;oBAC9B,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE;oBACtB,KAAK,EAAE,CAAC;oBACR,MAAM,EAAE,MAAM;oBACd,WAAW,EAAE,CAAC,MAAM;iBACrB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,MAAM,MAAM,GAA2C,EAAE,CAAC;IAC1D,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,aAAa,EAAE,CAAC;QAC1C,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,6EAA6E;QAC7E,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACtC,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;QAED,wCAAwC;QACxC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;QAExC,oCAAoC;QACpC,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;QAED,uCAAuC;QACvC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACrB,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;QAED,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;IAEpD,IAAI,qBAAqB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC5C,KAAK,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACnD,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;YACvC,MAAM,KAAK,GAAG;gBACZ,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;gBAC3E,IAAI,KAAK,CAAC,KAAK,EAAE;gBACjB,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBACnC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;aAC/B;iBACE,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,GAAG,CAAC,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,IAAY;IACxC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,2CAA2C;IAC3C,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,qCAAqC,CAAC,IAAI,EAAE,CAAC;IACjF,KAAK,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAE1D,iCAAiC;IACjC,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;IAC7D,KAAK,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAE1D,uEAAuE;IACvE,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC3D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC9C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,gEAAgE;IAChE,+EAA+E;IAC/E,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;IAC5D,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,IAAY;IACnC,mCAAmC;IACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpC,sCAAsC;IACtC,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAEnD,4BAA4B;IAC5B,MAAM,YAAY,GAAG;QACnB,OAAO;QACP,SAAS;QACT,SAAS;QACT,SAAS;QACT,UAAU;QACV,SAAS;QACT,YAAY;QACZ,OAAO;QACP,MAAM;QACN,WAAW;QACX,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,OAAO;QACP,MAAM;QACN,UAAU;QACV,SAAS;QACT,QAAQ;QACR,QAAQ;KACT,CAAC;IACF,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAC5F,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,+CAA+C;AAC/C,MAAM,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,GAAG,CAAC;AAE5D;;GAEG;AACH,SAAS,sBAAsB,CAC7B,KAAa,EACb,cAAwD;IAExD,8FAA8F;IAC9F,MAAM,UAAU,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IAE9C,wBAAwB;IACxB,MAAM,YAAY,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;IAE7D,2DAA2D;IAC3D,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,IAAI,qBAAqB,EAAE,CAAC;QAC1B,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACvC,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;QAC1C,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,QAAQ,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzF,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,OAAe,EAAE,SAAiB;IAC1D,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,MAAM,IAAI,SAAS;QAAE,OAAO,OAAO,CAAC;IACxC,mCAAmC;IACnC,MAAM,WAAW,GAAG,SAAS,GAAG,CAAC,CAAC;IAClC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,iBAAiB,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAC1B,KAAa,EACb,YAA0B,EAC1B,KAAa,EACb,aAAwB;IAExB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACtB,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,CAAC;IAC5C,2CAA2C;IAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IAE3D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEzB,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACvC,4DAA4D;IAC5D,MAAM,UAAU,GAAG,aAAa,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEtF,iBAAiB;IACjB,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAE/C,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,+BAA+B;gBAC/B,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBACtC,KAAK,IAAI,CAAC,CAAC;gBACb,CAAC;qBAAM,CAAC;oBACN,KAAK,IAAI,CAAC,CAAC;gBACb,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE5B,kBAAkB;IAClB,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IACjD,MAAM,iBAAiB,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAEtD,IAAI,iBAAiB,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAE/B,sFAAsF;YACtF,MAAM,kBAAkB,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;YACzE,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAErE,IAAI,SAAS,GAAG,WAAW,CAAC;YAC5B,IAAI,UAAU,EAAE,CAAC;gBACf,kFAAkF;gBAClF,MAAM,yBAAyB,CAC7B,YAAY,CAAC,UAAU,EACvB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CACtD,CAAC;gBACF,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACzB,CAAC;YAED,+EAA+E;YAC/E,MAAM,UAAU,GAAG,UAAU;gBAC3B,CAAC,CAAC,MAAM,cAAc,CAAC,YAAY,CAAC,UAAU,CAAC;gBAC/C,CAAC,CAAC,kBAAkB,CAAC;YACvB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC;YACxC,MAAM,CAAC,cAAc,CAAC,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACvD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAE/B,IAAI,cAAc,EAAE,CAAC;gBACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACzC,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;oBACxB,IAAI,CAAC,GAAG;wBAAE,SAAS;oBACnB,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACzC,IAAI,CAAC,SAAS;wBAAE,SAAS;oBAEzB,MAAM,UAAU,GAAG,gBAAgB,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;oBAC/D,IAAI,UAAU,GAAG,kBAAkB,EAAE,CAAC;wBACpC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;oBACpC,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC/B,MAAM,aAAa,GAAG,WAAW,GAAG,EAAE,CAAC;YACvC,IAAI,aAAa,GAAG,IAAI,EAAE,CAAC;gBACzB,OAAO,CAAC,KAAK,CAAC,6BAA6B,aAAa,WAAW,KAAK,GAAG,EAAE,cAAc,QAAQ,GAAG,KAAK,eAAe,SAAS,GAAG,WAAW,gBAAgB,UAAU,GAAG,SAAS,iBAAiB,WAAW,GAAG,UAAU,iBAAiB,WAAW,GAAG,WAAW,WAAW,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC1S,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,4BAA4B;QAC9B,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,MAAM,QAAQ,GAA0B,EAAE,CAAC;IAC3C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,IAAI,EAAE,EAAE,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAEhF,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG;YAAE,SAAS;QAEnB,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEhD,0DAA0D;QAC1D,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,GAAG,QAAQ,GAAG,GAAG,CAAC;QAChD,sBAAsB;QACtB,IAAI,OAAO,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YAChC,UAAU,IAAI,GAAG,CAAC;QACpB,CAAC;QAED,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnB,QAAQ,CAAC,IAAI,CAAC;gBACZ,OAAO,EAAE,GAAG;gBACZ,KAAK;gBACL,KAAK,EAAE,UAAU;gBACjB,YAAY,EAAE,OAAO;gBACrB,aAAa,EAAE,QAAQ;aACxB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,kFAAkF;IAClF,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACrB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC;YACvC,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;QAC3B,CAAC;QACD,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAC3B,KAAa,EACb,YAAoB,EACpB,gBAAwB;IAExB,IAAI,CAAC,CAAC,MAAM,mBAAmB,EAAE,CAAC;QAAE,OAAO,EAAE,CAAC;IAE9C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC;QACxC,MAAM,CAAC,cAAc,CAAC,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,cAAc;YAAE,OAAO,EAAE,CAAC;QAE/B,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,iBAAiB,CACpD,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,kBAAkB,CACnB,CAAC;QAEF,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACvB,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,OAAO,EAAE,CAAC,CAAC,eAAe;YAC1B,KAAK,EAAE,CAAC,CAAC,KAAK;SACf,CAAC,CAAC,CAAC;IACN,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAC7B,cAAqC,EACrC,cAAqC,EACrC,cAAqC,EACrC,YAAoB;IAEpB,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;IAC1E,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,MAAM,MAAM,GAAG,sEAAsE,CAAC;IACtF,MAAM,MAAM,GAAG,OAAO,CAAC;IACvB,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IACrD,IAAI,SAAS,GAAG,YAAY,GAAG,YAAY,CAAC;IAE5C,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACnB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;IAC1E,CAAC;IAED,qEAAqE;IACrE,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,aAAa,GAAG,uBAAuB,CAAC;QAC9C,MAAM,mBAAmB,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;QAC1D,IAAI,mBAAmB,GAAG,SAAS,EAAE,CAAC;YACpC,SAAS,IAAI,mBAAmB,CAAC;YACjC,MAAM,YAAY,GAAa,CAAC,aAAa,CAAC,CAAC;YAE/C,MAAM,mBAAmB,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;YAC9D,KAAK,MAAM,MAAM,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBAChD,MAAM,IAAI,GAAG,WAAW,MAAM,CAAC,SAAS,KAAK,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,mBAAmB,CAAC,IAAI,CAAC;gBACvG,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;gBACxC,IAAI,UAAU,GAAG,SAAS;oBAAE,MAAM;gBAClC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,SAAS,IAAI,UAAU,CAAC;YAC1B,CAAC;YAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;IAED,sBAAsB;IACtB,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,aAAa,GAAG,8BAA8B,CAAC;QACrD,MAAM,mBAAmB,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;QAC1D,IAAI,mBAAmB,GAAG,SAAS,EAAE,CAAC;YACpC,SAAS,IAAI,mBAAmB,CAAC;YACjC,MAAM,YAAY,GAAa,CAAC,aAAa,CAAC,CAAC;YAE/C,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;gBACpC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;gBACpE,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC5F,MAAM,IAAI,GAAG,IAAI,KAAK,KAAK,MAAM,CAAC,KAAK,MAAM,OAAO,IAAI,CAAC;gBACzD,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;gBACxC,IAAI,UAAU,GAAG,SAAS;oBAAE,MAAM;gBAClC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,SAAS,IAAI,UAAU,CAAC;gBACxB,YAAY,EAAE,CAAC;YACjB,CAAC;YAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;IAED,sBAAsB;IACtB,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,aAAa,GAAG,+BAA+B,CAAC;QACtD,MAAM,mBAAmB,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;QAC1D,IAAI,mBAAmB,GAAG,SAAS,EAAE,CAAC;YACpC,SAAS,IAAI,mBAAmB,CAAC;YACjC,MAAM,YAAY,GAAa,CAAC,aAAa,CAAC,CAAC;YAE/C,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;gBACpC,MAAM,OAAO,GAAG,gBAAgB,CAC9B,MAAM,CAAC,OAAO,EACd,mBAAmB,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAC3D,CAAC;gBACF,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,OAAO,IAAI,CAAC;gBAE3E,gFAAgF;gBAChF,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,KAAK,gBAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC;oBACpF,IAAI,IAAI,oBAAoB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,mCAAmC,CAAC;gBACjG,CAAC;gBAED,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;gBACxC,IAAI,UAAU,GAAG,SAAS;oBAAE,MAAM;gBAClC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,SAAS,IAAI,UAAU,CAAC;gBACxB,YAAY,EAAE,CAAC;YACjB,CAAC;YAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;IAC1E,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;IACpD,UAAU,GAAG,YAAY,GAAG,SAAS,CAAC;IAEtC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AAC7D,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,KAAa,EACb,YAA0B,EAC1B,YAAiC,EACjC,OAAyB;IAEzB,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IACjF,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEtB,+DAA+D;IAC/D,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,sBAAsB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjG,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE3B,kDAAkD;IAClD,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAC;IAEtF,2BAA2B;IAC3B,MAAM,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACzE,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,CAAC;QACpE,YAAY;YACV,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;YACzF,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,YAAY,IAAI,gBAAgB;YAC9B,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,gBAAgB,CAAC;YACvD,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;KACxB,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE3B,2CAA2C;IAC3C,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,sBAAsB,CAChF,cAAc,EACd,cAAc,EACd,cAAc,EACd,YAAY,CACb,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE3B,uEAAuE;IACvE,MAAM,OAAO,GAAG,OAAO,GAAG,EAAE,CAAC;IAC7B,IAAI,OAAO,GAAG,IAAI,IAAI,qBAAqB,EAAE,CAAC;QAC5C,OAAO,CAAC,KAAK,CAAC,sBAAsB,OAAO,aAAa,OAAO,GAAG,EAAE,aAAa,OAAO,GAAG,OAAO,aAAa,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC;QACtI,OAAO,CAAC,KAAK,CAAC,iBAAiB,iBAAiB,cAAc,iBAAiB,qBAAqB,YAAY,qBAAqB,mBAAmB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC5K,OAAO,CAAC,KAAK,CAAC,cAAc,cAAc,CAAC,MAAM,cAAc,YAAY,cAAc,cAAc,CAAC,MAAM,cAAc,YAAY,WAAW,CAAC,CAAC;QACrJ,OAAO,CAAC,KAAK,CAAC,aAAa,UAAU,MAAM,YAAY,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/G,CAAC;IAED,IAAI,qBAAqB,EAAE,CAAC;QAC1B,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;QAC/F,CAAC;QACD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO;QACP,YAAY;QACZ,YAAY;QACZ,UAAU;QACV,KAAK,EAAE;YACL,cAAc,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACvC,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI;gBACpB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG;gBACtC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK;aACjD,CAAC,CAAC;YACH,cAAc,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACvC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE;gBACb,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG;gBACtC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK;aACzC,CAAC,CAAC;YACH,cAAc,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACvC,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG;gBACtC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK;aACzC,CAAC,CAAC;SACJ;KACF,CAAC;AACJ,CAAC"}
|
|
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,
|
|
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"}
|