@getbourdon/conformance 0.2.2 → 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/l5_manifests/invalid/entity-impossible-calendar-date.json +14 -0
- 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/session-empty-date.json +16 -0
- package/fixtures/l5_schema.json +137 -38
- package/fixtures/manifest.json +97 -7
- package/fixtures/mcp_snapshots/_normalizer.json +1 -0
- package/fixtures/mcp_snapshots/commit_to_federation.res.json +1 -0
- 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/list_memory_versions.req.json +6 -0
- package/fixtures/mcp_snapshots/list_memory_versions.res.json +13 -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 +67 -3
- package/fixtures.pin.json +5 -0
- package/package.json +6 -4
|
@@ -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,6 +7,16 @@
|
|
|
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
|
+
},
|
|
10
20
|
"presence_seed": {
|
|
11
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.",
|
|
12
22
|
"codex_session_index": [
|
|
@@ -49,6 +59,11 @@
|
|
|
49
59
|
}
|
|
50
60
|
]
|
|
51
61
|
},
|
|
62
|
+
"resources": [
|
|
63
|
+
"agent-library://agents",
|
|
64
|
+
"agent-library://agents/{agent_id}/memory",
|
|
65
|
+
"agent-library://entities/{name}"
|
|
66
|
+
],
|
|
52
67
|
"seed_library": "fed_seed_library",
|
|
53
68
|
"tools": [
|
|
54
69
|
"query_agent_memory",
|
|
@@ -62,7 +77,56 @@
|
|
|
62
77
|
"get_cross_agent_summary",
|
|
63
78
|
"prepare_recognition_context",
|
|
64
79
|
"compile_codex_turn",
|
|
65
|
-
"get_deeper_context"
|
|
80
|
+
"get_deeper_context",
|
|
81
|
+
"list_memory_versions",
|
|
82
|
+
"explain_memory_change",
|
|
83
|
+
"rollback_agent_memory"
|
|
66
84
|
],
|
|
67
|
-
"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
|
+
}
|
|
68
132
|
}
|
|
@@ -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,19 +16,21 @@
|
|
|
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"
|
|
23
25
|
},
|
|
24
26
|
"publishConfig": {
|
|
25
27
|
"access": "public",
|
|
26
|
-
"provenance":
|
|
28
|
+
"provenance": true
|
|
27
29
|
},
|
|
28
30
|
"homepage": "https://bourdon.ai",
|
|
29
31
|
"repository": {
|
|
30
32
|
"type": "git",
|
|
31
|
-
"url": "git+https://
|
|
33
|
+
"url": "git+https://gitlab.com/bourdonai/bourdon-js.git",
|
|
32
34
|
"directory": "packages/conformance"
|
|
33
35
|
},
|
|
34
36
|
"scripts": {
|