agents-can-communicate 0.3.0 → 0.4.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 +112 -91
- package/SECURITY.md +8 -5
- package/bin/acc-bootstrap.mjs +5 -54
- package/bin/acc-claude-channel.mjs +8 -175
- package/bin/acc-hook.mjs +4 -133
- package/bin/acc-mcp.mjs +4 -59
- package/bin/acc-update-worker.mjs +8 -0
- package/bin/acc.mjs +5 -39
- package/bin/entrypoints/acc-bootstrap.mjs +47 -0
- package/bin/entrypoints/acc-claude-channel.mjs +149 -0
- package/bin/entrypoints/acc-hook.mjs +58 -0
- package/bin/entrypoints/acc-mcp.mjs +70 -0
- package/bin/entrypoints/acc.mjs +51 -0
- package/bin/entrypoints/claude-channel-stdio.mjs +29 -0
- package/bin/entrypoints/hook-output.mjs +73 -0
- package/docs/ADAPTER_AUTHORING.md +62 -24
- package/docs/ARCHITECTURE.md +79 -20
- package/docs/CAPABILITIES.md +52 -30
- package/docs/CLI.md +164 -35
- package/docs/CONCEPTS.md +97 -93
- package/docs/CONFIGURATION.md +66 -45
- package/docs/DESIGN_DECISIONS.md +24 -15
- package/docs/GETTING_STARTED.md +124 -118
- package/docs/GLOSSARY.md +12 -6
- package/docs/HOW_IT_WORKS.md +136 -229
- package/docs/MCP.md +98 -31
- package/docs/PROTOCOL.md +76 -14
- package/docs/RELEASING.md +128 -86
- package/docs/SECURITY_MODEL.md +52 -15
- package/docs/TROUBLESHOOTING.md +88 -18
- package/docs/UPGRADING.md +119 -0
- package/docs/WHY_ACC.md +19 -16
- package/docs/index.md +40 -24
- package/node_modules/@agents-can-communicate/adapter-claude-code/package.json +1 -1
- package/node_modules/@agents-can-communicate/adapter-claude-code/plugin/skills/acc/SKILL.md +112 -9
- package/node_modules/@agents-can-communicate/adapter-claude-code/src/install.mjs +6 -6
- package/node_modules/@agents-can-communicate/adapter-claude-code/src/native-delivery.mjs +2 -1
- package/node_modules/@agents-can-communicate/adapter-codex/certification.json +38 -13
- package/node_modules/@agents-can-communicate/adapter-codex/fixtures/certification-provenance.json +220 -0
- package/node_modules/@agents-can-communicate/adapter-codex/fixtures/delivery/codex-cli-0.152.1-local-daemon-current-binding-product-evidence.json +1549 -0
- package/node_modules/@agents-can-communicate/adapter-codex/fixtures/delivery/codex-cli-0.152.1-local-daemon-current-binding-product.json +27 -0
- package/node_modules/@agents-can-communicate/adapter-codex/fixtures/delivery/codex-cli-0.152.1-local-daemon-product-evidence.json +1549 -0
- package/node_modules/@agents-can-communicate/adapter-codex/fixtures/delivery/codex-cli-0.152.1-local-daemon-product.json +27 -0
- package/node_modules/@agents-can-communicate/adapter-codex/fixtures/delivery/codex-cli-0.152.1-local-daemon-transport-evidence.json +259 -0
- package/node_modules/@agents-can-communicate/adapter-codex/fixtures/delivery/codex-cli-0.152.1-local-daemon-transport.json +21 -0
- package/node_modules/@agents-can-communicate/adapter-codex/fixtures/delivery/codex-cli-0.153.4-local-daemon-current-binding-product-evidence.json +1549 -0
- package/node_modules/@agents-can-communicate/adapter-codex/fixtures/delivery/codex-cli-0.153.4-local-daemon-current-binding-product.json +27 -0
- package/node_modules/@agents-can-communicate/adapter-codex/fixtures/delivery/codex-cli-0.153.4-local-daemon-product-evidence.json +1549 -0
- package/node_modules/@agents-can-communicate/adapter-codex/fixtures/delivery/codex-cli-0.153.4-local-daemon-product.json +27 -0
- package/node_modules/@agents-can-communicate/adapter-codex/fixtures/delivery/codex-cli-0.153.4-local-daemon-transport-evidence.json +259 -0
- package/node_modules/@agents-can-communicate/adapter-codex/fixtures/delivery/codex-cli-0.153.4-local-daemon-transport.json +21 -0
- package/node_modules/@agents-can-communicate/adapter-codex/package.json +14 -2
- package/node_modules/@agents-can-communicate/adapter-codex/plugin/skills/acc/SKILL.md +111 -8
- package/node_modules/@agents-can-communicate/adapter-codex/src/adapter.mjs +26 -44
- package/node_modules/@agents-can-communicate/adapter-codex/src/app-server-client.mjs +70 -17
- package/node_modules/@agents-can-communicate/adapter-codex/src/config-block.mjs +231 -0
- package/node_modules/@agents-can-communicate/adapter-codex/src/hooks.mjs +1 -1
- package/node_modules/@agents-can-communicate/adapter-codex/src/install.mjs +71 -63
- package/node_modules/@agents-can-communicate/adapter-codex/src/native-delivery.mjs +107 -103
- package/node_modules/@agents-can-communicate/adapter-codex/src/native-endpoint.mjs +96 -0
- package/node_modules/@agents-can-communicate/adapter-codex/src/ws-json-rpc.mjs +3 -2
- 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 +111 -8
- package/node_modules/@agents-can-communicate/adapter-gemini-cli/package.json +1 -1
- package/node_modules/@agents-can-communicate/adapter-gemini-cli/src/install.mjs +2 -2
- 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 +111 -8
- package/node_modules/@agents-can-communicate/adapter-grok/src/install.mjs +2 -2
- 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 +111 -8
- package/node_modules/@agents-can-communicate/adapter-kimi/src/hooks.mjs +1 -1
- package/node_modules/@agents-can-communicate/adapter-kimi/src/install.mjs +2 -2
- package/node_modules/@agents-can-communicate/adapter-sdk/package.json +1 -1
- package/node_modules/@agents-can-communicate/adapter-sdk/src/capabilities.mjs +5 -0
- package/node_modules/@agents-can-communicate/adapter-sdk/src/context-projector.mjs +26 -4
- package/node_modules/@agents-can-communicate/adapter-sdk/src/decision-text.mjs +19 -0
- package/node_modules/@agents-can-communicate/adapter-sdk/src/hook-shim.mjs +5 -3
- package/node_modules/@agents-can-communicate/adapter-sdk/src/index.mjs +1 -0
- package/node_modules/@agents-can-communicate/adapter-sdk/src/native-delivery.mjs +9 -2
- package/node_modules/@agents-can-communicate/adapter-sdk/src/native-vocabulary.mjs +2 -6
- package/node_modules/@agents-can-communicate/adapter-sdk/src/session-binding.mjs +29 -9
- package/node_modules/@agents-can-communicate/adapter-sdk/src/toml-block.mjs +8 -6
- package/node_modules/@agents-can-communicate/cli/package.json +4 -2
- package/node_modules/@agents-can-communicate/cli/src/args.mjs +49 -22
- package/node_modules/@agents-can-communicate/cli/src/doctor-command.mjs +11 -4
- package/node_modules/@agents-can-communicate/cli/src/git-probe.mjs +9 -3
- package/node_modules/@agents-can-communicate/cli/src/help.mjs +109 -14
- package/node_modules/@agents-can-communicate/cli/src/install-command.mjs +66 -18
- package/node_modules/@agents-can-communicate/cli/src/main.mjs +35 -12
- package/node_modules/@agents-can-communicate/cli/src/managed-runtime/activation.mjs +110 -0
- package/node_modules/@agents-can-communicate/cli/src/managed-runtime/command.mjs +63 -0
- package/node_modules/@agents-can-communicate/cli/src/managed-runtime/download.mjs +71 -0
- package/node_modules/@agents-can-communicate/cli/src/managed-runtime/entry.mjs +110 -0
- package/node_modules/@agents-can-communicate/cli/src/managed-runtime/generation.mjs +167 -0
- package/node_modules/@agents-can-communicate/cli/src/managed-runtime/install.mjs +73 -0
- package/node_modules/@agents-can-communicate/cli/src/managed-runtime/launchers.mjs +60 -0
- package/node_modules/@agents-can-communicate/cli/src/managed-runtime/leases.mjs +60 -0
- package/node_modules/@agents-can-communicate/cli/src/managed-runtime/location.mjs +55 -0
- package/node_modules/@agents-can-communicate/cli/src/managed-runtime/mutex.mjs +145 -0
- package/node_modules/@agents-can-communicate/cli/src/managed-runtime/policy.mjs +4 -0
- package/node_modules/@agents-can-communicate/cli/src/managed-runtime/refresh.mjs +40 -0
- package/node_modules/@agents-can-communicate/cli/src/managed-runtime/schedule.mjs +21 -0
- package/node_modules/@agents-can-communicate/cli/src/managed-runtime/state.mjs +122 -0
- package/node_modules/@agents-can-communicate/cli/src/managed-runtime/worker.mjs +65 -0
- package/node_modules/@agents-can-communicate/cli/src/session-owner.mjs +33 -108
- package/node_modules/@agents-can-communicate/cli/src/update-command.mjs +25 -7
- package/node_modules/@agents-can-communicate/core/package.json +1 -1
- package/node_modules/@agents-can-communicate/core/src/attention.mjs +3 -0
- package/node_modules/@agents-can-communicate/core/src/claims.mjs +13 -8
- package/node_modules/@agents-can-communicate/core/src/conversations.mjs +48 -24
- package/node_modules/@agents-can-communicate/core/src/decision-changes.mjs +36 -0
- package/node_modules/@agents-can-communicate/core/src/decision-state.mjs +42 -0
- package/node_modules/@agents-can-communicate/core/src/delivery-bindings.mjs +11 -4
- package/node_modules/@agents-can-communicate/core/src/inbox.mjs +48 -17
- package/node_modules/@agents-can-communicate/core/src/intents.mjs +35 -15
- package/node_modules/@agents-can-communicate/core/src/materialisation.mjs +7 -5
- package/node_modules/@agents-can-communicate/core/src/message-pages.mjs +75 -0
- package/node_modules/@agents-can-communicate/core/src/next-turn-delivery.mjs +31 -0
- package/node_modules/@agents-can-communicate/core/src/session-opening.mjs +128 -0
- package/node_modules/@agents-can-communicate/core/src/sessions.mjs +58 -132
- package/node_modules/@agents-can-communicate/core/src/sync.mjs +31 -2
- package/node_modules/@agents-can-communicate/delivery-router/package.json +1 -1
- package/node_modules/@agents-can-communicate/delivery-router/src/refresh-binding.mjs +38 -0
- package/node_modules/@agents-can-communicate/delivery-router/src/router.mjs +86 -10
- package/node_modules/@agents-can-communicate/hook-runner/package.json +1 -1
- package/node_modules/@agents-can-communicate/hook-runner/src/client-version.mjs +1 -0
- package/node_modules/@agents-can-communicate/hook-runner/src/native-binding.mjs +6 -4
- package/node_modules/@agents-can-communicate/hook-runner/src/native-retirement.mjs +48 -0
- package/node_modules/@agents-can-communicate/hook-runner/src/process-table.mjs +1 -1
- package/node_modules/@agents-can-communicate/hook-runner/src/runner.mjs +175 -67
- package/node_modules/@agents-can-communicate/hook-runner/src/session-lifecycle.mjs +13 -0
- package/node_modules/@agents-can-communicate/installer/package.json +4 -2
- package/node_modules/@agents-can-communicate/installer/src/apply.mjs +17 -2
- package/node_modules/@agents-can-communicate/installer/src/bootstrap-runtime.mjs +11 -5
- package/node_modules/@agents-can-communicate/installer/src/detect.mjs +1 -1
- package/node_modules/@agents-can-communicate/installer/src/index.mjs +1 -0
- package/node_modules/@agents-can-communicate/installer/src/live-policy.mjs +21 -0
- package/node_modules/@agents-can-communicate/installer/src/native-activation.mjs +20 -6
- package/node_modules/@agents-can-communicate/installer/src/ownership.mjs +10 -4
- package/node_modules/@agents-can-communicate/installer/src/plan.mjs +3 -3
- package/node_modules/@agents-can-communicate/mcp-server/package.json +1 -1
- package/node_modules/@agents-can-communicate/mcp-server/src/protocol.mjs +85 -0
- package/node_modules/@agents-can-communicate/mcp-server/src/resources.mjs +3 -2
- package/node_modules/@agents-can-communicate/mcp-server/src/server.mjs +59 -57
- package/node_modules/@agents-can-communicate/mcp-server/src/tools.mjs +47 -33
- package/node_modules/@agents-can-communicate/protocol/package.json +1 -1
- package/node_modules/@agents-can-communicate/protocol/src/conversations.mjs +3 -0
- package/node_modules/@agents-can-communicate/protocol/src/decision-changes.mjs +15 -0
- package/node_modules/@agents-can-communicate/protocol/src/index.mjs +3 -1
- package/node_modules/@agents-can-communicate/protocol/src/schema.mjs +14 -5
- package/node_modules/@agents-can-communicate/storage-filesystem/package.json +1 -1
- package/node_modules/@agents-can-communicate/storage-filesystem/src/atomic-json.mjs +5 -1
- package/node_modules/@agents-can-communicate/storage-filesystem/src/deadline.mjs +7 -0
- package/node_modules/@agents-can-communicate/storage-filesystem/src/index.mjs +2 -0
- package/node_modules/@agents-can-communicate/storage-filesystem/src/session-read.mjs +25 -0
- package/node_modules/@agents-can-communicate/storage-filesystem/src/store.mjs +28 -25
- package/package.json +2 -1
|
@@ -152,7 +152,7 @@ async function writeChannelMcp(target, { node, channel }) {
|
|
|
152
152
|
}
|
|
153
153
|
|
|
154
154
|
/** A plugin tree with the shim written and the skill's command baked in. */
|
|
155
|
-
async function layOutPlugin(target, { runner, node, channel, live }) {
|
|
155
|
+
async function layOutPlugin(target, { runner, node, cli, channel, live }) {
|
|
156
156
|
await rm(target, { recursive: true, force: true });
|
|
157
157
|
await cp(bundle, target, { recursive: true });
|
|
158
158
|
// The bundle ships a placeholder .mcp.json; the real one is written only for a
|
|
@@ -161,7 +161,7 @@ async function layOutPlugin(target, { runner, node, channel, live }) {
|
|
|
161
161
|
if (live) await writeChannelMcp(target, { node, channel });
|
|
162
162
|
// The skill ships with a placeholder where the command belongs: `acc` is not
|
|
163
163
|
// on PATH everywhere, and an agent that cannot run it improvises.
|
|
164
|
-
await bakeSkillCommand({ root: target, node });
|
|
164
|
+
await bakeSkillCommand({ root: target, node, cli });
|
|
165
165
|
// The bundle's hooks.json names this script, and nothing else writes it.
|
|
166
166
|
await writeHookShim({ dir: path.join(target, "hooks"), adapterId: "claude_code",
|
|
167
167
|
runner, node });
|
|
@@ -172,7 +172,7 @@ async function layOutPlugin(target, { runner, node, channel, live }) {
|
|
|
172
172
|
version: await pluginVersion(), io: { readFile, writeFile } });
|
|
173
173
|
}
|
|
174
174
|
|
|
175
|
-
export async function installClaudePlugin({ configDir, runner, node = process.execPath,
|
|
175
|
+
export async function installClaudePlugin({ configDir, runner, cli, preserveVersions = false, node = process.execPath,
|
|
176
176
|
channel = defaultChannel(), livePolicy = "off", now = new Date() }) {
|
|
177
177
|
const live = livePolicy === "actionable" || livePolicy === "all";
|
|
178
178
|
// Everything this will merge into, read before a byte is written. A settings
|
|
@@ -191,16 +191,16 @@ export async function installClaudePlugin({ configDir, runner, node = process.ex
|
|
|
191
191
|
const source = sourceDir(configDir);
|
|
192
192
|
const cached = cachePath(configDir, version);
|
|
193
193
|
|
|
194
|
-
await layOutPlugin(source, { runner, node, channel, live });
|
|
194
|
+
await layOutPlugin(source, { runner, node, cli, channel, live });
|
|
195
195
|
await writeJson(marketplaceFile(configDir), marketplaceManifest());
|
|
196
196
|
// The copy the client runs from. Written here rather than asking the user to
|
|
197
197
|
// run `claude plugin install`, exactly as the Codex adapter does, because the
|
|
198
198
|
// command's only effect is this copy plus the two registry entries below.
|
|
199
|
-
await layOutPlugin(cached, { runner, node, channel, live });
|
|
199
|
+
await layOutPlugin(cached, { runner, node, cli, channel, live });
|
|
200
200
|
// One copy, the one just written. A client caches a plugin under its version,
|
|
201
201
|
// so every upgrade would otherwise leave the previous release's tree beside
|
|
202
202
|
// this one - invisible while the version never moved, three deep once it did.
|
|
203
|
-
await keepOnlyVersion({ root: path.dirname(cached), version,
|
|
203
|
+
if (!preserveVersions) await keepOnlyVersion({ root: path.dirname(cached), version,
|
|
204
204
|
io: { readdir, rm } });
|
|
205
205
|
|
|
206
206
|
await writeClientJson(knownMarketplacesPath(configDir), {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { readFile, readdir, stat } from "node:fs/promises";
|
|
2
2
|
import net from "node:net";
|
|
3
3
|
import path from "node:path";
|
|
4
|
+
import { decisionBody } from "@agents-can-communicate/adapter-sdk";
|
|
4
5
|
|
|
5
6
|
import { PROTOCOL_CONTRACT, endpointDir, isSocketSafe, readRegistration, routeAck, routeReply }
|
|
6
7
|
from "./channel.mjs";
|
|
@@ -197,7 +198,7 @@ export async function offerMessage({ binding, message, runtimeDir, timeoutMs = 2
|
|
|
197
198
|
|
|
198
199
|
function sendEnvelope({ record, message, binding, connect, timeoutMs, rejected }) {
|
|
199
200
|
const envelope = { nonce: record.nonce, messageId: message.messageId, kind: message.kind,
|
|
200
|
-
subject: message.subject ?? "", body: message
|
|
201
|
+
subject: message.subject ?? "", body: decisionBody(message),
|
|
201
202
|
...(typeof message.inReplyTo === "string" ? { inReplyTo: message.inReplyTo } : {}) };
|
|
202
203
|
return new Promise(resolve => {
|
|
203
204
|
const socket = connect(record.socketPath);
|
|
@@ -127,24 +127,49 @@
|
|
|
127
127
|
"client": "codex-cli",
|
|
128
128
|
"version": "0.152.1",
|
|
129
129
|
"platform": "darwin-arm64",
|
|
130
|
-
"observedAt": "2026-09-
|
|
130
|
+
"observedAt": "2026-09-08T10:45:27.843Z",
|
|
131
131
|
"capability": "delivery.livePush",
|
|
132
|
-
"fixture": "fixtures/delivery/codex-cli-0.152.1-
|
|
132
|
+
"fixture": "fixtures/delivery/codex-cli-0.152.1-local-daemon-current-binding-product.json",
|
|
133
133
|
"provenance": "fixtures/certification-provenance.json",
|
|
134
|
-
"provenanceId": "native-delivery-0-152-1-
|
|
135
|
-
"idleBehavior": "
|
|
136
|
-
"busyBehavior": "
|
|
134
|
+
"provenanceId": "native-delivery-0-152-1-local-daemon-current-binding-product",
|
|
135
|
+
"idleBehavior": "offered",
|
|
136
|
+
"busyBehavior": "queued_after_turn",
|
|
137
137
|
"authorityLevel": "experimental",
|
|
138
138
|
"limitations": [
|
|
139
|
-
"
|
|
140
|
-
"
|
|
141
|
-
"
|
|
142
|
-
"
|
|
143
|
-
"
|
|
144
|
-
"
|
|
145
|
-
"
|
|
139
|
+
"Observed on darwin-arm64 with an already-running LocalDaemon and ordinary commands; ACC adds no launch arguments and owns no vendor daemon lifecycle.",
|
|
140
|
+
"Recorded recipient opt-in and exact current thread, canonical cwd, live process, stable version and protocol checks are required for every session.",
|
|
141
|
+
"A 120-second delivery lease can refresh on demand for the same non-retired endpoint; this does not renew the 24-hour presence expiry.",
|
|
142
|
+
"Unsupported or Embedded sessions and unreachable or rejected endpoints retain durable inbox delivery; accepted vendor queue entries cannot be withdrawn by policy off or uninstall.",
|
|
143
|
+
"A loaded daemon thread may execute opted-in messages after its TUI exits. TUI detachment is not SessionEnd; explicit thread archive or actual server teardown retires it.",
|
|
144
|
+
"Transport deduplication covers a pending queue entry only. Execution can repeat after queue consumption and acknowledgement loss.",
|
|
145
|
+
"The observed reply loop uses the installed acc reply CLI; native delivery.replyRoute remains false. No new lifecycle, guard or next-turn certification follows.",
|
|
146
|
+
"P16 is controlled endpoint fault injection. P18 uses an actual legacy npm artifact; its unrelated Claude shell artifact is not a real Claude capability capture."
|
|
146
147
|
],
|
|
147
|
-
"result": "
|
|
148
|
+
"result": "pass"
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"client": "codex-cli",
|
|
152
|
+
"version": "0.153.4",
|
|
153
|
+
"platform": "darwin-arm64",
|
|
154
|
+
"observedAt": "2026-09-08T10:45:35.663Z",
|
|
155
|
+
"capability": "delivery.livePush",
|
|
156
|
+
"fixture": "fixtures/delivery/codex-cli-0.153.4-local-daemon-current-binding-product.json",
|
|
157
|
+
"provenance": "fixtures/certification-provenance.json",
|
|
158
|
+
"provenanceId": "native-delivery-0-153-4-local-daemon-current-binding-product",
|
|
159
|
+
"idleBehavior": "offered",
|
|
160
|
+
"busyBehavior": "queued_after_turn",
|
|
161
|
+
"authorityLevel": "experimental",
|
|
162
|
+
"limitations": [
|
|
163
|
+
"Observed on darwin-arm64 with an already-running LocalDaemon and ordinary commands; ACC adds no launch arguments and owns no vendor daemon lifecycle.",
|
|
164
|
+
"Recorded recipient opt-in and exact current thread, canonical cwd, live process, stable version and protocol checks are required for every session.",
|
|
165
|
+
"A 120-second delivery lease can refresh on demand for the same non-retired endpoint; this does not renew the 24-hour presence expiry.",
|
|
166
|
+
"Unsupported or Embedded sessions and unreachable or rejected endpoints retain durable inbox delivery; accepted vendor queue entries cannot be withdrawn by policy off or uninstall.",
|
|
167
|
+
"A loaded daemon thread may execute opted-in messages after its TUI exits. TUI detachment is not SessionEnd; explicit thread archive or actual server teardown retires it.",
|
|
168
|
+
"Transport deduplication covers a pending queue entry only. Execution can repeat after queue consumption and acknowledgement loss.",
|
|
169
|
+
"The observed reply loop uses the installed acc reply CLI; native delivery.replyRoute remains false. No new lifecycle, guard or next-turn certification follows.",
|
|
170
|
+
"P16 is controlled endpoint fault injection. P18 uses an actual legacy npm artifact; its unrelated Claude shell artifact is not a real Claude capability capture."
|
|
171
|
+
],
|
|
172
|
+
"result": "pass"
|
|
148
173
|
}
|
|
149
174
|
]
|
|
150
175
|
}
|
package/node_modules/@agents-can-communicate/adapter-codex/fixtures/certification-provenance.json
CHANGED
|
@@ -194,6 +194,226 @@
|
|
|
194
194
|
}
|
|
195
195
|
}
|
|
196
196
|
]
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
"id": "native-delivery-0-152-1-local-daemon-product",
|
|
200
|
+
"client": "codex-cli",
|
|
201
|
+
"version": "0.152.1",
|
|
202
|
+
"platform": "darwin-arm64",
|
|
203
|
+
"observedAt": "2026-09-08T09:42:03.910Z",
|
|
204
|
+
"fixture": "fixtures/delivery/codex-cli-0.152.1-local-daemon-product.json",
|
|
205
|
+
"sha256": "12ba4994612c8ac38adb3f02bac4710b14dc897c8ae51f41d5ac8f81efcda7a9",
|
|
206
|
+
"event": null,
|
|
207
|
+
"tool": null,
|
|
208
|
+
"claims": [
|
|
209
|
+
{
|
|
210
|
+
"capability": "delivery.livePush",
|
|
211
|
+
"result": "pass",
|
|
212
|
+
"outcome": {
|
|
213
|
+
"kind": "native-delivery-observed",
|
|
214
|
+
"idle": "offered",
|
|
215
|
+
"busy": "queued_after_turn",
|
|
216
|
+
"authority": "experimental",
|
|
217
|
+
"limitations": [
|
|
218
|
+
"Observed on darwin-arm64 with an already-running LocalDaemon and ordinary commands; ACC adds no launch arguments and owns no vendor daemon lifecycle.",
|
|
219
|
+
"Recorded recipient opt-in and exact current thread, canonical cwd, live process, stable version and protocol checks are required for every session.",
|
|
220
|
+
"A 120-second delivery lease can refresh on demand for the same non-retired endpoint; this does not renew the 24-hour presence expiry.",
|
|
221
|
+
"Unsupported or Embedded sessions and unreachable or rejected endpoints retain durable inbox delivery; accepted vendor queue entries cannot be withdrawn by policy off or uninstall.",
|
|
222
|
+
"A loaded daemon thread may execute opted-in messages after its TUI exits. TUI detachment is not SessionEnd; explicit thread archive or actual server teardown retires it.",
|
|
223
|
+
"Transport deduplication covers a pending queue entry only. Execution can repeat after queue consumption and acknowledgement loss.",
|
|
224
|
+
"The observed reply loop uses the installed acc reply CLI; native delivery.replyRoute remains false. No new lifecycle, guard or next-turn certification follows.",
|
|
225
|
+
"P16 is controlled endpoint fault injection. P18 uses an actual legacy npm artifact; its unrelated Claude shell artifact is not a real Claude capability capture."
|
|
226
|
+
]
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
],
|
|
230
|
+
"productEvidence": {
|
|
231
|
+
"fixture": "fixtures/delivery/codex-cli-0.152.1-local-daemon-product-evidence.json",
|
|
232
|
+
"sha256": "1a53d02db21a472ba7e8b37cca3d935826a3e1a17a8c17223dc56ecbebac1e21"
|
|
233
|
+
},
|
|
234
|
+
"historicalFixtures": [
|
|
235
|
+
{
|
|
236
|
+
"fixture": "fixtures/delivery/codex-cli-0.152.1-local-daemon-transport.json",
|
|
237
|
+
"sha256": "3cea07a9d655b7a78764eacd30bbcdc941a81095633ba08eee1c1c0900958c18"
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
"fixture": "fixtures/delivery/codex-cli-0.152.1-local-daemon-transport-evidence.json",
|
|
241
|
+
"sha256": "911a8e451bd726aedfb2be9379ed521e4042b2c7a8be1f280349dbeabc101cf1"
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
"fixture": "fixtures/delivery/codex-cli-0.152.1-remote-workspace.json",
|
|
245
|
+
"sha256": "e4f419111d254223f3930eeee61c30c447bb68dd51a4faf81be2a33b144bbaca"
|
|
246
|
+
}
|
|
247
|
+
]
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
"id": "native-delivery-0-153-4-local-daemon-product",
|
|
251
|
+
"client": "codex-cli",
|
|
252
|
+
"version": "0.153.4",
|
|
253
|
+
"platform": "darwin-arm64",
|
|
254
|
+
"observedAt": "2026-09-08T09:42:02.609Z",
|
|
255
|
+
"fixture": "fixtures/delivery/codex-cli-0.153.4-local-daemon-product.json",
|
|
256
|
+
"sha256": "35cc452a24dd9cbbb4a0f130928ce8b3ed89784d362518d6997cded3b5ea2c1b",
|
|
257
|
+
"event": null,
|
|
258
|
+
"tool": null,
|
|
259
|
+
"claims": [
|
|
260
|
+
{
|
|
261
|
+
"capability": "delivery.livePush",
|
|
262
|
+
"result": "pass",
|
|
263
|
+
"outcome": {
|
|
264
|
+
"kind": "native-delivery-observed",
|
|
265
|
+
"idle": "offered",
|
|
266
|
+
"busy": "queued_after_turn",
|
|
267
|
+
"authority": "experimental",
|
|
268
|
+
"limitations": [
|
|
269
|
+
"Observed on darwin-arm64 with an already-running LocalDaemon and ordinary commands; ACC adds no launch arguments and owns no vendor daemon lifecycle.",
|
|
270
|
+
"Recorded recipient opt-in and exact current thread, canonical cwd, live process, stable version and protocol checks are required for every session.",
|
|
271
|
+
"A 120-second delivery lease can refresh on demand for the same non-retired endpoint; this does not renew the 24-hour presence expiry.",
|
|
272
|
+
"Unsupported or Embedded sessions and unreachable or rejected endpoints retain durable inbox delivery; accepted vendor queue entries cannot be withdrawn by policy off or uninstall.",
|
|
273
|
+
"A loaded daemon thread may execute opted-in messages after its TUI exits. TUI detachment is not SessionEnd; explicit thread archive or actual server teardown retires it.",
|
|
274
|
+
"Transport deduplication covers a pending queue entry only. Execution can repeat after queue consumption and acknowledgement loss.",
|
|
275
|
+
"The observed reply loop uses the installed acc reply CLI; native delivery.replyRoute remains false. No new lifecycle, guard or next-turn certification follows.",
|
|
276
|
+
"P16 is controlled endpoint fault injection. P18 uses an actual legacy npm artifact; its unrelated Claude shell artifact is not a real Claude capability capture."
|
|
277
|
+
]
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
],
|
|
281
|
+
"productEvidence": {
|
|
282
|
+
"fixture": "fixtures/delivery/codex-cli-0.153.4-local-daemon-product-evidence.json",
|
|
283
|
+
"sha256": "81ff85c16e7320df233d353267bf216dc2c40ee5b86ccbcc2e2fe754e2e99591"
|
|
284
|
+
},
|
|
285
|
+
"historicalFixtures": [
|
|
286
|
+
{
|
|
287
|
+
"fixture": "fixtures/delivery/codex-cli-0.153.4-local-daemon-transport.json",
|
|
288
|
+
"sha256": "a458fdcc9fc843580663f8d21c79e911e202fe8e5db83a951b9e22ed79761168"
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
"fixture": "fixtures/delivery/codex-cli-0.153.4-local-daemon-transport-evidence.json",
|
|
292
|
+
"sha256": "2fb31e3a8503582472b2589f2009e39e0d8a6b91f6c361682eaa3989eafef4c2"
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
"fixture": "fixtures/delivery/codex-cli-0.152.1-remote-workspace.json",
|
|
296
|
+
"sha256": "e4f419111d254223f3930eeee61c30c447bb68dd51a4faf81be2a33b144bbaca"
|
|
297
|
+
}
|
|
298
|
+
]
|
|
299
|
+
},
|
|
300
|
+
{
|
|
301
|
+
"id": "native-delivery-0-152-1-local-daemon-current-binding-product",
|
|
302
|
+
"client": "codex-cli",
|
|
303
|
+
"version": "0.152.1",
|
|
304
|
+
"platform": "darwin-arm64",
|
|
305
|
+
"observedAt": "2026-09-08T10:45:27.843Z",
|
|
306
|
+
"fixture": "fixtures/delivery/codex-cli-0.152.1-local-daemon-current-binding-product.json",
|
|
307
|
+
"sha256": "63ecebc2b28a07e90df4414ea1a7091f99c1848a523854ae6e7bdc65d8ba62a6",
|
|
308
|
+
"event": null,
|
|
309
|
+
"tool": null,
|
|
310
|
+
"claims": [
|
|
311
|
+
{
|
|
312
|
+
"capability": "delivery.livePush",
|
|
313
|
+
"result": "pass",
|
|
314
|
+
"outcome": {
|
|
315
|
+
"kind": "native-delivery-observed",
|
|
316
|
+
"idle": "offered",
|
|
317
|
+
"busy": "queued_after_turn",
|
|
318
|
+
"authority": "experimental",
|
|
319
|
+
"limitations": [
|
|
320
|
+
"Observed on darwin-arm64 with an already-running LocalDaemon and ordinary commands; ACC adds no launch arguments and owns no vendor daemon lifecycle.",
|
|
321
|
+
"Recorded recipient opt-in and exact current thread, canonical cwd, live process, stable version and protocol checks are required for every session.",
|
|
322
|
+
"A 120-second delivery lease can refresh on demand for the same non-retired endpoint; this does not renew the 24-hour presence expiry.",
|
|
323
|
+
"Unsupported or Embedded sessions and unreachable or rejected endpoints retain durable inbox delivery; accepted vendor queue entries cannot be withdrawn by policy off or uninstall.",
|
|
324
|
+
"A loaded daemon thread may execute opted-in messages after its TUI exits. TUI detachment is not SessionEnd; explicit thread archive or actual server teardown retires it.",
|
|
325
|
+
"Transport deduplication covers a pending queue entry only. Execution can repeat after queue consumption and acknowledgement loss.",
|
|
326
|
+
"The observed reply loop uses the installed acc reply CLI; native delivery.replyRoute remains false. No new lifecycle, guard or next-turn certification follows.",
|
|
327
|
+
"P16 is controlled endpoint fault injection. P18 uses an actual legacy npm artifact; its unrelated Claude shell artifact is not a real Claude capability capture."
|
|
328
|
+
]
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
],
|
|
332
|
+
"productEvidence": {
|
|
333
|
+
"fixture": "fixtures/delivery/codex-cli-0.152.1-local-daemon-current-binding-product-evidence.json",
|
|
334
|
+
"sha256": "72eac209e0007c617c51038b0e780de4fafe4601753e525172b09b480337295e"
|
|
335
|
+
},
|
|
336
|
+
"historicalFixtures": [
|
|
337
|
+
{
|
|
338
|
+
"fixture": "fixtures/delivery/codex-cli-0.152.1-local-daemon-product.json",
|
|
339
|
+
"sha256": "12ba4994612c8ac38adb3f02bac4710b14dc897c8ae51f41d5ac8f81efcda7a9"
|
|
340
|
+
},
|
|
341
|
+
{
|
|
342
|
+
"fixture": "fixtures/delivery/codex-cli-0.152.1-local-daemon-product-evidence.json",
|
|
343
|
+
"sha256": "1a53d02db21a472ba7e8b37cca3d935826a3e1a17a8c17223dc56ecbebac1e21"
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
"fixture": "fixtures/delivery/codex-cli-0.152.1-local-daemon-transport.json",
|
|
347
|
+
"sha256": "3cea07a9d655b7a78764eacd30bbcdc941a81095633ba08eee1c1c0900958c18"
|
|
348
|
+
},
|
|
349
|
+
{
|
|
350
|
+
"fixture": "fixtures/delivery/codex-cli-0.152.1-local-daemon-transport-evidence.json",
|
|
351
|
+
"sha256": "911a8e451bd726aedfb2be9379ed521e4042b2c7a8be1f280349dbeabc101cf1"
|
|
352
|
+
},
|
|
353
|
+
{
|
|
354
|
+
"fixture": "fixtures/delivery/codex-cli-0.152.1-remote-workspace.json",
|
|
355
|
+
"sha256": "e4f419111d254223f3930eeee61c30c447bb68dd51a4faf81be2a33b144bbaca"
|
|
356
|
+
}
|
|
357
|
+
]
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
"id": "native-delivery-0-153-4-local-daemon-current-binding-product",
|
|
361
|
+
"client": "codex-cli",
|
|
362
|
+
"version": "0.153.4",
|
|
363
|
+
"platform": "darwin-arm64",
|
|
364
|
+
"observedAt": "2026-09-08T10:45:35.663Z",
|
|
365
|
+
"fixture": "fixtures/delivery/codex-cli-0.153.4-local-daemon-current-binding-product.json",
|
|
366
|
+
"sha256": "6f13ebe9abdcd2826ba2adf82ce96efd0aab88d1e64dee9c9a7cd476a5449eff",
|
|
367
|
+
"event": null,
|
|
368
|
+
"tool": null,
|
|
369
|
+
"claims": [
|
|
370
|
+
{
|
|
371
|
+
"capability": "delivery.livePush",
|
|
372
|
+
"result": "pass",
|
|
373
|
+
"outcome": {
|
|
374
|
+
"kind": "native-delivery-observed",
|
|
375
|
+
"idle": "offered",
|
|
376
|
+
"busy": "queued_after_turn",
|
|
377
|
+
"authority": "experimental",
|
|
378
|
+
"limitations": [
|
|
379
|
+
"Observed on darwin-arm64 with an already-running LocalDaemon and ordinary commands; ACC adds no launch arguments and owns no vendor daemon lifecycle.",
|
|
380
|
+
"Recorded recipient opt-in and exact current thread, canonical cwd, live process, stable version and protocol checks are required for every session.",
|
|
381
|
+
"A 120-second delivery lease can refresh on demand for the same non-retired endpoint; this does not renew the 24-hour presence expiry.",
|
|
382
|
+
"Unsupported or Embedded sessions and unreachable or rejected endpoints retain durable inbox delivery; accepted vendor queue entries cannot be withdrawn by policy off or uninstall.",
|
|
383
|
+
"A loaded daemon thread may execute opted-in messages after its TUI exits. TUI detachment is not SessionEnd; explicit thread archive or actual server teardown retires it.",
|
|
384
|
+
"Transport deduplication covers a pending queue entry only. Execution can repeat after queue consumption and acknowledgement loss.",
|
|
385
|
+
"The observed reply loop uses the installed acc reply CLI; native delivery.replyRoute remains false. No new lifecycle, guard or next-turn certification follows.",
|
|
386
|
+
"P16 is controlled endpoint fault injection. P18 uses an actual legacy npm artifact; its unrelated Claude shell artifact is not a real Claude capability capture."
|
|
387
|
+
]
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
],
|
|
391
|
+
"productEvidence": {
|
|
392
|
+
"fixture": "fixtures/delivery/codex-cli-0.153.4-local-daemon-current-binding-product-evidence.json",
|
|
393
|
+
"sha256": "8aad29c7bf32098d12f3acb8d63fa18246e5feaf3d106de9c6eb32c7f1a7d562"
|
|
394
|
+
},
|
|
395
|
+
"historicalFixtures": [
|
|
396
|
+
{
|
|
397
|
+
"fixture": "fixtures/delivery/codex-cli-0.153.4-local-daemon-product.json",
|
|
398
|
+
"sha256": "35cc452a24dd9cbbb4a0f130928ce8b3ed89784d362518d6997cded3b5ea2c1b"
|
|
399
|
+
},
|
|
400
|
+
{
|
|
401
|
+
"fixture": "fixtures/delivery/codex-cli-0.153.4-local-daemon-product-evidence.json",
|
|
402
|
+
"sha256": "81ff85c16e7320df233d353267bf216dc2c40ee5b86ccbcc2e2fe754e2e99591"
|
|
403
|
+
},
|
|
404
|
+
{
|
|
405
|
+
"fixture": "fixtures/delivery/codex-cli-0.153.4-local-daemon-transport.json",
|
|
406
|
+
"sha256": "a458fdcc9fc843580663f8d21c79e911e202fe8e5db83a951b9e22ed79761168"
|
|
407
|
+
},
|
|
408
|
+
{
|
|
409
|
+
"fixture": "fixtures/delivery/codex-cli-0.153.4-local-daemon-transport-evidence.json",
|
|
410
|
+
"sha256": "2fb31e3a8503582472b2589f2009e39e0d8a6b91f6c361682eaa3989eafef4c2"
|
|
411
|
+
},
|
|
412
|
+
{
|
|
413
|
+
"fixture": "fixtures/delivery/codex-cli-0.152.1-remote-workspace.json",
|
|
414
|
+
"sha256": "e4f419111d254223f3930eeee61c30c447bb68dd51a4faf81be2a33b144bbaca"
|
|
415
|
+
}
|
|
416
|
+
]
|
|
197
417
|
}
|
|
198
418
|
]
|
|
199
419
|
}
|