@deeplake/hivemind 0.7.15 → 0.7.16

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.
@@ -6,13 +6,13 @@
6
6
  },
7
7
  "metadata": {
8
8
  "description": "Cloud-backed persistent shared memory for AI agents powered by Deeplake",
9
- "version": "0.7.15"
9
+ "version": "0.7.16"
10
10
  },
11
11
  "plugins": [
12
12
  {
13
13
  "name": "hivemind",
14
14
  "description": "Persistent shared memory powered by Deeplake — captures all session activity and provides cross-session, cross-agent memory search",
15
- "version": "0.7.15",
15
+ "version": "0.7.16",
16
16
  "source": "./claude-code",
17
17
  "homepage": "https://github.com/activeloopai/hivemind"
18
18
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "hivemind",
3
3
  "description": "Cloud-backed persistent memory powered by Deeplake — read, write, and share memory across Claude Code sessions and agents",
4
- "version": "0.7.15",
4
+ "version": "0.7.16",
5
5
  "author": {
6
6
  "name": "Activeloop",
7
7
  "url": "https://deeplake.ai"
package/README.md CHANGED
@@ -11,24 +11,27 @@
11
11
  <h4 align="center">One brain for all your agents</h4>
12
12
 
13
13
  <p align="center">
14
+ <a href="https://www.npmjs.com/package/@deeplake/hivemind"><img src="https://img.shields.io/npm/v/@deeplake/hivemind?color=blue&label=npm" alt="npm"></a>
15
+ <a href="https://github.com/activeloopai/hivemind/stargazers"><img src="https://img.shields.io/github/stars/activeloopai/hivemind?style=social" alt="GitHub stars"></a>
14
16
  <a href="LICENSE"><img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg" alt="License"></a>
15
17
  <a href="package.json"><img src="https://img.shields.io/badge/node-%3E%3D22.0.0-brightgreen.svg" alt="Node"></a>
16
18
  <a href="https://deeplake.ai"><img src="https://img.shields.io/badge/Powered%20by-Deeplake-orange.svg" alt="Deeplake"></a>
17
19
  </p>
18
20
 
19
21
  <p align="center">
20
- Persistent, cloud-backed shared memory for <b>Claude Code • OpenClaw • Codex • Cursor • Hermes • pi</b> agents.<br>
22
+ Auto-learning, cloud-backed shared brain for <b>Claude Code • OpenClaw • Codex • Cursor • Hermes • pi</b> agents.<br>
21
23
  </p>
22
24
 
23
- > One session ends, everything important disappears.
25
+ > One engineer's agent figures out a tricky migration on Monday.
24
26
  >
25
- > Hivemind finally fixes the "agent amnesia" problem.
27
+ > Tuesday, every agent on the team can execute the pattern.
26
28
 
27
- Hivemind automatically captures every prompt, tool call, decision, and file operation. Then turns them into searchable memory that is instantly available to every agent and teammate across sessions, machines, and time.
29
+ **Beyond memory.** Hivemind captures every coding-agent interaction in your org as a structured trace, codifies repeated patterns into reusable skills, and propagates those skills to every agent on your team.
28
30
 
29
- - 🧠 **Captures** every session's prompts, tool calls, and responses into a shared SQL table on Deeplake Cloud
30
- - 🔍 **Searches** across all memory with lexical search (falls back to grep when index unavailable)
31
- - 🔗 **Shares** memory across sessions, agents, teammates, and machines in real-time
31
+ - 📥 **Captures** every session's prompts, tool calls, and responses as structured traces in Deeplake
32
+ - 🧠 **Codifies** patterns in those traces into reusable skills, available to every agent on your team
33
+ - 🔍 **Searches** across all traces and skills with lexical retrieval (grep fallback when index unavailable)
34
+ - 🔗 **Propagates** capability across sessions, agents, teammates, and machines in real time
32
35
  - 📁 **Intercepts** file operations on `~/.deeplake/memory/` through a virtual filesystem backed by SQL
33
36
  - 📝 **Summarizes** sessions into AI-generated wiki pages via a background worker at session end
34
37
 
@@ -40,7 +43,7 @@ One command, all your agents:
40
43
  npm install -g @deeplake/hivemind && hivemind install
41
44
  ```
42
45
 
43
- That's it. The installer detects every supported assistant on your machine (Claude Code, Codex, OpenClaw, Cursor, Hermes Agent, pi), wires up the hooks, and opens a browser once for login. Restart your assistants and they all share the same brain.
46
+ The installer detects every supported assistant on your machine (table below), wires up the hooks, and opens a browser once for login. Restart them after install.
44
47
 
45
48
  **Install for a specific assistant only:**
46
49
 
@@ -188,51 +191,21 @@ hivemind codex uninstall # remove from one
188
191
 
189
192
  ## How it works
190
193
 
191
- ```
192
- ┌─────────────────────────────────────────────────────┐
193
- │ Your Coding Agent │
194
- └──────────────────────────┬──────────────────────────┘
195
-
196
- ┌──────────────────▼──────────────────┐
197
- │ 📥 Capture (every turn) │
198
- │ prompts · tool calls · responses │
199
- └──────────────────┬──────────────────┘
200
-
201
- ┌──────────────────▼──────────────────┐
202
- │ 🧠 Hivemind │
203
- │ SQL tables · Virtual File System │
204
- │ Search Memory · inject context │
205
- └──────────────────┬──────────────────┘
206
-
207
- ┌──────────────────▼──────────────────┐
208
- │ 🌊 Deeplake │
209
- │ Shared across all agents │
210
- │ Postgres · S3 │
211
- └─────────────────────────────────────┘
212
- ```
213
-
214
- Every session is captured. Every agent can recall. Teammates in the same org see the same memory.
194
+ **Capture → Codify → Propagate → Compound.** Every coding-agent interaction (prompt, tool call, response) is captured as a structured trace in Deeplake. A background worker mines traces for repeated patterns and codifies them into `SKILL.md` files, scoped to your workspace. Codified skills propagate into every Hivemind-connected agent's context at inference time. The agent your junior engineer used this morning is sharper because of what your senior engineer's agent figured out last week.
215
195
 
216
196
  ## Features
217
197
 
218
198
  ### 🔍 Natural search
219
199
 
220
- Just ask Claude naturally:
200
+ Just ask your agent naturally:
221
201
 
222
202
  ```
223
203
  "What was Emanuele working on?"
224
- "Search memory for authentication bugs"
204
+ "Search traces for authentication bugs we've solved"
225
205
  "What did we decide about the API design?"
206
+ "Show me skills my team has codified for handling migrations"
226
207
  ```
227
208
 
228
- ### 📝 AI-generated session summaries
229
-
230
- After each session, a background worker generates a wiki summary: key decisions, code changes, next steps. Browse them at `~/.deeplake/memory/summaries/`.
231
-
232
- ### 👥 Team sharing
233
-
234
- Invite teammates to your Deeplake org. Their agents see your memory, your agents see theirs. No setup, no sync, no merge conflicts.
235
-
236
209
  ### 🔒 Privacy controls
237
210
 
238
211
  Disable capture entirely:
@@ -256,10 +229,11 @@ This plugin captures session activity and stores it in your Deeplake workspace:
256
229
  | User prompts | Every message you send |
257
230
  | Tool calls | Tool name + full input |
258
231
  | Tool responses | Full tool output |
259
- | Assistant responses | Claude's final response |
232
+ | Assistant responses | The agent's final response |
260
233
  | Subagent activity | Subagent tool calls and responses |
234
+ | Codified skills | Patterns extracted from traces |
261
235
 
262
- **All users in your Deeplake workspace can read this data.** A DATA NOTICE is displayed at the start of every session.
236
+ **All users in your Deeplake workspace can read this data.** That's the design — shared capability requires shared substrate. A DATA NOTICE is displayed at the start of every session. Workspace-level isolation prevents data leakage between orgs.
263
237
 
264
238
  ## Configuration
265
239
 
@@ -276,309 +250,41 @@ This plugin captures session activity and stores it in your Deeplake workspace:
276
250
  | `HIVEMIND_EMBEDDINGS` | `true` | Set to `false` to force lexical-only mode |
277
251
  | `HIVEMIND_DEBUG` | — | Set to `1` for verbose hook debug logs |
278
252
 
279
- ## Optional: enable semantic search (embeddings)
280
-
281
- Hivemind can run a local embedding daemon (nomic-embed-text-v1.5, ~130 MB)
282
- so that `Grep` over `~/.deeplake/memory/` uses hybrid semantic + lexical
283
- ranking instead of pure BM25. This is **off by default** — the daemon
284
- depends on `@huggingface/transformers`, which pulls onnxruntime-node and
285
- sharp (~600 MB total with native binaries). Shipping that with every agent
286
- install would 60× the install size for a feature most users don't need.
287
-
288
- To enable, run the bundled command:
289
-
290
- ```bash
291
- hivemind embeddings install
292
- ```
293
-
294
- This installs `@huggingface/transformers` **once** into a shared directory
295
- (`~/.hivemind/embed-deps/`) and symlinks every detected agent's plugin to
296
- it, so the 600 MB cost is paid one time regardless of how many agents you
297
- have wired up. Re-run the same command after installing a new agent and
298
- the new symlink is added (the npm install is skipped because it's cached).
299
-
300
- Or do it in one shot at install time:
301
-
302
- ```bash
303
- hivemind install --with-embeddings # all detected agents
304
- hivemind <agent> install --with-embeddings # a single agent
305
- ```
306
-
307
- Other commands:
308
-
309
- ```bash
310
- hivemind embeddings status # show shared deps + per-agent state
311
- hivemind embeddings uninstall # remove the per-agent symlinks
312
- hivemind embeddings uninstall --prune # also delete the shared dir (~600 MB)
313
- ```
314
-
315
- Restart your agents after enabling. From the next session, captured
316
- messages and AI-generated summaries will include a 768-dim embedding,
317
- and semantic recall queries will route through the local daemon (the
318
- nomic model is downloaded on first use and cached in `~/.cache/huggingface/`).
319
-
320
- If `@huggingface/transformers` is **not** present, Hivemind silently
321
- degrades to lexical-only mode:
253
+ ## Semantic search (optional)
322
254
 
323
- - Capture continues; rows still land in Deeplake.
324
- - ✅ `Grep` still works via BM25 / `ILIKE` matching on text columns.
325
- - ⚪ The `message_embedding` / `summary_embedding` columns stay `NULL`.
326
- - ⚪ The hook log notes `embeddings: no-transformers` once at session start.
255
+ Hivemind ships with a local embedding daemon (nomic-embed-text-v1.5) for hybrid semantic + lexical search over `~/.deeplake/memory/`. **Off by default** because the dependency footprint is ~600 MB. Enable with `hivemind embeddings install` (or `hivemind install --with-embeddings`). Without it, search degrades silently to BM25/lexical-only.
327
256
 
328
- You can also force lexical-only mode explicitly with
329
- `HIVEMIND_EMBEDDINGS=false` (useful for CI or air-gapped environments).
257
+ Full guide: **[docs/EMBEDDINGS.md](docs/EMBEDDINGS.md)**.
330
258
 
331
259
  ## Summaries
332
260
 
333
- Hivemind doesn't just capture raw eventsit also generates an
334
- **AI-written wiki summary** for each session and stores it in the
335
- `memory` table (alongside its 768-dim `summary_embedding`). The summary
336
- is what shows up when you `Grep` for past sessions or follow links from
337
- `~/.deeplake/memory/index.md`.
338
-
339
- ### When summaries are written
340
-
341
- Each agent (Claude Code / Codex / Cursor / Hermes / pi) fires a wiki
342
- worker on two triggers:
343
-
344
- | Trigger | When it fires |
345
- |-------------------|-------------------------------------------------------------------------------|
346
- | **Final** | At session end (Stop / SessionEnd / session_shutdown), once. |
347
- | **Periodic** | Mid-session, when **either** of two thresholds is hit since the last summary: |
348
- | | • messages-since-last-summary ≥ `HIVEMIND_SUMMARY_EVERY_N_MSGS` (default 50) |
349
- | | • elapsed time ≥ `HIVEMIND_SUMMARY_EVERY_HOURS` (default 2) |
350
-
351
- The first message after a long pause therefore triggers a fresh
352
- summary; long sessions naturally checkpoint every ~50 messages.
353
-
354
- A per-session JSON sidecar at
355
- `~/.claude/hooks/summary-state/<sessionId>.json` tracks
356
- `{lastSummaryAt, lastSummaryCount, totalCount}`. The dir is shared
357
- across all agents (session ids are UUIDs so no collisions). It is
358
- **never deleted**, so resuming a session via `--resume` / `--continue`
359
- picks up where it left off.
360
-
361
- ### How a summary is generated
362
-
363
- 1. The wiki worker queries the `sessions` table for every event tied to
364
- that session.
365
- 2. It builds a structured prompt asking the host agent's CLI to extract
366
- entities, decisions, files modified, open questions, etc.
367
- 3. It shells out to that agent's CLI (`claude -p`, `codex exec`,
368
- `pi --print`, …) with the prompt — never a separate API key, the
369
- agent's existing credentials are used.
370
- 4. The generated markdown is uploaded to the `memory` table at
371
- `/summaries/<user>/<sessionId>.md`. The shared embedding daemon
372
- produces the 768-dim `summary_embedding` so the summary is recallable
373
- via semantic search.
374
-
375
- A lock file at `~/.claude/hooks/summary-state/<sessionId>.lock`
376
- prevents two workers from running concurrently for the same session.
377
-
378
- ### Configuration
379
-
380
- | Env var | Default | Effect |
381
- |------------------------------------|----------------|-----------------------------------------------------|
382
- | `HIVEMIND_SUMMARY_EVERY_N_MSGS` | `50` | Trigger periodic when messages-since-last ≥ this |
383
- | `HIVEMIND_SUMMARY_EVERY_HOURS` | `2` | Trigger periodic after this many hours, with ≥1 msg |
384
- | `HIVEMIND_CURSOR_MODEL` | `auto` | (cursor only) model passed to `cursor-agent --print --model` |
385
- | `HIVEMIND_HERMES_PROVIDER` | `openrouter` | (hermes only) provider passed to `hermes -z --provider` |
386
- | `HIVEMIND_HERMES_MODEL` | `anthropic/claude-haiku-4-5` | (hermes only) model passed to `hermes -z -m` |
387
- | `HIVEMIND_PI_PROVIDER` | `google` | (pi only) provider passed to `pi --print --provider`|
388
- | `HIVEMIND_PI_MODEL` | `gemini-2.5-flash` | (pi only) model passed to `pi --print --model` |
389
- | `HIVEMIND_CAPTURE=false` | unset | Disable both capture and summary generation |
390
-
391
- For pi specifically, the wiki worker is bundled separately at
392
- `~/.pi/agent/hivemind/wiki-worker.js` (deposited by `hivemind pi install`).
393
- The other agents ship the wiki worker inside their per-agent plugin
394
- bundle.
395
-
396
- ## Skills (skilify)
397
-
398
- Hivemind also crystallises **recurring patterns from your recent sessions
399
- into reusable Claude Code skills**, automatically. Same architecture as
400
- the wiki worker: an async background process that fires on Stop /
401
- SessionEnd, mines recent sessions in scope, asks Haiku whether the
402
- activity contains something worth keeping, and writes a `SKILL.md` if so.
403
-
404
- ### When the skilify worker fires
405
-
406
- | Trigger | When it fires |
407
- |------------------|--------------------------------------------------------------------------------|
408
- | **Stop counter** | Mid-session, after every `HIVEMIND_SKILIFY_EVERY_N_TURNS` (default 20) turns. |
409
- | **SessionEnd** | Always at end-of-session, regardless of counter — catches tail-of-session knowledge. |
410
-
411
- Per-project counter state lives at
412
- `~/.deeplake/state/skilify/<project-key>.json`. Project key is the sha1
413
- of `git config remote.origin.url` (with the absolute path as fallback for
414
- non-git dirs).
415
-
416
- ### How a skill is generated
417
-
418
- 1. The worker pulls the **last 10 sessions in scope** from the `sessions`
419
- Deeplake table — strictly newer than the watermark in the state file.
420
- 2. It strips each session to **prompt + assistant text only** (tool calls
421
- and thinking blocks are dropped — they're noise for skill mining).
422
- 3. It builds a gate prompt: existing project skill bodies + the 10
423
- stripped exchanges + decision rules.
424
- 4. It runs `claude -p haiku --permission-mode bypassPermissions` with the
425
- prompt. The model returns a JSON verdict:
426
- - `KEEP <name> <body>` — write a new skill.
427
- - `MERGE <existing-name> <merged-body>` — update an existing skill, bump version.
428
- - `SKIP <reason>` — pattern is one-off / generic / already covered.
429
- 5. On KEEP/MERGE the skill is written to `<project>/.claude/skills/<name>/SKILL.md`
430
- (or `~/.claude/skills/...` if you've set `install` to `global`), with
431
- provenance frontmatter (`source_sessions`, `version`, `created_by_agent`,
432
- timestamps).
433
- 6. A row is also inserted into the `skills` Deeplake table for org-wide
434
- provenance (append-only — never UPDATE, sidesteps the
435
- UPDATE-coalescing quirk).
436
-
437
- ### `/skilify` — managing scope, team, install location
438
-
439
- The `/skilify` slash command (Claude Code, Codex) and the `hivemind
440
- skilify` CLI control mining behaviour.
261
+ After each session, a background worker generates an AI-written wiki summary and stores it in the `memory` table alongside its 768-dim embedding. Long sessions checkpoint mid-session every 50 messages or 2 hours (configurable). The wiki worker shells out to the host agent's own CLI (`claude -p`, `codex exec`, `pi --print`, …) no separate API key. Browse summaries at `~/.deeplake/memory/summaries/`.
441
262
 
442
- ```bash
443
- hivemind skilify # show current scope, team, install, per-project state
444
- hivemind skilify scope <me|team|org> # who counts as "in scope" for mining
445
- hivemind skilify install <project|global> # where new skills are written
446
- hivemind skilify promote <skill-name> # move a project skill to ~/.claude/skills/
447
- hivemind skilify team add <username> # add to the team list (used when scope=team)
448
- hivemind skilify team remove <username> # remove from team
449
- hivemind skilify team list # list current team members
450
- ```
451
-
452
- The team list flows into the worker's session-fetch SQL: `scope=me`
453
- filters by your own username, `scope=team` filters by `author IN
454
- (<team>)`, `scope=org` applies no author filter.
455
-
456
- Config persists at `~/.deeplake/state/skilify/config.json` (one global
457
- file shared across projects).
458
-
459
- ### `pull` / `unpull` — sharing skills across the org
460
-
461
- Once a teammate's skills are mined into the Deeplake `skills` table, you
462
- can install them locally with `pull`. Layout written to disk:
263
+ Triggers, generation flow, and env-var reference: **[docs/SUMMARIES.md](docs/SUMMARIES.md)**.
463
264
 
464
- ```text
465
- <root>/<name>--<author>/SKILL.md ← pulled skills (e.g. deploy--alice/)
466
- <root>/<name>/SKILL.md ← your locally-mined skills (flat, no suffix)
467
- ```
468
-
469
- The `--<author>` suffix keeps cross-author entries with the same name
470
- disjoint and lets Claude Code's single-depth skill loader find pulled
471
- skills without any symlink trickery. `<root>` is `~/.claude/skills` for
472
- `--to global` and `<cwd>/.claude/skills` for `--to project`.
473
-
474
- ```bash
475
- hivemind skilify pull # all authors, install globally
476
- hivemind skilify pull --user alice@example.com # only this author
477
- hivemind skilify pull --users a@x.com,b@y.com # multiple authors (CSV)
478
- hivemind skilify pull --all-users # explicit "no author filter" (default)
479
- hivemind skilify pull --to project # install under <cwd>/.claude/skills
480
- hivemind skilify pull --dry-run # preview, no disk writes
481
- hivemind skilify pull --force # overwrite even when local version >= remote
482
- hivemind skilify pull <skill-name> # pull only that skill (combinable with --user)
483
- ```
265
+ ## Skills (skillify)
484
266
 
485
- Every successful pull records an entry in
486
- `~/.deeplake/state/skilify/pulled.json`. That manifest is the source of
487
- truth for `unpull` — anything not in the manifest is **never** touched
488
- by default, even if its directory follows the `<name>--<author>` shape
489
- (this protects user-authored variant skills like `deploy--blue-green`).
267
+ Hivemind **codifies recurring patterns from your team's recent sessions into reusable skills** that propagate to every agent on your team — automatically. An async background worker fires on Stop / SessionEnd, mines recent sessions in scope, asks Haiku whether the activity contains something worth keeping, and writes a `SKILL.md` to `<project>/.claude/skills/<name>/`.
490
268
 
491
269
  ```bash
492
- hivemind skilify unpull # remove every pulled entry under the install scope
493
- hivemind skilify unpull --user alice@example.com # remove only this author's pulls
494
- hivemind skilify unpull --users a@x.com,b@y.com # multiple authors
495
- hivemind skilify unpull --not-mine # remove all pulls except your own
496
- hivemind skilify unpull --dry-run # preview, no disk writes
497
- hivemind skilify unpull --to project # operate on <cwd>/.claude/skills instead of global
498
- hivemind skilify unpull --all # ALSO remove flat-layout (locally-mined) skills — destructive
499
- hivemind skilify unpull --legacy-cleanup # ALSO remove pre-`--author`-layout `<projectkey>/` dirs from older skilify versions
270
+ hivemind skillify # show current scope, team, install, per-project state
271
+ hivemind skillify scope <me|team|org> # who counts as "in scope" for mining
272
+ hivemind skillify pull # install teammates' skills locally
273
+ hivemind skillify unpull # remove pulled skills
500
274
  ```
501
275
 
502
- Drift handling: if a manifest entry's directory was deleted out-of-band
503
- (e.g. `rm -rf` by hand), the next `unpull` reports it as `manifest-orphan`
504
- and prunes the entry from the manifest without errors.
505
-
506
- Cross-project caveat: same `(name, author)` from two different projects
507
- collides on disk under the new flat layout — the more recently pulled
508
- row wins, and the prior `SKILL.md` is preserved as `SKILL.md.bak`. The
509
- underlying row stays in the Deeplake `skills` table, so re-pulling from
510
- the other project recovers it.
511
-
512
- ### Configuration
513
-
514
- | Env var | Default | Effect |
515
- |--------------------------------------|---------|---------------------------------------------------------|
516
- | `HIVEMIND_SKILIFY_EVERY_N_TURNS` | `20` | Stop-counter threshold for mid-session worker fires |
517
- | `HIVEMIND_SKILLS_TABLE` | `skills`| Deeplake table name for org-wide provenance |
518
- | `HIVEMIND_SKILIFY_WORKER=1` | unset | Recursion guard (set automatically inside the worker) |
519
- | `HIVEMIND_CURSOR_MODEL` | `auto` | (cursor only) model passed to the cursor-agent gate call |
520
- | `HIVEMIND_HERMES_PROVIDER` | `openrouter` | (hermes only) provider passed to the hermes gate call |
521
- | `HIVEMIND_HERMES_MODEL` | `anthropic/claude-haiku-4-5` | (hermes only) model passed to hermes |
522
-
523
- ### Per-agent gate CLI
524
-
525
- The skilify worker calls each agent's own headless CLI for the gate
526
- prompt — so a user who only has codex / cursor / hermes installed
527
- never needs `claude` in their PATH:
528
-
529
- | Agent | Gate command |
530
- |-------------|----------------------------------------------------------------------------------------|
531
- | claude_code | `claude -p <prompt> --no-session-persistence --model haiku --permission-mode bypassPermissions` |
532
- | codex | `codex exec --dangerously-bypass-approvals-and-sandbox <prompt>` |
533
- | cursor | `cursor-agent --print --model <HIVEMIND_CURSOR_MODEL> --force --output-format text <prompt>` |
534
- | hermes | `hermes -z <prompt> --provider <HIVEMIND_HERMES_PROVIDER> -m <HIVEMIND_HERMES_MODEL> --yolo --ignore-user-config` |
535
-
536
- For hermes via OpenRouter (the default), set `OPENROUTER_API_KEY` in
537
- the environment; the worker inherits the parent process env. Other
538
- providers (anthropic, openai, etc.) need their respective API keys.
539
-
540
- ### Logs
541
-
542
- Worker activity logs to `~/.claude/hooks/skilify.log`. Each line shows
543
- which session pool was mined, what the gate decided, and whether a file
544
- was written.
276
+ Triggers, generation flow, full `pull` / `unpull` semantics, gate-CLI table per agent, env vars, logs: **[docs/SKILLIFY.md](docs/SKILLIFY.md)**.
545
277
 
546
278
  ## Architecture
547
279
 
548
- ### Integration model per agent
549
-
550
- | Agent | Mechanism | Hooks/tools wired |
551
- |-------------------|------------------------------------|-----------------------------------------------------------------------------------------|
552
- | **Claude Code** | Marketplace plugin | `SessionStart` · `UserPromptSubmit` · `PreToolUse` · `PostToolUse` · `Stop` · `SubagentStop` · `SessionEnd` |
553
- | **Codex** | `~/.codex/hooks.json` | `SessionStart` · `UserPromptSubmit` · `PreToolUse(Bash)` · `PostToolUse` · `Stop` |
554
- | **OpenClaw** | Native extension at `~/.openclaw/extensions/hivemind/` | `agent_end` capture · `before_agent_start` recall · contracted tools (`hivemind_search`/`read`/`index`) |
555
- | **Cursor (1.7+)** | `~/.cursor/hooks.json` | `sessionStart` · `beforeSubmitPrompt` · `postToolUse` · `afterAgentResponse` · `stop` · `sessionEnd` |
556
- | **Hermes** | Skill at `~/.hermes/skills/hivemind-memory/` | recall via grep on `~/.deeplake/memory/` |
557
- | **pi** | `~/.pi/agent/AGENTS.md` + skill | recall via grep on `~/.deeplake/memory/` |
280
+ Per-agent integration mechanisms (marketplace plugin, hooks, skills, native extension) and monorepo structure: **[docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)**.
558
281
 
559
- ### Monorepo structure
282
+ ## Roadmap
560
283
 
561
- ```
562
- hivemind/
563
- ├── src/ ← shared core (API client, auth, config, SQL utils)
564
- │ ├── hooks/ ← Claude Code hooks
565
- │ ├── hooks/codex/ ← Codex hooks
566
- │ ├── hooks/cursor/ ← Cursor hooks
567
- │ ├── hooks/hermes/ ← Hermes shell hooks
568
- │ ├── hooks/pi/ ← pi wiki-worker (extension lives in pi/extension-source/)
569
- │ ├── embeddings/ ← nomic embed-daemon + protocol + SQL helpers
570
- │ ├── mcp/ ← MCP server (used by Hermes; available to any future MCP-aware client)
571
- │ ├── commands/ ← auth, auth-creds, auth-login, session-prune
572
- │ └── cli/ ← unified `hivemind install` CLI + per-agent installers
573
- ├── claude-code/ ← Claude Code plugin source (marketplace-distributed)
574
- ├── codex/ ← Codex plugin build output (npm-distributed)
575
- ├── cursor/ ← Cursor plugin build output (npm-distributed)
576
- ├── hermes/ ← Hermes plugin build output (npm-distributed)
577
- ├── mcp/ ← MCP server build output (shared by Hermes + future MCP clients)
578
- ├── openclaw/ ← OpenClaw plugin source + build output (ClawHub-distributed)
579
- ├── pi/ ← pi extension source (ships raw .ts; pi compiles at load)
580
- └── bundle/ ← unified `hivemind` CLI build output
581
- ```
284
+ - **Trajectory export for fine-tuning.** Because traces are stored in Deeplake's tensor format, they're export-ready as PyTorch datasets. Teams running their own open-source models can fine-tune on their org's accumulated trajectories. A handful of advanced customers are already doing this against the trajectories their Claude Code and Codex agents generated.
285
+ - **GPU-accelerated dense retrieval at scale.** Local CPU embeddings already ship via the optional nomic-embed daemon (see [Semantic search](#semantic-search-optional)). Next: GPU-accelerated vector search over the full trace store, on by default.
286
+ - **Skill versioning and review.** Pre-release human review for codified skills before they propagate org-wide, for teams that want a curation step.
287
+ - **More agents.** If your team uses an agent that isn't on the supported-assistants list above, open an issue.
582
288
 
583
289
  ## Security
584
290
 
@@ -1070,7 +1070,7 @@ function extractLatestVersion(body) {
1070
1070
  return typeof v === "string" && v.length > 0 ? v : null;
1071
1071
  }
1072
1072
  function getInstalledVersion() {
1073
- return "0.7.15".length > 0 ? "0.7.15" : null;
1073
+ return "0.7.16".length > 0 ? "0.7.16" : null;
1074
1074
  }
1075
1075
  function isNewer(latest, current) {
1076
1076
  const parse = (v) => v.replace(/-.*$/, "").split(".").map(Number);
@@ -52,5 +52,5 @@
52
52
  }
53
53
  }
54
54
  },
55
- "version": "0.7.15"
55
+ "version": "0.7.16"
56
56
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hivemind",
3
- "version": "0.7.15",
3
+ "version": "0.7.16",
4
4
  "type": "module",
5
5
  "description": "Hivemind — cloud-backed persistent shared memory for AI agents, powered by DeepLake",
6
6
  "license": "Apache-2.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deeplake/hivemind",
3
- "version": "0.7.15",
3
+ "version": "0.7.16",
4
4
  "description": "Cloud-backed persistent shared memory for AI agents powered by Deeplake",
5
5
  "type": "module",
6
6
  "repository": {