agentcache 0.4.2 → 0.5.0-beta.2
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 +282 -151
- package/dist/{chunk-T4COG3XD.js → chunk-R5I6WWSD.js} +31 -14
- package/dist/chunk-RXGW4Q3G.js +109 -0
- package/dist/chunk-XRJ6QW6N.js +92 -0
- package/dist/chunk-YKG6CDGT.js +1818 -0
- package/dist/chunk-YY7QXBG5.js +6610 -0
- package/dist/cli.js +2535 -292
- package/dist/device-id-RV7RO5RB.js +7 -0
- package/dist/ide-detector-ETGAVVXO.js +8 -0
- package/dist/mcp.d.ts +734 -2
- package/dist/mcp.js +1126 -446
- package/dist/{paths-5LZRKNYY.js → paths-NTZ2357O.js} +3 -2
- package/dist/postinstall.js +1 -65
- package/dist/setup-7JJPW3VG.js +48 -0
- package/docs/compatibility.md +152 -0
- package/docs/demo-script.md +121 -0
- package/docs/launch-copy.md +125 -0
- package/docs/privacy.md +173 -0
- package/docs/troubleshooting.md +209 -0
- package/package.json +32 -14
- package/dist/3-canonicalizer-HIN2F7SZ.js +0 -11
- package/dist/chunk-5UO7NJPQ.js +0 -71
- package/dist/chunk-CUBZRYS5.js +0 -580
- package/dist/chunk-GGAATZKM.js +0 -120
- package/dist/chunk-JUDLOBOC.js +0 -77
- package/dist/chunk-KFQGP6VL.js +0 -33
- package/dist/chunk-PSASDZQE.js +0 -490
- package/dist/chunk-SLRKWMSE.js +0 -202
- package/dist/chunk-T7BJPANN.js +0 -45
- package/dist/chunk-WTXSZBQE.js +0 -388
- package/dist/compile-all-PTWTZVP5.js +0 -495
- package/dist/ide-detector-5TRCR4F5.js +0 -7
- package/dist/pre-tool-use-A4AJHZOJ.js +0 -30
- package/dist/session-start-DGMGEAJU.js +0 -78
- package/dist/setup-CVG35TUZ.js +0 -51
- package/dist/sqlite-NM2BVHUY.js +0 -7
- package/dist/stop-WGGRX6TQ.js +0 -38
- package/dist/transcript-JWSGSDSF.js +0 -24
package/docs/privacy.md
ADDED
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
# Privacy and trust boundary
|
|
2
|
+
|
|
3
|
+
AgentCache `0.5.0-beta.2` is local-first and same-machine only. Its v2 database
|
|
4
|
+
and coordination state live on your machine. That statement is about where
|
|
5
|
+
AgentCache stores data; it is not a promise that an AI coding client or its
|
|
6
|
+
model provider operates offline.
|
|
7
|
+
|
|
8
|
+
## The provider boundary
|
|
9
|
+
|
|
10
|
+
When a handoff is consumed, the destination provider may receive the capsule as
|
|
11
|
+
part of the destination agent's model context. In the prescribed prompt-based
|
|
12
|
+
workflow, the handoff ID and one-use token may also be sent to the destination
|
|
13
|
+
provider before the tool call. The token is a temporary bearer secret: together
|
|
14
|
+
with its handoff ID, it authorizes one correctly bound resume until use or
|
|
15
|
+
expiry. The provider's network, retention, training, logging, residency, and
|
|
16
|
+
account policies apply to those values and the capsule. Installing AgentCache
|
|
17
|
+
can also contact the npm registry in the normal way.
|
|
18
|
+
|
|
19
|
+
AgentCache's own default session-continuity path does not initiate an
|
|
20
|
+
application-level cloud sync, telemetry upload, or background LLM compilation.
|
|
21
|
+
That narrower statement must not be shortened to “nothing leaves the machine.”
|
|
22
|
+
|
|
23
|
+
Before continuing a sensitive session in a different hosted client, verify
|
|
24
|
+
that the destination provider is allowed to receive the material in the
|
|
25
|
+
capsule.
|
|
26
|
+
|
|
27
|
+
## What is stored locally
|
|
28
|
+
|
|
29
|
+
The v2 session store is:
|
|
30
|
+
|
|
31
|
+
```text
|
|
32
|
+
~/.agentcache/agentcache-v2.db
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
It contains portable workspaces and locations, session metadata, client legs,
|
|
36
|
+
normalized events, checkpoints, forks, source cursors, one-use handoffs, and
|
|
37
|
+
writer leases. A newly prepared handoff stores the exact bounded resume capsule
|
|
38
|
+
shown during confirmation plus an integrity digest; migrated pre-capsule beta
|
|
39
|
+
handoffs remain listable but fail closed on consumption. The data directory is
|
|
40
|
+
set to mode `0700` and the database to
|
|
41
|
+
mode `0600` on platforms that implement POSIX permissions. Session-store
|
|
42
|
+
startup refuses symbolic, special, or multiply linked database files and
|
|
43
|
+
SQLite `-wal`, `-shm`, and rollback-journal sidecars. It validates file and
|
|
44
|
+
directory identity around initialization instead of following a pre-created
|
|
45
|
+
redirecting path.
|
|
46
|
+
|
|
47
|
+
The v2 store uses a persistent `TRUNCATE` rollback journal so overlapping CLI
|
|
48
|
+
and MCP processes retain one canonical journal pathname and inode. WAL/SHM
|
|
49
|
+
paths are still rejected when pre-created unsafely because older databases or
|
|
50
|
+
interrupted upgrades can leave those sidecars behind.
|
|
51
|
+
|
|
52
|
+
Workspace access is authorized only by an existing mapping for the same device
|
|
53
|
+
and exact canonical root. Repository-controlled `.agentcache/workspace.json`
|
|
54
|
+
content and matching Git remotes are not authority to join another root's
|
|
55
|
+
workspace; they cannot expose that workspace's session list, inspection,
|
|
56
|
+
history, or handoffs.
|
|
57
|
+
|
|
58
|
+
The legacy `~/.agentcache/agentcache.db` is left beside v2 and is not translated
|
|
59
|
+
or mutated by the v2 session repository. Full database encryption is not
|
|
60
|
+
implemented in this beta; the local boundary is OS-user isolation plus
|
|
61
|
+
restrictive permissions. Device malware or another process running as the same
|
|
62
|
+
OS user is outside that boundary.
|
|
63
|
+
|
|
64
|
+
## Native transcripts are read-only
|
|
65
|
+
|
|
66
|
+
Native transcripts remain owned by Claude Code, Cursor, Roo Code, Continue,
|
|
67
|
+
Codex, Windsurf, or Goose. AgentCache adapters have no transcript-write method.
|
|
68
|
+
Supported historical readers:
|
|
69
|
+
|
|
70
|
+
- accept only canonical files below adapter-owned roots;
|
|
71
|
+
- reject symbolic links and non-regular files;
|
|
72
|
+
- open sources read-only with no-follow semantics when the platform supports
|
|
73
|
+
them;
|
|
74
|
+
- verify file identity before and after a read;
|
|
75
|
+
- enforce byte, event, and time budgets; and
|
|
76
|
+
- retain a durable cursor so a failed import can be retried without rewriting
|
|
77
|
+
the source.
|
|
78
|
+
|
|
79
|
+
Windsurf and Goose historical recovery are unsupported in this beta. Cursor
|
|
80
|
+
and Roo Code sources currently lack verified workspace identity, so AgentCache
|
|
81
|
+
does not infer ownership from a similar title, time, or path alone.
|
|
82
|
+
|
|
83
|
+
## What crosses an AgentCache handoff
|
|
84
|
+
|
|
85
|
+
A checkpoint may include:
|
|
86
|
+
|
|
87
|
+
- the objective and next step;
|
|
88
|
+
- explicit constraints, decisions, blockers, rejected approaches, completed
|
|
89
|
+
work, and open work;
|
|
90
|
+
- portable Git branch/commit metadata and repository-relative paths; and
|
|
91
|
+
- a bounded set of recent user, assistant, and compact tool-outcome events.
|
|
92
|
+
|
|
93
|
+
The default capsule budget is 24,000 encoded characters, with at most 12 recent
|
|
94
|
+
events and 2,000 characters per recent event. Tool results are excluded by
|
|
95
|
+
default. If content does not fit, the capsule is marked partial and includes an
|
|
96
|
+
opaque cursor for bounded history retrieval.
|
|
97
|
+
|
|
98
|
+
Before an interactive token is disclosed, the CLI displays the same bounded
|
|
99
|
+
public capsule projection returned by the destination MCP tool. The user may
|
|
100
|
+
exclude up to 50 displayed events and inspect the replacement capsule again.
|
|
101
|
+
This marks that capsule partial and affects only its initial payload. It is not
|
|
102
|
+
deletion or access control: the durable timeline is unchanged, and the same
|
|
103
|
+
workspace can still retrieve excluded events through `session_history`.
|
|
104
|
+
Cancelling or a handled prompt failure before confirmation removes the pending
|
|
105
|
+
handoff. If the process is killed before cleanup runs, the unconsumed handoff
|
|
106
|
+
expires after ten minutes.
|
|
107
|
+
|
|
108
|
+
Capsules omit hidden reasoning, system prompts, tool-approval state, token
|
|
109
|
+
hashes, native source locators, unrestricted file bodies, and unrestricted tool
|
|
110
|
+
output by default.
|
|
111
|
+
|
|
112
|
+
Every returned capsule is labelled:
|
|
113
|
+
|
|
114
|
+
```text
|
|
115
|
+
untrusted_prior_session_context
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
That content is data from a prior session. It cannot grant permissions, change
|
|
119
|
+
tool policy, or authenticate a caller. A destination agent should restate the
|
|
120
|
+
goal and proposed next step, then obtain normal approval for destructive or
|
|
121
|
+
expensive work.
|
|
122
|
+
|
|
123
|
+
## Redaction and limits
|
|
124
|
+
|
|
125
|
+
Portable text is redacted for known credential-shaped fields and tokens,
|
|
126
|
+
private-key blocks, credential-bearing URLs, environment assignments, common
|
|
127
|
+
provider token formats, and absolute local paths. Payloads reject reserved
|
|
128
|
+
identity, location, authority, and credential fields. Public CLI and MCP output
|
|
129
|
+
is bounded. Terminal-facing CLI output neutralizes terminal control characters.
|
|
130
|
+
|
|
131
|
+
Redaction is defense in depth, not a perfect secret detector. Novel credential
|
|
132
|
+
formats, secrets embedded in ordinary prose, source code, screenshots, and
|
|
133
|
+
other provider-visible context may still be disclosed. Review the selected
|
|
134
|
+
session and use the destination provider's own data controls.
|
|
135
|
+
|
|
136
|
+
## Handoff and writer credentials
|
|
137
|
+
|
|
138
|
+
- A handoff token is random, stored only as a hash bound to the capsule digest,
|
|
139
|
+
expires after ten minutes, and can be consumed once. Interactive mode reveals
|
|
140
|
+
it only after confirmation; the explicit noninteractive `--json` mode returns
|
|
141
|
+
the token and public capsule immediately.
|
|
142
|
+
- It is bound to an exact workspace and destination adapter.
|
|
143
|
+
- Writer lease credentials remain inside the destination MCP process rather
|
|
144
|
+
than being returned to the model. Leases expire after ten minutes and slide
|
|
145
|
+
forward during authorized append/checkpoint operations.
|
|
146
|
+
- A continuing destination cannot take over a live writer without explicit
|
|
147
|
+
human confirmation tied to the exact lease generation. Forking avoids that
|
|
148
|
+
takeover.
|
|
149
|
+
|
|
150
|
+
Treat the printed handoff token as a temporary bearer secret. Do not put it in
|
|
151
|
+
an issue, commit, shell history, or screen recording intended for publication.
|
|
152
|
+
|
|
153
|
+
## Configuration changes
|
|
154
|
+
|
|
155
|
+
`agentcache setup` is explicit. It updates only recognized AgentCache MCP
|
|
156
|
+
entries, preserves unrelated settings, and writes a user-only
|
|
157
|
+
`.agentcache-backup-...` sibling before changing an existing file. Malformed or
|
|
158
|
+
ambiguous configurations are preserved. The beta does not add broad automatic
|
|
159
|
+
tool approvals and removes recognized legacy AgentCache hooks and allow-list
|
|
160
|
+
entries during setup.
|
|
161
|
+
|
|
162
|
+
## Out of scope
|
|
163
|
+
|
|
164
|
+
- Cloud storage and cross-device sync
|
|
165
|
+
- Accounts, organization sharing, or team access controls
|
|
166
|
+
- Full database encryption
|
|
167
|
+
- Provider policy enforcement
|
|
168
|
+
- Transfer of hidden model state or native conversation identifiers
|
|
169
|
+
- Automatic Git operations
|
|
170
|
+
- A guarantee that all secrets can be detected
|
|
171
|
+
|
|
172
|
+
See [Troubleshooting](troubleshooting.md) for removal, retained data, config
|
|
173
|
+
backups, and rollback.
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
# Troubleshooting, uninstall, and rollback
|
|
2
|
+
|
|
3
|
+
Run commands from the repository whose sessions you want to inspect. AgentCache
|
|
4
|
+
binds session operations to the current workspace.
|
|
5
|
+
|
|
6
|
+
## First checks
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
node --version
|
|
10
|
+
agentcache --version
|
|
11
|
+
agentcache doctor
|
|
12
|
+
agentcache adapter list --json
|
|
13
|
+
agentcache adapter doctor <adapter-id> --json
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
AgentCache `0.5.0-beta.2` requires Node.js 22 or newer. Setup pins the exact
|
|
17
|
+
active Node executable and installed AgentCache CLI into each client config.
|
|
18
|
+
After changing Node versions or version managers, changing the global npm
|
|
19
|
+
prefix, reinstalling/upgrading AgentCache, or upgrading a client, rerun
|
|
20
|
+
`agentcache setup` and restart the client so it reloads that configuration.
|
|
21
|
+
|
|
22
|
+
The global `agentcache doctor` verifies exact adapter-bound MCP registration
|
|
23
|
+
commands and, after initialization, the v2 data store. On a fresh setup before
|
|
24
|
+
the first session operation, no v2 database exists yet; the informational
|
|
25
|
+
message `will initialize on first session operation` is expected and is not a
|
|
26
|
+
failure. `agentcache adapter doctor <adapter-id>` probes that client's current
|
|
27
|
+
capability evidence. Neither command turns an experimental capability into a
|
|
28
|
+
stable one.
|
|
29
|
+
|
|
30
|
+
## No sessions appear
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
agentcache session list --json
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
The output reports which adapters were searched and returns bounded discovery
|
|
37
|
+
diagnostics. Common causes are:
|
|
38
|
+
|
|
39
|
+
- no portable session has been opened in this workspace;
|
|
40
|
+
- the native transcript has no verified workspace field;
|
|
41
|
+
- the source is outside the adapter-owned transcript root;
|
|
42
|
+
- the file is a symlink, malformed, changing during the read, or over budget;
|
|
43
|
+
- Windsurf or Goose was expected to supply history, which is unsupported; or
|
|
44
|
+
- the client changed its local transcript format.
|
|
45
|
+
|
|
46
|
+
Cursor currently supplies only a path hint and Roo Code no verified workspace
|
|
47
|
+
field; AgentCache will not guess that either belongs to the current repository.
|
|
48
|
+
Claude Code, Continue, and Codex native records can prove a workspace when their
|
|
49
|
+
expected metadata is present.
|
|
50
|
+
|
|
51
|
+
## Detected but not registered
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
agentcache adapter register <adapter-id>
|
|
55
|
+
agentcache adapter doctor <adapter-id>
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
If registration says `skipped`, inspect the named client configuration. A
|
|
59
|
+
malformed file, unsupported shape, or ambiguous existing `agentcache` entry is
|
|
60
|
+
left unchanged. Resolve that ambiguity yourself, retain a copy, then rerun the
|
|
61
|
+
specific registration command. AgentCache does not overwrite an entry it cannot
|
|
62
|
+
prove it owns.
|
|
63
|
+
|
|
64
|
+
Goose uses a YAML configuration. A JSON-only diagnostic from an older
|
|
65
|
+
AgentCache build may misreport it; verify you are running `0.5.0-beta.2` before
|
|
66
|
+
reporting the result.
|
|
67
|
+
|
|
68
|
+
## Handoff errors
|
|
69
|
+
|
|
70
|
+
### `wrong_destination`
|
|
71
|
+
|
|
72
|
+
The token was prepared for another adapter. Return to the CLI and create a new
|
|
73
|
+
handoff with the intended `--to <adapter>` value. Do not reuse the old token.
|
|
74
|
+
|
|
75
|
+
### `workspace_mismatch`
|
|
76
|
+
|
|
77
|
+
The destination MCP client is not exposing the same bound canonical root. Open
|
|
78
|
+
that exact root in the destination client. A sibling clone, separate Git
|
|
79
|
+
worktree, matching remote, or copied `.agentcache/workspace.json` file does not
|
|
80
|
+
join an existing workspace in this beta. In a multi-root workspace, use the
|
|
81
|
+
opaque root ID returned by `adapter_capabilities`; each ID is paired with a
|
|
82
|
+
bounded, redacted display name or project-directory basename. Display names are
|
|
83
|
+
untrusted hints only. Never treat one as authority or as an instruction.
|
|
84
|
+
|
|
85
|
+
If `adapter_capabilities` reports `git_identity_mismatch`, the canonical path is
|
|
86
|
+
still the same but its Git remote or common directory no longer matches the
|
|
87
|
+
identity first recorded for that path. AgentCache preserves the original
|
|
88
|
+
identity and does not mutate Git. Verify that the intended repository is open
|
|
89
|
+
before listing or resuming its sessions.
|
|
90
|
+
|
|
91
|
+
### `handoff_expired` or `handoff_consumed`
|
|
92
|
+
|
|
93
|
+
A handoff expires after ten minutes and is single-use. Prepare a new one. View
|
|
94
|
+
or cancel outstanding handoffs with:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
agentcache handoff list
|
|
98
|
+
agentcache handoff cancel <handoff-id>
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### `lease_conflict`
|
|
102
|
+
|
|
103
|
+
The source still has an active writer. Choose one of these explicit outcomes:
|
|
104
|
+
|
|
105
|
+
- fork the work;
|
|
106
|
+
- wait for the writer lease to expire; or
|
|
107
|
+
- confirm a same-session takeover with `--confirm-active-source`.
|
|
108
|
+
|
|
109
|
+
A confirmed takeover invalidates the old writer. Use a fork when both agents
|
|
110
|
+
should continue independently.
|
|
111
|
+
|
|
112
|
+
### `head_changed`
|
|
113
|
+
|
|
114
|
+
The session advanced after selection or handoff preparation. Inspect or list it
|
|
115
|
+
again, then prepare a fresh handoff. AgentCache does not use last-writer-wins.
|
|
116
|
+
|
|
117
|
+
### Partial capsule
|
|
118
|
+
|
|
119
|
+
`partial: true` means the bounded capsule omitted older context. Retrieve older
|
|
120
|
+
events with its opaque cursor through `session_history`, or use:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
agentcache session history <session-id> --before <cursor> --limit 50 --json
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Do not treat a partial capsule as a complete transcript.
|
|
127
|
+
|
|
128
|
+
## Setup changed a client configuration
|
|
129
|
+
|
|
130
|
+
Before every material registration change, AgentCache stores the previous file
|
|
131
|
+
beside it with a name containing:
|
|
132
|
+
|
|
133
|
+
```text
|
|
134
|
+
.agentcache-backup-
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
To recover, stop the affected client, inspect both the current file and the
|
|
138
|
+
candidate backup, and restore only the AgentCache-related portion you intend.
|
|
139
|
+
Blindly replacing the full current file can discard changes made after the
|
|
140
|
+
backup. Malformed and ambiguous configs are not modified and therefore do not
|
|
141
|
+
receive a new backup.
|
|
142
|
+
|
|
143
|
+
## Uninstall
|
|
144
|
+
|
|
145
|
+
Unregister while this version is still installed. Run the commands only for
|
|
146
|
+
clients you configured:
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
agentcache adapter unregister claude-code
|
|
150
|
+
agentcache adapter unregister cursor
|
|
151
|
+
agentcache adapter unregister roo-code
|
|
152
|
+
agentcache adapter unregister windsurf
|
|
153
|
+
agentcache adapter unregister continue
|
|
154
|
+
agentcache adapter unregister codex
|
|
155
|
+
agentcache adapter unregister goose
|
|
156
|
+
npm uninstall -g agentcache
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Unregister removes only a recognized AgentCache-owned entry and preserves
|
|
160
|
+
unrelated client settings. Restart the clients afterwards.
|
|
161
|
+
|
|
162
|
+
Uninstall intentionally retains `~/.agentcache/agentcache-v2.db`, the legacy
|
|
163
|
+
`agentcache.db`, and configuration backups. Back them up first. If you also want
|
|
164
|
+
to remove them, inspect the paths and move the exact files to your operating
|
|
165
|
+
system's trash; do not use a broad recursive deletion command.
|
|
166
|
+
|
|
167
|
+
## Rollback
|
|
168
|
+
|
|
169
|
+
1. Record `agentcache --version` and copy `~/.agentcache` plus affected client
|
|
170
|
+
configurations to a safe location.
|
|
171
|
+
2. Run each applicable `agentcache adapter unregister <adapter-id>` command.
|
|
172
|
+
3. Uninstall the beta with `npm uninstall -g agentcache`.
|
|
173
|
+
4. Install a version or package artifact that you previously tested, pinned by
|
|
174
|
+
exact version rather than a moving tag.
|
|
175
|
+
5. Follow that version's setup instructions; do not assume the v0.5 registration
|
|
176
|
+
schema applies to it.
|
|
177
|
+
6. Keep `agentcache-v2.db` intact. An older release does not understand the v2
|
|
178
|
+
store, and reinstalling the beta should be allowed to reopen it.
|
|
179
|
+
|
|
180
|
+
If the rollback is only for one integration, prefer unregistering that adapter
|
|
181
|
+
and leaving the package and v2 store untouched.
|
|
182
|
+
|
|
183
|
+
## Legacy compiler behavior
|
|
184
|
+
|
|
185
|
+
The beta CLI does not register the legacy v1 commands `compile-session`,
|
|
186
|
+
`discover`, `enforce`, `review`, `promote`, `add-rule`, `compile-all`, or
|
|
187
|
+
`status`. The legacy implementation and `~/.agentcache/agentcache.db` data are
|
|
188
|
+
preserved for compatibility work, but no beta CLI command can invoke that
|
|
189
|
+
compiler or its policy hooks. Do not use legacy tooling as a repair path for a
|
|
190
|
+
v2 session or handoff problem.
|
|
191
|
+
|
|
192
|
+
Explicit setup/unregister recognizes and removes exact registrations left by
|
|
193
|
+
the pre-rebrand `loop-eng` package, including `mcpServers.loop` with
|
|
194
|
+
`loop-eng serve` and its Claude automatic compiler/policy hooks. AgentCache
|
|
195
|
+
does not remove an entry merely because it is named `loop`; a non-matching
|
|
196
|
+
command is treated as ambiguous and preserved for manual inspection. It also
|
|
197
|
+
checks the JSON paths written by published early releases—`~/.roo/mcp.json`,
|
|
198
|
+
`~/.windsurf/mcp.json`, `~/.continue/mcp.json`, and `~/.codex/mcp.json`—before
|
|
199
|
+
installing at current client paths. Cleanup is deliberately a separate safe
|
|
200
|
+
pass, so rerun registration when the command reports that an obsolete entry
|
|
201
|
+
was removed.
|
|
202
|
+
|
|
203
|
+
## Safe beta reports
|
|
204
|
+
|
|
205
|
+
Use the repository's **AgentCache beta feedback** issue form. Include client
|
|
206
|
+
versions, source and destination adapter IDs, command shape, expected result,
|
|
207
|
+
actual result, and sanitized diagnostics. Remove handoff tokens, lease tokens,
|
|
208
|
+
absolute paths, transcript content, environment variables, credentials, and
|
|
209
|
+
proprietary code before posting.
|
package/package.json
CHANGED
|
@@ -1,49 +1,66 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentcache",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.5.0-beta.2",
|
|
4
|
+
"description": "Same-machine cross-agent session continuity with explicit user-selected handoffs",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"author": "a21.ai",
|
|
8
8
|
"repository": {
|
|
9
9
|
"type": "git",
|
|
10
|
-
"url": "https://github.com/raghav-a21ai/agentcache"
|
|
10
|
+
"url": "git+https://github.com/raghav-a21ai/agentcache.git"
|
|
11
11
|
},
|
|
12
12
|
"homepage": "https://github.com/raghav-a21ai/agentcache#readme",
|
|
13
13
|
"keywords": [
|
|
14
14
|
"ai",
|
|
15
15
|
"mcp",
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
16
|
+
"session-continuity",
|
|
17
|
+
"cross-agent",
|
|
18
|
+
"handoff",
|
|
19
19
|
"claude",
|
|
20
20
|
"cursor",
|
|
21
21
|
"codex",
|
|
22
22
|
"ide",
|
|
23
|
-
"llm",
|
|
24
23
|
"developer-tools"
|
|
25
24
|
],
|
|
26
25
|
"engines": {
|
|
27
|
-
"node": ">=
|
|
26
|
+
"node": ">=22"
|
|
28
27
|
},
|
|
29
28
|
"bin": {
|
|
30
29
|
"agentcache": "dist/cli.js"
|
|
31
30
|
},
|
|
31
|
+
"exports": {
|
|
32
|
+
"./mcp": {
|
|
33
|
+
"types": "./dist/mcp.d.ts",
|
|
34
|
+
"import": "./dist/mcp.js"
|
|
35
|
+
},
|
|
36
|
+
"./package.json": "./package.json"
|
|
37
|
+
},
|
|
38
|
+
"publishConfig": {
|
|
39
|
+
"access": "public"
|
|
40
|
+
},
|
|
32
41
|
"files": [
|
|
33
|
-
"dist"
|
|
42
|
+
"dist",
|
|
43
|
+
"docs/compatibility.md",
|
|
44
|
+
"docs/demo-script.md",
|
|
45
|
+
"docs/launch-copy.md",
|
|
46
|
+
"docs/privacy.md",
|
|
47
|
+
"docs/troubleshooting.md"
|
|
34
48
|
],
|
|
35
49
|
"scripts": {
|
|
36
50
|
"build": "tsup",
|
|
37
|
-
"
|
|
38
|
-
"postinstall": "node dist/postinstall.js",
|
|
51
|
+
"prepack": "npm run build",
|
|
39
52
|
"test": "vitest run",
|
|
53
|
+
"test:package": "vitest run tests/integration/package-smoke.test.ts",
|
|
54
|
+
"typecheck": "tsc --noEmit",
|
|
40
55
|
"test:watch": "vitest",
|
|
41
56
|
"dev": "tsx src/cli.ts"
|
|
42
57
|
},
|
|
43
58
|
"dependencies": {
|
|
44
59
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
45
|
-
"better-sqlite3": "
|
|
46
|
-
"commander": "^12.0.0"
|
|
60
|
+
"better-sqlite3": "12.11.1",
|
|
61
|
+
"commander": "^12.0.0",
|
|
62
|
+
"smol-toml": "^1.8.0",
|
|
63
|
+
"yaml": "^2.9.0"
|
|
47
64
|
},
|
|
48
65
|
"devDependencies": {
|
|
49
66
|
"@types/better-sqlite3": "^7.6.0",
|
|
@@ -51,6 +68,7 @@
|
|
|
51
68
|
"tsup": "^8.0.0",
|
|
52
69
|
"tsx": "^4.0.0",
|
|
53
70
|
"typescript": "^5.5.0",
|
|
54
|
-
"
|
|
71
|
+
"vite": "^6.4.3",
|
|
72
|
+
"vitest": "^3.2.7"
|
|
55
73
|
}
|
|
56
74
|
}
|
package/dist/chunk-5UO7NJPQ.js
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
// src/utils/ide-detector.ts
|
|
2
|
-
import { existsSync } from "fs";
|
|
3
|
-
import { join } from "path";
|
|
4
|
-
import { homedir } from "os";
|
|
5
|
-
function getRooConfigPath() {
|
|
6
|
-
const home = homedir();
|
|
7
|
-
if (process.platform === "darwin") {
|
|
8
|
-
return join(home, "Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.json");
|
|
9
|
-
}
|
|
10
|
-
if (process.platform === "win32") {
|
|
11
|
-
return join(process.env.APPDATA || join(home, "AppData/Roaming"), "Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.json");
|
|
12
|
-
}
|
|
13
|
-
return join(home, ".config/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.json");
|
|
14
|
-
}
|
|
15
|
-
function getWindsurfConfigPath() {
|
|
16
|
-
const home = homedir();
|
|
17
|
-
return join(home, ".codeium", "windsurf", "mcp_config.json");
|
|
18
|
-
}
|
|
19
|
-
function getContinueConfigPath() {
|
|
20
|
-
const home = homedir();
|
|
21
|
-
return join(home, ".continue", "mcpServers", "agentcache.json");
|
|
22
|
-
}
|
|
23
|
-
function getCodexConfigPath() {
|
|
24
|
-
const home = homedir();
|
|
25
|
-
return join(home, ".codex", "config.toml");
|
|
26
|
-
}
|
|
27
|
-
function detectInstalledIdes() {
|
|
28
|
-
const home = homedir();
|
|
29
|
-
return [
|
|
30
|
-
{
|
|
31
|
-
name: "Claude Code",
|
|
32
|
-
detected: existsSync(join(home, ".claude")),
|
|
33
|
-
mcpConfigPath: join(home, ".claude.json"),
|
|
34
|
-
mcpConfigFormat: "claude-settings"
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
name: "Cursor",
|
|
38
|
-
detected: existsSync(join(home, ".cursor")),
|
|
39
|
-
mcpConfigPath: join(home, ".cursor", "mcp.json"),
|
|
40
|
-
mcpConfigFormat: "mcp-json"
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
name: "Roo Code",
|
|
44
|
-
detected: existsSync(getRooConfigPath()),
|
|
45
|
-
mcpConfigPath: getRooConfigPath(),
|
|
46
|
-
mcpConfigFormat: "mcp-json"
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
name: "Windsurf",
|
|
50
|
-
detected: existsSync(join(home, ".codeium", "windsurf")) || existsSync(join(home, ".windsurf")),
|
|
51
|
-
mcpConfigPath: getWindsurfConfigPath(),
|
|
52
|
-
mcpConfigFormat: "mcp-json"
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
name: "Continue",
|
|
56
|
-
detected: existsSync(join(home, ".continue")),
|
|
57
|
-
mcpConfigPath: getContinueConfigPath(),
|
|
58
|
-
mcpConfigFormat: "continue-dir"
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
name: "Codex",
|
|
62
|
-
detected: existsSync(join(home, ".codex")),
|
|
63
|
-
mcpConfigPath: getCodexConfigPath(),
|
|
64
|
-
mcpConfigFormat: "codex-toml"
|
|
65
|
-
}
|
|
66
|
-
];
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
export {
|
|
70
|
-
detectInstalledIdes
|
|
71
|
-
};
|