MCPcopy Index your code
hub / github.com/simstudioai/sim / addOverlap

Function addOverlap

apps/sim/lib/chunkers/utils.ts:23–52  ·  view source on GitHub ↗
(chunks: string[], overlapChars: number)

Source from the content-addressed store, hash-verified

21}
22
23export function addOverlap(chunks: string[], overlapChars: number): string[] {
24 if (overlapChars <= 0 || chunks.length <= 1) {
25 return chunks
26 }
27
28 const result: string[] = []
29
30 for (let i = 0; i < chunks.length; i++) {
31 let chunk = chunks[i]
32
33 if (i > 0) {
34 const prevChunk = chunks[i - 1]
35 const overlapLength = Math.min(overlapChars, prevChunk.length)
36 const overlapText = prevChunk.slice(-overlapLength)
37
38 const wordBoundaryMatch = overlapText.match(/^\s*\S/)
39 const cleanOverlap = wordBoundaryMatch
40 ? overlapText.slice(overlapText.indexOf(wordBoundaryMatch[0].trim()))
41 : overlapText
42
43 if (cleanOverlap.trim()) {
44 chunk = `${cleanOverlap.trim()} ${chunk}`
45 }
46 }
47
48 result.push(chunk)
49 }
50
51 return result
52}
53
54/**
55 * When stepChars is provided (< chunkSizeChars), produces overlapping chunks

Callers 4

chunkMethod · 0.90
chunkMethod · 0.90
utils.test.tsFile · 0.90
chunkMethod · 0.90

Calls 1

pushMethod · 0.45

Tested by

no test coverage detected