@sesamespace/hivemind 0.1.0 → 0.2.0

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 (122) hide show
  1. package/README.md +53 -23
  2. package/dist/chunk-2I2O6X5D.js +1408 -0
  3. package/dist/chunk-2I2O6X5D.js.map +1 -0
  4. package/dist/chunk-DVR2KBL7.js +186 -0
  5. package/dist/chunk-DVR2KBL7.js.map +1 -0
  6. package/dist/chunk-MBS5A6BZ.js +132 -0
  7. package/dist/chunk-MBS5A6BZ.js.map +1 -0
  8. package/dist/chunk-NVJ424TB.js +731 -0
  9. package/dist/chunk-NVJ424TB.js.map +1 -0
  10. package/dist/chunk-RNK5Q5GR.js +44 -0
  11. package/dist/chunk-RNK5Q5GR.js.map +1 -0
  12. package/dist/chunk-XNOWVLXD.js +160 -0
  13. package/dist/chunk-XNOWVLXD.js.map +1 -0
  14. package/dist/commands/fleet.js +8 -192
  15. package/dist/commands/fleet.js.map +1 -1
  16. package/dist/commands/init.js +6 -169
  17. package/dist/commands/init.js.map +1 -1
  18. package/dist/commands/service.js +7 -0
  19. package/dist/commands/service.js.map +1 -0
  20. package/dist/commands/start.js +8 -38
  21. package/dist/commands/start.js.map +1 -1
  22. package/dist/index.js +40 -15
  23. package/dist/index.js.map +1 -1
  24. package/dist/main.js +49 -29
  25. package/dist/main.js.map +1 -1
  26. package/dist/start.js +18 -16
  27. package/dist/start.js.map +1 -1
  28. package/package.json +8 -16
  29. package/dist/__tests__/fleet-integration.test.d.ts +0 -9
  30. package/dist/__tests__/fleet-integration.test.d.ts.map +0 -1
  31. package/dist/__tests__/fleet-integration.test.js +0 -201
  32. package/dist/__tests__/fleet-integration.test.js.map +0 -1
  33. package/dist/__tests__/fleet.test.d.ts +0 -7
  34. package/dist/__tests__/fleet.test.d.ts.map +0 -1
  35. package/dist/__tests__/fleet.test.js +0 -171
  36. package/dist/__tests__/fleet.test.js.map +0 -1
  37. package/dist/__tests__/integration.test.d.ts +0 -2
  38. package/dist/__tests__/integration.test.d.ts.map +0 -1
  39. package/dist/__tests__/integration.test.js +0 -348
  40. package/dist/__tests__/integration.test.js.map +0 -1
  41. package/dist/agent.d.ts +0 -27
  42. package/dist/agent.d.ts.map +0 -1
  43. package/dist/agent.js +0 -217
  44. package/dist/agent.js.map +0 -1
  45. package/dist/commands/fleet.d.ts +0 -13
  46. package/dist/commands/fleet.d.ts.map +0 -1
  47. package/dist/commands/init.d.ts +0 -2
  48. package/dist/commands/init.d.ts.map +0 -1
  49. package/dist/commands/start.d.ts +0 -2
  50. package/dist/commands/start.d.ts.map +0 -1
  51. package/dist/config.d.ts +0 -44
  52. package/dist/config.d.ts.map +0 -1
  53. package/dist/config.js +0 -73
  54. package/dist/config.js.map +0 -1
  55. package/dist/context.d.ts +0 -50
  56. package/dist/context.d.ts.map +0 -1
  57. package/dist/context.js +0 -153
  58. package/dist/context.js.map +0 -1
  59. package/dist/fleet/fleet-manager.d.ts +0 -86
  60. package/dist/fleet/fleet-manager.d.ts.map +0 -1
  61. package/dist/fleet/fleet-manager.js +0 -298
  62. package/dist/fleet/fleet-manager.js.map +0 -1
  63. package/dist/fleet/memory-sync.d.ts +0 -91
  64. package/dist/fleet/memory-sync.d.ts.map +0 -1
  65. package/dist/fleet/memory-sync.js +0 -292
  66. package/dist/fleet/memory-sync.js.map +0 -1
  67. package/dist/fleet/primary-client.d.ts +0 -49
  68. package/dist/fleet/primary-client.d.ts.map +0 -1
  69. package/dist/fleet/primary-client.js +0 -222
  70. package/dist/fleet/primary-client.js.map +0 -1
  71. package/dist/fleet/worker-protocol.d.ts +0 -125
  72. package/dist/fleet/worker-protocol.d.ts.map +0 -1
  73. package/dist/fleet/worker-protocol.js +0 -27
  74. package/dist/fleet/worker-protocol.js.map +0 -1
  75. package/dist/fleet/worker-server.d.ts +0 -53
  76. package/dist/fleet/worker-server.d.ts.map +0 -1
  77. package/dist/fleet/worker-server.js +0 -191
  78. package/dist/fleet/worker-server.js.map +0 -1
  79. package/dist/index.d.ts +0 -26
  80. package/dist/index.d.ts.map +0 -1
  81. package/dist/llm-client.d.ts +0 -24
  82. package/dist/llm-client.d.ts.map +0 -1
  83. package/dist/llm-client.js +0 -40
  84. package/dist/llm-client.js.map +0 -1
  85. package/dist/main.d.ts +0 -3
  86. package/dist/main.d.ts.map +0 -1
  87. package/dist/memory-client.d.ts +0 -88
  88. package/dist/memory-client.d.ts.map +0 -1
  89. package/dist/memory-client.js +0 -185
  90. package/dist/memory-client.js.map +0 -1
  91. package/dist/pipeline.d.ts +0 -2
  92. package/dist/pipeline.d.ts.map +0 -1
  93. package/dist/pipeline.js +0 -125
  94. package/dist/pipeline.js.map +0 -1
  95. package/dist/prompt.d.ts +0 -6
  96. package/dist/prompt.d.ts.map +0 -1
  97. package/dist/prompt.js +0 -75
  98. package/dist/prompt.js.map +0 -1
  99. package/dist/sesame.d.ts +0 -33
  100. package/dist/sesame.d.ts.map +0 -1
  101. package/dist/sesame.js +0 -67
  102. package/dist/sesame.js.map +0 -1
  103. package/dist/start.d.ts +0 -3
  104. package/dist/start.d.ts.map +0 -1
  105. package/dist/task-engine.d.ts +0 -32
  106. package/dist/task-engine.d.ts.map +0 -1
  107. package/dist/task-engine.js +0 -80
  108. package/dist/task-engine.js.map +0 -1
  109. package/dist/worker.d.ts +0 -73
  110. package/dist/worker.d.ts.map +0 -1
  111. package/dist/worker.js +0 -279
  112. package/dist/worker.js.map +0 -1
  113. package/install.sh +0 -186
  114. package/packages/memory/Cargo.lock +0 -6480
  115. package/packages/memory/Cargo.toml +0 -21
  116. package/packages/memory/src/src/context.rs +0 -179
  117. package/packages/memory/src/src/embeddings.rs +0 -51
  118. package/packages/memory/src/src/main.rs +0 -626
  119. package/packages/memory/src/src/promotion.rs +0 -637
  120. package/packages/memory/src/src/scoring.rs +0 -131
  121. package/packages/memory/src/src/store.rs +0 -460
  122. package/packages/memory/src/src/tasks.rs +0 -321
@@ -1,201 +0,0 @@
1
- /**
2
- * Fleet integration test (Phase 3, Task 3.5).
3
- *
4
- * Tests multi-worker fleet lifecycle: two WorkerServers, a PrimaryClient
5
- * coordinating both, FleetManager dashboard, context migration, and
6
- * memory sync round-trips.
7
- */
8
- import { describe, it, before, after } from "node:test";
9
- import assert from "node:assert/strict";
10
- import { PrimaryClient } from "../fleet/primary-client.js";
11
- import { WorkerServer } from "../fleet/worker-server.js";
12
- import { FleetManager } from "../fleet/fleet-manager.js";
13
- const PORT_A = 19900;
14
- const PORT_B = 19901;
15
- const URL_A = `http://localhost:${PORT_A}`;
16
- const URL_B = `http://localhost:${PORT_B}`;
17
- describe("Fleet Integration — Multi-Worker", () => {
18
- let workerA;
19
- let workerB;
20
- let primary;
21
- let fleet;
22
- let workerIdA;
23
- let workerIdB;
24
- before(async () => {
25
- workerA = new WorkerServer({
26
- workerId: "worker-a",
27
- port: PORT_A,
28
- maxContexts: 3,
29
- memoryDaemonUrl: "http://localhost:9999",
30
- ollamaUrl: "http://localhost:11434",
31
- });
32
- workerB = new WorkerServer({
33
- workerId: "worker-b",
34
- port: PORT_B,
35
- maxContexts: 2,
36
- memoryDaemonUrl: "http://localhost:9999",
37
- ollamaUrl: "http://localhost:11434",
38
- });
39
- await workerA.start();
40
- await workerB.start();
41
- primary = new PrimaryClient();
42
- fleet = new FleetManager(primary);
43
- });
44
- after(async () => {
45
- primary.stopHealthPolling();
46
- await workerA.stop();
47
- await workerB.stop();
48
- });
49
- describe("Registration", () => {
50
- it("should register worker A", () => {
51
- const req = {
52
- url: URL_A,
53
- capabilities: { max_contexts: 3, has_ollama: true, has_memory_daemon: true, available_models: [] },
54
- };
55
- const resp = primary.handleRegistration(req);
56
- workerIdA = resp.worker_id;
57
- assert.ok(workerIdA);
58
- });
59
- it("should register worker B", () => {
60
- const req = {
61
- url: URL_B,
62
- capabilities: { max_contexts: 2, has_ollama: true, has_memory_daemon: true, available_models: [] },
63
- };
64
- const resp = primary.handleRegistration(req);
65
- workerIdB = resp.worker_id;
66
- assert.ok(workerIdB);
67
- });
68
- it("should list both workers", () => {
69
- assert.equal(primary.getWorkers().length, 2);
70
- });
71
- });
72
- describe("Health Checks — Both Workers", () => {
73
- it("should get healthy responses from both", async () => {
74
- const healthA = await primary.checkHealth(workerIdA);
75
- const healthB = await primary.checkHealth(workerIdB);
76
- assert.ok(healthA);
77
- assert.ok(healthB);
78
- assert.equal(healthA.status, "healthy");
79
- assert.equal(healthB.status, "healthy");
80
- });
81
- it("should poll all and get two healthy", async () => {
82
- const results = await primary.checkAllHealth();
83
- assert.equal(results.size, 2);
84
- for (const [, status] of results) {
85
- assert.equal(status, "healthy");
86
- }
87
- });
88
- });
89
- describe("Context Distribution Across Workers", () => {
90
- it("should assign project-alpha to worker A", async () => {
91
- const resp = await primary.assignContext(workerIdA, "project-alpha", "Alpha");
92
- assert.equal(resp.accepted, true);
93
- });
94
- it("should assign project-beta to worker B", async () => {
95
- const resp = await primary.assignContext(workerIdB, "project-beta", "Beta");
96
- assert.equal(resp.accepted, true);
97
- });
98
- it("should assign project-gamma to worker A", async () => {
99
- const resp = await primary.assignContext(workerIdA, "project-gamma", "Gamma");
100
- assert.equal(resp.accepted, true);
101
- });
102
- it("should find correct worker for each context", () => {
103
- assert.equal(primary.findWorkerForContext("project-alpha")?.id, workerIdA);
104
- assert.equal(primary.findWorkerForContext("project-beta")?.id, workerIdB);
105
- assert.equal(primary.findWorkerForContext("project-gamma")?.id, workerIdA);
106
- });
107
- it("should reject when worker B is at capacity (max 2)", async () => {
108
- // B already has project-beta (1/2), add one more
109
- const resp1 = await primary.assignContext(workerIdB, "project-delta", "Delta");
110
- assert.equal(resp1.accepted, true);
111
- // Now at 2/2 — next should fail
112
- const resp2 = await primary.assignContext(workerIdB, "project-epsilon", "Epsilon");
113
- assert.equal(resp2.accepted, false);
114
- assert.ok(resp2.reason?.includes("capacity"));
115
- });
116
- });
117
- describe("Status Reporting", () => {
118
- it("should report working status on worker A", async () => {
119
- workerA.setActiveContext("project-alpha");
120
- workerA.setCurrentTask("task-1");
121
- const report = { activity: "working", current_context: "project-alpha", current_task: "task-1" };
122
- const status = primary.handleStatusReport(workerIdA, report);
123
- assert.ok(status);
124
- assert.equal(status.activity, "working");
125
- assert.equal(status.current_context, "project-alpha");
126
- });
127
- it("should report idle status on worker B", async () => {
128
- const resp = await fetch(`${URL_B}/status`);
129
- const body = (await resp.json());
130
- assert.equal(body.activity, "idle");
131
- });
132
- });
133
- describe("Memory Sync Endpoints", () => {
134
- it("should return 501 when no sync handler registered", async () => {
135
- const resp = await fetch(`${URL_A}/sync/push`, {
136
- method: "POST",
137
- headers: { "Content-Type": "application/json" },
138
- body: JSON.stringify({
139
- entries: [],
140
- episodes: [],
141
- }),
142
- });
143
- // 501 = handler not registered (expected without MemorySync wiring)
144
- assert.equal(resp.status, 501);
145
- });
146
- it("should accept sync push when handler is registered", async () => {
147
- workerA.onSyncPush(async (_req) => ({
148
- l3_accepted: 0,
149
- l2_appended: 0,
150
- }));
151
- const resp = await fetch(`${URL_A}/sync/push`, {
152
- method: "POST",
153
- headers: { "Content-Type": "application/json" },
154
- body: JSON.stringify({
155
- entries: [],
156
- episodes: [],
157
- }),
158
- });
159
- assert.equal(resp.status, 200);
160
- const body = await resp.json();
161
- assert.equal(body.l3_accepted, 0);
162
- });
163
- });
164
- describe("Context Unassignment and Reassignment", () => {
165
- it("should unassign project-gamma from worker A", async () => {
166
- const ok = await primary.unassignContext(workerIdA, "project-gamma");
167
- assert.equal(ok, true);
168
- });
169
- it("should no longer find worker for project-gamma", () => {
170
- assert.equal(primary.findWorkerForContext("project-gamma"), undefined);
171
- });
172
- it("should reassign project-gamma to worker B (after freeing a slot)", async () => {
173
- // Unassign delta from B first
174
- await primary.unassignContext(workerIdB, "project-delta");
175
- const resp = await primary.assignContext(workerIdB, "project-gamma", "Gamma moved");
176
- assert.equal(resp.accepted, true);
177
- assert.equal(primary.findWorkerForContext("project-gamma")?.id, workerIdB);
178
- });
179
- });
180
- describe("Fleet Dashboard", () => {
181
- it("should produce a dashboard with current state", async () => {
182
- const dashboard = await fleet.getDashboard();
183
- assert.ok(dashboard);
184
- assert.equal(dashboard.total_workers, 2);
185
- // Workers should have contexts assigned
186
- assert.ok(dashboard.workers.length === 2);
187
- });
188
- });
189
- describe("Deregistration", () => {
190
- it("should deregister worker A", () => {
191
- assert.equal(primary.deregister(workerIdA), true);
192
- });
193
- it("should deregister worker B", () => {
194
- assert.equal(primary.deregister(workerIdB), true);
195
- });
196
- it("should have no workers left", () => {
197
- assert.equal(primary.getWorkers().length, 0);
198
- });
199
- });
200
- });
201
- //# sourceMappingURL=fleet-integration.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fleet-integration.test.js","sourceRoot":"","sources":["../../src/__tests__/fleet-integration.test.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Integration tests for the worker protocol (Phase 3, Task 3.1).
3
- *
4
- * Spins up a real WorkerServer and exercises the PrimaryClient against it.
5
- */
6
- export {};
7
- //# sourceMappingURL=fleet.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fleet.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/fleet.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -1,171 +0,0 @@
1
- /**
2
- * Integration tests for the worker protocol (Phase 3, Task 3.1).
3
- *
4
- * Spins up a real WorkerServer and exercises the PrimaryClient against it.
5
- */
6
- import { describe, it, before, after } from "node:test";
7
- import assert from "node:assert/strict";
8
- import { PrimaryClient } from "../fleet/primary-client.js";
9
- import { WorkerServer } from "../fleet/worker-server.js";
10
- const TEST_PORT = 19876;
11
- const WORKER_URL = `http://localhost:${TEST_PORT}`;
12
- describe("Worker Protocol", () => {
13
- let primary;
14
- let worker;
15
- let workerId;
16
- before(async () => {
17
- worker = new WorkerServer({
18
- workerId: "test-worker-1",
19
- port: TEST_PORT,
20
- maxContexts: 2,
21
- memoryDaemonUrl: "http://localhost:9999",
22
- ollamaUrl: "http://localhost:11434",
23
- });
24
- await worker.start();
25
- primary = new PrimaryClient();
26
- });
27
- after(async () => {
28
- primary.stopHealthPolling();
29
- await worker.stop();
30
- });
31
- describe("Registration", () => {
32
- it("should register a worker and return an ID", () => {
33
- const req = {
34
- url: WORKER_URL,
35
- capabilities: {
36
- max_contexts: 2,
37
- has_ollama: true,
38
- has_memory_daemon: true,
39
- available_models: ["nomic-embed-text"],
40
- },
41
- };
42
- const resp = primary.handleRegistration(req);
43
- workerId = resp.worker_id;
44
- assert.ok(workerId.startsWith("worker-"));
45
- assert.ok(resp.registered_at);
46
- });
47
- it("should list the registered worker", () => {
48
- const workers = primary.getWorkers();
49
- assert.equal(workers.length, 1);
50
- assert.equal(workers[0].id, workerId);
51
- assert.equal(workers[0].url, WORKER_URL);
52
- });
53
- it("should get a worker by ID", () => {
54
- const w = primary.getWorker(workerId);
55
- assert.ok(w);
56
- assert.equal(w.id, workerId);
57
- });
58
- });
59
- describe("Health Checks", () => {
60
- it("should get a healthy response from worker", async () => {
61
- const health = await primary.checkHealth(workerId);
62
- assert.ok(health);
63
- assert.equal(health.worker_id, "test-worker-1");
64
- assert.equal(health.status, "healthy");
65
- assert.ok(health.uptime_seconds >= 0);
66
- assert.equal(health.memory_daemon_ok, true);
67
- assert.equal(health.ollama_ok, true);
68
- });
69
- it("should return null for unknown worker", async () => {
70
- const health = await primary.checkHealth("nonexistent");
71
- assert.equal(health, null);
72
- });
73
- it("should poll all workers", async () => {
74
- const results = await primary.checkAllHealth();
75
- assert.equal(results.size, 1);
76
- assert.equal(results.get(workerId), "healthy");
77
- });
78
- });
79
- describe("Context Assignment", () => {
80
- it("should assign a context to a worker", async () => {
81
- const resp = await primary.assignContext(workerId, "project-alpha", "Alpha project");
82
- assert.equal(resp.accepted, true);
83
- assert.equal(resp.context_name, "project-alpha");
84
- });
85
- it("should track the assigned context on primary", () => {
86
- const w = primary.getWorker(workerId);
87
- assert.ok(w);
88
- assert.ok(w.assigned_contexts.includes("project-alpha"));
89
- });
90
- it("should find worker for context", () => {
91
- const w = primary.findWorkerForContext("project-alpha");
92
- assert.ok(w);
93
- assert.equal(w.id, workerId);
94
- });
95
- it("should return undefined for unassigned context", () => {
96
- const w = primary.findWorkerForContext("nonexistent");
97
- assert.equal(w, undefined);
98
- });
99
- it("should track the assigned context on worker", () => {
100
- const contexts = worker.getAssignedContexts();
101
- assert.ok(contexts.includes("project-alpha"));
102
- });
103
- it("should assign a second context", async () => {
104
- const resp = await primary.assignContext(workerId, "project-beta", "Beta project");
105
- assert.equal(resp.accepted, true);
106
- });
107
- it("should reject when at capacity", async () => {
108
- const resp = await primary.assignContext(workerId, "project-gamma", "Too many");
109
- assert.equal(resp.accepted, false);
110
- assert.ok(resp.reason?.includes("capacity"));
111
- });
112
- it("should unassign a context", async () => {
113
- const ok = await primary.unassignContext(workerId, "project-beta");
114
- assert.equal(ok, true);
115
- const w = primary.getWorker(workerId);
116
- assert.ok(w);
117
- assert.ok(!w.assigned_contexts.includes("project-beta"));
118
- });
119
- });
120
- describe("Status Reporting", () => {
121
- it("should report idle status when no task", async () => {
122
- const resp = await fetch(`${WORKER_URL}/status`);
123
- const body = (await resp.json());
124
- assert.equal(body.activity, "idle");
125
- assert.equal(body.current_context, null);
126
- assert.equal(body.current_task, null);
127
- });
128
- it("should reflect active context and task", async () => {
129
- worker.setActiveContext("project-alpha");
130
- worker.setCurrentTask("task-42");
131
- const resp = await fetch(`${WORKER_URL}/status`);
132
- const body = (await resp.json());
133
- assert.equal(body.activity, "working");
134
- assert.equal(body.current_context, "project-alpha");
135
- assert.equal(body.current_task, "task-42");
136
- });
137
- it("should handle status report on primary side", () => {
138
- const report = {
139
- activity: "working",
140
- current_context: "project-alpha",
141
- current_task: "task-42",
142
- };
143
- const status = primary.handleStatusReport(workerId, report);
144
- assert.ok(status);
145
- assert.equal(status.worker_id, workerId);
146
- assert.equal(status.activity, "working");
147
- assert.equal(status.current_context, "project-alpha");
148
- });
149
- it("should return null for unknown worker status report", () => {
150
- const report = {
151
- activity: "idle",
152
- current_context: null,
153
- current_task: null,
154
- };
155
- const status = primary.handleStatusReport("nonexistent", report);
156
- assert.equal(status, null);
157
- });
158
- });
159
- describe("Deregistration", () => {
160
- it("should deregister a worker", () => {
161
- const ok = primary.deregister(workerId);
162
- assert.equal(ok, true);
163
- assert.equal(primary.getWorkers().length, 0);
164
- });
165
- it("should return false for unknown worker", () => {
166
- const ok = primary.deregister("nonexistent");
167
- assert.equal(ok, false);
168
- });
169
- });
170
- });
171
- //# sourceMappingURL=fleet.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fleet.test.js","sourceRoot":"","sources":["../../src/__tests__/fleet.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=integration.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"integration.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/integration.test.ts"],"names":[],"mappings":""}