opencode-rag-plugin 1.2.5 → 1.2.10
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/ReadMe.md +491 -463
- package/dist/cli.js +55 -1
- package/dist/cli.js.map +1 -1
- package/package.json +90 -90
- package/dist/__tests__/chunker/c.test.d.ts +0 -1
- package/dist/__tests__/chunker/c.test.js +0 -82
- package/dist/__tests__/chunker/c.test.js.map +0 -1
- package/dist/__tests__/chunker/cpp.test.d.ts +0 -1
- package/dist/__tests__/chunker/cpp.test.js +0 -96
- package/dist/__tests__/chunker/cpp.test.js.map +0 -1
- package/dist/__tests__/chunker/csharp.test.d.ts +0 -1
- package/dist/__tests__/chunker/csharp.test.js +0 -85
- package/dist/__tests__/chunker/csharp.test.js.map +0 -1
- package/dist/__tests__/chunker/css.test.d.ts +0 -1
- package/dist/__tests__/chunker/css.test.js +0 -64
- package/dist/__tests__/chunker/css.test.js.map +0 -1
- package/dist/__tests__/chunker/factory.test.d.ts +0 -1
- package/dist/__tests__/chunker/factory.test.js +0 -202
- package/dist/__tests__/chunker/factory.test.js.map +0 -1
- package/dist/__tests__/chunker/fallback.test.d.ts +0 -1
- package/dist/__tests__/chunker/fallback.test.js +0 -67
- package/dist/__tests__/chunker/fallback.test.js.map +0 -1
- package/dist/__tests__/chunker/go.test.d.ts +0 -1
- package/dist/__tests__/chunker/go.test.js +0 -90
- package/dist/__tests__/chunker/go.test.js.map +0 -1
- package/dist/__tests__/chunker/grammar.test.d.ts +0 -1
- package/dist/__tests__/chunker/grammar.test.js +0 -108
- package/dist/__tests__/chunker/grammar.test.js.map +0 -1
- package/dist/__tests__/chunker/html.test.d.ts +0 -1
- package/dist/__tests__/chunker/html.test.js +0 -64
- package/dist/__tests__/chunker/html.test.js.map +0 -1
- package/dist/__tests__/chunker/java.test.d.ts +0 -1
- package/dist/__tests__/chunker/java.test.js +0 -83
- package/dist/__tests__/chunker/java.test.js.map +0 -1
- package/dist/__tests__/chunker/javascript.test.d.ts +0 -1
- package/dist/__tests__/chunker/javascript.test.js +0 -88
- package/dist/__tests__/chunker/javascript.test.js.map +0 -1
- package/dist/__tests__/chunker/json.test.d.ts +0 -1
- package/dist/__tests__/chunker/json.test.js +0 -54
- package/dist/__tests__/chunker/json.test.js.map +0 -1
- package/dist/__tests__/chunker/kotlin.test.d.ts +0 -1
- package/dist/__tests__/chunker/kotlin.test.js +0 -42
- package/dist/__tests__/chunker/kotlin.test.js.map +0 -1
- package/dist/__tests__/chunker/markdown.test.d.ts +0 -1
- package/dist/__tests__/chunker/markdown.test.js +0 -76
- package/dist/__tests__/chunker/markdown.test.js.map +0 -1
- package/dist/__tests__/chunker/python.test.d.ts +0 -1
- package/dist/__tests__/chunker/python.test.js +0 -81
- package/dist/__tests__/chunker/python.test.js.map +0 -1
- package/dist/__tests__/chunker/razor.test.d.ts +0 -1
- package/dist/__tests__/chunker/razor.test.js +0 -73
- package/dist/__tests__/chunker/razor.test.js.map +0 -1
- package/dist/__tests__/chunker/register.test.d.ts +0 -1
- package/dist/__tests__/chunker/register.test.js +0 -93
- package/dist/__tests__/chunker/register.test.js.map +0 -1
- package/dist/__tests__/chunker/ruby.test.d.ts +0 -1
- package/dist/__tests__/chunker/ruby.test.js +0 -40
- package/dist/__tests__/chunker/ruby.test.js.map +0 -1
- package/dist/__tests__/chunker/rust.test.d.ts +0 -1
- package/dist/__tests__/chunker/rust.test.js +0 -42
- package/dist/__tests__/chunker/rust.test.js.map +0 -1
- package/dist/__tests__/chunker/sln.test.d.ts +0 -1
- package/dist/__tests__/chunker/sln.test.js +0 -45
- package/dist/__tests__/chunker/sln.test.js.map +0 -1
- package/dist/__tests__/chunker/swift.test.d.ts +0 -1
- package/dist/__tests__/chunker/swift.test.js +0 -49
- package/dist/__tests__/chunker/swift.test.js.map +0 -1
- package/dist/__tests__/chunker/typescript.test.d.ts +0 -1
- package/dist/__tests__/chunker/typescript.test.js +0 -92
- package/dist/__tests__/chunker/typescript.test.js.map +0 -1
- package/dist/__tests__/chunker/uuid.test.d.ts +0 -1
- package/dist/__tests__/chunker/uuid.test.js +0 -19
- package/dist/__tests__/chunker/uuid.test.js.map +0 -1
- package/dist/__tests__/chunker/xml.test.d.ts +0 -1
- package/dist/__tests__/chunker/xml.test.js +0 -50
- package/dist/__tests__/chunker/xml.test.js.map +0 -1
- package/dist/__tests__/core/config.test.d.ts +0 -1
- package/dist/__tests__/core/config.test.js +0 -75
- package/dist/__tests__/core/config.test.js.map +0 -1
- package/dist/__tests__/core/fileLogger.test.d.ts +0 -1
- package/dist/__tests__/core/fileLogger.test.js +0 -34
- package/dist/__tests__/core/fileLogger.test.js.map +0 -1
- package/dist/__tests__/core/manifest.test.d.ts +0 -1
- package/dist/__tests__/core/manifest.test.js +0 -56
- package/dist/__tests__/core/manifest.test.js.map +0 -1
- package/dist/__tests__/embedder/embedBatch.test.d.ts +0 -1
- package/dist/__tests__/embedder/embedBatch.test.js +0 -88
- package/dist/__tests__/embedder/embedBatch.test.js.map +0 -1
- package/dist/__tests__/embedder/factory.test.d.ts +0 -1
- package/dist/__tests__/embedder/factory.test.js +0 -71
- package/dist/__tests__/embedder/factory.test.js.map +0 -1
- package/dist/__tests__/embedder/ollama.test.d.ts +0 -1
- package/dist/__tests__/embedder/ollama.test.js +0 -106
- package/dist/__tests__/embedder/ollama.test.js.map +0 -1
- package/dist/__tests__/embedder/openai.test.d.ts +0 -1
- package/dist/__tests__/embedder/openai.test.js +0 -94
- package/dist/__tests__/embedder/openai.test.js.map +0 -1
- package/dist/__tests__/indexer/indexer.test.d.ts +0 -1
- package/dist/__tests__/indexer/indexer.test.js +0 -176
- package/dist/__tests__/indexer/indexer.test.js.map +0 -1
- package/dist/__tests__/plugin.test.d.ts +0 -1
- package/dist/__tests__/plugin.test.js +0 -77
- package/dist/__tests__/plugin.test.js.map +0 -1
- package/dist/__tests__/retriever/retriever.test.d.ts +0 -1
- package/dist/__tests__/retriever/retriever.test.js +0 -97
- package/dist/__tests__/retriever/retriever.test.js.map +0 -1
- package/dist/__tests__/vectorstore/lancedb.test.d.ts +0 -1
- package/dist/__tests__/vectorstore/lancedb.test.js +0 -159
- package/dist/__tests__/vectorstore/lancedb.test.js.map +0 -1
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { describe, it } from "node:test";
|
|
2
|
-
import assert from "node:assert/strict";
|
|
3
|
-
import { pythonChunker } from "../../chunker/python.js";
|
|
4
|
-
describe("PythonChunker", () => {
|
|
5
|
-
it("language is 'python'", () => {
|
|
6
|
-
assert.equal(pythonChunker.language, "python");
|
|
7
|
-
});
|
|
8
|
-
it("fileExtensions includes .py", () => {
|
|
9
|
-
assert.ok(pythonChunker.fileExtensions.includes(".py"));
|
|
10
|
-
});
|
|
11
|
-
it("grammarName is 'python'", () => {
|
|
12
|
-
assert.equal(pythonChunker.grammarName, "python");
|
|
13
|
-
});
|
|
14
|
-
it("nodeTypes contains expected types", () => {
|
|
15
|
-
const types = pythonChunker.nodeTypes;
|
|
16
|
-
assert.ok(types.has("function_definition"));
|
|
17
|
-
assert.ok(types.has("class_definition"));
|
|
18
|
-
assert.ok(types.has("decorated_definition"));
|
|
19
|
-
});
|
|
20
|
-
it("chunk returns empty array for empty content", async () => {
|
|
21
|
-
const chunks = await pythonChunker.chunk("test.py", "");
|
|
22
|
-
assert.deepStrictEqual(chunks, []);
|
|
23
|
-
});
|
|
24
|
-
it("chunk returns empty array for whitespace-only content", async () => {
|
|
25
|
-
const chunks = await pythonChunker.chunk("test.py", " \n \n ");
|
|
26
|
-
assert.deepStrictEqual(chunks, []);
|
|
27
|
-
});
|
|
28
|
-
it("chunk parses a function definition", async () => {
|
|
29
|
-
const code = "def hello():\n return 'world'\n";
|
|
30
|
-
const chunks = await pythonChunker.chunk("test.py", code);
|
|
31
|
-
assert.ok(chunks.length > 0, "expected at least one chunk");
|
|
32
|
-
assert.equal(chunks[0].metadata.language, "python");
|
|
33
|
-
assert.equal(chunks[0].metadata.filePath, "test.py");
|
|
34
|
-
assert.ok(chunks[0].content.includes("hello"));
|
|
35
|
-
});
|
|
36
|
-
it("chunk parses a class definition", async () => {
|
|
37
|
-
const code = "class Animal:\n def speak(self):\n return 'hello'\n";
|
|
38
|
-
const chunks = await pythonChunker.chunk("animals.py", code);
|
|
39
|
-
assert.ok(chunks.length > 0, "expected at least one chunk");
|
|
40
|
-
assert.equal(chunks[0].metadata.language, "python");
|
|
41
|
-
assert.ok(chunks[0].content.includes("class Animal"));
|
|
42
|
-
});
|
|
43
|
-
it("chunk parses a decorated definition", async () => {
|
|
44
|
-
const code = "@staticmethod\ndef helper():\n pass\n";
|
|
45
|
-
const chunks = await pythonChunker.chunk("utils.py", code);
|
|
46
|
-
assert.ok(chunks.length > 0, "expected at least one chunk");
|
|
47
|
-
assert.ok(chunks.some((c) => c.content.includes("@staticmethod") || c.content.includes("helper")));
|
|
48
|
-
});
|
|
49
|
-
it("chunk generates unique IDs for multiple definitions", async () => {
|
|
50
|
-
const code = [
|
|
51
|
-
"def foo():",
|
|
52
|
-
" pass",
|
|
53
|
-
"",
|
|
54
|
-
"def bar():",
|
|
55
|
-
" pass",
|
|
56
|
-
"",
|
|
57
|
-
"class Baz:",
|
|
58
|
-
" pass",
|
|
59
|
-
].join("\n");
|
|
60
|
-
const chunks = await pythonChunker.chunk("multi.py", code);
|
|
61
|
-
const ids = new Set(chunks.map((c) => c.id));
|
|
62
|
-
assert.equal(ids.size, chunks.length);
|
|
63
|
-
});
|
|
64
|
-
it("chunk sets correct startLine metadata", async () => {
|
|
65
|
-
const code = [
|
|
66
|
-
"# top comment",
|
|
67
|
-
"",
|
|
68
|
-
"def first():",
|
|
69
|
-
" return 1",
|
|
70
|
-
"",
|
|
71
|
-
"def second():",
|
|
72
|
-
" return 2",
|
|
73
|
-
].join("\n");
|
|
74
|
-
const chunks = await pythonChunker.chunk("lines.py", code);
|
|
75
|
-
assert.ok(chunks.length >= 2, "expected at least two chunks");
|
|
76
|
-
const firstFn = chunks.find((c) => c.content.includes("first"));
|
|
77
|
-
assert.ok(firstFn, "should find first() chunk");
|
|
78
|
-
assert.equal(firstFn.metadata.startLine, 3);
|
|
79
|
-
});
|
|
80
|
-
});
|
|
81
|
-
//# sourceMappingURL=python.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"python.test.js","sourceRoot":"","sources":["../../../src/__tests__/chunker/python.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { describe, it } from "node:test";
|
|
2
|
-
import assert from "node:assert/strict";
|
|
3
|
-
import { razorChunker } from "../../chunker/razor.js";
|
|
4
|
-
describe("RazorChunker", () => {
|
|
5
|
-
it("language is 'razor'", () => {
|
|
6
|
-
assert.equal(razorChunker.language, "razor");
|
|
7
|
-
});
|
|
8
|
-
it("fileExtensions includes .razor and .cshtml", () => {
|
|
9
|
-
assert.ok(razorChunker.fileExtensions.includes(".razor"));
|
|
10
|
-
assert.ok(razorChunker.fileExtensions.includes(".cshtml"));
|
|
11
|
-
});
|
|
12
|
-
it("chunk returns empty array for empty content", async () => {
|
|
13
|
-
const chunks = await razorChunker.chunk("test.razor", "");
|
|
14
|
-
assert.deepStrictEqual(chunks, []);
|
|
15
|
-
});
|
|
16
|
-
it("returns single chunk for content without code blocks", async () => {
|
|
17
|
-
const code = "<h1>Hello</h1>\n<p>Welcome</p>";
|
|
18
|
-
const chunks = await razorChunker.chunk("page.razor", code);
|
|
19
|
-
assert.equal(chunks.length, 1);
|
|
20
|
-
assert.equal(chunks[0].metadata.language, "razor");
|
|
21
|
-
});
|
|
22
|
-
it("splits on @code block boundaries", async () => {
|
|
23
|
-
const template = "<h1>Counter</h1>\n<button>Click</button>\n";
|
|
24
|
-
const code = '@code {\n private int count = 0;\n void Inc() { count++; }\n}\n';
|
|
25
|
-
const chunks = await razorChunker.chunk("counter.razor", template + code);
|
|
26
|
-
assert.equal(chunks.length, 2, "expected template + code block");
|
|
27
|
-
assert.ok(chunks.some((c) => c.content.includes("@code")), "expected @code block");
|
|
28
|
-
assert.ok(chunks.some((c) => c.content.includes("<h1>")), "expected template chunk");
|
|
29
|
-
});
|
|
30
|
-
it("handles @functions blocks", async () => {
|
|
31
|
-
const content = "@functions {\n void Foo() { }\n}\n";
|
|
32
|
-
const chunks = await razorChunker.chunk("fn.cshtml", content);
|
|
33
|
-
assert.equal(chunks.length, 1);
|
|
34
|
-
assert.ok(chunks[0].content.includes("@functions"));
|
|
35
|
-
});
|
|
36
|
-
it("handles multiple code blocks", async () => {
|
|
37
|
-
const content = [
|
|
38
|
-
"<h1>Title</h1>",
|
|
39
|
-
"@code { int x = 1; }",
|
|
40
|
-
"<p>Body</p>",
|
|
41
|
-
"@code { int y = 2; }",
|
|
42
|
-
].join("\n");
|
|
43
|
-
const chunks = await razorChunker.chunk("multi.razor", content);
|
|
44
|
-
assert.equal(chunks.length, 4, "expected 2 templates + 2 code blocks");
|
|
45
|
-
});
|
|
46
|
-
it("sets correct startLine and endLine metadata", async () => {
|
|
47
|
-
const content = [
|
|
48
|
-
"<h1>Title</h1>",
|
|
49
|
-
"<p>intro</p>",
|
|
50
|
-
'@code {',
|
|
51
|
-
' void Foo() { }',
|
|
52
|
-
'}',
|
|
53
|
-
"<p>outro</p>",
|
|
54
|
-
].join("\n");
|
|
55
|
-
const chunks = await razorChunker.chunk("lines.razor", content);
|
|
56
|
-
const codeChunk = chunks.find((c) => c.content.includes("@code"));
|
|
57
|
-
assert.ok(codeChunk, "expected @code chunk");
|
|
58
|
-
assert.equal(codeChunk.metadata.startLine, 3);
|
|
59
|
-
assert.equal(codeChunk.metadata.endLine, 5);
|
|
60
|
-
});
|
|
61
|
-
it("generates unique ids for each chunk", async () => {
|
|
62
|
-
const content = [
|
|
63
|
-
"<h1>Title</h1>",
|
|
64
|
-
'@code { int a = 1; }',
|
|
65
|
-
"<p>Body</p>",
|
|
66
|
-
'@code { int b = 2; }',
|
|
67
|
-
].join("\n");
|
|
68
|
-
const chunks = await razorChunker.chunk("ids.razor", content);
|
|
69
|
-
const ids = new Set(chunks.map((c) => c.id));
|
|
70
|
-
assert.equal(ids.size, chunks.length);
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
//# sourceMappingURL=razor.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"razor.test.js","sourceRoot":"","sources":["../../../src/__tests__/chunker/razor.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import { describe, it } from "node:test";
|
|
2
|
-
import assert from "node:assert/strict";
|
|
3
|
-
import { registerChunker, getChunker } from "../../chunker/factory.js";
|
|
4
|
-
import { loadChunkersFromConfig } from "../../chunker/loader.js";
|
|
5
|
-
describe("registerChunker", () => {
|
|
6
|
-
const testChunker = {
|
|
7
|
-
language: "test",
|
|
8
|
-
fileExtensions: [".xyz"],
|
|
9
|
-
chunk: async (_path, content) => {
|
|
10
|
-
return [{ id: "1", content, metadata: { filePath: _path, startLine: 1, endLine: 1, language: "test" } }];
|
|
11
|
-
},
|
|
12
|
-
};
|
|
13
|
-
it("registers a chunker for new extensions", () => {
|
|
14
|
-
registerChunker(testChunker, [".xyz"]);
|
|
15
|
-
const chunker = getChunker("file.xyz");
|
|
16
|
-
assert.equal(chunker.language, "test");
|
|
17
|
-
});
|
|
18
|
-
it("uses fileExtensions from chunker when no extensions arg given", () => {
|
|
19
|
-
const autoChunker = {
|
|
20
|
-
language: "auto",
|
|
21
|
-
fileExtensions: [".abc"],
|
|
22
|
-
chunk: async (_path, content) => {
|
|
23
|
-
return [{ id: "1", content, metadata: { filePath: _path, startLine: 1, endLine: 1, language: "auto" } }];
|
|
24
|
-
},
|
|
25
|
-
};
|
|
26
|
-
registerChunker(autoChunker);
|
|
27
|
-
const chunker = getChunker("file.abc");
|
|
28
|
-
assert.equal(chunker.language, "auto");
|
|
29
|
-
});
|
|
30
|
-
it("warns and skips when extension already registered", () => {
|
|
31
|
-
const warnings = [];
|
|
32
|
-
const origWarn = console.warn;
|
|
33
|
-
console.warn = (msg) => { warnings.push(msg); };
|
|
34
|
-
try {
|
|
35
|
-
const existing = getChunker("file.ts");
|
|
36
|
-
assert.ok(existing, "TypeScript chunker should exist");
|
|
37
|
-
const overrideChunker = {
|
|
38
|
-
language: "override",
|
|
39
|
-
fileExtensions: [".ts"],
|
|
40
|
-
chunk: async () => [],
|
|
41
|
-
};
|
|
42
|
-
registerChunker(overrideChunker, [".ts"]);
|
|
43
|
-
assert.ok(warnings.some((w) => w.includes("already registered")), "expected warning");
|
|
44
|
-
const stillExisting = getChunker("file.ts");
|
|
45
|
-
assert.equal(stillExisting.language, "typescript", "existing chunker should be preserved");
|
|
46
|
-
}
|
|
47
|
-
finally {
|
|
48
|
-
console.warn = origWarn;
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
describe("loadChunkersFromConfig", () => {
|
|
53
|
-
it("does nothing when chunkers array is empty", async () => {
|
|
54
|
-
await loadChunkersFromConfig({ chunkers: [] }, "/tmp");
|
|
55
|
-
// no crash = pass
|
|
56
|
-
});
|
|
57
|
-
it("does nothing when chunkers is undefined", async () => {
|
|
58
|
-
await loadChunkersFromConfig({}, "/tmp");
|
|
59
|
-
// no crash = pass
|
|
60
|
-
});
|
|
61
|
-
it("warns when module path does not exist", async () => {
|
|
62
|
-
const warnings = [];
|
|
63
|
-
const origWarn = console.warn;
|
|
64
|
-
console.warn = (msg) => { warnings.push(msg); };
|
|
65
|
-
try {
|
|
66
|
-
await loadChunkersFromConfig({ chunkers: [{ module: "./nonexistent.js", extensions: [".zzz"] }] }, "/tmp");
|
|
67
|
-
assert.ok(warnings.length > 0, "expected warning about failed load");
|
|
68
|
-
}
|
|
69
|
-
finally {
|
|
70
|
-
console.warn = origWarn;
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
it("warns when module does not export a valid Chunker", async () => {
|
|
74
|
-
const fs = await import("node:fs/promises");
|
|
75
|
-
const pathMod = await import("node:path");
|
|
76
|
-
const os = await import("node:os");
|
|
77
|
-
const tmpDir = await fs.mkdtemp(pathMod.join(os.tmpdir(), "chunker-test-"));
|
|
78
|
-
const moduleName = "invalid.mjs";
|
|
79
|
-
await fs.writeFile(pathMod.join(tmpDir, moduleName), "export const foo = 42;\n");
|
|
80
|
-
const warnings = [];
|
|
81
|
-
const origWarn = console.warn;
|
|
82
|
-
console.warn = (msg) => { warnings.push(msg); };
|
|
83
|
-
try {
|
|
84
|
-
await loadChunkersFromConfig({ chunkers: [{ module: moduleName, extensions: [".inv"] }] }, tmpDir);
|
|
85
|
-
assert.ok(warnings.some((w) => w.includes("no .chunk()")), "expected warning about missing chunk method");
|
|
86
|
-
}
|
|
87
|
-
finally {
|
|
88
|
-
console.warn = origWarn;
|
|
89
|
-
await fs.rm(tmpDir, { recursive: true, force: true });
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
});
|
|
93
|
-
//# sourceMappingURL=register.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"register.test.js","sourceRoot":"","sources":["../../../src/__tests__/chunker/register.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { describe, it } from "node:test";
|
|
2
|
-
import assert from "node:assert/strict";
|
|
3
|
-
import { rubyChunker } from "../../chunker/ruby.js";
|
|
4
|
-
describe("RubyChunker", () => {
|
|
5
|
-
it("language is 'ruby'", () => {
|
|
6
|
-
assert.equal(rubyChunker.language, "ruby");
|
|
7
|
-
});
|
|
8
|
-
it("fileExtensions includes .rb", () => {
|
|
9
|
-
assert.ok(rubyChunker.fileExtensions.includes(".rb"));
|
|
10
|
-
assert.equal(rubyChunker.fileExtensions.length, 1);
|
|
11
|
-
});
|
|
12
|
-
it("nodeTypes contains method, class, module, singleton_method", () => {
|
|
13
|
-
assert.ok(rubyChunker.nodeTypes.has("method"));
|
|
14
|
-
assert.ok(rubyChunker.nodeTypes.has("class"));
|
|
15
|
-
assert.ok(rubyChunker.nodeTypes.has("module"));
|
|
16
|
-
assert.ok(rubyChunker.nodeTypes.has("singleton_method"));
|
|
17
|
-
});
|
|
18
|
-
it("chunk returns empty for empty content", async () => {
|
|
19
|
-
const chunks = await rubyChunker.chunk("test.rb", "");
|
|
20
|
-
assert.deepStrictEqual(chunks, []);
|
|
21
|
-
});
|
|
22
|
-
it("chunk parses a method definition", async () => {
|
|
23
|
-
const code = "def greet(name)\n \"Hello #{name}\"\nend";
|
|
24
|
-
const chunks = await rubyChunker.chunk("test.rb", code);
|
|
25
|
-
assert.equal(chunks.length, 1);
|
|
26
|
-
assert.ok(chunks[0].content.includes("def greet"));
|
|
27
|
-
});
|
|
28
|
-
it("chunk parses a class definition", async () => {
|
|
29
|
-
const code = "class Point\n attr_accessor :x, :y\nend";
|
|
30
|
-
const chunks = await rubyChunker.chunk("test.rb", code);
|
|
31
|
-
assert.equal(chunks.length, 1);
|
|
32
|
-
assert.ok(chunks[0].content.includes("class Point"));
|
|
33
|
-
});
|
|
34
|
-
it("chunk generates unique IDs", async () => {
|
|
35
|
-
const code = "def a; end\ndef b; end\ndef c; end";
|
|
36
|
-
const chunks = await rubyChunker.chunk("test.rb", code);
|
|
37
|
-
assert.equal(new Set(chunks.map((c) => c.id)).size, chunks.length);
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
//# sourceMappingURL=ruby.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ruby.test.js","sourceRoot":"","sources":["../../../src/__tests__/chunker/ruby.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { describe, it } from "node:test";
|
|
2
|
-
import assert from "node:assert/strict";
|
|
3
|
-
import { rustChunker } from "../../chunker/rust.js";
|
|
4
|
-
describe("RustChunker", () => {
|
|
5
|
-
it("language is 'rust'", () => {
|
|
6
|
-
assert.equal(rustChunker.language, "rust");
|
|
7
|
-
});
|
|
8
|
-
it("fileExtensions includes .rs", () => {
|
|
9
|
-
assert.ok(rustChunker.fileExtensions.includes(".rs"));
|
|
10
|
-
assert.equal(rustChunker.fileExtensions.length, 1);
|
|
11
|
-
});
|
|
12
|
-
it("nodeTypes contains function_item, struct_item, enum_item, trait_item, impl_item, mod_item", () => {
|
|
13
|
-
assert.ok(rustChunker.nodeTypes.has("function_item"));
|
|
14
|
-
assert.ok(rustChunker.nodeTypes.has("struct_item"));
|
|
15
|
-
assert.ok(rustChunker.nodeTypes.has("enum_item"));
|
|
16
|
-
assert.ok(rustChunker.nodeTypes.has("trait_item"));
|
|
17
|
-
assert.ok(rustChunker.nodeTypes.has("impl_item"));
|
|
18
|
-
assert.ok(rustChunker.nodeTypes.has("type_item"));
|
|
19
|
-
});
|
|
20
|
-
it("chunk returns empty for empty content", async () => {
|
|
21
|
-
const chunks = await rustChunker.chunk("test.rs", "");
|
|
22
|
-
assert.deepStrictEqual(chunks, []);
|
|
23
|
-
});
|
|
24
|
-
it("chunk parses a function definition", async () => {
|
|
25
|
-
const code = "fn greet(name: &str) -> String {\n format!(\"Hello {}\", name)\n}";
|
|
26
|
-
const chunks = await rustChunker.chunk("test.rs", code);
|
|
27
|
-
assert.equal(chunks.length, 1);
|
|
28
|
-
assert.ok(chunks[0].content.includes("fn greet"));
|
|
29
|
-
});
|
|
30
|
-
it("chunk parses a struct definition", async () => {
|
|
31
|
-
const code = "struct Point {\n x: f64,\n y: f64,\n}";
|
|
32
|
-
const chunks = await rustChunker.chunk("test.rs", code);
|
|
33
|
-
assert.equal(chunks.length, 1);
|
|
34
|
-
assert.ok(chunks[0].content.includes("struct Point"));
|
|
35
|
-
});
|
|
36
|
-
it("chunk generates unique IDs", async () => {
|
|
37
|
-
const code = "fn a() {}\nfn b() {}\nfn c() {}";
|
|
38
|
-
const chunks = await rustChunker.chunk("test.rs", code);
|
|
39
|
-
assert.equal(new Set(chunks.map((c) => c.id)).size, chunks.length);
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
//# sourceMappingURL=rust.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rust.test.js","sourceRoot":"","sources":["../../../src/__tests__/chunker/rust.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { describe, it } from "node:test";
|
|
2
|
-
import assert from "node:assert/strict";
|
|
3
|
-
import { slnChunker } from "../../chunker/sln.js";
|
|
4
|
-
describe("SlnChunker", () => {
|
|
5
|
-
it("language is 'sln'", () => {
|
|
6
|
-
assert.equal(slnChunker.language, "sln");
|
|
7
|
-
});
|
|
8
|
-
it("fileExtensions includes .sln", () => {
|
|
9
|
-
assert.ok(slnChunker.fileExtensions.includes(".sln"));
|
|
10
|
-
assert.equal(slnChunker.fileExtensions.length, 1);
|
|
11
|
-
});
|
|
12
|
-
it("chunk returns empty array for empty content", async () => {
|
|
13
|
-
const chunks = await slnChunker.chunk("test.sln", "");
|
|
14
|
-
assert.deepStrictEqual(chunks, []);
|
|
15
|
-
});
|
|
16
|
-
it("chunk parses project sections in a solution file", async () => {
|
|
17
|
-
const sln = `Microsoft Visual Studio Solution File
|
|
18
|
-
Project("{FAE04EC0-301F}") = "MyApp", "src\\MyApp\\MyApp.csproj", "{A1B2}"
|
|
19
|
-
EndProject
|
|
20
|
-
Project("{FAE04EC0-301F}") = "MyLib", "src\\MyLib\\MyLib.csproj", "{C3D4}"
|
|
21
|
-
EndProject
|
|
22
|
-
Global
|
|
23
|
-
\tGlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
24
|
-
\t\tDebug|Any CPU = Debug|Any CPU
|
|
25
|
-
\tEndGlobalSection
|
|
26
|
-
EndGlobal`;
|
|
27
|
-
const chunks = await slnChunker.chunk("test.sln", sln);
|
|
28
|
-
assert.equal(chunks.length, 3);
|
|
29
|
-
assert.ok(chunks[0].content.includes("MyApp"));
|
|
30
|
-
assert.ok(chunks[1].content.includes("MyLib"));
|
|
31
|
-
assert.ok(chunks[2].content.includes("GlobalSection"));
|
|
32
|
-
});
|
|
33
|
-
it("chunk generates unique IDs", async () => {
|
|
34
|
-
const sln = `Project("A") = "A", "A.csproj", "{A}"\nEndProject\nProject("B") = "B", "B.csproj", "{B}"\nEndProject`;
|
|
35
|
-
const chunks = await slnChunker.chunk("test.sln", sln);
|
|
36
|
-
const ids = chunks.map((c) => c.id);
|
|
37
|
-
assert.equal(new Set(ids).size, ids.length);
|
|
38
|
-
});
|
|
39
|
-
it("chunk sets correct startLine metadata", async () => {
|
|
40
|
-
const sln = `\nProject("A") = "A", "A.csproj", "{A}"\nEndProject`;
|
|
41
|
-
const chunks = await slnChunker.chunk("test.sln", sln);
|
|
42
|
-
assert.equal(chunks[0].metadata.startLine, 2);
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
//# sourceMappingURL=sln.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sln.test.js","sourceRoot":"","sources":["../../../src/__tests__/chunker/sln.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC3B,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACtD,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACtD,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,GAAG,GAAG;;;;;;;;;UASN,CAAC;QACP,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QACvD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QAChD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QAChD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC1C,MAAM,GAAG,GAAG,sGAAsG,CAAC;QACnH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QACvD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,GAAG,GAAG,qDAAqD,CAAC;QAClE,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QACvD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { describe, it } from "node:test";
|
|
2
|
-
import assert from "node:assert/strict";
|
|
3
|
-
import { swiftChunker } from "../../chunker/swift.js";
|
|
4
|
-
describe("SwiftChunker", () => {
|
|
5
|
-
it("language is 'swift'", () => {
|
|
6
|
-
assert.equal(swiftChunker.language, "swift");
|
|
7
|
-
});
|
|
8
|
-
it("fileExtensions includes .swift", () => {
|
|
9
|
-
assert.ok(swiftChunker.fileExtensions.includes(".swift"));
|
|
10
|
-
assert.equal(swiftChunker.fileExtensions.length, 1);
|
|
11
|
-
});
|
|
12
|
-
it("nodeTypes contains function_declaration, class_declaration, struct_declaration, enum_declaration, protocol_declaration, extension_declaration, variable_declaration", () => {
|
|
13
|
-
assert.ok(swiftChunker.nodeTypes.has("function_declaration"));
|
|
14
|
-
assert.ok(swiftChunker.nodeTypes.has("class_declaration"));
|
|
15
|
-
assert.ok(swiftChunker.nodeTypes.has("struct_declaration"));
|
|
16
|
-
assert.ok(swiftChunker.nodeTypes.has("enum_declaration"));
|
|
17
|
-
assert.ok(swiftChunker.nodeTypes.has("protocol_declaration"));
|
|
18
|
-
assert.ok(swiftChunker.nodeTypes.has("extension_declaration"));
|
|
19
|
-
assert.ok(swiftChunker.nodeTypes.has("variable_declaration"));
|
|
20
|
-
});
|
|
21
|
-
it("chunk returns empty for empty content", async () => {
|
|
22
|
-
const chunks = await swiftChunker.chunk("test.swift", "");
|
|
23
|
-
assert.deepStrictEqual(chunks, []);
|
|
24
|
-
});
|
|
25
|
-
it("chunk parses a function definition", async () => {
|
|
26
|
-
const code = "func greet(name: String) -> String {\n return \"Hello \\(name)\"\n}";
|
|
27
|
-
const chunks = await swiftChunker.chunk("test.swift", code);
|
|
28
|
-
assert.equal(chunks.length, 1);
|
|
29
|
-
assert.ok(chunks[0].content.includes("func greet"));
|
|
30
|
-
});
|
|
31
|
-
it("chunk parses a class definition", async () => {
|
|
32
|
-
const code = "class Point {\n var x: Double\n var y: Double\n}";
|
|
33
|
-
const chunks = await swiftChunker.chunk("test.swift", code);
|
|
34
|
-
assert.equal(chunks.length, 1);
|
|
35
|
-
assert.ok(chunks[0].content.includes("class Point"));
|
|
36
|
-
});
|
|
37
|
-
it("chunk parses a struct definition", async () => {
|
|
38
|
-
const code = "struct User {\n let id: Int\n}";
|
|
39
|
-
const chunks = await swiftChunker.chunk("test.swift", code);
|
|
40
|
-
assert.equal(chunks.length, 1);
|
|
41
|
-
assert.ok(chunks[0].content.includes("struct User"));
|
|
42
|
-
});
|
|
43
|
-
it("chunk generates unique IDs", async () => {
|
|
44
|
-
const code = "func a() {}\nfunc b() {}\nfunc c() {}";
|
|
45
|
-
const chunks = await swiftChunker.chunk("test.swift", code);
|
|
46
|
-
assert.equal(new Set(chunks.map((c) => c.id)).size, chunks.length);
|
|
47
|
-
});
|
|
48
|
-
});
|
|
49
|
-
//# sourceMappingURL=swift.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"swift.test.js","sourceRoot":"","sources":["../../../src/__tests__/chunker/swift.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import { describe, it } from "node:test";
|
|
2
|
-
import assert from "node:assert/strict";
|
|
3
|
-
import { typescriptChunker } from "../../chunker/typescript.js";
|
|
4
|
-
describe("TypeScriptChunker", () => {
|
|
5
|
-
it("language is 'typescript'", () => {
|
|
6
|
-
assert.equal(typescriptChunker.language, "typescript");
|
|
7
|
-
});
|
|
8
|
-
it("fileExtensions includes .ts and .tsx", () => {
|
|
9
|
-
assert.ok(typescriptChunker.fileExtensions.includes(".ts"));
|
|
10
|
-
assert.ok(typescriptChunker.fileExtensions.includes(".tsx"));
|
|
11
|
-
});
|
|
12
|
-
it("grammarName is 'typescript'", () => {
|
|
13
|
-
assert.equal(typescriptChunker.grammarName, "typescript");
|
|
14
|
-
});
|
|
15
|
-
it("nodeTypes contains expected types", () => {
|
|
16
|
-
const types = typescriptChunker.nodeTypes;
|
|
17
|
-
assert.ok(types.has("function_declaration"));
|
|
18
|
-
assert.ok(types.has("method_definition"));
|
|
19
|
-
assert.ok(types.has("class_declaration"));
|
|
20
|
-
assert.ok(types.has("arrow_function"));
|
|
21
|
-
assert.ok(types.has("interface_declaration"));
|
|
22
|
-
assert.ok(types.has("type_alias_declaration"));
|
|
23
|
-
assert.ok(types.has("export_statement"));
|
|
24
|
-
});
|
|
25
|
-
it("chunk returns empty array for empty content", async () => {
|
|
26
|
-
const chunks = await typescriptChunker.chunk("test.ts", "");
|
|
27
|
-
assert.deepStrictEqual(chunks, []);
|
|
28
|
-
});
|
|
29
|
-
it("chunk returns empty array for whitespace-only content", async () => {
|
|
30
|
-
const chunks = await typescriptChunker.chunk("test.ts", " \n \n ");
|
|
31
|
-
assert.deepStrictEqual(chunks, []);
|
|
32
|
-
});
|
|
33
|
-
it("chunk parses a function declaration", async () => {
|
|
34
|
-
const code = "function hello() { return 'world'; }";
|
|
35
|
-
const chunks = await typescriptChunker.chunk("test.ts", code);
|
|
36
|
-
assert.ok(chunks.length > 0, "expected at least one chunk");
|
|
37
|
-
assert.equal(chunks[0].metadata.language, "typescript");
|
|
38
|
-
assert.equal(chunks[0].metadata.filePath, "test.ts");
|
|
39
|
-
assert.ok(chunks[0].id.length > 0);
|
|
40
|
-
assert.ok(chunks[0].content.includes("hello"));
|
|
41
|
-
});
|
|
42
|
-
it("chunk parses a class declaration", async () => {
|
|
43
|
-
const code = "class Foo { bar(): string { return 'baz'; } }";
|
|
44
|
-
const chunks = await typescriptChunker.chunk("/src/Foo.ts", code);
|
|
45
|
-
assert.ok(chunks.length > 0, "expected at least one chunk");
|
|
46
|
-
assert.equal(chunks[0].metadata.language, "typescript");
|
|
47
|
-
assert.equal(chunks[0].metadata.filePath, "/src/Foo.ts");
|
|
48
|
-
assert.ok(chunks[0].content.includes("class Foo"));
|
|
49
|
-
});
|
|
50
|
-
it("chunk parses an interface declaration", async () => {
|
|
51
|
-
const code = "interface User { name: string; age: number; }";
|
|
52
|
-
const chunks = await typescriptChunker.chunk("types.ts", code);
|
|
53
|
-
assert.ok(chunks.length > 0, "expected at least one chunk");
|
|
54
|
-
assert.ok(chunks[0].content.includes("interface User"));
|
|
55
|
-
});
|
|
56
|
-
it("chunk parses a type alias declaration", async () => {
|
|
57
|
-
const code = "type Point = { x: number; y: number; };";
|
|
58
|
-
const chunks = await typescriptChunker.chunk("types.ts", code);
|
|
59
|
-
assert.ok(chunks.length > 0, "expected at least one chunk");
|
|
60
|
-
assert.ok(chunks.some((c) => c.content.includes("Point")));
|
|
61
|
-
});
|
|
62
|
-
it("chunk generates unique IDs for multiple declarations", async () => {
|
|
63
|
-
const code = [
|
|
64
|
-
"function foo() { return 1; }",
|
|
65
|
-
"function bar() { return 2; }",
|
|
66
|
-
"function baz() { return 3; }",
|
|
67
|
-
].join("\n");
|
|
68
|
-
const chunks = await typescriptChunker.chunk("multi.ts", code);
|
|
69
|
-
const ids = new Set(chunks.map((c) => c.id));
|
|
70
|
-
assert.equal(ids.size, chunks.length);
|
|
71
|
-
});
|
|
72
|
-
it("chunk sets correct startLine metadata", async () => {
|
|
73
|
-
const code = [
|
|
74
|
-
"// top comment",
|
|
75
|
-
"",
|
|
76
|
-
"function first() {",
|
|
77
|
-
" return 1;",
|
|
78
|
-
"}",
|
|
79
|
-
"",
|
|
80
|
-
"function second() {",
|
|
81
|
-
" return 2;",
|
|
82
|
-
"}",
|
|
83
|
-
].join("\n");
|
|
84
|
-
const chunks = await typescriptChunker.chunk("lines.ts", code);
|
|
85
|
-
assert.ok(chunks.length >= 2, "expected at least two chunks");
|
|
86
|
-
// first() starts at line 3 (1-indexed)
|
|
87
|
-
const firstFn = chunks.find((c) => c.content.includes("first"));
|
|
88
|
-
assert.ok(firstFn, "should find first() chunk");
|
|
89
|
-
assert.equal(firstFn.metadata.startLine, 3);
|
|
90
|
-
});
|
|
91
|
-
});
|
|
92
|
-
//# sourceMappingURL=typescript.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"typescript.test.js","sourceRoot":"","sources":["../../../src/__tests__/chunker/typescript.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|