@getbourdon/conformance 0.2.1 → 0.3.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/README.md +26 -4
- package/dist/index.cjs +30 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +20 -1
- package/dist/index.d.ts +28 -11
- package/dist/index.js +51 -29
- package/dist/index.js.map +1 -1
- package/fixtures/README.md +11 -3
- package/fixtures/fed_seed_library/agents/claude-code.l5.yaml +31 -4
- package/fixtures/fed_seed_library/agents/codex.l5.yaml +15 -0
- package/fixtures/l5_manifests/invalid/bad-agent-type-enum.json +1 -1
- package/fixtures/l5_manifests/invalid/bad-spec-version-pattern.json +1 -1
- package/fixtures/l5_manifests/invalid/entity-bad-visibility-enum.json +1 -1
- package/fixtures/l5_manifests/invalid/entity-impossible-calendar-date.json +14 -0
- package/fixtures/l5_manifests/invalid/entity-missing-name.json +1 -1
- package/fixtures/l5_manifests/invalid/missing-required-last_updated.json +1 -1
- package/fixtures/l5_manifests/invalid/reasons.json +52 -0
- package/fixtures/l5_manifests/invalid/session-impossible-calendar-date.json +13 -0
- package/fixtures/l5_manifests/invalid/session-impossible-feb-30.json +13 -0
- package/fixtures/l5_manifests/valid/full.json +2 -2
- package/fixtures/l5_manifests/valid/minimal.json +1 -1
- package/fixtures/l5_manifests/valid/session-empty-date.json +16 -0
- package/fixtures/l5_manifests/valid/team-and-private.json +1 -1
- package/fixtures/l5_schema.json +216 -27
- package/fixtures/l5_todict.json +10 -10
- package/fixtures/leak_cases.json +1 -1
- package/fixtures/manifest.json +142 -32
- package/fixtures/mcp_snapshots/_normalizer.json +32 -2
- package/fixtures/mcp_snapshots/commit_to_federation.req.json +13 -1
- package/fixtures/mcp_snapshots/commit_to_federation.res.json +9 -2
- package/fixtures/mcp_snapshots/explain_memory_change.req.json +7 -0
- package/fixtures/mcp_snapshots/explain_memory_change.res.json +15 -0
- package/fixtures/mcp_snapshots/export_agents.res.json +47 -1
- package/fixtures/mcp_snapshots/get_cross_agent_summary.res.json +1 -1
- package/fixtures/mcp_snapshots/list_memory_versions.req.json +6 -0
- package/fixtures/mcp_snapshots/list_memory_versions.res.json +13 -0
- package/fixtures/mcp_snapshots/list_notes.req.json +8 -0
- package/fixtures/mcp_snapshots/list_notes.res.json +28 -0
- package/fixtures/mcp_snapshots/list_recent_work.res.json +1 -1
- package/fixtures/mcp_snapshots/list_workstreams.req.json +6 -0
- package/fixtures/mcp_snapshots/list_workstreams.res.json +23 -0
- package/fixtures/mcp_snapshots/prepare_recognition_context_drifting.req.json +8 -0
- package/fixtures/mcp_snapshots/prepare_recognition_context_drifting.res.json +26 -0
- package/fixtures/mcp_snapshots/resource_agent_memory.req.json +6 -0
- package/fixtures/mcp_snapshots/resource_agent_memory.res.json +80 -0
- package/fixtures/mcp_snapshots/resource_agents.req.json +4 -0
- package/fixtures/mcp_snapshots/resource_agents.res.json +4 -0
- package/fixtures/mcp_snapshots/resource_entity.req.json +6 -0
- package/fixtures/mcp_snapshots/resource_entity.res.json +19 -0
- package/fixtures/mcp_snapshots/rollback_agent_memory.req.json +7 -0
- package/fixtures/mcp_snapshots/rollback_agent_memory.res.json +7 -0
- package/fixtures/mcp_snapshots/seed_library.json +111 -3
- package/fixtures/native_stores/claude_code/expected_l5.json +8 -8
- package/fixtures/native_stores/claude_code/store/auto_memory/{clyde.md → alpha-agent.md} +2 -2
- package/fixtures/native_stores/claude_code/store/auto_memory/{ry-guy.md → example-user.md} +2 -2
- package/fixtures/native_stores/claude_code/store/knowledge_graph/memory.jsonl +2 -2
- package/fixtures/recognition_golden_v1.yaml +17 -17
- package/fixtures/recognition_vectors.json +23 -23
- package/fixtures/tier_matrix.json +2 -2
- package/fixtures.pin.json +5 -0
- package/package.json +6 -4
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"access_level": "team",
|
|
3
|
+
"confidence": "medium",
|
|
4
|
+
"drifting_surfaces": [
|
|
5
|
+
{
|
|
6
|
+
"agent": "codex",
|
|
7
|
+
"checked_at": "2026-06-29T12:00:00Z",
|
|
8
|
+
"reason": "yielded nothing this run - last yielded 400 record(s) at 2026-06-29T09:00:00Z"
|
|
9
|
+
}
|
|
10
|
+
],
|
|
11
|
+
"hydration_scheduled": true,
|
|
12
|
+
"include_private": false,
|
|
13
|
+
"matched_entities": [
|
|
14
|
+
{
|
|
15
|
+
"name": "Bourdon",
|
|
16
|
+
"source_agents": [
|
|
17
|
+
"claude-code",
|
|
18
|
+
"codex"
|
|
19
|
+
],
|
|
20
|
+
"type": "project"
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"prompt": "what about Bourdon",
|
|
24
|
+
"prompt_context": "Bourdon recognition context\nImmediate recognition: Oh -- Bourdon, the project.\nMatched entities:\n- Bourdon (project) via claude-code, codex: Cross-agent memory federation (granted side).\nUse this as timing-layer context, not as a final answer.",
|
|
25
|
+
"recognition": "Oh -- Bourdon, the project."
|
|
26
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
{
|
|
2
|
+
"agent": {
|
|
3
|
+
"id": "claude-code",
|
|
4
|
+
"instance": "workstation-01",
|
|
5
|
+
"role_narrative": "Lead code-assistant on the federation substrate.",
|
|
6
|
+
"type": "code-assistant"
|
|
7
|
+
},
|
|
8
|
+
"capabilities": [
|
|
9
|
+
"code-read",
|
|
10
|
+
"code-write"
|
|
11
|
+
],
|
|
12
|
+
"known_entities": [
|
|
13
|
+
{
|
|
14
|
+
"aliases": [
|
|
15
|
+
"NeuroLayer",
|
|
16
|
+
"Continuo"
|
|
17
|
+
],
|
|
18
|
+
"name": "Bourdon",
|
|
19
|
+
"summary": "Cross-agent memory federation (granted side).",
|
|
20
|
+
"tags": [
|
|
21
|
+
"infra"
|
|
22
|
+
],
|
|
23
|
+
"type": "project",
|
|
24
|
+
"visibility": "public"
|
|
25
|
+
}
|
|
26
|
+
],
|
|
27
|
+
"known_workstreams": [
|
|
28
|
+
{
|
|
29
|
+
"last_touched": "2026-06-10",
|
|
30
|
+
"name": "Release",
|
|
31
|
+
"related_entities": [
|
|
32
|
+
"Bourdon"
|
|
33
|
+
],
|
|
34
|
+
"status": "active",
|
|
35
|
+
"summary": "Prepare the public Bourdon release.",
|
|
36
|
+
"tags": [
|
|
37
|
+
"launch"
|
|
38
|
+
],
|
|
39
|
+
"visibility": "public"
|
|
40
|
+
}
|
|
41
|
+
],
|
|
42
|
+
"last_updated": "<frozen>",
|
|
43
|
+
"notes": [
|
|
44
|
+
{
|
|
45
|
+
"date": "2026-06-09",
|
|
46
|
+
"related_entities": [
|
|
47
|
+
"Bourdon"
|
|
48
|
+
],
|
|
49
|
+
"text": "Public release note.",
|
|
50
|
+
"visibility": "public"
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
"recent_sessions": [
|
|
54
|
+
{
|
|
55
|
+
"cwd": "/home/example/repos/bourdon",
|
|
56
|
+
"date": "2026-06-08",
|
|
57
|
+
"files_touched": [
|
|
58
|
+
"tools/gen_conformance.py"
|
|
59
|
+
],
|
|
60
|
+
"key_actions": [
|
|
61
|
+
"wired tier matrix fixtures"
|
|
62
|
+
],
|
|
63
|
+
"project_focus": [
|
|
64
|
+
"Bourdon"
|
|
65
|
+
],
|
|
66
|
+
"visibility": "public"
|
|
67
|
+
}
|
|
68
|
+
],
|
|
69
|
+
"spec_version": "0.1",
|
|
70
|
+
"visibility_policy": {
|
|
71
|
+
"default": "public",
|
|
72
|
+
"private_tags": [
|
|
73
|
+
"financial",
|
|
74
|
+
"personal"
|
|
75
|
+
],
|
|
76
|
+
"team_tags": [
|
|
77
|
+
"team"
|
|
78
|
+
]
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"agents": [
|
|
4
|
+
"claude-code",
|
|
5
|
+
"codex"
|
|
6
|
+
],
|
|
7
|
+
"name": "Bourdon",
|
|
8
|
+
"summaries": {
|
|
9
|
+
"claude-code": "Cross-agent memory federation (granted side).",
|
|
10
|
+
"codex": "Federation, codex view."
|
|
11
|
+
},
|
|
12
|
+
"tags": [
|
|
13
|
+
"infra"
|
|
14
|
+
],
|
|
15
|
+
"types": [
|
|
16
|
+
"project"
|
|
17
|
+
]
|
|
18
|
+
}
|
|
19
|
+
]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"_doc": "The
|
|
2
|
+
"_doc": "The mcp_snapshots/*.res.json were produced by driving the live create_l6_server tool + resource closures (OPERATOR / trusted, = stdio) over a TEMP copy of this seed library, then normalizing each response. Every tool and resource the server registers is covered (the generator refuses to emit otherwise). The TS mirror loads the SAME seed and must reproduce every normalized res. Each payload travels the wire as a single TextContent whose .text = json.dumps(payload); the snapshot is the json.loads of that text. resource_* snapshots are taken FIRST (pure seed view); rollback_agent_memory runs LAST (it restores the seeded prior version of claude-code).",
|
|
3
3
|
"caller": {
|
|
4
4
|
"agent_id": "operator",
|
|
5
5
|
"tier": "trusted"
|
|
@@ -7,18 +7,126 @@
|
|
|
7
7
|
"deferred": [
|
|
8
8
|
"compile_codex_turn"
|
|
9
9
|
],
|
|
10
|
+
"drift_seed": {
|
|
11
|
+
"_doc": "prepare_recognition_context_drifting.{req,res}.json were driven under this SEEDED participant drift watermark (written through the real participant_watermark.record writer, stamps then pinned), taken BEFORE the main tool loop and removed afterwards -- the plain prepare_recognition_context.res.json is therefore the healthy half of the pair, with drifting_surfaces ABSENT. The TS mirror must seed the SAME record to reproduce the drifting res.",
|
|
12
|
+
"agent_id": "codex",
|
|
13
|
+
"first_seen_at": "2026-06-29T09:00:00Z",
|
|
14
|
+
"last_check_at": "2026-06-29T12:00:00Z",
|
|
15
|
+
"last_ok_at": "2026-06-29T09:00:00Z",
|
|
16
|
+
"last_record_count": 400,
|
|
17
|
+
"last_verdict": "drift",
|
|
18
|
+
"last_verdict_reason": "yielded nothing this run - last yielded 400 record(s) at 2026-06-29T09:00:00Z"
|
|
19
|
+
},
|
|
20
|
+
"presence_seed": {
|
|
21
|
+
"_doc": "export_agents joins LIVE-SESSION PRESENCE and the Codex thread index onto each agent row. Both stores are pinned to hermetic temp dirs and seeded with these fixed synthetic records -- nothing comes from the generating machine. The TS mirror must seed the SAME records to reproduce export_agents.res.json. `age_s` is derived from wall-clock now at read time and is therefore FROZEN by the normalizer; every other presence field is pinned by value.",
|
|
22
|
+
"codex_session_index": [
|
|
23
|
+
{
|
|
24
|
+
"id": "0192bbbb-2222-7000-8000-00000000b002",
|
|
25
|
+
"thread_name": "Parity fixture harness",
|
|
26
|
+
"updated_at": "2026-06-29T10:30:00Z"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"id": "0192aaaa-1111-7000-8000-00000000a001",
|
|
30
|
+
"thread_name": "Bourdon federation review",
|
|
31
|
+
"updated_at": "2026-06-29T09:00:00Z"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"id": "0192dddd-4444-7000-8000-00000000d004",
|
|
35
|
+
"thread_name": "Schema drift triage",
|
|
36
|
+
"updated_at": "2026-06-28T22:05:00Z"
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
"host": "conformance-host",
|
|
40
|
+
"pid": 4242,
|
|
41
|
+
"sessions": [
|
|
42
|
+
{
|
|
43
|
+
"agent_id": "codex",
|
|
44
|
+
"cwd": "/home/example/repos/bourdon",
|
|
45
|
+
"session_id": "0192aaaa-1111-7000-8000-00000000a001",
|
|
46
|
+
"started_at": "2026-06-29T09:00:00Z"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"agent_id": "codex",
|
|
50
|
+
"cwd": "/home/example/repos/parity-fixtures",
|
|
51
|
+
"session_id": "0192bbbb-2222-7000-8000-00000000b002",
|
|
52
|
+
"started_at": "2026-06-29T10:30:00Z"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"agent_id": "claude-code",
|
|
56
|
+
"cwd": "/home/example/repos/bourdon",
|
|
57
|
+
"session_id": "0192cccc-3333-7000-8000-00000000c003",
|
|
58
|
+
"started_at": "2026-06-29T08:15:00Z"
|
|
59
|
+
}
|
|
60
|
+
]
|
|
61
|
+
},
|
|
62
|
+
"resources": [
|
|
63
|
+
"agent-library://agents",
|
|
64
|
+
"agent-library://agents/{agent_id}/memory",
|
|
65
|
+
"agent-library://entities/{name}"
|
|
66
|
+
],
|
|
10
67
|
"seed_library": "fed_seed_library",
|
|
11
68
|
"tools": [
|
|
12
69
|
"query_agent_memory",
|
|
13
70
|
"list_recent_work",
|
|
14
71
|
"find_entity",
|
|
72
|
+
"list_workstreams",
|
|
73
|
+
"list_notes",
|
|
15
74
|
"list_agents",
|
|
16
75
|
"export_agents",
|
|
17
76
|
"commit_to_federation",
|
|
18
77
|
"get_cross_agent_summary",
|
|
19
78
|
"prepare_recognition_context",
|
|
20
79
|
"compile_codex_turn",
|
|
21
|
-
"get_deeper_context"
|
|
80
|
+
"get_deeper_context",
|
|
81
|
+
"list_memory_versions",
|
|
82
|
+
"explain_memory_change",
|
|
83
|
+
"rollback_agent_memory"
|
|
22
84
|
],
|
|
23
|
-
"transport": "in-process (create_l6_server tool closures); wire-equivalent to stdio / streamable-HTTP JSON-in-TextContent"
|
|
85
|
+
"transport": "in-process (create_l6_server tool closures); wire-equivalent to stdio / streamable-HTTP JSON-in-TextContent",
|
|
86
|
+
"version_history_seed": {
|
|
87
|
+
"_doc": "list_memory_versions / explain_memory_change / rollback_agent_memory are driven over this deterministic seed: ONE archived claude-code version (fixed bytes under the <stamp>-<sha256(bytes)[:8]>.l5.yaml filename contract) plus ONE provenance entry whose new_digest is the version's full sha256 and whose ts is pinned. The TS mirror must seed the SAME records to reproduce those res snapshots.",
|
|
88
|
+
"digest": "7ec802e09dd4a4d43eaa643a096d3e12269d72200017e73db27591257ea3eebe",
|
|
89
|
+
"manifest": {
|
|
90
|
+
"agent": {
|
|
91
|
+
"id": "claude-code",
|
|
92
|
+
"instance": "workstation-01",
|
|
93
|
+
"role_narrative": "Lead code-assistant on the federation substrate.",
|
|
94
|
+
"type": "code-assistant"
|
|
95
|
+
},
|
|
96
|
+
"capabilities": [
|
|
97
|
+
"code-read",
|
|
98
|
+
"code-write"
|
|
99
|
+
],
|
|
100
|
+
"known_entities": [
|
|
101
|
+
{
|
|
102
|
+
"aliases": [
|
|
103
|
+
"NeuroLayer",
|
|
104
|
+
"Continuo"
|
|
105
|
+
],
|
|
106
|
+
"name": "Bourdon",
|
|
107
|
+
"summary": "Cross-agent memory federation (granted side).",
|
|
108
|
+
"tags": [
|
|
109
|
+
"infra"
|
|
110
|
+
],
|
|
111
|
+
"type": "project",
|
|
112
|
+
"visibility": "public"
|
|
113
|
+
}
|
|
114
|
+
],
|
|
115
|
+
"last_updated": "2026-06-28T12:00:00+00:00",
|
|
116
|
+
"spec_version": "0.1"
|
|
117
|
+
},
|
|
118
|
+
"provenance": {
|
|
119
|
+
"base_digest": null,
|
|
120
|
+
"caller": "operator",
|
|
121
|
+
"counts": {
|
|
122
|
+
"entities_added": 1
|
|
123
|
+
},
|
|
124
|
+
"new_digest": "7ec802e09dd4a4d43eaa643a096d3e12269d72200017e73db27591257ea3eebe",
|
|
125
|
+
"op": "commit",
|
|
126
|
+
"session_id": "0192eeee-5555-7000-8000-00000000e005",
|
|
127
|
+
"ts": "2026-06-28T12:00:00.000000Z"
|
|
128
|
+
},
|
|
129
|
+
"stamp": "20260628T120000000000Z",
|
|
130
|
+
"version_id": "20260628T120000000000Z-7ec802e0"
|
|
131
|
+
}
|
|
24
132
|
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"type": "code-assistant",
|
|
6
6
|
"instance": "conformance-host",
|
|
7
7
|
"spec_version_compat": ">=0.1",
|
|
8
|
-
"role_narrative": "Agentic manager and code-assistant. Coordinates the
|
|
8
|
+
"role_narrative": "Agentic manager and code-assistant. Coordinates the agent fleet, reviews PRs, and consults on architectural decisions. Capable of authoring code but typically reviews + delegates to specialised code-assistants like Codex for prime-code execution."
|
|
9
9
|
},
|
|
10
10
|
"last_updated": "2026-06-29T00:00:00+00:00",
|
|
11
11
|
"capabilities": [
|
|
@@ -26,18 +26,18 @@
|
|
|
26
26
|
],
|
|
27
27
|
"known_entities": [
|
|
28
28
|
{
|
|
29
|
-
"name": "
|
|
30
|
-
"type": "project",
|
|
31
|
-
"summary": "Cross-agent memory federation substrate. L5 manifests + L6 library."
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
"name": "Clyde",
|
|
29
|
+
"name": "Alpha Agent",
|
|
35
30
|
"type": "project",
|
|
36
31
|
"summary": "Local AI assistant entity.",
|
|
37
32
|
"tags": [
|
|
38
33
|
"infra"
|
|
39
34
|
]
|
|
40
35
|
},
|
|
36
|
+
{
|
|
37
|
+
"name": "Bourdon",
|
|
38
|
+
"type": "project",
|
|
39
|
+
"summary": "Cross-agent memory federation substrate. L5 manifests + L6 library."
|
|
40
|
+
},
|
|
41
41
|
{
|
|
42
42
|
"name": "OldThing",
|
|
43
43
|
"type": "project",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
]
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
|
-
"name": "
|
|
50
|
+
"name": "Zephyr",
|
|
51
51
|
"type": "project",
|
|
52
52
|
"summary": "File conversion app.",
|
|
53
53
|
"tags": [
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
{"type":"entity","name":"
|
|
1
|
+
{"type":"entity","name":"Zephyr","entityType":"project","observations":["File conversion app."]}
|
|
2
2
|
{"type":"entity","name":"SecretCreds","entityType":"concept","observations":["the service_role key for supabase"]}
|
|
3
|
-
{"type":"relation","from":"
|
|
3
|
+
{"type":"relation","from":"Zephyr","to":"Bourdon","relationType":"uses"}
|
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
# - single + multi-entity recognition
|
|
7
7
|
# - alias matching
|
|
8
8
|
# - negative controls (must match NOTHING)
|
|
9
|
-
# - the short-name false-positive guard ("
|
|
9
|
+
# - the short-name false-positive guard ("QUIPped" must not match "QUIP")
|
|
10
10
|
# - visibility filtering (private entities never surface)
|
|
11
11
|
# - confidence buckets (top-anchor parity contract)
|
|
12
12
|
#
|
|
13
|
-
# Scored by core.recognition_eval. Run: bourdon recognition eval
|
|
13
|
+
# Scored by bourdon.core.recognition_eval. Run: bourdon recognition eval
|
|
14
14
|
version: recognition-eval/v1
|
|
15
15
|
cases:
|
|
16
16
|
- id: single-exact
|
|
@@ -22,34 +22,34 @@ cases:
|
|
|
22
22
|
expected_confidence: medium
|
|
23
23
|
|
|
24
24
|
- id: single-case-insensitive
|
|
25
|
-
prompt: "what is happening with
|
|
25
|
+
prompt: "what is happening with zephyr today"
|
|
26
26
|
manifest:
|
|
27
27
|
known_entities:
|
|
28
|
-
- {name:
|
|
29
|
-
expected_entities: [
|
|
28
|
+
- {name: Zephyr, type: project}
|
|
29
|
+
expected_entities: [Zephyr]
|
|
30
30
|
|
|
31
31
|
- id: alias-match
|
|
32
|
-
prompt: "any update on
|
|
32
|
+
prompt: "any update on quick_unified_insight_pipeline"
|
|
33
33
|
manifest:
|
|
34
34
|
known_entities:
|
|
35
|
-
- {name:
|
|
36
|
-
expected_entities: [
|
|
35
|
+
- {name: QUIP, type: product, aliases: [quick_unified_insight_pipeline]}
|
|
36
|
+
expected_entities: [QUIP]
|
|
37
37
|
|
|
38
38
|
- id: multi-entity
|
|
39
|
-
prompt: "compare Bourdon and
|
|
39
|
+
prompt: "compare Bourdon and Zephyr for me"
|
|
40
40
|
manifest:
|
|
41
41
|
known_entities:
|
|
42
42
|
- {name: Bourdon, type: project}
|
|
43
|
-
- {name:
|
|
43
|
+
- {name: Zephyr, type: project}
|
|
44
44
|
- {name: Unrelated, type: project}
|
|
45
|
-
expected_entities: [Bourdon,
|
|
45
|
+
expected_entities: [Bourdon, Zephyr]
|
|
46
46
|
|
|
47
47
|
- id: negative-control-weather
|
|
48
48
|
prompt: "what's the weather like today"
|
|
49
49
|
manifest:
|
|
50
50
|
known_entities:
|
|
51
51
|
- {name: Bourdon, type: project}
|
|
52
|
-
- {name:
|
|
52
|
+
- {name: Zephyr, type: project}
|
|
53
53
|
expected_entities: []
|
|
54
54
|
|
|
55
55
|
- id: negative-control-empty-manifest
|
|
@@ -59,10 +59,10 @@ cases:
|
|
|
59
59
|
expected_entities: []
|
|
60
60
|
|
|
61
61
|
- id: short-name-guard
|
|
62
|
-
prompt: "the build
|
|
62
|
+
prompt: "the build QUIPped yesterday and broke"
|
|
63
63
|
manifest:
|
|
64
64
|
known_entities:
|
|
65
|
-
- {name:
|
|
65
|
+
- {name: QUIP, type: product}
|
|
66
66
|
expected_entities: []
|
|
67
67
|
|
|
68
68
|
- id: substring-not-token
|
|
@@ -89,11 +89,11 @@ cases:
|
|
|
89
89
|
expected_entities: [Multi Word Project]
|
|
90
90
|
|
|
91
91
|
- id: archived-entity-still-recognized
|
|
92
|
-
prompt: "remind me what
|
|
92
|
+
prompt: "remind me what Nimbletron was"
|
|
93
93
|
manifest:
|
|
94
94
|
known_entities:
|
|
95
|
-
- {name:
|
|
96
|
-
expected_entities: [
|
|
95
|
+
- {name: Nimbletron, type: project, valid_to: "2026-01-01"}
|
|
96
|
+
expected_entities: [Nimbletron]
|
|
97
97
|
|
|
98
98
|
- id: three-entities
|
|
99
99
|
prompt: "status on Alpha, Beta, and Gamma please"
|
|
@@ -18,17 +18,17 @@
|
|
|
18
18
|
"confidence": "medium"
|
|
19
19
|
},
|
|
20
20
|
{
|
|
21
|
-
"prompt": "how is
|
|
21
|
+
"prompt": "how is QUIP going",
|
|
22
22
|
"names": [
|
|
23
|
-
"
|
|
23
|
+
"QUIP"
|
|
24
24
|
],
|
|
25
25
|
"tier": "NAME_SUBSTRING",
|
|
26
26
|
"confidence": "medium"
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
|
-
"prompt": "we
|
|
29
|
+
"prompt": "we QUIPped the build",
|
|
30
30
|
"names": [
|
|
31
|
-
"
|
|
31
|
+
"QUIP"
|
|
32
32
|
],
|
|
33
33
|
"tier": "NONE",
|
|
34
34
|
"confidence": "none"
|
|
@@ -208,7 +208,7 @@
|
|
|
208
208
|
},
|
|
209
209
|
{
|
|
210
210
|
"name": "two_matches",
|
|
211
|
-
"prompt": "compare Bourdon and
|
|
211
|
+
"prompt": "compare Bourdon and Zephyr for me",
|
|
212
212
|
"manifest": {
|
|
213
213
|
"known_entities": [
|
|
214
214
|
{
|
|
@@ -216,7 +216,7 @@
|
|
|
216
216
|
"type": "project"
|
|
217
217
|
},
|
|
218
218
|
{
|
|
219
|
-
"name": "
|
|
219
|
+
"name": "Zephyr",
|
|
220
220
|
"type": "project"
|
|
221
221
|
},
|
|
222
222
|
{
|
|
@@ -228,13 +228,13 @@
|
|
|
228
228
|
"access_level": "team",
|
|
229
229
|
"matched_names": [
|
|
230
230
|
"Bourdon",
|
|
231
|
-
"
|
|
231
|
+
"Zephyr"
|
|
232
232
|
],
|
|
233
|
-
"recognition": "You're asking about Bourdon and
|
|
233
|
+
"recognition": "You're asking about Bourdon and Zephyr -- I have both.",
|
|
234
234
|
"confidence": "medium",
|
|
235
235
|
"entity_confidences": {
|
|
236
236
|
"Bourdon": "medium",
|
|
237
|
-
"
|
|
237
|
+
"Zephyr": "medium"
|
|
238
238
|
}
|
|
239
239
|
},
|
|
240
240
|
{
|
|
@@ -272,11 +272,11 @@
|
|
|
272
272
|
},
|
|
273
273
|
{
|
|
274
274
|
"name": "short_name_guard",
|
|
275
|
-
"prompt": "the build
|
|
275
|
+
"prompt": "the build QUIPped yesterday and broke",
|
|
276
276
|
"manifest": {
|
|
277
277
|
"known_entities": [
|
|
278
278
|
{
|
|
279
|
-
"name": "
|
|
279
|
+
"name": "QUIP",
|
|
280
280
|
"type": "product"
|
|
281
281
|
}
|
|
282
282
|
]
|
|
@@ -336,11 +336,11 @@
|
|
|
336
336
|
},
|
|
337
337
|
{
|
|
338
338
|
"name": "archived_valid_to",
|
|
339
|
-
"prompt": "remind me what
|
|
339
|
+
"prompt": "remind me what Nimbletron was",
|
|
340
340
|
"manifest": {
|
|
341
341
|
"known_entities": [
|
|
342
342
|
{
|
|
343
|
-
"name": "
|
|
343
|
+
"name": "Nimbletron",
|
|
344
344
|
"type": "project",
|
|
345
345
|
"valid_to": "2026-01-01"
|
|
346
346
|
}
|
|
@@ -348,12 +348,12 @@
|
|
|
348
348
|
},
|
|
349
349
|
"access_level": "team",
|
|
350
350
|
"matched_names": [
|
|
351
|
-
"
|
|
351
|
+
"Nimbletron"
|
|
352
352
|
],
|
|
353
|
-
"recognition": "Oh --
|
|
353
|
+
"recognition": "Oh -- Nimbletron, the project (archived 2026-01-01).",
|
|
354
354
|
"confidence": "medium",
|
|
355
355
|
"entity_confidences": {
|
|
356
|
-
"
|
|
356
|
+
"Nimbletron": "medium"
|
|
357
357
|
}
|
|
358
358
|
},
|
|
359
359
|
{
|
|
@@ -382,26 +382,26 @@
|
|
|
382
382
|
},
|
|
383
383
|
{
|
|
384
384
|
"name": "alias_match",
|
|
385
|
-
"prompt": "any update on
|
|
385
|
+
"prompt": "any update on quick_unified_insight_pipeline",
|
|
386
386
|
"manifest": {
|
|
387
387
|
"known_entities": [
|
|
388
388
|
{
|
|
389
|
-
"name": "
|
|
389
|
+
"name": "QUIP",
|
|
390
390
|
"type": "product",
|
|
391
391
|
"aliases": [
|
|
392
|
-
"
|
|
392
|
+
"quick_unified_insight_pipeline"
|
|
393
393
|
]
|
|
394
394
|
}
|
|
395
395
|
]
|
|
396
396
|
},
|
|
397
397
|
"access_level": "team",
|
|
398
398
|
"matched_names": [
|
|
399
|
-
"
|
|
399
|
+
"QUIP"
|
|
400
400
|
],
|
|
401
|
-
"recognition": "Oh --
|
|
401
|
+
"recognition": "Oh -- QUIP, the product.",
|
|
402
402
|
"confidence": "medium",
|
|
403
403
|
"entity_confidences": {
|
|
404
|
-
"
|
|
404
|
+
"QUIP": "medium"
|
|
405
405
|
}
|
|
406
406
|
},
|
|
407
407
|
{
|
|
@@ -413,7 +413,7 @@
|
|
|
413
413
|
"name": "Bourdon"
|
|
414
414
|
},
|
|
415
415
|
{
|
|
416
|
-
"name": "
|
|
416
|
+
"name": "Zephyr"
|
|
417
417
|
}
|
|
418
418
|
]
|
|
419
419
|
},
|
|
@@ -105,10 +105,10 @@
|
|
|
105
105
|
{
|
|
106
106
|
"tool": "commit_to_federation",
|
|
107
107
|
"tier": "trusted",
|
|
108
|
-
"namespace": "
|
|
108
|
+
"namespace": "alpha-agent",
|
|
109
109
|
"granted": null,
|
|
110
110
|
"args": {
|
|
111
|
-
"agent_id": "
|
|
111
|
+
"agent_id": "alpha-agent",
|
|
112
112
|
"agent_type": "other",
|
|
113
113
|
"entities": [
|
|
114
114
|
{
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_doc": "The recorded fixture pin. CI and the package tests assert the vendored fixtures/manifest.json hashes to exactly this value, so the fixture set in any build is provably the reviewed one. Refresh via the re-pin ritual in README.md.",
|
|
3
|
+
"conformance_version": "2.1.0",
|
|
4
|
+
"manifest_sha256": "f854d2a75d4616554e97e5c746f5ca9ae30ff23ed21a6d023424922e2e70813e"
|
|
5
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@getbourdon/conformance",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Language-neutral cross-implementation parity fixtures for Bourdon. Python (pip install bourdon) is the oracle; the @getbourdon/* TypeScript mirror asserts against these exact bytes.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -16,7 +16,9 @@
|
|
|
16
16
|
},
|
|
17
17
|
"files": [
|
|
18
18
|
"dist",
|
|
19
|
-
"fixtures"
|
|
19
|
+
"fixtures",
|
|
20
|
+
"fixtures.pin.json",
|
|
21
|
+
"LICENSE"
|
|
20
22
|
],
|
|
21
23
|
"engines": {
|
|
22
24
|
"node": ">=20"
|
|
@@ -28,7 +30,7 @@
|
|
|
28
30
|
"homepage": "https://bourdon.ai",
|
|
29
31
|
"repository": {
|
|
30
32
|
"type": "git",
|
|
31
|
-
"url": "git+https://gitlab.com/
|
|
33
|
+
"url": "git+https://gitlab.com/bourdonai/bourdon-js.git",
|
|
32
34
|
"directory": "packages/conformance"
|
|
33
35
|
},
|
|
34
36
|
"scripts": {
|
|
@@ -36,4 +38,4 @@
|
|
|
36
38
|
"test": "vitest run",
|
|
37
39
|
"sync-fixtures": "node scripts/sync-fixtures.mjs"
|
|
38
40
|
}
|
|
39
|
-
}
|
|
41
|
+
}
|