@colbymchenry/codegraph-darwin-arm64 1.2.0 → 1.3.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 (232) hide show
  1. package/bin/codegraph +5 -0
  2. package/lib/dist/bin/codegraph.d.ts +1 -1
  3. package/lib/dist/bin/codegraph.d.ts.map +1 -1
  4. package/lib/dist/bin/codegraph.js +232 -61
  5. package/lib/dist/bin/codegraph.js.map +1 -1
  6. package/lib/dist/bin/command-supervision.d.ts.map +1 -1
  7. package/lib/dist/bin/command-supervision.js +4 -1
  8. package/lib/dist/bin/command-supervision.js.map +1 -1
  9. package/lib/dist/db/index.d.ts +17 -5
  10. package/lib/dist/db/index.d.ts.map +1 -1
  11. package/lib/dist/db/index.js +68 -12
  12. package/lib/dist/db/index.js.map +1 -1
  13. package/lib/dist/db/migrations.d.ts +1 -1
  14. package/lib/dist/db/migrations.d.ts.map +1 -1
  15. package/lib/dist/db/migrations.js +19 -1
  16. package/lib/dist/db/migrations.js.map +1 -1
  17. package/lib/dist/db/queries.d.ts +76 -1
  18. package/lib/dist/db/queries.d.ts.map +1 -1
  19. package/lib/dist/db/queries.js +180 -0
  20. package/lib/dist/db/queries.js.map +1 -1
  21. package/lib/dist/db/schema.sql +19 -0
  22. package/lib/dist/directory.d.ts +9 -5
  23. package/lib/dist/directory.d.ts.map +1 -1
  24. package/lib/dist/directory.js +210 -19
  25. package/lib/dist/directory.js.map +1 -1
  26. package/lib/dist/extraction/cfml-extractor.d.ts +107 -0
  27. package/lib/dist/extraction/cfml-extractor.d.ts.map +1 -0
  28. package/lib/dist/extraction/cfml-extractor.js +494 -0
  29. package/lib/dist/extraction/cfml-extractor.js.map +1 -0
  30. package/lib/dist/extraction/grammars.d.ts +9 -0
  31. package/lib/dist/extraction/grammars.d.ts.map +1 -1
  32. package/lib/dist/extraction/grammars.js +115 -3
  33. package/lib/dist/extraction/grammars.js.map +1 -1
  34. package/lib/dist/extraction/index.d.ts +46 -1
  35. package/lib/dist/extraction/index.d.ts.map +1 -1
  36. package/lib/dist/extraction/index.js +338 -34
  37. package/lib/dist/extraction/index.js.map +1 -1
  38. package/lib/dist/extraction/languages/arkts.d.ts +3 -0
  39. package/lib/dist/extraction/languages/arkts.d.ts.map +1 -0
  40. package/lib/dist/extraction/languages/arkts.js +127 -0
  41. package/lib/dist/extraction/languages/arkts.js.map +1 -0
  42. package/lib/dist/extraction/languages/c-cpp.d.ts +42 -0
  43. package/lib/dist/extraction/languages/c-cpp.d.ts.map +1 -1
  44. package/lib/dist/extraction/languages/c-cpp.js +369 -4
  45. package/lib/dist/extraction/languages/c-cpp.js.map +1 -1
  46. package/lib/dist/extraction/languages/cfquery.d.ts +12 -0
  47. package/lib/dist/extraction/languages/cfquery.d.ts.map +1 -0
  48. package/lib/dist/extraction/languages/cfquery.js +28 -0
  49. package/lib/dist/extraction/languages/cfquery.js.map +1 -0
  50. package/lib/dist/extraction/languages/cfscript.d.ts +3 -0
  51. package/lib/dist/extraction/languages/cfscript.d.ts.map +1 -0
  52. package/lib/dist/extraction/languages/cfscript.js +73 -0
  53. package/lib/dist/extraction/languages/cfscript.js.map +1 -0
  54. package/lib/dist/extraction/languages/cobol.d.ts +33 -0
  55. package/lib/dist/extraction/languages/cobol.d.ts.map +1 -0
  56. package/lib/dist/extraction/languages/cobol.js +499 -0
  57. package/lib/dist/extraction/languages/cobol.js.map +1 -0
  58. package/lib/dist/extraction/languages/erlang.d.ts +3 -0
  59. package/lib/dist/extraction/languages/erlang.d.ts.map +1 -0
  60. package/lib/dist/extraction/languages/erlang.js +350 -0
  61. package/lib/dist/extraction/languages/erlang.js.map +1 -0
  62. package/lib/dist/extraction/languages/index.d.ts.map +1 -1
  63. package/lib/dist/extraction/languages/index.js +18 -0
  64. package/lib/dist/extraction/languages/index.js.map +1 -1
  65. package/lib/dist/extraction/languages/nix.d.ts +3 -0
  66. package/lib/dist/extraction/languages/nix.d.ts.map +1 -0
  67. package/lib/dist/extraction/languages/nix.js +294 -0
  68. package/lib/dist/extraction/languages/nix.js.map +1 -0
  69. package/lib/dist/extraction/languages/solidity.d.ts +3 -0
  70. package/lib/dist/extraction/languages/solidity.d.ts.map +1 -0
  71. package/lib/dist/extraction/languages/solidity.js +293 -0
  72. package/lib/dist/extraction/languages/solidity.js.map +1 -0
  73. package/lib/dist/extraction/languages/terraform.d.ts +3 -0
  74. package/lib/dist/extraction/languages/terraform.d.ts.map +1 -0
  75. package/lib/dist/extraction/languages/terraform.js +641 -0
  76. package/lib/dist/extraction/languages/terraform.js.map +1 -0
  77. package/lib/dist/extraction/languages/vbnet.d.ts +11 -0
  78. package/lib/dist/extraction/languages/vbnet.d.ts.map +1 -0
  79. package/lib/dist/extraction/languages/vbnet.js +141 -0
  80. package/lib/dist/extraction/languages/vbnet.js.map +1 -0
  81. package/lib/dist/extraction/mybatis-extractor.d.ts +30 -10
  82. package/lib/dist/extraction/mybatis-extractor.d.ts.map +1 -1
  83. package/lib/dist/extraction/mybatis-extractor.js +140 -38
  84. package/lib/dist/extraction/mybatis-extractor.js.map +1 -1
  85. package/lib/dist/extraction/tree-sitter-helpers.d.ts.map +1 -1
  86. package/lib/dist/extraction/tree-sitter-helpers.js +1 -0
  87. package/lib/dist/extraction/tree-sitter-helpers.js.map +1 -1
  88. package/lib/dist/extraction/tree-sitter-types.d.ts +3 -1
  89. package/lib/dist/extraction/tree-sitter-types.d.ts.map +1 -1
  90. package/lib/dist/extraction/tree-sitter.d.ts +38 -0
  91. package/lib/dist/extraction/tree-sitter.d.ts.map +1 -1
  92. package/lib/dist/extraction/tree-sitter.js +753 -10
  93. package/lib/dist/extraction/tree-sitter.js.map +1 -1
  94. package/lib/dist/extraction/wasm/tree-sitter-arkts.wasm +0 -0
  95. package/lib/dist/extraction/wasm/tree-sitter-cfml.wasm +0 -0
  96. package/lib/dist/extraction/wasm/tree-sitter-cfquery.wasm +0 -0
  97. package/lib/dist/extraction/wasm/tree-sitter-cfscript.wasm +0 -0
  98. package/lib/dist/extraction/wasm/tree-sitter-cobol.wasm +0 -0
  99. package/lib/dist/extraction/wasm/tree-sitter-erlang.wasm +0 -0
  100. package/lib/dist/extraction/wasm/tree-sitter-nix.wasm +0 -0
  101. package/lib/dist/extraction/wasm/tree-sitter-terraform.wasm +0 -0
  102. package/lib/dist/extraction/wasm/tree-sitter-vbnet.wasm +0 -0
  103. package/lib/dist/index.d.ts +63 -1
  104. package/lib/dist/index.d.ts.map +1 -1
  105. package/lib/dist/index.js +327 -5
  106. package/lib/dist/index.js.map +1 -1
  107. package/lib/dist/installer/index.d.ts.map +1 -1
  108. package/lib/dist/installer/index.js +3 -1
  109. package/lib/dist/installer/index.js.map +1 -1
  110. package/lib/dist/mcp/daemon.d.ts +25 -3
  111. package/lib/dist/mcp/daemon.d.ts.map +1 -1
  112. package/lib/dist/mcp/daemon.js +62 -8
  113. package/lib/dist/mcp/daemon.js.map +1 -1
  114. package/lib/dist/mcp/dynamic-boundaries.d.ts.map +1 -1
  115. package/lib/dist/mcp/dynamic-boundaries.js +2 -1
  116. package/lib/dist/mcp/dynamic-boundaries.js.map +1 -1
  117. package/lib/dist/mcp/early-ppid.d.ts +26 -0
  118. package/lib/dist/mcp/early-ppid.d.ts.map +1 -0
  119. package/lib/dist/mcp/early-ppid.js +29 -0
  120. package/lib/dist/mcp/early-ppid.js.map +1 -0
  121. package/lib/dist/mcp/index.d.ts.map +1 -1
  122. package/lib/dist/mcp/index.js +21 -4
  123. package/lib/dist/mcp/index.js.map +1 -1
  124. package/lib/dist/mcp/proxy.d.ts.map +1 -1
  125. package/lib/dist/mcp/proxy.js +29 -3
  126. package/lib/dist/mcp/proxy.js.map +1 -1
  127. package/lib/dist/mcp/query-pool.d.ts +14 -0
  128. package/lib/dist/mcp/query-pool.d.ts.map +1 -1
  129. package/lib/dist/mcp/query-pool.js +18 -0
  130. package/lib/dist/mcp/query-pool.js.map +1 -1
  131. package/lib/dist/mcp/session.d.ts.map +1 -1
  132. package/lib/dist/mcp/session.js +6 -0
  133. package/lib/dist/mcp/session.js.map +1 -1
  134. package/lib/dist/mcp/startup-handshake.d.ts +44 -0
  135. package/lib/dist/mcp/startup-handshake.d.ts.map +1 -0
  136. package/lib/dist/mcp/startup-handshake.js +73 -0
  137. package/lib/dist/mcp/startup-handshake.js.map +1 -0
  138. package/lib/dist/mcp/tools.d.ts +22 -0
  139. package/lib/dist/mcp/tools.d.ts.map +1 -1
  140. package/lib/dist/mcp/tools.js +88 -18
  141. package/lib/dist/mcp/tools.js.map +1 -1
  142. package/lib/dist/mcp/transport.d.ts.map +1 -1
  143. package/lib/dist/mcp/transport.js +18 -0
  144. package/lib/dist/mcp/transport.js.map +1 -1
  145. package/lib/dist/project-config.d.ts +38 -0
  146. package/lib/dist/project-config.d.ts.map +1 -1
  147. package/lib/dist/project-config.js +101 -2
  148. package/lib/dist/project-config.js.map +1 -1
  149. package/lib/dist/resolution/c-fnptr-synthesizer.d.ts +2 -1
  150. package/lib/dist/resolution/c-fnptr-synthesizer.d.ts.map +1 -1
  151. package/lib/dist/resolution/c-fnptr-synthesizer.js +170 -146
  152. package/lib/dist/resolution/c-fnptr-synthesizer.js.map +1 -1
  153. package/lib/dist/resolution/callback-synthesizer.d.ts.map +1 -1
  154. package/lib/dist/resolution/callback-synthesizer.js +982 -81
  155. package/lib/dist/resolution/callback-synthesizer.js.map +1 -1
  156. package/lib/dist/resolution/frameworks/cics.d.ts +20 -0
  157. package/lib/dist/resolution/frameworks/cics.d.ts.map +1 -0
  158. package/lib/dist/resolution/frameworks/cics.js +90 -0
  159. package/lib/dist/resolution/frameworks/cics.js.map +1 -0
  160. package/lib/dist/resolution/frameworks/index.d.ts.map +1 -1
  161. package/lib/dist/resolution/frameworks/index.js +6 -0
  162. package/lib/dist/resolution/frameworks/index.js.map +1 -1
  163. package/lib/dist/resolution/frameworks/java.d.ts.map +1 -1
  164. package/lib/dist/resolution/frameworks/java.js +14 -6
  165. package/lib/dist/resolution/frameworks/java.js.map +1 -1
  166. package/lib/dist/resolution/frameworks/terraform.d.ts +38 -0
  167. package/lib/dist/resolution/frameworks/terraform.d.ts.map +1 -0
  168. package/lib/dist/resolution/frameworks/terraform.js +277 -0
  169. package/lib/dist/resolution/frameworks/terraform.js.map +1 -0
  170. package/lib/dist/resolution/goframe-synthesizer.d.ts +2 -1
  171. package/lib/dist/resolution/goframe-synthesizer.d.ts.map +1 -1
  172. package/lib/dist/resolution/goframe-synthesizer.js +8 -3
  173. package/lib/dist/resolution/goframe-synthesizer.js.map +1 -1
  174. package/lib/dist/resolution/import-resolver.d.ts +7 -0
  175. package/lib/dist/resolution/import-resolver.d.ts.map +1 -1
  176. package/lib/dist/resolution/import-resolver.js +129 -4
  177. package/lib/dist/resolution/import-resolver.js.map +1 -1
  178. package/lib/dist/resolution/index.d.ts +49 -6
  179. package/lib/dist/resolution/index.d.ts.map +1 -1
  180. package/lib/dist/resolution/index.js +342 -65
  181. package/lib/dist/resolution/index.js.map +1 -1
  182. package/lib/dist/resolution/name-matcher.d.ts +0 -3
  183. package/lib/dist/resolution/name-matcher.d.ts.map +1 -1
  184. package/lib/dist/resolution/name-matcher.js +225 -33
  185. package/lib/dist/resolution/name-matcher.js.map +1 -1
  186. package/lib/dist/resolution/strip-comments.d.ts +1 -1
  187. package/lib/dist/resolution/strip-comments.d.ts.map +1 -1
  188. package/lib/dist/resolution/strip-comments.js +49 -0
  189. package/lib/dist/resolution/strip-comments.js.map +1 -1
  190. package/lib/dist/resolution/types.d.ts +29 -0
  191. package/lib/dist/resolution/types.d.ts.map +1 -1
  192. package/lib/dist/resolution/workspace-packages.d.ts +10 -0
  193. package/lib/dist/resolution/workspace-packages.d.ts.map +1 -1
  194. package/lib/dist/resolution/workspace-packages.js +142 -4
  195. package/lib/dist/resolution/workspace-packages.js.map +1 -1
  196. package/lib/dist/search/identifier-segments.d.ts +60 -0
  197. package/lib/dist/search/identifier-segments.d.ts.map +1 -0
  198. package/lib/dist/search/identifier-segments.js +176 -0
  199. package/lib/dist/search/identifier-segments.js.map +1 -0
  200. package/lib/dist/sync/git-hooks.d.ts.map +1 -1
  201. package/lib/dist/sync/git-hooks.js +2 -0
  202. package/lib/dist/sync/git-hooks.js.map +1 -1
  203. package/lib/dist/sync/watcher.d.ts +10 -5
  204. package/lib/dist/sync/watcher.d.ts.map +1 -1
  205. package/lib/dist/sync/watcher.js +51 -14
  206. package/lib/dist/sync/watcher.js.map +1 -1
  207. package/lib/dist/sync/worktree.d.ts.map +1 -1
  208. package/lib/dist/sync/worktree.js +5 -0
  209. package/lib/dist/sync/worktree.js.map +1 -1
  210. package/lib/dist/types.d.ts +19 -1
  211. package/lib/dist/types.d.ts.map +1 -1
  212. package/lib/dist/types.js +10 -0
  213. package/lib/dist/types.js.map +1 -1
  214. package/lib/node_modules/.package-lock.json +1 -1
  215. package/lib/package.json +1 -1
  216. package/package.json +1 -1
  217. package/lib/dist/reasoning/config.d.ts +0 -45
  218. package/lib/dist/reasoning/config.d.ts.map +0 -1
  219. package/lib/dist/reasoning/config.js +0 -171
  220. package/lib/dist/reasoning/config.js.map +0 -1
  221. package/lib/dist/reasoning/credentials.d.ts +0 -5
  222. package/lib/dist/reasoning/credentials.d.ts.map +0 -1
  223. package/lib/dist/reasoning/credentials.js +0 -83
  224. package/lib/dist/reasoning/credentials.js.map +0 -1
  225. package/lib/dist/reasoning/login.d.ts +0 -21
  226. package/lib/dist/reasoning/login.d.ts.map +0 -1
  227. package/lib/dist/reasoning/login.js +0 -85
  228. package/lib/dist/reasoning/login.js.map +0 -1
  229. package/lib/dist/reasoning/reasoner.d.ts +0 -43
  230. package/lib/dist/reasoning/reasoner.d.ts.map +0 -1
  231. package/lib/dist/reasoning/reasoner.js +0 -308
  232. package/lib/dist/reasoning/reasoner.js.map +0 -1
@@ -123,6 +123,25 @@ CREATE TRIGGER IF NOT EXISTS nodes_au AFTER UPDATE ON nodes BEGIN
123
123
  VALUES (NEW.rowid, NEW.id, NEW.name, NEW.qualified_name, NEW.docstring, NEW.signature);
124
124
  END;
125
125
 
126
+ -- Prose-word → symbol-name lookup for the prompt hook's graph-derived gate.
127
+ -- One row per (segment, name): segment is a lowercased word of a symbol name
128
+ -- ("OrderStateMachine" → order, state, machine — see identifier-segments.ts),
129
+ -- which lets natural-language prompt words be verified against the graph in
130
+ -- any language whose technical nouns are Latin script. File nodes are
131
+ -- excluded — a file's basename duplicates the symbols inside it and skews the
132
+ -- singleton-vs-cluster rarity statistics. FTS can't serve this lookup (its
133
+ -- tokenizer keeps camelCase names as single tokens), so segments are
134
+ -- materialized on the node write path.
135
+ -- Deletions leave orphan rows ON PURPOSE: rows are PROPOSALS, always
136
+ -- re-verified against nodes before being surfaced (CodeGraph.getSegmentMatches),
137
+ -- and a full index clears the table at its start. Populated lazily on old
138
+ -- databases (empty until the next index/sync heals it).
139
+ CREATE TABLE IF NOT EXISTS name_segment_vocab (
140
+ segment TEXT NOT NULL,
141
+ name TEXT NOT NULL,
142
+ PRIMARY KEY (segment, name)
143
+ ) WITHOUT ROWID;
144
+
126
145
  -- Edge indexes.
127
146
  -- idx_edges_source / idx_edges_target are intentionally omitted —
128
147
  -- the (source, kind) and (target, kind) composites below cover the
@@ -86,10 +86,14 @@ export declare function findIndexedSubprojectRoots(root: string, opts?: {
86
86
  max?: number;
87
87
  }): string[];
88
88
  /**
89
- * Does `prompt` contain an explicit structural keyword (English or CJK)? A
90
- * keyword is a strong, self-contained signal, so the front-load hook fires on it
91
- * directly — no graph check needed. (A *code-token* match, by contrast, is only
92
- * a candidate the hook verifies against the graph first; see {@link extractCodeTokens}.)
89
+ * Does `prompt` contain an explicit structural keyword? A keyword is a strong,
90
+ * self-contained signal, so the front-load hook fires on it directly — no graph
91
+ * check needed. (A *code-token* match, by contrast, is only a candidate the
92
+ * hook verifies against the graph first; see {@link extractCodeTokens}.)
93
+ * Coverage is multilingual (#994, #1126): the ~29 languages with the largest
94
+ * developer populations, across Latin, Cyrillic, Greek, CJK, Hangul, Arabic,
95
+ * Hebrew, Thai, and Devanagari scripts. Languages beyond the keyword table
96
+ * still fire through the language-agnostic code-token path.
93
97
  */
94
98
  export declare function hasStructuralKeyword(prompt: string): boolean;
95
99
  /**
@@ -110,7 +114,7 @@ export declare function extractCodeTokens(prompt: string): string[];
110
114
  /**
111
115
  * Cheap, graph-free candidate gate for the front-load hook: could `prompt` be a
112
116
  * structural / flow / impact / "where-how" question worth front-loading context
113
- * for? True on an explicit keyword (English or CJK, issue #994) OR an
117
+ * for? True on an explicit keyword in any covered language (#994, #1126) OR an
114
118
  * identifier-shaped token. A keyword is sufficient to fire on its own; a
115
119
  * token-only match is only a candidate the hook then verifies against the graph
116
120
  * (a brand name like `JavaScript` is token-shaped but isn't a symbol). Every
@@ -1 +1 @@
1
- {"version":3,"file":"directory.d.ts","sourceRoot":"","sources":["../src/directory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAqBzC;AAED;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,QAAqB,CAAC;AAEhD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMxD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAQ1D;AAED;;;;;;;;GAQG;AACH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA8BxE;AAED,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAmBzE;AA2BD;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7C,MAAM,EAAE,CAmBV;AAyBD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAkB1D;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;yEAEqE;IACrE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;6EAEyE;IACzE,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB;;+DAE2D;IAC3D,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAwCxE;AAyDD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAgBzD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAuBzD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CA8BnE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CA+B5D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAYlF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG;IACtD,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CA6BA"}
1
+ {"version":3,"file":"directory.d.ts","sourceRoot":"","sources":["../src/directory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAqBzC;AAED;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,QAAqB,CAAC;AAEhD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMxD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAQ1D;AAED;;;;;;;;GAQG;AACH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA8BxE;AAED,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAmBzE;AA2BD;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7C,MAAM,EAAE,CAmBV;AAsND;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAK5D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAkB1D;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;yEAEqE;IACrE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;6EAEyE;IACzE,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB;;+DAE2D;IAC3D,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAwCxE;AAyDD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAgBzD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAuBzD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CA8BnE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CA+B5D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAYlF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG;IACtD,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CA6BA"}
@@ -271,33 +271,224 @@ function findIndexedSubprojectRoots(root, opts = {}) {
271
271
  return out;
272
272
  }
273
273
  /**
274
- * English structural keywords, matched with `\b` word boundaries so a keyword
275
- * inside a longer word doesn't false-positive ("flow" in "flower").
274
+ * Unicode-aware word-boundary emulation for the keyword lists below. JS's `\b`
275
+ * is ASCII-only it fires only at `[A-Za-z0-9_]` edges so it can never bound
276
+ * a keyword whose first or last character is accented or non-Latin: `/\boù\b/`
277
+ * NEVER matches "où est …" (ù isn't an ASCII word char, so no boundary exists
278
+ * next to it). That is the #994 CJK mechanism resurfaced for Latin scripts and
279
+ * Cyrillic (#1126). A lookaround — "not flanked by a letter, digit, or
280
+ * underscore" — is the script-independent equivalent.
276
281
  */
277
- const STRUCTURAL_EN = /\b(how|where|trace|flow|path|reach(?:es|ed)?|call(?:s|ed|er|ers|ee)?|depend|impact|affect|wired?|connect|implement|architect|structure|breaks?|what calls|why does)\b/i;
282
+ const NOT_WORD_BEFORE = /(?<![\p{L}\p{N}_])/u.source;
283
+ const NOT_WORD_AFTER = /(?![\p{L}\p{N}_])/u.source;
278
284
  /**
279
- * Non-English (CJK) structural keywords, matched WITHOUT `\b`. JS's `\b` is
280
- * ASCII-only it only fires at `[A-Za-z0-9_]` boundaries, never between Han
281
- * characters so a Chinese keyword wrapped in `\b…\b` could never match. That
282
- * was issue #994: the English-only gate silently no-op'd every Chinese prompt,
283
- * so non-English users got no front-load nudge and no error to explain why. The
284
- * set mirrors the English intent (如何=how, 在哪/哪里=where, 流程/流向=flow,
285
- * 路径=path, 调用=call, 依赖=depend, 影响=impact/affect, 实现=implement,
286
- * 架构=architect, 结构=structure, 追踪/跟踪=trace) plus structural-overview words
287
- * with no single clean English equivalent (介绍/解析/分析/原理/机制).
285
+ * Structural keywords matched as EXACT words (boundary on both sides): short
286
+ * or ambiguous tokens where prefix matching would false-positive ("flow" in
287
+ * "flower", "path" in "pathological"). Grouped by language; a term appears once
288
+ * even when several languages share it ("como" is Portuguese for how AND
289
+ * unaccented-typed Spanish "cómo").
288
290
  */
289
- const STRUCTURAL_CJK = /如何|怎么|在哪|哪里|追踪|跟踪|流程|流向|路径|调用|依赖|影响|实现|架构|结构|介绍|解析|分析|原理|机制/;
291
+ const STRUCTURAL_WORDS = [
292
+ // English — the pre-#1126 list minus what moved to STRUCTURAL_STEMS: the
293
+ // bare-stem entries never matched their own derived forms (`\barchitect\b`
294
+ // can't match "architecture"), and "what calls" is subsumed by the "call" stem.
295
+ 'how', 'where', 'tracing', 'flows?', 'paths?', 'reach(?:es|ed)?', 'wired?', 'breaks?', 'why does',
296
+ // French (où=where, flux=flow, chemin=path, casse=breaks)
297
+ 'comment', 'où', 'flux', 'chemins?', 'casse',
298
+ // Spanish (cómo/como=how, dónde/donde=where, flujo=flow, ruta/camino=path,
299
+ // rompe=breaks, llaman / quién llama = call(s) — bare "llama" is excluded:
300
+ // it's also the animal/model name in English prompts)
301
+ 'cómo', 'dónde', 'donde', 'flujos?', 'rutas?', 'caminos?', 'rompe', 'llaman', 'quién llama', 'quien llama',
302
+ // Portuguese (como=how — also covers unaccented Spanish; onde=where,
303
+ // fluxo=flow, caminho=path)
304
+ 'como', 'onde', 'fluxos?', 'caminhos?',
305
+ // German (wie=how, wo/woher/wohin=where, Pfad=path, Fluss/Ablauf=flow,
306
+ // bricht/kaputt=breaks, ruft=calls, hängt=depends — "hängt … von X ab"
307
+ // splits the separable verb "abhängen", so the "abhäng" stem can't catch it)
308
+ 'wie', 'wo', 'woher', 'wohin', 'pfade?', 'fluss', 'ablauf', 'bricht', 'kaputt', 'ruft', 'hängt',
309
+ // Italian (dove=where, flusso=flow, percorso/i=path)
310
+ 'dove', 'flusso', 'percors[oi]',
311
+ // Russian (как=how, где=where, путь/пути=path, работает=works)
312
+ 'как', 'где', 'путь', 'пути', 'работает',
313
+ // Ukrainian (як=how, де=where, потік=flow — обліque cases reuse the RU
314
+ // "поток" stem; працює=works)
315
+ 'як', 'де', 'потік', 'працює',
316
+ // Dutch (hoe=how, waar=where, roept=calls, werkt=works, aangeroepen=called —
317
+ // the ge- participle escapes the "aanroep" stem)
318
+ 'hoe', 'waar', 'roept', 'werkt', 'aangeroepen',
319
+ // Polish + Czech (jak=how — shared; gdzie/kde=where, cesta=path)
320
+ 'jak', 'gdzie', 'kde', 'cesta',
321
+ // Romanian (cum=how, unde=where; flux is shared with French)
322
+ 'cum', 'unde',
323
+ // Hungarian (hogyan=how, hol=where)
324
+ 'hogyan', 'hol',
325
+ // Turkish (nasıl=how, mimari=architecture, takip=trace/follow)
326
+ 'nasıl', 'mimari', 'takip',
327
+ // Indonesian/Malay (bagaimana=how, di mana/dimana=where, alur=flow, jalur=path)
328
+ 'bagaimana', 'di mana', 'dimana', 'alur', 'jalur',
329
+ // Vietnamese — spaced Latin with heavy diacritics, the exact class ASCII `\b`
330
+ // breaks (làm sao/thế nào=how, ở đâu=where, gọi=call, phụ thuộc=depend,
331
+ // ảnh hưởng=affect, kiến trúc=architecture, cấu trúc=structure, luồng=flow,
332
+ // đường dẫn=path, hoạt động=works, giải thích=explain, theo dõi=trace)
333
+ 'làm sao', 'thế nào', 'ở đâu', 'gọi', 'phụ thuộc', 'ảnh hưởng', 'kiến trúc',
334
+ 'cấu trúc', 'luồng', 'đường dẫn', 'hoạt động', 'giải thích', 'theo dõi',
335
+ // Swedish / Danish / Norwegian (hur/hvordan=how, hvor=where, beror=depends,
336
+ // flöde=flow)
337
+ 'hur', 'hvordan', 'hvor', 'beror', 'flöde',
338
+ // Finnish (miten=how, missä=where, toimii=works)
339
+ 'miten', 'missä', 'toimii',
340
+ // Greek (πώς=how, πού=where — accented forms only: unaccented πως/που are
341
+ // ubiquitous conjunctions; καλεί=calls, δομή=structure, ροή=flow)
342
+ 'πώς', 'πού', 'καλεί', 'δομή', 'ροή',
343
+ // Hindi (कैसे=how, कहाँ/कहां=where, कॉल=call, निर्भर=depends,
344
+ // संरचना=structure, प्रवाह=flow)
345
+ 'कैसे', 'कहाँ', 'कहां', 'कॉल', 'निर्भर', 'संरचना', 'प्रवाह',
346
+ ];
347
+ /**
348
+ * Structural keyword STEMS matched as word PREFIXES (boundary on the left
349
+ * only), so derived forms match without enumerating each: "architect" fires on
350
+ * architecture/architectural, "depend" on depends/dependency/dependencies,
351
+ * "вызыва" on вызывает/вызывается. Mid-word occurrences stay excluded —
352
+ * "restructure"/"independent" don't fire — so precision stays close to the
353
+ * exact-word class. Add a stem only when every plausible completion is still a
354
+ * structural word; a stem with ordinary-English completions must instead
355
+ * enumerate its structural suffixes and re-assert the right boundary (see the
356
+ * four bounded English entries below, #1138).
357
+ */
358
+ const STRUCTURAL_STEMS = [
359
+ // English + the Latin-script languages that share the spelling (French
360
+ // architecture/structure/trace/impact, Spanish depende/implementa/impacto, …).
361
+ // call/trace/affect/connect are NOT safe as open prefixes — callus,
362
+ // calligraphy, Connecticut, connective, affectionate, Tracey are ordinary
363
+ // words that would false-fire the full-explore tier (#1138) — so they carry
364
+ // an enumerated suffix set + right boundary. "tracing" lives in
365
+ // STRUCTURAL_WORDS (the e is dropped, so no trace-prefix form matches it).
366
+ 'architect', 'structur', 'depend', 'implement', 'impact', 'explain',
367
+ `call(?:s|ing|ed|ers?|backs?|able|sites?)?${NOT_WORD_AFTER}`,
368
+ `trace(?:s|d|rs?)?${NOT_WORD_AFTER}`,
369
+ `affect(?:s|ed|ing)?${NOT_WORD_AFTER}`,
370
+ `connect(?:s|ed|ing|ions?|ors?|ivity)?${NOT_WORD_AFTER}`,
371
+ // French (appel(le)=call, dépend=depends, implément(e)=implement,
372
+ // connex(ion)=connection, expliqu(e)=explain, fonctionn(e/ement)=works)
373
+ 'appel', 'dépend', 'implément', 'connex', 'expliqu', 'fonctionn',
374
+ // Spanish (llamad(a)=call, afect(a)=affect, conect(a)/conexi(ón)=connect,
375
+ // arquitec(tura)=architecture, estructur(a)=structure, funcion(a)=works,
376
+ // traza(r)=trace, explica=explain)
377
+ 'llamad', 'afect', 'conect', 'conexi', 'arquitec', 'estructur', 'funcion', 'traza', 'explica',
378
+ // Portuguese (chama(da)=call, afeta=affect, arquitet(ura)=architecture,
379
+ // estrutur(a)=structure, quebra(do)=breaks)
380
+ 'chama', 'afeta', 'arquitet', 'estrutur', 'quebra',
381
+ // German (abhäng(t)=depend, Auswirkung=impact, beeinfluss(t)=affect,
382
+ // verbind(et)=connect, Architektur, Struktur, funktionier(t)=works,
383
+ // Aufruf/aufgerufen=call, erklär(t)=explain, verfolg(en)=trace)
384
+ 'abhäng', 'auswirkung', 'beeinfluss', 'verbind', 'architekt', 'struktur', 'funktionier', 'aufruf', 'aufgerufen', 'erklär', 'verfolg',
385
+ // Italian (chiam(a/ata)=call, dipend(e/enza)=depend, impatt(o)=impact,
386
+ // connett(e)/conness(ione)=connect, architett(ura), struttur(a),
387
+ // funzion(a/amento)=works, tracci(a)=trace, spiega(mi)=explain)
388
+ 'chiam', 'dipend', 'impatt', 'connett', 'conness', 'architett', 'struttur', 'funzion', 'tracci', 'spiega',
389
+ // Russian (вызыва(ет)=calls, завис(ит)=depends, влия(ет)=affects,
390
+ // реализ(ация)=implementation, структур(а), архитектур(а),
391
+ // трассир(овка)=trace, лома(ет)=breaks, объясн(и)=explain, поток=flow)
392
+ 'вызыва', 'завис', 'влия', 'реализ', 'структур', 'архитектур', 'трассир', 'лома', 'объясн', 'поток',
393
+ // Ukrainian — і/и spellings diverge from Russian (виклика(є)=calls,
394
+ // залеж(ить)=depends, вплива(є)=affects, архітектур(а), реаліз(ація),
395
+ // поясн(и)=explain, шлях(у)=path; структур(а) is shared with Russian)
396
+ 'виклика', 'залеж', 'вплива', 'архітектур', 'реаліз', 'поясн', 'шлях',
397
+ // Dutch (aanroep(en)=call, afhankelijk(heid)=depends, beïnvloed(t)=affects,
398
+ // structuur — "structur" can't reach the uu; uitleg(gen)=explain)
399
+ 'aanroep', 'afhankelijk', 'beïnvloed', 'structuur', 'uitleg',
400
+ // Polish (wywoł(uje)=calls, zależ(y)=depends, wpływ(a)=affects/impact,
401
+ // przepływ=flow, ścieżk(a)=path, działa(nie)=works, wyjaśni(j)=explain,
402
+ // śledz(enie)=trace; architektura/struktura fire via the German stems)
403
+ 'wywoł', 'zależ', 'wpływ', 'przepływ', 'ścieżk', 'działa', 'wyjaśni', 'śledz',
404
+ // Czech (volá(ní)=calls, závis(í)=depends, ovlivň(uje)=affects,
405
+ // funguj(e)=works, vysvětl(i)=explain)
406
+ 'volá', 'závis', 'ovlivň', 'funguj', 'vysvětl',
407
+ // Romanian (apel(ează)=calls, depind(e)=depends — i not e, so "depend" misses
408
+ // it; arhitectur(a) — no c; funcțion(ează)=works, explică=explain)
409
+ 'apel', 'depind', 'arhitectur', 'funcțion', 'explică',
410
+ // Hungarian (hív(ja)=calls, függ(őség)=depends, működ(ik)=works,
411
+ // struktúr(a) — ú escapes "struktur"; magyaráz(d)=explain;
412
+ // architektúra fires via the German stem)
413
+ 'hív', 'függ', 'működ', 'struktúr', 'magyaráz',
414
+ // Turkish — agglutinative, so stems beat exact words (nere(de/ye/den)=where,
415
+ // çağır/çağrı=call, bağıml(ı)=depends, bağlant(ı)=connection, akış(ı)=flow,
416
+ // etkile(r)/etkisi=affects/impact)
417
+ 'nere', 'çağır', 'çağrı', 'bağıml', 'bağlant', 'akış', 'etkile', 'etkisi',
418
+ // Indonesian/Malay — me-/di-/ber- prefixes block a bare stem, so affixed
419
+ // forms are listed too (panggil(an)/memanggil/dipanggil=call,
420
+ // bergantung/tergantung=depends, pengaruh/mempengaruhi/memengaruhi=affect,
421
+ // arsitektur=architecture, fungsi/berfungsi=works,
422
+ // jelaskan/menjelaskan=explain)
423
+ 'panggil', 'memanggil', 'dipanggil', 'bergantung', 'tergantung', 'pengaruh',
424
+ 'mempengaruhi', 'memengaruhi', 'arsitektur', 'fungsi', 'berfungsi', 'jelaskan', 'menjelaskan',
425
+ // Swedish / Danish / Norwegian (anrop(ar)=calls, påverk(ar)/påvirk(er)=affects,
426
+ // afhæng(er)/avheng(er)=depends, förklar(a)/forklar=explain,
427
+ // arkitektur — k not ch; funger(ar/er)=works)
428
+ 'anrop', 'påverk', 'påvirk', 'afhæng', 'avheng', 'förklar', 'forklar', 'arkitektur', 'funger',
429
+ // Finnish (kutsu(u)=calls, riippu(u)=depends, arkkitehtuur(i),
430
+ // rakente(en)=structure, selit(ä)=explain)
431
+ 'kutsu', 'riippu', 'arkkitehtuur', 'rakente', 'selit',
432
+ // Greek — accented and unaccented stem spellings both occur
433
+ // (εξαρτ(άται)=depends, επηρε(άζει)=affects, αρχιτεκτονικ(ή),
434
+ // διαδρομ(ή)=path, εξηγ/εξήγ(ησε)=explain)
435
+ 'εξαρτ', 'επηρε', 'αρχιτεκτονικ', 'διαδρομ', 'εξηγ', 'εξήγ',
436
+ // Hindi (समझा(ओ/इए)=explain, आर्किटेक्चर=architecture)
437
+ 'समझा', 'आर्किटेक्चर',
438
+ ];
439
+ const STRUCTURAL_WORDS_RE = new RegExp(`${NOT_WORD_BEFORE}(?:${STRUCTURAL_WORDS.join('|')})${NOT_WORD_AFTER}`, 'iu');
440
+ const STRUCTURAL_STEMS_RE = new RegExp(`${NOT_WORD_BEFORE}(?:${STRUCTURAL_STEMS.join('|')})`, 'iu');
441
+ /**
442
+ * Structural keywords matched as bare SUBSTRINGS, for languages where a
443
+ * boundary can't be relied on: scripts with no word separators (Chinese —
444
+ * simplified AND traditional; the original #994 set was simplified-only —
445
+ * Japanese, Thai), Korean (spaced, but particles attach directly to the noun:
446
+ * 구조가/구조를), and Arabic / Farsi / Hebrew (spaced, but proclitics attach to
447
+ * the word: وكيف "and-how", והמבנה "and-the-structure"). JS's `\b` can never
448
+ * fire between Han characters, which was issue #994: the English-only gate
449
+ * silently no-op'd every Chinese prompt, so non-English users got no front-load
450
+ * nudge and no error to explain why. The sets mirror the English intent
451
+ * (如何/怎么/怎麼/どうやって/どのように/어떻게/كيف/چگونه/چطور/איך/อย่างไร/ยังไง=how,
452
+ * 在哪/哪里/哪裡/어디/أين/كجا/איפה/ที่ไหน=where, 流程/流向/流れ/흐름/تدفق/זרימה=flow,
453
+ * 路径/路徑/経路/경로/مسار/مسیر/נתיב/เส้นทาง=path,
454
+ * 调用/調用/呼び出/호출/يستدعي/استدعاء/فراخوان/קורא/เรียกใช้=call,
455
+ * 依赖/依賴/依存/의존/يعتمد/تعتمد/وابسته/תלוי/ขึ้นอยู่กับ=depend,
456
+ * 影响/影響/영향/يؤثر/تأثير/تأثیر/משפיע/ผลกระทบ=impact/affect,
457
+ * 实现/實現/実装/구현=implement,
458
+ * 架构/架構/アーキテクチャ/아키텍처/معماري/معماری/ארכיטקטור/สถาปัตยกรรม=architecture,
459
+ * 结构/結構/構造/구조/بنية/هيكل/ساختار/מבנה/โครงสร้าง=structure,
460
+ * 追踪/跟踪/追蹤/追跡/トレース/추적/تتبع/ติดตาม=trace,
461
+ * يعمل/تعمل/ทำงาน=works) plus structural-overview words with no single clean
462
+ * English equivalent (介绍/介紹/解析/分析/原理/机制/機制/仕組み/説明/설명/動作/동작/작동/
463
+ * اشرح/شرح/توضیح/הסבר/อธิบาย=explain).
464
+ *
465
+ * KNOWN, ACCEPTED false-positive class (#1140): substring matching cannot see
466
+ * homograph compounds — Korean 구조 (structure) also fires inside 구조대
467
+ * (rescue squad). Verified unfixable at this layer: ICU word segmentation
468
+ * (Intl.Segmenter) returns 구조대 and the particle form 구조가 (which the gate
469
+ * MUST keep matching) as equally opaque single segments, and a 구조대 denylist
470
+ * would break 구조대로 ("according to the structure" — 구조 + the 대로
471
+ * particle), a legitimate structural prompt. The miss rate this design avoids
472
+ * (silently no-op'ing every prompt in these languages, #994) outweighs the
473
+ * occasional off-domain fire.
474
+ */
475
+ const STRUCTURAL_UNSEGMENTED = /如何|怎么|怎麼|在哪|哪里|哪裡|追踪|跟踪|追蹤|追跡|トレース|流程|流向|流れ|路径|路徑|経路|调用|調用|呼び出|依赖|依賴|依存|影响|影響|实现|實現|実装|架构|架構|アーキテクチャ|结构|結構|構造|介绍|介紹|解析|分析|原理|机制|機制|仕組み|説明|動作|どうやって|どのように|어떻게|어디|호출|흐름|경로|의존|영향|구현|구조|아키텍처|추적|동작|작동|설명|كيف|أين|اين|يستدعي|استدعاء|يعتمد|تعتمد|يؤثر|تأثير|معماري|بنية|هيكل|تدفق|مسار|تتبع|يعمل|تعمل|اشرح|شرح|چگونه|چطور|کجا|فراخوان|وابسته|تأثیر|معماری|ساختار|مسیر|توضیح|איך|איפה|קורא|תלוי|משפיע|ארכיטקטור|מבנה|זרימה|נתיב|הסבר|อย่างไร|ยังไง|ที่ไหน|เรียกใช้|ขึ้นอยู่กับ|ผลกระทบ|สถาปัตยกรรม|โครงสร้าง|เส้นทาง|ติดตาม|ทำงาน|อธิบาย/;
290
476
  /** Doc/data/asset file extensions — a `name.ext` of this kind is a file
291
477
  * reference, not a code symbol, so it must not trip the member-access signal. */
292
478
  const DOC_DATA_EXT = /\.(md|markdown|txt|rst|json|ya?ml|toml|lock|csv|tsv|log|ini|cfg|conf|env|xml|html?|png|jpe?g|gif|svg|pdf)$/i;
293
479
  /**
294
- * Does `prompt` contain an explicit structural keyword (English or CJK)? A
295
- * keyword is a strong, self-contained signal, so the front-load hook fires on it
296
- * directly — no graph check needed. (A *code-token* match, by contrast, is only
297
- * a candidate the hook verifies against the graph first; see {@link extractCodeTokens}.)
480
+ * Does `prompt` contain an explicit structural keyword? A keyword is a strong,
481
+ * self-contained signal, so the front-load hook fires on it directly — no graph
482
+ * check needed. (A *code-token* match, by contrast, is only a candidate the
483
+ * hook verifies against the graph first; see {@link extractCodeTokens}.)
484
+ * Coverage is multilingual (#994, #1126): the ~29 languages with the largest
485
+ * developer populations, across Latin, Cyrillic, Greek, CJK, Hangul, Arabic,
486
+ * Hebrew, Thai, and Devanagari scripts. Languages beyond the keyword table
487
+ * still fire through the language-agnostic code-token path.
298
488
  */
299
489
  function hasStructuralKeyword(prompt) {
300
- return !!prompt && (STRUCTURAL_EN.test(prompt) || STRUCTURAL_CJK.test(prompt));
490
+ return (!!prompt &&
491
+ (STRUCTURAL_WORDS_RE.test(prompt) || STRUCTURAL_STEMS_RE.test(prompt) || STRUCTURAL_UNSEGMENTED.test(prompt)));
301
492
  }
302
493
  /**
303
494
  * Identifier-shaped tokens in `prompt` — camelCase / PascalCase-with-inner-cap,
@@ -341,7 +532,7 @@ function extractCodeTokens(prompt) {
341
532
  /**
342
533
  * Cheap, graph-free candidate gate for the front-load hook: could `prompt` be a
343
534
  * structural / flow / impact / "where-how" question worth front-loading context
344
- * for? True on an explicit keyword (English or CJK, issue #994) OR an
535
+ * for? True on an explicit keyword in any covered language (#994, #1126) OR an
345
536
  * identifier-shaped token. A keyword is sufficient to fire on its own; a
346
537
  * token-only match is only a candidate the hook then verifies against the graph
347
538
  * (a brand name like `JavaScript` is token-shaped but isn't a symbol). Every
@@ -1 +1 @@
1
- {"version":3,"file":"directory.js","sourceRoot":"","sources":["../src/directory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"directory.js","sourceRoot":"","sources":["../src/directory.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BH,4CAqBC;AAkBD,gDAMC;AAKD,0CAEC;AAMD,sCAQC;AAyBD,sDA8BC;AAED,4DAmBC;AAmCD,gEAsBC;AAgOD,oDAKC;AAgBD,8CAkBC;AAWD,gDAEC;AAiCD,sCAwCC;AA6DD,0CAgBC;AAKD,0CAuBC;AAKD,sDA8BC;AAKD,4CA+BC;AAKD,gDAYC;AAKD,8CAgCC;AAtyBD,uCAAyB;AACzB,uCAAyB;AACzB,2CAA6B;AAE7B,mDAAmD;AACnD,MAAM,qBAAqB,GAAG,YAAY,CAAC;AAE3C,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAE7B;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,gBAAgB;IAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC;IAC9C,IAAI,CAAC,GAAG;QAAE,OAAO,qBAAqB,CAAC;IACvC,MAAM,OAAO,GACX,GAAG,KAAK,GAAG;QACX,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;QAClB,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;QACjB,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;QAClB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACvB,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,gBAAgB,GAAG,IAAI,CAAC;YACxB,oDAAoD;YACpD,OAAO,CAAC,IAAI,CACV,+CAA+C,GAAG,yBAAyB;gBACzE,sEAAsE,qBAAqB,IAAI,CAClG,CAAC;QACJ,CAAC;QACD,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACU,QAAA,aAAa,GAAG,gBAAgB,EAAE,CAAC;AAEhD;;;;;;GAMG;AACH,SAAgB,kBAAkB,CAAC,IAAY;IAC7C,OAAO,CACL,IAAI,KAAK,qBAAqB;QAC9B,IAAI,KAAK,gBAAgB,EAAE;QAC3B,IAAI,CAAC,UAAU,CAAC,qBAAqB,GAAG,GAAG,CAAC,CAC7C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,WAAmB;IACjD,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,EAAE,CAAC,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAAC,WAAmB;IAC/C,MAAM,YAAY,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IAClD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QAC7E,OAAO,KAAK,CAAC;IACf,CAAC;IACD,qDAAqD;IACrD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IACvD,OAAO,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;;;GAQG;AACH;;;;;;;;;;;;;GAaG;AACH,SAAgB,qBAAqB,CAAC,WAAmB;IACvD,MAAM,OAAO,GAAG,CAAC,CAAS,EAAU,EAAE;QACpC,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;IACH,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEtC,qEAAqE;IACrE,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3C,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IACnC,+EAA+E;IAC/E,MAAM,IAAI,GAAG,CAAC,CAAS,EAAU,EAAE,CACjC,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACtF,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAErB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACZ,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IACD,yEAAyE;IACzE,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,iCAAiC,CAAC;IAC3C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,wBAAwB,CAAC,SAAiB;IACxD,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;IAEtC,OAAO,OAAO,KAAK,IAAI,EAAE,CAAC;QACxB,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,OAAO;YAAE,MAAM,CAAC,0BAA0B;QACzD,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;IAED,qBAAqB;IACrB,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,iFAAiF;AACjF,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ;IACvE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU;IAC7E,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM;CAC5E,CAAC,CAAC;AAEH;;gDAEgD;AAChD,MAAM,wBAAwB,GAAG;IAC/B,cAAc,EAAE,qBAAqB,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY;IAC5E,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB;IAChF,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW;IAC5E,WAAW,EAAE,iBAAiB;CAC/B,CAAC;AAEF,SAAS,oBAAoB,CAAC,GAAW;IACvC,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,YAAY,CAAC,CAAS;IAC7B,OAAO,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,0BAA0B,CACxC,IAAY,EACZ,OAA4C,EAAE;IAE9C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;IAC3B,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,KAAa,EAAQ,EAAE;QAChD,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,KAAK,GAAG,QAAQ;YAAE,OAAO;QAClD,IAAI,OAAoB,CAAC;QACzB,IAAI,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO;QAAC,CAAC;QACjF,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG;gBAAE,OAAO;YAC9B,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE;gBAAE,SAAS;YAC/B,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;gBAAE,SAAS;YACzE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;gBAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAAC,SAAS;YAAC,CAAC,CAAC,wCAAwC;YACjG,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACzB,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACd,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,eAAe,GAAG,qBAAqB,CAAC,MAAM,CAAC;AACrD,MAAM,cAAc,GAAG,oBAAoB,CAAC,MAAM,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,gBAAgB,GAAG;IACvB,yEAAyE;IACzE,2EAA2E;IAC3E,gFAAgF;IAChF,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU;IACjG,0DAA0D;IAC1D,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO;IAC5C,2EAA2E;IAC3E,2EAA2E;IAC3E,sDAAsD;IACtD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa;IAC1G,qEAAqE;IACrE,4BAA4B;IAC5B,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW;IACtC,uEAAuE;IACvE,uEAAuE;IACvE,6EAA6E;IAC7E,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO;IAC/F,qDAAqD;IACrD,MAAM,EAAE,QAAQ,EAAE,aAAa;IAC/B,+DAA+D;IAC/D,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU;IACxC,uEAAuE;IACvE,8BAA8B;IAC9B,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ;IAC7B,6EAA6E;IAC7E,iDAAiD;IACjD,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa;IAC9C,iEAAiE;IACjE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO;IAC9B,6DAA6D;IAC7D,KAAK,EAAE,MAAM;IACb,oCAAoC;IACpC,QAAQ,EAAE,KAAK;IACf,+DAA+D;IAC/D,OAAO,EAAE,QAAQ,EAAE,OAAO;IAC1B,gFAAgF;IAChF,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO;IACjD,8EAA8E;IAC9E,wEAAwE;IACxE,4EAA4E;IAC5E,uEAAuE;IACvE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW;IAC3E,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU;IACvE,4EAA4E;IAC5E,cAAc;IACd,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAC1C,iDAAiD;IACjD,OAAO,EAAE,OAAO,EAAE,QAAQ;IAC1B,0EAA0E;IAC1E,kEAAkE;IAClE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;IACpC,8DAA8D;IAC9D,iCAAiC;IACjC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;CAC5D,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,gBAAgB,GAAG;IACvB,uEAAuE;IACvE,+EAA+E;IAC/E,oEAAoE;IACpE,0EAA0E;IAC1E,4EAA4E;IAC5E,gEAAgE;IAChE,2EAA2E;IAC3E,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS;IACnE,4CAA4C,cAAc,EAAE;IAC5D,oBAAoB,cAAc,EAAE;IACpC,sBAAsB,cAAc,EAAE;IACtC,wCAAwC,cAAc,EAAE;IACxD,kEAAkE;IAClE,wEAAwE;IACxE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW;IAChE,0EAA0E;IAC1E,yEAAyE;IACzE,mCAAmC;IACnC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS;IAC7F,wEAAwE;IACxE,4CAA4C;IAC5C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ;IAClD,qEAAqE;IACrE,oEAAoE;IACpE,gEAAgE;IAChE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS;IACpI,uEAAuE;IACvE,iEAAiE;IACjE,gEAAgE;IAChE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ;IACzG,kEAAkE;IAClE,2DAA2D;IAC3D,uEAAuE;IACvE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO;IACnG,oEAAoE;IACpE,sEAAsE;IACtE,sEAAsE;IACtE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM;IACrE,4EAA4E;IAC5E,kEAAkE;IAClE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ;IAC5D,uEAAuE;IACvE,wEAAwE;IACxE,uEAAuE;IACvE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO;IAC7E,gEAAgE;IAChE,uCAAuC;IACvC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS;IAC9C,8EAA8E;IAC9E,mEAAmE;IACnE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS;IACrD,iEAAiE;IACjE,2DAA2D;IAC3D,0CAA0C;IAC1C,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU;IAC9C,6EAA6E;IAC7E,4EAA4E;IAC5E,mCAAmC;IACnC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IACzE,yEAAyE;IACzE,8DAA8D;IAC9D,2EAA2E;IAC3E,mDAAmD;IACnD,gCAAgC;IAChC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU;IAC3E,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa;IAC7F,gFAAgF;IAChF,6DAA6D;IAC7D,8CAA8C;IAC9C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ;IAC7F,+DAA+D;IAC/D,2CAA2C;IAC3C,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO;IACrD,4DAA4D;IAC5D,8DAA8D;IAC9D,2CAA2C;IAC3C,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM;IAC3D,uDAAuD;IACvD,MAAM,EAAE,aAAa;CACtB,CAAC;AAEF,MAAM,mBAAmB,GAAG,IAAI,MAAM,CAAC,GAAG,eAAe,MAAM,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,cAAc,EAAE,EAAE,IAAI,CAAC,CAAC;AACrH,MAAM,mBAAmB,GAAG,IAAI,MAAM,CAAC,GAAG,eAAe,MAAM,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAEpG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,sBAAsB,GAAG,qgBAAqgB,CAAC;AAEriB;kFACkF;AAClF,MAAM,YAAY,GAAG,6GAA6G,CAAC;AAEnI;;;;;;;;;GASG;AACH,SAAgB,oBAAoB,CAAC,MAAc;IACjD,OAAO,CACL,CAAC,CAAC,MAAM;QACR,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAC9G,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAgB,iBAAiB,CAAC,MAAc;IAC9C,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,gFAAgF;IAChF,8EAA8E;IAC9E,0EAA0E;IAC1E,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACrD,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACf,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;IACD,2EAA2E;IAC3E,oFAAoF;IACpF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;IACzE,2EAA2E;IAC3E,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,yCAAyC,CAAC,EAAE,CAAC;QAC3E,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;YAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;QAAC,CAAC;IACnE,CAAC;IACD,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;AAClB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,kBAAkB,CAAC,MAAc;IAC/C,OAAO,oBAAoB,CAAC,MAAM,CAAC,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9E,CAAC;AAoBD;;;;;;;;;;;;GAYG;AACH,SAAgB,aAAa,CAAC,GAAW,EAAE,MAAc;IACvD,MAAM,IAAI,GAAkB,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IAExF,8EAA8E;IAC9E,8CAA8C;IAC9C,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,IAAI,aAAa,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QAC1F,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IAED,4EAA4E;IAC5E,sEAAsE;IACtE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7C,MAAM,IAAI,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAE,EAAE,aAAa,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAE7F,4EAA4E;IAC5E,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAC/B,IAAI,IAAI,GAA2D,IAAI,CAAC;IACxE,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5C,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,KAAK,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,KAAK,GAAG,EAAE,CAAC,CAAyB,iBAAiB;aAChF,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ;QACnG,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YACrG,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;QAChD,CAAC;IACH,CAAC;IACD,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAK,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAC3G,CAAC;IACD,uEAAuE;IACvE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACtE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,iBAAiB,GAAG;;;;;CAKzB,CAAC;AAEF,+EAA+E;AAC/E,MAAM,gBAAgB,GAAG,wBAAwB,CAAC;AAElD;;;;;;;;;GASG;AACH,SAAS,uBAAuB,CAAC,OAAe;IAC9C,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC;QAAE,OAAO,KAAK,CAAC;IACpE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC;AAClE,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,aAAqB;IAC5C,IAAI,QAAuB,CAAC;IAC5B,IAAI,CAAC;QACH,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,GAAG,IAAI,CAAC,CAAC,mDAAmD;IACtE,CAAC;IACD,0DAA0D;IAC1D,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACzE,IAAI,CAAC;QACH,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,eAAe,CAAC,WAAmB;IACjD,MAAM,YAAY,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAEvD,8DAA8D;IAC9D,mCAAmC;IACnC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,oCAAoC,WAAW,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,8CAA8C;IAC9C,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhD,wEAAwE;IACxE,+DAA+D;IAC/D,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,WAAmB;IACjD,MAAM,YAAY,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IAElD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,OAAO;IACT,CAAC;IAED,0EAA0E;IAC1E,MAAM,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IACzC,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;QAC3B,uEAAuE;QACvE,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC5B,OAAO;IACT,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;QACzB,2CAA2C;QAC3C,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC5B,OAAO;IACT,CAAC;IAED,+BAA+B;IAC/B,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,WAAmB;IACvD,MAAM,YAAY,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IAElD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS,OAAO,CAAC,GAAW,EAAE,SAAiB,EAAE;QAC/C,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;YAErE,8DAA8D;YAC9D,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC3B,SAAS;YACX,CAAC;YAED,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,YAAY,CAAC,CAAC;IACtB,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,WAAmB;IAClD,MAAM,YAAY,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IAElD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,SAAS,OAAO,CAAC,GAAW;QAC1B,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,8DAA8D;YAC9D,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC3B,SAAS;YACX,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAE5C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACpC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,YAAY,CAAC,CAAC;IACtB,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,WAAmB,EAAE,UAAkB;IACxE,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3F,MAAM,IAAI,KAAK,CAAC,8BAA8B,UAAU,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC;IAEvE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,WAAmB;IAInD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,YAAY,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IAElD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QAClD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAClC,CAAC;IAED,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QACxD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAClC,CAAC;IAED,yEAAyE;IACzE,2EAA2E;IAC3E,yEAAyE;IACzE,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACnD,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACtD,qEAAqE;QACrE,oEAAoE;QACpE,MAAM,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;IACrF,CAAC;IAED,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC1B,MAAM;KACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,107 @@
1
+ import { ExtractionResult, Language } from '../types';
2
+ /**
3
+ * CfmlExtractor - Extracts code relationships from CFML source (.cfc/.cfm).
4
+ *
5
+ * tree-sitter-cfml splits CFML into two related grammars: `cfml` (tag-based —
6
+ * `<cfcomponent>`/`<cffunction>`/HTML) and `cfscript` (modern bare-script
7
+ * `component { ... }` syntax). The `cfml` grammar's own injections.scm treats
8
+ * bare-script content as an opaque blob meant to be re-parsed by `cfscript` —
9
+ * that re-parsing only happens at the editor/highlighting layer, not in the
10
+ * raw AST, so this extractor replicates it: a file whose first real token
11
+ * isn't `<` is delegated wholesale to the cfscript grammar (the dominant
12
+ * modern style); otherwise the file is walked tag-by-tag with the cfml
13
+ * grammar, delegating any `<cfscript>` tag bodies the same way.
14
+ */
15
+ export declare class CfmlExtractor {
16
+ private filePath;
17
+ private source;
18
+ private language;
19
+ private nodes;
20
+ private edges;
21
+ private unresolvedReferences;
22
+ private errors;
23
+ /** `language` is the file's detected language — `'cfml'` for `.cfc`/`.cfm`, `'cfscript'` for `.cfs`. Both dialect-switch internally; this only controls the language tag stamped onto emitted nodes/refs. */
24
+ constructor(filePath: string, source: string, language?: Language);
25
+ extract(): ExtractionResult;
26
+ /** Modern bare-script `.cfc`/`.cfm`: delegate the whole file to the cfscript grammar. */
27
+ private extractBareScript;
28
+ /** Legacy tag-based CFML: walk `<cfcomponent>`/`<cffunction>`, delegating `<cfscript>` bodies. */
29
+ private extractTagBased;
30
+ /** Build the file's own `kind:'file'` node, spanning the whole source. Tag-based files need this explicitly — unlike `extractBareScript` (which delegates the whole file to `TreeSitterExtractor` and inherits its file node), `extractTagBased` walks the tree itself and has no other source of one. */
31
+ private createFileNode;
32
+ /**
33
+ * Walks `program`'s named children with a single forward cursor (not an
34
+ * index loop) — `extractComponent` consumes a variable run of FOLLOWING
35
+ * siblings as the component body (see its doc comment), so this must
36
+ * resume from whatever it last consumed rather than revisiting those same
37
+ * cffunction/cfscript siblings a second time as bogus top-level symbols.
38
+ */
39
+ private walkProgram;
40
+ /**
41
+ * `<cfcomponent extends="Base" implements="IFoo,IBar">...</cfcomponent>`.
42
+ * The grammar's implicit-end-tag scanner means component body content
43
+ * (cffunction tags, cfscript tags, etc.) appears as the open tag's FOLLOWING
44
+ * siblings in `program`, not nested children — walk forward to the matching
45
+ * cf_component_close_tag.
46
+ */
47
+ private extractComponent;
48
+ /**
49
+ * `<cffunction name="..." access="..." returntype="...">...</cffunction>`.
50
+ * `parentClassId` decides `method` vs top-level `function`; `containerId` is
51
+ * the `contains`-edge target (the class when inside one, otherwise the file
52
+ * node for a bare top-level cffunction) — kept separate so a top-level
53
+ * function still gets a containment edge without being misclassified as a
54
+ * method of the file. A method's qualifiedName is scoped under
55
+ * `parentClassName` (`TagService::save`, the same `Class::member` shape the
56
+ * generic extractor produces) so type-validated method resolution can match.
57
+ */
58
+ private extractFunctionTag;
59
+ /**
60
+ * Recursively delegates any `cf_script_tag`/`cf_query_tag` found within
61
+ * `node`'s subtree — e.g. a `<cfscript>`/`<cfquery>` nested inside
62
+ * `<cfif>`/`<cfloop>`/`<cftry>` control-flow tags, which (unlike
63
+ * `<cfcomponent>`'s body — see the implicit-end-tag note on `extractComponent`)
64
+ * ARE normal children, just possibly several levels deep, so a direct-children
65
+ * check misses them. Does not descend into a nested `cf_function_tag` — that
66
+ * has its own scope and is walked separately. `parentClassName` rides along
67
+ * so a `<cfscript>` at component scope classifies its functions as methods
68
+ * scoped under the component.
69
+ */
70
+ private delegateNestedTags;
71
+ /**
72
+ * Delegate a `<cfscript>...</cfscript>` tag body to the cfscript grammar.
73
+ * With `parentClassName` set (the block sits at component scope), functions
74
+ * declared at the script's top level are the component's methods
75
+ * (`<cfcomponent><cfscript>function configure(){}` — the standard ColdBox
76
+ * ModuleConfig shape): they're re-kinded `function` → `method`, and every
77
+ * merged symbol's qualifiedName is prefixed with the component scope
78
+ * (`configure` → `ModuleConfig::configure`) so type-validated method
79
+ * resolution can match them. Functions nested inside another function
80
+ * (closures) keep kind `function`.
81
+ */
82
+ private delegateScriptTag;
83
+ /**
84
+ * Delegate a `<cfquery>...</cfquery>` tag's SQL body to the `cfquery` grammar.
85
+ * `#hash#` expressions inside the SQL (e.g. `#getCurrentUser().getId()#` in a
86
+ * WHERE clause) are real CFML calls/references — tree-sitter-cfml's `cfquery`
87
+ * grammar parses them structurally (same `call_expression`/`member_expression`
88
+ * shape as cfscript), so without this delegation they're silently dropped as
89
+ * opaque SQL text. The grammar models no other symbols, so only call/reference
90
+ * extraction is relevant here — unlike `delegateScriptTag`, there are no nodes
91
+ * or contains-edges to merge.
92
+ */
93
+ private delegateQueryTag;
94
+ /** Read a `cf_attribute`'s value by name from a tag node's direct `cf_attribute`/`cf_tag_attributes` children. */
95
+ private tagAttr;
96
+ private componentNameFromPath;
97
+ }
98
+ /**
99
+ * Sniff whether CFML source is bare-script (`component { ... }`, modern style)
100
+ * vs tag-based (`<cfcomponent>`, `<cfif>`, HTML). Skips a leading UTF-8 BOM
101
+ * (endemic in CFML's Windows-editor history — 17% of ColdBox's files carry
102
+ * one; both grammars parse fine with it once routed correctly), whitespace,
103
+ * and `//`/`/* *\/` comments to find the first real token; tag-based files
104
+ * start with `<`, script-based files don't.
105
+ */
106
+ export declare function isBareScriptCfml(source: string): boolean;
107
+ //# sourceMappingURL=cfml-extractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cfml-extractor.d.ts","sourceRoot":"","sources":["../../src/extraction/cfml-extractor.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,gBAAgB,EAAwC,QAAQ,EAAE,MAAM,UAAU,CAAC;AAKxG;;;;;;;;;;;;GAYG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,oBAAoB,CAA6B;IACzD,OAAO,CAAC,MAAM,CAAyB;IAEvC,6MAA6M;gBACjM,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,QAAiB;IAMzE,OAAO,IAAI,gBAAgB;IA0B3B,yFAAyF;IACzF,OAAO,CAAC,iBAAiB;IA8BzB,kGAAkG;IAClG,OAAO,CAAC,eAAe;IAyBvB,0SAA0S;IAC1S,OAAO,CAAC,cAAc;IAoBtB;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;IAqBnB;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IA0ExB;;;;;;;;;OASG;IACH,OAAO,CAAC,kBAAkB;IAsC1B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,kBAAkB;IAgB1B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,iBAAiB;IA8DzB;;;;;;;;;OASG;IACH,OAAO,CAAC,gBAAgB;IAwBxB,kHAAkH;IAClH,OAAO,CAAC,OAAO;IA8Bf,OAAO,CAAC,qBAAqB;CAI9B;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAkBxD"}