milens 0.6.5 → 0.6.7

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 (102) hide show
  1. package/.agents/skills/adapters/SKILL.md +14 -14
  2. package/.agents/skills/analyzer/SKILL.md +26 -24
  3. package/.agents/skills/apps/SKILL.md +10 -8
  4. package/.agents/skills/docs/SKILL.md +14 -8
  5. package/.agents/skills/milens/SKILL.md +164 -43
  6. package/.agents/skills/milens-security-review/SKILL.md +224 -224
  7. package/.agents/skills/orchestrator/SKILL.md +3 -1
  8. package/.agents/skills/parser/SKILL.md +16 -15
  9. package/.agents/skills/root/SKILL.md +20 -20
  10. package/.agents/skills/security/SKILL.md +1 -0
  11. package/.agents/skills/server/SKILL.md +13 -12
  12. package/.agents/skills/store/SKILL.md +12 -12
  13. package/.agents/skills/test/SKILL.md +57 -26
  14. package/README.md +170 -171
  15. package/adapters/claude-code/CLAUDE.md +36 -15
  16. package/adapters/codex/.codex/codex.md +38 -23
  17. package/adapters/copilot/.github/copilot-instructions.md +29 -22
  18. package/adapters/gemini/.gemini/context.md +33 -10
  19. package/adapters/opencode/AGENTS.md +36 -15
  20. package/dist/agents-md.d.ts.map +1 -1
  21. package/dist/agents-md.js +51 -2
  22. package/dist/agents-md.js.map +1 -1
  23. package/dist/analyzer/engine.d.ts +3 -0
  24. package/dist/analyzer/engine.d.ts.map +1 -1
  25. package/dist/analyzer/engine.js +342 -8
  26. package/dist/analyzer/engine.js.map +1 -1
  27. package/dist/analyzer/resolver.d.ts +2 -0
  28. package/dist/analyzer/resolver.d.ts.map +1 -1
  29. package/dist/analyzer/resolver.js +187 -9
  30. package/dist/analyzer/resolver.js.map +1 -1
  31. package/dist/analyzer/review.d.ts.map +1 -1
  32. package/dist/analyzer/review.js +254 -32
  33. package/dist/analyzer/review.js.map +1 -1
  34. package/dist/analyzer/scope-resolver.d.ts +42 -0
  35. package/dist/analyzer/scope-resolver.d.ts.map +1 -0
  36. package/dist/analyzer/scope-resolver.js +687 -0
  37. package/dist/analyzer/scope-resolver.js.map +1 -0
  38. package/dist/cli.js +294 -1
  39. package/dist/cli.js.map +1 -1
  40. package/dist/parser/extract.d.ts +6 -1
  41. package/dist/parser/extract.d.ts.map +1 -1
  42. package/dist/parser/extract.js +14 -2
  43. package/dist/parser/extract.js.map +1 -1
  44. package/dist/parser/lang-css.d.ts.map +1 -1
  45. package/dist/parser/lang-css.js +7 -1
  46. package/dist/parser/lang-css.js.map +1 -1
  47. package/dist/parser/lang-go.d.ts.map +1 -1
  48. package/dist/parser/lang-go.js +16 -0
  49. package/dist/parser/lang-go.js.map +1 -1
  50. package/dist/parser/lang-html.d.ts +4 -0
  51. package/dist/parser/lang-html.d.ts.map +1 -1
  52. package/dist/parser/lang-html.js +40 -1
  53. package/dist/parser/lang-html.js.map +1 -1
  54. package/dist/parser/lang-java.d.ts.map +1 -1
  55. package/dist/parser/lang-java.js +12 -0
  56. package/dist/parser/lang-java.js.map +1 -1
  57. package/dist/parser/lang-js.d.ts.map +1 -1
  58. package/dist/parser/lang-js.js +3 -0
  59. package/dist/parser/lang-js.js.map +1 -1
  60. package/dist/parser/lang-php.d.ts.map +1 -1
  61. package/dist/parser/lang-php.js +11 -0
  62. package/dist/parser/lang-php.js.map +1 -1
  63. package/dist/parser/lang-py.d.ts.map +1 -1
  64. package/dist/parser/lang-py.js +14 -0
  65. package/dist/parser/lang-py.js.map +1 -1
  66. package/dist/parser/lang-ruby.d.ts.map +1 -1
  67. package/dist/parser/lang-ruby.js +20 -0
  68. package/dist/parser/lang-ruby.js.map +1 -1
  69. package/dist/parser/lang-rust.d.ts.map +1 -1
  70. package/dist/parser/lang-rust.js +27 -4
  71. package/dist/parser/lang-rust.js.map +1 -1
  72. package/dist/parser/lang-ts.d.ts.map +1 -1
  73. package/dist/parser/lang-ts.js +3 -0
  74. package/dist/parser/lang-ts.js.map +1 -1
  75. package/dist/parser/lang-vue.d.ts +17 -1
  76. package/dist/parser/lang-vue.d.ts.map +1 -1
  77. package/dist/parser/lang-vue.js +177 -0
  78. package/dist/parser/lang-vue.js.map +1 -1
  79. package/dist/parser/language-provider.d.ts +27 -0
  80. package/dist/parser/language-provider.d.ts.map +1 -0
  81. package/dist/parser/language-provider.js +2 -0
  82. package/dist/parser/language-provider.js.map +1 -0
  83. package/dist/server/mcp.d.ts.map +1 -1
  84. package/dist/server/mcp.js +224 -50
  85. package/dist/server/mcp.js.map +1 -1
  86. package/dist/server/watcher.d.ts +8 -0
  87. package/dist/server/watcher.d.ts.map +1 -1
  88. package/dist/server/watcher.js +10 -8
  89. package/dist/server/watcher.js.map +1 -1
  90. package/dist/skills.js +163 -42
  91. package/dist/skills.js.map +1 -1
  92. package/dist/store/schema.sql +1 -1
  93. package/dist/ui/progress.d.ts +28 -0
  94. package/dist/ui/progress.d.ts.map +1 -0
  95. package/dist/ui/progress.js +100 -0
  96. package/dist/ui/progress.js.map +1 -0
  97. package/dist/uninstall.d.ts +54 -0
  98. package/dist/uninstall.d.ts.map +1 -0
  99. package/dist/uninstall.js +795 -0
  100. package/dist/uninstall.js.map +1 -0
  101. package/docs/README.md +4 -1
  102. package/package.json +1 -1
@@ -4,7 +4,12 @@ const spec = {
4
4
  id: 'html',
5
5
  extensions: ['.html', '.htm'],
6
6
  wasmName: 'tree-sitter-html',
7
- queries: {}, // HTML extraction done via regex helpers in engine.ts
7
+ queries: {
8
+ calls: `(element
9
+ (start_tag
10
+ (attribute (attribute_name) (quoted_attribute_value (attribute_value) @callee)))
11
+ ) @def`,
12
+ },
8
13
  resolveImport(raw, fromFile, root, aliases) {
9
14
  // Check aliases first
10
15
  let aliased = false;
@@ -79,5 +84,39 @@ export function extractHtmlRefs(source, filePath) {
79
84
  }
80
85
  return imports;
81
86
  }
87
+ /**
88
+ * Extract form actions, anchor hrefs, img/src/source assets, and link icons.
89
+ */
90
+ export function extractHtmlLinks(source, filePath) {
91
+ const imports = [];
92
+ const lines = source.split('\n');
93
+ for (let i = 0; i < lines.length; i++) {
94
+ const line = lines[i];
95
+ // Match any attribute value prefixed by common tag+attribute patterns
96
+ const patterns = [
97
+ /<a\b[^>]*\bhref\s*=\s*["']([^"']+)["']/i,
98
+ /<form\b[^>]*\baction\s*=\s*["']([^"']+)["']/i,
99
+ /<img\b[^>]*\bsrc\s*=\s*["']([^"']+)["']/i,
100
+ /<source\b[^>]*\bsrc\s*=\s*["']([^"']+)["']/i,
101
+ /<link\b[^>]*\brel\s*=\s*["'](?:icon|shortcut icon|apple-touch-icon)["'][^>]*\bhref\s*=\s*["']([^"']+)["']/i,
102
+ /<link\b[^>]*\bhref\s*=\s*["']([^"']+)["'][^>]*\brel\s*=\s*["'](?:icon|shortcut icon|apple-touch-icon)["']/i,
103
+ ];
104
+ for (const re of patterns) {
105
+ const m = line.match(re);
106
+ if (m && !m[1].startsWith('#') && !m[1].startsWith('javascript:')) {
107
+ imports.push({
108
+ filePath,
109
+ modulePath: m[1],
110
+ names: [],
111
+ isDefault: false,
112
+ isWildcard: true,
113
+ line: i + 1,
114
+ });
115
+ break;
116
+ }
117
+ }
118
+ }
119
+ return imports;
120
+ }
82
121
  export default spec;
83
122
  //# sourceMappingURL=lang-html.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lang-html.js","sourceRoot":"","sources":["../../src/parser/lang-html.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lang-html.js","sourceRoot":"","sources":["../../src/parser/lang-html.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lang-java.d.ts","sourceRoot":"","sources":["../../src/parser/lang-java.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,QAAA,MAAM,IAAI,EAAE,QAuDX,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"lang-java.d.ts","sourceRoot":"","sources":["../../src/parser/lang-java.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,QAAA,MAAM,IAAI,EAAE,QAmEX,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -4,6 +4,9 @@ const spec = {
4
4
  id: 'java',
5
5
  extensions: ['.java'],
6
6
  wasmName: 'tree-sitter-java',
7
+ mroStrategy: 'first-wins',
8
+ importSemantics: 'named',
9
+ isExported: () => false, // handled by exports query (public keyword)
7
10
  queries: {
8
11
  classes: `[
9
12
  (class_declaration name: (identifier) @name) @def
@@ -41,6 +44,15 @@ const spec = {
41
44
  name: (identifier) @child
42
45
  (super_interfaces (type_list (type_identifier) @parent))
43
46
  ) @def
47
+ ]`,
48
+ exports: `[
49
+ (class_declaration (modifiers "public") name: (identifier) @name)
50
+ (class_declaration (modifiers "public" "static") name: (identifier) @name)
51
+ (class_declaration (modifiers "public" "abstract") name: (identifier) @name)
52
+ (interface_declaration (modifiers "public") name: (identifier) @name)
53
+ (enum_declaration (modifiers "public") name: (identifier) @name)
54
+ (record_declaration (modifiers "public") name: (identifier) @name)
55
+ (method_declaration (modifiers "public") name: (identifier) @name)
44
56
  ]`,
45
57
  },
46
58
  resolveImport(raw, _fromFile, root, _aliases) {
@@ -1 +1 @@
1
- {"version":3,"file":"lang-java.js","sourceRoot":"","sources":["../../src/parser/lang-java.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,MAAM,IAAI,GAAa;IACrB,EAAE,EAAE,MAAM;IACV,UAAU,EAAE,CAAC,OAAO,CAAC;IACrB,QAAQ,EAAE,kBAAkB;IAC5B,OAAO,EAAE;QACP,OAAO,EAAE;;;MAGP;QACF,UAAU,EAAE,uDAAuD;QACnE,OAAO,EAAE;;;MAGP;QACF,KAAK,EAAE,kDAAkD;QACzD,OAAO,EAAE;;;MAGP;QACF,KAAK,EAAE;;;;;;;;;;;MAWL;QACF,SAAS,EAAE,qFAAqF;QAChG,QAAQ,EAAE;;;;;;;;;MASR;KACH;IACD,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ;QAC1C,+CAA+C;QAC/C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC;QACjD,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChF,6CAA6C;QAC7C,KAAK,MAAM,MAAM,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC;YACjD,IAAI,UAAU,CAAC,CAAC,CAAC;gBAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"lang-java.js","sourceRoot":"","sources":["../../src/parser/lang-java.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,MAAM,IAAI,GAAa;IACrB,EAAE,EAAE,MAAM;IACV,UAAU,EAAE,CAAC,OAAO,CAAC;IACrB,QAAQ,EAAE,kBAAkB;IAC5B,WAAW,EAAE,YAAY;IACzB,eAAe,EAAE,OAAO;IACxB,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,4CAA4C;IACrE,OAAO,EAAE;QACP,OAAO,EAAE;;;MAGP;QACF,UAAU,EAAE,uDAAuD;QACnE,OAAO,EAAE;;;MAGP;QACF,KAAK,EAAE,kDAAkD;QACzD,OAAO,EAAE;;;MAGP;QACF,KAAK,EAAE;;;;;;;;;;;MAWL;QACF,SAAS,EAAE,qFAAqF;QAChG,QAAQ,EAAE;;;;;;;;;MASR;QACF,OAAO,EAAE;;;;;;;;MAQP;KACH;IACD,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ;QAC1C,+CAA+C;QAC/C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC;QACjD,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChF,6CAA6C;QAC7C,KAAK,MAAM,MAAM,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC;YACjD,IAAI,UAAU,CAAC,CAAC,CAAC;gBAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"lang-js.d.ts","sourceRoot":"","sources":["../../src/parser/lang-js.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,QAAA,MAAM,IAAI,EAAE,QAyKX,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"lang-js.d.ts","sourceRoot":"","sources":["../../src/parser/lang-js.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,QAAA,MAAM,IAAI,EAAE,QA4KX,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -4,6 +4,9 @@ const spec = {
4
4
  id: 'javascript',
5
5
  extensions: ['.js', '.jsx', '.mjs', '.cjs'],
6
6
  wasmName: 'tree-sitter-javascript',
7
+ mroStrategy: 'first-wins',
8
+ importSemantics: 'named',
9
+ isExported: () => false, // handled by exports query (export keyword)
7
10
  queries: {
8
11
  functions: `[
9
12
  (function_declaration name: (identifier) @name) @def
@@ -1 +1 @@
1
- {"version":3,"file":"lang-js.js","sourceRoot":"","sources":["../../src/parser/lang-js.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lang-js.js","sourceRoot":"","sources":["../../src/parser/lang-js.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lang-php.d.ts","sourceRoot":"","sources":["../../src/parser/lang-php.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,QAAA,MAAM,IAAI,EAAE,QAqEX,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"lang-php.d.ts","sourceRoot":"","sources":["../../src/parser/lang-php.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,QAAA,MAAM,IAAI,EAAE,QAgFX,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -4,6 +4,9 @@ const spec = {
4
4
  id: 'php',
5
5
  extensions: ['.php'],
6
6
  wasmName: 'tree-sitter-php',
7
+ mroStrategy: 'first-wins',
8
+ importSemantics: 'wildcard-leaf',
9
+ isExported: () => false, // handled by exports query (public keyword)
7
10
  queries: {
8
11
  functions: `[
9
12
  (function_definition name: (name) @name) @def
@@ -51,6 +54,14 @@ const spec = {
51
54
  (use_declaration (name) @parent)
52
55
  )
53
56
  ) @def
57
+ ]`,
58
+ exports: `[
59
+ (method_declaration (visibility_modifier) name: (name) @name)
60
+ (class_declaration name: (name) @name)
61
+ (interface_declaration name: (name) @name)
62
+ (trait_declaration name: (name) @name)
63
+ (function_definition name: (name) @name)
64
+ (const_declaration (const_element (name) @name))
54
65
  ]`,
55
66
  },
56
67
  resolveImport(raw, _fromFile, root, aliases) {
@@ -1 +1 @@
1
- {"version":3,"file":"lang-php.js","sourceRoot":"","sources":["../../src/parser/lang-php.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,MAAM,IAAI,GAAa;IACrB,EAAE,EAAE,KAAK;IACT,UAAU,EAAE,CAAC,MAAM,CAAC;IACpB,QAAQ,EAAE,iBAAiB;IAC3B,OAAO,EAAE;QACP,SAAS,EAAE;;;MAGT;QACF,OAAO,EAAE,6CAA6C;QACtD,UAAU,EAAE,iDAAiD;QAC7D,MAAM,EAAE,6CAA6C;QACrD,KAAK,EAAE,4CAA4C;QACnD,OAAO,EAAE,8CAA8C;QACvD,OAAO,EAAE;;;;;;;MAOP;QACF,KAAK,EAAE;;;;;;;;;;;;;MAaL;QACF,QAAQ,EAAE;;;;;;;;;;;;;;;MAeR;KACH;IACD,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO;QACzC,4EAA4E;QAC5E,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACvC,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC;gBACjD,IAAI,UAAU,CAAC,SAAS,CAAC;oBAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;QACD,oCAAoC;QACpC,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACvC,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"lang-php.js","sourceRoot":"","sources":["../../src/parser/lang-php.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,MAAM,IAAI,GAAa;IACrB,EAAE,EAAE,KAAK;IACT,UAAU,EAAE,CAAC,MAAM,CAAC;IACpB,QAAQ,EAAE,iBAAiB;IAC3B,WAAW,EAAE,YAAY;IACzB,eAAe,EAAE,eAAe;IAChC,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,4CAA4C;IACrE,OAAO,EAAE;QACP,SAAS,EAAE;;;MAGT;QACF,OAAO,EAAE,6CAA6C;QACtD,UAAU,EAAE,iDAAiD;QAC7D,MAAM,EAAE,6CAA6C;QACrD,KAAK,EAAE,4CAA4C;QACnD,OAAO,EAAE,8CAA8C;QACvD,OAAO,EAAE;;;;;;;MAOP;QACF,KAAK,EAAE;;;;;;;;;;;;;MAaL;QACF,QAAQ,EAAE;;;;;;;;;;;;;;;MAeR;QACF,OAAO,EAAE;;;;;;;MAOP;KACH;IACD,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO;QACzC,4EAA4E;QAC5E,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACvC,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC;gBACjD,IAAI,UAAU,CAAC,SAAS,CAAC;oBAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;QACD,oCAAoC;QACpC,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACvC,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"lang-py.d.ts","sourceRoot":"","sources":["../../src/parser/lang-py.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,QAAA,MAAM,IAAI,EAAE,QAqFX,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"lang-py.d.ts","sourceRoot":"","sources":["../../src/parser/lang-py.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,QAAA,MAAM,IAAI,EAAE,QAmGX,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -5,6 +5,9 @@ const spec = {
5
5
  extensions: ['.py'],
6
6
  wasmName: 'tree-sitter-python',
7
7
  allTopLevelExported: true,
8
+ mroStrategy: 'c3',
9
+ importSemantics: 'namespace',
10
+ isExported: (sym) => !sym.name.startsWith('_') && sym.kind !== 'module',
8
11
  queries: {
9
12
  functions: `[
10
13
  (module (function_definition name: (identifier) @name) @def)
@@ -48,6 +51,17 @@ const spec = {
48
51
  name: (identifier) @child
49
52
  superclasses: (argument_list (identifier) @parent)
50
53
  ) @def`,
54
+ typeBindings: `[
55
+ (assignment left: (identifier) @var type: (type (identifier) @type))
56
+ (typed_parameter (identifier) @var type: (type (identifier) @type))
57
+ (typed_default_parameter name: (identifier) @var type: (type (identifier) @type))
58
+ (function_definition parameters: (parameters (typed_parameter (identifier) @var type: (type (identifier) @type))))
59
+ (function_definition parameters: (parameters (typed_default_parameter name: (identifier) @var type: (type (identifier) @type))))
60
+ ]`,
61
+ returnTypes: `[
62
+ (function_definition name: (identifier) @name return_type: (type (identifier) @returnType))
63
+ (decorated_definition definition: (function_definition name: (identifier) @name return_type: (type (identifier) @returnType)))
64
+ ]`,
51
65
  },
52
66
  resolveImport(raw, fromFile, root, _aliases) {
53
67
  // Handle relative imports: leading dots
@@ -1 +1 @@
1
- {"version":3,"file":"lang-py.js","sourceRoot":"","sources":["../../src/parser/lang-py.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lang-py.js","sourceRoot":"","sources":["../../src/parser/lang-py.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,MAAM,IAAI,GAAa;IACrB,EAAE,EAAE,QAAQ;IACZ,UAAU,EAAE,CAAC,KAAK,CAAC;IACnB,QAAQ,EAAE,oBAAoB;IAC9B,mBAAmB,EAAE,IAAI;IACzB,WAAW,EAAE,IAAI;IACjB,eAAe,EAAE,WAAW;IAC5B,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;IACvE,OAAO,EAAE;QACP,SAAS,EAAE;;;MAGT;QACF,OAAO,EAAE;;;MAGP;QACF,SAAS,EAAE,4EAA4E;QACvF,OAAO,EAAE;;;MAGP;QACF,OAAO,EAAE;;;;;;;;;;MAUP;QACF,OAAO,EAAE;;;;;;;MAOP;QACF,KAAK,EAAE;;;;;MAKL;QACF,QAAQ,EAAE;;;WAGH;QACP,YAAY,EAAE;;;;;;MAMZ;QACF,WAAW,EAAE;;;MAGX;KACH;IACD,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ;QACzC,wCAAwC;QACxC,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACzC,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAChC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,uBAAuB;YACpE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC3C,IAAI,IAAI,GAAG,OAAO,CAAC;YACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;gBAAE,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACvD,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1C,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;gBACjC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,KAAK,EAAE,aAAa,CAAC,CAAC;gBACrE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;YAChC,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;gBAC3B,IAAI,UAAU,CAAC,CAAC,CAAC;oBAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAClE,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,iDAAiD;QACjD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,UAAU,GAAG;YACjB,IAAI,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,KAAK;YAC5B,IAAI,CAAC,IAAI,EAAE,GAAG,KAAK,EAAE,aAAa,CAAC;SACpC,CAAC;QACF,oCAAoC;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC3C,UAAU,CAAC,IAAI,CACb,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,GAAG,KAAK,EAC/B,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,EAAE,aAAa,CAAC,CACvC,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,IAAI,UAAU,CAAC,CAAC,CAAC;gBAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"lang-ruby.d.ts","sourceRoot":"","sources":["../../src/parser/lang-ruby.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,QAAA,MAAM,IAAI,EAAE,QA8CX,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"lang-ruby.d.ts","sourceRoot":"","sources":["../../src/parser/lang-ruby.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,QAAA,MAAM,IAAI,EAAE,QAkEX,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -5,12 +5,21 @@ const spec = {
5
5
  extensions: ['.rb', '.rake'],
6
6
  wasmName: 'tree-sitter-ruby',
7
7
  allTopLevelExported: true,
8
+ mroStrategy: 'ruby-mixin',
9
+ importSemantics: 'wildcard-leaf',
10
+ isExported: (sym) => !sym.name.startsWith('_'),
8
11
  queries: {
9
12
  classes: `(class name: (constant) @name) @def`,
10
13
  modules: `(module name: (constant) @name) @def`,
14
+ constants: `(assignment left: (constant) @name) @def`,
15
+ variables: `[
16
+ (assignment left: (instance_variable) @name) @def
17
+ (assignment left: (class_variable) @name) @def
18
+ ]`,
11
19
  methods: `[
12
20
  (method name: (identifier) @name) @def
13
21
  (singleton_method name: (identifier) @name) @def
22
+ (call method: (identifier) @_attr arguments: (argument_list (simple_symbol (identifier) @name))) @def
14
23
  ]`,
15
24
  imports: `(call
16
25
  method: (identifier) @_req
@@ -25,6 +34,17 @@ const spec = {
25
34
  (class name: (constant) @child superclass: (superclass (scope_resolution name: (constant) @parent))) @def
26
35
  (class name: (constant) @child body: (body_statement (call method: (identifier) @_inc arguments: (argument_list (constant) @parent)))) @def
27
36
  (class name: (constant) @child body: (body_statement (call method: (identifier) @_inc arguments: (argument_list (scope_resolution name: (constant) @parent))))) @def
37
+ ]`,
38
+ typeBindings: `[
39
+ (assignment
40
+ left: (identifier) @var
41
+ right: (call receiver: (constant) @type method: (identifier)))
42
+ (assignment
43
+ left: (instance_variable) @var
44
+ right: (call receiver: (constant) @type method: (identifier)))
45
+ (assignment
46
+ left: (identifier) @var
47
+ right: (call receiver: (scope_resolution name: (constant) @type) method: (identifier)))
28
48
  ]`,
29
49
  },
30
50
  resolveImport(raw, fromFile, root, _aliases) {
@@ -1 +1 @@
1
- {"version":3,"file":"lang-ruby.js","sourceRoot":"","sources":["../../src/parser/lang-ruby.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,MAAM,IAAI,GAAa;IACrB,EAAE,EAAE,MAAM;IACV,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;IAC5B,QAAQ,EAAE,kBAAkB;IAC5B,mBAAmB,EAAE,IAAI;IACzB,OAAO,EAAE;QACP,OAAO,EAAE,qCAAqC;QAC9C,OAAO,EAAE,sCAAsC;QAC/C,OAAO,EAAE;;;MAGP;QACF,OAAO,EAAE;;;WAGF;QACP,KAAK,EAAE;;;MAGL;QACF,QAAQ,EAAE;;;;;MAKR;KACH;IACD,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ;QACzC,oCAAoC;QACpC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;YACzC,IAAI,UAAU,CAAC,SAAS,CAAC;gBAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAChF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,oDAAoD;QACpD,MAAM,UAAU,GAAG;YACjB,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK;YACvB,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK;YAC9B,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK;SAC/B,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,IAAI,UAAU,CAAC,CAAC,CAAC;gBAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"lang-ruby.js","sourceRoot":"","sources":["../../src/parser/lang-ruby.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,MAAM,IAAI,GAAa;IACrB,EAAE,EAAE,MAAM;IACV,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;IAC5B,QAAQ,EAAE,kBAAkB;IAC5B,mBAAmB,EAAE,IAAI;IACzB,WAAW,EAAE,YAAY;IACzB,eAAe,EAAE,eAAe;IAChC,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;IAC9C,OAAO,EAAE;QACP,OAAO,EAAE,qCAAqC;QAC9C,OAAO,EAAE,sCAAsC;QAC/C,SAAS,EAAE,0CAA0C;QACrD,SAAS,EAAE;;;MAGT;QACF,OAAO,EAAE;;;;MAIP;QACF,OAAO,EAAE;;;WAGF;QACP,KAAK,EAAE;;;MAGL;QACF,QAAQ,EAAE;;;;;MAKR;QACF,YAAY,EAAE;;;;;;;;;;MAUZ;KACH;IACD,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ;QACzC,oCAAoC;QACpC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;YACzC,IAAI,UAAU,CAAC,SAAS,CAAC;gBAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAChF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,oDAAoD;QACpD,MAAM,UAAU,GAAG;YACjB,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK;YACvB,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK;YAC9B,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK;SAC/B,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,IAAI,UAAU,CAAC,CAAC,CAAC;gBAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"lang-rust.d.ts","sourceRoot":"","sources":["../../src/parser/lang-rust.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,QAAA,MAAM,IAAI,EAAE,QA+DX,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"lang-rust.d.ts","sourceRoot":"","sources":["../../src/parser/lang-rust.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,QAAA,MAAM,IAAI,EAAE,QAsFX,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -4,6 +4,9 @@ const spec = {
4
4
  id: 'rust',
5
5
  extensions: ['.rs'],
6
6
  wasmName: 'tree-sitter-rust',
7
+ mroStrategy: 'none',
8
+ importSemantics: 'named',
9
+ isExported: () => false, // handled by exports query (pub keyword)
7
10
  queries: {
8
11
  functions: `(function_item name: (identifier) @name) @def`,
9
12
  structs: `(struct_item name: (type_identifier) @name) @def`,
@@ -33,10 +36,30 @@ const spec = {
33
36
  (call_expression function: (field_expression value: (_) @receiver field: (field_identifier) @callee)) @def
34
37
  (macro_invocation macro: (identifier) @callee) @def
35
38
  ]`,
36
- heritage: `(impl_item
37
- trait: (type_identifier) @parent
38
- type: (type_identifier) @child
39
- ) @def`,
39
+ heritage: `[
40
+ (impl_item
41
+ trait: (type_identifier) @parent
42
+ type: (type_identifier) @child
43
+ ) @def
44
+ (impl_item
45
+ type: (type_identifier) @child
46
+ body: (declaration_list
47
+ (function_item name: (identifier) @name)
48
+ )
49
+ )
50
+ ]`,
51
+ typeBindings: `[
52
+ (let_declaration pattern: (identifier) @var type: (type_identifier) @type)
53
+ (let_declaration pattern: (identifier) @var value: (call_expression function: (identifier) @callee))
54
+ (parameter_declaration pattern: (identifier) @var type: (type_identifier) @type)
55
+ (const_item name: (identifier) @var type: (type_identifier) @type)
56
+ (static_item name: (identifier) @var type: (type_identifier) @type)
57
+ (field_declaration name: (field_identifier) @var type: (type_identifier) @type)
58
+ ]`,
59
+ returnTypes: `[
60
+ (function_item name: (identifier) @name return_type: (type_identifier) @returnType)
61
+ (function_item name: (identifier) @name return_type: (generic_type type: (type_identifier) @returnType))
62
+ ]`,
40
63
  exports: `[
41
64
  (function_item (visibility_modifier) name: (identifier) @name) @_def
42
65
  (struct_item (visibility_modifier) name: (type_identifier) @name) @_def
@@ -1 +1 @@
1
- {"version":3,"file":"lang-rust.js","sourceRoot":"","sources":["../../src/parser/lang-rust.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAW,QAAQ,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,MAAM,IAAI,GAAa;IACrB,EAAE,EAAE,MAAM;IACV,UAAU,EAAE,CAAC,KAAK,CAAC;IACnB,QAAQ,EAAE,kBAAkB;IAC5B,OAAO,EAAE;QACP,SAAS,EAAE,+CAA+C;QAC1D,OAAO,EAAE,kDAAkD;QAC3D,KAAK,EAAE,gDAAgD;QACvD,MAAM,EAAE,iDAAiD;QACzD,OAAO,EAAE,0CAA0C;QACnD,KAAK,EAAE,gDAAgD;QACvD,SAAS,EAAE;;;MAGT;QACF,OAAO,EAAE;;;;MAIP;QACF,OAAO,EAAE;;;;;;WAMF;QACP,KAAK,EAAE;;;;;MAKL;QACF,QAAQ,EAAE;;;WAGH;QACP,OAAO,EAAE;;;;;;;;;MASP;KACH;IACD,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ;QAC1C,qEAAqE;QACrE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrD,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,8CAA8C;QAC3D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACpC,MAAM,UAAU,GAAG;YACjB,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,GAAG,KAAK;YACnC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,QAAQ,CAAC;SACtC,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,IAAI,UAAU,CAAC,CAAC,CAAC;gBAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"lang-rust.js","sourceRoot":"","sources":["../../src/parser/lang-rust.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAW,QAAQ,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,MAAM,IAAI,GAAa;IACrB,EAAE,EAAE,MAAM;IACV,UAAU,EAAE,CAAC,KAAK,CAAC;IACnB,QAAQ,EAAE,kBAAkB;IAC5B,WAAW,EAAE,MAAM;IACnB,eAAe,EAAE,OAAO;IACxB,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,yCAAyC;IAClE,OAAO,EAAE;QACP,SAAS,EAAE,+CAA+C;QAC1D,OAAO,EAAE,kDAAkD;QAC3D,KAAK,EAAE,gDAAgD;QACvD,MAAM,EAAE,iDAAiD;QACzD,OAAO,EAAE,0CAA0C;QACnD,KAAK,EAAE,gDAAgD;QACvD,SAAS,EAAE;;;MAGT;QACF,OAAO,EAAE;;;;MAIP;QACF,OAAO,EAAE;;;;;;WAMF;QACP,KAAK,EAAE;;;;;MAKL;QACF,QAAQ,EAAE;;;;;;;;;;;MAWR;QACF,YAAY,EAAE;;;;;;;MAOZ;QACF,WAAW,EAAE;;;MAGX;QACF,OAAO,EAAE;;;;;;;;;MASP;KACH;IACD,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ;QAC1C,qEAAqE;QACrE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrD,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,8CAA8C;QAC3D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACpC,MAAM,UAAU,GAAG;YACjB,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,GAAG,KAAK;YACnC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,QAAQ,CAAC;SACtC,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,IAAI,UAAU,CAAC,CAAC,CAAC;gBAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"lang-ts.d.ts","sourceRoot":"","sources":["../../src/parser/lang-ts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,QAAA,MAAM,IAAI,EAAE,QA8QX,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"lang-ts.d.ts","sourceRoot":"","sources":["../../src/parser/lang-ts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,QAAA,MAAM,IAAI,EAAE,QAiRX,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -4,6 +4,9 @@ const spec = {
4
4
  id: 'typescript',
5
5
  extensions: ['.ts', '.tsx'],
6
6
  wasmName: 'tree-sitter-tsx',
7
+ mroStrategy: 'first-wins',
8
+ importSemantics: 'named',
9
+ isExported: () => false, // handled by exports query (export keyword)
7
10
  queries: {
8
11
  functions: `[
9
12
  (function_declaration name: (identifier) @name) @def
@@ -1 +1 @@
1
- {"version":3,"file":"lang-ts.js","sourceRoot":"","sources":["../../src/parser/lang-ts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lang-ts.js","sourceRoot":"","sources":["../../src/parser/lang-ts.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { LangSpec } from './extract.js';
2
- import type { RawCall } from '../types.js';
2
+ import type { RawCall, CodeSymbol } from '../types.js';
3
+ import type Parser from 'web-tree-sitter';
3
4
  declare const spec: LangSpec;
4
5
  /**
5
6
  * Extract the <script> or <script setup> block content from a Vue SFC.
@@ -14,5 +15,20 @@ export declare function extractVueScript(source: string): {
14
15
  * Captures: component tags, event handlers, v-bind/v-model/v-if directives, interpolations.
15
16
  */
16
17
  export declare function extractVueTemplateRefs(source: string, filePath: string): RawCall[];
18
+ /**
19
+ * AST-based extraction of references from Vue <template> block using tree-sitter-html.
20
+ * Handles multi-line attributes, nested components, class attributes for CSS linking,
21
+ * ref attributes for template ref symbols, and all directive/event/interpolation patterns.
22
+ */
23
+ export declare function extractVueTemplateAst(parser: Parser, source: string, filePath: string): {
24
+ calls: RawCall[];
25
+ symbols: CodeSymbol[];
26
+ };
27
+ /**
28
+ * Extract Composition API symbols from <script setup> content.
29
+ * Captures defineProps prop children and defineEmits event names.
30
+ * Parent variable symbols (props, emit) are already captured by the TS variables query.
31
+ */
32
+ export declare function extractVueCompositionApi(scriptContent: string, filePath: string, lineOffset: number): CodeSymbol[];
17
33
  export default spec;
18
34
  //# sourceMappingURL=lang-vue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lang-vue.d.ts","sourceRoot":"","sources":["../../src/parser/lang-vue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAI3C,QAAA,MAAM,IAAI,EAAE,QAMX,CAAC;AAEF;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAa/F;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE,CA6ClF;AAED,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"lang-vue.d.ts","sourceRoot":"","sources":["../../src/parser/lang-vue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAI1C,QAAA,MAAM,IAAI,EAAE,QAMX,CAAC;AAEF;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAa/F;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE,CA6ClF;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf;IAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAA;CAAE,CA8H7C;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,UAAU,EAAE,CAyDd;AAED,eAAe,IAAI,CAAC"}
@@ -68,5 +68,182 @@ export function extractVueTemplateRefs(source, filePath) {
68
68
  }
69
69
  return calls;
70
70
  }
71
+ /**
72
+ * AST-based extraction of references from Vue <template> block using tree-sitter-html.
73
+ * Handles multi-line attributes, nested components, class attributes for CSS linking,
74
+ * ref attributes for template ref symbols, and all directive/event/interpolation patterns.
75
+ */
76
+ export function extractVueTemplateAst(parser, source, filePath) {
77
+ const calls = [];
78
+ const symbols = [];
79
+ const templateMatch = source.match(/<template[^>]*>([\s\S]*?)<\/template>/i);
80
+ if (!templateMatch)
81
+ return { calls, symbols };
82
+ const templateStart = source.indexOf(templateMatch[0]);
83
+ const tagEnd = templateMatch[0].indexOf('>') + 1;
84
+ const contentStart = templateStart + tagEnd;
85
+ const lineOffset = source.slice(0, contentStart).split('\n').length;
86
+ const templateContent = templateMatch[1];
87
+ const moduleId = `${filePath}#module:_top:0`;
88
+ const tree = parser.parse(templateContent);
89
+ const seenCalls = new Set();
90
+ function walk(node) {
91
+ if (node.type === 'start_tag' || node.type === 'self_closing_tag') {
92
+ const tagNameNode = node.childForFieldName?.('name') ?? node.firstNamedChild;
93
+ const tagName = tagNameNode?.text;
94
+ const line = lineOffset + node.startPosition.row;
95
+ // Component tags: PascalCase or kebab-case with hyphen
96
+ if (tagName && (/^[A-Z]/.test(tagName) || tagName.includes('-'))) {
97
+ const dedupKey = `tag:${tagName}:${line}`;
98
+ if (!seenCalls.has(dedupKey)) {
99
+ seenCalls.add(dedupKey);
100
+ calls.push({ filePath, enclosingSymbolId: moduleId, calleeName: tagName, line });
101
+ }
102
+ }
103
+ // Process attributes
104
+ for (let i = 0; i < node.namedChildCount; i++) {
105
+ const child = node.namedChild(i);
106
+ if (child?.type !== 'attribute')
107
+ continue;
108
+ const attrNameChild = child.firstNamedChild;
109
+ const attrName = attrNameChild?.text || '';
110
+ const valueNode = child.namedChild(1);
111
+ const rawValue = valueNode?.text || '';
112
+ const value = rawValue.replace(/^["']|["']$/g, '');
113
+ const attrLine = lineOffset + child.startPosition.row;
114
+ // class="container main" → calls with . prefix for CSS linking
115
+ if (attrName === 'class' && value) {
116
+ const classes = value.split(/\s+/).filter(Boolean);
117
+ for (const cls of classes) {
118
+ const dedupKey = `class:${cls}:${attrLine}`;
119
+ if (!seenCalls.has(dedupKey)) {
120
+ seenCalls.add(dedupKey);
121
+ calls.push({ filePath, enclosingSymbolId: moduleId, calleeName: `.${cls}`, line: attrLine });
122
+ }
123
+ }
124
+ continue;
125
+ }
126
+ // ref="inputEl" → template ref symbol
127
+ if (attrName === 'ref' && value) {
128
+ const dedupKey = `ref:${value}:${attrLine}`;
129
+ if (!seenCalls.has(dedupKey)) {
130
+ seenCalls.add(dedupKey);
131
+ symbols.push({
132
+ id: `${filePath}#variable:${value}:${attrLine}`,
133
+ name: value,
134
+ kind: 'variable',
135
+ filePath,
136
+ startLine: attrLine,
137
+ endLine: attrLine,
138
+ exported: false,
139
+ });
140
+ }
141
+ continue;
142
+ }
143
+ // Event handlers: @click="handler", v-on:click="handler"
144
+ if ((attrName.startsWith('@') || attrName.startsWith('v-on:')) && value) {
145
+ const handler = value.match(/^([a-zA-Z_$][\w$]*)/)?.[1];
146
+ if (handler) {
147
+ const dedupKey = `event:${handler}:${attrLine}`;
148
+ if (!seenCalls.has(dedupKey)) {
149
+ seenCalls.add(dedupKey);
150
+ calls.push({ filePath, enclosingSymbolId: moduleId, calleeName: handler, line: attrLine });
151
+ }
152
+ }
153
+ continue;
154
+ }
155
+ // Directives: v-if="expr", v-show="expr", v-model="expr", :prop="expr"
156
+ if (/^(v-(?:if|else-if|show|model|for|html|text|bind)|:)/.test(attrName) && value) {
157
+ const expr = value.match(/^([a-zA-Z_$][\w$.]*)/)?.[1];
158
+ if (expr) {
159
+ const dedupKey = `dir:${expr}:${attrLine}`;
160
+ if (!seenCalls.has(dedupKey)) {
161
+ seenCalls.add(dedupKey);
162
+ calls.push({ filePath, enclosingSymbolId: moduleId, calleeName: expr, line: attrLine });
163
+ }
164
+ }
165
+ continue;
166
+ }
167
+ }
168
+ }
169
+ // Interpolations: {{ expression }}
170
+ if (node.type === 'interpolation') {
171
+ const text = node.text.slice(2, -2).trim(); // strip {{ }}
172
+ const expr = text.match(/^([a-zA-Z_$][\w$.]*)/)?.[1];
173
+ if (expr) {
174
+ const line = lineOffset + node.startPosition.row;
175
+ const dedupKey = `interp:${expr}:${line}`;
176
+ if (!seenCalls.has(dedupKey)) {
177
+ seenCalls.add(dedupKey);
178
+ calls.push({ filePath, enclosingSymbolId: moduleId, calleeName: expr, line });
179
+ }
180
+ }
181
+ }
182
+ // Recurse
183
+ for (let i = 0; i < node.namedChildCount; i++) {
184
+ walk(node.namedChild(i));
185
+ }
186
+ }
187
+ const htmlTree = parser.parse(templateContent);
188
+ walk(htmlTree.rootNode);
189
+ return { calls, symbols };
190
+ }
191
+ /**
192
+ * Extract Composition API symbols from <script setup> content.
193
+ * Captures defineProps prop children and defineEmits event names.
194
+ * Parent variable symbols (props, emit) are already captured by the TS variables query.
195
+ */
196
+ export function extractVueCompositionApi(scriptContent, filePath, lineOffset) {
197
+ const symbols = [];
198
+ const lines = scriptContent.split('\n');
199
+ for (let i = 0; i < lines.length; i++) {
200
+ const line = lines[i];
201
+ const absLine = lineOffset + i + 1;
202
+ // defineProps<{ name: string; age?: number }>()
203
+ const propsMatch = line.match(/const\s+(\w+)\s*=\s*defineProps\s*<\s*\{\s*([^}]*)\s*\}\s*>/);
204
+ if (propsMatch) {
205
+ const varName = propsMatch[1];
206
+ const typeBody = propsMatch[2];
207
+ const parentId = `${filePath}#variable:${varName}:${absLine}`;
208
+ const propRe = /(\w+)\s*\??\s*:\s*(?:string|number|boolean|any|void|never|unknown|[A-Z]\w*|[\w\[\]<>|&,'"]+)/g;
209
+ let pm;
210
+ while ((pm = propRe.exec(typeBody)) !== null) {
211
+ const propName = pm[1];
212
+ symbols.push({
213
+ id: `${filePath}#variable:${propName}:${absLine}`,
214
+ name: propName,
215
+ kind: 'variable',
216
+ filePath,
217
+ startLine: absLine,
218
+ endLine: absLine,
219
+ exported: true,
220
+ parentId,
221
+ });
222
+ }
223
+ }
224
+ // defineEmits(['update', 'delete']) — runtime declaration
225
+ const emitsArrMatch = line.match(/const\s+(\w+)\s*=\s*defineEmits\s*\(\s*\[\s*([^\]]*)\s*\]/);
226
+ if (emitsArrMatch) {
227
+ const varName = emitsArrMatch[1];
228
+ const eventsStr = emitsArrMatch[2];
229
+ const parentId = `${filePath}#variable:${varName}:${absLine}`;
230
+ const eventRe = /'([\w][\w:.-]*)'/g;
231
+ let em;
232
+ while ((em = eventRe.exec(line)) !== null) {
233
+ symbols.push({
234
+ id: `${filePath}#variable:${em[1]}:${absLine}`,
235
+ name: em[1],
236
+ kind: 'variable',
237
+ filePath,
238
+ startLine: absLine,
239
+ endLine: absLine,
240
+ exported: true,
241
+ parentId,
242
+ });
243
+ }
244
+ }
245
+ }
246
+ return symbols;
247
+ }
71
248
  export default spec;
72
249
  //# sourceMappingURL=lang-vue.js.map