@defai.digital/ax-cli 3.2.0 → 3.4.0

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 (239) hide show
  1. package/.ax-cli/memory.json +8 -1
  2. package/README.md +118 -2
  3. package/config/models.yaml +13 -0
  4. package/config/settings.yaml +6 -0
  5. package/dist/agent/context-manager.d.ts +5 -5
  6. package/dist/agent/context-manager.js +19 -9
  7. package/dist/agent/context-manager.js.map +1 -1
  8. package/dist/agent/dependency-resolver.js +2 -1
  9. package/dist/agent/dependency-resolver.js.map +1 -1
  10. package/dist/agent/llm-agent.d.ts +3 -2
  11. package/dist/agent/llm-agent.js +64 -58
  12. package/dist/agent/llm-agent.js.map +1 -1
  13. package/dist/agent/subagent.js +2 -1
  14. package/dist/agent/subagent.js.map +1 -1
  15. package/dist/analyzers/architecture/anti-pattern-detectors/god-object-detector.d.ts +29 -0
  16. package/dist/analyzers/architecture/anti-pattern-detectors/god-object-detector.js +103 -0
  17. package/dist/analyzers/architecture/anti-pattern-detectors/god-object-detector.js.map +1 -0
  18. package/dist/analyzers/architecture/architecture-analyzer.d.ts +58 -0
  19. package/dist/analyzers/architecture/architecture-analyzer.js +276 -0
  20. package/dist/analyzers/architecture/architecture-analyzer.js.map +1 -0
  21. package/dist/analyzers/architecture/index.d.ts +12 -0
  22. package/dist/analyzers/architecture/index.js +14 -0
  23. package/dist/analyzers/architecture/index.js.map +1 -0
  24. package/dist/analyzers/architecture/pattern-detectors/base-detector.d.ts +27 -0
  25. package/dist/analyzers/architecture/pattern-detectors/base-detector.js +31 -0
  26. package/dist/analyzers/architecture/pattern-detectors/base-detector.js.map +1 -0
  27. package/dist/analyzers/architecture/pattern-detectors/clean-architecture-detector.d.ts +11 -0
  28. package/dist/analyzers/architecture/pattern-detectors/clean-architecture-detector.js +57 -0
  29. package/dist/analyzers/architecture/pattern-detectors/clean-architecture-detector.js.map +1 -0
  30. package/dist/analyzers/architecture/pattern-detectors/mvc-detector.d.ts +11 -0
  31. package/dist/analyzers/architecture/pattern-detectors/mvc-detector.js +43 -0
  32. package/dist/analyzers/architecture/pattern-detectors/mvc-detector.js.map +1 -0
  33. package/dist/analyzers/architecture/pattern-detectors/repository-detector.d.ts +11 -0
  34. package/dist/analyzers/architecture/pattern-detectors/repository-detector.js +49 -0
  35. package/dist/analyzers/architecture/pattern-detectors/repository-detector.js.map +1 -0
  36. package/dist/analyzers/architecture/project-structure-scanner.d.ts +54 -0
  37. package/dist/analyzers/architecture/project-structure-scanner.js +200 -0
  38. package/dist/analyzers/architecture/project-structure-scanner.js.map +1 -0
  39. package/dist/analyzers/best-practices/base-rule.d.ts +45 -0
  40. package/dist/analyzers/best-practices/base-rule.js +45 -0
  41. package/dist/analyzers/best-practices/base-rule.js.map +1 -0
  42. package/dist/analyzers/best-practices/best-practice-validator.d.ts +35 -0
  43. package/dist/analyzers/best-practices/best-practice-validator.js +181 -0
  44. package/dist/analyzers/best-practices/best-practice-validator.js.map +1 -0
  45. package/dist/analyzers/best-practices/rules/index.d.ts +7 -0
  46. package/dist/analyzers/best-practices/rules/index.js +56 -0
  47. package/dist/analyzers/best-practices/rules/index.js.map +1 -0
  48. package/dist/analyzers/best-practices/rules/typescript/consistent-naming.d.ts +17 -0
  49. package/dist/analyzers/best-practices/rules/typescript/consistent-naming.js +41 -0
  50. package/dist/analyzers/best-practices/rules/typescript/consistent-naming.js.map +1 -0
  51. package/dist/analyzers/best-practices/rules/typescript/function-complexity.d.ts +27 -0
  52. package/dist/analyzers/best-practices/rules/typescript/function-complexity.js +76 -0
  53. package/dist/analyzers/best-practices/rules/typescript/function-complexity.js.map +1 -0
  54. package/dist/analyzers/best-practices/rules/typescript/index.d.ts +15 -0
  55. package/dist/analyzers/best-practices/rules/typescript/index.js +16 -0
  56. package/dist/analyzers/best-practices/rules/typescript/index.js.map +1 -0
  57. package/dist/analyzers/best-practices/rules/typescript/max-file-length.d.ts +18 -0
  58. package/dist/analyzers/best-practices/rules/typescript/max-file-length.js +25 -0
  59. package/dist/analyzers/best-practices/rules/typescript/max-file-length.js.map +1 -0
  60. package/dist/analyzers/best-practices/rules/typescript/no-any-type.d.ts +17 -0
  61. package/dist/analyzers/best-practices/rules/typescript/no-any-type.js +27 -0
  62. package/dist/analyzers/best-practices/rules/typescript/no-any-type.js.map +1 -0
  63. package/dist/analyzers/best-practices/rules/typescript/no-implicit-any.d.ts +18 -0
  64. package/dist/analyzers/best-practices/rules/typescript/no-implicit-any.js +39 -0
  65. package/dist/analyzers/best-practices/rules/typescript/no-implicit-any.js.map +1 -0
  66. package/dist/analyzers/best-practices/rules/typescript/no-magic-numbers.d.ts +17 -0
  67. package/dist/analyzers/best-practices/rules/typescript/no-magic-numbers.js +32 -0
  68. package/dist/analyzers/best-practices/rules/typescript/no-magic-numbers.js.map +1 -0
  69. package/dist/analyzers/best-practices/rules/typescript/no-unused-vars.d.ts +17 -0
  70. package/dist/analyzers/best-practices/rules/typescript/no-unused-vars.js +36 -0
  71. package/dist/analyzers/best-practices/rules/typescript/no-unused-vars.js.map +1 -0
  72. package/dist/analyzers/best-practices/rules/typescript/prefer-const.d.ts +17 -0
  73. package/dist/analyzers/best-practices/rules/typescript/prefer-const.js +33 -0
  74. package/dist/analyzers/best-practices/rules/typescript/prefer-const.js.map +1 -0
  75. package/dist/analyzers/best-practices/rules/typescript/prefer-readonly.d.ts +17 -0
  76. package/dist/analyzers/best-practices/rules/typescript/prefer-readonly.js +34 -0
  77. package/dist/analyzers/best-practices/rules/typescript/prefer-readonly.js.map +1 -0
  78. package/dist/analyzers/best-practices/rules/typescript/proper-error-handling.d.ts +17 -0
  79. package/dist/analyzers/best-practices/rules/typescript/proper-error-handling.js +27 -0
  80. package/dist/analyzers/best-practices/rules/typescript/proper-error-handling.js.map +1 -0
  81. package/dist/analyzers/best-practices/types.d.ts +86 -0
  82. package/dist/analyzers/best-practices/types.js +7 -0
  83. package/dist/analyzers/best-practices/types.js.map +1 -0
  84. package/dist/analyzers/cache/analysis-cache.d.ts +41 -0
  85. package/dist/analyzers/cache/analysis-cache.js +84 -0
  86. package/dist/analyzers/cache/analysis-cache.js.map +1 -0
  87. package/dist/analyzers/errors.d.ts +51 -0
  88. package/dist/analyzers/errors.js +79 -0
  89. package/dist/analyzers/errors.js.map +1 -0
  90. package/dist/commands/doctor.js +3 -2
  91. package/dist/commands/doctor.js.map +1 -1
  92. package/dist/commands/frontend.d.ts +9 -0
  93. package/dist/commands/frontend.js +645 -0
  94. package/dist/commands/frontend.js.map +1 -0
  95. package/dist/commands/mcp.js +652 -3
  96. package/dist/commands/mcp.js.map +1 -1
  97. package/dist/commands/models.js +2 -2
  98. package/dist/commands/models.js.map +1 -1
  99. package/dist/commands/setup.js +100 -41
  100. package/dist/commands/setup.js.map +1 -1
  101. package/dist/constants.d.ts +4 -0
  102. package/dist/constants.js +4 -0
  103. package/dist/constants.js.map +1 -1
  104. package/dist/hooks/use-enhanced-input.js +16 -3
  105. package/dist/hooks/use-enhanced-input.js.map +1 -1
  106. package/dist/hooks/use-input-handler.js +9 -4
  107. package/dist/hooks/use-input-handler.js.map +1 -1
  108. package/dist/index.js +5 -2
  109. package/dist/index.js.map +1 -1
  110. package/dist/llm/client.d.ts +1 -0
  111. package/dist/llm/tools.js +86 -0
  112. package/dist/llm/tools.js.map +1 -1
  113. package/dist/llm/types.d.ts +49 -22
  114. package/dist/llm/types.js +12 -8
  115. package/dist/llm/types.js.map +1 -1
  116. package/dist/mcp/client.d.ts +5 -0
  117. package/dist/mcp/client.js +55 -0
  118. package/dist/mcp/client.js.map +1 -1
  119. package/dist/mcp/config.d.ts +1 -1
  120. package/dist/mcp/config.js +2 -2
  121. package/dist/mcp/config.js.map +1 -1
  122. package/dist/mcp/health.d.ts +120 -0
  123. package/dist/mcp/health.js +267 -0
  124. package/dist/mcp/health.js.map +1 -0
  125. package/dist/mcp/reconnection.d.ts +93 -0
  126. package/dist/mcp/reconnection.js +216 -0
  127. package/dist/mcp/reconnection.js.map +1 -0
  128. package/dist/mcp/registry.d.ts +71 -0
  129. package/dist/mcp/registry.js +257 -0
  130. package/dist/mcp/registry.js.map +1 -0
  131. package/dist/mcp/resources.d.ts +53 -0
  132. package/dist/mcp/resources.js +135 -0
  133. package/dist/mcp/resources.js.map +1 -0
  134. package/dist/mcp/templates.d.ts +52 -0
  135. package/dist/mcp/templates.js +624 -0
  136. package/dist/mcp/templates.js.map +1 -0
  137. package/dist/mcp/validation.d.ts +25 -0
  138. package/dist/mcp/validation.js +209 -0
  139. package/dist/mcp/validation.js.map +1 -0
  140. package/dist/memory/context-generator.js +1 -2
  141. package/dist/memory/context-generator.js.map +1 -1
  142. package/dist/planner/types.d.ts +2 -2
  143. package/dist/schemas/api-schemas.d.ts +2 -1
  144. package/dist/schemas/api-schemas.js +6 -4
  145. package/dist/schemas/api-schemas.js.map +1 -1
  146. package/dist/schemas/index.d.ts +4 -4
  147. package/dist/schemas/tool-schemas.d.ts +2 -2
  148. package/dist/schemas/yaml-schemas.d.ts +15 -0
  149. package/dist/schemas/yaml-schemas.js +3 -0
  150. package/dist/schemas/yaml-schemas.js.map +1 -1
  151. package/dist/sdk/index.d.ts +138 -0
  152. package/dist/sdk/index.js +173 -0
  153. package/dist/sdk/index.js.map +1 -0
  154. package/dist/sdk/types.d.ts +53 -0
  155. package/dist/sdk/types.js +8 -0
  156. package/dist/sdk/types.js.map +1 -0
  157. package/dist/tools/analysis-tools/architecture-tool.d.ts +46 -0
  158. package/dist/tools/analysis-tools/architecture-tool.js +124 -0
  159. package/dist/tools/analysis-tools/architecture-tool.js.map +1 -0
  160. package/dist/tools/analysis-tools/validation-tool.d.ts +51 -0
  161. package/dist/tools/analysis-tools/validation-tool.js +121 -0
  162. package/dist/tools/analysis-tools/validation-tool.js.map +1 -0
  163. package/dist/tools/bash.js +25 -10
  164. package/dist/tools/bash.js.map +1 -1
  165. package/dist/tools/web-search/cache.d.ts +62 -0
  166. package/dist/tools/web-search/cache.js +105 -0
  167. package/dist/tools/web-search/cache.js.map +1 -0
  168. package/dist/tools/web-search/engines/brave.d.ts +16 -0
  169. package/dist/tools/web-search/engines/brave.js +99 -0
  170. package/dist/tools/web-search/engines/brave.js.map +1 -0
  171. package/dist/tools/web-search/engines/crates.d.ts +19 -0
  172. package/dist/tools/web-search/engines/crates.js +87 -0
  173. package/dist/tools/web-search/engines/crates.js.map +1 -0
  174. package/dist/tools/web-search/engines/npm.d.ts +18 -0
  175. package/dist/tools/web-search/engines/npm.js +86 -0
  176. package/dist/tools/web-search/engines/npm.js.map +1 -0
  177. package/dist/tools/web-search/engines/pypi.d.ts +18 -0
  178. package/dist/tools/web-search/engines/pypi.js +75 -0
  179. package/dist/tools/web-search/engines/pypi.js.map +1 -0
  180. package/dist/tools/web-search/engines/tavily.d.ts +17 -0
  181. package/dist/tools/web-search/engines/tavily.js +73 -0
  182. package/dist/tools/web-search/engines/tavily.js.map +1 -0
  183. package/dist/tools/web-search/index.d.ts +13 -0
  184. package/dist/tools/web-search/index.js +13 -0
  185. package/dist/tools/web-search/index.js.map +1 -0
  186. package/dist/tools/web-search/router.d.ts +36 -0
  187. package/dist/tools/web-search/router.js +280 -0
  188. package/dist/tools/web-search/router.js.map +1 -0
  189. package/dist/tools/web-search/types.d.ts +45 -0
  190. package/dist/tools/web-search/types.js +6 -0
  191. package/dist/tools/web-search/types.js.map +1 -0
  192. package/dist/tools/web-search/web-search-tool.d.ts +51 -0
  193. package/dist/tools/web-search/web-search-tool.js +256 -0
  194. package/dist/tools/web-search/web-search-tool.js.map +1 -0
  195. package/dist/types/analysis.d.ts +177 -0
  196. package/dist/types/analysis.js +8 -0
  197. package/dist/types/analysis.js.map +1 -0
  198. package/dist/ui/components/api-key-input.js +2 -2
  199. package/dist/ui/components/api-key-input.js.map +1 -1
  200. package/dist/ui/components/chat-history.js +14 -7
  201. package/dist/ui/components/chat-history.js.map +1 -1
  202. package/dist/ui/components/chat-input.js +12 -7
  203. package/dist/ui/components/chat-input.js.map +1 -1
  204. package/dist/ui/components/chat-interface.js +75 -54
  205. package/dist/ui/components/chat-interface.js.map +1 -1
  206. package/dist/ui/components/keyboard-hints.js +5 -4
  207. package/dist/ui/components/keyboard-hints.js.map +1 -1
  208. package/dist/ui/components/quick-actions.js +1 -0
  209. package/dist/ui/components/quick-actions.js.map +1 -1
  210. package/dist/ui/components/reasoning-display.js +14 -4
  211. package/dist/ui/components/reasoning-display.js.map +1 -1
  212. package/dist/ui/components/status-bar.d.ts +1 -0
  213. package/dist/ui/components/status-bar.js +37 -39
  214. package/dist/ui/components/status-bar.js.map +1 -1
  215. package/dist/ui/components/toast-notification.d.ts +29 -0
  216. package/dist/ui/components/toast-notification.js +17 -3
  217. package/dist/ui/components/toast-notification.js.map +1 -1
  218. package/dist/ui/components/welcome-panel.d.ts +1 -0
  219. package/dist/ui/components/welcome-panel.js +106 -4
  220. package/dist/ui/components/welcome-panel.js.map +1 -1
  221. package/dist/utils/analysis-logger.d.ts +47 -0
  222. package/dist/utils/analysis-logger.js +70 -0
  223. package/dist/utils/analysis-logger.js.map +1 -0
  224. package/dist/utils/automatosx-detector.d.ts +19 -0
  225. package/dist/utils/automatosx-detector.js +52 -0
  226. package/dist/utils/automatosx-detector.js.map +1 -0
  227. package/dist/utils/config-loader.d.ts +4 -0
  228. package/dist/utils/config-loader.js.map +1 -1
  229. package/dist/utils/confirmation-service.js +1 -1
  230. package/dist/utils/confirmation-service.js.map +1 -1
  231. package/dist/utils/init-previewer.js +26 -4
  232. package/dist/utils/init-previewer.js.map +1 -1
  233. package/dist/utils/setup-validator.js +1 -0
  234. package/dist/utils/setup-validator.js.map +1 -1
  235. package/dist/utils/text-utils.d.ts +1 -0
  236. package/dist/utils/text-utils.js +12 -0
  237. package/dist/utils/text-utils.js.map +1 -1
  238. package/package.json +19 -4
  239. package/vitest.config.ts +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/tools/web-search/router.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,OAAO,eAAe;IAClB,YAAY,CAAe;IAC3B,WAAW,CAAc;IACzB,SAAS,CAAY;IACrB,UAAU,CAAa;IACvB,YAAY,CAAe;IAEnC,gCAAgC;IACf,iBAAiB,GAAG;QACnC,OAAO;QACP,WAAW;QACX,KAAK;QACL,KAAK;QACL,OAAO;QACP,cAAc;QACd,MAAM;QACN,UAAU;QACV,QAAQ;QACR,OAAO;QACP,KAAK;QACL,SAAS;QACT,WAAW;QACX,KAAK;QACL,SAAS;QACT,SAAS;QACT,WAAW;QACX,gBAAgB;QAChB,QAAQ;QACR,YAAY;QACZ,YAAY;QACZ,QAAQ;QACR,MAAM;QACN,MAAM;QACN,IAAI;KACL,CAAC;IAEe,YAAY,GAAG;QAC9B,MAAM;QACN,SAAS;QACT,gBAAgB;QAChB,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,YAAY;QACZ,QAAQ;QACR,UAAU;QACV,OAAO;QACP,QAAQ;QACR,UAAU;KACX,CAAC;IAEe,eAAe,GAAG;QACjC,SAAS;QACT,KAAK;QACL,SAAS;QACT,QAAQ;QACR,SAAS;QACT,YAAY;QACZ,cAAc;QACd,cAAc;QACd,MAAM;QACN,MAAM;KACP,CAAC;IAEe,cAAc,GAAG;QAChC,QAAQ;QACR,KAAK;QACL,MAAM;QACN,QAAQ;QACR,OAAO;QACP,SAAS;QACT,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,YAAY;QACZ,OAAO;QACP,QAAQ;KACT,CAAC;IAEe,YAAY,GAAG;QAC9B,MAAM;QACN,OAAO;QACP,OAAO;QACP,WAAW;QACX,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;KACP,CAAC;IAEe,YAAY,GAAG;QAC9B,MAAM;QACN,QAAQ;QACR,OAAO;QACP,WAAW;QACX,QAAQ;QACR,QAAQ;QACR,cAAc;QACd,SAAS;QACT,MAAM;QACN,MAAM;QACN,SAAS;QACT,UAAU;QACV,UAAU;KACX,CAAC;IAEF;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC,CAAC,gCAAgC;QAClE,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC,CAAC,gCAAgC;QACpE,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC,CAAC,gCAAgC;IAC1E,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,KAAa;QACxB,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEtC,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,wBAAwB;QACxB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBAC3D,cAAc,EAAE,CAAC;YACnB,CAAC;YACD,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACtD,SAAS,EAAE,CAAC;YACd,CAAC;YACD,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACtD,SAAS,EAAE,CAAC;YACd,CAAC;YACD,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACzD,YAAY,EAAE,CAAC;YACjB,CAAC;YACD,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACxD,WAAW,EAAE,CAAC;YAChB,CAAC;YACD,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACtD,SAAS,EAAE,CAAC;YACd,CAAC;QACH,CAAC;QAED,2BAA2B;QAC3B,IAAI,IAAI,GAAyB,SAAS,CAAC;QAC3C,IAAI,UAAU,GAAG,GAAG,CAAC,CAAC,qBAAqB;QAC3C,IAAI,QAAQ,GAA6B,SAAS,CAAC;QAEnD,wBAAwB;QACxB,IAAI,WAAW,GAAG,CAAC,IAAI,WAAW,IAAI,SAAS,EAAE,CAAC;YAChD,QAAQ,GAAG,QAAQ,CAAC;QACtB,CAAC;aAAM,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,WAAW,EAAE,CAAC;YACpD,QAAQ,GAAG,MAAM,CAAC;QACpB,CAAC;aAAM,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YAC5B,QAAQ,GAAG,YAAY,CAAC,CAAC,yBAAyB;QACpD,CAAC;QAED,yDAAyD;QACzD,IAAI,YAAY,GAAG,CAAC,IAAI,WAAW,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YACzD,IAAI,GAAG,WAAW,CAAC,CAAC,yBAAyB;YAC7C,UAAU,GAAG,IAAI,CAAC,GAAG,CACnB,CAAC,YAAY,GAAG,WAAW,GAAG,SAAS,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,GAAG,EAC7D,GAAG,CACJ,CAAC;QACJ,CAAC;aAAM,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YACzB,IAAI,GAAG,MAAM,CAAC;YACd,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;QAC7D,CAAC;aAAM,IAAI,SAAS,GAAG,cAAc,EAAE,CAAC;YACtC,IAAI,GAAG,MAAM,CAAC;YACd,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;QAC7D,CAAC;aAAM,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YAC9B,IAAI,GAAG,WAAW,CAAC;YACnB,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;QAClE,CAAC;QAED,OAAO;YACL,IAAI;YACJ,iBAAiB,EACf,cAAc,GAAG,CAAC,IAAI,YAAY,GAAG,CAAC,IAAI,WAAW,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC;YAC5E,YAAY,EAAE,SAAS,GAAG,CAAC;YAC3B,YAAY,EAAE,SAAS,GAAG,CAAC;YAC3B,UAAU;YACV,QAAQ;SACT,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,MAAoB;QAChC,MAAM,OAAO,GAAmB,EAAE,CAAC;QAEnC,iFAAiF;QACjF,MAAM,gBAAgB,GAAG,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC;QAE7E,sCAAsC;QACtC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,WAAW,CAAC;YACjB,KAAK,MAAM;gBACT,4CAA4C;gBAC5C,IAAI,gBAAgB,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACxC,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;wBACjC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB;oBACnD,CAAC;yBAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;wBACtC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc;oBACjD,CAAC;yBAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;wBAC5C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe;oBAC/C,CAAC;gBACH,CAAC;qBAAM,IAAI,gBAAgB,EAAE,CAAC;oBAC5B,0CAA0C;oBAC1C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC/B,CAAC;gBAED,wCAAwC;gBACxC,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC;oBACpC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAClC,CAAC;gBACD,oBAAoB;gBACpB,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC3D,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACjC,CAAC;gBACD,MAAM;YAER,KAAK,MAAM;gBACT,iCAAiC;gBACjC,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;oBACnC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACjC,CAAC;gBACD,qBAAqB;gBACrB,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC5D,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAClC,CAAC;gBACD,MAAM;YAER,KAAK,SAAS,CAAC;YACf;gBACE,6CAA6C;gBAC7C,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC;oBACpC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAClC,CAAC;gBACD,oBAAoB;gBACpB,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC3D,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACjC,CAAC;gBACD,MAAM;QACV,CAAC;QAED,4EAA4E;QAC5E,wCAAwC;QACxC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,MAAM,OAAO,GAAmB,EAAE,CAAC;QAEnC,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjC,CAAC;QACD,oEAAoE;QACpE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEhC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,CAAC,uDAAuD;IACtE,CAAC;CACF"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Web Search Types
3
+ * Common interfaces and types for web search functionality
4
+ */
5
+ export interface WebSearchResult {
6
+ title: string;
7
+ url: string;
8
+ snippet: string;
9
+ source: string;
10
+ relevanceScore?: number;
11
+ publishedDate?: string;
12
+ metadata?: Record<string, any>;
13
+ }
14
+ export interface SearchOptions {
15
+ maxResults?: number;
16
+ includeAnswer?: boolean;
17
+ searchDepth?: "basic" | "advanced";
18
+ freshness?: "day" | "week" | "month" | "year";
19
+ includeDomains?: string[];
20
+ excludeDomains?: string[];
21
+ timeout?: number;
22
+ }
23
+ export interface SearchIntent {
24
+ type: "general" | "technical" | "news" | "code";
25
+ requiresTechnical: boolean;
26
+ requiresCode: boolean;
27
+ requiresNews: boolean;
28
+ confidence: number;
29
+ language?: "javascript" | "python" | "rust";
30
+ }
31
+ export interface SearchEngine {
32
+ name: string;
33
+ search(query: string, options?: SearchOptions): Promise<WebSearchResult[]>;
34
+ isAvailable(): boolean;
35
+ getQuota?(): {
36
+ remaining: number;
37
+ limit: number;
38
+ };
39
+ }
40
+ export interface SearchEngineResponse {
41
+ results: WebSearchResult[];
42
+ answer?: string;
43
+ totalResults?: number;
44
+ query: string;
45
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Web Search Types
3
+ * Common interfaces and types for web search functionality
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/tools/web-search/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Web Search Tool
3
+ * Main tool for web search functionality in AX CLI
4
+ */
5
+ import type { ToolResult } from "../../types/index.js";
6
+ import type { SearchOptions } from "./types.js";
7
+ export declare class WebSearchTool {
8
+ private router;
9
+ private cache;
10
+ private readonly DEFAULT_MAX_RESULTS;
11
+ private readonly MAX_RESULTS_LIMIT;
12
+ private readonly MAX_PARALLEL_ENGINES;
13
+ constructor();
14
+ /**
15
+ * Search the web for information
16
+ */
17
+ search(query: string, options?: SearchOptions): Promise<ToolResult>;
18
+ /**
19
+ * Sanitize search query to prevent injection attacks
20
+ */
21
+ private sanitizeQuery;
22
+ /**
23
+ * Aggregate and deduplicate results from multiple search engines
24
+ */
25
+ private aggregateResults;
26
+ /**
27
+ * Get bonus score for specific search engines
28
+ */
29
+ private getSourceBonus;
30
+ /**
31
+ * Format search results for display
32
+ */
33
+ private formatResults;
34
+ /**
35
+ * Get cache statistics (for debugging/monitoring)
36
+ */
37
+ getCacheStats(): {
38
+ keys: number;
39
+ hits: number;
40
+ misses: number;
41
+ hitRate: number;
42
+ };
43
+ /**
44
+ * Clear search cache
45
+ */
46
+ clearCache(): void;
47
+ /**
48
+ * Check if web search is available
49
+ */
50
+ isAvailable(): boolean;
51
+ }
@@ -0,0 +1,256 @@
1
+ /**
2
+ * Web Search Tool
3
+ * Main tool for web search functionality in AX CLI
4
+ */
5
+ import { WebSearchRouter } from "./router.js";
6
+ import { SearchCache } from "./cache.js";
7
+ export class WebSearchTool {
8
+ router;
9
+ cache;
10
+ DEFAULT_MAX_RESULTS = 5;
11
+ MAX_RESULTS_LIMIT = 10;
12
+ MAX_PARALLEL_ENGINES = 3; // Execute up to 3 engines in parallel
13
+ constructor() {
14
+ this.router = new WebSearchRouter();
15
+ this.cache = new SearchCache();
16
+ }
17
+ /**
18
+ * Search the web for information
19
+ */
20
+ async search(query, options) {
21
+ try {
22
+ // Validate query
23
+ if (!query || query.trim().length === 0) {
24
+ return {
25
+ success: false,
26
+ error: "Search query cannot be empty",
27
+ };
28
+ }
29
+ // Sanitize query
30
+ const sanitizedQuery = this.sanitizeQuery(query);
31
+ // Note: hasAvailableEngines() always returns true now because npm search
32
+ // is available by default (no API key required). Optional: Configure
33
+ // TAVILY_API_KEY or BRAVE_API_KEY for enhanced search capabilities.
34
+ // Check cache first
35
+ const cached = this.cache.get(sanitizedQuery);
36
+ if (cached && cached.length > 0) {
37
+ return {
38
+ success: true,
39
+ output: this.formatResults(cached, sanitizedQuery, true),
40
+ };
41
+ }
42
+ // Detect intent and select engines
43
+ const intent = this.router.detectIntent(sanitizedQuery);
44
+ const engines = this.router.selectEngines(intent);
45
+ if (engines.length === 0) {
46
+ return {
47
+ success: false,
48
+ error: "No search engine available",
49
+ };
50
+ }
51
+ // Prepare search options
52
+ const searchOptions = {
53
+ maxResults: Math.min(options?.maxResults || this.DEFAULT_MAX_RESULTS, this.MAX_RESULTS_LIMIT),
54
+ includeAnswer: options?.includeAnswer ?? true,
55
+ searchDepth: options?.searchDepth || "basic",
56
+ freshness: options?.freshness,
57
+ includeDomains: options?.includeDomains,
58
+ excludeDomains: options?.excludeDomains,
59
+ };
60
+ // Execute searches in parallel across multiple engines
61
+ const parallelCount = Math.min(engines.length, this.MAX_PARALLEL_ENGINES);
62
+ const enginesToUse = engines.slice(0, parallelCount);
63
+ // Execute all searches in parallel
64
+ const searchPromises = enginesToUse.map((engine) => engine
65
+ .search(sanitizedQuery, searchOptions)
66
+ .then((results) => ({ engine: engine.name, results, error: null }))
67
+ .catch((error) => ({
68
+ engine: engine.name,
69
+ results: [],
70
+ error: error.message,
71
+ })));
72
+ const searchResults = await Promise.all(searchPromises);
73
+ // Aggregate and deduplicate results
74
+ const results = this.aggregateResults(searchResults, searchOptions.maxResults || this.DEFAULT_MAX_RESULTS);
75
+ // Cache results (5 minute TTL)
76
+ if (results.length > 0) {
77
+ this.cache.set(sanitizedQuery, results, 300);
78
+ }
79
+ // Get list of engines that were used
80
+ const enginesUsed = searchResults
81
+ .filter((r) => r.results.length > 0)
82
+ .map((r) => r.engine);
83
+ // Format and return results
84
+ return {
85
+ success: true,
86
+ output: this.formatResults(results, sanitizedQuery, false, intent.type, enginesUsed),
87
+ };
88
+ }
89
+ catch (error) {
90
+ // Handle specific error cases
91
+ if (error.message?.includes("timeout")) {
92
+ return {
93
+ success: false,
94
+ error: "Search request timed out. Please try again.",
95
+ };
96
+ }
97
+ if (error.message?.includes("rate limit")) {
98
+ return {
99
+ success: false,
100
+ error: "Search rate limit exceeded. Please try again later.",
101
+ };
102
+ }
103
+ if (error.message?.includes("API key")) {
104
+ return {
105
+ success: false,
106
+ error: "Search API authentication failed. Please check your API keys.",
107
+ };
108
+ }
109
+ // Generic error
110
+ return {
111
+ success: false,
112
+ error: `Web search error: ${error.message}`,
113
+ };
114
+ }
115
+ }
116
+ /**
117
+ * Sanitize search query to prevent injection attacks
118
+ */
119
+ sanitizeQuery(query) {
120
+ return query
121
+ .replace(/[<>\"\']/g, "") // Remove special characters
122
+ .trim()
123
+ .slice(0, 500); // Max length
124
+ }
125
+ /**
126
+ * Aggregate and deduplicate results from multiple search engines
127
+ */
128
+ aggregateResults(searchResults, maxResults) {
129
+ const urlMap = new Map();
130
+ const scores = new Map();
131
+ // Aggregate results from all engines
132
+ for (const { engine, results } of searchResults) {
133
+ results.forEach((result, index) => {
134
+ const url = result.url;
135
+ // Calculate score based on position and source
136
+ // Earlier results and results from multiple engines get higher scores
137
+ const positionScore = maxResults - index;
138
+ const sourceBonus = this.getSourceBonus(engine);
139
+ const score = positionScore + sourceBonus;
140
+ if (!urlMap.has(url)) {
141
+ // New result
142
+ urlMap.set(url, result);
143
+ scores.set(url, score);
144
+ }
145
+ else {
146
+ // Duplicate - boost score (result appears in multiple engines)
147
+ const existingScore = scores.get(url) || 0;
148
+ scores.set(url, existingScore + score * 0.5); // 50% bonus for appearing in multiple sources
149
+ // Merge metadata if the new result has additional info
150
+ const existing = urlMap.get(url);
151
+ if (result.metadata?.answer && !existing.metadata?.answer) {
152
+ existing.metadata = {
153
+ ...existing.metadata,
154
+ answer: result.metadata.answer,
155
+ };
156
+ }
157
+ }
158
+ });
159
+ }
160
+ // Sort by score and return top results
161
+ const aggregated = Array.from(urlMap.entries())
162
+ .map(([url, result]) => ({
163
+ result,
164
+ score: scores.get(url) || 0,
165
+ }))
166
+ .sort((a, b) => b.score - a.score)
167
+ .slice(0, maxResults)
168
+ .map(({ result }) => result);
169
+ return aggregated;
170
+ }
171
+ /**
172
+ * Get bonus score for specific search engines
173
+ */
174
+ getSourceBonus(engine) {
175
+ // Prioritize certain engines based on reliability
176
+ switch (engine) {
177
+ case "tavily":
178
+ return 3; // Tavily has AI-powered relevance
179
+ case "npm":
180
+ case "pypi":
181
+ case "crates.io":
182
+ return 2; // Package registries are authoritative for packages
183
+ case "brave":
184
+ return 1; // General search engine
185
+ default:
186
+ return 0;
187
+ }
188
+ }
189
+ /**
190
+ * Format search results for display
191
+ */
192
+ formatResults(results, query, fromCache, intentType, enginesUsed) {
193
+ if (results.length === 0) {
194
+ return `No web search results found for "${query}".`;
195
+ }
196
+ let output = `Web search results for "${query}"`;
197
+ // Add cache indicator
198
+ if (fromCache) {
199
+ output += " (cached)";
200
+ }
201
+ // Add intent indicator if available
202
+ if (intentType && intentType !== "general") {
203
+ output += ` [${intentType}]`;
204
+ }
205
+ // Add engines used indicator (for parallel search)
206
+ if (enginesUsed && enginesUsed.length > 1) {
207
+ output += ` [sources: ${enginesUsed.join(", ")}]`;
208
+ }
209
+ output += ":\n\n";
210
+ // Extract AI-generated answer if available (from Tavily)
211
+ const answer = results[0]?.metadata?.answer;
212
+ if (answer && typeof answer === "string") {
213
+ output += `**Summary**: ${answer}\n\n`;
214
+ }
215
+ // Format each result
216
+ results.forEach((result, index) => {
217
+ output += `${index + 1}. **${result.title}**\n`;
218
+ output += ` URL: ${result.url}\n`;
219
+ output += ` ${result.snippet}\n`;
220
+ // Add published date if available
221
+ if (result.publishedDate) {
222
+ output += ` Published: ${result.publishedDate}\n`;
223
+ }
224
+ // Add source indicator
225
+ output += ` Source: ${result.source}\n`;
226
+ output += "\n";
227
+ });
228
+ // Add result count
229
+ if (results.length >= this.MAX_RESULTS_LIMIT) {
230
+ output += `Showing ${results.length} results (maximum). Refine your query for more specific results.\n`;
231
+ }
232
+ else {
233
+ output += `Found ${results.length} result${results.length === 1 ? "" : "s"}.\n`;
234
+ }
235
+ return output.trim();
236
+ }
237
+ /**
238
+ * Get cache statistics (for debugging/monitoring)
239
+ */
240
+ getCacheStats() {
241
+ return this.cache.getStats();
242
+ }
243
+ /**
244
+ * Clear search cache
245
+ */
246
+ clearCache() {
247
+ this.cache.clear();
248
+ }
249
+ /**
250
+ * Check if web search is available
251
+ */
252
+ isAvailable() {
253
+ return this.router.hasAvailableEngines();
254
+ }
255
+ }
256
+ //# sourceMappingURL=web-search-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-search-tool.js","sourceRoot":"","sources":["../../../src/tools/web-search/web-search-tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,OAAO,aAAa;IAChB,MAAM,CAAkB;IACxB,KAAK,CAAc;IACV,mBAAmB,GAAG,CAAC,CAAC;IACxB,iBAAiB,GAAG,EAAE,CAAC;IACvB,oBAAoB,GAAG,CAAC,CAAC,CAAC,sCAAsC;IAEjF;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,KAAa,EACb,OAAuB;QAEvB,IAAI,CAAC;YACH,iBAAiB;YACjB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,8BAA8B;iBACtC,CAAC;YACJ,CAAC;YAED,iBAAiB;YACjB,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAEjD,yEAAyE;YACzE,qEAAqE;YACrE,oEAAoE;YAEpE,oBAAoB;YACpB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC9C,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC;iBACzD,CAAC;YACJ,CAAC;YAED,mCAAmC;YACnC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;YACxD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAElD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,4BAA4B;iBACpC,CAAC;YACJ,CAAC;YAED,yBAAyB;YACzB,MAAM,aAAa,GAAkB;gBACnC,UAAU,EAAE,IAAI,CAAC,GAAG,CAClB,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC,mBAAmB,EAC/C,IAAI,CAAC,iBAAiB,CACvB;gBACD,aAAa,EAAE,OAAO,EAAE,aAAa,IAAI,IAAI;gBAC7C,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,OAAO;gBAC5C,SAAS,EAAE,OAAO,EAAE,SAAS;gBAC7B,cAAc,EAAE,OAAO,EAAE,cAAc;gBACvC,cAAc,EAAE,OAAO,EAAE,cAAc;aACxC,CAAC;YAEF,uDAAuD;YACvD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAC5B,OAAO,CAAC,MAAM,EACd,IAAI,CAAC,oBAAoB,CAC1B,CAAC;YACF,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;YAErD,mCAAmC;YACnC,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACjD,MAAM;iBACH,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC;iBACrC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;iBAClE,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACjB,MAAM,EAAE,MAAM,CAAC,IAAI;gBACnB,OAAO,EAAE,EAAE;gBACX,KAAK,EAAE,KAAK,CAAC,OAAO;aACrB,CAAC,CAAC,CACN,CAAC;YAEF,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAExD,oCAAoC;YACpC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,aAAa,CAAC,UAAU,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAE3G,+BAA+B;YAC/B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;YAC/C,CAAC;YAED,qCAAqC;YACrC,MAAM,WAAW,GAAG,aAAa;iBAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;iBACnC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAExB,4BAA4B;YAC5B,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,IAAI,CAAC,aAAa,CACxB,OAAO,EACP,cAAc,EACd,KAAK,EACL,MAAM,CAAC,IAAI,EACX,WAAW,CACZ;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,8BAA8B;YAC9B,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACvC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,6CAA6C;iBACrD,CAAC;YACJ,CAAC;YAED,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC1C,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,qDAAqD;iBAC7D,CAAC;YACJ,CAAC;YAED,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACvC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,+DAA+D;iBACvE,CAAC;YACJ,CAAC;YAED,gBAAgB;YAChB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,qBAAqB,KAAK,CAAC,OAAO,EAAE;aAC5C,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,KAAa;QACjC,OAAO,KAAK;aACT,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,4BAA4B;aACrD,IAAI,EAAE;aACN,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,aAAa;IACjC,CAAC;IAED;;OAEG;IACK,gBAAgB,CACtB,aAIE,EACF,UAAkB;QAElB,MAAM,MAAM,GAAG,IAAI,GAAG,EAA2B,CAAC;QAClD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;QAEzC,qCAAqC;QACrC,KAAK,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,aAAa,EAAE,CAAC;YAChD,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBAChC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;gBAEvB,+CAA+C;gBAC/C,sEAAsE;gBACtE,MAAM,aAAa,GAAG,UAAU,GAAG,KAAK,CAAC;gBACzC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBAChD,MAAM,KAAK,GAAG,aAAa,GAAG,WAAW,CAAC;gBAE1C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrB,aAAa;oBACb,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;oBACxB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACzB,CAAC;qBAAM,CAAC;oBACN,+DAA+D;oBAC/D,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC3C,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,8CAA8C;oBAE5F,uDAAuD;oBACvD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;oBAClC,IAAI,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;wBAC1D,QAAQ,CAAC,QAAQ,GAAG;4BAClB,GAAG,QAAQ,CAAC,QAAQ;4BACpB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;yBAC/B,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,uCAAuC;QACvC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;aAC5C,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YACvB,MAAM;YACN,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;SAC5B,CAAC,CAAC;aACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;aACjC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC;aACpB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;QAE/B,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,MAAc;QACnC,kDAAkD;QAClD,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,QAAQ;gBACX,OAAO,CAAC,CAAC,CAAC,kCAAkC;YAC9C,KAAK,KAAK,CAAC;YACX,KAAK,MAAM,CAAC;YACZ,KAAK,WAAW;gBACd,OAAO,CAAC,CAAC,CAAC,oDAAoD;YAChE,KAAK,OAAO;gBACV,OAAO,CAAC,CAAC,CAAC,wBAAwB;YACpC;gBACE,OAAO,CAAC,CAAC;QACb,CAAC;IACH,CAAC;IAED;;OAEG;IACK,aAAa,CACnB,OAA0B,EAC1B,KAAa,EACb,SAAkB,EAClB,UAAmB,EACnB,WAAsB;QAEtB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,oCAAoC,KAAK,IAAI,CAAC;QACvD,CAAC;QAED,IAAI,MAAM,GAAG,2BAA2B,KAAK,GAAG,CAAC;QAEjD,sBAAsB;QACtB,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,IAAI,WAAW,CAAC;QACxB,CAAC;QAED,oCAAoC;QACpC,IAAI,UAAU,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,UAAU,GAAG,CAAC;QAC/B,CAAC;QAED,mDAAmD;QACnD,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,cAAc,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACpD,CAAC;QAED,MAAM,IAAI,OAAO,CAAC;QAElB,yDAAyD;QACzD,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC;QAC5C,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACzC,MAAM,IAAI,gBAAgB,MAAM,MAAM,CAAC;QACzC,CAAC;QAED,qBAAqB;QACrB,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAChC,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,OAAO,MAAM,CAAC,KAAK,MAAM,CAAC;YAChD,MAAM,IAAI,WAAW,MAAM,CAAC,GAAG,IAAI,CAAC;YACpC,MAAM,IAAI,MAAM,MAAM,CAAC,OAAO,IAAI,CAAC;YAEnC,kCAAkC;YAClC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBACzB,MAAM,IAAI,iBAAiB,MAAM,CAAC,aAAa,IAAI,CAAC;YACtD,CAAC;YAED,uBAAuB;YACvB,MAAM,IAAI,cAAc,MAAM,CAAC,MAAM,IAAI,CAAC;YAE1C,MAAM,IAAI,IAAI,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,mBAAmB;QACnB,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC7C,MAAM,IAAI,WAAW,OAAO,CAAC,MAAM,oEAAoE,CAAC;QAC1G,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,SAAS,OAAO,CAAC,MAAM,UAAU,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QAClF,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,aAAa;QAMX,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;IAC3C,CAAC;CACF"}
@@ -0,0 +1,177 @@
1
+ /**
2
+ * Analysis Types
3
+ *
4
+ * Type definitions for architecture analysis and best practice validation.
5
+ * All types are immutable and follow strict type safety principles.
6
+ */
7
+ /**
8
+ * Analysis depth level
9
+ */
10
+ export type AnalysisDepth = 'quick' | 'deep';
11
+ /**
12
+ * Pattern detection confidence level (0.0 to 1.0)
13
+ */
14
+ export type ConfidenceLevel = number;
15
+ /**
16
+ * Severity levels for violations and anti-patterns
17
+ */
18
+ export type Severity = 'critical' | 'high' | 'medium' | 'low' | 'info';
19
+ /**
20
+ * Base analysis result containing common metadata
21
+ */
22
+ export interface BaseAnalysisResult {
23
+ readonly timestamp: number;
24
+ readonly durationMs: number;
25
+ readonly projectPath: string;
26
+ }
27
+ /**
28
+ * Detected architectural or design pattern
29
+ */
30
+ export interface DetectedPattern {
31
+ readonly name: string;
32
+ readonly category: 'architectural' | 'creational' | 'structural' | 'behavioral';
33
+ readonly confidence: ConfidenceLevel;
34
+ readonly locations: ReadonlyArray<string>;
35
+ readonly description: string;
36
+ readonly metadata?: Readonly<Record<string, unknown>>;
37
+ }
38
+ /**
39
+ * Detected anti-pattern or code smell
40
+ */
41
+ export interface AntiPattern {
42
+ readonly name: string;
43
+ readonly severity: Severity;
44
+ readonly locations: ReadonlyArray<string>;
45
+ readonly description: string;
46
+ readonly suggestion: string;
47
+ readonly impact: string;
48
+ readonly metadata?: Readonly<Record<string, unknown>>;
49
+ }
50
+ /**
51
+ * Architecture improvement recommendation
52
+ */
53
+ export interface ArchitectureRecommendation {
54
+ readonly title: string;
55
+ readonly priority: Severity;
56
+ readonly description: string;
57
+ readonly rationale: string;
58
+ readonly estimatedEffort: 'low' | 'medium' | 'high';
59
+ readonly benefits: ReadonlyArray<string>;
60
+ readonly tradeoffs: ReadonlyArray<string>;
61
+ readonly relatedPatterns: ReadonlyArray<string>;
62
+ }
63
+ /**
64
+ * Complete architecture analysis result
65
+ */
66
+ export interface ArchitectureAnalysis extends BaseAnalysisResult {
67
+ readonly detectedPatterns: ReadonlyArray<DetectedPattern>;
68
+ readonly antiPatterns: ReadonlyArray<AntiPattern>;
69
+ readonly recommendations: ReadonlyArray<ArchitectureRecommendation>;
70
+ readonly architectureScore: number;
71
+ readonly summary: string;
72
+ }
73
+ /**
74
+ * Position in text (line and column)
75
+ */
76
+ export interface Position {
77
+ readonly line: number;
78
+ readonly column: number;
79
+ }
80
+ /**
81
+ * Text range (start and end positions)
82
+ */
83
+ export interface TextRange {
84
+ readonly start: Position;
85
+ readonly end: Position;
86
+ }
87
+ /**
88
+ * Text edit for automated fixes
89
+ */
90
+ export interface TextEdit {
91
+ readonly range: TextRange;
92
+ readonly newText: string;
93
+ }
94
+ /**
95
+ * Automated fix for a validation violation
96
+ */
97
+ export interface ViolationFix {
98
+ readonly description: string;
99
+ readonly edits: ReadonlyArray<TextEdit>;
100
+ }
101
+ /**
102
+ * Code validation violation
103
+ */
104
+ export interface Violation {
105
+ readonly ruleId: string;
106
+ readonly severity: Severity;
107
+ readonly file: string;
108
+ readonly line: number;
109
+ readonly column: number;
110
+ readonly message: string;
111
+ readonly suggestion?: string;
112
+ readonly fix?: ViolationFix;
113
+ readonly metadata?: Readonly<Record<string, unknown>>;
114
+ }
115
+ /**
116
+ * Single file validation result
117
+ */
118
+ export interface ValidationResult extends BaseAnalysisResult {
119
+ readonly file: string;
120
+ readonly language: string;
121
+ readonly violations: ReadonlyArray<Violation>;
122
+ readonly score: number;
123
+ readonly summary: string;
124
+ }
125
+ /**
126
+ * Batch validation result for multiple files
127
+ */
128
+ export interface BatchValidationResult extends BaseAnalysisResult {
129
+ readonly files: ReadonlyArray<ValidationResult>;
130
+ readonly totalViolations: number;
131
+ readonly criticalCount: number;
132
+ readonly highCount: number;
133
+ readonly averageScore: number;
134
+ readonly summary: string;
135
+ }
136
+ /**
137
+ * File information
138
+ */
139
+ export interface FileInfo {
140
+ readonly path: string;
141
+ readonly relativePath: string;
142
+ readonly lines: number;
143
+ readonly size: number;
144
+ readonly extension: string;
145
+ }
146
+ /**
147
+ * Directory information
148
+ */
149
+ export interface DirectoryInfo {
150
+ readonly path: string;
151
+ readonly relativePath: string;
152
+ readonly fileCount: number;
153
+ readonly subdirCount: number;
154
+ }
155
+ /**
156
+ * Project structure snapshot
157
+ */
158
+ export interface ProjectStructure {
159
+ readonly rootPath: string;
160
+ readonly files: ReadonlyArray<FileInfo>;
161
+ readonly directories: ReadonlyArray<DirectoryInfo>;
162
+ readonly filesByExtension: ReadonlyMap<string, ReadonlyArray<FileInfo>>;
163
+ readonly totalLines: number;
164
+ readonly totalFiles: number;
165
+ }
166
+ /**
167
+ * Validation options
168
+ */
169
+ export interface ValidationOptions {
170
+ readonly rules?: Readonly<Record<string, {
171
+ enabled: boolean;
172
+ severity?: Severity;
173
+ options?: Readonly<Record<string, unknown>>;
174
+ }>>;
175
+ readonly language?: 'typescript' | 'javascript';
176
+ readonly fix?: boolean;
177
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Analysis Types
3
+ *
4
+ * Type definitions for architecture analysis and best practice validation.
5
+ * All types are immutable and follow strict type safety principles.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=analysis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../src/types/analysis.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -72,9 +72,9 @@ export default function ApiKeyInput({ onApiKeySet }) {
72
72
  return formatMessage(uiMessages.save_location || "Note: API key will be saved to {path}", { path: settingsPath });
73
73
  }, [uiMessages.save_location]);
74
74
  return (React.createElement(Box, { flexDirection: "column", paddingX: 2, paddingY: 1 },
75
- React.createElement(Text, { color: "yellow" }, uiMessages.title || "🔑 Grok API Key Required"),
75
+ React.createElement(Text, { color: "yellow" }, uiMessages.title || "🔑 API Key Required"),
76
76
  React.createElement(Box, { marginBottom: 1 },
77
- React.createElement(Text, { color: "gray" }, uiMessages.prompt || "Please enter your Grok API key to continue:")),
77
+ React.createElement(Text, { color: "gray" }, uiMessages.prompt || "Please enter your API key to continue:")),
78
78
  React.createElement(Box, { borderStyle: "round", borderColor: "blue", paddingX: 1, marginBottom: 1 },
79
79
  React.createElement(Text, { color: "gray" }, "\u276F "),
80
80
  React.createElement(Text, null, displayText)),
@@ -1 +1 @@
1
- {"version":3,"file":"api-key-input.js","sourceRoot":"","sources":["../../../src/ui/components/api-key-input.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-key-input.js","sourceRoot":"","sources":["../../../src/ui/components/api-key-input.tsx"],"names":[],"mappings":"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"}