@deeplake/hivemind 0.7.49 → 0.7.51

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/.claude-plugin/marketplace.json +3 -3
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/README.md +68 -40
  4. package/bundle/cli.js +9743 -21944
  5. package/codex/bundle/capture.js +3 -74
  6. package/codex/bundle/commands/auth-login.js +3 -74
  7. package/codex/bundle/graph-pull-worker.js +3 -74
  8. package/codex/bundle/pre-tool-use.js +3 -74
  9. package/codex/bundle/session-start-setup.js +3 -74
  10. package/codex/bundle/session-start.js +3 -74
  11. package/codex/bundle/shell/deeplake-shell.js +3 -74
  12. package/codex/bundle/skillify-worker.js +0 -28
  13. package/codex/bundle/stop.js +3 -74
  14. package/codex/skills/hivemind-goals/SKILL.md +2 -2
  15. package/cursor/bundle/capture.js +3 -74
  16. package/cursor/bundle/commands/auth-login.js +3 -74
  17. package/cursor/bundle/graph-pull-worker.js +3 -74
  18. package/cursor/bundle/pre-tool-use.js +3 -74
  19. package/cursor/bundle/session-end.js +3 -6
  20. package/cursor/bundle/session-start.js +68 -338
  21. package/cursor/bundle/shell/deeplake-shell.js +3 -74
  22. package/cursor/bundle/skillify-worker.js +0 -28
  23. package/hermes/bundle/capture.js +3 -74
  24. package/hermes/bundle/commands/auth-login.js +3 -74
  25. package/hermes/bundle/graph-pull-worker.js +3 -74
  26. package/hermes/bundle/pre-tool-use.js +3 -74
  27. package/hermes/bundle/session-end.js +3 -6
  28. package/hermes/bundle/session-start.js +68 -338
  29. package/hermes/bundle/shell/deeplake-shell.js +3 -74
  30. package/hermes/bundle/skillify-worker.js +0 -28
  31. package/mcp/bundle/server.js +3 -74
  32. package/openclaw/dist/chunks/{config-FH6JYSJW.js → config-3D3X7JQH.js} +3 -6
  33. package/openclaw/dist/index.js +2 -68
  34. package/openclaw/dist/skillify-worker.js +0 -28
  35. package/openclaw/openclaw.plugin.json +1 -1
  36. package/openclaw/package.json +1 -1
  37. package/openclaw/skills/hivemind-goals/SKILL.md +1 -1
  38. package/package.json +1 -1
@@ -23331,13 +23331,10 @@ function loadConfig() {
23331
23331
  sessionsTableName: process.env.HIVEMIND_SESSIONS_TABLE ?? "sessions",
23332
23332
  skillsTableName: process.env.HIVEMIND_SKILLS_TABLE ?? "skills",
23333
23333
  // Defaults match the table name written into the SQL — keep aligned
23334
- // with RULES_COLUMNS / TASKS_COLUMNS / TASK_EVENTS_COLUMNS in
23335
- // deeplake-schema.ts and with the e2e test-org override convention
23336
- // (memory_test / sessions_test → goals_test, etc.) documented in
23337
- // CLAUDE.md.
23334
+ // with RULES_COLUMNS in deeplake-schema.ts and with the e2e test-org
23335
+ // override convention (memory_test / sessions_test goals_test, etc.)
23336
+ // documented in CLAUDE.md.
23338
23337
  rulesTableName: process.env.HIVEMIND_RULES_TABLE ?? "hivemind_rules",
23339
- tasksTableName: process.env.HIVEMIND_TASKS_TABLE ?? "hivemind_tasks",
23340
- taskEventsTableName: process.env.HIVEMIND_TASK_EVENTS_TABLE ?? "hivemind_task_events",
23341
23338
  // Goals + KPIs (refined design — VFS path classifier maps
23342
23339
  // memory/goal/<user>/<status>/<uuid>.md → hivemind_goals row
23343
23340
  // memory/kpi/<uuid>/<kpi_id>.md → hivemind_kpis row
@@ -23450,32 +23447,6 @@ var RULES_COLUMNS = Object.freeze([
23450
23447
  { name: "agent", sql: "TEXT NOT NULL DEFAULT 'manual'" },
23451
23448
  { name: "plugin_version", sql: "TEXT NOT NULL DEFAULT ''" }
23452
23449
  ]);
23453
- var TASKS_COLUMNS = Object.freeze([
23454
- { name: "id", sql: "TEXT NOT NULL DEFAULT ''" },
23455
- { name: "task_id", sql: "TEXT NOT NULL DEFAULT ''" },
23456
- { name: "text", sql: "TEXT NOT NULL DEFAULT ''" },
23457
- { name: "scope", sql: "TEXT NOT NULL DEFAULT 'me'" },
23458
- { name: "status", sql: "TEXT NOT NULL DEFAULT 'active'" },
23459
- { name: "assigned_to", sql: "TEXT NOT NULL DEFAULT ''" },
23460
- { name: "assigned_by", sql: "TEXT NOT NULL DEFAULT ''" },
23461
- { name: "kpis", sql: "JSONB" },
23462
- { name: "version", sql: "BIGINT NOT NULL DEFAULT 1" },
23463
- { name: "created_at", sql: "TEXT NOT NULL DEFAULT ''" },
23464
- { name: "agent", sql: "TEXT NOT NULL DEFAULT 'manual'" },
23465
- { name: "plugin_version", sql: "TEXT NOT NULL DEFAULT ''" }
23466
- ]);
23467
- var TASK_EVENTS_COLUMNS = Object.freeze([
23468
- { name: "id", sql: "TEXT NOT NULL DEFAULT ''" },
23469
- { name: "task_id", sql: "TEXT NOT NULL DEFAULT ''" },
23470
- { name: "task_version", sql: "BIGINT NOT NULL DEFAULT 1" },
23471
- { name: "kpi_id", sql: "TEXT NOT NULL DEFAULT ''" },
23472
- { name: "value", sql: "BIGINT NOT NULL DEFAULT 0" },
23473
- { name: "note", sql: "TEXT NOT NULL DEFAULT ''" },
23474
- { name: "source", sql: "TEXT NOT NULL DEFAULT 'user'" },
23475
- { name: "agent", sql: "TEXT NOT NULL DEFAULT ''" },
23476
- { name: "ts", sql: "TEXT NOT NULL DEFAULT ''" },
23477
- { name: "plugin_version", sql: "TEXT NOT NULL DEFAULT ''" }
23478
- ]);
23479
23450
  var GOALS_COLUMNS = Object.freeze([
23480
23451
  { name: "id", sql: "TEXT NOT NULL DEFAULT ''" },
23481
23452
  { name: "goal_id", sql: "TEXT NOT NULL DEFAULT ''" },
@@ -23541,8 +23512,6 @@ validateSchema("MEMORY_COLUMNS", MEMORY_COLUMNS);
23541
23512
  validateSchema("SESSIONS_COLUMNS", SESSIONS_COLUMNS);
23542
23513
  validateSchema("SKILLS_COLUMNS", SKILLS_COLUMNS);
23543
23514
  validateSchema("RULES_COLUMNS", RULES_COLUMNS);
23544
- validateSchema("TASKS_COLUMNS", TASKS_COLUMNS);
23545
- validateSchema("TASK_EVENTS_COLUMNS", TASK_EVENTS_COLUMNS);
23546
23515
  validateSchema("GOALS_COLUMNS", GOALS_COLUMNS);
23547
23516
  validateSchema("KPIS_COLUMNS", KPIS_COLUMNS);
23548
23517
  validateSchema("CODEBASE_COLUMNS", CODEBASE_COLUMNS);
@@ -24144,46 +24113,6 @@ var DeeplakeApi = class {
24144
24113
  await this.healSchema(safe, RULES_COLUMNS);
24145
24114
  await this.ensureLookupIndex(safe, "rule_id_version", `("rule_id", "version")`);
24146
24115
  }
24147
- /**
24148
- * Create the tasks table.
24149
- *
24150
- * Same write pattern as rules + skills. `kpis` is a nullable JSONB
24151
- * column with the agent's KPI metadata; KPI current values come from
24152
- * `task_events` (SUM(value)), not this snapshot.
24153
- */
24154
- async ensureTasksTable(name) {
24155
- const safe = sqlIdent(name);
24156
- const tables = await this.listTables();
24157
- if (!tables.includes(safe)) {
24158
- log3(`table "${safe}" not found, creating`);
24159
- await this.createTableWithRetry(buildCreateTableSql(safe, TASKS_COLUMNS), safe);
24160
- log3(`table "${safe}" created`);
24161
- if (!tables.includes(safe))
24162
- this._tablesCache = [...tables, safe];
24163
- }
24164
- await this.healSchema(safe, TASKS_COLUMNS);
24165
- await this.ensureLookupIndex(safe, "task_id_version", `("task_id", "version")`);
24166
- }
24167
- /**
24168
- * Create the task-events table.
24169
- *
24170
- * Append-only. Every INSERT is a fresh row; never UPDATE. KPI current
24171
- * value is `SUM(value) WHERE task_id=? AND kpi_id=?`. Index on
24172
- * (task_id, kpi_id) is the canonical aggregation key.
24173
- */
24174
- async ensureTaskEventsTable(name) {
24175
- const safe = sqlIdent(name);
24176
- const tables = await this.listTables();
24177
- if (!tables.includes(safe)) {
24178
- log3(`table "${safe}" not found, creating`);
24179
- await this.createTableWithRetry(buildCreateTableSql(safe, TASK_EVENTS_COLUMNS), safe);
24180
- log3(`table "${safe}" created`);
24181
- if (!tables.includes(safe))
24182
- this._tablesCache = [...tables, safe];
24183
- }
24184
- await this.healSchema(safe, TASK_EVENTS_COLUMNS);
24185
- await this.ensureLookupIndex(safe, "task_id_kpi_id", `("task_id", "kpi_id")`);
24186
- }
24187
24116
  /**
24188
24117
  * Create the goals table.
24189
24118
  *
@@ -29,13 +29,10 @@ function loadConfig() {
29
29
  sessionsTableName: "sessions",
30
30
  skillsTableName: process.env.HIVEMIND_SKILLS_TABLE ?? "skills",
31
31
  // Defaults match the table name written into the SQL — keep aligned
32
- // with RULES_COLUMNS / TASKS_COLUMNS / TASK_EVENTS_COLUMNS in
33
- // deeplake-schema.ts and with the e2e test-org override convention
34
- // (memory_test / sessions_test → goals_test, etc.) documented in
35
- // CLAUDE.md.
32
+ // with RULES_COLUMNS in deeplake-schema.ts and with the e2e test-org
33
+ // override convention (memory_test / sessions_test goals_test, etc.)
34
+ // documented in CLAUDE.md.
36
35
  rulesTableName: process.env.HIVEMIND_RULES_TABLE ?? "hivemind_rules",
37
- tasksTableName: process.env.HIVEMIND_TASKS_TABLE ?? "hivemind_tasks",
38
- taskEventsTableName: process.env.HIVEMIND_TASK_EVENTS_TABLE ?? "hivemind_task_events",
39
36
  // Goals + KPIs (refined design — VFS path classifier maps
40
37
  // memory/goal/<user>/<status>/<uuid>.md → hivemind_goals row
41
38
  // memory/kpi/<uuid>/<kpi_id>.md → hivemind_kpis row
@@ -212,32 +212,6 @@ var RULES_COLUMNS = Object.freeze([
212
212
  { name: "agent", sql: "TEXT NOT NULL DEFAULT 'manual'" },
213
213
  { name: "plugin_version", sql: "TEXT NOT NULL DEFAULT ''" }
214
214
  ]);
215
- var TASKS_COLUMNS = Object.freeze([
216
- { name: "id", sql: "TEXT NOT NULL DEFAULT ''" },
217
- { name: "task_id", sql: "TEXT NOT NULL DEFAULT ''" },
218
- { name: "text", sql: "TEXT NOT NULL DEFAULT ''" },
219
- { name: "scope", sql: "TEXT NOT NULL DEFAULT 'me'" },
220
- { name: "status", sql: "TEXT NOT NULL DEFAULT 'active'" },
221
- { name: "assigned_to", sql: "TEXT NOT NULL DEFAULT ''" },
222
- { name: "assigned_by", sql: "TEXT NOT NULL DEFAULT ''" },
223
- { name: "kpis", sql: "JSONB" },
224
- { name: "version", sql: "BIGINT NOT NULL DEFAULT 1" },
225
- { name: "created_at", sql: "TEXT NOT NULL DEFAULT ''" },
226
- { name: "agent", sql: "TEXT NOT NULL DEFAULT 'manual'" },
227
- { name: "plugin_version", sql: "TEXT NOT NULL DEFAULT ''" }
228
- ]);
229
- var TASK_EVENTS_COLUMNS = Object.freeze([
230
- { name: "id", sql: "TEXT NOT NULL DEFAULT ''" },
231
- { name: "task_id", sql: "TEXT NOT NULL DEFAULT ''" },
232
- { name: "task_version", sql: "BIGINT NOT NULL DEFAULT 1" },
233
- { name: "kpi_id", sql: "TEXT NOT NULL DEFAULT ''" },
234
- { name: "value", sql: "BIGINT NOT NULL DEFAULT 0" },
235
- { name: "note", sql: "TEXT NOT NULL DEFAULT ''" },
236
- { name: "source", sql: "TEXT NOT NULL DEFAULT 'user'" },
237
- { name: "agent", sql: "TEXT NOT NULL DEFAULT ''" },
238
- { name: "ts", sql: "TEXT NOT NULL DEFAULT ''" },
239
- { name: "plugin_version", sql: "TEXT NOT NULL DEFAULT ''" }
240
- ]);
241
215
  var GOALS_COLUMNS = Object.freeze([
242
216
  { name: "id", sql: "TEXT NOT NULL DEFAULT ''" },
243
217
  { name: "goal_id", sql: "TEXT NOT NULL DEFAULT ''" },
@@ -305,8 +279,6 @@ validateSchema("MEMORY_COLUMNS", MEMORY_COLUMNS);
305
279
  validateSchema("SESSIONS_COLUMNS", SESSIONS_COLUMNS);
306
280
  validateSchema("SKILLS_COLUMNS", SKILLS_COLUMNS);
307
281
  validateSchema("RULES_COLUMNS", RULES_COLUMNS);
308
- validateSchema("TASKS_COLUMNS", TASKS_COLUMNS);
309
- validateSchema("TASK_EVENTS_COLUMNS", TASK_EVENTS_COLUMNS);
310
282
  validateSchema("GOALS_COLUMNS", GOALS_COLUMNS);
311
283
  validateSchema("KPIS_COLUMNS", KPIS_COLUMNS);
312
284
  validateSchema("CODEBASE_COLUMNS", CODEBASE_COLUMNS);
@@ -898,44 +870,6 @@ var DeeplakeApi = class {
898
870
  await this.healSchema(safe, RULES_COLUMNS);
899
871
  await this.ensureLookupIndex(safe, "rule_id_version", `("rule_id", "version")`);
900
872
  }
901
- /**
902
- * Create the tasks table.
903
- *
904
- * Same write pattern as rules + skills. `kpis` is a nullable JSONB
905
- * column with the agent's KPI metadata; KPI current values come from
906
- * `task_events` (SUM(value)), not this snapshot.
907
- */
908
- async ensureTasksTable(name) {
909
- const safe = sqlIdent(name);
910
- const tables = await this.listTables();
911
- if (!tables.includes(safe)) {
912
- log3(`table "${safe}" not found, creating`);
913
- await this.createTableWithRetry(buildCreateTableSql(safe, TASKS_COLUMNS), safe);
914
- log3(`table "${safe}" created`);
915
- if (!tables.includes(safe)) this._tablesCache = [...tables, safe];
916
- }
917
- await this.healSchema(safe, TASKS_COLUMNS);
918
- await this.ensureLookupIndex(safe, "task_id_version", `("task_id", "version")`);
919
- }
920
- /**
921
- * Create the task-events table.
922
- *
923
- * Append-only. Every INSERT is a fresh row; never UPDATE. KPI current
924
- * value is `SUM(value) WHERE task_id=? AND kpi_id=?`. Index on
925
- * (task_id, kpi_id) is the canonical aggregation key.
926
- */
927
- async ensureTaskEventsTable(name) {
928
- const safe = sqlIdent(name);
929
- const tables = await this.listTables();
930
- if (!tables.includes(safe)) {
931
- log3(`table "${safe}" not found, creating`);
932
- await this.createTableWithRetry(buildCreateTableSql(safe, TASK_EVENTS_COLUMNS), safe);
933
- log3(`table "${safe}" created`);
934
- if (!tables.includes(safe)) this._tablesCache = [...tables, safe];
935
- }
936
- await this.healSchema(safe, TASK_EVENTS_COLUMNS);
937
- await this.ensureLookupIndex(safe, "task_id_kpi_id", `("task_id", "kpi_id")`);
938
- }
939
873
  /**
940
874
  * Create the goals table.
941
875
  *
@@ -1737,7 +1671,7 @@ function loadCredsModule() {
1737
1671
  return credsModulePromise;
1738
1672
  }
1739
1673
  function loadConfigModule() {
1740
- if (!configModulePromise) configModulePromise = import("./chunks/config-FH6JYSJW.js");
1674
+ if (!configModulePromise) configModulePromise = import("./chunks/config-3D3X7JQH.js");
1741
1675
  return configModulePromise;
1742
1676
  }
1743
1677
  async function loadCredentials2() {
@@ -1793,7 +1727,7 @@ function extractLatestVersion(body) {
1793
1727
  return typeof v === "string" && v.length > 0 ? v : null;
1794
1728
  }
1795
1729
  function getInstalledVersion() {
1796
- return "0.7.49".length > 0 ? "0.7.49" : null;
1730
+ return "0.7.51".length > 0 ? "0.7.51" : null;
1797
1731
  }
1798
1732
  function isNewer(latest, current) {
1799
1733
  const parse = (v) => v.replace(/-.*$/, "").split(".").map(Number);
@@ -391,32 +391,6 @@ var RULES_COLUMNS = Object.freeze([
391
391
  { name: "agent", sql: "TEXT NOT NULL DEFAULT 'manual'" },
392
392
  { name: "plugin_version", sql: "TEXT NOT NULL DEFAULT ''" }
393
393
  ]);
394
- var TASKS_COLUMNS = Object.freeze([
395
- { name: "id", sql: "TEXT NOT NULL DEFAULT ''" },
396
- { name: "task_id", sql: "TEXT NOT NULL DEFAULT ''" },
397
- { name: "text", sql: "TEXT NOT NULL DEFAULT ''" },
398
- { name: "scope", sql: "TEXT NOT NULL DEFAULT 'me'" },
399
- { name: "status", sql: "TEXT NOT NULL DEFAULT 'active'" },
400
- { name: "assigned_to", sql: "TEXT NOT NULL DEFAULT ''" },
401
- { name: "assigned_by", sql: "TEXT NOT NULL DEFAULT ''" },
402
- { name: "kpis", sql: "JSONB" },
403
- { name: "version", sql: "BIGINT NOT NULL DEFAULT 1" },
404
- { name: "created_at", sql: "TEXT NOT NULL DEFAULT ''" },
405
- { name: "agent", sql: "TEXT NOT NULL DEFAULT 'manual'" },
406
- { name: "plugin_version", sql: "TEXT NOT NULL DEFAULT ''" }
407
- ]);
408
- var TASK_EVENTS_COLUMNS = Object.freeze([
409
- { name: "id", sql: "TEXT NOT NULL DEFAULT ''" },
410
- { name: "task_id", sql: "TEXT NOT NULL DEFAULT ''" },
411
- { name: "task_version", sql: "BIGINT NOT NULL DEFAULT 1" },
412
- { name: "kpi_id", sql: "TEXT NOT NULL DEFAULT ''" },
413
- { name: "value", sql: "BIGINT NOT NULL DEFAULT 0" },
414
- { name: "note", sql: "TEXT NOT NULL DEFAULT ''" },
415
- { name: "source", sql: "TEXT NOT NULL DEFAULT 'user'" },
416
- { name: "agent", sql: "TEXT NOT NULL DEFAULT ''" },
417
- { name: "ts", sql: "TEXT NOT NULL DEFAULT ''" },
418
- { name: "plugin_version", sql: "TEXT NOT NULL DEFAULT ''" }
419
- ]);
420
394
  var GOALS_COLUMNS = Object.freeze([
421
395
  { name: "id", sql: "TEXT NOT NULL DEFAULT ''" },
422
396
  { name: "goal_id", sql: "TEXT NOT NULL DEFAULT ''" },
@@ -482,8 +456,6 @@ validateSchema("MEMORY_COLUMNS", MEMORY_COLUMNS);
482
456
  validateSchema("SESSIONS_COLUMNS", SESSIONS_COLUMNS);
483
457
  validateSchema("SKILLS_COLUMNS", SKILLS_COLUMNS);
484
458
  validateSchema("RULES_COLUMNS", RULES_COLUMNS);
485
- validateSchema("TASKS_COLUMNS", TASKS_COLUMNS);
486
- validateSchema("TASK_EVENTS_COLUMNS", TASK_EVENTS_COLUMNS);
487
459
  validateSchema("GOALS_COLUMNS", GOALS_COLUMNS);
488
460
  validateSchema("KPIS_COLUMNS", KPIS_COLUMNS);
489
461
  validateSchema("CODEBASE_COLUMNS", CODEBASE_COLUMNS);
@@ -54,5 +54,5 @@
54
54
  }
55
55
  }
56
56
  },
57
- "version": "0.7.49"
57
+ "version": "0.7.51"
58
58
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hivemind",
3
- "version": "0.7.49",
3
+ "version": "0.7.51",
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",
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: hivemind-goals
3
- description: Create, track, and read team goals + KPIs via Hivemind from openclaw. Use whenever the user mentions a goal, objective, KPI, target, milestone, or asks to track progress on something measurable.
3
+ description: Create, track, and read team goals + KPIs via Hivemind from openclaw. Use whenever the user mentions a goal, objective, KPI, target, milestone, or asks to track progress on something measurable. ALSO use when the user says "task", "todo", "work item", "remind me to", "fix X", or any actionable work item — the goal system replaced the legacy `hivemind tasks` CLI and now covers both objectives and tasks.
4
4
  allowed-tools: hivemind_search, hivemind_read, hivemind_index, hivemind_goal_add, hivemind_kpi_add
5
5
  ---
6
6
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deeplake/hivemind",
3
- "version": "0.7.49",
3
+ "version": "0.7.51",
4
4
  "description": "Cloud-backed persistent shared memory for AI agents powered by Deeplake",
5
5
  "type": "module",
6
6
  "repository": {