@danielblomma/cortex-mcp 2.1.4 → 2.2.1

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.
Files changed (122) hide show
  1. package/README.md +53 -24
  2. package/bin/cortex.mjs +48 -21
  3. package/mcp-registry-submission.json +63 -0
  4. package/package.json +18 -5
  5. package/scaffold/AGENTS.md +13 -9
  6. package/scaffold/CLAUDE.md +13 -9
  7. package/scaffold/docs/architecture.md +1 -1
  8. package/scaffold/mcp/src/cli/query.ts +455 -0
  9. package/scaffold/mcp/tests/query-cli.test.mjs +115 -0
  10. package/scaffold/scripts/bootstrap.sh +3 -2
  11. package/scaffold/scripts/doctor.sh +9 -8
  12. package/scaffold/scripts/embed.sh +3 -2
  13. package/scaffold/scripts/ingest.mjs +67 -21
  14. package/scaffold/scripts/load-ryu.sh +3 -2
  15. package/scaffold/scripts/memory-compile.mjs +5 -2
  16. package/scaffold/scripts/memory-lint.mjs +5 -2
  17. package/scaffold/scripts/parsers/node_modules/.package-lock.json +0 -56
  18. package/scaffold/scripts/parsers/node_modules/acorn/CHANGELOG.md +0 -972
  19. package/scaffold/scripts/parsers/node_modules/acorn/LICENSE +0 -21
  20. package/scaffold/scripts/parsers/node_modules/acorn/README.md +0 -301
  21. package/scaffold/scripts/parsers/node_modules/acorn/bin/acorn +0 -4
  22. package/scaffold/scripts/parsers/node_modules/acorn/dist/acorn.d.mts +0 -883
  23. package/scaffold/scripts/parsers/node_modules/acorn/dist/acorn.d.ts +0 -883
  24. package/scaffold/scripts/parsers/node_modules/acorn/dist/acorn.js +0 -6295
  25. package/scaffold/scripts/parsers/node_modules/acorn/dist/acorn.mjs +0 -6266
  26. package/scaffold/scripts/parsers/node_modules/acorn/dist/bin.js +0 -90
  27. package/scaffold/scripts/parsers/node_modules/acorn/package.json +0 -50
  28. package/scaffold/scripts/parsers/node_modules/acorn-typescript/CHANGELOG.md +0 -421
  29. package/scaffold/scripts/parsers/node_modules/acorn-typescript/LICENSE +0 -21
  30. package/scaffold/scripts/parsers/node_modules/acorn-typescript/README.md +0 -81
  31. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/error.d.ts +0 -103
  32. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/error.js +0 -78
  33. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/error.js.map +0 -1
  34. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/extentions/decorators.d.ts +0 -167
  35. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/extentions/decorators.js +0 -75
  36. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/extentions/decorators.js.map +0 -1
  37. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/extentions/import-assertions.d.ts +0 -177
  38. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/extentions/import-assertions.js +0 -56
  39. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/extentions/import-assertions.js.map +0 -1
  40. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/extentions/jsx/index.d.ts +0 -198
  41. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/extentions/jsx/index.js +0 -327
  42. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/extentions/jsx/index.js.map +0 -1
  43. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/extentions/jsx/xhtml.d.ts +0 -256
  44. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/extentions/jsx/xhtml.js +0 -256
  45. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/extentions/jsx/xhtml.js.map +0 -1
  46. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/index.d.ts +0 -472
  47. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/index.js +0 -1
  48. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/index.js.map +0 -1
  49. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/index.mjs +0 -1
  50. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/middleware.d.ts +0 -159
  51. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/middleware.js +0 -2
  52. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/middleware.js.map +0 -1
  53. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/parseutil.d.ts +0 -10
  54. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/parseutil.js +0 -38
  55. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/parseutil.js.map +0 -1
  56. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/scopeflags.d.ts +0 -12
  57. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/scopeflags.js +0 -29
  58. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/scopeflags.js.map +0 -1
  59. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/tokenType.d.ts +0 -2
  60. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/tokenType.js +0 -118
  61. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/tokenType.js.map +0 -1
  62. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/types.d.ts +0 -60
  63. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/types.js +0 -2
  64. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/types.js.map +0 -1
  65. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/whitespace.d.ts +0 -2
  66. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/whitespace.js +0 -19
  67. package/scaffold/scripts/parsers/node_modules/acorn-typescript/lib/whitespace.js.map +0 -1
  68. package/scaffold/scripts/parsers/node_modules/acorn-typescript/package.json +0 -53
  69. package/scaffold/scripts/parsers/node_modules/acorn-typescript/tsconfig.json +0 -19
  70. package/scaffold/scripts/parsers/node_modules/acorn-walk/CHANGELOG.md +0 -209
  71. package/scaffold/scripts/parsers/node_modules/acorn-walk/LICENSE +0 -21
  72. package/scaffold/scripts/parsers/node_modules/acorn-walk/README.md +0 -124
  73. package/scaffold/scripts/parsers/node_modules/acorn-walk/dist/walk.d.mts +0 -152
  74. package/scaffold/scripts/parsers/node_modules/acorn-walk/dist/walk.d.ts +0 -152
  75. package/scaffold/scripts/parsers/node_modules/acorn-walk/dist/walk.js +0 -485
  76. package/scaffold/scripts/parsers/node_modules/acorn-walk/dist/walk.mjs +0 -467
  77. package/scaffold/scripts/parsers/node_modules/acorn-walk/package.json +0 -50
  78. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/LICENSE +0 -24
  79. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/README.md +0 -23
  80. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-bash.wasm +0 -0
  81. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-c.wasm +0 -0
  82. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-c_sharp.wasm +0 -0
  83. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-cpp.wasm +0 -0
  84. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-css.wasm +0 -0
  85. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-dart.wasm +0 -0
  86. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-elisp.wasm +0 -0
  87. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-elixir.wasm +0 -0
  88. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-elm.wasm +0 -0
  89. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-embedded_template.wasm +0 -0
  90. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-go.wasm +0 -0
  91. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-html.wasm +0 -0
  92. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-java.wasm +0 -0
  93. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-javascript.wasm +0 -0
  94. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-json.wasm +0 -0
  95. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-kotlin.wasm +0 -0
  96. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-lua.wasm +0 -0
  97. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-objc.wasm +0 -0
  98. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-ocaml.wasm +0 -0
  99. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-php.wasm +0 -0
  100. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-python.wasm +0 -0
  101. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-ql.wasm +0 -0
  102. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-rescript.wasm +0 -0
  103. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-ruby.wasm +0 -0
  104. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-rust.wasm +0 -0
  105. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-scala.wasm +0 -0
  106. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-solidity.wasm +0 -0
  107. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-swift.wasm +0 -0
  108. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-systemrdl.wasm +0 -0
  109. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-tlaplus.wasm +0 -0
  110. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-toml.wasm +0 -0
  111. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-tsx.wasm +0 -0
  112. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-typescript.wasm +0 -0
  113. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-vue.wasm +0 -0
  114. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-yaml.wasm +0 -0
  115. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/out/tree-sitter-zig.wasm +0 -0
  116. package/scaffold/scripts/parsers/node_modules/tree-sitter-wasms/package.json +0 -64
  117. package/scaffold/scripts/parsers/node_modules/web-tree-sitter/LICENSE +0 -21
  118. package/scaffold/scripts/parsers/node_modules/web-tree-sitter/README.md +0 -198
  119. package/scaffold/scripts/parsers/node_modules/web-tree-sitter/package.json +0 -37
  120. package/scaffold/scripts/parsers/node_modules/web-tree-sitter/tree-sitter-web.d.ts +0 -242
  121. package/scaffold/scripts/parsers/node_modules/web-tree-sitter/tree-sitter.js +0 -1
  122. package/scaffold/scripts/parsers/node_modules/web-tree-sitter/tree-sitter.wasm +0 -0
@@ -2056,6 +2056,27 @@ function fileTokenSet(fileRecord) {
2056
2056
  return new Set(tokenizeKeywords(tokenSource));
2057
2057
  }
2058
2058
 
2059
+ function collectRuleKeywordMatch(ruleKeywords, tokens, minimumMatches) {
2060
+ const required = Math.min(minimumMatches, Math.max(1, ruleKeywords.length));
2061
+ let count = 0;
2062
+ const sample = [];
2063
+
2064
+ for (const keyword of ruleKeywords) {
2065
+ if (!tokens.has(keyword)) {
2066
+ continue;
2067
+ }
2068
+ count += 1;
2069
+ if (sample.length < 5) {
2070
+ sample.push(keyword);
2071
+ }
2072
+ if (count >= required && sample.length >= 5) {
2073
+ break;
2074
+ }
2075
+ }
2076
+
2077
+ return { matched: count >= required, sample };
2078
+ }
2079
+
2059
2080
  function chunkIdFor(filePath, chunk) {
2060
2081
  const startLine = Number.isFinite(chunk.startLine) ? chunk.startLine : 0;
2061
2082
  const endLine = Number.isFinite(chunk.endLine) ? chunk.endLine : startLine;
@@ -3331,59 +3352,84 @@ async function main() {
3331
3352
 
3332
3353
  const constrainsRelations = [];
3333
3354
  const implementsRelations = [];
3334
- const constrainsSeen = new Set();
3335
- const implementsSeen = new Set();
3336
3355
  memoryTrace.checkpoint("tokens:rule_matching_start", {
3337
3356
  files: fileRecords.length,
3338
3357
  rules: ruleRecords.length
3339
3358
  });
3340
- const tokenByFileId = new Map(fileRecords.map((fileRecord) => [fileRecord.id, fileTokenSet(fileRecord)]));
3341
3359
 
3342
- for (const ruleRecord of ruleRecords) {
3343
- const needle = ruleRecord.id.toLowerCase();
3344
- const ruleKeywords = normalizeRuleTokens(ruleRecord);
3360
+ const ruleMatchers = ruleRecords.map((ruleRecord) => ({
3361
+ ruleRecord,
3362
+ needle: ruleRecord.id.toLowerCase(),
3363
+ keywords: normalizeRuleTokens(ruleRecord)
3364
+ }));
3365
+ const constrainsByKey = new Map();
3366
+ const implementsByKey = new Map();
3367
+ let fileTokenSetsProcessed = 0;
3345
3368
 
3346
- for (const fileRecord of fileRecords) {
3347
- const lower = fileRecord.content.toLowerCase();
3369
+ for (const fileRecord of fileRecords) {
3370
+ const lower = fileRecord.content.toLowerCase();
3371
+ const tokens = fileTokenSet(fileRecord);
3372
+ fileTokenSetsProcessed += 1;
3373
+
3374
+ for (const { ruleRecord, needle, keywords } of ruleMatchers) {
3348
3375
  const explicitMention = lower.includes(needle);
3349
- const tokens = tokenByFileId.get(fileRecord.id) ?? new Set();
3350
- const matchedKeywords = ruleKeywords.filter((keyword) => tokens.has(keyword));
3351
3376
  const minimumMatches = fileRecord.kind === "CODE" ? 1 : 2;
3352
- const keywordMatch = matchedKeywords.length >= Math.min(minimumMatches, Math.max(1, ruleKeywords.length));
3377
+ const keywordResult = explicitMention
3378
+ ? { matched: false, sample: [] }
3379
+ : collectRuleKeywordMatch(keywords, tokens, minimumMatches);
3353
3380
 
3354
- if (!explicitMention && !keywordMatch) {
3381
+ if (!explicitMention && !keywordResult.matched) {
3355
3382
  continue;
3356
3383
  }
3357
3384
 
3358
3385
  const constrainsKey = `${ruleRecord.id}|${fileRecord.id}`;
3359
- if (!constrainsSeen.has(constrainsKey)) {
3360
- constrainsSeen.add(constrainsKey);
3361
- constrainsRelations.push({
3386
+ if (!constrainsByKey.has(constrainsKey)) {
3387
+ constrainsByKey.set(constrainsKey, {
3362
3388
  from: ruleRecord.id,
3363
3389
  to: fileRecord.id,
3364
3390
  note: explicitMention
3365
3391
  ? `Mentions ${ruleRecord.id}`
3366
- : `Keyword match ${matchedKeywords.slice(0, 5).join(", ")}`
3392
+ : `Keyword match ${keywordResult.sample.join(", ")}`
3367
3393
  });
3368
3394
  }
3369
3395
 
3370
3396
  if (fileRecord.kind === "CODE") {
3371
3397
  const implementsKey = `${fileRecord.id}|${ruleRecord.id}`;
3372
- if (!implementsSeen.has(implementsKey)) {
3373
- implementsSeen.add(implementsKey);
3374
- implementsRelations.push({
3398
+ if (!implementsByKey.has(implementsKey)) {
3399
+ implementsByKey.set(implementsKey, {
3375
3400
  from: fileRecord.id,
3376
3401
  to: ruleRecord.id,
3377
3402
  note: explicitMention
3378
3403
  ? `Code references ${ruleRecord.id}`
3379
- : `Code keywords ${matchedKeywords.slice(0, 5).join(", ")}`
3404
+ : `Code keywords ${keywordResult.sample.join(", ")}`
3380
3405
  });
3381
3406
  }
3382
3407
  }
3383
3408
  }
3384
3409
  }
3410
+
3411
+ for (const { ruleRecord } of ruleMatchers) {
3412
+ for (const fileRecord of fileRecords) {
3413
+ const constrainsKey = `${ruleRecord.id}|${fileRecord.id}`;
3414
+ const constrainsRelation = constrainsByKey.get(constrainsKey);
3415
+ if (constrainsRelation) {
3416
+ constrainsRelations.push(constrainsRelation);
3417
+ constrainsByKey.delete(constrainsKey);
3418
+ }
3419
+ if (fileRecord.kind === "CODE") {
3420
+ const implementsKey = `${fileRecord.id}|${ruleRecord.id}`;
3421
+ const implementsRelation = implementsByKey.get(implementsKey);
3422
+ if (implementsRelation) {
3423
+ implementsRelations.push(implementsRelation);
3424
+ implementsByKey.delete(implementsKey);
3425
+ }
3426
+ }
3427
+ }
3428
+ }
3429
+
3385
3430
  memoryTrace.checkpoint("tokens:rule_matching_complete", {
3386
- file_token_sets: tokenByFileId.size,
3431
+ file_token_sets: fileTokenSetsProcessed,
3432
+ file_token_sets_retained: 0,
3387
3433
  rules: ruleRecords.length,
3388
3434
  relations_constrains: constrainsRelations.length,
3389
3435
  relations_implements: implementsRelations.length,
@@ -3,7 +3,8 @@ set -euo pipefail
3
3
 
4
4
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
5
5
  REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
6
- MCP_DIR="$REPO_ROOT/.context/mcp"
6
+ CONTEXT_RUNTIME_DIR="$REPO_ROOT/.context/mcp"
7
+ MCP_DIR="$CONTEXT_RUNTIME_DIR"
7
8
 
8
9
  if [[ ! -f "$MCP_DIR/package.json" ]]; then
9
10
  echo "[graph-load] missing $MCP_DIR/package.json"
@@ -11,7 +12,7 @@ if [[ ! -f "$MCP_DIR/package.json" ]]; then
11
12
  fi
12
13
 
13
14
  if [[ ! -d "$MCP_DIR/node_modules" ]]; then
14
- echo "[graph-load] node_modules missing in .context/mcp/"
15
+ echo "[graph-load] node_modules missing in context runtime (.context/mcp compatibility path)"
15
16
  echo "[graph-load] run: cd .context/mcp && NPM_CONFIG_CACHE=$MCP_DIR/.npm-cache npm install"
16
17
  exit 1
17
18
  fi
@@ -1,11 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  import fs from "node:fs";
3
3
  import path from "node:path";
4
- import { fileURLToPath } from "node:url";
5
- import { parseFrontmatter, parseStringList } from "../mcp/dist/frontmatter.js";
4
+ import { fileURLToPath, pathToFileURL } from "node:url";
6
5
 
7
6
  const __filename = fileURLToPath(import.meta.url);
8
7
  const __dirname = path.dirname(__filename);
8
+ const CONTEXT_RUNTIME_DIST = path.resolve(__dirname, "../mcp/dist");
9
+ const { parseFrontmatter, parseStringList } = await import(
10
+ pathToFileURL(path.join(CONTEXT_RUNTIME_DIST, "frontmatter.js")).href
11
+ );
9
12
 
10
13
  function normalizeForWsl(rawPath) {
11
14
  const m = rawPath.match(/^([A-Za-z]):[/\\](.*)/);
@@ -1,11 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  import fs from "node:fs";
3
3
  import path from "node:path";
4
- import { fileURLToPath } from "node:url";
5
- import { parseFrontmatter, parseStringList } from "../mcp/dist/frontmatter.js";
4
+ import { fileURLToPath, pathToFileURL } from "node:url";
6
5
 
7
6
  const __filename = fileURLToPath(import.meta.url);
8
7
  const __dirname = path.dirname(__filename);
8
+ const CONTEXT_RUNTIME_DIST = path.resolve(__dirname, "../mcp/dist");
9
+ const { parseFrontmatter, parseStringList } = await import(
10
+ pathToFileURL(path.join(CONTEXT_RUNTIME_DIST, "frontmatter.js")).href
11
+ );
9
12
 
10
13
  function normalizeForWsl(rawPath) {
11
14
  const m = rawPath.match(/^([A-Za-z]):[/\\](.*)/);
@@ -1,56 +0,0 @@
1
- {
2
- "name": "parsers",
3
- "version": "1.0.0",
4
- "lockfileVersion": 3,
5
- "requires": true,
6
- "packages": {
7
- "node_modules/acorn": {
8
- "version": "8.16.0",
9
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz",
10
- "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==",
11
- "license": "MIT",
12
- "bin": {
13
- "acorn": "bin/acorn"
14
- },
15
- "engines": {
16
- "node": ">=0.4.0"
17
- }
18
- },
19
- "node_modules/acorn-typescript": {
20
- "version": "1.4.13",
21
- "resolved": "https://registry.npmjs.org/acorn-typescript/-/acorn-typescript-1.4.13.tgz",
22
- "integrity": "sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==",
23
- "license": "MIT",
24
- "peerDependencies": {
25
- "acorn": ">=8.9.0"
26
- }
27
- },
28
- "node_modules/acorn-walk": {
29
- "version": "8.3.5",
30
- "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.5.tgz",
31
- "integrity": "sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==",
32
- "license": "MIT",
33
- "dependencies": {
34
- "acorn": "^8.11.0"
35
- },
36
- "engines": {
37
- "node": ">=0.4.0"
38
- }
39
- },
40
- "node_modules/tree-sitter-wasms": {
41
- "version": "0.1.13",
42
- "resolved": "https://registry.npmjs.org/tree-sitter-wasms/-/tree-sitter-wasms-0.1.13.tgz",
43
- "integrity": "sha512-wT+cR6DwaIz80/vho3AvSF0N4txuNx/5bcRKoXouOfClpxh/qqrF4URNLQXbbt8MaAxeksZcZd1j8gcGjc+QxQ==",
44
- "license": "Unlicense",
45
- "dependencies": {
46
- "tree-sitter-wasms": "^0.1.11"
47
- }
48
- },
49
- "node_modules/web-tree-sitter": {
50
- "version": "0.22.6",
51
- "resolved": "https://registry.npmjs.org/web-tree-sitter/-/web-tree-sitter-0.22.6.tgz",
52
- "integrity": "sha512-hS87TH71Zd6mGAmYCvlgxeGDjqd9GTeqXNqTT+u0Gs51uIozNIaaq/kUAbV/Zf56jb2ZOyG8BxZs2GG9wbLi6Q==",
53
- "license": "MIT"
54
- }
55
- }
56
- }