@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.
@@ -11,7 +11,7 @@ async function loadTreeSitterRuntime() {
11
11
  return await cachedRuntimePromise;
12
12
  }
13
13
  cachedRuntimePromise = (async () => {
14
- const loaded = await loadTreeSitterModules();
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
- async function loadTreeSitterModules() {
29
- const dynamicImport = createDynamicImporter();
30
- const [treeSitterModule, cModule] = await Promise.all([dynamicImport("tree-sitter"), dynamicImport("tree-sitter-c")]);
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 = await loadTreeSitterModules();
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
- async function loadTreeSitterModules() {
20
- const dynamicImport = createDynamicImporter();
21
- const [treeSitterModule, cppModule] = await Promise.all([
22
- dynamicImport("tree-sitter"),
23
- dynamicImport("tree-sitter-cpp"),
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 = await loadTreeSitterModules();
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
- async function loadTreeSitterModules() {
20
- const dynamicImport = createDynamicImporter();
21
- const [treeSitterModule, csharpModule] = await Promise.all([
22
- dynamicImport("tree-sitter"),
23
- dynamicImport("tree-sitter-c-sharp"),
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 = await loadTreeSitterModules();
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
- async function loadTreeSitterModules() {
20
- const dynamicImport = createDynamicImporter();
21
- const [treeSitterModule, dartModule] = await Promise.all([
22
- dynamicImport("tree-sitter"),
23
- dynamicImport("tree-sitter-dart"),
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 = await loadTreeSitterModules();
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
- async function loadTreeSitterModules() {
20
- const dynamicImport = createDynamicImporter();
21
- const [treeSitterModule, goModule] = await Promise.all([dynamicImport("tree-sitter"), dynamicImport("tree-sitter-go")]);
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 = await loadTreeSitterModules();
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
- async function loadTreeSitterModules() {
30
- const dynamicImport = createDynamicImporter();
31
- const [treeSitterModule, javaModule, kotlinModule] = await Promise.all([
32
- dynamicImport("tree-sitter"),
33
- dynamicImport("tree-sitter-java"),
34
- dynamicImport("tree-sitter-kotlin"),
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 = await loadTreeSitterModules();
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
- async function loadTreeSitterModules() {
29
- const dynamicImport = createDynamicImporter();
30
- const [treeSitterModule, pythonModule] = await Promise.all([
31
- dynamicImport("tree-sitter"),
32
- dynamicImport("tree-sitter-python"),
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 = await loadTreeSitterModules();
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
- async function loadTreeSitterModules() {
33
- const dynamicImport = createDynamicImporter();
34
- const [treeSitterModule, rustModule] = await Promise.all([
35
- dynamicImport("tree-sitter"),
36
- dynamicImport("tree-sitter-rust"),
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 = await loadTreeSitterModules();
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
- async function loadTreeSitterModules() {
29
- const dynamicImport = createDynamicImporter();
30
- const [treeSitterModule, swiftModule] = await Promise.all([
31
- dynamicImport("tree-sitter"),
32
- dynamicImport("tree-sitter-swift"),
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 = await loadTreeSitterModules();
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
- async function loadTreeSitterModules() {
31
- const dynamicImport = createDynamicImporter();
32
- const [treeSitterModule, typeScriptModule, javaScriptModule] = await Promise.all([
33
- dynamicImport("tree-sitter"),
34
- dynamicImport("@tree-sitter/typescript"),
35
- dynamicImport("@tree-sitter/javascript"),
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 @tree-sitter/javascript grammar.");
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.1",
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": {