planr 1.10.0-alpha.9 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/.claude-plugin/plugin.json +11 -0
  2. package/CHANGELOG.md +20 -0
  3. package/README.md +27 -245
  4. package/docs/board.md +44 -0
  5. package/docs/cli.md +100 -0
  6. package/docs/concepts.md +133 -0
  7. package/docs/contract.md +150 -0
  8. package/docs/plugins/bb.md +49 -0
  9. package/docs/plugins/claude-code.md +84 -0
  10. package/docs/plugins/codex.md +77 -0
  11. package/docs/quickstart.md +307 -0
  12. package/docs/setup.md +103 -0
  13. package/package.json +21 -68
  14. package/plugin.json +12 -0
  15. package/skills/planr/SKILL.md +64 -0
  16. package/skills/planr/assets/board/fonts/LICENSE-mona-sans.txt +93 -0
  17. package/skills/planr/assets/board/fonts/LICENSE-monaspace.txt +93 -0
  18. package/skills/planr/assets/board/fonts/MonaSans-Variable.woff2 +0 -0
  19. package/skills/planr/assets/board/fonts/MonaspaceNeon-400.woff2 +0 -0
  20. package/skills/planr/assets/board/fonts/MonaspaceNeon-500.woff2 +0 -0
  21. package/skills/planr/assets/board/fonts/MonaspaceNeon-600.woff2 +0 -0
  22. package/skills/planr/assets/board/template.html +788 -0
  23. package/skills/planr/assets/templates/goal.md +13 -0
  24. package/skills/planr/assets/templates/hook.sh +4 -0
  25. package/skills/planr/assets/templates/in-repo.config.json +6 -0
  26. package/skills/planr/assets/templates/planr.config.json +6 -0
  27. package/skills/planr/assets/templates/tasks-README.md +14 -0
  28. package/skills/planr/references/format.md +88 -0
  29. package/skills/planr/references/work-a-goal.md +62 -0
  30. package/skills/planr/scripts/lib/board.mjs +39 -0
  31. package/skills/planr/scripts/lib/graph.mjs +345 -0
  32. package/skills/planr/scripts/lib/runs.mjs +127 -0
  33. package/skills/planr/scripts/lib/version.mjs +11 -0
  34. package/skills/planr/scripts/planr.mjs +386 -0
  35. package/docs/ARCHITECTURE.md +0 -136
  36. package/docs/RELEASE.md +0 -275
  37. package/docs/SWITCHLOOM_COMPATIBILITY.md +0 -14
  38. package/docs/contracts/BROWSER_HARNESS_ADAPTER_V1.md +0 -75
  39. package/docs/contracts/EVAL_CONTRACT_V1.md +0 -2072
  40. package/docs/contracts/EVIDENCE_ADAPTER_PROTOCOL_V1.md +0 -98
  41. package/docs/contracts/EVIDENCE_CONTRACT_V1.md +0 -382
  42. package/docs/contracts/GROK_INTEGRATION_V1.md +0 -139
  43. package/docs/contracts/LINUX_RELEASE_PORTABILITY.json +0 -9
  44. package/docs/contracts/PI_INTEGRATION_V1.md +0 -164
  45. package/docs/contracts/V1_1_DIFFERENTIATION_CONTRACT.md +0 -177
  46. package/docs/contracts/fixtures/evidence/v1/examples/coverage-verdict.json +0 -66
  47. package/docs/contracts/fixtures/evidence/v1/examples/evidence-attempt.json +0 -39
  48. package/docs/contracts/fixtures/evidence/v1/examples/evidence-policy.json +0 -108
  49. package/docs/contracts/fixtures/evidence/v1/examples/evidence-receipt.json +0 -93
  50. package/docs/contracts/fixtures/evidence/v1/examples/evidence-waiver.json +0 -31
  51. package/docs/contracts/fixtures/evidence/v1/examples/proof-obligation.json +0 -55
  52. package/docs/contracts/fixtures/evidence/v1/examples/proof-preset.json +0 -19
  53. package/docs/contracts/fixtures/evidence/v1/examples/untrusted-evidence-proposal.json +0 -20
  54. package/docs/contracts/fixtures/evidence/v1/examples/verification-capability-instance.json +0 -39
  55. package/docs/contracts/fixtures/evidence/v1/examples/verification-capability-manifest.json +0 -52
  56. package/docs/contracts/fixtures/evidence/v1/negative/aborted-zero-exit-attempt.json +0 -39
  57. package/docs/contracts/fixtures/evidence/v1/negative/adapter-registration-missing-execution-contract.json +0 -88
  58. package/docs/contracts/fixtures/evidence/v1/negative/available-empty-probe-capability.json +0 -27
  59. package/docs/contracts/fixtures/evidence/v1/negative/blocked-coverage-with-stale-reason.json +0 -27
  60. package/docs/contracts/fixtures/evidence/v1/negative/empty-trust-bindings-receipt.json +0 -72
  61. package/docs/contracts/fixtures/evidence/v1/negative/failed-zero-exit-attempt.json +0 -39
  62. package/docs/contracts/fixtures/evidence/v1/negative/forged-trusted-receipt.json +0 -35
  63. package/docs/contracts/fixtures/evidence/v1/negative/inconclusive-clean-exit-attempt.json +0 -39
  64. package/docs/contracts/fixtures/evidence/v1/negative/inconclusive-coverage-with-blocked-reason.json +0 -27
  65. package/docs/contracts/fixtures/evidence/v1/negative/minimal-policy-missing-owned-inputs.json +0 -5
  66. package/docs/contracts/fixtures/evidence/v1/negative/mismatched-probe-execution-id-capability.json +0 -42
  67. package/docs/contracts/fixtures/evidence/v1/negative/passed-empty-attempt.json +0 -22
  68. package/docs/contracts/fixtures/evidence/v1/negative/policy-default-preset-unregistered.json +0 -102
  69. package/docs/contracts/fixtures/evidence/v1/negative/policy-weakening-without-waiver.json +0 -102
  70. package/docs/contracts/fixtures/evidence/v1/negative/process-probe-missing-output-limits.json +0 -49
  71. package/docs/contracts/fixtures/evidence/v1/negative/satisfied-empty-coverage-verdict.json +0 -14
  72. package/docs/contracts/fixtures/evidence/v1/negative/skipped-zero-exit-attempt.json +0 -39
  73. package/docs/contracts/fixtures/evidence/v1/negative/stale-coverage-with-inconclusive-reason.json +0 -27
  74. package/docs/contracts/fixtures/evidence/v1/negative/timed-out-zero-exit-attempt.json +0 -39
  75. package/docs/contracts/fixtures/evidence/v1/negative/unavailable-zero-exit-attempt.json +0 -39
  76. package/docs/contracts/fixtures/evidence/v1/negative/unbound-waiver.json +0 -21
  77. package/docs/contracts/fixtures/evidence/v1/negative/unsatisfied-coverage-without-gap.json +0 -63
  78. package/docs/contracts/fixtures/evidence/v1/negative/waived-coverage-forbidden-gap-reason.json +0 -28
  79. package/docs/contracts/fixtures/evidence/v1/negative/waived-coverage-missing-waiver-id.json +0 -27
  80. package/docs/contracts/fixtures/evidence/v1/schemas/evidence-contract-v1.schema.json +0 -2685
  81. package/docs/contracts/schemas/com.planr.web.dom_state.v1.schema.json +0 -30
  82. package/docs/documentation/CONTRACT.md +0 -164
  83. package/docs/documentation/COVERAGE.md +0 -98
  84. package/docs/documentation/INFORMATION_ARCHITECTURE.md +0 -151
  85. package/docs/fixtures/mcp-contract.json +0 -153
  86. package/npm/bin/native-launcher.js +0 -67
  87. package/npm/bin/planr-browser-harness-adapter.js +0 -8
  88. package/npm/bin/planr.js +0 -8
  89. package/npm/native/darwin-arm64/planr +0 -0
  90. package/npm/native/darwin-arm64/planr-browser-harness-adapter +0 -0
  91. package/npm/native/darwin-arm64/planr-host-capability-validator +0 -0
  92. package/npm/native/darwin-x86_64/planr +0 -0
  93. package/npm/native/darwin-x86_64/planr-browser-harness-adapter +0 -0
  94. package/npm/native/darwin-x86_64/planr-host-capability-validator +0 -0
  95. package/npm/native/linux-arm64/planr +0 -0
  96. package/npm/native/linux-arm64/planr-browser-harness-adapter +0 -0
  97. package/npm/native/linux-arm64/planr-host-capability-validator +0 -0
  98. package/npm/native/linux-x86_64/planr +0 -0
  99. package/npm/native/linux-x86_64/planr-browser-harness-adapter +0 -0
  100. package/npm/native/linux-x86_64/planr-host-capability-validator +0 -0
  101. package/plugins/planr/.claude-plugin/plugin.json +0 -11
  102. package/plugins/planr/.codex-plugin/plugin.json +0 -25
  103. package/plugins/planr/agents/pi/planr-reviewer.md +0 -20
  104. package/plugins/planr/agents/pi/planr-worker.md +0 -35
  105. package/plugins/planr/agents/planr-reviewer.md +0 -21
  106. package/plugins/planr/agents/planr-worker.md +0 -40
  107. package/plugins/planr/skills/planr/SKILL.md +0 -60
  108. package/plugins/planr/skills/planr-goal/SKILL.md +0 -52
  109. package/plugins/planr/skills/planr-loop/SKILL.md +0 -126
  110. package/plugins/planr/skills/planr-loop/agents/planr-reviewer.md +0 -21
  111. package/plugins/planr/skills/planr-loop/agents/planr-worker.md +0 -36
  112. package/plugins/planr/skills/planr-loop/references/host-dispatch.md +0 -52
  113. package/plugins/planr/skills/planr-loop/references/recovery-and-verification.md +0 -26
  114. package/plugins/planr/skills/planr-plan/SKILL.md +0 -86
  115. package/plugins/planr/skills/planr-review/SKILL.md +0 -55
  116. package/plugins/planr/skills/planr-status/SKILL.md +0 -52
  117. package/plugins/planr/skills/planr-summary/SKILL.md +0 -30
  118. package/plugins/planr/skills/planr-task-graph/SKILL.md +0 -67
  119. package/plugins/planr/skills/planr-verify-web/SKILL.md +0 -62
  120. package/plugins/planr/skills/planr-work/SKILL.md +0 -93
  121. package/scripts/host-capability-experiment.mjs +0 -2481
  122. package/scripts/host-capability-runtime/v1/schemas/host-capability-expected-manifest.schema.json +0 -377
  123. package/scripts/host-capability-runtime/v1/schemas/host-capability-observed-raw.schema.json +0 -439
  124. package/scripts/host-capability-runtime/v1/schemas/host-capability-provenance.schema.json +0 -178
  125. package/scripts/planr-host-capability-validator +0 -57
  126. /package/{LICENSE.md → LICENSE} +0 -0
@@ -1,2685 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://planr.local/contracts/evidence/v1/evidence-contract-v1.schema.json",
4
- "title": "Planr Evidence Contract v1",
5
- "type": "object",
6
- "oneOf": [
7
- {
8
- "$ref": "#/$defs/ProofObligation"
9
- },
10
- {
11
- "$ref": "#/$defs/VerificationCapabilityManifest"
12
- },
13
- {
14
- "$ref": "#/$defs/VerificationCapabilityInstance"
15
- },
16
- {
17
- "$ref": "#/$defs/EvidenceAttempt"
18
- },
19
- {
20
- "$ref": "#/$defs/UntrustedEvidenceProposal"
21
- },
22
- {
23
- "$ref": "#/$defs/EvidenceReceipt"
24
- },
25
- {
26
- "$ref": "#/$defs/CoverageVerdict"
27
- },
28
- {
29
- "$ref": "#/$defs/EvidencePolicy"
30
- },
31
- {
32
- "$ref": "#/$defs/ProofPreset"
33
- },
34
- {
35
- "$ref": "#/$defs/EvidenceWaiver"
36
- }
37
- ],
38
- "$defs": {
39
- "SchemaVersion": {
40
- "const": "evidence.contract.v1"
41
- },
42
- "Id": {
43
- "type": "string",
44
- "minLength": 1,
45
- "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
46
- },
47
- "Timestamp": {
48
- "type": "string",
49
- "format": "date-time"
50
- },
51
- "Digest": {
52
- "type": "string",
53
- "pattern": "^sha256:[a-f0-9]{64}$"
54
- },
55
- "NamespaceName": {
56
- "type": "string",
57
- "pattern": "^(planr|mcp|host|project|[a-z0-9]+(\\.[a-z0-9-]+)+)\\.[a-z0-9][a-z0-9._-]*$"
58
- },
59
- "JsonObject": {
60
- "type": "object",
61
- "additionalProperties": true
62
- },
63
- "PayloadSchemaBinding": {
64
- "type": "object",
65
- "required": [
66
- "type",
67
- "schema_ref",
68
- "schema_digest"
69
- ],
70
- "additionalProperties": false,
71
- "properties": {
72
- "type": {
73
- "$ref": "#/$defs/NamespaceName"
74
- },
75
- "schema_ref": {
76
- "type": "string",
77
- "minLength": 1
78
- },
79
- "schema_digest": {
80
- "$ref": "#/$defs/Digest"
81
- }
82
- }
83
- },
84
- "ProcessExecutionContract": {
85
- "type": "object",
86
- "required": [
87
- "kind",
88
- "executable",
89
- "args",
90
- "timeout_ms",
91
- "stdout_limit_bytes",
92
- "stderr_limit_bytes",
93
- "payload_schema"
94
- ],
95
- "additionalProperties": false,
96
- "properties": {
97
- "kind": {
98
- "const": "process"
99
- },
100
- "executable": {
101
- "type": "string",
102
- "minLength": 1
103
- },
104
- "args": {
105
- "type": "array",
106
- "items": {
107
- "type": "string"
108
- }
109
- },
110
- "working_directory": {
111
- "type": "string",
112
- "minLength": 1
113
- },
114
- "timeout_ms": {
115
- "type": "integer",
116
- "minimum": 1
117
- },
118
- "stdout_limit_bytes": {
119
- "type": "integer",
120
- "minimum": 1
121
- },
122
- "stderr_limit_bytes": {
123
- "type": "integer",
124
- "minimum": 1
125
- },
126
- "payload_schema": {
127
- "$ref": "#/$defs/PayloadSchemaBinding"
128
- }
129
- }
130
- },
131
- "ProcessAvailabilityProbe": {
132
- "type": "object",
133
- "required": [
134
- "kind",
135
- "execution"
136
- ],
137
- "additionalProperties": false,
138
- "properties": {
139
- "kind": {
140
- "const": "process"
141
- },
142
- "execution": {
143
- "$ref": "#/$defs/ProcessExecutionContract"
144
- }
145
- }
146
- },
147
- "AvailabilityProbeContract": {
148
- "oneOf": [
149
- {
150
- "$ref": "#/$defs/ProcessAvailabilityProbe"
151
- }
152
- ]
153
- },
154
- "EvidenceScope": {
155
- "type": "object",
156
- "required": [
157
- "kind",
158
- "id"
159
- ],
160
- "additionalProperties": false,
161
- "properties": {
162
- "kind": {
163
- "enum": [
164
- "criterion",
165
- "item",
166
- "plan",
167
- "goal"
168
- ]
169
- },
170
- "id": {
171
- "$ref": "#/$defs/Id"
172
- },
173
- "plan_id": {
174
- "$ref": "#/$defs/Id"
175
- },
176
- "item_id": {
177
- "$ref": "#/$defs/Id"
178
- },
179
- "criterion_id": {
180
- "$ref": "#/$defs/Id"
181
- }
182
- }
183
- },
184
- "StringList": {
185
- "type": "array",
186
- "items": {
187
- "type": "string",
188
- "minLength": 1
189
- }
190
- },
191
- "ArtifactRef": {
192
- "type": "object",
193
- "required": [
194
- "id",
195
- "kind",
196
- "digest"
197
- ],
198
- "additionalProperties": true,
199
- "properties": {
200
- "id": {
201
- "$ref": "#/$defs/Id"
202
- },
203
- "kind": {
204
- "type": "string",
205
- "minLength": 1
206
- },
207
- "digest": {
208
- "$ref": "#/$defs/Digest"
209
- },
210
- "uri": {
211
- "type": "string",
212
- "minLength": 1
213
- }
214
- }
215
- },
216
- "SourceBinding": {
217
- "type": "object",
218
- "required": [
219
- "revision",
220
- "tree_digest",
221
- "dirty"
222
- ],
223
- "additionalProperties": false,
224
- "properties": {
225
- "revision": {
226
- "type": "string",
227
- "minLength": 7
228
- },
229
- "tree_digest": {
230
- "$ref": "#/$defs/Digest"
231
- },
232
- "dirty": {
233
- "type": "boolean"
234
- }
235
- }
236
- },
237
- "TargetBinding": {
238
- "type": "object",
239
- "required": [
240
- "kind"
241
- ],
242
- "anyOf": [
243
- {
244
- "required": [
245
- "digest"
246
- ]
247
- },
248
- {
249
- "required": [
250
- "uri"
251
- ]
252
- },
253
- {
254
- "required": [
255
- "deployment_id"
256
- ]
257
- }
258
- ],
259
- "additionalProperties": false,
260
- "properties": {
261
- "kind": {
262
- "type": "string",
263
- "minLength": 1
264
- },
265
- "uri": {
266
- "type": "string",
267
- "minLength": 1
268
- },
269
- "digest": {
270
- "$ref": "#/$defs/Digest"
271
- },
272
- "deployment_id": {
273
- "$ref": "#/$defs/Id"
274
- }
275
- }
276
- },
277
- "EnvironmentBinding": {
278
- "type": "object",
279
- "required": [
280
- "kind",
281
- "id",
282
- "digest"
283
- ],
284
- "additionalProperties": false,
285
- "properties": {
286
- "kind": {
287
- "type": "string",
288
- "minLength": 1
289
- },
290
- "id": {
291
- "$ref": "#/$defs/Id"
292
- },
293
- "digest": {
294
- "$ref": "#/$defs/Digest"
295
- }
296
- }
297
- },
298
- "RuntimeTarget": {
299
- "type": "object",
300
- "required": [
301
- "kind",
302
- "id"
303
- ],
304
- "additionalProperties": true,
305
- "properties": {
306
- "kind": {
307
- "type": "string",
308
- "minLength": 1
309
- },
310
- "id": {
311
- "$ref": "#/$defs/Id"
312
- }
313
- }
314
- },
315
- "CapabilityBinding": {
316
- "type": "object",
317
- "required": [
318
- "manifest_id",
319
- "manifest_digest",
320
- "instance_id",
321
- "instance_digest"
322
- ],
323
- "additionalProperties": false,
324
- "properties": {
325
- "manifest_id": {
326
- "$ref": "#/$defs/Id"
327
- },
328
- "manifest_digest": {
329
- "$ref": "#/$defs/Digest"
330
- },
331
- "instance_id": {
332
- "$ref": "#/$defs/Id"
333
- },
334
- "instance_digest": {
335
- "$ref": "#/$defs/Digest"
336
- }
337
- }
338
- },
339
- "RawResultRef": {
340
- "type": "object",
341
- "required": [
342
- "kind",
343
- "digest"
344
- ],
345
- "additionalProperties": true,
346
- "properties": {
347
- "kind": {
348
- "type": "string",
349
- "minLength": 1
350
- },
351
- "digest": {
352
- "$ref": "#/$defs/Digest"
353
- },
354
- "artifact_id": {
355
- "$ref": "#/$defs/Id"
356
- }
357
- }
358
- },
359
- "VantagePoint": {
360
- "type": "object",
361
- "required": [
362
- "kind",
363
- "identity"
364
- ],
365
- "additionalProperties": false,
366
- "properties": {
367
- "kind": {
368
- "type": "string",
369
- "minLength": 1
370
- },
371
- "identity": {
372
- "type": "string",
373
- "minLength": 1
374
- }
375
- }
376
- },
377
- "FixtureDisclosure": {
378
- "type": "object",
379
- "required": [
380
- "fixtures_used",
381
- "mocks_used"
382
- ],
383
- "additionalProperties": false,
384
- "properties": {
385
- "fixtures_used": {
386
- "type": "boolean"
387
- },
388
- "mocks_used": {
389
- "type": "boolean"
390
- },
391
- "fixture_refs": {
392
- "$ref": "#/$defs/StringList"
393
- },
394
- "mock_refs": {
395
- "$ref": "#/$defs/StringList"
396
- }
397
- }
398
- },
399
- "PermissionState": {
400
- "type": "object",
401
- "required": [
402
- "network",
403
- "filesystem"
404
- ],
405
- "additionalProperties": false,
406
- "properties": {
407
- "network": {
408
- "type": "string",
409
- "minLength": 1
410
- },
411
- "filesystem": {
412
- "type": "string",
413
- "minLength": 1
414
- },
415
- "environment": {
416
- "type": "string",
417
- "minLength": 1
418
- },
419
- "secrets": {
420
- "type": "string",
421
- "minLength": 1
422
- }
423
- }
424
- },
425
- "SandboxState": {
426
- "type": "object",
427
- "required": [
428
- "mode",
429
- "limits"
430
- ],
431
- "additionalProperties": false,
432
- "properties": {
433
- "mode": {
434
- "type": "string",
435
- "minLength": 1
436
- },
437
- "limits": {
438
- "type": "object",
439
- "required": [
440
- "timeout_ms",
441
- "stdout_bytes",
442
- "stderr_bytes"
443
- ],
444
- "additionalProperties": false,
445
- "properties": {
446
- "timeout_ms": {
447
- "type": "integer",
448
- "minimum": 1
449
- },
450
- "stdout_bytes": {
451
- "type": "integer",
452
- "minimum": 0
453
- },
454
- "stderr_bytes": {
455
- "type": "integer",
456
- "minimum": 0
457
- }
458
- }
459
- }
460
- }
461
- },
462
- "ProbeResult": {
463
- "type": "object",
464
- "required": [
465
- "probe_execution_id",
466
- "outcome",
467
- "observed_at",
468
- "checks"
469
- ],
470
- "additionalProperties": false,
471
- "properties": {
472
- "probe_execution_id": {
473
- "$ref": "#/$defs/Id"
474
- },
475
- "outcome": {
476
- "$ref": "#/$defs/AttemptStatus"
477
- },
478
- "observed_at": {
479
- "$ref": "#/$defs/Timestamp"
480
- },
481
- "checks": {
482
- "type": "array",
483
- "minItems": 1,
484
- "items": {
485
- "type": "object",
486
- "required": [
487
- "name",
488
- "outcome"
489
- ],
490
- "additionalProperties": false,
491
- "properties": {
492
- "name": {
493
- "type": "string",
494
- "minLength": 1
495
- },
496
- "outcome": {
497
- "$ref": "#/$defs/AttemptStatus"
498
- },
499
- "detail": {
500
- "type": "string",
501
- "minLength": 1
502
- }
503
- }
504
- }
505
- }
506
- }
507
- },
508
- "ObservedPayloadContract": {
509
- "type": "object",
510
- "required": [
511
- "schema_ref",
512
- "observation_types"
513
- ],
514
- "additionalProperties": false,
515
- "properties": {
516
- "schema_ref": {
517
- "type": "string",
518
- "minLength": 1
519
- },
520
- "observation_types": {
521
- "type": "array",
522
- "minItems": 1,
523
- "items": {
524
- "$ref": "#/$defs/NamespaceName"
525
- }
526
- }
527
- }
528
- },
529
- "ResolvedExecution": {
530
- "oneOf": [
531
- {
532
- "type": "object",
533
- "required": [
534
- "kind",
535
- "command",
536
- "cwd"
537
- ],
538
- "additionalProperties": false,
539
- "properties": {
540
- "kind": {
541
- "const": "command"
542
- },
543
- "command": {
544
- "type": "array",
545
- "minItems": 1,
546
- "items": {
547
- "type": "string",
548
- "minLength": 1
549
- }
550
- },
551
- "cwd": {
552
- "type": "string",
553
- "minLength": 1
554
- },
555
- "env_digest": {
556
- "$ref": "#/$defs/Digest"
557
- }
558
- }
559
- },
560
- {
561
- "type": "object",
562
- "required": [
563
- "kind",
564
- "tool_name",
565
- "arguments_digest"
566
- ],
567
- "additionalProperties": false,
568
- "properties": {
569
- "kind": {
570
- "const": "tool_call"
571
- },
572
- "tool_name": {
573
- "type": "string",
574
- "minLength": 1
575
- },
576
- "arguments_digest": {
577
- "$ref": "#/$defs/Digest"
578
- }
579
- }
580
- }
581
- ]
582
- },
583
- "ExecutionResult": {
584
- "type": "object",
585
- "required": [
586
- "exit_code",
587
- "signal",
588
- "error"
589
- ],
590
- "additionalProperties": false,
591
- "properties": {
592
- "exit_code": {
593
- "anyOf": [
594
- {
595
- "type": "integer",
596
- "minimum": 0
597
- },
598
- {
599
- "type": "null"
600
- }
601
- ]
602
- },
603
- "signal": {
604
- "anyOf": [
605
- {
606
- "type": "string",
607
- "minLength": 1
608
- },
609
- {
610
- "type": "null"
611
- }
612
- ]
613
- },
614
- "error": {
615
- "anyOf": [
616
- {
617
- "type": "string",
618
- "minLength": 1
619
- },
620
- {
621
- "type": "null"
622
- }
623
- ]
624
- }
625
- }
626
- },
627
- "RetryLineage": {
628
- "type": "object",
629
- "required": [
630
- "attempt_number",
631
- "max_attempts",
632
- "previous_attempt_ids"
633
- ],
634
- "additionalProperties": false,
635
- "properties": {
636
- "attempt_number": {
637
- "type": "integer",
638
- "minimum": 1
639
- },
640
- "max_attempts": {
641
- "type": "integer",
642
- "minimum": 1
643
- },
644
- "previous_attempt_ids": {
645
- "type": "array",
646
- "items": {
647
- "$ref": "#/$defs/Id"
648
- }
649
- }
650
- }
651
- },
652
- "OutputBounds": {
653
- "type": "object",
654
- "required": [
655
- "stdout_bytes",
656
- "stderr_bytes",
657
- "stdout_truncated",
658
- "stderr_truncated"
659
- ],
660
- "additionalProperties": false,
661
- "properties": {
662
- "stdout_bytes": {
663
- "type": "integer",
664
- "minimum": 0
665
- },
666
- "stderr_bytes": {
667
- "type": "integer",
668
- "minimum": 0
669
- },
670
- "stdout_truncated": {
671
- "type": "boolean"
672
- },
673
- "stderr_truncated": {
674
- "type": "boolean"
675
- }
676
- }
677
- },
678
- "ProofObligation": {
679
- "type": "object",
680
- "required": [
681
- "id",
682
- "schema_version",
683
- "criterion_id",
684
- "plan_id",
685
- "title",
686
- "binding",
687
- "observations",
688
- "fixture_policy",
689
- "freshness_policy",
690
- "assurance_policy"
691
- ],
692
- "additionalProperties": false,
693
- "properties": {
694
- "id": {
695
- "$ref": "#/$defs/Id"
696
- },
697
- "schema_version": {
698
- "$ref": "#/$defs/SchemaVersion"
699
- },
700
- "criterion_id": {
701
- "$ref": "#/$defs/Id"
702
- },
703
- "plan_id": {
704
- "$ref": "#/$defs/Id"
705
- },
706
- "item_id": {
707
- "anyOf": [
708
- {
709
- "$ref": "#/$defs/Id"
710
- },
711
- {
712
- "type": "null"
713
- }
714
- ]
715
- },
716
- "title": {
717
- "type": "string",
718
- "minLength": 1
719
- },
720
- "binding": {
721
- "type": "boolean"
722
- },
723
- "observations": {
724
- "type": "array",
725
- "minItems": 1,
726
- "items": {
727
- "$ref": "#/$defs/ObservationRequirement"
728
- }
729
- },
730
- "fixture_policy": {
731
- "$ref": "#/$defs/JsonObject"
732
- },
733
- "freshness_policy": {
734
- "$ref": "#/$defs/JsonObject"
735
- },
736
- "assurance_policy": {
737
- "$ref": "#/$defs/JsonObject"
738
- },
739
- "supersedes": {
740
- "anyOf": [
741
- {
742
- "$ref": "#/$defs/Id"
743
- },
744
- {
745
- "type": "null"
746
- }
747
- ]
748
- }
749
- }
750
- },
751
- "ObservationRequirement": {
752
- "type": "object",
753
- "required": [
754
- "id",
755
- "type",
756
- "subject",
757
- "expected",
758
- "target"
759
- ],
760
- "additionalProperties": false,
761
- "properties": {
762
- "id": {
763
- "$ref": "#/$defs/Id"
764
- },
765
- "type": {
766
- "$ref": "#/$defs/NamespaceName"
767
- },
768
- "subject": {
769
- "type": "string",
770
- "minLength": 1
771
- },
772
- "expected": {
773
- "$ref": "#/$defs/JsonObject"
774
- },
775
- "target": {
776
- "$ref": "#/$defs/TargetBinding"
777
- },
778
- "payload_schema": {
779
- "$ref": "#/$defs/JsonObject"
780
- },
781
- "state_transitions": {
782
- "type": "array",
783
- "items": {
784
- "$ref": "#/$defs/JsonObject"
785
- }
786
- },
787
- "persistence": {
788
- "$ref": "#/$defs/JsonObject"
789
- },
790
- "negative_assertions": {
791
- "type": "array",
792
- "items": {
793
- "$ref": "#/$defs/JsonObject"
794
- }
795
- },
796
- "freshness_policy": {
797
- "$ref": "#/$defs/JsonObject"
798
- },
799
- "assurance_policy": {
800
- "$ref": "#/$defs/JsonObject"
801
- }
802
- }
803
- },
804
- "VerificationCapabilityManifest": {
805
- "type": "object",
806
- "required": [
807
- "id",
808
- "schema_version",
809
- "version",
810
- "adapter_kind",
811
- "adapter_digest",
812
- "supported_surfaces",
813
- "supported_observations",
814
- "supported_interactions",
815
- "supported_artifacts",
816
- "runtime_targets",
817
- "provenance_path",
818
- "permissions",
819
- "costs",
820
- "determinism",
821
- "repeatability",
822
- "independence",
823
- "blind_spots",
824
- "availability_probe"
825
- ],
826
- "additionalProperties": false,
827
- "properties": {
828
- "id": {
829
- "$ref": "#/$defs/Id"
830
- },
831
- "schema_version": {
832
- "$ref": "#/$defs/SchemaVersion"
833
- },
834
- "version": {
835
- "type": "string",
836
- "minLength": 1
837
- },
838
- "adapter_kind": {
839
- "enum": [
840
- "process",
841
- "host",
842
- "mcp",
843
- "artifact_import",
844
- "user_attestation"
845
- ]
846
- },
847
- "adapter_digest": {
848
- "$ref": "#/$defs/Digest"
849
- },
850
- "supported_surfaces": {
851
- "$ref": "#/$defs/StringList"
852
- },
853
- "supported_observations": {
854
- "type": "array",
855
- "minItems": 1,
856
- "items": {
857
- "$ref": "#/$defs/PayloadSchemaBinding"
858
- }
859
- },
860
- "supported_interactions": {
861
- "$ref": "#/$defs/StringList"
862
- },
863
- "supported_artifacts": {
864
- "$ref": "#/$defs/StringList"
865
- },
866
- "runtime_targets": {
867
- "type": "array",
868
- "minItems": 1,
869
- "items": {
870
- "$ref": "#/$defs/RuntimeTarget"
871
- }
872
- },
873
- "provenance_path": {
874
- "enum": [
875
- "planr_observed_execution",
876
- "verified_host_event",
877
- "mcp_attestation",
878
- "validated_artifact_import",
879
- "user_attestation"
880
- ]
881
- },
882
- "permissions": {
883
- "$ref": "#/$defs/JsonObject"
884
- },
885
- "costs": {
886
- "$ref": "#/$defs/JsonObject"
887
- },
888
- "determinism": {
889
- "type": "string",
890
- "minLength": 1
891
- },
892
- "repeatability": {
893
- "type": "string",
894
- "minLength": 1
895
- },
896
- "independence": {
897
- "type": "string",
898
- "minLength": 1
899
- },
900
- "blind_spots": {
901
- "$ref": "#/$defs/StringList"
902
- },
903
- "availability_probe": {
904
- "$ref": "#/$defs/AvailabilityProbeContract"
905
- }
906
- }
907
- },
908
- "VerificationCapabilityInstance": {
909
- "type": "object",
910
- "required": [
911
- "id",
912
- "schema_version",
913
- "manifest_id",
914
- "manifest_digest",
915
- "host",
916
- "surface",
917
- "host_version",
918
- "adapter_version",
919
- "environment",
920
- "permissions",
921
- "availability",
922
- "probe_result",
923
- "observed_payload_contract",
924
- "limitations",
925
- "captured_at"
926
- ],
927
- "additionalProperties": false,
928
- "properties": {
929
- "id": {
930
- "$ref": "#/$defs/Id"
931
- },
932
- "schema_version": {
933
- "$ref": "#/$defs/SchemaVersion"
934
- },
935
- "manifest_id": {
936
- "$ref": "#/$defs/Id"
937
- },
938
- "manifest_digest": {
939
- "$ref": "#/$defs/Digest"
940
- },
941
- "host": {
942
- "type": "string",
943
- "minLength": 1
944
- },
945
- "surface": {
946
- "type": "string",
947
- "minLength": 1
948
- },
949
- "host_version": {
950
- "type": "string",
951
- "minLength": 1
952
- },
953
- "adapter_version": {
954
- "type": "string",
955
- "minLength": 1
956
- },
957
- "environment": {
958
- "$ref": "#/$defs/EnvironmentBinding"
959
- },
960
- "permissions": {
961
- "$ref": "#/$defs/PermissionState"
962
- },
963
- "availability": {
964
- "$ref": "#/$defs/CapabilityAvailability"
965
- },
966
- "probe_result": {
967
- "$ref": "#/$defs/ProbeResult"
968
- },
969
- "observed_payload_contract": {
970
- "$ref": "#/$defs/ObservedPayloadContract"
971
- },
972
- "limitations": {
973
- "$ref": "#/$defs/StringList"
974
- },
975
- "captured_at": {
976
- "$ref": "#/$defs/Timestamp"
977
- }
978
- },
979
- "allOf": [
980
- {
981
- "if": {
982
- "properties": {
983
- "availability": {
984
- "type": "object",
985
- "properties": {
986
- "status": {
987
- "const": "available"
988
- }
989
- },
990
- "required": [
991
- "status"
992
- ]
993
- }
994
- }
995
- },
996
- "then": {
997
- "properties": {
998
- "probe_result": {
999
- "type": "object",
1000
- "properties": {
1001
- "outcome": {
1002
- "const": "passed"
1003
- }
1004
- },
1005
- "required": [
1006
- "outcome",
1007
- "probe_execution_id"
1008
- ]
1009
- }
1010
- }
1011
- }
1012
- }
1013
- ]
1014
- },
1015
- "CapabilityAvailability": {
1016
- "type": "object",
1017
- "required": [
1018
- "status"
1019
- ],
1020
- "additionalProperties": false,
1021
- "properties": {
1022
- "status": {
1023
- "enum": [
1024
- "available",
1025
- "unavailable",
1026
- "degraded",
1027
- "permission_denied",
1028
- "sandbox_blocked",
1029
- "unsupported",
1030
- "probe_failed"
1031
- ]
1032
- },
1033
- "reason": {
1034
- "type": "string",
1035
- "minLength": 1
1036
- }
1037
- }
1038
- },
1039
- "EvidenceAttempt": {
1040
- "type": "object",
1041
- "required": [
1042
- "id",
1043
- "schema_version",
1044
- "criterion_id",
1045
- "obligation_id",
1046
- "capability_instance_id",
1047
- "started_at",
1048
- "ended_at",
1049
- "status",
1050
- "resolved_command",
1051
- "exit",
1052
- "retry_lineage",
1053
- "stdout_digest",
1054
- "stderr_digest",
1055
- "raw_result",
1056
- "artifacts",
1057
- "output_bounds"
1058
- ],
1059
- "additionalProperties": false,
1060
- "properties": {
1061
- "id": {
1062
- "$ref": "#/$defs/Id"
1063
- },
1064
- "schema_version": {
1065
- "$ref": "#/$defs/SchemaVersion"
1066
- },
1067
- "criterion_id": {
1068
- "$ref": "#/$defs/Id"
1069
- },
1070
- "obligation_id": {
1071
- "$ref": "#/$defs/Id"
1072
- },
1073
- "capability_instance_id": {
1074
- "$ref": "#/$defs/Id"
1075
- },
1076
- "started_at": {
1077
- "$ref": "#/$defs/Timestamp"
1078
- },
1079
- "ended_at": {
1080
- "$ref": "#/$defs/Timestamp"
1081
- },
1082
- "status": {
1083
- "$ref": "#/$defs/AttemptStatus"
1084
- },
1085
- "resolved_command": {
1086
- "$ref": "#/$defs/ResolvedExecution"
1087
- },
1088
- "exit": {
1089
- "$ref": "#/$defs/ExecutionResult"
1090
- },
1091
- "retry_lineage": {
1092
- "$ref": "#/$defs/RetryLineage"
1093
- },
1094
- "stdout_digest": {
1095
- "$ref": "#/$defs/Digest"
1096
- },
1097
- "stderr_digest": {
1098
- "$ref": "#/$defs/Digest"
1099
- },
1100
- "raw_result": {
1101
- "$ref": "#/$defs/RawResultRef"
1102
- },
1103
- "artifacts": {
1104
- "type": "array",
1105
- "items": {
1106
- "$ref": "#/$defs/ArtifactRef"
1107
- }
1108
- },
1109
- "output_bounds": {
1110
- "$ref": "#/$defs/OutputBounds"
1111
- }
1112
- },
1113
- "allOf": [
1114
- {
1115
- "if": {
1116
- "properties": {
1117
- "status": {
1118
- "const": "passed"
1119
- }
1120
- },
1121
- "required": [
1122
- "status"
1123
- ]
1124
- },
1125
- "then": {
1126
- "properties": {
1127
- "exit": {
1128
- "type": "object",
1129
- "properties": {
1130
- "exit_code": {
1131
- "const": 0
1132
- },
1133
- "signal": {
1134
- "type": "null"
1135
- },
1136
- "error": {
1137
- "type": "null"
1138
- }
1139
- },
1140
- "required": [
1141
- "exit_code",
1142
- "signal",
1143
- "error"
1144
- ]
1145
- }
1146
- }
1147
- }
1148
- },
1149
- {
1150
- "if": {
1151
- "properties": {
1152
- "status": {
1153
- "const": "failed"
1154
- }
1155
- },
1156
- "required": [
1157
- "status"
1158
- ]
1159
- },
1160
- "then": {
1161
- "properties": {
1162
- "exit": {
1163
- "type": "object",
1164
- "properties": {
1165
- "exit_code": {
1166
- "type": "integer",
1167
- "minimum": 1
1168
- },
1169
- "signal": {
1170
- "type": "null"
1171
- }
1172
- },
1173
- "required": [
1174
- "exit_code",
1175
- "signal",
1176
- "error"
1177
- ]
1178
- }
1179
- }
1180
- }
1181
- },
1182
- {
1183
- "if": {
1184
- "properties": {
1185
- "status": {
1186
- "const": "timed_out"
1187
- }
1188
- },
1189
- "required": [
1190
- "status"
1191
- ]
1192
- },
1193
- "then": {
1194
- "properties": {
1195
- "exit": {
1196
- "type": "object",
1197
- "properties": {
1198
- "exit_code": {
1199
- "type": "null"
1200
- },
1201
- "signal": {
1202
- "type": "null"
1203
- },
1204
- "error": {
1205
- "const": "timed_out"
1206
- }
1207
- },
1208
- "required": [
1209
- "exit_code",
1210
- "signal",
1211
- "error"
1212
- ]
1213
- }
1214
- }
1215
- }
1216
- },
1217
- {
1218
- "if": {
1219
- "properties": {
1220
- "status": {
1221
- "const": "aborted"
1222
- }
1223
- },
1224
- "required": [
1225
- "status"
1226
- ]
1227
- },
1228
- "then": {
1229
- "properties": {
1230
- "exit": {
1231
- "type": "object",
1232
- "properties": {
1233
- "exit_code": {
1234
- "type": "null"
1235
- },
1236
- "signal": {
1237
- "type": "string",
1238
- "minLength": 1
1239
- },
1240
- "error": {
1241
- "const": "aborted"
1242
- }
1243
- },
1244
- "required": [
1245
- "exit_code",
1246
- "signal",
1247
- "error"
1248
- ]
1249
- }
1250
- }
1251
- }
1252
- },
1253
- {
1254
- "if": {
1255
- "properties": {
1256
- "status": {
1257
- "const": "skipped"
1258
- }
1259
- },
1260
- "required": [
1261
- "status"
1262
- ]
1263
- },
1264
- "then": {
1265
- "properties": {
1266
- "exit": {
1267
- "type": "object",
1268
- "properties": {
1269
- "exit_code": {
1270
- "type": "null"
1271
- },
1272
- "signal": {
1273
- "type": "null"
1274
- },
1275
- "error": {
1276
- "const": "skipped"
1277
- }
1278
- },
1279
- "required": [
1280
- "exit_code",
1281
- "signal",
1282
- "error"
1283
- ]
1284
- }
1285
- }
1286
- }
1287
- },
1288
- {
1289
- "if": {
1290
- "properties": {
1291
- "status": {
1292
- "const": "unavailable"
1293
- }
1294
- },
1295
- "required": [
1296
- "status"
1297
- ]
1298
- },
1299
- "then": {
1300
- "properties": {
1301
- "exit": {
1302
- "type": "object",
1303
- "properties": {
1304
- "exit_code": {
1305
- "type": "null"
1306
- },
1307
- "signal": {
1308
- "type": "null"
1309
- },
1310
- "error": {
1311
- "const": "unavailable"
1312
- }
1313
- },
1314
- "required": [
1315
- "exit_code",
1316
- "signal",
1317
- "error"
1318
- ]
1319
- }
1320
- }
1321
- }
1322
- },
1323
- {
1324
- "if": {
1325
- "properties": {
1326
- "status": {
1327
- "const": "inconclusive"
1328
- }
1329
- },
1330
- "required": [
1331
- "status"
1332
- ]
1333
- },
1334
- "then": {
1335
- "properties": {
1336
- "exit": {
1337
- "type": "object",
1338
- "properties": {
1339
- "exit_code": {
1340
- "const": 0
1341
- },
1342
- "signal": {
1343
- "type": "null"
1344
- },
1345
- "error": {
1346
- "const": "inconclusive"
1347
- }
1348
- },
1349
- "required": [
1350
- "exit_code",
1351
- "signal",
1352
- "error"
1353
- ]
1354
- }
1355
- }
1356
- }
1357
- }
1358
- ]
1359
- },
1360
- "AttemptStatus": {
1361
- "enum": [
1362
- "passed",
1363
- "failed",
1364
- "skipped",
1365
- "timed_out",
1366
- "aborted",
1367
- "unavailable",
1368
- "inconclusive"
1369
- ]
1370
- },
1371
- "UntrustedEvidenceProposal": {
1372
- "type": "object",
1373
- "required": [
1374
- "id",
1375
- "schema_version",
1376
- "source_kind",
1377
- "submitted_at",
1378
- "claims",
1379
- "artifact_refs",
1380
- "producer_metadata"
1381
- ],
1382
- "additionalProperties": false,
1383
- "properties": {
1384
- "id": {
1385
- "$ref": "#/$defs/Id"
1386
- },
1387
- "schema_version": {
1388
- "$ref": "#/$defs/SchemaVersion"
1389
- },
1390
- "source_kind": {
1391
- "enum": [
1392
- "agent",
1393
- "adapter",
1394
- "host",
1395
- "mcp",
1396
- "artifact_import",
1397
- "user"
1398
- ]
1399
- },
1400
- "submitted_at": {
1401
- "$ref": "#/$defs/Timestamp"
1402
- },
1403
- "claims": {
1404
- "$ref": "#/$defs/JsonObject"
1405
- },
1406
- "artifact_refs": {
1407
- "type": "array",
1408
- "items": {
1409
- "$ref": "#/$defs/ArtifactRef"
1410
- }
1411
- },
1412
- "producer_metadata": {
1413
- "$ref": "#/$defs/JsonObject"
1414
- }
1415
- },
1416
- "not": {
1417
- "anyOf": [
1418
- {
1419
- "required": [
1420
- "provenance"
1421
- ]
1422
- },
1423
- {
1424
- "required": [
1425
- "execution_id"
1426
- ]
1427
- },
1428
- {
1429
- "required": [
1430
- "receipt_digest"
1431
- ]
1432
- },
1433
- {
1434
- "required": [
1435
- "closure_authority"
1436
- ]
1437
- }
1438
- ]
1439
- }
1440
- },
1441
- "EvidenceReceipt": {
1442
- "type": "object",
1443
- "required": [
1444
- "id",
1445
- "schema_version",
1446
- "criterion_id",
1447
- "obligation_id",
1448
- "receipt_status",
1449
- "source",
1450
- "target",
1451
- "environment",
1452
- "vantage_point",
1453
- "capability",
1454
- "provenance",
1455
- "observations",
1456
- "attempt_ids",
1457
- "retry_history",
1458
- "artifacts",
1459
- "raw_result",
1460
- "config_digest",
1461
- "fixture_disclosure",
1462
- "permissions",
1463
- "sandbox",
1464
- "proof_gaps",
1465
- "started_at",
1466
- "ended_at",
1467
- "receipt_digest"
1468
- ],
1469
- "additionalProperties": false,
1470
- "properties": {
1471
- "id": {
1472
- "$ref": "#/$defs/Id"
1473
- },
1474
- "schema_version": {
1475
- "$ref": "#/$defs/SchemaVersion"
1476
- },
1477
- "criterion_id": {
1478
- "$ref": "#/$defs/Id"
1479
- },
1480
- "obligation_id": {
1481
- "$ref": "#/$defs/Id"
1482
- },
1483
- "receipt_status": {
1484
- "enum": [
1485
- "trusted",
1486
- "rejected",
1487
- "untrusted",
1488
- "stale",
1489
- "superseded"
1490
- ]
1491
- },
1492
- "source": {
1493
- "$ref": "#/$defs/SourceBinding"
1494
- },
1495
- "target": {
1496
- "$ref": "#/$defs/TargetBinding"
1497
- },
1498
- "environment": {
1499
- "$ref": "#/$defs/EnvironmentBinding"
1500
- },
1501
- "vantage_point": {
1502
- "$ref": "#/$defs/VantagePoint"
1503
- },
1504
- "capability": {
1505
- "$ref": "#/$defs/CapabilityBinding"
1506
- },
1507
- "provenance": {
1508
- "$ref": "#/$defs/TrustedProvenance"
1509
- },
1510
- "observations": {
1511
- "type": "array",
1512
- "minItems": 1,
1513
- "items": {
1514
- "$ref": "#/$defs/ObservationResult"
1515
- }
1516
- },
1517
- "attempt_ids": {
1518
- "type": "array",
1519
- "minItems": 1,
1520
- "items": {
1521
- "$ref": "#/$defs/Id"
1522
- }
1523
- },
1524
- "retry_history": {
1525
- "type": "array",
1526
- "items": {
1527
- "$ref": "#/$defs/JsonObject"
1528
- }
1529
- },
1530
- "artifacts": {
1531
- "type": "array",
1532
- "items": {
1533
- "$ref": "#/$defs/ArtifactRef"
1534
- }
1535
- },
1536
- "raw_result": {
1537
- "$ref": "#/$defs/RawResultRef"
1538
- },
1539
- "config_digest": {
1540
- "$ref": "#/$defs/Digest"
1541
- },
1542
- "fixture_disclosure": {
1543
- "$ref": "#/$defs/FixtureDisclosure"
1544
- },
1545
- "permissions": {
1546
- "$ref": "#/$defs/PermissionState"
1547
- },
1548
- "sandbox": {
1549
- "$ref": "#/$defs/SandboxState"
1550
- },
1551
- "proof_gaps": {
1552
- "type": "array",
1553
- "items": {
1554
- "$ref": "#/$defs/GapReason"
1555
- }
1556
- },
1557
- "started_at": {
1558
- "$ref": "#/$defs/Timestamp"
1559
- },
1560
- "ended_at": {
1561
- "$ref": "#/$defs/Timestamp"
1562
- },
1563
- "receipt_digest": {
1564
- "$ref": "#/$defs/Digest"
1565
- }
1566
- }
1567
- },
1568
- "TrustedProvenance": {
1569
- "type": "object",
1570
- "required": [
1571
- "source",
1572
- "assigned_by",
1573
- "execution_id"
1574
- ],
1575
- "additionalProperties": false,
1576
- "properties": {
1577
- "source": {
1578
- "enum": [
1579
- "planr_observed_execution",
1580
- "verified_host_event",
1581
- "mcp_attestation",
1582
- "validated_artifact_import",
1583
- "user_attestation"
1584
- ]
1585
- },
1586
- "assigned_by": {
1587
- "const": "planr"
1588
- },
1589
- "execution_id": {
1590
- "$ref": "#/$defs/Id"
1591
- },
1592
- "tool_call_id": {
1593
- "anyOf": [
1594
- {
1595
- "$ref": "#/$defs/Id"
1596
- },
1597
- {
1598
- "type": "null"
1599
- }
1600
- ]
1601
- }
1602
- }
1603
- },
1604
- "ObservationResult": {
1605
- "type": "object",
1606
- "required": [
1607
- "requirement_id",
1608
- "type",
1609
- "outcome",
1610
- "predicate",
1611
- "actual"
1612
- ],
1613
- "additionalProperties": false,
1614
- "properties": {
1615
- "requirement_id": {
1616
- "$ref": "#/$defs/Id"
1617
- },
1618
- "type": {
1619
- "$ref": "#/$defs/NamespaceName"
1620
- },
1621
- "outcome": {
1622
- "$ref": "#/$defs/AttemptStatus"
1623
- },
1624
- "predicate": {
1625
- "$ref": "#/$defs/JsonObject"
1626
- },
1627
- "actual": {
1628
- "$ref": "#/$defs/JsonObject"
1629
- }
1630
- }
1631
- },
1632
- "CoverageVerdict": {
1633
- "type": "object",
1634
- "required": [
1635
- "id",
1636
- "schema_version",
1637
- "scope",
1638
- "evaluated_at",
1639
- "status",
1640
- "observation_coverage",
1641
- "validation_details",
1642
- "suggested_next_action",
1643
- "actionable_now"
1644
- ],
1645
- "additionalProperties": false,
1646
- "properties": {
1647
- "id": {
1648
- "$ref": "#/$defs/Id"
1649
- },
1650
- "schema_version": {
1651
- "$ref": "#/$defs/SchemaVersion"
1652
- },
1653
- "scope": {
1654
- "$ref": "#/$defs/EvidenceScope"
1655
- },
1656
- "evaluated_at": {
1657
- "$ref": "#/$defs/Timestamp"
1658
- },
1659
- "status": {
1660
- "enum": [
1661
- "satisfied",
1662
- "unsatisfied",
1663
- "blocked",
1664
- "inconclusive",
1665
- "waived",
1666
- "stale"
1667
- ]
1668
- },
1669
- "observation_coverage": {
1670
- "type": "array",
1671
- "minItems": 1,
1672
- "items": {
1673
- "$ref": "#/$defs/ObservationCoverage"
1674
- }
1675
- },
1676
- "validation_details": {
1677
- "$ref": "#/$defs/CoverageValidationDetails"
1678
- },
1679
- "suggested_next_action": {
1680
- "type": "string"
1681
- },
1682
- "actionable_now": {
1683
- "type": "boolean"
1684
- }
1685
- },
1686
- "allOf": [
1687
- {
1688
- "if": {
1689
- "properties": {
1690
- "status": {
1691
- "const": "satisfied"
1692
- }
1693
- },
1694
- "required": [
1695
- "status"
1696
- ]
1697
- },
1698
- "then": {
1699
- "properties": {
1700
- "observation_coverage": {
1701
- "type": "array",
1702
- "minItems": 1,
1703
- "items": {
1704
- "$ref": "#/$defs/CoveredObservationCoverage"
1705
- }
1706
- },
1707
- "validation_details": {
1708
- "$ref": "#/$defs/PassingCoverageValidationDetails"
1709
- },
1710
- "actionable_now": {
1711
- "const": false
1712
- }
1713
- }
1714
- }
1715
- },
1716
- {
1717
- "if": {
1718
- "properties": {
1719
- "status": {
1720
- "const": "unsatisfied"
1721
- }
1722
- },
1723
- "required": [
1724
- "status"
1725
- ]
1726
- },
1727
- "then": {
1728
- "properties": {
1729
- "observation_coverage": {
1730
- "type": "array",
1731
- "minItems": 1,
1732
- "items": {
1733
- "oneOf": [
1734
- {
1735
- "$ref": "#/$defs/CoveredObservationCoverage"
1736
- },
1737
- {
1738
- "$ref": "#/$defs/UnsatisfiedObservationCoverage"
1739
- }
1740
- ]
1741
- },
1742
- "contains": {
1743
- "$ref": "#/$defs/UnsatisfiedObservationCoverage"
1744
- }
1745
- }
1746
- }
1747
- }
1748
- },
1749
- {
1750
- "if": {
1751
- "properties": {
1752
- "status": {
1753
- "const": "blocked"
1754
- }
1755
- },
1756
- "required": [
1757
- "status"
1758
- ]
1759
- },
1760
- "then": {
1761
- "properties": {
1762
- "observation_coverage": {
1763
- "type": "array",
1764
- "minItems": 1,
1765
- "items": {
1766
- "oneOf": [
1767
- {
1768
- "$ref": "#/$defs/CoveredObservationCoverage"
1769
- },
1770
- {
1771
- "$ref": "#/$defs/BlockedObservationCoverage"
1772
- }
1773
- ]
1774
- },
1775
- "contains": {
1776
- "$ref": "#/$defs/BlockedObservationCoverage"
1777
- }
1778
- }
1779
- }
1780
- }
1781
- },
1782
- {
1783
- "if": {
1784
- "properties": {
1785
- "status": {
1786
- "const": "inconclusive"
1787
- }
1788
- },
1789
- "required": [
1790
- "status"
1791
- ]
1792
- },
1793
- "then": {
1794
- "properties": {
1795
- "observation_coverage": {
1796
- "type": "array",
1797
- "minItems": 1,
1798
- "items": {
1799
- "oneOf": [
1800
- {
1801
- "$ref": "#/$defs/CoveredObservationCoverage"
1802
- },
1803
- {
1804
- "$ref": "#/$defs/InconclusiveObservationCoverage"
1805
- }
1806
- ]
1807
- },
1808
- "contains": {
1809
- "$ref": "#/$defs/InconclusiveObservationCoverage"
1810
- }
1811
- }
1812
- }
1813
- }
1814
- },
1815
- {
1816
- "if": {
1817
- "properties": {
1818
- "status": {
1819
- "const": "waived"
1820
- }
1821
- },
1822
- "required": [
1823
- "status"
1824
- ]
1825
- },
1826
- "then": {
1827
- "properties": {
1828
- "observation_coverage": {
1829
- "type": "array",
1830
- "minItems": 1,
1831
- "items": {
1832
- "oneOf": [
1833
- {
1834
- "$ref": "#/$defs/CoveredObservationCoverage"
1835
- },
1836
- {
1837
- "$ref": "#/$defs/WaivedObservationCoverage"
1838
- }
1839
- ]
1840
- },
1841
- "contains": {
1842
- "$ref": "#/$defs/WaivedObservationCoverage"
1843
- }
1844
- }
1845
- }
1846
- }
1847
- },
1848
- {
1849
- "if": {
1850
- "properties": {
1851
- "status": {
1852
- "const": "stale"
1853
- }
1854
- },
1855
- "required": [
1856
- "status"
1857
- ]
1858
- },
1859
- "then": {
1860
- "properties": {
1861
- "observation_coverage": {
1862
- "type": "array",
1863
- "minItems": 1,
1864
- "items": {
1865
- "oneOf": [
1866
- {
1867
- "$ref": "#/$defs/CoveredObservationCoverage"
1868
- },
1869
- {
1870
- "$ref": "#/$defs/StaleObservationCoverage"
1871
- }
1872
- ]
1873
- },
1874
- "contains": {
1875
- "$ref": "#/$defs/StaleObservationCoverage"
1876
- }
1877
- }
1878
- }
1879
- }
1880
- }
1881
- ]
1882
- },
1883
- "GapReason": {
1884
- "enum": [
1885
- "missing_observation",
1886
- "missing_capability",
1887
- "permission_denied",
1888
- "sandbox_blocked",
1889
- "environment_unavailable",
1890
- "external_dependency_unavailable",
1891
- "product_failed",
1892
- "verifier_failed",
1893
- "timed_out",
1894
- "aborted",
1895
- "inconclusive_result",
1896
- "stale_source",
1897
- "stale_target",
1898
- "stale_environment",
1899
- "stale_policy",
1900
- "stale_adapter_schema",
1901
- "stale_configuration",
1902
- "target_mismatch",
1903
- "schema_mismatch",
1904
- "manifest_mismatch",
1905
- "untrusted_provenance",
1906
- "fixture_disallowed",
1907
- "mock_disallowed",
1908
- "insufficient_assurance",
1909
- "waiver_missing",
1910
- "waiver_expired",
1911
- "unknown_observation_type",
1912
- "unsupported_runtime_target"
1913
- ]
1914
- },
1915
- "CoveredObservationCoverage": {
1916
- "type": "object",
1917
- "required": [
1918
- "requirement_id",
1919
- "status",
1920
- "covering_receipt_ids"
1921
- ],
1922
- "additionalProperties": false,
1923
- "properties": {
1924
- "requirement_id": {
1925
- "$ref": "#/$defs/Id"
1926
- },
1927
- "status": {
1928
- "const": "covered"
1929
- },
1930
- "covering_receipt_ids": {
1931
- "type": "array",
1932
- "minItems": 1,
1933
- "items": {
1934
- "$ref": "#/$defs/Id"
1935
- }
1936
- },
1937
- "covered_observation_ids": {
1938
- "type": "array",
1939
- "items": {
1940
- "$ref": "#/$defs/Id"
1941
- }
1942
- }
1943
- }
1944
- },
1945
- "GapObservationCoverage": {
1946
- "type": "object",
1947
- "required": [
1948
- "requirement_id",
1949
- "status",
1950
- "gap_reason"
1951
- ],
1952
- "additionalProperties": false,
1953
- "properties": {
1954
- "requirement_id": {
1955
- "$ref": "#/$defs/Id"
1956
- },
1957
- "status": {
1958
- "enum": [
1959
- "missing",
1960
- "blocked",
1961
- "inconclusive",
1962
- "waived",
1963
- "stale",
1964
- "unsatisfied"
1965
- ]
1966
- },
1967
- "gap_reason": {
1968
- "$ref": "#/$defs/GapReason"
1969
- },
1970
- "gap_reasons": {
1971
- "type": "array",
1972
- "minItems": 1,
1973
- "items": {
1974
- "$ref": "#/$defs/GapReason"
1975
- }
1976
- },
1977
- "attempted_receipt_ids": {
1978
- "type": "array",
1979
- "items": {
1980
- "$ref": "#/$defs/Id"
1981
- }
1982
- },
1983
- "waiver_id": {
1984
- "$ref": "#/$defs/Id"
1985
- }
1986
- }
1987
- },
1988
- "UnsatisfiedObservationCoverage": {
1989
- "allOf": [
1990
- {
1991
- "$ref": "#/$defs/GapObservationCoverage"
1992
- },
1993
- {
1994
- "type": "object",
1995
- "properties": {
1996
- "status": {
1997
- "enum": [
1998
- "missing",
1999
- "unsatisfied"
2000
- ]
2001
- },
2002
- "gap_reason": {
2003
- "enum": [
2004
- "missing_observation",
2005
- "product_failed",
2006
- "verifier_failed",
2007
- "target_mismatch",
2008
- "schema_mismatch",
2009
- "manifest_mismatch",
2010
- "untrusted_provenance",
2011
- "fixture_disallowed",
2012
- "mock_disallowed",
2013
- "insufficient_assurance",
2014
- "waiver_missing",
2015
- "waiver_expired",
2016
- "unknown_observation_type",
2017
- "unsupported_runtime_target"
2018
- ]
2019
- }
2020
- }
2021
- }
2022
- ]
2023
- },
2024
- "BlockedObservationCoverage": {
2025
- "allOf": [
2026
- {
2027
- "$ref": "#/$defs/GapObservationCoverage"
2028
- },
2029
- {
2030
- "type": "object",
2031
- "properties": {
2032
- "status": {
2033
- "const": "blocked"
2034
- },
2035
- "gap_reason": {
2036
- "enum": [
2037
- "missing_capability",
2038
- "permission_denied",
2039
- "sandbox_blocked",
2040
- "environment_unavailable",
2041
- "external_dependency_unavailable",
2042
- "unsupported_runtime_target"
2043
- ]
2044
- }
2045
- }
2046
- }
2047
- ]
2048
- },
2049
- "InconclusiveObservationCoverage": {
2050
- "allOf": [
2051
- {
2052
- "$ref": "#/$defs/GapObservationCoverage"
2053
- },
2054
- {
2055
- "type": "object",
2056
- "properties": {
2057
- "status": {
2058
- "const": "inconclusive"
2059
- },
2060
- "gap_reason": {
2061
- "enum": [
2062
- "timed_out",
2063
- "aborted",
2064
- "inconclusive_result",
2065
- "verifier_failed"
2066
- ]
2067
- }
2068
- }
2069
- }
2070
- ]
2071
- },
2072
- "WaivedObservationCoverage": {
2073
- "allOf": [
2074
- {
2075
- "$ref": "#/$defs/GapObservationCoverage"
2076
- },
2077
- {
2078
- "type": "object",
2079
- "required": [
2080
- "waiver_id"
2081
- ],
2082
- "properties": {
2083
- "status": {
2084
- "const": "waived"
2085
- },
2086
- "gap_reason": {
2087
- "enum": [
2088
- "missing_observation",
2089
- "missing_capability",
2090
- "permission_denied",
2091
- "sandbox_blocked",
2092
- "environment_unavailable",
2093
- "external_dependency_unavailable",
2094
- "product_failed",
2095
- "verifier_failed",
2096
- "target_mismatch",
2097
- "schema_mismatch",
2098
- "manifest_mismatch",
2099
- "untrusted_provenance",
2100
- "fixture_disallowed",
2101
- "mock_disallowed",
2102
- "insufficient_assurance",
2103
- "unknown_observation_type",
2104
- "unsupported_runtime_target"
2105
- ]
2106
- }
2107
- }
2108
- }
2109
- ]
2110
- },
2111
- "StaleObservationCoverage": {
2112
- "allOf": [
2113
- {
2114
- "$ref": "#/$defs/GapObservationCoverage"
2115
- },
2116
- {
2117
- "type": "object",
2118
- "properties": {
2119
- "status": {
2120
- "const": "stale"
2121
- },
2122
- "gap_reason": {
2123
- "enum": [
2124
- "stale_source",
2125
- "stale_target",
2126
- "stale_environment",
2127
- "stale_policy",
2128
- "stale_adapter_schema",
2129
- "stale_configuration"
2130
- ]
2131
- }
2132
- }
2133
- }
2134
- ]
2135
- },
2136
- "ObservationCoverage": {
2137
- "oneOf": [
2138
- {
2139
- "$ref": "#/$defs/CoveredObservationCoverage"
2140
- },
2141
- {
2142
- "$ref": "#/$defs/GapObservationCoverage"
2143
- }
2144
- ]
2145
- },
2146
- "CoverageValidationCheck": {
2147
- "type": "object",
2148
- "required": [
2149
- "status",
2150
- "checked_at",
2151
- "receipt_ids",
2152
- "gap_reasons"
2153
- ],
2154
- "additionalProperties": false,
2155
- "properties": {
2156
- "status": {
2157
- "enum": [
2158
- "passed",
2159
- "failed",
2160
- "warning",
2161
- "not_applicable"
2162
- ]
2163
- },
2164
- "checked_at": {
2165
- "$ref": "#/$defs/Timestamp"
2166
- },
2167
- "receipt_ids": {
2168
- "type": "array",
2169
- "items": {
2170
- "$ref": "#/$defs/Id"
2171
- }
2172
- },
2173
- "gap_reasons": {
2174
- "type": "array",
2175
- "items": {
2176
- "$ref": "#/$defs/GapReason"
2177
- }
2178
- },
2179
- "detail": {
2180
- "type": "string",
2181
- "minLength": 1
2182
- }
2183
- }
2184
- },
2185
- "PassingCoverageValidationCheck": {
2186
- "allOf": [
2187
- {
2188
- "$ref": "#/$defs/CoverageValidationCheck"
2189
- },
2190
- {
2191
- "type": "object",
2192
- "properties": {
2193
- "status": {
2194
- "const": "passed"
2195
- },
2196
- "gap_reasons": {
2197
- "type": "array",
2198
- "maxItems": 0
2199
- }
2200
- }
2201
- }
2202
- ]
2203
- },
2204
- "CoverageValidationDetails": {
2205
- "type": "object",
2206
- "required": [
2207
- "trust",
2208
- "freshness",
2209
- "target",
2210
- "schema",
2211
- "provenance",
2212
- "fixture",
2213
- "completion"
2214
- ],
2215
- "additionalProperties": false,
2216
- "properties": {
2217
- "trust": {
2218
- "$ref": "#/$defs/CoverageValidationCheck"
2219
- },
2220
- "freshness": {
2221
- "$ref": "#/$defs/CoverageValidationCheck"
2222
- },
2223
- "target": {
2224
- "$ref": "#/$defs/CoverageValidationCheck"
2225
- },
2226
- "schema": {
2227
- "$ref": "#/$defs/CoverageValidationCheck"
2228
- },
2229
- "provenance": {
2230
- "$ref": "#/$defs/CoverageValidationCheck"
2231
- },
2232
- "fixture": {
2233
- "$ref": "#/$defs/CoverageValidationCheck"
2234
- },
2235
- "completion": {
2236
- "$ref": "#/$defs/CoverageValidationCheck"
2237
- }
2238
- }
2239
- },
2240
- "PassingCoverageValidationDetails": {
2241
- "type": "object",
2242
- "required": [
2243
- "trust",
2244
- "freshness",
2245
- "target",
2246
- "schema",
2247
- "provenance",
2248
- "fixture",
2249
- "completion"
2250
- ],
2251
- "additionalProperties": false,
2252
- "properties": {
2253
- "trust": {
2254
- "$ref": "#/$defs/PassingCoverageValidationCheck"
2255
- },
2256
- "freshness": {
2257
- "$ref": "#/$defs/PassingCoverageValidationCheck"
2258
- },
2259
- "target": {
2260
- "$ref": "#/$defs/PassingCoverageValidationCheck"
2261
- },
2262
- "schema": {
2263
- "$ref": "#/$defs/PassingCoverageValidationCheck"
2264
- },
2265
- "provenance": {
2266
- "$ref": "#/$defs/PassingCoverageValidationCheck"
2267
- },
2268
- "fixture": {
2269
- "$ref": "#/$defs/PassingCoverageValidationCheck"
2270
- },
2271
- "completion": {
2272
- "$ref": "#/$defs/PassingCoverageValidationCheck"
2273
- }
2274
- }
2275
- },
2276
- "EvidencePolicyDefaults": {
2277
- "type": "object",
2278
- "required": [
2279
- "preset_id",
2280
- "binding",
2281
- "assurance_level"
2282
- ],
2283
- "additionalProperties": false,
2284
- "properties": {
2285
- "preset_id": {
2286
- "$ref": "#/$defs/Id"
2287
- },
2288
- "binding": {
2289
- "type": "boolean"
2290
- },
2291
- "assurance_level": {
2292
- "enum": [
2293
- "low",
2294
- "standard",
2295
- "high"
2296
- ]
2297
- }
2298
- }
2299
- },
2300
- "ObservationSchemaRegistration": {
2301
- "type": "object",
2302
- "required": [
2303
- "type",
2304
- "schema_ref",
2305
- "schema_digest",
2306
- "owning_namespace"
2307
- ],
2308
- "additionalProperties": false,
2309
- "properties": {
2310
- "type": {
2311
- "$ref": "#/$defs/NamespaceName"
2312
- },
2313
- "schema_ref": {
2314
- "type": "string",
2315
- "minLength": 1
2316
- },
2317
- "schema_digest": {
2318
- "$ref": "#/$defs/Digest"
2319
- },
2320
- "owning_namespace": {
2321
- "$ref": "#/$defs/NamespaceName"
2322
- }
2323
- }
2324
- },
2325
- "AdapterRegistration": {
2326
- "type": "object",
2327
- "required": [
2328
- "manifest_id",
2329
- "manifest_path",
2330
- "manifest_digest",
2331
- "observation_types",
2332
- "payload_schemas",
2333
- "provenance_path",
2334
- "execution_contract"
2335
- ],
2336
- "additionalProperties": false,
2337
- "properties": {
2338
- "manifest_id": {
2339
- "$ref": "#/$defs/Id"
2340
- },
2341
- "manifest_path": {
2342
- "type": "string",
2343
- "minLength": 1
2344
- },
2345
- "manifest_digest": {
2346
- "$ref": "#/$defs/Digest"
2347
- },
2348
- "observation_types": {
2349
- "type": "array",
2350
- "minItems": 1,
2351
- "items": {
2352
- "$ref": "#/$defs/NamespaceName"
2353
- }
2354
- },
2355
- "payload_schemas": {
2356
- "type": "array",
2357
- "minItems": 1,
2358
- "items": {
2359
- "$ref": "#/$defs/PayloadSchemaBinding"
2360
- }
2361
- },
2362
- "provenance_path": {
2363
- "enum": [
2364
- "planr_observed_execution",
2365
- "verified_host_event",
2366
- "mcp_attestation",
2367
- "validated_artifact_import",
2368
- "user_attestation"
2369
- ]
2370
- },
2371
- "execution_contract": {
2372
- "$ref": "#/$defs/ProcessExecutionContract"
2373
- }
2374
- }
2375
- },
2376
- "TrustPolicy": {
2377
- "type": "object",
2378
- "required": [
2379
- "accepted_provenance",
2380
- "min_receipt_status",
2381
- "allow_user_attestation"
2382
- ],
2383
- "additionalProperties": false,
2384
- "properties": {
2385
- "accepted_provenance": {
2386
- "type": "array",
2387
- "minItems": 1,
2388
- "items": {
2389
- "enum": [
2390
- "planr_observed_execution",
2391
- "verified_host_event",
2392
- "mcp_attestation",
2393
- "validated_artifact_import",
2394
- "user_attestation"
2395
- ]
2396
- }
2397
- },
2398
- "min_receipt_status": {
2399
- "const": "trusted"
2400
- },
2401
- "allow_user_attestation": {
2402
- "type": "boolean"
2403
- }
2404
- }
2405
- },
2406
- "FreshnessPolicy": {
2407
- "type": "object",
2408
- "required": [
2409
- "max_age_seconds",
2410
- "invalidate_on"
2411
- ],
2412
- "additionalProperties": false,
2413
- "properties": {
2414
- "max_age_seconds": {
2415
- "type": "integer",
2416
- "minimum": 1
2417
- },
2418
- "invalidate_on": {
2419
- "type": "array",
2420
- "minItems": 1,
2421
- "items": {
2422
- "enum": [
2423
- "source_change",
2424
- "target_change",
2425
- "environment_change",
2426
- "policy_change",
2427
- "adapter_schema_change",
2428
- "configuration_change"
2429
- ]
2430
- }
2431
- }
2432
- }
2433
- },
2434
- "FixturePolicy": {
2435
- "type": "object",
2436
- "required": [
2437
- "fixtures_allowed",
2438
- "mocks_allowed",
2439
- "disclosure_required"
2440
- ],
2441
- "additionalProperties": false,
2442
- "properties": {
2443
- "fixtures_allowed": {
2444
- "type": "boolean"
2445
- },
2446
- "mocks_allowed": {
2447
- "type": "boolean"
2448
- },
2449
- "disclosure_required": {
2450
- "const": true
2451
- }
2452
- }
2453
- },
2454
- "CompletionPolicy": {
2455
- "type": "object",
2456
- "required": [
2457
- "require_satisfied_or_waived",
2458
- "allow_inconclusive_completion",
2459
- "require_review_evidence"
2460
- ],
2461
- "additionalProperties": false,
2462
- "properties": {
2463
- "require_satisfied_or_waived": {
2464
- "const": true
2465
- },
2466
- "allow_inconclusive_completion": {
2467
- "const": false
2468
- },
2469
- "require_review_evidence": {
2470
- "type": "boolean"
2471
- }
2472
- }
2473
- },
2474
- "PolicyLayer": {
2475
- "type": "object",
2476
- "required": [
2477
- "scope",
2478
- "policy_digest"
2479
- ],
2480
- "additionalProperties": false,
2481
- "properties": {
2482
- "scope": {
2483
- "$ref": "#/$defs/EvidenceScope"
2484
- },
2485
- "policy_digest": {
2486
- "$ref": "#/$defs/Digest"
2487
- }
2488
- }
2489
- },
2490
- "PolicyLayering": {
2491
- "type": "object",
2492
- "required": [
2493
- "mode",
2494
- "weakening_requires_waiver",
2495
- "layers"
2496
- ],
2497
- "additionalProperties": false,
2498
- "properties": {
2499
- "mode": {
2500
- "const": "monotonic_strengthening"
2501
- },
2502
- "weakening_requires_waiver": {
2503
- "const": true
2504
- },
2505
- "layers": {
2506
- "type": "array",
2507
- "minItems": 1,
2508
- "items": {
2509
- "$ref": "#/$defs/PolicyLayer"
2510
- }
2511
- }
2512
- }
2513
- },
2514
- "EvidencePolicy": {
2515
- "type": "object",
2516
- "required": [
2517
- "id",
2518
- "schema_version",
2519
- "policy_digest",
2520
- "defaults",
2521
- "named_presets",
2522
- "observation_schema_registrations",
2523
- "adapter_registrations",
2524
- "extension_namespaces",
2525
- "trust_policy",
2526
- "freshness_policy",
2527
- "fixture_policy",
2528
- "completion_policy",
2529
- "layering_policy"
2530
- ],
2531
- "additionalProperties": false,
2532
- "properties": {
2533
- "id": {
2534
- "$ref": "#/$defs/Id"
2535
- },
2536
- "schema_version": {
2537
- "$ref": "#/$defs/SchemaVersion"
2538
- },
2539
- "policy_digest": {
2540
- "$ref": "#/$defs/Digest"
2541
- },
2542
- "defaults": {
2543
- "$ref": "#/$defs/EvidencePolicyDefaults"
2544
- },
2545
- "named_presets": {
2546
- "type": "array",
2547
- "minItems": 1,
2548
- "items": {
2549
- "$ref": "#/$defs/ProofPreset"
2550
- }
2551
- },
2552
- "observation_schema_registrations": {
2553
- "type": "array",
2554
- "minItems": 1,
2555
- "items": {
2556
- "$ref": "#/$defs/ObservationSchemaRegistration"
2557
- }
2558
- },
2559
- "adapter_registrations": {
2560
- "type": "array",
2561
- "minItems": 1,
2562
- "items": {
2563
- "$ref": "#/$defs/AdapterRegistration"
2564
- }
2565
- },
2566
- "extension_namespaces": {
2567
- "type": "array",
2568
- "minItems": 1,
2569
- "items": {
2570
- "$ref": "#/$defs/NamespaceName"
2571
- }
2572
- },
2573
- "trust_policy": {
2574
- "$ref": "#/$defs/TrustPolicy"
2575
- },
2576
- "freshness_policy": {
2577
- "$ref": "#/$defs/FreshnessPolicy"
2578
- },
2579
- "fixture_policy": {
2580
- "$ref": "#/$defs/FixturePolicy"
2581
- },
2582
- "completion_policy": {
2583
- "$ref": "#/$defs/CompletionPolicy"
2584
- },
2585
- "layering_policy": {
2586
- "$ref": "#/$defs/PolicyLayering"
2587
- }
2588
- }
2589
- },
2590
- "ProofPreset": {
2591
- "type": "object",
2592
- "required": [
2593
- "id",
2594
- "schema_version",
2595
- "namespace",
2596
- "observations"
2597
- ],
2598
- "additionalProperties": false,
2599
- "properties": {
2600
- "id": {
2601
- "$ref": "#/$defs/Id"
2602
- },
2603
- "schema_version": {
2604
- "$ref": "#/$defs/SchemaVersion"
2605
- },
2606
- "namespace": {
2607
- "$ref": "#/$defs/NamespaceName"
2608
- },
2609
- "observations": {
2610
- "type": "array",
2611
- "minItems": 1,
2612
- "items": {
2613
- "$ref": "#/$defs/ObservationRequirement"
2614
- }
2615
- }
2616
- }
2617
- },
2618
- "EvidenceWaiver": {
2619
- "type": "object",
2620
- "required": [
2621
- "id",
2622
- "schema_version",
2623
- "scope",
2624
- "observation_ids",
2625
- "source",
2626
- "target",
2627
- "reason",
2628
- "created_by",
2629
- "created_at",
2630
- "expires_at",
2631
- "approval_ref",
2632
- "audit_trail"
2633
- ],
2634
- "additionalProperties": false,
2635
- "properties": {
2636
- "id": {
2637
- "$ref": "#/$defs/Id"
2638
- },
2639
- "schema_version": {
2640
- "$ref": "#/$defs/SchemaVersion"
2641
- },
2642
- "scope": {
2643
- "$ref": "#/$defs/EvidenceScope"
2644
- },
2645
- "observation_ids": {
2646
- "type": "array",
2647
- "minItems": 1,
2648
- "items": {
2649
- "$ref": "#/$defs/Id"
2650
- }
2651
- },
2652
- "source": {
2653
- "$ref": "#/$defs/SourceBinding"
2654
- },
2655
- "target": {
2656
- "$ref": "#/$defs/TargetBinding"
2657
- },
2658
- "reason": {
2659
- "type": "string",
2660
- "minLength": 1
2661
- },
2662
- "created_by": {
2663
- "type": "string",
2664
- "minLength": 1
2665
- },
2666
- "created_at": {
2667
- "$ref": "#/$defs/Timestamp"
2668
- },
2669
- "expires_at": {
2670
- "$ref": "#/$defs/Timestamp"
2671
- },
2672
- "approval_ref": {
2673
- "$ref": "#/$defs/Id"
2674
- },
2675
- "audit_trail": {
2676
- "type": "array",
2677
- "minItems": 1,
2678
- "items": {
2679
- "$ref": "#/$defs/JsonObject"
2680
- }
2681
- }
2682
- }
2683
- }
2684
- }
2685
- }