@getbourdon/conformance 0.1.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 (70) hide show
  1. package/LICENSE +157 -0
  2. package/README.md +26 -0
  3. package/dist/index.cjs +65 -0
  4. package/dist/index.cjs.map +1 -0
  5. package/dist/index.d.cts +36 -0
  6. package/dist/index.d.ts +36 -0
  7. package/dist/index.js +36 -0
  8. package/dist/index.js.map +1 -0
  9. package/fixtures/README.md +61 -0
  10. package/fixtures/fed_seed_library/agents/claude-code.l5.yaml +63 -0
  11. package/fixtures/fed_seed_library/agents/codex.l5.yaml +35 -0
  12. package/fixtures/l5_manifests/invalid/bad-agent-type-enum.json +8 -0
  13. package/fixtures/l5_manifests/invalid/bad-spec-version-pattern.json +8 -0
  14. package/fixtures/l5_manifests/invalid/entity-bad-visibility-enum.json +14 -0
  15. package/fixtures/l5_manifests/invalid/entity-missing-name.json +13 -0
  16. package/fixtures/l5_manifests/invalid/missing-required-last_updated.json +7 -0
  17. package/fixtures/l5_manifests/invalid/reasons.json +75 -0
  18. package/fixtures/l5_manifests/valid/full.json +60 -0
  19. package/fixtures/l5_manifests/valid/minimal.json +8 -0
  20. package/fixtures/l5_manifests/valid/team-and-private.json +51 -0
  21. package/fixtures/l5_schema.json +209 -0
  22. package/fixtures/l5_todict.json +253 -0
  23. package/fixtures/leak_cases.json +229 -0
  24. package/fixtures/manifest.json +304 -0
  25. package/fixtures/mcp_snapshots/_normalizer.json +134 -0
  26. package/fixtures/mcp_snapshots/commit_to_federation.req.json +19 -0
  27. package/fixtures/mcp_snapshots/commit_to_federation.res.json +12 -0
  28. package/fixtures/mcp_snapshots/compile_codex_turn.req.json +7 -0
  29. package/fixtures/mcp_snapshots/compile_codex_turn.res.json +5 -0
  30. package/fixtures/mcp_snapshots/export_agents.req.json +4 -0
  31. package/fixtures/mcp_snapshots/export_agents.res.json +73 -0
  32. package/fixtures/mcp_snapshots/find_entity.req.json +7 -0
  33. package/fixtures/mcp_snapshots/find_entity.res.json +24 -0
  34. package/fixtures/mcp_snapshots/get_cross_agent_summary.req.json +7 -0
  35. package/fixtures/mcp_snapshots/get_cross_agent_summary.res.json +42 -0
  36. package/fixtures/mcp_snapshots/get_deeper_context.req.json +7 -0
  37. package/fixtures/mcp_snapshots/get_deeper_context.res.json +7 -0
  38. package/fixtures/mcp_snapshots/list_agents.req.json +4 -0
  39. package/fixtures/mcp_snapshots/list_agents.res.json +6 -0
  40. package/fixtures/mcp_snapshots/list_recent_work.req.json +8 -0
  41. package/fixtures/mcp_snapshots/list_recent_work.res.json +38 -0
  42. package/fixtures/mcp_snapshots/prepare_recognition_context.req.json +7 -0
  43. package/fixtures/mcp_snapshots/prepare_recognition_context.res.json +19 -0
  44. package/fixtures/mcp_snapshots/query_agent_memory.req.json +8 -0
  45. package/fixtures/mcp_snapshots/query_agent_memory.res.json +25 -0
  46. package/fixtures/mcp_snapshots/seed_library.json +24 -0
  47. package/fixtures/native_stores/README.json +24 -0
  48. package/fixtures/native_stores/claude_code/expected_l5.json +72 -0
  49. package/fixtures/native_stores/claude_code/store/auto_memory/MEMORY.md +3 -0
  50. package/fixtures/native_stores/claude_code/store/auto_memory/clyde.md +7 -0
  51. package/fixtures/native_stores/claude_code/store/auto_memory/ry-guy.md +6 -0
  52. package/fixtures/native_stores/claude_code/store/brain/LOG/2026-06-28-pc.md +3 -0
  53. package/fixtures/native_stores/claude_code/store/brain/PROJECTS/Bourdon/OVERVIEW.md +3 -0
  54. package/fixtures/native_stores/claude_code/store/brain/PROJECTS/OldThing/OVERVIEW.md +5 -0
  55. package/fixtures/native_stores/claude_code/store/knowledge_graph/memory.jsonl +3 -0
  56. package/fixtures/native_stores/github_copilot/cache/github-copilot/payload.json +21 -0
  57. package/fixtures/native_stores/github_copilot/expected_l5.json +67 -0
  58. package/fixtures/native_stores/hermes/expected_l5.json +108 -0
  59. package/fixtures/native_stores/hermes/store/.hermes/memories/memory.md +2 -0
  60. package/fixtures/native_stores/hermes/store/.hermes/memories/user.md +2 -0
  61. package/fixtures/native_stores/hermes/store/.hermes/state.db +0 -0
  62. package/fixtures/on_disk/audit.jsonl +5 -0
  63. package/fixtures/on_disk/auth_vectors.json +55 -0
  64. package/fixtures/on_disk/federation.yaml +22 -0
  65. package/fixtures/recognition_golden_v1.yaml +106 -0
  66. package/fixtures/recognition_vectors.json +448 -0
  67. package/fixtures/redaction_battery.json +473 -0
  68. package/fixtures/tier_matrix.json +398 -0
  69. package/fixtures/turn_compiler_vectors.json +645 -0
  70. package/package.json +39 -0
@@ -0,0 +1,398 @@
1
+ {
2
+ "_doc": "Cross-impl D4 trust-tier enforcement. Oracle = the live create_l6_server closures, driven over a temp copy of fed_seed_library with a quarantined `openclaw` granted ONLY `claude-code`. Each case pins the allow|deny decision the server actually returned and, on deny, the VERBATIM structured-denial dict. `granted` is True/False for namespace-scoped tools, null otherwise. `denial.detail` is deterministic prose (embeds the synthetic caller id / namespace); the load-bearing invariant is decision + the denial KEY SET. trusted=OPERATOR (stdio / legacy peer); list_recent_work denials also fold in an empty sessions/next_cursor/has_more page.",
3
+ "denial_shape": {
4
+ "keys": [
5
+ "error",
6
+ "op",
7
+ "agent",
8
+ "tier",
9
+ "detail"
10
+ ],
11
+ "error_value": "access denied",
12
+ "note": "list_recent_work denials additionally carry sessions=[], next_cursor=null, has_more=false."
13
+ },
14
+ "seed_library": "fed_seed_library",
15
+ "caller": {
16
+ "trusted": {
17
+ "agent_id": "operator",
18
+ "tier": "trusted"
19
+ },
20
+ "quarantined": {
21
+ "agent_id": "openclaw",
22
+ "tier": "quarantined",
23
+ "grants": [
24
+ "claude-code"
25
+ ]
26
+ }
27
+ },
28
+ "cases": [
29
+ {
30
+ "tool": "query_agent_memory",
31
+ "tier": "trusted",
32
+ "namespace": "claude-code",
33
+ "granted": null,
34
+ "args": {
35
+ "agent": "claude-code",
36
+ "topic": "Bourdon"
37
+ },
38
+ "decision": "allow",
39
+ "denial": null
40
+ },
41
+ {
42
+ "tool": "query_agent_memory",
43
+ "tier": "trusted",
44
+ "namespace": "codex",
45
+ "granted": null,
46
+ "args": {
47
+ "agent": "codex",
48
+ "topic": "Bourdon"
49
+ },
50
+ "decision": "allow",
51
+ "denial": null
52
+ },
53
+ {
54
+ "tool": "list_recent_work",
55
+ "tier": "trusted",
56
+ "namespace": null,
57
+ "granted": null,
58
+ "args": {
59
+ "since": "2026-06-01"
60
+ },
61
+ "decision": "allow",
62
+ "denial": null
63
+ },
64
+ {
65
+ "tool": "list_recent_work",
66
+ "tier": "trusted",
67
+ "namespace": "codex",
68
+ "granted": null,
69
+ "args": {
70
+ "since": "2026-06-01",
71
+ "agent": "codex"
72
+ },
73
+ "decision": "allow",
74
+ "denial": null
75
+ },
76
+ {
77
+ "tool": "find_entity",
78
+ "tier": "trusted",
79
+ "namespace": null,
80
+ "granted": null,
81
+ "args": {
82
+ "name": "Bourdon"
83
+ },
84
+ "decision": "allow",
85
+ "denial": null
86
+ },
87
+ {
88
+ "tool": "list_agents",
89
+ "tier": "trusted",
90
+ "namespace": null,
91
+ "granted": null,
92
+ "args": {},
93
+ "decision": "allow",
94
+ "denial": null
95
+ },
96
+ {
97
+ "tool": "export_agents",
98
+ "tier": "trusted",
99
+ "namespace": null,
100
+ "granted": null,
101
+ "args": {},
102
+ "decision": "allow",
103
+ "denial": null
104
+ },
105
+ {
106
+ "tool": "commit_to_federation",
107
+ "tier": "trusted",
108
+ "namespace": "clyde",
109
+ "granted": null,
110
+ "args": {
111
+ "agent_id": "clyde",
112
+ "agent_type": "other",
113
+ "entities": [
114
+ {
115
+ "name": "TrustedThing",
116
+ "summary": "ok"
117
+ }
118
+ ]
119
+ },
120
+ "decision": "allow",
121
+ "denial": null
122
+ },
123
+ {
124
+ "tool": "get_cross_agent_summary",
125
+ "tier": "trusted",
126
+ "namespace": null,
127
+ "granted": null,
128
+ "args": {
129
+ "project": "Bourdon"
130
+ },
131
+ "decision": "allow",
132
+ "denial": null
133
+ },
134
+ {
135
+ "tool": "prepare_recognition_context",
136
+ "tier": "trusted",
137
+ "namespace": null,
138
+ "granted": null,
139
+ "args": {
140
+ "prompt": "what about Bourdon"
141
+ },
142
+ "decision": "allow",
143
+ "denial": null
144
+ },
145
+ {
146
+ "tool": "get_deeper_context",
147
+ "tier": "trusted",
148
+ "namespace": null,
149
+ "granted": null,
150
+ "args": {
151
+ "prompt": "what about Bourdon"
152
+ },
153
+ "decision": "allow",
154
+ "denial": null
155
+ },
156
+ {
157
+ "tool": "compile_codex_turn",
158
+ "tier": "trusted",
159
+ "namespace": null,
160
+ "granted": null,
161
+ "args": {
162
+ "prompt": "what about Bourdon"
163
+ },
164
+ "decision": "allow",
165
+ "denial": null
166
+ },
167
+ {
168
+ "tool": "query_agent_memory",
169
+ "tier": "quarantined",
170
+ "namespace": "claude-code",
171
+ "granted": true,
172
+ "args": {
173
+ "agent": "claude-code",
174
+ "topic": "Bourdon"
175
+ },
176
+ "decision": "allow",
177
+ "denial": null
178
+ },
179
+ {
180
+ "tool": "query_agent_memory",
181
+ "tier": "quarantined",
182
+ "namespace": "codex",
183
+ "granted": false,
184
+ "args": {
185
+ "agent": "codex",
186
+ "topic": "Bourdon"
187
+ },
188
+ "decision": "deny",
189
+ "denial": {
190
+ "error": "access denied",
191
+ "op": "query_agent_memory",
192
+ "agent": "openclaw",
193
+ "tier": "quarantined",
194
+ "detail": "namespace 'codex' not granted"
195
+ }
196
+ },
197
+ {
198
+ "tool": "list_recent_work",
199
+ "tier": "quarantined",
200
+ "namespace": null,
201
+ "granted": null,
202
+ "args": {
203
+ "since": "2026-06-01"
204
+ },
205
+ "decision": "allow",
206
+ "denial": null
207
+ },
208
+ {
209
+ "tool": "list_recent_work",
210
+ "tier": "quarantined",
211
+ "namespace": "claude-code",
212
+ "granted": true,
213
+ "args": {
214
+ "since": "2026-06-01",
215
+ "agent": "claude-code"
216
+ },
217
+ "decision": "allow",
218
+ "denial": null
219
+ },
220
+ {
221
+ "tool": "list_recent_work",
222
+ "tier": "quarantined",
223
+ "namespace": "codex",
224
+ "granted": false,
225
+ "args": {
226
+ "since": "2026-06-01",
227
+ "agent": "codex"
228
+ },
229
+ "decision": "deny",
230
+ "denial": {
231
+ "error": "access denied",
232
+ "op": "list_recent_work",
233
+ "agent": "openclaw",
234
+ "tier": "quarantined",
235
+ "detail": "namespace 'codex' not granted",
236
+ "sessions": [],
237
+ "next_cursor": null,
238
+ "has_more": false
239
+ }
240
+ },
241
+ {
242
+ "tool": "find_entity",
243
+ "tier": "quarantined",
244
+ "namespace": null,
245
+ "granted": null,
246
+ "args": {
247
+ "name": "Bourdon"
248
+ },
249
+ "decision": "allow",
250
+ "denial": null
251
+ },
252
+ {
253
+ "tool": "find_entity",
254
+ "tier": "quarantined",
255
+ "namespace": null,
256
+ "granted": null,
257
+ "args": {
258
+ "name": "SecretProj"
259
+ },
260
+ "decision": "allow",
261
+ "denial": null
262
+ },
263
+ {
264
+ "tool": "list_agents",
265
+ "tier": "quarantined",
266
+ "namespace": null,
267
+ "granted": null,
268
+ "args": {},
269
+ "decision": "allow",
270
+ "denial": null
271
+ },
272
+ {
273
+ "tool": "export_agents",
274
+ "tier": "quarantined",
275
+ "namespace": null,
276
+ "granted": null,
277
+ "args": {},
278
+ "decision": "allow",
279
+ "denial": null
280
+ },
281
+ {
282
+ "tool": "commit_to_federation",
283
+ "tier": "quarantined",
284
+ "namespace": "openclaw",
285
+ "granted": true,
286
+ "args": {
287
+ "agent_id": "openclaw",
288
+ "agent_type": "other",
289
+ "entities": [
290
+ {
291
+ "name": "ClawFinding",
292
+ "type": "topic",
293
+ "summary": "from openclaw"
294
+ }
295
+ ],
296
+ "sessions": [
297
+ {
298
+ "date": "2026-06-09"
299
+ }
300
+ ]
301
+ },
302
+ "decision": "allow",
303
+ "denial": null
304
+ },
305
+ {
306
+ "tool": "commit_to_federation",
307
+ "tier": "quarantined",
308
+ "namespace": "claude-code",
309
+ "granted": false,
310
+ "args": {
311
+ "agent_id": "claude-code",
312
+ "agent_type": "code-assistant",
313
+ "entities": [
314
+ {
315
+ "name": "Poisoned",
316
+ "summary": "injected"
317
+ }
318
+ ]
319
+ },
320
+ "decision": "deny",
321
+ "denial": {
322
+ "error": "access denied",
323
+ "op": "commit_to_federation",
324
+ "agent": "openclaw",
325
+ "tier": "quarantined",
326
+ "detail": "quarantined members may only write their own namespace ('openclaw')"
327
+ }
328
+ },
329
+ {
330
+ "tool": "get_cross_agent_summary",
331
+ "tier": "quarantined",
332
+ "namespace": null,
333
+ "granted": null,
334
+ "args": {
335
+ "project": "Bourdon"
336
+ },
337
+ "decision": "deny",
338
+ "denial": {
339
+ "error": "access denied",
340
+ "op": "get_cross_agent_summary",
341
+ "agent": "openclaw",
342
+ "tier": "quarantined",
343
+ "detail": "tier 'quarantined' may not call this tool"
344
+ }
345
+ },
346
+ {
347
+ "tool": "prepare_recognition_context",
348
+ "tier": "quarantined",
349
+ "namespace": null,
350
+ "granted": null,
351
+ "args": {
352
+ "prompt": "what about Bourdon"
353
+ },
354
+ "decision": "deny",
355
+ "denial": {
356
+ "error": "access denied",
357
+ "op": "prepare_recognition_context",
358
+ "agent": "openclaw",
359
+ "tier": "quarantined",
360
+ "detail": "tier 'quarantined' may not call this tool"
361
+ }
362
+ },
363
+ {
364
+ "tool": "get_deeper_context",
365
+ "tier": "quarantined",
366
+ "namespace": null,
367
+ "granted": null,
368
+ "args": {
369
+ "prompt": "what about Bourdon"
370
+ },
371
+ "decision": "deny",
372
+ "denial": {
373
+ "error": "access denied",
374
+ "op": "get_deeper_context",
375
+ "agent": "openclaw",
376
+ "tier": "quarantined",
377
+ "detail": "tier 'quarantined' may not call this tool"
378
+ }
379
+ },
380
+ {
381
+ "tool": "compile_codex_turn",
382
+ "tier": "quarantined",
383
+ "namespace": null,
384
+ "granted": null,
385
+ "args": {
386
+ "prompt": "what about Bourdon"
387
+ },
388
+ "decision": "deny",
389
+ "denial": {
390
+ "error": "access denied",
391
+ "op": "compile_codex_turn",
392
+ "agent": "openclaw",
393
+ "tier": "quarantined",
394
+ "detail": "tier 'quarantined' may not call this tool"
395
+ }
396
+ }
397
+ ]
398
+ }