@peasant-labs/schema 0.18.0 → 0.19.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.
@@ -0,0 +1,570 @@
1
+ // Code generated from the canonical Go/OpenAPI contract. DO NOT EDIT.
2
+ export const canonicalSessionGraphCapabilityFixtures = {
3
+ "requiredNames": {
4
+ "derivation": [
5
+ "legacy-empty",
6
+ "root-null",
7
+ "usage-null",
8
+ "model-only",
9
+ "source-ref-only",
10
+ "count-only-zero",
11
+ "count-only-positive",
12
+ "root-only",
13
+ "purpose-only-interaction",
14
+ "purpose-only-delegated",
15
+ "purpose-only-helper",
16
+ "purpose-only-unknown",
17
+ "relationship-only",
18
+ "main-deeper-provenance",
19
+ "folded-call-provenance",
20
+ "folded-result-provenance",
21
+ "earlier-only",
22
+ "earlier-nested-tool-native-usage-model",
23
+ "navigation-only-read"
24
+ ],
25
+ "reader": [
26
+ "advertisement-omitted",
27
+ "advertisement-empty",
28
+ "advertisement-null",
29
+ "advertisement-unknown-duplicate-unordered",
30
+ "advertisement-future-suffix"
31
+ ],
32
+ "producer": [
33
+ "producer-canonical-four",
34
+ "producer-unsorted-four",
35
+ "producer-duplicate",
36
+ "producer-unknown"
37
+ ]
38
+ },
39
+ "derivation": {
40
+ "cases": [
41
+ {
42
+ "name": "legacy-empty",
43
+ "classification": "must-pass",
44
+ "provenance": {
45
+ "source": "requirement",
46
+ "ref": "section-12.4"
47
+ },
48
+ "mutation": {
49
+ "description": "omits optional evidence"
50
+ },
51
+ "input": {
52
+ "detailJSON": "{\"id\":\"fixture-session\",\"startTime\":\"2020-01-01T00:00:00Z\",\"endTime\":\"2020-01-01T00:00:00Z\",\"durationMins\":0,\"totalTokens\":0,\"tokensIn\":0,\"tokensOut\":0,\"turnCount\":0,\"toolCallCount\":0,\"harness\":\"claude-code\",\"outcome\":\"resolved\",\"sessionOrigin\":\"unknown\",\"turns\":[]}"
53
+ },
54
+ "expected": {}
55
+ },
56
+ {
57
+ "name": "root-null",
58
+ "classification": "must-pass",
59
+ "provenance": {
60
+ "source": "boundary",
61
+ "ref": "Go nil parity"
62
+ },
63
+ "mutation": {
64
+ "description": "decodes null root as absent"
65
+ },
66
+ "input": {
67
+ "detailJSON": "{\"id\":\"fixture-session\",\"startTime\":\"2020-01-01T00:00:00Z\",\"endTime\":\"2020-01-01T00:00:00Z\",\"durationMins\":0,\"totalTokens\":0,\"tokensIn\":0,\"tokensOut\":0,\"turnCount\":0,\"toolCallCount\":0,\"harness\":\"claude-code\",\"outcome\":\"resolved\",\"sessionOrigin\":\"unknown\",\"rootSessionId\":null,\"turns\":[]}"
68
+ },
69
+ "expected": {}
70
+ },
71
+ {
72
+ "name": "usage-null",
73
+ "classification": "must-pass",
74
+ "provenance": {
75
+ "source": "boundary",
76
+ "ref": "Go nil parity"
77
+ },
78
+ "mutation": {
79
+ "description": "decodes null usage as absent"
80
+ },
81
+ "input": {
82
+ "detailJSON": "{\"id\":\"fixture-session\",\"startTime\":\"2020-01-01T00:00:00Z\",\"endTime\":\"2020-01-01T00:00:00Z\",\"durationMins\":0,\"totalTokens\":0,\"tokensIn\":0,\"tokensOut\":0,\"turnCount\":1,\"toolCallCount\":0,\"harness\":\"claude-code\",\"outcome\":\"resolved\",\"sessionOrigin\":\"unknown\",\"turns\":[{\"index\":0,\"role\":\"assistant\",\"content\":\"\",\"depth\":0,\"timestamp\":\"2020-01-01T00:00:00Z\",\"usage\":null}]}"
83
+ },
84
+ "expected": {}
85
+ },
86
+ {
87
+ "name": "model-only",
88
+ "classification": "must-pass",
89
+ "provenance": {
90
+ "source": "requirement",
91
+ "ref": "section-12.4"
92
+ },
93
+ "mutation": {
94
+ "description": "adds model seed"
95
+ },
96
+ "input": {
97
+ "detailJSON": "{\"id\":\"fixture-session\",\"startTime\":\"2020-01-01T00:00:00Z\",\"endTime\":\"2020-01-01T00:00:00Z\",\"durationMins\":0,\"totalTokens\":0,\"tokensIn\":0,\"tokensOut\":0,\"turnCount\":0,\"toolCallCount\":0,\"harness\":\"claude-code\",\"outcome\":\"resolved\",\"sessionOrigin\":\"unknown\",\"model\":\"seed/model\",\"turns\":[]}"
98
+ },
99
+ "expected": {}
100
+ },
101
+ {
102
+ "name": "source-ref-only",
103
+ "classification": "must-pass",
104
+ "provenance": {
105
+ "source": "requirement",
106
+ "ref": "section-12.4"
107
+ },
108
+ "mutation": {
109
+ "description": "adds source ref"
110
+ },
111
+ "input": {
112
+ "detailJSON": "{\"id\":\"fixture-session\",\"startTime\":\"2020-01-01T00:00:00Z\",\"endTime\":\"2020-01-01T00:00:00Z\",\"durationMins\":0,\"totalTokens\":0,\"tokensIn\":0,\"tokensOut\":0,\"turnCount\":1,\"toolCallCount\":0,\"harness\":\"claude-code\",\"outcome\":\"resolved\",\"sessionOrigin\":\"unknown\",\"turns\":[{\"index\":0,\"role\":\"user\",\"sourceEntryRef\":\"e1\",\"content\":\"\",\"depth\":0,\"timestamp\":\"2020-01-01T00:00:00Z\"}]}"
113
+ },
114
+ "expected": {}
115
+ },
116
+ {
117
+ "name": "count-only-zero",
118
+ "classification": "must-pass",
119
+ "provenance": {
120
+ "source": "requirement",
121
+ "ref": "section-12.4"
122
+ },
123
+ "mutation": {
124
+ "description": "measures zero submissions"
125
+ },
126
+ "input": {
127
+ "detailJSON": "{\"id\":\"fixture-session\",\"startTime\":\"2020-01-01T00:00:00Z\",\"endTime\":\"2020-01-01T00:00:00Z\",\"durationMins\":0,\"totalTokens\":0,\"tokensIn\":0,\"tokensOut\":0,\"turnCount\":0,\"toolCallCount\":0,\"harness\":\"claude-code\",\"outcome\":\"resolved\",\"sessionOrigin\":\"unknown\",\"inputSubmissionCount\":0,\"turns\":[]}"
128
+ },
129
+ "expected": {
130
+ "capabilities": [
131
+ "session_graph_provenance_v1"
132
+ ]
133
+ }
134
+ },
135
+ {
136
+ "name": "count-only-positive",
137
+ "classification": "must-pass",
138
+ "provenance": {
139
+ "source": "requirement",
140
+ "ref": "section-12.4"
141
+ },
142
+ "mutation": {
143
+ "description": "measures positive submissions"
144
+ },
145
+ "input": {
146
+ "detailJSON": "{\"id\":\"fixture-session\",\"startTime\":\"2020-01-01T00:00:00Z\",\"endTime\":\"2020-01-01T00:00:00Z\",\"durationMins\":0,\"totalTokens\":0,\"tokensIn\":0,\"tokensOut\":0,\"turnCount\":0,\"toolCallCount\":0,\"harness\":\"claude-code\",\"outcome\":\"resolved\",\"sessionOrigin\":\"unknown\",\"inputSubmissionCount\":1,\"turns\":[]}"
147
+ },
148
+ "expected": {
149
+ "capabilities": [
150
+ "session_graph_provenance_v1"
151
+ ]
152
+ }
153
+ },
154
+ {
155
+ "name": "root-only",
156
+ "classification": "must-pass",
157
+ "provenance": {
158
+ "source": "requirement",
159
+ "ref": "section-12.4"
160
+ },
161
+ "mutation": {
162
+ "description": "adds root"
163
+ },
164
+ "input": {
165
+ "detailJSON": "{\"id\":\"fixture-session\",\"startTime\":\"2020-01-01T00:00:00Z\",\"endTime\":\"2020-01-01T00:00:00Z\",\"durationMins\":0,\"totalTokens\":0,\"tokensIn\":0,\"tokensOut\":0,\"turnCount\":0,\"toolCallCount\":0,\"harness\":\"claude-code\",\"outcome\":\"resolved\",\"sessionOrigin\":\"unknown\",\"rootSessionId\":\"00000000-0000-4000-8000-000000000001\",\"turns\":[]}"
166
+ },
167
+ "expected": {
168
+ "capabilities": [
169
+ "session_graph_provenance_v1"
170
+ ]
171
+ }
172
+ },
173
+ {
174
+ "name": "purpose-only-interaction",
175
+ "classification": "must-pass",
176
+ "provenance": {
177
+ "source": "requirement",
178
+ "ref": "section-12.4"
179
+ },
180
+ "mutation": {
181
+ "description": "adds interaction purpose"
182
+ },
183
+ "input": {
184
+ "detailJSON": "{\"id\":\"fixture-session\",\"startTime\":\"2020-01-01T00:00:00Z\",\"endTime\":\"2020-01-01T00:00:00Z\",\"durationMins\":0,\"totalTokens\":0,\"tokensIn\":0,\"tokensOut\":0,\"turnCount\":0,\"toolCallCount\":0,\"harness\":\"claude-code\",\"outcome\":\"resolved\",\"sessionOrigin\":\"unknown\",\"purpose\":\"interaction\",\"turns\":[]}"
185
+ },
186
+ "expected": {
187
+ "capabilities": [
188
+ "session_graph_provenance_v1"
189
+ ]
190
+ }
191
+ },
192
+ {
193
+ "name": "purpose-only-delegated",
194
+ "classification": "must-pass",
195
+ "provenance": {
196
+ "source": "requirement",
197
+ "ref": "section-12.4"
198
+ },
199
+ "mutation": {
200
+ "description": "adds delegated purpose"
201
+ },
202
+ "input": {
203
+ "detailJSON": "{\"id\":\"fixture-session\",\"startTime\":\"2020-01-01T00:00:00Z\",\"endTime\":\"2020-01-01T00:00:00Z\",\"durationMins\":0,\"totalTokens\":0,\"tokensIn\":0,\"tokensOut\":0,\"turnCount\":0,\"toolCallCount\":0,\"harness\":\"claude-code\",\"outcome\":\"resolved\",\"sessionOrigin\":\"unknown\",\"purpose\":\"delegated_work\",\"turns\":[]}"
204
+ },
205
+ "expected": {
206
+ "capabilities": [
207
+ "session_graph_provenance_v1"
208
+ ]
209
+ }
210
+ },
211
+ {
212
+ "name": "purpose-only-helper",
213
+ "classification": "must-pass",
214
+ "provenance": {
215
+ "source": "requirement",
216
+ "ref": "section-12.4"
217
+ },
218
+ "mutation": {
219
+ "description": "adds helper purpose"
220
+ },
221
+ "input": {
222
+ "detailJSON": "{\"id\":\"fixture-session\",\"startTime\":\"2020-01-01T00:00:00Z\",\"endTime\":\"2020-01-01T00:00:00Z\",\"durationMins\":0,\"totalTokens\":0,\"tokensIn\":0,\"tokensOut\":0,\"turnCount\":0,\"toolCallCount\":0,\"harness\":\"claude-code\",\"outcome\":\"resolved\",\"sessionOrigin\":\"unknown\",\"purpose\":\"helper_review\",\"turns\":[]}"
223
+ },
224
+ "expected": {
225
+ "capabilities": [
226
+ "session_graph_provenance_v1"
227
+ ]
228
+ }
229
+ },
230
+ {
231
+ "name": "purpose-only-unknown",
232
+ "classification": "must-pass",
233
+ "provenance": {
234
+ "source": "requirement",
235
+ "ref": "section-12.4"
236
+ },
237
+ "mutation": {
238
+ "description": "adds unknown purpose"
239
+ },
240
+ "input": {
241
+ "detailJSON": "{\"id\":\"fixture-session\",\"startTime\":\"2020-01-01T00:00:00Z\",\"endTime\":\"2020-01-01T00:00:00Z\",\"durationMins\":0,\"totalTokens\":0,\"tokensIn\":0,\"tokensOut\":0,\"turnCount\":0,\"toolCallCount\":0,\"harness\":\"claude-code\",\"outcome\":\"resolved\",\"sessionOrigin\":\"unknown\",\"purpose\":\"unknown\",\"turns\":[]}"
242
+ },
243
+ "expected": {
244
+ "capabilities": [
245
+ "session_graph_provenance_v1"
246
+ ]
247
+ }
248
+ },
249
+ {
250
+ "name": "relationship-only",
251
+ "classification": "must-pass",
252
+ "provenance": {
253
+ "source": "requirement",
254
+ "ref": "section-12.4"
255
+ },
256
+ "mutation": {
257
+ "description": "adds relationship"
258
+ },
259
+ "input": {
260
+ "detailJSON": "{\"id\":\"fixture-session\",\"startTime\":\"2020-01-01T00:00:00Z\",\"endTime\":\"2020-01-01T00:00:00Z\",\"durationMins\":0,\"totalTokens\":0,\"tokensIn\":0,\"tokensOut\":0,\"turnCount\":0,\"toolCallCount\":0,\"harness\":\"claude-code\",\"outcome\":\"resolved\",\"sessionOrigin\":\"unknown\",\"relationships\":[{\"kind\":\"started_by\",\"targetState\":\"unknown\",\"evidence\":\"unknown\"}],\"turns\":[]}"
261
+ },
262
+ "expected": {
263
+ "capabilities": [
264
+ "session_graph_provenance_v1"
265
+ ]
266
+ }
267
+ },
268
+ {
269
+ "name": "main-deeper-provenance",
270
+ "classification": "must-pass",
271
+ "provenance": {
272
+ "source": "requirement",
273
+ "ref": "section-11"
274
+ },
275
+ "mutation": {
276
+ "description": "adds nonroot provenance"
277
+ },
278
+ "input": {
279
+ "detailJSON": "{\"id\":\"fixture-session\",\"startTime\":\"2020-01-01T00:00:00Z\",\"endTime\":\"2020-01-01T00:00:00Z\",\"durationMins\":0,\"totalTokens\":0,\"tokensIn\":0,\"tokensOut\":0,\"turnCount\":2,\"toolCallCount\":0,\"harness\":\"claude-code\",\"outcome\":\"resolved\",\"sessionOrigin\":\"unknown\",\"turns\":[{\"index\":0,\"role\":\"assistant\",\"content\":\"\",\"depth\":0,\"timestamp\":\"2020-01-01T00:00:00Z\"},{\"index\":1,\"role\":\"assistant\",\"depth\":1,\"parentIndex\":0,\"provenance\":{\"origin\":\"unknown\",\"actor\":\"unknown\",\"delivery\":\"unknown\",\"ownership\":\"uncertain\",\"evidence\":\"unknown\",\"inputModality\":\"unknown\"},\"content\":\"\",\"timestamp\":\"2020-01-01T00:00:00Z\"}]}"
280
+ },
281
+ "expected": {
282
+ "capabilities": [
283
+ "session_graph_provenance_v1"
284
+ ]
285
+ }
286
+ },
287
+ {
288
+ "name": "folded-call-provenance",
289
+ "classification": "must-pass",
290
+ "provenance": {
291
+ "source": "requirement",
292
+ "ref": "section-11"
293
+ },
294
+ "mutation": {
295
+ "description": "adds call provenance"
296
+ },
297
+ "input": {
298
+ "detailJSON": "{\"id\":\"fixture-session\",\"startTime\":\"2020-01-01T00:00:00Z\",\"endTime\":\"2020-01-01T00:00:00Z\",\"durationMins\":0,\"totalTokens\":0,\"tokensIn\":0,\"tokensOut\":0,\"turnCount\":1,\"toolCallCount\":0,\"harness\":\"claude-code\",\"outcome\":\"resolved\",\"sessionOrigin\":\"unknown\",\"turns\":[{\"index\":0,\"role\":\"assistant\",\"toolCalls\":[{\"id\":\"t1\",\"callProvenance\":{\"origin\":\"unknown\",\"actor\":\"unknown\",\"delivery\":\"unknown\",\"ownership\":\"uncertain\",\"evidence\":\"unknown\",\"inputModality\":\"unknown\"},\"name\":\"\",\"arguments\":\"\",\"result\":\"\"}],\"content\":\"\",\"depth\":0,\"timestamp\":\"2020-01-01T00:00:00Z\"}]}"
299
+ },
300
+ "expected": {
301
+ "capabilities": [
302
+ "session_graph_provenance_v1"
303
+ ]
304
+ }
305
+ },
306
+ {
307
+ "name": "folded-result-provenance",
308
+ "classification": "must-pass",
309
+ "provenance": {
310
+ "source": "requirement",
311
+ "ref": "section-11"
312
+ },
313
+ "mutation": {
314
+ "description": "adds result provenance"
315
+ },
316
+ "input": {
317
+ "detailJSON": "{\"id\":\"fixture-session\",\"startTime\":\"2020-01-01T00:00:00Z\",\"endTime\":\"2020-01-01T00:00:00Z\",\"durationMins\":0,\"totalTokens\":0,\"tokensIn\":0,\"tokensOut\":0,\"turnCount\":1,\"toolCallCount\":0,\"harness\":\"claude-code\",\"outcome\":\"resolved\",\"sessionOrigin\":\"unknown\",\"turns\":[{\"index\":0,\"role\":\"assistant\",\"toolCalls\":[{\"id\":\"t1\",\"resultProvenance\":{\"origin\":\"unknown\",\"actor\":\"unknown\",\"delivery\":\"unknown\",\"ownership\":\"uncertain\",\"evidence\":\"unknown\",\"inputModality\":\"unknown\"},\"name\":\"\",\"arguments\":\"\",\"result\":\"\"}],\"content\":\"\",\"depth\":0,\"timestamp\":\"2020-01-01T00:00:00Z\"}]}"
318
+ },
319
+ "expected": {
320
+ "capabilities": [
321
+ "session_graph_provenance_v1"
322
+ ]
323
+ }
324
+ },
325
+ {
326
+ "name": "earlier-only",
327
+ "classification": "must-pass",
328
+ "provenance": {
329
+ "source": "requirement",
330
+ "ref": "section-12.4"
331
+ },
332
+ "mutation": {
333
+ "description": "adds empty retained section"
334
+ },
335
+ "input": {
336
+ "detailJSON": "{\"id\":\"fixture-session\",\"startTime\":\"2020-01-01T00:00:00Z\",\"endTime\":\"2020-01-01T00:00:00Z\",\"durationMins\":0,\"totalTokens\":0,\"tokensIn\":0,\"tokensOut\":0,\"turnCount\":0,\"toolCallCount\":0,\"harness\":\"claude-code\",\"outcome\":\"resolved\",\"sessionOrigin\":\"unknown\",\"turns\":[],\"earlierHistory\":[{\"state\":\"uncertain_migrated\",\"turns\":[]}]}"
337
+ },
338
+ "expected": {
339
+ "capabilities": [
340
+ "session_graph_provenance_v1"
341
+ ]
342
+ }
343
+ },
344
+ {
345
+ "name": "earlier-nested-tool-native-usage-model",
346
+ "classification": "must-pass",
347
+ "provenance": {
348
+ "source": "requirement",
349
+ "ref": "section-12.4"
350
+ },
351
+ "mutation": {
352
+ "description": "combines valid Pi earlier evidence"
353
+ },
354
+ "input": {
355
+ "detailJSON": "{\"id\":\"fixture-session\",\"startTime\":\"2020-01-01T00:00:00Z\",\"endTime\":\"2020-01-01T00:00:00Z\",\"durationMins\":0,\"totalTokens\":0,\"tokensIn\":0,\"tokensOut\":0,\"turnCount\":0,\"toolCallCount\":0,\"harness\":\"pi\",\"outcome\":\"resolved\",\"sessionOrigin\":\"unknown\",\"turns\":[],\"earlierHistory\":[{\"state\":\"uncertain_migrated\",\"turns\":[{\"index\":0,\"role\":\"assistant\",\"content\":\"\",\"depth\":0,\"timestamp\":\"2020-01-01T00:00:00Z\"},{\"index\":1,\"role\":\"assistant\",\"depth\":1,\"parentIndex\":0,\"observedModel\":\"provider/model\",\"provenance\":{\"origin\":\"unknown\",\"actor\":\"unknown\",\"delivery\":\"unknown\",\"ownership\":\"uncertain\",\"evidence\":\"unknown\",\"inputModality\":\"unknown\"},\"sourceEntryRef\":\"e_assistant\",\"usage\":{\"ownerId\":\"u_assistant\",\"sourceEntryRef\":\"e_assistant\",\"scope\":\"assistant\",\"completeness\":\"unknown\"},\"toolCalls\":[{\"id\":\"t1\",\"resultEntryRef\":\"e_result\",\"usage\":{\"ownerId\":\"u_tool\",\"sourceEntryRef\":\"e_result\",\"scope\":\"tool\",\"completeness\":\"unknown\"},\"name\":\"\",\"arguments\":\"\",\"result\":\"\"}],\"content\":\"\",\"timestamp\":\"2020-01-01T00:00:00Z\"}],\"nativeMetadata\":[{\"id\":\"n1\",\"kind\":\"pi.toolresult.details\",\"source\":{\"entryRef\":\"e_result\",\"sourceType\":\"pi.message\",\"messageRole\":\"toolResult\"},\"attachment\":{\"turnIndex\":1,\"toolCallId\":\"t1\"},\"data\":{}}]}]}"
356
+ },
357
+ "expected": {
358
+ "capabilities": [
359
+ "detailed_usage_v1",
360
+ "native_metadata_v1",
361
+ "observed_model_v1",
362
+ "session_graph_provenance_v1"
363
+ ]
364
+ }
365
+ },
366
+ {
367
+ "name": "navigation-only-read",
368
+ "classification": "must-pass",
369
+ "provenance": {
370
+ "source": "requirement",
371
+ "ref": "section-12.4"
372
+ },
373
+ "mutation": {
374
+ "description": "separates read metadata from durable detail"
375
+ },
376
+ "input": {
377
+ "detailJSON": "{\"id\":\"fixture-session\",\"startTime\":\"2020-01-01T00:00:00Z\",\"endTime\":\"2020-01-01T00:00:00Z\",\"durationMins\":0,\"totalTokens\":0,\"tokensIn\":0,\"tokensOut\":0,\"turnCount\":0,\"toolCallCount\":0,\"harness\":\"claude-code\",\"outcome\":\"resolved\",\"sessionOrigin\":\"unknown\",\"turns\":[]}",
378
+ "readJSON": "{\"startTime\":\"2020-01-01T00:00:00Z\",\"endTime\":\"2020-01-01T00:00:00Z\",\"durationMins\":0,\"totalTokens\":0,\"tokensIn\":0,\"tokensOut\":0,\"turnCount\":0,\"toolCallCount\":0,\"id\":\"child\",\"harness\":\"claude-code\",\"turns\":[],\"relationshipNavigation\":[]}",
379
+ "rejectedDurableJSON": "{\"id\":\"fixture-session\",\"startTime\":\"2020-01-01T00:00:00Z\",\"endTime\":\"2020-01-01T00:00:00Z\",\"durationMins\":0,\"totalTokens\":0,\"tokensIn\":0,\"tokensOut\":0,\"turnCount\":0,\"toolCallCount\":0,\"harness\":\"claude-code\",\"outcome\":\"resolved\",\"sessionOrigin\":\"unknown\",\"turns\":[],\"relationshipNavigation\":[]}"
380
+ },
381
+ "expected": {}
382
+ }
383
+ ]
384
+ },
385
+ "reader": {
386
+ "cases": [
387
+ {
388
+ "name": "advertisement-omitted",
389
+ "classification": "must-pass",
390
+ "provenance": {
391
+ "source": "requirement",
392
+ "ref": "section-12.4"
393
+ },
394
+ "mutation": {
395
+ "description": "omits list"
396
+ },
397
+ "input": {
398
+ "json": "{}"
399
+ },
400
+ "expected": {
401
+ "missing": [
402
+ "session_graph_provenance_v1"
403
+ ]
404
+ }
405
+ },
406
+ {
407
+ "name": "advertisement-empty",
408
+ "classification": "must-pass",
409
+ "provenance": {
410
+ "source": "requirement",
411
+ "ref": "section-12.4"
412
+ },
413
+ "mutation": {
414
+ "description": "supplies empty list"
415
+ },
416
+ "input": {
417
+ "json": "{\"contentCapabilities\":[]}"
418
+ },
419
+ "expected": {
420
+ "missing": [
421
+ "session_graph_provenance_v1"
422
+ ]
423
+ }
424
+ },
425
+ {
426
+ "name": "advertisement-null",
427
+ "classification": "must-fail",
428
+ "provenance": {
429
+ "source": "boundary",
430
+ "ref": "section-12.4"
431
+ },
432
+ "mutation": {
433
+ "description": "supplies null list"
434
+ },
435
+ "input": {
436
+ "json": "{\"contentCapabilities\":null}"
437
+ },
438
+ "expected": {
439
+ "errorContains": "contentCapabilities is null"
440
+ }
441
+ },
442
+ {
443
+ "name": "advertisement-unknown-duplicate-unordered",
444
+ "classification": "must-pass",
445
+ "provenance": {
446
+ "source": "requirement",
447
+ "ref": "section-12.4"
448
+ },
449
+ "mutation": {
450
+ "description": "combines tolerated reader forms"
451
+ },
452
+ "input": {
453
+ "json": "{\"contentCapabilities\":[\"session_graph_provenance_v1\",\"future_v9\",\"observed_model_v1\",\"session_graph_provenance_v1\"]}"
454
+ },
455
+ "expected": {
456
+ "known": [
457
+ "observed_model_v1",
458
+ "session_graph_provenance_v1"
459
+ ]
460
+ }
461
+ },
462
+ {
463
+ "name": "advertisement-future-suffix",
464
+ "classification": "must-pass",
465
+ "provenance": {
466
+ "source": "boundary",
467
+ "ref": "section-12.4"
468
+ },
469
+ "mutation": {
470
+ "description": "substitutes opaque v2 suffix"
471
+ },
472
+ "input": {
473
+ "json": "{\"contentCapabilities\":[\"session_graph_provenance_v2\"]}"
474
+ },
475
+ "expected": {
476
+ "missing": [
477
+ "session_graph_provenance_v1"
478
+ ]
479
+ }
480
+ }
481
+ ]
482
+ },
483
+ "producer": {
484
+ "cases": [
485
+ {
486
+ "name": "producer-canonical-four",
487
+ "classification": "must-pass",
488
+ "provenance": {
489
+ "source": "requirement",
490
+ "ref": "section-12.4"
491
+ },
492
+ "mutation": {
493
+ "description": "emits sorted inventory"
494
+ },
495
+ "input": {
496
+ "tokens": [
497
+ "detailed_usage_v1",
498
+ "native_metadata_v1",
499
+ "observed_model_v1",
500
+ "session_graph_provenance_v1"
501
+ ]
502
+ },
503
+ "expected": {
504
+ "accepted": true
505
+ }
506
+ },
507
+ {
508
+ "name": "producer-unsorted-four",
509
+ "classification": "must-fail",
510
+ "provenance": {
511
+ "source": "boundary",
512
+ "ref": "section-12.4"
513
+ },
514
+ "mutation": {
515
+ "description": "swaps sorted tokens"
516
+ },
517
+ "input": {
518
+ "tokens": [
519
+ "native_metadata_v1",
520
+ "detailed_usage_v1",
521
+ "observed_model_v1",
522
+ "session_graph_provenance_v1"
523
+ ]
524
+ },
525
+ "expected": {
526
+ "errorContains": "canonical lexicographic order"
527
+ }
528
+ },
529
+ {
530
+ "name": "producer-duplicate",
531
+ "classification": "must-fail",
532
+ "provenance": {
533
+ "source": "boundary",
534
+ "ref": "section-12.4"
535
+ },
536
+ "mutation": {
537
+ "description": "duplicates graph token"
538
+ },
539
+ "input": {
540
+ "tokens": [
541
+ "session_graph_provenance_v1",
542
+ "session_graph_provenance_v1"
543
+ ]
544
+ },
545
+ "expected": {
546
+ "errorContains": "duplicated"
547
+ }
548
+ },
549
+ {
550
+ "name": "producer-unknown",
551
+ "classification": "must-fail",
552
+ "provenance": {
553
+ "source": "boundary",
554
+ "ref": "section-12.4"
555
+ },
556
+ "mutation": {
557
+ "description": "adds unknown token"
558
+ },
559
+ "input": {
560
+ "tokens": [
561
+ "future_v9"
562
+ ]
563
+ },
564
+ "expected": {
565
+ "errorContains": "unknown token"
566
+ }
567
+ }
568
+ ]
569
+ }
570
+ };