@momentiq/dark-factory-cli 1.0.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/README.md +121 -40
  2. package/dist/adapters/codex-sdk.d.ts +66 -0
  3. package/dist/adapters/codex-sdk.d.ts.map +1 -1
  4. package/dist/adapters/codex-sdk.js +321 -4
  5. package/dist/adapters/codex-sdk.js.map +1 -1
  6. package/dist/adapters/critic-result-schema.d.ts +15 -10
  7. package/dist/adapters/critic-result-schema.d.ts.map +1 -1
  8. package/dist/adapters/critic-result-schema.js +10 -0
  9. package/dist/adapters/critic-result-schema.js.map +1 -1
  10. package/dist/adapters/cursor-cli.d.ts +19 -1
  11. package/dist/adapters/cursor-cli.d.ts.map +1 -1
  12. package/dist/adapters/cursor-cli.js +96 -14
  13. package/dist/adapters/cursor-cli.js.map +1 -1
  14. package/dist/adapters/index.d.ts +1 -0
  15. package/dist/adapters/index.d.ts.map +1 -1
  16. package/dist/adapters/index.js +7 -0
  17. package/dist/adapters/index.js.map +1 -1
  18. package/dist/adapters/static-schema-lint.d.ts +68 -0
  19. package/dist/adapters/static-schema-lint.d.ts.map +1 -0
  20. package/dist/adapters/static-schema-lint.js +813 -0
  21. package/dist/adapters/static-schema-lint.js.map +1 -0
  22. package/dist/branch-protection/spec-default.yaml +2 -2
  23. package/dist/cli.d.ts +17 -1
  24. package/dist/cli.d.ts.map +1 -1
  25. package/dist/cli.js +414 -113
  26. package/dist/cli.js.map +1 -1
  27. package/dist/commands/findings.d.ts +6 -0
  28. package/dist/commands/findings.d.ts.map +1 -0
  29. package/dist/commands/findings.js +196 -0
  30. package/dist/commands/findings.js.map +1 -0
  31. package/dist/commands/show.d.ts +11 -0
  32. package/dist/commands/show.d.ts.map +1 -0
  33. package/dist/commands/show.js +78 -0
  34. package/dist/commands/show.js.map +1 -0
  35. package/dist/commands/skills.d.ts +6 -0
  36. package/dist/commands/skills.d.ts.map +1 -0
  37. package/dist/commands/skills.js +248 -0
  38. package/dist/commands/skills.js.map +1 -0
  39. package/dist/commands/status.d.ts +6 -0
  40. package/dist/commands/status.d.ts.map +1 -0
  41. package/dist/commands/status.js +85 -0
  42. package/dist/commands/status.js.map +1 -0
  43. package/dist/compact/index.d.ts +2 -0
  44. package/dist/compact/index.d.ts.map +1 -0
  45. package/dist/compact/index.js +3 -0
  46. package/dist/compact/index.js.map +1 -0
  47. package/dist/compact/lockfile.d.ts +53 -0
  48. package/dist/compact/lockfile.d.ts.map +1 -0
  49. package/dist/compact/lockfile.js +626 -0
  50. package/dist/compact/lockfile.js.map +1 -0
  51. package/dist/cycle-doc-validator/validate_cycle_doc.py +39 -9
  52. package/dist/doctor.d.ts +51 -1
  53. package/dist/doctor.d.ts.map +1 -1
  54. package/dist/doctor.js +497 -1
  55. package/dist/doctor.js.map +1 -1
  56. package/dist/evidence/docker-build.d.ts +6 -0
  57. package/dist/evidence/docker-build.d.ts.map +1 -0
  58. package/dist/evidence/docker-build.js +199 -0
  59. package/dist/evidence/docker-build.js.map +1 -0
  60. package/dist/evidence/index.d.ts +1 -0
  61. package/dist/evidence/index.d.ts.map +1 -1
  62. package/dist/evidence/index.js +6 -0
  63. package/dist/evidence/index.js.map +1 -1
  64. package/dist/handoff/handoff-verb.d.ts.map +1 -1
  65. package/dist/handoff/handoff-verb.js +6 -3
  66. package/dist/handoff/handoff-verb.js.map +1 -1
  67. package/dist/handoff/ports.d.ts +8 -0
  68. package/dist/handoff/ports.d.ts.map +1 -1
  69. package/dist/handoff/real-clients.js +1 -1
  70. package/dist/handoff/real-clients.js.map +1 -1
  71. package/dist/index.d.ts +2 -0
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +8 -0
  74. package/dist/index.js.map +1 -1
  75. package/dist/lib/show-status-core.d.ts +63 -0
  76. package/dist/lib/show-status-core.d.ts.map +1 -0
  77. package/dist/lib/show-status-core.js +156 -0
  78. package/dist/lib/show-status-core.js.map +1 -0
  79. package/dist/mcp/prompts.d.ts.map +1 -1
  80. package/dist/mcp/prompts.js +113 -78
  81. package/dist/mcp/prompts.js.map +1 -1
  82. package/dist/mcp/resources.js +1 -1
  83. package/dist/mcp/resources.js.map +1 -1
  84. package/dist/mcp/server.d.ts.map +1 -1
  85. package/dist/mcp/server.js +2 -0
  86. package/dist/mcp/server.js.map +1 -1
  87. package/dist/mcp/tools/doctor.d.ts.map +1 -1
  88. package/dist/mcp/tools/doctor.js +5 -0
  89. package/dist/mcp/tools/doctor.js.map +1 -1
  90. package/dist/mcp/tools/findings.d.ts +0 -22
  91. package/dist/mcp/tools/findings.d.ts.map +1 -1
  92. package/dist/mcp/tools/findings.js +5 -73
  93. package/dist/mcp/tools/findings.js.map +1 -1
  94. package/dist/mcp/tools/handoff.d.ts.map +1 -1
  95. package/dist/mcp/tools/handoff.js +10 -17
  96. package/dist/mcp/tools/handoff.js.map +1 -1
  97. package/dist/mcp/tools/review-bypass.d.ts.map +1 -1
  98. package/dist/mcp/tools/review-bypass.js +22 -1
  99. package/dist/mcp/tools/review-bypass.js.map +1 -1
  100. package/dist/mcp/tools/skills-install.d.ts +6 -0
  101. package/dist/mcp/tools/skills-install.d.ts.map +1 -0
  102. package/dist/mcp/tools/skills-install.js +260 -0
  103. package/dist/mcp/tools/skills-install.js.map +1 -0
  104. package/dist/mcp/tools/stats-gate.d.ts.map +1 -1
  105. package/dist/mcp/tools/stats-gate.js +63 -15
  106. package/dist/mcp/tools/stats-gate.js.map +1 -1
  107. package/dist/policy/baseline.d.ts.map +1 -1
  108. package/dist/policy/baseline.js +11 -3
  109. package/dist/policy/baseline.js.map +1 -1
  110. package/dist/policy/gate.d.ts +1 -1
  111. package/dist/policy/gate.d.ts.map +1 -1
  112. package/dist/policy/gate.js +96 -12
  113. package/dist/policy/gate.js.map +1 -1
  114. package/dist/prompt.d.ts +1 -0
  115. package/dist/prompt.d.ts.map +1 -1
  116. package/dist/prompt.js +123 -4
  117. package/dist/prompt.js.map +1 -1
  118. package/dist/report.d.ts +130 -3
  119. package/dist/report.d.ts.map +1 -1
  120. package/dist/report.js +367 -10
  121. package/dist/report.js.map +1 -1
  122. package/dist/runner.d.ts +6 -0
  123. package/dist/runner.d.ts.map +1 -1
  124. package/dist/runner.js +213 -4
  125. package/dist/runner.js.map +1 -1
  126. package/dist/self-consistency.d.ts +144 -0
  127. package/dist/self-consistency.d.ts.map +1 -0
  128. package/dist/self-consistency.js +368 -0
  129. package/dist/self-consistency.js.map +1 -0
  130. package/dist/skills/config.d.ts +176 -0
  131. package/dist/skills/config.d.ts.map +1 -0
  132. package/dist/skills/config.js +251 -0
  133. package/dist/skills/config.js.map +1 -0
  134. package/dist/skills/index.d.ts +4 -0
  135. package/dist/skills/index.d.ts.map +1 -0
  136. package/dist/skills/index.js +8 -0
  137. package/dist/skills/index.js.map +1 -0
  138. package/dist/skills/install.d.ts +62 -0
  139. package/dist/skills/install.d.ts.map +1 -0
  140. package/dist/skills/install.js +315 -0
  141. package/dist/skills/install.js.map +1 -0
  142. package/dist/skills/template.d.ts +42 -0
  143. package/dist/skills/template.d.ts.map +1 -0
  144. package/dist/skills/template.js +95 -0
  145. package/dist/skills/template.js.map +1 -0
  146. package/dist/trusted-surface/rebind.d.ts.map +1 -1
  147. package/dist/trusted-surface/rebind.js +199 -2
  148. package/dist/trusted-surface/rebind.js.map +1 -1
  149. package/package.json +36 -2
  150. package/skills/README.md +89 -0
  151. package/skills/chief-engineer-blitz/SKILL.md.tmpl +443 -0
  152. package/skills/chief-engineer-blitz/skill.json +53 -0
  153. package/skills/chief-engineer-review/SKILL.md.tmpl +184 -0
  154. package/skills/chief-engineer-review/references/review-examples.md.tmpl +130 -0
  155. package/skills/chief-engineer-review/skill.json +67 -0
  156. package/skills/chief-engineer-review/templates/code-review-prompt.md.tmpl +111 -0
  157. package/skills/chief-engineer-review/templates/escalation-prompt.md.tmpl +56 -0
  158. package/skills/chief-engineer-review/templates/plan-review-prompt.md.tmpl +74 -0
  159. package/skills/skill-schema.json +73 -0
@@ -0,0 +1,260 @@
1
+ // df_skills_install + df_skills_list MCP tools — DFP #192.
2
+ //
3
+ // Parallel surface to the `df skills install / list` CLI subcommand.
4
+ // Same `installSkill` / `listBundledSkills` core powers both — the tool
5
+ // here only wraps the IO + adapts the result shape into MCP's structured
6
+ // content envelope.
7
+ //
8
+ // Tool shapes:
9
+ //
10
+ // df_skills_install →
11
+ // input { skillName, all?, force?, targetDir? }
12
+ // output { installed: [{ skillName, manifestVersion, configPath,
13
+ // configIsDefault, files: [...] , resolvedVariables: [...] }] }
14
+ //
15
+ // df_skills_list →
16
+ // input {}
17
+ // output { skills: [{ name, version, summary, originatingRepo? }] }
18
+ //
19
+ // Both tools default to the agent client's cwd (where `df mcp` was
20
+ // launched), matching every other tool in this catalog. Tests inject a
21
+ // fixture cwd via the cwd option.
22
+ import { resolve } from "node:path";
23
+ import { z } from "zod";
24
+ import { enabledSkillNames, loadDarkFactoryConfig, } from "../../skills/config.js";
25
+ import { installSkill, KNOWN_SKILLS, listBundledSkills, } from "../../skills/install.js";
26
+ function renderInstallMarkdown(results) {
27
+ if (results.length === 0) {
28
+ return `**df_skills_install**: no skills installed.`;
29
+ }
30
+ const lines = [];
31
+ for (const r of results) {
32
+ lines.push(`**df_skills_install**: ${r.skillName} v${r.manifestVersion} — ${r.files.length} file(s)`);
33
+ lines.push(` config: ${r.configPath}${r.configIsDefault ? " (defaults — no darkfactory.yaml)" : ""}`);
34
+ for (const f of r.files) {
35
+ if (f.action === "skipped") {
36
+ lines.push(` ! ${f.relTarget} — SKIPPED (${f.reason ?? "skipped"})`);
37
+ }
38
+ else {
39
+ lines.push(` - ${f.relTarget} — ${f.action}`);
40
+ }
41
+ }
42
+ }
43
+ return lines.join("\n");
44
+ }
45
+ export function registerSkillsTools(server, opts = {}) {
46
+ server.registerTool("df_skills_install", {
47
+ title: "Install a bundled Dark Factory skill",
48
+ description: "Render + install one (or all) bundled skill(s) into the consumer " +
49
+ "repo's .claude/skills/<name>/ directory. The skill body templates " +
50
+ "are rendered against the consumer's darkfactory.yaml (with sensible " +
51
+ "defaults when keys are absent). The rendered files carry a GENERATED " +
52
+ "header — a re-install with the same inputs is a no-op; a re-install " +
53
+ "with different inputs overwrites; a re-install where the rendered " +
54
+ "file has been hand-edited is SKIPPED unless force=true. " +
55
+ `Bundled skills: ${KNOWN_SKILLS.join(", ")}.`,
56
+ inputSchema: {
57
+ skillName: z
58
+ .string()
59
+ .min(1)
60
+ .optional()
61
+ .describe(`Skill name to install. Required unless 'all' is true. One of: ${KNOWN_SKILLS.join(", ")}.`),
62
+ all: z
63
+ .boolean()
64
+ .optional()
65
+ .describe("If true, install every skill declared `enabled: true` in darkfactory.yaml#skills. " +
66
+ "Mutually exclusive with skillName."),
67
+ force: z
68
+ .boolean()
69
+ .optional()
70
+ .describe("Overwrite hand-edited rendered files. Off by default — re-install " +
71
+ "of a hand-edited file returns action=skipped instead."),
72
+ targetDir: z
73
+ .string()
74
+ .optional()
75
+ .describe("Override the install location (default: <cwd>/.claude/skills/<name>/). " +
76
+ "Tests pass a fixture dir; production callers omit this."),
77
+ },
78
+ outputSchema: {
79
+ installed: z
80
+ .array(z.object({
81
+ skillName: z.string(),
82
+ manifestVersion: z.string(),
83
+ configPath: z.string(),
84
+ configIsDefault: z.boolean(),
85
+ resolvedVariables: z.array(z.object({ name: z.string(), value: z.string() })),
86
+ files: z.array(z.object({
87
+ relTarget: z.string(),
88
+ absoluteTarget: z.string(),
89
+ action: z.enum(["created", "updated", "unchanged", "skipped"]),
90
+ reason: z.string().optional(),
91
+ })),
92
+ }))
93
+ .describe("One result per installed skill. action='skipped' means the file " +
94
+ "exists without the GENERATED marker and force was not set."),
95
+ },
96
+ annotations: {
97
+ readOnlyHint: false,
98
+ destructiveHint: false,
99
+ idempotentHint: true,
100
+ openWorldHint: false,
101
+ },
102
+ }, async ({ skillName, all, force, targetDir }) => {
103
+ const cwd = resolve(opts.cwd ?? process.cwd());
104
+ if (all === true && skillName !== undefined) {
105
+ return {
106
+ isError: true,
107
+ content: [
108
+ {
109
+ type: "text",
110
+ text: `**df_skills_install**: cannot pass both skillName and all=true.`,
111
+ },
112
+ ],
113
+ };
114
+ }
115
+ if (all !== true && skillName === undefined) {
116
+ return {
117
+ isError: true,
118
+ content: [
119
+ {
120
+ type: "text",
121
+ text: `**df_skills_install**: skillName is required (or pass all=true).`,
122
+ },
123
+ ],
124
+ };
125
+ }
126
+ let targetSkills;
127
+ if (all === true) {
128
+ if (targetDir !== undefined) {
129
+ return {
130
+ isError: true,
131
+ content: [
132
+ {
133
+ type: "text",
134
+ text: `**df_skills_install**: all=true is incompatible with targetDir (bundled skills share target filenames like SKILL.md, so a single dir would overwrite). Install each skill separately, or omit targetDir to use the default <cwd>/.claude/skills/<name>/.`,
135
+ },
136
+ ],
137
+ };
138
+ }
139
+ try {
140
+ const loaded = loadDarkFactoryConfig(cwd);
141
+ const enabled = enabledSkillNames(loaded.config);
142
+ if (enabled.length === 0) {
143
+ return {
144
+ isError: true,
145
+ content: [
146
+ {
147
+ type: "text",
148
+ text: `**df_skills_install**: all=true but no skills marked enabled: true in ${loaded.configPath}` +
149
+ `${loaded.isDefault ? " (no darkfactory.yaml present)" : ""}.`,
150
+ },
151
+ ],
152
+ };
153
+ }
154
+ const unknown = enabled.filter((name) => !KNOWN_SKILLS.includes(name));
155
+ if (unknown.length > 0) {
156
+ return {
157
+ isError: true,
158
+ content: [
159
+ {
160
+ type: "text",
161
+ text: `**df_skills_install**: all=true rejected — unknown skill name(s) in ${loaded.configPath}: ${unknown.join(", ")}. Known skills: ${KNOWN_SKILLS.join(", ")}.`,
162
+ },
163
+ ],
164
+ };
165
+ }
166
+ targetSkills = enabled;
167
+ }
168
+ catch (err) {
169
+ return {
170
+ isError: true,
171
+ content: [
172
+ {
173
+ type: "text",
174
+ text: `**df_skills_install**: failed to load darkfactory.yaml — ${err.message}`,
175
+ },
176
+ ],
177
+ };
178
+ }
179
+ }
180
+ else {
181
+ targetSkills = [skillName];
182
+ }
183
+ const results = [];
184
+ for (const name of targetSkills) {
185
+ try {
186
+ const installOpts = {
187
+ cwd,
188
+ skillName: name,
189
+ ...(force === true ? { force: true } : {}),
190
+ ...(targetDir !== undefined ? { targetDir } : {}),
191
+ };
192
+ results.push(installSkill(installOpts));
193
+ }
194
+ catch (err) {
195
+ return {
196
+ isError: true,
197
+ content: [
198
+ {
199
+ type: "text",
200
+ text: `**df_skills_install**: ${err.message}`,
201
+ },
202
+ ],
203
+ };
204
+ }
205
+ }
206
+ // Mirror the CLI's exit-code 3 contract: when ANY rendered file was
207
+ // skipped (hand-edited, body-mismatch, or pre-template detection),
208
+ // surface that as an MCP-level error so the agent caller does not
209
+ // silently accept a partial install. The structuredContent still
210
+ // carries the full per-file detail so the caller can decide whether
211
+ // to retry with force=true.
212
+ const hasSkipped = results.some((r) => r.files.some((f) => f.action === "skipped"));
213
+ const summary = renderInstallMarkdown(results);
214
+ const text = hasSkipped
215
+ ? `${summary}\n\nOne or more files were skipped. Re-call with force=true to overwrite.`
216
+ : summary;
217
+ return {
218
+ ...(hasSkipped ? { isError: true } : {}),
219
+ structuredContent: { installed: results },
220
+ content: [{ type: "text", text }],
221
+ };
222
+ });
223
+ server.registerTool("df_skills_list", {
224
+ title: "List bundled Dark Factory skills",
225
+ description: "List every skill bundled with @momentiq/dark-factory-cli: name, " +
226
+ "manifest version, summary, originating repo (when known). The " +
227
+ "complementary action is df_skills_install.",
228
+ inputSchema: {},
229
+ outputSchema: {
230
+ skills: z
231
+ .array(z.object({
232
+ name: z.string(),
233
+ version: z.string(),
234
+ summary: z.string(),
235
+ originatingRepo: z.string().optional(),
236
+ }))
237
+ .describe("Sorted alphabetically by name. Empty when no skills are bundled."),
238
+ },
239
+ annotations: {
240
+ readOnlyHint: true,
241
+ openWorldHint: false,
242
+ },
243
+ }, async () => {
244
+ const items = listBundledSkills();
245
+ const lines = [
246
+ `**df_skills_list**: ${items.length} bundled skill(s)`,
247
+ ];
248
+ for (const item of items) {
249
+ lines.push(` - ${item.name} v${item.version}${item.originatingRepo ? ` (origin: ${item.originatingRepo})` : ""}`);
250
+ lines.push(` ${item.summary}`);
251
+ }
252
+ return {
253
+ structuredContent: { skills: items },
254
+ content: [
255
+ { type: "text", text: lines.join("\n") },
256
+ ],
257
+ };
258
+ });
259
+ }
260
+ //# sourceMappingURL=skills-install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills-install.js","sourceRoot":"","sources":["../../../src/mcp/tools/skills-install.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stats-gate.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/stats-gate.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAerE,MAAM,WAAW,6BAA6B;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAID,UAAU,eAAe;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,UAAU,gBAAgB;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACpD,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;QAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;KAC/B,CAAC;CACH;AAgBD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,SAAS,cAAc,EAAE,EACjC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,aAAa,CA+Bf;AAID,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,OAAO,GAAG,iBAAiB,CAAC;AAEtE,UAAU,gBAAgB;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC9C,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CAClC;AAID,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,EACjB,IAAI,GAAE,6BAAkC,GACvC,IAAI,CA2PN"}
1
+ {"version":3,"file":"stats-gate.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/stats-gate.ts"],"names":[],"mappings":"AAiDA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAerE,MAAM,WAAW,6BAA6B;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAID,UAAU,eAAe;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,UAAU,gBAAgB;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACpD,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;QAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;KAC/B,CAAC;CACH;AAgBD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,SAAS,cAAc,EAAE,EACjC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,aAAa,CA+Bf;AAID,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,OAAO,GAAG,iBAAiB,CAAC;AAEtE,UAAU,gBAAgB;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC9C,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CAClC;AAID,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,EACjB,IAAI,GAAE,6BAAkC,GACvC,IAAI,CA2RN"}
@@ -14,12 +14,29 @@
14
14
  // available via the resource surface (`df://repo/audit-log` for raw
15
15
  // NDJSON; clients can recompute).
16
16
  //
17
- // df_gate_push wraps `runCommitGate` for each commit in the pushed
18
- // range. The spec explicitly notes: "the stdio MCP server already
19
- // owns stdin; pass the protocol data as a tool argument." So the
20
- // `stdin_protocol` input string is what git's pre-push hook would
21
- // write to stdin — newline-separated `<localRef> <localSha>
22
- // <remoteRef> <remoteSha>` lines.
17
+ // df_gate_push wraps `runCommitGate` for each pushed range. The spec
18
+ // explicitly notes: "the stdio MCP server already owns stdin; pass the
19
+ // protocol data as a tool argument." So the `stdin_protocol` input
20
+ // string is what git's pre-push hook would write to stdin — newline-
21
+ // separated `<localRef> <localSha> <remoteRef> <remoteSha>` lines.
22
+ //
23
+ // Default semantic (Cycle 13 / dark-factory-platform#149) — mirrors the
24
+ // CLI `df gate-push` flip: ONLY the HEAD (last) commit of each push
25
+ // update is evaluated. Intermediate commits' per-SHA artifacts at
26
+ // `.git/agent-reviews/<sha>.json` are iteration receipts (inspect them
27
+ // with `df findings --range <base>..<head>` or the matching MCP
28
+ // resource at `df://repo/findings/{sha}`), but they do not influence
29
+ // the verdict. Opt back into the legacy per-commit semantic with the
30
+ // `full_range: true` input — use it for forensic replay or per-commit
31
+ // deploy-log audit.
32
+ //
33
+ // Soundness caveat — the same one applies to the CLI default: each
34
+ // per-SHA artifact reviews `parent..commit`, NOT `base..tip`. HEAD's
35
+ // APPROVED verdict therefore proves only the LAST INCREMENTAL change
36
+ // is safe; cumulative review of `base..tip` is not produced by the
37
+ // per-commit hook path. Set `full_range: true` (or run the CI cold-
38
+ // path agent-critic on the full PR diff) when cumulative soundness
39
+ // matters more than termination of the find-fix loop.
23
40
  //
24
41
  // The `'bypass-required'` verdict signals: the gate would block, AND
25
42
  // the policy permits an emergency bypass (`policy.allowEmergencyBypass:
@@ -167,13 +184,23 @@ export function registerStatsGateTools(server, opts = {}) {
167
184
  });
168
185
  server.registerTool("df_gate_push", {
169
186
  title: "Evaluate the pre-push gate for a pushed range",
170
- description: "Evaluate `df gate-push`'s gate against each commit in a " +
171
- "git pre-push protocol range. The `stdin_protocol` input is " +
172
- "what git would write to the husky pre-push hook's stdin — " +
173
- "newline-separated `<localRef> <localSha> <remoteRef> " +
174
- "<remoteSha>` lines. Returns the aggregate verdict + " +
175
- "per-commit blocking reasons. Read-only (does not push, " +
176
- "does not write artifacts).",
187
+ description: "Evaluate `df gate-push`'s gate over a git pre-push protocol " +
188
+ "range. Default (Cycle 13 / dark-factory-platform#149): " +
189
+ "evaluates ONLY the HEAD (final) commit of each push update; " +
190
+ "intermediate commits are iteration receipts (inspect with " +
191
+ "the matching `df findings --range` CLI subcommand or the " +
192
+ "`df://repo/findings/{sha}` resource) and do not influence the " +
193
+ "verdict. Set `full_range: true` to opt into the legacy per-" +
194
+ "commit semantic (gates every commit; any blocker vetoes). " +
195
+ "Soundness caveat: each per-SHA artifact reviews `parent.." +
196
+ "commit` only, NOT `base..tip` — HEAD's APPROVED verdict proves " +
197
+ "only the last incremental change. Use `full_range: true` (or " +
198
+ "the CI cold-path) when cumulative soundness matters. The " +
199
+ "`stdin_protocol` input is what git would write to the husky " +
200
+ "pre-push hook's stdin — newline-separated `<localRef> " +
201
+ "<localSha> <remoteRef> <remoteSha>` lines. Returns the " +
202
+ "aggregate verdict + per-commit blocking reasons. Read-only " +
203
+ "(does not push, does not write artifacts).",
177
204
  inputSchema: {
178
205
  stdin_protocol: z
179
206
  .string()
@@ -186,6 +213,15 @@ export function registerStatsGateTools(server, opts = {}) {
186
213
  .optional()
187
214
  .describe("Profile name (overrides AGENT_REVIEW_PROFILE env). " +
188
215
  "Defaults to `local`."),
216
+ full_range: z
217
+ .boolean()
218
+ .optional()
219
+ .describe("When true, restores the pre-Cycle-13 per-commit semantic: " +
220
+ "every commit in the push range is gated and any blocker " +
221
+ "vetoes the push. Default false (HEAD-only). Mirrors the " +
222
+ "`df gate-push --full-range` CLI flag and the " +
223
+ "DF_GATE_FULL_RANGE=1 env. Use for forensic replay or " +
224
+ "per-commit deploy-log audit."),
189
225
  },
190
226
  outputSchema: {
191
227
  verdict: z
@@ -216,7 +252,7 @@ export function registerStatsGateTools(server, opts = {}) {
216
252
  readOnlyHint: true,
217
253
  openWorldHint: false,
218
254
  },
219
- }, async ({ stdin_protocol, profile }) => {
255
+ }, async ({ stdin_protocol, profile, full_range }) => {
220
256
  const cwd = resolve(opts.cwd ?? process.cwd());
221
257
  let loaded;
222
258
  try {
@@ -238,11 +274,23 @@ export function registerStatsGateTools(server, opts = {}) {
238
274
  const reasons = [];
239
275
  let blocked = false;
240
276
  let commitsEvaluated = 0;
277
+ const useFullRange = full_range === true;
241
278
  for (const update of updates) {
242
279
  if (update.isDelete)
243
280
  continue;
244
281
  const commits = await commitsForPushUpdate(update, cwd);
245
- for (const sha of commits) {
282
+ if (commits.length === 0)
283
+ continue;
284
+ // Default (Cycle 13): gate ONLY HEAD — the last element of the
285
+ // rev-list-reverse walk. Intermediate commits' artifacts are
286
+ // iteration receipts (inspect via `df findings --range` or the
287
+ // `df://repo/findings/{sha}` resource). Legacy / opt-in
288
+ // (`full_range: true`): gate every commit in the range and let
289
+ // any blocker veto.
290
+ const toEvaluate = useFullRange
291
+ ? commits
292
+ : [commits[commits.length - 1] ?? ""];
293
+ for (const sha of toEvaluate) {
246
294
  commitsEvaluated += 1;
247
295
  const gateRes = await runCommitGate({
248
296
  loaded,
@@ -1 +1 @@
1
- {"version":3,"file":"stats-gate.js","sourceRoot":"","sources":["../../../src/mcp/tools/stats-gate.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,EAAE;AACF,sEAAsE;AACtE,EAAE;AACF,eAAe;AACf,gDAAgD;AAChD,EAAE;AACF,mBAAmB;AACnB,qEAAqE;AACrE,EAAE;AACF,yEAAyE;AACzE,sEAAsE;AACtE,sEAAsE;AACtE,oEAAoE;AACpE,kCAAkC;AAClC,EAAE;AACF,mEAAmE;AACnE,kEAAkE;AAClE,iEAAiE;AACjE,kEAAkE;AAClE,4DAA4D;AAC5D,kCAAkC;AAClC,EAAE;AACF,qEAAqE;AACrE,wEAAwE;AACxE,iEAAiE;AACjE,sDAAsD;AACtD,iEAAiE;AACjE,+CAA+C;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EACL,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAqChD,SAAS,oBAAoB,CAC3B,MAAiC,EACjC,KAAyB,EACzB,KAAyB;IAEzB,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK;QAAE,OAAO,MAAM,CAAC,KAAK,EAAE,CAAC;IAC5C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACzB,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC3C,IAAI,KAAK,IAAI,CAAC,CAAC,EAAE,GAAG,KAAK;YAAE,OAAO,KAAK,CAAC;QACxC,IAAI,KAAK,IAAI,CAAC,CAAC,EAAE,GAAG,KAAK;YAAE,OAAO,KAAK,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,MAAiC,EACjC,KAAyB,EACzB,KAAyB;IAEzB,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAoC,EAAE,CAAC;IACtD,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrD,SAAS,CAAC,EAAE,CAAC,GAAG;YACd,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,iBAAiB,EAAE,CAAC,CAAC,gBAAgB;YACrC,cAAc,EAAE,CAAC,CAAC,aAAa;YAC/B,cAAc,EAAE,CAAC,CAAC,aAAa;YAC/B,UAAU,EAAE,CAAC,CAAC,SAAS;SACxB,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,SAAS;QACrB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,SAAS;QACT,UAAU,EAAE;YACV,QAAQ,EAAE,KAAK,CAAC,aAAa;YAC7B,iBAAiB,EAAE,KAAK,CAAC,qBAAqB;SAC/C;QACD,MAAM,EAAE;YACN,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,gBAAgB,EAAE,QAAQ,CAAC,MAAM;YACjC,YAAY,EAAE,MAAM,CAAC,MAAM;SAC5B;KACF,CAAC;AACJ,CAAC;AAoBD,uEAAuE;AAEvE,MAAM,UAAU,sBAAsB,CACpC,MAAiB,EACjB,OAAsC,EAAE;IAExC,MAAM,CAAC,YAAY,CACjB,UAAU,EACV;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EACT,6DAA6D;YAC7D,8DAA8D;YAC9D,+DAA+D;YAC/D,0BAA0B;QAC5B,WAAW,EAAE;YACX,KAAK,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,iEAAiE;gBAC/D,sDAAsD,CACzD;YACH,KAAK,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,kDAAkD,CACnD;SACJ;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;YAC/E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;YAC/D,SAAS,EAAE,CAAC;iBACT,MAAM,CACL,CAAC,CAAC,MAAM,CAAC;gBACP,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;gBAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;gBACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;gBAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;gBACpB,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;gBAC7B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;gBAC1B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;gBAC1B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;aACvB,CAAC,CACH;iBACA,QAAQ,CAAC,sCAAsC,CAAC;YACnD,UAAU,EAAE,CAAC;iBACV,MAAM,CAAC;gBACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;gBACpB,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;aAC9B,CAAC;iBACD,QAAQ,CAAC,2BAA2B,CAAC;YACxC,MAAM,EAAE,CAAC;iBACN,MAAM,CAAC;gBACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBAC5B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBAC5B,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;gBAC5B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;aACzB,CAAC;iBACD,QAAQ,CACP,yDAAyD,CAC1D;SACJ;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;QACzB,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC/C,IAAI,MAAM,CAAC;QACX,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,qBAAqB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EACF,4DACG,GAAa,CAAC,OACjB,EAAE;qBACL;iBACF;aACF,CAAC;QACJ,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG;YACd,iBAAiB,MAAM,CAAC,IAAI,YAAY,MAAM,CAAC,QAAQ,aAAa;YACpE,aAAa,KAAK,IAAI,aAAa,MAAM,KAAK,IAAI,aAAa,KAAK,MAAM,CAAC,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,UAAU;YAC1I,wBAAwB,MAAM,CAAC,UAAU,CAAC,QAAQ,uBAAuB,MAAM,CAAC,UAAU,CAAC,iBAAiB,EAAE;YAC9G,cAAc,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE;SACrE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,OAAO;YACL,iBAAiB,EAAE,MAA4C;YAC/D,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;SAC3C,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,+CAA+C;QACtD,WAAW,EACT,0DAA0D;YAC1D,6DAA6D;YAC7D,4DAA4D;YAC5D,uDAAuD;YACvD,sDAAsD;YACtD,yDAAyD;YACzD,4BAA4B;QAC9B,WAAW,EAAE;YACX,cAAc,EAAE,CAAC;iBACd,MAAM,EAAE;iBACR,QAAQ,CACP,0DAA0D;gBACxD,0DAA0D;gBAC1D,iDAAiD;gBACjD,sCAAsC,CACzC;YACH,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,qDAAqD;gBACnD,sBAAsB,CACzB;SACJ;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,CAAC;iBACP,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;iBAC3C,QAAQ,CACP,qDAAqD;gBACnD,0DAA0D;gBAC1D,uDAAuD;gBACvD,yDAAyD;gBACzD,yDAAyD;gBACzD,YAAY,CACf;YACH,OAAO,EAAE,CAAC;iBACP,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;gBACP,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;gBAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBAC/B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;gBAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAC9B,CAAC,CACH;iBACA,QAAQ,CACP,yDAAyD,CAC1D;YACH,iBAAiB,EAAE,CAAC;iBACjB,MAAM,EAAE;iBACR,QAAQ,CAAC,6CAA6C,CAAC;YAC1D,cAAc,EAAE,CAAC;iBACd,OAAO,EAAE;iBACT,QAAQ,CACP,4DAA4D;gBAC1D,sCAAsC,CACzC;SACJ;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE,EAAE;QACpC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC/C,IAAI,MAAM,CAAC;QACX,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,qBAAqB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EACF,gEACG,GAAa,CAAC,OACjB,EAAE;qBACL;iBACF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,cAAc,CAChC,EAAE,OAAO,EAAE,EACX,OAAO,CAAC,GAAoD,CAC7D,CAAC;QAEF,MAAM,OAAO,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC;QACpD,MAAM,OAAO,GAAuB,EAAE,CAAC;QACvC,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,gBAAgB,GAAG,CAAC,CAAC;QAEzB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,QAAQ;gBAAE,SAAS;YAC9B,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACxD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC1B,gBAAgB,IAAI,CAAC,CAAC;gBACtB,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC;oBAClC,MAAM;oBACN,MAAM,EAAE,GAAG;oBACX,GAAG;oBACH,WAAW;iBACZ,CAAC,CAAC;gBACH,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;oBACpB,OAAO,GAAG,IAAI,CAAC;oBACf,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;wBACnC,OAAO,CAAC,IAAI,CAAC;4BACX,MAAM,EAAE,GAAG;4BACX,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BACrE,MAAM,EAAE,KAAK,CAAC,MAAM;4BACpB,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBAChE,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC;QAC9D,MAAM,OAAO,GAAsB,CAAC,OAAO;YACzC,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,WAAW;gBACX,CAAC,CAAC,iBAAiB;gBACnB,CAAC,CAAC,OAAO,CAAC;QAEd,MAAM,MAAM,GAAqB;YAC/B,OAAO;YACP,OAAO;YACP,iBAAiB,EAAE,gBAAgB;YACnC,cAAc,EAAE,WAAW;SAC5B,CAAC;QAEF,MAAM,OAAO,GACX,qBAAqB,OAAO,MAAM,gBAAgB,wBAAwB;YAC1E,GAAG,OAAO,CAAC,MAAM,sBACf,OAAO,KAAK,iBAAiB;gBAC3B,CAAC,CAAC,oCAAoC;gBACtC,CAAC,CAAC,OAAO,KAAK,OAAO;oBACnB,CAAC,CAAC,uDAAuD;oBACzD,CAAC,CAAC,EACR,EAAE,CAAC;QACL,OAAO;YACL,iBAAiB,EAAE,MAA4C;YAC/D,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;SAC3C,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"stats-gate.js","sourceRoot":"","sources":["../../../src/mcp/tools/stats-gate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"baseline.d.ts","sourceRoot":"","sources":["../../src/policy/baseline.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EAElB,MAAM,aAAa,CAAC;AAiCrB,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAYnD,CAAC;AAcH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,YAAY,CAAC;IAIrB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAUD,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;AAEhD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,iBAAiB,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,YAAY,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IAsBZ,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAQtC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;CACzC;AAED,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,cAAc,CAAC,CAyFzB"}
1
+ {"version":3,"file":"baseline.d.ts","sourceRoot":"","sources":["../../src/policy/baseline.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EAElB,MAAM,aAAa,CAAC;AAiCrB,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAYnD,CAAC;AAcH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,YAAY,CAAC;IAIrB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAUD,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;AAEhD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,iBAAiB,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,YAAY,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IAsBZ,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAStC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;CACzC;AAED,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,cAAc,CAAC,CAkGzB"}
@@ -52,9 +52,17 @@ export async function resolvePolicyBaseline(options) {
52
52
  if (options.injectedConfigAuthoritative) {
53
53
  return { loaded, triggeredBy: [] };
54
54
  }
55
- // Issue #57 — default sink writes the message to stderr (back-compat); the
56
- // `level` is consumed by an injected sink, not by the default.
57
- const notify = options.notify ?? ((n) => process.stderr.write(n.message));
55
+ // Issue #57 — default sink routes by level so a hosted runtime that
56
+ // consumes the CLI's output byte-identically (GKE/Cloud Logging) classifies
57
+ // the benign "reviewing against parent baseline" notice as severity:INFO
58
+ // (stdout) instead of severity:ERROR (stderr). Genuine warnings — the
59
+ // fallback when parent policy is unavailable, or an env-override typo —
60
+ // stay on stderr so operator alerting still surfaces them.
61
+ const notify = options.notify ??
62
+ ((n) => {
63
+ const stream = n.level === "info" ? process.stdout : process.stderr;
64
+ stream.write(n.message);
65
+ });
58
66
  let parent;
59
67
  try {
60
68
  parent = await commitParent(sha, cwd);
@@ -1 +1 @@
1
- {"version":3,"file":"baseline.js","sourceRoot":"","sources":["../../src/policy/baseline.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EAEpB,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEvD,yCAAyC;AACzC,EAAE;AACF,sEAAsE;AACtE,6DAA6D;AAC7D,EAAE;AACF,sEAAsE;AACtE,kEAAkE;AAClE,qEAAqE;AACrE,iEAAiE;AACjE,oEAAoE;AACpE,wDAAwD;AACxD,EAAE;AACF,qEAAqE;AACrE,oEAAoE;AACpE,mEAAmE;AACnE,oEAAoE;AACpE,kEAAkE;AAClE,qEAAqE;AACrE,6DAA6D;AAC7D,EAAE;AACF,oEAAoE;AACpE,gEAAgE;AAChE,qEAAqE;AACrE,mEAAmE;AACnE,qEAAqE;AACrE,oDAAoD;AACpD,EAAE;AACF,mEAAmE;AACnE,sEAAsE;AACtE,wDAAwD;AACxD,MAAM,CAAC,MAAM,oBAAoB,GAAwB,IAAI,GAAG,CAAC;IAC/D,mCAAmC;IACnC,uCAAuC;IACvC,4CAA4C;IAC5C,kCAAkC;IAClC,uCAAuC;IACvC,mEAAmE;IACnE,sEAAsE;IACtE,gEAAgE;IAChE,oCAAoC;IACpC,4CAA4C;IAC5C,+CAA+C;CAChD,CAAC,CAAC;AA4EH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAA+B;IAE/B,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAErC,6EAA6E;IAC7E,4EAA4E;IAC5E,wEAAwE;IACxE,6EAA6E;IAC7E,IAAI,OAAO,CAAC,2BAA2B,EAAE,CAAC;QACxC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IACrC,CAAC;IAED,2EAA2E;IAC3E,+DAA+D;IAC/D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAe,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAExF,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IACrC,CAAC;IACD,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IAEhD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3E,MAAM,YAAY,GAAG,IAAI,GAAG,CAAS;QACnC,oBAAoB;QACpB,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa;QACtC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe;KACzC,CAAC,CAAC;IACH,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACpE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACzB,SAAS;QACX,CAAC;QACD,wEAAwE;QACxE,sEAAsE;QACtE,2DAA2D;QAC3D,kEAAkE;QAClE,qEAAqE;QACrE,uEAAuE;QACvE,qEAAqE;QACrE,oEAAoE;QACpE,mEAAmE;QACnE,oEAAoE;QACpE,0BAA0B;QAC1B,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IAEjE,8DAA8D;IAC9D,IAAI,YAA0B,CAAC;IAC/B,IAAI,CAAC;QACH,sEAAsE;QACtE,qDAAqD;QACrD,sEAAsE;QACtE,kEAAkE;QAClE,mEAAmE;QACnE,2EAA2E;QAC3E,gEAAgE;QAChE,YAAY,GAAG,MAAM,4BAA4B,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE;YACzE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;SACnD,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,mEAAmE;QACnE,kEAAkE;QAClE,oEAAoE;QACpE,oEAAoE;QACpE,aAAa;QACb,MAAM,CAAC;YACL,KAAK,EAAE,MAAM;YACb,OAAO,EACL,kCAAkC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,2BAA2B;gBAC7E,YAAY,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,qCAAqC;gBACvE,IAAK,GAAa,CAAC,OAAO,kCAAkC;gBAC5D,oCAAoC;SACvC,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IACjC,CAAC;IACD,MAAM,CAAC;QACL,KAAK,EAAE,MAAM;QACb,OAAO,EACL,wBAAwB,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,mCAAmC;YAC3E,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,wCAAwC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG;YACxF,iCAAiC;KACpC,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AACpE,CAAC"}
1
+ {"version":3,"file":"baseline.js","sourceRoot":"","sources":["../../src/policy/baseline.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EAEpB,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEvD,yCAAyC;AACzC,EAAE;AACF,sEAAsE;AACtE,6DAA6D;AAC7D,EAAE;AACF,sEAAsE;AACtE,kEAAkE;AAClE,qEAAqE;AACrE,iEAAiE;AACjE,oEAAoE;AACpE,wDAAwD;AACxD,EAAE;AACF,qEAAqE;AACrE,oEAAoE;AACpE,mEAAmE;AACnE,oEAAoE;AACpE,kEAAkE;AAClE,qEAAqE;AACrE,6DAA6D;AAC7D,EAAE;AACF,oEAAoE;AACpE,gEAAgE;AAChE,qEAAqE;AACrE,mEAAmE;AACnE,qEAAqE;AACrE,oDAAoD;AACpD,EAAE;AACF,mEAAmE;AACnE,sEAAsE;AACtE,wDAAwD;AACxD,MAAM,CAAC,MAAM,oBAAoB,GAAwB,IAAI,GAAG,CAAC;IAC/D,mCAAmC;IACnC,uCAAuC;IACvC,4CAA4C;IAC5C,kCAAkC;IAClC,uCAAuC;IACvC,mEAAmE;IACnE,sEAAsE;IACtE,gEAAgE;IAChE,oCAAoC;IACpC,4CAA4C;IAC5C,+CAA+C;CAChD,CAAC,CAAC;AA6EH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAA+B;IAE/B,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAErC,6EAA6E;IAC7E,4EAA4E;IAC5E,wEAAwE;IACxE,6EAA6E;IAC7E,IAAI,OAAO,CAAC,2BAA2B,EAAE,CAAC;QACxC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IACrC,CAAC;IAED,oEAAoE;IACpE,4EAA4E;IAC5E,yEAAyE;IACzE,sEAAsE;IACtE,wEAAwE;IACxE,2DAA2D;IAC3D,MAAM,MAAM,GACV,OAAO,CAAC,MAAM;QACd,CAAC,CAAC,CAAe,EAAE,EAAE;YACnB,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;YACpE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IAEL,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IACrC,CAAC;IACD,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IAEhD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3E,MAAM,YAAY,GAAG,IAAI,GAAG,CAAS;QACnC,oBAAoB;QACpB,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa;QACtC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe;KACzC,CAAC,CAAC;IACH,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACpE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACzB,SAAS;QACX,CAAC;QACD,wEAAwE;QACxE,sEAAsE;QACtE,2DAA2D;QAC3D,kEAAkE;QAClE,qEAAqE;QACrE,uEAAuE;QACvE,qEAAqE;QACrE,oEAAoE;QACpE,mEAAmE;QACnE,oEAAoE;QACpE,0BAA0B;QAC1B,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IAEjE,8DAA8D;IAC9D,IAAI,YAA0B,CAAC;IAC/B,IAAI,CAAC;QACH,sEAAsE;QACtE,qDAAqD;QACrD,sEAAsE;QACtE,kEAAkE;QAClE,mEAAmE;QACnE,2EAA2E;QAC3E,gEAAgE;QAChE,YAAY,GAAG,MAAM,4BAA4B,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE;YACzE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;SACnD,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,mEAAmE;QACnE,kEAAkE;QAClE,oEAAoE;QACpE,oEAAoE;QACpE,aAAa;QACb,MAAM,CAAC;YACL,KAAK,EAAE,MAAM;YACb,OAAO,EACL,kCAAkC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,2BAA2B;gBAC7E,YAAY,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,qCAAqC;gBACvE,IAAK,GAAa,CAAC,OAAO,kCAAkC;gBAC5D,oCAAoC;SACvC,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IACjC,CAAC;IACD,MAAM,CAAC;QACL,KAAK,EAAE,MAAM;QACb,OAAO,EACL,wBAAwB,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,mCAAmC;YAC3E,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,wCAAwC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG;YACxF,iCAAiC;KACpC,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AACpE,CAAC"}
@@ -29,7 +29,7 @@ export interface EvaluatePushGateOptions {
29
29
  profileCriticIds?: ReadonlyArray<string>;
30
30
  }
31
31
  export declare function evaluatePushGate(options: EvaluatePushGateOptions): Promise<GateResult>;
32
- export declare function evaluateQuorumCriticResults(artifact: ReviewArtifact, blockingSeverities: ReviewSeverity[], quorum: number, blocks: GateBlock[], warnings: GateWarning[]): void;
32
+ export declare function evaluateQuorumCriticResults(artifact: ReviewArtifact, blockingSeverities: ReviewSeverity[], quorum: number, blocks: GateBlock[], warnings: GateWarning[], unilateralVetoRules?: import("@momentiq/dark-factory-schemas").UnilateralVetoRules): void;
33
33
  export declare function summarizeGate(result: GateResult): string;
34
34
  export interface RouteEvaluation {
35
35
  triggered: VerificationRoute[];
@@ -1 +1 @@
1
- {"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../src/policy/gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../src/policy/gate.ts"],"names":[],"mappings":"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"}