@lsctech/polaris 0.2.1 → 0.2.2
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/graph/adapter/c/runtime.js +5 -8
- package/dist/graph/adapter/cpp/runtime.js +8 -11
- package/dist/graph/adapter/csharp/runtime.js +8 -11
- package/dist/graph/adapter/dart/runtime.js +8 -11
- package/dist/graph/adapter/go/runtime.js +5 -8
- package/dist/graph/adapter/kotlin-java/runtime.js +9 -12
- package/dist/graph/adapter/python/runtime.js +8 -11
- package/dist/graph/adapter/rust/runtime.js +8 -11
- package/dist/graph/adapter/swift/runtime.js +8 -11
- package/dist/graph/adapter/typescript-javascript/runtime.js +12 -13
- package/package.json +12 -1
|
@@ -11,7 +11,7 @@ async function loadTreeSitterRuntime() {
|
|
|
11
11
|
return await cachedRuntimePromise;
|
|
12
12
|
}
|
|
13
13
|
cachedRuntimePromise = (async () => {
|
|
14
|
-
const loaded =
|
|
14
|
+
const loaded = loadTreeSitterModules();
|
|
15
15
|
const parser = new loaded.parserConstructor();
|
|
16
16
|
parser.setLanguage(loaded.language);
|
|
17
17
|
const runtime = {
|
|
@@ -25,18 +25,15 @@ async function loadTreeSitterRuntime() {
|
|
|
25
25
|
})();
|
|
26
26
|
return await cachedRuntimePromise;
|
|
27
27
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const
|
|
28
|
+
function loadTreeSitterModules() {
|
|
29
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
30
|
+
const nodeRequire = require;
|
|
31
|
+
const [treeSitterModule, cModule] = [nodeRequire("tree-sitter"), nodeRequire("tree-sitter-c")];
|
|
31
32
|
return {
|
|
32
33
|
parserConstructor: resolveParserConstructor(treeSitterModule),
|
|
33
34
|
language: resolveGrammar(cModule, "tree-sitter-c"),
|
|
34
35
|
};
|
|
35
36
|
}
|
|
36
|
-
function createDynamicImporter() {
|
|
37
|
-
const importer = new Function("specifier", "return import(specifier);");
|
|
38
|
-
return (specifier) => importer(specifier);
|
|
39
|
-
}
|
|
40
37
|
function resolveParserConstructor(moduleValue) {
|
|
41
38
|
if (typeof moduleValue === "function") {
|
|
42
39
|
return moduleValue;
|
|
@@ -6,7 +6,7 @@ async function loadTreeSitterRuntime() {
|
|
|
6
6
|
if (cachedRuntime) {
|
|
7
7
|
return cachedRuntime;
|
|
8
8
|
}
|
|
9
|
-
const loaded =
|
|
9
|
+
const loaded = loadTreeSitterModules();
|
|
10
10
|
const parser = new loaded.parserConstructor();
|
|
11
11
|
parser.setLanguage(loaded.language);
|
|
12
12
|
cachedRuntime = {
|
|
@@ -16,21 +16,18 @@ async function loadTreeSitterRuntime() {
|
|
|
16
16
|
};
|
|
17
17
|
return cachedRuntime;
|
|
18
18
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
19
|
+
function loadTreeSitterModules() {
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
21
|
+
const nodeRequire = require;
|
|
22
|
+
const [treeSitterModule, cppModule] = [
|
|
23
|
+
nodeRequire("tree-sitter"),
|
|
24
|
+
nodeRequire("tree-sitter-cpp"),
|
|
25
|
+
];
|
|
25
26
|
return {
|
|
26
27
|
parserConstructor: resolveParserConstructor(treeSitterModule),
|
|
27
28
|
language: resolveGrammar(cppModule, "tree-sitter-cpp"),
|
|
28
29
|
};
|
|
29
30
|
}
|
|
30
|
-
function createDynamicImporter() {
|
|
31
|
-
const importer = new Function("specifier", "return import(specifier);");
|
|
32
|
-
return (specifier) => importer(specifier);
|
|
33
|
-
}
|
|
34
31
|
function resolveParserConstructor(moduleValue) {
|
|
35
32
|
if (typeof moduleValue === "function") {
|
|
36
33
|
return moduleValue;
|
|
@@ -6,7 +6,7 @@ async function loadTreeSitterRuntime() {
|
|
|
6
6
|
if (cachedRuntime) {
|
|
7
7
|
return cachedRuntime;
|
|
8
8
|
}
|
|
9
|
-
const loaded =
|
|
9
|
+
const loaded = loadTreeSitterModules();
|
|
10
10
|
const parser = new loaded.parserConstructor();
|
|
11
11
|
parser.setLanguage(loaded.language);
|
|
12
12
|
cachedRuntime = {
|
|
@@ -16,21 +16,18 @@ async function loadTreeSitterRuntime() {
|
|
|
16
16
|
};
|
|
17
17
|
return cachedRuntime;
|
|
18
18
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
19
|
+
function loadTreeSitterModules() {
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
21
|
+
const nodeRequire = require;
|
|
22
|
+
const [treeSitterModule, csharpModule] = [
|
|
23
|
+
nodeRequire("tree-sitter"),
|
|
24
|
+
nodeRequire("tree-sitter-c-sharp"),
|
|
25
|
+
];
|
|
25
26
|
return {
|
|
26
27
|
parserConstructor: resolveParserConstructor(treeSitterModule),
|
|
27
28
|
language: resolveGrammar(csharpModule, "tree-sitter-c-sharp"),
|
|
28
29
|
};
|
|
29
30
|
}
|
|
30
|
-
function createDynamicImporter() {
|
|
31
|
-
const importer = new Function("specifier", "return import(specifier);");
|
|
32
|
-
return (specifier) => importer(specifier);
|
|
33
|
-
}
|
|
34
31
|
function resolveParserConstructor(moduleValue) {
|
|
35
32
|
if (typeof moduleValue === "function") {
|
|
36
33
|
return moduleValue;
|
|
@@ -6,7 +6,7 @@ async function loadTreeSitterRuntime() {
|
|
|
6
6
|
if (cachedRuntime) {
|
|
7
7
|
return cachedRuntime;
|
|
8
8
|
}
|
|
9
|
-
const loaded =
|
|
9
|
+
const loaded = loadTreeSitterModules();
|
|
10
10
|
const parser = new loaded.parserConstructor();
|
|
11
11
|
parser.setLanguage(loaded.language);
|
|
12
12
|
cachedRuntime = {
|
|
@@ -16,21 +16,18 @@ async function loadTreeSitterRuntime() {
|
|
|
16
16
|
};
|
|
17
17
|
return cachedRuntime;
|
|
18
18
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
19
|
+
function loadTreeSitterModules() {
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
21
|
+
const nodeRequire = require;
|
|
22
|
+
const [treeSitterModule, dartModule] = [
|
|
23
|
+
nodeRequire("tree-sitter"),
|
|
24
|
+
nodeRequire("tree-sitter-dart"),
|
|
25
|
+
];
|
|
25
26
|
return {
|
|
26
27
|
parserConstructor: resolveParserConstructor(treeSitterModule),
|
|
27
28
|
language: resolveGrammar(dartModule, "tree-sitter-dart"),
|
|
28
29
|
};
|
|
29
30
|
}
|
|
30
|
-
function createDynamicImporter() {
|
|
31
|
-
const importer = new Function("specifier", "return import(specifier);");
|
|
32
|
-
return (specifier) => importer(specifier);
|
|
33
|
-
}
|
|
34
31
|
function resolveParserConstructor(moduleValue) {
|
|
35
32
|
if (typeof moduleValue === "function") {
|
|
36
33
|
return moduleValue;
|
|
@@ -6,7 +6,7 @@ async function loadTreeSitterRuntime() {
|
|
|
6
6
|
if (cachedRuntime) {
|
|
7
7
|
return cachedRuntime;
|
|
8
8
|
}
|
|
9
|
-
const loaded =
|
|
9
|
+
const loaded = loadTreeSitterModules();
|
|
10
10
|
const parser = new loaded.parserConstructor();
|
|
11
11
|
parser.setLanguage(loaded.language);
|
|
12
12
|
cachedRuntime = {
|
|
@@ -16,18 +16,15 @@ async function loadTreeSitterRuntime() {
|
|
|
16
16
|
};
|
|
17
17
|
return cachedRuntime;
|
|
18
18
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const
|
|
19
|
+
function loadTreeSitterModules() {
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
21
|
+
const nodeRequire = require;
|
|
22
|
+
const [treeSitterModule, goModule] = [nodeRequire("tree-sitter"), nodeRequire("tree-sitter-go")];
|
|
22
23
|
return {
|
|
23
24
|
parserConstructor: resolveParserConstructor(treeSitterModule),
|
|
24
25
|
language: resolveGrammar(goModule, "tree-sitter-go"),
|
|
25
26
|
};
|
|
26
27
|
}
|
|
27
|
-
function createDynamicImporter() {
|
|
28
|
-
const importer = new Function("specifier", "return import(specifier);");
|
|
29
|
-
return (specifier) => importer(specifier);
|
|
30
|
-
}
|
|
31
28
|
function resolveParserConstructor(moduleValue) {
|
|
32
29
|
if (typeof moduleValue === "function") {
|
|
33
30
|
return moduleValue;
|
|
@@ -6,7 +6,7 @@ async function loadTreeSitterRuntime() {
|
|
|
6
6
|
if (cachedRuntime) {
|
|
7
7
|
return cachedRuntime;
|
|
8
8
|
}
|
|
9
|
-
const loaded =
|
|
9
|
+
const loaded = loadTreeSitterModules();
|
|
10
10
|
const parserByLanguage = new Map();
|
|
11
11
|
cachedRuntime = {
|
|
12
12
|
parse(source, language) {
|
|
@@ -26,13 +26,14 @@ function getOrCreateParser(language, loaded, parserByLanguage) {
|
|
|
26
26
|
parserByLanguage.set(language, parser);
|
|
27
27
|
return parser;
|
|
28
28
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
29
|
+
function loadTreeSitterModules() {
|
|
30
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
31
|
+
const nodeRequire = require;
|
|
32
|
+
const [treeSitterModule, javaModule, kotlinModule] = [
|
|
33
|
+
nodeRequire("tree-sitter"),
|
|
34
|
+
nodeRequire("tree-sitter-java"),
|
|
35
|
+
nodeRequire("tree-sitter-kotlin"),
|
|
36
|
+
];
|
|
36
37
|
return {
|
|
37
38
|
parserConstructor: resolveParserConstructor(treeSitterModule),
|
|
38
39
|
languages: {
|
|
@@ -41,10 +42,6 @@ async function loadTreeSitterModules() {
|
|
|
41
42
|
},
|
|
42
43
|
};
|
|
43
44
|
}
|
|
44
|
-
function createDynamicImporter() {
|
|
45
|
-
const importer = new Function("specifier", "return import(specifier);");
|
|
46
|
-
return (specifier) => importer(specifier);
|
|
47
|
-
}
|
|
48
45
|
function resolveParserConstructor(moduleValue) {
|
|
49
46
|
if (typeof moduleValue === "function") {
|
|
50
47
|
return moduleValue;
|
|
@@ -11,7 +11,7 @@ async function loadTreeSitterRuntime() {
|
|
|
11
11
|
return await runtimeInitPromise;
|
|
12
12
|
}
|
|
13
13
|
runtimeInitPromise = (async () => {
|
|
14
|
-
const loaded =
|
|
14
|
+
const loaded = loadTreeSitterModules();
|
|
15
15
|
const parser = new loaded.parserConstructor();
|
|
16
16
|
parser.setLanguage(loaded.language);
|
|
17
17
|
const runtime = {
|
|
@@ -25,21 +25,18 @@ async function loadTreeSitterRuntime() {
|
|
|
25
25
|
})();
|
|
26
26
|
return await runtimeInitPromise;
|
|
27
27
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
28
|
+
function loadTreeSitterModules() {
|
|
29
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
30
|
+
const nodeRequire = require;
|
|
31
|
+
const [treeSitterModule, pythonModule] = [
|
|
32
|
+
nodeRequire("tree-sitter"),
|
|
33
|
+
nodeRequire("tree-sitter-python"),
|
|
34
|
+
];
|
|
34
35
|
return {
|
|
35
36
|
parserConstructor: resolveParserConstructor(treeSitterModule),
|
|
36
37
|
language: resolveGrammar(pythonModule, "tree-sitter-python"),
|
|
37
38
|
};
|
|
38
39
|
}
|
|
39
|
-
function createDynamicImporter() {
|
|
40
|
-
const importer = new Function("specifier", "return import(specifier);");
|
|
41
|
-
return (specifier) => importer(specifier);
|
|
42
|
-
}
|
|
43
40
|
function resolveParserConstructor(moduleValue) {
|
|
44
41
|
if (typeof moduleValue === "function") {
|
|
45
42
|
return moduleValue;
|
|
@@ -12,7 +12,7 @@ async function loadTreeSitterRuntime() {
|
|
|
12
12
|
}
|
|
13
13
|
cachedRuntimePromise = (async () => {
|
|
14
14
|
try {
|
|
15
|
-
const loaded =
|
|
15
|
+
const loaded = loadTreeSitterModules();
|
|
16
16
|
const parser = new loaded.parserConstructor();
|
|
17
17
|
parser.setLanguage(loaded.language);
|
|
18
18
|
const runtime = {
|
|
@@ -29,21 +29,18 @@ async function loadTreeSitterRuntime() {
|
|
|
29
29
|
})();
|
|
30
30
|
return await cachedRuntimePromise;
|
|
31
31
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
32
|
+
function loadTreeSitterModules() {
|
|
33
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
34
|
+
const nodeRequire = require;
|
|
35
|
+
const [treeSitterModule, rustModule] = [
|
|
36
|
+
nodeRequire("tree-sitter"),
|
|
37
|
+
nodeRequire("tree-sitter-rust"),
|
|
38
|
+
];
|
|
38
39
|
return {
|
|
39
40
|
parserConstructor: resolveParserConstructor(treeSitterModule),
|
|
40
41
|
language: resolveGrammar(rustModule, "tree-sitter-rust"),
|
|
41
42
|
};
|
|
42
43
|
}
|
|
43
|
-
function createDynamicImporter() {
|
|
44
|
-
const importer = new Function("specifier", "return import(specifier);");
|
|
45
|
-
return (specifier) => importer(specifier);
|
|
46
|
-
}
|
|
47
44
|
function resolveParserConstructor(moduleValue) {
|
|
48
45
|
if (typeof moduleValue === "function") {
|
|
49
46
|
return moduleValue;
|
|
@@ -11,7 +11,7 @@ async function loadTreeSitterRuntime() {
|
|
|
11
11
|
return await cachedRuntimePromise;
|
|
12
12
|
}
|
|
13
13
|
cachedRuntimePromise = (async () => {
|
|
14
|
-
const loaded =
|
|
14
|
+
const loaded = loadTreeSitterModules();
|
|
15
15
|
const parser = new loaded.parserConstructor();
|
|
16
16
|
parser.setLanguage(loaded.language);
|
|
17
17
|
const runtime = {
|
|
@@ -25,21 +25,18 @@ async function loadTreeSitterRuntime() {
|
|
|
25
25
|
})();
|
|
26
26
|
return await cachedRuntimePromise;
|
|
27
27
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
28
|
+
function loadTreeSitterModules() {
|
|
29
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
30
|
+
const nodeRequire = require;
|
|
31
|
+
const [treeSitterModule, swiftModule] = [
|
|
32
|
+
nodeRequire("tree-sitter"),
|
|
33
|
+
nodeRequire("tree-sitter-swift"),
|
|
34
|
+
];
|
|
34
35
|
return {
|
|
35
36
|
parserConstructor: resolveParserConstructor(treeSitterModule),
|
|
36
37
|
language: resolveGrammar(swiftModule, "tree-sitter-swift"),
|
|
37
38
|
};
|
|
38
39
|
}
|
|
39
|
-
function createDynamicImporter() {
|
|
40
|
-
const importer = new Function("specifier", "return import(specifier);");
|
|
41
|
-
return (specifier) => importer(specifier);
|
|
42
|
-
}
|
|
43
40
|
function resolveParserConstructor(moduleValue) {
|
|
44
41
|
if (typeof moduleValue === "function") {
|
|
45
42
|
return moduleValue;
|
|
@@ -6,7 +6,7 @@ async function loadTreeSitterRuntime() {
|
|
|
6
6
|
if (cachedRuntime) {
|
|
7
7
|
return cachedRuntime;
|
|
8
8
|
}
|
|
9
|
-
const loaded =
|
|
9
|
+
const loaded = loadTreeSitterModules();
|
|
10
10
|
const parserByLanguage = new Map();
|
|
11
11
|
cachedRuntime = {
|
|
12
12
|
parse(source, language) {
|
|
@@ -27,13 +27,12 @@ function getOrCreateParser(language, loaded, parserByLanguage) {
|
|
|
27
27
|
parserByLanguage.set(language, parser);
|
|
28
28
|
return parser;
|
|
29
29
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
]);
|
|
30
|
+
function loadTreeSitterModules() {
|
|
31
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
32
|
+
const nodeRequire = require;
|
|
33
|
+
const treeSitterModule = nodeRequire("tree-sitter");
|
|
34
|
+
const typeScriptModule = nodeRequire("tree-sitter-typescript");
|
|
35
|
+
const javaScriptModule = nodeRequire("tree-sitter-javascript");
|
|
37
36
|
const parserConstructor = resolveParserConstructor(treeSitterModule);
|
|
38
37
|
const typeScriptGrammar = resolveTypeScriptGrammar(typeScriptModule);
|
|
39
38
|
const javaScriptGrammar = resolveJavaScriptGrammar(javaScriptModule);
|
|
@@ -45,10 +44,6 @@ async function loadTreeSitterModules() {
|
|
|
45
44
|
},
|
|
46
45
|
};
|
|
47
46
|
}
|
|
48
|
-
function createDynamicImporter() {
|
|
49
|
-
const importer = new Function("specifier", "return import(specifier);");
|
|
50
|
-
return (specifier) => importer(specifier);
|
|
51
|
-
}
|
|
52
47
|
function resolveParserConstructor(moduleValue) {
|
|
53
48
|
if (typeof moduleValue === "function") {
|
|
54
49
|
return moduleValue;
|
|
@@ -86,6 +81,10 @@ function resolveJavaScriptGrammar(moduleValue) {
|
|
|
86
81
|
if (direct.javascript) {
|
|
87
82
|
return direct.javascript;
|
|
88
83
|
}
|
|
84
|
+
// tree-sitter-javascript exports { name, language, nodeTypeInfo } — pass the whole module
|
|
85
|
+
if (direct.name) {
|
|
86
|
+
return moduleValue;
|
|
87
|
+
}
|
|
89
88
|
if (direct.default && typeof direct.default === "object" && "javascript" in direct.default) {
|
|
90
89
|
return direct.default.javascript;
|
|
91
90
|
}
|
|
@@ -93,5 +92,5 @@ function resolveJavaScriptGrammar(moduleValue) {
|
|
|
93
92
|
return direct.default;
|
|
94
93
|
}
|
|
95
94
|
}
|
|
96
|
-
throw new Error("Unable to resolve
|
|
95
|
+
throw new Error("Unable to resolve tree-sitter-javascript grammar.");
|
|
97
96
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lsctech/polaris",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "Polaris — standalone taskchain orchestration framework for governed AI agent workflows",
|
|
5
5
|
"bin": {
|
|
6
6
|
"polaris-cli": "dist/cli/index.js"
|
|
@@ -54,6 +54,17 @@
|
|
|
54
54
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
55
55
|
"commander": "^12.0.0",
|
|
56
56
|
"ignore": "^6.0.2",
|
|
57
|
+
"tree-sitter": "^0.22.0",
|
|
58
|
+
"tree-sitter-c": "^0.24.1",
|
|
59
|
+
"tree-sitter-c-sharp": "^0.23.5",
|
|
60
|
+
"tree-sitter-cpp": "^0.23.4",
|
|
61
|
+
"tree-sitter-dart": "^1.0.0",
|
|
62
|
+
"tree-sitter-go": "^0.25.0",
|
|
63
|
+
"tree-sitter-javascript": "^0.23.1",
|
|
64
|
+
"tree-sitter-python": "^0.23.6",
|
|
65
|
+
"tree-sitter-rust": "^0.24.0",
|
|
66
|
+
"tree-sitter-swift": "^0.7.1",
|
|
67
|
+
"tree-sitter-typescript": "^0.23.2",
|
|
57
68
|
"zod": "^3.23.8"
|
|
58
69
|
},
|
|
59
70
|
"devDependencies": {
|