@deeplake/hivemind 0.7.50 → 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 +17 -35
  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
@@ -66793,13 +66793,10 @@ function loadConfig() {
66793
66793
  sessionsTableName: process.env.HIVEMIND_SESSIONS_TABLE ?? "sessions",
66794
66794
  skillsTableName: process.env.HIVEMIND_SKILLS_TABLE ?? "skills",
66795
66795
  // Defaults match the table name written into the SQL — keep aligned
66796
- // with RULES_COLUMNS / TASKS_COLUMNS / TASK_EVENTS_COLUMNS in
66797
- // deeplake-schema.ts and with the e2e test-org override convention
66798
- // (memory_test / sessions_test → goals_test, etc.) documented in
66799
- // CLAUDE.md.
66796
+ // with RULES_COLUMNS in deeplake-schema.ts and with the e2e test-org
66797
+ // override convention (memory_test / sessions_test goals_test, etc.)
66798
+ // documented in CLAUDE.md.
66800
66799
  rulesTableName: process.env.HIVEMIND_RULES_TABLE ?? "hivemind_rules",
66801
- tasksTableName: process.env.HIVEMIND_TASKS_TABLE ?? "hivemind_tasks",
66802
- taskEventsTableName: process.env.HIVEMIND_TASK_EVENTS_TABLE ?? "hivemind_task_events",
66803
66800
  // Goals + KPIs (refined design — VFS path classifier maps
66804
66801
  // memory/goal/<user>/<status>/<uuid>.md → hivemind_goals row
66805
66802
  // memory/kpi/<uuid>/<kpi_id>.md → hivemind_kpis row
@@ -66921,32 +66918,6 @@ var RULES_COLUMNS = Object.freeze([
66921
66918
  { name: "agent", sql: "TEXT NOT NULL DEFAULT 'manual'" },
66922
66919
  { name: "plugin_version", sql: "TEXT NOT NULL DEFAULT ''" }
66923
66920
  ]);
66924
- var TASKS_COLUMNS = Object.freeze([
66925
- { name: "id", sql: "TEXT NOT NULL DEFAULT ''" },
66926
- { name: "task_id", sql: "TEXT NOT NULL DEFAULT ''" },
66927
- { name: "text", sql: "TEXT NOT NULL DEFAULT ''" },
66928
- { name: "scope", sql: "TEXT NOT NULL DEFAULT 'me'" },
66929
- { name: "status", sql: "TEXT NOT NULL DEFAULT 'active'" },
66930
- { name: "assigned_to", sql: "TEXT NOT NULL DEFAULT ''" },
66931
- { name: "assigned_by", sql: "TEXT NOT NULL DEFAULT ''" },
66932
- { name: "kpis", sql: "JSONB" },
66933
- { name: "version", sql: "BIGINT NOT NULL DEFAULT 1" },
66934
- { name: "created_at", sql: "TEXT NOT NULL DEFAULT ''" },
66935
- { name: "agent", sql: "TEXT NOT NULL DEFAULT 'manual'" },
66936
- { name: "plugin_version", sql: "TEXT NOT NULL DEFAULT ''" }
66937
- ]);
66938
- var TASK_EVENTS_COLUMNS = Object.freeze([
66939
- { name: "id", sql: "TEXT NOT NULL DEFAULT ''" },
66940
- { name: "task_id", sql: "TEXT NOT NULL DEFAULT ''" },
66941
- { name: "task_version", sql: "BIGINT NOT NULL DEFAULT 1" },
66942
- { name: "kpi_id", sql: "TEXT NOT NULL DEFAULT ''" },
66943
- { name: "value", sql: "BIGINT NOT NULL DEFAULT 0" },
66944
- { name: "note", sql: "TEXT NOT NULL DEFAULT ''" },
66945
- { name: "source", sql: "TEXT NOT NULL DEFAULT 'user'" },
66946
- { name: "agent", sql: "TEXT NOT NULL DEFAULT ''" },
66947
- { name: "ts", sql: "TEXT NOT NULL DEFAULT ''" },
66948
- { name: "plugin_version", sql: "TEXT NOT NULL DEFAULT ''" }
66949
- ]);
66950
66921
  var GOALS_COLUMNS = Object.freeze([
66951
66922
  { name: "id", sql: "TEXT NOT NULL DEFAULT ''" },
66952
66923
  { name: "goal_id", sql: "TEXT NOT NULL DEFAULT ''" },
@@ -67012,8 +66983,6 @@ validateSchema("MEMORY_COLUMNS", MEMORY_COLUMNS);
67012
66983
  validateSchema("SESSIONS_COLUMNS", SESSIONS_COLUMNS);
67013
66984
  validateSchema("SKILLS_COLUMNS", SKILLS_COLUMNS);
67014
66985
  validateSchema("RULES_COLUMNS", RULES_COLUMNS);
67015
- validateSchema("TASKS_COLUMNS", TASKS_COLUMNS);
67016
- validateSchema("TASK_EVENTS_COLUMNS", TASK_EVENTS_COLUMNS);
67017
66986
  validateSchema("GOALS_COLUMNS", GOALS_COLUMNS);
67018
66987
  validateSchema("KPIS_COLUMNS", KPIS_COLUMNS);
67019
66988
  validateSchema("CODEBASE_COLUMNS", CODEBASE_COLUMNS);
@@ -67633,46 +67602,6 @@ var DeeplakeApi = class {
67633
67602
  await this.healSchema(safe, RULES_COLUMNS);
67634
67603
  await this.ensureLookupIndex(safe, "rule_id_version", `("rule_id", "version")`);
67635
67604
  }
67636
- /**
67637
- * Create the tasks table.
67638
- *
67639
- * Same write pattern as rules + skills. `kpis` is a nullable JSONB
67640
- * column with the agent's KPI metadata; KPI current values come from
67641
- * `task_events` (SUM(value)), not this snapshot.
67642
- */
67643
- async ensureTasksTable(name) {
67644
- const safe = sqlIdent(name);
67645
- const tables = await this.listTables();
67646
- if (!tables.includes(safe)) {
67647
- log3(`table "${safe}" not found, creating`);
67648
- await this.createTableWithRetry(buildCreateTableSql(safe, TASKS_COLUMNS), safe);
67649
- log3(`table "${safe}" created`);
67650
- if (!tables.includes(safe))
67651
- this._tablesCache = [...tables, safe];
67652
- }
67653
- await this.healSchema(safe, TASKS_COLUMNS);
67654
- await this.ensureLookupIndex(safe, "task_id_version", `("task_id", "version")`);
67655
- }
67656
- /**
67657
- * Create the task-events table.
67658
- *
67659
- * Append-only. Every INSERT is a fresh row; never UPDATE. KPI current
67660
- * value is `SUM(value) WHERE task_id=? AND kpi_id=?`. Index on
67661
- * (task_id, kpi_id) is the canonical aggregation key.
67662
- */
67663
- async ensureTaskEventsTable(name) {
67664
- const safe = sqlIdent(name);
67665
- const tables = await this.listTables();
67666
- if (!tables.includes(safe)) {
67667
- log3(`table "${safe}" not found, creating`);
67668
- await this.createTableWithRetry(buildCreateTableSql(safe, TASK_EVENTS_COLUMNS), safe);
67669
- log3(`table "${safe}" created`);
67670
- if (!tables.includes(safe))
67671
- this._tablesCache = [...tables, safe];
67672
- }
67673
- await this.healSchema(safe, TASK_EVENTS_COLUMNS);
67674
- await this.ensureLookupIndex(safe, "task_id_kpi_id", `("task_id", "kpi_id")`);
67675
- }
67676
67605
  /**
67677
67606
  * Create the goals table.
67678
67607
  *
@@ -390,32 +390,6 @@ var RULES_COLUMNS = Object.freeze([
390
390
  { name: "agent", sql: "TEXT NOT NULL DEFAULT 'manual'" },
391
391
  { name: "plugin_version", sql: "TEXT NOT NULL DEFAULT ''" }
392
392
  ]);
393
- var TASKS_COLUMNS = Object.freeze([
394
- { name: "id", sql: "TEXT NOT NULL DEFAULT ''" },
395
- { name: "task_id", sql: "TEXT NOT NULL DEFAULT ''" },
396
- { name: "text", sql: "TEXT NOT NULL DEFAULT ''" },
397
- { name: "scope", sql: "TEXT NOT NULL DEFAULT 'me'" },
398
- { name: "status", sql: "TEXT NOT NULL DEFAULT 'active'" },
399
- { name: "assigned_to", sql: "TEXT NOT NULL DEFAULT ''" },
400
- { name: "assigned_by", sql: "TEXT NOT NULL DEFAULT ''" },
401
- { name: "kpis", sql: "JSONB" },
402
- { name: "version", sql: "BIGINT NOT NULL DEFAULT 1" },
403
- { name: "created_at", sql: "TEXT NOT NULL DEFAULT ''" },
404
- { name: "agent", sql: "TEXT NOT NULL DEFAULT 'manual'" },
405
- { name: "plugin_version", sql: "TEXT NOT NULL DEFAULT ''" }
406
- ]);
407
- var TASK_EVENTS_COLUMNS = Object.freeze([
408
- { name: "id", sql: "TEXT NOT NULL DEFAULT ''" },
409
- { name: "task_id", sql: "TEXT NOT NULL DEFAULT ''" },
410
- { name: "task_version", sql: "BIGINT NOT NULL DEFAULT 1" },
411
- { name: "kpi_id", sql: "TEXT NOT NULL DEFAULT ''" },
412
- { name: "value", sql: "BIGINT NOT NULL DEFAULT 0" },
413
- { name: "note", sql: "TEXT NOT NULL DEFAULT ''" },
414
- { name: "source", sql: "TEXT NOT NULL DEFAULT 'user'" },
415
- { name: "agent", sql: "TEXT NOT NULL DEFAULT ''" },
416
- { name: "ts", sql: "TEXT NOT NULL DEFAULT ''" },
417
- { name: "plugin_version", sql: "TEXT NOT NULL DEFAULT ''" }
418
- ]);
419
393
  var GOALS_COLUMNS = Object.freeze([
420
394
  { name: "id", sql: "TEXT NOT NULL DEFAULT ''" },
421
395
  { name: "goal_id", sql: "TEXT NOT NULL DEFAULT ''" },
@@ -481,8 +455,6 @@ validateSchema("MEMORY_COLUMNS", MEMORY_COLUMNS);
481
455
  validateSchema("SESSIONS_COLUMNS", SESSIONS_COLUMNS);
482
456
  validateSchema("SKILLS_COLUMNS", SKILLS_COLUMNS);
483
457
  validateSchema("RULES_COLUMNS", RULES_COLUMNS);
484
- validateSchema("TASKS_COLUMNS", TASKS_COLUMNS);
485
- validateSchema("TASK_EVENTS_COLUMNS", TASK_EVENTS_COLUMNS);
486
458
  validateSchema("GOALS_COLUMNS", GOALS_COLUMNS);
487
459
  validateSchema("KPIS_COLUMNS", KPIS_COLUMNS);
488
460
  validateSchema("CODEBASE_COLUMNS", CODEBASE_COLUMNS);
@@ -98,13 +98,10 @@ function loadConfig() {
98
98
  sessionsTableName: process.env.HIVEMIND_SESSIONS_TABLE ?? "sessions",
99
99
  skillsTableName: process.env.HIVEMIND_SKILLS_TABLE ?? "skills",
100
100
  // Defaults match the table name written into the SQL — keep aligned
101
- // with RULES_COLUMNS / TASKS_COLUMNS / TASK_EVENTS_COLUMNS in
102
- // deeplake-schema.ts and with the e2e test-org override convention
103
- // (memory_test / sessions_test → goals_test, etc.) documented in
104
- // CLAUDE.md.
101
+ // with RULES_COLUMNS in deeplake-schema.ts and with the e2e test-org
102
+ // override convention (memory_test / sessions_test goals_test, etc.)
103
+ // documented in CLAUDE.md.
105
104
  rulesTableName: process.env.HIVEMIND_RULES_TABLE ?? "hivemind_rules",
106
- tasksTableName: process.env.HIVEMIND_TASKS_TABLE ?? "hivemind_tasks",
107
- taskEventsTableName: process.env.HIVEMIND_TASK_EVENTS_TABLE ?? "hivemind_task_events",
108
105
  // Goals + KPIs (refined design — VFS path classifier maps
109
106
  // memory/goal/<user>/<status>/<uuid>.md → hivemind_goals row
110
107
  // memory/kpi/<uuid>/<kpi_id>.md → hivemind_kpis row
@@ -226,32 +223,6 @@ var RULES_COLUMNS = Object.freeze([
226
223
  { name: "agent", sql: "TEXT NOT NULL DEFAULT 'manual'" },
227
224
  { name: "plugin_version", sql: "TEXT NOT NULL DEFAULT ''" }
228
225
  ]);
229
- var TASKS_COLUMNS = Object.freeze([
230
- { name: "id", sql: "TEXT NOT NULL DEFAULT ''" },
231
- { name: "task_id", sql: "TEXT NOT NULL DEFAULT ''" },
232
- { name: "text", sql: "TEXT NOT NULL DEFAULT ''" },
233
- { name: "scope", sql: "TEXT NOT NULL DEFAULT 'me'" },
234
- { name: "status", sql: "TEXT NOT NULL DEFAULT 'active'" },
235
- { name: "assigned_to", sql: "TEXT NOT NULL DEFAULT ''" },
236
- { name: "assigned_by", sql: "TEXT NOT NULL DEFAULT ''" },
237
- { name: "kpis", sql: "JSONB" },
238
- { name: "version", sql: "BIGINT NOT NULL DEFAULT 1" },
239
- { name: "created_at", sql: "TEXT NOT NULL DEFAULT ''" },
240
- { name: "agent", sql: "TEXT NOT NULL DEFAULT 'manual'" },
241
- { name: "plugin_version", sql: "TEXT NOT NULL DEFAULT ''" }
242
- ]);
243
- var TASK_EVENTS_COLUMNS = Object.freeze([
244
- { name: "id", sql: "TEXT NOT NULL DEFAULT ''" },
245
- { name: "task_id", sql: "TEXT NOT NULL DEFAULT ''" },
246
- { name: "task_version", sql: "BIGINT NOT NULL DEFAULT 1" },
247
- { name: "kpi_id", sql: "TEXT NOT NULL DEFAULT ''" },
248
- { name: "value", sql: "BIGINT NOT NULL DEFAULT 0" },
249
- { name: "note", sql: "TEXT NOT NULL DEFAULT ''" },
250
- { name: "source", sql: "TEXT NOT NULL DEFAULT 'user'" },
251
- { name: "agent", sql: "TEXT NOT NULL DEFAULT ''" },
252
- { name: "ts", sql: "TEXT NOT NULL DEFAULT ''" },
253
- { name: "plugin_version", sql: "TEXT NOT NULL DEFAULT ''" }
254
- ]);
255
226
  var GOALS_COLUMNS = Object.freeze([
256
227
  { name: "id", sql: "TEXT NOT NULL DEFAULT ''" },
257
228
  { name: "goal_id", sql: "TEXT NOT NULL DEFAULT ''" },
@@ -317,8 +288,6 @@ validateSchema("MEMORY_COLUMNS", MEMORY_COLUMNS);
317
288
  validateSchema("SESSIONS_COLUMNS", SESSIONS_COLUMNS);
318
289
  validateSchema("SKILLS_COLUMNS", SKILLS_COLUMNS);
319
290
  validateSchema("RULES_COLUMNS", RULES_COLUMNS);
320
- validateSchema("TASKS_COLUMNS", TASKS_COLUMNS);
321
- validateSchema("TASK_EVENTS_COLUMNS", TASK_EVENTS_COLUMNS);
322
291
  validateSchema("GOALS_COLUMNS", GOALS_COLUMNS);
323
292
  validateSchema("KPIS_COLUMNS", KPIS_COLUMNS);
324
293
  validateSchema("CODEBASE_COLUMNS", CODEBASE_COLUMNS);
@@ -938,46 +907,6 @@ var DeeplakeApi = class {
938
907
  await this.healSchema(safe, RULES_COLUMNS);
939
908
  await this.ensureLookupIndex(safe, "rule_id_version", `("rule_id", "version")`);
940
909
  }
941
- /**
942
- * Create the tasks table.
943
- *
944
- * Same write pattern as rules + skills. `kpis` is a nullable JSONB
945
- * column with the agent's KPI metadata; KPI current values come from
946
- * `task_events` (SUM(value)), not this snapshot.
947
- */
948
- async ensureTasksTable(name) {
949
- const safe = sqlIdent(name);
950
- const tables = await this.listTables();
951
- if (!tables.includes(safe)) {
952
- log3(`table "${safe}" not found, creating`);
953
- await this.createTableWithRetry(buildCreateTableSql(safe, TASKS_COLUMNS), safe);
954
- log3(`table "${safe}" created`);
955
- if (!tables.includes(safe))
956
- this._tablesCache = [...tables, safe];
957
- }
958
- await this.healSchema(safe, TASKS_COLUMNS);
959
- await this.ensureLookupIndex(safe, "task_id_version", `("task_id", "version")`);
960
- }
961
- /**
962
- * Create the task-events table.
963
- *
964
- * Append-only. Every INSERT is a fresh row; never UPDATE. KPI current
965
- * value is `SUM(value) WHERE task_id=? AND kpi_id=?`. Index on
966
- * (task_id, kpi_id) is the canonical aggregation key.
967
- */
968
- async ensureTaskEventsTable(name) {
969
- const safe = sqlIdent(name);
970
- const tables = await this.listTables();
971
- if (!tables.includes(safe)) {
972
- log3(`table "${safe}" not found, creating`);
973
- await this.createTableWithRetry(buildCreateTableSql(safe, TASK_EVENTS_COLUMNS), safe);
974
- log3(`table "${safe}" created`);
975
- if (!tables.includes(safe))
976
- this._tablesCache = [...tables, safe];
977
- }
978
- await this.healSchema(safe, TASK_EVENTS_COLUMNS);
979
- await this.ensureLookupIndex(safe, "task_id_kpi_id", `("task_id", "kpi_id")`);
980
- }
981
910
  /**
982
911
  * Create the goals table.
983
912
  *
@@ -385,13 +385,10 @@ function loadConfig() {
385
385
  sessionsTableName: process.env.HIVEMIND_SESSIONS_TABLE ?? "sessions",
386
386
  skillsTableName: process.env.HIVEMIND_SKILLS_TABLE ?? "skills",
387
387
  // Defaults match the table name written into the SQL — keep aligned
388
- // with RULES_COLUMNS / TASKS_COLUMNS / TASK_EVENTS_COLUMNS in
389
- // deeplake-schema.ts and with the e2e test-org override convention
390
- // (memory_test / sessions_test → goals_test, etc.) documented in
391
- // CLAUDE.md.
388
+ // with RULES_COLUMNS in deeplake-schema.ts and with the e2e test-org
389
+ // override convention (memory_test / sessions_test goals_test, etc.)
390
+ // documented in CLAUDE.md.
392
391
  rulesTableName: process.env.HIVEMIND_RULES_TABLE ?? "hivemind_rules",
393
- tasksTableName: process.env.HIVEMIND_TASKS_TABLE ?? "hivemind_tasks",
394
- taskEventsTableName: process.env.HIVEMIND_TASK_EVENTS_TABLE ?? "hivemind_task_events",
395
392
  // Goals + KPIs (refined design — VFS path classifier maps
396
393
  // memory/goal/<user>/<status>/<uuid>.md → hivemind_goals row
397
394
  // memory/kpi/<uuid>/<kpi_id>.md → hivemind_kpis row
@@ -501,32 +498,6 @@ var RULES_COLUMNS = Object.freeze([
501
498
  { name: "agent", sql: "TEXT NOT NULL DEFAULT 'manual'" },
502
499
  { name: "plugin_version", sql: "TEXT NOT NULL DEFAULT ''" }
503
500
  ]);
504
- var TASKS_COLUMNS = Object.freeze([
505
- { name: "id", sql: "TEXT NOT NULL DEFAULT ''" },
506
- { name: "task_id", sql: "TEXT NOT NULL DEFAULT ''" },
507
- { name: "text", sql: "TEXT NOT NULL DEFAULT ''" },
508
- { name: "scope", sql: "TEXT NOT NULL DEFAULT 'me'" },
509
- { name: "status", sql: "TEXT NOT NULL DEFAULT 'active'" },
510
- { name: "assigned_to", sql: "TEXT NOT NULL DEFAULT ''" },
511
- { name: "assigned_by", sql: "TEXT NOT NULL DEFAULT ''" },
512
- { name: "kpis", sql: "JSONB" },
513
- { name: "version", sql: "BIGINT NOT NULL DEFAULT 1" },
514
- { name: "created_at", sql: "TEXT NOT NULL DEFAULT ''" },
515
- { name: "agent", sql: "TEXT NOT NULL DEFAULT 'manual'" },
516
- { name: "plugin_version", sql: "TEXT NOT NULL DEFAULT ''" }
517
- ]);
518
- var TASK_EVENTS_COLUMNS = Object.freeze([
519
- { name: "id", sql: "TEXT NOT NULL DEFAULT ''" },
520
- { name: "task_id", sql: "TEXT NOT NULL DEFAULT ''" },
521
- { name: "task_version", sql: "BIGINT NOT NULL DEFAULT 1" },
522
- { name: "kpi_id", sql: "TEXT NOT NULL DEFAULT ''" },
523
- { name: "value", sql: "BIGINT NOT NULL DEFAULT 0" },
524
- { name: "note", sql: "TEXT NOT NULL DEFAULT ''" },
525
- { name: "source", sql: "TEXT NOT NULL DEFAULT 'user'" },
526
- { name: "agent", sql: "TEXT NOT NULL DEFAULT ''" },
527
- { name: "ts", sql: "TEXT NOT NULL DEFAULT ''" },
528
- { name: "plugin_version", sql: "TEXT NOT NULL DEFAULT ''" }
529
- ]);
530
501
  var GOALS_COLUMNS = Object.freeze([
531
502
  { name: "id", sql: "TEXT NOT NULL DEFAULT ''" },
532
503
  { name: "goal_id", sql: "TEXT NOT NULL DEFAULT ''" },
@@ -592,8 +563,6 @@ validateSchema("MEMORY_COLUMNS", MEMORY_COLUMNS);
592
563
  validateSchema("SESSIONS_COLUMNS", SESSIONS_COLUMNS);
593
564
  validateSchema("SKILLS_COLUMNS", SKILLS_COLUMNS);
594
565
  validateSchema("RULES_COLUMNS", RULES_COLUMNS);
595
- validateSchema("TASKS_COLUMNS", TASKS_COLUMNS);
596
- validateSchema("TASK_EVENTS_COLUMNS", TASK_EVENTS_COLUMNS);
597
566
  validateSchema("GOALS_COLUMNS", GOALS_COLUMNS);
598
567
  validateSchema("KPIS_COLUMNS", KPIS_COLUMNS);
599
568
  validateSchema("CODEBASE_COLUMNS", CODEBASE_COLUMNS);
@@ -1195,46 +1164,6 @@ var DeeplakeApi = class {
1195
1164
  await this.healSchema(safe, RULES_COLUMNS);
1196
1165
  await this.ensureLookupIndex(safe, "rule_id_version", `("rule_id", "version")`);
1197
1166
  }
1198
- /**
1199
- * Create the tasks table.
1200
- *
1201
- * Same write pattern as rules + skills. `kpis` is a nullable JSONB
1202
- * column with the agent's KPI metadata; KPI current values come from
1203
- * `task_events` (SUM(value)), not this snapshot.
1204
- */
1205
- async ensureTasksTable(name) {
1206
- const safe = sqlIdent(name);
1207
- const tables = await this.listTables();
1208
- if (!tables.includes(safe)) {
1209
- log3(`table "${safe}" not found, creating`);
1210
- await this.createTableWithRetry(buildCreateTableSql(safe, TASKS_COLUMNS), safe);
1211
- log3(`table "${safe}" created`);
1212
- if (!tables.includes(safe))
1213
- this._tablesCache = [...tables, safe];
1214
- }
1215
- await this.healSchema(safe, TASKS_COLUMNS);
1216
- await this.ensureLookupIndex(safe, "task_id_version", `("task_id", "version")`);
1217
- }
1218
- /**
1219
- * Create the task-events table.
1220
- *
1221
- * Append-only. Every INSERT is a fresh row; never UPDATE. KPI current
1222
- * value is `SUM(value) WHERE task_id=? AND kpi_id=?`. Index on
1223
- * (task_id, kpi_id) is the canonical aggregation key.
1224
- */
1225
- async ensureTaskEventsTable(name) {
1226
- const safe = sqlIdent(name);
1227
- const tables = await this.listTables();
1228
- if (!tables.includes(safe)) {
1229
- log3(`table "${safe}" not found, creating`);
1230
- await this.createTableWithRetry(buildCreateTableSql(safe, TASK_EVENTS_COLUMNS), safe);
1231
- log3(`table "${safe}" created`);
1232
- if (!tables.includes(safe))
1233
- this._tablesCache = [...tables, safe];
1234
- }
1235
- await this.healSchema(safe, TASK_EVENTS_COLUMNS);
1236
- await this.ensureLookupIndex(safe, "task_id_kpi_id", `("task_id", "kpi_id")`);
1237
- }
1238
1167
  /**
1239
1168
  * Create the goals table.
1240
1169
  *
@@ -92,13 +92,10 @@ function loadConfig() {
92
92
  sessionsTableName: process.env.HIVEMIND_SESSIONS_TABLE ?? "sessions",
93
93
  skillsTableName: process.env.HIVEMIND_SKILLS_TABLE ?? "skills",
94
94
  // Defaults match the table name written into the SQL — keep aligned
95
- // with RULES_COLUMNS / TASKS_COLUMNS / TASK_EVENTS_COLUMNS in
96
- // deeplake-schema.ts and with the e2e test-org override convention
97
- // (memory_test / sessions_test → goals_test, etc.) documented in
98
- // CLAUDE.md.
95
+ // with RULES_COLUMNS in deeplake-schema.ts and with the e2e test-org
96
+ // override convention (memory_test / sessions_test goals_test, etc.)
97
+ // documented in CLAUDE.md.
99
98
  rulesTableName: process.env.HIVEMIND_RULES_TABLE ?? "hivemind_rules",
100
- tasksTableName: process.env.HIVEMIND_TASKS_TABLE ?? "hivemind_tasks",
101
- taskEventsTableName: process.env.HIVEMIND_TASK_EVENTS_TABLE ?? "hivemind_task_events",
102
99
  // Goals + KPIs (refined design — VFS path classifier maps
103
100
  // memory/goal/<user>/<status>/<uuid>.md → hivemind_goals row
104
101
  // memory/kpi/<uuid>/<kpi_id>.md → hivemind_kpis row
@@ -217,32 +214,6 @@ var RULES_COLUMNS = Object.freeze([
217
214
  { name: "agent", sql: "TEXT NOT NULL DEFAULT 'manual'" },
218
215
  { name: "plugin_version", sql: "TEXT NOT NULL DEFAULT ''" }
219
216
  ]);
220
- var TASKS_COLUMNS = Object.freeze([
221
- { name: "id", sql: "TEXT NOT NULL DEFAULT ''" },
222
- { name: "task_id", sql: "TEXT NOT NULL DEFAULT ''" },
223
- { name: "text", sql: "TEXT NOT NULL DEFAULT ''" },
224
- { name: "scope", sql: "TEXT NOT NULL DEFAULT 'me'" },
225
- { name: "status", sql: "TEXT NOT NULL DEFAULT 'active'" },
226
- { name: "assigned_to", sql: "TEXT NOT NULL DEFAULT ''" },
227
- { name: "assigned_by", sql: "TEXT NOT NULL DEFAULT ''" },
228
- { name: "kpis", sql: "JSONB" },
229
- { name: "version", sql: "BIGINT NOT NULL DEFAULT 1" },
230
- { name: "created_at", sql: "TEXT NOT NULL DEFAULT ''" },
231
- { name: "agent", sql: "TEXT NOT NULL DEFAULT 'manual'" },
232
- { name: "plugin_version", sql: "TEXT NOT NULL DEFAULT ''" }
233
- ]);
234
- var TASK_EVENTS_COLUMNS = Object.freeze([
235
- { name: "id", sql: "TEXT NOT NULL DEFAULT ''" },
236
- { name: "task_id", sql: "TEXT NOT NULL DEFAULT ''" },
237
- { name: "task_version", sql: "BIGINT NOT NULL DEFAULT 1" },
238
- { name: "kpi_id", sql: "TEXT NOT NULL DEFAULT ''" },
239
- { name: "value", sql: "BIGINT NOT NULL DEFAULT 0" },
240
- { name: "note", sql: "TEXT NOT NULL DEFAULT ''" },
241
- { name: "source", sql: "TEXT NOT NULL DEFAULT 'user'" },
242
- { name: "agent", sql: "TEXT NOT NULL DEFAULT ''" },
243
- { name: "ts", sql: "TEXT NOT NULL DEFAULT ''" },
244
- { name: "plugin_version", sql: "TEXT NOT NULL DEFAULT ''" }
245
- ]);
246
217
  var GOALS_COLUMNS = Object.freeze([
247
218
  { name: "id", sql: "TEXT NOT NULL DEFAULT ''" },
248
219
  { name: "goal_id", sql: "TEXT NOT NULL DEFAULT ''" },
@@ -308,8 +279,6 @@ validateSchema("MEMORY_COLUMNS", MEMORY_COLUMNS);
308
279
  validateSchema("SESSIONS_COLUMNS", SESSIONS_COLUMNS);
309
280
  validateSchema("SKILLS_COLUMNS", SKILLS_COLUMNS);
310
281
  validateSchema("RULES_COLUMNS", RULES_COLUMNS);
311
- validateSchema("TASKS_COLUMNS", TASKS_COLUMNS);
312
- validateSchema("TASK_EVENTS_COLUMNS", TASK_EVENTS_COLUMNS);
313
282
  validateSchema("GOALS_COLUMNS", GOALS_COLUMNS);
314
283
  validateSchema("KPIS_COLUMNS", KPIS_COLUMNS);
315
284
  validateSchema("CODEBASE_COLUMNS", CODEBASE_COLUMNS);
@@ -929,46 +898,6 @@ var DeeplakeApi = class {
929
898
  await this.healSchema(safe, RULES_COLUMNS);
930
899
  await this.ensureLookupIndex(safe, "rule_id_version", `("rule_id", "version")`);
931
900
  }
932
- /**
933
- * Create the tasks table.
934
- *
935
- * Same write pattern as rules + skills. `kpis` is a nullable JSONB
936
- * column with the agent's KPI metadata; KPI current values come from
937
- * `task_events` (SUM(value)), not this snapshot.
938
- */
939
- async ensureTasksTable(name) {
940
- const safe = sqlIdent(name);
941
- const tables = await this.listTables();
942
- if (!tables.includes(safe)) {
943
- log3(`table "${safe}" not found, creating`);
944
- await this.createTableWithRetry(buildCreateTableSql(safe, TASKS_COLUMNS), safe);
945
- log3(`table "${safe}" created`);
946
- if (!tables.includes(safe))
947
- this._tablesCache = [...tables, safe];
948
- }
949
- await this.healSchema(safe, TASKS_COLUMNS);
950
- await this.ensureLookupIndex(safe, "task_id_version", `("task_id", "version")`);
951
- }
952
- /**
953
- * Create the task-events table.
954
- *
955
- * Append-only. Every INSERT is a fresh row; never UPDATE. KPI current
956
- * value is `SUM(value) WHERE task_id=? AND kpi_id=?`. Index on
957
- * (task_id, kpi_id) is the canonical aggregation key.
958
- */
959
- async ensureTaskEventsTable(name) {
960
- const safe = sqlIdent(name);
961
- const tables = await this.listTables();
962
- if (!tables.includes(safe)) {
963
- log3(`table "${safe}" not found, creating`);
964
- await this.createTableWithRetry(buildCreateTableSql(safe, TASK_EVENTS_COLUMNS), safe);
965
- log3(`table "${safe}" created`);
966
- if (!tables.includes(safe))
967
- this._tablesCache = [...tables, safe];
968
- }
969
- await this.healSchema(safe, TASK_EVENTS_COLUMNS);
970
- await this.ensureLookupIndex(safe, "task_id_kpi_id", `("task_id", "kpi_id")`);
971
- }
972
901
  /**
973
902
  * Create the goals table.
974
903
  *
@@ -98,13 +98,10 @@ function loadConfig() {
98
98
  sessionsTableName: process.env.HIVEMIND_SESSIONS_TABLE ?? "sessions",
99
99
  skillsTableName: process.env.HIVEMIND_SKILLS_TABLE ?? "skills",
100
100
  // Defaults match the table name written into the SQL — keep aligned
101
- // with RULES_COLUMNS / TASKS_COLUMNS / TASK_EVENTS_COLUMNS in
102
- // deeplake-schema.ts and with the e2e test-org override convention
103
- // (memory_test / sessions_test → goals_test, etc.) documented in
104
- // CLAUDE.md.
101
+ // with RULES_COLUMNS in deeplake-schema.ts and with the e2e test-org
102
+ // override convention (memory_test / sessions_test goals_test, etc.)
103
+ // documented in CLAUDE.md.
105
104
  rulesTableName: process.env.HIVEMIND_RULES_TABLE ?? "hivemind_rules",
106
- tasksTableName: process.env.HIVEMIND_TASKS_TABLE ?? "hivemind_tasks",
107
- taskEventsTableName: process.env.HIVEMIND_TASK_EVENTS_TABLE ?? "hivemind_task_events",
108
105
  // Goals + KPIs (refined design — VFS path classifier maps
109
106
  // memory/goal/<user>/<status>/<uuid>.md → hivemind_goals row
110
107
  // memory/kpi/<uuid>/<kpi_id>.md → hivemind_kpis row
@@ -226,32 +223,6 @@ var RULES_COLUMNS = Object.freeze([
226
223
  { name: "agent", sql: "TEXT NOT NULL DEFAULT 'manual'" },
227
224
  { name: "plugin_version", sql: "TEXT NOT NULL DEFAULT ''" }
228
225
  ]);
229
- var TASKS_COLUMNS = Object.freeze([
230
- { name: "id", sql: "TEXT NOT NULL DEFAULT ''" },
231
- { name: "task_id", sql: "TEXT NOT NULL DEFAULT ''" },
232
- { name: "text", sql: "TEXT NOT NULL DEFAULT ''" },
233
- { name: "scope", sql: "TEXT NOT NULL DEFAULT 'me'" },
234
- { name: "status", sql: "TEXT NOT NULL DEFAULT 'active'" },
235
- { name: "assigned_to", sql: "TEXT NOT NULL DEFAULT ''" },
236
- { name: "assigned_by", sql: "TEXT NOT NULL DEFAULT ''" },
237
- { name: "kpis", sql: "JSONB" },
238
- { name: "version", sql: "BIGINT NOT NULL DEFAULT 1" },
239
- { name: "created_at", sql: "TEXT NOT NULL DEFAULT ''" },
240
- { name: "agent", sql: "TEXT NOT NULL DEFAULT 'manual'" },
241
- { name: "plugin_version", sql: "TEXT NOT NULL DEFAULT ''" }
242
- ]);
243
- var TASK_EVENTS_COLUMNS = Object.freeze([
244
- { name: "id", sql: "TEXT NOT NULL DEFAULT ''" },
245
- { name: "task_id", sql: "TEXT NOT NULL DEFAULT ''" },
246
- { name: "task_version", sql: "BIGINT NOT NULL DEFAULT 1" },
247
- { name: "kpi_id", sql: "TEXT NOT NULL DEFAULT ''" },
248
- { name: "value", sql: "BIGINT NOT NULL DEFAULT 0" },
249
- { name: "note", sql: "TEXT NOT NULL DEFAULT ''" },
250
- { name: "source", sql: "TEXT NOT NULL DEFAULT 'user'" },
251
- { name: "agent", sql: "TEXT NOT NULL DEFAULT ''" },
252
- { name: "ts", sql: "TEXT NOT NULL DEFAULT ''" },
253
- { name: "plugin_version", sql: "TEXT NOT NULL DEFAULT ''" }
254
- ]);
255
226
  var GOALS_COLUMNS = Object.freeze([
256
227
  { name: "id", sql: "TEXT NOT NULL DEFAULT ''" },
257
228
  { name: "goal_id", sql: "TEXT NOT NULL DEFAULT ''" },
@@ -317,8 +288,6 @@ validateSchema("MEMORY_COLUMNS", MEMORY_COLUMNS);
317
288
  validateSchema("SESSIONS_COLUMNS", SESSIONS_COLUMNS);
318
289
  validateSchema("SKILLS_COLUMNS", SKILLS_COLUMNS);
319
290
  validateSchema("RULES_COLUMNS", RULES_COLUMNS);
320
- validateSchema("TASKS_COLUMNS", TASKS_COLUMNS);
321
- validateSchema("TASK_EVENTS_COLUMNS", TASK_EVENTS_COLUMNS);
322
291
  validateSchema("GOALS_COLUMNS", GOALS_COLUMNS);
323
292
  validateSchema("KPIS_COLUMNS", KPIS_COLUMNS);
324
293
  validateSchema("CODEBASE_COLUMNS", CODEBASE_COLUMNS);
@@ -938,46 +907,6 @@ var DeeplakeApi = class {
938
907
  await this.healSchema(safe, RULES_COLUMNS);
939
908
  await this.ensureLookupIndex(safe, "rule_id_version", `("rule_id", "version")`);
940
909
  }
941
- /**
942
- * Create the tasks table.
943
- *
944
- * Same write pattern as rules + skills. `kpis` is a nullable JSONB
945
- * column with the agent's KPI metadata; KPI current values come from
946
- * `task_events` (SUM(value)), not this snapshot.
947
- */
948
- async ensureTasksTable(name) {
949
- const safe = sqlIdent(name);
950
- const tables = await this.listTables();
951
- if (!tables.includes(safe)) {
952
- log3(`table "${safe}" not found, creating`);
953
- await this.createTableWithRetry(buildCreateTableSql(safe, TASKS_COLUMNS), safe);
954
- log3(`table "${safe}" created`);
955
- if (!tables.includes(safe))
956
- this._tablesCache = [...tables, safe];
957
- }
958
- await this.healSchema(safe, TASKS_COLUMNS);
959
- await this.ensureLookupIndex(safe, "task_id_version", `("task_id", "version")`);
960
- }
961
- /**
962
- * Create the task-events table.
963
- *
964
- * Append-only. Every INSERT is a fresh row; never UPDATE. KPI current
965
- * value is `SUM(value) WHERE task_id=? AND kpi_id=?`. Index on
966
- * (task_id, kpi_id) is the canonical aggregation key.
967
- */
968
- async ensureTaskEventsTable(name) {
969
- const safe = sqlIdent(name);
970
- const tables = await this.listTables();
971
- if (!tables.includes(safe)) {
972
- log3(`table "${safe}" not found, creating`);
973
- await this.createTableWithRetry(buildCreateTableSql(safe, TASK_EVENTS_COLUMNS), safe);
974
- log3(`table "${safe}" created`);
975
- if (!tables.includes(safe))
976
- this._tablesCache = [...tables, safe];
977
- }
978
- await this.healSchema(safe, TASK_EVENTS_COLUMNS);
979
- await this.ensureLookupIndex(safe, "task_id_kpi_id", `("task_id", "kpi_id")`);
980
- }
981
910
  /**
982
911
  * Create the goals table.
983
912
  *
@@ -63,13 +63,10 @@ function loadConfig() {
63
63
  sessionsTableName: process.env.HIVEMIND_SESSIONS_TABLE ?? "sessions",
64
64
  skillsTableName: process.env.HIVEMIND_SKILLS_TABLE ?? "skills",
65
65
  // Defaults match the table name written into the SQL — keep aligned
66
- // with RULES_COLUMNS / TASKS_COLUMNS / TASK_EVENTS_COLUMNS in
67
- // deeplake-schema.ts and with the e2e test-org override convention
68
- // (memory_test / sessions_test → goals_test, etc.) documented in
69
- // CLAUDE.md.
66
+ // with RULES_COLUMNS in deeplake-schema.ts and with the e2e test-org
67
+ // override convention (memory_test / sessions_test goals_test, etc.)
68
+ // documented in CLAUDE.md.
70
69
  rulesTableName: process.env.HIVEMIND_RULES_TABLE ?? "hivemind_rules",
71
- tasksTableName: process.env.HIVEMIND_TASKS_TABLE ?? "hivemind_tasks",
72
- taskEventsTableName: process.env.HIVEMIND_TASK_EVENTS_TABLE ?? "hivemind_task_events",
73
70
  // Goals + KPIs (refined design — VFS path classifier maps
74
71
  // memory/goal/<user>/<status>/<uuid>.md → hivemind_goals row
75
72
  // memory/kpi/<uuid>/<kpi_id>.md → hivemind_kpis row