@cleocode/contracts 2026.7.2 → 2026.8.2
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/__tests__/evidence-atom-schema.test.js +139 -1
- package/dist/__tests__/evidence-atom-schema.test.js.map +1 -1
- package/dist/caamp-markers.d.ts +99 -0
- package/dist/caamp-markers.d.ts.map +1 -0
- package/dist/caamp-markers.js +121 -0
- package/dist/caamp-markers.js.map +1 -0
- package/dist/changesets.d.ts +2 -2
- package/dist/evidence-atom-schema.d.ts +16 -0
- package/dist/evidence-atom-schema.d.ts.map +1 -1
- package/dist/evidence-atom-schema.js +50 -3
- package/dist/evidence-atom-schema.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/project-context.d.ts +29 -0
- package/dist/project-context.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/evidence-atom-schema.test.ts +167 -0
- package/src/caamp-markers.ts +149 -0
- package/src/evidence-atom-schema.ts +54 -3
- package/src/index.ts +13 -0
- package/src/project-context.ts +30 -0
|
@@ -13,8 +13,27 @@
|
|
|
13
13
|
* @adr ADR-051
|
|
14
14
|
*/
|
|
15
15
|
import { describe, expect, it } from 'vitest';
|
|
16
|
-
import { EvidenceAtomSchema, EvidenceParseError, formatGateRequirement, formatGateRequirementHint, GATE_EVIDENCE_REQUIREMENTS, parseEvidenceString, validateEvidenceForGate, } from '../index.js';
|
|
16
|
+
import { EVIDENCE_ATOM_KINDS, EvidenceAtomSchema, EvidenceParseError, formatGateRequirement, formatGateRequirementHint, GATE_EVIDENCE_REQUIREMENTS, parseEvidenceString, validateEvidenceForGate, } from '../index.js';
|
|
17
17
|
describe('EvidenceAtomSchema (T10337)', () => {
|
|
18
|
+
it('EVIDENCE_ATOM_KINDS covers every discriminated union member (T12030)', () => {
|
|
19
|
+
// Verify the shared constant is in sync with the zod discriminated union.
|
|
20
|
+
// The discriminated union keys are 'commit','files','test-run','tool','url',
|
|
21
|
+
// 'note','decision','pr','loc-drop','callsite-coverage','satisfies'.
|
|
22
|
+
const expected = [
|
|
23
|
+
'commit',
|
|
24
|
+
'files',
|
|
25
|
+
'test-run',
|
|
26
|
+
'tool',
|
|
27
|
+
'url',
|
|
28
|
+
'note',
|
|
29
|
+
'decision',
|
|
30
|
+
'pr',
|
|
31
|
+
'loc-drop',
|
|
32
|
+
'callsite-coverage',
|
|
33
|
+
'satisfies',
|
|
34
|
+
];
|
|
35
|
+
expect([...EVIDENCE_ATOM_KINDS].sort()).toEqual(expected.sort());
|
|
36
|
+
});
|
|
18
37
|
// ─── Per-atom-prefix parse coverage ───────────────────────────────────────
|
|
19
38
|
describe('commit atom', () => {
|
|
20
39
|
it('accepts 7-40 hex SHA', () => {
|
|
@@ -244,6 +263,125 @@ describe('parseEvidenceString (T10337)', () => {
|
|
|
244
263
|
expect(() => parseEvidenceString('callsite-coverage::p.ts')).toThrow(EvidenceParseError);
|
|
245
264
|
expect(() => parseEvidenceString('callsite-coverage:fn:')).toThrow(EvidenceParseError);
|
|
246
265
|
});
|
|
266
|
+
// ─── T12030: semicolons inside note: payloads ────────────────────────────
|
|
267
|
+
it('preserves semicolons inside note payloads (T12030)', () => {
|
|
268
|
+
const atoms = parseEvidenceString('note:hello; world');
|
|
269
|
+
expect(atoms).toEqual([{ kind: 'note', note: 'hello; world' }]);
|
|
270
|
+
});
|
|
271
|
+
it('preserves multiple semicolons inside note payloads (T12030)', () => {
|
|
272
|
+
const atoms = parseEvidenceString('note:AC1 verified via satisfy; AC2 tool:lint; AC3 documented in files');
|
|
273
|
+
expect(atoms).toEqual([
|
|
274
|
+
{
|
|
275
|
+
kind: 'note',
|
|
276
|
+
note: 'AC1 verified via satisfy; AC2 tool:lint; AC3 documented in files',
|
|
277
|
+
},
|
|
278
|
+
]);
|
|
279
|
+
});
|
|
280
|
+
it('splits note at known kind boundary while preserving internal semicolons (T12030)', () => {
|
|
281
|
+
const atoms = parseEvidenceString('note:hello; world; commit:abc1234; tool:lint');
|
|
282
|
+
expect(atoms).toEqual([
|
|
283
|
+
{ kind: 'note', note: 'hello; world' },
|
|
284
|
+
{ kind: 'commit', sha: 'abc1234' },
|
|
285
|
+
{ kind: 'tool', tool: 'lint' },
|
|
286
|
+
]);
|
|
287
|
+
});
|
|
288
|
+
it('splits mixed note/hard-evidence at known boundaries (T12030)', () => {
|
|
289
|
+
const atoms = parseEvidenceString('note:multiple; semicolons; inside note; commit:def5678; files:src/a.ts,src/b.ts');
|
|
290
|
+
expect(atoms).toEqual([
|
|
291
|
+
{ kind: 'note', note: 'multiple; semicolons; inside note' },
|
|
292
|
+
{ kind: 'commit', sha: 'def5678' },
|
|
293
|
+
{ kind: 'files', paths: ['src/a.ts', 'src/b.ts'] },
|
|
294
|
+
]);
|
|
295
|
+
});
|
|
296
|
+
it('preserves semicolons in note when followed by unknown-kind-like text (T12030)', () => {
|
|
297
|
+
// mystery is not a known kind — the text stays inside the note.
|
|
298
|
+
const atoms = parseEvidenceString('note:look at mystery:foo for details');
|
|
299
|
+
expect(atoms).toEqual([{ kind: 'note', note: 'look at mystery:foo for details' }]);
|
|
300
|
+
});
|
|
301
|
+
it('rejects unknown kinds when they appear as standalone atoms (T12030)', () => {
|
|
302
|
+
expect(() => parseEvidenceString('mystery:foo')).toThrow(EvidenceParseError);
|
|
303
|
+
expect(() => parseEvidenceString('unknownkind:bar')).toThrow(EvidenceParseError);
|
|
304
|
+
});
|
|
305
|
+
it('absorbs unknown-kind-like text into preceding note (T12030)', () => {
|
|
306
|
+
// unknownkind is not a recognized boundary — it stays inside the note.
|
|
307
|
+
const atoms = parseEvidenceString('note:hello; unknownkind:bar');
|
|
308
|
+
expect(atoms).toEqual([{ kind: 'note', note: 'hello; unknownkind:bar' }]);
|
|
309
|
+
});
|
|
310
|
+
it('splits note at state:MERGED boundary (T12030)', () => {
|
|
311
|
+
const atoms = parseEvidenceString('note:merged; everything OK; pr:357; state:MERGED');
|
|
312
|
+
expect(atoms).toEqual([
|
|
313
|
+
{ kind: 'note', note: 'merged; everything OK' },
|
|
314
|
+
{ kind: 'pr', prNumber: 357 },
|
|
315
|
+
]);
|
|
316
|
+
});
|
|
317
|
+
it('preserves trailing semicolons inside note payloads as punctuation (T12030)', () => {
|
|
318
|
+
expect(parseEvidenceString('note:trailing;')).toEqual([{ kind: 'note', note: 'trailing;' }]);
|
|
319
|
+
expect(parseEvidenceString('note:trailing; ')).toEqual([{ kind: 'note', note: 'trailing;' }]);
|
|
320
|
+
expect(parseEvidenceString('note:multiple;; semis')).toEqual([
|
|
321
|
+
{ kind: 'note', note: 'multiple;; semis' },
|
|
322
|
+
]);
|
|
323
|
+
});
|
|
324
|
+
// ─── T12030 compatibility: trailing / repeated semicolons on non-note atoms
|
|
325
|
+
it('strips trailing ; from commit atom (T12030)', () => {
|
|
326
|
+
expect(parseEvidenceString('commit:abc1234;')).toEqual([{ kind: 'commit', sha: 'abc1234' }]);
|
|
327
|
+
});
|
|
328
|
+
it('strips trailing ; from files atom (T12030)', () => {
|
|
329
|
+
expect(parseEvidenceString('files:a.ts,b.ts;')).toEqual([
|
|
330
|
+
{ kind: 'files', paths: ['a.ts', 'b.ts'] },
|
|
331
|
+
]);
|
|
332
|
+
});
|
|
333
|
+
it('strips trailing ; from pr atom (T12030)', () => {
|
|
334
|
+
expect(parseEvidenceString('pr:357;')).toEqual([{ kind: 'pr', prNumber: 357 }]);
|
|
335
|
+
});
|
|
336
|
+
it('strips trailing ; from tool atom (T12030)', () => {
|
|
337
|
+
expect(parseEvidenceString('tool:lint;')).toEqual([{ kind: 'tool', tool: 'lint' }]);
|
|
338
|
+
});
|
|
339
|
+
it('strips trailing ; from test-run atom (T12030)', () => {
|
|
340
|
+
expect(parseEvidenceString('test-run:/tmp/v.json;')).toEqual([
|
|
341
|
+
{ kind: 'test-run', path: '/tmp/v.json' },
|
|
342
|
+
]);
|
|
343
|
+
});
|
|
344
|
+
it('strips trailing ; from url atom (T12030)', () => {
|
|
345
|
+
expect(parseEvidenceString('url:https://example.com;')).toEqual([
|
|
346
|
+
{ kind: 'url', url: 'https://example.com' },
|
|
347
|
+
]);
|
|
348
|
+
});
|
|
349
|
+
it('strips trailing ; from decision atom (T12030)', () => {
|
|
350
|
+
expect(parseEvidenceString('decision:D-arch-001;')).toEqual([
|
|
351
|
+
{ kind: 'decision', decisionId: 'D-arch-001' },
|
|
352
|
+
]);
|
|
353
|
+
});
|
|
354
|
+
it('tolerates repeated ;; across non-note atoms (T12030)', () => {
|
|
355
|
+
expect(parseEvidenceString('commit:abc1234;;tool:test')).toEqual([
|
|
356
|
+
{ kind: 'commit', sha: 'abc1234' },
|
|
357
|
+
{ kind: 'tool', tool: 'test' },
|
|
358
|
+
]);
|
|
359
|
+
});
|
|
360
|
+
it('tolerates double ;; between commit and files (T12030)', () => {
|
|
361
|
+
expect(parseEvidenceString('commit:abc1234;;files:a.ts,b.ts')).toEqual([
|
|
362
|
+
{ kind: 'commit', sha: 'abc1234' },
|
|
363
|
+
{ kind: 'files', paths: ['a.ts', 'b.ts'] },
|
|
364
|
+
]);
|
|
365
|
+
});
|
|
366
|
+
it('tolerates trailing ;; after multi-atom string (T12030)', () => {
|
|
367
|
+
expect(parseEvidenceString('commit:abc1234;tool:test;;')).toEqual([
|
|
368
|
+
{ kind: 'commit', sha: 'abc1234' },
|
|
369
|
+
{ kind: 'tool', tool: 'test' },
|
|
370
|
+
]);
|
|
371
|
+
});
|
|
372
|
+
it('preserves mid-payload ; in url atom (T12030)', () => {
|
|
373
|
+
expect(parseEvidenceString('url:https://example.com/path;param=value')).toEqual([
|
|
374
|
+
{ kind: 'url', url: 'https://example.com/path;param=value' },
|
|
375
|
+
]);
|
|
376
|
+
});
|
|
377
|
+
it('preserves internal ; in note while stripping on adjacent non-note atoms (T12030)', () => {
|
|
378
|
+
const atoms = parseEvidenceString('note:hello; world;commit:def5678;;tool:lint;');
|
|
379
|
+
expect(atoms).toEqual([
|
|
380
|
+
{ kind: 'note', note: 'hello; world' },
|
|
381
|
+
{ kind: 'commit', sha: 'def5678' },
|
|
382
|
+
{ kind: 'tool', tool: 'lint' },
|
|
383
|
+
]);
|
|
384
|
+
});
|
|
247
385
|
it('round-trip: every parseEvidenceString output validates under EvidenceAtomSchema', () => {
|
|
248
386
|
const inputs = [
|
|
249
387
|
'commit:abc1234',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evidence-atom-schema.test.js","sourceRoot":"","sources":["../../src/__tests__/evidence-atom-schema.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"evidence-atom-schema.test.js","sourceRoot":"","sources":["../../src/__tests__/evidence-atom-schema.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CAAMP instruction-block marker grammar — the single source of truth.
|
|
3
|
+
*
|
|
4
|
+
* CAAMP delimits the region it owns inside an agent instruction file
|
|
5
|
+
* (`AGENTS.md`, `CLAUDE.md`, `GEMINI.md`, …) with a pair of HTML comments:
|
|
6
|
+
*
|
|
7
|
+
* ```markdown
|
|
8
|
+
* <!-- CAAMP:START -->
|
|
9
|
+
* @~/.cleo/templates/CLEO-INJECTION.md
|
|
10
|
+
* <!-- CAAMP:END -->
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* Before T12051 this grammar was re-declared as inline string and regex
|
|
14
|
+
* literals in at least five places — `caamp/core/instructions/injector.ts`,
|
|
15
|
+
* `caamp/core/harness/pi.ts`, `core/injection.ts`, `core/bootstrap.ts` and
|
|
16
|
+
* `core/validation/doctor/checks.ts`. Each copy recognised a slightly
|
|
17
|
+
* different dialect, so a file that one module considered healthy another
|
|
18
|
+
* considered corrupt.
|
|
19
|
+
*
|
|
20
|
+
* The grammar lives here, in the leaf package, because `@cleocode/core` and
|
|
21
|
+
* `@cleocode/caamp` depend on each other and therefore cannot import the
|
|
22
|
+
* grammar from one another without a cycle.
|
|
23
|
+
*
|
|
24
|
+
* This module is **const data only** — no runtime helpers — so it satisfies
|
|
25
|
+
* the contracts-purity gate (`scripts/lint-no-runtime-in-contracts.mjs`).
|
|
26
|
+
* The engine that consumes these patterns lives in
|
|
27
|
+
* `packages/caamp/src/core/instructions/markers.ts`.
|
|
28
|
+
*
|
|
29
|
+
* @task T12051
|
|
30
|
+
* @see {@link https://github.com/kryptobaseddev/cleo} ADR-064 (CAAMP↔Adapters boundary)
|
|
31
|
+
*/
|
|
32
|
+
/** Canonical opening marker of a CAAMP-managed block. */
|
|
33
|
+
export declare const CAAMP_MARKER_START = "<!-- CAAMP:START -->";
|
|
34
|
+
/** Canonical closing marker of a CAAMP-managed block. */
|
|
35
|
+
export declare const CAAMP_MARKER_END = "<!-- CAAMP:END -->";
|
|
36
|
+
/**
|
|
37
|
+
* Source of the strict, canonical block pattern.
|
|
38
|
+
*
|
|
39
|
+
* Capture group 1 is the block's inner content. Build a fresh `RegExp` from
|
|
40
|
+
* this string at every use site — a module-level `RegExp` carrying the `g`
|
|
41
|
+
* flag keeps a mutable `lastIndex`, which silently skips matches when the
|
|
42
|
+
* same object is reused across `.test()` / `.exec()` calls.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* const pattern = new RegExp(CAAMP_BLOCK_PATTERN_SOURCE, 'g');
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export declare const CAAMP_BLOCK_PATTERN_SOURCE = "<!-- CAAMP:START -->([\\s\\S]*?)<!-- CAAMP:END -->";
|
|
50
|
+
/**
|
|
51
|
+
* Source of the damage-tolerant pattern matching an opening marker line.
|
|
52
|
+
*
|
|
53
|
+
* Use with the `gmi` flags. Matches all of:
|
|
54
|
+
*
|
|
55
|
+
* | Form | Damage |
|
|
56
|
+
* | ------------------------ | -------------------------- |
|
|
57
|
+
* | `<!-- CAAMP:START -->` | none (canonical) |
|
|
58
|
+
* | `!-- CAAMP:START -->` | leading `<` lost |
|
|
59
|
+
* | `<!-- CAAMP:START --` | trailing `>` lost |
|
|
60
|
+
* | `<!--CAAMP:START-->` | spaces collapsed |
|
|
61
|
+
* | `<!-- caamp:start -->` | case folded |
|
|
62
|
+
*
|
|
63
|
+
* A bare `CAAMP:START` with no comment punctuation at all is deliberately NOT
|
|
64
|
+
* matched — see {@link damagedMarkerSource}.
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```typescript
|
|
68
|
+
* const damaged = new RegExp(CAAMP_DAMAGED_START_PATTERN_SOURCE, 'gmi');
|
|
69
|
+
* const healed = content.replace(damaged, CAAMP_MARKER_START);
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
export declare const CAAMP_DAMAGED_START_PATTERN_SOURCE: string;
|
|
73
|
+
/**
|
|
74
|
+
* Source of the damage-tolerant pattern matching a closing marker line.
|
|
75
|
+
*
|
|
76
|
+
* Mirrors {@link CAAMP_DAMAGED_START_PATTERN_SOURCE} for `CAAMP:END`. Use
|
|
77
|
+
* with the `gmi` flags.
|
|
78
|
+
*/
|
|
79
|
+
export declare const CAAMP_DAMAGED_END_PATTERN_SOURCE: string;
|
|
80
|
+
/**
|
|
81
|
+
* The outcome of writing a CAAMP block into an instruction file.
|
|
82
|
+
*
|
|
83
|
+
* Previously re-declared as an inline union in eight separate locations.
|
|
84
|
+
*
|
|
85
|
+
* - `created` — the file did not exist and was written from scratch.
|
|
86
|
+
* - `added` — the file existed with no CAAMP block; one was prepended.
|
|
87
|
+
* - `repaired` — at least one damaged marker was healed back to canonical form.
|
|
88
|
+
* - `consolidated` — several blocks were merged down to exactly one.
|
|
89
|
+
* - `updated` — a single block existed and its content changed.
|
|
90
|
+
* - `intact` — the file already had exactly the desired content; no write.
|
|
91
|
+
*/
|
|
92
|
+
export type CaampInjectionAction = 'created' | 'added' | 'repaired' | 'consolidated' | 'updated' | 'intact';
|
|
93
|
+
/**
|
|
94
|
+
* Every {@link CaampInjectionAction} value, ordered from most to least
|
|
95
|
+
* invasive. Useful for reporting the single most significant action taken
|
|
96
|
+
* across a batch of files.
|
|
97
|
+
*/
|
|
98
|
+
export declare const CAAMP_INJECTION_ACTIONS: readonly ["created", "added", "repaired", "consolidated", "updated", "intact"];
|
|
99
|
+
//# sourceMappingURL=caamp-markers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"caamp-markers.d.ts","sourceRoot":"","sources":["../src/caamp-markers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,yDAAyD;AACzD,eAAO,MAAM,kBAAkB,yBAAyB,CAAC;AAEzD,yDAAyD;AACzD,eAAO,MAAM,gBAAgB,uBAAuB,CAAC;AAErD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,0BAA0B,uDAAuD,CAAC;AAiC/F;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,kCAAkC,QAA+B,CAAC;AAE/E;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,QAA6B,CAAC;AAE3E;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,oBAAoB,GAC5B,SAAS,GACT,OAAO,GACP,UAAU,GACV,cAAc,GACd,SAAS,GACT,QAAQ,CAAC;AAEb;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,gFAO1B,CAAC"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CAAMP instruction-block marker grammar — the single source of truth.
|
|
3
|
+
*
|
|
4
|
+
* CAAMP delimits the region it owns inside an agent instruction file
|
|
5
|
+
* (`AGENTS.md`, `CLAUDE.md`, `GEMINI.md`, …) with a pair of HTML comments:
|
|
6
|
+
*
|
|
7
|
+
* ```markdown
|
|
8
|
+
* <!-- CAAMP:START -->
|
|
9
|
+
* @~/.cleo/templates/CLEO-INJECTION.md
|
|
10
|
+
* <!-- CAAMP:END -->
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* Before T12051 this grammar was re-declared as inline string and regex
|
|
14
|
+
* literals in at least five places — `caamp/core/instructions/injector.ts`,
|
|
15
|
+
* `caamp/core/harness/pi.ts`, `core/injection.ts`, `core/bootstrap.ts` and
|
|
16
|
+
* `core/validation/doctor/checks.ts`. Each copy recognised a slightly
|
|
17
|
+
* different dialect, so a file that one module considered healthy another
|
|
18
|
+
* considered corrupt.
|
|
19
|
+
*
|
|
20
|
+
* The grammar lives here, in the leaf package, because `@cleocode/core` and
|
|
21
|
+
* `@cleocode/caamp` depend on each other and therefore cannot import the
|
|
22
|
+
* grammar from one another without a cycle.
|
|
23
|
+
*
|
|
24
|
+
* This module is **const data only** — no runtime helpers — so it satisfies
|
|
25
|
+
* the contracts-purity gate (`scripts/lint-no-runtime-in-contracts.mjs`).
|
|
26
|
+
* The engine that consumes these patterns lives in
|
|
27
|
+
* `packages/caamp/src/core/instructions/markers.ts`.
|
|
28
|
+
*
|
|
29
|
+
* @task T12051
|
|
30
|
+
* @see {@link https://github.com/kryptobaseddev/cleo} ADR-064 (CAAMP↔Adapters boundary)
|
|
31
|
+
*/
|
|
32
|
+
/** Canonical opening marker of a CAAMP-managed block. */
|
|
33
|
+
export const CAAMP_MARKER_START = '<!-- CAAMP:START -->';
|
|
34
|
+
/** Canonical closing marker of a CAAMP-managed block. */
|
|
35
|
+
export const CAAMP_MARKER_END = '<!-- CAAMP:END -->';
|
|
36
|
+
/**
|
|
37
|
+
* Source of the strict, canonical block pattern.
|
|
38
|
+
*
|
|
39
|
+
* Capture group 1 is the block's inner content. Build a fresh `RegExp` from
|
|
40
|
+
* this string at every use site — a module-level `RegExp` carrying the `g`
|
|
41
|
+
* flag keeps a mutable `lastIndex`, which silently skips matches when the
|
|
42
|
+
* same object is reused across `.test()` / `.exec()` calls.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* const pattern = new RegExp(CAAMP_BLOCK_PATTERN_SOURCE, 'g');
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export const CAAMP_BLOCK_PATTERN_SOURCE = '<!-- CAAMP:START -->([\\s\\S]*?)<!-- CAAMP:END -->';
|
|
50
|
+
/**
|
|
51
|
+
* Horizontal-whitespace class used by the damage-tolerant marker patterns.
|
|
52
|
+
*
|
|
53
|
+
* Deliberately excludes `\n` so the patterns stay anchored to a single line
|
|
54
|
+
* and cannot swallow surrounding content.
|
|
55
|
+
*/
|
|
56
|
+
const H = '[ \\t\\r]';
|
|
57
|
+
/**
|
|
58
|
+
* Build the source of a damage-tolerant, whole-line marker pattern.
|
|
59
|
+
*
|
|
60
|
+
* Recognises the canonical marker plus the near-miss forms produced when a
|
|
61
|
+
* delimiter character is lost or mangled — a truncated write, an editor that
|
|
62
|
+
* reflows HTML comments, a shell heredoc, a careless hand edit.
|
|
63
|
+
*
|
|
64
|
+
* Two constraints keep this from over-matching, both learned from an
|
|
65
|
+
* adversarial review that demonstrated content loss with a looser pattern:
|
|
66
|
+
*
|
|
67
|
+
* 1. The `CAAMP:<KEYWORD>` token must be the *entire* line, modulo comment
|
|
68
|
+
* punctuation and horizontal whitespace. Prose such as "the CAAMP:START
|
|
69
|
+
* marker is written by …" is therefore never matched.
|
|
70
|
+
* 2. Comment punctuation must be present on **both** sides — at least one of
|
|
71
|
+
* `< ! -` before the token and at least one of `- >` after it. A bare
|
|
72
|
+
* `CAAMP:START` line is deliberately NOT treated as a damaged marker: it is
|
|
73
|
+
* not a plausible outcome of losing one delimiter character, and accepting
|
|
74
|
+
* it caused a documentation fence that merely *mentioned* CAAMP to be
|
|
75
|
+
* rewritten into a real marker, silently swallowing the fenced body.
|
|
76
|
+
*/
|
|
77
|
+
const damagedMarkerSource = (keyword) => `^${H}*[<!-]{1,4}${H}*CAAMP${H}*:${H}*${keyword}${H}*[->]{1,3}${H}*$`;
|
|
78
|
+
/**
|
|
79
|
+
* Source of the damage-tolerant pattern matching an opening marker line.
|
|
80
|
+
*
|
|
81
|
+
* Use with the `gmi` flags. Matches all of:
|
|
82
|
+
*
|
|
83
|
+
* | Form | Damage |
|
|
84
|
+
* | ------------------------ | -------------------------- |
|
|
85
|
+
* | `<!-- CAAMP:START -->` | none (canonical) |
|
|
86
|
+
* | `!-- CAAMP:START -->` | leading `<` lost |
|
|
87
|
+
* | `<!-- CAAMP:START --` | trailing `>` lost |
|
|
88
|
+
* | `<!--CAAMP:START-->` | spaces collapsed |
|
|
89
|
+
* | `<!-- caamp:start -->` | case folded |
|
|
90
|
+
*
|
|
91
|
+
* A bare `CAAMP:START` with no comment punctuation at all is deliberately NOT
|
|
92
|
+
* matched — see {@link damagedMarkerSource}.
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* ```typescript
|
|
96
|
+
* const damaged = new RegExp(CAAMP_DAMAGED_START_PATTERN_SOURCE, 'gmi');
|
|
97
|
+
* const healed = content.replace(damaged, CAAMP_MARKER_START);
|
|
98
|
+
* ```
|
|
99
|
+
*/
|
|
100
|
+
export const CAAMP_DAMAGED_START_PATTERN_SOURCE = damagedMarkerSource('START');
|
|
101
|
+
/**
|
|
102
|
+
* Source of the damage-tolerant pattern matching a closing marker line.
|
|
103
|
+
*
|
|
104
|
+
* Mirrors {@link CAAMP_DAMAGED_START_PATTERN_SOURCE} for `CAAMP:END`. Use
|
|
105
|
+
* with the `gmi` flags.
|
|
106
|
+
*/
|
|
107
|
+
export const CAAMP_DAMAGED_END_PATTERN_SOURCE = damagedMarkerSource('END');
|
|
108
|
+
/**
|
|
109
|
+
* Every {@link CaampInjectionAction} value, ordered from most to least
|
|
110
|
+
* invasive. Useful for reporting the single most significant action taken
|
|
111
|
+
* across a batch of files.
|
|
112
|
+
*/
|
|
113
|
+
export const CAAMP_INJECTION_ACTIONS = [
|
|
114
|
+
'created',
|
|
115
|
+
'added',
|
|
116
|
+
'repaired',
|
|
117
|
+
'consolidated',
|
|
118
|
+
'updated',
|
|
119
|
+
'intact',
|
|
120
|
+
];
|
|
121
|
+
//# sourceMappingURL=caamp-markers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"caamp-markers.js","sourceRoot":"","sources":["../src/caamp-markers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,yDAAyD;AACzD,MAAM,CAAC,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAEzD,yDAAyD;AACzD,MAAM,CAAC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAErD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,oDAAoD,CAAC;AAE/F;;;;;GAKG;AACH,MAAM,CAAC,GAAG,WAAW,CAAC;AAEtB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,mBAAmB,GAAG,CAAC,OAAwB,EAAU,EAAE,CAC/D,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,OAAO,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC;AAExE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAE/E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAsB3E;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,SAAS;IACT,OAAO;IACP,UAAU;IACV,cAAc;IACd,SAAS;IACT,QAAQ;CACA,CAAC"}
|
package/dist/changesets.d.ts
CHANGED
|
@@ -82,8 +82,8 @@ export declare const ChangesetReleaseNotesMetadataSchema: z.ZodObject<{
|
|
|
82
82
|
deprecated: "deprecated";
|
|
83
83
|
security: "security";
|
|
84
84
|
fixed: "fixed";
|
|
85
|
-
breaking: "breaking";
|
|
86
85
|
added: "added";
|
|
86
|
+
breaking: "breaking";
|
|
87
87
|
changed: "changed";
|
|
88
88
|
}>>;
|
|
89
89
|
audience: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
@@ -149,8 +149,8 @@ export declare const ChangesetEntrySchema: z.ZodObject<{
|
|
|
149
149
|
deprecated: "deprecated";
|
|
150
150
|
security: "security";
|
|
151
151
|
fixed: "fixed";
|
|
152
|
-
breaking: "breaking";
|
|
153
152
|
added: "added";
|
|
153
|
+
breaking: "breaking";
|
|
154
154
|
changed: "changed";
|
|
155
155
|
}>>;
|
|
156
156
|
audience: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
@@ -30,6 +30,22 @@
|
|
|
30
30
|
*/
|
|
31
31
|
import { z } from 'zod';
|
|
32
32
|
import type { VerificationGate } from './task.js';
|
|
33
|
+
/**
|
|
34
|
+
* Every evidence atom kind recognized by the parser.
|
|
35
|
+
*
|
|
36
|
+
* Defines the exhaustive set of `kind:` prefixes accepted by
|
|
37
|
+
* {@link parseEvidenceString}. Derived from {@link EvidenceAtomSchema}'s
|
|
38
|
+
* discriminated union. Shared so boundary-splitting regexes, documentation,
|
|
39
|
+
* and error messages always agree without duplicating the literal list.
|
|
40
|
+
*
|
|
41
|
+
* Note: `state` is a recognized parser prefix (modifier for `pr:`) but is
|
|
42
|
+
* NOT a standalone {@link EvidenceAtom} kind — it is consumed in-place by the
|
|
43
|
+
* parser and never emitted as an atom. The boundary regex MUST include it so
|
|
44
|
+
* `pr:357;state:MERGED` splits correctly.
|
|
45
|
+
*
|
|
46
|
+
* @task T12030
|
|
47
|
+
*/
|
|
48
|
+
export declare const EVIDENCE_ATOM_KINDS: readonly ["commit", "files", "test-run", "tool", "url", "note", "decision", "pr", "loc-drop", "callsite-coverage", "satisfies"];
|
|
33
49
|
/**
|
|
34
50
|
* `commit:<sha>` atom — references a git commit by full or short SHA.
|
|
35
51
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evidence-atom-schema.d.ts","sourceRoot":"","sources":["../src/evidence-atom-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"evidence-atom-schema.d.ts","sourceRoot":"","sources":["../src/evidence-atom-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,6 +30,48 @@
|
|
|
30
30
|
*/
|
|
31
31
|
import { z } from 'zod';
|
|
32
32
|
// ---------------------------------------------------------------------------
|
|
33
|
+
// Known atom kinds — shared typed constant for boundary detection + error
|
|
34
|
+
// messages. Prefer this list over duplicated regex strings.
|
|
35
|
+
// ---------------------------------------------------------------------------
|
|
36
|
+
/**
|
|
37
|
+
* Every evidence atom kind recognized by the parser.
|
|
38
|
+
*
|
|
39
|
+
* Defines the exhaustive set of `kind:` prefixes accepted by
|
|
40
|
+
* {@link parseEvidenceString}. Derived from {@link EvidenceAtomSchema}'s
|
|
41
|
+
* discriminated union. Shared so boundary-splitting regexes, documentation,
|
|
42
|
+
* and error messages always agree without duplicating the literal list.
|
|
43
|
+
*
|
|
44
|
+
* Note: `state` is a recognized parser prefix (modifier for `pr:`) but is
|
|
45
|
+
* NOT a standalone {@link EvidenceAtom} kind — it is consumed in-place by the
|
|
46
|
+
* parser and never emitted as an atom. The boundary regex MUST include it so
|
|
47
|
+
* `pr:357;state:MERGED` splits correctly.
|
|
48
|
+
*
|
|
49
|
+
* @task T12030
|
|
50
|
+
*/
|
|
51
|
+
export const EVIDENCE_ATOM_KINDS = [
|
|
52
|
+
'commit',
|
|
53
|
+
'files',
|
|
54
|
+
'test-run',
|
|
55
|
+
'tool',
|
|
56
|
+
'url',
|
|
57
|
+
'note',
|
|
58
|
+
'decision',
|
|
59
|
+
'pr',
|
|
60
|
+
'loc-drop',
|
|
61
|
+
'callsite-coverage',
|
|
62
|
+
'satisfies',
|
|
63
|
+
];
|
|
64
|
+
/** Parser-level prefixes — {@link EVIDENCE_ATOM_KINDS} + `state` modifier. */
|
|
65
|
+
const PARSER_PREFIXES = [...EVIDENCE_ATOM_KINDS, 'state'];
|
|
66
|
+
/**
|
|
67
|
+
* Regex matching a `;` ONLY when the next non-whitespace token is a known
|
|
68
|
+
* atom kind prefix followed by `:`. Used instead of a naive `split(';')` so
|
|
69
|
+
* semicolons inside `note:` payloads are preserved.
|
|
70
|
+
*
|
|
71
|
+
* @task T12030
|
|
72
|
+
*/
|
|
73
|
+
const KIND_BOUNDARY_REGEX = new RegExp(`;(?=\\s*(?:${PARSER_PREFIXES.join('|')})\\s*:)`, 'g');
|
|
74
|
+
// ---------------------------------------------------------------------------
|
|
33
75
|
// Per-atom Zod schemas
|
|
34
76
|
// ---------------------------------------------------------------------------
|
|
35
77
|
/**
|
|
@@ -593,8 +635,9 @@ export function parseEvidenceString(raw) {
|
|
|
593
635
|
throw new EvidenceParseError('Evidence string is empty', "Pass evidence like '--evidence commit:<sha>;files:<path>;...'");
|
|
594
636
|
}
|
|
595
637
|
const chunks = raw
|
|
596
|
-
.split(
|
|
638
|
+
.split(KIND_BOUNDARY_REGEX)
|
|
597
639
|
.map((s) => s.trim())
|
|
640
|
+
.map((s) => s.replace(/^;+/, '')) // strip leading separator artifacts (;;commit: → commit:)
|
|
598
641
|
.filter(Boolean);
|
|
599
642
|
if (chunks.length === 0) {
|
|
600
643
|
throw new EvidenceParseError('Evidence string contained no atoms', "Pass evidence like '--evidence commit:<sha>;files:<path>;...'");
|
|
@@ -606,7 +649,11 @@ export function parseEvidenceString(raw) {
|
|
|
606
649
|
throw new EvidenceParseError(`Malformed evidence atom: "${chunk}" (expected <kind>:<payload>)`, 'Each atom must be of form "<kind>:<payload>" separated by ";".');
|
|
607
650
|
}
|
|
608
651
|
const kind = chunk.slice(0, colon).trim();
|
|
609
|
-
const
|
|
652
|
+
const rawPayload = chunk.slice(colon + 1).trim();
|
|
653
|
+
// Strip trailing separator semicolons from non-note atoms (the old naive
|
|
654
|
+
// split consumed them as empty chunks). Note payloads preserve every
|
|
655
|
+
// character, including trailing ';', so they act as real punctuation.
|
|
656
|
+
const payload = kind === 'note' ? rawPayload : rawPayload.replace(/;+$/, '');
|
|
610
657
|
switch (kind) {
|
|
611
658
|
case 'commit':
|
|
612
659
|
atoms.push({ kind: 'commit', sha: payload });
|
|
@@ -754,7 +801,7 @@ export function parseEvidenceString(raw) {
|
|
|
754
801
|
break;
|
|
755
802
|
}
|
|
756
803
|
default:
|
|
757
|
-
throw new EvidenceParseError(`Unknown evidence kind: "${kind}" in atom "${chunk}"`,
|
|
804
|
+
throw new EvidenceParseError(`Unknown evidence kind: "${kind}" in atom "${chunk}"`, `Valid kinds: ${PARSER_PREFIXES.join(', ')}`);
|
|
758
805
|
}
|
|
759
806
|
}
|
|
760
807
|
return atoms;
|