codesift-mcp 0.4.0 → 0.5.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 (204) hide show
  1. package/README.md +94 -25
  2. package/dist/cli/help.d.ts.map +1 -1
  3. package/dist/cli/help.js +8 -6
  4. package/dist/cli/help.js.map +1 -1
  5. package/dist/cli/platform.d.ts.map +1 -1
  6. package/dist/cli/platform.js +12 -14
  7. package/dist/cli/platform.js.map +1 -1
  8. package/dist/cli/setup.d.ts +1 -1
  9. package/dist/cli/setup.d.ts.map +1 -1
  10. package/dist/cli/setup.js +30 -6
  11. package/dist/cli/setup.js.map +1 -1
  12. package/dist/formatters.d.ts +2 -2
  13. package/dist/formatters.d.ts.map +1 -1
  14. package/dist/formatters.js +23 -0
  15. package/dist/formatters.js.map +1 -1
  16. package/dist/instructions.d.ts +1 -1
  17. package/dist/instructions.d.ts.map +1 -1
  18. package/dist/instructions.js +21 -21
  19. package/dist/parser/extractors/php.d.ts.map +1 -1
  20. package/dist/parser/extractors/php.js +37 -29
  21. package/dist/parser/extractors/php.js.map +1 -1
  22. package/dist/parser/extractors/typescript.d.ts.map +1 -1
  23. package/dist/parser/extractors/typescript.js +43 -0
  24. package/dist/parser/extractors/typescript.js.map +1 -1
  25. package/dist/parser/parse-cache.d.ts +39 -0
  26. package/dist/parser/parse-cache.d.ts.map +1 -0
  27. package/dist/parser/parse-cache.js +87 -0
  28. package/dist/parser/parse-cache.js.map +1 -0
  29. package/dist/parser/parser-manager.d.ts +1 -1
  30. package/dist/parser/parser-manager.d.ts.map +1 -1
  31. package/dist/parser/parser-manager.js +14 -5
  32. package/dist/parser/parser-manager.js.map +1 -1
  33. package/dist/parser/stub-languages.d.ts +2 -0
  34. package/dist/parser/stub-languages.d.ts.map +1 -0
  35. package/dist/parser/stub-languages.js +5 -0
  36. package/dist/parser/stub-languages.js.map +1 -0
  37. package/dist/register-tool-loaders.d.ts +130 -0
  38. package/dist/register-tool-loaders.d.ts.map +1 -0
  39. package/dist/register-tool-loaders.js +212 -0
  40. package/dist/register-tool-loaders.js.map +1 -0
  41. package/dist/register-tools.d.ts +2 -2
  42. package/dist/register-tools.d.ts.map +1 -1
  43. package/dist/register-tools.js +355 -634
  44. package/dist/register-tools.js.map +1 -1
  45. package/dist/search/tool-ranker.d.ts +90 -0
  46. package/dist/search/tool-ranker.d.ts.map +1 -0
  47. package/dist/search/tool-ranker.js +420 -0
  48. package/dist/search/tool-ranker.js.map +1 -0
  49. package/dist/server.d.ts.map +1 -1
  50. package/dist/server.js +23 -14
  51. package/dist/server.js.map +1 -1
  52. package/dist/storage/usage-tracker.d.ts.map +1 -1
  53. package/dist/storage/usage-tracker.js +4 -1
  54. package/dist/storage/usage-tracker.js.map +1 -1
  55. package/dist/tools/astro-actions.d.ts +54 -0
  56. package/dist/tools/astro-actions.d.ts.map +1 -0
  57. package/dist/tools/astro-actions.js +561 -0
  58. package/dist/tools/astro-actions.js.map +1 -0
  59. package/dist/tools/astro-audit.d.ts +87 -0
  60. package/dist/tools/astro-audit.d.ts.map +1 -0
  61. package/dist/tools/astro-audit.js +345 -0
  62. package/dist/tools/astro-audit.js.map +1 -0
  63. package/dist/tools/astro-content-collections.d.ts +44 -0
  64. package/dist/tools/astro-content-collections.d.ts.map +1 -0
  65. package/dist/tools/astro-content-collections.js +630 -0
  66. package/dist/tools/astro-content-collections.js.map +1 -0
  67. package/dist/tools/astro-islands.d.ts +3 -1
  68. package/dist/tools/astro-islands.d.ts.map +1 -1
  69. package/dist/tools/astro-islands.js +19 -4
  70. package/dist/tools/astro-islands.js.map +1 -1
  71. package/dist/tools/astro-migration.d.ts +31 -0
  72. package/dist/tools/astro-migration.d.ts.map +1 -0
  73. package/dist/tools/astro-migration.js +378 -0
  74. package/dist/tools/astro-migration.js.map +1 -0
  75. package/dist/tools/async-correctness.d.ts +26 -0
  76. package/dist/tools/async-correctness.d.ts.map +1 -0
  77. package/dist/tools/async-correctness.js +166 -0
  78. package/dist/tools/async-correctness.js.map +1 -0
  79. package/dist/tools/django-view-security-tools.d.ts +32 -0
  80. package/dist/tools/django-view-security-tools.d.ts.map +1 -0
  81. package/dist/tools/django-view-security-tools.js +184 -0
  82. package/dist/tools/django-view-security-tools.js.map +1 -0
  83. package/dist/tools/fastapi-depends.d.ts +63 -0
  84. package/dist/tools/fastapi-depends.d.ts.map +1 -0
  85. package/dist/tools/fastapi-depends.js +191 -0
  86. package/dist/tools/fastapi-depends.js.map +1 -0
  87. package/dist/tools/hono-analyze-app.js +1 -9
  88. package/dist/tools/hono-analyze-app.js.map +1 -1
  89. package/dist/tools/hono-api-contract.d.ts.map +1 -1
  90. package/dist/tools/hono-api-contract.js +41 -9
  91. package/dist/tools/hono-api-contract.js.map +1 -1
  92. package/dist/tools/hono-context-flow.js +1 -9
  93. package/dist/tools/hono-context-flow.js.map +1 -1
  94. package/dist/tools/hono-dead-routes.d.ts.map +1 -1
  95. package/dist/tools/hono-dead-routes.js +2 -9
  96. package/dist/tools/hono-dead-routes.js.map +1 -1
  97. package/dist/tools/hono-entry-resolver.d.ts +27 -0
  98. package/dist/tools/hono-entry-resolver.d.ts.map +1 -0
  99. package/dist/tools/hono-entry-resolver.js +31 -0
  100. package/dist/tools/hono-entry-resolver.js.map +1 -0
  101. package/dist/tools/hono-inline-analyze.js +1 -9
  102. package/dist/tools/hono-inline-analyze.js.map +1 -1
  103. package/dist/tools/hono-middleware-chain.d.ts +24 -6
  104. package/dist/tools/hono-middleware-chain.d.ts.map +1 -1
  105. package/dist/tools/hono-middleware-chain.js +77 -40
  106. package/dist/tools/hono-middleware-chain.js.map +1 -1
  107. package/dist/tools/hono-modules.js +1 -9
  108. package/dist/tools/hono-modules.js.map +1 -1
  109. package/dist/tools/hono-response-types.js +1 -9
  110. package/dist/tools/hono-response-types.js.map +1 -1
  111. package/dist/tools/hono-rpc-types.js +1 -9
  112. package/dist/tools/hono-rpc-types.js.map +1 -1
  113. package/dist/tools/hono-security.d.ts +14 -4
  114. package/dist/tools/hono-security.d.ts.map +1 -1
  115. package/dist/tools/hono-security.js +185 -14
  116. package/dist/tools/hono-security.js.map +1 -1
  117. package/dist/tools/hono-visualize.js +1 -9
  118. package/dist/tools/hono-visualize.js.map +1 -1
  119. package/dist/tools/nest-ext-tools.d.ts +115 -0
  120. package/dist/tools/nest-ext-tools.d.ts.map +1 -1
  121. package/dist/tools/nest-ext-tools.js +393 -0
  122. package/dist/tools/nest-ext-tools.js.map +1 -1
  123. package/dist/tools/nest-tools.d.ts +27 -0
  124. package/dist/tools/nest-tools.d.ts.map +1 -1
  125. package/dist/tools/nest-tools.js +137 -37
  126. package/dist/tools/nest-tools.js.map +1 -1
  127. package/dist/tools/nextjs-component-readers.d.ts +101 -0
  128. package/dist/tools/nextjs-component-readers.d.ts.map +1 -0
  129. package/dist/tools/nextjs-component-readers.js +287 -0
  130. package/dist/tools/nextjs-component-readers.js.map +1 -0
  131. package/dist/tools/nextjs-component-tools.d.ts +8 -78
  132. package/dist/tools/nextjs-component-tools.d.ts.map +1 -1
  133. package/dist/tools/nextjs-component-tools.js +9 -257
  134. package/dist/tools/nextjs-component-tools.js.map +1 -1
  135. package/dist/tools/nextjs-framework-audit-tools.d.ts +24 -1
  136. package/dist/tools/nextjs-framework-audit-tools.d.ts.map +1 -1
  137. package/dist/tools/nextjs-framework-audit-tools.js +184 -1
  138. package/dist/tools/nextjs-framework-audit-tools.js.map +1 -1
  139. package/dist/tools/nextjs-route-readers.d.ts +81 -0
  140. package/dist/tools/nextjs-route-readers.d.ts.map +1 -0
  141. package/dist/tools/nextjs-route-readers.js +340 -0
  142. package/dist/tools/nextjs-route-readers.js.map +1 -0
  143. package/dist/tools/nextjs-route-tools.d.ts +7 -71
  144. package/dist/tools/nextjs-route-tools.d.ts.map +1 -1
  145. package/dist/tools/nextjs-route-tools.js +9 -327
  146. package/dist/tools/nextjs-route-tools.js.map +1 -1
  147. package/dist/tools/pattern-tools.d.ts.map +1 -1
  148. package/dist/tools/pattern-tools.js +92 -2
  149. package/dist/tools/pattern-tools.js.map +1 -1
  150. package/dist/tools/php-tools.d.ts +14 -5
  151. package/dist/tools/php-tools.d.ts.map +1 -1
  152. package/dist/tools/php-tools.js +166 -64
  153. package/dist/tools/php-tools.js.map +1 -1
  154. package/dist/tools/plan-turn-tools.d.ts +89 -0
  155. package/dist/tools/plan-turn-tools.d.ts.map +1 -0
  156. package/dist/tools/plan-turn-tools.js +508 -0
  157. package/dist/tools/plan-turn-tools.js.map +1 -0
  158. package/dist/tools/project-tools.d.ts +1 -1
  159. package/dist/tools/project-tools.js +1 -1
  160. package/dist/tools/project-tools.js.map +1 -1
  161. package/dist/tools/pydantic-models.d.ts +46 -0
  162. package/dist/tools/pydantic-models.d.ts.map +1 -0
  163. package/dist/tools/pydantic-models.js +249 -0
  164. package/dist/tools/pydantic-models.js.map +1 -0
  165. package/dist/tools/python-audit.d.ts +40 -0
  166. package/dist/tools/python-audit.d.ts.map +1 -0
  167. package/dist/tools/python-audit.js +244 -0
  168. package/dist/tools/python-audit.js.map +1 -0
  169. package/dist/tools/python-constants-tools.d.ts +44 -0
  170. package/dist/tools/python-constants-tools.d.ts.map +1 -0
  171. package/dist/tools/python-constants-tools.js +525 -0
  172. package/dist/tools/python-constants-tools.js.map +1 -0
  173. package/dist/tools/react-tools.d.ts +46 -1
  174. package/dist/tools/react-tools.d.ts.map +1 -1
  175. package/dist/tools/react-tools.js +126 -1
  176. package/dist/tools/react-tools.js.map +1 -1
  177. package/dist/tools/review-diff-tools.d.ts +5 -0
  178. package/dist/tools/review-diff-tools.d.ts.map +1 -1
  179. package/dist/tools/review-diff-tools.js +109 -3
  180. package/dist/tools/review-diff-tools.js.map +1 -1
  181. package/dist/tools/search-tools.d.ts +3 -2
  182. package/dist/tools/search-tools.d.ts.map +1 -1
  183. package/dist/tools/search-tools.js +16 -3
  184. package/dist/tools/search-tools.js.map +1 -1
  185. package/dist/tools/sql-tools.d.ts +40 -0
  186. package/dist/tools/sql-tools.d.ts.map +1 -1
  187. package/dist/tools/sql-tools.js +123 -0
  188. package/dist/tools/sql-tools.js.map +1 -1
  189. package/dist/tools/symbol-tools.d.ts.map +1 -1
  190. package/dist/tools/symbol-tools.js +7 -10
  191. package/dist/tools/symbol-tools.js.map +1 -1
  192. package/dist/tools/taint-tools.d.ts +43 -0
  193. package/dist/tools/taint-tools.d.ts.map +1 -0
  194. package/dist/tools/taint-tools.js +922 -0
  195. package/dist/tools/taint-tools.js.map +1 -0
  196. package/dist/utils/import-graph.d.ts +6 -0
  197. package/dist/utils/import-graph.d.ts.map +1 -1
  198. package/dist/utils/import-graph.js +43 -7
  199. package/dist/utils/import-graph.js.map +1 -1
  200. package/package.json +3 -3
  201. package/rules/codesift.md +51 -13
  202. package/rules/codesift.mdc +51 -13
  203. package/rules/codex.md +51 -13
  204. package/rules/gemini.md +51 -13
@@ -1 +1 @@
1
- {"version":3,"file":"php-tools.d.ts","sourceRoot":"","sources":["../../src/tools/php-tools.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,sBAAsB,CAAC,CA0DjC;AAMD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7F,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GACvD,OAAO,CAAC,oBAAoB,CAAC,CA8E/B;AAMD,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5D,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC9D;AAED,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAChC,OAAO,CAAC;IAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAmDrD;AAMD,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAChC,OAAO,CAAC;IAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CA4CxD;AAMD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAClC,OAAO,CAAC;IAAE,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAyC9D;AAMD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAaD,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GACrD,OAAO,CAAC,qBAAqB,CAAC,CAuChC;AAkBD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAClD,OAAO,CAAC;IAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CA8CzD;AAMD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7E,OAAO,CAAC;IAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAwCvD;AAMD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,IAAI,GAAG,OAAO,GAAG,SAAS,CAAC;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,OAAO,EAAE;QACP,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IACF,QAAQ,EAAE,qBAAqB,CAAC;IAChC,YAAY,EAAE,oBAAoB,CAAC;CACpC;AAID,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GACrD,OAAO,CAAC,eAAe,CAAC,CAyE1B"}
1
+ {"version":3,"file":"php-tools.d.ts","sourceRoot":"","sources":["../../src/tools/php-tools.ts"],"names":[],"mappings":"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"}
@@ -104,20 +104,35 @@ export async function analyzeActiveRecord(repo, options) {
104
104
  // Find child method symbols
105
105
  const methods = index.symbols.filter((s) => s.parent === cls.id && s.kind === "method");
106
106
  model.methods = methods.map((m) => m.name);
107
- // Extract relations from getX() methods that return hasOne/hasMany
107
+ // Extract relations from getX() methods that return hasOne/hasMany.
108
+ // Two-pass detection:
109
+ // Pass 1: find the primary `->hasOne(Target::class, ...)` or
110
+ // `->hasMany(Target::class, ...)` call.
111
+ // Pass 2: scan the rest of the source for modifiers:
112
+ // ->via('relation') (Yii2 2.0.13+ junction table via relation)
113
+ // ->viaTable('tbl', [...]) (direct junction table)
114
+ // ->inverseOf('relation') (bidirectional relation)
115
+ // The presence of `via` or `viaTable` upgrades the relation type
116
+ // to `manyMany`. `inverseOf` is decorative and doesn't change type.
108
117
  for (const m of methods) {
109
118
  if (!m.name.startsWith("get") || !m.source)
110
119
  continue;
111
120
  const relName = m.name.slice(3);
112
- const relMatch = /->(hasOne|hasMany|hasMany\(\)->viaTable)\s*\(\s*([\w\\]+)(?:::class)?/.exec(m.source);
113
- if (relMatch) {
114
- const type = relMatch[1].startsWith("hasOne") ? "hasOne" : relMatch[1].includes("viaTable") ? "manyMany" : "hasMany";
115
- model.relations.push({
116
- name: relName.charAt(0).toLowerCase() + relName.slice(1),
117
- type,
118
- target_class: relMatch[2],
119
- });
120
- }
121
+ const primaryRe = /->(hasOne|hasMany)\s*\(\s*([\w\\]+)(?:::class)?/;
122
+ const primaryMatch = primaryRe.exec(m.source);
123
+ if (!primaryMatch)
124
+ continue;
125
+ const baseType = primaryMatch[1] === "hasOne" ? "hasOne" : "hasMany";
126
+ const targetClass = primaryMatch[2];
127
+ // Scan the method source for junction-table modifiers on the same chain.
128
+ // If found, the semantic type is manyMany even though the primary call was hasMany.
129
+ const hasJunction = /->(?:via|viaTable)\s*\(/.test(m.source);
130
+ const type = hasJunction ? "manyMany" : baseType;
131
+ model.relations.push({
132
+ name: relName.charAt(0).toLowerCase() + relName.slice(1),
133
+ type,
134
+ target_class: targetClass,
135
+ });
121
136
  }
122
137
  // Extract rule validators (loose regex on rules() method source)
123
138
  const rulesMethod = methods.find((m) => m.name === "rules");
@@ -322,6 +337,18 @@ const SCALAR_FIELD_NAMES = new Set([
322
337
  "active", "position", "sort", "order", "count", "total", "amount", "price",
323
338
  "uuid", "hash", "token", "key", "url", "path", "image", "avatar",
324
339
  ]);
340
+ /**
341
+ * PHP method names that look like `get*` but are NOT ActiveRecord relation
342
+ * getters. `$item->save()` / `$item->validate()` inside a foreach is fine;
343
+ * flagging them as N+1 would be a false positive. These names are stripped
344
+ * from the `get\w+()` method-call detection before the eager-load check.
345
+ */
346
+ const METHOD_CALL_BLOCKLIST = new Set([
347
+ "save", "validate", "delete", "refresh", "load", "populate", "toArray",
348
+ "afterSave", "beforeSave", "beforeDelete", "afterDelete",
349
+ "getAttributes", "getAttribute", "getIsNewRecord", "getErrors", "getFirstError",
350
+ "getOldAttributes", "getDirtyAttributes", "getPrimaryKey", "getTableSchema",
351
+ ]);
325
352
  /**
326
353
  * Detect N+1 query patterns in Yii2/Eloquent controllers.
327
354
  *
@@ -341,6 +368,35 @@ export async function findPhpNPlusOne(repo, options) {
341
368
  const findings = [];
342
369
  const limit = options?.limit ?? 100;
343
370
  const filePattern = options?.file_pattern;
371
+ // Normalize `getProfile` → `profile` so the ->with() check matches whether
372
+ // the relation is accessed as a property or via its auto-generated getter.
373
+ const normalizeGetter = (name) => {
374
+ const bare = name.replace(/^get/, "");
375
+ return bare.length > 0 ? bare.charAt(0).toLowerCase() + bare.slice(1) : "";
376
+ };
377
+ // A finding is emitted exactly once per (foreach × relation-name) tuple so
378
+ // that chained patterns don't double-report the same relation that the
379
+ // property pattern already caught in the same loop body.
380
+ const emitFinding = (sym, foreachIdx, relation, pattern, seen) => {
381
+ if (!relation || seen.has(relation))
382
+ return findings.length >= limit;
383
+ seen.add(relation);
384
+ if (SCALAR_FIELD_NAMES.has(relation.toLowerCase()))
385
+ return findings.length >= limit;
386
+ const beforeForeach = sym.source.slice(0, foreachIdx);
387
+ const withRe = new RegExp(`\\bwith\\s*\\(\\s*['"]${relation}['"]`);
388
+ if (withRe.test(beforeForeach))
389
+ return findings.length >= limit;
390
+ const lineOffset = beforeForeach.split("\n").length - 1;
391
+ findings.push({
392
+ file: sym.file,
393
+ method: sym.name,
394
+ line: sym.start_line + lineOffset,
395
+ relation,
396
+ pattern,
397
+ });
398
+ return findings.length >= limit;
399
+ };
344
400
  for (const sym of index.symbols) {
345
401
  if (sym.kind !== "method" || !sym.file.endsWith(".php") || !sym.source)
346
402
  continue;
@@ -351,75 +407,121 @@ export async function findPhpNPlusOne(repo, options) {
351
407
  let fm;
352
408
  while ((fm = foreachRe.exec(src)) !== null) {
353
409
  const itemVar = fm[2];
354
- // Scan everything after the foreach opening for $itemVar->relation
355
- // (property access, not method call — methods are too ambiguous).
356
- const after = src.slice(fm.index);
357
- const relRe = new RegExp(`\\$${itemVar}->(\\w+)(?!\\()`, "g");
358
- const relMatch = relRe.exec(after);
359
- if (!relMatch)
360
- continue;
361
- const relation = relMatch[1];
362
- // Skip well-known scalar fields
363
- if (SCALAR_FIELD_NAMES.has(relation.toLowerCase()))
364
- continue;
365
- // Check if an earlier ->with('relation') eager-loads this relation
366
- const beforeForeach = src.slice(0, fm.index);
367
- const withRe = new RegExp(`\\bwith\\s*\\(\\s*['"]${relation}['"]`);
368
- if (withRe.test(beforeForeach))
369
- continue;
370
- const lineOffset = beforeForeach.split("\n").length - 1;
371
- findings.push({
372
- file: sym.file,
373
- method: sym.name,
374
- line: sym.start_line + lineOffset,
375
- relation,
376
- pattern: "foreach-access-without-with",
377
- });
378
- if (findings.length >= limit)
379
- return { findings, total: findings.length };
410
+ const foreachIdx = fm.index;
411
+ const after = src.slice(foreachIdx);
412
+ // Guard against double-counting: each distinct relation name reported
413
+ // once per foreach, regardless of which pattern matched first.
414
+ const seen = new Set();
415
+ // Pattern 1 — property access: $item->profile
416
+ // The negative lookahead `(?![\w(])` blocks both:
417
+ // 1) following word chars (prevents backtracking to a partial capture
418
+ // like `$item->getProfile()` matching "getProfil" as a property);
419
+ // 2) an opening paren (excludes method calls, handled by pattern 2).
420
+ const propRe = new RegExp(`\\$${itemVar}->(\\w+)(?![\\w(])`, "g");
421
+ let m;
422
+ while ((m = propRe.exec(after)) !== null) {
423
+ if (emitFinding({ file: sym.file, name: sym.name, source: src, start_line: sym.start_line }, foreachIdx, m[1], "foreach-access-without-with", seen)) {
424
+ return { findings, total: findings.length };
425
+ }
426
+ }
427
+ // Pattern 2 — getter method call: $item->getProfile()
428
+ // Normalize to bare relation name for both the dedup and the ->with() check.
429
+ const getterRe = new RegExp(`\\$${itemVar}->(get\\w+)\\s*\\(\\s*\\)`, "g");
430
+ while ((m = getterRe.exec(after)) !== null) {
431
+ const rawMethod = m[1];
432
+ if (METHOD_CALL_BLOCKLIST.has(rawMethod))
433
+ continue;
434
+ const normalized = normalizeGetter(rawMethod);
435
+ if (!normalized || METHOD_CALL_BLOCKLIST.has(normalized.toLowerCase()))
436
+ continue;
437
+ if (emitFinding({ file: sym.file, name: sym.name, source: src, start_line: sym.start_line }, foreachIdx, normalized, "foreach-getter-without-with", seen)) {
438
+ return { findings, total: findings.length };
439
+ }
440
+ }
441
+ // Pattern 3 — chained access: $item->rel->sub (the first segment is the trigger)
442
+ const chainRe = new RegExp(`\\$${itemVar}->(\\w+)->\\w`, "g");
443
+ while ((m = chainRe.exec(after)) !== null) {
444
+ if (emitFinding({ file: sym.file, name: sym.name, source: src, start_line: sym.start_line }, foreachIdx, m[1], "foreach-chained-without-with", seen)) {
445
+ return { findings, total: findings.length };
446
+ }
447
+ }
380
448
  }
381
449
  }
382
450
  return { findings, total: findings.length };
383
451
  }
384
452
  /**
385
- * Flag ActiveRecord models with too many methods, relations, or lines.
386
- * Thresholds are configurable (default 50/15/500). Uses analyzeActiveRecord
387
- * for model detection, then cross-references the class symbol for line span.
453
+ * Flag oversized PHP classes. Two scopes:
388
454
  *
389
- * Classic anti-pattern in large Yii2 apps Survey.php in Mobi2 has 175
390
- * methods, 30 relations, split across a single 3000-line file.
455
+ * - `scope: "activerecord"` (default)only models extending ActiveRecord.
456
+ * Uses `analyzeActiveRecord` for model detection and counts relations as a
457
+ * third threshold alongside methods and lines. Classic Yii2 god-model case:
458
+ * Survey.php in Mobi2 with 175 methods, 30 relations, 2291 lines.
459
+ *
460
+ * - `scope: "all"` — every PHP class in the index, regardless of base class.
461
+ * Captures service god-classes (UserService with 80 methods), component
462
+ * aggregates, and any other PHP class that outgrew its responsibility.
463
+ * `relation_count` is 0 for non-AR classes — the `min_relations` check is
464
+ * skipped so a service with 60 methods isn't hidden by a relation threshold.
465
+ *
466
+ * Thresholds default to 50/15/500 but are configurable for both scopes.
391
467
  */
392
468
  export async function findPhpGodModel(repo, options) {
393
469
  const index = await getCodeIndex(repo);
394
470
  if (!index)
395
471
  throw new Error(`Repository "${repo}" not found.`);
396
- const ar = await analyzeActiveRecord(repo);
397
472
  const minM = options?.min_methods ?? 50;
398
473
  const minR = options?.min_relations ?? 15;
399
474
  const minL = options?.min_lines ?? 500;
475
+ const scope = options?.scope ?? "activerecord";
400
476
  const models = [];
401
- for (const m of ar.models) {
402
- // Look up the class symbol by (name, kind, file) — file match keeps
403
- // duplicate class names in different paths (e.g. Survey.php + Survey copy.php)
404
- // reported independently.
405
- const classSym = index.symbols.find((s) => s.name === m.name && s.kind === "class" && s.file === m.file);
406
- const lineCount = classSym ? classSym.end_line - classSym.start_line : 0;
407
- const reasons = [];
408
- if (m.methods.length > minM)
409
- reasons.push(`methods: ${m.methods.length} > ${minM}`);
410
- if (m.relations.length > minR)
411
- reasons.push(`relations: ${m.relations.length} > ${minR}`);
412
- if (lineCount > minL)
413
- reasons.push(`lines: ${lineCount} > ${minL}`);
414
- if (reasons.length > 0) {
415
- models.push({
416
- name: m.name,
417
- file: m.file,
418
- method_count: m.methods.length,
419
- relation_count: m.relations.length,
420
- line_count: lineCount,
421
- reasons,
422
- });
477
+ if (scope === "activerecord") {
478
+ const ar = await analyzeActiveRecord(repo);
479
+ for (const m of ar.models) {
480
+ // Look up the class symbol by (name, kind, file) — file match keeps
481
+ // duplicate class names in different paths reported independently.
482
+ const classSym = index.symbols.find((s) => s.name === m.name && s.kind === "class" && s.file === m.file);
483
+ const lineCount = classSym ? classSym.end_line - classSym.start_line : 0;
484
+ const reasons = [];
485
+ if (m.methods.length > minM)
486
+ reasons.push(`methods: ${m.methods.length} > ${minM}`);
487
+ if (m.relations.length > minR)
488
+ reasons.push(`relations: ${m.relations.length} > ${minR}`);
489
+ if (lineCount > minL)
490
+ reasons.push(`lines: ${lineCount} > ${minL}`);
491
+ if (reasons.length > 0) {
492
+ models.push({
493
+ name: m.name,
494
+ file: m.file,
495
+ method_count: m.methods.length,
496
+ relation_count: m.relations.length,
497
+ line_count: lineCount,
498
+ reasons,
499
+ });
500
+ }
501
+ }
502
+ }
503
+ else {
504
+ // scope === "all" — iterate every PHP class symbol directly.
505
+ const classSyms = index.symbols.filter((s) => s.kind === "class" && s.file.endsWith(".php"));
506
+ for (const cls of classSyms) {
507
+ const methodCount = index.symbols.filter((s) => s.parent === cls.id && s.kind === "method").length;
508
+ const lineCount = cls.end_line - cls.start_line;
509
+ const reasons = [];
510
+ if (methodCount > minM)
511
+ reasons.push(`methods: ${methodCount} > ${minM}`);
512
+ if (lineCount > minL)
513
+ reasons.push(`lines: ${lineCount} > ${minL}`);
514
+ // min_relations intentionally skipped in "all" scope — not AR, no relations
515
+ if (reasons.length > 0) {
516
+ models.push({
517
+ name: cls.name,
518
+ file: cls.file,
519
+ method_count: methodCount,
520
+ relation_count: 0,
521
+ line_count: lineCount,
522
+ reasons,
523
+ });
524
+ }
423
525
  }
424
526
  }
425
527
  // Sort by severity (number of reasons desc, then methods desc)
@@ -1 +1 @@
1
- {"version":3,"file":"php-tools.js","sourceRoot":"","sources":["../../src/tools/php-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"php-tools.js","sourceRoot":"","sources":["../../src/tools/php-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * plan-turn-tools.ts — Query parser + main handler for plan/turn routing.
3
+ *
4
+ * Parser (Task 6):
5
+ * - Normalisation (lowercase, trim, 1000-char cap)
6
+ * - Multi-intent split on "and / or / ; / &&" with surrounding whitespace
7
+ * - File ref extraction (extensions: ts/tsx/js/jsx/py/go/rs/php/kt/sql)
8
+ * - Symbol ref extraction (cross-referenced against index.symbols)
9
+ * - Vague detection (short query with no domain keywords)
10
+ *
11
+ * Handler (Task 7) — `planTurn`:
12
+ * 1. Guards against missing index → returns structured error
13
+ * 2. Parses query via parseQuery
14
+ * 3. Checks negative evidence → returns STOP_AND_REPORT_GAP early
15
+ * 4. Builds ranker context (usage freq, framework tools, embeddings)
16
+ * 5. Runs rankTools per intent, merges results
17
+ * 6. Dedups against session.queries (top-3 retained)
18
+ * 7. Collects hidden tool names for reveal_required[]
19
+ * 8. Populates metadata flags (stale_index, framework_mismatch, cold_start…)
20
+ */
21
+ import { type ToolRecommendation } from "../search/tool-ranker.js";
22
+ import type { CodeIndex } from "../types.js";
23
+ export interface ParsedQuery {
24
+ original: string;
25
+ normalized: string;
26
+ truncated: boolean;
27
+ intents: string[];
28
+ file_refs: string[];
29
+ symbol_refs: string[];
30
+ is_vague: boolean;
31
+ }
32
+ export declare function parseQuery(raw: string, index: CodeIndex): ParsedQuery;
33
+ export interface SymbolRecommendation {
34
+ name: string;
35
+ file: string;
36
+ line: number;
37
+ kind: string;
38
+ score: number;
39
+ }
40
+ export interface FileRecommendation {
41
+ path: string;
42
+ score: number;
43
+ reason: string;
44
+ }
45
+ export interface GapAnalysis {
46
+ action: "STOP_AND_REPORT_GAP";
47
+ prior_query: string;
48
+ prior_result_count: number;
49
+ suggestion: string;
50
+ }
51
+ export interface PlanTurnMetadata {
52
+ intents_detected: number;
53
+ bm25_candidates: number;
54
+ embedding_available: boolean;
55
+ session_queries_seen: number;
56
+ duration_ms: number;
57
+ truncated?: boolean;
58
+ vague_query?: boolean;
59
+ stale_index?: boolean;
60
+ low_discrimination?: boolean;
61
+ framework_mismatch?: boolean;
62
+ cold_start?: boolean;
63
+ unindexed?: boolean;
64
+ }
65
+ export interface PlanTurnResult {
66
+ query: string;
67
+ truncated: boolean;
68
+ confidence: number;
69
+ tools: ToolRecommendation[];
70
+ symbols: SymbolRecommendation[];
71
+ files: FileRecommendation[];
72
+ reveal_required: string[];
73
+ already_used: string[];
74
+ gap_analysis?: GapAnalysis;
75
+ framework_context?: string;
76
+ metadata: PlanTurnMetadata;
77
+ }
78
+ /** Test-only reset of module caches. */
79
+ export declare function _resetPlanTurnCaches(): void;
80
+ export declare function planTurn(repo: string, query: string, options?: {
81
+ max_results?: number;
82
+ skip_session?: boolean;
83
+ }): Promise<PlanTurnResult>;
84
+ /**
85
+ * Format a PlanTurnResult as a human-readable markdown-style string.
86
+ * Edge-case: if no tools, injects a discover_tools fallback.
87
+ */
88
+ export declare function formatPlanTurnResult(result: PlanTurnResult): string;
89
+ //# sourceMappingURL=plan-turn-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-turn-tools.d.ts","sourceRoot":"","sources":["../../src/tools/plan-turn-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAQH,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAM7C,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;CACnB;AA4BD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,WAAW,CAwDrE;AAMD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,qBAAqB,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,gBAAgB,CAAC;CAC5B;AAwBD,wCAAwC;AACxC,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AA2JD,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,GACzD,OAAO,CAAC,cAAc,CAAC,CAuMzB;AAMD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAkFnE"}