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
package/docs/CONFIGURATION.md
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
# Configuration
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
directory when
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
3
|
+
Start without configuration. ACC identifies a workspace from its Git common directory, or
|
|
4
|
+
from the directory itself when Git is absent. Sessions can communicate only when they run
|
|
5
|
+
as the same operating-system user on the same machine and resolve that same local
|
|
6
|
+
workspace.
|
|
7
|
+
|
|
8
|
+
Create `acc.workspace.json` only for stable workspace identity, roots, or shared
|
|
9
|
+
context budget. It is optional project configuration that `acc config init` may write
|
|
10
|
+
at your request; runtime state remains in platform app data outside the repository. The
|
|
11
|
+
file never defines agents, messages, execution state, or delivery endpoints. Project map:
|
|
12
|
+
[README](index.md). Terms used below: [Glossary](GLOSSARY.md).
|
|
13
|
+
|
|
14
|
+
## Decide whether you need a config
|
|
15
|
+
|
|
16
|
+
- **Identity that survives a local move.** Without a config, the same non-Git project at two
|
|
17
|
+
paths is two workspaces. `workspaceId` lets the same OS user move or reopen it locally.
|
|
18
|
+
Matching ids never connect different machines or OS users.
|
|
16
19
|
- **More than one root.** A monorepo whose apps live in separate directories, or a
|
|
17
20
|
workspace that spans sibling checkouts.
|
|
18
|
-
- **Shared
|
|
19
|
-
|
|
20
|
-
- **Stated expectations.** `requiredAdapters` records which harnesses this project expects
|
|
21
|
-
to be installed, so `acc doctor` can say what is missing rather than leaving a session
|
|
22
|
-
silently uncoordinated.
|
|
21
|
+
- **Shared context budget.** Set the ceiling for supported injected turn context once for
|
|
22
|
+
the workspace.
|
|
23
23
|
|
|
24
|
-
###
|
|
24
|
+
### Define the file
|
|
25
25
|
|
|
26
26
|
`acc.workspace.json`, at the root of the workspace. One name, so discovery is a lookup and
|
|
27
27
|
not a search. It is found by walking up from the working directory, because sessions start
|
|
@@ -36,10 +36,8 @@ link can point anywhere, including at a file the repository does not control.
|
|
|
36
36
|
"displayName": "Example",
|
|
37
37
|
"roots": ["."],
|
|
38
38
|
"policy": {
|
|
39
|
-
"claimMode": "advisory",
|
|
40
39
|
"contextBudgetBytes": 6000
|
|
41
|
-
}
|
|
42
|
-
"requiredAdapters": []
|
|
40
|
+
}
|
|
43
41
|
}
|
|
44
42
|
```
|
|
45
43
|
|
|
@@ -49,11 +47,16 @@ link can point anywhere, including at a file the repository does not control.
|
|
|
49
47
|
| `workspaceId` | Stable identity, portable id | required |
|
|
50
48
|
| `displayName` | What peers see in a roster | the directory name |
|
|
51
49
|
| `roots` | Directories in this workspace, relative to the config | `["."]` |
|
|
52
|
-
| `policy.claimMode` | `advisory` or `guarded` | `advisory` |
|
|
50
|
+
| `policy.claimMode` | Validated compatibility metadata (`advisory` or `guarded`); does not select claim enforcement | `advisory` |
|
|
53
51
|
| `policy.contextBudgetBytes` | Ceiling on injected turn context, 1–64000 | `6000` |
|
|
54
|
-
| `requiredAdapters` |
|
|
52
|
+
| `requiredAdapters` | Validated compatibility metadata; does not affect `acc doctor` diagnostics | `[]` |
|
|
55
53
|
| `extensions` | Anything else, namespaced by whoever wrote it | `{}` |
|
|
56
54
|
|
|
55
|
+
`policy.claimMode` and `requiredAdapters` are stored but have no claim or doctor effect in
|
|
56
|
+
0.4. CLI claims default to advisory; request `--enforcement guarded` on each claim when
|
|
57
|
+
appropriate, subject to every live participant's certified guard. MCP claims remain
|
|
58
|
+
advisory. Do not use these metadata fields to configure protection or missing-client checks.
|
|
59
|
+
|
|
57
60
|
Roots are refused if they are absolute or escape the workspace. An absolute root is one
|
|
58
61
|
machine's layout committed to a shared repository, and `packages/../../elsewhere` reaches
|
|
59
62
|
outside the boundary the workspace is supposed to be. The check counts path segments, so an
|
|
@@ -64,7 +67,7 @@ like nothing at all to a parser that ignores what it does not know, and the resu
|
|
|
64
67
|
team whose policy quietly stopped applying. `extensions` is the one declared door for
|
|
65
68
|
anything ACC does not define.
|
|
66
69
|
|
|
67
|
-
###
|
|
70
|
+
### Keep runtime state out
|
|
68
71
|
|
|
69
72
|
Sessions, participants, messages, claims, receipts, intents, events, tokens, credentials.
|
|
70
73
|
All of it is refused, by name, with the key that caused it, for two reasons. Runtime state
|
|
@@ -73,7 +76,7 @@ without carrying presence and locks along. And a config lives in a repository, w
|
|
|
73
76
|
who can open a pull request can edit it — a file that could declare sessions would be a way
|
|
74
77
|
to hand a peer state it should have had to earn.
|
|
75
78
|
|
|
76
|
-
###
|
|
79
|
+
### Change identity safely
|
|
77
80
|
|
|
78
81
|
The config carries the workspace identity, so writing one moves the project to a new
|
|
79
82
|
workspace. Sessions already attached stay on the old one: they keep heartbeating it, they
|
|
@@ -90,24 +93,32 @@ pass --force to write anyway.
|
|
|
90
93
|
|
|
91
94
|
Close them, or pass `--force` if you mean it — and restart them afterwards.
|
|
92
95
|
|
|
93
|
-
###
|
|
96
|
+
### Create or validate it
|
|
94
97
|
|
|
95
98
|
<!-- test:illustration asks a person to confirm; there is nobody to ask in a test -->
|
|
96
99
|
```bash
|
|
97
100
|
acc config init # preview, then write after you agree
|
|
98
|
-
acc config validate # read-only;
|
|
101
|
+
acc config validate # read-only; checks acc.workspace.json in the selected directory
|
|
99
102
|
```
|
|
100
103
|
|
|
104
|
+
`init` and `validate` operate only on `acc.workspace.json` directly inside the selected
|
|
105
|
+
`--cwd` directory (the current directory when omitted). Unlike ordinary workspace discovery,
|
|
106
|
+
they do not walk upward. Pass `--cwd` with the directory containing the config you intend
|
|
107
|
+
to inspect or create. A nested `init` can create a new config that shadows an ancestor;
|
|
108
|
+
check the ancestor first.
|
|
109
|
+
|
|
101
110
|
`init` shows the exact file it would write and waits. In a non-interactive run — a pipe, a
|
|
102
111
|
CI job, an agent — there is nobody to ask, so it refuses unless you pass `--yes`. It never
|
|
103
112
|
overwrites an existing config: a committed identity is shared by everyone on the project,
|
|
104
113
|
and replacing it on a mistyped command would split one workspace into two.
|
|
105
114
|
|
|
106
|
-
`validate` only reads.
|
|
107
|
-
|
|
108
|
-
|
|
115
|
+
`validate` only reads. If that selected directory has no config, it reports
|
|
116
|
+
`no acc.workspace.json in selected directory; ancestors not checked`.
|
|
117
|
+
The JSON result returns default config metadata for that missing local file. Ordinary
|
|
118
|
+
commands may still discover an ancestor config; this is not an effective-policy report.
|
|
119
|
+
Run validation with `--cwd` set to that ancestor directory to check its file.
|
|
109
120
|
|
|
110
|
-
##
|
|
121
|
+
## Keep delivery consent user-owned
|
|
111
122
|
|
|
112
123
|
Live delivery may start a model turn and spend that recipient's tokens, so it is configured
|
|
113
124
|
through the recipient's user-owned client installation:
|
|
@@ -118,12 +129,22 @@ acc install --adapter codex --delivery off
|
|
|
118
129
|
|
|
119
130
|
The allowed values are `off`, `actionable`, and `all`; the default is `off`. This setting
|
|
120
131
|
does not belong in `acc.workspace.json`, where a pull request could opt someone else into
|
|
121
|
-
spending a turn. It also cannot create a capability
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
132
|
+
spending a turn. It also cannot create a capability. Exact-version evidence governs
|
|
133
|
+
ordinary hook features; Claude Code live delivery separately requires macOS arm64, version
|
|
134
|
+
2.1.258 or newer, and a current feature probe before installation applies the requested
|
|
135
|
+
policy. If those install-time checks fail, effective policy remains `off` and the installer
|
|
136
|
+
reports next-turn or inbox fallback. Each later session must also pass its own
|
|
137
|
+
generation-bound handshake. A failed session handshake clears or refuses that binding and
|
|
138
|
+
reports degraded reachability; it does not rewrite the installed consent.
|
|
139
|
+
|
|
140
|
+
Codex LocalDaemon delivery separately requires macOS arm64, Codex 0.152.1 or newer, a
|
|
141
|
+
current feature probe, and exact thread, canonical cwd, process, version and protocol
|
|
142
|
+
checks. Its daemon must already be running; ACC never starts or stops it. Codex reads
|
|
143
|
+
consent from the installation record, not a shell-shim variable. Unavailable or ineligible
|
|
144
|
+
sessions retain durable inbox fallback. Use `acc install --adapter codex --delivery off`
|
|
145
|
+
to stop new native offers; bypassing a shim does not disable that recorded opt-in.
|
|
146
|
+
|
|
147
|
+
## Override local paths and identity
|
|
127
148
|
|
|
128
149
|
Nothing in `acc.workspace.json` says where state is stored, and nothing there can — that is
|
|
129
150
|
the job of these variables, or the platform's own locations, and ACC refuses any of them
|
|
@@ -131,17 +152,17 @@ that resolves inside a workspace.
|
|
|
131
152
|
|
|
132
153
|
| Variable | Purpose |
|
|
133
154
|
|---|---|
|
|
134
|
-
| `ACC_DATA_HOME` |
|
|
135
|
-
| `ACC_CONFIG_HOME` |
|
|
136
|
-
| `ACC_CACHE_HOME` |
|
|
155
|
+
| `ACC_DATA_HOME` | Base directory under which ACC creates `acc/` for runtime and coordination state. Defaults: `~/Library/Application Support` on macOS; `~/.local/share` on Linux, or `XDG_DATA_HOME` |
|
|
156
|
+
| `ACC_CONFIG_HOME` | Parsed and validated path override; no current configuration-storage consumer |
|
|
157
|
+
| `ACC_CACHE_HOME` | Parsed and validated path override; no current cache-storage consumer |
|
|
137
158
|
| `ACC_PARTICIPANT` | Which participant a session belongs to, when the client does not say |
|
|
138
159
|
| `ACC_WORKSPACE_ROOT` | The project to work in, instead of discovering one from the working directory. Absolute, or it is refused |
|
|
139
|
-
| `ACC_SESSION` · `ACC_GENERATION` |
|
|
160
|
+
| `ACC_SESSION` · `ACC_GENERATION` | Explicit CLI owner credentials, supplied together by the operator for this session. Hooks do not set them. A public session ID alone never resolves a generation; see [CLI ownership](CLI.md#coordinate-from-a-session) |
|
|
140
161
|
| `ACC_MCP_PARTICIPANT` | Who `acc-mcp` takes part as. `mcp` by default |
|
|
141
162
|
| `ACC_MCP_WORKSPACE` | The project `acc-mcp` joins. Without it the server takes the directory the client launched it in, which is rarely the project |
|
|
142
|
-
| `ACC_NO_UPDATE_CHECK=1` |
|
|
163
|
+
| `ACC_NO_UPDATE_CHECK=1` | Disables update networking and background scheduling; manual recovery of an already downloaded update remains available |
|
|
143
164
|
| `ACC_PROBE_TIMEOUT_MS` | How long to wait for a client to print its version. Three seconds by default: generous on an idle machine, and not always enough on a busy one, where a client that overruns it is reported as not installed |
|
|
144
|
-
| `ACC_NATIVE_DELIVERY_POLICY` |
|
|
145
|
-
| `ACC_BYPASS=1` |
|
|
165
|
+
| `ACC_NATIVE_DELIVERY_POLICY` | Owned shell-bootstrap consent, currently used by Claude Code. The shim sets `off`, `actionable`, or `all`; missing/invalid values mean off for that route. Codex instead reads recorded installation consent, even when this variable is absent |
|
|
166
|
+
| `ACC_BYPASS=1` | Bypasses owned shell activation, currently Claude Code: no bootstrap check/native flags, and shim policy is unset. It does not disable Codex recorded opt-in; use `acc install --adapter codex --delivery off` for new Codex offers |
|
|
146
167
|
| `ACC_BOOTSTRAP_DEBUG=1` | Lets the internal `acc-bootstrap` check write one safe diagnostic line to stderr. Off, it is silent, and it never writes to stdout |
|
|
147
168
|
| `CODEX_HOME` | Codex's own home, honoured when locating the Codex App Server daemon's control socket for native delivery. Codex sets it; ACC only reads it |
|
package/docs/DESIGN_DECISIONS.md
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
# Design decisions
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Use this log to understand constraints that should survive refactors and proposals that
|
|
4
|
+
remain open. Runtime contracts live in [Protocol](PROTOCOL.md); this page records why the
|
|
5
|
+
boundaries exist.
|
|
4
6
|
|
|
5
|
-
##
|
|
7
|
+
## Preserve these decisions
|
|
6
8
|
|
|
7
9
|
| Decision | Reason |
|
|
8
10
|
|---|---|
|
|
@@ -16,26 +18,31 @@ Why ACC is shaped the way it is, and what is deliberately still open.
|
|
|
16
18
|
| Runtime state outside the repository | A checkout can be deleted, cloned, or synced; presence and locks must not travel with it. |
|
|
17
19
|
| Project config optional and runtime-free | A committed file is editable by anyone with a PR, so it may carry policy — never sessions or tokens. |
|
|
18
20
|
| Durable state is authoritative | Next-turn or live delivery may accelerate an interaction; neither becomes the source of truth. |
|
|
21
|
+
| Bounded discovery, explicit history recovery | Automatic context stays small; peers select exact messages or historical records when they need full bodies. |
|
|
22
|
+
| Immutable explicit decision links | Replacements and withdrawals preserve prior records and expose competing branches without choosing by timestamp. |
|
|
23
|
+
| Fence managed runtime activation | Refresh all integrations before switching the active generation; partial refresh stays fenced until forward recovery completes. |
|
|
19
24
|
| No heartbeat helper in v1 | An idle session is honestly reported `stale`. A sidecar process to fake liveness is worse than the truth. |
|
|
20
25
|
| Presence reads the process, never writes the record | A pid answers "gone" at once; an age floor covers what a pid cannot, including its own reuse. Nothing is written back — no session has authority to edit another's record. This checks a process already there, not one beating on a session's behalf like the heartbeat helper above. |
|
|
21
|
-
| No
|
|
26
|
+
| No AI client or session launching | ACC attaches to sessions you already own; its separate update worker manages ACC packages, not those sessions. |
|
|
22
27
|
| One publishable package | One version and one release rather than twelve coordinated ones. |
|
|
23
28
|
| MIT | Widest reuse, least friction. |
|
|
24
|
-
| Node 24
|
|
29
|
+
| Node 24 or newer required | Uses `node:test`, modern `fs` promises, and no transpiler. |
|
|
25
30
|
| MCP session from launch config | Never from `initialize` or `clientInfo` — those are attacker-controllable. See the threat scenarios in [SECURITY_MODEL.md](SECURITY_MODEL.md) (scenario 8). |
|
|
26
31
|
|
|
27
|
-
##
|
|
32
|
+
## Avoid these rejected designs
|
|
28
33
|
|
|
29
34
|
| Rejected | Why |
|
|
30
35
|
|---|---|
|
|
31
36
|
| A file in each repo that agents poll | No guard, no identity, no atomicity — and it ends up committed. |
|
|
32
37
|
| A permanent global lead session | Turns peers into workers and makes one crash fatal. |
|
|
33
|
-
| Treating MCP as
|
|
38
|
+
| Treating MCP as an external-client lifecycle guarantee | Tool calls resolve MCP's own participant, but cannot infer the client's lifecycle, intercept writes, or wake its receiver. |
|
|
34
39
|
| Requiring Git, tmux, PostgreSQL, or a service | Every requirement is a reason the tool is not installed. |
|
|
35
40
|
| Collecting or sharing raw transcripts | Raw transcripts are never collected or shared. Explicit peer messages are bounded records the sender chose to address. |
|
|
36
41
|
| Reporting queued messages as delivered | A delivery state that overstates itself is worse than no state. |
|
|
37
42
|
| Guessing file paths out of shell commands | It would block work at random and still miss real writes. See [CAPABILITIES.md](CAPABILITIES.md). |
|
|
38
43
|
|
|
44
|
+
### Reversals backed by failures
|
|
45
|
+
|
|
39
46
|
**Reversed in 0.1.11: removing the client's hook-trust record on uninstall.**
|
|
40
47
|
0.1.9 took Codex's `[hooks.state."<plugin>:…"]` tables out on uninstall,
|
|
41
48
|
reasoning they named a plugin that was gone. The check behind that reasoning
|
|
@@ -43,16 +50,18 @@ perturbed the record instead of removing it — a hook whose recorded hash no
|
|
|
43
50
|
longer matched was still observed running, so absence was never actually
|
|
44
51
|
tested.
|
|
45
52
|
|
|
46
|
-
Absence
|
|
47
|
-
|
|
48
|
-
write guard
|
|
49
|
-
both
|
|
53
|
+
Absence was sufficient to disable the hooks in that historical capture. With no
|
|
54
|
+
record, that client ran no hook, printed `hook: SessionStart Completed` while
|
|
55
|
+
executing nothing, and ACC's write guard went silently off — while `acc doctor`
|
|
56
|
+
and `codex plugin list` both reported it enabled. A shell write walked through a
|
|
50
57
|
guarded claim; writing the exact same hashes back (captured before deletion,
|
|
51
58
|
from an ACC three releases older) revived the guard immediately.
|
|
52
59
|
|
|
53
|
-
That is why removal is never ACC's to do:
|
|
54
|
-
|
|
55
|
-
|
|
60
|
+
That is why removal is never ACC's to do: it preserves the client's trust decision.
|
|
61
|
+
The historical observation above does not establish trust across arbitrary upgrades.
|
|
62
|
+
Codex 0.153.4 compares each current definition's hash and reports changed definitions
|
|
63
|
+
as modified; a trusted hook can also be disabled. ACC preserves the records but leaves
|
|
64
|
+
current readiness unverified, directing the user to `/hooks` in Codex.
|
|
56
65
|
|
|
57
66
|
**The generalisation, since this cost a release:** to learn whether state is
|
|
58
67
|
load-bearing, take it away. Changing it tests something else.
|
|
@@ -72,12 +81,12 @@ declared. Coverage is deliberately partial, and
|
|
|
72
81
|
[CAPABILITIES.md](CAPABILITIES.md) says where it ends: an agent that knows
|
|
73
82
|
where a guard stops behaves better than one that believes it absolute.
|
|
74
83
|
|
|
75
|
-
##
|
|
84
|
+
## Decide these later
|
|
76
85
|
|
|
77
86
|
1. **Storage backend.** The hardened filesystem store ships first. A transactional backend
|
|
78
87
|
can go behind the same interface later — but not merely to avoid a dependency.
|
|
79
88
|
2. **Remote coordination.** v2, or a separate product.
|
|
80
|
-
3. **
|
|
89
|
+
3. **AI client/session launching.** Possibly never; possibly an external integration.
|
|
81
90
|
4. **Multi-root discovery rules** beyond the current `roots` list.
|
|
82
91
|
5. **Default claim lease length** for hook-only adapters. A hook-only session cannot sustain
|
|
83
92
|
a short renewal cadence, so lease policy must not assume one.
|
package/docs/GETTING_STARTED.md
CHANGED
|
@@ -1,145 +1,151 @@
|
|
|
1
1
|
# Getting started
|
|
2
2
|
|
|
3
|
-
ACC
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
the message between windows.
|
|
7
|
-
|
|
8
|
-
```mermaid
|
|
9
|
-
sequenceDiagram
|
|
10
|
-
participant A as First session
|
|
11
|
-
participant ACC
|
|
12
|
-
participant B as Second session
|
|
13
|
-
A->>ACC: durable question
|
|
14
|
-
ACC-->>B: next-turn offer or inbox fallback
|
|
15
|
-
B->>ACC: reply in the same thread
|
|
16
|
-
ACC-->>A: next-turn offer or inbox fallback
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## 1. Install once per machine
|
|
20
|
-
|
|
21
|
-
Install the package, then let ACC wire only the clients it detects:
|
|
22
|
-
|
|
23
|
-
<!-- test:command -->
|
|
24
|
-
```bash
|
|
25
|
-
acc install
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
Restart those clients because hooks load at startup. Codex also asks you to trust the
|
|
29
|
-
plugin. `acc doctor` names anything still missing and reports the effective delivery mode
|
|
30
|
-
for each detected version.
|
|
31
|
-
|
|
32
|
-
## 2. Open two sessions normally
|
|
33
|
-
|
|
34
|
-
Open Codex, Claude Code, Gemini CLI, Grok, or Kimi Code in the same project exactly as you
|
|
35
|
-
would without ACC. A generic MCP client can participate by running `acc-mcp`. ACC never
|
|
36
|
-
launches or owns either session.
|
|
37
|
-
|
|
38
|
-
In either window:
|
|
39
|
-
|
|
40
|
-
```bash
|
|
41
|
-
acc status
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
The roster gives the participant ids used by `--to`. If it shows only one session, fix the
|
|
45
|
-
second client's installation or workspace path before testing communication.
|
|
46
|
-
|
|
47
|
-
## 3. Publish intent, then claim narrowly
|
|
48
|
-
|
|
49
|
-
Intent is cheap awareness and grants no protection:
|
|
50
|
-
|
|
51
|
-
```bash
|
|
52
|
-
acc work --summary "updating receipt rendering" --mode edit \
|
|
53
|
-
--hint 'file:packages/cli/src/main.mjs'
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
Reserve only what the session is about to change:
|
|
57
|
-
|
|
58
|
-
```bash
|
|
59
|
-
acc claim --resource 'file:packages/cli/src/main.mjs' \
|
|
60
|
-
--reason "updating receipt rendering"
|
|
61
|
-
```
|
|
3
|
+
Install ACC, open the AI sessions you already use, and give them related work. Supported
|
|
4
|
+
integrations make peers visible and teach each agent how to communicate. You do not need to
|
|
5
|
+
carry messages between windows or add coordination instructions to your task prompts.
|
|
62
6
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
## 4. Send a real question
|
|
68
|
-
|
|
69
|
-
From the first session, address a participant listed by `acc status`:
|
|
70
|
-
|
|
71
|
-
```bash
|
|
72
|
-
acc message --to models --type question --subject "receipt wording" \
|
|
73
|
-
--body "Should the UI say offered or delivered after the transport accepts bytes?" \
|
|
74
|
-
--client-message-id client_receipt_wording_1
|
|
75
|
-
```
|
|
7
|
+
Active hooks supply each agent's own CLI arguments in coordination context; the installed
|
|
8
|
+
skill tells the agent to use them. This path was observed in Claude Code 2.1.263 and
|
|
9
|
+
Codex 0.153.4. Hooks must be enabled and trusted by the client. Without hook context, owner
|
|
10
|
+
operations require an explicit pair or session-bound ACC MCP tools. See [CLI ownership](CLI.md#coordinate-from-a-session).
|
|
76
11
|
|
|
77
|
-
|
|
78
|
-
delivery diagnostic is acceleration, not the source of truth. Reuse the explicit
|
|
79
|
-
`client_receipt_wording_1` key when retrying after an uncertain result; it returns the same
|
|
80
|
-
logical message instead of creating a duplicate.
|
|
12
|
+
## 1. Install once on this machine
|
|
81
13
|
|
|
82
|
-
|
|
14
|
+
ACC requires macOS or Linux and Node.js 24 or newer.
|
|
83
15
|
|
|
84
|
-
|
|
85
|
-
unknown versions, and any missed projection use the same durable recovery path:
|
|
16
|
+
Already using 0.3.1? Follow the [upgrade guide](UPGRADING.md) before mixing versions.
|
|
86
17
|
|
|
87
18
|
```bash
|
|
88
|
-
|
|
89
|
-
acc inbox --message message_x
|
|
90
|
-
acc reply --message message_x \
|
|
91
|
-
--body "Use offered. It proves transport acceptance, not that the model read it."
|
|
19
|
+
npm install -g agents-can-communicate
|
|
92
20
|
```
|
|
93
21
|
|
|
94
|
-
|
|
95
|
-
receipt for the question atomically. It does not mark the requested work complete. The
|
|
96
|
-
first session receives the answer through its own next-turn or inbox path; you do not copy
|
|
97
|
-
the peer body between sessions.
|
|
98
|
-
|
|
99
|
-
Use `acc ack --message message_x` only when the message asks for acknowledgement and no
|
|
100
|
-
written reply is needed.
|
|
101
|
-
|
|
102
|
-
## 6. Hand off while context still exists
|
|
103
|
-
|
|
22
|
+
<!-- test:command -->
|
|
104
23
|
```bash
|
|
105
|
-
acc
|
|
106
|
-
--completed "CLI wording changed" --remaining "MCP docs" \
|
|
107
|
-
--blocker "waiting for fixture"
|
|
24
|
+
acc install
|
|
108
25
|
```
|
|
109
26
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
27
|
+
Installation also enables automatic updates. ACC downloads releases in the background and
|
|
28
|
+
refreshes its runtime and skills when active clients have left. Use `acc update` for an
|
|
29
|
+
immediate update, or `acc update --auto off` to disable background updates. See
|
|
30
|
+
[update controls](UPGRADING.md#automatic-updates-after-installation).
|
|
31
|
+
|
|
32
|
+
The installer connects only the supported clients it finds. Open a new terminal and
|
|
33
|
+
restart any running clients so they load their integrations. Follow the activation steps
|
|
34
|
+
printed by the installer. In Codex, use `/plugins` to check ACC is enabled, then `/hooks`
|
|
35
|
+
to review each ACC hook and enable/trust its current definition if needed. Restart the
|
|
36
|
+
session after that review; changed hook definitions may require trust again.
|
|
37
|
+
|
|
38
|
+
If the installer preserved your existing Codex sandbox settings, verify the named ACC
|
|
39
|
+
state directory is in `sandbox_workspace_write.writable_roots` in the config it identifies.
|
|
40
|
+
ACC keeps those user settings unchanged. Installed files alone do not establish that hooks
|
|
41
|
+
are active; `acc doctor` leaves current readiness unverified and directs you to Codex.
|
|
42
|
+
|
|
43
|
+
If you opt into Claude Code's experimental idle delivery, Claude also shows its own
|
|
44
|
+
development-channel warning at every startup. The feature is off by default, can spend
|
|
45
|
+
model tokens, and currently requires Apple Silicon macOS, zsh, and Claude Code 2.1.258 or
|
|
46
|
+
newer. You do not need it for durable messages or supported next-turn delivery.
|
|
47
|
+
|
|
48
|
+
## 2. Open two sessions and give them ordinary tasks
|
|
49
|
+
|
|
50
|
+
Start each client normally in the same project. ACC does not launch, supervise, or assign
|
|
51
|
+
work to either session. For example:
|
|
52
|
+
|
|
53
|
+
| Session | Your prompt |
|
|
54
|
+
|---|---|
|
|
55
|
+
| Codex | Add an account-registration endpoint. |
|
|
56
|
+
| Claude Code | Build the account-registration screen. |
|
|
57
|
+
|
|
58
|
+
Those are complete prompts. The integration tells each agent that peers are present and
|
|
59
|
+
provides the coordination instructions. If an agent notices that the screen depends on the
|
|
60
|
+
endpoint contract, it can identify the peer, ask for the request and response shape, and
|
|
61
|
+
continue with the answer.
|
|
62
|
+
|
|
63
|
+
The sessions may use different supported clients or two instances of the same client.
|
|
64
|
+
Same-client addresses can be ambiguous when several instances are live; agents use the
|
|
65
|
+
exact participant ids in the roster when needed. See [Concepts](CONCEPTS.md) for participant
|
|
66
|
+
and session identity.
|
|
67
|
+
|
|
68
|
+
A second repeatable pattern is review and handoff. Ask the implementing agent to request
|
|
69
|
+
review of an identified revision (a commit when Git is available, or named files and
|
|
70
|
+
version otherwise) and wait for the verdict. Ask the reviewer to return blocking defects
|
|
71
|
+
or approval. If either session must stop, it can leave a durable handoff naming completed
|
|
72
|
+
work, remaining work, and blockers. A later session can recover it from history. The
|
|
73
|
+
underlying commands are [`acc request`](CLI.md#messages-and-requests), exact
|
|
74
|
+
[`acc inbox --message`](CLI.md#inbox-reply-and-acknowledgement),
|
|
75
|
+
[`acc reply`](CLI.md#inbox-reply-and-acknowledgement), and
|
|
76
|
+
[`acc finish`](CLI.md#handoff).
|
|
77
|
+
|
|
78
|
+
## 3. Watch for useful coordination
|
|
79
|
+
|
|
80
|
+
Look for an agent discovering a peer, publishing the files it expects to change, noticing a
|
|
81
|
+
shared dependency, asking a focused question, or answering one in the same thread. These
|
|
82
|
+
events appear in the agent's normal activity; the exact presentation depends on the client.
|
|
83
|
+
|
|
84
|
+
ACC provides awareness and communication tools. It cannot guarantee that a model will
|
|
85
|
+
notice every dependency or coordinate on every task. Each agent decides whether a peer is
|
|
86
|
+
relevant under its own instructions, context, and permissions.
|
|
87
|
+
|
|
88
|
+
The commands behind that activity belong to the agents' installed skill. They can publish
|
|
89
|
+
intent, make an advisory or guarded claim, send and reply to messages, acknowledge a thread,
|
|
90
|
+
and leave a handoff. If you want to inspect that interface, use the [CLI reference](CLI.md)
|
|
91
|
+
or follow the interaction through [How ACC works](HOW_IT_WORKS.md).
|
|
92
|
+
|
|
93
|
+
## 4. Know when messages arrive
|
|
94
|
+
|
|
95
|
+
Every message is recorded before ACC attempts faster delivery. Every participant has a
|
|
96
|
+
durable inbox, which is the universal recovery path.
|
|
97
|
+
|
|
98
|
+
On exact client versions and platforms with captured support, Codex, Claude Code, Gemini
|
|
99
|
+
CLI, and Kimi Code can receive a message at the next normal turn. That does not wake an idle
|
|
100
|
+
session. Grok, generic MCP clients, unknown versions, and unsupported platforms use the
|
|
101
|
+
durable inbox instead.
|
|
102
|
+
|
|
103
|
+
Codex LocalDaemon and Claude Code Channel offer optional native delivery on
|
|
104
|
+
Apple Silicon macOS. They are experimental, can spend tokens, and queue messages
|
|
105
|
+
until a running turn finishes. Codex requires 0.152.1 or newer, an already-running
|
|
106
|
+
LocalDaemon, recorded opt-in and a verified session; start it with your normal
|
|
107
|
+
command. A loaded daemon thread can receive messages after its terminal exits.
|
|
108
|
+
[Capabilities](CAPABILITIES.md) explains policy, versions and fallback.
|
|
109
|
+
|
|
110
|
+
Delivery evidence is deliberately narrow: `queued -> offered -> retrieved -> acknowledged`.
|
|
111
|
+
An offer is not proof that the model read anything, retrieval is not proof of attention, and
|
|
112
|
+
a reply settles the communication obligation rather than proving that work is complete.
|
|
113
|
+
|
|
114
|
+
## 5. Keep the workspace boundary clear
|
|
115
|
+
|
|
116
|
+
ACC is local to the same machine and operating-system user. Git worktrees of one repository
|
|
117
|
+
share an ACC workspace while keeping their separate checkout facts. Git is optional, but
|
|
118
|
+
two unrelated plain folders do not share a workspace merely because people consider them
|
|
119
|
+
the same project.
|
|
120
|
+
|
|
121
|
+
Messages and runtime state live in platform app data outside the repository. ACC never
|
|
122
|
+
collects or shares raw transcripts. An optional `acc.workspace.json` can provide a stable
|
|
123
|
+
workspace id, multiple roots, or project policy; it is user-requested configuration, not
|
|
124
|
+
runtime state. See [Configuration](CONFIGURATION.md) and the
|
|
125
|
+
[non-Git example](https://github.com/automatis-tools/agents-can-communicate/blob/main/examples/non-git-research.md).
|
|
126
|
+
|
|
127
|
+
## Diagnose or remove it
|
|
128
|
+
|
|
129
|
+
If a peer does not appear or delivery differs from what you expected, run this from the
|
|
130
|
+
project directory:
|
|
126
131
|
|
|
127
132
|
<!-- test:command -->
|
|
128
133
|
```bash
|
|
129
|
-
acc
|
|
134
|
+
acc doctor
|
|
130
135
|
```
|
|
131
136
|
|
|
132
|
-
|
|
133
|
-
|
|
137
|
+
The report names detected clients, installed integrations, exact capability downgrades,
|
|
138
|
+
and the next action. Continue with [Troubleshooting](TROUBLESHOOTING.md).
|
|
134
139
|
|
|
135
|
-
|
|
140
|
+
To remove ACC's integrations:
|
|
136
141
|
|
|
142
|
+
<!-- test:command -->
|
|
137
143
|
```bash
|
|
138
144
|
acc uninstall
|
|
139
145
|
```
|
|
140
146
|
|
|
141
|
-
|
|
142
|
-
|
|
147
|
+
Uninstall removes only bytes ACC wrote that still match its install record. User edits are
|
|
148
|
+
reported and preserved.
|
|
143
149
|
|
|
144
150
|
Next: [Why ACC](WHY_ACC.md) · [Capabilities](CAPABILITIES.md) · [CLI](CLI.md) ·
|
|
145
151
|
[Troubleshooting](TROUBLESHOOTING.md)
|
package/docs/GLOSSARY.md
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# Glossary
|
|
2
2
|
|
|
3
|
-
- **Workspace** — one
|
|
4
|
-
- **Participant** — the
|
|
5
|
-
- **Session** — one independently opened client conversation participating in a workspace.
|
|
3
|
+
- **Workspace** — one same-machine, same-OS-user coordination room; all worktrees of a Git repository share it.
|
|
4
|
+
- **Participant** — the address that sends and receives messages; it survives unrelated conversations only when explicitly configured.
|
|
5
|
+
- **Session** — one independently opened client conversation participating in a workspace; its id supplies the default participant address.
|
|
6
6
|
- **Generation** — the token proving a mutation belongs to the current opening of a session.
|
|
7
7
|
- **Presence** — `online`, `stale`, or `offline`, based only on observed heartbeat and pid facts.
|
|
8
8
|
- **Intent** — a session's current summary and resource hints; awareness, not permission.
|
|
9
9
|
- **Claim** — a leased reservation for a canonical resource such as `file:src/**`.
|
|
10
|
-
- **Advisory / guarded** —
|
|
10
|
+
- **Advisory / guarded** — CLI claims default to advisory. Explicit guarded enforcement also requires certified guards from every live participant; neither mode stops unrelated local processes.
|
|
11
11
|
- **Message** — an attributed untrusted `note`, `question`, `request`, `answer`, `decision`, or `handoff`.
|
|
12
12
|
- **Thread** — a root message plus linked answers sharing one immutable `threadId`.
|
|
13
13
|
- **Obligation** — `none`, `reply`, or `acknowledge`; what communication the recipient owes.
|
|
@@ -16,11 +16,17 @@
|
|
|
16
16
|
- **Retrieved** — the participant received the body; not proof of model attention.
|
|
17
17
|
- **Acknowledged** — that participant explicitly acknowledged or replied; a reply is not proof requested work finished.
|
|
18
18
|
- **Next-turn delivery** — certified projection at the client's next normal turn; it never interrupts an active turn.
|
|
19
|
-
- **Live push** — optional delivery to an already-running session
|
|
19
|
+
- **Live push** — optional delivery through Claude Code Channel or Codex LocalDaemon to an already-running session, behind recipient opt-in. Both wait for an active turn to finish; [Capabilities](CAPABILITIES.md) gives the measured eligibility and limits.
|
|
20
20
|
- **Recipient policy** — `off`, `actionable`, or `all`; opt-in permission to spend a turn, not a capability.
|
|
21
21
|
- **Delivery binding** — ephemeral, generation-bound reachability data owned by an adapter.
|
|
22
22
|
- **Fallback** — durable inbox or exact-certified next-turn recovery when live delivery is unavailable.
|
|
23
23
|
- **Managed / manual lifecycle** — whether hooks report ACC presence automatically; never ownership of the external client process.
|
|
24
|
-
- **MCP participation** —
|
|
24
|
+
- **MCP participation** — manual incoming polling without native lifecycle, context, guards, or receive wake; outgoing messages can use an eligible recipient's opted-in native route.
|
|
25
|
+
- **Bounded discovery** — inbox/history summary pages with limits and cursors; bodies require selection.
|
|
26
|
+
- **Exact recovery** — read one addressed inbox body, or one history record; history reads do not advance receipts.
|
|
27
|
+
- **Decision change** — an immutable decision explicitly supersedes or withdraws prior decisions; old records remain.
|
|
28
|
+
- **Current decision** — a terminal recorded position or withdrawal, not proven truth; competing branches stay visible.
|
|
29
|
+
- **Managed runtime** — ACC's staged installation generations and automatic-update controls, distinct from managed/manual session presence.
|
|
30
|
+
- **Activation hold** — an ACC process lease or native binding that postpones runtime refresh; observed lifecycle cleanup can release a native hold without stopping a vendor daemon.
|
|
25
31
|
|
|
26
32
|
See [Concepts](CONCEPTS.md) for relationships and [Protocol](PROTOCOL.md) for exact rules.
|