@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.
- package/LICENSE +201 -0
- package/README.md +150 -0
- package/dist/adapters/_shared.d.ts +45 -0
- package/dist/adapters/_shared.d.ts.map +1 -0
- package/dist/adapters/_shared.js +200 -0
- package/dist/adapters/_shared.js.map +1 -0
- package/dist/adapters/codex-sdk.d.ts +279 -0
- package/dist/adapters/codex-sdk.d.ts.map +1 -0
- package/dist/adapters/codex-sdk.js +930 -0
- package/dist/adapters/codex-sdk.js.map +1 -0
- package/dist/adapters/critic-result-schema.d.ts +215 -0
- package/dist/adapters/critic-result-schema.d.ts.map +1 -0
- package/dist/adapters/critic-result-schema.js +153 -0
- package/dist/adapters/critic-result-schema.js.map +1 -0
- package/dist/adapters/critic.d.ts +62 -0
- package/dist/adapters/critic.d.ts.map +1 -0
- package/dist/adapters/critic.js +79 -0
- package/dist/adapters/critic.js.map +1 -0
- package/dist/adapters/cursor-sdk.d.ts +153 -0
- package/dist/adapters/cursor-sdk.d.ts.map +1 -0
- package/dist/adapters/cursor-sdk.js +818 -0
- package/dist/adapters/cursor-sdk.js.map +1 -0
- package/dist/adapters/gemini-sdk.d.ts +113 -0
- package/dist/adapters/gemini-sdk.d.ts.map +1 -0
- package/dist/adapters/gemini-sdk.js +532 -0
- package/dist/adapters/gemini-sdk.js.map +1 -0
- package/dist/adapters/grok-direct-sdk.d.ts +148 -0
- package/dist/adapters/grok-direct-sdk.d.ts.map +1 -0
- package/dist/adapters/grok-direct-sdk.js +694 -0
- package/dist/adapters/grok-direct-sdk.js.map +1 -0
- package/dist/branch-protection/audit_branch_protection.py +759 -0
- package/dist/branch-protection/index.d.ts +25 -0
- package/dist/branch-protection/index.d.ts.map +1 -0
- package/dist/branch-protection/index.js +70 -0
- package/dist/branch-protection/index.js.map +1 -0
- package/dist/branch-protection/spec-default.yaml +314 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +581 -0
- package/dist/cli.js.map +1 -0
- package/dist/cycle-doc-validator/index.d.ts +43 -0
- package/dist/cycle-doc-validator/index.d.ts.map +1 -0
- package/dist/cycle-doc-validator/index.js +69 -0
- package/dist/cycle-doc-validator/index.js.map +1 -0
- package/dist/cycle-doc-validator/validate_cycle_doc.py +1260 -0
- package/dist/cycle-tracker-sync/attribute_pr_cycle_ref.py +384 -0
- package/dist/cycle-tracker-sync/index.d.ts +20 -0
- package/dist/cycle-tracker-sync/index.d.ts.map +1 -0
- package/dist/cycle-tracker-sync/index.js +71 -0
- package/dist/cycle-tracker-sync/index.js.map +1 -0
- package/dist/cycle-tracker-sync/sync_cycle_trackers.py +1093 -0
- package/dist/evidence/audit-trail.d.ts +59 -0
- package/dist/evidence/audit-trail.d.ts.map +1 -0
- package/dist/evidence/audit-trail.js +283 -0
- package/dist/evidence/audit-trail.js.map +1 -0
- package/dist/evidence/index.d.ts +4 -0
- package/dist/evidence/index.d.ts.map +1 -0
- package/dist/evidence/index.js +29 -0
- package/dist/evidence/index.js.map +1 -0
- package/dist/evidence/per-sha.d.ts +13 -0
- package/dist/evidence/per-sha.d.ts.map +1 -0
- package/dist/evidence/per-sha.js +97 -0
- package/dist/evidence/per-sha.js.map +1 -0
- package/dist/evidence/quality-gates.d.ts +19 -0
- package/dist/evidence/quality-gates.d.ts.map +1 -0
- package/dist/evidence/quality-gates.js +212 -0
- package/dist/evidence/quality-gates.js.map +1 -0
- package/dist/git.d.ts +40 -0
- package/dist/git.d.ts.map +1 -0
- package/dist/git.js +414 -0
- package/dist/git.js.map +1 -0
- package/dist/glob.d.ts +4 -0
- package/dist/glob.d.ts.map +1 -0
- package/dist/glob.js +99 -0
- package/dist/glob.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +33 -0
- package/dist/index.js.map +1 -0
- package/dist/paths.d.ts +12 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +42 -0
- package/dist/paths.js.map +1 -0
- package/dist/policy/baseline.d.ts +15 -0
- package/dist/policy/baseline.d.ts.map +1 -0
- package/dist/policy/baseline.js +115 -0
- package/dist/policy/baseline.js.map +1 -0
- package/dist/policy/config.d.ts +64 -0
- package/dist/policy/config.d.ts.map +1 -0
- package/dist/policy/config.js +363 -0
- package/dist/policy/config.js.map +1 -0
- package/dist/policy/gate.d.ts +80 -0
- package/dist/policy/gate.d.ts.map +1 -0
- package/dist/policy/gate.js +1019 -0
- package/dist/policy/gate.js.map +1 -0
- package/dist/policy/index.d.ts +7 -0
- package/dist/policy/index.d.ts.map +1 -0
- package/dist/policy/index.js +14 -0
- package/dist/policy/index.js.map +1 -0
- package/dist/policy/merge-queue.d.ts +183 -0
- package/dist/policy/merge-queue.d.ts.map +1 -0
- package/dist/policy/merge-queue.js +310 -0
- package/dist/policy/merge-queue.js.map +1 -0
- package/dist/policy/profile.d.ts +98 -0
- package/dist/policy/profile.d.ts.map +1 -0
- package/dist/policy/profile.js +156 -0
- package/dist/policy/profile.js.map +1 -0
- package/dist/policy/tdd-classifier.d.ts +18 -0
- package/dist/policy/tdd-classifier.d.ts.map +1 -0
- package/dist/policy/tdd-classifier.js +79 -0
- package/dist/policy/tdd-classifier.js.map +1 -0
- package/dist/prompt.d.ts +13 -0
- package/dist/prompt.d.ts.map +1 -0
- package/dist/prompt.js +175 -0
- package/dist/prompt.js.map +1 -0
- package/dist/report.d.ts +88 -0
- package/dist/report.d.ts.map +1 -0
- package/dist/report.js +376 -0
- package/dist/report.js.map +1 -0
- package/dist/runner.d.ts +30 -0
- package/dist/runner.d.ts.map +1 -0
- package/dist/runner.js +456 -0
- package/dist/runner.js.map +1 -0
- package/dist/security.d.ts +2 -0
- package/dist/security.d.ts.map +1 -0
- package/dist/security.js +19 -0
- package/dist/security.js.map +1 -0
- package/dist/trusted-surface/rebind.d.ts +10 -0
- package/dist/trusted-surface/rebind.d.ts.map +1 -0
- package/dist/trusted-surface/rebind.js +154 -0
- package/dist/trusted-surface/rebind.js.map +1 -0
- package/package.json +78 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gate.js","sourceRoot":"","sources":["../../src/policy/gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
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 "./gate.js";
|
|
2
|
+
export { type TddVerdict, } from "./tdd-classifier.js";
|
|
3
|
+
export { resolvePolicyBaseline, TRUSTED_SCRIPT_PATHS, type PolicyBaseline, type ResolveBaselineOptions, } from "./baseline.js";
|
|
4
|
+
export { resolveProfile, resolveProfileWithConfig, applyProfileParamOverrides, applyProfileAuth, type ResolvedProfile, } from "./profile.js";
|
|
5
|
+
export { loadAgentReviewConfig, loadAgentReviewConfigFromRef, applyEnvOverrides, CONFIG_RELATIVE_PATH, POLICY_OVERRIDE_ENV, type LoadedConfig, type LoadConfigOptions, type PolicyOverrideRecord, type ApplyEnvOverridesOptions, type ApplyEnvOverridesResult, } from "./config.js";
|
|
6
|
+
export { classifyPrKind, classifyPrKindFromFiles, resolveChiefEngineerLogin, evaluatePlanPrReviewGate, defaultMergeQueueRule, defaultMainRulesetShape, defaultCeReviewRulesetShape, PR_PLAN_DOC_PATTERN, PR_DOC_ROOT, type PrKind, type PrFile, type AgenticEngineerRegistry, type PlanPrReview, type PlanPrGateInputs, type PlanPrGateVerdict, type MergeQueueRule, type PullRequestRule, type RequiredStatusChecksRule, type CopilotCodeReviewRule, type DeletionRule, type NonFastForwardRule, type RequiredLinearHistoryRule, type RulesetRule, type BypassActor, type RulesetShape, } from "./merge-queue.js";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/policy/index.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,2BAA2B,EAC3B,aAAa,EACb,yBAAyB,EACzB,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,WAAW,EACX,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,GACzB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,KAAK,UAAU,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,KAAK,cAAc,EACnB,KAAK,sBAAsB,GAC5B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,0BAA0B,EAC1B,gBAAgB,EAChB,KAAK,eAAe,GACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,GAC7B,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC3B,mBAAmB,EACnB,WAAW,EACX,KAAK,MAAM,EACX,KAAK,MAAM,EACX,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,YAAY,GAClB,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Policy boundary barrel.
|
|
2
|
+
//
|
|
3
|
+
// Created in Phase D to back the `./policy` subpath export declared
|
|
4
|
+
// in `package.json` since Phase B (the subpath pointed at a
|
|
5
|
+
// nonexistent index file from Phase B until this commit). All
|
|
6
|
+
// policy-layer symbols flow through here.
|
|
7
|
+
// Service #2 — Policy Engine (gate.ts is the bulk; aux modules below).
|
|
8
|
+
export { evaluateCommitGate, evaluatePushGate, evaluateQuorumCriticResults, summarizeGate, enforceVerificationRoutes, runTddClassifier, enforceFindingRubric, buildRubricContext, classifyTdd, } from "./gate.js";
|
|
9
|
+
export { resolvePolicyBaseline, TRUSTED_SCRIPT_PATHS, } from "./baseline.js";
|
|
10
|
+
export { resolveProfile, resolveProfileWithConfig, applyProfileParamOverrides, applyProfileAuth, } from "./profile.js";
|
|
11
|
+
export { loadAgentReviewConfig, loadAgentReviewConfigFromRef, applyEnvOverrides, CONFIG_RELATIVE_PATH, POLICY_OVERRIDE_ENV, } from "./config.js";
|
|
12
|
+
// Service #6 — Merge Queue Admission Policy (Phase D boundary).
|
|
13
|
+
export { classifyPrKind, classifyPrKindFromFiles, resolveChiefEngineerLogin, evaluatePlanPrReviewGate, defaultMergeQueueRule, defaultMainRulesetShape, defaultCeReviewRulesetShape, PR_PLAN_DOC_PATTERN, PR_DOC_ROOT, } from "./merge-queue.js";
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/policy/index.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,EAAE;AACF,oEAAoE;AACpE,4DAA4D;AAC5D,8DAA8D;AAC9D,0CAA0C;AAE1C,uEAAuE;AACvE,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,2BAA2B,EAC3B,aAAa,EACb,yBAAyB,EACzB,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,WAAW,GAaZ,MAAM,WAAW,CAAC;AAInB,OAAO,EACL,qBAAqB,EACrB,oBAAoB,GAGrB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,0BAA0B,EAC1B,gBAAgB,GAEjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,GAMpB,MAAM,aAAa,CAAC;AAErB,gEAAgE;AAChE,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC3B,mBAAmB,EACnB,WAAW,GAiBZ,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
export type PrKind = "plan" | "code";
|
|
2
|
+
/** Minimal shape of a GitHub PR file entry — enough for the classifier. */
|
|
3
|
+
export interface PrFile {
|
|
4
|
+
path: string;
|
|
5
|
+
}
|
|
6
|
+
export declare const PR_DOC_ROOT = "docs/";
|
|
7
|
+
export declare const PR_PLAN_DOC_PATTERN: RegExp;
|
|
8
|
+
/**
|
|
9
|
+
* A pure-function classifier — takes a list of file paths from a PR's diff.
|
|
10
|
+
*
|
|
11
|
+
* Faithful byte-for-byte port of the bash regex in sage3c's
|
|
12
|
+
* `plan-pr-review-gate.yml` (cycle 322.4). One known quirk preserved
|
|
13
|
+
* from that source: the workflow's accompanying CLAUDE.md comment
|
|
14
|
+
* says "Files under `cycle*-evidence/` are operational artifacts,
|
|
15
|
+
* not plans; they classify as `code`" — but the bash regex anchors
|
|
16
|
+
* the non-doc count on the `docs/` prefix, so a cycle-doc + sibling
|
|
17
|
+
* `cycle*-evidence/snapshot.md` (both inside `docs/`) still returns
|
|
18
|
+
* `plan`. This port preserves the bash behavior, not the comment's
|
|
19
|
+
* stated intent — fixing the gap is sage3c's call, not the extracted
|
|
20
|
+
* CLI's. See `tests/policy/merge-queue.test.ts` for the pinned
|
|
21
|
+
* regression test.
|
|
22
|
+
*/
|
|
23
|
+
export declare function classifyPrKindFromFiles(filePaths: readonly string[]): PrKind;
|
|
24
|
+
/** Convenience wrapper for the typed adapter shape (`PrFile`). */
|
|
25
|
+
export declare function classifyPrKind(files: readonly PrFile[]): PrKind;
|
|
26
|
+
export interface AgenticEngineerRegistry {
|
|
27
|
+
chief_engineer?: {
|
|
28
|
+
github_login?: string | null;
|
|
29
|
+
} | null;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Extract the Chief Engineer's GitHub login from a parsed agentic-engineers
|
|
33
|
+
* registry. Returns null on any deviation from the expected shape so the
|
|
34
|
+
* caller can fail closed without a try/catch storm.
|
|
35
|
+
*/
|
|
36
|
+
export declare function resolveChiefEngineerLogin(registry: AgenticEngineerRegistry | null | undefined): string | null;
|
|
37
|
+
export interface PlanPrReview {
|
|
38
|
+
/** The reviewer's GitHub login. */
|
|
39
|
+
userLogin: string;
|
|
40
|
+
/** The PR SHA the review was submitted against. Reviews on stale SHAs are ignored (dismiss_stale_reviews_on_push semantics). */
|
|
41
|
+
commitId: string;
|
|
42
|
+
/** Submission timestamp (ISO 8601 or epoch ms — caller can choose; comparator is `>`). */
|
|
43
|
+
submittedAt: string | number;
|
|
44
|
+
/** GitHub review state. COMMENTED is excluded from latest-wins to preserve a prior APPROVED. */
|
|
45
|
+
state: "APPROVED" | "CHANGES_REQUESTED" | "DISMISSED" | "COMMENTED" | "PENDING";
|
|
46
|
+
}
|
|
47
|
+
export interface PlanPrGateInputs {
|
|
48
|
+
/** Output of `classifyPrKind` over the PR's files. */
|
|
49
|
+
kind: PrKind;
|
|
50
|
+
/** PR author login (`pull_request.user.login`). */
|
|
51
|
+
prAuthorLogin: string;
|
|
52
|
+
/** The Chief Engineer's login, resolved from the base-ref registry. */
|
|
53
|
+
chiefEngineerLogin: string | null;
|
|
54
|
+
/** Current PR head SHA. The CE-APPROVED filter requires the review to be on this SHA. */
|
|
55
|
+
prHeadSha: string;
|
|
56
|
+
/** Every review submitted against the PR. */
|
|
57
|
+
reviews: readonly PlanPrReview[];
|
|
58
|
+
}
|
|
59
|
+
export type PlanPrGateVerdict = {
|
|
60
|
+
admit: true;
|
|
61
|
+
reason: "code_pr_not_applicable" | "ce_self_skip" | "ce_approved_on_head";
|
|
62
|
+
} | {
|
|
63
|
+
admit: false;
|
|
64
|
+
reason: "missing_chief_engineer_login" | "no_ce_review_on_head" | "ce_review_requested_changes" | "ce_dismissed_or_pending";
|
|
65
|
+
detail: string;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Pure evaluator for the plan-PR review gate.
|
|
69
|
+
*
|
|
70
|
+
* Returns `admit: true` for:
|
|
71
|
+
* - code PRs (gate not applicable),
|
|
72
|
+
* - CE-authored plan PRs (architect-loop is the review),
|
|
73
|
+
* - non-CE plan PRs where the CE has APPROVED on the current head SHA.
|
|
74
|
+
*
|
|
75
|
+
* Returns `admit: false` for:
|
|
76
|
+
* - missing CE identity in the registry (fail-closed),
|
|
77
|
+
* - non-CE plan PR with no CE review on the current head SHA,
|
|
78
|
+
* - non-CE plan PR with a CHANGES_REQUESTED CE review on the current head SHA,
|
|
79
|
+
* - non-CE plan PR with the CE's latest review on the current head SHA being DISMISSED/PENDING.
|
|
80
|
+
*/
|
|
81
|
+
export declare function evaluatePlanPrReviewGate(inputs: PlanPrGateInputs): PlanPrGateVerdict;
|
|
82
|
+
export interface MergeQueueRule {
|
|
83
|
+
type: "merge_queue";
|
|
84
|
+
parameters: {
|
|
85
|
+
merge_method: "MERGE" | "SQUASH" | "REBASE";
|
|
86
|
+
max_entries_to_build: number;
|
|
87
|
+
min_entries_to_merge: number;
|
|
88
|
+
max_entries_to_merge: number;
|
|
89
|
+
min_entries_to_merge_wait_minutes: number;
|
|
90
|
+
grouping_strategy: "ALLGREEN" | "HEADGREEN";
|
|
91
|
+
check_response_timeout_minutes: number;
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
export interface PullRequestRule {
|
|
95
|
+
type: "pull_request";
|
|
96
|
+
parameters: {
|
|
97
|
+
required_approving_review_count: number;
|
|
98
|
+
dismiss_stale_reviews_on_push: boolean;
|
|
99
|
+
required_reviewers: readonly string[];
|
|
100
|
+
require_code_owner_review: boolean;
|
|
101
|
+
require_last_push_approval: boolean;
|
|
102
|
+
required_review_thread_resolution: boolean;
|
|
103
|
+
allowed_merge_methods: readonly ("merge" | "squash" | "rebase")[];
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
export interface RequiredStatusChecksRule {
|
|
107
|
+
type: "required_status_checks";
|
|
108
|
+
parameters: {
|
|
109
|
+
strict_required_status_checks_policy: boolean;
|
|
110
|
+
do_not_enforce_on_create: boolean;
|
|
111
|
+
required_status_checks: readonly {
|
|
112
|
+
context: string;
|
|
113
|
+
integration_id?: number;
|
|
114
|
+
}[];
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
export interface CopilotCodeReviewRule {
|
|
118
|
+
type: "copilot_code_review";
|
|
119
|
+
parameters: {
|
|
120
|
+
review_on_push: boolean;
|
|
121
|
+
review_draft_pull_requests: boolean;
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
export interface DeletionRule {
|
|
125
|
+
type: "deletion";
|
|
126
|
+
}
|
|
127
|
+
export interface NonFastForwardRule {
|
|
128
|
+
type: "non_fast_forward";
|
|
129
|
+
}
|
|
130
|
+
export interface RequiredLinearHistoryRule {
|
|
131
|
+
type: "required_linear_history";
|
|
132
|
+
}
|
|
133
|
+
export type RulesetRule = DeletionRule | NonFastForwardRule | RequiredLinearHistoryRule | PullRequestRule | RequiredStatusChecksRule | CopilotCodeReviewRule | MergeQueueRule;
|
|
134
|
+
export interface BypassActor {
|
|
135
|
+
actor_id: number | null;
|
|
136
|
+
actor_type: "Team" | "RepositoryRole" | "Integration" | "OrganizationAdmin";
|
|
137
|
+
bypass_mode: "always" | "pull_request";
|
|
138
|
+
}
|
|
139
|
+
export interface RulesetShape {
|
|
140
|
+
name: string;
|
|
141
|
+
target: "branch" | "tag";
|
|
142
|
+
source_type: "Repository" | "Organization";
|
|
143
|
+
source: string;
|
|
144
|
+
enforcement: "active" | "evaluate" | "disabled";
|
|
145
|
+
bypass_actors: readonly BypassActor[];
|
|
146
|
+
conditions: {
|
|
147
|
+
ref_name: {
|
|
148
|
+
include: readonly string[];
|
|
149
|
+
exclude: readonly string[];
|
|
150
|
+
};
|
|
151
|
+
};
|
|
152
|
+
rules: readonly RulesetRule[];
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Reference merge-queue rule mirroring sage3c's current `main1` posture
|
|
156
|
+
* (cycle 322.4): SQUASH, ALLGREEN, batch up to 5, 60-min check timeout.
|
|
157
|
+
* Consumers can spread + override:
|
|
158
|
+
* { ...defaultMergeQueueRule(), parameters: { ...defaultMergeQueueRule().parameters, merge_method: "REBASE" } }
|
|
159
|
+
*/
|
|
160
|
+
export declare function defaultMergeQueueRule(): MergeQueueRule;
|
|
161
|
+
/**
|
|
162
|
+
* Reference Ruleset A (the merge-queue + required-checks ruleset)
|
|
163
|
+
* mirroring sage3c's `main1`. Consumers seed from this then layer
|
|
164
|
+
* their own contexts.
|
|
165
|
+
*/
|
|
166
|
+
export declare function defaultMainRulesetShape(source: string, options?: {
|
|
167
|
+
additionalRequiredContexts?: readonly string[];
|
|
168
|
+
}): RulesetShape;
|
|
169
|
+
/**
|
|
170
|
+
* Reference Ruleset B (the CE-bypass review ruleset) mirroring
|
|
171
|
+
* sage3c's `main-ce-review`. Consumers seed from this and replace
|
|
172
|
+
* the `bypass_actors[0]` team id with their own CE team's id.
|
|
173
|
+
*
|
|
174
|
+
* The two-ruleset architecture (cycle 322.4): Ruleset A holds the
|
|
175
|
+
* required checks the CE should NOT be able to bypass; Ruleset B
|
|
176
|
+
* holds the human-review rule the CE bypasses. Required because
|
|
177
|
+
* `bypass_mode` is RULESET-scope, not rule-scope.
|
|
178
|
+
*/
|
|
179
|
+
export declare function defaultCeReviewRulesetShape(source: string, options?: {
|
|
180
|
+
chiefEngineerTeamId?: number | null;
|
|
181
|
+
chiefEngineerTeamSlug?: string;
|
|
182
|
+
}): RulesetShape;
|
|
183
|
+
//# sourceMappingURL=merge-queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-queue.d.ts","sourceRoot":"","sources":["../../src/policy/merge-queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
// Service #6 — Merge Queue Admission Policy (Phase D boundary).
|
|
2
|
+
//
|
|
3
|
+
// Two responsibilities, each extracted from a distinct sage3c source:
|
|
4
|
+
//
|
|
5
|
+
// 1) `ruleset-shape` — the TypeScript contract for the GitHub Repository
|
|
6
|
+
// Ruleset rules that codify Dark Factory's merge-queue admission
|
|
7
|
+
// posture: which checks must be green, what the merge-queue strategy
|
|
8
|
+
// is, where the CE-bypass lane lives. Mirrors the shape that
|
|
9
|
+
// sage3c's `audit_branch_protection.py` compares against (Service
|
|
10
|
+
// #7 — already shipped in Phase C). This file declares the contract
|
|
11
|
+
// so consumers can author / validate their own `spec.yaml` without
|
|
12
|
+
// re-implementing the rule shapes from scratch.
|
|
13
|
+
//
|
|
14
|
+
// 2) `plan-vs-code router` — the heuristic that classifies a PR as
|
|
15
|
+
// `plan` (cycle-doc-only) vs `code` (touches anything outside
|
|
16
|
+
// `docs/`). Ported from sage3c's `.github/workflows/plan-pr-review-gate.yml`
|
|
17
|
+
// lines 117-134. Drives the stricter-gate-for-plan-PRs rule that
|
|
18
|
+
// forces CE-in-the-loop on the highest-leverage artifacts.
|
|
19
|
+
//
|
|
20
|
+
// What this file deliberately does NOT do:
|
|
21
|
+
//
|
|
22
|
+
// * Compare a spec against a live ruleset — that's Service #7
|
|
23
|
+
// (`audit_branch_protection.py` in `branch-protection/`).
|
|
24
|
+
// * Classify trivial-vs-substantive issues — that's the Cerebe-
|
|
25
|
+
// backed tier classifier (`scripts/ci/tier_classifier.py`), a
|
|
26
|
+
// separate service not in scope for 331.1.
|
|
27
|
+
// * Enforce committer identity (the AI-Agentic-Engineer authorship
|
|
28
|
+
// gate, `scripts/ci/check_agentic_engineer_authorship.py`) — also
|
|
29
|
+
// a separate service.
|
|
30
|
+
//
|
|
31
|
+
// Sources:
|
|
32
|
+
// sage3c/.github/rulesets/main.json
|
|
33
|
+
// sage3c/.github/rulesets/main-ce-review.json
|
|
34
|
+
// sage3c/.github/workflows/plan-pr-review-gate.yml
|
|
35
|
+
// sage3c/scripts/ci/audit_branch_protection.py (for the rule shapes
|
|
36
|
+
// this file declares; the comparator stays in branch-protection/)
|
|
37
|
+
//
|
|
38
|
+
// Ratified design references:
|
|
39
|
+
// docs/roadmap/cycles/cycle322-dark-factory-chief-engineer-merge-bypass.md
|
|
40
|
+
// docs/roadmap/cycles/cycle322.4-...md (CE bypass lane two-ruleset arch)
|
|
41
|
+
// docs/roadmap/cycles/cycle331.1-extract-from-sage3c.md § Phase D
|
|
42
|
+
// ---------------------------------------------------------------------------
|
|
43
|
+
// Plan-vs-code PR classifier
|
|
44
|
+
//
|
|
45
|
+
// Ported from `.github/workflows/plan-pr-review-gate.yml` (cycle 322.4).
|
|
46
|
+
// The workflow's bash equivalent is:
|
|
47
|
+
//
|
|
48
|
+
// PLAN_FILES = (count files matching docs/roadmap/cycles/cycle*.md
|
|
49
|
+
// directly under cycles/)
|
|
50
|
+
// NON_DOC_FILES = (count files NOT under docs/)
|
|
51
|
+
// if PLAN_FILES > 0 and NON_DOC_FILES == 0:
|
|
52
|
+
// kind = "plan"
|
|
53
|
+
// else:
|
|
54
|
+
// kind = "code"
|
|
55
|
+
//
|
|
56
|
+
// The classifier matches the bash regex `^docs/roadmap/cycles/cycle[0-9.]+-?[a-z0-9-]*\.md$`.
|
|
57
|
+
// Files under `cycle*-evidence/` deliberately classify as `code` —
|
|
58
|
+
// they're operational artifacts, not plans, even though they sit
|
|
59
|
+
// under `docs/roadmap/cycles/`.
|
|
60
|
+
// ---------------------------------------------------------------------------
|
|
61
|
+
export const PR_DOC_ROOT = "docs/";
|
|
62
|
+
// Direct match for a top-level cycle doc: `docs/roadmap/cycles/cycleN[.M[.K]]-slug.md`.
|
|
63
|
+
// Examples (match):
|
|
64
|
+
// docs/roadmap/cycles/cycle331-dark-factory-platformization.md
|
|
65
|
+
// docs/roadmap/cycles/cycle322.4-foo-bar.md
|
|
66
|
+
// docs/roadmap/cycles/cycle1.md
|
|
67
|
+
// Examples (no match — these classify as code):
|
|
68
|
+
// docs/roadmap/cycles/cycle322-evidence/some-artifact.md
|
|
69
|
+
// docs/roadmap/cycles/cycle322/nested.md
|
|
70
|
+
export const PR_PLAN_DOC_PATTERN = /^docs\/roadmap\/cycles\/cycle[0-9.]+-?[a-z0-9-]*\.md$/;
|
|
71
|
+
/**
|
|
72
|
+
* A pure-function classifier — takes a list of file paths from a PR's diff.
|
|
73
|
+
*
|
|
74
|
+
* Faithful byte-for-byte port of the bash regex in sage3c's
|
|
75
|
+
* `plan-pr-review-gate.yml` (cycle 322.4). One known quirk preserved
|
|
76
|
+
* from that source: the workflow's accompanying CLAUDE.md comment
|
|
77
|
+
* says "Files under `cycle*-evidence/` are operational artifacts,
|
|
78
|
+
* not plans; they classify as `code`" — but the bash regex anchors
|
|
79
|
+
* the non-doc count on the `docs/` prefix, so a cycle-doc + sibling
|
|
80
|
+
* `cycle*-evidence/snapshot.md` (both inside `docs/`) still returns
|
|
81
|
+
* `plan`. This port preserves the bash behavior, not the comment's
|
|
82
|
+
* stated intent — fixing the gap is sage3c's call, not the extracted
|
|
83
|
+
* CLI's. See `tests/policy/merge-queue.test.ts` for the pinned
|
|
84
|
+
* regression test.
|
|
85
|
+
*/
|
|
86
|
+
export function classifyPrKindFromFiles(filePaths) {
|
|
87
|
+
let planFiles = 0;
|
|
88
|
+
let nonDocFiles = 0;
|
|
89
|
+
for (const path of filePaths) {
|
|
90
|
+
if (PR_PLAN_DOC_PATTERN.test(path)) {
|
|
91
|
+
planFiles++;
|
|
92
|
+
}
|
|
93
|
+
if (!path.startsWith(PR_DOC_ROOT)) {
|
|
94
|
+
nonDocFiles++;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
if (planFiles > 0 && nonDocFiles === 0)
|
|
98
|
+
return "plan";
|
|
99
|
+
return "code";
|
|
100
|
+
}
|
|
101
|
+
/** Convenience wrapper for the typed adapter shape (`PrFile`). */
|
|
102
|
+
export function classifyPrKind(files) {
|
|
103
|
+
return classifyPrKindFromFiles(files.map((f) => f.path));
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Extract the Chief Engineer's GitHub login from a parsed agentic-engineers
|
|
107
|
+
* registry. Returns null on any deviation from the expected shape so the
|
|
108
|
+
* caller can fail closed without a try/catch storm.
|
|
109
|
+
*/
|
|
110
|
+
export function resolveChiefEngineerLogin(registry) {
|
|
111
|
+
if (!registry || typeof registry !== "object")
|
|
112
|
+
return null;
|
|
113
|
+
const ce = registry.chief_engineer;
|
|
114
|
+
if (!ce || typeof ce !== "object")
|
|
115
|
+
return null;
|
|
116
|
+
const login = ce.github_login;
|
|
117
|
+
if (typeof login !== "string")
|
|
118
|
+
return null;
|
|
119
|
+
const trimmed = login.trim();
|
|
120
|
+
return trimmed.length === 0 ? null : trimmed;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Pure evaluator for the plan-PR review gate.
|
|
124
|
+
*
|
|
125
|
+
* Returns `admit: true` for:
|
|
126
|
+
* - code PRs (gate not applicable),
|
|
127
|
+
* - CE-authored plan PRs (architect-loop is the review),
|
|
128
|
+
* - non-CE plan PRs where the CE has APPROVED on the current head SHA.
|
|
129
|
+
*
|
|
130
|
+
* Returns `admit: false` for:
|
|
131
|
+
* - missing CE identity in the registry (fail-closed),
|
|
132
|
+
* - non-CE plan PR with no CE review on the current head SHA,
|
|
133
|
+
* - non-CE plan PR with a CHANGES_REQUESTED CE review on the current head SHA,
|
|
134
|
+
* - non-CE plan PR with the CE's latest review on the current head SHA being DISMISSED/PENDING.
|
|
135
|
+
*/
|
|
136
|
+
export function evaluatePlanPrReviewGate(inputs) {
|
|
137
|
+
if (inputs.kind === "code") {
|
|
138
|
+
return { admit: true, reason: "code_pr_not_applicable" };
|
|
139
|
+
}
|
|
140
|
+
if (!inputs.chiefEngineerLogin) {
|
|
141
|
+
return {
|
|
142
|
+
admit: false,
|
|
143
|
+
reason: "missing_chief_engineer_login",
|
|
144
|
+
detail: "Could not resolve `chief_engineer.github_login` from `.github/agentic-engineers.json` " +
|
|
145
|
+
"on the base ref. Without a CE identity, the gate cannot route plan PRs.",
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
if (inputs.prAuthorLogin === inputs.chiefEngineerLogin) {
|
|
149
|
+
return { admit: true, reason: "ce_self_skip" };
|
|
150
|
+
}
|
|
151
|
+
// Find the CE's latest non-COMMENTED review on the current head SHA.
|
|
152
|
+
// COMMENTED is excluded so a CE follow-up note doesn't dismiss a prior APPROVED.
|
|
153
|
+
const ceHeadReviews = inputs.reviews.filter((r) => r.userLogin === inputs.chiefEngineerLogin &&
|
|
154
|
+
r.commitId === inputs.prHeadSha &&
|
|
155
|
+
r.state !== "COMMENTED");
|
|
156
|
+
if (ceHeadReviews.length === 0) {
|
|
157
|
+
return {
|
|
158
|
+
admit: false,
|
|
159
|
+
reason: "no_ce_review_on_head",
|
|
160
|
+
detail: `No Chief Engineer review found on head SHA ${inputs.prHeadSha} by ${inputs.chiefEngineerLogin}.`,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
ceHeadReviews.sort((a, b) => compareSubmittedAt(a.submittedAt, b.submittedAt));
|
|
164
|
+
const latest = ceHeadReviews[ceHeadReviews.length - 1];
|
|
165
|
+
if (!latest) {
|
|
166
|
+
// Unreachable — guarded by length check above, but TS narrows array[N] to T | undefined.
|
|
167
|
+
return {
|
|
168
|
+
admit: false,
|
|
169
|
+
reason: "no_ce_review_on_head",
|
|
170
|
+
detail: `No Chief Engineer review found on head SHA ${inputs.prHeadSha}.`,
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
if (latest.state === "APPROVED") {
|
|
174
|
+
return { admit: true, reason: "ce_approved_on_head" };
|
|
175
|
+
}
|
|
176
|
+
if (latest.state === "CHANGES_REQUESTED") {
|
|
177
|
+
return {
|
|
178
|
+
admit: false,
|
|
179
|
+
reason: "ce_review_requested_changes",
|
|
180
|
+
detail: `Chief Engineer ${inputs.chiefEngineerLogin} requested changes on head SHA ${inputs.prHeadSha}.`,
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
return {
|
|
184
|
+
admit: false,
|
|
185
|
+
reason: "ce_dismissed_or_pending",
|
|
186
|
+
detail: `Chief Engineer ${inputs.chiefEngineerLogin}'s latest review on head SHA ${inputs.prHeadSha} is in state ${latest.state}.`,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
function compareSubmittedAt(a, b) {
|
|
190
|
+
const an = toMs(a);
|
|
191
|
+
const bn = toMs(b);
|
|
192
|
+
return an - bn;
|
|
193
|
+
}
|
|
194
|
+
function toMs(t) {
|
|
195
|
+
if (typeof t === "number")
|
|
196
|
+
return t;
|
|
197
|
+
const n = Date.parse(t);
|
|
198
|
+
// Treat NaN (unparseable) as 0 so it sorts deterministically before
|
|
199
|
+
// any real timestamp — never throws on user-supplied review data.
|
|
200
|
+
return Number.isFinite(n) ? n : 0;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Reference merge-queue rule mirroring sage3c's current `main1` posture
|
|
204
|
+
* (cycle 322.4): SQUASH, ALLGREEN, batch up to 5, 60-min check timeout.
|
|
205
|
+
* Consumers can spread + override:
|
|
206
|
+
* { ...defaultMergeQueueRule(), parameters: { ...defaultMergeQueueRule().parameters, merge_method: "REBASE" } }
|
|
207
|
+
*/
|
|
208
|
+
export function defaultMergeQueueRule() {
|
|
209
|
+
return {
|
|
210
|
+
type: "merge_queue",
|
|
211
|
+
parameters: {
|
|
212
|
+
merge_method: "SQUASH",
|
|
213
|
+
max_entries_to_build: 5,
|
|
214
|
+
min_entries_to_merge: 1,
|
|
215
|
+
max_entries_to_merge: 5,
|
|
216
|
+
min_entries_to_merge_wait_minutes: 0,
|
|
217
|
+
grouping_strategy: "ALLGREEN",
|
|
218
|
+
check_response_timeout_minutes: 60,
|
|
219
|
+
},
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Reference Ruleset A (the merge-queue + required-checks ruleset)
|
|
224
|
+
* mirroring sage3c's `main1`. Consumers seed from this then layer
|
|
225
|
+
* their own contexts.
|
|
226
|
+
*/
|
|
227
|
+
export function defaultMainRulesetShape(source, options = {}) {
|
|
228
|
+
const ctxs = (options.additionalRequiredContexts ?? []).map((context) => ({ context }));
|
|
229
|
+
return {
|
|
230
|
+
name: "main1",
|
|
231
|
+
target: "branch",
|
|
232
|
+
source_type: "Repository",
|
|
233
|
+
source,
|
|
234
|
+
enforcement: "active",
|
|
235
|
+
bypass_actors: [],
|
|
236
|
+
conditions: {
|
|
237
|
+
ref_name: { include: ["refs/heads/main"], exclude: [] },
|
|
238
|
+
},
|
|
239
|
+
rules: [
|
|
240
|
+
{ type: "deletion" },
|
|
241
|
+
{ type: "non_fast_forward" },
|
|
242
|
+
{
|
|
243
|
+
type: "pull_request",
|
|
244
|
+
parameters: {
|
|
245
|
+
required_approving_review_count: 0,
|
|
246
|
+
dismiss_stale_reviews_on_push: false,
|
|
247
|
+
required_reviewers: [],
|
|
248
|
+
require_code_owner_review: false,
|
|
249
|
+
require_last_push_approval: false,
|
|
250
|
+
required_review_thread_resolution: true,
|
|
251
|
+
allowed_merge_methods: ["merge", "squash", "rebase"],
|
|
252
|
+
},
|
|
253
|
+
},
|
|
254
|
+
{ type: "required_linear_history" },
|
|
255
|
+
{
|
|
256
|
+
type: "required_status_checks",
|
|
257
|
+
parameters: {
|
|
258
|
+
strict_required_status_checks_policy: true,
|
|
259
|
+
do_not_enforce_on_create: false,
|
|
260
|
+
required_status_checks: ctxs,
|
|
261
|
+
},
|
|
262
|
+
},
|
|
263
|
+
defaultMergeQueueRule(),
|
|
264
|
+
],
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Reference Ruleset B (the CE-bypass review ruleset) mirroring
|
|
269
|
+
* sage3c's `main-ce-review`. Consumers seed from this and replace
|
|
270
|
+
* the `bypass_actors[0]` team id with their own CE team's id.
|
|
271
|
+
*
|
|
272
|
+
* The two-ruleset architecture (cycle 322.4): Ruleset A holds the
|
|
273
|
+
* required checks the CE should NOT be able to bypass; Ruleset B
|
|
274
|
+
* holds the human-review rule the CE bypasses. Required because
|
|
275
|
+
* `bypass_mode` is RULESET-scope, not rule-scope.
|
|
276
|
+
*/
|
|
277
|
+
export function defaultCeReviewRulesetShape(source, options = {}) {
|
|
278
|
+
return {
|
|
279
|
+
name: "main-ce-review",
|
|
280
|
+
target: "branch",
|
|
281
|
+
source_type: "Repository",
|
|
282
|
+
source,
|
|
283
|
+
enforcement: "active",
|
|
284
|
+
bypass_actors: [
|
|
285
|
+
{
|
|
286
|
+
actor_id: options.chiefEngineerTeamId ?? null,
|
|
287
|
+
actor_type: "Team",
|
|
288
|
+
bypass_mode: "pull_request",
|
|
289
|
+
},
|
|
290
|
+
],
|
|
291
|
+
conditions: {
|
|
292
|
+
ref_name: { include: ["refs/heads/main"], exclude: [] },
|
|
293
|
+
},
|
|
294
|
+
rules: [
|
|
295
|
+
{
|
|
296
|
+
type: "pull_request",
|
|
297
|
+
parameters: {
|
|
298
|
+
required_approving_review_count: 1,
|
|
299
|
+
dismiss_stale_reviews_on_push: true,
|
|
300
|
+
required_reviewers: [],
|
|
301
|
+
require_code_owner_review: true,
|
|
302
|
+
require_last_push_approval: false,
|
|
303
|
+
required_review_thread_resolution: false,
|
|
304
|
+
allowed_merge_methods: ["merge", "squash", "rebase"],
|
|
305
|
+
},
|
|
306
|
+
},
|
|
307
|
+
],
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
//# sourceMappingURL=merge-queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-queue.js","sourceRoot":"","sources":["../../src/policy/merge-queue.ts"],"names":[],"mappings":"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"}
|