milens 0.4.1 → 0.4.3

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 (66) hide show
  1. package/LICENSE +75 -75
  2. package/README.md +420 -453
  3. package/dist/analyzer/config.d.ts +8 -0
  4. package/dist/analyzer/config.d.ts.map +1 -0
  5. package/dist/analyzer/config.js +132 -0
  6. package/dist/analyzer/config.js.map +1 -0
  7. package/dist/analyzer/engine.d.ts.map +1 -1
  8. package/dist/analyzer/engine.js +113 -4
  9. package/dist/analyzer/engine.js.map +1 -1
  10. package/dist/analyzer/enrich.d.ts +18 -0
  11. package/dist/analyzer/enrich.d.ts.map +1 -0
  12. package/dist/analyzer/enrich.js +139 -0
  13. package/dist/analyzer/enrich.js.map +1 -0
  14. package/dist/analyzer/resolver.d.ts +10 -1
  15. package/dist/analyzer/resolver.d.ts.map +1 -1
  16. package/dist/analyzer/resolver.js +309 -18
  17. package/dist/analyzer/resolver.js.map +1 -1
  18. package/dist/cli.js +474 -31
  19. package/dist/cli.js.map +1 -1
  20. package/dist/parser/extract.d.ts +4 -0
  21. package/dist/parser/extract.d.ts.map +1 -1
  22. package/dist/parser/extract.js +34 -4
  23. package/dist/parser/extract.js.map +1 -1
  24. package/dist/parser/lang-go.d.ts.map +1 -1
  25. package/dist/parser/lang-go.js +37 -22
  26. package/dist/parser/lang-go.js.map +1 -1
  27. package/dist/parser/lang-java.d.ts.map +1 -1
  28. package/dist/parser/lang-java.js +29 -25
  29. package/dist/parser/lang-java.js.map +1 -1
  30. package/dist/parser/lang-js.d.ts.map +1 -1
  31. package/dist/parser/lang-js.js +65 -43
  32. package/dist/parser/lang-js.js.map +1 -1
  33. package/dist/parser/lang-php.d.ts.map +1 -1
  34. package/dist/parser/lang-php.js +40 -33
  35. package/dist/parser/lang-php.js.map +1 -1
  36. package/dist/parser/lang-py.d.ts.map +1 -1
  37. package/dist/parser/lang-py.js +32 -31
  38. package/dist/parser/lang-py.js.map +1 -1
  39. package/dist/parser/lang-ruby.d.ts +4 -0
  40. package/dist/parser/lang-ruby.d.ts.map +1 -0
  41. package/dist/parser/lang-ruby.js +52 -0
  42. package/dist/parser/lang-ruby.js.map +1 -0
  43. package/dist/parser/lang-rust.d.ts.map +1 -1
  44. package/dist/parser/lang-rust.js +35 -25
  45. package/dist/parser/lang-rust.js.map +1 -1
  46. package/dist/parser/lang-ts.d.ts.map +1 -1
  47. package/dist/parser/lang-ts.js +74 -57
  48. package/dist/parser/lang-ts.js.map +1 -1
  49. package/dist/parser/languages.d.ts.map +1 -1
  50. package/dist/parser/languages.js +2 -1
  51. package/dist/parser/languages.js.map +1 -1
  52. package/dist/server/mcp.d.ts.map +1 -1
  53. package/dist/server/mcp.js +860 -98
  54. package/dist/server/mcp.js.map +1 -1
  55. package/dist/skills.js +100 -100
  56. package/dist/store/db.d.ts +62 -0
  57. package/dist/store/db.d.ts.map +1 -1
  58. package/dist/store/db.js +244 -59
  59. package/dist/store/db.js.map +1 -1
  60. package/dist/store/schema.sql +83 -60
  61. package/dist/types.d.ts +14 -0
  62. package/dist/types.d.ts.map +1 -1
  63. package/docs/diagram1.svg +1 -0
  64. package/docs/diagram2.svg +1 -0
  65. package/docs/diagram3.svg +1 -0
  66. package/package.json +61 -60
@@ -0,0 +1,52 @@
1
+ import { join, dirname, relative } from 'node:path';
2
+ import { existsSync } from 'node:fs';
3
+ const spec = {
4
+ id: 'ruby',
5
+ extensions: ['.rb', '.rake'],
6
+ wasmName: 'tree-sitter-ruby',
7
+ queries: {
8
+ classes: `(class name: (constant) @name) @def`,
9
+ modules: `(module name: (constant) @name) @def`,
10
+ methods: `[
11
+ (method name: (identifier) @name) @def
12
+ (singleton_method name: (identifier) @name) @def
13
+ ]`,
14
+ imports: `(call
15
+ method: (identifier) @_req
16
+ arguments: (argument_list (string (string_content) @source))
17
+ ) @def`,
18
+ calls: `[
19
+ (call method: (identifier) @callee) @def
20
+ (call receiver: (_) @receiver method: (identifier) @callee) @def
21
+ ]`,
22
+ heritage: `[
23
+ (class name: (constant) @child superclass: (superclass (constant) @parent)) @def
24
+ (class name: (constant) @child superclass: (superclass (scope_resolution name: (constant) @parent))) @def
25
+ (class name: (constant) @child body: (body_statement (call method: (identifier) @_inc arguments: (argument_list (constant) @parent)))) @def
26
+ (class name: (constant) @child body: (body_statement (call method: (identifier) @_inc arguments: (argument_list (scope_resolution name: (constant) @parent))))) @def
27
+ ]`,
28
+ },
29
+ resolveImport(raw, fromFile, root, _aliases) {
30
+ // Relative paths (require_relative)
31
+ if (raw.startsWith('.')) {
32
+ const dir = dirname(join(root, fromFile));
33
+ const candidate = join(dir, raw) + '.rb';
34
+ if (existsSync(candidate))
35
+ return relative(root, candidate).replace(/\\/g, '/');
36
+ return null;
37
+ }
38
+ // Absolute paths from load path / Rails conventions
39
+ const candidates = [
40
+ join(root, raw) + '.rb',
41
+ join(root, 'lib', raw) + '.rb',
42
+ join(root, 'app', raw) + '.rb',
43
+ ];
44
+ for (const p of candidates) {
45
+ if (existsSync(p))
46
+ return relative(root, p).replace(/\\/g, '/');
47
+ }
48
+ return null;
49
+ },
50
+ };
51
+ export default spec;
52
+ //# sourceMappingURL=lang-ruby.js.map
@@ -0,0 +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,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 +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,QAqDX,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,QA+DX,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -5,38 +5,48 @@ const spec = {
5
5
  extensions: ['.rs'],
6
6
  wasmName: 'tree-sitter-rust',
7
7
  queries: {
8
- functions: `[
9
- (function_item name: (identifier) @name) @def
10
- (const_item name: (identifier) @name) @def
11
- (static_item name: (identifier) @name) @def
12
- (type_item name: (type_identifier) @name) @def
13
- (mod_item name: (identifier) @name) @def
14
- ]`,
8
+ functions: `(function_item name: (identifier) @name) @def`,
15
9
  structs: `(struct_item name: (type_identifier) @name) @def`,
16
10
  enums: `(enum_item name: (type_identifier) @name) @def`,
17
11
  traits: `(trait_item name: (type_identifier) @name) @def`,
18
- methods: `(impl_item
19
- body: (declaration_list
20
- (function_item name: (identifier) @name) @def
21
- )
12
+ modules: `(mod_item name: (identifier) @name) @def`,
13
+ types: `(type_item name: (type_identifier) @name) @def`,
14
+ variables: `[
15
+ (const_item name: (identifier) @name) @def
16
+ (static_item name: (identifier) @name) @def
17
+ ]`,
18
+ methods: `(impl_item
19
+ body: (declaration_list
20
+ (function_item name: (identifier) @name) @def
21
+ )
22
22
  )`,
23
- imports: `(use_declaration
24
- argument: [
25
- (scoped_identifier) @source
26
- (use_as_clause path: (scoped_identifier) @source)
27
- (scoped_use_list path: (scoped_identifier) @source)
28
- ]
23
+ imports: `(use_declaration
24
+ argument: [
25
+ (scoped_identifier) @source
26
+ (use_as_clause path: (scoped_identifier) @source)
27
+ (scoped_use_list path: (scoped_identifier) @source)
28
+ ]
29
29
  ) @def`,
30
- calls: `[
31
- (call_expression function: (identifier) @callee) @def
32
- (call_expression function: (scoped_identifier name: (identifier) @callee)) @def
33
- (call_expression function: (field_expression field: (field_identifier) @callee)) @def
34
- (macro_invocation macro: (identifier) @callee) @def
30
+ calls: `[
31
+ (call_expression function: (identifier) @callee) @def
32
+ (call_expression function: (scoped_identifier name: (identifier) @callee)) @def
33
+ (call_expression function: (field_expression value: (_) @receiver field: (field_identifier) @callee)) @def
34
+ (macro_invocation macro: (identifier) @callee) @def
35
35
  ]`,
36
- heritage: `(impl_item
37
- trait: (type_identifier) @parent
38
- type: (type_identifier) @child
36
+ heritage: `(impl_item
37
+ trait: (type_identifier) @parent
38
+ type: (type_identifier) @child
39
39
  ) @def`,
40
+ exports: `[
41
+ (function_item (visibility_modifier) name: (identifier) @name) @_def
42
+ (struct_item (visibility_modifier) name: (type_identifier) @name) @_def
43
+ (enum_item (visibility_modifier) name: (type_identifier) @name) @_def
44
+ (trait_item (visibility_modifier) name: (type_identifier) @name) @_def
45
+ (const_item (visibility_modifier) name: (identifier) @name) @_def
46
+ (static_item (visibility_modifier) name: (identifier) @name) @_def
47
+ (type_item (visibility_modifier) name: (type_identifier) @name) @_def
48
+ (mod_item (visibility_modifier) name: (identifier) @name) @_def
49
+ ]`,
40
50
  },
41
51
  resolveImport(raw, _fromFile, root, _aliases) {
42
52
  // Rust use: crate::module::item → src/module.rs or src/module/mod.rs
@@ -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;;;;;;MAMT;QACF,OAAO,EAAE,kDAAkD;QAC3D,KAAK,EAAE,gDAAgD;QACvD,MAAM,EAAE,iDAAiD;QACzD,OAAO,EAAE;;;;MAIP;QACF,OAAO,EAAE;;;;;;WAMF;QACP,KAAK,EAAE;;;;;MAKL;QACF,QAAQ,EAAE;;;WAGH;KACR;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,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 +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,QAiGX,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,QAkHX,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -5,70 +5,86 @@ const spec = {
5
5
  extensions: ['.ts', '.tsx'],
6
6
  wasmName: 'tree-sitter-tsx',
7
7
  queries: {
8
- functions: `[
9
- (function_declaration name: (identifier) @name) @def
10
- (lexical_declaration
11
- (variable_declarator
12
- name: (identifier) @name
13
- value: (arrow_function)
14
- )
15
- ) @def
8
+ functions: `[
9
+ (function_declaration name: (identifier) @name) @def
10
+ (lexical_declaration
11
+ (variable_declarator
12
+ name: (identifier) @name
13
+ value: (arrow_function)
14
+ )
15
+ ) @def
16
16
  ]`,
17
17
  classes: `(class_declaration name: (type_identifier) @name) @def`,
18
18
  methods: `(method_definition name: (property_identifier) @name) @def`,
19
19
  interfaces: `(interface_declaration name: (type_identifier) @name) @def`,
20
20
  enums: `(enum_declaration name: (identifier) @name) @def`,
21
- imports: `[
22
- (import_statement
23
- source: (string (string_fragment) @source)
24
- ) @def
25
- (lexical_declaration
26
- (variable_declarator
27
- value: (call_expression
28
- function: (identifier) @_req
29
- arguments: (arguments (string (string_fragment) @source))
30
- )
31
- )
32
- ) @def
21
+ types: `(type_alias_declaration name: (type_identifier) @name) @def`,
22
+ imports: `[
23
+ (import_statement
24
+ source: (string (string_fragment) @source)
25
+ ) @def
26
+ (lexical_declaration
27
+ (variable_declarator
28
+ value: (call_expression
29
+ function: (identifier) @_req
30
+ arguments: (arguments (string (string_fragment) @source))
31
+ )
32
+ )
33
+ ) @def
33
34
  ]`,
34
- exports: `[
35
- (export_statement
36
- declaration: (function_declaration name: (identifier) @name)
37
- )
38
- (export_statement
39
- declaration: (class_declaration name: (type_identifier) @name)
40
- )
41
- (export_statement
42
- declaration: (interface_declaration name: (type_identifier) @name)
43
- )
44
- (export_statement
45
- declaration: (enum_declaration name: (identifier) @name)
46
- )
47
- (export_statement
48
- declaration: (lexical_declaration
49
- (variable_declarator name: (identifier) @name)
50
- )
51
- )
52
- (export_statement
53
- (export_clause (export_specifier name: (identifier) @name))
54
- )
55
- (export_statement
56
- declaration: (type_alias_declaration name: (type_identifier) @name)
57
- )
35
+ exports: `[
36
+ (export_statement
37
+ declaration: (function_declaration name: (identifier) @name)
38
+ )
39
+ (export_statement
40
+ declaration: (class_declaration name: (type_identifier) @name)
41
+ )
42
+ (export_statement
43
+ declaration: (interface_declaration name: (type_identifier) @name)
44
+ )
45
+ (export_statement
46
+ declaration: (enum_declaration name: (identifier) @name)
47
+ )
48
+ (export_statement
49
+ declaration: (lexical_declaration
50
+ (variable_declarator name: (identifier) @name)
51
+ )
52
+ )
53
+ (export_statement
54
+ (export_clause (export_specifier name: (identifier) @name))
55
+ )
56
+ (export_statement
57
+ declaration: (type_alias_declaration name: (type_identifier) @name)
58
+ )
58
59
  ]`,
59
- calls: `
60
- (call_expression function: (identifier) @callee) @def
61
- (call_expression function: (member_expression property: (property_identifier) @callee)) @def
62
- `,
63
- heritage: `[
64
- (class_declaration
65
- name: (type_identifier) @child
66
- (class_heritage (extends_clause value: (identifier) @parent))
67
- ) @def
68
- (class_declaration
69
- name: (type_identifier) @child
70
- (class_heritage (implements_clause (type_identifier) @parent))
71
- ) @def
60
+ calls: `[
61
+ (call_expression function: (identifier) @callee) @def
62
+ (call_expression function: (member_expression object: (_) @receiver property: (property_identifier) @callee)) @def
63
+ (decorator (identifier) @callee) @def
64
+ (jsx_self_closing_element name: (identifier) @callee) @def
65
+ (jsx_opening_element name: (identifier) @callee) @def
66
+ (jsx_self_closing_element name: (member_expression object: (identifier) @receiver property: (property_identifier) @callee)) @def
67
+ (jsx_opening_element name: (member_expression object: (identifier) @receiver property: (property_identifier) @callee)) @def
68
+ ]`,
69
+ heritage: `[
70
+ (class_declaration
71
+ name: (type_identifier) @child
72
+ (class_heritage (extends_clause value: (identifier) @parent))
73
+ ) @def
74
+ (class_declaration
75
+ name: (type_identifier) @child
76
+ (class_heritage (implements_clause (type_identifier) @parent))
77
+ ) @def
78
+ ]`,
79
+ reExports: `[
80
+ (export_statement
81
+ source: (string (string_fragment) @source)
82
+ (export_clause (export_specifier name: (identifier) @name))
83
+ ) @def
84
+ (export_statement
85
+ source: (string (string_fragment) @source)
86
+ "*"
87
+ ) @def
72
88
  ]`,
73
89
  },
74
90
  resolveImport(raw, fromFile, root, aliases) {
@@ -87,6 +103,7 @@ const spec = {
87
103
  const candidates = [
88
104
  base + '.ts', base + '.tsx',
89
105
  base + '.js', base + '.jsx',
106
+ base + '.vue',
90
107
  join(base, 'index.ts'), join(base, 'index.tsx'),
91
108
  join(base, 'index.js'),
92
109
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"lang-ts.js","sourceRoot":"","sources":["../../src/parser/lang-ts.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,YAAY;IAChB,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,iBAAiB;IAC3B,OAAO,EAAE;QACP,SAAS,EAAE;;;;;;;;MAQT;QACF,OAAO,EAAE,wDAAwD;QACjE,OAAO,EAAE,4DAA4D;QACrE,UAAU,EAAE,4DAA4D;QACxE,KAAK,EAAE,kDAAkD;QACzD,OAAO,EAAE;;;;;;;;;;;;MAYP;QACF,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;MAwBP;QACF,KAAK,EAAE;;;KAGN;QACD,QAAQ,EAAE;;;;;;;;;MASR;KACH;IACD,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO;QACxC,qCAAqC;QACrC,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACtD,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;gBACjD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACjC,MAAM;YACR,CAAC;QACH,CAAC;QAED,6CAA6C;QAC7C,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAE9D,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5B,MAAM,UAAU,GAAG;YACjB,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,MAAM;YAC3B,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,MAAM;YAC3B,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;YAC/C,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;SACvB,CAAC;QAEF,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-ts.js","sourceRoot":"","sources":["../../src/parser/lang-ts.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,YAAY;IAChB,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,iBAAiB;IAC3B,OAAO,EAAE;QACP,SAAS,EAAE;;;;;;;;MAQT;QACF,OAAO,EAAE,wDAAwD;QACjE,OAAO,EAAE,4DAA4D;QACrE,UAAU,EAAE,4DAA4D;QACxE,KAAK,EAAE,kDAAkD;QACzD,KAAK,EAAE,6DAA6D;QACpE,OAAO,EAAE;;;;;;;;;;;;MAYP;QACF,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;MAwBP;QACF,KAAK,EAAE;;;;;;;;MAQL;QACF,QAAQ,EAAE;;;;;;;;;MASR;QACF,SAAS,EAAE;;;;;;;;;MAST;KACH;IACD,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO;QACxC,qCAAqC;QACrC,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACtD,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;gBACjD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACjC,MAAM;YACR,CAAC;QACH,CAAC;QAED,6CAA6C;QAC7C,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAE9D,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5B,MAAM,UAAU,GAAG;YACjB,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,MAAM;YAC3B,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,MAAM;YAC3B,IAAI,GAAG,MAAM;YACb,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;YAC/C,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;SACvB,CAAC;QAEF,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":"languages.d.ts","sourceRoot":"","sources":["../../src/parser/languages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAU7C,QAAA,MAAM,SAAS,EAAE,QAAQ,EAA2E,CAAC;AASrG,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAGlE;AAED,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"languages.d.ts","sourceRoot":"","sources":["../../src/parser/languages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAW7C,QAAA,MAAM,SAAS,EAAE,QAAQ,EAAqF,CAAC;AAS/G,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAGlE;AAED,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -5,8 +5,9 @@ import javaSpec from './lang-java.js';
5
5
  import goSpec from './lang-go.js';
6
6
  import rustSpec from './lang-rust.js';
7
7
  import phpSpec from './lang-php.js';
8
+ import rubySpec from './lang-ruby.js';
8
9
  import vueSpec from './lang-vue.js';
9
- const ALL_LANGS = [tsSpec, jsSpec, pySpec, javaSpec, goSpec, rustSpec, phpSpec, vueSpec];
10
+ const ALL_LANGS = [tsSpec, jsSpec, pySpec, javaSpec, goSpec, rustSpec, phpSpec, rubySpec, vueSpec];
10
11
  const byExtension = new Map();
11
12
  for (const lang of ALL_LANGS) {
12
13
  for (const ext of lang.extensions) {
@@ -1 +1 @@
1
- {"version":3,"file":"languages.js","sourceRoot":"","sources":["../../src/parser/languages.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,OAAO,MAAM,eAAe,CAAC;AACpC,OAAO,OAAO,MAAM,eAAe,CAAC;AAEpC,MAAM,SAAS,GAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAErG,MAAM,WAAW,GAAG,IAAI,GAAG,EAAoB,CAAC;AAChD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;IAC7B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,MAAM,GAAG,GAAG,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,CAAC;IAC3D,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;AACjC,CAAC;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"languages.js","sourceRoot":"","sources":["../../src/parser/languages.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,OAAO,MAAM,eAAe,CAAC;AACpC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,OAAO,MAAM,eAAe,CAAC;AAEpC,MAAM,SAAS,GAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAE/G,MAAM,WAAW,GAAG,IAAI,GAAG,EAAoB,CAAC;AAChD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;IAC7B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,MAAM,GAAG,GAAG,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,CAAC;IAC3D,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;AACjC,CAAC;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/server/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAsPpE,wBAAgB,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAya5D;AAID,wBAAsB,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIjE;AAID,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2D9E"}
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/server/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAoB,MAAM,yCAAyC,CAAC;AAiUtF,wBAAgB,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAksC5D;AAID,wBAAsB,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIjE;AAID,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2D9E"}