@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,448 @@
1
+ {
2
+ "_doc": "Cross-impl recognition parity. Python is the oracle. tier_vectors: best_match_tier(prompt,names).name + TIER-ONLY recognition_confidence(prompt,names). confidence_buckets: normalized_confidence(tier, n_anchor_terms/cwd_hit/recency_fresh) -- pins the 0.45 and 0.80 bucket edges. recognition_strings: recognition_first(prompt,manifest,access_level) end-to-end (detect + build_recognition_string + visibility + archived suffix).",
3
+ "tier_vectors": [
4
+ {
5
+ "prompt": "Bourdon",
6
+ "names": [
7
+ "bourdon"
8
+ ],
9
+ "tier": "EXACT",
10
+ "confidence": "high"
11
+ },
12
+ {
13
+ "prompt": "tell me about Bourdon",
14
+ "names": [
15
+ "Bourdon"
16
+ ],
17
+ "tier": "NAME_SUBSTRING",
18
+ "confidence": "medium"
19
+ },
20
+ {
21
+ "prompt": "how is ILTT going",
22
+ "names": [
23
+ "ILTT"
24
+ ],
25
+ "tier": "NAME_SUBSTRING",
26
+ "confidence": "medium"
27
+ },
28
+ {
29
+ "prompt": "we ILTTed the build",
30
+ "names": [
31
+ "ILTT"
32
+ ],
33
+ "tier": "NONE",
34
+ "confidence": "none"
35
+ },
36
+ {
37
+ "prompt": "pick a category",
38
+ "names": [
39
+ "cat"
40
+ ],
41
+ "tier": "NONE",
42
+ "confidence": "none"
43
+ },
44
+ {
45
+ "prompt": "the federation substrate work",
46
+ "names": [
47
+ "Bourdon federation engine"
48
+ ],
49
+ "tier": "TOKEN_OVERLAP",
50
+ "confidence": "low"
51
+ },
52
+ {
53
+ "prompt": "the federation memory substrate",
54
+ "names": [
55
+ "Bourdon federation memory"
56
+ ],
57
+ "tier": "TOKEN_OVERLAP",
58
+ "confidence": "low"
59
+ },
60
+ {
61
+ "prompt": "we shipped DINOs Chess tonight",
62
+ "names": [
63
+ "DINOs Chess"
64
+ ],
65
+ "tier": "NAME_SUBSTRING",
66
+ "confidence": "medium"
67
+ },
68
+ {
69
+ "prompt": "checkers tonight",
70
+ "names": [
71
+ "DINOs Chess",
72
+ "checkers"
73
+ ],
74
+ "tier": "NAME_SUBSTRING",
75
+ "confidence": "medium"
76
+ },
77
+ {
78
+ "prompt": "completely unrelated words",
79
+ "names": [
80
+ "Bourdon"
81
+ ],
82
+ "tier": "NONE",
83
+ "confidence": "none"
84
+ },
85
+ {
86
+ "prompt": "i deployed to a NAS box, the bananas were fine",
87
+ "names": [
88
+ "NAS"
89
+ ],
90
+ "tier": "NAME_SUBSTRING",
91
+ "confidence": "medium"
92
+ },
93
+ {
94
+ "prompt": "where are we on the Multi Word Project",
95
+ "names": [
96
+ "Multi Word Project"
97
+ ],
98
+ "tier": "NAME_SUBSTRING",
99
+ "confidence": "medium"
100
+ }
101
+ ],
102
+ "confidence_buckets": [
103
+ {
104
+ "tier": "NONE",
105
+ "n_anchor_terms": 1,
106
+ "cwd_hit": false,
107
+ "recency_fresh": false,
108
+ "bucket": "none"
109
+ },
110
+ {
111
+ "tier": "TOKEN_OVERLAP",
112
+ "n_anchor_terms": 1,
113
+ "cwd_hit": false,
114
+ "recency_fresh": false,
115
+ "bucket": "low"
116
+ },
117
+ {
118
+ "tier": "TOKEN_OVERLAP",
119
+ "n_anchor_terms": 2,
120
+ "cwd_hit": false,
121
+ "recency_fresh": false,
122
+ "bucket": "medium"
123
+ },
124
+ {
125
+ "tier": "TOKEN_SUBSEQUENCE",
126
+ "n_anchor_terms": 1,
127
+ "cwd_hit": false,
128
+ "recency_fresh": false,
129
+ "bucket": "medium"
130
+ },
131
+ {
132
+ "tier": "NAME_SUBSTRING",
133
+ "n_anchor_terms": 1,
134
+ "cwd_hit": false,
135
+ "recency_fresh": false,
136
+ "bucket": "medium"
137
+ },
138
+ {
139
+ "tier": "NAME_SUBSTRING",
140
+ "n_anchor_terms": 1,
141
+ "cwd_hit": false,
142
+ "recency_fresh": true,
143
+ "bucket": "high"
144
+ },
145
+ {
146
+ "tier": "NAME_SUBSTRING",
147
+ "n_anchor_terms": 1,
148
+ "cwd_hit": true,
149
+ "recency_fresh": false,
150
+ "bucket": "high"
151
+ },
152
+ {
153
+ "tier": "EXACT",
154
+ "n_anchor_terms": 1,
155
+ "cwd_hit": false,
156
+ "recency_fresh": false,
157
+ "bucket": "high"
158
+ },
159
+ {
160
+ "tier": "TOKEN_OVERLAP",
161
+ "n_anchor_terms": 2,
162
+ "cwd_hit": true,
163
+ "recency_fresh": true,
164
+ "bucket": "medium"
165
+ }
166
+ ],
167
+ "recognition_strings": [
168
+ {
169
+ "name": "single_with_type",
170
+ "prompt": "tell me about Bourdon",
171
+ "manifest": {
172
+ "known_entities": [
173
+ {
174
+ "name": "Bourdon",
175
+ "type": "project"
176
+ }
177
+ ]
178
+ },
179
+ "access_level": "team",
180
+ "matched_names": [
181
+ "Bourdon"
182
+ ],
183
+ "recognition": "Oh -- Bourdon, the project.",
184
+ "confidence": "medium",
185
+ "entity_confidences": {
186
+ "Bourdon": "medium"
187
+ }
188
+ },
189
+ {
190
+ "name": "single_no_type",
191
+ "prompt": "status on Alpha please",
192
+ "manifest": {
193
+ "known_entities": [
194
+ {
195
+ "name": "Alpha"
196
+ }
197
+ ]
198
+ },
199
+ "access_level": "team",
200
+ "matched_names": [
201
+ "Alpha"
202
+ ],
203
+ "recognition": "Oh -- Alpha.",
204
+ "confidence": "medium",
205
+ "entity_confidences": {
206
+ "Alpha": "medium"
207
+ }
208
+ },
209
+ {
210
+ "name": "two_matches",
211
+ "prompt": "compare Bourdon and OMNIvour for me",
212
+ "manifest": {
213
+ "known_entities": [
214
+ {
215
+ "name": "Bourdon",
216
+ "type": "project"
217
+ },
218
+ {
219
+ "name": "OMNIvour",
220
+ "type": "project"
221
+ },
222
+ {
223
+ "name": "Unrelated",
224
+ "type": "project"
225
+ }
226
+ ]
227
+ },
228
+ "access_level": "team",
229
+ "matched_names": [
230
+ "Bourdon",
231
+ "OMNIvour"
232
+ ],
233
+ "recognition": "You're asking about Bourdon and OMNIvour -- I have both.",
234
+ "confidence": "medium",
235
+ "entity_confidences": {
236
+ "Bourdon": "medium",
237
+ "OMNIvour": "medium"
238
+ }
239
+ },
240
+ {
241
+ "name": "three_matches",
242
+ "prompt": "status on Alpha, Beta, and Gamma please",
243
+ "manifest": {
244
+ "known_entities": [
245
+ {
246
+ "name": "Alpha"
247
+ },
248
+ {
249
+ "name": "Beta"
250
+ },
251
+ {
252
+ "name": "Gamma"
253
+ },
254
+ {
255
+ "name": "Delta"
256
+ }
257
+ ]
258
+ },
259
+ "access_level": "team",
260
+ "matched_names": [
261
+ "Alpha",
262
+ "Beta",
263
+ "Gamma"
264
+ ],
265
+ "recognition": "You're asking about Alpha, Beta, and Gamma -- I have all of those.",
266
+ "confidence": "medium",
267
+ "entity_confidences": {
268
+ "Alpha": "medium",
269
+ "Beta": "medium",
270
+ "Gamma": "medium"
271
+ }
272
+ },
273
+ {
274
+ "name": "short_name_guard",
275
+ "prompt": "the build ILTTed yesterday and broke",
276
+ "manifest": {
277
+ "known_entities": [
278
+ {
279
+ "name": "ILTT",
280
+ "type": "product"
281
+ }
282
+ ]
283
+ },
284
+ "access_level": "team",
285
+ "matched_names": [],
286
+ "recognition": "",
287
+ "confidence": "none",
288
+ "entity_confidences": {}
289
+ },
290
+ {
291
+ "name": "substring_not_token",
292
+ "prompt": "i deployed to a NAS box, the bananas were fine",
293
+ "manifest": {
294
+ "known_entities": [
295
+ {
296
+ "name": "NAS",
297
+ "type": "hardware"
298
+ }
299
+ ]
300
+ },
301
+ "access_level": "team",
302
+ "matched_names": [
303
+ "NAS"
304
+ ],
305
+ "recognition": "Oh -- NAS, the hardware.",
306
+ "confidence": "medium",
307
+ "entity_confidences": {
308
+ "NAS": "medium"
309
+ }
310
+ },
311
+ {
312
+ "name": "visibility_private_hidden",
313
+ "prompt": "tell me about SecretSauce and PublicProj",
314
+ "manifest": {
315
+ "known_entities": [
316
+ {
317
+ "name": "PublicProj",
318
+ "type": "project"
319
+ },
320
+ {
321
+ "name": "SecretSauce",
322
+ "type": "project",
323
+ "visibility": "private"
324
+ }
325
+ ]
326
+ },
327
+ "access_level": "team",
328
+ "matched_names": [
329
+ "PublicProj"
330
+ ],
331
+ "recognition": "Oh -- PublicProj, the project.",
332
+ "confidence": "medium",
333
+ "entity_confidences": {
334
+ "PublicProj": "medium"
335
+ }
336
+ },
337
+ {
338
+ "name": "archived_valid_to",
339
+ "prompt": "remind me what Coolculator was",
340
+ "manifest": {
341
+ "known_entities": [
342
+ {
343
+ "name": "Coolculator",
344
+ "type": "project",
345
+ "valid_to": "2026-01-01"
346
+ }
347
+ ]
348
+ },
349
+ "access_level": "team",
350
+ "matched_names": [
351
+ "Coolculator"
352
+ ],
353
+ "recognition": "Oh -- Coolculator, the project (archived 2026-01-01).",
354
+ "confidence": "medium",
355
+ "entity_confidences": {
356
+ "Coolculator": "medium"
357
+ }
358
+ },
359
+ {
360
+ "name": "archived_tag",
361
+ "prompt": "what about LegacyThing",
362
+ "manifest": {
363
+ "known_entities": [
364
+ {
365
+ "name": "LegacyThing",
366
+ "type": "tool",
367
+ "tags": [
368
+ "archived"
369
+ ]
370
+ }
371
+ ]
372
+ },
373
+ "access_level": "team",
374
+ "matched_names": [
375
+ "LegacyThing"
376
+ ],
377
+ "recognition": "Oh -- LegacyThing, the tool (archived).",
378
+ "confidence": "medium",
379
+ "entity_confidences": {
380
+ "LegacyThing": "medium"
381
+ }
382
+ },
383
+ {
384
+ "name": "alias_match",
385
+ "prompt": "any update on if_lift_then_that",
386
+ "manifest": {
387
+ "known_entities": [
388
+ {
389
+ "name": "ILTT",
390
+ "type": "product",
391
+ "aliases": [
392
+ "if_lift_then_that"
393
+ ]
394
+ }
395
+ ]
396
+ },
397
+ "access_level": "team",
398
+ "matched_names": [
399
+ "ILTT"
400
+ ],
401
+ "recognition": "Oh -- ILTT, the product.",
402
+ "confidence": "medium",
403
+ "entity_confidences": {
404
+ "ILTT": "medium"
405
+ }
406
+ },
407
+ {
408
+ "name": "negative_control",
409
+ "prompt": "what is the weather like today",
410
+ "manifest": {
411
+ "known_entities": [
412
+ {
413
+ "name": "Bourdon"
414
+ },
415
+ {
416
+ "name": "OMNIvour"
417
+ }
418
+ ]
419
+ },
420
+ "access_level": "team",
421
+ "matched_names": [],
422
+ "recognition": "",
423
+ "confidence": "none",
424
+ "entity_confidences": {}
425
+ },
426
+ {
427
+ "name": "multi_word",
428
+ "prompt": "where are we on the Multi Word Project",
429
+ "manifest": {
430
+ "known_entities": [
431
+ {
432
+ "name": "Multi Word Project",
433
+ "type": "project"
434
+ }
435
+ ]
436
+ },
437
+ "access_level": "team",
438
+ "matched_names": [
439
+ "Multi Word Project"
440
+ ],
441
+ "recognition": "Oh -- Multi Word Project, the project.",
442
+ "confidence": "medium",
443
+ "entity_confidences": {
444
+ "Multi Word Project": "medium"
445
+ }
446
+ }
447
+ ]
448
+ }