agents-can-communicate 0.1.17 → 0.2.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 (137) hide show
  1. package/README.md +76 -138
  2. package/SECURITY.md +31 -0
  3. package/bin/acc-hook.mjs +96 -12
  4. package/bin/acc-mcp.mjs +6 -2
  5. package/bin/acc.mjs +6 -1
  6. package/docs/ADAPTER_AUTHORING.md +172 -0
  7. package/docs/ARCHITECTURE.md +131 -0
  8. package/docs/CAPABILITIES.md +105 -197
  9. package/docs/CLI.md +157 -0
  10. package/docs/CONCEPTS.md +134 -0
  11. package/docs/CONFIGURATION.md +143 -0
  12. package/docs/DESIGN_DECISIONS.md +89 -0
  13. package/docs/GETTING_STARTED.md +145 -0
  14. package/docs/GLOSSARY.md +26 -0
  15. package/docs/MCP.md +94 -0
  16. package/docs/PROTOCOL.md +200 -0
  17. package/docs/RELEASING.md +109 -0
  18. package/docs/SECURITY_MODEL.md +131 -0
  19. package/docs/TROUBLESHOOTING.md +102 -0
  20. package/docs/WHY_ACC.md +61 -0
  21. package/docs/index.md +42 -0
  22. package/node_modules/@agents-can-communicate/adapter-claude-code/certification.json +78 -0
  23. package/node_modules/@agents-can-communicate/adapter-claude-code/fixtures/PreToolUse-Edit.json +19 -0
  24. package/node_modules/@agents-can-communicate/adapter-claude-code/fixtures/PreToolUse.json +17 -0
  25. package/node_modules/@agents-can-communicate/adapter-claude-code/fixtures/SessionEnd.json +8 -0
  26. package/node_modules/@agents-can-communicate/adapter-claude-code/fixtures/SessionStart.json +7 -0
  27. package/node_modules/@agents-can-communicate/adapter-claude-code/fixtures/UserPromptSubmit.json +9 -0
  28. package/node_modules/@agents-can-communicate/adapter-claude-code/fixtures/certification-provenance.json +77 -0
  29. package/node_modules/@agents-can-communicate/adapter-claude-code/fixtures/delivery/claude-code-2.1.252.json +19 -0
  30. package/node_modules/@agents-can-communicate/adapter-claude-code/package.json +9 -1
  31. package/node_modules/@agents-can-communicate/adapter-claude-code/plugin/skills/acc/SKILL.md +80 -160
  32. package/node_modules/@agents-can-communicate/adapter-claude-code/src/adapter.mjs +15 -5
  33. package/node_modules/@agents-can-communicate/adapter-codex/certification.json +117 -0
  34. package/node_modules/@agents-can-communicate/adapter-codex/fixtures/PreToolUse.json +14 -0
  35. package/node_modules/@agents-can-communicate/adapter-codex/fixtures/SessionEnd.json +7 -0
  36. package/node_modules/@agents-can-communicate/adapter-codex/fixtures/SessionStart.json +9 -0
  37. package/node_modules/@agents-can-communicate/adapter-codex/fixtures/UserPromptSubmit.json +10 -0
  38. package/node_modules/@agents-can-communicate/adapter-codex/fixtures/certification-provenance.json +66 -0
  39. package/node_modules/@agents-can-communicate/adapter-codex/fixtures/delivery/codex-cli-0.152.0.json +19 -0
  40. package/node_modules/@agents-can-communicate/adapter-codex/package.json +8 -1
  41. package/node_modules/@agents-can-communicate/adapter-codex/plugin/.codex-plugin/plugin.json +1 -1
  42. package/node_modules/@agents-can-communicate/adapter-codex/plugin/skills/acc/SKILL.md +80 -160
  43. package/node_modules/@agents-can-communicate/adapter-codex/src/adapter.mjs +21 -12
  44. package/node_modules/@agents-can-communicate/adapter-gemini-cli/certification.json +52 -0
  45. package/node_modules/@agents-can-communicate/adapter-gemini-cli/extension/gemini-extension.json +1 -1
  46. package/node_modules/@agents-can-communicate/adapter-gemini-cli/extension/skills/acc/SKILL.md +80 -160
  47. package/node_modules/@agents-can-communicate/adapter-gemini-cli/fixtures/BeforeAgent.json +8 -0
  48. package/node_modules/@agents-can-communicate/adapter-gemini-cli/fixtures/BeforeTool-shell.json +12 -0
  49. package/node_modules/@agents-can-communicate/adapter-gemini-cli/fixtures/BeforeTool.json +12 -0
  50. package/node_modules/@agents-can-communicate/adapter-gemini-cli/fixtures/SessionEnd.json +8 -0
  51. package/node_modules/@agents-can-communicate/adapter-gemini-cli/fixtures/SessionStart.json +8 -0
  52. package/node_modules/@agents-can-communicate/adapter-gemini-cli/fixtures/certification-provenance.json +66 -0
  53. package/node_modules/@agents-can-communicate/adapter-gemini-cli/package.json +8 -1
  54. package/node_modules/@agents-can-communicate/adapter-gemini-cli/src/adapter.mjs +10 -4
  55. package/node_modules/@agents-can-communicate/adapter-gemini-cli/src/install.mjs +4 -2
  56. package/node_modules/@agents-can-communicate/adapter-grok/certification.json +3 -0
  57. package/node_modules/@agents-can-communicate/adapter-grok/package.json +14 -0
  58. package/node_modules/@agents-can-communicate/adapter-grok/plugin/hooks/hooks.json +61 -0
  59. package/node_modules/@agents-can-communicate/adapter-grok/plugin/skills/acc/SKILL.md +152 -0
  60. package/node_modules/@agents-can-communicate/adapter-grok/src/adapter.mjs +61 -0
  61. package/node_modules/@agents-can-communicate/adapter-grok/src/hooks.mjs +127 -0
  62. package/node_modules/@agents-can-communicate/adapter-grok/src/install.mjs +101 -0
  63. package/node_modules/@agents-can-communicate/adapter-kimi/certification.json +52 -0
  64. package/node_modules/@agents-can-communicate/adapter-kimi/fixtures/PreToolUse-Bash.json +12 -0
  65. package/node_modules/@agents-can-communicate/adapter-kimi/fixtures/PreToolUse-Write.json +12 -0
  66. package/node_modules/@agents-can-communicate/adapter-kimi/fixtures/SessionHeartbeat.json +7 -0
  67. package/node_modules/@agents-can-communicate/adapter-kimi/fixtures/SessionStart.json +9 -0
  68. package/node_modules/@agents-can-communicate/adapter-kimi/fixtures/UserPromptSubmit.json +8 -0
  69. package/node_modules/@agents-can-communicate/adapter-kimi/fixtures/certification-provenance.json +66 -0
  70. package/node_modules/@agents-can-communicate/adapter-kimi/package.json +8 -1
  71. package/node_modules/@agents-can-communicate/adapter-kimi/plugin/skills/acc/SKILL.md +80 -160
  72. package/node_modules/@agents-can-communicate/adapter-kimi/src/adapter.mjs +10 -4
  73. package/node_modules/@agents-can-communicate/adapter-sdk/package.json +1 -1
  74. package/node_modules/@agents-can-communicate/adapter-sdk/src/capabilities.mjs +34 -18
  75. package/node_modules/@agents-can-communicate/adapter-sdk/src/certification.mjs +158 -0
  76. package/node_modules/@agents-can-communicate/adapter-sdk/src/context-projector.mjs +139 -224
  77. package/node_modules/@agents-can-communicate/adapter-sdk/src/hook-shim.mjs +7 -1
  78. package/node_modules/@agents-can-communicate/adapter-sdk/src/index.mjs +2 -1
  79. package/node_modules/@agents-can-communicate/adapter-sdk/src/session-binding.mjs +13 -4
  80. package/node_modules/@agents-can-communicate/cli/package.json +1 -1
  81. package/node_modules/@agents-can-communicate/cli/src/args.mjs +13 -29
  82. package/node_modules/@agents-can-communicate/cli/src/doctor-command.mjs +3 -0
  83. package/node_modules/@agents-can-communicate/cli/src/help.mjs +5 -6
  84. package/node_modules/@agents-can-communicate/cli/src/install-command.mjs +12 -3
  85. package/node_modules/@agents-can-communicate/cli/src/main.mjs +109 -109
  86. package/node_modules/@agents-can-communicate/cli/src/session-owner.mjs +1 -1
  87. package/node_modules/@agents-can-communicate/core/package.json +1 -1
  88. package/node_modules/@agents-can-communicate/core/src/attention.mjs +106 -0
  89. package/node_modules/@agents-can-communicate/core/src/conversations.mjs +276 -0
  90. package/node_modules/@agents-can-communicate/core/src/delivery-bindings.mjs +81 -0
  91. package/node_modules/@agents-can-communicate/core/src/finish-retries.mjs +97 -0
  92. package/node_modules/@agents-can-communicate/core/src/inbox.mjs +118 -0
  93. package/node_modules/@agents-can-communicate/core/src/index.mjs +3 -2
  94. package/node_modules/@agents-can-communicate/core/src/intents.mjs +0 -1
  95. package/node_modules/@agents-can-communicate/core/src/ports.mjs +3 -2
  96. package/node_modules/@agents-can-communicate/core/src/receipts.mjs +109 -0
  97. package/node_modules/@agents-can-communicate/core/src/service.mjs +14 -10
  98. package/node_modules/@agents-can-communicate/core/src/sessions.mjs +70 -20
  99. package/node_modules/@agents-can-communicate/core/src/status.mjs +11 -9
  100. package/node_modules/@agents-can-communicate/core/src/sync.mjs +3 -258
  101. package/node_modules/@agents-can-communicate/delivery-router/package.json +12 -0
  102. package/node_modules/@agents-can-communicate/delivery-router/src/index.mjs +1 -0
  103. package/node_modules/@agents-can-communicate/delivery-router/src/router.mjs +117 -0
  104. package/node_modules/@agents-can-communicate/hook-runner/package.json +1 -1
  105. package/node_modules/@agents-can-communicate/hook-runner/src/client-version.mjs +20 -0
  106. package/node_modules/@agents-can-communicate/hook-runner/src/runner.mjs +156 -60
  107. package/node_modules/@agents-can-communicate/installer/package.json +1 -1
  108. package/node_modules/@agents-can-communicate/installer/src/apply.mjs +23 -7
  109. package/node_modules/@agents-can-communicate/installer/src/detect.mjs +20 -5
  110. package/node_modules/@agents-can-communicate/installer/src/index.mjs +3 -2
  111. package/node_modules/@agents-can-communicate/installer/src/ownership.mjs +108 -12
  112. package/node_modules/@agents-can-communicate/installer/src/plan.mjs +19 -2
  113. package/node_modules/@agents-can-communicate/mcp-server/package.json +1 -1
  114. package/node_modules/@agents-can-communicate/mcp-server/src/input-validator.mjs +79 -0
  115. package/node_modules/@agents-can-communicate/mcp-server/src/resources.mjs +23 -28
  116. package/node_modules/@agents-can-communicate/mcp-server/src/server.mjs +109 -71
  117. package/node_modules/@agents-can-communicate/mcp-server/src/tools.mjs +74 -93
  118. package/node_modules/@agents-can-communicate/protocol/package.json +1 -1
  119. package/node_modules/@agents-can-communicate/protocol/src/config.mjs +1 -1
  120. package/node_modules/@agents-can-communicate/protocol/src/conversations.mjs +64 -0
  121. package/node_modules/@agents-can-communicate/protocol/src/index.mjs +4 -1
  122. package/node_modules/@agents-can-communicate/protocol/src/schema.mjs +49 -90
  123. package/node_modules/@agents-can-communicate/protocol/src/states.mjs +13 -40
  124. package/node_modules/@agents-can-communicate/storage-filesystem/package.json +1 -1
  125. package/node_modules/@agents-can-communicate/storage-filesystem/src/active-journal.mjs +230 -0
  126. package/node_modules/@agents-can-communicate/storage-filesystem/src/atomic-json.mjs +77 -28
  127. package/node_modules/@agents-can-communicate/storage-filesystem/src/identity.mjs +1 -1
  128. package/node_modules/@agents-can-communicate/storage-filesystem/src/journal.mjs +83 -35
  129. package/node_modules/@agents-can-communicate/storage-filesystem/src/retention.mjs +112 -0
  130. package/node_modules/@agents-can-communicate/storage-filesystem/src/safe-file.mjs +18 -8
  131. package/node_modules/@agents-can-communicate/storage-filesystem/src/store.mjs +86 -28
  132. package/node_modules/@agents-can-communicate/storage-filesystem/src/writer-mutex.mjs +121 -27
  133. package/package.json +22 -1
  134. package/node_modules/@agents-can-communicate/core/src/communication.mjs +0 -334
  135. package/node_modules/@agents-can-communicate/core/src/notify.mjs +0 -95
  136. package/node_modules/@agents-can-communicate/core/src/tasks.mjs +0 -244
  137. package/node_modules/@agents-can-communicate/core/src/workstreams.mjs +0 -109
@@ -1,9 +1,16 @@
1
- import { defineAdapter, projectContext } from "@agents-can-communicate/adapter-sdk";
1
+ import { defineAdapter, projectContext, projectContextResult }
2
+ from "@agents-can-communicate/adapter-sdk";
3
+ import certification from "../certification.json" with { type: "json" };
2
4
 
3
5
  import { denyOutcome, injectOutcome, normalizeClaudeHook } from "./hooks.mjs";
4
6
  import { planClaudeInstall, detectClaude, installClaudePlugin, uninstallClaudePlugin } from "./install.mjs";
5
7
 
6
8
  export const CLAUDE_CODE_VERSION = "2.1.233";
9
+ export const CLAUDE_DELIVERY_FALLBACK = Object.freeze({
10
+ diagnostic: "Claude Code native delivery is off: the 2.1.252 capture stopped at the "
11
+ + "development-channel security warning before the ACC MCP child started; messages "
12
+ + "stay durable for certified next-turn delivery or acc inbox",
13
+ });
7
14
 
8
15
  /**
9
16
  * Every true capability below was observed in a real `claude -p` session on
@@ -14,7 +21,7 @@ export const CLAUDE_CODE_VERSION = "2.1.233";
14
21
  * and a parent/child mapping claimed without observation is the kind of thing
15
22
  * that quietly maps every child onto its parent. `startupInjection` and
16
23
  * `safePointInjection` were not exercised - only the before-turn path was.
17
- * `execution.*` and wake are not offered by this harness.
24
+ * Native live delivery and reply routing are not certified for this harness.
18
25
  */
19
26
  export function createClaudeCodeAdapter() {
20
27
  return defineAdapter({
@@ -23,7 +30,9 @@ export function createClaudeCodeAdapter() {
23
30
  // The binary this client actually installs. Probed for a version to
24
31
  // decide whether the client is on this machine, so it has to be the
25
32
  // real command rather than the adapter id: `2.1.233 (Claude Code)`.
26
- client: { command: "claude", versionArgs: ["--version"] },
33
+ client: { command: "claude", certificationName: "claude-code", versionArgs: ["--version"] },
34
+ certification,
35
+ deliveryFallback: CLAUDE_DELIVERY_FALLBACK,
27
36
  capabilities: {
28
37
  lifecycle: { sessionStart: true, sessionEnd: true },
29
38
  // A UserPromptSubmit hook's additionalContext was observed arriving in
@@ -31,14 +40,13 @@ export function createClaudeCodeAdapter() {
31
40
  context: { beforeTurnInjection: true },
32
41
  // PreToolUse denied both a Write and a Bash call; neither ran.
33
42
  guards: { beforeWrite: true, beforeShell: true },
34
- delivery: { polling: true },
43
+ delivery: { nextTurn: true },
35
44
  },
36
45
 
37
46
  startSession: async () => ({ ok: true, changes: [], diagnostics: [] }),
38
47
  endSession: async () => ({ ok: true, changes: [], diagnostics: [] }),
39
48
  guardWrite: async () => ({ ok: true, changes: [], diagnostics: [] }),
40
49
  guardShell: async () => ({ ok: true, changes: [], diagnostics: [] }),
41
- poll: async () => ({ ok: true, changes: [], diagnostics: [] }),
42
50
 
43
51
  planInstall: context => planClaudeInstall(context),
44
52
  detect: context => detectClaude(context),
@@ -50,6 +58,7 @@ export function createClaudeCodeAdapter() {
50
58
  return { ok: true, changes: [], diagnostics: [
51
59
  ...detected.diagnostics,
52
60
  "hook payloads captured from Claude Code 2.1.233",
61
+ CLAUDE_DELIVERY_FALLBACK.diagnostic,
53
62
  // SessionEnd is advisory and cannot summarise a conversation that has
54
63
  // already stopped, so the handoff is written from Stop or the skill.
55
64
  "handoff is written while the model is active, not at SessionEnd",
@@ -60,5 +69,6 @@ export function createClaudeCodeAdapter() {
60
69
  injectOutcome,
61
70
  normalizeHook: payload => normalizeClaudeHook(payload),
62
71
  renderContext: (sync, options) => projectContext(sync, options),
72
+ renderContextResult: (sync, options) => projectContextResult(sync, options),
63
73
  });
64
74
  }
@@ -0,0 +1,117 @@
1
+ {
2
+ "evidence": [
3
+ {
4
+ "client": "codex-cli",
5
+ "version": "0.147.0",
6
+ "platform": "darwin-arm64",
7
+ "observedAt": "2026-08-16",
8
+ "capability": "lifecycle.sessionStart",
9
+ "fixture": "fixtures/SessionStart.json",
10
+ "provenance": "fixtures/certification-provenance.json",
11
+ "provenanceId": "session-start",
12
+ "idleBehavior": "fires when a client session starts",
13
+ "busyBehavior": "fires before the first model turn",
14
+ "authorityLevel": "advisory",
15
+ "limitations": ["plugin hooks must be explicitly trusted by the user"],
16
+ "result": "pass"
17
+ },
18
+ {
19
+ "client": "codex-cli",
20
+ "version": "0.147.0",
21
+ "platform": "darwin-arm64",
22
+ "observedAt": "2026-08-16",
23
+ "capability": "lifecycle.sessionEnd",
24
+ "fixture": "fixtures/SessionEnd.json",
25
+ "provenance": "fixtures/certification-provenance.json",
26
+ "provenanceId": "session-end",
27
+ "idleBehavior": "fires when a client session exits",
28
+ "busyBehavior": "does not run until the session exits",
29
+ "authorityLevel": "advisory",
30
+ "limitations": ["plugin hooks must be explicitly trusted by the user"],
31
+ "result": "pass"
32
+ },
33
+ {
34
+ "client": "codex-cli",
35
+ "version": "0.147.0",
36
+ "platform": "darwin-arm64",
37
+ "observedAt": "2026-08-16",
38
+ "capability": "context.beforeTurnInjection",
39
+ "fixture": "fixtures/UserPromptSubmit.json",
40
+ "provenance": "fixtures/certification-provenance.json",
41
+ "provenanceId": "user-prompt-submit",
42
+ "idleBehavior": "waits for the next user prompt",
43
+ "busyBehavior": "does not interrupt an in-progress turn",
44
+ "authorityLevel": "context",
45
+ "limitations": ["stdout arrives as an unwrapped developer-role message"],
46
+ "result": "pass"
47
+ },
48
+ {
49
+ "client": "codex-cli",
50
+ "version": "0.147.0",
51
+ "platform": "darwin-arm64",
52
+ "observedAt": "2026-08-16",
53
+ "capability": "guards.beforeWrite",
54
+ "fixture": "fixtures/PreToolUse.json",
55
+ "provenance": "fixtures/certification-provenance.json",
56
+ "provenanceId": "pre-tool-use",
57
+ "idleBehavior": "no write exists to guard",
58
+ "busyBehavior": "blocks an apply_patch call before disk mutation",
59
+ "authorityLevel": "blocking",
60
+ "limitations": ["runtime and unrecognised shell writes can bypass the guard"],
61
+ "result": "pass"
62
+ },
63
+ {
64
+ "client": "codex-cli",
65
+ "version": "0.147.0",
66
+ "platform": "darwin-arm64",
67
+ "observedAt": "2026-08-16",
68
+ "capability": "delivery.nextTurn",
69
+ "fixture": "fixtures/UserPromptSubmit.json",
70
+ "provenance": "fixtures/certification-provenance.json",
71
+ "provenanceId": "user-prompt-submit",
72
+ "idleBehavior": "offers complete peer messages at the next prompt",
73
+ "busyBehavior": "does not interrupt an in-progress turn",
74
+ "authorityLevel": "context",
75
+ "limitations": ["delivery requires the next normal user turn"],
76
+ "result": "pass"
77
+ },
78
+ {
79
+ "client": "codex-cli",
80
+ "version": "0.152.0",
81
+ "platform": "darwin-arm64",
82
+ "observedAt": "2026-09-01T16:20:40.386Z",
83
+ "capability": "delivery.livePush",
84
+ "fixture": "fixtures/delivery/codex-cli-0.152.0.json",
85
+ "provenance": "fixtures/certification-provenance.json",
86
+ "provenanceId": "native-delivery-0-152-0",
87
+ "idleBehavior": "unobserved",
88
+ "busyBehavior": "unobserved",
89
+ "authorityLevel": "none",
90
+ "limitations": [
91
+ "daemon control socket absent; proxy was not started",
92
+ "no daemon or target client process was started by this capture",
93
+ "idle, busy, reply, duplicate, and fallback branches were not observed"
94
+ ],
95
+ "result": "fail"
96
+ },
97
+ {
98
+ "client": "codex-cli",
99
+ "version": "0.152.0",
100
+ "platform": "darwin-arm64",
101
+ "observedAt": "2026-09-01T16:20:40.386Z",
102
+ "capability": "delivery.replyRoute",
103
+ "fixture": "fixtures/delivery/codex-cli-0.152.0.json",
104
+ "provenance": "fixtures/certification-provenance.json",
105
+ "provenanceId": "native-delivery-0-152-0",
106
+ "idleBehavior": "unobserved",
107
+ "busyBehavior": "unobserved",
108
+ "authorityLevel": "none",
109
+ "limitations": [
110
+ "daemon control socket absent; proxy was not started",
111
+ "no daemon or target client process was started by this capture",
112
+ "idle, busy, reply, duplicate, and fallback branches were not observed"
113
+ ],
114
+ "result": "fail"
115
+ }
116
+ ]
117
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "session_id": "01a0090b-1d56-7df0-92b7-0512e339f3da",
3
+ "turn_id": "01a0090b-1d8e-7062-8c92-3e312d3150df",
4
+ "transcript_path": "<redacted: conversation transcript>",
5
+ "cwd": "/tmp/example-workspace",
6
+ "hook_event_name": "PreToolUse",
7
+ "model": "gpt-5.6-sol",
8
+ "permission_mode": "bypassPermissions",
9
+ "tool_name": "apply_patch",
10
+ "tool_input": {
11
+ "command": "*** Begin Patch\n*** Add File: guarded.txt\n+hello\n*** End Patch"
12
+ },
13
+ "tool_use_id": "exec-e62649b4-5f0d-4549-a367-da8f7d4e24fd"
14
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "session_id": "01a0090b-1d56-7df0-92b7-0512e339f3da",
3
+ "transcript_path": "<redacted: conversation transcript>",
4
+ "cwd": "/tmp/example-workspace",
5
+ "hook_event_name": "SessionEnd",
6
+ "reason": "other"
7
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "session_id": "01a0090b-1d56-7df0-92b7-0512e339f3da",
3
+ "transcript_path": "<redacted: conversation transcript>",
4
+ "cwd": "/tmp/example-workspace",
5
+ "hook_event_name": "SessionStart",
6
+ "model": "gpt-5.6-sol",
7
+ "permission_mode": "bypassPermissions",
8
+ "source": "startup"
9
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "session_id": "01a0090b-1d56-7df0-92b7-0512e339f3da",
3
+ "turn_id": "01a0090b-1d8e-7062-8c92-3e312d3150df",
4
+ "transcript_path": "<redacted: conversation transcript>",
5
+ "cwd": "/tmp/example-workspace",
6
+ "hook_event_name": "UserPromptSubmit",
7
+ "model": "gpt-5.6-sol",
8
+ "permission_mode": "bypassPermissions",
9
+ "prompt": "<redacted: user prompt>"
10
+ }
@@ -0,0 +1,66 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "captures": [
4
+ {
5
+ "id": "session-start", "client": "codex-cli", "version": "0.147.0",
6
+ "platform": "darwin-arm64", "observedAt": "2026-08-16",
7
+ "fixture": "fixtures/SessionStart.json",
8
+ "sha256": "1580157d6b48c10f6de5f155aa1d7c68d1695409a5a178eb36c85ce5e01de956",
9
+ "event": "SessionStart", "tool": null,
10
+ "claims": [{ "capability": "lifecycle.sessionStart", "result": "pass",
11
+ "outcome": { "kind": "event-observed", "idle": "fires when a client session starts",
12
+ "busy": "fires before the first model turn", "authority": "advisory",
13
+ "limitations": ["plugin hooks must be explicitly trusted by the user"] } }]
14
+ },
15
+ {
16
+ "id": "session-end", "client": "codex-cli", "version": "0.147.0",
17
+ "platform": "darwin-arm64", "observedAt": "2026-08-16",
18
+ "fixture": "fixtures/SessionEnd.json",
19
+ "sha256": "e1468c9d5cd2ff5408184158004e9877684f1ae2815239691bbaa386327fe58e",
20
+ "event": "SessionEnd", "tool": null,
21
+ "claims": [{ "capability": "lifecycle.sessionEnd", "result": "pass",
22
+ "outcome": { "kind": "event-observed", "idle": "fires when a client session exits",
23
+ "busy": "does not run until the session exits", "authority": "advisory",
24
+ "limitations": ["plugin hooks must be explicitly trusted by the user"] } }]
25
+ },
26
+ {
27
+ "id": "user-prompt-submit", "client": "codex-cli", "version": "0.147.0",
28
+ "platform": "darwin-arm64", "observedAt": "2026-08-16",
29
+ "fixture": "fixtures/UserPromptSubmit.json",
30
+ "sha256": "1774062b17ea917cf67d8adca3408525a928c5b9b88adda1ff6b92f3e89a459f",
31
+ "event": "UserPromptSubmit", "tool": null,
32
+ "claims": [
33
+ { "capability": "context.beforeTurnInjection", "result": "pass",
34
+ "outcome": { "kind": "model-context-observed", "idle": "waits for the next user prompt",
35
+ "busy": "does not interrupt an in-progress turn", "authority": "context",
36
+ "limitations": ["stdout arrives as an unwrapped developer-role message"] } },
37
+ { "capability": "delivery.nextTurn", "result": "pass",
38
+ "outcome": { "kind": "model-context-observed", "idle": "offers complete peer messages at the next prompt",
39
+ "busy": "does not interrupt an in-progress turn", "authority": "context",
40
+ "limitations": ["delivery requires the next normal user turn"] } }
41
+ ]
42
+ },
43
+ {
44
+ "id": "pre-tool-use", "client": "codex-cli", "version": "0.147.0",
45
+ "platform": "darwin-arm64", "observedAt": "2026-08-16",
46
+ "fixture": "fixtures/PreToolUse.json",
47
+ "sha256": "8d3785cfcffbe9affef6c10c1dbbeaf5a0b7062eaed4414e4a66c073f0397a77",
48
+ "event": "PreToolUse", "tool": "apply_patch",
49
+ "claims": [{ "capability": "guards.beforeWrite", "result": "pass",
50
+ "outcome": { "kind": "tool-denied-before-mutation", "idle": "no write exists to guard",
51
+ "busy": "blocks an apply_patch call before disk mutation", "authority": "blocking",
52
+ "limitations": ["runtime and unrecognised shell writes can bypass the guard"] } }]
53
+ },
54
+ {
55
+ "id": "native-delivery-0-152-0", "client": "codex-cli", "version": "0.152.0",
56
+ "platform": "darwin-arm64", "observedAt": "2026-09-01T16:20:40.386Z",
57
+ "fixture": "fixtures/delivery/codex-cli-0.152.0.json",
58
+ "sha256": "e7879ed95374a4e0450a3c8c0e291357a8c9cf41f6bee90978d920a14f9dc954",
59
+ "event": null, "tool": null,
60
+ "claims": [
61
+ { "capability": "delivery.livePush", "result": "fail", "outcome": { "kind": "native-capture-failed" } },
62
+ { "capability": "delivery.replyRoute", "result": "fail", "outcome": { "kind": "native-capture-failed" } }
63
+ ]
64
+ }
65
+ ]
66
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "client": "codex-cli",
3
+ "version": "0.152.0",
4
+ "platform": "darwin-arm64",
5
+ "observedAt": "2026-09-01T16:20:40.386Z",
6
+ "capability": "native_delivery_existing_session",
7
+ "result": "fail",
8
+ "fixture": "codex-cli-0.152.0-existing-session",
9
+ "idle": "unobserved",
10
+ "busy": "unobserved",
11
+ "reply": "unobserved",
12
+ "duplicate": "unobserved",
13
+ "fallback": "unobserved",
14
+ "limitations": [
15
+ "daemon control socket absent; proxy was not started",
16
+ "no daemon or target client process was started by this capture",
17
+ "idle, busy, reply, duplicate, and fallback branches were not observed"
18
+ ]
19
+ }
@@ -1,12 +1,19 @@
1
1
  {
2
2
  "name": "@agents-can-communicate/adapter-codex",
3
- "version": "0.1.17",
3
+ "version": "0.2.0",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "exports": {
7
7
  ".": "./src/adapter.mjs"
8
8
  },
9
9
  "files": [
10
+ "certification.json",
11
+ "fixtures/certification-provenance.json",
12
+ "fixtures/SessionStart.json",
13
+ "fixtures/SessionEnd.json",
14
+ "fixtures/UserPromptSubmit.json",
15
+ "fixtures/PreToolUse.json",
16
+ "fixtures/delivery/codex-cli-0.152.0.json",
10
17
  "src/",
11
18
  "plugin/"
12
19
  ]
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "agents-can-communicate",
3
3
  "description": "Coordinate this Codex session with other AI agent sessions working in the same workspace.",
4
- "license": "UNLICENSED",
4
+ "license": "MIT",
5
5
  "keywords": [
6
6
  "coordination",
7
7
  "multi-agent",