agents-can-communicate 0.2.0 → 0.3.1
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 +91 -81
- package/SECURITY.md +7 -4
- package/bin/acc-bootstrap.mjs +56 -0
- package/bin/acc-claude-channel.mjs +177 -0
- package/bin/acc.mjs +7 -2
- package/docs/ADAPTER_AUTHORING.md +57 -21
- package/docs/ARCHITECTURE.md +23 -15
- package/docs/CAPABILITIES.md +51 -18
- package/docs/CLI.md +31 -13
- package/docs/CONCEPTS.md +91 -94
- package/docs/CONFIGURATION.md +33 -23
- package/docs/DESIGN_DECISIONS.md +8 -4
- package/docs/GETTING_STARTED.md +76 -100
- package/docs/GLOSSARY.md +4 -4
- package/docs/HOW_IT_WORKS.md +163 -0
- package/docs/MCP.md +8 -8
- package/docs/PROTOCOL.md +13 -8
- package/docs/RELEASING.md +112 -82
- package/docs/SECURITY_MODEL.md +13 -8
- package/docs/TROUBLESHOOTING.md +30 -12
- package/docs/WHY_ACC.md +18 -16
- package/docs/index.md +26 -16
- package/node_modules/@agents-can-communicate/adapter-claude-code/certification.json +196 -46
- package/node_modules/@agents-can-communicate/adapter-claude-code/fixtures/certification-provenance.json +237 -45
- package/node_modules/@agents-can-communicate/adapter-claude-code/fixtures/delivery/claude-code-2.1.252.json +3 -1
- package/node_modules/@agents-can-communicate/adapter-claude-code/fixtures/delivery/claude-code-2.1.258.json +23 -0
- package/node_modules/@agents-can-communicate/adapter-claude-code/fixtures/delivery/claude-code-2.1.260.json +23 -0
- package/node_modules/@agents-can-communicate/adapter-claude-code/package.json +5 -2
- package/node_modules/@agents-can-communicate/adapter-claude-code/plugin/.mcp.json +8 -0
- package/node_modules/@agents-can-communicate/adapter-claude-code/plugin/skills/acc/SKILL.md +10 -6
- package/node_modules/@agents-can-communicate/adapter-claude-code/src/adapter.mjs +34 -2
- package/node_modules/@agents-can-communicate/adapter-claude-code/src/channel.mjs +377 -0
- package/node_modules/@agents-can-communicate/adapter-claude-code/src/install.mjs +27 -7
- package/node_modules/@agents-can-communicate/adapter-claude-code/src/native-delivery.mjs +229 -0
- package/node_modules/@agents-can-communicate/adapter-codex/certification.json +38 -5
- package/node_modules/@agents-can-communicate/adapter-codex/fixtures/certification-provenance.json +171 -38
- package/node_modules/@agents-can-communicate/adapter-codex/fixtures/delivery/codex-cli-0.152.0.json +3 -1
- package/node_modules/@agents-can-communicate/adapter-codex/fixtures/delivery/codex-cli-0.152.1-remote-workspace.json +25 -0
- package/node_modules/@agents-can-communicate/adapter-codex/package.json +4 -2
- package/node_modules/@agents-can-communicate/adapter-codex/plugin/skills/acc/SKILL.md +9 -5
- package/node_modules/@agents-can-communicate/adapter-codex/src/adapter.mjs +42 -7
- package/node_modules/@agents-can-communicate/adapter-codex/src/app-server-client.mjs +121 -0
- package/node_modules/@agents-can-communicate/adapter-codex/src/native-delivery.mjs +151 -0
- package/node_modules/@agents-can-communicate/adapter-codex/src/ws-json-rpc.mjs +192 -0
- package/node_modules/@agents-can-communicate/adapter-gemini-cli/certification.json +44 -28
- package/node_modules/@agents-can-communicate/adapter-gemini-cli/extension/gemini-extension.json +1 -1
- package/node_modules/@agents-can-communicate/adapter-gemini-cli/extension/skills/acc/SKILL.md +9 -5
- package/node_modules/@agents-can-communicate/adapter-gemini-cli/fixtures/{BeforeAgent.json → BeforeAgent-0.57.0.json} +2 -2
- package/node_modules/@agents-can-communicate/adapter-gemini-cli/fixtures/{BeforeTool.json → BeforeTool-0.57.0.json} +2 -2
- package/node_modules/@agents-can-communicate/adapter-gemini-cli/fixtures/{BeforeTool-shell.json → BeforeTool-shell-0.57.0.json} +2 -2
- package/node_modules/@agents-can-communicate/adapter-gemini-cli/fixtures/{SessionEnd.json → SessionEnd-0.57.0.json} +2 -2
- package/node_modules/@agents-can-communicate/adapter-gemini-cli/fixtures/{SessionStart.json → SessionStart-0.57.0.json} +2 -2
- package/node_modules/@agents-can-communicate/adapter-gemini-cli/fixtures/certification-provenance.json +266 -39
- package/node_modules/@agents-can-communicate/adapter-gemini-cli/package.json +6 -6
- package/node_modules/@agents-can-communicate/adapter-gemini-cli/src/adapter.mjs +25 -11
- package/node_modules/@agents-can-communicate/adapter-grok/package.json +1 -1
- package/node_modules/@agents-can-communicate/adapter-grok/plugin/skills/acc/SKILL.md +9 -5
- package/node_modules/@agents-can-communicate/adapter-grok/src/adapter.mjs +3 -1
- package/node_modules/@agents-can-communicate/adapter-kimi/package.json +1 -1
- package/node_modules/@agents-can-communicate/adapter-kimi/plugin/skills/acc/SKILL.md +9 -5
- package/node_modules/@agents-can-communicate/adapter-sdk/package.json +1 -1
- package/node_modules/@agents-can-communicate/adapter-sdk/src/capabilities.mjs +18 -0
- package/node_modules/@agents-can-communicate/adapter-sdk/src/hook-shim.mjs +2 -0
- package/node_modules/@agents-can-communicate/adapter-sdk/src/index.mjs +6 -2
- package/node_modules/@agents-can-communicate/adapter-sdk/src/native-activation.mjs +76 -0
- package/node_modules/@agents-can-communicate/adapter-sdk/src/native-delivery.mjs +202 -0
- package/node_modules/@agents-can-communicate/adapter-sdk/src/native-vocabulary.mjs +101 -0
- package/node_modules/@agents-can-communicate/adapter-sdk/src/session-binding.mjs +17 -2
- package/node_modules/@agents-can-communicate/cli/package.json +1 -1
- package/node_modules/@agents-can-communicate/cli/src/args.mjs +2 -2
- package/node_modules/@agents-can-communicate/cli/src/doctor-command.mjs +67 -5
- package/node_modules/@agents-can-communicate/cli/src/install-command.mjs +133 -11
- package/node_modules/@agents-can-communicate/core/package.json +1 -1
- package/node_modules/@agents-can-communicate/core/src/conversations.mjs +41 -1
- package/node_modules/@agents-can-communicate/core/src/delivery-bindings.mjs +52 -2
- package/node_modules/@agents-can-communicate/core/src/service.mjs +10 -0
- package/node_modules/@agents-can-communicate/delivery-router/package.json +1 -1
- package/node_modules/@agents-can-communicate/delivery-router/src/router.mjs +26 -12
- package/node_modules/@agents-can-communicate/hook-runner/package.json +4 -2
- package/node_modules/@agents-can-communicate/hook-runner/src/native-binding.mjs +90 -0
- package/node_modules/@agents-can-communicate/hook-runner/src/runner.mjs +123 -90
- package/node_modules/@agents-can-communicate/installer/package.json +4 -2
- package/node_modules/@agents-can-communicate/installer/src/apply.mjs +48 -4
- package/node_modules/@agents-can-communicate/installer/src/bootstrap-runtime.mjs +144 -0
- package/node_modules/@agents-can-communicate/installer/src/detect.mjs +72 -3
- package/node_modules/@agents-can-communicate/installer/src/index.mjs +7 -0
- package/node_modules/@agents-can-communicate/installer/src/native-activation.mjs +161 -0
- package/node_modules/@agents-can-communicate/installer/src/ownership.mjs +6 -2
- package/node_modules/@agents-can-communicate/installer/src/plan.mjs +41 -6
- package/node_modules/@agents-can-communicate/installer/src/shell-bootstrap.mjs +210 -0
- package/node_modules/@agents-can-communicate/mcp-server/package.json +1 -1
- package/node_modules/@agents-can-communicate/protocol/package.json +1 -1
- package/node_modules/@agents-can-communicate/protocol/src/fields.mjs +17 -0
- package/node_modules/@agents-can-communicate/protocol/src/schema.mjs +18 -3
- package/node_modules/@agents-can-communicate/storage-filesystem/package.json +1 -1
- package/package.json +2 -1
|
@@ -1,59 +1,119 @@
|
|
|
1
1
|
{
|
|
2
2
|
"evidence": [
|
|
3
3
|
{
|
|
4
|
-
"client": "claude-code",
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"
|
|
4
|
+
"client": "claude-code",
|
|
5
|
+
"version": "2.1.233",
|
|
6
|
+
"platform": "darwin-arm64",
|
|
7
|
+
"observedAt": "2026-08-16",
|
|
8
|
+
"capability": "lifecycle.sessionStart",
|
|
9
|
+
"fixture": "fixtures/SessionStart.json",
|
|
10
|
+
"idleBehavior": "fires when a session starts",
|
|
11
|
+
"provenance": "fixtures/certification-provenance.json",
|
|
12
|
+
"provenanceId": "session-start",
|
|
13
|
+
"busyBehavior": "fires before the first model turn",
|
|
14
|
+
"authorityLevel": "advisory",
|
|
15
|
+
"limitations": [
|
|
16
|
+
"capture used a one-session --plugin-dir"
|
|
17
|
+
],
|
|
18
|
+
"result": "pass"
|
|
10
19
|
},
|
|
11
20
|
{
|
|
12
|
-
"client": "claude-code",
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
21
|
+
"client": "claude-code",
|
|
22
|
+
"version": "2.1.233",
|
|
23
|
+
"platform": "darwin-arm64",
|
|
24
|
+
"observedAt": "2026-08-16",
|
|
25
|
+
"capability": "lifecycle.sessionEnd",
|
|
26
|
+
"fixture": "fixtures/SessionEnd.json",
|
|
27
|
+
"idleBehavior": "fires when a session exits",
|
|
28
|
+
"provenance": "fixtures/certification-provenance.json",
|
|
29
|
+
"provenanceId": "session-end",
|
|
30
|
+
"busyBehavior": "does not run until the session exits",
|
|
31
|
+
"authorityLevel": "advisory",
|
|
32
|
+
"limitations": [
|
|
33
|
+
"cannot write a handoff after the model has stopped"
|
|
34
|
+
],
|
|
35
|
+
"result": "pass"
|
|
18
36
|
},
|
|
19
37
|
{
|
|
20
|
-
"client": "claude-code",
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
38
|
+
"client": "claude-code",
|
|
39
|
+
"version": "2.1.233",
|
|
40
|
+
"platform": "darwin-arm64",
|
|
41
|
+
"observedAt": "2026-08-16",
|
|
42
|
+
"capability": "context.beforeTurnInjection",
|
|
43
|
+
"fixture": "fixtures/UserPromptSubmit.json",
|
|
44
|
+
"idleBehavior": "waits for the next user prompt",
|
|
45
|
+
"provenance": "fixtures/certification-provenance.json",
|
|
46
|
+
"provenanceId": "user-prompt-submit",
|
|
47
|
+
"busyBehavior": "does not interrupt an in-progress turn",
|
|
48
|
+
"authorityLevel": "context",
|
|
49
|
+
"limitations": [
|
|
50
|
+
"requires the hookSpecificOutput additionalContext envelope"
|
|
51
|
+
],
|
|
52
|
+
"result": "pass"
|
|
26
53
|
},
|
|
27
54
|
{
|
|
28
|
-
"client": "claude-code",
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
55
|
+
"client": "claude-code",
|
|
56
|
+
"version": "2.1.233",
|
|
57
|
+
"platform": "darwin-arm64",
|
|
58
|
+
"observedAt": "2026-08-16",
|
|
59
|
+
"capability": "guards.beforeWrite",
|
|
60
|
+
"fixture": "fixtures/PreToolUse-Edit.json",
|
|
61
|
+
"idleBehavior": "no write exists to guard",
|
|
62
|
+
"provenance": "fixtures/certification-provenance.json",
|
|
63
|
+
"provenanceId": "pre-tool-use-edit",
|
|
64
|
+
"busyBehavior": "denies a file edit before disk mutation",
|
|
65
|
+
"authorityLevel": "blocking",
|
|
66
|
+
"limitations": [
|
|
67
|
+
"runtime writes are outside the hook boundary"
|
|
68
|
+
],
|
|
69
|
+
"result": "pass"
|
|
34
70
|
},
|
|
35
71
|
{
|
|
36
|
-
"client": "claude-code",
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
72
|
+
"client": "claude-code",
|
|
73
|
+
"version": "2.1.233",
|
|
74
|
+
"platform": "darwin-arm64",
|
|
75
|
+
"observedAt": "2026-08-16",
|
|
76
|
+
"capability": "guards.beforeShell",
|
|
77
|
+
"fixture": "fixtures/PreToolUse.json",
|
|
78
|
+
"idleBehavior": "no shell call exists to guard",
|
|
79
|
+
"provenance": "fixtures/certification-provenance.json",
|
|
80
|
+
"provenanceId": "pre-tool-use-bash",
|
|
81
|
+
"busyBehavior": "denies a Bash call before execution",
|
|
82
|
+
"authorityLevel": "blocking",
|
|
83
|
+
"limitations": [
|
|
84
|
+
"only tool calls reaching PreToolUse are guarded"
|
|
85
|
+
],
|
|
86
|
+
"result": "pass"
|
|
42
87
|
},
|
|
43
88
|
{
|
|
44
|
-
"client": "claude-code",
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"
|
|
89
|
+
"client": "claude-code",
|
|
90
|
+
"version": "2.1.233",
|
|
91
|
+
"platform": "darwin-arm64",
|
|
92
|
+
"observedAt": "2026-08-16",
|
|
93
|
+
"capability": "delivery.nextTurn",
|
|
94
|
+
"fixture": "fixtures/UserPromptSubmit.json",
|
|
95
|
+
"idleBehavior": "offers complete peer messages at the next prompt",
|
|
96
|
+
"provenance": "fixtures/certification-provenance.json",
|
|
97
|
+
"provenanceId": "user-prompt-submit",
|
|
98
|
+
"busyBehavior": "does not interrupt an in-progress turn",
|
|
99
|
+
"authorityLevel": "context",
|
|
100
|
+
"limitations": [
|
|
101
|
+
"delivery requires the next normal user turn"
|
|
102
|
+
],
|
|
103
|
+
"result": "pass"
|
|
50
104
|
},
|
|
51
105
|
{
|
|
52
|
-
"client": "claude-code",
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
106
|
+
"client": "claude-code",
|
|
107
|
+
"version": "2.1.252",
|
|
108
|
+
"platform": "darwin-arm64",
|
|
109
|
+
"observedAt": "2026-09-01T16:17:06Z",
|
|
110
|
+
"capability": "delivery.livePush",
|
|
111
|
+
"fixture": "fixtures/delivery/claude-code-2.1.252.json",
|
|
112
|
+
"idleBehavior": "unobserved",
|
|
113
|
+
"provenance": "fixtures/certification-provenance.json",
|
|
114
|
+
"provenanceId": "native-delivery-2-1-252",
|
|
115
|
+
"busyBehavior": "unobserved",
|
|
116
|
+
"authorityLevel": "none",
|
|
57
117
|
"limitations": [
|
|
58
118
|
"Claude Code displayed the development-channel security warning and the operator did not accept it",
|
|
59
119
|
"Claude Code did not spawn the acc-spike MCP child and the Unix-domain socket was never created",
|
|
@@ -62,17 +122,107 @@
|
|
|
62
122
|
"result": "fail"
|
|
63
123
|
},
|
|
64
124
|
{
|
|
65
|
-
"client": "claude-code",
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"
|
|
125
|
+
"client": "claude-code",
|
|
126
|
+
"version": "2.1.252",
|
|
127
|
+
"platform": "darwin-arm64",
|
|
128
|
+
"observedAt": "2026-09-01T16:17:06Z",
|
|
129
|
+
"capability": "delivery.replyRoute",
|
|
130
|
+
"fixture": "fixtures/delivery/claude-code-2.1.252.json",
|
|
131
|
+
"idleBehavior": "unobserved",
|
|
132
|
+
"provenance": "fixtures/certification-provenance.json",
|
|
133
|
+
"provenanceId": "native-delivery-2-1-252",
|
|
134
|
+
"busyBehavior": "unobserved",
|
|
135
|
+
"authorityLevel": "none",
|
|
70
136
|
"limitations": [
|
|
71
137
|
"Claude Code displayed the development-channel security warning and the operator did not accept it",
|
|
72
138
|
"Claude Code did not spawn the acc-spike MCP child and the Unix-domain socket was never created",
|
|
73
139
|
"idle, busy, reply, duplicate, and fallback branches were not observed"
|
|
74
140
|
],
|
|
75
141
|
"result": "fail"
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"client": "claude-code",
|
|
145
|
+
"version": "2.1.258",
|
|
146
|
+
"platform": "darwin-arm64",
|
|
147
|
+
"observedAt": "2026-09-02T21:20:11.676Z",
|
|
148
|
+
"capability": "delivery.livePush",
|
|
149
|
+
"fixture": "fixtures/delivery/claude-code-2.1.258.json",
|
|
150
|
+
"idleBehavior": "offered",
|
|
151
|
+
"provenance": "fixtures/certification-provenance.json",
|
|
152
|
+
"provenanceId": "native-delivery-2-1-258",
|
|
153
|
+
"busyBehavior": "queued_after_turn",
|
|
154
|
+
"authorityLevel": "experimental",
|
|
155
|
+
"limitations": [
|
|
156
|
+
"captured on darwin-arm64 only; Linux and Windows remain uncaptured",
|
|
157
|
+
"the vendor development-channel warning stayed visible and was accepted by the operator by hand",
|
|
158
|
+
"the plugin .mcp.json must live in the marketplace source copy; the plugin cache copy alone is not read",
|
|
159
|
+
"acc_reply routed through the spike's explicit tool call; the spike created no durable ACC answer record",
|
|
160
|
+
"presentation after the busy turn was observed by the operator; the channel log records the write at 21:18:45Z and the explicit reply at 21:19:21Z"
|
|
161
|
+
],
|
|
162
|
+
"result": "pass"
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"client": "claude-code",
|
|
166
|
+
"version": "2.1.258",
|
|
167
|
+
"platform": "darwin-arm64",
|
|
168
|
+
"observedAt": "2026-09-02T21:20:11.676Z",
|
|
169
|
+
"capability": "delivery.replyRoute",
|
|
170
|
+
"fixture": "fixtures/delivery/claude-code-2.1.258.json",
|
|
171
|
+
"idleBehavior": "offered",
|
|
172
|
+
"provenance": "fixtures/certification-provenance.json",
|
|
173
|
+
"provenanceId": "native-delivery-2-1-258",
|
|
174
|
+
"busyBehavior": "queued_after_turn",
|
|
175
|
+
"authorityLevel": "experimental",
|
|
176
|
+
"limitations": [
|
|
177
|
+
"captured on darwin-arm64 only; Linux and Windows remain uncaptured",
|
|
178
|
+
"the vendor development-channel warning stayed visible and was accepted by the operator by hand",
|
|
179
|
+
"the plugin .mcp.json must live in the marketplace source copy; the plugin cache copy alone is not read",
|
|
180
|
+
"acc_reply routed through the spike's explicit tool call; the spike created no durable ACC answer record",
|
|
181
|
+
"presentation after the busy turn was observed by the operator; the channel log records the write at 21:18:45Z and the explicit reply at 21:19:21Z"
|
|
182
|
+
],
|
|
183
|
+
"result": "pass"
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
"client": "claude-code",
|
|
187
|
+
"version": "2.1.260",
|
|
188
|
+
"platform": "darwin-arm64",
|
|
189
|
+
"observedAt": "2026-09-04T03:41:29.688Z",
|
|
190
|
+
"capability": "delivery.livePush",
|
|
191
|
+
"fixture": "fixtures/delivery/claude-code-2.1.260.json",
|
|
192
|
+
"idleBehavior": "offered",
|
|
193
|
+
"provenance": "fixtures/certification-provenance.json",
|
|
194
|
+
"provenanceId": "native-delivery-2-1-260",
|
|
195
|
+
"busyBehavior": "queued_after_turn",
|
|
196
|
+
"authorityLevel": "experimental",
|
|
197
|
+
"limitations": [
|
|
198
|
+
"captured on darwin-arm64 only; Linux and Windows remain uncaptured",
|
|
199
|
+
"the vendor development-channel warning stayed visible and was accepted by the operator by hand",
|
|
200
|
+
"two ordinary sessions in one workspace, each bound to its own client process; the earlier 2.1.259 attempt is what exposed the channel binding another session identity, and this run is the verification of that fix",
|
|
201
|
+
"duplicate was observed as one logical message id and one native offer: the repeated send took the durable path, so the channel was never asked to notify twice, and exactly one answer was recorded",
|
|
202
|
+
"busy was observed by the operator: the running turn completed before the channel presented the message, and the session named that order in its own answer"
|
|
203
|
+
],
|
|
204
|
+
"result": "pass"
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"client": "claude-code",
|
|
208
|
+
"version": "2.1.260",
|
|
209
|
+
"platform": "darwin-arm64",
|
|
210
|
+
"observedAt": "2026-09-04T03:41:29.688Z",
|
|
211
|
+
"capability": "delivery.replyRoute",
|
|
212
|
+
"fixture": "fixtures/delivery/claude-code-2.1.260.json",
|
|
213
|
+
"idleBehavior": "offered",
|
|
214
|
+
"provenance": "fixtures/certification-provenance.json",
|
|
215
|
+
"provenanceId": "native-delivery-2-1-260",
|
|
216
|
+
"busyBehavior": "queued_after_turn",
|
|
217
|
+
"authorityLevel": "experimental",
|
|
218
|
+
"limitations": [
|
|
219
|
+
"captured on darwin-arm64 only; Linux and Windows remain uncaptured",
|
|
220
|
+
"the vendor development-channel warning stayed visible and was accepted by the operator by hand",
|
|
221
|
+
"two ordinary sessions in one workspace, each bound to its own client process; the earlier 2.1.259 attempt is what exposed the channel binding another session identity, and this run is the verification of that fix",
|
|
222
|
+
"duplicate was observed as one logical message id and one native offer: the repeated send took the durable path, so the channel was never asked to notify twice, and exactly one answer was recorded",
|
|
223
|
+
"busy was observed by the operator: the running turn completed before the channel presented the message, and the session named that order in its own answer"
|
|
224
|
+
],
|
|
225
|
+
"result": "pass"
|
|
76
226
|
}
|
|
77
227
|
]
|
|
78
228
|
}
|
|
@@ -2,75 +2,267 @@
|
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"captures": [
|
|
4
4
|
{
|
|
5
|
-
"id": "session-start",
|
|
6
|
-
"
|
|
5
|
+
"id": "session-start",
|
|
6
|
+
"client": "claude-code",
|
|
7
|
+
"version": "2.1.233",
|
|
8
|
+
"platform": "darwin-arm64",
|
|
9
|
+
"observedAt": "2026-08-16",
|
|
7
10
|
"fixture": "fixtures/SessionStart.json",
|
|
8
11
|
"sha256": "f63baff4ba14b1490c1d66ccae1b5e355ca8185128e82639a22313c3c3a06fdc",
|
|
9
|
-
"event": "SessionStart",
|
|
10
|
-
"
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
"
|
|
12
|
+
"event": "SessionStart",
|
|
13
|
+
"tool": null,
|
|
14
|
+
"claims": [
|
|
15
|
+
{
|
|
16
|
+
"capability": "lifecycle.sessionStart",
|
|
17
|
+
"result": "pass",
|
|
18
|
+
"outcome": {
|
|
19
|
+
"kind": "event-observed",
|
|
20
|
+
"idle": "fires when a session starts",
|
|
21
|
+
"busy": "fires before the first model turn",
|
|
22
|
+
"authority": "advisory",
|
|
23
|
+
"limitations": [
|
|
24
|
+
"capture used a one-session --plugin-dir"
|
|
25
|
+
]
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
]
|
|
14
29
|
},
|
|
15
30
|
{
|
|
16
|
-
"id": "session-end",
|
|
17
|
-
"
|
|
31
|
+
"id": "session-end",
|
|
32
|
+
"client": "claude-code",
|
|
33
|
+
"version": "2.1.233",
|
|
34
|
+
"platform": "darwin-arm64",
|
|
35
|
+
"observedAt": "2026-08-16",
|
|
18
36
|
"fixture": "fixtures/SessionEnd.json",
|
|
19
37
|
"sha256": "165b89ab0c8398580c59c8a95febfeae6c833954767993f559b1d13867fc5ec9",
|
|
20
|
-
"event": "SessionEnd",
|
|
21
|
-
"
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
"
|
|
38
|
+
"event": "SessionEnd",
|
|
39
|
+
"tool": null,
|
|
40
|
+
"claims": [
|
|
41
|
+
{
|
|
42
|
+
"capability": "lifecycle.sessionEnd",
|
|
43
|
+
"result": "pass",
|
|
44
|
+
"outcome": {
|
|
45
|
+
"kind": "event-observed",
|
|
46
|
+
"idle": "fires when a session exits",
|
|
47
|
+
"busy": "does not run until the session exits",
|
|
48
|
+
"authority": "advisory",
|
|
49
|
+
"limitations": [
|
|
50
|
+
"cannot write a handoff after the model has stopped"
|
|
51
|
+
]
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
]
|
|
25
55
|
},
|
|
26
56
|
{
|
|
27
|
-
"id": "user-prompt-submit",
|
|
28
|
-
"
|
|
57
|
+
"id": "user-prompt-submit",
|
|
58
|
+
"client": "claude-code",
|
|
59
|
+
"version": "2.1.233",
|
|
60
|
+
"platform": "darwin-arm64",
|
|
61
|
+
"observedAt": "2026-08-16",
|
|
29
62
|
"fixture": "fixtures/UserPromptSubmit.json",
|
|
30
63
|
"sha256": "8d9edbc92de1b3c1601cfb36ddc341e45d1299df1803f0d5756890ecfbfd4a04",
|
|
31
|
-
"event": "UserPromptSubmit",
|
|
64
|
+
"event": "UserPromptSubmit",
|
|
65
|
+
"tool": null,
|
|
32
66
|
"claims": [
|
|
33
|
-
{
|
|
34
|
-
"
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
"busy": "does not interrupt an in-progress turn",
|
|
40
|
-
"
|
|
67
|
+
{
|
|
68
|
+
"capability": "context.beforeTurnInjection",
|
|
69
|
+
"result": "pass",
|
|
70
|
+
"outcome": {
|
|
71
|
+
"kind": "model-context-observed",
|
|
72
|
+
"idle": "waits for the next user prompt",
|
|
73
|
+
"busy": "does not interrupt an in-progress turn",
|
|
74
|
+
"authority": "context",
|
|
75
|
+
"limitations": [
|
|
76
|
+
"requires the hookSpecificOutput additionalContext envelope"
|
|
77
|
+
]
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"capability": "delivery.nextTurn",
|
|
82
|
+
"result": "pass",
|
|
83
|
+
"outcome": {
|
|
84
|
+
"kind": "model-context-observed",
|
|
85
|
+
"idle": "offers complete peer messages at the next prompt",
|
|
86
|
+
"busy": "does not interrupt an in-progress turn",
|
|
87
|
+
"authority": "context",
|
|
88
|
+
"limitations": [
|
|
89
|
+
"delivery requires the next normal user turn"
|
|
90
|
+
]
|
|
91
|
+
}
|
|
92
|
+
}
|
|
41
93
|
]
|
|
42
94
|
},
|
|
43
95
|
{
|
|
44
|
-
"id": "pre-tool-use-edit",
|
|
45
|
-
"
|
|
96
|
+
"id": "pre-tool-use-edit",
|
|
97
|
+
"client": "claude-code",
|
|
98
|
+
"version": "2.1.233",
|
|
99
|
+
"platform": "darwin-arm64",
|
|
100
|
+
"observedAt": "2026-08-16",
|
|
46
101
|
"fixture": "fixtures/PreToolUse-Edit.json",
|
|
47
102
|
"sha256": "8768062d89190644cffb137572dfd0517473b83717a1e1b5c23aaa98e1501b36",
|
|
48
|
-
"event": "PreToolUse",
|
|
49
|
-
"
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
"
|
|
103
|
+
"event": "PreToolUse",
|
|
104
|
+
"tool": "Edit",
|
|
105
|
+
"claims": [
|
|
106
|
+
{
|
|
107
|
+
"capability": "guards.beforeWrite",
|
|
108
|
+
"result": "pass",
|
|
109
|
+
"outcome": {
|
|
110
|
+
"kind": "tool-denied-before-mutation",
|
|
111
|
+
"idle": "no write exists to guard",
|
|
112
|
+
"busy": "denies a file edit before disk mutation",
|
|
113
|
+
"authority": "blocking",
|
|
114
|
+
"limitations": [
|
|
115
|
+
"runtime writes are outside the hook boundary"
|
|
116
|
+
]
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
]
|
|
53
120
|
},
|
|
54
121
|
{
|
|
55
|
-
"id": "pre-tool-use-bash",
|
|
56
|
-
"
|
|
122
|
+
"id": "pre-tool-use-bash",
|
|
123
|
+
"client": "claude-code",
|
|
124
|
+
"version": "2.1.233",
|
|
125
|
+
"platform": "darwin-arm64",
|
|
126
|
+
"observedAt": "2026-08-16",
|
|
57
127
|
"fixture": "fixtures/PreToolUse.json",
|
|
58
128
|
"sha256": "fecdf3b8183e3c95da1535ca09bac4f571986c0e8c54b442b6423d5382d4a574",
|
|
59
|
-
"event": "PreToolUse",
|
|
60
|
-
"
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
"
|
|
129
|
+
"event": "PreToolUse",
|
|
130
|
+
"tool": "Bash",
|
|
131
|
+
"claims": [
|
|
132
|
+
{
|
|
133
|
+
"capability": "guards.beforeShell",
|
|
134
|
+
"result": "pass",
|
|
135
|
+
"outcome": {
|
|
136
|
+
"kind": "tool-denied-before-execution",
|
|
137
|
+
"idle": "no shell call exists to guard",
|
|
138
|
+
"busy": "denies a Bash call before execution",
|
|
139
|
+
"authority": "blocking",
|
|
140
|
+
"limitations": [
|
|
141
|
+
"only tool calls reaching PreToolUse are guarded"
|
|
142
|
+
]
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
]
|
|
64
146
|
},
|
|
65
147
|
{
|
|
66
|
-
"id": "native-delivery-2-1-252",
|
|
67
|
-
"
|
|
148
|
+
"id": "native-delivery-2-1-252",
|
|
149
|
+
"client": "claude-code",
|
|
150
|
+
"version": "2.1.252",
|
|
151
|
+
"platform": "darwin-arm64",
|
|
152
|
+
"observedAt": "2026-09-01T16:17:06Z",
|
|
68
153
|
"fixture": "fixtures/delivery/claude-code-2.1.252.json",
|
|
69
|
-
"sha256": "
|
|
70
|
-
"event": null,
|
|
154
|
+
"sha256": "04ca2d59abc4d397167ba05a7dc6f9ec28f71158f340da27aa847109ef601617",
|
|
155
|
+
"event": null,
|
|
156
|
+
"tool": null,
|
|
157
|
+
"claims": [
|
|
158
|
+
{
|
|
159
|
+
"capability": "delivery.livePush",
|
|
160
|
+
"result": "fail",
|
|
161
|
+
"outcome": {
|
|
162
|
+
"kind": "native-capture-failed"
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"capability": "delivery.replyRoute",
|
|
167
|
+
"result": "fail",
|
|
168
|
+
"outcome": {
|
|
169
|
+
"kind": "native-capture-failed"
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
]
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"id": "native-delivery-2-1-258",
|
|
176
|
+
"client": "claude-code",
|
|
177
|
+
"version": "2.1.258",
|
|
178
|
+
"platform": "darwin-arm64",
|
|
179
|
+
"observedAt": "2026-09-02T21:20:11.676Z",
|
|
180
|
+
"fixture": "fixtures/delivery/claude-code-2.1.258.json",
|
|
181
|
+
"sha256": "c68e84989c02fa0657d0a8669a774ab1e301088d8c7856346cc9739d0fbad228",
|
|
182
|
+
"event": null,
|
|
183
|
+
"tool": null,
|
|
184
|
+
"claims": [
|
|
185
|
+
{
|
|
186
|
+
"capability": "delivery.livePush",
|
|
187
|
+
"result": "pass",
|
|
188
|
+
"outcome": {
|
|
189
|
+
"kind": "native-delivery-observed",
|
|
190
|
+
"idle": "offered",
|
|
191
|
+
"busy": "queued_after_turn",
|
|
192
|
+
"authority": "experimental",
|
|
193
|
+
"limitations": [
|
|
194
|
+
"captured on darwin-arm64 only; Linux and Windows remain uncaptured",
|
|
195
|
+
"the vendor development-channel warning stayed visible and was accepted by the operator by hand",
|
|
196
|
+
"the plugin .mcp.json must live in the marketplace source copy; the plugin cache copy alone is not read",
|
|
197
|
+
"acc_reply routed through the spike's explicit tool call; the spike created no durable ACC answer record",
|
|
198
|
+
"presentation after the busy turn was observed by the operator; the channel log records the write at 21:18:45Z and the explicit reply at 21:19:21Z"
|
|
199
|
+
]
|
|
200
|
+
}
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"capability": "delivery.replyRoute",
|
|
204
|
+
"result": "pass",
|
|
205
|
+
"outcome": {
|
|
206
|
+
"kind": "native-delivery-observed",
|
|
207
|
+
"idle": "offered",
|
|
208
|
+
"busy": "queued_after_turn",
|
|
209
|
+
"authority": "experimental",
|
|
210
|
+
"limitations": [
|
|
211
|
+
"captured on darwin-arm64 only; Linux and Windows remain uncaptured",
|
|
212
|
+
"the vendor development-channel warning stayed visible and was accepted by the operator by hand",
|
|
213
|
+
"the plugin .mcp.json must live in the marketplace source copy; the plugin cache copy alone is not read",
|
|
214
|
+
"acc_reply routed through the spike's explicit tool call; the spike created no durable ACC answer record",
|
|
215
|
+
"presentation after the busy turn was observed by the operator; the channel log records the write at 21:18:45Z and the explicit reply at 21:19:21Z"
|
|
216
|
+
]
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
]
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
"id": "native-delivery-2-1-260",
|
|
223
|
+
"client": "claude-code",
|
|
224
|
+
"version": "2.1.260",
|
|
225
|
+
"platform": "darwin-arm64",
|
|
226
|
+
"observedAt": "2026-09-04T03:41:29.688Z",
|
|
227
|
+
"fixture": "fixtures/delivery/claude-code-2.1.260.json",
|
|
228
|
+
"sha256": "7513d13b6dc1c6b485d899550f43ae3577cd99fca108f06691f7ad07daf06f03",
|
|
229
|
+
"event": null,
|
|
230
|
+
"tool": null,
|
|
71
231
|
"claims": [
|
|
72
|
-
{
|
|
73
|
-
|
|
232
|
+
{
|
|
233
|
+
"capability": "delivery.livePush",
|
|
234
|
+
"result": "pass",
|
|
235
|
+
"outcome": {
|
|
236
|
+
"kind": "native-delivery-observed",
|
|
237
|
+
"idle": "offered",
|
|
238
|
+
"busy": "queued_after_turn",
|
|
239
|
+
"authority": "experimental",
|
|
240
|
+
"limitations": [
|
|
241
|
+
"captured on darwin-arm64 only; Linux and Windows remain uncaptured",
|
|
242
|
+
"the vendor development-channel warning stayed visible and was accepted by the operator by hand",
|
|
243
|
+
"two ordinary sessions in one workspace, each bound to its own client process; the earlier 2.1.259 attempt is what exposed the channel binding another session identity, and this run is the verification of that fix",
|
|
244
|
+
"duplicate was observed as one logical message id and one native offer: the repeated send took the durable path, so the channel was never asked to notify twice, and exactly one answer was recorded",
|
|
245
|
+
"busy was observed by the operator: the running turn completed before the channel presented the message, and the session named that order in its own answer"
|
|
246
|
+
]
|
|
247
|
+
}
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
"capability": "delivery.replyRoute",
|
|
251
|
+
"result": "pass",
|
|
252
|
+
"outcome": {
|
|
253
|
+
"kind": "native-delivery-observed",
|
|
254
|
+
"idle": "offered",
|
|
255
|
+
"busy": "queued_after_turn",
|
|
256
|
+
"authority": "experimental",
|
|
257
|
+
"limitations": [
|
|
258
|
+
"captured on darwin-arm64 only; Linux and Windows remain uncaptured",
|
|
259
|
+
"the vendor development-channel warning stayed visible and was accepted by the operator by hand",
|
|
260
|
+
"two ordinary sessions in one workspace, each bound to its own client process; the earlier 2.1.259 attempt is what exposed the channel binding another session identity, and this run is the verification of that fix",
|
|
261
|
+
"duplicate was observed as one logical message id and one native offer: the repeated send took the durable path, so the channel was never asked to notify twice, and exactly one answer was recorded",
|
|
262
|
+
"busy was observed by the operator: the running turn completed before the channel presented the message, and the session named that order in its own answer"
|
|
263
|
+
]
|
|
264
|
+
}
|
|
265
|
+
}
|
|
74
266
|
]
|
|
75
267
|
}
|
|
76
268
|
]
|
|
@@ -3,9 +3,11 @@
|
|
|
3
3
|
"version": "2.1.252",
|
|
4
4
|
"platform": "darwin-arm64",
|
|
5
5
|
"observedAt": "2026-09-01T16:17:06Z",
|
|
6
|
-
"capability": "
|
|
6
|
+
"capability": "native_delivery",
|
|
7
7
|
"result": "fail",
|
|
8
8
|
"fixture": "claude-code-2.1.252-channel",
|
|
9
|
+
"launchMode": "manual-vendor-invocation",
|
|
10
|
+
"protocolContract": "claude-code-channel-mcp-v1",
|
|
9
11
|
"idle": "unobserved",
|
|
10
12
|
"busy": "unobserved",
|
|
11
13
|
"reply": "unobserved",
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"client": "claude-code",
|
|
3
|
+
"version": "2.1.258",
|
|
4
|
+
"platform": "darwin-arm64",
|
|
5
|
+
"observedAt": "2026-09-02T21:20:11.676Z",
|
|
6
|
+
"capability": "native_delivery",
|
|
7
|
+
"result": "pass",
|
|
8
|
+
"fixture": "claude-code-2.1.258-channel",
|
|
9
|
+
"launchMode": "ordinary-command-with-install-time-bootstrap",
|
|
10
|
+
"protocolContract": "claude-code-channel-mcp-v1",
|
|
11
|
+
"idle": "offered",
|
|
12
|
+
"busy": "queued_after_turn",
|
|
13
|
+
"reply": "routed",
|
|
14
|
+
"duplicate": "same_message_id",
|
|
15
|
+
"fallback": "queued",
|
|
16
|
+
"limitations": [
|
|
17
|
+
"captured on darwin-arm64 only; Linux and Windows remain uncaptured",
|
|
18
|
+
"the vendor development-channel warning stayed visible and was accepted by the operator by hand",
|
|
19
|
+
"the plugin .mcp.json must live in the marketplace source copy; the plugin cache copy alone is not read",
|
|
20
|
+
"acc_reply routed through the spike's explicit tool call; the spike created no durable ACC answer record",
|
|
21
|
+
"presentation after the busy turn was observed by the operator; the channel log records the write at 21:18:45Z and the explicit reply at 21:19:21Z"
|
|
22
|
+
]
|
|
23
|
+
}
|