@intentset/core 0.6.1 → 0.7.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/dist/validate.js CHANGED
@@ -397,6 +397,16 @@ function checkLifecycle(context) {
397
397
  });
398
398
  }
399
399
  });
400
+ meta.verification?.exercises?.forEach((target, i) => {
401
+ if (graph.artifacts.get(target)?.meta.type !== "slice" && !resourceIds.has(target)) {
402
+ reportOn(context, artifact, {
403
+ code: "CORE003",
404
+ field: `/intentset/verification/exercises/${i}`,
405
+ message: `exercises names ${target}, which is neither a slice in the graph nor a resource in the registries.`,
406
+ remediation: "Name the slice or registry resource the check drives, so a change to its files makes the evidence stale (Core §8), or remove the entry.",
407
+ });
408
+ }
409
+ });
400
410
  if (meta.status === "retired" && (meta.links.replacedBy ?? []).length === 0) {
401
411
  reportOn(context, artifact, {
402
412
  code: "CORE005",
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intentset/core",
3
- "version": "0.6.1",
3
+ "version": "0.7.0",
4
4
  "description": "Intentset core: the frontmatter carrier, typed graph, validator, impact traversal and export. No dependencies.",
5
5
  "license": "MIT",
6
6
  "type": "module",
package/src/artifact.ts CHANGED
@@ -38,6 +38,7 @@ import {
38
38
  type MeasureMeta,
39
39
  PARENT_TARGETS,
40
40
  REQUIRED_SECTIONS,
41
+ PREVIOUS_SPEC_VERSION,
41
42
  SPEC_VERSION,
42
43
  STATUSES,
43
44
  TIP_MAX_LENGTH,
@@ -248,7 +249,9 @@ function readMeta(s: Record<string, unknown>, problem: Problem): ArtifactMeta |
248
249
  problem(
249
250
  `${base}/spec`,
250
251
  `\`spec\` must be the string "${SPEC_VERSION}".${hint}`,
251
- `Write \`spec: '${SPEC_VERSION}'\`.`,
252
+ s.spec === PREVIOUS_SPEC_VERSION
253
+ ? `Write \`spec: '${SPEC_VERSION}'\` and \`profile: intentset/<type>/${SPEC_VERSION}\`, or run \`intentset migrate --to ${SPEC_VERSION}\` to rewrite every record.`
254
+ : `Write \`spec: '${SPEC_VERSION}'\`.`,
252
255
  );
253
256
  usable = false;
254
257
  }
@@ -825,11 +828,11 @@ function readVerification(value: unknown, field: string, problem: Problem): Veri
825
828
  }
826
829
  let ok = true;
827
830
  for (const key of Object.keys(value).sort(compareStrings)) {
828
- if (!["method", "locator", "selector"].includes(key)) {
831
+ if (!["method", "locator", "selector", "exercises"].includes(key)) {
829
832
  problem(
830
833
  `${field}/${pointerToken(key)}`,
831
834
  `Unknown verification key \`${key}\`.`,
832
- "The keys are method, locator and selector.",
835
+ "The keys are method, locator, selector and exercises.",
833
836
  );
834
837
  ok = false;
835
838
  }
@@ -854,12 +857,20 @@ function readVerification(value: unknown, field: string, problem: Problem): Veri
854
857
  ok = false;
855
858
  }
856
859
  }
860
+ let exercises: string[] | undefined;
861
+ if (Object.hasOwn(value, "exercises") && value.exercises !== null) {
862
+ const list = stringList(value.exercises, `${field}/exercises`, "exercises", problem, { pattern: ID_PATTERN });
863
+ if (list === null) ok = false;
864
+ else exercises = list;
865
+ }
857
866
  if (!ok) return null;
858
- return {
867
+ const meta: VerificationMeta = {
859
868
  method: value.method as VerificationMeta["method"],
860
869
  locator: value.locator as string,
861
870
  selector: value.selector as string,
862
871
  };
872
+ if (exercises !== undefined) meta.exercises = exercises;
873
+ return meta;
863
874
  }
864
875
 
865
876
  const MEASURE_KEYS = ["metric", "baseline", "target", "window", "source", "direction"] as const;
package/src/config.ts CHANGED
@@ -8,17 +8,24 @@
8
8
  import type { Diagnostic } from "./diagnostics.ts";
9
9
  import { compareStrings, makeDiagnostic } from "./report.ts";
10
10
  import { patternProblem } from "./validate.ts";
11
- import type { Config } from "./types.ts";
11
+ import { type Config, EVIDENCE_BINDINGS } from "./types.ts";
12
12
  import { parseYamlDetailed } from "./yaml.ts";
13
13
 
14
14
  export const DEFAULT_SCOPE = ["**/*.md"];
15
15
  export const DEFAULT_IGNORE = ["node_modules/**", "dist/**", ".git/**"];
16
- const KNOWN_KEYS = ["repository", "scope", "registries", "ignore"];
16
+ const KNOWN_KEYS = ["repository", "scope", "registries", "ignore", "evidence"];
17
+ const EVIDENCE_KEYS = ["binding", "globalInputs"];
17
18
 
18
19
  /** Core §11: read the repository configuration. Shape problems are CFG001. */
19
20
  export function readConfig(text: string, path: string): { config: Config; diagnostics: Diagnostic[] } {
20
21
  const diagnostics: Diagnostic[] = [];
21
- const config: Config = { repository: "", scope: [...DEFAULT_SCOPE], registries: null, ignore: [...DEFAULT_IGNORE] };
22
+ const config: Config = {
23
+ repository: "",
24
+ scope: [...DEFAULT_SCOPE],
25
+ registries: null,
26
+ ignore: [...DEFAULT_IGNORE],
27
+ evidence: { binding: null, globalInputs: [] },
28
+ };
22
29
  const parsed = parseYamlDetailed(text);
23
30
  if (parsed.error) {
24
31
  diagnostics.push(
@@ -92,5 +99,66 @@ export function readConfig(text: string, path: string): { config: Config; diagno
92
99
  if (typeof root.registries === "string" && root.registries !== "") config.registries = root.registries;
93
100
  else report("/registries", "`registries` must be a path or null.", "Point it at registries.yaml, or remove it.");
94
101
  }
102
+ readEvidence(root.evidence, config, report);
95
103
  return { config, diagnostics };
96
104
  }
105
+
106
+ /** `evidence:` (Core §8): the binding asked for and the global inputs, each optional. */
107
+ function readEvidence(
108
+ value: unknown,
109
+ config: Config,
110
+ report: (field: string, message: string, remediation: string) => void,
111
+ ): void {
112
+ if (value === undefined || value === null) return;
113
+ if (typeof value !== "object" || Array.isArray(value)) {
114
+ report(
115
+ "/evidence",
116
+ "`evidence` must be a mapping.",
117
+ "Write `binding` and `globalInputs` under `evidence:`, or remove it.",
118
+ );
119
+ return;
120
+ }
121
+ const mapping = value as Record<string, unknown>;
122
+ for (const key of Object.keys(mapping).sort(compareStrings)) {
123
+ if (!EVIDENCE_KEYS.includes(key)) {
124
+ report(
125
+ `/evidence/${key}`,
126
+ `Unknown evidence key \`${key}\`.`,
127
+ `Remove it; the keys are ${EVIDENCE_KEYS.join(", ")}.`,
128
+ );
129
+ }
130
+ }
131
+ if (mapping.binding !== undefined && mapping.binding !== null) {
132
+ if ((EVIDENCE_BINDINGS as readonly unknown[]).includes(mapping.binding)) {
133
+ config.evidence.binding = mapping.binding as Config["evidence"]["binding"];
134
+ } else {
135
+ report(
136
+ "/evidence/binding",
137
+ "`evidence.binding` must be subject or commit.",
138
+ "Write `binding: subject` (the default where slices exist) or `binding: commit` (Core §8).",
139
+ );
140
+ }
141
+ }
142
+ const inputs = mapping.globalInputs;
143
+ if (inputs !== undefined && inputs !== null) {
144
+ if (Array.isArray(inputs) && inputs.every((item) => typeof item === "string" && item !== "")) {
145
+ config.evidence.globalInputs = [...new Set(inputs as string[])];
146
+ for (const [index, pattern] of (inputs as string[]).entries()) {
147
+ const why = patternProblem(pattern);
148
+ if (why !== null) {
149
+ report(
150
+ `/evidence/globalInputs/${index}`,
151
+ `globalInputs entry ${JSON.stringify(pattern)} is not a supported path or pattern: ${why}`,
152
+ "Use repository-relative POSIX paths, with * within a segment and ** across segments.",
153
+ );
154
+ }
155
+ }
156
+ } else {
157
+ report(
158
+ "/evidence/globalInputs",
159
+ "`evidence.globalInputs` must be a list of paths or patterns.",
160
+ "Write the files whose change affects every check, such as pnpm-lock.yaml.",
161
+ );
162
+ }
163
+ }
164
+ }
package/src/export.ts CHANGED
@@ -96,7 +96,7 @@ export function exportGraph(result: ValidationResult, registries: Registries, me
96
96
  },
97
97
  registries: exportRegistries(registries, withheld.ids),
98
98
  artifacts: ids.map((id) => exportArtifact(result, id, meta.includeBodies === true, withheld.ids)),
99
- reports: withholdReports(meta.reports ?? {}, withheld.ids),
99
+ reports: withholdReports(meta.reports ?? {}, withheld),
100
100
  };
101
101
  }
102
102
 
@@ -131,6 +131,16 @@ function escapeRegExp(text: string): string {
131
131
  return text.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
132
132
  }
133
133
 
134
+ /**
135
+ * A note names the parts of a subject that moved (a record's ID, a file's path), so a withheld artifact's ID or source
136
+ * path in it is replaced as in a diagnostic's text.
137
+ */
138
+ function redactNote(note: string, withheld: Withheld): string {
139
+ let out = withheld.pattern === null ? note : note.replace(withheld.pattern, "a withheld artifact");
140
+ for (const path of withheld.paths) out = out.split(path).join("a withheld artifact");
141
+ return out;
142
+ }
143
+
134
144
  /** Diagnostics about a withheld artifact are left out; any other that names one has the ID redacted. */
135
145
  function withholdDiagnostics(diagnostics: readonly Diagnostic[], withheld: Withheld): Diagnostic[] {
136
146
  const out: Diagnostic[] = [];
@@ -194,6 +204,8 @@ function exportArtifact(
194
204
  withheldLinks++;
195
205
  }
196
206
 
207
+ const exercises = keep(meta.verification?.exercises ?? []);
208
+
197
209
  const exported: ExportArtifact = {
198
210
  id,
199
211
  type: meta.type,
@@ -219,6 +231,7 @@ function exportArtifact(
219
231
  method: meta.verification.method,
220
232
  locator: meta.verification.locator,
221
233
  selector: meta.verification.selector,
234
+ exercises,
222
235
  },
223
236
  measure:
224
237
  meta.measure === undefined
@@ -244,7 +257,8 @@ function exportArtifact(
244
257
  * an impact hit whose path passes through a withheld artifact goes too, each
245
258
  * counted in the `withheld` beside it.
246
259
  */
247
- function withholdReports(reports: ExportReports, withheld: ReadonlySet<string>): ExportReports {
260
+ function withholdReports(reports: ExportReports, hidden: Withheld): ExportReports {
261
+ const withheld = hidden.ids;
248
262
  const out: ExportReports = {};
249
263
  const split = (list: readonly string[]): [string[], number] => {
250
264
  const kept = list.filter((id) => !withheld.has(id));
@@ -254,7 +268,9 @@ function withholdReports(reports: ExportReports, withheld: ReadonlySet<string>):
254
268
  const evidence = reports.evidence;
255
269
  out.evidence = {
256
270
  ...evidence,
257
- verifications: evidence.verifications.filter((v) => !withheld.has(v.id)),
271
+ verifications: evidence.verifications
272
+ .filter((v) => !withheld.has(v.id))
273
+ .map((v) => (v.note === null ? v : { ...v, note: redactNote(v.note, hidden) })),
258
274
  claims: evidence.claims
259
275
  .filter((claim) => !withheld.has(claim.id))
260
276
  .map((claim) => {
@@ -19,6 +19,8 @@
19
19
  import { compareStrings, isRecord } from "./report.ts";
20
20
  import {
21
21
  CLAIM_KINDS,
22
+ EVIDENCE_BINDING_REASONS,
23
+ EVIDENCE_BINDINGS,
22
24
  EXPORT_EVIDENCE_STATUSES,
23
25
  EXPORT_REPORTS,
24
26
  type ExportEnvelope,
@@ -86,7 +88,7 @@ const CODE = /^[A-Z]+[0-9]{3}$/;
86
88
  /** Markset's own codes, which a diagnostic with origin syntax carries unchanged (§1): a host never renames them. */
87
89
  const MARKSET_CODE = /^[A-Z][A-Z0-9]*(?:_[A-Z0-9]+)+$/;
88
90
  const POINTER = /^(?:\/.*)?$/;
89
- const PROFILE = /^intentset\/[a-z]+\/0\.1$/;
91
+ const PROFILE = /^intentset\/[a-z]+\/0\.2$/;
90
92
  const EXTENSION_KEY = /^[^/]+\/.+$/;
91
93
  const TOKEN = /^\S+$/;
92
94
  const TEXT = /\S/;
@@ -278,7 +280,7 @@ class Shape {
278
280
  "reports",
279
281
  ]);
280
282
  if (v === null) return;
281
- if (v.spec !== "0.1") this.fail("/spec", "Expected 0.1.");
283
+ if (v.spec !== "0.2") this.fail("/spec", "Expected 0.2.");
282
284
  this.string(v.generatedAt, "/generatedAt", GENERATED_AT, "an ISO 8601 time");
283
285
  this.string(v.repository, "/repository");
284
286
  this.array(v.products, "/products", (p, at) => this.id(p, at), { sortedBy: String });
@@ -440,7 +442,7 @@ class Shape {
440
442
  this.string(a.owner, `${at}/owner`);
441
443
  this.oneOf(a.visibility, `${at}/visibility`, VISIBILITIES);
442
444
  this.strings(a.audiences, `${at}/audiences`, { minItems: 1 });
443
- this.string(a.profile, `${at}/profile`, PROFILE, "a profile such as intentset/behavior/0.1");
445
+ this.string(a.profile, `${at}/profile`, PROFILE, "a profile such as intentset/behavior/0.2");
444
446
  this.nullable(a.revision, `${at}/revision`, (r, p) => this.integer(r, p, 1));
445
447
  this.string(a.path, `${at}/path`);
446
448
  this.string(a.sourceHash, `${at}/sourceHash`, SHA256, "a SHA-256 in lowercase hex");
@@ -465,11 +467,12 @@ class Shape {
465
467
  });
466
468
  this.nullable(a.slice, `${at}/slice`, (x, p) => this.slice(x, p));
467
469
  this.nullable(a.verification, `${at}/verification`, (x, p) => {
468
- const v = this.object(x, p, ["method", "locator", "selector"]);
470
+ const v = this.object(x, p, ["method", "locator", "selector", "exercises"]);
469
471
  if (v === null) return;
470
472
  this.oneOf(v.method, `${p}/method`, ["automated", "manual"]);
471
473
  this.string(v.locator, `${p}/locator`);
472
474
  this.string(v.selector, `${p}/selector`);
475
+ this.array(v.exercises, `${p}/exercises`, (id, q) => this.id(id, q), { sortedBy: String });
473
476
  });
474
477
  this.nullable(a.measure, `${at}/measure`, (x, p) => {
475
478
  const m = this.object(x, p, ["metric", "baseline", "target", "window", "source", "direction"]);
@@ -537,22 +540,46 @@ class Shape {
537
540
  }
538
541
 
539
542
  evidence(value: unknown, at: string): void {
540
- const e = this.object(value, at, ["commit", "graphHash", "scope", "records", "verifications", "claims"]);
543
+ const e = this.object(value, at, [
544
+ "commit",
545
+ "graphHash",
546
+ "scope",
547
+ "records",
548
+ "binding",
549
+ "bindingReason",
550
+ "verifications",
551
+ "claims",
552
+ ]);
541
553
  if (e === null) return;
542
554
  this.snapshotCommit(e.commit, `${at}/commit`);
543
555
  this.string(e.graphHash, `${at}/graphHash`, SHA256, "a SHA-256 in lowercase hex");
544
556
  this.nullable(e.scope, `${at}/scope`, (x, p) => this.runScope(x, p));
545
557
  this.integer(e.records, `${at}/records`);
558
+ this.oneOf(e.binding, `${at}/binding`, EVIDENCE_BINDINGS);
559
+ this.oneOf(e.bindingReason, `${at}/bindingReason`, EVIDENCE_BINDING_REASONS);
546
560
  const byId = (x: unknown) => (isRecord(x) && typeof x.id === "string" ? x.id : "");
547
561
  this.array(
548
562
  e.verifications,
549
563
  `${at}/verifications`,
550
564
  (x, p) => {
551
- const v = this.object(x, p, ["id", "method", "status", "note", "latest", "atSnapshot", "runs", "outOfScope"]);
565
+ const v = this.object(x, p, [
566
+ "id",
567
+ "method",
568
+ "status",
569
+ "binding",
570
+ "subject",
571
+ "note",
572
+ "latest",
573
+ "atSnapshot",
574
+ "runs",
575
+ "outOfScope",
576
+ ]);
552
577
  if (v === null) return;
553
578
  this.id(v.id, `${p}/id`);
554
579
  this.oneOf(v.method, `${p}/method`, ["automated", "manual"]);
555
580
  this.oneOf(v.status, `${p}/status`, EXPORT_EVIDENCE_STATUSES);
581
+ this.oneOf(v.binding, `${p}/binding`, EVIDENCE_BINDINGS);
582
+ this.nullable(v.subject, `${p}/subject`, (h, q) => this.string(h, q, SHA256, "a SHA-256 in lowercase hex"));
556
583
  this.nullable(v.note, `${p}/note`, (n, q) => this.string(n, q));
557
584
  this.nullable(v.latest, `${p}/latest`, (r, q) => this.runRecord(r, q));
558
585
  const counts = this.object(v.atSnapshot, `${p}/atSnapshot`, ["pass", "fail", "skip", "error"]);
@@ -616,7 +643,7 @@ class Shape {
616
643
  "result",
617
644
  "uri",
618
645
  ],
619
- ["rationale", "extensions"],
646
+ ["binding", "subjectHash", "rationale", "extensions"],
620
647
  );
621
648
  if (r === null) return;
622
649
  this.string(r.evidenceId, `${at}/evidenceId`, TOKEN);
@@ -636,6 +663,13 @@ class Shape {
636
663
  this.string(r.finishedAt, `${at}/finishedAt`, TIMESTAMP, "a UTC timestamp");
637
664
  this.oneOf(r.result, `${at}/result`, ["pass", "fail", "skip", "error"]);
638
665
  this.string(r.uri, `${at}/uri`, URI, "a URI");
666
+ if (Object.hasOwn(r, "binding")) this.oneOf(r.binding, `${at}/binding`, EVIDENCE_BINDINGS);
667
+ if (Object.hasOwn(r, "subjectHash")) {
668
+ this.string(r.subjectHash, `${at}/subjectHash`, SHA256, "a SHA-256 in lowercase hex");
669
+ }
670
+ if (r.binding === "subject" && !Object.hasOwn(r, "subjectHash")) {
671
+ this.fail(`${at}/subjectHash`, "Expected the subject hash of a subject-binding record.");
672
+ }
639
673
  if (Object.hasOwn(r, "rationale")) this.string(r.rationale, `${at}/rationale`, TEXT);
640
674
  if (Object.hasOwn(r, "extensions")) this.extensions(r.extensions, `${at}/extensions`);
641
675
  if (typeof r.reviewer === "string" && !Object.hasOwn(r, "rationale")) {
@@ -832,6 +866,21 @@ function consistency(envelope: ExportEnvelope): ExportProblem[] {
832
866
  if (evidence !== undefined) {
833
867
  const at = (r: { commit: string; graphHash: string }) =>
834
868
  r.graphHash === envelope.graphHash && (envelope.source.commit === null || r.commit === envelope.source.commit);
869
+ /** Core §8 per binding: a commit record at the snapshot, or a subject record whose hash is the verification's subject. */
870
+ const current = (v: (typeof evidence.verifications)[number]) =>
871
+ v.latest !== null &&
872
+ (v.binding === "subject"
873
+ ? v.latest.binding === "subject" && v.subject !== null && v.latest.subjectHash === v.subject
874
+ : v.latest.binding !== "subject" && at(v.latest));
875
+ if (evidence.bindingReason === "no-slices" && evidence.binding !== "commit") {
876
+ fail(
877
+ "/reports/evidence/bindingReason",
878
+ "The binding fell back for want of slice claims, which is commit binding.",
879
+ );
880
+ }
881
+ if (evidence.bindingReason === "default" && evidence.binding !== "subject") {
882
+ fail("/reports/evidence/bindingReason", "The default binding, where slices claim files, is subject binding.");
883
+ }
835
884
  const statusOf = new Map(evidence.verifications.map((v) => [v.id, v.status]));
836
885
  for (const artifact of envelope.artifacts) {
837
886
  if (artifact.type === "verification" && !statusOf.has(artifact.id)) {
@@ -844,17 +893,37 @@ function consistency(envelope: ExportEnvelope): ExportProblem[] {
844
893
  if (v.latest !== null && v.latest.verificationId !== v.id) {
845
894
  fail(`${p}/latest/verificationId`, `The latest record of ${v.id} is a run of ${v.latest.verificationId}.`);
846
895
  }
896
+ if (v.binding !== evidence.binding) {
897
+ fail(
898
+ `${p}/binding`,
899
+ `${v.id} was judged by ${v.binding} binding, but the report's binding is ${evidence.binding}.`,
900
+ );
901
+ }
902
+ if (v.binding === "commit" && v.subject !== null) {
903
+ fail(`${p}/subject`, `${v.id} was judged by commit binding, which has no subject.`);
904
+ }
905
+ if (v.binding === "subject" && v.subject === null && v.status !== "unresolved") {
906
+ fail(`${p}/subject`, `${v.id} was judged by subject binding but names no subject, and is ${v.status}.`);
907
+ }
847
908
  if (v.status.startsWith("current-") || v.status === "skip" || v.status === "error") {
848
909
  const result = v.status.replace("current-", "");
849
- if (v.latest === null || !at(v.latest) || v.latest.result !== result) {
910
+ if (!current(v) || v.latest?.result !== result) {
850
911
  fail(
851
912
  `${p}/status`,
852
- `${v.id} is ${v.status}, but its latest record is not a ${result} at the export's snapshot.`,
913
+ v.binding === "subject"
914
+ ? `${v.id} is ${v.status}, but its latest record is not a ${result} bound to the subject the report names.`
915
+ : `${v.id} is ${v.status}, but its latest record is not a ${result} at the export's snapshot.`,
853
916
  );
854
917
  }
855
918
  } else if (v.status === "stale") {
856
- if (v.latest === null || at(v.latest))
857
- fail(`${p}/status`, `${v.id} is stale, but has no record from another snapshot.`);
919
+ if (v.latest === null || current(v)) {
920
+ fail(
921
+ `${p}/status`,
922
+ v.binding === "subject"
923
+ ? `${v.id} is stale, but its latest record is bound to the subject the report names.`
924
+ : `${v.id} is stale, but has no record from another snapshot.`,
925
+ );
926
+ }
858
927
  } else if (v.status === "missing" && (v.latest !== null || v.runs !== 0)) {
859
928
  fail(`${p}/status`, `${v.id} is missing, but has run records.`);
860
929
  }