@momentiq/dark-factory-cli 0.1.0-alpha.4

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 (132) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +150 -0
  3. package/dist/adapters/_shared.d.ts +45 -0
  4. package/dist/adapters/_shared.d.ts.map +1 -0
  5. package/dist/adapters/_shared.js +200 -0
  6. package/dist/adapters/_shared.js.map +1 -0
  7. package/dist/adapters/codex-sdk.d.ts +279 -0
  8. package/dist/adapters/codex-sdk.d.ts.map +1 -0
  9. package/dist/adapters/codex-sdk.js +930 -0
  10. package/dist/adapters/codex-sdk.js.map +1 -0
  11. package/dist/adapters/critic-result-schema.d.ts +215 -0
  12. package/dist/adapters/critic-result-schema.d.ts.map +1 -0
  13. package/dist/adapters/critic-result-schema.js +153 -0
  14. package/dist/adapters/critic-result-schema.js.map +1 -0
  15. package/dist/adapters/critic.d.ts +62 -0
  16. package/dist/adapters/critic.d.ts.map +1 -0
  17. package/dist/adapters/critic.js +79 -0
  18. package/dist/adapters/critic.js.map +1 -0
  19. package/dist/adapters/cursor-sdk.d.ts +153 -0
  20. package/dist/adapters/cursor-sdk.d.ts.map +1 -0
  21. package/dist/adapters/cursor-sdk.js +818 -0
  22. package/dist/adapters/cursor-sdk.js.map +1 -0
  23. package/dist/adapters/gemini-sdk.d.ts +113 -0
  24. package/dist/adapters/gemini-sdk.d.ts.map +1 -0
  25. package/dist/adapters/gemini-sdk.js +532 -0
  26. package/dist/adapters/gemini-sdk.js.map +1 -0
  27. package/dist/adapters/grok-direct-sdk.d.ts +148 -0
  28. package/dist/adapters/grok-direct-sdk.d.ts.map +1 -0
  29. package/dist/adapters/grok-direct-sdk.js +694 -0
  30. package/dist/adapters/grok-direct-sdk.js.map +1 -0
  31. package/dist/branch-protection/audit_branch_protection.py +759 -0
  32. package/dist/branch-protection/index.d.ts +25 -0
  33. package/dist/branch-protection/index.d.ts.map +1 -0
  34. package/dist/branch-protection/index.js +70 -0
  35. package/dist/branch-protection/index.js.map +1 -0
  36. package/dist/branch-protection/spec-default.yaml +314 -0
  37. package/dist/cli.d.ts +3 -0
  38. package/dist/cli.d.ts.map +1 -0
  39. package/dist/cli.js +581 -0
  40. package/dist/cli.js.map +1 -0
  41. package/dist/cycle-doc-validator/index.d.ts +43 -0
  42. package/dist/cycle-doc-validator/index.d.ts.map +1 -0
  43. package/dist/cycle-doc-validator/index.js +69 -0
  44. package/dist/cycle-doc-validator/index.js.map +1 -0
  45. package/dist/cycle-doc-validator/validate_cycle_doc.py +1260 -0
  46. package/dist/cycle-tracker-sync/attribute_pr_cycle_ref.py +384 -0
  47. package/dist/cycle-tracker-sync/index.d.ts +20 -0
  48. package/dist/cycle-tracker-sync/index.d.ts.map +1 -0
  49. package/dist/cycle-tracker-sync/index.js +71 -0
  50. package/dist/cycle-tracker-sync/index.js.map +1 -0
  51. package/dist/cycle-tracker-sync/sync_cycle_trackers.py +1093 -0
  52. package/dist/evidence/audit-trail.d.ts +59 -0
  53. package/dist/evidence/audit-trail.d.ts.map +1 -0
  54. package/dist/evidence/audit-trail.js +283 -0
  55. package/dist/evidence/audit-trail.js.map +1 -0
  56. package/dist/evidence/index.d.ts +4 -0
  57. package/dist/evidence/index.d.ts.map +1 -0
  58. package/dist/evidence/index.js +29 -0
  59. package/dist/evidence/index.js.map +1 -0
  60. package/dist/evidence/per-sha.d.ts +13 -0
  61. package/dist/evidence/per-sha.d.ts.map +1 -0
  62. package/dist/evidence/per-sha.js +97 -0
  63. package/dist/evidence/per-sha.js.map +1 -0
  64. package/dist/evidence/quality-gates.d.ts +19 -0
  65. package/dist/evidence/quality-gates.d.ts.map +1 -0
  66. package/dist/evidence/quality-gates.js +212 -0
  67. package/dist/evidence/quality-gates.js.map +1 -0
  68. package/dist/git.d.ts +40 -0
  69. package/dist/git.d.ts.map +1 -0
  70. package/dist/git.js +414 -0
  71. package/dist/git.js.map +1 -0
  72. package/dist/glob.d.ts +4 -0
  73. package/dist/glob.d.ts.map +1 -0
  74. package/dist/glob.js +99 -0
  75. package/dist/glob.js.map +1 -0
  76. package/dist/index.d.ts +17 -0
  77. package/dist/index.d.ts.map +1 -0
  78. package/dist/index.js +33 -0
  79. package/dist/index.js.map +1 -0
  80. package/dist/paths.d.ts +12 -0
  81. package/dist/paths.d.ts.map +1 -0
  82. package/dist/paths.js +42 -0
  83. package/dist/paths.js.map +1 -0
  84. package/dist/policy/baseline.d.ts +15 -0
  85. package/dist/policy/baseline.d.ts.map +1 -0
  86. package/dist/policy/baseline.js +115 -0
  87. package/dist/policy/baseline.js.map +1 -0
  88. package/dist/policy/config.d.ts +64 -0
  89. package/dist/policy/config.d.ts.map +1 -0
  90. package/dist/policy/config.js +363 -0
  91. package/dist/policy/config.js.map +1 -0
  92. package/dist/policy/gate.d.ts +80 -0
  93. package/dist/policy/gate.d.ts.map +1 -0
  94. package/dist/policy/gate.js +1019 -0
  95. package/dist/policy/gate.js.map +1 -0
  96. package/dist/policy/index.d.ts +7 -0
  97. package/dist/policy/index.d.ts.map +1 -0
  98. package/dist/policy/index.js +14 -0
  99. package/dist/policy/index.js.map +1 -0
  100. package/dist/policy/merge-queue.d.ts +183 -0
  101. package/dist/policy/merge-queue.d.ts.map +1 -0
  102. package/dist/policy/merge-queue.js +310 -0
  103. package/dist/policy/merge-queue.js.map +1 -0
  104. package/dist/policy/profile.d.ts +98 -0
  105. package/dist/policy/profile.d.ts.map +1 -0
  106. package/dist/policy/profile.js +156 -0
  107. package/dist/policy/profile.js.map +1 -0
  108. package/dist/policy/tdd-classifier.d.ts +18 -0
  109. package/dist/policy/tdd-classifier.d.ts.map +1 -0
  110. package/dist/policy/tdd-classifier.js +79 -0
  111. package/dist/policy/tdd-classifier.js.map +1 -0
  112. package/dist/prompt.d.ts +13 -0
  113. package/dist/prompt.d.ts.map +1 -0
  114. package/dist/prompt.js +175 -0
  115. package/dist/prompt.js.map +1 -0
  116. package/dist/report.d.ts +88 -0
  117. package/dist/report.d.ts.map +1 -0
  118. package/dist/report.js +376 -0
  119. package/dist/report.js.map +1 -0
  120. package/dist/runner.d.ts +30 -0
  121. package/dist/runner.d.ts.map +1 -0
  122. package/dist/runner.js +456 -0
  123. package/dist/runner.js.map +1 -0
  124. package/dist/security.d.ts +2 -0
  125. package/dist/security.d.ts.map +1 -0
  126. package/dist/security.js +19 -0
  127. package/dist/security.js.map +1 -0
  128. package/dist/trusted-surface/rebind.d.ts +10 -0
  129. package/dist/trusted-surface/rebind.d.ts.map +1 -0
  130. package/dist/trusted-surface/rebind.js +154 -0
  131. package/dist/trusted-surface/rebind.js.map +1 -0
  132. package/package.json +78 -0
package/dist/git.js ADDED
@@ -0,0 +1,414 @@
1
+ import { execFile } from "node:child_process";
2
+ import { createHash } from "node:crypto";
3
+ import { promisify } from "node:util";
4
+ const runFile = promisify(execFile);
5
+ const MAX_BUFFER = 64 * 1024 * 1024;
6
+ async function git(args, options = {}) {
7
+ try {
8
+ const { stdout } = await runFile("git", args, {
9
+ cwd: options.cwd,
10
+ maxBuffer: MAX_BUFFER,
11
+ ...(options.input !== undefined ? { input: options.input } : {}),
12
+ });
13
+ return stdout;
14
+ }
15
+ catch (err) {
16
+ const e = err;
17
+ const detail = e.stderr ? `: ${e.stderr.trim()}` : "";
18
+ throw new Error(`git ${args.join(" ")} failed${detail}`);
19
+ }
20
+ }
21
+ // Read a file's contents at a specific git ref. Returns null if the file
22
+ // does not exist at that ref (caller decides how to handle — e.g., the
23
+ // commit being reviewed is the one that introduces the file).
24
+ export async function gitShowFile(ref, path, cwd = process.cwd()) {
25
+ try {
26
+ return await git(["show", `${ref}:${path}`], { cwd });
27
+ }
28
+ catch (err) {
29
+ // git show fails for missing-at-ref; we don't want to differentiate
30
+ // missing-file from missing-ref here — both mean "no baseline".
31
+ const msg = err.message;
32
+ if (/does not exist|exists on disk, but not in|fatal: ambiguous argument/.test(msg)) {
33
+ return null;
34
+ }
35
+ throw err;
36
+ }
37
+ }
38
+ export async function repoRoot(cwd = process.cwd()) {
39
+ const out = await git(["rev-parse", "--show-toplevel"], { cwd });
40
+ return out.trim();
41
+ }
42
+ export async function gitCommonDir(cwd = process.cwd()) {
43
+ const out = await git(["rev-parse", "--git-common-dir"], { cwd });
44
+ const trimmed = out.trim();
45
+ if (trimmed.startsWith("/"))
46
+ return trimmed;
47
+ return `${await repoRoot(cwd)}/${trimmed}`;
48
+ }
49
+ export async function gitDir(cwd = process.cwd()) {
50
+ const out = await git(["rev-parse", "--git-dir"], { cwd });
51
+ const trimmed = out.trim();
52
+ if (trimmed.startsWith("/"))
53
+ return trimmed;
54
+ return `${await repoRoot(cwd)}/${trimmed}`;
55
+ }
56
+ export async function currentBranch(cwd = process.cwd()) {
57
+ const out = await git(["rev-parse", "--abbrev-ref", "HEAD"], { cwd });
58
+ return out.trim();
59
+ }
60
+ export async function resolveCommit(ref, cwd = process.cwd()) {
61
+ const out = await git(["rev-parse", "--verify", `${ref}^{commit}`], { cwd });
62
+ return out.trim();
63
+ }
64
+ export async function commitParent(sha, cwd = process.cwd()) {
65
+ const out = await git(["rev-list", "--parents", "-n", "1", sha], { cwd });
66
+ const parts = out.trim().split(/\s+/);
67
+ if (parts.length < 2) {
68
+ throw new Error(`commit ${sha} has no parent (root or shallow)`);
69
+ }
70
+ return parts[1] ?? "";
71
+ }
72
+ export async function commitMetadata(sha, cwd = process.cwd()) {
73
+ // ASCII Unit Separator (0x1F) is reserved as a delimiter in git pretty-format output.
74
+ const sep = "\x1f";
75
+ const out = await git([
76
+ "show",
77
+ "--no-patch",
78
+ `--pretty=format:%H${sep}%P${sep}%an${sep}%ae${sep}%aI${sep}%s${sep}%b`,
79
+ sha,
80
+ ], { cwd });
81
+ const fields = out.split(sep);
82
+ if (fields.length < 7) {
83
+ throw new Error(`unexpected git show output for ${sha}`);
84
+ }
85
+ const parents = (fields[1] ?? "").trim().split(/\s+/).filter(Boolean);
86
+ return {
87
+ sha: (fields[0] ?? "").trim(),
88
+ parent: parents[0] ?? "",
89
+ author: fields[2] ?? "",
90
+ email: fields[3] ?? "",
91
+ timestamp: fields[4] ?? "",
92
+ subject: fields[5] ?? "",
93
+ body: (fields[6] ?? "").trimEnd(),
94
+ };
95
+ }
96
+ export async function commitStat(parent, sha, cwd = process.cwd()) {
97
+ if (!parent) {
98
+ return git(["show", "--stat", "--format=", sha], { cwd });
99
+ }
100
+ return git(["diff", "--stat", `${parent}..${sha}`], { cwd });
101
+ }
102
+ export async function commitDiff(parent, sha, cwd = process.cwd()) {
103
+ if (!parent) {
104
+ return git(["show", "--patch", "--format=", sha], { cwd });
105
+ }
106
+ return git(["diff", "--patch", "--no-color", `${parent}..${sha}`], { cwd });
107
+ }
108
+ async function numstat(parent, sha, cwd) {
109
+ const args = parent
110
+ ? ["diff", "--numstat", "-z", `${parent}..${sha}`]
111
+ : ["show", "--numstat", "--format=", "-z", sha];
112
+ const out = await git(args, { cwd });
113
+ const map = new Map();
114
+ if (!out)
115
+ return map;
116
+ let i = 0;
117
+ const tokens = out.split("\0");
118
+ while (i < tokens.length) {
119
+ const line = tokens[i++];
120
+ if (line === undefined || line === "")
121
+ continue;
122
+ const match = /^(\S+)\s+(\S+)\s*(.*)$/.exec(line);
123
+ if (!match)
124
+ continue;
125
+ const addedStr = match[1] ?? "0";
126
+ const deletedStr = match[2] ?? "0";
127
+ let path = match[3] ?? "";
128
+ let oldPath;
129
+ if (path === "") {
130
+ oldPath = tokens[i++];
131
+ path = tokens[i++] ?? "";
132
+ }
133
+ const entry = {
134
+ added: addedStr === "-" ? "binary" : Number(addedStr),
135
+ deleted: deletedStr === "-" ? "binary" : Number(deletedStr),
136
+ path,
137
+ ...(oldPath !== undefined ? { oldPath } : {}),
138
+ };
139
+ map.set(path, entry);
140
+ }
141
+ return map;
142
+ }
143
+ export async function changedFiles(parent, sha, cwd = process.cwd(), options = {}) {
144
+ const args = parent
145
+ ? ["diff", "--name-status", "-z", `${parent}..${sha}`]
146
+ : ["show", "--name-status", "--format=", "-z", sha];
147
+ const out = await git(args, { cwd });
148
+ const stats = await numstat(parent, sha, cwd);
149
+ const files = [];
150
+ if (!out)
151
+ return files;
152
+ const tokens = out.split("\0");
153
+ let i = 0;
154
+ while (i < tokens.length) {
155
+ const status = tokens[i++];
156
+ if (status === undefined || status === "")
157
+ continue;
158
+ const code = (status.charAt(0) ?? "X");
159
+ let oldPath;
160
+ let path;
161
+ if (code === "R" || code === "C") {
162
+ oldPath = tokens[i++];
163
+ path = tokens[i++] ?? "";
164
+ }
165
+ else {
166
+ path = tokens[i++] ?? "";
167
+ }
168
+ if (!path)
169
+ continue;
170
+ const stat = stats.get(path);
171
+ const isBinary = stat?.added === "binary" || stat?.deleted === "binary";
172
+ const file = {
173
+ path,
174
+ status: code,
175
+ ...(oldPath !== undefined ? { oldPath } : {}),
176
+ };
177
+ if (code === "D") {
178
+ file.omittedReason = "missing";
179
+ files.push(file);
180
+ continue;
181
+ }
182
+ if (isBinary) {
183
+ file.omittedReason = "binary";
184
+ files.push(file);
185
+ continue;
186
+ }
187
+ if (options.readContent !== false) {
188
+ try {
189
+ const sizeOut = await git(["cat-file", "-s", `${sha}:${path}`], { cwd });
190
+ const bytes = Number(sizeOut.trim());
191
+ file.bytes = bytes;
192
+ if (options.maxBytes !== undefined && bytes > options.maxBytes) {
193
+ file.omittedReason = "too_large";
194
+ }
195
+ else {
196
+ const content = await git(["show", `${sha}:${path}`], { cwd });
197
+ file.content = content;
198
+ file.contentHash = sha256(content);
199
+ }
200
+ }
201
+ catch {
202
+ file.omittedReason = "missing";
203
+ }
204
+ }
205
+ files.push(file);
206
+ }
207
+ return files;
208
+ }
209
+ // Cycle 332 — push-delta variant of `changedFiles`. Differs from the
210
+ // per-commit walker above in three respects:
211
+ // 1. Status discovery uses `git diff --name-status --find-renames
212
+ // --find-copies -z BASE..HEAD`. The rename / copy detection flags
213
+ // (`-M` / `-C`) are REQUIRED — without them git only emits R*/C*
214
+ // status records when `diff.renames=copies` is set in the repo's
215
+ // git config, and CI's fresh `actions/checkout@v4` workspace
216
+ // cannot rely on that. A rename push without the flags surfaces
217
+ // as a delete + add and the Phase 2 rename/copy carry-forward
218
+ // never fires (cycle doc Mechanism B step 3, ratified Phase 1).
219
+ // 2. The parser HARD-ERRORS on an `X` status. `X` is git's "unknown"
220
+ // sentinel and the cache writer aborts the run rather than make a
221
+ // guess. Per cycle doc Mechanism B step 3.
222
+ // 3. `U` (unmerged) is treated as `M` (re-evaluate) by the caller; the
223
+ // parser preserves the `U` code so telemetry can surface it.
224
+ export class UnknownGitStatusError extends Error {
225
+ statusRaw;
226
+ constructor(statusRaw) {
227
+ super(`unknown git status code; refusing to make a cache decision (raw=${JSON.stringify(statusRaw)})`);
228
+ this.statusRaw = statusRaw;
229
+ this.name = "UnknownGitStatusError";
230
+ }
231
+ }
232
+ export async function pushDeltaChangedFiles(base, head, cwd = process.cwd()) {
233
+ const args = base
234
+ ? [
235
+ "diff",
236
+ "--name-status",
237
+ "--find-renames",
238
+ "--find-copies",
239
+ "-z",
240
+ `${base}..${head}`,
241
+ ]
242
+ : [
243
+ "show",
244
+ "--no-patch",
245
+ "--pretty=",
246
+ "--name-status",
247
+ "--find-renames",
248
+ "--find-copies",
249
+ "-z",
250
+ head,
251
+ ];
252
+ const out = await git(args, { cwd });
253
+ return parsePushDeltaNameStatus(out);
254
+ }
255
+ // Pure parser for `git diff --name-status --find-renames --find-copies
256
+ // -z` output. Exposed as a named export so unit tests can feed
257
+ // synthetic tokens without spinning a real git repo.
258
+ //
259
+ // Token layout for a status entry:
260
+ // - <status-token> ("A" | "M" | "D" | "R<score>" | "C<score>" |
261
+ // "T" | "U" | "X" | unknown)
262
+ // - For R*/C*: <oldPath-token> <newPath-token>
263
+ // - Otherwise: <path-token>
264
+ //
265
+ // We collapse "R100" / "C75" / etc. down to the leading letter so
266
+ // downstream code matches by single-character code (and the existing
267
+ // ChangedFileStatus enum stays single-letter). The similarity score
268
+ // is informational only and is dropped on parse.
269
+ export function parsePushDeltaNameStatus(out) {
270
+ const files = [];
271
+ if (!out)
272
+ return files;
273
+ const tokens = out.split("\0");
274
+ let i = 0;
275
+ while (i < tokens.length) {
276
+ const statusRaw = tokens[i++];
277
+ if (statusRaw === undefined || statusRaw === "")
278
+ continue;
279
+ const leading = statusRaw.charAt(0);
280
+ let code;
281
+ let oldPath;
282
+ let path;
283
+ switch (leading) {
284
+ case "A":
285
+ case "M":
286
+ case "D":
287
+ case "T": {
288
+ code = leading;
289
+ path = tokens[i++] ?? "";
290
+ break;
291
+ }
292
+ case "R":
293
+ case "C": {
294
+ code = leading;
295
+ oldPath = tokens[i++] ?? "";
296
+ path = tokens[i++] ?? "";
297
+ break;
298
+ }
299
+ case "U": {
300
+ code = "U";
301
+ path = tokens[i++] ?? "";
302
+ break;
303
+ }
304
+ case "X":
305
+ default: {
306
+ // Cycle 332 hard-error path. Silently treating "X" as any
307
+ // other code risks mis-keying findings and letting a parser
308
+ // regression corrupt cross-push state.
309
+ throw new UnknownGitStatusError(statusRaw);
310
+ }
311
+ }
312
+ if (!path)
313
+ continue;
314
+ const file = { path, status: code };
315
+ if (oldPath !== undefined)
316
+ file.oldPath = oldPath;
317
+ files.push(file);
318
+ }
319
+ return files;
320
+ }
321
+ // Check whether a commit / ref is reachable from the current
322
+ // repository. Used by review-push's restore-side fetch-depth guard
323
+ // to decide whether the cached last_reviewed_head_sha can serve as
324
+ // the delta base, or whether to fall back to the content-hash-direct
325
+ // path (cycle doc Q3 case 2).
326
+ export async function isShaReachable(sha, cwd = process.cwd()) {
327
+ try {
328
+ await git(["rev-parse", "--verify", `${sha}^{commit}`], { cwd });
329
+ return true;
330
+ }
331
+ catch {
332
+ return false;
333
+ }
334
+ }
335
+ // Check whether a file exists at a given git ref. Used by the
336
+ // deletion-clean-coverage carry-forward branch (Q1) where the
337
+ // decision is existence-based, not hash-based.
338
+ export async function gitFileExists(ref, path, cwd = process.cwd()) {
339
+ try {
340
+ await git(["cat-file", "-e", `${ref}:${path}`], { cwd });
341
+ return true;
342
+ }
343
+ catch {
344
+ return false;
345
+ }
346
+ }
347
+ // Read commit message bodies for the commit range `base..head`. Used
348
+ // by review-push's trailer-honoring path to walk every commit in the
349
+ // delta range and pick up `Critic-Reconsider:` trailers BEFORE the
350
+ // failure-mode dispatch (cycle doc Q3).
351
+ export async function commitMessagesInRange(base, head, cwd = process.cwd()) {
352
+ const args = base
353
+ ? ["log", "--format=%B%x00", `${base}..${head}`]
354
+ : ["log", "--format=%B%x00", head];
355
+ const out = await git(args, { cwd });
356
+ if (!out)
357
+ return [];
358
+ return out
359
+ .split("\0")
360
+ .map((m) => m.replace(/^\n+|\n+$/g, ""))
361
+ .filter((m) => m.length > 0);
362
+ }
363
+ export function diffHash(diff) {
364
+ return `sha256:${sha256(diff)}`;
365
+ }
366
+ // Cycle 332 — re-exported under the module-private name as a named
367
+ // export so `finding-cache.ts` and tests can use the same canonical
368
+ // helper rather than re-implementing crypto. Both consumers MUST go
369
+ // through `sha256Hex` / `sha256Tagged` in `finding-cache.ts` (which
370
+ // internally call createHash directly) so the on-disk hash format
371
+ // stays consistent — exporting the bare helper here is only for
372
+ // readability when callers want the un-tagged hex form for an audit
373
+ // log.
374
+ export function sha256(input) {
375
+ return createHash("sha256").update(input).digest("hex");
376
+ }
377
+ export const ZERO_SHA = "0000000000000000000000000000000000000000";
378
+ export function parsePrePushUpdates(stdin) {
379
+ const updates = [];
380
+ for (const rawLine of stdin.split("\n")) {
381
+ const line = rawLine.trim();
382
+ if (!line)
383
+ continue;
384
+ const parts = line.split(/\s+/);
385
+ if (parts.length !== 4)
386
+ continue;
387
+ const [localRef, localSha, remoteRef, remoteSha] = parts;
388
+ updates.push({
389
+ localRef,
390
+ localSha,
391
+ remoteRef,
392
+ remoteSha,
393
+ isCreate: remoteSha === ZERO_SHA,
394
+ isDelete: localSha === ZERO_SHA,
395
+ });
396
+ }
397
+ return updates;
398
+ }
399
+ export async function commitsForPushUpdate(update, cwd = process.cwd(), options = {}) {
400
+ if (update.isDelete)
401
+ return [];
402
+ const args = update.isCreate
403
+ ? ["rev-list", "--reverse", update.localSha, "--not", "--remotes"]
404
+ : ["rev-list", "--reverse", `${update.remoteSha}..${update.localSha}`];
405
+ if (options.maxCommits !== undefined) {
406
+ args.push(`--max-count=${options.maxCommits}`);
407
+ }
408
+ const out = await git(args, { cwd });
409
+ return out
410
+ .split("\n")
411
+ .map((l) => l.trim())
412
+ .filter(Boolean);
413
+ }
414
+ //# sourceMappingURL=git.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}
package/dist/glob.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ export declare function compileGlob(pattern: string): RegExp;
2
+ export declare function matchGlob(path: string, pattern: string): boolean;
3
+ export declare function matchAnyGlob(path: string, patterns: readonly string[]): boolean;
4
+ //# sourceMappingURL=glob.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../src/glob.ts"],"names":[],"mappings":"AAiBA,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA6DnD;AAQD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAK/E"}
package/dist/glob.js ADDED
@@ -0,0 +1,99 @@
1
+ // POSIX-style glob matcher with the subset needed for verification-route
2
+ // triggers and TDD classifier globs. Kept dependency-free on purpose:
3
+ // pulling in picomatch / minimatch would expand the supply-chain surface
4
+ // of a security-sensitive tool that already runs as a git hook. The subset
5
+ // here is what the cycle 318.2 config actually uses:
6
+ //
7
+ // * — matches any sequence of characters EXCEPT path separator
8
+ // ** — matches any sequence of characters INCLUDING path separators
9
+ // ? — matches a single character (not path separator)
10
+ // {a,b,c} — matches any of the comma-separated alternatives (one level)
11
+ // [abc] — matches one of a, b, c (character class)
12
+ // / — matched literally
13
+ //
14
+ // Match is anchored to the full string (not substring), case-sensitive,
15
+ // and uses POSIX path semantics (forward slash). Patterns are compiled to
16
+ // a RegExp at call time; cache externally if perf becomes a concern.
17
+ export function compileGlob(pattern) {
18
+ let i = 0;
19
+ let body = "";
20
+ while (i < pattern.length) {
21
+ const ch = pattern[i] ?? "";
22
+ if (ch === "*") {
23
+ // Look ahead for `**`.
24
+ if (pattern[i + 1] === "*") {
25
+ // `**/` or `**` at end: match any characters including `/`.
26
+ // Allow `**/` to optionally match zero segments (so `a/**/b` matches `a/b`).
27
+ if (pattern[i + 2] === "/") {
28
+ body += "(?:.*/)?";
29
+ i += 3;
30
+ }
31
+ else {
32
+ body += ".*";
33
+ i += 2;
34
+ }
35
+ }
36
+ else {
37
+ // Single `*`: match anything except `/`.
38
+ body += "[^/]*";
39
+ i += 1;
40
+ }
41
+ }
42
+ else if (ch === "?") {
43
+ body += "[^/]";
44
+ i += 1;
45
+ }
46
+ else if (ch === "{") {
47
+ // One-level brace expansion: {ts,tsx} → (?:ts|tsx).
48
+ // Nested braces are not supported (no current callers need them).
49
+ const close = pattern.indexOf("}", i + 1);
50
+ if (close === -1) {
51
+ // Unmatched brace — fall through to literal.
52
+ body += "\\{";
53
+ i += 1;
54
+ continue;
55
+ }
56
+ const inner = pattern.slice(i + 1, close);
57
+ const alts = inner.split(",").map((s) => escapeRegex(s));
58
+ body += `(?:${alts.join("|")})`;
59
+ i = close + 1;
60
+ }
61
+ else if (ch === "[") {
62
+ // Character class; escape `/` as `\/` inside the regex but keep
63
+ // the class otherwise verbatim. Note `[!...]` (POSIX negation) is
64
+ // converted to `[^...]`.
65
+ const close = pattern.indexOf("]", i + 1);
66
+ if (close === -1) {
67
+ body += "\\[";
68
+ i += 1;
69
+ continue;
70
+ }
71
+ let inner = pattern.slice(i + 1, close);
72
+ if (inner.startsWith("!")) {
73
+ inner = `^${inner.slice(1)}`;
74
+ }
75
+ body += `[${inner}]`;
76
+ i = close + 1;
77
+ }
78
+ else {
79
+ body += escapeRegex(ch);
80
+ i += 1;
81
+ }
82
+ }
83
+ return new RegExp(`^${body}$`);
84
+ }
85
+ const REGEX_ESCAPE = /[.+^$|()\\\\]/g;
86
+ function escapeRegex(s) {
87
+ return s.replace(REGEX_ESCAPE, "\\$&");
88
+ }
89
+ export function matchGlob(path, pattern) {
90
+ return compileGlob(pattern).test(path);
91
+ }
92
+ export function matchAnyGlob(path, patterns) {
93
+ for (const p of patterns) {
94
+ if (matchGlob(path, p))
95
+ return true;
96
+ }
97
+ return false;
98
+ }
99
+ //# sourceMappingURL=glob.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glob.js","sourceRoot":"","sources":["../src/glob.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export * from "./adapters/critic.js";
2
+ export * from "./adapters/critic-result-schema.js";
3
+ export { evaluateCommitGate, evaluatePushGate, evaluateQuorumCriticResults, summarizeGate, enforceVerificationRoutes, runTddClassifier, enforceFindingRubric, buildRubricContext, classifyTdd, type EvaluateGateOptions, type EvaluatePushGateOptions, type EnforceRoutesOptions, type RouteEvaluation, type RouteResult, type RubricStripContext, type RubricResult, type StrippedFinding, type BuildRubricContextOptions, type RunTddClassifierOptions, type TddClassifierConfig, type TddClassifierResult, } from "./policy/gate.js";
4
+ export { classifyTdd as tddClassify, type TddClassifierConfig as TddConfig, type TddClassifierResult as TddResult, type TddVerdict, } from "./policy/tdd-classifier.js";
5
+ export { resolvePolicyBaseline, TRUSTED_SCRIPT_PATHS, type PolicyBaseline, type ResolveBaselineOptions, } from "./policy/baseline.js";
6
+ export { resolveProfile, resolveProfileWithConfig, applyProfileParamOverrides, applyProfileAuth, type ResolvedProfile, } from "./policy/profile.js";
7
+ export { loadAgentReviewConfig, loadAgentReviewConfigFromRef, applyEnvOverrides, CONFIG_RELATIVE_PATH, POLICY_OVERRIDE_ENV, type LoadedConfig, type LoadConfigOptions, type PolicyOverrideRecord, type ApplyEnvOverridesOptions, type ApplyEnvOverridesResult, } from "./policy/config.js";
8
+ export { buildReviewPacket, readContainedFiles, type BuildPacketOptions, } from "./trusted-surface/rebind.js";
9
+ export { parseCommitTrailers, getTrailer, perShaQualityGatePath, collectChangedPaths, QUALITY_GATES_SUBDIR, runQualityGates, readQualityGateEvidence, type CommitTrailers, type QualityGateRunOptions, type ReadEvidenceResult, } from "./evidence/index.js";
10
+ export { runValidateCycleDoc, getValidateCycleDocScriptPath, type ValidateCycleDocOptions, type ValidateCycleDocResult, } from "./cycle-doc-validator/index.js";
11
+ export { runAuditBranchProtection, getAuditBranchProtectionScriptPath, getBundledDefaultSpecPath, type AuditBranchProtectionOptions, type AuditBranchProtectionResult, } from "./branch-protection/index.js";
12
+ export { runSyncCycleTrackers, runAttributePrCycleRef, getSyncCycleTrackersScriptPath, getAttributePrCycleRefScriptPath, type SyncCycleTrackersOptions, type AttributePrCycleRefOptions, type PythonScriptResult, } from "./cycle-tracker-sync/index.js";
13
+ export { classifyPrKind, classifyPrKindFromFiles, resolveChiefEngineerLogin, evaluatePlanPrReviewGate, defaultMergeQueueRule, defaultMainRulesetShape, defaultCeReviewRulesetShape, PR_PLAN_DOC_PATTERN, PR_DOC_ROOT, type PrKind, type PlanPrGateInputs, type PlanPrGateVerdict, type MergeQueueRule, type RulesetShape, } from "./policy/merge-queue.js";
14
+ export { FileTelemetrySink, MemoryTelemetrySink, readTelemetryEvents, summarizeTelemetry, computeQuorumStats, computeCriticAgreement, type TelemetrySink, type TelemetryStats, type RetrySummary, type CriticStats, type CriticAgreement, type QuorumStats, } from "./evidence/audit-trail.js";
15
+ export { runReview, runCommitGate, type ReviewRunOptions, type ReviewRunOutcome, type GateRunOptions, } from "./runner.js";
16
+ export * from "@momentiq/dark-factory-schemas";
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,33 @@
1
+ // Barrel exports for @momentiq/dark-factory-cli.
2
+ // Top-level entry: re-exports the three services and the runner.
3
+ // Service #1 — Critic Orchestrator
4
+ export * from "./adapters/critic.js";
5
+ export * from "./adapters/critic-result-schema.js";
6
+ // Service #2 — Policy Engine
7
+ export { evaluateCommitGate, evaluatePushGate, evaluateQuorumCriticResults, summarizeGate, enforceVerificationRoutes, runTddClassifier, enforceFindingRubric, buildRubricContext, classifyTdd, } from "./policy/gate.js";
8
+ export { classifyTdd as tddClassify, } from "./policy/tdd-classifier.js";
9
+ export { resolvePolicyBaseline, TRUSTED_SCRIPT_PATHS, } from "./policy/baseline.js";
10
+ export { resolveProfile, resolveProfileWithConfig, applyProfileParamOverrides, applyProfileAuth, } from "./policy/profile.js";
11
+ export { loadAgentReviewConfig, loadAgentReviewConfigFromRef, applyEnvOverrides, CONFIG_RELATIVE_PATH, POLICY_OVERRIDE_ENV, } from "./policy/config.js";
12
+ // Service #3 — Trusted-Surface Rebind
13
+ export { buildReviewPacket, readContainedFiles, } from "./trusted-surface/rebind.js";
14
+ // Service #4 — Per-SHA Evidence Store (Phase C boundary)
15
+ export { parseCommitTrailers, getTrailer, perShaQualityGatePath, collectChangedPaths, QUALITY_GATES_SUBDIR, runQualityGates, readQualityGateEvidence, } from "./evidence/index.js";
16
+ // Service #5 — Cycle-Doc Trailer Validator (Phase C — Python-wrapped)
17
+ export { runValidateCycleDoc, getValidateCycleDocScriptPath, } from "./cycle-doc-validator/index.js";
18
+ // Service #7 — Branch-Protection Drift Detector (Phase C — Python-wrapped)
19
+ export { runAuditBranchProtection, getAuditBranchProtectionScriptPath, getBundledDefaultSpecPath, } from "./branch-protection/index.js";
20
+ // Service #9 — Cycle Tracker Sync + PR Attribution (Phase C — Python-wrapped)
21
+ export { runSyncCycleTrackers, runAttributePrCycleRef, getSyncCycleTrackersScriptPath, getAttributePrCycleRefScriptPath, } from "./cycle-tracker-sync/index.js";
22
+ // Service #6 — Merge Queue Admission Policy (Phase D boundary).
23
+ // Plan-vs-code PR classifier + merge-queue rule shape (the ruleset
24
+ // contract that audit_branch_protection.py compares against).
25
+ export { classifyPrKind, classifyPrKindFromFiles, resolveChiefEngineerLogin, evaluatePlanPrReviewGate, defaultMergeQueueRule, defaultMainRulesetShape, defaultCeReviewRulesetShape, PR_PLAN_DOC_PATTERN, PR_DOC_ROOT, } from "./policy/merge-queue.js";
26
+ // Service #8 — Audit / Compliance Trail (Phase D boundary).
27
+ // `_runs.ndjson` sink + read/summarize helpers.
28
+ export { FileTelemetrySink, MemoryTelemetrySink, readTelemetryEvents, summarizeTelemetry, computeQuorumStats, computeCriticAgreement, } from "./evidence/audit-trail.js";
29
+ // Runner — drives the orchestrator end-to-end.
30
+ export { runReview, runCommitGate, } from "./runner.js";
31
+ // Re-export schemas for ergonomic single-import.
32
+ export * from "@momentiq/dark-factory-schemas";
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,iEAAiE;AAEjE,mCAAmC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oCAAoC,CAAC;AAEnD,6BAA6B;AAC7B,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,2BAA2B,EAC3B,aAAa,EACb,yBAAyB,EACzB,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,WAAW,GAaZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,WAAW,IAAI,WAAW,GAI3B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,qBAAqB,EACrB,oBAAoB,GAGrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,0BAA0B,EAC1B,gBAAgB,GAEjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,GAMpB,MAAM,oBAAoB,CAAC;AAE5B,sCAAsC;AACtC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,GAEnB,MAAM,6BAA6B,CAAC;AAErC,yDAAyD;AACzD,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,uBAAuB,GAIxB,MAAM,qBAAqB,CAAC;AAE7B,sEAAsE;AACtE,OAAO,EACL,mBAAmB,EACnB,6BAA6B,GAG9B,MAAM,gCAAgC,CAAC;AAExC,2EAA2E;AAC3E,OAAO,EACL,wBAAwB,EACxB,kCAAkC,EAClC,yBAAyB,GAG1B,MAAM,8BAA8B,CAAC;AAEtC,8EAA8E;AAC9E,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,8BAA8B,EAC9B,gCAAgC,GAIjC,MAAM,+BAA+B,CAAC;AAEvC,gEAAgE;AAChE,mEAAmE;AACnE,8DAA8D;AAC9D,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC3B,mBAAmB,EACnB,WAAW,GAMZ,MAAM,yBAAyB,CAAC;AAEjC,4DAA4D;AAC5D,gDAAgD;AAChD,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,GAOvB,MAAM,2BAA2B,CAAC;AAEnC,+CAA+C;AAC/C,OAAO,EACL,SAAS,EACT,aAAa,GAId,MAAM,aAAa,CAAC;AAErB,iDAAiD;AACjD,cAAc,gCAAgC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { LoadedConfig } from "./policy/config.js";
2
+ export declare function resolveArtifactRoot(loaded: LoadedConfig): Promise<string>;
3
+ export declare function resolveArtifactDir(loaded: LoadedConfig): Promise<string>;
4
+ export declare function artifactJsonPath(artifactDir: string, sha: string): string;
5
+ export declare function artifactMarkdownPath(artifactDir: string, sha: string): string;
6
+ export declare function artifactLockPath(artifactDir: string, sha: string): string;
7
+ export declare function diagnosticsDir(artifactDir: string): string;
8
+ export declare function telemetryPath(artifactDir: string): string;
9
+ export declare function resolveValidationResultPath(loaded: LoadedConfig): Promise<string>;
10
+ export declare function findingCacheDir(artifactDir: string, prNumber: number): string;
11
+ export declare function findingCachePath(artifactDir: string, prNumber: number): string;
12
+ //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAK/E;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAE9E;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAsB,2BAA2B,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAGvF;AAOD,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE9E"}