@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.
- package/README.md +121 -40
- package/dist/adapters/codex-sdk.d.ts +66 -0
- package/dist/adapters/codex-sdk.d.ts.map +1 -1
- package/dist/adapters/codex-sdk.js +321 -4
- package/dist/adapters/codex-sdk.js.map +1 -1
- package/dist/adapters/critic-result-schema.d.ts +15 -10
- package/dist/adapters/critic-result-schema.d.ts.map +1 -1
- package/dist/adapters/critic-result-schema.js +10 -0
- package/dist/adapters/critic-result-schema.js.map +1 -1
- package/dist/adapters/cursor-cli.d.ts +19 -1
- package/dist/adapters/cursor-cli.d.ts.map +1 -1
- package/dist/adapters/cursor-cli.js +96 -14
- package/dist/adapters/cursor-cli.js.map +1 -1
- package/dist/adapters/index.d.ts +1 -0
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +7 -0
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/static-schema-lint.d.ts +68 -0
- package/dist/adapters/static-schema-lint.d.ts.map +1 -0
- package/dist/adapters/static-schema-lint.js +813 -0
- package/dist/adapters/static-schema-lint.js.map +1 -0
- package/dist/branch-protection/spec-default.yaml +2 -2
- package/dist/cli.d.ts +17 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +414 -113
- package/dist/cli.js.map +1 -1
- package/dist/commands/findings.d.ts +6 -0
- package/dist/commands/findings.d.ts.map +1 -0
- package/dist/commands/findings.js +196 -0
- package/dist/commands/findings.js.map +1 -0
- package/dist/commands/show.d.ts +11 -0
- package/dist/commands/show.d.ts.map +1 -0
- package/dist/commands/show.js +78 -0
- package/dist/commands/show.js.map +1 -0
- package/dist/commands/skills.d.ts +6 -0
- package/dist/commands/skills.d.ts.map +1 -0
- package/dist/commands/skills.js +248 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/status.d.ts +6 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +85 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/compact/index.d.ts +2 -0
- package/dist/compact/index.d.ts.map +1 -0
- package/dist/compact/index.js +3 -0
- package/dist/compact/index.js.map +1 -0
- package/dist/compact/lockfile.d.ts +53 -0
- package/dist/compact/lockfile.d.ts.map +1 -0
- package/dist/compact/lockfile.js +626 -0
- package/dist/compact/lockfile.js.map +1 -0
- package/dist/cycle-doc-validator/validate_cycle_doc.py +39 -9
- package/dist/doctor.d.ts +51 -1
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +497 -1
- package/dist/doctor.js.map +1 -1
- package/dist/evidence/docker-build.d.ts +6 -0
- package/dist/evidence/docker-build.d.ts.map +1 -0
- package/dist/evidence/docker-build.js +199 -0
- package/dist/evidence/docker-build.js.map +1 -0
- package/dist/evidence/index.d.ts +1 -0
- package/dist/evidence/index.d.ts.map +1 -1
- package/dist/evidence/index.js +6 -0
- package/dist/evidence/index.js.map +1 -1
- package/dist/handoff/handoff-verb.d.ts.map +1 -1
- package/dist/handoff/handoff-verb.js +6 -3
- package/dist/handoff/handoff-verb.js.map +1 -1
- package/dist/handoff/ports.d.ts +8 -0
- package/dist/handoff/ports.d.ts.map +1 -1
- package/dist/handoff/real-clients.js +1 -1
- package/dist/handoff/real-clients.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/show-status-core.d.ts +63 -0
- package/dist/lib/show-status-core.d.ts.map +1 -0
- package/dist/lib/show-status-core.js +156 -0
- package/dist/lib/show-status-core.js.map +1 -0
- package/dist/mcp/prompts.d.ts.map +1 -1
- package/dist/mcp/prompts.js +113 -78
- package/dist/mcp/prompts.js.map +1 -1
- package/dist/mcp/resources.js +1 -1
- package/dist/mcp/resources.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +2 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/doctor.d.ts.map +1 -1
- package/dist/mcp/tools/doctor.js +5 -0
- package/dist/mcp/tools/doctor.js.map +1 -1
- package/dist/mcp/tools/findings.d.ts +0 -22
- package/dist/mcp/tools/findings.d.ts.map +1 -1
- package/dist/mcp/tools/findings.js +5 -73
- package/dist/mcp/tools/findings.js.map +1 -1
- package/dist/mcp/tools/handoff.d.ts.map +1 -1
- package/dist/mcp/tools/handoff.js +10 -17
- package/dist/mcp/tools/handoff.js.map +1 -1
- package/dist/mcp/tools/review-bypass.d.ts.map +1 -1
- package/dist/mcp/tools/review-bypass.js +22 -1
- package/dist/mcp/tools/review-bypass.js.map +1 -1
- package/dist/mcp/tools/skills-install.d.ts +6 -0
- package/dist/mcp/tools/skills-install.d.ts.map +1 -0
- package/dist/mcp/tools/skills-install.js +260 -0
- package/dist/mcp/tools/skills-install.js.map +1 -0
- package/dist/mcp/tools/stats-gate.d.ts.map +1 -1
- package/dist/mcp/tools/stats-gate.js +63 -15
- package/dist/mcp/tools/stats-gate.js.map +1 -1
- package/dist/policy/baseline.d.ts.map +1 -1
- package/dist/policy/baseline.js +11 -3
- package/dist/policy/baseline.js.map +1 -1
- package/dist/policy/gate.d.ts +1 -1
- package/dist/policy/gate.d.ts.map +1 -1
- package/dist/policy/gate.js +96 -12
- package/dist/policy/gate.js.map +1 -1
- package/dist/prompt.d.ts +1 -0
- package/dist/prompt.d.ts.map +1 -1
- package/dist/prompt.js +123 -4
- package/dist/prompt.js.map +1 -1
- package/dist/report.d.ts +130 -3
- package/dist/report.d.ts.map +1 -1
- package/dist/report.js +367 -10
- package/dist/report.js.map +1 -1
- package/dist/runner.d.ts +6 -0
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +213 -4
- package/dist/runner.js.map +1 -1
- package/dist/self-consistency.d.ts +144 -0
- package/dist/self-consistency.d.ts.map +1 -0
- package/dist/self-consistency.js +368 -0
- package/dist/self-consistency.js.map +1 -0
- package/dist/skills/config.d.ts +176 -0
- package/dist/skills/config.d.ts.map +1 -0
- package/dist/skills/config.js +251 -0
- package/dist/skills/config.js.map +1 -0
- package/dist/skills/index.d.ts +4 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +8 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/install.d.ts +62 -0
- package/dist/skills/install.d.ts.map +1 -0
- package/dist/skills/install.js +315 -0
- package/dist/skills/install.js.map +1 -0
- package/dist/skills/template.d.ts +42 -0
- package/dist/skills/template.d.ts.map +1 -0
- package/dist/skills/template.js +95 -0
- package/dist/skills/template.js.map +1 -0
- package/dist/trusted-surface/rebind.d.ts.map +1 -1
- package/dist/trusted-surface/rebind.js +199 -2
- package/dist/trusted-surface/rebind.js.map +1 -1
- package/package.json +36 -2
- package/skills/README.md +89 -0
- package/skills/chief-engineer-blitz/SKILL.md.tmpl +443 -0
- package/skills/chief-engineer-blitz/skill.json +53 -0
- package/skills/chief-engineer-review/SKILL.md.tmpl +184 -0
- package/skills/chief-engineer-review/references/review-examples.md.tmpl +130 -0
- package/skills/chief-engineer-review/skill.json +67 -0
- package/skills/chief-engineer-review/templates/code-review-prompt.md.tmpl +111 -0
- package/skills/chief-engineer-review/templates/escalation-prompt.md.tmpl +56 -0
- package/skills/chief-engineer-review/templates/plan-review-prompt.md.tmpl +74 -0
- 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":"
|
|
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
|
|
18
|
-
//
|
|
19
|
-
//
|
|
20
|
-
//
|
|
21
|
-
//
|
|
22
|
-
//
|
|
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
|
|
171
|
-
"
|
|
172
|
-
"
|
|
173
|
-
"
|
|
174
|
-
"
|
|
175
|
-
"
|
|
176
|
-
"
|
|
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
|
-
|
|
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,
|
|
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;
|
|
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"}
|
package/dist/policy/baseline.js
CHANGED
|
@@ -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
|
|
56
|
-
//
|
|
57
|
-
|
|
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;
|
|
1
|
+
{"version":3,"file":"baseline.js","sourceRoot":"","sources":["../../src/policy/baseline.ts"],"names":[],"mappings":"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"}
|
package/dist/policy/gate.d.ts
CHANGED
|
@@ -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":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAEL,qBAAqB,EACrB,KAAK,cAAc,EACpB,MAAM,sBAAsB,CAAC;AAU9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../src/policy/gate.ts"],"names":[],"mappings":"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"}
|