@alisio/plugin-wayfinder 0.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.
Files changed (62) hide show
  1. package/.agents/agents/archivist.md +18 -0
  2. package/.agents/agents/coordinator.md +16 -0
  3. package/.agents/agents/designer.md +18 -0
  4. package/.agents/agents/discoverer.md +18 -0
  5. package/.agents/agents/implementer.md +18 -0
  6. package/.agents/agents/mutationist.md +18 -0
  7. package/.agents/agents/planner.md +18 -0
  8. package/.agents/agents/proposer.md +18 -0
  9. package/.agents/agents/specifier.md +18 -0
  10. package/.agents/agents/verifier.md +18 -0
  11. package/.agents/skills/wayfinder-archive/SKILL.md +43 -0
  12. package/.agents/skills/wayfinder-coordinate/SKILL.md +44 -0
  13. package/.agents/skills/wayfinder-design/SKILL.md +42 -0
  14. package/.agents/skills/wayfinder-discover/SKILL.md +42 -0
  15. package/.agents/skills/wayfinder-implement/SKILL.md +53 -0
  16. package/.agents/skills/wayfinder-mutate/SKILL.md +44 -0
  17. package/.agents/skills/wayfinder-plan/SKILL.md +48 -0
  18. package/.agents/skills/wayfinder-propose/SKILL.md +42 -0
  19. package/.agents/skills/wayfinder-specify/SKILL.md +43 -0
  20. package/.agents/skills/wayfinder-test-design/SKILL.md +48 -0
  21. package/.agents/skills/wayfinder-verify/SKILL.md +48 -0
  22. package/LICENSE +21 -0
  23. package/README.md +396 -0
  24. package/assets/agent-communication.svg +1 -0
  25. package/assets/methodology-flow.svg +1 -0
  26. package/dist/coordinator.d.ts +46 -0
  27. package/dist/coordinator.d.ts.map +1 -0
  28. package/dist/coordinator.js +978 -0
  29. package/dist/coordinator.js.map +1 -0
  30. package/dist/index.d.ts +18 -0
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +36 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/mutation.d.ts +67 -0
  35. package/dist/mutation.d.ts.map +1 -0
  36. package/dist/mutation.js +398 -0
  37. package/dist/mutation.js.map +1 -0
  38. package/dist/resources.d.ts +14 -0
  39. package/dist/resources.d.ts.map +1 -0
  40. package/dist/resources.js +142 -0
  41. package/dist/resources.js.map +1 -0
  42. package/dist/storage.d.ts +15 -0
  43. package/dist/storage.d.ts.map +1 -0
  44. package/dist/storage.js +282 -0
  45. package/dist/storage.js.map +1 -0
  46. package/dist/testing-rules.d.ts +3 -0
  47. package/dist/testing-rules.d.ts.map +1 -0
  48. package/dist/testing-rules.js +33 -0
  49. package/dist/testing-rules.js.map +1 -0
  50. package/dist/types.d.ts +214 -0
  51. package/dist/types.d.ts.map +1 -0
  52. package/dist/types.js +25 -0
  53. package/dist/types.js.map +1 -0
  54. package/dist/validation.d.ts +17 -0
  55. package/dist/validation.d.ts.map +1 -0
  56. package/dist/validation.js +357 -0
  57. package/dist/validation.js.map +1 -0
  58. package/dist/version.d.ts +2 -0
  59. package/dist/version.d.ts.map +1 -0
  60. package/dist/version.js +3 -0
  61. package/dist/version.js.map +1 -0
  62. package/package.json +50 -0
@@ -0,0 +1,214 @@
1
+ export declare const phases: readonly ["discovery", "proposal", "proposal-approval", "specification", "design", "plan", "plan-approval", "implementation", "verification", "archive", "closed"];
2
+ export type Phase = (typeof phases)[number];
3
+ export declare const executionRoles: readonly ["discoverer", "proposer", "specifier", "designer", "planner", "implementer", "verifier", "mutationist", "archivist"];
4
+ export type ExecutionRole = (typeof executionRoles)[number];
5
+ export type ResourceRole = "coordinator" | ExecutionRole;
6
+ export interface CommandEvidence {
7
+ command: string;
8
+ status: "passed";
9
+ summary: string;
10
+ }
11
+ export interface WorkUnit {
12
+ id: string;
13
+ title: string;
14
+ goal: string;
15
+ requirements: string[];
16
+ paths: string[];
17
+ checks: string[];
18
+ status: "pending" | "completed";
19
+ /** Optional unit intent; absent means a normal implementation unit. */
20
+ kind?: "implementation" | "test-strengthening";
21
+ /** When true, strict TDD does not require test-first evidence; a justification is mandatory. */
22
+ tddExempt?: boolean;
23
+ tddExemptReason?: string;
24
+ /** When true, the unit must report test-design evidence (happy and unhappy coverage). */
25
+ requiresTests?: boolean;
26
+ changedPaths?: string[];
27
+ evidence?: CommandEvidence[];
28
+ }
29
+ export type MutationStack = "javascript" | "rust" | "python" | "go" | "java" | "unknown";
30
+ export type MutationScopeMode = "changed" | "full";
31
+ export type MutationDecisionValue = "run" | "skip";
32
+ /** `paths` can honor a bounded file scope; `none` can only run whole-repository. */
33
+ export type MutationScopeSupport = "paths" | "none";
34
+ /** Whether the coordinator's concurrency bound is actually passed to the tool. */
35
+ export type MutationConcurrency = "applied" | "unsupported";
36
+ export type TddDecisionValue = "strict" | "off";
37
+ export interface TddState {
38
+ decision: TddDecisionValue;
39
+ reason: string;
40
+ decidedAt: string;
41
+ source: "recommended" | "manual";
42
+ }
43
+ export interface MutationDecision {
44
+ decision: MutationDecisionValue;
45
+ mode: MutationScopeMode;
46
+ reason: string;
47
+ decidedAt: string;
48
+ stack: MutationStack;
49
+ source: "recommended" | "manual";
50
+ tool?: string;
51
+ }
52
+ export interface MutationSurvivor {
53
+ file: string;
54
+ line?: number;
55
+ description: string;
56
+ equivalent: boolean;
57
+ justification: string;
58
+ }
59
+ export interface MutationRun {
60
+ tool: string;
61
+ stack: MutationStack;
62
+ mode: MutationScopeMode;
63
+ /** Optional for additive compatibility; written on every new run. */
64
+ scopeSupport?: MutationScopeSupport;
65
+ concurrencyApplied?: boolean;
66
+ scope: string[];
67
+ command: string;
68
+ survivors: MutationSurvivor[];
69
+ failingSurvivors: number;
70
+ equivalentSurvivors: number;
71
+ mutationScore?: number;
72
+ summary: string;
73
+ ranAt: string;
74
+ truncated?: boolean;
75
+ unavailableReason?: string;
76
+ }
77
+ export interface MutationTarget {
78
+ files: string[];
79
+ requirementIds: string[];
80
+ attempt: number;
81
+ }
82
+ export interface MutationState {
83
+ decision?: MutationDecision;
84
+ run?: MutationRun;
85
+ targeted?: MutationTarget;
86
+ }
87
+ export interface VerificationSummary {
88
+ passed: boolean;
89
+ summary: string;
90
+ blockers: string[];
91
+ checkedAt: string;
92
+ }
93
+ export interface ChangeState {
94
+ schemaVersion: 2;
95
+ name: string;
96
+ intent: string;
97
+ phase: Phase;
98
+ createdAt: string;
99
+ updatedAt: string;
100
+ proposalApproved: boolean;
101
+ planApproved: boolean;
102
+ requirementIds: string[];
103
+ units: WorkUnit[];
104
+ remediationCount: number;
105
+ /** Optional for additive compatibility; absent legacy states normalize to 0 on load. */
106
+ mutationRemediationCount?: number;
107
+ mutation?: MutationState;
108
+ /** Optional test-first decision; absent means the plan-approval gate is still pending. */
109
+ tdd?: TddState;
110
+ verification?: VerificationSummary;
111
+ }
112
+ /**
113
+ * A `ChangeState` produced by `readState`: additively optional fields are normalized, so runtime
114
+ * logic always reads `mutationRemediationCount` as a number.
115
+ */
116
+ export type NormalizedChangeState = ChangeState & {
117
+ mutationRemediationCount: number;
118
+ };
119
+ export interface DiscoveryOutput {
120
+ schemaVersion: 1;
121
+ summary: string;
122
+ findings: string[];
123
+ constraints: string[];
124
+ criticalQuestions: string[];
125
+ }
126
+ export interface ProposalOutput {
127
+ schemaVersion: 1;
128
+ outcome: string;
129
+ inScope: string[];
130
+ outOfScope: string[];
131
+ assumptions: string[];
132
+ criticalQuestions: string[];
133
+ }
134
+ export interface Requirement {
135
+ id: string;
136
+ statement: string;
137
+ acceptance: string[];
138
+ }
139
+ export interface SpecificationOutput {
140
+ schemaVersion: 1;
141
+ requirements: Requirement[];
142
+ criticalQuestions: string[];
143
+ }
144
+ export interface DesignOutput {
145
+ schemaVersion: 1;
146
+ summary: string;
147
+ decisions: Array<{
148
+ topic: string;
149
+ choice: string;
150
+ rationale: string;
151
+ }>;
152
+ paths: string[];
153
+ risks: string[];
154
+ }
155
+ export interface PlanOutput {
156
+ schemaVersion: 1;
157
+ units: Array<Omit<WorkUnit, "status" | "changedPaths" | "evidence">>;
158
+ }
159
+ export interface ImplementationOutput {
160
+ schemaVersion: 1;
161
+ unitId: string;
162
+ summary: string;
163
+ changedPaths: string[];
164
+ checks: CommandEvidence[];
165
+ testFirst?: {
166
+ failingCommand: string;
167
+ passingCommand: string;
168
+ failingEvidenceRef?: string;
169
+ };
170
+ testDesign?: TestDesignEntry[];
171
+ testability?: Testability;
172
+ notes: string[];
173
+ }
174
+ /** Positive (happy) and negative (unhappy/alternative) tests observed for one functional scenario. */
175
+ export interface TestDesignEntry {
176
+ scenario: string;
177
+ happy: string[];
178
+ unhappy: string[];
179
+ }
180
+ /** UI test-selector evidence: semantic ids, or a reason that only accessibility queries are used. */
181
+ export interface Testability {
182
+ testIds: string[];
183
+ accessibleOnlyReason?: string;
184
+ }
185
+ export interface VerificationOutput {
186
+ schemaVersion: 1;
187
+ passed: boolean;
188
+ summary: string;
189
+ requirements: Array<{
190
+ id: string;
191
+ status: "passed" | "failed";
192
+ evidence: string[];
193
+ }>;
194
+ checks: CommandEvidence[];
195
+ blockers: string[];
196
+ }
197
+ export interface MutationOutput {
198
+ schemaVersion: 1;
199
+ tool: string;
200
+ stack: string;
201
+ survivors: MutationSurvivor[];
202
+ mutationScore?: number;
203
+ summary: string;
204
+ }
205
+ export interface ArchiveOutput {
206
+ schemaVersion: 1;
207
+ ready: boolean;
208
+ artifacts: string[];
209
+ completedUnits: string[];
210
+ requirements: string[];
211
+ blockers: string[];
212
+ summary: string;
213
+ }
214
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,25 @@
1
+ export const phases = [
2
+ "discovery",
3
+ "proposal",
4
+ "proposal-approval",
5
+ "specification",
6
+ "design",
7
+ "plan",
8
+ "plan-approval",
9
+ "implementation",
10
+ "verification",
11
+ "archive",
12
+ "closed",
13
+ ];
14
+ export const executionRoles = [
15
+ "discoverer",
16
+ "proposer",
17
+ "specifier",
18
+ "designer",
19
+ "planner",
20
+ "implementer",
21
+ "verifier",
22
+ "mutationist",
23
+ "archivist",
24
+ ];
25
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,WAAW;IACX,UAAU;IACV,mBAAmB;IACnB,eAAe;IACf,QAAQ;IACR,MAAM;IACN,eAAe;IACf,gBAAgB;IAChB,cAAc;IACd,SAAS;IACT,QAAQ;CACA,CAAC;AAGX,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,YAAY;IACZ,UAAU;IACV,WAAW;IACX,UAAU;IACV,SAAS;IACT,aAAa;IACb,UAAU;IACV,aAAa;IACb,WAAW;CACH,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { ArchiveOutput, DesignOutput, DiscoveryOutput, ImplementationOutput, MutationOutput, PlanOutput, ProposalOutput, SpecificationOutput, VerificationOutput } from "./types.js";
2
+ export declare function parseChildJson(text: string): unknown;
3
+ export declare function validateDiscovery(raw: unknown): DiscoveryOutput;
4
+ export declare function validateProposal(raw: unknown): ProposalOutput;
5
+ export declare function validateSpecification(raw: unknown): SpecificationOutput;
6
+ export declare function validateDesign(raw: unknown): DesignOutput;
7
+ export declare function validatePlan(raw: unknown, requirementIds: Set<string>): PlanOutput;
8
+ export declare function validateImplementation(raw: unknown, expectedUnit: string): ImplementationOutput;
9
+ export declare function validateVerification(raw: unknown, requirementIds: Set<string>): VerificationOutput;
10
+ export declare function validateTargetedVerification(raw: unknown, targetIds: Set<string>): VerificationOutput;
11
+ export declare function validateMutation(raw: unknown): MutationOutput;
12
+ export declare function validateArchive(raw: unknown, expected: {
13
+ artifacts: Set<string>;
14
+ units: Set<string>;
15
+ requirements: Set<string>;
16
+ }): ArchiveOutput;
17
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EAEb,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AA8CpB,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAQpD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,CAU/D;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,CAW7D;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,mBAAmB,CAwBvE;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CAmBzD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,UAAU,CA8ClF;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,oBAAoB,CAuD/F;AA8CD,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,OAAO,EACZ,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,GAC1B,kBAAkB,CAEpB;AAED,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,GACrB,kBAAkB,CAIpB;AAID,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,CAiD7D;AAED,wBAAgB,eAAe,CAC7B,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE;IAAE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAAE,GAClF,aAAa,CA2Bf"}
@@ -0,0 +1,357 @@
1
+ import { assertRelativePath } from "./storage.js";
2
+ const object = (value, field = "output") => {
3
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
4
+ throw new Error(`${field} must be an object`);
5
+ }
6
+ return value;
7
+ };
8
+ const string = (value, field) => {
9
+ if (typeof value !== "string" || !value.trim())
10
+ throw new Error(`${field} must be non-empty`);
11
+ return value.trim();
12
+ };
13
+ const strings = (value, field, nonEmpty = false) => {
14
+ if (!Array.isArray(value))
15
+ throw new Error(`${field} must be an array`);
16
+ const result = value.map((item, index) => string(item, `${field}[${index}]`));
17
+ if (nonEmpty && result.length === 0)
18
+ throw new Error(`${field} must not be empty`);
19
+ if (new Set(result).size !== result.length)
20
+ throw new Error(`${field} must not contain duplicates`);
21
+ return result;
22
+ };
23
+ const array = (value, field) => {
24
+ if (!Array.isArray(value))
25
+ throw new Error(`${field} must be an array`);
26
+ return value;
27
+ };
28
+ const version = (value) => {
29
+ if (value.schemaVersion !== 1)
30
+ throw new Error("schemaVersion must be 1");
31
+ };
32
+ const boolean = (value, field) => {
33
+ if (typeof value !== "boolean")
34
+ throw new Error(`${field} must be boolean`);
35
+ return value;
36
+ };
37
+ function evidence(value, field) {
38
+ const checks = array(value, field).map((item, index) => {
39
+ const entry = object(item, `${field}[${index}]`);
40
+ if (entry.status !== "passed")
41
+ throw new Error(`${field}[${index}].status must be passed`);
42
+ return {
43
+ command: string(entry.command, `${field}[${index}].command`),
44
+ status: "passed",
45
+ summary: string(entry.summary, `${field}[${index}].summary`),
46
+ };
47
+ });
48
+ if (!checks.length)
49
+ throw new Error(`${field} must contain successful command evidence`);
50
+ return checks;
51
+ }
52
+ export function parseChildJson(text) {
53
+ const trimmed = text.trim();
54
+ const match = /^```(?:json)?\s*\n([\s\S]*?)\n```$/i.exec(trimmed);
55
+ try {
56
+ return JSON.parse(match?.[1] ?? trimmed);
57
+ }
58
+ catch {
59
+ throw new Error("Child output is not a single valid JSON value");
60
+ }
61
+ }
62
+ export function validateDiscovery(raw) {
63
+ const value = object(raw);
64
+ version(value);
65
+ return {
66
+ schemaVersion: 1,
67
+ summary: string(value.summary, "summary"),
68
+ findings: strings(value.findings, "findings", true),
69
+ constraints: strings(value.constraints, "constraints"),
70
+ criticalQuestions: strings(value.criticalQuestions, "criticalQuestions"),
71
+ };
72
+ }
73
+ export function validateProposal(raw) {
74
+ const value = object(raw);
75
+ version(value);
76
+ return {
77
+ schemaVersion: 1,
78
+ outcome: string(value.outcome, "outcome"),
79
+ inScope: strings(value.inScope, "inScope", true),
80
+ outOfScope: strings(value.outOfScope, "outOfScope"),
81
+ assumptions: strings(value.assumptions, "assumptions"),
82
+ criticalQuestions: strings(value.criticalQuestions, "criticalQuestions"),
83
+ };
84
+ }
85
+ export function validateSpecification(raw) {
86
+ const value = object(raw);
87
+ version(value);
88
+ const requirements = array(value.requirements, "requirements").map((item, index) => {
89
+ const entry = object(item, `requirements[${index}]`);
90
+ const id = string(entry.id, `requirements[${index}].id`);
91
+ if (!/^REQ-\d{3}$/.test(id))
92
+ throw new Error(`Invalid requirement id: ${id}`);
93
+ return {
94
+ id,
95
+ statement: string(entry.statement, `${id}.statement`),
96
+ acceptance: strings(entry.acceptance, `${id}.acceptance`, true),
97
+ };
98
+ });
99
+ if (!requirements.length ||
100
+ new Set(requirements.map(({ id }) => id)).size !== requirements.length) {
101
+ throw new Error("Requirements must be non-empty with unique ids");
102
+ }
103
+ return {
104
+ schemaVersion: 1,
105
+ requirements,
106
+ criticalQuestions: strings(value.criticalQuestions, "criticalQuestions"),
107
+ };
108
+ }
109
+ export function validateDesign(raw) {
110
+ const value = object(raw);
111
+ version(value);
112
+ const decisions = array(value.decisions, "decisions").map((item, index) => {
113
+ const entry = object(item, `decisions[${index}]`);
114
+ return {
115
+ topic: string(entry.topic, `decisions[${index}].topic`),
116
+ choice: string(entry.choice, `decisions[${index}].choice`),
117
+ rationale: string(entry.rationale, `decisions[${index}].rationale`),
118
+ };
119
+ });
120
+ if (!decisions.length)
121
+ throw new Error("decisions must not be empty");
122
+ return {
123
+ schemaVersion: 1,
124
+ summary: string(value.summary, "summary"),
125
+ decisions,
126
+ paths: strings(value.paths, "paths").map(assertRelativePath),
127
+ risks: strings(value.risks, "risks"),
128
+ };
129
+ }
130
+ export function validatePlan(raw, requirementIds) {
131
+ const value = object(raw);
132
+ version(value);
133
+ const units = array(value.units, "units").map((item, index) => {
134
+ const entry = object(item, `units[${index}]`);
135
+ const id = string(entry.id, `units[${index}].id`);
136
+ if (!/^UNIT-\d{3}$/.test(id))
137
+ throw new Error(`Invalid unit id: ${id}`);
138
+ const requirements = strings(entry.requirements, `${id}.requirements`, true);
139
+ if (requirements.some((requirement) => !requirementIds.has(requirement))) {
140
+ throw new Error(`${id} references an unknown requirement`);
141
+ }
142
+ const tddExempt = entry.tddExempt;
143
+ if (tddExempt !== undefined && typeof tddExempt !== "boolean") {
144
+ throw new Error(`${id}.tddExempt must be boolean`);
145
+ }
146
+ const tddExemptReason = entry.tddExemptReason === undefined
147
+ ? undefined
148
+ : string(entry.tddExemptReason, `${id}.tddExemptReason`);
149
+ if (tddExempt === true && !tddExemptReason) {
150
+ throw new Error(`${id} is tddExempt and requires a non-empty tddExemptReason`);
151
+ }
152
+ const requiresTests = entry.requiresTests;
153
+ if (requiresTests !== undefined && typeof requiresTests !== "boolean") {
154
+ throw new Error(`${id}.requiresTests must be boolean`);
155
+ }
156
+ return {
157
+ id,
158
+ title: string(entry.title, `${id}.title`),
159
+ goal: string(entry.goal, `${id}.goal`),
160
+ requirements,
161
+ paths: strings(entry.paths, `${id}.paths`, true).map(assertRelativePath),
162
+ checks: strings(entry.checks, `${id}.checks`, true),
163
+ ...(tddExempt !== undefined ? { tddExempt } : {}),
164
+ ...(tddExemptReason !== undefined ? { tddExemptReason } : {}),
165
+ ...(requiresTests !== undefined ? { requiresTests } : {}),
166
+ };
167
+ });
168
+ if (!units.length || new Set(units.map(({ id }) => id)).size !== units.length) {
169
+ throw new Error("Plan units must be non-empty with unique ids");
170
+ }
171
+ const covered = new Set(units.flatMap((unit) => unit.requirements));
172
+ if (covered.size !== requirementIds.size || [...requirementIds].some((id) => !covered.has(id))) {
173
+ throw new Error("Plan must cover every requirement");
174
+ }
175
+ return { schemaVersion: 1, units };
176
+ }
177
+ export function validateImplementation(raw, expectedUnit) {
178
+ const value = object(raw);
179
+ version(value);
180
+ if (string(value.unitId, "unitId") !== expectedUnit) {
181
+ throw new Error(`Implementation output must describe ${expectedUnit}`);
182
+ }
183
+ let testFirst;
184
+ if (value.testFirst !== undefined) {
185
+ const entry = object(value.testFirst, "testFirst");
186
+ const failingCommand = string(entry.failingCommand, "testFirst.failingCommand");
187
+ const passingCommand = string(entry.passingCommand, "testFirst.passingCommand");
188
+ const failingEvidenceRef = entry.failingEvidenceRef === undefined
189
+ ? undefined
190
+ : string(entry.failingEvidenceRef, "testFirst.failingEvidenceRef");
191
+ testFirst = {
192
+ failingCommand,
193
+ passingCommand,
194
+ ...(failingEvidenceRef !== undefined ? { failingEvidenceRef } : {}),
195
+ };
196
+ }
197
+ let testDesign;
198
+ if (value.testDesign !== undefined) {
199
+ testDesign = array(value.testDesign, "testDesign").map((item, index) => {
200
+ const entry = object(item, `testDesign[${index}]`);
201
+ return {
202
+ scenario: string(entry.scenario, `testDesign[${index}].scenario`),
203
+ happy: strings(entry.happy, `testDesign[${index}].happy`),
204
+ unhappy: strings(entry.unhappy, `testDesign[${index}].unhappy`),
205
+ };
206
+ });
207
+ }
208
+ let testability;
209
+ if (value.testability !== undefined) {
210
+ const entry = object(value.testability, "testability");
211
+ const accessibleOnlyReason = entry.accessibleOnlyReason === undefined
212
+ ? undefined
213
+ : string(entry.accessibleOnlyReason, "testability.accessibleOnlyReason");
214
+ testability = {
215
+ testIds: strings(entry.testIds, "testability.testIds"),
216
+ ...(accessibleOnlyReason !== undefined ? { accessibleOnlyReason } : {}),
217
+ };
218
+ }
219
+ return {
220
+ schemaVersion: 1,
221
+ unitId: expectedUnit,
222
+ summary: string(value.summary, "summary"),
223
+ changedPaths: strings(value.changedPaths, "changedPaths", true).map(assertRelativePath),
224
+ checks: evidence(value.checks, "checks"),
225
+ ...(testFirst !== undefined ? { testFirst } : {}),
226
+ ...(testDesign !== undefined ? { testDesign } : {}),
227
+ ...(testability !== undefined ? { testability } : {}),
228
+ notes: strings(value.notes, "notes"),
229
+ };
230
+ }
231
+ function validateVerificationCoverage(raw, requirementIds, label) {
232
+ const value = object(raw);
233
+ version(value);
234
+ const passed = boolean(value.passed, "passed");
235
+ const requirements = array(value.requirements, "requirements").map((item, index) => {
236
+ const entry = object(item, `requirements[${index}]`);
237
+ const id = string(entry.id, `requirements[${index}].id`);
238
+ if (!requirementIds.has(id))
239
+ throw new Error(`Unknown verification requirement: ${id}`);
240
+ if (entry.status !== "passed" && entry.status !== "failed") {
241
+ throw new Error(`${id}.status must be passed or failed`);
242
+ }
243
+ return {
244
+ id,
245
+ status: entry.status,
246
+ evidence: strings(entry.evidence, `${id}.evidence`, true),
247
+ };
248
+ });
249
+ const ids = requirements.map(({ id }) => id);
250
+ if (ids.length !== requirementIds.size ||
251
+ new Set(ids).size !== ids.length ||
252
+ [...requirementIds].some((id) => !ids.includes(id))) {
253
+ throw new Error(`${label} must cover its assigned requirements exactly once`);
254
+ }
255
+ const blockers = strings(value.blockers, "blockers");
256
+ if (passed && (blockers.length || requirements.some(({ status }) => status === "failed"))) {
257
+ throw new Error("Passing verification cannot contain failures or blockers");
258
+ }
259
+ if (!passed && !blockers.length)
260
+ throw new Error("Failed verification must contain blockers");
261
+ return {
262
+ schemaVersion: 1,
263
+ passed,
264
+ summary: string(value.summary, "summary"),
265
+ requirements,
266
+ checks: evidence(value.checks, "checks"),
267
+ blockers,
268
+ };
269
+ }
270
+ export function validateVerification(raw, requirementIds) {
271
+ return validateVerificationCoverage(raw, requirementIds, "Verification");
272
+ }
273
+ export function validateTargetedVerification(raw, targetIds) {
274
+ if (!targetIds.size)
275
+ throw new Error("Targeted verification requires at least one requirement id");
276
+ return validateVerificationCoverage(raw, targetIds, "Targeted verification");
277
+ }
278
+ const mutationStacks = new Set(["javascript", "rust", "python", "go", "java", "unknown"]);
279
+ export function validateMutation(raw) {
280
+ const value = object(raw);
281
+ version(value);
282
+ const tool = string(value.tool, "tool");
283
+ const stack = string(value.stack, "stack");
284
+ if (!mutationStacks.has(stack))
285
+ throw new Error(`Unknown mutation stack: ${stack}`);
286
+ const survivors = array(value.survivors, "survivors").map((item, index) => {
287
+ const entry = object(item, `survivors[${index}]`);
288
+ const file = assertRelativePath(string(entry.file, `survivors[${index}].file`));
289
+ const description = string(entry.description, `survivors[${index}].description`);
290
+ const equivalent = boolean(entry.equivalent, `survivors[${index}].equivalent`);
291
+ let justification = "";
292
+ if (entry.justification !== undefined) {
293
+ if (typeof entry.justification !== "string") {
294
+ throw new Error(`survivors[${index}].justification must be a string`);
295
+ }
296
+ justification = entry.justification.trim();
297
+ }
298
+ if (equivalent && !justification) {
299
+ throw new Error(`survivors[${index}] is equivalent and requires a justification`);
300
+ }
301
+ let line;
302
+ if (entry.line !== undefined) {
303
+ if (typeof entry.line !== "number" || !Number.isInteger(entry.line) || entry.line <= 0) {
304
+ throw new Error(`survivors[${index}].line must be a positive integer`);
305
+ }
306
+ line = entry.line;
307
+ }
308
+ return {
309
+ file,
310
+ description,
311
+ equivalent,
312
+ justification,
313
+ ...(line !== undefined ? { line } : {}),
314
+ };
315
+ });
316
+ let mutationScore;
317
+ if (value.mutationScore !== undefined) {
318
+ if (typeof value.mutationScore !== "number")
319
+ throw new Error("mutationScore must be a number");
320
+ mutationScore = value.mutationScore;
321
+ }
322
+ return {
323
+ schemaVersion: 1,
324
+ tool,
325
+ stack,
326
+ survivors,
327
+ summary: string(value.summary, "summary"),
328
+ ...(mutationScore !== undefined ? { mutationScore } : {}),
329
+ };
330
+ }
331
+ export function validateArchive(raw, expected) {
332
+ const value = object(raw);
333
+ version(value);
334
+ const ready = boolean(value.ready, "ready");
335
+ const artifacts = strings(value.artifacts, "artifacts", true).map(assertRelativePath);
336
+ const completedUnits = strings(value.completedUnits, "completedUnits", true);
337
+ const requirements = strings(value.requirements, "requirements", true);
338
+ const blockers = strings(value.blockers, "blockers");
339
+ const exact = (actual, wanted) => actual.length === wanted.size && actual.every((item) => wanted.has(item));
340
+ if (!exact(artifacts, expected.artifacts) ||
341
+ !exact(completedUnits, expected.units) ||
342
+ !exact(requirements, expected.requirements)) {
343
+ throw new Error("Archive readiness must cover all required artifacts, units, and requirements");
344
+ }
345
+ if (!ready || blockers.length)
346
+ throw new Error("Archive is not ready");
347
+ return {
348
+ schemaVersion: 1,
349
+ ready,
350
+ artifacts,
351
+ completedUnits,
352
+ requirements,
353
+ blockers,
354
+ summary: string(value.summary, "summary"),
355
+ };
356
+ }
357
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const VERSION = "0.1.0";
2
+ //# sourceMappingURL=version.d.ts.map