@deftai/directive-runtime 0.129.3 → 0.129.5
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/Taskfile.yml +1 -1
- package/dist/hook-dispatch.js +8 -3
- package/dist/pre-pr-run.d.ts +7 -1
- package/dist/pre-pr-run.js +25 -1
- package/dist/verify-ac.d.ts +7 -2
- package/dist/verify-ac.js +13 -5
- package/docs/scope-provenance.md +4 -0
- package/package.json +1 -1
- package/packs/skills/skills-pack-0.1.json +3 -3
- package/skills/deft-directive-pre-pr/SKILL.md +27 -33
- package/skills/deft-directive-release/SKILL.md +23 -0
- package/tasks/materialize.cjs +106 -5
- package/tasks/materialize.test.cjs +108 -0
- package/tasks/materialize.yml +14 -2
- package/templates/agents-entry.md +1 -1
- package/vendor/directive-content/Taskfile.yml +1 -1
- package/vendor/directive-content/docs/scope-provenance.md +4 -0
- package/vendor/directive-content/packs/skills/skills-pack-0.1.json +3 -3
- package/vendor/directive-content/skills/deft-directive-pre-pr/SKILL.md +27 -33
- package/vendor/directive-content/skills/deft-directive-release/SKILL.md +23 -0
- package/vendor/directive-content/tasks/materialize.cjs +106 -5
- package/vendor/directive-content/tasks/materialize.test.cjs +108 -0
- package/vendor/directive-content/tasks/materialize.yml +14 -2
- package/vendor/directive-content/templates/agents-entry.md +1 -1
- package/vendor/directive-core/dist/.tsbuildinfo +1 -1
- package/vendor/directive-core/dist/authz/classify.d.ts +6 -0
- package/vendor/directive-core/dist/authz/classify.d.ts.map +1 -1
- package/vendor/directive-core/dist/authz/classify.js +156 -2
- package/vendor/directive-core/dist/authz/classify.js.map +1 -1
- package/vendor/directive-core/dist/authz/evaluate.d.ts +5 -0
- package/vendor/directive-core/dist/authz/evaluate.d.ts.map +1 -1
- package/vendor/directive-core/dist/authz/evaluate.js +15 -5
- package/vendor/directive-core/dist/authz/evaluate.js.map +1 -1
- package/vendor/directive-core/dist/check/cached-orchestrator.d.ts.map +1 -1
- package/vendor/directive-core/dist/check/cached-orchestrator.js +101 -2
- package/vendor/directive-core/dist/check/cached-orchestrator.js.map +1 -1
- package/vendor/directive-core/dist/check/context.d.ts +199 -0
- package/vendor/directive-core/dist/check/context.d.ts.map +1 -1
- package/vendor/directive-core/dist/check/context.js +417 -2
- package/vendor/directive-core/dist/check/context.js.map +1 -1
- package/vendor/directive-core/dist/check/gate-lists.d.ts +42 -0
- package/vendor/directive-core/dist/check/gate-lists.d.ts.map +1 -1
- package/vendor/directive-core/dist/check/gate-lists.js +226 -0
- package/vendor/directive-core/dist/check/gate-lists.js.map +1 -1
- package/vendor/directive-core/dist/check/index.d.ts +1 -0
- package/vendor/directive-core/dist/check/index.d.ts.map +1 -1
- package/vendor/directive-core/dist/check/index.js +1 -0
- package/vendor/directive-core/dist/check/index.js.map +1 -1
- package/vendor/directive-core/dist/check/named-cause.d.ts.map +1 -1
- package/vendor/directive-core/dist/check/named-cause.js +1 -0
- package/vendor/directive-core/dist/check/named-cause.js.map +1 -1
- package/vendor/directive-core/dist/check/orchestrator.d.ts +1 -0
- package/vendor/directive-core/dist/check/orchestrator.d.ts.map +1 -1
- package/vendor/directive-core/dist/check/orchestrator.js +69 -4
- package/vendor/directive-core/dist/check/orchestrator.js.map +1 -1
- package/vendor/directive-core/dist/eval/health.d.ts.map +1 -1
- package/vendor/directive-core/dist/eval/health.js +75 -6
- package/vendor/directive-core/dist/eval/health.js.map +1 -1
- package/vendor/directive-core/dist/finish-loop/pr-finish-loop.d.ts +7 -0
- package/vendor/directive-core/dist/finish-loop/pr-finish-loop.d.ts.map +1 -1
- package/vendor/directive-core/dist/finish-loop/pr-finish-loop.js +42 -0
- package/vendor/directive-core/dist/finish-loop/pr-finish-loop.js.map +1 -1
- package/vendor/directive-core/dist/forward-coverage/diff-coverage.d.ts +2 -1
- package/vendor/directive-core/dist/forward-coverage/diff-coverage.d.ts.map +1 -1
- package/vendor/directive-core/dist/forward-coverage/diff-coverage.js +2 -1
- package/vendor/directive-core/dist/forward-coverage/diff-coverage.js.map +1 -1
- package/vendor/directive-core/dist/forward-coverage/evaluate.d.ts +4 -2
- package/vendor/directive-core/dist/forward-coverage/evaluate.d.ts.map +1 -1
- package/vendor/directive-core/dist/forward-coverage/evaluate.js +11 -4
- package/vendor/directive-core/dist/forward-coverage/evaluate.js.map +1 -1
- package/vendor/directive-core/dist/hooks/classify/host-session-identity.d.ts +15 -2
- package/vendor/directive-core/dist/hooks/classify/host-session-identity.d.ts.map +1 -1
- package/vendor/directive-core/dist/hooks/classify/host-session-identity.js +46 -5
- package/vendor/directive-core/dist/hooks/classify/host-session-identity.js.map +1 -1
- package/vendor/directive-core/dist/hooks/dispatcher.d.ts.map +1 -1
- package/vendor/directive-core/dist/hooks/dispatcher.js +61 -10
- package/vendor/directive-core/dist/hooks/dispatcher.js.map +1 -1
- package/vendor/directive-core/dist/hooks/scope.d.ts +38 -9
- package/vendor/directive-core/dist/hooks/scope.d.ts.map +1 -1
- package/vendor/directive-core/dist/hooks/scope.js +102 -16
- package/vendor/directive-core/dist/hooks/scope.js.map +1 -1
- package/vendor/directive-core/dist/install-health/cheap.d.ts +11 -0
- package/vendor/directive-core/dist/install-health/cheap.d.ts.map +1 -1
- package/vendor/directive-core/dist/install-health/cheap.js +36 -2
- package/vendor/directive-core/dist/install-health/cheap.js.map +1 -1
- package/vendor/directive-core/dist/install-health/index.d.ts +1 -1
- package/vendor/directive-core/dist/install-health/index.d.ts.map +1 -1
- package/vendor/directive-core/dist/install-health/index.js +1 -1
- package/vendor/directive-core/dist/install-health/index.js.map +1 -1
- package/vendor/directive-core/dist/policy/write-fence.d.ts +7 -0
- package/vendor/directive-core/dist/policy/write-fence.d.ts.map +1 -1
- package/vendor/directive-core/dist/policy/write-fence.js +81 -14
- package/vendor/directive-core/dist/policy/write-fence.js.map +1 -1
- package/vendor/directive-core/dist/pr-closing-keywords/main.d.ts +19 -0
- package/vendor/directive-core/dist/pr-closing-keywords/main.d.ts.map +1 -1
- package/vendor/directive-core/dist/pr-closing-keywords/main.js +31 -16
- package/vendor/directive-core/dist/pr-closing-keywords/main.js.map +1 -1
- package/vendor/directive-core/dist/pr-merge-readiness/compute.d.ts +8 -0
- package/vendor/directive-core/dist/pr-merge-readiness/compute.d.ts.map +1 -1
- package/vendor/directive-core/dist/pr-merge-readiness/compute.js +54 -2
- package/vendor/directive-core/dist/pr-merge-readiness/compute.js.map +1 -1
- package/vendor/directive-core/dist/pr-merge-readiness/gh.d.ts +7 -0
- package/vendor/directive-core/dist/pr-merge-readiness/gh.d.ts.map +1 -1
- package/vendor/directive-core/dist/pr-merge-readiness/gh.js +180 -49
- package/vendor/directive-core/dist/pr-merge-readiness/gh.js.map +1 -1
- package/vendor/directive-core/dist/pr-merge-readiness/main.d.ts +2 -0
- package/vendor/directive-core/dist/pr-merge-readiness/main.d.ts.map +1 -1
- package/vendor/directive-core/dist/pr-merge-readiness/main.js +1 -0
- package/vendor/directive-core/dist/pr-merge-readiness/main.js.map +1 -1
- package/vendor/directive-core/dist/pr-monitor/monitor.d.ts.map +1 -1
- package/vendor/directive-core/dist/pr-monitor/monitor.js +1 -0
- package/vendor/directive-core/dist/pr-monitor/monitor.js.map +1 -1
- package/vendor/directive-core/dist/pr-monitor/readiness.d.ts.map +1 -1
- package/vendor/directive-core/dist/pr-monitor/readiness.js +1 -0
- package/vendor/directive-core/dist/pr-monitor/readiness.js.map +1 -1
- package/vendor/directive-core/dist/pr-monitor/types.d.ts +2 -0
- package/vendor/directive-core/dist/pr-monitor/types.d.ts.map +1 -1
- package/vendor/directive-core/dist/pr-wait-mergeable/cascade.d.ts +6 -0
- package/vendor/directive-core/dist/pr-wait-mergeable/cascade.d.ts.map +1 -1
- package/vendor/directive-core/dist/pr-wait-mergeable/cascade.js +27 -0
- package/vendor/directive-core/dist/pr-wait-mergeable/cascade.js.map +1 -1
- package/vendor/directive-core/dist/pr-wait-mergeable/constants.d.ts +15 -0
- package/vendor/directive-core/dist/pr-wait-mergeable/constants.d.ts.map +1 -1
- package/vendor/directive-core/dist/pr-wait-mergeable/constants.js +18 -0
- package/vendor/directive-core/dist/pr-wait-mergeable/constants.js.map +1 -1
- package/vendor/directive-core/dist/pr-wait-mergeable/index.d.ts +2 -1
- package/vendor/directive-core/dist/pr-wait-mergeable/index.d.ts.map +1 -1
- package/vendor/directive-core/dist/pr-wait-mergeable/index.js +2 -1
- package/vendor/directive-core/dist/pr-wait-mergeable/index.js.map +1 -1
- package/vendor/directive-core/dist/pr-wait-mergeable/semantic-green.d.ts +81 -0
- package/vendor/directive-core/dist/pr-wait-mergeable/semantic-green.d.ts.map +1 -1
- package/vendor/directive-core/dist/pr-wait-mergeable/semantic-green.js +687 -3
- package/vendor/directive-core/dist/pr-wait-mergeable/semantic-green.js.map +1 -1
- package/vendor/directive-core/dist/pre-pr-controller/controller.d.ts +59 -1
- package/vendor/directive-core/dist/pre-pr-controller/controller.d.ts.map +1 -1
- package/vendor/directive-core/dist/pre-pr-controller/controller.js +168 -5
- package/vendor/directive-core/dist/pre-pr-controller/controller.js.map +1 -1
- package/vendor/directive-core/dist/pre-pr-controller/index.d.ts +1 -1
- package/vendor/directive-core/dist/pre-pr-controller/index.d.ts.map +1 -1
- package/vendor/directive-core/dist/pre-pr-controller/index.js +1 -1
- package/vendor/directive-core/dist/pre-pr-controller/index.js.map +1 -1
- package/vendor/directive-core/dist/pre-pr-controller/phases.d.ts +7 -0
- package/vendor/directive-core/dist/pre-pr-controller/phases.d.ts.map +1 -1
- package/vendor/directive-core/dist/pre-pr-controller/phases.js +14 -3
- package/vendor/directive-core/dist/pre-pr-controller/phases.js.map +1 -1
- package/vendor/directive-core/dist/pre-pr-controller/types.d.ts +1 -1
- package/vendor/directive-core/dist/pre-pr-controller/types.d.ts.map +1 -1
- package/vendor/directive-core/dist/pre-pr-controller/types.js.map +1 -1
- package/vendor/directive-core/dist/preflight-gh/pre-push.d.ts.map +1 -1
- package/vendor/directive-core/dist/preflight-gh/pre-push.js +58 -2
- package/vendor/directive-core/dist/preflight-gh/pre-push.js.map +1 -1
- package/vendor/directive-core/dist/product-first-done-gate/acceptance-resolver.d.ts +1 -1
- package/vendor/directive-core/dist/product-first-done-gate/acceptance-resolver.d.ts.map +1 -1
- package/vendor/directive-core/dist/product-first-done-gate/acceptance-resolver.js +1 -1
- package/vendor/directive-core/dist/product-first-done-gate/acceptance-resolver.js.map +1 -1
- package/vendor/directive-core/dist/product-first-done-gate/index.d.ts +1 -1
- package/vendor/directive-core/dist/product-first-done-gate/index.d.ts.map +1 -1
- package/vendor/directive-core/dist/product-first-done-gate/index.js +1 -1
- package/vendor/directive-core/dist/product-first-done-gate/index.js.map +1 -1
- package/vendor/directive-core/dist/release/pipeline.d.ts.map +1 -1
- package/vendor/directive-core/dist/release/pipeline.js +22 -23
- package/vendor/directive-core/dist/release/pipeline.js.map +1 -1
- package/vendor/directive-core/dist/release/preflight.d.ts +11 -0
- package/vendor/directive-core/dist/release/preflight.d.ts.map +1 -1
- package/vendor/directive-core/dist/release/preflight.js +68 -11
- package/vendor/directive-core/dist/release/preflight.js.map +1 -1
- package/vendor/directive-core/dist/release/suite-stamp.d.ts +5 -2
- package/vendor/directive-core/dist/release/suite-stamp.d.ts.map +1 -1
- package/vendor/directive-core/dist/release/suite-stamp.js +12 -1
- package/vendor/directive-core/dist/release/suite-stamp.js.map +1 -1
- package/vendor/directive-core/dist/release/types.d.ts +10 -6
- package/vendor/directive-core/dist/release/types.d.ts.map +1 -1
- package/vendor/directive-core/dist/scope/delivery-evidence.d.ts +37 -0
- package/vendor/directive-core/dist/scope/delivery-evidence.d.ts.map +1 -1
- package/vendor/directive-core/dist/scope/delivery-evidence.js +106 -6
- package/vendor/directive-core/dist/scope/delivery-evidence.js.map +1 -1
- package/vendor/directive-core/dist/scope/transition.d.ts +3 -1
- package/vendor/directive-core/dist/scope/transition.d.ts.map +1 -1
- package/vendor/directive-core/dist/scope/transition.js +4 -0
- package/vendor/directive-core/dist/scope/transition.js.map +1 -1
- package/vendor/directive-core/dist/ts-check-lane/run-lane.d.ts +6 -4
- package/vendor/directive-core/dist/ts-check-lane/run-lane.d.ts.map +1 -1
- package/vendor/directive-core/dist/ts-check-lane/run-lane.js +10 -6
- package/vendor/directive-core/dist/ts-check-lane/run-lane.js.map +1 -1
- package/vendor/directive-core/dist/verify-ac/evaluate.d.ts +52 -0
- package/vendor/directive-core/dist/verify-ac/evaluate.d.ts.map +1 -1
- package/vendor/directive-core/dist/verify-ac/evaluate.js +361 -1
- package/vendor/directive-core/dist/verify-ac/evaluate.js.map +1 -1
- package/vendor/directive-core/dist/verify-ac/index.d.ts +1 -1
- package/vendor/directive-core/dist/verify-ac/index.d.ts.map +1 -1
- package/vendor/directive-core/dist/verify-ac/index.js +1 -1
- package/vendor/directive-core/dist/verify-ac/index.js.map +1 -1
package/Taskfile.yml
CHANGED
|
@@ -419,7 +419,7 @@ tasks:
|
|
|
419
419
|
ENGINE_CMD: 'check --framework-root "{{.TASKFILE_DIR}}" --project-root "{{.USER_WORKING_DIR}}"'
|
|
420
420
|
|
|
421
421
|
test:coverage:
|
|
422
|
-
desc: "
|
|
422
|
+
desc: "On-demand tests with coverage (alias for ts:test). Merge path is coverage-free (#6041); release Step 5 and this task are the host coverage runs."
|
|
423
423
|
cmds:
|
|
424
424
|
- task: ts:test
|
|
425
425
|
|
package/dist/hook-dispatch.js
CHANGED
|
@@ -226,12 +226,17 @@ export function run(argv, seams = {}) {
|
|
|
226
226
|
return 0;
|
|
227
227
|
}
|
|
228
228
|
// Wave 2k / AC9.4+AC14.8: pin≠installed → fail closed before policy.
|
|
229
|
+
// #5910: overlay-present also fail-closes (even when versions match); recovery
|
|
230
|
+
// names frozen-lockfile restore then overlay retirement.
|
|
229
231
|
const cheap = (seams.cheapInSync ?? checkCheapInSync)(projectRoot);
|
|
230
232
|
if (cheap.failClosed) {
|
|
231
233
|
const guidance = cheap.recoveryGuidance ?? INSTALLATION_RECOVERY_GUIDANCE;
|
|
232
|
-
const
|
|
233
|
-
`
|
|
234
|
-
|
|
234
|
+
const identityLine = cheap.identityMatch
|
|
235
|
+
? `Directive hook refuse: materialize-runtime overlay is present; identity cannot pass until the overlay is retired after exact restore ` +
|
|
236
|
+
`(pin=${cheap.pinVersion ?? "?"} installed=${cheap.installedVersion ?? "?"}). `
|
|
237
|
+
: `Directive hook refuse: pinned runtime does not match the installed runtime ` +
|
|
238
|
+
`(pin=${cheap.pinVersion ?? "?"} installed=${cheap.installedVersion ?? "?"}). `;
|
|
239
|
+
const decision = installationIdentityDeny(args.host, args.event, projectRoot, `${identityLine}Recovery: ${guidance}`);
|
|
235
240
|
const rendered = renderHostDecision(args.host, decision);
|
|
236
241
|
if (rendered.length > 0)
|
|
237
242
|
writeOut(`${rendered}\n`);
|
package/dist/pre-pr-run.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import type { VerifyAcDispositionKind } from "@deftai/directive-core/product-first-done-gate";
|
|
2
3
|
interface ParsedArgs {
|
|
3
4
|
repo: string;
|
|
4
5
|
baseSha: string;
|
|
@@ -31,11 +32,16 @@ interface ParsedArgs {
|
|
|
31
32
|
evaluate: boolean;
|
|
32
33
|
pushAdmit: boolean;
|
|
33
34
|
projectRoot: string | null;
|
|
35
|
+
verifyAcDisposition: VerifyAcDispositionKind | null;
|
|
34
36
|
json: boolean;
|
|
35
37
|
help: boolean;
|
|
36
38
|
error?: string;
|
|
37
39
|
}
|
|
38
40
|
export declare function parseArgs(argv: string[]): ParsedArgs;
|
|
39
|
-
export
|
|
41
|
+
export interface PrePrRunOptions {
|
|
42
|
+
/** Hermetic tests inject this; production CLI never sets it (#6071 Greptile). */
|
|
43
|
+
readonly skipNamedMergeGate?: boolean;
|
|
44
|
+
}
|
|
45
|
+
export declare function run(argv: string[], options?: PrePrRunOptions): number;
|
|
40
46
|
export {};
|
|
41
47
|
//# sourceMappingURL=pre-pr-run.d.ts.map
|
package/dist/pre-pr-run.js
CHANGED
|
@@ -41,6 +41,8 @@ Options:
|
|
|
41
41
|
--criteria-digest <hex>
|
|
42
42
|
--reviewed-file <path> (repeatable)
|
|
43
43
|
--reviewer-report-ref <ref>
|
|
44
|
+
--verify-ac-disposition <executed-ac|no-obligation>
|
|
45
|
+
direct verify:ac disposition for ordinary pre-PR (#5855)
|
|
44
46
|
--mark-complete always refuses; cannot mint a pass
|
|
45
47
|
--skill-open always refuses; opening the skill is not completion
|
|
46
48
|
--evaluate evaluate live binding against the private store
|
|
@@ -82,6 +84,7 @@ export function parseArgs(argv) {
|
|
|
82
84
|
evaluate: false,
|
|
83
85
|
pushAdmit: false,
|
|
84
86
|
projectRoot: null,
|
|
87
|
+
verifyAcDisposition: null,
|
|
85
88
|
json: false,
|
|
86
89
|
help: false,
|
|
87
90
|
};
|
|
@@ -338,6 +341,23 @@ export function parseArgs(argv) {
|
|
|
338
341
|
if (arg === "--run-id")
|
|
339
342
|
i += 1;
|
|
340
343
|
}
|
|
344
|
+
else if (arg === "--verify-ac-disposition" || arg?.startsWith("--verify-ac-disposition=")) {
|
|
345
|
+
const value = arg === "--verify-ac-disposition"
|
|
346
|
+
? argv[i + 1]
|
|
347
|
+
: arg.slice("--verify-ac-disposition=".length);
|
|
348
|
+
if (value === undefined) {
|
|
349
|
+
return { ...parsed, error: "argument --verify-ac-disposition: expected one argument" };
|
|
350
|
+
}
|
|
351
|
+
if (value !== "executed-ac" && value !== "no-obligation") {
|
|
352
|
+
return {
|
|
353
|
+
...parsed,
|
|
354
|
+
error: "argument --verify-ac-disposition: expected executed-ac|no-obligation",
|
|
355
|
+
};
|
|
356
|
+
}
|
|
357
|
+
parsed.verifyAcDisposition = value;
|
|
358
|
+
if (arg === "--verify-ac-disposition")
|
|
359
|
+
i += 1;
|
|
360
|
+
}
|
|
341
361
|
else {
|
|
342
362
|
return { ...parsed, error: `unrecognized argument: ${arg}` };
|
|
343
363
|
}
|
|
@@ -354,7 +374,7 @@ function emit(json, payload, text, err) {
|
|
|
354
374
|
function asPhaseId(value) {
|
|
355
375
|
return PRE_PR_PHASE_IDS.includes(value) ? value : null;
|
|
356
376
|
}
|
|
357
|
-
export function run(argv) {
|
|
377
|
+
export function run(argv, options = {}) {
|
|
358
378
|
const args = parseArgs(argv);
|
|
359
379
|
if (args.help) {
|
|
360
380
|
process.stdout.write(USAGE);
|
|
@@ -515,6 +535,10 @@ export function run(argv) {
|
|
|
515
535
|
const projectRoot = args.projectRoot?.trim() || process.cwd();
|
|
516
536
|
const d = completeRun(store, controllerPublisher(), args.runId, undefined, {
|
|
517
537
|
projectRoot,
|
|
538
|
+
...(options.skipNamedMergeGate === true ? { skipNamedMergeGate: true } : {}),
|
|
539
|
+
...(args.verifyAcDisposition !== null
|
|
540
|
+
? { verifyAcDisposition: args.verifyAcDisposition }
|
|
541
|
+
: {}),
|
|
518
542
|
});
|
|
519
543
|
emit(args.json, d, d.message, !d.ok);
|
|
520
544
|
return d.ok ? 0 : 1;
|
package/dist/verify-ac.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { VERIFY_AC_NO_OBLIGATION_EXIT } from "@deftai/directive-core/product-first-done-gate";
|
|
3
|
+
export { VERIFY_AC_NO_OBLIGATION_EXIT };
|
|
2
4
|
interface ParsedArgs {
|
|
3
5
|
projectRoot: string;
|
|
4
6
|
xbriefPath: string | null;
|
|
@@ -20,9 +22,12 @@ export type FindActiveXbriefResult = {
|
|
|
20
22
|
readonly paths: readonly string[];
|
|
21
23
|
readonly dir: string;
|
|
22
24
|
};
|
|
23
|
-
/**
|
|
25
|
+
/**
|
|
26
|
+
* Three-state exit: pass=0, fail=1, config=2, plus deliberate no-obligation=6.
|
|
27
|
+
* A printed pass must not leak 201. No-obligation is a named clamp exception so
|
|
28
|
+
* both check dispatch paths keep the distinct exit (#5855 Recut-8).
|
|
29
|
+
*/
|
|
24
30
|
export declare function clampVerifyAcExit(ok: boolean, code: number): number;
|
|
25
31
|
/** Run the gate and return the process exit code. */
|
|
26
32
|
export declare function run(argv: string[]): number;
|
|
27
|
-
export {};
|
|
28
33
|
//# sourceMappingURL=verify-ac.d.ts.map
|
package/dist/verify-ac.js
CHANGED
|
@@ -12,7 +12,8 @@ import { join, resolve } from "node:path";
|
|
|
12
12
|
import { fileURLToPath } from "node:url";
|
|
13
13
|
import { resolveSessionCompletedVerifyAcTarget } from "../vendor/directive-core/dist/check/index.js";
|
|
14
14
|
import { formatRejectedLedger, resolveLiteralAcceptanceDetailed, } from "../vendor/directive-core/dist/literal-acceptance/index.js";
|
|
15
|
-
import { emitVerifyAcTerminalOutcome, evaluateVerifyAcFromPath, readAdmittedSourceDigest, readAdmittedSourceSentences, readBranchBindContext, readPlanAcceptance, resolveAcceptanceGateProfile, resolveSoftMissingAcTargets, } from "../vendor/directive-core/dist/product-first-done-gate/index.js";
|
|
15
|
+
import { emitVerifyAcTerminalOutcome, evaluateVerifyAcFromPath, readAdmittedSourceDigest, readAdmittedSourceSentences, readBranchBindContext, readPlanAcceptance, resolveAcceptanceGateProfile, resolveSoftMissingAcTargets, VERIFY_AC_NO_OBLIGATION_EXIT, } from "../vendor/directive-core/dist/product-first-done-gate/index.js";
|
|
16
|
+
export { VERIFY_AC_NO_OBLIGATION_EXIT };
|
|
16
17
|
/** Parse verify:ac CLI args. */
|
|
17
18
|
export function parseArgs(argv) {
|
|
18
19
|
const parsed = {
|
|
@@ -104,10 +105,16 @@ function listActiveXbriefs(projectRoot) {
|
|
|
104
105
|
dir: dirs.join(" + "),
|
|
105
106
|
};
|
|
106
107
|
}
|
|
107
|
-
/**
|
|
108
|
+
/**
|
|
109
|
+
* Three-state exit: pass=0, fail=1, config=2, plus deliberate no-obligation=6.
|
|
110
|
+
* A printed pass must not leak 201. No-obligation is a named clamp exception so
|
|
111
|
+
* both check dispatch paths keep the distinct exit (#5855 Recut-8).
|
|
112
|
+
*/
|
|
108
113
|
export function clampVerifyAcExit(ok, code) {
|
|
109
114
|
if (ok)
|
|
110
115
|
return 0;
|
|
116
|
+
if (code === VERIFY_AC_NO_OBLIGATION_EXIT)
|
|
117
|
+
return VERIFY_AC_NO_OBLIGATION_EXIT;
|
|
111
118
|
if (code === 2)
|
|
112
119
|
return 2;
|
|
113
120
|
return 1;
|
|
@@ -291,10 +298,10 @@ export function run(argv) {
|
|
|
291
298
|
const selected = resolveSoftMissingAcTargets(projectRoot, {
|
|
292
299
|
env: process.env,
|
|
293
300
|
scannedPaths: found.paths,
|
|
294
|
-
branchBind: { ...bindContext, env: process.env },
|
|
301
|
+
branchBind: { ...bindContext, env: process.env, projectRoot },
|
|
295
302
|
});
|
|
296
303
|
if (selected.kind === "untied") {
|
|
297
|
-
// #5855 P3: completed-target precedence, then soft-missing
|
|
304
|
+
// #5855 P3: completed-target precedence, then soft-missing no-obligation.
|
|
298
305
|
const completed = resolveSessionCompletedVerifyAcTarget({
|
|
299
306
|
projectRoot,
|
|
300
307
|
env: process.env,
|
|
@@ -315,7 +322,8 @@ export function run(argv) {
|
|
|
315
322
|
process.stdout.write(`${selected.message}\n`);
|
|
316
323
|
}
|
|
317
324
|
emitVerifyAcTerminalOutcome({ projectRoot, env: process.env, outcome: "soft-missing" });
|
|
318
|
-
|
|
325
|
+
// Distinct non-zero: exit 0 keeps meaning executed AC only (#5855 Recut-8).
|
|
326
|
+
return VERIFY_AC_NO_OBLIGATION_EXIT;
|
|
319
327
|
}
|
|
320
328
|
}
|
|
321
329
|
else if (selected.kind === "one") {
|
package/docs/scope-provenance.md
CHANGED
|
@@ -73,6 +73,10 @@ When an active implementation brief is **outside** the change set, membership is
|
|
|
73
73
|
|
|
74
74
|
Membership-land (Path B activation) PRs that only touch nonterminal `xbrief|vbrief` under `proposed|pending|active` plus optional root `CHANGELOG.md` leave `metadata.productPullRequest` **unset**. Closing-keywords admits that brief-land shape when body has `deft-story: N` covering each changed nonterminal (`isBriefLandShapedDiff` + early return in `evaluateFullStoryMarkAdmission`). Optional `metadata.activationPullRequest` is provenance only — delivery readers ignore it. The stacked product PR stamps virgin `productPullRequest` on the existing null path; leftover keeps the original product stamp. ⊗ Write the activation PR number into `productPullRequest`. Legacy stamped activations unstamp once, then product stamps. Depth: `packages/core/src/pr-closing-keywords/main.ts`.
|
|
75
75
|
|
|
76
|
+
### Path B activation vs product `verify:ac` (#5792)
|
|
77
|
+
|
|
78
|
+
Scope-only Path B activation must be able to clear `deft check` before merge-base write authority exists. Check inventories the complete local change set (merge-base..HEAD ∪ dirty ∪ cached ∪ untracked, with rename origins) into `PrDiffPath`, then reuses the Path B witness (`evaluatePathBActivationAdmit`). Inventory base prefers typed `plan.policy.deliveryBranch` / remote default before `master`|`main`, and git-toplevel paths are remapped to `projectRoot` so nested consumers keep brief-land shape. When the inventory is brief-land shaped and the witness admits, check records one named disposition `path_b_activation_deferred` and **defers** product acceptance commands and artifact-clause execution — it does not selectively forgive opaque npm failures and does not bank as a later product verified-pass. Local check without a PR body uses inventory brief issue-ref identity instead of `deft-story` marks; when a PR body is present, mark coverage still applies. Any product path in the inventory, or `productPullRequest` set, restores full `verify:ac`. Write authority stays merge-base-only (`loadStoryWriteFenceFromMergeBase` unchanged). Depth: `packages/core/src/verify-ac/evaluate.ts`, `packages/core/src/check/cached-orchestrator.ts`.
|
|
79
|
+
|
|
76
80
|
|
|
77
81
|
## Historical ship-closeout for stale merged actives (#5403)
|
|
78
82
|
|
package/package.json
CHANGED