planr 1.9.0 → 1.10.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/README.md +32 -5
  2. package/docs/ARCHITECTURE.md +1 -1
  3. package/docs/RELEASE.md +37 -7
  4. package/docs/contracts/EVIDENCE_CONTRACT_V1.md +283 -0
  5. package/docs/contracts/fixtures/evidence/v1/examples/coverage-verdict.json +66 -0
  6. package/docs/contracts/fixtures/evidence/v1/examples/evidence-attempt.json +39 -0
  7. package/docs/contracts/fixtures/evidence/v1/examples/evidence-policy.json +117 -0
  8. package/docs/contracts/fixtures/evidence/v1/examples/evidence-receipt.json +93 -0
  9. package/docs/contracts/fixtures/evidence/v1/examples/evidence-waiver.json +31 -0
  10. package/docs/contracts/fixtures/evidence/v1/examples/proof-obligation.json +67 -0
  11. package/docs/contracts/fixtures/evidence/v1/examples/proof-preset.json +28 -0
  12. package/docs/contracts/fixtures/evidence/v1/examples/untrusted-evidence-proposal.json +20 -0
  13. package/docs/contracts/fixtures/evidence/v1/examples/verification-capability-instance.json +39 -0
  14. package/docs/contracts/fixtures/evidence/v1/examples/verification-capability-manifest.json +52 -0
  15. package/docs/contracts/fixtures/evidence/v1/negative/aborted-zero-exit-attempt.json +39 -0
  16. package/docs/contracts/fixtures/evidence/v1/negative/adapter-registration-missing-execution-contract.json +97 -0
  17. package/docs/contracts/fixtures/evidence/v1/negative/available-empty-probe-capability.json +27 -0
  18. package/docs/contracts/fixtures/evidence/v1/negative/blocked-coverage-with-stale-reason.json +27 -0
  19. package/docs/contracts/fixtures/evidence/v1/negative/empty-trust-bindings-receipt.json +72 -0
  20. package/docs/contracts/fixtures/evidence/v1/negative/failed-zero-exit-attempt.json +39 -0
  21. package/docs/contracts/fixtures/evidence/v1/negative/forged-trusted-receipt.json +35 -0
  22. package/docs/contracts/fixtures/evidence/v1/negative/inconclusive-clean-exit-attempt.json +39 -0
  23. package/docs/contracts/fixtures/evidence/v1/negative/inconclusive-coverage-with-blocked-reason.json +27 -0
  24. package/docs/contracts/fixtures/evidence/v1/negative/minimal-policy-missing-owned-inputs.json +5 -0
  25. package/docs/contracts/fixtures/evidence/v1/negative/mismatched-probe-execution-id-capability.json +42 -0
  26. package/docs/contracts/fixtures/evidence/v1/negative/passed-empty-attempt.json +22 -0
  27. package/docs/contracts/fixtures/evidence/v1/negative/policy-default-preset-unregistered.json +111 -0
  28. package/docs/contracts/fixtures/evidence/v1/negative/policy-weakening-without-waiver.json +111 -0
  29. package/docs/contracts/fixtures/evidence/v1/negative/process-probe-missing-output-limits.json +49 -0
  30. package/docs/contracts/fixtures/evidence/v1/negative/satisfied-empty-coverage-verdict.json +14 -0
  31. package/docs/contracts/fixtures/evidence/v1/negative/skipped-zero-exit-attempt.json +39 -0
  32. package/docs/contracts/fixtures/evidence/v1/negative/stale-coverage-with-inconclusive-reason.json +27 -0
  33. package/docs/contracts/fixtures/evidence/v1/negative/timed-out-zero-exit-attempt.json +39 -0
  34. package/docs/contracts/fixtures/evidence/v1/negative/unavailable-zero-exit-attempt.json +39 -0
  35. package/docs/contracts/fixtures/evidence/v1/negative/unbound-waiver.json +21 -0
  36. package/docs/contracts/fixtures/evidence/v1/negative/unsatisfied-coverage-without-gap.json +63 -0
  37. package/docs/contracts/fixtures/evidence/v1/negative/waived-coverage-forbidden-gap-reason.json +28 -0
  38. package/docs/contracts/fixtures/evidence/v1/negative/waived-coverage-missing-waiver-id.json +27 -0
  39. package/docs/contracts/fixtures/evidence/v1/schemas/evidence-contract-v1.schema.json +2705 -0
  40. package/docs/documentation/CONTRACT.md +1 -1
  41. package/docs/documentation/COVERAGE.md +8 -5
  42. package/docs/documentation/INFORMATION_ARCHITECTURE.md +1 -1
  43. package/docs/fixtures/mcp-contract.json +18 -0
  44. package/npm/native/darwin-arm64/planr +0 -0
  45. package/npm/native/darwin-arm64/planr-host-capability-validator +0 -0
  46. package/npm/native/darwin-x86_64/planr +0 -0
  47. package/npm/native/darwin-x86_64/planr-host-capability-validator +0 -0
  48. package/npm/native/linux-arm64/planr +0 -0
  49. package/npm/native/linux-arm64/planr-host-capability-validator +0 -0
  50. package/npm/native/linux-x86_64/planr +0 -0
  51. package/npm/native/linux-x86_64/planr-host-capability-validator +0 -0
  52. package/package.json +15 -2
  53. package/plugins/planr/.claude-plugin/plugin.json +1 -1
  54. package/plugins/planr/.codex-plugin/plugin.json +1 -1
  55. package/plugins/planr/skills/planr-goal/SKILL.md +7 -4
  56. package/plugins/planr/skills/planr-loop/SKILL.md +11 -8
  57. package/plugins/planr/skills/planr-loop/references/recovery-and-verification.md +5 -4
  58. package/plugins/planr/skills/planr-plan/SKILL.md +1 -1
  59. package/plugins/planr/skills/planr-review/SKILL.md +5 -1
  60. package/plugins/planr/skills/planr-status/SKILL.md +3 -1
  61. package/plugins/planr/skills/planr-verify-web/SKILL.md +9 -6
  62. package/plugins/planr/skills/planr-work/SKILL.md +17 -3
  63. package/scripts/host-capability-experiment.mjs +2477 -0
  64. package/scripts/host-capability-runtime/v1/schemas/host-capability-expected-manifest.schema.json +377 -0
  65. package/scripts/host-capability-runtime/v1/schemas/host-capability-observed-raw.schema.json +439 -0
  66. package/scripts/host-capability-runtime/v1/schemas/host-capability-provenance.schema.json +178 -0
  67. package/scripts/planr-host-capability-validator +51 -0
@@ -0,0 +1,377 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "planr.host_capability_expected_manifest.schema.v1",
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "required": [
7
+ "schema_version",
8
+ "payload_version",
9
+ "suite_id",
10
+ "schema_refs",
11
+ "provenance_ref",
12
+ "capability_instances"
13
+ ],
14
+ "properties": {
15
+ "schema_version": {
16
+ "const": "planr.host_capability_expected_manifest.v1"
17
+ },
18
+ "payload_version": {
19
+ "type": "string",
20
+ "minLength": 1
21
+ },
22
+ "suite_id": {
23
+ "type": "string",
24
+ "minLength": 1
25
+ },
26
+ "schema_refs": {
27
+ "type": "object",
28
+ "additionalProperties": false,
29
+ "required": [
30
+ "raw",
31
+ "expected",
32
+ "provenance"
33
+ ],
34
+ "properties": {
35
+ "raw": {
36
+ "type": "object",
37
+ "additionalProperties": false,
38
+ "required": [
39
+ "path",
40
+ "digest"
41
+ ],
42
+ "properties": {
43
+ "path": {
44
+ "type": "string",
45
+ "minLength": 1
46
+ },
47
+ "digest": {
48
+ "type": "string",
49
+ "pattern": "^sha256:[0-9a-f]{64}$"
50
+ }
51
+ }
52
+ },
53
+ "expected": {
54
+ "type": "object",
55
+ "additionalProperties": false,
56
+ "required": [
57
+ "path",
58
+ "digest"
59
+ ],
60
+ "properties": {
61
+ "path": {
62
+ "type": "string",
63
+ "minLength": 1
64
+ },
65
+ "digest": {
66
+ "type": "string",
67
+ "pattern": "^sha256:[0-9a-f]{64}$"
68
+ }
69
+ }
70
+ },
71
+ "provenance": {
72
+ "type": "object",
73
+ "additionalProperties": false,
74
+ "required": [
75
+ "path",
76
+ "digest"
77
+ ],
78
+ "properties": {
79
+ "path": {
80
+ "type": "string",
81
+ "minLength": 1
82
+ },
83
+ "digest": {
84
+ "type": "string",
85
+ "pattern": "^sha256:[0-9a-f]{64}$"
86
+ }
87
+ }
88
+ }
89
+ }
90
+ },
91
+ "provenance_ref": {
92
+ "type": "object",
93
+ "additionalProperties": false,
94
+ "required": [
95
+ "path",
96
+ "digest"
97
+ ],
98
+ "properties": {
99
+ "path": {
100
+ "type": "string",
101
+ "minLength": 1
102
+ },
103
+ "digest": {
104
+ "type": "string",
105
+ "pattern": "^sha256:[0-9a-f]{64}$"
106
+ }
107
+ }
108
+ },
109
+ "capability_instances": {
110
+ "type": "array",
111
+ "minItems": 1,
112
+ "items": {
113
+ "type": "object",
114
+ "additionalProperties": false,
115
+ "required": [
116
+ "raw_capture_id",
117
+ "claim_source",
118
+ "trusted_adapter_enabled",
119
+ "manifest_ref",
120
+ "provenance_ref",
121
+ "capability_instance"
122
+ ],
123
+ "properties": {
124
+ "raw_capture_id": {
125
+ "type": "string",
126
+ "minLength": 1
127
+ },
128
+ "claim_source": {
129
+ "type": "string",
130
+ "minLength": 1
131
+ },
132
+ "trusted_adapter_enabled": {
133
+ "const": false
134
+ },
135
+ "manifest_ref": {
136
+ "type": "object",
137
+ "additionalProperties": false,
138
+ "required": [
139
+ "path",
140
+ "digest"
141
+ ],
142
+ "properties": {
143
+ "path": {
144
+ "type": "string",
145
+ "minLength": 1
146
+ },
147
+ "digest": {
148
+ "type": "string",
149
+ "pattern": "^sha256:[0-9a-f]{64}$"
150
+ }
151
+ }
152
+ },
153
+ "provenance_ref": {
154
+ "type": "object",
155
+ "additionalProperties": false,
156
+ "required": [
157
+ "path",
158
+ "digest"
159
+ ],
160
+ "properties": {
161
+ "path": {
162
+ "type": "string",
163
+ "minLength": 1
164
+ },
165
+ "digest": {
166
+ "type": "string",
167
+ "pattern": "^sha256:[0-9a-f]{64}$"
168
+ }
169
+ }
170
+ },
171
+ "capability_instance": {
172
+ "type": "object",
173
+ "additionalProperties": false,
174
+ "required": [
175
+ "id",
176
+ "schema_version",
177
+ "manifest_id",
178
+ "manifest_digest",
179
+ "host",
180
+ "surface",
181
+ "host_version",
182
+ "adapter_version",
183
+ "environment",
184
+ "permissions",
185
+ "availability",
186
+ "probe_result",
187
+ "observed_payload_contract",
188
+ "limitations",
189
+ "captured_at"
190
+ ],
191
+ "properties": {
192
+ "id": {
193
+ "type": "string",
194
+ "minLength": 1
195
+ },
196
+ "schema_version": {
197
+ "const": "evidence.contract.v1"
198
+ },
199
+ "manifest_id": {
200
+ "type": "string",
201
+ "minLength": 1
202
+ },
203
+ "manifest_digest": {
204
+ "type": "string",
205
+ "pattern": "^sha256:[0-9a-f]{64}$"
206
+ },
207
+ "host": {
208
+ "type": "string",
209
+ "minLength": 1
210
+ },
211
+ "surface": {
212
+ "type": "string",
213
+ "minLength": 1
214
+ },
215
+ "host_version": {
216
+ "type": "string",
217
+ "minLength": 1
218
+ },
219
+ "adapter_version": {
220
+ "type": "string",
221
+ "minLength": 1
222
+ },
223
+ "environment": {
224
+ "type": "object",
225
+ "additionalProperties": false,
226
+ "required": [
227
+ "kind",
228
+ "id",
229
+ "digest"
230
+ ],
231
+ "properties": {
232
+ "kind": {
233
+ "type": "string",
234
+ "minLength": 1
235
+ },
236
+ "id": {
237
+ "type": "string",
238
+ "minLength": 1
239
+ },
240
+ "digest": {
241
+ "type": "string",
242
+ "pattern": "^sha256:[0-9a-f]{64}$"
243
+ }
244
+ }
245
+ },
246
+ "permissions": {
247
+ "type": "object",
248
+ "additionalProperties": false,
249
+ "required": [
250
+ "network",
251
+ "filesystem"
252
+ ],
253
+ "properties": {
254
+ "network": {
255
+ "type": "string",
256
+ "minLength": 1
257
+ },
258
+ "filesystem": {
259
+ "type": "string",
260
+ "minLength": 1
261
+ },
262
+ "environment": {
263
+ "type": "string",
264
+ "minLength": 1
265
+ },
266
+ "secrets": {
267
+ "type": "string",
268
+ "minLength": 1
269
+ }
270
+ }
271
+ },
272
+ "availability": {
273
+ "type": "object",
274
+ "additionalProperties": false,
275
+ "required": [
276
+ "status"
277
+ ],
278
+ "properties": {
279
+ "status": {
280
+ "type": "string",
281
+ "minLength": 1
282
+ },
283
+ "reason": {
284
+ "type": "string",
285
+ "minLength": 1
286
+ }
287
+ }
288
+ },
289
+ "probe_result": {
290
+ "type": "object",
291
+ "additionalProperties": false,
292
+ "required": [
293
+ "probe_execution_id",
294
+ "outcome",
295
+ "observed_at",
296
+ "checks"
297
+ ],
298
+ "properties": {
299
+ "probe_execution_id": {
300
+ "type": "string",
301
+ "minLength": 1
302
+ },
303
+ "outcome": {
304
+ "type": "string",
305
+ "minLength": 1
306
+ },
307
+ "observed_at": {
308
+ "type": "string",
309
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
310
+ },
311
+ "checks": {
312
+ "type": "array",
313
+ "minItems": 1,
314
+ "items": {
315
+ "type": "object",
316
+ "additionalProperties": false,
317
+ "required": [
318
+ "name",
319
+ "outcome"
320
+ ],
321
+ "properties": {
322
+ "name": {
323
+ "type": "string",
324
+ "minLength": 1
325
+ },
326
+ "outcome": {
327
+ "type": "string",
328
+ "minLength": 1
329
+ },
330
+ "detail": {
331
+ "type": "string",
332
+ "minLength": 1
333
+ }
334
+ }
335
+ }
336
+ }
337
+ }
338
+ },
339
+ "observed_payload_contract": {
340
+ "type": "object",
341
+ "additionalProperties": false,
342
+ "required": [
343
+ "schema_ref",
344
+ "observation_types"
345
+ ],
346
+ "properties": {
347
+ "schema_ref": {
348
+ "type": "string",
349
+ "minLength": 1
350
+ },
351
+ "observation_types": {
352
+ "type": "array",
353
+ "items": {
354
+ "type": "string",
355
+ "minLength": 1
356
+ }
357
+ }
358
+ }
359
+ },
360
+ "limitations": {
361
+ "type": "array",
362
+ "items": {
363
+ "type": "string",
364
+ "minLength": 1
365
+ }
366
+ },
367
+ "captured_at": {
368
+ "type": "string",
369
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
370
+ }
371
+ }
372
+ }
373
+ }
374
+ }
375
+ }
376
+ }
377
+ }