@paths.design/caws-cli 11.0.0 → 11.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/index.js +2 -2
- package/dist/init/harness-detect.d.ts +18 -0
- package/dist/init/harness-detect.d.ts.map +1 -0
- package/dist/init/harness-detect.js +90 -0
- package/dist/init/harness-detect.js.map +1 -0
- package/dist/init/hook-install.d.ts +53 -0
- package/dist/init/hook-install.d.ts.map +1 -0
- package/dist/init/hook-install.js +421 -0
- package/dist/init/hook-install.js.map +1 -0
- package/dist/init/hook-packs/manifest-claude-code.d.ts +4 -0
- package/dist/init/hook-packs/manifest-claude-code.d.ts.map +1 -0
- package/dist/init/hook-packs/manifest-claude-code.js +190 -0
- package/dist/init/hook-packs/manifest-claude-code.js.map +1 -0
- package/dist/init/hook-packs/register.d.ts +19 -0
- package/dist/init/hook-packs/register.d.ts.map +1 -0
- package/dist/init/hook-packs/register.js +37 -0
- package/dist/init/hook-packs/register.js.map +1 -0
- package/dist/init/hook-packs/types.d.ts +123 -0
- package/dist/init/hook-packs/types.d.ts.map +1 -0
- package/dist/init/hook-packs/types.js +29 -0
- package/dist/init/hook-packs/types.js.map +1 -0
- package/dist/shell/commands/gates.d.ts.map +1 -1
- package/dist/shell/commands/gates.js +28 -1
- package/dist/shell/commands/gates.js.map +1 -1
- package/dist/shell/commands/init.d.ts +9 -0
- package/dist/shell/commands/init.d.ts.map +1 -1
- package/dist/shell/commands/init.js +131 -27
- package/dist/shell/commands/init.js.map +1 -1
- package/dist/shell/commands/specs.d.ts +41 -0
- package/dist/shell/commands/specs.d.ts.map +1 -0
- package/dist/shell/commands/specs.js +264 -0
- package/dist/shell/commands/specs.js.map +1 -0
- package/dist/shell/commands/worktree.d.ts +38 -0
- package/dist/shell/commands/worktree.d.ts.map +1 -0
- package/dist/shell/commands/worktree.js +286 -0
- package/dist/shell/commands/worktree.js.map +1 -0
- package/dist/shell/gates/disposition.d.ts.map +1 -1
- package/dist/shell/gates/disposition.js +33 -3
- package/dist/shell/gates/disposition.js.map +1 -1
- package/dist/shell/gates/local-evaluators/budget-limit.d.ts +24 -0
- package/dist/shell/gates/local-evaluators/budget-limit.d.ts.map +1 -0
- package/dist/shell/gates/local-evaluators/budget-limit.js +67 -0
- package/dist/shell/gates/local-evaluators/budget-limit.js.map +1 -0
- package/dist/shell/gates/local-evaluators/diff-helpers.d.ts +25 -0
- package/dist/shell/gates/local-evaluators/diff-helpers.d.ts.map +1 -0
- package/dist/shell/gates/local-evaluators/diff-helpers.js +74 -0
- package/dist/shell/gates/local-evaluators/diff-helpers.js.map +1 -0
- package/dist/shell/gates/local-evaluators/index.d.ts +28 -0
- package/dist/shell/gates/local-evaluators/index.d.ts.map +1 -0
- package/dist/shell/gates/local-evaluators/index.js +67 -0
- package/dist/shell/gates/local-evaluators/index.js.map +1 -0
- package/dist/shell/gates/local-evaluators/scope-boundary.d.ts +23 -0
- package/dist/shell/gates/local-evaluators/scope-boundary.d.ts.map +1 -0
- package/dist/shell/gates/local-evaluators/scope-boundary.js +67 -0
- package/dist/shell/gates/local-evaluators/scope-boundary.js.map +1 -0
- package/dist/shell/gates/local-evaluators/spec-completeness.d.ts +12 -0
- package/dist/shell/gates/local-evaluators/spec-completeness.d.ts.map +1 -0
- package/dist/shell/gates/local-evaluators/spec-completeness.js +73 -0
- package/dist/shell/gates/local-evaluators/spec-completeness.js.map +1 -0
- package/dist/shell/index.d.ts +4 -0
- package/dist/shell/index.d.ts.map +1 -1
- package/dist/shell/index.js +13 -1
- package/dist/shell/index.js.map +1 -1
- package/dist/shell/register.d.ts.map +1 -1
- package/dist/shell/register.js +192 -2
- package/dist/shell/register.js.map +1 -1
- package/dist/shell/render/init-hook-pack.d.ts +16 -0
- package/dist/shell/render/init-hook-pack.d.ts.map +1 -0
- package/dist/shell/render/init-hook-pack.js +206 -0
- package/dist/shell/render/init-hook-pack.js.map +1 -0
- package/dist/store/atomic-write.d.ts +20 -2
- package/dist/store/atomic-write.d.ts.map +1 -1
- package/dist/store/atomic-write.js +44 -2
- package/dist/store/atomic-write.js.map +1 -1
- package/dist/store/lifecycle-lock.d.ts +34 -0
- package/dist/store/lifecycle-lock.d.ts.map +1 -0
- package/dist/store/lifecycle-lock.js +168 -0
- package/dist/store/lifecycle-lock.js.map +1 -0
- package/dist/store/lifecycle-transaction.d.ts +79 -0
- package/dist/store/lifecycle-transaction.d.ts.map +1 -0
- package/dist/store/lifecycle-transaction.js +319 -0
- package/dist/store/lifecycle-transaction.js.map +1 -0
- package/dist/store/rules.d.ts +16 -0
- package/dist/store/rules.d.ts.map +1 -1
- package/dist/store/rules.js +17 -0
- package/dist/store/rules.js.map +1 -1
- package/dist/store/specs-writer.d.ts +61 -0
- package/dist/store/specs-writer.d.ts.map +1 -0
- package/dist/store/specs-writer.js +506 -0
- package/dist/store/specs-writer.js.map +1 -0
- package/dist/store/worktrees-writer.d.ts +77 -0
- package/dist/store/worktrees-writer.d.ts.map +1 -0
- package/dist/store/worktrees-writer.js +674 -0
- package/dist/store/worktrees-writer.js.map +1 -0
- package/dist/store/yaml-patch.d.ts +7 -0
- package/dist/store/yaml-patch.d.ts.map +1 -0
- package/dist/store/yaml-patch.js +250 -0
- package/dist/store/yaml-patch.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Local gate evaluators — caws-cli's contribution to the gates pipeline.
|
|
3
|
+
//
|
|
4
|
+
// Why local evaluators exist
|
|
5
|
+
// ──────────────────────────
|
|
6
|
+
// The quality-gates subprocess implements *code-quality* checks (naming,
|
|
7
|
+
// duplication, god objects, hidden TODOs, etc.). Those checks live in
|
|
8
|
+
// `@paths.design/quality-gates` because they're general-purpose and
|
|
9
|
+
// language-agnostic.
|
|
10
|
+
//
|
|
11
|
+
// CAWS *policy* gates (`budget_limit`, `scope_boundary`,
|
|
12
|
+
// `spec_completeness`) are different in kind: they need the active spec
|
|
13
|
+
// id, the spec YAML, the policy YAML, and the staged diff. Pushing them
|
|
14
|
+
// into the generic subprocess would couple quality-gates to caws-cli's
|
|
15
|
+
// state shape. Keeping them local preserves layering:
|
|
16
|
+
//
|
|
17
|
+
// quality-gates package : code-quality checks → JSON violations[]
|
|
18
|
+
// caws-cli local : policy/spec/diff authority checks
|
|
19
|
+
// → additional JSON violations[]
|
|
20
|
+
// gates command : merge violations, apply waivers,
|
|
21
|
+
// derive disposition, emit events
|
|
22
|
+
//
|
|
23
|
+
// Each evaluator returns the same `GatesViolation[]` shape the
|
|
24
|
+
// subprocess emits, so the downstream disposition/waiver pipeline is
|
|
25
|
+
// uniform.
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.evaluateSpecCompleteness = exports.evaluateScopeBoundary = exports.evaluateBudgetLimit = void 0;
|
|
28
|
+
exports.runLocalEvaluators = runLocalEvaluators;
|
|
29
|
+
const budget_limit_1 = require("./budget-limit");
|
|
30
|
+
const scope_boundary_1 = require("./scope-boundary");
|
|
31
|
+
const spec_completeness_1 = require("./spec-completeness");
|
|
32
|
+
var budget_limit_2 = require("./budget-limit");
|
|
33
|
+
Object.defineProperty(exports, "evaluateBudgetLimit", { enumerable: true, get: function () { return budget_limit_2.evaluateBudgetLimit; } });
|
|
34
|
+
var scope_boundary_2 = require("./scope-boundary");
|
|
35
|
+
Object.defineProperty(exports, "evaluateScopeBoundary", { enumerable: true, get: function () { return scope_boundary_2.evaluateScopeBoundary; } });
|
|
36
|
+
var spec_completeness_2 = require("./spec-completeness");
|
|
37
|
+
Object.defineProperty(exports, "evaluateSpecCompleteness", { enumerable: true, get: function () { return spec_completeness_2.evaluateSpecCompleteness; } });
|
|
38
|
+
/**
|
|
39
|
+
* Run all CAWS-local policy evaluators against the given spec+policy.
|
|
40
|
+
* Returns a flat list of violations tagged with canonical policy gate
|
|
41
|
+
* names (`budget_limit`, `scope_boundary`, `spec_completeness`).
|
|
42
|
+
*/
|
|
43
|
+
function runLocalEvaluators(input) {
|
|
44
|
+
const violations = [];
|
|
45
|
+
const budget = (0, budget_limit_1.evaluateBudgetLimit)({
|
|
46
|
+
spec: input.spec,
|
|
47
|
+
policy: input.policy,
|
|
48
|
+
repoRoot: input.repoRoot,
|
|
49
|
+
...(input.stagedChanges !== undefined ? { stagedChanges: input.stagedChanges } : {}),
|
|
50
|
+
});
|
|
51
|
+
violations.push(...budget.violations);
|
|
52
|
+
const scope = (0, scope_boundary_1.evaluateScopeBoundary)({
|
|
53
|
+
spec: input.spec,
|
|
54
|
+
policy: input.policy,
|
|
55
|
+
repoRoot: input.repoRoot,
|
|
56
|
+
...(input.worktreeName !== undefined ? { worktreeName: input.worktreeName } : {}),
|
|
57
|
+
...(input.stagedChanges !== undefined ? { stagedChanges: input.stagedChanges } : {}),
|
|
58
|
+
});
|
|
59
|
+
violations.push(...scope.violations);
|
|
60
|
+
const completeness = (0, spec_completeness_1.evaluateSpecCompleteness)({
|
|
61
|
+
spec: input.spec,
|
|
62
|
+
nowIso: input.nowIso,
|
|
63
|
+
});
|
|
64
|
+
violations.push(...completeness.violations);
|
|
65
|
+
return { violations };
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shell/gates/local-evaluators/index.ts"],"names":[],"mappings":";AAAA,yEAAyE;AACzE,EAAE;AACF,6BAA6B;AAC7B,6BAA6B;AAC7B,yEAAyE;AACzE,sEAAsE;AACtE,oEAAoE;AACpE,qBAAqB;AACrB,EAAE;AACF,yDAAyD;AACzD,wEAAwE;AACxE,wEAAwE;AACxE,uEAAuE;AACvE,sDAAsD;AACtD,EAAE;AACF,qEAAqE;AACrE,+DAA+D;AAC/D,6DAA6D;AAC7D,8DAA8D;AAC9D,8DAA8D;AAC9D,EAAE;AACF,+DAA+D;AAC/D,qEAAqE;AACrE,WAAW;;;AAoCX,gDA2BC;AA1DD,iDAAqD;AACrD,qDAAyD;AACzD,2DAA+D;AAI/D,+CAAqD;AAA5C,mHAAA,mBAAmB,OAAA;AAC5B,mDAAyD;AAAhD,uHAAA,qBAAqB,OAAA;AAC9B,yDAA+D;AAAtD,6HAAA,wBAAwB,OAAA;AAkBjC;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,KAA2B;IAC5D,MAAM,UAAU,GAAqB,EAAE,CAAC;IAExC,MAAM,MAAM,GAAG,IAAA,kCAAmB,EAAC;QACjC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACrF,CAAC,CAAC;IACH,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IAEtC,MAAM,KAAK,GAAG,IAAA,sCAAqB,EAAC;QAClC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,GAAG,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACrF,CAAC,CAAC;IACH,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;IAErC,MAAM,YAAY,GAAG,IAAA,4CAAwB,EAAC;QAC5C,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,KAAK,CAAC,MAAM;KACrB,CAAC,CAAC;IACH,UAAU,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IAE5C,OAAO,EAAE,UAAU,EAAE,CAAC;AACxB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Spec, Policy } from '@paths.design/caws-kernel';
|
|
2
|
+
import type { GatesViolation } from '../gate-result-contract';
|
|
3
|
+
import { type StagedFileChange } from './diff-helpers';
|
|
4
|
+
export interface ScopeBoundaryInput {
|
|
5
|
+
readonly spec: Spec;
|
|
6
|
+
readonly policy: Policy;
|
|
7
|
+
readonly repoRoot: string;
|
|
8
|
+
/** Worktree name; defaults to "scope-boundary" if not known. The kernel
|
|
9
|
+
* uses this only for diagnostic data, not for authority. */
|
|
10
|
+
readonly worktreeName?: string;
|
|
11
|
+
/** Override staged-diff source (tests). */
|
|
12
|
+
readonly stagedChanges?: readonly StagedFileChange[];
|
|
13
|
+
}
|
|
14
|
+
export interface ScopeBoundaryResult {
|
|
15
|
+
readonly violations: readonly GatesViolation[];
|
|
16
|
+
readonly observed: {
|
|
17
|
+
readonly files_evaluated: number;
|
|
18
|
+
readonly rejected: number;
|
|
19
|
+
readonly invalid: number;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export declare function evaluateScopeBoundary(input: ScopeBoundaryInput): ScopeBoundaryResult;
|
|
23
|
+
//# sourceMappingURL=scope-boundary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-boundary.d.ts","sourceRoot":"","sources":["../../../../src/shell/gates/local-evaluators/scope-boundary.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE1E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;iEAC6D;IAC7D,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,2CAA2C;IAC3C,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACtD;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;QACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,CA+CpF"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// scope_boundary evaluator.
|
|
3
|
+
//
|
|
4
|
+
// Iterates the staged file list and asks the kernel scope evaluator
|
|
5
|
+
// (`evaluatePath`) for each path. Any `reject` decision becomes a
|
|
6
|
+
// `scope_boundary` violation; `invalid_path` decisions also become
|
|
7
|
+
// violations (the staged path is malformed and not policy-admissible).
|
|
8
|
+
//
|
|
9
|
+
// `admit` and `no_authority` decisions do NOT produce violations here.
|
|
10
|
+
// `no_authority` (unbound or one_sided) is a binding problem — the
|
|
11
|
+
// gates command itself should refuse to run in that state long before
|
|
12
|
+
// this evaluator is called, OR a doctor-style separate diagnostic
|
|
13
|
+
// should be raised. For v11.1 we treat `no_authority` as a non-blocking
|
|
14
|
+
// "cannot decide" outcome consistent with the kernel's contract; the
|
|
15
|
+
// caller's binding precondition is the authoritative gate.
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.evaluateScopeBoundary = evaluateScopeBoundary;
|
|
18
|
+
const caws_kernel_1 = require("@paths.design/caws-kernel");
|
|
19
|
+
const diff_helpers_1 = require("./diff-helpers");
|
|
20
|
+
function evaluateScopeBoundary(input) {
|
|
21
|
+
const changes = input.stagedChanges ?? (0, diff_helpers_1.listStagedChanges)(input.repoRoot);
|
|
22
|
+
// Local evaluator assumes the gates command would not have proceeded
|
|
23
|
+
// unbound; we synthesize a `bound` BindingState from the spec under
|
|
24
|
+
// evaluation. The caws-cli `caws gates run --spec <id>` contract is
|
|
25
|
+
// that the caller has named the spec; we treat that as authority for
|
|
26
|
+
// the purpose of scope evaluation here.
|
|
27
|
+
const binding = {
|
|
28
|
+
kind: 'bound',
|
|
29
|
+
spec: input.spec,
|
|
30
|
+
worktreeName: input.worktreeName ?? 'gates-run',
|
|
31
|
+
};
|
|
32
|
+
const violations = [];
|
|
33
|
+
let rejected = 0;
|
|
34
|
+
let invalid = 0;
|
|
35
|
+
for (const c of changes) {
|
|
36
|
+
const d = (0, caws_kernel_1.evaluatePath)(c.path, binding, input.policy);
|
|
37
|
+
if (d.kind === 'reject') {
|
|
38
|
+
rejected++;
|
|
39
|
+
violations.push({
|
|
40
|
+
gate: 'scope_boundary',
|
|
41
|
+
type: d.rule,
|
|
42
|
+
message: d.message,
|
|
43
|
+
file: c.path,
|
|
44
|
+
severity: 'fail',
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
else if (d.kind === 'invalid_path') {
|
|
48
|
+
invalid++;
|
|
49
|
+
violations.push({
|
|
50
|
+
gate: 'scope_boundary',
|
|
51
|
+
type: d.rule,
|
|
52
|
+
message: d.message,
|
|
53
|
+
file: c.path,
|
|
54
|
+
severity: 'fail',
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return {
|
|
59
|
+
violations,
|
|
60
|
+
observed: {
|
|
61
|
+
files_evaluated: changes.length,
|
|
62
|
+
rejected,
|
|
63
|
+
invalid,
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=scope-boundary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-boundary.js","sourceRoot":"","sources":["../../../../src/shell/gates/local-evaluators/scope-boundary.ts"],"names":[],"mappings":";AAAA,4BAA4B;AAC5B,EAAE;AACF,oEAAoE;AACpE,kEAAkE;AAClE,mEAAmE;AACnE,uEAAuE;AACvE,EAAE;AACF,uEAAuE;AACvE,mEAAmE;AACnE,sEAAsE;AACtE,kEAAkE;AAClE,wEAAwE;AACxE,qEAAqE;AACrE,2DAA2D;;AA4B3D,sDA+CC;AAzED,2DAA4E;AAI5E,iDAA0E;AAsB1E,SAAgB,qBAAqB,CAAC,KAAyB;IAC7D,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,IAAI,IAAA,gCAAiB,EAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzE,qEAAqE;IACrE,oEAAoE;IACpE,oEAAoE;IACpE,qEAAqE;IACrE,wCAAwC;IACxC,MAAM,OAAO,GAAiB;QAC5B,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,WAAW;KAChD,CAAC;IAEF,MAAM,UAAU,GAAqB,EAAE,CAAC;IACxC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,IAAA,0BAAY,EAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACxB,QAAQ,EAAE,CAAC;YACX,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,QAAQ,EAAE,MAAM;aACjB,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACrC,OAAO,EAAE,CAAC;YACV,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,QAAQ,EAAE,MAAM;aACjB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO;QACL,UAAU;QACV,QAAQ,EAAE;YACR,eAAe,EAAE,OAAO,CAAC,MAAM;YAC/B,QAAQ;YACR,OAAO;SACR;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Spec } from '@paths.design/caws-kernel';
|
|
2
|
+
import type { GatesViolation } from '../gate-result-contract';
|
|
3
|
+
export interface SpecCompletenessInput {
|
|
4
|
+
readonly spec: Spec;
|
|
5
|
+
/** Current ISO timestamp for evaluating experimental_mode.expires_at. */
|
|
6
|
+
readonly nowIso: string;
|
|
7
|
+
}
|
|
8
|
+
export interface SpecCompletenessResult {
|
|
9
|
+
readonly violations: readonly GatesViolation[];
|
|
10
|
+
}
|
|
11
|
+
export declare function evaluateSpecCompleteness(input: SpecCompletenessInput): SpecCompletenessResult;
|
|
12
|
+
//# sourceMappingURL=spec-completeness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-completeness.d.ts","sourceRoot":"","sources":["../../../../src/shell/gates/local-evaluators/spec-completeness.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AAEtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,yEAAyE;IACzE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,CAAC;CAChD;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,qBAAqB,GAAG,sBAAsB,CAoD7F"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// spec_completeness evaluator.
|
|
3
|
+
//
|
|
4
|
+
// Bridges spec health into gate disposition. The kernel/schema layer
|
|
5
|
+
// already enforces structural completeness (required fields, minItems
|
|
6
|
+
// on invariants/acceptance, lifecycle_state shape, etc.); a spec that
|
|
7
|
+
// fails schema validation never reaches this evaluator — composeStoreSnapshot
|
|
8
|
+
// excludes it, and gates.ts already refuses the run.
|
|
9
|
+
//
|
|
10
|
+
// So this evaluator covers the *semantic* completeness checks that the
|
|
11
|
+
// schema cannot enforce alone:
|
|
12
|
+
//
|
|
13
|
+
// 1. The active spec must be in lifecycle_state === 'active'. Running
|
|
14
|
+
// gates against a closed/archived/draft spec is a category error.
|
|
15
|
+
// Schema admits all four states; only 'active' is a valid gating
|
|
16
|
+
// target.
|
|
17
|
+
//
|
|
18
|
+
// 2. blast_radius.modules must be non-empty. The schema requires
|
|
19
|
+
// `modules` to exist but does not require minItems > 0.
|
|
20
|
+
//
|
|
21
|
+
// 3. If the spec has experimental_mode.enabled and expires_at is in
|
|
22
|
+
// the past, the experimental status is stale — a completeness
|
|
23
|
+
// issue surfaced for the operator to either renew or remove.
|
|
24
|
+
//
|
|
25
|
+
// Each failure produces one violation with gate: 'spec_completeness'.
|
|
26
|
+
// `caws-cli` shell decides whether to block based on policy.
|
|
27
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
+
exports.evaluateSpecCompleteness = evaluateSpecCompleteness;
|
|
29
|
+
function evaluateSpecCompleteness(input) {
|
|
30
|
+
const violations = [];
|
|
31
|
+
// Rule 1: lifecycle_state must be active for gating.
|
|
32
|
+
if (input.spec.lifecycle_state !== 'active') {
|
|
33
|
+
violations.push({
|
|
34
|
+
gate: 'spec_completeness',
|
|
35
|
+
type: 'spec_not_active',
|
|
36
|
+
message: `Spec ${input.spec.id} is in lifecycle_state '${input.spec.lifecycle_state}'; ` +
|
|
37
|
+
`gates only enforce against active specs. ` +
|
|
38
|
+
`Either reopen the spec or run gates against an active spec.`,
|
|
39
|
+
severity: 'fail',
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
// Rule 2: blast_radius.modules must be non-empty.
|
|
43
|
+
if (input.spec.blast_radius === undefined ||
|
|
44
|
+
!Array.isArray(input.spec.blast_radius.modules) ||
|
|
45
|
+
input.spec.blast_radius.modules.length === 0) {
|
|
46
|
+
violations.push({
|
|
47
|
+
gate: 'spec_completeness',
|
|
48
|
+
type: 'blast_radius_empty',
|
|
49
|
+
message: `Spec ${input.spec.id} has no blast_radius.modules; risk evaluation ` +
|
|
50
|
+
`cannot proceed without a declared blast radius.`,
|
|
51
|
+
severity: 'fail',
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
// Rule 3: experimental_mode expiry.
|
|
55
|
+
const exp = input.spec.experimental_mode;
|
|
56
|
+
if (exp !== undefined && exp.enabled === true) {
|
|
57
|
+
if (typeof exp.expires_at === 'string') {
|
|
58
|
+
const expDate = Date.parse(exp.expires_at);
|
|
59
|
+
const now = Date.parse(input.nowIso);
|
|
60
|
+
if (Number.isFinite(expDate) && Number.isFinite(now) && expDate < now) {
|
|
61
|
+
violations.push({
|
|
62
|
+
gate: 'spec_completeness',
|
|
63
|
+
type: 'experimental_mode_expired',
|
|
64
|
+
message: `Spec ${input.spec.id} has experimental_mode.enabled=true but expires_at ` +
|
|
65
|
+
`(${exp.expires_at}) is in the past. Renew or remove the experimental status.`,
|
|
66
|
+
severity: 'fail',
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return { violations };
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=spec-completeness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-completeness.js","sourceRoot":"","sources":["../../../../src/shell/gates/local-evaluators/spec-completeness.ts"],"names":[],"mappings":";AAAA,+BAA+B;AAC/B,EAAE;AACF,qEAAqE;AACrE,sEAAsE;AACtE,sEAAsE;AACtE,8EAA8E;AAC9E,qDAAqD;AACrD,EAAE;AACF,uEAAuE;AACvE,+BAA+B;AAC/B,EAAE;AACF,wEAAwE;AACxE,uEAAuE;AACvE,sEAAsE;AACtE,eAAe;AACf,EAAE;AACF,mEAAmE;AACnE,6DAA6D;AAC7D,EAAE;AACF,sEAAsE;AACtE,mEAAmE;AACnE,kEAAkE;AAClE,EAAE;AACF,sEAAsE;AACtE,6DAA6D;;AAgB7D,4DAoDC;AApDD,SAAgB,wBAAwB,CAAC,KAA4B;IACnE,MAAM,UAAU,GAAqB,EAAE,CAAC;IAExC,qDAAqD;IACrD,IAAI,KAAK,CAAC,IAAI,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;QAC5C,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE,iBAAiB;YACvB,OAAO,EACL,QAAQ,KAAK,CAAC,IAAI,CAAC,EAAE,2BAA2B,KAAK,CAAC,IAAI,CAAC,eAAe,KAAK;gBAC/E,2CAA2C;gBAC3C,6DAA6D;YAC/D,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAC;IACL,CAAC;IAED,kDAAkD;IAClD,IACE,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS;QACrC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;QAC/C,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAC5C,CAAC;QACD,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EACL,QAAQ,KAAK,CAAC,IAAI,CAAC,EAAE,gDAAgD;gBACrE,iDAAiD;YACnD,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAC;IACL,CAAC;IAED,oCAAoC;IACpC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;IACzC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC9C,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACrC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,GAAG,EAAE,CAAC;gBACtE,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,mBAAmB;oBACzB,IAAI,EAAE,2BAA2B;oBACjC,OAAO,EACL,QAAQ,KAAK,CAAC,IAAI,CAAC,EAAE,qDAAqD;wBAC1E,IAAI,GAAG,CAAC,UAAU,4DAA4D;oBAChF,QAAQ,EAAE,MAAM;iBACjB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,CAAC;AACxB,CAAC"}
|
package/dist/shell/index.d.ts
CHANGED
|
@@ -43,6 +43,10 @@ export { renderWaiverSummary, renderWaiverDetail, } from './render/waiver';
|
|
|
43
43
|
export type { RenderWaiverSummaryInput, RenderWaiverDetailInput, } from './render/waiver';
|
|
44
44
|
export { runInitCommand } from './commands/init';
|
|
45
45
|
export type { InitCommandOptions } from './commands/init';
|
|
46
|
+
export { runSpecsCreateCommand, runSpecsListCommand, runSpecsShowCommand, runSpecsCloseCommand, runSpecsArchiveCommand, } from './commands/specs';
|
|
47
|
+
export type { SpecsCreateOptions, SpecsListOptions, SpecsShowOptions, SpecsCloseOptions, SpecsArchiveOptions, } from './commands/specs';
|
|
48
|
+
export { runWorktreeCreateCommand, runWorktreeListCommand, runWorktreeBindCommand, runWorktreeDestroyCommand, runWorktreeMergeCommand, } from './commands/worktree';
|
|
49
|
+
export type { WorktreeCreateOptions, WorktreeListOptions, WorktreeBindOptions, WorktreeDestroyOptions, WorktreeMergeOptions, } from './commands/worktree';
|
|
46
50
|
export { renderInit } from './render/init';
|
|
47
51
|
export type { RenderInitInput } from './render/init';
|
|
48
52
|
export { registerShellCommands } from './register';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shell/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC3D,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClF,YAAY,EACV,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,aAAa,GACd,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EACL,cAAc,EACd,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EACL,aAAa,EACb,cAAc,EACd,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,YAAY,EACV,YAAY,EACZ,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACrE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,YAAY,EACV,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EACL,mBAAmB,GACpB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,WAAW,EACX,cAAc,EACd,YAAY,GACb,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACxF,YAAY,EACV,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,YAAY,EACV,iBAAiB,EACjB,eAAe,EACf,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,GACf,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,YAAY,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shell/index.ts"],"names":[],"mappings":"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"}
|
package/dist/shell/index.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
// Internals below the command surface are exported for tests and for
|
|
7
7
|
// adjacent shell modules that need them (hooks, status renderer).
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.registerShellCommands = exports.renderInit = exports.runInitCommand = exports.renderWaiverDetail = exports.renderWaiverSummary = exports.runWaiverRevokeCommand = exports.runWaiverShowCommand = exports.runWaiverListCommand = exports.runWaiverCreateCommand = exports.filterWaivedViolations = exports.deriveDispositions = exports.resolveQualityGatesBin = exports.runQualityGates = exports.validateGatesReport = exports.renderGatesRun = exports.runGatesRunCommand = exports.renderStatus = exports.runStatusCommand = exports.classifyOwnership = exports.renderClaimPanel = exports.runClaimCommand = exports.runEvidenceRecordCommand = exports.runScopeCommand = exports.runDoctorCommand = exports.renderDecision = exports.countFindingSeverities = exports.renderFindings = exports.renderFinding = exports.countSeverities = exports.renderDiagnostics = exports.renderDiagnostic = exports.parseWorktreePorcelain = exports.resolveBinding = exports.buildActor = exports.describeSessionSource = exports.resolveSession = exports.SHELL_RULE_PREFIXES = exports.SHELL_RULES = void 0;
|
|
9
|
+
exports.registerShellCommands = exports.renderInit = exports.runWorktreeMergeCommand = exports.runWorktreeDestroyCommand = exports.runWorktreeBindCommand = exports.runWorktreeListCommand = exports.runWorktreeCreateCommand = exports.runSpecsArchiveCommand = exports.runSpecsCloseCommand = exports.runSpecsShowCommand = exports.runSpecsListCommand = exports.runSpecsCreateCommand = exports.runInitCommand = exports.renderWaiverDetail = exports.renderWaiverSummary = exports.runWaiverRevokeCommand = exports.runWaiverShowCommand = exports.runWaiverListCommand = exports.runWaiverCreateCommand = exports.filterWaivedViolations = exports.deriveDispositions = exports.resolveQualityGatesBin = exports.runQualityGates = exports.validateGatesReport = exports.renderGatesRun = exports.runGatesRunCommand = exports.renderStatus = exports.runStatusCommand = exports.classifyOwnership = exports.renderClaimPanel = exports.runClaimCommand = exports.runEvidenceRecordCommand = exports.runScopeCommand = exports.runDoctorCommand = exports.renderDecision = exports.countFindingSeverities = exports.renderFindings = exports.renderFinding = exports.countSeverities = exports.renderDiagnostics = exports.renderDiagnostic = exports.parseWorktreePorcelain = exports.resolveBinding = exports.buildActor = exports.describeSessionSource = exports.resolveSession = exports.SHELL_RULE_PREFIXES = exports.SHELL_RULES = void 0;
|
|
10
10
|
var rules_1 = require("./rules");
|
|
11
11
|
Object.defineProperty(exports, "SHELL_RULES", { enumerable: true, get: function () { return rules_1.SHELL_RULES; } });
|
|
12
12
|
Object.defineProperty(exports, "SHELL_RULE_PREFIXES", { enumerable: true, get: function () { return rules_1.SHELL_RULE_PREFIXES; } });
|
|
@@ -66,6 +66,18 @@ Object.defineProperty(exports, "renderWaiverSummary", { enumerable: true, get: f
|
|
|
66
66
|
Object.defineProperty(exports, "renderWaiverDetail", { enumerable: true, get: function () { return waiver_2.renderWaiverDetail; } });
|
|
67
67
|
var init_1 = require("./commands/init");
|
|
68
68
|
Object.defineProperty(exports, "runInitCommand", { enumerable: true, get: function () { return init_1.runInitCommand; } });
|
|
69
|
+
var specs_1 = require("./commands/specs");
|
|
70
|
+
Object.defineProperty(exports, "runSpecsCreateCommand", { enumerable: true, get: function () { return specs_1.runSpecsCreateCommand; } });
|
|
71
|
+
Object.defineProperty(exports, "runSpecsListCommand", { enumerable: true, get: function () { return specs_1.runSpecsListCommand; } });
|
|
72
|
+
Object.defineProperty(exports, "runSpecsShowCommand", { enumerable: true, get: function () { return specs_1.runSpecsShowCommand; } });
|
|
73
|
+
Object.defineProperty(exports, "runSpecsCloseCommand", { enumerable: true, get: function () { return specs_1.runSpecsCloseCommand; } });
|
|
74
|
+
Object.defineProperty(exports, "runSpecsArchiveCommand", { enumerable: true, get: function () { return specs_1.runSpecsArchiveCommand; } });
|
|
75
|
+
var worktree_1 = require("./commands/worktree");
|
|
76
|
+
Object.defineProperty(exports, "runWorktreeCreateCommand", { enumerable: true, get: function () { return worktree_1.runWorktreeCreateCommand; } });
|
|
77
|
+
Object.defineProperty(exports, "runWorktreeListCommand", { enumerable: true, get: function () { return worktree_1.runWorktreeListCommand; } });
|
|
78
|
+
Object.defineProperty(exports, "runWorktreeBindCommand", { enumerable: true, get: function () { return worktree_1.runWorktreeBindCommand; } });
|
|
79
|
+
Object.defineProperty(exports, "runWorktreeDestroyCommand", { enumerable: true, get: function () { return worktree_1.runWorktreeDestroyCommand; } });
|
|
80
|
+
Object.defineProperty(exports, "runWorktreeMergeCommand", { enumerable: true, get: function () { return worktree_1.runWorktreeMergeCommand; } });
|
|
69
81
|
var init_2 = require("./render/init");
|
|
70
82
|
Object.defineProperty(exports, "renderInit", { enumerable: true, get: function () { return init_2.renderInit; } });
|
|
71
83
|
var register_1 = require("./register");
|
package/dist/shell/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shell/index.ts"],"names":[],"mappings":";AAAA,4CAA4C;AAC5C,EAAE;AACF,qEAAqE;AACrE,oEAAoE;AACpE,qEAAqE;AACrE,kEAAkE;;;AAElE,iCAA2D;AAAlD,oGAAA,WAAW,OAAA;AAAE,4GAAA,mBAAmB,OAAA;AAGzC,6DAAkF;AAAzE,iHAAA,cAAc,OAAA;AAAE,wHAAA,qBAAqB,OAAA;AAQ9C,yCAA6C;AAApC,mGAAA,UAAU,OAAA;AAGnB,6DAGmC;AAFjC,iHAAA,cAAc,OAAA;AACd,yHAAA,sBAAsB,OAAA;AAQxB,kDAI6B;AAH3B,8GAAA,gBAAgB,OAAA;AAChB,+GAAA,iBAAiB,OAAA;AACjB,6GAAA,eAAe,OAAA;AAGjB,4CAI0B;AAHxB,wGAAA,aAAa,OAAA;AACb,yGAAA,cAAc,OAAA;AACd,iHAAA,sBAAsB,OAAA;AAGxB,8CAAmD;AAA1C,0GAAA,cAAc,OAAA;AAGvB,4CAAqD;AAA5C,0GAAA,gBAAgB,OAAA;AAGzB,0CAAmD;AAA1C,wGAAA,eAAe,OAAA;AAGxB,gDAA+D;AAAtD,oHAAA,wBAAwB,OAAA;AAMjC,0CAAmD;AAA1C,wGAAA,eAAe,OAAA;AAGxB,wCAAqE;AAA5D,yGAAA,gBAAgB,OAAA;AAAE,0GAAA,iBAAiB,OAAA;AAG5C,4CAAqD;AAA5C,0GAAA,gBAAgB,OAAA;AAGzB,0CAA+C;AAAtC,sGAAA,YAAY,OAAA;AAGrB,0CAAsD;AAA7C,2GAAA,kBAAkB,OAAA;AAM3B,wCAAgD;AAAvC,uGAAA,cAAc,OAAA;AACvB,qEAEsC;AADpC,2HAAA,mBAAmB,OAAA;AAOrB,uEAAwF;AAA/E,wHAAA,eAAe,OAAA;AAAE,+HAAA,sBAAsB,OAAA;AAOhD,mDAAyD;AAAhD,iHAAA,kBAAkB,OAAA;AAO3B,uDAA+D;AAAtD,uHAAA,sBAAsB,OAAA;AAO/B,4CAK2B;AAJzB,gHAAA,sBAAsB,OAAA;AACtB,8GAAA,oBAAoB,OAAA;AACpB,8GAAA,oBAAoB,OAAA;AACpB,gHAAA,sBAAsB,OAAA;AASxB,0CAGyB;AAFvB,6GAAA,mBAAmB,OAAA;AACnB,4GAAA,kBAAkB,OAAA;AAOpB,wCAAiD;AAAxC,sGAAA,cAAc,OAAA;AAGvB,sCAA2C;AAAlC,kGAAA,UAAU,OAAA;AAGnB,uCAAmD;AAA1C,iHAAA,qBAAqB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shell/index.ts"],"names":[],"mappings":";AAAA,4CAA4C;AAC5C,EAAE;AACF,qEAAqE;AACrE,oEAAoE;AACpE,qEAAqE;AACrE,kEAAkE;;;AAElE,iCAA2D;AAAlD,oGAAA,WAAW,OAAA;AAAE,4GAAA,mBAAmB,OAAA;AAGzC,6DAAkF;AAAzE,iHAAA,cAAc,OAAA;AAAE,wHAAA,qBAAqB,OAAA;AAQ9C,yCAA6C;AAApC,mGAAA,UAAU,OAAA;AAGnB,6DAGmC;AAFjC,iHAAA,cAAc,OAAA;AACd,yHAAA,sBAAsB,OAAA;AAQxB,kDAI6B;AAH3B,8GAAA,gBAAgB,OAAA;AAChB,+GAAA,iBAAiB,OAAA;AACjB,6GAAA,eAAe,OAAA;AAGjB,4CAI0B;AAHxB,wGAAA,aAAa,OAAA;AACb,yGAAA,cAAc,OAAA;AACd,iHAAA,sBAAsB,OAAA;AAGxB,8CAAmD;AAA1C,0GAAA,cAAc,OAAA;AAGvB,4CAAqD;AAA5C,0GAAA,gBAAgB,OAAA;AAGzB,0CAAmD;AAA1C,wGAAA,eAAe,OAAA;AAGxB,gDAA+D;AAAtD,oHAAA,wBAAwB,OAAA;AAMjC,0CAAmD;AAA1C,wGAAA,eAAe,OAAA;AAGxB,wCAAqE;AAA5D,yGAAA,gBAAgB,OAAA;AAAE,0GAAA,iBAAiB,OAAA;AAG5C,4CAAqD;AAA5C,0GAAA,gBAAgB,OAAA;AAGzB,0CAA+C;AAAtC,sGAAA,YAAY,OAAA;AAGrB,0CAAsD;AAA7C,2GAAA,kBAAkB,OAAA;AAM3B,wCAAgD;AAAvC,uGAAA,cAAc,OAAA;AACvB,qEAEsC;AADpC,2HAAA,mBAAmB,OAAA;AAOrB,uEAAwF;AAA/E,wHAAA,eAAe,OAAA;AAAE,+HAAA,sBAAsB,OAAA;AAOhD,mDAAyD;AAAhD,iHAAA,kBAAkB,OAAA;AAO3B,uDAA+D;AAAtD,uHAAA,sBAAsB,OAAA;AAO/B,4CAK2B;AAJzB,gHAAA,sBAAsB,OAAA;AACtB,8GAAA,oBAAoB,OAAA;AACpB,8GAAA,oBAAoB,OAAA;AACpB,gHAAA,sBAAsB,OAAA;AASxB,0CAGyB;AAFvB,6GAAA,mBAAmB,OAAA;AACnB,4GAAA,kBAAkB,OAAA;AAOpB,wCAAiD;AAAxC,sGAAA,cAAc,OAAA;AAGvB,0CAM0B;AALxB,8GAAA,qBAAqB,OAAA;AACrB,4GAAA,mBAAmB,OAAA;AACnB,4GAAA,mBAAmB,OAAA;AACnB,6GAAA,oBAAoB,OAAA;AACpB,+GAAA,sBAAsB,OAAA;AAUxB,gDAM6B;AAL3B,oHAAA,wBAAwB,OAAA;AACxB,kHAAA,sBAAsB,OAAA;AACtB,kHAAA,sBAAsB,OAAA;AACtB,qHAAA,yBAAyB,OAAA;AACzB,mHAAA,uBAAuB,OAAA;AAUzB,sCAA2C;AAAlC,kGAAA,UAAU,OAAA;AAGnB,uCAAmD;AAA1C,iHAAA,qBAAqB,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/shell/register.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/shell/register.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2BzC,MAAM,WAAW,4BAA4B;IAC3C;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC;AAyBD,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,4BAAiC,GACzC,IAAI,CAimBN"}
|
package/dist/shell/register.js
CHANGED
|
@@ -49,10 +49,36 @@ function registerShellCommands(program, options = {}) {
|
|
|
49
49
|
program
|
|
50
50
|
.command('init')
|
|
51
51
|
.description('Bootstrap the canonical vNext .caws/ project state (idempotent; ' +
|
|
52
|
-
'refuses to overwrite legacy single-spec layout).'
|
|
52
|
+
'refuses to overwrite legacy single-spec layout). With ' +
|
|
53
|
+
'--agent-surface, also installs the corresponding hook pack.')
|
|
53
54
|
.option('--data', 'Show structured data block on diagnostics')
|
|
55
|
+
.option('--agent-surface <name>', 'Install a hook pack for an agent harness ' +
|
|
56
|
+
'(claude-code | cursor | windsurf | none). When omitted, init ' +
|
|
57
|
+
'attempts filesystem detection and skips hook install when ' +
|
|
58
|
+
'ambiguous.')
|
|
59
|
+
.option('--overwrite', 'For hook-pack install: replace drifted or unmanaged files at ' +
|
|
60
|
+
'managed pack paths. CAUTION: local edits to those files will ' +
|
|
61
|
+
'be lost.')
|
|
62
|
+
.option('--adopt', 'For hook-pack install: leave drifted or unmanaged files in place ' +
|
|
63
|
+
'without enforcing pack contents. CAUTION: pack drift is no ' +
|
|
64
|
+
'longer tracked for those paths.')
|
|
54
65
|
.action((opts) => {
|
|
55
|
-
|
|
66
|
+
// Commander hands back the raw string for agentSurface; the
|
|
67
|
+
// runInitCommand validator rejects unknown values with exit 2.
|
|
68
|
+
const runOpts = {
|
|
69
|
+
showData: opts.data === true,
|
|
70
|
+
};
|
|
71
|
+
if (opts.agentSurface !== undefined) {
|
|
72
|
+
runOpts.agentSurface =
|
|
73
|
+
opts.agentSurface;
|
|
74
|
+
}
|
|
75
|
+
if (opts.overwrite !== undefined) {
|
|
76
|
+
runOpts.overwrite = opts.overwrite;
|
|
77
|
+
}
|
|
78
|
+
if (opts.adopt !== undefined) {
|
|
79
|
+
runOpts.adopt = opts.adopt;
|
|
80
|
+
}
|
|
81
|
+
const code = (0, index_1.runInitCommand)(runOpts);
|
|
56
82
|
exit(code);
|
|
57
83
|
});
|
|
58
84
|
// -------------------------------------------------------------------
|
|
@@ -265,6 +291,170 @@ function registerShellCommands(program, options = {}) {
|
|
|
265
291
|
});
|
|
266
292
|
exit(code);
|
|
267
293
|
});
|
|
294
|
+
// -------------------------------------------------------------------
|
|
295
|
+
// caws specs (CLI-SPECS-001)
|
|
296
|
+
//
|
|
297
|
+
// Restores v11 spec lifecycle commands. All mutation paths go through
|
|
298
|
+
// specs-writer (which uses the lifecycle-transaction substrate from
|
|
299
|
+
// Slice 4). The shell layer parses args + builds the actor envelope;
|
|
300
|
+
// the writer owns YAML patching + event append.
|
|
301
|
+
// -------------------------------------------------------------------
|
|
302
|
+
const specsCmd = program
|
|
303
|
+
.command('specs')
|
|
304
|
+
.description('Manage CAWS spec lifecycle (create/list/show/close/archive)');
|
|
305
|
+
specsCmd
|
|
306
|
+
.command('create <id>')
|
|
307
|
+
.description('Create a new spec in lifecycle_state: active.')
|
|
308
|
+
.requiredOption('--title <title>', 'Short spec title')
|
|
309
|
+
.requiredOption('--mode <mode>', 'Spec mode: feature | refactor | fix | doc | chore')
|
|
310
|
+
.requiredOption('--risk-tier <n>', 'Risk tier: 1, 2, or 3')
|
|
311
|
+
.option('--data', 'Show structured data block on diagnostics')
|
|
312
|
+
.action((id, opts) => {
|
|
313
|
+
const code = (0, index_1.runSpecsCreateCommand)({
|
|
314
|
+
id,
|
|
315
|
+
title: opts.title,
|
|
316
|
+
mode: opts.mode,
|
|
317
|
+
riskTier: opts.riskTier,
|
|
318
|
+
showData: opts.data === true,
|
|
319
|
+
});
|
|
320
|
+
exit(code);
|
|
321
|
+
});
|
|
322
|
+
specsCmd
|
|
323
|
+
.command('list')
|
|
324
|
+
.description('List specs. By default excludes archived specs.')
|
|
325
|
+
.option('--archived', 'Include archived specs in the listing')
|
|
326
|
+
.option('--data', 'Show structured data block on diagnostics')
|
|
327
|
+
.action((opts) => {
|
|
328
|
+
const code = (0, index_1.runSpecsListCommand)({
|
|
329
|
+
includeArchived: opts.archived === true,
|
|
330
|
+
showData: opts.data === true,
|
|
331
|
+
});
|
|
332
|
+
exit(code);
|
|
333
|
+
});
|
|
334
|
+
specsCmd
|
|
335
|
+
.command('show <id>')
|
|
336
|
+
.description('Show a spec by id (searches active and archived locations).')
|
|
337
|
+
.option('--data', 'Show structured data block on diagnostics')
|
|
338
|
+
.action((id, opts) => {
|
|
339
|
+
const code = (0, index_1.runSpecsShowCommand)({
|
|
340
|
+
id,
|
|
341
|
+
showData: opts.data === true,
|
|
342
|
+
});
|
|
343
|
+
exit(code);
|
|
344
|
+
});
|
|
345
|
+
specsCmd
|
|
346
|
+
.command('close <id>')
|
|
347
|
+
.description('Close an active spec. Non-destructive raw-byte YAML patch; appends spec_closed event.')
|
|
348
|
+
.requiredOption('--resolution <r>', 'Resolution: completed | superseded | abandoned')
|
|
349
|
+
.option('--reason <text>', 'Closure notes recorded on the spec YAML and the spec_closed event')
|
|
350
|
+
.option('--merge-commit <sha>', 'Optional merge commit SHA (e.g., when closure follows a worktree merge)')
|
|
351
|
+
.option('--superseded-by <id>', 'Spec id that supersedes this one (use with --resolution superseded)')
|
|
352
|
+
.option('--data', 'Show structured data block on diagnostics')
|
|
353
|
+
.action((id, opts) => {
|
|
354
|
+
const code = (0, index_1.runSpecsCloseCommand)({
|
|
355
|
+
id,
|
|
356
|
+
resolution: opts.resolution,
|
|
357
|
+
...(opts.reason !== undefined ? { reason: opts.reason } : {}),
|
|
358
|
+
...(opts.mergeCommit !== undefined
|
|
359
|
+
? { mergeCommit: opts.mergeCommit }
|
|
360
|
+
: {}),
|
|
361
|
+
...(opts.supersededBy !== undefined
|
|
362
|
+
? { supersededBy: opts.supersededBy }
|
|
363
|
+
: {}),
|
|
364
|
+
showData: opts.data === true,
|
|
365
|
+
});
|
|
366
|
+
exit(code);
|
|
367
|
+
});
|
|
368
|
+
specsCmd
|
|
369
|
+
.command('archive <id>')
|
|
370
|
+
.description('Archive a closed spec. Moves the YAML file to .caws/specs/.archive/; appends spec_archived event.')
|
|
371
|
+
.option('--reason <text>', 'Archive reason (advisory; spec_archived schema does not carry it)')
|
|
372
|
+
.option('--data', 'Show structured data block on diagnostics')
|
|
373
|
+
.action((id, opts) => {
|
|
374
|
+
const code = (0, index_1.runSpecsArchiveCommand)({
|
|
375
|
+
id,
|
|
376
|
+
...(opts.reason !== undefined ? { reason: opts.reason } : {}),
|
|
377
|
+
showData: opts.data === true,
|
|
378
|
+
});
|
|
379
|
+
exit(code);
|
|
380
|
+
});
|
|
381
|
+
// -------------------------------------------------------------------
|
|
382
|
+
// caws worktree (CLI-WORKTREE-001)
|
|
383
|
+
//
|
|
384
|
+
// Restores v11 worktree lifecycle commands. All mutation paths go
|
|
385
|
+
// through worktrees-writer (which uses the lifecycle-transaction
|
|
386
|
+
// substrate from Slice 4 + applyRegistryPatch + specs-writer.closeSpec
|
|
387
|
+
// for auto-close on merge).
|
|
388
|
+
// -------------------------------------------------------------------
|
|
389
|
+
const worktreeCmd = program
|
|
390
|
+
.command('worktree')
|
|
391
|
+
.description('Manage CAWS worktrees (create/list/bind/destroy/merge). Worktrees are git worktrees bound to active specs.');
|
|
392
|
+
worktreeCmd
|
|
393
|
+
.command('create <name>')
|
|
394
|
+
.description('Create a new git worktree under .caws/worktrees/<name> bound to an active spec.')
|
|
395
|
+
.requiredOption('--spec <id>', 'Active spec id to bind the worktree to')
|
|
396
|
+
.option('--base-branch <branch>', 'Base branch to start from (default: current branch)')
|
|
397
|
+
.option('--branch <branch>', 'New branch name (default: worktree name)')
|
|
398
|
+
.option('--data', 'Show structured data block on diagnostics')
|
|
399
|
+
.action((name, opts) => {
|
|
400
|
+
const code = (0, index_1.runWorktreeCreateCommand)({
|
|
401
|
+
name,
|
|
402
|
+
specId: opts.spec,
|
|
403
|
+
...(opts.baseBranch !== undefined ? { baseBranch: opts.baseBranch } : {}),
|
|
404
|
+
...(opts.branch !== undefined ? { branch: opts.branch } : {}),
|
|
405
|
+
showData: opts.data === true,
|
|
406
|
+
});
|
|
407
|
+
exit(code);
|
|
408
|
+
});
|
|
409
|
+
worktreeCmd
|
|
410
|
+
.command('list')
|
|
411
|
+
.description('List registered worktrees with branch, spec binding, and owner.')
|
|
412
|
+
.option('--data', 'Show structured data block on diagnostics')
|
|
413
|
+
.action((opts) => {
|
|
414
|
+
const code = (0, index_1.runWorktreeListCommand)({ showData: opts.data === true });
|
|
415
|
+
exit(code);
|
|
416
|
+
});
|
|
417
|
+
worktreeCmd
|
|
418
|
+
.command('bind <name>')
|
|
419
|
+
.description('Repair bidirectional binding between a worktree and a spec (one-sided → bound).')
|
|
420
|
+
.requiredOption('--spec <id>', 'Spec id to bind the worktree to')
|
|
421
|
+
.option('--data', 'Show structured data block on diagnostics')
|
|
422
|
+
.action((name, opts) => {
|
|
423
|
+
const code = (0, index_1.runWorktreeBindCommand)({
|
|
424
|
+
name,
|
|
425
|
+
specId: opts.spec,
|
|
426
|
+
showData: opts.data === true,
|
|
427
|
+
});
|
|
428
|
+
exit(code);
|
|
429
|
+
});
|
|
430
|
+
worktreeCmd
|
|
431
|
+
.command('destroy <name>')
|
|
432
|
+
.description('Destroy a worktree. Non-forceful: refuses foreign ownership, dirty checkout, unmerged branch (use --abandon-unmerged to override branch check only).')
|
|
433
|
+
.option('--abandon-unmerged', 'Destroy even when the branch is not merged into base. Still respects ownership and clean working tree.')
|
|
434
|
+
.option('--data', 'Show structured data block on diagnostics')
|
|
435
|
+
.action((name, opts) => {
|
|
436
|
+
const code = (0, index_1.runWorktreeDestroyCommand)({
|
|
437
|
+
name,
|
|
438
|
+
...(opts.abandonUnmerged === true ? { abandonUnmerged: true } : {}),
|
|
439
|
+
showData: opts.data === true,
|
|
440
|
+
});
|
|
441
|
+
exit(code);
|
|
442
|
+
});
|
|
443
|
+
worktreeCmd
|
|
444
|
+
.command('merge <name>')
|
|
445
|
+
.description('Merge a worktree branch into its base. Auto-closes the bound spec via caws specs close.')
|
|
446
|
+
.option('--dry-run', 'Validate prerequisites only; no git, no file writes, no events')
|
|
447
|
+
.option('--message <text>', 'Custom merge commit message (default: merge(worktree): <name>)')
|
|
448
|
+
.option('--data', 'Show structured data block on diagnostics')
|
|
449
|
+
.action((name, opts) => {
|
|
450
|
+
const code = (0, index_1.runWorktreeMergeCommand)({
|
|
451
|
+
name,
|
|
452
|
+
...(opts.dryRun === true ? { dryRun: true } : {}),
|
|
453
|
+
...(opts.message !== undefined ? { message: opts.message } : {}),
|
|
454
|
+
showData: opts.data === true,
|
|
455
|
+
});
|
|
456
|
+
exit(code);
|
|
457
|
+
});
|
|
268
458
|
}
|
|
269
459
|
/** Commander value collector for repeatable string options. */
|
|
270
460
|
function collectMulti(value, prev) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/shell/register.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/shell/register.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type SettingsWiringStatus } from '../../init/hook-install';
|
|
2
|
+
import type { HookPackInstallResult } from '../../init/hook-packs/types';
|
|
3
|
+
/** Render the install result. */
|
|
4
|
+
export declare function renderHookPackInstall(result: HookPackInstallResult): string;
|
|
5
|
+
/** Render the settings.json wiring inspection result. */
|
|
6
|
+
export declare function renderSettingsWiring(status: SettingsWiringStatus): string;
|
|
7
|
+
/** Render the activation contract. Drives what the agent should do
|
|
8
|
+
* immediately after init. The message tailors to three signals:
|
|
9
|
+
* - did this run actually install or update files? (changed vs no-op)
|
|
10
|
+
* - is settings.json wired? (only known when caller passes wiringStatus)
|
|
11
|
+
* - what is the harness's activation model? (from pack)
|
|
12
|
+
*
|
|
13
|
+
* Without these signals the panel becomes a constant STOP sign on every
|
|
14
|
+
* re-run, which trains agents to ignore it. */
|
|
15
|
+
export declare function renderActivationContract(result: HookPackInstallResult, wiringStatus?: SettingsWiringStatus): string;
|
|
16
|
+
//# sourceMappingURL=init-hook-pack.d.ts.map
|