agentcache 0.4.2 → 0.5.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/README.md +280 -151
  2. package/dist/chunk-4T3I3ACZ.js +6592 -0
  3. package/dist/chunk-ECMT4ANK.js +1725 -0
  4. package/dist/{chunk-T4COG3XD.js → chunk-R5I6WWSD.js} +31 -14
  5. package/dist/chunk-RXGW4Q3G.js +109 -0
  6. package/dist/chunk-XRJ6QW6N.js +92 -0
  7. package/dist/cli.js +2535 -292
  8. package/dist/device-id-RV7RO5RB.js +7 -0
  9. package/dist/ide-detector-ETGAVVXO.js +8 -0
  10. package/dist/mcp.d.ts +734 -2
  11. package/dist/mcp.js +1126 -446
  12. package/dist/{paths-5LZRKNYY.js → paths-NTZ2357O.js} +3 -2
  13. package/dist/postinstall.js +1 -65
  14. package/dist/setup-CXZFERQE.js +48 -0
  15. package/docs/compatibility.md +146 -0
  16. package/docs/demo-script.md +121 -0
  17. package/docs/launch-copy.md +127 -0
  18. package/docs/privacy.md +173 -0
  19. package/docs/troubleshooting.md +206 -0
  20. package/package.json +32 -14
  21. package/dist/3-canonicalizer-HIN2F7SZ.js +0 -11
  22. package/dist/chunk-5UO7NJPQ.js +0 -71
  23. package/dist/chunk-CUBZRYS5.js +0 -580
  24. package/dist/chunk-GGAATZKM.js +0 -120
  25. package/dist/chunk-JUDLOBOC.js +0 -77
  26. package/dist/chunk-KFQGP6VL.js +0 -33
  27. package/dist/chunk-PSASDZQE.js +0 -490
  28. package/dist/chunk-SLRKWMSE.js +0 -202
  29. package/dist/chunk-T7BJPANN.js +0 -45
  30. package/dist/chunk-WTXSZBQE.js +0 -388
  31. package/dist/compile-all-PTWTZVP5.js +0 -495
  32. package/dist/ide-detector-5TRCR4F5.js +0 -7
  33. package/dist/pre-tool-use-A4AJHZOJ.js +0 -30
  34. package/dist/session-start-DGMGEAJU.js +0 -78
  35. package/dist/setup-CVG35TUZ.js +0 -51
  36. package/dist/sqlite-NM2BVHUY.js +0 -7
  37. package/dist/stop-WGGRX6TQ.js +0 -38
  38. package/dist/transcript-JWSGSDSF.js +0 -24
package/README.md CHANGED
@@ -1,172 +1,301 @@
1
1
  # AgentCache
2
2
 
3
- **Your codebase learns.** AgentCache compiles what your AI agents discover into a `SKILL.md` that every future session in any IDE, with any LLM — reads automatically.
3
+ > **Pick a coding session and continue it in another agent.**
4
+
5
+ **AgentCache 0.5.0-beta.1 is a same-machine public beta.** It keeps a local,
6
+ portable timeline for an explicitly selected coding session, then hands a
7
+ bounded checkpoint to another registered agent through MCP. There is no
8
+ Markdown handoff file to maintain and no silent choice of “latest” session.
9
+
10
+ The destination agent provider may receive the resume capsule when its agent
11
+ consumes a handoff. In the prescribed prompt-based flow, the handoff ID and
12
+ one-use token may also be sent to the destination provider. Treat the token as
13
+ a temporary bearer secret. “Local-first” describes AgentCache storage and
14
+ coordination; it does not change the network or retention behavior of Claude
15
+ Code, Codex, Cursor, or another hosted agent.
16
+
17
+ ## What it carries
18
+
19
+ AgentCache carries the useful state around a coding conversation: the goal,
20
+ explicit constraints, completed work, open work, blockers, decisions, rejected
21
+ approaches, next step, portable Git metadata, and a bounded slice of recent
22
+ events. It can keep multiple client legs in one timeline or create an explicit
23
+ fork with an independent child timeline.
24
+
25
+ It does not transplant a vendor's private conversation object, hidden
26
+ reasoning, system prompt, approval state, or complete tool output. It does not
27
+ intentionally carry credentials: known credential patterns and absolute local
28
+ paths are redacted, but arbitrary secrets may still appear. It does not replace
29
+ a client's own `/resume` command. Native transcript stores are treated as
30
+ read-only sources.
31
+
32
+ ## Five-minute quickstart
33
+
34
+ Prerequisites: Node.js 22 or newer, two supported clients installed on the same
35
+ machine, and the same canonical repository root open in both clients. Separate
36
+ clones and Git worktrees are isolated in this beta, even when their remotes
37
+ match.
38
+
39
+ 1. Install the pinned beta and run the explicit setup step.
40
+
41
+ ```bash
42
+ npm install -g agentcache@0.5.0-beta.1
43
+ agentcache setup
44
+ ```
45
+
46
+ Installation has no postinstall configuration hook. Setup is explicit:
47
+ `agentcache setup` detects installed clients and adds a client-bound MCP
48
+ entry such as `agentcache serve --adapter codex` when the existing config is
49
+ unambiguous. Restart or reload clients after setup.
50
+
51
+ 2. Check what AgentCache actually detected and what each adapter can do.
52
+
53
+ ```bash
54
+ agentcache doctor
55
+ agentcache adapter list --json
56
+ agentcache adapter doctor claude-code
57
+ agentcache adapter doctor codex
58
+ ```
59
+
60
+ The global `agentcache doctor` checks exact adapter-bound MCP registrations
61
+ and, after initialization, the v2 store. On a fresh setup before the first
62
+ session operation, an absent v2 store is normal: doctor reports the
63
+ informational message `will initialize on first session operation`. That is
64
+ not a failure. `adapter doctor` reports the capability evidence for one
65
+ client.
66
+
67
+ 3. In the source client, ask its AgentCache MCP server to open a portable
68
+ session for the current workspace, record the goal and relevant progress,
69
+ and create a checkpoint before you switch. Then, from that repository, list
70
+ the portable sessions.
71
+
72
+ ```bash
73
+ agentcache session list
74
+ ```
75
+
76
+ Listing also attempts bounded, read-only discovery for adapters whose native
77
+ history can prove the current workspace. A conversation opened through the
78
+ AgentCache MCP tools already appears as a portable session.
79
+
80
+ 4. Prepare a handoff with the interactive picker. The destination is always
81
+ explicit.
82
+
83
+ ```bash
84
+ agentcache session resume --to codex
85
+ ```
86
+
87
+ Search, select a numbered session, inspect it, then choose `continue` or
88
+ `fork`. Known branches appear in the list. The inspection view shows the
89
+ exact local workspace path, recovered objective, checkpoint Git state,
90
+ event count, and an approximate checkpoint-state JSON baseline. The final
91
+ resume capsule is larger because bounded recent events and its envelope are
92
+ added later. AgentCache then shows the exact public capsule that the
93
+ destination will receive. Choose `exclude` to remove numbered events from
94
+ this handoff's initial capsule and re-preview it, `confirm` to finish, or
95
+ `cancel` to delete the unconsumed handoff. Nothing is preselected and the
96
+ picker has no timeout. The one-time token is printed only after confirmation
97
+ and expires after ten minutes. These local inspection details are not added
98
+ to the JSON listing contract.
99
+
100
+ 5. Open the same repository in Codex and ask it to call AgentCache's
101
+ `session_resume` tool with that handoff ID and token. Ask it to restate the
102
+ goal and next step before continuing. The handoff is accepted only by the
103
+ chosen adapter in the chosen workspace.
104
+
105
+ For scripts, specify the session ID and request structured output:
4
106
 
5
107
  ```bash
6
- npm install -g agentcache
108
+ agentcache session resume ses_... --to codex --json
7
109
  ```
8
110
 
9
- That's it. No config. No accounts. No sync server.
10
-
11
- ---
12
-
13
- ## The Problem
14
-
15
- You tell Claude "don't mock the database in integration tests." It forgets. You tell Cursor the same thing. You tell Codex. You repeat yourself across every IDE, every session, every project.
16
-
17
- Your agents are amnesiac. Your knowledge evaporates.
18
-
19
- ## What AgentCache Does
20
-
21
- After a few sessions, AgentCache produces a `SKILL.md` in your repo:
22
-
23
- ```markdown
24
- # Project Knowledge
25
-
26
- ## Rules
27
- - Never mock the database in integration tests we got burned when mocks passed but prod migration failed
28
- - Always use snake_case for database columns
29
- - Run type-check before committing
30
-
31
- ## Decisions
32
- - Using Drizzle ORM over Prisma for raw SQL escape hatches
33
- - PostgreSQL for all persistent state, Redis for ephemeral cache only
34
-
35
- ## Context
36
- - Migrating from REST to GraphQL, both coexist until Q3
37
- - Auth service rewrite driven by compliance (not tech debt)
38
- ```
39
-
40
- This file lives at `<repo>/.agentcache/skills/project-knowledge/SKILL.md`. It's auto-discovered by **38+ tools** that support the Agent Skills spec — no MCP connection required. Commit it. Every teammate gets your team's accumulated knowledge on clone.
41
-
42
- **The database is local. The output is git.**
43
-
44
- ## How It Works
45
-
46
- ```
47
- Session 1 (Claude Code) Session 2 (Cursor) Session 3 (Codex)
48
- │ │ │
49
- └───────────────────────────┴───────────────────────┘
50
-
51
- AgentCache (MCP Server)
52
-
53
- ┌───────────────┴───────────────┐
54
- │ │
55
- ~/.agentcache/ <repo>/.agentcache/
56
- agentcache.db skills/.../SKILL.md
57
- (local SQLite) (committed to git)
58
- ```
59
-
60
- 1. **Session starts** → agent calls `inject_context` → gets compiled rules, lessons, decisions
61
- 2. **During session** agent calls `compile_submit` as it learns things
62
- 3. **Session ends** knowledge compiles into the database
63
- 4. **Periodically** → database projects into `SKILL.md` for git distribution
64
-
65
- Knowledge compounds. One lesson stated once propagates to every future session across every IDE.
66
-
67
- ## Install
68
-
69
- ```bash
70
- npm install -g agentcache
71
- ```
72
-
73
- The install automatically:
74
- 1. Creates `~/.agentcache/agentcache.db`
75
- 2. Detects your IDEs (Claude Code, Cursor, Roo Code, Windsurf, Continue, Codex)
76
- 3. Registers as an MCP server in each — with auto-approve
77
- 4. Sets up Claude Code hooks for transcript recovery
78
- 5. Compiles your existing transcript history in the background
79
-
80
- **Zero config. Zero setup. Start a session and it's working.**
81
-
82
- ## Supported IDEs
83
-
84
- | IDE | MCP | Auto-Approve | Transcript Recovery |
85
- |-----|-----|-------------|-------------------|
86
- | Claude Code | ✓ | ✓ | Full (hooks + JSONL) |
87
- | Cursor | ✓ | ✓ | Full (agent transcripts) |
88
- | Roo Code (VS Code) | ✓ | ✓ | Full (task history) |
89
- | Codex | ✓ | ✓ | Full (session JSONL) |
90
- | Continue | ✓ | ✓ | Full (session JSON) |
91
- | Windsurf | ✓ | ✓ | Incremental only |
92
- | Goose | — | — | Full (SQLite) |
93
-
94
- All IDEs share the same knowledge database. A rule learned in Claude Code is injected in Cursor the next time you open it.
95
-
96
- ## Security Model
97
-
98
- AgentCache creates a feedback loop: agents write observations → observations compile → knowledge injects into future sessions. This is the product's value **and** its attack surface.
99
-
100
- **Quarantine gate**: Agent-submitted observations require confirmation across 2+ independent sessions before injection. A single prompt-injected `compile_submit` cannot poison your knowledge.
101
-
102
- **Human-only enforcement**: Policy rules (that block tool calls) can only be created via CLI. No MCP tool can create policy.
103
-
104
- **Scope gate**: Agent-submitted observations are always project-scoped. Global requires explicit human action.
105
-
106
- ### Security Modes
107
-
108
- ```json
109
- { "security": "auto" }
110
- ```
111
-
112
- | Mode | Behavior |
113
- |------|----------|
114
- | `auto` | Quarantine — new items inject after 2+ session confirmations |
115
- | `review` | Nothing injects until `agentcache review` approves it |
116
- | `locked` | `compile_submit` disabled. Human-triggered batch only |
117
-
118
- ## CLI
111
+ Non-interactive and JSON runs never open the picker; they fail if the session
112
+ ID is absent. They return the same bounded public capsule as `session_resume`;
113
+ pass one or more IDs to `--exclude-event <event-id...>` to omit known capsule
114
+ events. Exclusion is
115
+ not deletion or access control: it affects only this initial capsule, and a
116
+ same-workspace destination can still request those events with
117
+ `session_history`. See [the demo script](docs/demo-script.md) for a complete
118
+ Claude Code → Codex → Cursor fork walkthrough.
119
+
120
+ ## Resume and fork semantics
121
+
122
+ - `continue` adds a new client leg to the same portable session.
123
+ - `fork` creates a child session anchored to an immutable parent checkpoint;
124
+ later parent and child events remain independent.
125
+ - An active source writer blocks continuation unless the human explicitly
126
+ confirms takeover with `--confirm-active-source`; for parallel work, fork.
127
+ - A handoff is single-use, expires after ten minutes, and is bound to one
128
+ destination adapter, workspace, and exact prepared capsule.
129
+ - Interactive cancellation and prompt failures delete the unconsumed draft;
130
+ superseded drafts are deleted before an exclusion-adjusted capsule is made.
131
+ - A changed session head, wrong destination, wrong workspace, expired token, or
132
+ reused token is rejected rather than guessed around.
133
+ - Long history is marked partial and can be fetched in bounded pages with
134
+ `session history` or the MCP `session_history` tool.
135
+
136
+ ## Compatibility
137
+
138
+ The table below is generated as a documentation contract against the runtime
139
+ adapter registry. `experimental` means the parser or registration is covered by
140
+ fixtures but does not yet have dated live-client evidence. `unsupported` means
141
+ AgentCache will report the limitation instead of pretending the operation
142
+ works. Modes describe how the adapter capability is implemented.
143
+
144
+ <!-- runtime-capability-matrix:start -->
145
+ | Client | Adapter ID | Registration | History | Native resume | Append | Checkpoint | Fork | Launch |
146
+ |---|---|---|---|---|---|---|---|---|
147
+ | Claude Code | claude-code | experimental / mcp-cooperative | experimental / local-snapshot | unsupported / none | unsupported / none | unsupported / none | unsupported / none | unsupported / none |
148
+ | Cursor | cursor | experimental / mcp-cooperative | experimental / local-snapshot | unsupported / none | unsupported / none | unsupported / none | unsupported / none | unsupported / none |
149
+ | Roo Code | roo-code | experimental / mcp-cooperative | experimental / local-snapshot | unsupported / none | unsupported / none | unsupported / none | unsupported / none | unsupported / none |
150
+ | Windsurf | windsurf | experimental / mcp-cooperative | unsupported / none | unsupported / none | unsupported / none | unsupported / none | unsupported / none | unsupported / none |
151
+ | Continue | continue | experimental / mcp-cooperative | experimental / local-snapshot | unsupported / none | unsupported / none | unsupported / none | unsupported / none | unsupported / none |
152
+ | Codex | codex | experimental / mcp-cooperative | experimental / local-snapshot | unsupported / none | unsupported / none | unsupported / none | unsupported / none | unsupported / none |
153
+ | Goose | goose | experimental / mcp-cooperative | unsupported / none | unsupported / none | unsupported / none | unsupported / none | unsupported / none | unsupported / none |
154
+ <!-- runtime-capability-matrix:end -->
155
+
156
+ The `native resume`, `append`, `checkpoint`, `fork`, and `launch` columns are
157
+ client-native adapter capabilities. The beta's portable append, checkpoint,
158
+ resume, and fork operations are provided through AgentCache's shared MCP/CLI
159
+ session layer; they do not write those operations into vendor-owned histories.
160
+ Windsurf and Goose historical recovery are unsupported. Goose MCP registration
161
+ uses its documented 1.39 YAML schema but remains experimental.
162
+
163
+ For evidence, limitations, source formats, and how to read the matrix, see
164
+ [Compatibility](docs/compatibility.md). The live source of truth is:
119
165
 
120
166
  ```bash
121
- agentcache doctor # Diagnose installation
122
- agentcache status # Knowledge stats
123
- agentcache review # Approve/reject quarantined items
124
- agentcache promote <id> # Approve a single item
125
- agentcache add-rule "never force push" --enforce # Create policy (human-only)
126
- agentcache compile-all # Batch-compile all transcripts
127
- agentcache setup # Re-register with IDEs
128
- ```
129
-
130
- ## compile-all
131
-
132
- Processes all uncompiled transcripts from all IDEs using the first available LLM backend:
133
-
134
- 1. CLI tools: `claude`, `codex`, `gemini`, `copilot`, `aider`, `goose`
135
- 2. Ollama at `localhost:11434`
136
- 3. `ANTHROPIC_API_KEY` or `OPENAI_API_KEY`
137
-
138
- Runs automatically on install and when pending transcripts exceed 20.
139
-
140
- ## Data
141
-
167
+ agentcache adapter list --json
168
+ agentcache adapter doctor <adapter-id> --json
142
169
  ```
143
- ~/.agentcache/
144
- ├── agentcache.db # Knowledge database (SQLite + WAL)
145
- ├── config.json # Security mode
146
- └── compile-all.lock # Prevents concurrent compilation
147
170
 
148
- <repo>/.agentcache/
149
- └── skills/project-knowledge/SKILL.md # Git-committed team knowledge
171
+ ## Command reference
172
+
173
+ These are the public beta session-continuity commands. Options are abbreviated
174
+ here; use `agentcache <group> <command> --help` for the complete syntax.
175
+
176
+ <!-- beta-command-matrix:start -->
177
+ | Command | Purpose |
178
+ |---|---|
179
+ | `session list` | Discover and list sessions for the current workspace. |
180
+ | `session inspect` | Inspect one portable session. |
181
+ | `session resume` | Prepare an explicit one-use destination handoff. |
182
+ | `session append` | Append one human-authorized portable event. |
183
+ | `session checkpoint` | Create one human-authorized checkpoint. |
184
+ | `session fork` | Prepare an explicit fork from a checkpoint. |
185
+ | `session history` | Read a bounded page of portable history. |
186
+ | `handoff list` | List pending handoffs for the current workspace. |
187
+ | `handoff cancel` | Cancel one pending handoff. |
188
+ | `adapter list` | List supported runtime adapter definitions. |
189
+ | `adapter doctor` | Probe one adapter and show capability evidence. |
190
+ | `adapter register` | Register AgentCache with one detected client. |
191
+ | `adapter unregister` | Remove AgentCache-owned registration for one client. |
192
+ <!-- beta-command-matrix:end -->
193
+
194
+ The exact argument and option contract is checked against the real Commander
195
+ command objects. “Required options” must be present for Commander to invoke the
196
+ handler; angle brackets on an optional option mean that the option takes a
197
+ value, not that the option itself is mandatory.
198
+
199
+ <!-- cli-help-contract:start -->
200
+ | Command | Arguments | Required options | Optional options |
201
+ |---|---|---|---|
202
+ | `session list` | — | — | `--adapter <id>; --status <status>; --json` |
203
+ | `session inspect` | `<session-id>` | — | `--json` |
204
+ | `session resume` | `[session-id]` | `--to <adapter>` | `--checkpoint <id>; --fork; --confirm-active-source; --exclude-event <event-id...>; --json` |
205
+ | `session append` | `<session-id>` | `--kind <kind>` | `--text <text>; --stdin; --json` |
206
+ | `session checkpoint` | `<session-id>` | — | `--summary <text>; --summary-file <path>; --state-file <path>; --json` |
207
+ | `session fork` | `<session-id>` | `--from <checkpoint-id&#124;latest>; --to <adapter>` | `--title <title>; --exclude-event <event-id...>; --json` |
208
+ | `session history` | `<session-id>` | — | `--before <cursor>; --limit <number>; --json` |
209
+ | `handoff list` | — | — | `--json` |
210
+ | `handoff cancel` | `<handoff-id>` | — | `--json` |
211
+ | `adapter list` | — | — | `--json` |
212
+ | `adapter doctor` | `<adapter-id>` | — | `--json` |
213
+ | `adapter register` | `<adapter-id>` | — | — |
214
+ | `adapter unregister` | `<adapter-id>` | — | — |
215
+ <!-- cli-help-contract:end -->
216
+
217
+ `session append` requires exactly one of `--text` or `--stdin`. `session
218
+ checkpoint` accepts at most one of `--summary`, `--summary-file`, or
219
+ `--state-file`. A non-interactive or `--json` resume requires an explicit
220
+ session ID.
221
+
222
+ ## Data flow and safety boundary
223
+
224
+ ```text
225
+ read-only native history (when verified)
226
+ │ bounded read + normalization + redaction
227
+
228
+ ~/.agentcache/agentcache-v2.db
229
+ │ explicit checkpoint + one-use handoff
230
+
231
+ destination MCP session
232
+ │ hosted-client provider boundary
233
+
234
+ destination model
150
235
  ```
151
236
 
152
- No network calls. No telemetry. No accounts. Everything stays on your machine (except what you choose to commit).
153
-
154
- ## Principles
155
-
156
- - **Zero config** `npm install -g` is the only step
157
- - **Universal** MCP protocol, any IDE, any LLM
158
- - **Git-native output** SKILL.md is the distribution mechanism
159
- - **Secure by default** — quarantine gate, scope restrictions, human-only policy
160
- - **Anti-bloat** 30-day decay, budget caps, confidence promotion
161
-
162
- ## Contributing
237
+ AgentCache stores v2 session data locally with user-only filesystem
238
+ permissions. It rejects symbolic, special, or multiply linked database and
239
+ SQLite sidecar paths, uses bounded transcript reads, rejects transcript
240
+ symlinks, redacts known credential shapes and absolute local paths from
241
+ portable text, and labels resume data `untrusted_prior_session_context`.
242
+ Redaction is defense in depth, not a proof that arbitrary secrets cannot
243
+ appear; inspect sensitive sessions before handing them to another provider.
244
+
245
+ Setup does not add blanket AgentCache tool approvals. Registration updates are
246
+ atomic, back up an existing configuration before a material change, and leave
247
+ malformed or ambiguous configurations untouched. AgentCache does not mutate Git
248
+ or write generated context into a repository in the default beta path.
249
+
250
+ Read the complete [privacy and trust boundary](docs/privacy.md) before using the
251
+ beta with sensitive repositories.
252
+
253
+ ## Beta limits
254
+
255
+ - Same machine only. Cloud sync, accounts, teams, and cross-device continuation
256
+ are deferred.
257
+ - There is no native picker UI; the terminal picker is the control plane.
258
+ - Native client history formats can change. All current adapters are marked
259
+ experimental or unsupported until dated live-client verification exists.
260
+ - Windsurf and Goose can participate prospectively through MCP registration,
261
+ but their historical recovery is unsupported.
262
+ - AgentCache cannot carry hidden reasoning, private provider state, or tool
263
+ approvals between clients.
264
+ - A Markdown fallback is intentionally not generated when a destination is
265
+ unavailable; the pending handoff remains until it is consumed, cancelled, or
266
+ expires.
267
+
268
+ ## Legacy 0.4 data
269
+
270
+ Version 0.5 creates `~/.agentcache/agentcache-v2.db` beside the legacy
271
+ `~/.agentcache/agentcache.db`; it does not translate or mutate compiled v1
272
+ knowledge. Legacy v1 CLI commands are not registered in the beta: `compile-session`,
273
+ `discover`, `enforce`, `review`, `promote`, `add-rule`, `compile-all`, and
274
+ `status` are unavailable. Setup, installation, startup, session discovery, and
275
+ idle operation cannot invoke legacy compilation. Automatic `SKILL.md`
276
+ generation is not part of the beta path.
277
+
278
+ This preserves the original “your codebase learns” experiment without making
279
+ its legacy compiler the trust boundary for cross-agent continuation.
280
+
281
+ ## Operations and feedback
282
+
283
+ - [Troubleshooting, uninstall, and rollback](docs/troubleshooting.md)
284
+ - [Privacy and data flow](docs/privacy.md)
285
+ - [Compatibility details](docs/compatibility.md)
286
+ - [60–90 second demo](docs/demo-script.md)
287
+ - [Launch copy](docs/launch-copy.md)
288
+ - [Open a structured beta-feedback issue](https://github.com/raghav-a21ai/agentcache/issues/new?template=beta-feedback.yml)
289
+
290
+ ## Development
163
291
 
164
292
  ```bash
165
293
  git clone https://github.com/raghav-a21ai/agentcache
166
294
  cd agentcache
167
295
  npm install
296
+ npm run typecheck
168
297
  npm run build
169
- npm test # 205 tests
298
+ npm test
170
299
  ```
171
300
 
172
301
  ## License