@deeplake/hivemind 0.7.48 → 0.7.50
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/.claude-plugin/marketplace.json +3 -3
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +51 -5
- package/bundle/cli.js +1 -1
- package/codex/bundle/commands/auth-login.js +1 -1
- package/cursor/bundle/commands/auth-login.js +1 -1
- package/hermes/bundle/commands/auth-login.js +1 -1
- package/openclaw/dist/index.js +1 -1
- package/openclaw/openclaw.plugin.json +1 -1
- package/openclaw/package.json +1 -1
- package/package.json +1 -1
|
@@ -6,18 +6,18 @@
|
|
|
6
6
|
},
|
|
7
7
|
"metadata": {
|
|
8
8
|
"description": "Cloud-backed persistent shared memory for AI agents powered by Deeplake",
|
|
9
|
-
"version": "0.7.
|
|
9
|
+
"version": "0.7.50"
|
|
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
|
+
"version": "0.7.50",
|
|
16
16
|
"source": {
|
|
17
17
|
"source": "git-subdir",
|
|
18
18
|
"url": "https://github.com/activeloopai/hivemind.git",
|
|
19
19
|
"path": "claude-code",
|
|
20
|
-
"sha": "
|
|
20
|
+
"sha": "5a1de88c6297e427db26cea4552026b209051e93"
|
|
21
21
|
},
|
|
22
22
|
"homepage": "https://github.com/activeloopai/hivemind"
|
|
23
23
|
}
|
|
@@ -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.
|
|
4
|
+
"version": "0.7.50",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Activeloop",
|
|
7
7
|
"url": "https://deeplake.ai"
|
package/README.md
CHANGED
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
<a href="LICENSE"><img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg" alt="License"></a>
|
|
17
17
|
<a href="package.json"><img src="https://img.shields.io/badge/node-%3E%3D22.0.0-brightgreen.svg" alt="Node"></a>
|
|
18
18
|
<a href="https://deeplake.ai"><img src="https://img.shields.io/badge/Powered%20by-Deeplake-orange.svg" alt="Deeplake"></a>
|
|
19
|
+
<a href="https://www.ycombinator.com"><img src="https://img.shields.io/badge/Y%20Combinator-backed-ff6600.svg" alt="Y Combinator backed"></a>
|
|
19
20
|
</p>
|
|
20
21
|
|
|
21
22
|
<p align="center">
|
|
@@ -26,14 +27,35 @@
|
|
|
26
27
|
>
|
|
27
28
|
> Tuesday, every agent on the team can execute the pattern.
|
|
28
29
|
|
|
29
|
-
|
|
30
|
+
On [LoCoMo](https://arxiv.org/abs/2402.17753), the public long-context memory benchmark, Hivemind is **25% cheaper, 1.7× fewer tokens, and 31% fewer turns** than running without shared memory. ([See the numbers below.](#benchmarks))
|
|
31
|
+
|
|
32
|
+
**Beyond memory.** Hivemind doesn't just remember — it mines your team's traces for repeated patterns and codifies them into reusable skills that propagate back into every agent on the team. The agent your junior engineer used this morning is sharper because of what your senior engineer's agent figured out last week.
|
|
30
33
|
|
|
31
34
|
- 📥 **Captures** every session's prompts, tool calls, and responses as structured traces in Deeplake
|
|
32
|
-
- 🧠 **Codifies** patterns
|
|
33
|
-
- 🔍 **Searches**
|
|
35
|
+
- 🧠 **Codifies** patterns into reusable `SKILL.md` files, available to every agent on your team
|
|
36
|
+
- 🔍 **Searches** traces and skills with hybrid lexical + semantic retrieval (BM25 fallback when embeddings off)
|
|
34
37
|
- 🔗 **Propagates** capability across sessions, agents, teammates, and machines in real time
|
|
35
38
|
- 📁 **Intercepts** file operations on `~/.deeplake/memory/` through a virtual filesystem backed by SQL
|
|
36
39
|
- 📝 **Summarizes** sessions into AI-generated wiki pages via a background worker at session end
|
|
40
|
+
- ☁️ **BYOC**: keep data in your own GCS, Azure, S3, or on-prem bucket — [see Security & storage](#security--storage)
|
|
41
|
+
|
|
42
|
+
## Benchmarks
|
|
43
|
+
|
|
44
|
+
On the [LoCoMo](https://arxiv.org/abs/2402.17753) long-context memory benchmark (100 QA pairs, Claude Haiku via `claude -p`, hybrid lexical + semantic retrieval), Hivemind cuts cost, tokens, and turns versus a no-memory baseline:
|
|
45
|
+
|
|
46
|
+
| Metric | Baseline | Hivemind | Improvement |
|
|
47
|
+
|-------------------|----------|----------|------------------|
|
|
48
|
+
| Cost / 100 QA | $8.94 | $6.65 | **25% cheaper** |
|
|
49
|
+
| Tokens / question | 1,700 | 1,008 | **1.7× fewer** |
|
|
50
|
+
| Turns / question | 8.9 | 6.2 | **31% fewer** |
|
|
51
|
+
|
|
52
|
+
The agent reaches the answer in fewer turns with less context, because the prior work is already in scope at recall time — not re-derived per session.
|
|
53
|
+
|
|
54
|
+
<p align="center">
|
|
55
|
+
<a href="https://star-history.com/#activeloopai/hivemind&Date">
|
|
56
|
+
<img src="https://api.star-history.com/svg?repos=activeloopai/hivemind&type=Date" alt="Star History Chart" width="600">
|
|
57
|
+
</a>
|
|
58
|
+
</p>
|
|
37
59
|
|
|
38
60
|
## Quick start
|
|
39
61
|
|
|
@@ -360,13 +382,37 @@ Per-agent integration mechanisms (marketplace plugin, hooks, skills, native exte
|
|
|
360
382
|
- **Skill versioning and review.** Pre-release human review for codified skills before they propagate org-wide, for teams that want a curation step.
|
|
361
383
|
- **More agents.** If your team uses an agent that isn't on the supported-assistants list above, open an issue.
|
|
362
384
|
|
|
363
|
-
## Security
|
|
385
|
+
## Security & storage
|
|
386
|
+
|
|
387
|
+
### Tenant isolation & encryption
|
|
388
|
+
|
|
389
|
+
- TLS between every agent and Deep Lake. AES-256 on the bytes once they land. Your cloud credentials live in Deep Lake's vault — Hivemind never sees the raw keys.
|
|
390
|
+
- Org and workspace boundaries enforced at the storage layer, not just the API. Sessions never share a row, a partition, or an index with another workspace.
|
|
391
|
+
- Disable capture per session with `HIVEMIND_CAPTURE=false`. Delete a workspace and the underlying objects go with it.
|
|
392
|
+
|
|
393
|
+
### Code-level controls
|
|
364
394
|
|
|
365
395
|
- SQL values escaped with `sqlStr()`, `sqlLike()`, `sqlIdent()`
|
|
366
396
|
- ~70 allowlisted builtins run in the virtual FS; unrecognized commands are denied
|
|
367
397
|
- Credentials stored with mode `0600`, config dir with mode `0700`
|
|
368
398
|
- Device flow login: no tokens in environment or code
|
|
369
|
-
|
|
399
|
+
|
|
400
|
+
### Bring your own cloud (BYOC)
|
|
401
|
+
|
|
402
|
+
Hivemind Cloud is the default. When that isn't enough, point Hivemind at storage in your own cloud — we handle the orchestration, data never leaves your perimeter.
|
|
403
|
+
|
|
404
|
+
| Provider | Status | Setup |
|
|
405
|
+
|----------------------------|------------|--------------------------------------------------------|
|
|
406
|
+
| Google Cloud Storage | Available | [docs](https://docs.deeplake.ai/latest/guide/gcs/) |
|
|
407
|
+
| Azure Blob Storage | Available | [docs](https://docs.deeplake.ai/latest/guide/azure/) |
|
|
408
|
+
| Amazon S3 | Available | [contact us](https://deeplake.ai/hivemind#security) |
|
|
409
|
+
| S3-compatible on-prem | On request | [contact us](https://deeplake.ai/hivemind#security) |
|
|
410
|
+
|
|
411
|
+
## Who builds Hivemind
|
|
412
|
+
|
|
413
|
+
Hivemind is built and maintained by [Activeloop](https://activeloop.ai) — the open-source team behind [Deeplake](https://github.com/activeloopai/deeplake), backed by Y Combinator.
|
|
414
|
+
|
|
415
|
+
We run Hivemind ourselves, all day, across Claude Code, OpenClaw, Codex, and Cursor. Every benchmark number above came from our own internal eval against the LoCoMo public benchmark. If you're running coding agents at a team or org and want to talk through your setup, drop us a line: [hello@activeloop.ai](mailto:hello@activeloop.ai).
|
|
370
416
|
|
|
371
417
|
## Development
|
|
372
418
|
|
package/bundle/cli.js
CHANGED
|
@@ -16715,7 +16715,7 @@ async function runAuthCommand(args) {
|
|
|
16715
16715
|
}
|
|
16716
16716
|
case "whoami": {
|
|
16717
16717
|
if (!creds) {
|
|
16718
|
-
console.log("Not logged in. Run:
|
|
16718
|
+
console.log("Not logged in. Run: hivemind login");
|
|
16719
16719
|
break;
|
|
16720
16720
|
}
|
|
16721
16721
|
console.log(`User org: ${creds.orgName ?? creds.orgId}`);
|
|
@@ -1451,7 +1451,7 @@ async function runAuthCommand(args) {
|
|
|
1451
1451
|
}
|
|
1452
1452
|
case "whoami": {
|
|
1453
1453
|
if (!creds) {
|
|
1454
|
-
console.log("Not logged in. Run:
|
|
1454
|
+
console.log("Not logged in. Run: hivemind login");
|
|
1455
1455
|
break;
|
|
1456
1456
|
}
|
|
1457
1457
|
console.log(`User org: ${creds.orgName ?? creds.orgId}`);
|
|
@@ -1451,7 +1451,7 @@ async function runAuthCommand(args) {
|
|
|
1451
1451
|
}
|
|
1452
1452
|
case "whoami": {
|
|
1453
1453
|
if (!creds) {
|
|
1454
|
-
console.log("Not logged in. Run:
|
|
1454
|
+
console.log("Not logged in. Run: hivemind login");
|
|
1455
1455
|
break;
|
|
1456
1456
|
}
|
|
1457
1457
|
console.log(`User org: ${creds.orgName ?? creds.orgId}`);
|
|
@@ -1451,7 +1451,7 @@ async function runAuthCommand(args) {
|
|
|
1451
1451
|
}
|
|
1452
1452
|
case "whoami": {
|
|
1453
1453
|
if (!creds) {
|
|
1454
|
-
console.log("Not logged in. Run:
|
|
1454
|
+
console.log("Not logged in. Run: hivemind login");
|
|
1455
1455
|
break;
|
|
1456
1456
|
}
|
|
1457
1457
|
console.log(`User org: ${creds.orgName ?? creds.orgId}`);
|
package/openclaw/dist/index.js
CHANGED
|
@@ -1793,7 +1793,7 @@ function extractLatestVersion(body) {
|
|
|
1793
1793
|
return typeof v === "string" && v.length > 0 ? v : null;
|
|
1794
1794
|
}
|
|
1795
1795
|
function getInstalledVersion() {
|
|
1796
|
-
return "0.7.
|
|
1796
|
+
return "0.7.50".length > 0 ? "0.7.50" : null;
|
|
1797
1797
|
}
|
|
1798
1798
|
function isNewer(latest, current) {
|
|
1799
1799
|
const parse = (v) => v.replace(/-.*$/, "").split(".").map(Number);
|
package/openclaw/package.json
CHANGED