@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.
- package/LICENSE +157 -0
- package/README.md +26 -0
- package/dist/index.cjs +65 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +36 -0
- package/dist/index.d.ts +36 -0
- package/dist/index.js +36 -0
- package/dist/index.js.map +1 -0
- package/fixtures/README.md +61 -0
- package/fixtures/fed_seed_library/agents/claude-code.l5.yaml +63 -0
- package/fixtures/fed_seed_library/agents/codex.l5.yaml +35 -0
- package/fixtures/l5_manifests/invalid/bad-agent-type-enum.json +8 -0
- package/fixtures/l5_manifests/invalid/bad-spec-version-pattern.json +8 -0
- package/fixtures/l5_manifests/invalid/entity-bad-visibility-enum.json +14 -0
- package/fixtures/l5_manifests/invalid/entity-missing-name.json +13 -0
- package/fixtures/l5_manifests/invalid/missing-required-last_updated.json +7 -0
- package/fixtures/l5_manifests/invalid/reasons.json +75 -0
- package/fixtures/l5_manifests/valid/full.json +60 -0
- package/fixtures/l5_manifests/valid/minimal.json +8 -0
- package/fixtures/l5_manifests/valid/team-and-private.json +51 -0
- package/fixtures/l5_schema.json +209 -0
- package/fixtures/l5_todict.json +253 -0
- package/fixtures/leak_cases.json +229 -0
- package/fixtures/manifest.json +304 -0
- package/fixtures/mcp_snapshots/_normalizer.json +134 -0
- package/fixtures/mcp_snapshots/commit_to_federation.req.json +19 -0
- package/fixtures/mcp_snapshots/commit_to_federation.res.json +12 -0
- package/fixtures/mcp_snapshots/compile_codex_turn.req.json +7 -0
- package/fixtures/mcp_snapshots/compile_codex_turn.res.json +5 -0
- package/fixtures/mcp_snapshots/export_agents.req.json +4 -0
- package/fixtures/mcp_snapshots/export_agents.res.json +73 -0
- package/fixtures/mcp_snapshots/find_entity.req.json +7 -0
- package/fixtures/mcp_snapshots/find_entity.res.json +24 -0
- package/fixtures/mcp_snapshots/get_cross_agent_summary.req.json +7 -0
- package/fixtures/mcp_snapshots/get_cross_agent_summary.res.json +42 -0
- package/fixtures/mcp_snapshots/get_deeper_context.req.json +7 -0
- package/fixtures/mcp_snapshots/get_deeper_context.res.json +7 -0
- package/fixtures/mcp_snapshots/list_agents.req.json +4 -0
- package/fixtures/mcp_snapshots/list_agents.res.json +6 -0
- package/fixtures/mcp_snapshots/list_recent_work.req.json +8 -0
- package/fixtures/mcp_snapshots/list_recent_work.res.json +38 -0
- package/fixtures/mcp_snapshots/prepare_recognition_context.req.json +7 -0
- package/fixtures/mcp_snapshots/prepare_recognition_context.res.json +19 -0
- package/fixtures/mcp_snapshots/query_agent_memory.req.json +8 -0
- package/fixtures/mcp_snapshots/query_agent_memory.res.json +25 -0
- package/fixtures/mcp_snapshots/seed_library.json +24 -0
- package/fixtures/native_stores/README.json +24 -0
- package/fixtures/native_stores/claude_code/expected_l5.json +72 -0
- package/fixtures/native_stores/claude_code/store/auto_memory/MEMORY.md +3 -0
- package/fixtures/native_stores/claude_code/store/auto_memory/clyde.md +7 -0
- package/fixtures/native_stores/claude_code/store/auto_memory/ry-guy.md +6 -0
- package/fixtures/native_stores/claude_code/store/brain/LOG/2026-06-28-pc.md +3 -0
- package/fixtures/native_stores/claude_code/store/brain/PROJECTS/Bourdon/OVERVIEW.md +3 -0
- package/fixtures/native_stores/claude_code/store/brain/PROJECTS/OldThing/OVERVIEW.md +5 -0
- package/fixtures/native_stores/claude_code/store/knowledge_graph/memory.jsonl +3 -0
- package/fixtures/native_stores/github_copilot/cache/github-copilot/payload.json +21 -0
- package/fixtures/native_stores/github_copilot/expected_l5.json +67 -0
- package/fixtures/native_stores/hermes/expected_l5.json +108 -0
- package/fixtures/native_stores/hermes/store/.hermes/memories/memory.md +2 -0
- package/fixtures/native_stores/hermes/store/.hermes/memories/user.md +2 -0
- package/fixtures/native_stores/hermes/store/.hermes/state.db +0 -0
- package/fixtures/on_disk/audit.jsonl +5 -0
- package/fixtures/on_disk/auth_vectors.json +55 -0
- package/fixtures/on_disk/federation.yaml +22 -0
- package/fixtures/recognition_golden_v1.yaml +106 -0
- package/fixtures/recognition_vectors.json +448 -0
- package/fixtures/redaction_battery.json +473 -0
- package/fixtures/tier_matrix.json +398 -0
- package/fixtures/turn_compiler_vectors.json +645 -0
- package/package.json +39 -0
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_doc": "Cross-impl federation leak-audit parity. Oracle = core.leak_audit.audit_manifest. Each case feeds `manifest` through the auditor; `expected_findings` pins [{kind, location}] in the oracle's emission order (visibility entities, visibility sessions, then the total credential walk). kind in {'credential','visibility'}; location is a json-path like 'known_entities[0].summary'. audit_manifest NEVER raises -- garbage manifests yield []. Credential cases use keyword-shaped triggers only; no token literal is committed.",
|
|
3
|
+
"audit_schema_version": "federation-leak-audit/v1",
|
|
4
|
+
"private_tag_families": [
|
|
5
|
+
"credential",
|
|
6
|
+
"family",
|
|
7
|
+
"financial",
|
|
8
|
+
"health",
|
|
9
|
+
"legal",
|
|
10
|
+
"personal",
|
|
11
|
+
"private",
|
|
12
|
+
"secret"
|
|
13
|
+
],
|
|
14
|
+
"cases": [
|
|
15
|
+
{
|
|
16
|
+
"name": "credential_in_summary",
|
|
17
|
+
"manifest": {
|
|
18
|
+
"known_entities": [
|
|
19
|
+
{
|
|
20
|
+
"name": "API",
|
|
21
|
+
"summary": "the service_role key for supabase",
|
|
22
|
+
"visibility": "team"
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
},
|
|
26
|
+
"expected_findings": [
|
|
27
|
+
{
|
|
28
|
+
"kind": "credential",
|
|
29
|
+
"location": "known_entities[0].summary"
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"name": "credential_in_files_touched",
|
|
35
|
+
"manifest": {
|
|
36
|
+
"recent_sessions": [
|
|
37
|
+
{
|
|
38
|
+
"date": "2026-06-20",
|
|
39
|
+
"files_touched": [
|
|
40
|
+
"src/app.ts",
|
|
41
|
+
"config/.env"
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
"expected_findings": [
|
|
47
|
+
{
|
|
48
|
+
"kind": "credential",
|
|
49
|
+
"location": "recent_sessions[0].files_touched[1]"
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"name": "credential_in_role_narrative",
|
|
55
|
+
"manifest": {
|
|
56
|
+
"agent": {
|
|
57
|
+
"id": "x",
|
|
58
|
+
"type": "code-assistant",
|
|
59
|
+
"role_narrative": "rotate the api_key before every deploy"
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"expected_findings": [
|
|
63
|
+
{
|
|
64
|
+
"kind": "credential",
|
|
65
|
+
"location": "agent.role_narrative"
|
|
66
|
+
}
|
|
67
|
+
]
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"name": "credential_in_top_level_capabilities",
|
|
71
|
+
"manifest": {
|
|
72
|
+
"capabilities": [
|
|
73
|
+
"state_db",
|
|
74
|
+
"the bearer token is read from .env"
|
|
75
|
+
]
|
|
76
|
+
},
|
|
77
|
+
"expected_findings": [
|
|
78
|
+
{
|
|
79
|
+
"kind": "credential",
|
|
80
|
+
"location": "capabilities[1]"
|
|
81
|
+
}
|
|
82
|
+
]
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"name": "private_entity_explicit",
|
|
86
|
+
"manifest": {
|
|
87
|
+
"known_entities": [
|
|
88
|
+
{
|
|
89
|
+
"name": "SecretProj",
|
|
90
|
+
"type": "project",
|
|
91
|
+
"visibility": "private"
|
|
92
|
+
}
|
|
93
|
+
]
|
|
94
|
+
},
|
|
95
|
+
"expected_findings": [
|
|
96
|
+
{
|
|
97
|
+
"kind": "visibility",
|
|
98
|
+
"location": "known_entities[0]"
|
|
99
|
+
}
|
|
100
|
+
]
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"name": "private_tag_family_entity",
|
|
104
|
+
"manifest": {
|
|
105
|
+
"known_entities": [
|
|
106
|
+
{
|
|
107
|
+
"name": "Payroll",
|
|
108
|
+
"type": "concept",
|
|
109
|
+
"tags": [
|
|
110
|
+
"financial"
|
|
111
|
+
]
|
|
112
|
+
}
|
|
113
|
+
]
|
|
114
|
+
},
|
|
115
|
+
"expected_findings": [
|
|
116
|
+
{
|
|
117
|
+
"kind": "visibility",
|
|
118
|
+
"location": "known_entities[0]"
|
|
119
|
+
}
|
|
120
|
+
]
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"name": "private_tagged_session",
|
|
124
|
+
"manifest": {
|
|
125
|
+
"recent_sessions": [
|
|
126
|
+
{
|
|
127
|
+
"date": "2026-06-20",
|
|
128
|
+
"tags": [
|
|
129
|
+
"personal"
|
|
130
|
+
]
|
|
131
|
+
}
|
|
132
|
+
]
|
|
133
|
+
},
|
|
134
|
+
"expected_findings": [
|
|
135
|
+
{
|
|
136
|
+
"kind": "visibility",
|
|
137
|
+
"location": "recent_sessions[0]"
|
|
138
|
+
}
|
|
139
|
+
]
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"name": "manifest_declared_private_tag",
|
|
143
|
+
"manifest": {
|
|
144
|
+
"known_entities": [
|
|
145
|
+
{
|
|
146
|
+
"name": "Vault",
|
|
147
|
+
"type": "project",
|
|
148
|
+
"tags": [
|
|
149
|
+
"client-confidential"
|
|
150
|
+
]
|
|
151
|
+
}
|
|
152
|
+
],
|
|
153
|
+
"visibility_policy": {
|
|
154
|
+
"default": "team",
|
|
155
|
+
"private_tags": [
|
|
156
|
+
"client-confidential"
|
|
157
|
+
]
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
"expected_findings": [
|
|
161
|
+
{
|
|
162
|
+
"kind": "visibility",
|
|
163
|
+
"location": "known_entities[0]"
|
|
164
|
+
}
|
|
165
|
+
]
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"name": "clean_manifest",
|
|
169
|
+
"manifest": {
|
|
170
|
+
"known_entities": [
|
|
171
|
+
{
|
|
172
|
+
"name": "Bourdon",
|
|
173
|
+
"type": "project",
|
|
174
|
+
"summary": "memory federation",
|
|
175
|
+
"visibility": "team"
|
|
176
|
+
}
|
|
177
|
+
],
|
|
178
|
+
"recent_sessions": [
|
|
179
|
+
{
|
|
180
|
+
"date": "2026-06-20",
|
|
181
|
+
"key_actions": [
|
|
182
|
+
"refactored the L6 store"
|
|
183
|
+
],
|
|
184
|
+
"visibility": "team"
|
|
185
|
+
}
|
|
186
|
+
]
|
|
187
|
+
},
|
|
188
|
+
"expected_findings": []
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"name": "policy_names_not_self_flagged",
|
|
192
|
+
"manifest": {
|
|
193
|
+
"known_entities": [
|
|
194
|
+
{
|
|
195
|
+
"name": "Bourdon",
|
|
196
|
+
"type": "project",
|
|
197
|
+
"visibility": "team"
|
|
198
|
+
}
|
|
199
|
+
],
|
|
200
|
+
"visibility_policy": {
|
|
201
|
+
"default": "team",
|
|
202
|
+
"private_tags": [
|
|
203
|
+
"credential",
|
|
204
|
+
"secret",
|
|
205
|
+
"password",
|
|
206
|
+
"private_key"
|
|
207
|
+
]
|
|
208
|
+
}
|
|
209
|
+
},
|
|
210
|
+
"expected_findings": []
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"name": "garbage_non_dict_manifest",
|
|
214
|
+
"manifest": "not a dict",
|
|
215
|
+
"expected_findings": []
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
"name": "garbage_malformed_collections",
|
|
219
|
+
"manifest": {
|
|
220
|
+
"known_entities": "nope",
|
|
221
|
+
"recent_sessions": [
|
|
222
|
+
null,
|
|
223
|
+
42
|
|
224
|
+
]
|
|
225
|
+
},
|
|
226
|
+
"expected_findings": []
|
|
227
|
+
}
|
|
228
|
+
]
|
|
229
|
+
}
|
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_doc": "Index of cross-impl parity fixtures. conformance_version bumps on any fixture change (patch=added cases, minor=new family, major=changed expected-output = a reviewed behavior change). Python is the oracle; this file is generated by tools/gen_conformance.py.",
|
|
3
|
+
"conformance_version": "1.7.0",
|
|
4
|
+
"produced_against": {
|
|
5
|
+
"bourdon_version": "0.11.0"
|
|
6
|
+
},
|
|
7
|
+
"fixtures": [
|
|
8
|
+
{
|
|
9
|
+
"path": "redaction_battery.json",
|
|
10
|
+
"sha256": "dc648b86445165a11f5fd25b7f8c7b7144d3abcaf6bf602ae5eceb60ffe856a2",
|
|
11
|
+
"producer": "tools/gen_conformance.py::redaction_battery"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"path": "leak_cases.json",
|
|
15
|
+
"sha256": "6a5a100b11ffb138f933f7e8c47a4f6ce49cecd1a4f6dfa4635c1b022b573fc7",
|
|
16
|
+
"producer": "tools/gen_conformance.py::leak_cases"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"path": "recognition_vectors.json",
|
|
20
|
+
"sha256": "229b25bbf7521d821bb3e36661f47d6dbd837970964774346eee0f6ab8d0e686",
|
|
21
|
+
"producer": "tools/gen_conformance.py::recognition_vectors"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"path": "recognition_golden_v1.yaml",
|
|
25
|
+
"sha256": "d39272869976e192060eb9b2f0a0c289a18f43f78e15dc32192977876dd682db",
|
|
26
|
+
"producer": "tools/gen_conformance.py::recognition_vectors"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"path": "l5_schema.json",
|
|
30
|
+
"sha256": "c9bbee36b08656aaddf7584a94c0640ae9933177506be6ce656613fce5800ec7",
|
|
31
|
+
"producer": "tools/gen_conformance.py::l5_schema_and_manifests"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"path": "l5_manifests/valid/minimal.json",
|
|
35
|
+
"sha256": "2d06070185ed9141f3cfbe969f7e726e07785b3f71a3dc92404debe121e2f606",
|
|
36
|
+
"producer": "tools/gen_conformance.py::l5_schema_and_manifests"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"path": "l5_manifests/valid/full.json",
|
|
40
|
+
"sha256": "6204750867c74436691db72ba3cd6818d5a3fb6bc57f0447855c39bb607ca1d1",
|
|
41
|
+
"producer": "tools/gen_conformance.py::l5_schema_and_manifests"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"path": "l5_manifests/valid/team-and-private.json",
|
|
45
|
+
"sha256": "1cc77d236bad1b90f79b7e41e8f1765309bfca68d8fb4cd21138c470387ceec1",
|
|
46
|
+
"producer": "tools/gen_conformance.py::l5_schema_and_manifests"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"path": "l5_manifests/invalid/missing-required-last_updated.json",
|
|
50
|
+
"sha256": "51b938efb6461f64dc40afe08dcd66dbb910e2985f0f4274122c5d7997b6d1f5",
|
|
51
|
+
"producer": "tools/gen_conformance.py::l5_schema_and_manifests"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"path": "l5_manifests/invalid/bad-spec-version-pattern.json",
|
|
55
|
+
"sha256": "1a707a3d97c882e1e248690438c956afd2c4da94f17b4dd74ca7119ea1accdb5",
|
|
56
|
+
"producer": "tools/gen_conformance.py::l5_schema_and_manifests"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"path": "l5_manifests/invalid/bad-agent-type-enum.json",
|
|
60
|
+
"sha256": "1e7f6ac2f8f263edf3d7f8d4a65ff10502ca05d794846b235fc3fc6d9584e3c0",
|
|
61
|
+
"producer": "tools/gen_conformance.py::l5_schema_and_manifests"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"path": "l5_manifests/invalid/entity-bad-visibility-enum.json",
|
|
65
|
+
"sha256": "5b4c2173fb7a21a2cb0efa0710e9104ce6ba22721746d4d5ceae86eed1230472",
|
|
66
|
+
"producer": "tools/gen_conformance.py::l5_schema_and_manifests"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"path": "l5_manifests/invalid/entity-missing-name.json",
|
|
70
|
+
"sha256": "6836bb9f6143ee82aa772836850832538ddfa6fc8cd6047e27848418746bd4b6",
|
|
71
|
+
"producer": "tools/gen_conformance.py::l5_schema_and_manifests"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"path": "l5_manifests/invalid/reasons.json",
|
|
75
|
+
"sha256": "7457175cf3406f910a68d0b72c9b1149d1c5962e2a929ecbdb90984fe92500fd",
|
|
76
|
+
"producer": "tools/gen_conformance.py::l5_schema_and_manifests"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"path": "l5_todict.json",
|
|
80
|
+
"sha256": "0c83c95cd8f4efb9e32e816d4b28243b06da031079cff3a55440b00f8fcb2b34",
|
|
81
|
+
"producer": "tools/gen_conformance.py::l5_schema_and_manifests"
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"path": "fed_seed_library/agents/claude-code.l5.yaml",
|
|
85
|
+
"sha256": "a38fcc6c2e9d743449b3b969a9bf79b283a0fde24958bcc8f479a6af11d94c58",
|
|
86
|
+
"producer": "tools/gen_conformance.py::fed_seed_library"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"path": "fed_seed_library/agents/codex.l5.yaml",
|
|
90
|
+
"sha256": "025ced64d65d394f3937b2e1e60fad7495fc395e44c9738e0086eb9fb3c5b428",
|
|
91
|
+
"producer": "tools/gen_conformance.py::fed_seed_library"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"path": "tier_matrix.json",
|
|
95
|
+
"sha256": "620c762af64132214e1ea7067b24d073a74a981949f787b9dd3e11558d2e9371",
|
|
96
|
+
"producer": "tools/gen_conformance.py::tier_matrix"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"path": "on_disk/federation.yaml",
|
|
100
|
+
"sha256": "7a3795961d369ec57a6caa6af15e250d016c98e883077e82d7d103bd0c016cfe",
|
|
101
|
+
"producer": "tools/gen_conformance.py::federation_on_disk"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"path": "on_disk/audit.jsonl",
|
|
105
|
+
"sha256": "b4c5f3980e36f3585ad04d14e2f9e9939900a710e4d5ad6e123f4540cc05f16a",
|
|
106
|
+
"producer": "tools/gen_conformance.py::federation_on_disk"
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"path": "on_disk/auth_vectors.json",
|
|
110
|
+
"sha256": "c48be69e564767155a4414c6723846a6f921d9c032bf1ed927103678d3f2529d",
|
|
111
|
+
"producer": "tools/gen_conformance.py::federation_on_disk"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"path": "mcp_snapshots/query_agent_memory.req.json",
|
|
115
|
+
"sha256": "596ac7e85eb1afe05da799ea34593c75bd27d56be57ec86706713b469df7e7fc",
|
|
116
|
+
"producer": "tools/gen_conformance.py::mcp_snapshots"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"path": "mcp_snapshots/query_agent_memory.res.json",
|
|
120
|
+
"sha256": "a16077a6f9105f5d88a32ffbaeb2689e3184aca558f7960ef12f0f4790791808",
|
|
121
|
+
"producer": "tools/gen_conformance.py::mcp_snapshots"
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"path": "mcp_snapshots/list_recent_work.req.json",
|
|
125
|
+
"sha256": "442f2557bcdfb8cd5fbe5e8eaa4aef269fb9a93c9ba1060130a72975dd3f98df",
|
|
126
|
+
"producer": "tools/gen_conformance.py::mcp_snapshots"
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"path": "mcp_snapshots/list_recent_work.res.json",
|
|
130
|
+
"sha256": "ce42ba942bbc368866a0f6deca120a9263058e90c94862bfce88fee299be4d3a",
|
|
131
|
+
"producer": "tools/gen_conformance.py::mcp_snapshots"
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"path": "mcp_snapshots/find_entity.req.json",
|
|
135
|
+
"sha256": "a40e121827a32ed13ed20f361c771d784fc2d1b19c212a3c35d20c7265e52041",
|
|
136
|
+
"producer": "tools/gen_conformance.py::mcp_snapshots"
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"path": "mcp_snapshots/find_entity.res.json",
|
|
140
|
+
"sha256": "b6881e05615333d99d8bb6b0966c4bb233cc35d94ab97d8d6b0bc55949e7141b",
|
|
141
|
+
"producer": "tools/gen_conformance.py::mcp_snapshots"
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"path": "mcp_snapshots/list_agents.req.json",
|
|
145
|
+
"sha256": "80c17300d53998e351d8647f5af0e9660944e657b1ab05c9b3a29a23e170e22c",
|
|
146
|
+
"producer": "tools/gen_conformance.py::mcp_snapshots"
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"path": "mcp_snapshots/list_agents.res.json",
|
|
150
|
+
"sha256": "bd46021a28cc8bd0c17b614f851b33ac5d291ffa8bd9c947254248d9733bc5b7",
|
|
151
|
+
"producer": "tools/gen_conformance.py::mcp_snapshots"
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"path": "mcp_snapshots/export_agents.req.json",
|
|
155
|
+
"sha256": "6c19c751d9279ca021ca229c219272cfb12203abe03d824f82cb8f27d0abd4bc",
|
|
156
|
+
"producer": "tools/gen_conformance.py::mcp_snapshots"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"path": "mcp_snapshots/export_agents.res.json",
|
|
160
|
+
"sha256": "af70539f49e7882b03eb2018dd34fb748b13bfb11d953a166adbb2d54b354f17",
|
|
161
|
+
"producer": "tools/gen_conformance.py::mcp_snapshots"
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"path": "mcp_snapshots/commit_to_federation.req.json",
|
|
165
|
+
"sha256": "da0faa15708bac21e7d6e551d12a4fa70ac29a1d2aaf025fd91989992d22d938",
|
|
166
|
+
"producer": "tools/gen_conformance.py::mcp_snapshots"
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"path": "mcp_snapshots/commit_to_federation.res.json",
|
|
170
|
+
"sha256": "96b8ee3c0017587a5aee35aaf1553a1786fa6acae9be16294aa1c9590523bfaa",
|
|
171
|
+
"producer": "tools/gen_conformance.py::mcp_snapshots"
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
"path": "mcp_snapshots/get_cross_agent_summary.req.json",
|
|
175
|
+
"sha256": "edb772ecf81d4b0ff119aea718c8c087bf527c32b094a3b61aca502229143fc9",
|
|
176
|
+
"producer": "tools/gen_conformance.py::mcp_snapshots"
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
"path": "mcp_snapshots/get_cross_agent_summary.res.json",
|
|
180
|
+
"sha256": "ada93fb31ec2981e4a34cf67aaea995a82516ae57d329c5aea72fe01c157c00a",
|
|
181
|
+
"producer": "tools/gen_conformance.py::mcp_snapshots"
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
"path": "mcp_snapshots/prepare_recognition_context.req.json",
|
|
185
|
+
"sha256": "524689f2b4d0e6e29fcc30579e36c05e89d5a6bba4db1c6e52abf65f8b63eacf",
|
|
186
|
+
"producer": "tools/gen_conformance.py::mcp_snapshots"
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
"path": "mcp_snapshots/prepare_recognition_context.res.json",
|
|
190
|
+
"sha256": "fed8be60118cc027654ce8c2d1bb072482808c62e7997fd236ba276d5a50a580",
|
|
191
|
+
"producer": "tools/gen_conformance.py::mcp_snapshots"
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
"path": "mcp_snapshots/compile_codex_turn.req.json",
|
|
195
|
+
"sha256": "681c56c29918c85d4417b562e1e95d3fe9f438a89d0e867f2eabd56e85e3a1d1",
|
|
196
|
+
"producer": "tools/gen_conformance.py::mcp_snapshots"
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
"path": "mcp_snapshots/compile_codex_turn.res.json",
|
|
200
|
+
"sha256": "d662fd546ee6ba3315a751d68d2d096b5d21d338cf3c65970f09431f666f5e6b",
|
|
201
|
+
"producer": "tools/gen_conformance.py::mcp_snapshots"
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
"path": "mcp_snapshots/get_deeper_context.req.json",
|
|
205
|
+
"sha256": "ca5d6f3472a3a74b1710e8ee093e5648b737bf6635656a21306ef73656fd533f",
|
|
206
|
+
"producer": "tools/gen_conformance.py::mcp_snapshots"
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
"path": "mcp_snapshots/get_deeper_context.res.json",
|
|
210
|
+
"sha256": "842926cd013275692fd11daab8553a329f2685c870b59389ee5b075544d5ed49",
|
|
211
|
+
"producer": "tools/gen_conformance.py::mcp_snapshots"
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
"path": "mcp_snapshots/seed_library.json",
|
|
215
|
+
"sha256": "64742d18945ed031b09c6ddb784785e7f504b158ed792349fd624e640b84cb14",
|
|
216
|
+
"producer": "tools/gen_conformance.py::mcp_snapshots"
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
"path": "mcp_snapshots/_normalizer.json",
|
|
220
|
+
"sha256": "e7eebbd0f68d967a6517d23b7d483a3a9296b109f7b7aff4431931877842c347",
|
|
221
|
+
"producer": "tools/gen_conformance.py::mcp_snapshots"
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
"path": "native_stores/hermes/store/.hermes/state.db",
|
|
225
|
+
"sha256": "44742d90bd760657bface83a22a5610b1b6fb3c065cd7035669d2b4a72e2d585",
|
|
226
|
+
"producer": "tools/gen_conformance.py::native_stores"
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
"path": "native_stores/hermes/store/.hermes/memories/memory.md",
|
|
230
|
+
"sha256": "45c32c828e96353b409204eeeda1df7b89f75699ec46bffff32df6d3c9781804",
|
|
231
|
+
"producer": "tools/gen_conformance.py::native_stores"
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
"path": "native_stores/hermes/store/.hermes/memories/user.md",
|
|
235
|
+
"sha256": "eba3d961098a45f93641a9be6a1abeb07f05bd44caf4a3ba8816cbee9cc6e8ad",
|
|
236
|
+
"producer": "tools/gen_conformance.py::native_stores"
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"path": "native_stores/hermes/expected_l5.json",
|
|
240
|
+
"sha256": "f4360618c6decdeddb0a08afaf2d98dc50fe06264cbab6c02a345fbc38e7a57c",
|
|
241
|
+
"producer": "tools/gen_conformance.py::native_stores"
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
"path": "native_stores/claude_code/store/brain/PROJECTS/Bourdon/OVERVIEW.md",
|
|
245
|
+
"sha256": "6e9778f2a4d631ffa93693096d7a223c25eb7290913aa192bf9e8174528b5e5b",
|
|
246
|
+
"producer": "tools/gen_conformance.py::native_stores"
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
"path": "native_stores/claude_code/store/brain/PROJECTS/OldThing/OVERVIEW.md",
|
|
250
|
+
"sha256": "81f06ef015753b81914ddd920a5d3cd5a33bd3695f4b0f9cd411352d017c56de",
|
|
251
|
+
"producer": "tools/gen_conformance.py::native_stores"
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
"path": "native_stores/claude_code/store/brain/LOG/2026-06-28-pc.md",
|
|
255
|
+
"sha256": "e9265a450bf76800560bb5c0697f85bc3edcd0a9d3642700253fba27427974aa",
|
|
256
|
+
"producer": "tools/gen_conformance.py::native_stores"
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
"path": "native_stores/claude_code/store/auto_memory/MEMORY.md",
|
|
260
|
+
"sha256": "d5c49419aa0436c56b3e49d810e67a7fa31fb9c0ba55bc88302059a855b477cf",
|
|
261
|
+
"producer": "tools/gen_conformance.py::native_stores"
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
"path": "native_stores/claude_code/store/auto_memory/clyde.md",
|
|
265
|
+
"sha256": "dd0b03ac047fcc377cf104e3be32807d89d4ac59a3d06b283d3b8b48d85a755c",
|
|
266
|
+
"producer": "tools/gen_conformance.py::native_stores"
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
"path": "native_stores/claude_code/store/auto_memory/ry-guy.md",
|
|
270
|
+
"sha256": "022cde0d5bfdaf2beae38f9b831b8b2c16e2823e705c1f5ff050a9c72374ee86",
|
|
271
|
+
"producer": "tools/gen_conformance.py::native_stores"
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
"path": "native_stores/claude_code/store/knowledge_graph/memory.jsonl",
|
|
275
|
+
"sha256": "6d15efda0caabc52037385908b40fcf6becb3bfa7ead33c13535ab6b6cc401a1",
|
|
276
|
+
"producer": "tools/gen_conformance.py::native_stores"
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
"path": "native_stores/claude_code/expected_l5.json",
|
|
280
|
+
"sha256": "09b7431c42caf316b99ba4d743a328e83ad066284b6e325e322c5683bbdc38f7",
|
|
281
|
+
"producer": "tools/gen_conformance.py::native_stores"
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
"path": "native_stores/github_copilot/cache/github-copilot/payload.json",
|
|
285
|
+
"sha256": "2e9a1f6d19927417bd78bbdfa4260d11ea4b258f5e2a471549de460c433d3aaa",
|
|
286
|
+
"producer": "tools/gen_conformance.py::native_stores"
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
"path": "native_stores/github_copilot/expected_l5.json",
|
|
290
|
+
"sha256": "922e291c19f7729cf39242a31de8ff6e5fddd41d5fb9fce6e8f623b0e7c50824",
|
|
291
|
+
"producer": "tools/gen_conformance.py::native_stores"
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
"path": "native_stores/README.json",
|
|
295
|
+
"sha256": "7ba6f1f94f29a126af316c501934d125ba2d90e73e5fc28a3b01a8f63c53c037",
|
|
296
|
+
"producer": "tools/gen_conformance.py::native_stores"
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
"path": "turn_compiler_vectors.json",
|
|
300
|
+
"sha256": "add466b02d93cd706c92cdd1f0a2c43b9d633efe19d7ae0319eaa2ade7530f38",
|
|
301
|
+
"producer": "tools/gen_conformance.py::turn_compiler_vectors"
|
|
302
|
+
}
|
|
303
|
+
]
|
|
304
|
+
}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_doc": "Fixture-tests the MCP snapshot NORMALIZER itself. Each `normalized` is normalize_snapshot(`raw`) computed by the oracle. Rules: sort object keys (write-time), round floats to 4 dp, drop null + empty-list dict fields, freeze {last_updated, generated_at, generated_from, path} -> '<frozen>', drop latency fields {recognition_latency_us, peer_latencies_us}, decode next_cursor base64 -> {offset:N}. The TS canonicalizer must match each pair.",
|
|
3
|
+
"cases": [
|
|
4
|
+
{
|
|
5
|
+
"_doc": "drops null + empty-list fields (to_dict omission parity)",
|
|
6
|
+
"normalized": {
|
|
7
|
+
"kept": "x",
|
|
8
|
+
"zero": 0
|
|
9
|
+
},
|
|
10
|
+
"raw": {
|
|
11
|
+
"agent": null,
|
|
12
|
+
"files_touched": [],
|
|
13
|
+
"kept": "x",
|
|
14
|
+
"zero": 0
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"_doc": "rounds floats to 4 dp; bools are untouched",
|
|
19
|
+
"normalized": {
|
|
20
|
+
"ok": true,
|
|
21
|
+
"ratio": 0.1235,
|
|
22
|
+
"score": 71.6667
|
|
23
|
+
},
|
|
24
|
+
"raw": {
|
|
25
|
+
"ok": true,
|
|
26
|
+
"ratio": 0.1234567,
|
|
27
|
+
"score": 71.66666666
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"_doc": "freezes last_updated / path / generated_from / generated_at",
|
|
32
|
+
"normalized": {
|
|
33
|
+
"generated_at": "<frozen>",
|
|
34
|
+
"generated_from": "<frozen>",
|
|
35
|
+
"last_updated": "<frozen>",
|
|
36
|
+
"path": "<frozen>"
|
|
37
|
+
},
|
|
38
|
+
"raw": {
|
|
39
|
+
"generated_at": "2026-06-30T02:59:09Z",
|
|
40
|
+
"generated_from": "/tmp/x/agents",
|
|
41
|
+
"last_updated": "2026-06-30T02:59:09.096243+00:00",
|
|
42
|
+
"path": "/tmp/x/clyde.l5.yaml"
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"_doc": "drops latency fields wholesale (runtime-dependent)",
|
|
47
|
+
"normalized": {
|
|
48
|
+
"confidence": "medium"
|
|
49
|
+
},
|
|
50
|
+
"raw": {
|
|
51
|
+
"confidence": "medium",
|
|
52
|
+
"peer_latencies_us": {
|
|
53
|
+
"mac": 9.1
|
|
54
|
+
},
|
|
55
|
+
"recognition_latency_us": 140.5
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"_doc": "decodes a base64 next_cursor to its {offset} payload; null cursor drops",
|
|
60
|
+
"normalized": {
|
|
61
|
+
"has_more": true,
|
|
62
|
+
"next_cursor": {
|
|
63
|
+
"offset": 2
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"raw": {
|
|
67
|
+
"has_more": true,
|
|
68
|
+
"next_cursor": "eyJvZmZzZXQiOjJ9"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"_doc": "null next_cursor (last page) is dropped like any other null",
|
|
73
|
+
"normalized": {
|
|
74
|
+
"has_more": false
|
|
75
|
+
},
|
|
76
|
+
"raw": {
|
|
77
|
+
"has_more": false,
|
|
78
|
+
"next_cursor": null
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"_doc": "nested arrays keep their order; nested null/empty dropped per-field",
|
|
83
|
+
"normalized": {
|
|
84
|
+
"sessions": [
|
|
85
|
+
{
|
|
86
|
+
"agent": "codex",
|
|
87
|
+
"project_focus": [
|
|
88
|
+
"A"
|
|
89
|
+
]
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"agent": "claude-code",
|
|
93
|
+
"project_focus": [
|
|
94
|
+
"B"
|
|
95
|
+
]
|
|
96
|
+
}
|
|
97
|
+
]
|
|
98
|
+
},
|
|
99
|
+
"raw": {
|
|
100
|
+
"sessions": [
|
|
101
|
+
{
|
|
102
|
+
"agent": "codex",
|
|
103
|
+
"cwd": null,
|
|
104
|
+
"files_touched": [],
|
|
105
|
+
"project_focus": [
|
|
106
|
+
"A"
|
|
107
|
+
]
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"agent": "claude-code",
|
|
111
|
+
"project_focus": [
|
|
112
|
+
"B"
|
|
113
|
+
]
|
|
114
|
+
}
|
|
115
|
+
]
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
],
|
|
119
|
+
"cursor_fields": [
|
|
120
|
+
"next_cursor"
|
|
121
|
+
],
|
|
122
|
+
"drop_latency_fields": [
|
|
123
|
+
"peer_latencies_us",
|
|
124
|
+
"recognition_latency_us"
|
|
125
|
+
],
|
|
126
|
+
"float_precision": 4,
|
|
127
|
+
"freeze_fields": [
|
|
128
|
+
"generated_at",
|
|
129
|
+
"generated_from",
|
|
130
|
+
"last_updated",
|
|
131
|
+
"path"
|
|
132
|
+
],
|
|
133
|
+
"frozen_sentinel": "<frozen>"
|
|
134
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"args": {
|
|
3
|
+
"agent_id": "clyde",
|
|
4
|
+
"agent_type": "other",
|
|
5
|
+
"entities": [
|
|
6
|
+
{
|
|
7
|
+
"name": "SnapshotEntity",
|
|
8
|
+
"summary": "mcp snapshot probe"
|
|
9
|
+
}
|
|
10
|
+
],
|
|
11
|
+
"mode": "merge",
|
|
12
|
+
"sessions": [
|
|
13
|
+
{
|
|
14
|
+
"date": "2026-06-09"
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
},
|
|
18
|
+
"tool": "commit_to_federation"
|
|
19
|
+
}
|