oh-my-claude-sisyphus 3.7.4 → 3.7.6

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 (427) hide show
  1. package/commands/hud.md +3 -1
  2. package/dist/__tests__/analytics/output-estimator.test.js +18 -0
  3. package/dist/__tests__/analytics/output-estimator.test.js.map +1 -1
  4. package/dist/__tests__/analytics/token-extractor.test.js +44 -0
  5. package/dist/__tests__/analytics/token-extractor.test.js.map +1 -1
  6. package/dist/__tests__/analytics/token-tracker.test.d.ts +2 -0
  7. package/dist/__tests__/analytics/token-tracker.test.d.ts.map +1 -0
  8. package/dist/__tests__/analytics/token-tracker.test.js +189 -0
  9. package/dist/__tests__/analytics/token-tracker.test.js.map +1 -0
  10. package/dist/__tests__/hud/analytics-display.test.js +3 -8
  11. package/dist/__tests__/hud/analytics-display.test.js.map +1 -1
  12. package/dist/__tests__/hud/top-agents.test.d.ts +8 -0
  13. package/dist/__tests__/hud/top-agents.test.d.ts.map +1 -0
  14. package/dist/__tests__/hud/top-agents.test.js +157 -0
  15. package/dist/__tests__/hud/top-agents.test.js.map +1 -0
  16. package/dist/__tests__/installer.test.js +1 -1
  17. package/dist/analytics/output-estimator.d.ts.map +1 -1
  18. package/dist/analytics/output-estimator.js +5 -1
  19. package/dist/analytics/output-estimator.js.map +1 -1
  20. package/dist/analytics/token-extractor.js +2 -2
  21. package/dist/analytics/token-extractor.js.map +1 -1
  22. package/dist/cli/analytics.js +0 -0
  23. package/dist/cli/index.js +0 -0
  24. package/dist/hooks/pre-compact/index.d.ts +2 -4
  25. package/dist/hooks/pre-compact/index.d.ts.map +1 -1
  26. package/dist/hooks/pre-compact/index.js +3 -4
  27. package/dist/hooks/pre-compact/index.js.map +1 -1
  28. package/dist/hud/analytics-display.d.ts.map +1 -1
  29. package/dist/hud/analytics-display.js +0 -1
  30. package/dist/hud/analytics-display.js.map +1 -1
  31. package/dist/hud/index.js +52 -3
  32. package/dist/hud/index.js.map +1 -1
  33. package/dist/installer/index.d.ts +1 -1
  34. package/dist/installer/index.js +1 -1
  35. package/dist/tools/ast-tools.d.ts.map +1 -1
  36. package/dist/tools/ast-tools.js +39 -19
  37. package/dist/tools/ast-tools.js.map +1 -1
  38. package/dist/tools/diagnostics/__tests__/detectProjectType.test.d.ts +5 -0
  39. package/dist/tools/diagnostics/__tests__/detectProjectType.test.d.ts.map +1 -0
  40. package/dist/tools/diagnostics/__tests__/detectProjectType.test.js +42 -0
  41. package/dist/tools/diagnostics/__tests__/detectProjectType.test.js.map +1 -0
  42. package/dist/tools/diagnostics/__tests__/integration.test.d.ts +5 -0
  43. package/dist/tools/diagnostics/__tests__/integration.test.d.ts.map +1 -0
  44. package/dist/tools/diagnostics/__tests__/integration.test.js +66 -0
  45. package/dist/tools/diagnostics/__tests__/integration.test.js.map +1 -0
  46. package/dist/tools/diagnostics/__tests__/parser-tests.d.ts +5 -0
  47. package/dist/tools/diagnostics/__tests__/parser-tests.d.ts.map +1 -0
  48. package/dist/tools/diagnostics/__tests__/parser-tests.js +86 -0
  49. package/dist/tools/diagnostics/__tests__/parser-tests.js.map +1 -0
  50. package/dist/tools/diagnostics/__tests__/parsers.test.d.ts +5 -0
  51. package/dist/tools/diagnostics/__tests__/parsers.test.d.ts.map +1 -0
  52. package/dist/tools/diagnostics/__tests__/parsers.test.js +199 -0
  53. package/dist/tools/diagnostics/__tests__/parsers.test.js.map +1 -0
  54. package/dist/tools/diagnostics/constants.d.ts +9 -0
  55. package/dist/tools/diagnostics/constants.d.ts.map +1 -0
  56. package/dist/tools/diagnostics/constants.js +9 -0
  57. package/dist/tools/diagnostics/constants.js.map +1 -0
  58. package/dist/tools/diagnostics/go-runner.d.ts +31 -0
  59. package/dist/tools/diagnostics/go-runner.d.ts.map +1 -0
  60. package/dist/tools/diagnostics/go-runner.js +78 -0
  61. package/dist/tools/diagnostics/go-runner.js.map +1 -0
  62. package/dist/tools/diagnostics/index.d.ts +32 -7
  63. package/dist/tools/diagnostics/index.d.ts.map +1 -1
  64. package/dist/tools/diagnostics/index.js +171 -41
  65. package/dist/tools/diagnostics/index.js.map +1 -1
  66. package/dist/tools/diagnostics/lsp-aggregator.d.ts +13 -1
  67. package/dist/tools/diagnostics/lsp-aggregator.d.ts.map +1 -1
  68. package/dist/tools/diagnostics/lsp-aggregator.js +32 -4
  69. package/dist/tools/diagnostics/lsp-aggregator.js.map +1 -1
  70. package/dist/tools/diagnostics/python-runner.d.ts +39 -0
  71. package/dist/tools/diagnostics/python-runner.d.ts.map +1 -0
  72. package/dist/tools/diagnostics/python-runner.js +200 -0
  73. package/dist/tools/diagnostics/python-runner.js.map +1 -0
  74. package/dist/tools/diagnostics/rust-runner.d.ts +34 -0
  75. package/dist/tools/diagnostics/rust-runner.d.ts.map +1 -0
  76. package/dist/tools/diagnostics/rust-runner.js +106 -0
  77. package/dist/tools/diagnostics/rust-runner.js.map +1 -0
  78. package/dist/tools/diagnostics/tsc-runner.d.ts +6 -0
  79. package/dist/tools/diagnostics/tsc-runner.d.ts.map +1 -1
  80. package/dist/tools/diagnostics/tsc-runner.js +32 -5
  81. package/dist/tools/diagnostics/tsc-runner.js.map +1 -1
  82. package/dist/tools/lsp/client.d.ts.map +1 -1
  83. package/dist/tools/lsp/client.js +26 -1
  84. package/dist/tools/lsp/client.js.map +1 -1
  85. package/dist/tools/lsp/servers.d.ts +3 -0
  86. package/dist/tools/lsp/servers.d.ts.map +1 -1
  87. package/dist/tools/lsp/servers.js +111 -4
  88. package/dist/tools/lsp/servers.js.map +1 -1
  89. package/dist/tools/lsp-tools.d.ts +2 -2
  90. package/dist/tools/lsp-tools.d.ts.map +1 -1
  91. package/dist/tools/lsp-tools.js +2 -2
  92. package/dist/tools/lsp-tools.js.map +1 -1
  93. package/package.json +1 -1
  94. package/skills/hud/SKILL.md +3 -1
  95. package/dist/__tests__/analytics/analytics-summary.test.d.ts +0 -2
  96. package/dist/__tests__/analytics/analytics-summary.test.d.ts.map +0 -1
  97. package/dist/__tests__/analytics/analytics-summary.test.js +0 -267
  98. package/dist/__tests__/analytics/analytics-summary.test.js.map +0 -1
  99. package/dist/__tests__/analytics/cost-estimator.test.d.ts +0 -2
  100. package/dist/__tests__/analytics/cost-estimator.test.d.ts.map +0 -1
  101. package/dist/__tests__/analytics/cost-estimator.test.js +0 -212
  102. package/dist/__tests__/analytics/cost-estimator.test.js.map +0 -1
  103. package/dist/__tests__/hooks/auto-slash-command/executor.test.d.ts +0 -7
  104. package/dist/__tests__/hooks/auto-slash-command/executor.test.d.ts.map +0 -1
  105. package/dist/__tests__/hooks/auto-slash-command/executor.test.js +0 -374
  106. package/dist/__tests__/hooks/auto-slash-command/executor.test.js.map +0 -1
  107. package/dist/__tests__/hud/auto-tracking.integration.test.d.ts +0 -2
  108. package/dist/__tests__/hud/auto-tracking.integration.test.d.ts.map +0 -1
  109. package/dist/__tests__/hud/auto-tracking.integration.test.js +0 -12
  110. package/dist/__tests__/hud/auto-tracking.integration.test.js.map +0 -1
  111. package/dist/__tests__/learned-skills/config.test.d.ts +0 -2
  112. package/dist/__tests__/learned-skills/config.test.d.ts.map +0 -1
  113. package/dist/__tests__/learned-skills/config.test.js +0 -37
  114. package/dist/__tests__/learned-skills/config.test.js.map +0 -1
  115. package/dist/__tests__/learned-skills/detector.test.d.ts +0 -2
  116. package/dist/__tests__/learned-skills/detector.test.d.ts.map +0 -1
  117. package/dist/__tests__/learned-skills/detector.test.js +0 -99
  118. package/dist/__tests__/learned-skills/detector.test.js.map +0 -1
  119. package/dist/__tests__/learned-skills/finder.test.d.ts +0 -2
  120. package/dist/__tests__/learned-skills/finder.test.d.ts.map +0 -1
  121. package/dist/__tests__/learned-skills/finder.test.js +0 -59
  122. package/dist/__tests__/learned-skills/finder.test.js.map +0 -1
  123. package/dist/__tests__/learned-skills/loader.test.d.ts +0 -2
  124. package/dist/__tests__/learned-skills/loader.test.d.ts.map +0 -1
  125. package/dist/__tests__/learned-skills/loader.test.js +0 -69
  126. package/dist/__tests__/learned-skills/loader.test.js.map +0 -1
  127. package/dist/__tests__/learned-skills/parser.test.d.ts +0 -2
  128. package/dist/__tests__/learned-skills/parser.test.d.ts.map +0 -1
  129. package/dist/__tests__/learned-skills/parser.test.js +0 -81
  130. package/dist/__tests__/learned-skills/parser.test.js.map +0 -1
  131. package/dist/__tests__/learned-skills/validator.test.d.ts +0 -2
  132. package/dist/__tests__/learned-skills/validator.test.d.ts.map +0 -1
  133. package/dist/__tests__/learned-skills/validator.test.js +0 -85
  134. package/dist/__tests__/learned-skills/validator.test.js.map +0 -1
  135. package/dist/agents/codex-agents.d.ts +0 -20
  136. package/dist/agents/codex-agents.d.ts.map +0 -1
  137. package/dist/agents/codex-agents.js +0 -36
  138. package/dist/agents/codex-agents.js.map +0 -1
  139. package/dist/agents/document-writer.d.ts +0 -11
  140. package/dist/agents/document-writer.d.ts.map +0 -1
  141. package/dist/agents/document-writer.js +0 -209
  142. package/dist/agents/document-writer.js.map +0 -1
  143. package/dist/agents/frontend-engineer.d.ts +0 -11
  144. package/dist/agents/frontend-engineer.d.ts.map +0 -1
  145. package/dist/agents/frontend-engineer.js +0 -115
  146. package/dist/agents/frontend-engineer.js.map +0 -1
  147. package/dist/agents/librarian.d.ts +0 -12
  148. package/dist/agents/librarian.d.ts.map +0 -1
  149. package/dist/agents/librarian.js +0 -103
  150. package/dist/agents/librarian.js.map +0 -1
  151. package/dist/agents/metis.d.ts +0 -12
  152. package/dist/agents/metis.d.ts.map +0 -1
  153. package/dist/agents/metis.js +0 -117
  154. package/dist/agents/metis.js.map +0 -1
  155. package/dist/agents/momus.d.ts +0 -12
  156. package/dist/agents/momus.d.ts.map +0 -1
  157. package/dist/agents/momus.js +0 -128
  158. package/dist/agents/momus.js.map +0 -1
  159. package/dist/agents/multimodal-looker.d.ts +0 -11
  160. package/dist/agents/multimodal-looker.d.ts.map +0 -1
  161. package/dist/agents/multimodal-looker.js +0 -70
  162. package/dist/agents/multimodal-looker.js.map +0 -1
  163. package/dist/agents/oracle.d.ts +0 -13
  164. package/dist/agents/oracle.d.ts.map +0 -1
  165. package/dist/agents/oracle.js +0 -191
  166. package/dist/agents/oracle.js.map +0 -1
  167. package/dist/agents/orchestrator-sisyphus.d.ts +0 -11
  168. package/dist/agents/orchestrator-sisyphus.d.ts.map +0 -1
  169. package/dist/agents/orchestrator-sisyphus.js +0 -115
  170. package/dist/agents/orchestrator-sisyphus.js.map +0 -1
  171. package/dist/agents/prometheus.d.ts +0 -12
  172. package/dist/agents/prometheus.d.ts.map +0 -1
  173. package/dist/agents/prometheus.js +0 -195
  174. package/dist/agents/prometheus.js.map +0 -1
  175. package/dist/agents/sisyphus-junior.d.ts +0 -12
  176. package/dist/agents/sisyphus-junior.d.ts.map +0 -1
  177. package/dist/agents/sisyphus-junior.js +0 -93
  178. package/dist/agents/sisyphus-junior.js.map +0 -1
  179. package/dist/cli/components/CostDashboard.d.ts +0 -15
  180. package/dist/cli/components/CostDashboard.d.ts.map +0 -1
  181. package/dist/cli/components/CostDashboard.js +0 -15
  182. package/dist/cli/components/CostDashboard.js.map +0 -1
  183. package/dist/cli/components/LiveStats.d.ts +0 -16
  184. package/dist/cli/components/LiveStats.d.ts.map +0 -1
  185. package/dist/cli/components/LiveStats.js +0 -16
  186. package/dist/cli/components/LiveStats.js.map +0 -1
  187. package/dist/cli/components/SessionBrowser.d.ts +0 -14
  188. package/dist/cli/components/SessionBrowser.d.ts.map +0 -1
  189. package/dist/cli/components/SessionBrowser.js +0 -14
  190. package/dist/cli/components/SessionBrowser.js.map +0 -1
  191. package/dist/cli/tui.d.ts +0 -21
  192. package/dist/cli/tui.d.ts.map +0 -1
  193. package/dist/cli/tui.js +0 -21
  194. package/dist/cli/tui.js.map +0 -1
  195. package/dist/hooks/autopilot/signals.d.ts +0 -20
  196. package/dist/hooks/autopilot/signals.d.ts.map +0 -1
  197. package/dist/hooks/autopilot/signals.js +0 -75
  198. package/dist/hooks/autopilot/signals.js.map +0 -1
  199. package/dist/hooks/autopilot/summary.d.ts +0 -27
  200. package/dist/hooks/autopilot/summary.d.ts.map +0 -1
  201. package/dist/hooks/autopilot/summary.js +0 -160
  202. package/dist/hooks/autopilot/summary.js.map +0 -1
  203. package/dist/hooks/autopilot/transition.d.ts +0 -39
  204. package/dist/hooks/autopilot/transition.d.ts.map +0 -1
  205. package/dist/hooks/autopilot/transition.js +0 -216
  206. package/dist/hooks/autopilot/transition.js.map +0 -1
  207. package/dist/hooks/context-window-limit-recovery/constants.d.ts +0 -28
  208. package/dist/hooks/context-window-limit-recovery/constants.d.ts.map +0 -1
  209. package/dist/hooks/context-window-limit-recovery/constants.js +0 -85
  210. package/dist/hooks/context-window-limit-recovery/constants.js.map +0 -1
  211. package/dist/hooks/context-window-limit-recovery/index.d.ts +0 -62
  212. package/dist/hooks/context-window-limit-recovery/index.d.ts.map +0 -1
  213. package/dist/hooks/context-window-limit-recovery/index.js +0 -201
  214. package/dist/hooks/context-window-limit-recovery/index.js.map +0 -1
  215. package/dist/hooks/context-window-limit-recovery/parser.d.ts +0 -31
  216. package/dist/hooks/context-window-limit-recovery/parser.d.ts.map +0 -1
  217. package/dist/hooks/context-window-limit-recovery/parser.js +0 -241
  218. package/dist/hooks/context-window-limit-recovery/parser.js.map +0 -1
  219. package/dist/hooks/context-window-limit-recovery/types.d.ts +0 -84
  220. package/dist/hooks/context-window-limit-recovery/types.d.ts.map +0 -1
  221. package/dist/hooks/context-window-limit-recovery/types.js +0 -34
  222. package/dist/hooks/context-window-limit-recovery/types.js.map +0 -1
  223. package/dist/hooks/edit-error-recovery/index.d.ts +0 -62
  224. package/dist/hooks/edit-error-recovery/index.d.ts.map +0 -1
  225. package/dist/hooks/edit-error-recovery/index.js +0 -89
  226. package/dist/hooks/edit-error-recovery/index.js.map +0 -1
  227. package/dist/hooks/github-auto-responder/classifier.d.ts +0 -43
  228. package/dist/hooks/github-auto-responder/classifier.d.ts.map +0 -1
  229. package/dist/hooks/github-auto-responder/classifier.js +0 -150
  230. package/dist/hooks/github-auto-responder/classifier.js.map +0 -1
  231. package/dist/hooks/github-auto-responder/config.d.ts +0 -109
  232. package/dist/hooks/github-auto-responder/config.d.ts.map +0 -1
  233. package/dist/hooks/github-auto-responder/config.js +0 -69
  234. package/dist/hooks/github-auto-responder/config.js.map +0 -1
  235. package/dist/hooks/github-auto-responder/constants.d.ts +0 -45
  236. package/dist/hooks/github-auto-responder/constants.d.ts.map +0 -1
  237. package/dist/hooks/github-auto-responder/constants.js +0 -60
  238. package/dist/hooks/github-auto-responder/constants.js.map +0 -1
  239. package/dist/hooks/github-auto-responder/filters.d.ts +0 -95
  240. package/dist/hooks/github-auto-responder/filters.d.ts.map +0 -1
  241. package/dist/hooks/github-auto-responder/filters.js +0 -174
  242. package/dist/hooks/github-auto-responder/filters.js.map +0 -1
  243. package/dist/hooks/github-auto-responder/github-client.d.ts +0 -65
  244. package/dist/hooks/github-auto-responder/github-client.d.ts.map +0 -1
  245. package/dist/hooks/github-auto-responder/github-client.js +0 -128
  246. package/dist/hooks/github-auto-responder/github-client.js.map +0 -1
  247. package/dist/hooks/github-auto-responder/idempotency.d.ts +0 -68
  248. package/dist/hooks/github-auto-responder/idempotency.d.ts.map +0 -1
  249. package/dist/hooks/github-auto-responder/idempotency.js +0 -147
  250. package/dist/hooks/github-auto-responder/idempotency.js.map +0 -1
  251. package/dist/hooks/github-auto-responder/index.d.ts +0 -140
  252. package/dist/hooks/github-auto-responder/index.d.ts.map +0 -1
  253. package/dist/hooks/github-auto-responder/index.js +0 -145
  254. package/dist/hooks/github-auto-responder/index.js.map +0 -1
  255. package/dist/hooks/github-auto-responder/persona.d.ts +0 -40
  256. package/dist/hooks/github-auto-responder/persona.d.ts.map +0 -1
  257. package/dist/hooks/github-auto-responder/persona.js +0 -99
  258. package/dist/hooks/github-auto-responder/persona.js.map +0 -1
  259. package/dist/hooks/github-auto-responder/responder.d.ts +0 -122
  260. package/dist/hooks/github-auto-responder/responder.d.ts.map +0 -1
  261. package/dist/hooks/github-auto-responder/responder.js +0 -264
  262. package/dist/hooks/github-auto-responder/responder.js.map +0 -1
  263. package/dist/hooks/github-auto-responder/server.d.ts +0 -140
  264. package/dist/hooks/github-auto-responder/server.d.ts.map +0 -1
  265. package/dist/hooks/github-auto-responder/server.js +0 -301
  266. package/dist/hooks/github-auto-responder/server.js.map +0 -1
  267. package/dist/hooks/github-auto-responder/signature.d.ts +0 -34
  268. package/dist/hooks/github-auto-responder/signature.d.ts.map +0 -1
  269. package/dist/hooks/github-auto-responder/signature.js +0 -79
  270. package/dist/hooks/github-auto-responder/signature.js.map +0 -1
  271. package/dist/hooks/github-auto-responder/templates.d.ts +0 -16
  272. package/dist/hooks/github-auto-responder/templates.d.ts.map +0 -1
  273. package/dist/hooks/github-auto-responder/templates.js +0 -93
  274. package/dist/hooks/github-auto-responder/templates.js.map +0 -1
  275. package/dist/hooks/github-auto-responder/types.d.ts +0 -246
  276. package/dist/hooks/github-auto-responder/types.d.ts.map +0 -1
  277. package/dist/hooks/github-auto-responder/types.js +0 -7
  278. package/dist/hooks/github-auto-responder/types.js.map +0 -1
  279. package/dist/hooks/learned-skills/config.d.ts +0 -53
  280. package/dist/hooks/learned-skills/config.d.ts.map +0 -1
  281. package/dist/hooks/learned-skills/config.js +0 -103
  282. package/dist/hooks/learned-skills/config.js.map +0 -1
  283. package/dist/hooks/learned-skills/constants.d.ts +0 -24
  284. package/dist/hooks/learned-skills/constants.d.ts.map +0 -1
  285. package/dist/hooks/learned-skills/constants.js +0 -26
  286. package/dist/hooks/learned-skills/constants.js.map +0 -1
  287. package/dist/hooks/learned-skills/detection-hook.d.ts +0 -39
  288. package/dist/hooks/learned-skills/detection-hook.d.ts.map +0 -1
  289. package/dist/hooks/learned-skills/detection-hook.js +0 -83
  290. package/dist/hooks/learned-skills/detection-hook.js.map +0 -1
  291. package/dist/hooks/learned-skills/detector.d.ts +0 -30
  292. package/dist/hooks/learned-skills/detector.d.ts.map +0 -1
  293. package/dist/hooks/learned-skills/detector.js +0 -150
  294. package/dist/hooks/learned-skills/detector.js.map +0 -1
  295. package/dist/hooks/learned-skills/finder.d.ts +0 -21
  296. package/dist/hooks/learned-skills/finder.d.ts.map +0 -1
  297. package/dist/hooks/learned-skills/finder.js +0 -117
  298. package/dist/hooks/learned-skills/finder.js.map +0 -1
  299. package/dist/hooks/learned-skills/index.d.ts +0 -62
  300. package/dist/hooks/learned-skills/index.d.ts.map +0 -1
  301. package/dist/hooks/learned-skills/index.js +0 -137
  302. package/dist/hooks/learned-skills/index.js.map +0 -1
  303. package/dist/hooks/learned-skills/loader.d.ts +0 -20
  304. package/dist/hooks/learned-skills/loader.d.ts.map +0 -1
  305. package/dist/hooks/learned-skills/loader.js +0 -107
  306. package/dist/hooks/learned-skills/loader.js.map +0 -1
  307. package/dist/hooks/learned-skills/parser.d.ts +0 -21
  308. package/dist/hooks/learned-skills/parser.d.ts.map +0 -1
  309. package/dist/hooks/learned-skills/parser.js +0 -190
  310. package/dist/hooks/learned-skills/parser.js.map +0 -1
  311. package/dist/hooks/learned-skills/promotion.d.ts +0 -29
  312. package/dist/hooks/learned-skills/promotion.d.ts.map +0 -1
  313. package/dist/hooks/learned-skills/promotion.js +0 -87
  314. package/dist/hooks/learned-skills/promotion.js.map +0 -1
  315. package/dist/hooks/learned-skills/types.d.ts +0 -109
  316. package/dist/hooks/learned-skills/types.d.ts.map +0 -1
  317. package/dist/hooks/learned-skills/types.js +0 -8
  318. package/dist/hooks/learned-skills/types.js.map +0 -1
  319. package/dist/hooks/learned-skills/validator.d.ts +0 -15
  320. package/dist/hooks/learned-skills/validator.d.ts.map +0 -1
  321. package/dist/hooks/learned-skills/validator.js +0 -87
  322. package/dist/hooks/learned-skills/validator.js.map +0 -1
  323. package/dist/hooks/learned-skills/writer.d.ts +0 -27
  324. package/dist/hooks/learned-skills/writer.d.ts.map +0 -1
  325. package/dist/hooks/learned-skills/writer.js +0 -126
  326. package/dist/hooks/learned-skills/writer.js.map +0 -1
  327. package/dist/hooks/mnemosyne/config.d.ts +0 -53
  328. package/dist/hooks/mnemosyne/config.d.ts.map +0 -1
  329. package/dist/hooks/mnemosyne/config.js +0 -103
  330. package/dist/hooks/mnemosyne/config.js.map +0 -1
  331. package/dist/hooks/mnemosyne/constants.d.ts +0 -24
  332. package/dist/hooks/mnemosyne/constants.d.ts.map +0 -1
  333. package/dist/hooks/mnemosyne/constants.js +0 -26
  334. package/dist/hooks/mnemosyne/constants.js.map +0 -1
  335. package/dist/hooks/mnemosyne/detection-hook.d.ts +0 -39
  336. package/dist/hooks/mnemosyne/detection-hook.d.ts.map +0 -1
  337. package/dist/hooks/mnemosyne/detection-hook.js +0 -83
  338. package/dist/hooks/mnemosyne/detection-hook.js.map +0 -1
  339. package/dist/hooks/mnemosyne/detector.d.ts +0 -30
  340. package/dist/hooks/mnemosyne/detector.d.ts.map +0 -1
  341. package/dist/hooks/mnemosyne/detector.js +0 -150
  342. package/dist/hooks/mnemosyne/detector.js.map +0 -1
  343. package/dist/hooks/mnemosyne/finder.d.ts +0 -21
  344. package/dist/hooks/mnemosyne/finder.d.ts.map +0 -1
  345. package/dist/hooks/mnemosyne/finder.js +0 -117
  346. package/dist/hooks/mnemosyne/finder.js.map +0 -1
  347. package/dist/hooks/mnemosyne/index.d.ts +0 -62
  348. package/dist/hooks/mnemosyne/index.d.ts.map +0 -1
  349. package/dist/hooks/mnemosyne/index.js +0 -137
  350. package/dist/hooks/mnemosyne/index.js.map +0 -1
  351. package/dist/hooks/mnemosyne/loader.d.ts +0 -20
  352. package/dist/hooks/mnemosyne/loader.d.ts.map +0 -1
  353. package/dist/hooks/mnemosyne/loader.js +0 -113
  354. package/dist/hooks/mnemosyne/loader.js.map +0 -1
  355. package/dist/hooks/mnemosyne/parser.d.ts +0 -21
  356. package/dist/hooks/mnemosyne/parser.d.ts.map +0 -1
  357. package/dist/hooks/mnemosyne/parser.js +0 -190
  358. package/dist/hooks/mnemosyne/parser.js.map +0 -1
  359. package/dist/hooks/mnemosyne/promotion.d.ts +0 -29
  360. package/dist/hooks/mnemosyne/promotion.d.ts.map +0 -1
  361. package/dist/hooks/mnemosyne/promotion.js +0 -87
  362. package/dist/hooks/mnemosyne/promotion.js.map +0 -1
  363. package/dist/hooks/mnemosyne/types.d.ts +0 -109
  364. package/dist/hooks/mnemosyne/types.d.ts.map +0 -1
  365. package/dist/hooks/mnemosyne/types.js +0 -8
  366. package/dist/hooks/mnemosyne/types.js.map +0 -1
  367. package/dist/hooks/mnemosyne/validator.d.ts +0 -15
  368. package/dist/hooks/mnemosyne/validator.d.ts.map +0 -1
  369. package/dist/hooks/mnemosyne/validator.js +0 -87
  370. package/dist/hooks/mnemosyne/validator.js.map +0 -1
  371. package/dist/hooks/mnemosyne/writer.d.ts +0 -27
  372. package/dist/hooks/mnemosyne/writer.d.ts.map +0 -1
  373. package/dist/hooks/mnemosyne/writer.js +0 -126
  374. package/dist/hooks/mnemosyne/writer.js.map +0 -1
  375. package/dist/hooks/ralph-loop/index.d.ts +0 -116
  376. package/dist/hooks/ralph-loop/index.d.ts.map +0 -1
  377. package/dist/hooks/ralph-loop/index.js +0 -322
  378. package/dist/hooks/ralph-loop/index.js.map +0 -1
  379. package/dist/hooks/ralph-prd/index.d.ts +0 -130
  380. package/dist/hooks/ralph-prd/index.d.ts.map +0 -1
  381. package/dist/hooks/ralph-prd/index.js +0 -310
  382. package/dist/hooks/ralph-prd/index.js.map +0 -1
  383. package/dist/hooks/ralph-progress/index.d.ts +0 -102
  384. package/dist/hooks/ralph-progress/index.d.ts.map +0 -1
  385. package/dist/hooks/ralph-progress/index.js +0 -408
  386. package/dist/hooks/ralph-progress/index.js.map +0 -1
  387. package/dist/hooks/ralph-verifier/index.d.ts +0 -72
  388. package/dist/hooks/ralph-verifier/index.d.ts.map +0 -1
  389. package/dist/hooks/ralph-verifier/index.js +0 -223
  390. package/dist/hooks/ralph-verifier/index.js.map +0 -1
  391. package/dist/hooks/session-recovery/constants.d.ts +0 -56
  392. package/dist/hooks/session-recovery/constants.d.ts.map +0 -1
  393. package/dist/hooks/session-recovery/constants.js +0 -78
  394. package/dist/hooks/session-recovery/constants.js.map +0 -1
  395. package/dist/hooks/session-recovery/index.d.ts +0 -53
  396. package/dist/hooks/session-recovery/index.d.ts.map +0 -1
  397. package/dist/hooks/session-recovery/index.js +0 -321
  398. package/dist/hooks/session-recovery/index.js.map +0 -1
  399. package/dist/hooks/session-recovery/storage.d.ts +0 -76
  400. package/dist/hooks/session-recovery/storage.d.ts.map +0 -1
  401. package/dist/hooks/session-recovery/storage.js +0 -383
  402. package/dist/hooks/session-recovery/storage.js.map +0 -1
  403. package/dist/hooks/session-recovery/types.d.ts +0 -145
  404. package/dist/hooks/session-recovery/types.d.ts.map +0 -1
  405. package/dist/hooks/session-recovery/types.js +0 -8
  406. package/dist/hooks/session-recovery/types.js.map +0 -1
  407. package/dist/hooks/sisyphus-orchestrator/constants.d.ts +0 -23
  408. package/dist/hooks/sisyphus-orchestrator/constants.d.ts.map +0 -1
  409. package/dist/hooks/sisyphus-orchestrator/constants.js +0 -142
  410. package/dist/hooks/sisyphus-orchestrator/constants.js.map +0 -1
  411. package/dist/hooks/sisyphus-orchestrator/index.d.ts +0 -113
  412. package/dist/hooks/sisyphus-orchestrator/index.d.ts.map +0 -1
  413. package/dist/hooks/sisyphus-orchestrator/index.js +0 -309
  414. package/dist/hooks/sisyphus-orchestrator/index.js.map +0 -1
  415. package/dist/hooks/ultraqa-loop/index.d.ts +0 -94
  416. package/dist/hooks/ultraqa-loop/index.d.ts.map +0 -1
  417. package/dist/hooks/ultraqa-loop/index.js +0 -216
  418. package/dist/hooks/ultraqa-loop/index.js.map +0 -1
  419. package/dist/hooks/ultrawork-state/index.d.ts +0 -62
  420. package/dist/hooks/ultrawork-state/index.d.ts.map +0 -1
  421. package/dist/hooks/ultrawork-state/index.js +0 -208
  422. package/dist/hooks/ultrawork-state/index.js.map +0 -1
  423. package/dist/hud/sisyphus-state.d.ts +0 -31
  424. package/dist/hud/sisyphus-state.d.ts.map +0 -1
  425. package/dist/hud/sisyphus-state.js +0 -163
  426. package/dist/hud/sisyphus-state.js.map +0 -1
  427. package/scripts/github-webhook-server.ts +0 -141
@@ -1,74 +1,60 @@
1
1
  /**
2
2
  * Directory Diagnostics - Project-level QA enforcement
3
3
  *
4
- * Provides dual strategy for checking TypeScript/JavaScript projects:
5
- * 1. Primary: tsc --noEmit (fast, comprehensive)
6
- * 2. Fallback: LSP iteration (when tsc not available)
4
+ * Provides strategy-based diagnostics for multiple languages:
5
+ * - TypeScript: tsc --noEmit
6
+ * - Go: go vet
7
+ * - Rust: cargo check
8
+ * - Python: mypy / pylint
9
+ * - Fallback: LSP iteration
7
10
  */
8
- import { existsSync } from 'fs';
11
+ import { existsSync, statSync, realpathSync } from 'fs';
9
12
  import { join } from 'path';
10
13
  import { runTscDiagnostics } from './tsc-runner.js';
11
14
  import { runLspAggregatedDiagnostics } from './lsp-aggregator.js';
15
+ import { runGoDiagnostics } from './go-runner.js';
16
+ import { runRustDiagnostics } from './rust-runner.js';
17
+ import { runPythonDiagnostics } from './python-runner.js';
12
18
  import { formatDiagnostics } from '../lsp/utils.js';
13
- export const LSP_DIAGNOSTICS_WAIT_MS = 300;
19
+ export { EXTERNAL_PROCESS_TIMEOUT_MS, LSP_DIAGNOSTICS_WAIT_MS } from './constants.js';
14
20
  /**
15
- * Run directory-level diagnostics using the best available strategy
16
- * @param directory - Project directory to check
17
- * @param strategy - Strategy to use ('tsc', 'lsp', or 'auto')
18
- * @returns Diagnostic results
19
- */
20
- export async function runDirectoryDiagnostics(directory, strategy = 'auto') {
21
- const tsconfigPath = join(directory, 'tsconfig.json');
22
- const hasTsconfig = existsSync(tsconfigPath);
23
- // Determine which strategy to use
24
- let useStrategy;
25
- if (strategy === 'auto') {
26
- useStrategy = hasTsconfig ? 'tsc' : 'lsp';
27
- }
28
- else {
29
- useStrategy = strategy;
30
- }
31
- // Run diagnostics based on strategy
32
- if (useStrategy === 'tsc' && hasTsconfig) {
33
- return formatTscResult(runTscDiagnostics(directory));
34
- }
35
- else {
36
- return formatLspResult(await runLspAggregatedDiagnostics(directory));
37
- }
38
- }
39
- /**
40
- * Format tsc results into standard format
21
+ * Format any diagnostic result into standard DirectoryDiagnosticResult
22
+ * Uses generics to accept any diagnostic type that extends BaseDiagnostic.
23
+ * The `code` property is accessed via runtime check since not all diagnostics have it.
24
+ *
25
+ * @param result - Result with diagnostics (TscResult, GoResult, RustResult, PythonResult)
26
+ * @param strategy - The strategy name
27
+ * @param toolName - Human-readable tool name for messages
41
28
  */
42
- function formatTscResult(result) {
29
+ function formatDiagnosticResult(result, strategy, toolName) {
43
30
  let diagnostics = '';
44
31
  let summary = '';
45
32
  if (result.diagnostics.length === 0) {
46
- diagnostics = 'No diagnostics found. All files are clean!';
47
- summary = 'TypeScript check passed: 0 errors, 0 warnings';
33
+ diagnostics = `No diagnostics found. ${toolName} passed!`;
34
+ summary = `${toolName} passed: 0 errors, 0 warnings`;
48
35
  }
49
36
  else {
50
- // Group diagnostics by file
51
37
  const byFile = new Map();
52
38
  for (const diag of result.diagnostics) {
53
- if (!byFile.has(diag.file)) {
39
+ if (!byFile.has(diag.file))
54
40
  byFile.set(diag.file, []);
55
- }
56
41
  byFile.get(diag.file).push(diag);
57
42
  }
58
- // Format each file's diagnostics
59
43
  const fileOutputs = [];
60
44
  for (const [file, diags] of byFile) {
61
45
  let fileOutput = `${file}:\n`;
62
46
  for (const diag of diags) {
63
- fileOutput += ` ${diag.line}:${diag.column} - ${diag.severity} ${diag.code}: ${diag.message}\n`;
47
+ // Use runtime check for 'code' since GoDiagnostic doesn't have it
48
+ const code = 'code' in diag && diag.code ? ` [${diag.code}]` : '';
49
+ fileOutput += ` ${diag.line}:${diag.column} - ${diag.severity}${code}: ${diag.message}\n`;
64
50
  }
65
51
  fileOutputs.push(fileOutput);
66
52
  }
67
53
  diagnostics = fileOutputs.join('\n');
68
- summary = `TypeScript check ${result.success ? 'passed' : 'failed'}: ${result.errorCount} errors, ${result.warningCount} warnings`;
54
+ summary = `${toolName} ${result.success ? 'passed' : 'failed'}: ${result.errorCount} errors, ${result.warningCount} warnings`;
69
55
  }
70
56
  return {
71
- strategy: 'tsc',
57
+ strategy,
72
58
  success: result.success,
73
59
  errorCount: result.errorCount,
74
60
  warningCount: result.warningCount,
@@ -76,6 +62,118 @@ function formatTscResult(result) {
76
62
  summary
77
63
  };
78
64
  }
65
+ /**
66
+ * Create a standardized skipped result
67
+ * @param summary - Reason for skipping (will be prefixed appropriately)
68
+ */
69
+ function makeSkippedResult(summary) {
70
+ return {
71
+ strategy: 'skipped',
72
+ success: true,
73
+ errorCount: 0,
74
+ warningCount: 0,
75
+ diagnostics: '',
76
+ summary
77
+ };
78
+ }
79
+ /**
80
+ * Detect project type from directory contents
81
+ *
82
+ * Priority order (first match wins):
83
+ * 1. tsconfig.json → 'typescript'
84
+ * 2. go.mod → 'go'
85
+ * 3. Cargo.toml → 'rust'
86
+ * 4. pyproject.toml / requirements.txt / setup.py → 'python'
87
+ * 5. (none) → 'unknown'
88
+ *
89
+ * Note: In monorepo scenarios with multiple project types,
90
+ * only the first match is returned. Use explicit strategy
91
+ * parameter to target a specific language.
92
+ */
93
+ function detectProjectType(directory) {
94
+ if (existsSync(join(directory, 'tsconfig.json')))
95
+ return 'typescript';
96
+ if (existsSync(join(directory, 'go.mod')))
97
+ return 'go';
98
+ if (existsSync(join(directory, 'Cargo.toml')))
99
+ return 'rust';
100
+ if (existsSync(join(directory, 'pyproject.toml')) ||
101
+ existsSync(join(directory, 'requirements.txt')) ||
102
+ existsSync(join(directory, 'setup.py')))
103
+ return 'python';
104
+ return 'unknown';
105
+ }
106
+ /**
107
+ * Run directory-level diagnostics using the best available strategy
108
+ * @param directory - Project directory to check
109
+ * @param strategy - Strategy to use ('tsc', 'go', 'rust', 'python', 'lsp', or 'auto')
110
+ * @returns Diagnostic results
111
+ */
112
+ export async function runDirectoryDiagnostics(directory, strategy = 'auto') {
113
+ // Validate directory exists
114
+ if (!existsSync(directory)) {
115
+ return makeSkippedResult(`Diagnostics skipped: directory does not exist: ${directory}`);
116
+ }
117
+ // Check if it's actually a directory (not a file)
118
+ if (!statSync(directory).isDirectory()) {
119
+ return makeSkippedResult(`Diagnostics skipped: path is not a directory: ${directory}`);
120
+ }
121
+ // Resolve symlinks to normalize the path
122
+ let resolvedDirectory;
123
+ try {
124
+ resolvedDirectory = realpathSync(directory);
125
+ }
126
+ catch {
127
+ return makeSkippedResult(`Diagnostics skipped: cannot resolve directory path: ${directory}`);
128
+ }
129
+ let useStrategy;
130
+ if (strategy === 'auto') {
131
+ const projectType = detectProjectType(resolvedDirectory);
132
+ switch (projectType) {
133
+ case 'typescript':
134
+ useStrategy = 'tsc';
135
+ break;
136
+ case 'go':
137
+ useStrategy = 'go';
138
+ break;
139
+ case 'rust':
140
+ useStrategy = 'rust';
141
+ break;
142
+ case 'python':
143
+ useStrategy = 'python';
144
+ break;
145
+ default: useStrategy = 'lsp';
146
+ }
147
+ }
148
+ else {
149
+ // Explicit strategy requested - use it directly.
150
+ // NOTE: Unlike the old behavior, explicit 'tsc' without tsconfig.json
151
+ // will NOT fall back to 'lsp'. The runner handles missing config gracefully.
152
+ useStrategy = strategy;
153
+ }
154
+ switch (useStrategy) {
155
+ case 'tsc':
156
+ return formatTscResult(runTscDiagnostics(resolvedDirectory));
157
+ case 'go':
158
+ return formatGoResult(runGoDiagnostics(resolvedDirectory));
159
+ case 'rust':
160
+ return formatRustResult(runRustDiagnostics(resolvedDirectory));
161
+ case 'python':
162
+ return formatPythonResult(runPythonDiagnostics(resolvedDirectory));
163
+ case 'lsp':
164
+ default:
165
+ return formatLspResult(await runLspAggregatedDiagnostics(resolvedDirectory));
166
+ }
167
+ }
168
+ /**
169
+ * Format tsc results into standard format
170
+ */
171
+ function formatTscResult(result) {
172
+ if (result.skipped) {
173
+ return makeSkippedResult(`TypeScript diagnostics skipped: ${result.skipped}`);
174
+ }
175
+ return formatDiagnosticResult(result, 'tsc', 'TypeScript check');
176
+ }
79
177
  /**
80
178
  * Format LSP aggregation results into standard format
81
179
  */
@@ -113,6 +211,38 @@ function formatLspResult(result) {
113
211
  summary
114
212
  };
115
213
  }
214
+ /**
215
+ * Format Go vet results into standard format
216
+ */
217
+ function formatGoResult(result) {
218
+ if (result.skipped) {
219
+ return makeSkippedResult(`Go diagnostics skipped: ${result.skipped}`);
220
+ }
221
+ return formatDiagnosticResult(result, 'go', 'Go vet');
222
+ }
223
+ /**
224
+ * Format Cargo check results into standard format
225
+ */
226
+ function formatRustResult(result) {
227
+ if (result.skipped) {
228
+ return makeSkippedResult(`Rust diagnostics skipped: ${result.skipped}`);
229
+ }
230
+ return formatDiagnosticResult(result, 'rust', 'Cargo check');
231
+ }
232
+ /**
233
+ * Format Python diagnostics results into standard format
234
+ */
235
+ function formatPythonResult(result) {
236
+ if (result.skipped) {
237
+ return makeSkippedResult(`Python diagnostics skipped: ${result.skipped}`);
238
+ }
239
+ const toolName = result.tool === 'mypy' ? 'Mypy' : result.tool === 'pylint' ? 'Pylint' : 'Python';
240
+ return formatDiagnosticResult(result, 'python', toolName);
241
+ }
116
242
  export { runTscDiagnostics } from './tsc-runner.js';
117
243
  export { runLspAggregatedDiagnostics } from './lsp-aggregator.js';
244
+ export { runGoDiagnostics } from './go-runner.js';
245
+ export { runRustDiagnostics } from './rust-runner.js';
246
+ export { runPythonDiagnostics } from './python-runner.js';
247
+ export { detectProjectType };
118
248
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/diagnostics/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/diagnostics/index.ts"],"names":[],"mappings":"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"}
@@ -16,10 +16,22 @@ export interface LspAggregationResult {
16
16
  warningCount: number;
17
17
  filesChecked: number;
18
18
  }
19
+ /**
20
+ * Get all file extensions supported by configured LSP servers.
21
+ * Cached at module level because LSP_SERVERS is a static configuration.
22
+ * Call invalidateExtensionCache() if LSP_SERVERS is ever made dynamic.
23
+ */
24
+ export declare function getAllSupportedExtensions(): string[];
25
+ /**
26
+ * Invalidate the cached extensions list.
27
+ * Call this if LSP_SERVERS is modified at runtime.
28
+ * Currently LSP_SERVERS is a static const, so this is for future-proofing.
29
+ */
30
+ export declare function invalidateExtensionCache(): void;
19
31
  /**
20
32
  * Run LSP diagnostics on all TypeScript/JavaScript files in a directory
21
33
  * @param directory - Project directory to scan
22
- * @param extensions - File extensions to check (default: ['.ts', '.tsx', '.js', '.jsx'])
34
+ * @param extensions - File extensions to check (optional, defaults to all LSP-supported extensions)
23
35
  * @returns Aggregated diagnostics from all files
24
36
  */
25
37
  export declare function runLspAggregatedDiagnostics(directory: string, extensions?: string[]): Promise<LspAggregationResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"lsp-aggregator.d.ts","sourceRoot":"","sources":["../../../src/tools/diagnostics/lsp-aggregator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGlD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,qBAAqB,EAAE,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AA6CD;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,MAAM,EACjB,UAAU,GAAE,MAAM,EAAmC,GACpD,OAAO,CAAC,oBAAoB,CAAC,CAiD/B"}
1
+ {"version":3,"file":"lsp-aggregator.d.ts","sourceRoot":"","sources":["../../../src/tools/diagnostics/lsp-aggregator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIlD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,qBAAqB,EAAE,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAID;;;;GAIG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,EAAE,CAWpD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C;AA6CD;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,oBAAoB,CAAC,CAkD/B"}
@@ -7,7 +7,34 @@
7
7
  import { readdirSync, statSync } from 'fs';
8
8
  import { join, extname } from 'path';
9
9
  import { lspClientManager } from '../lsp/index.js';
10
- import { LSP_DIAGNOSTICS_WAIT_MS } from './index.js';
10
+ import { LSP_DIAGNOSTICS_WAIT_MS } from './constants.js';
11
+ import { LSP_SERVERS } from '../lsp/servers.js';
12
+ let _cachedExtensions = null;
13
+ /**
14
+ * Get all file extensions supported by configured LSP servers.
15
+ * Cached at module level because LSP_SERVERS is a static configuration.
16
+ * Call invalidateExtensionCache() if LSP_SERVERS is ever made dynamic.
17
+ */
18
+ export function getAllSupportedExtensions() {
19
+ if (_cachedExtensions)
20
+ return _cachedExtensions;
21
+ const extensions = new Set();
22
+ for (const config of Object.values(LSP_SERVERS)) {
23
+ for (const ext of config.extensions) {
24
+ extensions.add(ext);
25
+ }
26
+ }
27
+ _cachedExtensions = Array.from(extensions);
28
+ return _cachedExtensions;
29
+ }
30
+ /**
31
+ * Invalidate the cached extensions list.
32
+ * Call this if LSP_SERVERS is modified at runtime.
33
+ * Currently LSP_SERVERS is a static const, so this is for future-proofing.
34
+ */
35
+ export function invalidateExtensionCache() {
36
+ _cachedExtensions = null;
37
+ }
11
38
  /**
12
39
  * Recursively find files with given extensions
13
40
  */
@@ -51,12 +78,13 @@ function findFiles(directory, extensions, ignoreDirs = []) {
51
78
  /**
52
79
  * Run LSP diagnostics on all TypeScript/JavaScript files in a directory
53
80
  * @param directory - Project directory to scan
54
- * @param extensions - File extensions to check (default: ['.ts', '.tsx', '.js', '.jsx'])
81
+ * @param extensions - File extensions to check (optional, defaults to all LSP-supported extensions)
55
82
  * @returns Aggregated diagnostics from all files
56
83
  */
57
- export async function runLspAggregatedDiagnostics(directory, extensions = ['.ts', '.tsx', '.js', '.jsx']) {
84
+ export async function runLspAggregatedDiagnostics(directory, extensions) {
85
+ const effectiveExtensions = extensions ?? getAllSupportedExtensions();
58
86
  // Find all matching files
59
- const files = findFiles(directory, extensions, ['node_modules', 'dist', 'build', '.git']);
87
+ const files = findFiles(directory, effectiveExtensions, ['node_modules', 'dist', 'build', '.git']);
60
88
  const allDiagnostics = [];
61
89
  let filesChecked = 0;
62
90
  for (const file of files) {
@@ -1 +1 @@
1
- {"version":3,"file":"lsp-aggregator.js","sourceRoot":"","sources":["../../../src/tools/diagnostics/lsp-aggregator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAerD;;GAEG;AACH,SAAS,SAAS,CAAC,SAAiB,EAAE,UAAoB,EAAE,aAAuB,EAAE;IACnF,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IAEzC,SAAS,IAAI,CAAC,GAAW;QACvB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;YAEjC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAElC,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAEhC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;wBACvB,2BAA2B;wBAC3B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;4BAC7B,IAAI,CAAC,QAAQ,CAAC,CAAC;wBACjB,CAAC;oBACH,CAAC;yBAAM,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;wBACzB,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;wBAC9B,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;4BAC7B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBACzB,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,kCAAkC;oBAClC,SAAS;gBACX,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,iCAAiC;YACjC,OAAO;QACT,CAAC;IACH,CAAC;IAED,IAAI,CAAC,SAAS,CAAC,CAAC;IAChB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,SAAiB,EACjB,aAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;IAErD,0BAA0B;IAC1B,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAE1F,MAAM,cAAc,GAA4B,EAAE,CAAC;IACnD,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC7D,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,SAAS;YACX,CAAC;YAED,uCAAuC;YACvC,MAAM,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAEhC,uCAAuC;YACvC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC;YAE3E,gCAAgC;YAChC,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAEhD,4BAA4B;YAC5B,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACrC,cAAc,CAAC,IAAI,CAAC;oBAClB,IAAI;oBACJ,UAAU;iBACX,CAAC,CAAC;YACL,CAAC;YAED,YAAY,EAAE,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,uBAAuB;YACvB,SAAS;QACX,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAClF,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAEpF,OAAO;QACL,OAAO,EAAE,UAAU,KAAK,CAAC;QACzB,WAAW,EAAE,cAAc;QAC3B,UAAU;QACV,YAAY;QACZ,YAAY;KACb,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"lsp-aggregator.js","sourceRoot":"","sources":["../../../src/tools/diagnostics/lsp-aggregator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Python Diagnostics Runner
3
+ *
4
+ * Uses mypy for type checking of Python projects.
5
+ * Falls back to pylint if mypy unavailable.
6
+ */
7
+ export interface PythonDiagnostic {
8
+ file: string;
9
+ line: number;
10
+ column: number;
11
+ code: string;
12
+ message: string;
13
+ severity: 'error' | 'warning';
14
+ }
15
+ export interface PythonResult {
16
+ success: boolean;
17
+ diagnostics: PythonDiagnostic[];
18
+ errorCount: number;
19
+ warningCount: number;
20
+ tool: 'mypy' | 'pylint' | 'none';
21
+ skipped?: string;
22
+ }
23
+ /**
24
+ * Run Python diagnostics on a directory
25
+ * @param directory - Project directory
26
+ * @returns Result with diagnostics
27
+ */
28
+ export declare function runPythonDiagnostics(directory: string): PythonResult;
29
+ /**
30
+ * Parse mypy output
31
+ * Format: file.py:line:col: severity: message [code]
32
+ */
33
+ export declare function parseMypyOutput(output: string): PythonResult;
34
+ /**
35
+ * Parse pylint output
36
+ * Format: file.py:line:col: code: message
37
+ */
38
+ export declare function parsePylintOutput(output: string): PythonResult;
39
+ //# sourceMappingURL=python-runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python-runner.d.ts","sourceRoot":"","sources":["../../../src/tools/diagnostics/python-runner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAGD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,CAgCpE;AAiDD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CA2B5D;AAiDD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CA4B9D"}
@@ -0,0 +1,200 @@
1
+ /**
2
+ * Python Diagnostics Runner
3
+ *
4
+ * Uses mypy for type checking of Python projects.
5
+ * Falls back to pylint if mypy unavailable.
6
+ */
7
+ import { execFileSync } from 'child_process';
8
+ import { existsSync } from 'fs';
9
+ import { join } from 'path';
10
+ import { commandExists } from '../lsp/servers.js';
11
+ import { EXTERNAL_PROCESS_TIMEOUT_MS } from './constants.js';
12
+ /**
13
+ * Run Python diagnostics on a directory
14
+ * @param directory - Project directory
15
+ * @returns Result with diagnostics
16
+ */
17
+ export function runPythonDiagnostics(directory) {
18
+ const hasPyproject = existsSync(join(directory, 'pyproject.toml'));
19
+ const hasRequirements = existsSync(join(directory, 'requirements.txt'));
20
+ const hasSetupPy = existsSync(join(directory, 'setup.py'));
21
+ if (!hasPyproject && !hasRequirements && !hasSetupPy) {
22
+ return {
23
+ success: true,
24
+ diagnostics: [],
25
+ errorCount: 0,
26
+ warningCount: 0,
27
+ tool: 'none',
28
+ skipped: 'no Python project files found (pyproject.toml, requirements.txt, or setup.py)'
29
+ };
30
+ }
31
+ if (commandExists('mypy')) {
32
+ return runMypy(directory);
33
+ }
34
+ if (commandExists('pylint')) {
35
+ return runPylint(directory);
36
+ }
37
+ return {
38
+ success: true,
39
+ diagnostics: [],
40
+ errorCount: 0,
41
+ warningCount: 0,
42
+ tool: 'none',
43
+ skipped: 'neither mypy nor pylint found in PATH'
44
+ };
45
+ }
46
+ function runMypy(directory) {
47
+ try {
48
+ execFileSync('mypy', ['.', '--ignore-missing-imports'], {
49
+ cwd: directory,
50
+ encoding: 'utf-8',
51
+ stdio: ['pipe', 'pipe', 'pipe'],
52
+ timeout: EXTERNAL_PROCESS_TIMEOUT_MS
53
+ });
54
+ return {
55
+ success: true,
56
+ diagnostics: [],
57
+ errorCount: 0,
58
+ warningCount: 0,
59
+ tool: 'mypy'
60
+ };
61
+ }
62
+ catch (error) {
63
+ const output = error.stdout || '';
64
+ if (error.code === 'ENOENT') {
65
+ return {
66
+ success: true,
67
+ diagnostics: [],
68
+ errorCount: 0,
69
+ warningCount: 0,
70
+ tool: 'mypy',
71
+ skipped: '`mypy` binary not found in PATH'
72
+ };
73
+ }
74
+ if (!output.trim()) {
75
+ return {
76
+ success: false,
77
+ diagnostics: [{
78
+ file: '.',
79
+ line: 0,
80
+ column: 0,
81
+ code: 'mypy-crash',
82
+ message: 'mypy exited with errors but produced no diagnostic output (possible configuration issue)',
83
+ severity: 'error'
84
+ }],
85
+ errorCount: 1,
86
+ warningCount: 0,
87
+ tool: 'mypy'
88
+ };
89
+ }
90
+ return parseMypyOutput(output);
91
+ }
92
+ }
93
+ /**
94
+ * Parse mypy output
95
+ * Format: file.py:line:col: severity: message [code]
96
+ */
97
+ export function parseMypyOutput(output) {
98
+ const diagnostics = [];
99
+ const regex = /^(.+?\.py):(\d+):(\d+): (error|warning|note): (.+?)(?:\s+\[([^\]]+)\])?$/gm;
100
+ let match;
101
+ while ((match = regex.exec(output)) !== null) {
102
+ if (match[4] === 'note')
103
+ continue;
104
+ diagnostics.push({
105
+ file: match[1],
106
+ line: parseInt(match[2], 10),
107
+ column: parseInt(match[3], 10),
108
+ severity: match[4] === 'error' ? 'error' : 'warning',
109
+ message: match[5],
110
+ code: match[6] || ''
111
+ });
112
+ }
113
+ const errorCount = diagnostics.filter(d => d.severity === 'error').length;
114
+ const warningCount = diagnostics.filter(d => d.severity === 'warning').length;
115
+ return {
116
+ success: errorCount === 0,
117
+ diagnostics,
118
+ errorCount,
119
+ warningCount,
120
+ tool: 'mypy'
121
+ };
122
+ }
123
+ function runPylint(directory) {
124
+ try {
125
+ execFileSync('pylint', ['--output-format=text', '--score=no', '.'], {
126
+ cwd: directory,
127
+ encoding: 'utf-8',
128
+ stdio: ['pipe', 'pipe', 'pipe'],
129
+ timeout: EXTERNAL_PROCESS_TIMEOUT_MS
130
+ });
131
+ return {
132
+ success: true,
133
+ diagnostics: [],
134
+ errorCount: 0,
135
+ warningCount: 0,
136
+ tool: 'pylint'
137
+ };
138
+ }
139
+ catch (error) {
140
+ const output = error.stdout || error.stderr || '';
141
+ if (error.code === 'ENOENT') {
142
+ return {
143
+ success: true,
144
+ diagnostics: [],
145
+ errorCount: 0,
146
+ warningCount: 0,
147
+ tool: 'pylint',
148
+ skipped: '`pylint` binary not found in PATH'
149
+ };
150
+ }
151
+ if (!output.trim()) {
152
+ return {
153
+ success: false,
154
+ diagnostics: [{
155
+ file: '.',
156
+ line: 0,
157
+ column: 0,
158
+ code: 'pylint-crash',
159
+ message: 'pylint exited with errors but produced no diagnostic output (possible configuration issue)',
160
+ severity: 'error'
161
+ }],
162
+ errorCount: 1,
163
+ warningCount: 0,
164
+ tool: 'pylint'
165
+ };
166
+ }
167
+ return parsePylintOutput(output);
168
+ }
169
+ }
170
+ /**
171
+ * Parse pylint output
172
+ * Format: file.py:line:col: code: message
173
+ */
174
+ export function parsePylintOutput(output) {
175
+ const diagnostics = [];
176
+ const regex = /^(.+?\.py):(\d+):(\d+): ([A-Z]\d+): (.+)$/gm;
177
+ let match;
178
+ while ((match = regex.exec(output)) !== null) {
179
+ const code = match[4];
180
+ const isError = code.startsWith('E') || code.startsWith('F');
181
+ diagnostics.push({
182
+ file: match[1],
183
+ line: parseInt(match[2], 10),
184
+ column: parseInt(match[3], 10),
185
+ code: code,
186
+ message: match[5],
187
+ severity: isError ? 'error' : 'warning'
188
+ });
189
+ }
190
+ const errorCount = diagnostics.filter(d => d.severity === 'error').length;
191
+ const warningCount = diagnostics.filter(d => d.severity === 'warning').length;
192
+ return {
193
+ success: errorCount === 0,
194
+ diagnostics,
195
+ errorCount,
196
+ warningCount,
197
+ tool: 'pylint'
198
+ };
199
+ }
200
+ //# sourceMappingURL=python-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python-runner.js","sourceRoot":"","sources":["../../../src/tools/diagnostics/python-runner.ts"],"names":[],"mappings":"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"}