@urateam/core 0.1.15 → 0.1.18

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 (284) hide show
  1. package/dist/__tests__/agent-stream.test.js +5 -1
  2. package/dist/__tests__/agent-stream.test.js.map +1 -1
  3. package/dist/__tests__/agentic-deep-review-provider.test.d.ts +2 -0
  4. package/dist/__tests__/agentic-deep-review-provider.test.d.ts.map +1 -0
  5. package/dist/__tests__/agentic-deep-review-provider.test.js +70 -0
  6. package/dist/__tests__/agentic-deep-review-provider.test.js.map +1 -0
  7. package/dist/__tests__/audit-immutability.test.js +16 -1
  8. package/dist/__tests__/audit-immutability.test.js.map +1 -1
  9. package/dist/__tests__/cost/per-run-multi-model.test.d.ts +2 -0
  10. package/dist/__tests__/cost/per-run-multi-model.test.d.ts.map +1 -0
  11. package/dist/__tests__/cost/per-run-multi-model.test.js +102 -0
  12. package/dist/__tests__/cost/per-run-multi-model.test.js.map +1 -0
  13. package/dist/__tests__/db-qa-gap-issues.test.d.ts +2 -0
  14. package/dist/__tests__/db-qa-gap-issues.test.d.ts.map +1 -0
  15. package/dist/__tests__/db-qa-gap-issues.test.js +113 -0
  16. package/dist/__tests__/db-qa-gap-issues.test.js.map +1 -0
  17. package/dist/__tests__/db-release-decisions.test.d.ts +2 -0
  18. package/dist/__tests__/db-release-decisions.test.d.ts.map +1 -0
  19. package/dist/__tests__/db-release-decisions.test.js +98 -0
  20. package/dist/__tests__/db-release-decisions.test.js.map +1 -0
  21. package/dist/__tests__/db-review-model-runs.test.d.ts +2 -0
  22. package/dist/__tests__/db-review-model-runs.test.d.ts.map +1 -0
  23. package/dist/__tests__/db-review-model-runs.test.js +90 -0
  24. package/dist/__tests__/db-review-model-runs.test.js.map +1 -0
  25. package/dist/__tests__/e2e-fanout.test.d.ts +17 -0
  26. package/dist/__tests__/e2e-fanout.test.d.ts.map +1 -0
  27. package/dist/__tests__/e2e-fanout.test.js +184 -0
  28. package/dist/__tests__/e2e-fanout.test.js.map +1 -0
  29. package/dist/__tests__/e2e-pipeline.test.js +1 -0
  30. package/dist/__tests__/e2e-pipeline.test.js.map +1 -1
  31. package/dist/__tests__/notifier-discord.test.js +3 -3
  32. package/dist/__tests__/notifier-discord.test.js.map +1 -1
  33. package/dist/__tests__/notifier-slack.test.js +2 -2
  34. package/dist/__tests__/notifier-slack.test.js.map +1 -1
  35. package/dist/__tests__/notifier.test.js +1 -0
  36. package/dist/__tests__/notifier.test.js.map +1 -1
  37. package/dist/__tests__/openrouter-client.test.d.ts +2 -0
  38. package/dist/__tests__/openrouter-client.test.d.ts.map +1 -0
  39. package/dist/__tests__/openrouter-client.test.js +56 -0
  40. package/dist/__tests__/openrouter-client.test.js.map +1 -0
  41. package/dist/__tests__/openrouter-fanout.test.d.ts +2 -0
  42. package/dist/__tests__/openrouter-fanout.test.d.ts.map +1 -0
  43. package/dist/__tests__/openrouter-fanout.test.js +93 -0
  44. package/dist/__tests__/openrouter-fanout.test.js.map +1 -0
  45. package/dist/__tests__/post-fanout-comments.test.d.ts +2 -0
  46. package/dist/__tests__/post-fanout-comments.test.d.ts.map +1 -0
  47. package/dist/__tests__/post-fanout-comments.test.js +84 -0
  48. package/dist/__tests__/post-fanout-comments.test.js.map +1 -0
  49. package/dist/__tests__/qa-audit-events.test.d.ts +2 -0
  50. package/dist/__tests__/qa-audit-events.test.d.ts.map +1 -0
  51. package/dist/__tests__/qa-audit-events.test.js +57 -0
  52. package/dist/__tests__/qa-audit-events.test.js.map +1 -0
  53. package/dist/__tests__/qa-config.test.d.ts +2 -0
  54. package/dist/__tests__/qa-config.test.d.ts.map +1 -0
  55. package/dist/__tests__/qa-config.test.js +80 -0
  56. package/dist/__tests__/qa-config.test.js.map +1 -0
  57. package/dist/__tests__/qa-eval.test.d.ts +2 -0
  58. package/dist/__tests__/qa-eval.test.d.ts.map +1 -0
  59. package/dist/__tests__/qa-eval.test.js +146 -0
  60. package/dist/__tests__/qa-eval.test.js.map +1 -0
  61. package/dist/__tests__/qa-gap.test.d.ts +2 -0
  62. package/dist/__tests__/qa-gap.test.d.ts.map +1 -0
  63. package/dist/__tests__/qa-gap.test.js +100 -0
  64. package/dist/__tests__/qa-gap.test.js.map +1 -0
  65. package/dist/__tests__/qa-github.test.d.ts +2 -0
  66. package/dist/__tests__/qa-github.test.d.ts.map +1 -0
  67. package/dist/__tests__/qa-github.test.js +162 -0
  68. package/dist/__tests__/qa-github.test.js.map +1 -0
  69. package/dist/__tests__/ralph-review-fix-regression.test.js +1 -0
  70. package/dist/__tests__/ralph-review-fix-regression.test.js.map +1 -1
  71. package/dist/__tests__/release-manager-audit-events.test.d.ts +2 -0
  72. package/dist/__tests__/release-manager-audit-events.test.d.ts.map +1 -0
  73. package/dist/__tests__/release-manager-audit-events.test.js +64 -0
  74. package/dist/__tests__/release-manager-audit-events.test.js.map +1 -0
  75. package/dist/__tests__/release-manager-config.test.d.ts +2 -0
  76. package/dist/__tests__/release-manager-config.test.d.ts.map +1 -0
  77. package/dist/__tests__/release-manager-config.test.js +56 -0
  78. package/dist/__tests__/release-manager-config.test.js.map +1 -0
  79. package/dist/__tests__/release-manager-decide.test.d.ts +2 -0
  80. package/dist/__tests__/release-manager-decide.test.d.ts.map +1 -0
  81. package/dist/__tests__/release-manager-decide.test.js +102 -0
  82. package/dist/__tests__/release-manager-decide.test.js.map +1 -0
  83. package/dist/__tests__/release-manager-github.test.d.ts +2 -0
  84. package/dist/__tests__/release-manager-github.test.d.ts.map +1 -0
  85. package/dist/__tests__/release-manager-github.test.js +83 -0
  86. package/dist/__tests__/release-manager-github.test.js.map +1 -0
  87. package/dist/__tests__/release-manager-license-gate.test.d.ts +2 -0
  88. package/dist/__tests__/release-manager-license-gate.test.d.ts.map +1 -0
  89. package/dist/__tests__/release-manager-license-gate.test.js +25 -0
  90. package/dist/__tests__/release-manager-license-gate.test.js.map +1 -0
  91. package/dist/__tests__/release-manager-scheduler.test.d.ts +2 -0
  92. package/dist/__tests__/release-manager-scheduler.test.d.ts.map +1 -0
  93. package/dist/__tests__/release-manager-scheduler.test.js +395 -0
  94. package/dist/__tests__/release-manager-scheduler.test.js.map +1 -0
  95. package/dist/__tests__/release-manager-slack-handler.test.d.ts +2 -0
  96. package/dist/__tests__/release-manager-slack-handler.test.d.ts.map +1 -0
  97. package/dist/__tests__/release-manager-slack-handler.test.js +175 -0
  98. package/dist/__tests__/release-manager-slack-handler.test.js.map +1 -0
  99. package/dist/__tests__/release-manager-triggers.test.d.ts +2 -0
  100. package/dist/__tests__/release-manager-triggers.test.d.ts.map +1 -0
  101. package/dist/__tests__/release-manager-triggers.test.js +67 -0
  102. package/dist/__tests__/release-manager-triggers.test.js.map +1 -0
  103. package/dist/__tests__/release-manager-versioning.test.d.ts +2 -0
  104. package/dist/__tests__/release-manager-versioning.test.d.ts.map +1 -0
  105. package/dist/__tests__/release-manager-versioning.test.js +51 -0
  106. package/dist/__tests__/release-manager-versioning.test.js.map +1 -0
  107. package/dist/__tests__/review-feedback.test.js +166 -2
  108. package/dist/__tests__/review-feedback.test.js.map +1 -1
  109. package/dist/__tests__/review-prompt.test.d.ts +2 -0
  110. package/dist/__tests__/review-prompt.test.d.ts.map +1 -0
  111. package/dist/__tests__/review-prompt.test.js +88 -0
  112. package/dist/__tests__/review-prompt.test.js.map +1 -0
  113. package/dist/__tests__/review-provider-registry.test.d.ts +2 -0
  114. package/dist/__tests__/review-provider-registry.test.d.ts.map +1 -0
  115. package/dist/__tests__/review-provider-registry.test.js +61 -0
  116. package/dist/__tests__/review-provider-registry.test.js.map +1 -0
  117. package/dist/__tests__/runner-fanout-integration.test.d.ts +2 -0
  118. package/dist/__tests__/runner-fanout-integration.test.d.ts.map +1 -0
  119. package/dist/__tests__/runner-fanout-integration.test.js +107 -0
  120. package/dist/__tests__/runner-fanout-integration.test.js.map +1 -0
  121. package/dist/audit/events.d.ts +54 -0
  122. package/dist/audit/events.d.ts.map +1 -1
  123. package/dist/audit/events.js +100 -0
  124. package/dist/audit/events.js.map +1 -1
  125. package/dist/audit/writer.d.ts +22 -8
  126. package/dist/audit/writer.d.ts.map +1 -1
  127. package/dist/audit/writer.js +22 -8
  128. package/dist/audit/writer.js.map +1 -1
  129. package/dist/cost/aggregate.d.ts.map +1 -1
  130. package/dist/cost/aggregate.js +14 -2
  131. package/dist/cost/aggregate.js.map +1 -1
  132. package/dist/cost/csv.d.ts.map +1 -1
  133. package/dist/cost/csv.js +14 -2
  134. package/dist/cost/csv.js.map +1 -1
  135. package/dist/cost/per-run.d.ts +11 -0
  136. package/dist/cost/per-run.d.ts.map +1 -1
  137. package/dist/cost/per-run.js +21 -8
  138. package/dist/cost/per-run.js.map +1 -1
  139. package/dist/cost/rollup.d.ts.map +1 -1
  140. package/dist/cost/rollup.js +14 -2
  141. package/dist/cost/rollup.js.map +1 -1
  142. package/dist/db/client.d.ts.map +1 -1
  143. package/dist/db/client.js +20 -1
  144. package/dist/db/client.js.map +1 -1
  145. package/dist/db/migrations/postgres/009_review_model_runs.sql +18 -0
  146. package/dist/db/migrations/postgres/010_release_manager.sql +38 -0
  147. package/dist/db/migrations/postgres/011_qa_run_columns.sql +8 -0
  148. package/dist/db/migrations/postgres/012_qa_gap_issues.sql +18 -0
  149. package/dist/db/migrations/sqlite/008_review_model_runs.sql +18 -0
  150. package/dist/db/migrations/sqlite/009_release_manager.sql +43 -0
  151. package/dist/db/migrations/sqlite/010_qa_run_columns.sql +9 -0
  152. package/dist/db/migrations/sqlite/011_qa_gap_issues.sql +22 -0
  153. package/dist/db/review-model-runs.d.ts +4 -0
  154. package/dist/db/review-model-runs.d.ts.map +1 -0
  155. package/dist/db/review-model-runs.js +25 -0
  156. package/dist/db/review-model-runs.js.map +1 -0
  157. package/dist/db/schema.d.ts +761 -0
  158. package/dist/db/schema.d.ts.map +1 -1
  159. package/dist/db/schema.js +67 -0
  160. package/dist/db/schema.js.map +1 -1
  161. package/dist/executor/executor.d.ts +6 -1
  162. package/dist/executor/executor.d.ts.map +1 -1
  163. package/dist/executor/executor.js +3 -1
  164. package/dist/executor/executor.js.map +1 -1
  165. package/dist/executor/prompt/assembler.d.ts +5 -2
  166. package/dist/executor/prompt/assembler.d.ts.map +1 -1
  167. package/dist/executor/prompt/assembler.js +5 -2
  168. package/dist/executor/prompt/assembler.js.map +1 -1
  169. package/dist/executor/prompt/templates.d.ts +2 -2
  170. package/dist/executor/prompt/templates.d.ts.map +1 -1
  171. package/dist/executor/prompt/templates.js +21 -2
  172. package/dist/executor/prompt/templates.js.map +1 -1
  173. package/dist/executor/review/agentic-deep-review.d.ts +6 -0
  174. package/dist/executor/review/agentic-deep-review.d.ts.map +1 -0
  175. package/dist/executor/review/agentic-deep-review.js +37 -0
  176. package/dist/executor/review/agentic-deep-review.js.map +1 -0
  177. package/dist/executor/review/openrouter-client.d.ts +23 -0
  178. package/dist/executor/review/openrouter-client.d.ts.map +1 -0
  179. package/dist/executor/review/openrouter-client.js +34 -0
  180. package/dist/executor/review/openrouter-client.js.map +1 -0
  181. package/dist/executor/review/openrouter-fanout.d.ts +17 -0
  182. package/dist/executor/review/openrouter-fanout.d.ts.map +1 -0
  183. package/dist/executor/review/openrouter-fanout.js +84 -0
  184. package/dist/executor/review/openrouter-fanout.js.map +1 -0
  185. package/dist/executor/review/post-fanout-comments.d.ts +4 -0
  186. package/dist/executor/review/post-fanout-comments.d.ts.map +1 -0
  187. package/dist/executor/review/post-fanout-comments.js +45 -0
  188. package/dist/executor/review/post-fanout-comments.js.map +1 -0
  189. package/dist/executor/review/review-prompt.d.ts +21 -0
  190. package/dist/executor/review/review-prompt.d.ts.map +1 -0
  191. package/dist/executor/review/review-prompt.js +130 -0
  192. package/dist/executor/review/review-prompt.js.map +1 -0
  193. package/dist/executor/review/review-provider.d.ts +27 -0
  194. package/dist/executor/review/review-provider.d.ts.map +1 -0
  195. package/dist/executor/review/review-provider.js +36 -0
  196. package/dist/executor/review/review-provider.js.map +1 -0
  197. package/dist/executor/review/workdir-snapshot.d.ts +13 -0
  198. package/dist/executor/review/workdir-snapshot.d.ts.map +1 -0
  199. package/dist/executor/review/workdir-snapshot.js +24 -0
  200. package/dist/executor/review/workdir-snapshot.js.map +1 -0
  201. package/dist/index.d.ts +4 -0
  202. package/dist/index.d.ts.map +1 -1
  203. package/dist/index.js +4 -0
  204. package/dist/index.js.map +1 -1
  205. package/dist/license.d.ts.map +1 -1
  206. package/dist/license.js +1 -0
  207. package/dist/license.js.map +1 -1
  208. package/dist/pipeline/review-providers-runner.d.ts +31 -0
  209. package/dist/pipeline/review-providers-runner.d.ts.map +1 -0
  210. package/dist/pipeline/review-providers-runner.js +64 -0
  211. package/dist/pipeline/review-providers-runner.js.map +1 -0
  212. package/dist/pipeline/runner.d.ts +16 -1
  213. package/dist/pipeline/runner.d.ts.map +1 -1
  214. package/dist/pipeline/runner.js +137 -43
  215. package/dist/pipeline/runner.js.map +1 -1
  216. package/dist/pm/actions/promote.js +2 -2
  217. package/dist/pm/actions/promote.js.map +1 -1
  218. package/dist/pm/actions/resolve-approvals.js +3 -3
  219. package/dist/pm/actions/resolve-approvals.js.map +1 -1
  220. package/dist/pm/actions/triage.js +2 -2
  221. package/dist/pm/actions/triage.js.map +1 -1
  222. package/dist/pm/scheduler.js +3 -3
  223. package/dist/pm/scheduler.js.map +1 -1
  224. package/dist/pm/slack-interface.d.ts +8 -0
  225. package/dist/pm/slack-interface.d.ts.map +1 -1
  226. package/dist/pm/slack-interface.js +20 -3
  227. package/dist/pm/slack-interface.js.map +1 -1
  228. package/dist/qa/gap.d.ts +29 -0
  229. package/dist/qa/gap.d.ts.map +1 -0
  230. package/dist/qa/gap.js +91 -0
  231. package/dist/qa/gap.js.map +1 -0
  232. package/dist/qa/github.d.ts +77 -0
  233. package/dist/qa/github.d.ts.map +1 -0
  234. package/dist/qa/github.js +106 -0
  235. package/dist/qa/github.js.map +1 -0
  236. package/dist/qa/index.d.ts +4 -0
  237. package/dist/qa/index.d.ts.map +1 -0
  238. package/dist/qa/index.js +4 -0
  239. package/dist/qa/index.js.map +1 -0
  240. package/dist/qa/types.d.ts +44 -0
  241. package/dist/qa/types.d.ts.map +1 -0
  242. package/dist/qa/types.js +12 -0
  243. package/dist/qa/types.js.map +1 -0
  244. package/dist/release-manager/decide.d.ts +26 -0
  245. package/dist/release-manager/decide.d.ts.map +1 -0
  246. package/dist/release-manager/decide.js +58 -0
  247. package/dist/release-manager/decide.js.map +1 -0
  248. package/dist/release-manager/github.d.ts +47 -0
  249. package/dist/release-manager/github.d.ts.map +1 -0
  250. package/dist/release-manager/github.js +66 -0
  251. package/dist/release-manager/github.js.map +1 -0
  252. package/dist/release-manager/index.d.ts +9 -0
  253. package/dist/release-manager/index.d.ts.map +1 -0
  254. package/dist/release-manager/index.js +9 -0
  255. package/dist/release-manager/index.js.map +1 -0
  256. package/dist/release-manager/scheduler.d.ts +30 -0
  257. package/dist/release-manager/scheduler.d.ts.map +1 -0
  258. package/dist/release-manager/scheduler.js +427 -0
  259. package/dist/release-manager/scheduler.js.map +1 -0
  260. package/dist/release-manager/slack-handler.d.ts +39 -0
  261. package/dist/release-manager/slack-handler.d.ts.map +1 -0
  262. package/dist/release-manager/slack-handler.js +124 -0
  263. package/dist/release-manager/slack-handler.js.map +1 -0
  264. package/dist/release-manager/state.d.ts +18 -0
  265. package/dist/release-manager/state.d.ts.map +1 -0
  266. package/dist/release-manager/state.js +154 -0
  267. package/dist/release-manager/state.js.map +1 -0
  268. package/dist/release-manager/triggers.d.ts +32 -0
  269. package/dist/release-manager/triggers.d.ts.map +1 -0
  270. package/dist/release-manager/triggers.js +82 -0
  271. package/dist/release-manager/triggers.js.map +1 -0
  272. package/dist/release-manager/types.d.ts +79 -0
  273. package/dist/release-manager/types.d.ts.map +1 -0
  274. package/dist/release-manager/types.js +48 -0
  275. package/dist/release-manager/types.js.map +1 -0
  276. package/dist/release-manager/versioning.d.ts +20 -0
  277. package/dist/release-manager/versioning.d.ts.map +1 -0
  278. package/dist/release-manager/versioning.js +60 -0
  279. package/dist/release-manager/versioning.js.map +1 -0
  280. package/dist/types.d.ts +52 -0
  281. package/dist/types.d.ts.map +1 -1
  282. package/dist/types.js +18 -0
  283. package/dist/types.js.map +1 -1
  284. package/package.json +3 -1
@@ -0,0 +1,88 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { buildReviewPrompt, parseReviewFindings, estimateTokens, } from "../executor/review/review-prompt.js";
3
+ const handoff = {
4
+ runId: "r1",
5
+ issueId: "i1",
6
+ stage: "review",
7
+ timestamp: "2026-04-30T00:00:00Z",
8
+ summary: "",
9
+ filesChanged: ["src/foo.ts"],
10
+ approach: "",
11
+ context: {
12
+ issueIntent: "Fix bug X",
13
+ constraints: ["no new deps"],
14
+ assumptions: ["node 20"],
15
+ },
16
+ tokenBudget: { contextTokensUsed: 0, recommendedMaxTurns: 0 },
17
+ };
18
+ describe("buildReviewPrompt", () => {
19
+ it("includes intent, constraints, diff, and JSON-output instruction", () => {
20
+ const prompt = buildReviewPrompt({
21
+ handoff,
22
+ diff: "diff --git a/src/foo.ts b/src/foo.ts\n+++ b/src/foo.ts\n@@\n+x",
23
+ files: [{ path: "src/foo.ts", body: "export const x = 1;" }],
24
+ maxInputTokens: 100_000,
25
+ });
26
+ expect(prompt.messages).toHaveLength(2);
27
+ expect(prompt.messages[0].role).toBe("system");
28
+ expect(prompt.messages[1].role).toBe("user");
29
+ expect(prompt.messages[1].content).toContain("Fix bug X");
30
+ expect(prompt.messages[1].content).toContain("no new deps");
31
+ expect(prompt.messages[1].content).toContain("diff --git");
32
+ expect(prompt.messages[1].content).toContain("export const x = 1;");
33
+ expect(prompt.messages[0].content).toContain("findings"); // schema instruction
34
+ expect(prompt.truncatedFiles).toBe(0);
35
+ });
36
+ it("drops file bodies tail-first when over budget but keeps the diff", () => {
37
+ const big = "x".repeat(20_000);
38
+ const out = buildReviewPrompt({
39
+ handoff,
40
+ diff: "diff --git a/foo b/foo\n+y",
41
+ files: [
42
+ { path: "a.ts", body: big },
43
+ { path: "b.ts", body: big },
44
+ { path: "c.ts", body: big },
45
+ ],
46
+ maxInputTokens: 6_000, // forces truncation
47
+ });
48
+ expect(out.truncatedFiles).toBeGreaterThan(0);
49
+ expect(out.messages[1].content).toContain("diff --git");
50
+ });
51
+ });
52
+ describe("parseReviewFindings", () => {
53
+ it("extracts the first balanced JSON object and validates against schema", () => {
54
+ const raw = `Sure, here is the review:
55
+ \`\`\`json
56
+ { "findings": [
57
+ { "severity": "warning", "file": "a.ts", "line": 1, "category": "x", "description": "d", "fix": "f" }
58
+ ] }
59
+ \`\`\`
60
+ End.`;
61
+ const findings = parseReviewFindings(raw);
62
+ expect(findings).toHaveLength(1);
63
+ expect(findings[0].severity).toBe("warning");
64
+ });
65
+ it("throws on malformed JSON", () => {
66
+ expect(() => parseReviewFindings("not json at all")).toThrow();
67
+ });
68
+ it("throws when schema validation fails", () => {
69
+ expect(() => parseReviewFindings('{"findings":[{"bad":true}]}')).toThrow();
70
+ });
71
+ it("ignores { inside string literals before the real envelope", () => {
72
+ const raw = `I noticed "a {problem}" here. {"findings":[]}`;
73
+ expect(parseReviewFindings(raw)).toEqual([]);
74
+ });
75
+ it("handles \\uXXXX escapes inside string literals", () => {
76
+ // " is a double-quote; the scanner must not terminate the string here.
77
+ const raw = `Model output: { "findings": [{ "severity": "warning", "file": "a\\u0022.ts", "line": 1, "category": "x", "description": "d", "fix": "f" }] }`;
78
+ const findings = parseReviewFindings(raw);
79
+ expect(findings).toHaveLength(1);
80
+ expect(findings[0].file).toContain('"');
81
+ });
82
+ });
83
+ describe("estimateTokens", () => {
84
+ it("returns a roughly char/4 estimate", () => {
85
+ expect(estimateTokens("a".repeat(40))).toBe(10);
86
+ });
87
+ });
88
+ //# sourceMappingURL=review-prompt.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-prompt.test.js","sourceRoot":"","sources":["../../src/__tests__/review-prompt.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=review-provider-registry.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-provider-registry.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/review-provider-registry.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,61 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { getEnabledProviders, } from "../executor/review/review-provider.js";
3
+ describe("review-provider registry", () => {
4
+ it("exports the ReviewProvider interface and ReviewModelRun type", () => {
5
+ // Compile-time existence check via type assignment
6
+ const _checkRun = {
7
+ modelId: "x",
8
+ providerId: "agentic",
9
+ status: "completed",
10
+ findings: [],
11
+ inputTokens: 0,
12
+ outputTokens: 0,
13
+ durationMs: 0,
14
+ };
15
+ expect(_checkRun.modelId).toBe("x");
16
+ });
17
+ it("returns at least the agentic provider when env is empty", () => {
18
+ const providers = getEnabledProviders({});
19
+ expect(providers.length).toBeGreaterThanOrEqual(1);
20
+ expect(providers.some((p) => p.id === "agentic")).toBe(true);
21
+ });
22
+ it("ReviewProvider has runReview signature", () => {
23
+ const providers = getEnabledProviders({});
24
+ const p = providers[0];
25
+ expect(typeof p.runReview).toBe("function");
26
+ });
27
+ });
28
+ describe("review-provider registry — fanout selection", () => {
29
+ it("returns only agentic when REVIEW_MODELS unset", () => {
30
+ const ps = getEnabledProviders({});
31
+ expect(ps.map((p) => p.id)).toEqual(["agentic"]);
32
+ });
33
+ it("adds openrouter when both vars set", () => {
34
+ const ps = getEnabledProviders({
35
+ REVIEW_MODELS: "anthropic/claude-3.5-sonnet,openai/gpt-4o",
36
+ OPENROUTER_API_KEY: "sk-or-x",
37
+ });
38
+ expect(ps.map((p) => p.id).sort()).toEqual(["agentic", "openrouter"]);
39
+ });
40
+ it("throws when REVIEW_MODELS set but OPENROUTER_API_KEY missing", () => {
41
+ expect(() => getEnabledProviders({ REVIEW_MODELS: "x/y" })).toThrow(/OPENROUTER_API_KEY/);
42
+ });
43
+ it("throws when OPENROUTER_API_KEY set but REVIEW_MODELS missing", () => {
44
+ expect(() => getEnabledProviders({ OPENROUTER_API_KEY: "sk" })).toThrow(/REVIEW_MODELS/);
45
+ });
46
+ it("treats whitespace-only REVIEW_MODELS as unset (and throws since OPENROUTER_API_KEY is set without effective models)", () => {
47
+ expect(() => getEnabledProviders({ REVIEW_MODELS: " , , ", OPENROUTER_API_KEY: "sk" })).toThrow(/REVIEW_MODELS/);
48
+ });
49
+ it("trims whitespace and drops empty entries from REVIEW_MODELS", () => {
50
+ const ps = getEnabledProviders({
51
+ REVIEW_MODELS: " m1 , , m2 ,",
52
+ OPENROUTER_API_KEY: "sk",
53
+ });
54
+ const fanout = ps.find((p) => p.id === "openrouter");
55
+ expect(fanout).toBeDefined();
56
+ // White-box: read the configured models off the provider.
57
+ const models = fanout.cfg.models;
58
+ expect(models).toEqual(["m1", "m2"]);
59
+ });
60
+ });
61
+ //# sourceMappingURL=review-provider-registry.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-provider-registry.test.js","sourceRoot":"","sources":["../../src/__tests__/review-provider-registry.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=runner-fanout-integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner-fanout-integration.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/runner-fanout-integration.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,107 @@
1
+ import { describe, it, expect, vi, beforeEach } from "vitest";
2
+ const { fanoutRunReview, agenticRunReview, insertReviewModelRunsMock, postFanoutCommentsToPRMock } = vi.hoisted(() => ({
3
+ fanoutRunReview: vi.fn(),
4
+ agenticRunReview: vi.fn(),
5
+ insertReviewModelRunsMock: vi.fn(),
6
+ postFanoutCommentsToPRMock: vi.fn(),
7
+ }));
8
+ vi.mock("../executor/review/review-provider.js", async (orig) => {
9
+ const real = await orig();
10
+ return {
11
+ ...real,
12
+ getEnabledProviders: () => [
13
+ { id: "agentic", runReview: agenticRunReview },
14
+ { id: "openrouter", runReview: fanoutRunReview },
15
+ ],
16
+ };
17
+ });
18
+ vi.mock("../db/review-model-runs.js", () => ({
19
+ insertReviewModelRuns: insertReviewModelRunsMock,
20
+ }));
21
+ vi.mock("../executor/review/post-fanout-comments.js", () => ({
22
+ postFanoutCommentsToPR: postFanoutCommentsToPRMock,
23
+ }));
24
+ describe("runner fanout integration", () => {
25
+ beforeEach(() => {
26
+ fanoutRunReview.mockReset();
27
+ agenticRunReview.mockReset();
28
+ insertReviewModelRunsMock.mockReset();
29
+ postFanoutCommentsToPRMock.mockReset();
30
+ });
31
+ it("runs fanout once per stage execution and persists rows; runner posts comments separately", async () => {
32
+ fanoutRunReview.mockResolvedValue([
33
+ {
34
+ modelId: "anthropic/claude-3.5-sonnet",
35
+ providerId: "openrouter",
36
+ status: "completed",
37
+ findings: [],
38
+ inputTokens: 1, outputTokens: 1, durationMs: 1,
39
+ },
40
+ ]);
41
+ agenticRunReview.mockResolvedValue([
42
+ {
43
+ modelId: "claude-haiku-4-5-20251001",
44
+ providerId: "agentic",
45
+ status: "completed",
46
+ findings: [],
47
+ inputTokens: 1, outputTokens: 1, durationMs: 1,
48
+ },
49
+ ]);
50
+ const { runReviewProviders } = await import("../pipeline/review-providers-runner.js");
51
+ const ctx = {
52
+ runId: "r1", stageRunId: "s1", workdir: "/tmp/x",
53
+ handoff: { runId: "r1", issueId: "i1", stage: "review", timestamp: "",
54
+ summary: "", filesChanged: [], approach: "",
55
+ context: { issueIntent: "x", constraints: [], assumptions: [] },
56
+ tokenBudget: { contextTokensUsed: 0, recommendedMaxTurns: 0 } },
57
+ baseRef: "main", prNumber: 42,
58
+ };
59
+ const result = await runReviewProviders(ctx, {
60
+ env: { REVIEW_MODELS: "anthropic/claude-3.5-sonnet", OPENROUTER_API_KEY: "sk-or" },
61
+ db: {},
62
+ });
63
+ expect(agenticRunReview).toHaveBeenCalledOnce();
64
+ expect(fanoutRunReview).toHaveBeenCalledOnce();
65
+ expect(insertReviewModelRunsMock).toHaveBeenCalledOnce();
66
+ const persisted = insertReviewModelRunsMock.mock.calls[0][2];
67
+ expect(persisted).toHaveLength(2);
68
+ // BEC-134: helper no longer posts; the runner posts after PR creation
69
+ // using `result.allRuns` filtered to non-agentic.
70
+ expect(postFanoutCommentsToPRMock).not.toHaveBeenCalled();
71
+ const fanoutFromResult = result.allRuns.filter((r) => r.providerId !== "agentic");
72
+ expect(fanoutFromResult).toHaveLength(1);
73
+ expect(fanoutFromResult[0].providerId).toBe("openrouter");
74
+ expect(result.agenticFindings).toHaveLength(0);
75
+ expect(result.totalInputTokens).toBe(2);
76
+ expect(result.totalOutputTokens).toBe(2);
77
+ });
78
+ it("does not post comments (helper never posts post-BEC-134)", async () => {
79
+ fanoutRunReview.mockResolvedValue([]);
80
+ agenticRunReview.mockResolvedValue([]);
81
+ const { runReviewProviders } = await import("../pipeline/review-providers-runner.js");
82
+ await runReviewProviders({ runId: "r1", stageRunId: "s1", workdir: "/tmp/x",
83
+ handoff: { runId: "r1", issueId: "i1", stage: "review", timestamp: "",
84
+ summary: "", filesChanged: [], approach: "",
85
+ context: { issueIntent: "x", constraints: [], assumptions: [] },
86
+ tokenBudget: { contextTokensUsed: 0, recommendedMaxTurns: 0 } },
87
+ baseRef: "main", prNumber: null }, { env: {}, db: {} });
88
+ expect(postFanoutCommentsToPRMock).not.toHaveBeenCalled();
89
+ });
90
+ it("does not throw if fanout provider rejects (best-effort)", async () => {
91
+ agenticRunReview.mockResolvedValue([
92
+ { modelId: "claude-haiku-4-5-20251001", providerId: "agentic", status: "completed",
93
+ findings: [], inputTokens: 0, outputTokens: 0, durationMs: 0 },
94
+ ]);
95
+ fanoutRunReview.mockRejectedValue(new Error("network gone"));
96
+ const { runReviewProviders } = await import("../pipeline/review-providers-runner.js");
97
+ const result = await runReviewProviders({ runId: "r1", stageRunId: "s1", workdir: "/tmp/x",
98
+ handoff: { runId: "r1", issueId: "i1", stage: "review", timestamp: "",
99
+ summary: "", filesChanged: [], approach: "",
100
+ context: { issueIntent: "x", constraints: [], assumptions: [] },
101
+ tokenBudget: { contextTokensUsed: 0, recommendedMaxTurns: 0 } },
102
+ baseRef: "main", prNumber: 1 }, { env: { REVIEW_MODELS: "x", OPENROUTER_API_KEY: "k" },
103
+ db: {} });
104
+ expect(result.agenticFindings).toEqual([]);
105
+ });
106
+ });
107
+ //# sourceMappingURL=runner-fanout-integration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner-fanout-integration.test.js","sourceRoot":"","sources":["../../src/__tests__/runner-fanout-integration.test.ts"],"names":[],"mappings":"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"}
@@ -104,4 +104,58 @@ export declare function policyReviewersRequestedEvent(args: {
104
104
  users: string[];
105
105
  teams: string[];
106
106
  }): AuditEvent;
107
+ export declare function releaseFiredEvent(args: {
108
+ repoUrl: string;
109
+ branch: string;
110
+ tag: string;
111
+ sha: string;
112
+ mergedPrCount: number;
113
+ }): AuditEvent;
114
+ export declare function releaseSkippedEvent(args: {
115
+ repoUrl: string;
116
+ branch: string;
117
+ reason: string;
118
+ }): AuditEvent;
119
+ export declare function releaseApprovedEvent(args: {
120
+ repoUrl: string;
121
+ branch: string;
122
+ approvedBy: string;
123
+ }): AuditEvent;
124
+ export declare function releaseTagConflictEvent(args: {
125
+ repoUrl: string;
126
+ branch: string;
127
+ tag: string;
128
+ }): AuditEvent;
129
+ export declare function releasePartialEvent(args: {
130
+ repoUrl: string;
131
+ branch: string;
132
+ tag: string;
133
+ attemptCount: number;
134
+ }): AuditEvent;
135
+ export declare function slackPostFailedEvent(args: {
136
+ channel: string;
137
+ reason: string;
138
+ }): AuditEvent;
139
+ export declare function qaRunTriggeredEvent(args: {
140
+ repoUrl: string;
141
+ branch: string;
142
+ workflow: string;
143
+ runId: number;
144
+ sha: string;
145
+ }): AuditEvent;
146
+ export declare function qaRunCompletedEvent(args: {
147
+ repoUrl: string;
148
+ branch: string;
149
+ runId: number;
150
+ conclusion: "success" | "failure" | "cancelled" | "timed_out" | "action_required" | "skipped" | "stale" | "neutral";
151
+ durationMs: number;
152
+ /** Set to true when we synthesize a timeout (GitHub didn't conclude the run). */
153
+ synthetic?: boolean;
154
+ }): AuditEvent;
155
+ export declare function qaGapIssueFiledEvent(args: {
156
+ repoUrl: string;
157
+ branch: string;
158
+ workflowPath: string;
159
+ linearIssueId: string;
160
+ }): AuditEvent;
107
161
  //# sourceMappingURL=events.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/audit/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/audit/events.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAkB9C,wBAAgB,eAAe,CAAC,IAAI,EAAE;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,UAAU,CAab;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,UAAU,CAYb;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,UAAU,CAQb;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,UAAU,CAQb;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,UAAU,CAcb;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,aAAa,EAAE,SAAS,GAAG,SAAS,GAAG,eAAe,GAAG,cAAc,CAAC;IACxE,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB,GAAG,UAAU,CAUb;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,UAAU,CAWb;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,UAAU,CAOb;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,iBAAiB,CAAC;CAC3B,GAAG,UAAU,CAOb;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,UAAU,CAcb;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,UAAU,CAcb;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,UAAU,CAYb;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,UAAU,CAab;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,UAAU,CAOb;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;CACtB,GAAG,UAAU,CAQb;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;CACtB,GAAG,UAAU,CAab;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,UAAU,CASb;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,GAAG,UAAU,CAQb;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,UAAU,CAab;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,UAAU,CAQb;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,UAAU,CAQb;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb,GAAG,UAAU,CAQb;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,UAAU,CAQb;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,UAAU,CAOb;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb,GAAG,UAAU,CAab;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,iBAAiB,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACpH,UAAU,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG,UAAU,CAcb;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,UAAU,CAYb"}
@@ -218,4 +218,104 @@ export function policyReviewersRequestedEvent(args) {
218
218
  payload: { prUrl: args.prUrl, users: args.users, teams: args.teams },
219
219
  });
220
220
  }
221
+ export function releaseFiredEvent(args) {
222
+ return base({
223
+ eventType: "release.fired",
224
+ actor: "release-manager",
225
+ actorType: "release-manager",
226
+ scope: `repo:${args.repoUrl}`,
227
+ payload: {
228
+ branch: args.branch,
229
+ tag: args.tag,
230
+ sha: args.sha,
231
+ mergedPrCount: args.mergedPrCount,
232
+ },
233
+ });
234
+ }
235
+ export function releaseSkippedEvent(args) {
236
+ return base({
237
+ eventType: "release.skipped",
238
+ actor: "release-manager",
239
+ actorType: "release-manager",
240
+ scope: `repo:${args.repoUrl}`,
241
+ payload: { branch: args.branch, reason: args.reason },
242
+ });
243
+ }
244
+ export function releaseApprovedEvent(args) {
245
+ return base({
246
+ eventType: "release.approved",
247
+ actor: `slack:${args.approvedBy}`,
248
+ actorType: "release-manager",
249
+ scope: `repo:${args.repoUrl}`,
250
+ payload: { branch: args.branch, approvedBy: args.approvedBy },
251
+ });
252
+ }
253
+ export function releaseTagConflictEvent(args) {
254
+ return base({
255
+ eventType: "release.tag_conflict",
256
+ actor: "release-manager",
257
+ actorType: "release-manager",
258
+ scope: `repo:${args.repoUrl}`,
259
+ payload: { branch: args.branch, tag: args.tag },
260
+ });
261
+ }
262
+ export function releasePartialEvent(args) {
263
+ return base({
264
+ eventType: "release.partial",
265
+ actor: "release-manager",
266
+ actorType: "release-manager",
267
+ scope: `repo:${args.repoUrl}`,
268
+ payload: { branch: args.branch, tag: args.tag, attemptCount: args.attemptCount },
269
+ });
270
+ }
271
+ export function slackPostFailedEvent(args) {
272
+ return base({
273
+ eventType: "slack.post_failed",
274
+ actor: "release-manager",
275
+ actorType: "release-manager",
276
+ payload: { channel: args.channel, reason: args.reason },
277
+ });
278
+ }
279
+ export function qaRunTriggeredEvent(args) {
280
+ return base({
281
+ eventType: "qa.run_triggered",
282
+ actor: "release-manager",
283
+ actorType: "release-manager",
284
+ scope: `repo:${args.repoUrl}`,
285
+ payload: {
286
+ branch: args.branch,
287
+ workflow: args.workflow,
288
+ runId: args.runId,
289
+ sha: args.sha,
290
+ },
291
+ });
292
+ }
293
+ export function qaRunCompletedEvent(args) {
294
+ return base({
295
+ eventType: "qa.run_completed",
296
+ actor: "release-manager",
297
+ actorType: "release-manager",
298
+ scope: `repo:${args.repoUrl}`,
299
+ payload: {
300
+ branch: args.branch,
301
+ runId: args.runId,
302
+ conclusion: args.conclusion,
303
+ durationMs: args.durationMs,
304
+ synthetic: args.synthetic ?? false,
305
+ },
306
+ });
307
+ }
308
+ export function qaGapIssueFiledEvent(args) {
309
+ return base({
310
+ eventType: "qa.gap_issue_filed",
311
+ actor: "release-manager",
312
+ actorType: "release-manager",
313
+ scope: `repo:${args.repoUrl}`,
314
+ payload: {
315
+ branch: args.branch,
316
+ workflowPath: args.workflowPath,
317
+ linearIssueId: args.linearIssueId,
318
+ },
319
+ });
320
+ }
221
321
  //# sourceMappingURL=events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/audit/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/audit/events.ts"],"names":[],"mappings":"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"}
@@ -4,9 +4,15 @@ import type { AuditEvent } from "../types.js";
4
4
  * Fire-and-forget insert of an audit event. Write failures are logged but
5
5
  * never propagated — audit writes must not crash the caller.
6
6
  *
7
- * Gated on the `audit-log` enterprise feature (spec §8): when unlicensed,
8
- * this is a no-op so OSS/Pro deployments do not accumulate audit_events rows
9
- * indefinitely (retention sweep is also gated).
7
+ * Gated on the `audit-log` enterprise feature: when unlicensed, this is a
8
+ * no-op. This gate exists so events from Enterprise-only features (cost
9
+ * rollups, RBAC, SSO, org-policy) do not accumulate rows on Pro/OSS
10
+ * deployments that have no way to query, prune, or export them.
11
+ *
12
+ * **Pro-tier features (PM agent, Release Manager) emit their audit events
13
+ * via `logAuditEventUnchecked` instead** — those rows must appear in the
14
+ * audit table whenever the feature itself is licensed, regardless of
15
+ * whether the Enterprise audit-log dashboard is unlocked.
10
16
  *
11
17
  * Uses a dynamic import of `../license.js` to avoid a circular-import cycle
12
18
  * (license.ts calls into this module to record license-validation failures
@@ -16,11 +22,19 @@ import type { AuditEvent } from "../types.js";
16
22
  */
17
23
  export declare function logAuditEvent(db: AnyDb, event: AuditEvent): Promise<void>;
18
24
  /**
19
- * Unchecked writer used by the license-validation failure path itself.
20
- * Bypasses the `audit-log` feature gate because (a) recording why a license
21
- * was rejected must not depend on that license being valid, and (b) the
22
- * event is emitted at most once per process (license status is cached).
23
- * Do not use this from other call sites.
25
+ * Unchecked writer that bypasses the `audit-log` Enterprise feature gate.
26
+ *
27
+ * Used by:
28
+ * 1. The license-validation failure path itself recording why a license
29
+ * was rejected must not depend on that license being valid. (Bonus: the
30
+ * event fires at most once per process, since license status is cached.)
31
+ * 2. Pro-tier feature events (PM agent decisions, Release Manager
32
+ * fire/skip/approval/conflict events) — these must appear in the audit
33
+ * table whenever the Pro feature is licensed, independent of the
34
+ * Enterprise audit-log dashboard being unlocked.
35
+ *
36
+ * Use sparingly. Enterprise-only features should continue to use
37
+ * `logAuditEvent` so their events are properly gated.
24
38
  */
25
39
  export declare function logAuditEventUnchecked(db: AnyDb, event: AuditEvent): Promise<void>;
26
40
  //# sourceMappingURL=writer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/audit/writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AA2B9C;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CACjC,EAAE,EAAE,KAAK,EACT,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,KAAK,EACT,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,IAAI,CAAC,CAEf"}
1
+ {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/audit/writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AA2B9C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,aAAa,CACjC,EAAE,EAAE,KAAK,EACT,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,KAAK,EACT,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,IAAI,CAAC,CAEf"}
@@ -25,9 +25,15 @@ async function insertAuditEvent(db, event) {
25
25
  * Fire-and-forget insert of an audit event. Write failures are logged but
26
26
  * never propagated — audit writes must not crash the caller.
27
27
  *
28
- * Gated on the `audit-log` enterprise feature (spec §8): when unlicensed,
29
- * this is a no-op so OSS/Pro deployments do not accumulate audit_events rows
30
- * indefinitely (retention sweep is also gated).
28
+ * Gated on the `audit-log` enterprise feature: when unlicensed, this is a
29
+ * no-op. This gate exists so events from Enterprise-only features (cost
30
+ * rollups, RBAC, SSO, org-policy) do not accumulate rows on Pro/OSS
31
+ * deployments that have no way to query, prune, or export them.
32
+ *
33
+ * **Pro-tier features (PM agent, Release Manager) emit their audit events
34
+ * via `logAuditEventUnchecked` instead** — those rows must appear in the
35
+ * audit table whenever the feature itself is licensed, regardless of
36
+ * whether the Enterprise audit-log dashboard is unlocked.
31
37
  *
32
38
  * Uses a dynamic import of `../license.js` to avoid a circular-import cycle
33
39
  * (license.ts calls into this module to record license-validation failures
@@ -42,11 +48,19 @@ export async function logAuditEvent(db, event) {
42
48
  await insertAuditEvent(db, event);
43
49
  }
44
50
  /**
45
- * Unchecked writer used by the license-validation failure path itself.
46
- * Bypasses the `audit-log` feature gate because (a) recording why a license
47
- * was rejected must not depend on that license being valid, and (b) the
48
- * event is emitted at most once per process (license status is cached).
49
- * Do not use this from other call sites.
51
+ * Unchecked writer that bypasses the `audit-log` Enterprise feature gate.
52
+ *
53
+ * Used by:
54
+ * 1. The license-validation failure path itself recording why a license
55
+ * was rejected must not depend on that license being valid. (Bonus: the
56
+ * event fires at most once per process, since license status is cached.)
57
+ * 2. Pro-tier feature events (PM agent decisions, Release Manager
58
+ * fire/skip/approval/conflict events) — these must appear in the audit
59
+ * table whenever the Pro feature is licensed, independent of the
60
+ * Enterprise audit-log dashboard being unlocked.
61
+ *
62
+ * Use sparingly. Enterprise-only features should continue to use
63
+ * `logAuditEvent` so their events are properly gated.
50
64
  */
51
65
  export async function logAuditEventUnchecked(db, event) {
52
66
  await insertAuditEvent(db, event);
@@ -1 +1 @@
1
- {"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/audit/writer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;AAExD,KAAK,UAAU,gBAAgB,CAAC,EAAS,EAAE,KAAiB;IAC1D,IAAI,CAAC;QACH,MAAO,EAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;YAC3C,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;SAC7C,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CACN,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,EACjD,0BAA0B,CAC3B,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,EAAS,EACT,KAAiB;IAEjB,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IAC5D,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC;QAAE,OAAO;IAC5C,MAAM,gBAAgB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,EAAS,EACT,KAAiB;IAEjB,MAAM,gBAAgB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/audit/writer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;AAExD,KAAK,UAAU,gBAAgB,CAAC,EAAS,EAAE,KAAiB;IAC1D,IAAI,CAAC;QACH,MAAO,EAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;YAC3C,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;SAC7C,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CACN,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,EACjD,0BAA0B,CAC3B,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,EAAS,EACT,KAAiB;IAEjB,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IAC5D,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC;QAAE,OAAO;IAC5C,MAAM,gBAAgB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,EAAS,EACT,KAAiB;IAEjB,MAAM,gBAAgB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../src/cost/aggregate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAK7C,OAAO,KAAK,EAAE,eAAe,EAAuC,MAAM,YAAY,CAAC;AAmBvF,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAK7F;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,IAAI,CAAC;IACX,EAAE,EAAE,IAAI,CAAC;CACV;AAED,UAAU,UAAU;IAClB,KAAK,CAAC,EAAE;QACN,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,eAAe,EAAE,MAAM,CAAC;YAAC,gBAAgB,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACrF,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC,CAAC;IACF,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACvC;AAeD,wBAAsB,YAAY,CAChC,EAAE,EAAE,KAAK,EACT,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,UAAU,EAClB,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAC9B,OAAO,CAAC,eAAe,CAAC,CAiI1B;AAED,uEAAuE;AACvE,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAE/C;AAyID;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,eAAe,CACnC,EAAE,EAAE,KAAK,EACT,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,UAAU,EAClB,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,IAAI,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAO,GACnE,OAAO,CAAC,eAAe,CAAC,CAmF1B"}
1
+ {"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../src/cost/aggregate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAK7C,OAAO,KAAK,EAAE,eAAe,EAAuC,MAAM,YAAY,CAAC;AAmBvF,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAK7F;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,IAAI,CAAC;IACX,EAAE,EAAE,IAAI,CAAC;CACV;AAED,UAAU,UAAU;IAClB,KAAK,CAAC,EAAE;QACN,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,eAAe,EAAE,MAAM,CAAC;YAAC,gBAAgB,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACrF,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC,CAAC;IACF,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACvC;AAeD,wBAAsB,YAAY,CAChC,EAAE,EAAE,KAAK,EACT,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,UAAU,EAClB,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAC9B,OAAO,CAAC,eAAe,CAAC,CAgJ1B;AAED,uEAAuE;AACvE,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAE/C;AAyID;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,eAAe,CACnC,EAAE,EAAE,KAAK,EACT,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,UAAU,EAClB,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,IAAI,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAO,GACnE,OAAO,CAAC,eAAe,CAAC,CAmF1B"}