@cleocode/contracts 2026.4.69 → 2026.4.72

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 (71) hide show
  1. package/dist/__tests__/acceptance-gate.test.d.ts +14 -0
  2. package/dist/__tests__/acceptance-gate.test.d.ts.map +1 -0
  3. package/dist/__tests__/acceptance-gate.test.js +642 -0
  4. package/dist/__tests__/acceptance-gate.test.js.map +1 -0
  5. package/dist/__tests__/attachment.test.d.ts +17 -0
  6. package/dist/__tests__/attachment.test.d.ts.map +1 -0
  7. package/dist/__tests__/attachment.test.js +505 -0
  8. package/dist/__tests__/attachment.test.js.map +1 -0
  9. package/dist/__tests__/evidence-record.test.d.ts +14 -0
  10. package/dist/__tests__/evidence-record.test.d.ts.map +1 -0
  11. package/dist/__tests__/evidence-record.test.js +362 -0
  12. package/dist/__tests__/evidence-record.test.js.map +1 -0
  13. package/dist/__tests__/invariants.test.d.ts +19 -0
  14. package/dist/__tests__/invariants.test.d.ts.map +1 -0
  15. package/dist/__tests__/invariants.test.js +351 -0
  16. package/dist/__tests__/invariants.test.js.map +1 -0
  17. package/dist/acceptance-gate-schema.d.ts +701 -0
  18. package/dist/acceptance-gate-schema.d.ts.map +1 -0
  19. package/dist/acceptance-gate-schema.js +303 -0
  20. package/dist/acceptance-gate-schema.js.map +1 -0
  21. package/dist/acceptance-gate.d.ts +350 -0
  22. package/dist/acceptance-gate.d.ts.map +1 -0
  23. package/dist/acceptance-gate.js +22 -0
  24. package/dist/acceptance-gate.js.map +1 -0
  25. package/dist/attachment-schema.d.ts +243 -0
  26. package/dist/attachment-schema.d.ts.map +1 -0
  27. package/dist/attachment-schema.js +200 -0
  28. package/dist/attachment-schema.js.map +1 -0
  29. package/dist/attachment.d.ts +224 -0
  30. package/dist/attachment.d.ts.map +1 -0
  31. package/dist/attachment.js +21 -0
  32. package/dist/attachment.js.map +1 -0
  33. package/dist/evidence-record-schema.d.ts +202 -0
  34. package/dist/evidence-record-schema.d.ts.map +1 -0
  35. package/dist/evidence-record-schema.js +130 -0
  36. package/dist/evidence-record-schema.js.map +1 -0
  37. package/dist/evidence-record.d.ts +167 -0
  38. package/dist/evidence-record.d.ts.map +1 -0
  39. package/dist/evidence-record.js +21 -0
  40. package/dist/evidence-record.js.map +1 -0
  41. package/dist/index.d.ts +12 -1
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +6 -0
  44. package/dist/index.js.map +1 -1
  45. package/dist/task-evidence.d.ts +251 -0
  46. package/dist/task-evidence.d.ts.map +1 -0
  47. package/dist/task-evidence.js +89 -0
  48. package/dist/task-evidence.js.map +1 -0
  49. package/dist/task.d.ts +23 -4
  50. package/dist/task.d.ts.map +1 -1
  51. package/package.json +8 -2
  52. package/schemas/acceptance-gate.schema.json +9 -0
  53. package/schemas/attachment.schema.json +9 -0
  54. package/schemas/gate-result-details.schema.json +9 -0
  55. package/schemas/gate-result.schema.json +9 -0
  56. package/schemas/manifest-v1.json +176 -0
  57. package/schemas/task-evidence.schema.json +9 -0
  58. package/schemas/task.schema.json +9 -0
  59. package/src/__tests__/acceptance-gate.test.ts +736 -0
  60. package/src/__tests__/attachment.test.ts +601 -0
  61. package/src/__tests__/evidence-record.test.ts +412 -0
  62. package/src/__tests__/invariants.test.ts +445 -0
  63. package/src/acceptance-gate-schema.ts +347 -0
  64. package/src/acceptance-gate.ts +370 -0
  65. package/src/attachment-schema.ts +223 -0
  66. package/src/attachment.ts +245 -0
  67. package/src/evidence-record-schema.ts +158 -0
  68. package/src/evidence-record.ts +182 -0
  69. package/src/index.ts +114 -1
  70. package/src/task-evidence.ts +239 -0
  71. package/src/task.ts +24 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acceptance-gate.test.js","sourceRoot":"","sources":["../../src/__tests__/acceptance-gate.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Round-trip Zod parse tests for `Attachment` variants, `AttachmentMetadata`,
3
+ * and `AttachmentRef`.
4
+ *
5
+ * Each test constructs a valid input object for one schema variant, parses it
6
+ * through the corresponding Zod schema, and asserts the parsed output matches
7
+ * the input shape exactly. This guarantees schemas accept all valid shapes
8
+ * without transformation loss.
9
+ *
10
+ * Coverage: 5 variants × 2 cases (minimal + full) = 10 round-trip tests,
11
+ * plus invalid-input rejection tests for each variant, and metadata/ref tests.
12
+ *
13
+ * @epic T760
14
+ * @task T795
15
+ */
16
+ export {};
17
+ //# sourceMappingURL=attachment.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attachment.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/attachment.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG"}
@@ -0,0 +1,505 @@
1
+ /**
2
+ * Round-trip Zod parse tests for `Attachment` variants, `AttachmentMetadata`,
3
+ * and `AttachmentRef`.
4
+ *
5
+ * Each test constructs a valid input object for one schema variant, parses it
6
+ * through the corresponding Zod schema, and asserts the parsed output matches
7
+ * the input shape exactly. This guarantees schemas accept all valid shapes
8
+ * without transformation loss.
9
+ *
10
+ * Coverage: 5 variants × 2 cases (minimal + full) = 10 round-trip tests,
11
+ * plus invalid-input rejection tests for each variant, and metadata/ref tests.
12
+ *
13
+ * @epic T760
14
+ * @task T795
15
+ */
16
+ import { describe, expect, it } from 'vitest';
17
+ import { attachmentMetadataSchema, attachmentRefSchema, attachmentSchema, blobAttachmentSchema, llmsTxtAttachmentSchema, llmtxtDocAttachmentSchema, localFileAttachmentSchema, urlAttachmentSchema, } from '../attachment-schema.js';
18
+ /** Canonical 64-character SHA-256 hex string used across all tests. */
19
+ const SHA256 = 'a'.repeat(64);
20
+ // ─── LocalFileAttachment ──────────────────────────────────────────────────────
21
+ describe('localFileAttachmentSchema', () => {
22
+ it('round-trips a minimal local-file attachment', () => {
23
+ const input = {
24
+ kind: 'local-file',
25
+ path: 'docs/rfc-003.md',
26
+ sha256: SHA256,
27
+ mime: 'text/markdown',
28
+ size: 8192,
29
+ };
30
+ const result = localFileAttachmentSchema.parse(input);
31
+ expect(result.kind).toBe('local-file');
32
+ expect(result.path).toBe('docs/rfc-003.md');
33
+ expect(result.sha256).toBe(SHA256);
34
+ expect(result.mime).toBe('text/markdown');
35
+ expect(result.size).toBe(8192);
36
+ expect(result.description).toBeUndefined();
37
+ expect(result.labels).toBeUndefined();
38
+ });
39
+ it('round-trips a full local-file attachment with optional fields', () => {
40
+ const input = {
41
+ kind: 'local-file',
42
+ path: '/absolute/path/to/report.pdf',
43
+ sha256: SHA256,
44
+ mime: 'application/pdf',
45
+ size: 1_048_576,
46
+ description: 'Pen-test report Q1 2026',
47
+ labels: ['security', 'report'],
48
+ };
49
+ const result = localFileAttachmentSchema.parse(input);
50
+ expect(result.description).toBe('Pen-test report Q1 2026');
51
+ expect(result.labels).toEqual(['security', 'report']);
52
+ expect(result.size).toBe(1_048_576);
53
+ });
54
+ it('rejects a sha256 that is not 64 characters', () => {
55
+ expect(() => localFileAttachmentSchema.parse({
56
+ kind: 'local-file',
57
+ path: 'docs/rfc.md',
58
+ sha256: 'tooshort',
59
+ mime: 'text/markdown',
60
+ size: 100,
61
+ })).toThrow();
62
+ });
63
+ it('rejects a negative size', () => {
64
+ expect(() => localFileAttachmentSchema.parse({
65
+ kind: 'local-file',
66
+ path: 'docs/rfc.md',
67
+ sha256: SHA256,
68
+ mime: 'text/markdown',
69
+ size: -1,
70
+ })).toThrow();
71
+ });
72
+ it('rejects an empty path', () => {
73
+ expect(() => localFileAttachmentSchema.parse({
74
+ kind: 'local-file',
75
+ path: '',
76
+ sha256: SHA256,
77
+ mime: 'text/markdown',
78
+ size: 100,
79
+ })).toThrow();
80
+ });
81
+ });
82
+ // ─── UrlAttachment ────────────────────────────────────────────────────────────
83
+ describe('urlAttachmentSchema', () => {
84
+ it('round-trips a minimal url attachment', () => {
85
+ const input = {
86
+ kind: 'url',
87
+ url: 'https://llmstxt.org',
88
+ };
89
+ const result = urlAttachmentSchema.parse(input);
90
+ expect(result.kind).toBe('url');
91
+ expect(result.url).toBe('https://llmstxt.org');
92
+ expect(result.cachedSha256).toBeUndefined();
93
+ expect(result.cachedAt).toBeUndefined();
94
+ expect(result.mime).toBeUndefined();
95
+ });
96
+ it('round-trips a fully-cached url attachment', () => {
97
+ const input = {
98
+ kind: 'url',
99
+ url: 'https://example.com/spec.html',
100
+ cachedSha256: SHA256,
101
+ cachedAt: '2026-04-16T12:00:00.000Z',
102
+ mime: 'text/html',
103
+ description: 'llms.txt spec upstream cache',
104
+ labels: ['spec', 'upstream'],
105
+ };
106
+ const result = urlAttachmentSchema.parse(input);
107
+ expect(result.cachedSha256).toBe(SHA256);
108
+ expect(result.cachedAt).toBe('2026-04-16T12:00:00.000Z');
109
+ expect(result.mime).toBe('text/html');
110
+ expect(result.labels).toEqual(['spec', 'upstream']);
111
+ });
112
+ it('rejects an invalid URL', () => {
113
+ expect(() => urlAttachmentSchema.parse({
114
+ kind: 'url',
115
+ url: 'not-a-url',
116
+ })).toThrow();
117
+ });
118
+ it('rejects a cachedSha256 that is not 64 characters', () => {
119
+ expect(() => urlAttachmentSchema.parse({
120
+ kind: 'url',
121
+ url: 'https://example.com/',
122
+ cachedSha256: 'bad',
123
+ })).toThrow();
124
+ });
125
+ it('rejects an invalid cachedAt datetime', () => {
126
+ expect(() => urlAttachmentSchema.parse({
127
+ kind: 'url',
128
+ url: 'https://example.com/',
129
+ cachedAt: 'not-a-datetime',
130
+ })).toThrow();
131
+ });
132
+ });
133
+ // ─── BlobAttachment ───────────────────────────────────────────────────────────
134
+ describe('blobAttachmentSchema', () => {
135
+ it('round-trips a minimal blob attachment', () => {
136
+ const input = {
137
+ kind: 'blob',
138
+ sha256: SHA256,
139
+ storageKey: 'aa/aaa…abc.pdf',
140
+ mime: 'application/pdf',
141
+ size: 2_097_152,
142
+ };
143
+ const result = blobAttachmentSchema.parse(input);
144
+ expect(result.kind).toBe('blob');
145
+ expect(result.sha256).toBe(SHA256);
146
+ expect(result.storageKey).toBe('aa/aaa…abc.pdf');
147
+ expect(result.mime).toBe('application/pdf');
148
+ expect(result.size).toBe(2_097_152);
149
+ });
150
+ it('round-trips a full blob attachment with optional fields', () => {
151
+ const input = {
152
+ kind: 'blob',
153
+ sha256: SHA256,
154
+ storageKey: 'ab/abcdef…12.png',
155
+ mime: 'image/png',
156
+ size: 512_000,
157
+ description: 'Screenshot of the failing test run',
158
+ labels: ['screenshot', 'evidence'],
159
+ };
160
+ const result = blobAttachmentSchema.parse(input);
161
+ expect(result.description).toBe('Screenshot of the failing test run');
162
+ expect(result.labels).toEqual(['screenshot', 'evidence']);
163
+ });
164
+ it('rejects an empty storageKey', () => {
165
+ expect(() => blobAttachmentSchema.parse({
166
+ kind: 'blob',
167
+ sha256: SHA256,
168
+ storageKey: '',
169
+ mime: 'application/pdf',
170
+ size: 100,
171
+ })).toThrow();
172
+ });
173
+ it('rejects an empty mime', () => {
174
+ expect(() => blobAttachmentSchema.parse({
175
+ kind: 'blob',
176
+ sha256: SHA256,
177
+ storageKey: 'ab/abc.pdf',
178
+ mime: '',
179
+ size: 100,
180
+ })).toThrow();
181
+ });
182
+ });
183
+ // ─── LlmsTxtAttachment ────────────────────────────────────────────────────────
184
+ describe('llmsTxtAttachmentSchema', () => {
185
+ it('round-trips a minimal llms-txt attachment (generated)', () => {
186
+ const content = '# My Project\n\n> A great project.\n\n## Docs\n\n- [README](./README.md)';
187
+ const input = {
188
+ kind: 'llms-txt',
189
+ source: 'generated',
190
+ content,
191
+ sha256: SHA256,
192
+ };
193
+ const result = llmsTxtAttachmentSchema.parse(input);
194
+ expect(result.kind).toBe('llms-txt');
195
+ expect(result.source).toBe('generated');
196
+ expect(result.content).toBe(content);
197
+ expect(result.sha256).toBe(SHA256);
198
+ });
199
+ it('round-trips a full llms-txt attachment (url source) with optional fields', () => {
200
+ const content = '# llmstxt.org\n\n> The llms.txt spec.\n\n## Spec\n\n- [Spec](./spec.md)';
201
+ const input = {
202
+ kind: 'llms-txt',
203
+ source: 'url',
204
+ content,
205
+ sha256: SHA256,
206
+ description: 'llmstxt.org site index snapshot',
207
+ labels: ['spec', 'upstream'],
208
+ };
209
+ const result = llmsTxtAttachmentSchema.parse(input);
210
+ expect(result.source).toBe('url');
211
+ expect(result.description).toBe('llmstxt.org site index snapshot');
212
+ expect(result.labels).toEqual(['spec', 'upstream']);
213
+ });
214
+ it('rejects an empty content', () => {
215
+ expect(() => llmsTxtAttachmentSchema.parse({
216
+ kind: 'llms-txt',
217
+ source: 'generated',
218
+ content: '',
219
+ sha256: SHA256,
220
+ })).toThrow();
221
+ });
222
+ it('rejects an invalid source value', () => {
223
+ expect(() => llmsTxtAttachmentSchema.parse({
224
+ kind: 'llms-txt',
225
+ source: 'clipboard',
226
+ content: '# Foo',
227
+ sha256: SHA256,
228
+ })).toThrow();
229
+ });
230
+ });
231
+ // ─── LlmtxtDocAttachment ──────────────────────────────────────────────────────
232
+ describe('llmtxtDocAttachmentSchema', () => {
233
+ it('round-trips a minimal llmtxt-doc attachment (local backend)', () => {
234
+ const input = {
235
+ kind: 'llmtxt-doc',
236
+ slug: '9fZLOnf5',
237
+ backend: 'local',
238
+ };
239
+ const result = llmtxtDocAttachmentSchema.parse(input);
240
+ expect(result.kind).toBe('llmtxt-doc');
241
+ expect(result.slug).toBe('9fZLOnf5');
242
+ expect(result.backend).toBe('local');
243
+ expect(result.pinnedVersion).toBeUndefined();
244
+ });
245
+ it('round-trips a full llmtxt-doc attachment (remote backend) with optional fields', () => {
246
+ const input = {
247
+ kind: 'llmtxt-doc',
248
+ slug: 'AbCdEfGh',
249
+ backend: 'remote',
250
+ pinnedVersion: '42',
251
+ description: 'Architecture decision record v7 on llmtxt.my',
252
+ labels: ['adr', 'versioned'],
253
+ };
254
+ const result = llmtxtDocAttachmentSchema.parse(input);
255
+ expect(result.backend).toBe('remote');
256
+ expect(result.pinnedVersion).toBe('42');
257
+ expect(result.description).toBe('Architecture decision record v7 on llmtxt.my');
258
+ expect(result.labels).toEqual(['adr', 'versioned']);
259
+ });
260
+ it('rejects an empty slug', () => {
261
+ expect(() => llmtxtDocAttachmentSchema.parse({
262
+ kind: 'llmtxt-doc',
263
+ slug: '',
264
+ backend: 'local',
265
+ })).toThrow();
266
+ });
267
+ it('rejects an invalid backend value', () => {
268
+ expect(() => llmtxtDocAttachmentSchema.parse({
269
+ kind: 'llmtxt-doc',
270
+ slug: 'abc123',
271
+ backend: 'cloud',
272
+ })).toThrow();
273
+ });
274
+ });
275
+ // ─── attachmentSchema (discriminated union) ───────────────────────────────────
276
+ describe('attachmentSchema (discriminated union)', () => {
277
+ it('routes local-file by kind', () => {
278
+ const result = attachmentSchema.parse({
279
+ kind: 'local-file',
280
+ path: 'src/index.ts',
281
+ sha256: SHA256,
282
+ mime: 'application/typescript',
283
+ size: 1024,
284
+ });
285
+ expect(result.kind).toBe('local-file');
286
+ if (result.kind === 'local-file') {
287
+ expect(result.path).toBe('src/index.ts');
288
+ }
289
+ });
290
+ it('routes url by kind', () => {
291
+ const result = attachmentSchema.parse({
292
+ kind: 'url',
293
+ url: 'https://example.com/',
294
+ });
295
+ expect(result.kind).toBe('url');
296
+ });
297
+ it('routes blob by kind', () => {
298
+ const result = attachmentSchema.parse({
299
+ kind: 'blob',
300
+ sha256: SHA256,
301
+ storageKey: 'ab/abc.pdf',
302
+ mime: 'application/pdf',
303
+ size: 100,
304
+ });
305
+ expect(result.kind).toBe('blob');
306
+ });
307
+ it('routes llms-txt by kind', () => {
308
+ const result = attachmentSchema.parse({
309
+ kind: 'llms-txt',
310
+ source: 'generated',
311
+ content: '# Project\n\n> Summary.',
312
+ sha256: SHA256,
313
+ });
314
+ expect(result.kind).toBe('llms-txt');
315
+ });
316
+ it('routes llmtxt-doc by kind', () => {
317
+ const result = attachmentSchema.parse({
318
+ kind: 'llmtxt-doc',
319
+ slug: 'xY12abCD',
320
+ backend: 'local',
321
+ });
322
+ expect(result.kind).toBe('llmtxt-doc');
323
+ });
324
+ it('rejects an unknown kind', () => {
325
+ expect(() => attachmentSchema.parse({
326
+ kind: 'unknown-kind',
327
+ path: 'docs/foo.md',
328
+ })).toThrow();
329
+ });
330
+ it('type-checks inferred type is assignable to Attachment', () => {
331
+ const raw = {
332
+ kind: 'blob',
333
+ sha256: SHA256,
334
+ storageKey: 'ab/abc.bin',
335
+ mime: 'application/octet-stream',
336
+ size: 256,
337
+ };
338
+ const parsed = attachmentSchema.parse(raw);
339
+ // Structural compatibility check with the canonical Attachment type.
340
+ const att = parsed;
341
+ expect(att.kind).toBe('blob');
342
+ });
343
+ });
344
+ // ─── attachmentMetadataSchema ─────────────────────────────────────────────────
345
+ describe('attachmentMetadataSchema', () => {
346
+ it('round-trips a metadata row for a local-file attachment', () => {
347
+ const input = {
348
+ id: 'att_abc123',
349
+ sha256: SHA256,
350
+ attachment: {
351
+ kind: 'local-file',
352
+ path: 'docs/spec.md',
353
+ sha256: SHA256,
354
+ mime: 'text/markdown',
355
+ size: 4096,
356
+ },
357
+ createdAt: '2026-04-16T08:00:00.000Z',
358
+ refCount: 3,
359
+ };
360
+ const result = attachmentMetadataSchema.parse(input);
361
+ expect(result.id).toBe('att_abc123');
362
+ expect(result.refCount).toBe(3);
363
+ expect(result.attachment.kind).toBe('local-file');
364
+ // TypeScript narrowing confirms the nested parse
365
+ if (result.attachment.kind === 'local-file') {
366
+ expect(result.attachment.path).toBe('docs/spec.md');
367
+ }
368
+ });
369
+ it('round-trips a metadata row for a url attachment with refCount=0', () => {
370
+ const input = {
371
+ id: 'att_xyz789',
372
+ sha256: '',
373
+ attachment: {
374
+ kind: 'url',
375
+ url: 'https://example.com/',
376
+ },
377
+ createdAt: '2026-04-16T09:00:00.000Z',
378
+ refCount: 0,
379
+ };
380
+ const result = attachmentMetadataSchema.parse(input);
381
+ expect(result.refCount).toBe(0);
382
+ expect(result.sha256).toBe('');
383
+ });
384
+ it('type-checks inferred result is assignable to AttachmentMetadata', () => {
385
+ const raw = {
386
+ id: 'att_type_check',
387
+ sha256: SHA256,
388
+ attachment: {
389
+ kind: 'blob',
390
+ sha256: SHA256,
391
+ storageKey: 'ab/abc.pdf',
392
+ mime: 'application/pdf',
393
+ size: 512,
394
+ },
395
+ createdAt: '2026-04-16T10:00:00.000Z',
396
+ refCount: 1,
397
+ };
398
+ const parsed = attachmentMetadataSchema.parse(raw);
399
+ const meta = parsed;
400
+ expect(meta.id).toBe('att_type_check');
401
+ });
402
+ it('rejects a negative refCount', () => {
403
+ expect(() => attachmentMetadataSchema.parse({
404
+ id: 'att_bad',
405
+ sha256: SHA256,
406
+ attachment: {
407
+ kind: 'local-file',
408
+ path: 'x.ts',
409
+ sha256: SHA256,
410
+ mime: 'text/plain',
411
+ size: 10,
412
+ },
413
+ createdAt: '2026-04-16T00:00:00.000Z',
414
+ refCount: -1,
415
+ })).toThrow();
416
+ });
417
+ it('rejects an invalid createdAt timestamp', () => {
418
+ expect(() => attachmentMetadataSchema.parse({
419
+ id: 'att_bad2',
420
+ sha256: SHA256,
421
+ attachment: {
422
+ kind: 'local-file',
423
+ path: 'x.ts',
424
+ sha256: SHA256,
425
+ mime: 'text/plain',
426
+ size: 10,
427
+ },
428
+ createdAt: 'not-a-date',
429
+ refCount: 0,
430
+ })).toThrow();
431
+ });
432
+ });
433
+ // ─── attachmentRefSchema ──────────────────────────────────────────────────────
434
+ describe('attachmentRefSchema', () => {
435
+ it('round-trips a minimal ref row (task owner)', () => {
436
+ const input = {
437
+ attachmentId: 'att_abc123',
438
+ ownerType: 'task',
439
+ ownerId: 'T766',
440
+ attachedAt: '2026-04-16T08:30:00.000Z',
441
+ };
442
+ const result = attachmentRefSchema.parse(input);
443
+ expect(result.attachmentId).toBe('att_abc123');
444
+ expect(result.ownerType).toBe('task');
445
+ expect(result.ownerId).toBe('T766');
446
+ expect(result.attachedBy).toBeUndefined();
447
+ });
448
+ it('round-trips a ref row with all owner types and attachedBy', () => {
449
+ const ownerTypes = [
450
+ 'task',
451
+ 'observation',
452
+ 'session',
453
+ 'decision',
454
+ 'learning',
455
+ 'pattern',
456
+ ];
457
+ for (const ownerType of ownerTypes) {
458
+ const result = attachmentRefSchema.parse({
459
+ attachmentId: 'att_xyz',
460
+ ownerType,
461
+ ownerId: 'owner-001',
462
+ attachedAt: '2026-04-16T08:30:00.000Z',
463
+ attachedBy: 'cleo-prime',
464
+ });
465
+ expect(result.ownerType).toBe(ownerType);
466
+ expect(result.attachedBy).toBe('cleo-prime');
467
+ }
468
+ });
469
+ it('type-checks inferred result is assignable to AttachmentRef', () => {
470
+ const raw = {
471
+ attachmentId: 'att_type',
472
+ ownerType: 'observation',
473
+ ownerId: 'O-abc123',
474
+ attachedAt: '2026-04-16T00:00:00.000Z',
475
+ };
476
+ const parsed = attachmentRefSchema.parse(raw);
477
+ const ref = parsed;
478
+ expect(ref.ownerId).toBe('O-abc123');
479
+ });
480
+ it('rejects an invalid ownerType', () => {
481
+ expect(() => attachmentRefSchema.parse({
482
+ attachmentId: 'att_xyz',
483
+ ownerType: 'message',
484
+ ownerId: 'msg_001',
485
+ attachedAt: '2026-04-16T08:30:00.000Z',
486
+ })).toThrow();
487
+ });
488
+ it('rejects an empty attachmentId', () => {
489
+ expect(() => attachmentRefSchema.parse({
490
+ attachmentId: '',
491
+ ownerType: 'task',
492
+ ownerId: 'T001',
493
+ attachedAt: '2026-04-16T08:30:00.000Z',
494
+ })).toThrow();
495
+ });
496
+ it('rejects an invalid attachedAt datetime', () => {
497
+ expect(() => attachmentRefSchema.parse({
498
+ attachmentId: 'att_ok',
499
+ ownerType: 'task',
500
+ ownerId: 'T001',
501
+ attachedAt: 'yesterday',
502
+ })).toThrow();
503
+ });
504
+ });
505
+ //# sourceMappingURL=attachment.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attachment.test.js","sourceRoot":"","sources":["../../src/__tests__/attachment.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Round-trip Zod parse tests for `EvidenceRecord` variants.
3
+ *
4
+ * Each variant is exercised with two cases:
5
+ * 1. A minimal (required-fields-only) input.
6
+ * 2. A maximal (all-fields populated) input with a structural type-check.
7
+ *
8
+ * Five variants × 2 cases = 10 core tests, plus union-routing and rejection tests.
9
+ *
10
+ * @epic T810
11
+ * @task T816
12
+ */
13
+ export {};
14
+ //# sourceMappingURL=evidence-record.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence-record.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/evidence-record.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}