@delegance/claude-autopilot 5.0.1 → 5.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (412) hide show
  1. package/dist/src/adapters/review-engine/codex.js +13 -1
  2. package/dist/src/cli/index.js +39 -1
  3. package/dist/src/cli/preflight.js +17 -4
  4. package/dist/src/cli/scan.js +12 -0
  5. package/package.json +4 -3
  6. package/dist/presets/go/rules/go-sql-injection.d.ts.map +0 -1
  7. package/dist/presets/go/rules/go-sql-injection.js.map +0 -1
  8. package/dist/presets/nextjs-supabase/rules/supabase-rls-bypass.d.ts.map +0 -1
  9. package/dist/presets/nextjs-supabase/rules/supabase-rls-bypass.js.map +0 -1
  10. package/dist/presets/python-fastapi/rules/fastapi-missing-auth.d.ts.map +0 -1
  11. package/dist/presets/python-fastapi/rules/fastapi-missing-auth.js.map +0 -1
  12. package/dist/presets/rails-postgres/rules/rails-sql-injection.d.ts.map +0 -1
  13. package/dist/presets/rails-postgres/rules/rails-sql-injection.js.map +0 -1
  14. package/dist/presets/t3/rules/t3-server-only.d.ts.map +0 -1
  15. package/dist/presets/t3/rules/t3-server-only.js.map +0 -1
  16. package/dist/src/adapters/base.d.ts.map +0 -1
  17. package/dist/src/adapters/base.js.map +0 -1
  18. package/dist/src/adapters/council/claude.d.ts.map +0 -1
  19. package/dist/src/adapters/council/claude.js.map +0 -1
  20. package/dist/src/adapters/council/openai.d.ts.map +0 -1
  21. package/dist/src/adapters/council/openai.js.map +0 -1
  22. package/dist/src/adapters/council/types.d.ts.map +0 -1
  23. package/dist/src/adapters/council/types.js.map +0 -1
  24. package/dist/src/adapters/loader.d.ts.map +0 -1
  25. package/dist/src/adapters/loader.js.map +0 -1
  26. package/dist/src/adapters/migration-runner/supabase.d.ts.map +0 -1
  27. package/dist/src/adapters/migration-runner/supabase.js.map +0 -1
  28. package/dist/src/adapters/migration-runner/types.d.ts.map +0 -1
  29. package/dist/src/adapters/migration-runner/types.js.map +0 -1
  30. package/dist/src/adapters/review-bot-parser/cursor.d.ts.map +0 -1
  31. package/dist/src/adapters/review-bot-parser/cursor.js.map +0 -1
  32. package/dist/src/adapters/review-bot-parser/declarative-base.d.ts.map +0 -1
  33. package/dist/src/adapters/review-bot-parser/declarative-base.js.map +0 -1
  34. package/dist/src/adapters/review-bot-parser/types.d.ts.map +0 -1
  35. package/dist/src/adapters/review-bot-parser/types.js.map +0 -1
  36. package/dist/src/adapters/review-engine/auto.d.ts.map +0 -1
  37. package/dist/src/adapters/review-engine/auto.js.map +0 -1
  38. package/dist/src/adapters/review-engine/claude.d.ts.map +0 -1
  39. package/dist/src/adapters/review-engine/claude.js.map +0 -1
  40. package/dist/src/adapters/review-engine/codex.d.ts.map +0 -1
  41. package/dist/src/adapters/review-engine/codex.js.map +0 -1
  42. package/dist/src/adapters/review-engine/gemini.d.ts.map +0 -1
  43. package/dist/src/adapters/review-engine/gemini.js.map +0 -1
  44. package/dist/src/adapters/review-engine/openai-compatible.d.ts.map +0 -1
  45. package/dist/src/adapters/review-engine/openai-compatible.js.map +0 -1
  46. package/dist/src/adapters/review-engine/parse-output.d.ts.map +0 -1
  47. package/dist/src/adapters/review-engine/parse-output.js.map +0 -1
  48. package/dist/src/adapters/review-engine/prompt-builder.d.ts.map +0 -1
  49. package/dist/src/adapters/review-engine/prompt-builder.js.map +0 -1
  50. package/dist/src/adapters/review-engine/types.d.ts.map +0 -1
  51. package/dist/src/adapters/review-engine/types.js.map +0 -1
  52. package/dist/src/adapters/vcs-host/commit-status.d.ts.map +0 -1
  53. package/dist/src/adapters/vcs-host/commit-status.js.map +0 -1
  54. package/dist/src/adapters/vcs-host/github.d.ts.map +0 -1
  55. package/dist/src/adapters/vcs-host/github.js.map +0 -1
  56. package/dist/src/adapters/vcs-host/types.d.ts.map +0 -1
  57. package/dist/src/adapters/vcs-host/types.js.map +0 -1
  58. package/dist/src/cli/_pkg-root.d.ts.map +0 -1
  59. package/dist/src/cli/_pkg-root.js.map +0 -1
  60. package/dist/src/cli/autoregress-bridge.d.ts.map +0 -1
  61. package/dist/src/cli/autoregress-bridge.js.map +0 -1
  62. package/dist/src/cli/baseline.d.ts.map +0 -1
  63. package/dist/src/cli/baseline.js.map +0 -1
  64. package/dist/src/cli/ci.d.ts.map +0 -1
  65. package/dist/src/cli/ci.js.map +0 -1
  66. package/dist/src/cli/costs.d.ts.map +0 -1
  67. package/dist/src/cli/costs.js.map +0 -1
  68. package/dist/src/cli/council.d.ts.map +0 -1
  69. package/dist/src/cli/council.js.map +0 -1
  70. package/dist/src/cli/detector.d.ts.map +0 -1
  71. package/dist/src/cli/detector.js.map +0 -1
  72. package/dist/src/cli/explain.d.ts.map +0 -1
  73. package/dist/src/cli/explain.js.map +0 -1
  74. package/dist/src/cli/fix.d.ts.map +0 -1
  75. package/dist/src/cli/fix.js.map +0 -1
  76. package/dist/src/cli/hook.d.ts.map +0 -1
  77. package/dist/src/cli/hook.js.map +0 -1
  78. package/dist/src/cli/ignore-helper.d.ts.map +0 -1
  79. package/dist/src/cli/ignore-helper.js.map +0 -1
  80. package/dist/src/cli/index.d.ts.map +0 -1
  81. package/dist/src/cli/index.js.map +0 -1
  82. package/dist/src/cli/lsp.d.ts.map +0 -1
  83. package/dist/src/cli/lsp.js.map +0 -1
  84. package/dist/src/cli/mcp.d.ts.map +0 -1
  85. package/dist/src/cli/mcp.js.map +0 -1
  86. package/dist/src/cli/migrate-v4.d.ts.map +0 -1
  87. package/dist/src/cli/migrate-v4.js.map +0 -1
  88. package/dist/src/cli/pr-comment.d.ts.map +0 -1
  89. package/dist/src/cli/pr-comment.js.map +0 -1
  90. package/dist/src/cli/pr-desc.d.ts.map +0 -1
  91. package/dist/src/cli/pr-desc.js.map +0 -1
  92. package/dist/src/cli/pr-review-comments.d.ts.map +0 -1
  93. package/dist/src/cli/pr-review-comments.js.map +0 -1
  94. package/dist/src/cli/pr.d.ts.map +0 -1
  95. package/dist/src/cli/pr.js.map +0 -1
  96. package/dist/src/cli/preflight.d.ts.map +0 -1
  97. package/dist/src/cli/preflight.js.map +0 -1
  98. package/dist/src/cli/report.d.ts.map +0 -1
  99. package/dist/src/cli/report.js.map +0 -1
  100. package/dist/src/cli/run.d.ts.map +0 -1
  101. package/dist/src/cli/run.js.map +0 -1
  102. package/dist/src/cli/scan.d.ts.map +0 -1
  103. package/dist/src/cli/scan.js.map +0 -1
  104. package/dist/src/cli/setup.d.ts.map +0 -1
  105. package/dist/src/cli/setup.js.map +0 -1
  106. package/dist/src/cli/test-gen.d.ts.map +0 -1
  107. package/dist/src/cli/test-gen.js.map +0 -1
  108. package/dist/src/cli/triage.d.ts.map +0 -1
  109. package/dist/src/cli/triage.js.map +0 -1
  110. package/dist/src/cli/watch.d.ts.map +0 -1
  111. package/dist/src/cli/watch.js.map +0 -1
  112. package/dist/src/cli/worker.d.ts.map +0 -1
  113. package/dist/src/cli/worker.js.map +0 -1
  114. package/dist/src/core/cache/cached-engine.d.ts.map +0 -1
  115. package/dist/src/core/cache/cached-engine.js.map +0 -1
  116. package/dist/src/core/cache/review-cache.d.ts.map +0 -1
  117. package/dist/src/core/cache/review-cache.js.map +0 -1
  118. package/dist/src/core/chunking/index.d.ts.map +0 -1
  119. package/dist/src/core/chunking/index.js.map +0 -1
  120. package/dist/src/core/chunking/risk-ranker.d.ts.map +0 -1
  121. package/dist/src/core/chunking/risk-ranker.js.map +0 -1
  122. package/dist/src/core/config/loader.d.ts.map +0 -1
  123. package/dist/src/core/config/loader.js.map +0 -1
  124. package/dist/src/core/config/preset-resolver.d.ts.map +0 -1
  125. package/dist/src/core/config/preset-resolver.js.map +0 -1
  126. package/dist/src/core/config/schema.d.ts.map +0 -1
  127. package/dist/src/core/config/schema.js.map +0 -1
  128. package/dist/src/core/config/types.d.ts.map +0 -1
  129. package/dist/src/core/config/types.js.map +0 -1
  130. package/dist/src/core/council/config.d.ts.map +0 -1
  131. package/dist/src/core/council/config.js.map +0 -1
  132. package/dist/src/core/council/context.d.ts.map +0 -1
  133. package/dist/src/core/council/context.js.map +0 -1
  134. package/dist/src/core/council/runner.d.ts.map +0 -1
  135. package/dist/src/core/council/runner.js.map +0 -1
  136. package/dist/src/core/council/types.d.ts.map +0 -1
  137. package/dist/src/core/council/types.js.map +0 -1
  138. package/dist/src/core/detect/git-context.d.ts.map +0 -1
  139. package/dist/src/core/detect/git-context.js.map +0 -1
  140. package/dist/src/core/detect/llm-key.d.ts.map +0 -1
  141. package/dist/src/core/detect/llm-key.js.map +0 -1
  142. package/dist/src/core/detect/protected-paths.d.ts.map +0 -1
  143. package/dist/src/core/detect/protected-paths.js.map +0 -1
  144. package/dist/src/core/detect/provider-usage.d.ts.map +0 -1
  145. package/dist/src/core/detect/provider-usage.js.map +0 -1
  146. package/dist/src/core/detect/stack.d.ts.map +0 -1
  147. package/dist/src/core/detect/stack.js.map +0 -1
  148. package/dist/src/core/detect/workspaces.d.ts.map +0 -1
  149. package/dist/src/core/detect/workspaces.js.map +0 -1
  150. package/dist/src/core/errors.d.ts.map +0 -1
  151. package/dist/src/core/errors.js.map +0 -1
  152. package/dist/src/core/findings/dedup.d.ts.map +0 -1
  153. package/dist/src/core/findings/dedup.js.map +0 -1
  154. package/dist/src/core/findings/types.d.ts.map +0 -1
  155. package/dist/src/core/findings/types.js.map +0 -1
  156. package/dist/src/core/fix/generator.d.ts.map +0 -1
  157. package/dist/src/core/fix/generator.js.map +0 -1
  158. package/dist/src/core/git/diff-hunks.d.ts.map +0 -1
  159. package/dist/src/core/git/diff-hunks.js.map +0 -1
  160. package/dist/src/core/git/touched-files.d.ts.map +0 -1
  161. package/dist/src/core/git/touched-files.js.map +0 -1
  162. package/dist/src/core/ignore/index.d.ts.map +0 -1
  163. package/dist/src/core/ignore/index.js.map +0 -1
  164. package/dist/src/core/index.d.ts.map +0 -1
  165. package/dist/src/core/index.js.map +0 -1
  166. package/dist/src/core/logging/ndjson-writer.d.ts.map +0 -1
  167. package/dist/src/core/logging/ndjson-writer.js.map +0 -1
  168. package/dist/src/core/logging/redaction.d.ts.map +0 -1
  169. package/dist/src/core/logging/redaction.js.map +0 -1
  170. package/dist/src/core/mcp/concurrency.d.ts.map +0 -1
  171. package/dist/src/core/mcp/concurrency.js.map +0 -1
  172. package/dist/src/core/mcp/handlers/fix-finding.d.ts.map +0 -1
  173. package/dist/src/core/mcp/handlers/fix-finding.js.map +0 -1
  174. package/dist/src/core/mcp/handlers/get-capabilities.d.ts.map +0 -1
  175. package/dist/src/core/mcp/handlers/get-capabilities.js.map +0 -1
  176. package/dist/src/core/mcp/handlers/get-findings.d.ts.map +0 -1
  177. package/dist/src/core/mcp/handlers/get-findings.js.map +0 -1
  178. package/dist/src/core/mcp/handlers/review-diff.d.ts.map +0 -1
  179. package/dist/src/core/mcp/handlers/review-diff.js.map +0 -1
  180. package/dist/src/core/mcp/handlers/scan-files.d.ts.map +0 -1
  181. package/dist/src/core/mcp/handlers/scan-files.js.map +0 -1
  182. package/dist/src/core/mcp/handlers/validate-fix.d.ts.map +0 -1
  183. package/dist/src/core/mcp/handlers/validate-fix.js.map +0 -1
  184. package/dist/src/core/mcp/run-store.d.ts.map +0 -1
  185. package/dist/src/core/mcp/run-store.js.map +0 -1
  186. package/dist/src/core/mcp/workspace.d.ts.map +0 -1
  187. package/dist/src/core/mcp/workspace.js.map +0 -1
  188. package/dist/src/core/persist/baseline.d.ts.map +0 -1
  189. package/dist/src/core/persist/baseline.js.map +0 -1
  190. package/dist/src/core/persist/cost-log.d.ts.map +0 -1
  191. package/dist/src/core/persist/cost-log.js.map +0 -1
  192. package/dist/src/core/persist/findings-cache.d.ts.map +0 -1
  193. package/dist/src/core/persist/findings-cache.js.map +0 -1
  194. package/dist/src/core/persist/triage.d.ts.map +0 -1
  195. package/dist/src/core/persist/triage.js.map +0 -1
  196. package/dist/src/core/phases/static-rules.d.ts.map +0 -1
  197. package/dist/src/core/phases/static-rules.js.map +0 -1
  198. package/dist/src/core/phases/tests.d.ts.map +0 -1
  199. package/dist/src/core/phases/tests.js.map +0 -1
  200. package/dist/src/core/pipeline/review-phase.d.ts.map +0 -1
  201. package/dist/src/core/pipeline/review-phase.js.map +0 -1
  202. package/dist/src/core/pipeline/run.d.ts.map +0 -1
  203. package/dist/src/core/pipeline/run.js.map +0 -1
  204. package/dist/src/core/runtime/idempotency.d.ts.map +0 -1
  205. package/dist/src/core/runtime/idempotency.js.map +0 -1
  206. package/dist/src/core/runtime/lock.d.ts.map +0 -1
  207. package/dist/src/core/runtime/lock.js.map +0 -1
  208. package/dist/src/core/runtime/state.d.ts.map +0 -1
  209. package/dist/src/core/runtime/state.js.map +0 -1
  210. package/dist/src/core/schema-alignment/detector.d.ts.map +0 -1
  211. package/dist/src/core/schema-alignment/detector.js.map +0 -1
  212. package/dist/src/core/schema-alignment/extractor/index.d.ts.map +0 -1
  213. package/dist/src/core/schema-alignment/extractor/index.js.map +0 -1
  214. package/dist/src/core/schema-alignment/extractor/prisma.d.ts.map +0 -1
  215. package/dist/src/core/schema-alignment/extractor/prisma.js.map +0 -1
  216. package/dist/src/core/schema-alignment/extractor/sql.d.ts.map +0 -1
  217. package/dist/src/core/schema-alignment/extractor/sql.js.map +0 -1
  218. package/dist/src/core/schema-alignment/llm-check.d.ts.map +0 -1
  219. package/dist/src/core/schema-alignment/llm-check.js.map +0 -1
  220. package/dist/src/core/schema-alignment/scanner.d.ts.map +0 -1
  221. package/dist/src/core/schema-alignment/scanner.js.map +0 -1
  222. package/dist/src/core/schema-alignment/types.d.ts.map +0 -1
  223. package/dist/src/core/schema-alignment/types.js.map +0 -1
  224. package/dist/src/core/shell.d.ts.map +0 -1
  225. package/dist/src/core/shell.js.map +0 -1
  226. package/dist/src/core/static-rules/registry.d.ts.map +0 -1
  227. package/dist/src/core/static-rules/registry.js.map +0 -1
  228. package/dist/src/core/static-rules/rules/brand-tokens.d.ts.map +0 -1
  229. package/dist/src/core/static-rules/rules/brand-tokens.js.map +0 -1
  230. package/dist/src/core/static-rules/rules/console-log.d.ts.map +0 -1
  231. package/dist/src/core/static-rules/rules/console-log.js.map +0 -1
  232. package/dist/src/core/static-rules/rules/hardcoded-secrets.d.ts.map +0 -1
  233. package/dist/src/core/static-rules/rules/hardcoded-secrets.js.map +0 -1
  234. package/dist/src/core/static-rules/rules/insecure-redirect.d.ts.map +0 -1
  235. package/dist/src/core/static-rules/rules/insecure-redirect.js.map +0 -1
  236. package/dist/src/core/static-rules/rules/large-file.d.ts.map +0 -1
  237. package/dist/src/core/static-rules/rules/large-file.js.map +0 -1
  238. package/dist/src/core/static-rules/rules/missing-auth.d.ts.map +0 -1
  239. package/dist/src/core/static-rules/rules/missing-auth.js.map +0 -1
  240. package/dist/src/core/static-rules/rules/missing-tests.d.ts.map +0 -1
  241. package/dist/src/core/static-rules/rules/missing-tests.js.map +0 -1
  242. package/dist/src/core/static-rules/rules/npm-audit.d.ts.map +0 -1
  243. package/dist/src/core/static-rules/rules/npm-audit.js.map +0 -1
  244. package/dist/src/core/static-rules/rules/package-lock-sync.d.ts.map +0 -1
  245. package/dist/src/core/static-rules/rules/package-lock-sync.js.map +0 -1
  246. package/dist/src/core/static-rules/rules/schema-alignment.d.ts.map +0 -1
  247. package/dist/src/core/static-rules/rules/schema-alignment.js.map +0 -1
  248. package/dist/src/core/static-rules/rules/sql-injection.d.ts.map +0 -1
  249. package/dist/src/core/static-rules/rules/sql-injection.js.map +0 -1
  250. package/dist/src/core/static-rules/rules/ssrf.d.ts.map +0 -1
  251. package/dist/src/core/static-rules/rules/ssrf.js.map +0 -1
  252. package/dist/src/core/static-rules/rules/todo-fixme.d.ts.map +0 -1
  253. package/dist/src/core/static-rules/rules/todo-fixme.js.map +0 -1
  254. package/dist/src/core/static-rules/tailwind-extractor.d.ts.map +0 -1
  255. package/dist/src/core/static-rules/tailwind-extractor.js.map +0 -1
  256. package/dist/src/core/test-gen/coverage-analyzer.d.ts.map +0 -1
  257. package/dist/src/core/test-gen/coverage-analyzer.js.map +0 -1
  258. package/dist/src/core/test-gen/framework-detector.d.ts.map +0 -1
  259. package/dist/src/core/test-gen/framework-detector.js.map +0 -1
  260. package/dist/src/core/test-gen/test-writer.d.ts.map +0 -1
  261. package/dist/src/core/test-gen/test-writer.js.map +0 -1
  262. package/dist/src/core/ui/design-context-loader.d.ts.map +0 -1
  263. package/dist/src/core/ui/design-context-loader.js.map +0 -1
  264. package/dist/src/core/worker/client.d.ts.map +0 -1
  265. package/dist/src/core/worker/client.js.map +0 -1
  266. package/dist/src/core/worker/lockfile.d.ts.map +0 -1
  267. package/dist/src/core/worker/lockfile.js.map +0 -1
  268. package/dist/src/core/worker/server.d.ts.map +0 -1
  269. package/dist/src/core/worker/server.js.map +0 -1
  270. package/dist/src/formatters/github-annotations.d.ts.map +0 -1
  271. package/dist/src/formatters/github-annotations.js.map +0 -1
  272. package/dist/src/formatters/index.d.ts.map +0 -1
  273. package/dist/src/formatters/index.js.map +0 -1
  274. package/dist/src/formatters/junit.d.ts.map +0 -1
  275. package/dist/src/formatters/junit.js.map +0 -1
  276. package/dist/src/formatters/sarif.d.ts.map +0 -1
  277. package/dist/src/formatters/sarif.js.map +0 -1
  278. package/dist/src/index.d.ts.map +0 -1
  279. package/dist/src/index.js.map +0 -1
  280. package/src/adapters/base.ts +0 -19
  281. package/src/adapters/council/claude.ts +0 -41
  282. package/src/adapters/council/openai.ts +0 -40
  283. package/src/adapters/council/types.ts +0 -7
  284. package/src/adapters/loader.ts +0 -108
  285. package/src/adapters/migration-runner/supabase.ts +0 -56
  286. package/src/adapters/migration-runner/types.ts +0 -36
  287. package/src/adapters/review-bot-parser/cursor.ts +0 -13
  288. package/src/adapters/review-bot-parser/declarative-base.ts +0 -64
  289. package/src/adapters/review-bot-parser/types.ts +0 -9
  290. package/src/adapters/review-engine/auto.ts +0 -94
  291. package/src/adapters/review-engine/claude.ts +0 -100
  292. package/src/adapters/review-engine/codex.ts +0 -82
  293. package/src/adapters/review-engine/gemini.ts +0 -105
  294. package/src/adapters/review-engine/openai-compatible.ts +0 -100
  295. package/src/adapters/review-engine/parse-output.ts +0 -74
  296. package/src/adapters/review-engine/prompt-builder.ts +0 -19
  297. package/src/adapters/review-engine/types.ts +0 -19
  298. package/src/adapters/vcs-host/commit-status.ts +0 -39
  299. package/src/adapters/vcs-host/github.ts +0 -77
  300. package/src/adapters/vcs-host/types.ts +0 -44
  301. package/src/cli/_pkg-root.ts +0 -85
  302. package/src/cli/autoregress-bridge.ts +0 -30
  303. package/src/cli/baseline.ts +0 -125
  304. package/src/cli/ci.ts +0 -45
  305. package/src/cli/costs.ts +0 -80
  306. package/src/cli/council.ts +0 -96
  307. package/src/cli/detector.ts +0 -92
  308. package/src/cli/explain.ts +0 -197
  309. package/src/cli/fix.ts +0 -249
  310. package/src/cli/hook.ts +0 -124
  311. package/src/cli/ignore-helper.ts +0 -116
  312. package/src/cli/index.ts +0 -612
  313. package/src/cli/lsp.ts +0 -200
  314. package/src/cli/mcp.ts +0 -206
  315. package/src/cli/migrate-v4.ts +0 -388
  316. package/src/cli/pr-comment.ts +0 -139
  317. package/src/cli/pr-desc.ts +0 -168
  318. package/src/cli/pr-review-comments.ts +0 -92
  319. package/src/cli/pr.ts +0 -76
  320. package/src/cli/preflight.ts +0 -235
  321. package/src/cli/report.ts +0 -186
  322. package/src/cli/run.ts +0 -425
  323. package/src/cli/scan.ts +0 -233
  324. package/src/cli/setup.ts +0 -191
  325. package/src/cli/test-gen.ts +0 -125
  326. package/src/cli/triage.ts +0 -137
  327. package/src/cli/watch.ts +0 -190
  328. package/src/cli/worker.ts +0 -109
  329. package/src/core/.gitkeep +0 -0
  330. package/src/core/cache/cached-engine.ts +0 -32
  331. package/src/core/cache/review-cache.ts +0 -70
  332. package/src/core/chunking/index.ts +0 -113
  333. package/src/core/chunking/risk-ranker.ts +0 -56
  334. package/src/core/config/loader.ts +0 -53
  335. package/src/core/config/preset-resolver.ts +0 -46
  336. package/src/core/config/schema.ts +0 -181
  337. package/src/core/config/types.ts +0 -98
  338. package/src/core/council/config.ts +0 -71
  339. package/src/core/council/context.ts +0 -17
  340. package/src/core/council/runner.ts +0 -83
  341. package/src/core/council/types.ts +0 -45
  342. package/src/core/detect/git-context.ts +0 -27
  343. package/src/core/detect/llm-key.ts +0 -89
  344. package/src/core/detect/protected-paths.ts +0 -63
  345. package/src/core/detect/provider-usage.ts +0 -74
  346. package/src/core/detect/stack.ts +0 -153
  347. package/src/core/detect/workspaces.ts +0 -103
  348. package/src/core/errors.ts +0 -37
  349. package/src/core/findings/dedup.ts +0 -14
  350. package/src/core/findings/types.ts +0 -39
  351. package/src/core/fix/generator.ts +0 -149
  352. package/src/core/git/diff-hunks.ts +0 -86
  353. package/src/core/git/touched-files.ts +0 -73
  354. package/src/core/ignore/index.ts +0 -54
  355. package/src/core/index.ts +0 -1
  356. package/src/core/logging/ndjson-writer.ts +0 -37
  357. package/src/core/logging/redaction.ts +0 -19
  358. package/src/core/mcp/concurrency.ts +0 -16
  359. package/src/core/mcp/handlers/fix-finding.ts +0 -126
  360. package/src/core/mcp/handlers/get-capabilities.ts +0 -62
  361. package/src/core/mcp/handlers/get-findings.ts +0 -36
  362. package/src/core/mcp/handlers/review-diff.ts +0 -65
  363. package/src/core/mcp/handlers/scan-files.ts +0 -65
  364. package/src/core/mcp/handlers/validate-fix.ts +0 -41
  365. package/src/core/mcp/run-store.ts +0 -85
  366. package/src/core/mcp/workspace.ts +0 -35
  367. package/src/core/persist/baseline.ts +0 -112
  368. package/src/core/persist/cost-log.ts +0 -30
  369. package/src/core/persist/findings-cache.ts +0 -43
  370. package/src/core/persist/triage.ts +0 -112
  371. package/src/core/phases/static-rules.ts +0 -93
  372. package/src/core/phases/tests.ts +0 -51
  373. package/src/core/pipeline/review-phase.ts +0 -182
  374. package/src/core/pipeline/run.ts +0 -116
  375. package/src/core/runtime/idempotency.ts +0 -6
  376. package/src/core/runtime/lock.ts +0 -29
  377. package/src/core/runtime/state.ts +0 -97
  378. package/src/core/schema-alignment/detector.ts +0 -59
  379. package/src/core/schema-alignment/extractor/index.ts +0 -24
  380. package/src/core/schema-alignment/extractor/prisma.ts +0 -21
  381. package/src/core/schema-alignment/extractor/sql.ts +0 -99
  382. package/src/core/schema-alignment/llm-check.ts +0 -91
  383. package/src/core/schema-alignment/scanner.ts +0 -107
  384. package/src/core/schema-alignment/types.ts +0 -43
  385. package/src/core/shell.ts +0 -48
  386. package/src/core/static-rules/registry.ts +0 -59
  387. package/src/core/static-rules/rules/brand-tokens.ts +0 -145
  388. package/src/core/static-rules/rules/console-log.ts +0 -42
  389. package/src/core/static-rules/rules/hardcoded-secrets.ts +0 -83
  390. package/src/core/static-rules/rules/insecure-redirect.ts +0 -67
  391. package/src/core/static-rules/rules/large-file.ts +0 -37
  392. package/src/core/static-rules/rules/missing-auth.ts +0 -70
  393. package/src/core/static-rules/rules/missing-tests.ts +0 -57
  394. package/src/core/static-rules/rules/npm-audit.ts +0 -38
  395. package/src/core/static-rules/rules/package-lock-sync.ts +0 -54
  396. package/src/core/static-rules/rules/schema-alignment.ts +0 -132
  397. package/src/core/static-rules/rules/sql-injection.ts +0 -71
  398. package/src/core/static-rules/rules/ssrf.ts +0 -63
  399. package/src/core/static-rules/rules/todo-fixme.ts +0 -40
  400. package/src/core/static-rules/tailwind-extractor.ts +0 -38
  401. package/src/core/test-gen/coverage-analyzer.ts +0 -93
  402. package/src/core/test-gen/framework-detector.ts +0 -21
  403. package/src/core/test-gen/test-writer.ts +0 -33
  404. package/src/core/ui/design-context-loader.ts +0 -87
  405. package/src/core/worker/client.ts +0 -46
  406. package/src/core/worker/lockfile.ts +0 -38
  407. package/src/core/worker/server.ts +0 -81
  408. package/src/formatters/github-annotations.ts +0 -36
  409. package/src/formatters/index.ts +0 -3
  410. package/src/formatters/junit.ts +0 -52
  411. package/src/formatters/sarif.ts +0 -103
  412. package/src/index.ts +0 -3
package/src/cli/lsp.ts DELETED
@@ -1,200 +0,0 @@
1
- import * as fs from 'node:fs';
2
- import * as path from 'node:path';
3
- import type { Finding } from '../core/findings/types.ts';
4
-
5
- // LSP DiagnosticSeverity values (spec §3.16.1)
6
- const DSev = { Error: 1, Warning: 2, Information: 3 } as const;
7
-
8
- export function findingToUri(filePath: string, cwd: string): string {
9
- const abs = path.isAbsolute(filePath) ? filePath : path.resolve(cwd, filePath);
10
- // file:// with three slashes on Unix, four on Windows (file:///C:/...)
11
- return `file://${abs.startsWith('/') ? '' : '/'}${abs}`;
12
- }
13
-
14
- export function findingToDiagnostic(f: Finding): {
15
- range: { start: { line: number; character: number }; end: { line: number; character: number } };
16
- severity: number;
17
- source: string;
18
- code: string;
19
- message: string;
20
- } {
21
- const line = Math.max(0, (f.line ?? 1) - 1); // LSP is 0-indexed; findings are 1-indexed
22
- return {
23
- range: { start: { line, character: 0 }, end: { line, character: 999 } },
24
- severity: f.severity === 'critical' ? DSev.Error : f.severity === 'warning' ? DSev.Warning : DSev.Information,
25
- source: 'guardrail',
26
- code: f.id,
27
- message: f.suggestion ? `${f.message}\n\n${f.suggestion}` : f.message,
28
- };
29
- }
30
-
31
- export function groupByUri(findings: Finding[], cwd: string): Map<string, Finding[]> {
32
- const map = new Map<string, Finding[]>();
33
- for (const f of findings) {
34
- const uri = findingToUri(f.file, cwd);
35
- const arr = map.get(uri) ?? [];
36
- arr.push(f);
37
- map.set(uri, arr);
38
- }
39
- return map;
40
- }
41
-
42
- export function encodeMessage(body: object): Buffer {
43
- const json = JSON.stringify(body);
44
- const byteLen = Buffer.byteLength(json, 'utf8');
45
- return Buffer.from(`Content-Length: ${byteLen}\r\n\r\n${json}`, 'utf8');
46
- }
47
-
48
- /** Parse as many complete LSP messages as possible from `buf`. Returns parsed objects and remaining bytes. */
49
- export function parseMessages(buf: Buffer): { messages: unknown[]; remaining: Buffer } {
50
- const messages: unknown[] = [];
51
- let remaining = buf;
52
-
53
- while (remaining.length > 0) {
54
- const headerEnd = remaining.indexOf('\r\n\r\n');
55
- if (headerEnd < 0) break;
56
-
57
- const headers = remaining.slice(0, headerEnd).toString('utf8');
58
- const match = headers.match(/Content-Length:\s*(\d+)/i);
59
- if (!match) { remaining = remaining.slice(headerEnd + 4); continue; }
60
-
61
- const contentLength = parseInt(match[1]!, 10);
62
- const bodyStart = headerEnd + 4;
63
- if (remaining.length < bodyStart + contentLength) break;
64
-
65
- const body = remaining.slice(bodyStart, bodyStart + contentLength).toString('utf8');
66
- remaining = remaining.slice(bodyStart + contentLength);
67
-
68
- try { messages.push(JSON.parse(body)); } catch { /* skip malformed */ }
69
- }
70
-
71
- return { messages, remaining };
72
- }
73
-
74
- export async function runLsp(options: { cwd?: string } = {}): Promise<void> {
75
- const cwd = options.cwd ?? process.cwd();
76
- const cacheFile = path.join(cwd, '.guardrail-cache', 'findings.json');
77
-
78
- let initialized = false;
79
- let didShutdown = false;
80
-
81
- function send(msg: object): void {
82
- process.stdout.write(encodeMessage(msg));
83
- }
84
-
85
- function notify(method: string, params: object): void {
86
- send({ jsonrpc: '2.0', method, params });
87
- }
88
-
89
- function respond(id: number | string | null, result: unknown): void {
90
- send({ jsonrpc: '2.0', id, result });
91
- }
92
-
93
- function respondError(id: number | string | null, code: number, message: string): void {
94
- send({ jsonrpc: '2.0', id, error: { code, message } });
95
- }
96
-
97
- function readFindings(): Finding[] {
98
- if (!fs.existsSync(cacheFile)) return [];
99
- try { return JSON.parse(fs.readFileSync(cacheFile, 'utf8')) as Finding[]; }
100
- catch { return []; }
101
- }
102
-
103
- function publishAll(findings: Finding[]): void {
104
- const byUri = groupByUri(findings, cwd);
105
- for (const [uri, ff] of byUri) {
106
- notify('textDocument/publishDiagnostics', {
107
- uri,
108
- diagnostics: ff.map(findingToDiagnostic),
109
- });
110
- }
111
- }
112
-
113
- function publishForUri(uri: string, findings: Finding[]): void {
114
- notify('textDocument/publishDiagnostics', {
115
- uri,
116
- diagnostics: findings.filter(f => findingToUri(f.file, cwd) === uri).map(findingToDiagnostic),
117
- });
118
- }
119
-
120
- // Watch cache dir so editors see diagnostics update after a guardrail run
121
- let watcher: fs.FSWatcher | null = null;
122
-
123
- function startWatching(): void {
124
- const dir = path.dirname(cacheFile);
125
- if (!fs.existsSync(dir)) return;
126
- try {
127
- watcher = fs.watch(dir, { persistent: false }, (_event, filename) => {
128
- if (filename === 'findings.json' && initialized) publishAll(readFindings());
129
- });
130
- } catch { /* watch unavailable */ }
131
- }
132
-
133
- type LspMessage = { jsonrpc: string; id?: number | string; method?: string; params?: unknown };
134
-
135
- function handle(msg: LspMessage): void {
136
- const { id, method, params } = msg;
137
- if (!method) return; // response, ignore
138
-
139
- switch (method) {
140
- case 'initialize':
141
- respond(id!, {
142
- capabilities: {
143
- textDocumentSync: { openClose: true, change: 1 /* full */ },
144
- },
145
- serverInfo: { name: 'guardrail', version: '4.1.0' },
146
- });
147
- break;
148
-
149
- case 'initialized':
150
- initialized = true;
151
- startWatching();
152
- publishAll(readFindings());
153
- break;
154
-
155
- case 'textDocument/didOpen':
156
- case 'textDocument/didChange': {
157
- const p = params as { textDocument?: { uri?: string } } | undefined;
158
- const uri = p?.textDocument?.uri;
159
- if (uri) publishForUri(uri, readFindings());
160
- break;
161
- }
162
-
163
- case 'textDocument/didClose':
164
- // Keep diagnostics visible after close
165
- break;
166
-
167
- case 'shutdown':
168
- didShutdown = true;
169
- watcher?.close();
170
- respond(id!, null);
171
- break;
172
-
173
- case 'exit':
174
- process.exit(didShutdown ? 0 : 1);
175
- break;
176
-
177
- case '$/cancelRequest':
178
- break;
179
-
180
- default:
181
- if (id !== undefined) respondError(id, -32601, `Method not found: ${method}`);
182
- }
183
- }
184
-
185
- // Frame-aware stdin reader
186
- let buf = Buffer.alloc(0);
187
- process.stdin.on('data', (chunk: Buffer) => {
188
- buf = Buffer.concat([buf, chunk]);
189
- const { messages, remaining } = parseMessages(buf);
190
- buf = remaining as Buffer<ArrayBuffer>;
191
- for (const msg of messages) handle(msg as LspMessage);
192
- });
193
-
194
- process.stdin.on('end', () => {
195
- watcher?.close();
196
- process.exit(0);
197
- });
198
-
199
- return new Promise<void>(() => { /* event-loop keeps us alive */ });
200
- }
package/src/cli/mcp.ts DELETED
@@ -1,206 +0,0 @@
1
- // src/cli/mcp.ts
2
- import * as fs from 'node:fs';
3
- import * as path from 'node:path';
4
- import { Server } from '@modelcontextprotocol/sdk/server/index.js';
5
- import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
6
- import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js';
7
- import { loadConfig } from '../core/config/loader.ts';
8
- import { loadAdapter } from '../adapters/loader.ts';
9
- import type { ReviewEngine } from '../adapters/review-engine/types.ts';
10
- import type { GuardrailConfig } from '../core/config/types.ts';
11
- import { handleReviewDiff } from '../core/mcp/handlers/review-diff.ts';
12
- import { handleScanFiles } from '../core/mcp/handlers/scan-files.ts';
13
- import { handleGetFindings } from '../core/mcp/handlers/get-findings.ts';
14
- import { handleFixFinding } from '../core/mcp/handlers/fix-finding.ts';
15
- import { handleValidateFix } from '../core/mcp/handlers/validate-fix.ts';
16
- import { handleGetCapabilities } from '../core/mcp/handlers/get-capabilities.ts';
17
-
18
- export async function runMcp(options: { cwd?: string; configPath?: string } = {}): Promise<void> {
19
- const cwd = options.cwd ?? process.cwd();
20
- const configPath = options.configPath ?? path.join(cwd, 'guardrail.config.yaml');
21
-
22
- let config: GuardrailConfig = { configVersion: 1 };
23
- if (fs.existsSync(configPath)) {
24
- const loaded = await loadConfig(configPath);
25
- if (loaded) config = loaded;
26
- }
27
-
28
- // Determine adapter name and options from config
29
- const engineRef = (config as unknown as Record<string, unknown>).reviewEngine;
30
- const ref =
31
- typeof engineRef === 'string'
32
- ? engineRef
33
- : (engineRef as { adapter?: string } | undefined)?.adapter ?? 'auto';
34
- const engineOptions =
35
- typeof engineRef === 'object' && engineRef !== null
36
- ? (engineRef as { options?: Record<string, unknown> }).options
37
- : undefined;
38
-
39
- const engine = await loadAdapter<ReviewEngine>({ point: 'review-engine', ref, options: engineOptions });
40
- const adapterName = engine.name;
41
-
42
- const server = new Server(
43
- { name: 'guardrail', version: '1.0.0' },
44
- { capabilities: { tools: {} } },
45
- );
46
-
47
- server.setRequestHandler(ListToolsRequestSchema, async () => ({
48
- tools: [
49
- {
50
- name: 'review_diff',
51
- description: 'Review git-changed files against a base ref. Returns structured findings.',
52
- inputSchema: {
53
- type: 'object',
54
- properties: {
55
- base: { type: 'string', description: 'Base ref to diff against (default: upstream or HEAD~1)' },
56
- cwd: { type: 'string', description: 'Working directory (default: process.cwd())' },
57
- static_only: { type: 'boolean', description: 'Skip LLM review, run static rules only' },
58
- },
59
- },
60
- },
61
- {
62
- name: 'scan_files',
63
- description: 'Review specific files or directories. Does not require git.',
64
- inputSchema: {
65
- type: 'object',
66
- required: ['files'],
67
- properties: {
68
- files: { type: 'array', items: { type: 'string' }, description: 'File or directory paths to scan' },
69
- cwd: { type: 'string' },
70
- ask: { type: 'string', description: 'Targeted question, e.g. "is there SQL injection risk?"' },
71
- },
72
- },
73
- },
74
- {
75
- name: 'get_findings',
76
- description: 'Return findings from a prior review_diff or scan_files run by run_id.',
77
- inputSchema: {
78
- type: 'object',
79
- required: ['run_id'],
80
- properties: {
81
- run_id: { type: 'string' },
82
- severity: { type: 'string', enum: ['critical', 'warning', 'note'], description: 'Minimum severity to include' },
83
- cwd: { type: 'string' },
84
- },
85
- },
86
- },
87
- {
88
- name: 'fix_finding',
89
- description: 'Apply an LLM-generated fix for a specific finding. Validates file checksum before applying.',
90
- inputSchema: {
91
- type: 'object',
92
- required: ['run_id', 'finding_id'],
93
- properties: {
94
- run_id: { type: 'string' },
95
- finding_id: { type: 'string' },
96
- cwd: { type: 'string' },
97
- dry_run: { type: 'boolean', description: 'Return patch without applying' },
98
- },
99
- },
100
- },
101
- {
102
- name: 'validate_fix',
103
- description: 'Run the configured testCommand and return pass/fail.',
104
- inputSchema: {
105
- type: 'object',
106
- properties: {
107
- cwd: { type: 'string' },
108
- files: { type: 'array', items: { type: 'string' } },
109
- },
110
- },
111
- },
112
- {
113
- name: 'get_capabilities',
114
- description: 'Return adapter, enabled rules, and workspace metadata.',
115
- inputSchema: {
116
- type: 'object',
117
- properties: { cwd: { type: 'string' } },
118
- },
119
- },
120
- ],
121
- }));
122
-
123
- server.setRequestHandler(CallToolRequestSchema, async (request) => {
124
- const { name, arguments: args = {} } = request.params;
125
- const a = args as Record<string, unknown>;
126
-
127
- try {
128
- let result: unknown;
129
- switch (name) {
130
- case 'review_diff':
131
- result = await handleReviewDiff(
132
- {
133
- base: a['base'] as string | undefined,
134
- cwd: a['cwd'] as string | undefined,
135
- static_only: a['static_only'] as boolean | undefined,
136
- },
137
- config,
138
- engine,
139
- );
140
- break;
141
- case 'scan_files':
142
- result = await handleScanFiles(
143
- {
144
- files: a['files'] as string[],
145
- cwd: a['cwd'] as string | undefined,
146
- ask: a['ask'] as string | undefined,
147
- },
148
- config,
149
- engine,
150
- );
151
- break;
152
- case 'get_findings':
153
- result = await handleGetFindings({
154
- run_id: a['run_id'] as string,
155
- severity: a['severity'] as 'critical' | 'warning' | 'note' | undefined,
156
- cwd: a['cwd'] as string | undefined,
157
- });
158
- break;
159
- case 'fix_finding':
160
- result = await handleFixFinding(
161
- {
162
- run_id: a['run_id'] as string,
163
- finding_id: a['finding_id'] as string,
164
- cwd: a['cwd'] as string | undefined,
165
- dry_run: a['dry_run'] as boolean | undefined,
166
- },
167
- config,
168
- engine,
169
- );
170
- break;
171
- case 'validate_fix':
172
- result = await handleValidateFix(
173
- {
174
- cwd: a['cwd'] as string | undefined,
175
- files: a['files'] as string[] | undefined,
176
- },
177
- config,
178
- );
179
- break;
180
- case 'get_capabilities':
181
- result = await handleGetCapabilities(
182
- { cwd: a['cwd'] as string | undefined },
183
- config,
184
- adapterName,
185
- );
186
- break;
187
- default:
188
- return {
189
- content: [{ type: 'text' as const, text: JSON.stringify({ error: `Unknown tool: ${name}` }) }],
190
- isError: true,
191
- };
192
- }
193
- return { content: [{ type: 'text' as const, text: JSON.stringify(result) }] };
194
- } catch (err) {
195
- const msg = err instanceof Error ? err.message : String(err);
196
- const code = (err as { code?: string }).code ?? 'unknown_error';
197
- return {
198
- content: [{ type: 'text' as const, text: JSON.stringify({ error: msg, code }) }],
199
- isError: true,
200
- };
201
- }
202
- });
203
-
204
- const transport = new StdioServerTransport();
205
- await server.connect(transport);
206
- }