@delegance/claude-autopilot 5.0.0 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/dist/presets/go/rules/go-sql-injection.d.ts +4 -0
  2. package/dist/presets/go/rules/go-sql-injection.d.ts.map +1 -0
  3. package/dist/presets/nextjs-supabase/rules/supabase-rls-bypass.d.ts +4 -0
  4. package/dist/presets/nextjs-supabase/rules/supabase-rls-bypass.d.ts.map +1 -0
  5. package/dist/presets/python-fastapi/rules/fastapi-missing-auth.d.ts +4 -0
  6. package/dist/presets/python-fastapi/rules/fastapi-missing-auth.d.ts.map +1 -0
  7. package/dist/presets/rails-postgres/rules/rails-sql-injection.d.ts +4 -0
  8. package/dist/presets/rails-postgres/rules/rails-sql-injection.d.ts.map +1 -0
  9. package/dist/presets/t3/rules/t3-server-only.d.ts +4 -0
  10. package/dist/presets/t3/rules/t3-server-only.d.ts.map +1 -0
  11. package/dist/src/adapters/base.d.ts +11 -0
  12. package/dist/src/adapters/base.d.ts.map +1 -0
  13. package/dist/src/adapters/council/claude.d.ts +3 -0
  14. package/dist/src/adapters/council/claude.d.ts.map +1 -0
  15. package/dist/src/adapters/council/openai.d.ts +3 -0
  16. package/dist/src/adapters/council/openai.d.ts.map +1 -0
  17. package/dist/src/adapters/council/types.d.ts +5 -0
  18. package/dist/src/adapters/council/types.d.ts.map +1 -0
  19. package/dist/src/adapters/loader.d.ts +11 -0
  20. package/dist/src/adapters/loader.d.ts.map +1 -0
  21. package/dist/src/adapters/migration-runner/supabase.d.ts +4 -0
  22. package/dist/src/adapters/migration-runner/supabase.d.ts.map +1 -0
  23. package/dist/src/adapters/migration-runner/types.d.ts +31 -0
  24. package/dist/src/adapters/migration-runner/types.d.ts.map +1 -0
  25. package/dist/src/adapters/review-bot-parser/cursor.d.ts +3 -0
  26. package/dist/src/adapters/review-bot-parser/cursor.d.ts.map +1 -0
  27. package/dist/src/adapters/review-bot-parser/declarative-base.d.ts +13 -0
  28. package/dist/src/adapters/review-bot-parser/declarative-base.d.ts.map +1 -0
  29. package/dist/src/adapters/review-bot-parser/types.d.ts +9 -0
  30. package/dist/src/adapters/review-bot-parser/types.d.ts.map +1 -0
  31. package/dist/src/adapters/review-engine/auto.d.ts +4 -0
  32. package/dist/src/adapters/review-engine/auto.d.ts.map +1 -0
  33. package/dist/src/adapters/review-engine/claude.d.ts +4 -0
  34. package/dist/src/adapters/review-engine/claude.d.ts.map +1 -0
  35. package/dist/src/adapters/review-engine/codex.d.ts +4 -0
  36. package/dist/src/adapters/review-engine/codex.d.ts.map +1 -0
  37. package/dist/src/adapters/review-engine/gemini.d.ts +4 -0
  38. package/dist/src/adapters/review-engine/gemini.d.ts.map +1 -0
  39. package/dist/src/adapters/review-engine/openai-compatible.d.ts +4 -0
  40. package/dist/src/adapters/review-engine/openai-compatible.d.ts.map +1 -0
  41. package/dist/src/adapters/review-engine/parse-output.d.ts +13 -0
  42. package/dist/src/adapters/review-engine/parse-output.d.ts.map +1 -0
  43. package/dist/src/adapters/review-engine/prompt-builder.d.ts +4 -0
  44. package/dist/src/adapters/review-engine/prompt-builder.d.ts.map +1 -0
  45. package/dist/src/adapters/review-engine/types.d.ts +28 -0
  46. package/dist/src/adapters/review-engine/types.d.ts.map +1 -0
  47. package/dist/src/adapters/vcs-host/commit-status.d.ts +12 -0
  48. package/dist/src/adapters/vcs-host/commit-status.d.ts.map +1 -0
  49. package/dist/src/adapters/vcs-host/github.d.ts +4 -0
  50. package/dist/src/adapters/vcs-host/github.d.ts.map +1 -0
  51. package/dist/src/adapters/vcs-host/types.d.ts +42 -0
  52. package/dist/src/adapters/vcs-host/types.d.ts.map +1 -0
  53. package/dist/src/cli/_pkg-root.d.ts +47 -0
  54. package/dist/src/cli/_pkg-root.d.ts.map +1 -0
  55. package/dist/src/cli/autoregress-bridge.d.ts +3 -0
  56. package/dist/src/cli/autoregress-bridge.d.ts.map +1 -0
  57. package/dist/src/cli/baseline.d.ts +7 -0
  58. package/dist/src/cli/baseline.d.ts.map +1 -0
  59. package/dist/src/cli/ci.d.ts +23 -0
  60. package/dist/src/cli/ci.d.ts.map +1 -0
  61. package/dist/src/cli/costs.d.ts +2 -0
  62. package/dist/src/cli/costs.d.ts.map +1 -0
  63. package/dist/src/cli/council.d.ts +8 -0
  64. package/dist/src/cli/council.d.ts.map +1 -0
  65. package/dist/src/cli/detector.d.ts +8 -0
  66. package/dist/src/cli/detector.d.ts.map +1 -0
  67. package/dist/src/cli/explain.d.ts +8 -0
  68. package/dist/src/cli/explain.d.ts.map +1 -0
  69. package/dist/src/cli/fix.d.ts +10 -0
  70. package/dist/src/cli/fix.d.ts.map +1 -0
  71. package/dist/src/cli/hook.d.ts +9 -0
  72. package/dist/src/cli/hook.d.ts.map +1 -0
  73. package/dist/src/cli/ignore-helper.d.ts +7 -0
  74. package/dist/src/cli/ignore-helper.d.ts.map +1 -0
  75. package/dist/src/cli/index.d.ts +3 -0
  76. package/dist/src/cli/index.d.ts.map +1 -0
  77. package/dist/src/cli/lsp.d.ts +29 -0
  78. package/dist/src/cli/lsp.d.ts.map +1 -0
  79. package/dist/src/cli/mcp.d.ts +5 -0
  80. package/dist/src/cli/mcp.d.ts.map +1 -0
  81. package/dist/src/cli/migrate-v4.d.ts +28 -0
  82. package/dist/src/cli/migrate-v4.d.ts.map +1 -0
  83. package/dist/src/cli/pr-comment.d.ts +13 -0
  84. package/dist/src/cli/pr-comment.d.ts.map +1 -0
  85. package/dist/src/cli/pr-desc.d.ts +31 -0
  86. package/dist/src/cli/pr-desc.d.ts.map +1 -0
  87. package/dist/src/cli/pr-review-comments.d.ts +12 -0
  88. package/dist/src/cli/pr-review-comments.d.ts.map +1 -0
  89. package/dist/src/cli/pr.d.ts +9 -0
  90. package/dist/src/cli/pr.d.ts.map +1 -0
  91. package/dist/src/cli/preflight.d.ts +8 -0
  92. package/dist/src/cli/preflight.d.ts.map +1 -0
  93. package/dist/src/cli/report.d.ts +7 -0
  94. package/dist/src/cli/report.d.ts.map +1 -0
  95. package/dist/src/cli/run.d.ts +23 -0
  96. package/dist/src/cli/run.d.ts.map +1 -0
  97. package/dist/src/cli/scan.d.ts +11 -0
  98. package/dist/src/cli/scan.d.ts.map +1 -0
  99. package/dist/src/cli/setup.d.ts +9 -0
  100. package/dist/src/cli/setup.d.ts.map +1 -0
  101. package/dist/src/cli/test-gen.d.ts +10 -0
  102. package/dist/src/cli/test-gen.d.ts.map +1 -0
  103. package/dist/src/cli/triage.d.ts +5 -0
  104. package/dist/src/cli/triage.d.ts.map +1 -0
  105. package/dist/src/cli/watch.d.ts +18 -0
  106. package/dist/src/cli/watch.d.ts.map +1 -0
  107. package/dist/src/cli/worker.d.ts +5 -0
  108. package/dist/src/cli/worker.d.ts.map +1 -0
  109. package/dist/src/core/cache/cached-engine.d.ts +8 -0
  110. package/dist/src/core/cache/cached-engine.d.ts.map +1 -0
  111. package/dist/src/core/cache/review-cache.d.ts +21 -0
  112. package/dist/src/core/cache/review-cache.d.ts.map +1 -0
  113. package/dist/src/core/chunking/index.d.ts +18 -0
  114. package/dist/src/core/chunking/index.d.ts.map +1 -0
  115. package/dist/src/core/chunking/risk-ranker.d.ts +10 -0
  116. package/dist/src/core/chunking/risk-ranker.d.ts.map +1 -0
  117. package/dist/src/core/config/loader.d.ts +3 -0
  118. package/dist/src/core/config/loader.d.ts.map +1 -0
  119. package/dist/src/core/config/preset-resolver.d.ts +9 -0
  120. package/dist/src/core/config/preset-resolver.d.ts.map +1 -0
  121. package/dist/src/core/config/schema.d.ts +342 -0
  122. package/dist/src/core/config/schema.d.ts.map +1 -0
  123. package/dist/src/core/config/types.d.ts +115 -0
  124. package/dist/src/core/config/types.d.ts.map +1 -0
  125. package/dist/src/core/council/config.d.ts +3 -0
  126. package/dist/src/core/council/config.d.ts.map +1 -0
  127. package/dist/src/core/council/context.d.ts +2 -0
  128. package/dist/src/core/council/context.d.ts.map +1 -0
  129. package/dist/src/core/council/runner.d.ts +4 -0
  130. package/dist/src/core/council/runner.d.ts.map +1 -0
  131. package/dist/src/core/council/types.d.ts +36 -0
  132. package/dist/src/core/council/types.d.ts.map +1 -0
  133. package/dist/src/core/detect/git-context.d.ts +12 -0
  134. package/dist/src/core/detect/git-context.d.ts.map +1 -0
  135. package/dist/src/core/detect/llm-key.d.ts +38 -0
  136. package/dist/src/core/detect/llm-key.d.ts.map +1 -0
  137. package/dist/src/core/detect/protected-paths.d.ts +6 -0
  138. package/dist/src/core/detect/protected-paths.d.ts.map +1 -0
  139. package/dist/src/core/detect/provider-usage.d.ts +17 -0
  140. package/dist/src/core/detect/provider-usage.d.ts.map +1 -0
  141. package/dist/src/core/detect/stack.d.ts +6 -0
  142. package/dist/src/core/detect/stack.d.ts.map +1 -0
  143. package/dist/src/core/detect/workspaces.d.ts +11 -0
  144. package/dist/src/core/detect/workspaces.d.ts.map +1 -0
  145. package/dist/src/core/errors.d.ts +17 -0
  146. package/dist/src/core/errors.d.ts.map +1 -0
  147. package/dist/src/core/findings/dedup.d.ts +4 -0
  148. package/dist/src/core/findings/dedup.d.ts.map +1 -0
  149. package/dist/src/core/findings/types.d.ts +33 -0
  150. package/dist/src/core/findings/types.d.ts.map +1 -0
  151. package/dist/src/core/fix/generator.d.ts +17 -0
  152. package/dist/src/core/fix/generator.d.ts.map +1 -0
  153. package/dist/src/core/git/diff-hunks.d.ts +22 -0
  154. package/dist/src/core/git/diff-hunks.d.ts.map +1 -0
  155. package/dist/src/core/git/touched-files.d.ts +11 -0
  156. package/dist/src/core/git/touched-files.d.ts.map +1 -0
  157. package/dist/src/core/ignore/index.d.ts +11 -0
  158. package/dist/src/core/ignore/index.d.ts.map +1 -0
  159. package/dist/src/core/index.d.ts +2 -0
  160. package/dist/src/core/index.d.ts.map +1 -0
  161. package/dist/src/core/logging/ndjson-writer.d.ts +16 -0
  162. package/dist/src/core/logging/ndjson-writer.d.ts.map +1 -0
  163. package/dist/src/core/logging/redaction.d.ts +4 -0
  164. package/dist/src/core/logging/redaction.d.ts.map +1 -0
  165. package/dist/src/core/mcp/concurrency.d.ts +2 -0
  166. package/dist/src/core/mcp/concurrency.d.ts.map +1 -0
  167. package/dist/src/core/mcp/handlers/fix-finding.d.ts +17 -0
  168. package/dist/src/core/mcp/handlers/fix-finding.d.ts.map +1 -0
  169. package/dist/src/core/mcp/handlers/get-capabilities.d.ts +14 -0
  170. package/dist/src/core/mcp/handlers/get-capabilities.d.ts.map +1 -0
  171. package/dist/src/core/mcp/handlers/get-findings.d.ts +13 -0
  172. package/dist/src/core/mcp/handlers/get-findings.d.ts.map +1 -0
  173. package/dist/src/core/mcp/handlers/review-diff.d.ts +18 -0
  174. package/dist/src/core/mcp/handlers/review-diff.d.ts.map +1 -0
  175. package/dist/src/core/mcp/handlers/scan-files.d.ts +15 -0
  176. package/dist/src/core/mcp/handlers/scan-files.d.ts.map +1 -0
  177. package/dist/src/core/mcp/handlers/validate-fix.d.ts +12 -0
  178. package/dist/src/core/mcp/handlers/validate-fix.d.ts.map +1 -0
  179. package/dist/src/core/mcp/run-store.d.ts +12 -0
  180. package/dist/src/core/mcp/run-store.d.ts.map +1 -0
  181. package/dist/src/core/mcp/workspace.d.ts +3 -0
  182. package/dist/src/core/mcp/workspace.d.ts.map +1 -0
  183. package/dist/src/core/persist/baseline.d.ts +39 -0
  184. package/dist/src/core/persist/baseline.d.ts.map +1 -0
  185. package/dist/src/core/persist/cost-log.d.ts +11 -0
  186. package/dist/src/core/persist/cost-log.d.ts.map +1 -0
  187. package/dist/src/core/persist/findings-cache.d.ts +9 -0
  188. package/dist/src/core/persist/findings-cache.d.ts.map +1 -0
  189. package/dist/src/core/persist/triage.d.ts +30 -0
  190. package/dist/src/core/persist/triage.d.ts.map +1 -0
  191. package/dist/src/core/phases/static-rules.d.ts +24 -0
  192. package/dist/src/core/phases/static-rules.d.ts.map +1 -0
  193. package/dist/src/core/phases/tests.d.ts +15 -0
  194. package/dist/src/core/phases/tests.d.ts.map +1 -0
  195. package/dist/src/core/pipeline/review-phase.d.ts +27 -0
  196. package/dist/src/core/pipeline/review-phase.d.ts.map +1 -0
  197. package/dist/src/core/pipeline/run.d.ts +27 -0
  198. package/dist/src/core/pipeline/run.d.ts.map +1 -0
  199. package/dist/src/core/runtime/idempotency.d.ts +2 -0
  200. package/dist/src/core/runtime/idempotency.d.ts.map +1 -0
  201. package/dist/src/core/runtime/lock.d.ts +5 -0
  202. package/dist/src/core/runtime/lock.d.ts.map +1 -0
  203. package/dist/src/core/runtime/state.d.ts +39 -0
  204. package/dist/src/core/runtime/state.d.ts.map +1 -0
  205. package/dist/src/core/schema-alignment/detector.d.ts +3 -0
  206. package/dist/src/core/schema-alignment/detector.d.ts.map +1 -0
  207. package/dist/src/core/schema-alignment/extractor/index.d.ts +3 -0
  208. package/dist/src/core/schema-alignment/extractor/index.d.ts.map +1 -0
  209. package/dist/src/core/schema-alignment/extractor/prisma.d.ts +3 -0
  210. package/dist/src/core/schema-alignment/extractor/prisma.d.ts.map +1 -0
  211. package/dist/src/core/schema-alignment/extractor/sql.d.ts +3 -0
  212. package/dist/src/core/schema-alignment/extractor/sql.d.ts.map +1 -0
  213. package/dist/src/core/schema-alignment/llm-check.d.ts +4 -0
  214. package/dist/src/core/schema-alignment/llm-check.d.ts.map +1 -0
  215. package/dist/src/core/schema-alignment/scanner.d.ts +3 -0
  216. package/dist/src/core/schema-alignment/scanner.d.ts.map +1 -0
  217. package/dist/src/core/schema-alignment/types.d.ts +38 -0
  218. package/dist/src/core/schema-alignment/types.d.ts.map +1 -0
  219. package/dist/src/core/shell.d.ts +15 -0
  220. package/dist/src/core/shell.d.ts.map +1 -0
  221. package/dist/src/core/static-rules/registry.d.ts +5 -0
  222. package/dist/src/core/static-rules/registry.d.ts.map +1 -0
  223. package/dist/src/core/static-rules/rules/brand-tokens.d.ts +3 -0
  224. package/dist/src/core/static-rules/rules/brand-tokens.d.ts.map +1 -0
  225. package/dist/src/core/static-rules/rules/console-log.d.ts +3 -0
  226. package/dist/src/core/static-rules/rules/console-log.d.ts.map +1 -0
  227. package/dist/src/core/static-rules/rules/hardcoded-secrets.d.ts +3 -0
  228. package/dist/src/core/static-rules/rules/hardcoded-secrets.d.ts.map +1 -0
  229. package/dist/src/core/static-rules/rules/insecure-redirect.d.ts +3 -0
  230. package/dist/src/core/static-rules/rules/insecure-redirect.d.ts.map +1 -0
  231. package/dist/src/core/static-rules/rules/large-file.d.ts +3 -0
  232. package/dist/src/core/static-rules/rules/large-file.d.ts.map +1 -0
  233. package/dist/src/core/static-rules/rules/missing-auth.d.ts +3 -0
  234. package/dist/src/core/static-rules/rules/missing-auth.d.ts.map +1 -0
  235. package/dist/src/core/static-rules/rules/missing-tests.d.ts +3 -0
  236. package/dist/src/core/static-rules/rules/missing-tests.d.ts.map +1 -0
  237. package/dist/src/core/static-rules/rules/npm-audit.d.ts +3 -0
  238. package/dist/src/core/static-rules/rules/npm-audit.d.ts.map +1 -0
  239. package/dist/src/core/static-rules/rules/package-lock-sync.d.ts +3 -0
  240. package/dist/src/core/static-rules/rules/package-lock-sync.d.ts.map +1 -0
  241. package/dist/src/core/static-rules/rules/schema-alignment.d.ts +3 -0
  242. package/dist/src/core/static-rules/rules/schema-alignment.d.ts.map +1 -0
  243. package/dist/src/core/static-rules/rules/sql-injection.d.ts +3 -0
  244. package/dist/src/core/static-rules/rules/sql-injection.d.ts.map +1 -0
  245. package/dist/src/core/static-rules/rules/ssrf.d.ts +3 -0
  246. package/dist/src/core/static-rules/rules/ssrf.d.ts.map +1 -0
  247. package/dist/src/core/static-rules/rules/todo-fixme.d.ts +3 -0
  248. package/dist/src/core/static-rules/rules/todo-fixme.d.ts.map +1 -0
  249. package/dist/src/core/static-rules/tailwind-extractor.d.ts +7 -0
  250. package/dist/src/core/static-rules/tailwind-extractor.d.ts.map +1 -0
  251. package/dist/src/core/test-gen/coverage-analyzer.d.ts +7 -0
  252. package/dist/src/core/test-gen/coverage-analyzer.d.ts.map +1 -0
  253. package/dist/src/core/test-gen/framework-detector.d.ts +3 -0
  254. package/dist/src/core/test-gen/framework-detector.d.ts.map +1 -0
  255. package/dist/src/core/test-gen/test-writer.d.ts +4 -0
  256. package/dist/src/core/test-gen/test-writer.d.ts.map +1 -0
  257. package/dist/src/core/ui/design-context-loader.d.ts +7 -0
  258. package/dist/src/core/ui/design-context-loader.d.ts.map +1 -0
  259. package/dist/src/core/worker/client.d.ts +23 -0
  260. package/dist/src/core/worker/client.d.ts.map +1 -0
  261. package/dist/src/core/worker/lockfile.d.ts +12 -0
  262. package/dist/src/core/worker/lockfile.d.ts.map +1 -0
  263. package/dist/src/core/worker/server.d.ts +17 -0
  264. package/dist/src/core/worker/server.d.ts.map +1 -0
  265. package/dist/src/formatters/github-annotations.d.ts +5 -0
  266. package/dist/src/formatters/github-annotations.d.ts.map +1 -0
  267. package/dist/src/formatters/index.d.ts +4 -0
  268. package/dist/src/formatters/index.d.ts.map +1 -0
  269. package/dist/src/formatters/junit.d.ts +5 -0
  270. package/dist/src/formatters/junit.d.ts.map +1 -0
  271. package/dist/src/formatters/sarif.d.ts +56 -0
  272. package/dist/src/formatters/sarif.d.ts.map +1 -0
  273. package/dist/src/index.d.ts +4 -0
  274. package/dist/src/index.d.ts.map +1 -0
  275. package/package.json +4 -4
@@ -0,0 +1,342 @@
1
+ export declare const GUARDRAIL_CONFIG_SCHEMA: {
2
+ readonly $schema: "http://json-schema.org/draft-07/schema#";
3
+ readonly type: "object";
4
+ readonly required: readonly ["configVersion"];
5
+ readonly additionalProperties: false;
6
+ readonly properties: {
7
+ readonly configVersion: {
8
+ readonly const: 1;
9
+ };
10
+ readonly preset: {
11
+ readonly type: "string";
12
+ };
13
+ readonly reviewEngine: {
14
+ readonly $ref: "#/definitions/adapterRef";
15
+ };
16
+ readonly vcsHost: {
17
+ readonly $ref: "#/definitions/adapterRef";
18
+ };
19
+ readonly migrationRunner: {
20
+ readonly $ref: "#/definitions/adapterRef";
21
+ };
22
+ readonly reviewBot: {
23
+ readonly $ref: "#/definitions/adapterRef";
24
+ };
25
+ readonly adapterAllowlist: {
26
+ readonly type: "array";
27
+ readonly items: {
28
+ readonly type: "string";
29
+ };
30
+ };
31
+ readonly protectedPaths: {
32
+ readonly type: "array";
33
+ readonly items: {
34
+ readonly type: "string";
35
+ };
36
+ };
37
+ readonly staticRules: {
38
+ readonly type: "array";
39
+ readonly items: {
40
+ readonly oneOf: readonly [{
41
+ readonly type: "string";
42
+ }, {
43
+ readonly type: "object";
44
+ readonly required: readonly ["adapter"];
45
+ readonly properties: {
46
+ readonly adapter: {
47
+ readonly type: "string";
48
+ };
49
+ readonly options: {
50
+ readonly type: "object";
51
+ };
52
+ };
53
+ }];
54
+ };
55
+ };
56
+ readonly staticRulesParallel: {
57
+ readonly type: "boolean";
58
+ };
59
+ readonly stack: {
60
+ readonly type: "string";
61
+ };
62
+ readonly testCommand: {
63
+ readonly type: readonly ["string", "null"];
64
+ };
65
+ readonly thresholds: {
66
+ readonly type: "object";
67
+ readonly properties: {
68
+ readonly bugbotAutoFix: {
69
+ readonly type: "number";
70
+ };
71
+ readonly bugbotProposePatch: {
72
+ readonly type: "number";
73
+ };
74
+ readonly maxValidateRetries: {
75
+ readonly type: "number";
76
+ };
77
+ readonly maxCodexRetries: {
78
+ readonly type: "number";
79
+ };
80
+ readonly maxBugbotRounds: {
81
+ readonly type: "number";
82
+ };
83
+ };
84
+ readonly additionalProperties: false;
85
+ };
86
+ readonly ignore: {
87
+ readonly type: "array";
88
+ readonly items: {
89
+ readonly oneOf: readonly [{
90
+ readonly type: "string";
91
+ }, {
92
+ readonly type: "object";
93
+ readonly required: readonly ["path"];
94
+ readonly properties: {
95
+ readonly rule: {
96
+ readonly type: "string";
97
+ };
98
+ readonly path: {
99
+ readonly type: "string";
100
+ };
101
+ };
102
+ readonly additionalProperties: false;
103
+ }];
104
+ };
105
+ };
106
+ readonly reviewStrategy: {
107
+ readonly enum: readonly ["auto", "single-pass", "file-level", "diff", "auto-diff"];
108
+ };
109
+ readonly chunking: {
110
+ readonly type: "object";
111
+ readonly properties: {
112
+ readonly smallTierMaxTokens: {
113
+ readonly type: "number";
114
+ };
115
+ readonly partialReviewTokens: {
116
+ readonly type: "number";
117
+ };
118
+ readonly perFileMaxTokens: {
119
+ readonly type: "number";
120
+ };
121
+ readonly parallelism: {
122
+ readonly type: "number";
123
+ };
124
+ readonly rateLimitBackoff: {
125
+ readonly enum: readonly ["exp", "linear", "none"];
126
+ };
127
+ };
128
+ readonly additionalProperties: false;
129
+ };
130
+ readonly policy: {
131
+ readonly type: "object";
132
+ readonly properties: {
133
+ readonly failOn: {
134
+ readonly enum: readonly ["critical", "warning", "note", "none"];
135
+ };
136
+ readonly newOnly: {
137
+ readonly type: "boolean";
138
+ };
139
+ readonly baselinePath: {
140
+ readonly type: "string";
141
+ };
142
+ };
143
+ readonly additionalProperties: false;
144
+ };
145
+ readonly pipeline: {
146
+ readonly type: "object";
147
+ readonly properties: {
148
+ readonly runReviewOnStaticFail: {
149
+ readonly type: "boolean";
150
+ };
151
+ readonly runReviewOnTestFail: {
152
+ readonly type: "boolean";
153
+ };
154
+ };
155
+ readonly additionalProperties: false;
156
+ };
157
+ readonly cost: {
158
+ readonly type: "object";
159
+ readonly properties: {
160
+ readonly maxPerRun: {
161
+ readonly type: "number";
162
+ };
163
+ readonly estimateBeforeRun: {
164
+ readonly type: "boolean";
165
+ };
166
+ readonly pricing: {
167
+ readonly type: "object";
168
+ };
169
+ };
170
+ readonly additionalProperties: false;
171
+ };
172
+ readonly brand: {
173
+ readonly type: "object";
174
+ readonly properties: {
175
+ readonly colorsFrom: {
176
+ readonly type: "string";
177
+ };
178
+ readonly colors: {
179
+ readonly type: "array";
180
+ readonly items: {
181
+ readonly type: "string";
182
+ };
183
+ };
184
+ readonly fonts: {
185
+ readonly type: "array";
186
+ readonly items: {
187
+ readonly type: "string";
188
+ };
189
+ };
190
+ readonly componentLibrary: {
191
+ readonly oneOf: readonly [{
192
+ readonly type: "string";
193
+ }, {
194
+ readonly type: "object";
195
+ readonly properties: {
196
+ readonly tokens: {
197
+ readonly type: "string";
198
+ };
199
+ readonly guide: {
200
+ readonly type: "string";
201
+ };
202
+ };
203
+ readonly additionalProperties: false;
204
+ }];
205
+ };
206
+ };
207
+ readonly additionalProperties: false;
208
+ };
209
+ readonly 'schema-alignment': {
210
+ readonly type: "object";
211
+ readonly properties: {
212
+ readonly enabled: {
213
+ readonly type: "boolean";
214
+ };
215
+ readonly migrationGlobs: {
216
+ readonly type: "array";
217
+ readonly items: {
218
+ readonly type: "string";
219
+ readonly minLength: 1;
220
+ };
221
+ };
222
+ readonly layerRoots: {
223
+ readonly type: "object";
224
+ readonly properties: {
225
+ readonly types: {
226
+ readonly type: "array";
227
+ readonly items: {
228
+ readonly type: "string";
229
+ };
230
+ readonly minItems: 1;
231
+ };
232
+ readonly api: {
233
+ readonly type: "array";
234
+ readonly items: {
235
+ readonly type: "string";
236
+ };
237
+ readonly minItems: 1;
238
+ };
239
+ readonly ui: {
240
+ readonly type: "array";
241
+ readonly items: {
242
+ readonly type: "string";
243
+ };
244
+ readonly minItems: 1;
245
+ };
246
+ };
247
+ readonly additionalProperties: false;
248
+ };
249
+ readonly llmCheck: {
250
+ readonly type: "boolean";
251
+ };
252
+ readonly severity: {
253
+ readonly enum: readonly ["warning", "error"];
254
+ };
255
+ };
256
+ readonly additionalProperties: false;
257
+ };
258
+ readonly cache: {
259
+ readonly type: "object";
260
+ };
261
+ readonly persistence: {
262
+ readonly type: "object";
263
+ };
264
+ readonly concurrency: {
265
+ readonly type: "object";
266
+ };
267
+ readonly council: {
268
+ readonly type: "object";
269
+ readonly required: readonly ["models", "synthesizer"];
270
+ readonly additionalProperties: false;
271
+ readonly properties: {
272
+ readonly models: {
273
+ readonly type: "array";
274
+ readonly minItems: 2;
275
+ readonly items: {
276
+ readonly type: "object";
277
+ readonly required: readonly ["adapter", "model", "label"];
278
+ readonly additionalProperties: false;
279
+ readonly properties: {
280
+ readonly adapter: {
281
+ readonly type: "string";
282
+ };
283
+ readonly model: {
284
+ readonly type: "string";
285
+ };
286
+ readonly label: {
287
+ readonly type: "string";
288
+ };
289
+ };
290
+ };
291
+ };
292
+ readonly synthesizer: {
293
+ readonly type: "object";
294
+ readonly required: readonly ["adapter", "model", "label"];
295
+ readonly additionalProperties: false;
296
+ readonly properties: {
297
+ readonly adapter: {
298
+ readonly type: "string";
299
+ };
300
+ readonly model: {
301
+ readonly type: "string";
302
+ };
303
+ readonly label: {
304
+ readonly type: "string";
305
+ };
306
+ };
307
+ };
308
+ readonly timeout_ms: {
309
+ readonly type: "number";
310
+ };
311
+ readonly min_successful_responses: {
312
+ readonly type: "number";
313
+ };
314
+ readonly parallel_input_max_tokens: {
315
+ readonly type: "number";
316
+ };
317
+ readonly synthesis_input_max_tokens: {
318
+ readonly type: "number";
319
+ };
320
+ };
321
+ };
322
+ };
323
+ readonly definitions: {
324
+ readonly adapterRef: {
325
+ readonly oneOf: readonly [{
326
+ readonly type: "string";
327
+ }, {
328
+ readonly type: "object";
329
+ readonly required: readonly ["adapter"];
330
+ readonly properties: {
331
+ readonly adapter: {
332
+ readonly type: "string";
333
+ };
334
+ readonly options: {
335
+ readonly type: "object";
336
+ };
337
+ };
338
+ }];
339
+ };
340
+ };
341
+ };
342
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/core/config/schema.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoL1B,CAAC"}
@@ -0,0 +1,115 @@
1
+ import type { SchemaAlignmentConfig } from '../schema-alignment/types.ts';
2
+ export interface AdapterReference {
3
+ adapter: string;
4
+ options?: Record<string, unknown>;
5
+ }
6
+ export type AdapterRef = string | AdapterReference;
7
+ export type StaticRuleReference = string | {
8
+ adapter: string;
9
+ options?: Record<string, unknown>;
10
+ };
11
+ export interface GuardrailConfig {
12
+ configVersion: 1;
13
+ preset?: string;
14
+ reviewEngine?: AdapterRef;
15
+ vcsHost?: AdapterRef;
16
+ migrationRunner?: AdapterRef;
17
+ reviewBot?: AdapterRef;
18
+ adapterAllowlist?: string[];
19
+ protectedPaths?: string[];
20
+ staticRules?: StaticRuleReference[];
21
+ staticRulesParallel?: boolean;
22
+ stack?: string;
23
+ testCommand?: string | null;
24
+ thresholds?: {
25
+ bugbotAutoFix?: number;
26
+ bugbotProposePatch?: number;
27
+ maxValidateRetries?: number;
28
+ maxCodexRetries?: number;
29
+ maxBugbotRounds?: number;
30
+ };
31
+ ignore?: Array<string | {
32
+ rule?: string;
33
+ path: string;
34
+ }>;
35
+ reviewStrategy?: 'auto' | 'single-pass' | 'file-level' | 'diff' | 'auto-diff';
36
+ chunking?: {
37
+ smallTierMaxTokens?: number;
38
+ partialReviewTokens?: number;
39
+ perFileMaxTokens?: number;
40
+ parallelism?: number;
41
+ rateLimitBackoff?: 'exp' | 'linear' | 'none';
42
+ };
43
+ policy?: {
44
+ /** Severity threshold for exit code 1. Default: 'critical'. Use 'none' to always pass. */
45
+ failOn?: 'critical' | 'warning' | 'note' | 'none';
46
+ /** Only report findings not present in the committed baseline. Default: false. */
47
+ newOnly?: boolean;
48
+ /** Path to baseline file relative to cwd. Default: .guardrail-baseline.json */
49
+ baselinePath?: string;
50
+ };
51
+ pipeline?: {
52
+ /**
53
+ * When true, run the LLM review phase even if the static-rules phase reports `fail`
54
+ * (i.e. finds a critical). Default: true. Set to false to skip only the review
55
+ * phase on static-fail — the tests phase still runs regardless.
56
+ *
57
+ * Users that explicitly configure a review engine typically expect it to run — the
58
+ * bugs the LLM is best at (IDOR, TOCTOU, CORS, off-by-one, rate limits) often sit
59
+ * in the same commit as something a static rule already flagged. This flag only
60
+ * gates the review phase, mirroring `runReviewOnTestFail`.
61
+ */
62
+ runReviewOnStaticFail?: boolean;
63
+ /**
64
+ * When true, run the LLM review phase even if the tests phase reports `fail`.
65
+ * Default: false — failing tests usually indicate broken code, not code to review.
66
+ * This flag only gates the review phase; the tests phase itself always runs.
67
+ */
68
+ runReviewOnTestFail?: boolean;
69
+ };
70
+ cost?: {
71
+ /** Abort review phase if estimated spend exceeds this amount (USD). */
72
+ maxPerRun?: number;
73
+ /** Print token estimate before starting LLM review. Default: false. */
74
+ estimateBeforeRun?: boolean;
75
+ /** Per-model token price overrides (input/output per 1M tokens). */
76
+ pricing?: Record<string, {
77
+ inputPer1M: number;
78
+ outputPer1M: number;
79
+ }>;
80
+ };
81
+ brand?: {
82
+ /** Path to tailwind.config.{ts,js} — auto-extracts theme.colors as canonical palette */
83
+ colorsFrom?: string;
84
+ /** Explicit canonical color values (hex/rgb/hsl). Merged with colorsFrom. */
85
+ colors?: string[];
86
+ /** Canonical font family names */
87
+ fonts?: string[];
88
+ /** Path to design system component library (informational, for future LLM review) */
89
+ componentLibrary?: string | {
90
+ tokens?: string;
91
+ guide?: string;
92
+ };
93
+ };
94
+ 'schema-alignment'?: SchemaAlignmentConfig;
95
+ cache?: Record<string, unknown>;
96
+ persistence?: Record<string, unknown>;
97
+ concurrency?: Record<string, unknown>;
98
+ council?: {
99
+ models: Array<{
100
+ adapter: string;
101
+ model: string;
102
+ label: string;
103
+ }>;
104
+ synthesizer: {
105
+ adapter: string;
106
+ model: string;
107
+ label: string;
108
+ };
109
+ timeout_ms?: number;
110
+ min_successful_responses?: number;
111
+ parallel_input_max_tokens?: number;
112
+ synthesis_input_max_tokens?: number;
113
+ };
114
+ }
115
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/config/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { CouncilConfig } from './types.ts';
2
+ export declare function parseCouncilConfig(raw: Record<string, unknown>): CouncilConfig;
3
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/core/council/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAqB,MAAM,YAAY,CAAC;AAInE,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,CAgE9E"}
@@ -0,0 +1,2 @@
1
+ export declare function windowContext(text: string, maxTokens: number): string;
2
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/core/council/context.ts"],"names":[],"mappings":"AAEA,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAcrE"}
@@ -0,0 +1,4 @@
1
+ import type { CouncilConfig, CouncilResult } from './types.ts';
2
+ import type { CouncilAdapter } from '../../adapters/council/types.ts';
3
+ export declare function runCouncil(config: CouncilConfig, adapters: CouncilAdapter[], synthesizer: CouncilAdapter, prompt: string, contextDoc: string): Promise<CouncilResult>;
4
+ //# sourceMappingURL=runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../../src/core/council/runner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAiB,MAAM,YAAY,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AA+BtE,wBAAsB,UAAU,CAC9B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,cAAc,EAAE,EAC1B,WAAW,EAAE,cAAc,EAC3B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC,CA0CxB"}
@@ -0,0 +1,36 @@
1
+ export interface CouncilModelEntry {
2
+ adapter: 'claude' | 'openai';
3
+ model: string;
4
+ label: string;
5
+ }
6
+ export interface CouncilConfig {
7
+ models: CouncilModelEntry[];
8
+ synthesizer: CouncilModelEntry;
9
+ timeoutMs: number;
10
+ minSuccessfulResponses: number;
11
+ parallelInputMaxTokens: number;
12
+ synthesisInputMaxTokens: number;
13
+ }
14
+ export type ModelResponseStatus = 'ok' | 'timeout' | 'error';
15
+ export interface ModelResponse {
16
+ label: string;
17
+ status: ModelResponseStatus;
18
+ text?: string;
19
+ error?: string;
20
+ latencyMs: number;
21
+ }
22
+ export interface SynthesisResponse {
23
+ label: string;
24
+ text: string;
25
+ latencyMs: number;
26
+ }
27
+ export type CouncilStatus = 'success' | 'partial' | 'failed';
28
+ export interface CouncilResult {
29
+ schema_version: 1;
30
+ run_id: string;
31
+ status: CouncilStatus;
32
+ prompt: string;
33
+ responses: ModelResponse[];
34
+ synthesis?: SynthesisResponse;
35
+ }
36
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/council/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,WAAW,EAAE,iBAAiB,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,MAAM,mBAAmB,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;AAE7D,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,mBAAmB,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE7D,MAAM,WAAW,aAAa;IAE5B,cAAc,EAAE,CAAC,CAAC;IAElB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC/B"}
@@ -0,0 +1,12 @@
1
+ export interface GitContext {
2
+ branch: string | null;
3
+ commitMessage: string | null;
4
+ /** Short summary suitable for injecting into a review prompt */
5
+ summary: string | null;
6
+ }
7
+ /**
8
+ * Reads branch name and last commit message from git. Returns nulls gracefully
9
+ * if git is unavailable or the repo has no commits.
10
+ */
11
+ export declare function detectGitContext(cwd: string): GitContext;
12
+ //# sourceMappingURL=git-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-context.d.ts","sourceRoot":"","sources":["../../../../src/core/detect/git-context.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gEAAgE;IAChE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAaxD"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Shared LLM API key detection. Used by setup, doctor/preflight, scan, and run so
3
+ * every surface agrees on which env vars count as "have a key."
4
+ *
5
+ * Before this unified helper, doctor only checked ANTHROPIC_API_KEY + OPENAI_API_KEY
6
+ * while setup/scan/run checked all 5 providers — producing contradictory messages
7
+ * ("LLM API key: detected" from setup, "No LLM API key" from doctor moments later).
8
+ */
9
+ /** All env var names guardrail recognizes as LLM API keys, ordered by preference. */
10
+ export declare const LLM_KEY_NAMES: readonly ["ANTHROPIC_API_KEY", "OPENAI_API_KEY", "GEMINI_API_KEY", "GOOGLE_API_KEY", "GROQ_API_KEY"];
11
+ export type LLMKeyName = typeof LLM_KEY_NAMES[number];
12
+ export interface KeyDetectionOptions {
13
+ /** Additional key→value map to check alongside process.env (e.g. parsed .env.local). */
14
+ extraEnv?: Record<string, string | undefined>;
15
+ }
16
+ export interface KeyDetectionResult {
17
+ /** True if any recognized LLM key is set to a non-empty value. */
18
+ hasKey: boolean;
19
+ /** Preferred key that was detected, or null. Follows LLM_KEY_NAMES order. */
20
+ preferred: LLMKeyName | null;
21
+ /** All keys that were detected, in LLM_KEY_NAMES order. */
22
+ detected: LLMKeyName[];
23
+ }
24
+ /** Load an env file into a plain object without mutating process.env. */
25
+ export declare function loadEnvFile(filePath: string): Record<string, string>;
26
+ /** Detect whether any recognized LLM API key is set. */
27
+ export declare function detectLLMKey(options?: KeyDetectionOptions): KeyDetectionResult;
28
+ /**
29
+ * Human-readable list of providers and signup URLs, used by every "no key" message.
30
+ * Must cover every entry in LLM_KEY_NAMES so users see the same set of options across
31
+ * preflight, setup, scan, and run.
32
+ */
33
+ export declare const LLM_KEY_HINTS: Array<{
34
+ name: LLMKeyName;
35
+ url: string;
36
+ note?: string;
37
+ }>;
38
+ //# sourceMappingURL=llm-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-key.d.ts","sourceRoot":"","sources":["../../../../src/core/detect/llm-key.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,qFAAqF;AACrF,eAAO,MAAM,aAAa,sGAMhB,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;AAEtD,MAAM,WAAW,mBAAmB;IAClC,wFAAwF;IACxF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,kBAAkB;IACjC,kEAAkE;IAClE,MAAM,EAAE,OAAO,CAAC;IAChB,6EAA6E;IAC7E,SAAS,EAAE,UAAU,GAAG,IAAI,CAAC;IAC7B,2DAA2D;IAC3D,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB;AAmBD,yEAAyE;AACzE,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEpE;AAED,wDAAwD;AACxD,wBAAgB,YAAY,CAAC,OAAO,GAAE,mBAAwB,GAAG,kBAAkB,CAgBlF;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAMjF,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Scans the project for migration directories, schema files, and infra configs
3
+ * and returns glob patterns suitable for `protectedPaths`.
4
+ */
5
+ export declare function detectProtectedPaths(cwd: string): string[];
6
+ //# sourceMappingURL=protected-paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protected-paths.d.ts","sourceRoot":"","sources":["../../../../src/core/detect/protected-paths.ts"],"names":[],"mappings":"AAmCA;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAuB1D"}
@@ -0,0 +1,17 @@
1
+ export type Provider = 'anthropic' | 'gemini' | 'openai' | 'groq';
2
+ export interface ProviderCounts {
3
+ anthropic: number;
4
+ gemini: number;
5
+ openai: number;
6
+ groq: number;
7
+ }
8
+ /**
9
+ * Scans source files under `cwd` and returns per-provider match counts.
10
+ * Counts are capped at 1 per file to avoid skewing on generated lock files.
11
+ */
12
+ export declare function detectProviderUsage(cwd: string): ProviderCounts;
13
+ /**
14
+ * Returns the provider with the highest usage count, or null if all zero.
15
+ */
16
+ export declare function dominantProvider(counts: ProviderCounts): Provider | null;
17
+ //# sourceMappingURL=provider-usage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-usage.d.ts","sourceRoot":"","sources":["../../../../src/core/detect/provider-usage.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;AAiClE,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAgB/D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,QAAQ,GAAG,IAAI,CAKxE"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Infers a human-readable stack description from project files.
3
+ * Returns null if nothing definitive is found (caller should omit from prompt).
4
+ */
5
+ export declare function detectStack(cwd: string): string | null;
6
+ //# sourceMappingURL=stack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack.d.ts","sourceRoot":"","sources":["../../../../src/core/detect/stack.ts"],"names":[],"mappings":"AAqBA;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA+HtD"}
@@ -0,0 +1,11 @@
1
+ export interface Workspace {
2
+ name: string;
3
+ dir: string;
4
+ rel: string;
5
+ testCommand?: string;
6
+ }
7
+ /** Detect npm/yarn/pnpm workspaces, Turborepo, Nx, Go multi-module. */
8
+ export declare function detectWorkspaces(cwd: string): Workspace[] | null;
9
+ /** Given a list of touched files, return which workspaces they belong to. */
10
+ export declare function mapFilesToWorkspaces(files: string[], workspaces: Workspace[], cwd: string): Map<Workspace, string[]>;
11
+ //# sourceMappingURL=workspaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../../../../src/core/detect/workspaces.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAmCD,uEAAuE;AACvE,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,IAAI,CA4ChE;AAED,6EAA6E;AAC7E,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAWpH"}