@sesamespace/hivemind 0.11.4 → 0.11.5

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.
@@ -5335,15 +5335,12 @@ function registerMemoryTools(registry, daemonUrl) {
5335
5335
  const context = params.context || "global";
5336
5336
  const topK = params.top_k || 10;
5337
5337
  try {
5338
- const resp = await fetch(`${daemonUrl}/api/search`, {
5339
- method: "POST",
5340
- headers: { "Content-Type": "application/json" },
5341
- body: JSON.stringify({ query, context_name: context, top_k: topK })
5342
- });
5338
+ const searchParams = new URLSearchParams({ q: query, context, limit: String(topK) });
5339
+ const resp = await fetch(`${daemonUrl}/search?${searchParams}`);
5343
5340
  if (!resp.ok) return `Memory search failed: ${resp.status}`;
5344
5341
  const data = await resp.json();
5345
- if (!data.results?.length) return `No memories found for "${query}" in context "${context}".`;
5346
- return data.results.map((r, i) => `${i + 1}. [score: ${r.score.toFixed(3)}] [${r.context_name}] [${r.role}] ${r.content.slice(0, 200)}`).join("\n");
5342
+ if (!data.episodes?.length) return `No memories found for "${query}" in context "${context}".`;
5343
+ return data.episodes.map((r, i) => `${i + 1}. [score: ${r.score.toFixed(3)}] [${r.context_name}] [${r.role}] ${r.content.slice(0, 200)}`).join("\n");
5347
5344
  } catch (err) {
5348
5345
  return `Memory daemon unreachable: ${err.message}`;
5349
5346
  }
@@ -5361,12 +5358,12 @@ function registerMemoryTools(registry, daemonUrl) {
5361
5358
  try {
5362
5359
  const healthResp = await fetch(`${daemonUrl}/health`);
5363
5360
  const health = healthResp.ok ? await healthResp.json() : { status: "unreachable" };
5364
- const ctxResp = await fetch(`${daemonUrl}/api/contexts`);
5361
+ const ctxResp = await fetch(`${daemonUrl}/contexts`);
5365
5362
  const contexts = ctxResp.ok ? (await ctxResp.json()).contexts : [];
5366
5363
  const l3Counts = {};
5367
5364
  for (const ctx of contexts) {
5368
5365
  try {
5369
- const l3Resp = await fetch(`${daemonUrl}/api/l3/${encodeURIComponent(ctx.name)}`);
5366
+ const l3Resp = await fetch(`${daemonUrl}/promotion/l3?context=${encodeURIComponent(ctx.name)}`);
5370
5367
  if (l3Resp.ok) {
5371
5368
  const l3Data = await l3Resp.json();
5372
5369
  l3Counts[ctx.name] = l3Data.entries?.length ?? 0;
@@ -5411,7 +5408,7 @@ Contexts:
5411
5408
  async (params) => {
5412
5409
  const context = params.context || "global";
5413
5410
  try {
5414
- const resp = await fetch(`${daemonUrl}/api/l3/${encodeURIComponent(context)}`);
5411
+ const resp = await fetch(`${daemonUrl}/promotion/l3?context=${encodeURIComponent(context)}`);
5415
5412
  if (!resp.ok) return `L3 query failed: ${resp.status}`;
5416
5413
  const data = await resp.json();
5417
5414
  if (!data.entries?.length) return `No L3 knowledge in context "${context}".`;
@@ -5442,15 +5439,19 @@ Contexts:
5442
5439
  const query = params.query;
5443
5440
  const topK = params.top_k || 10;
5444
5441
  try {
5445
- const resp = await fetch(`${daemonUrl}/api/search/cross-context`, {
5446
- method: "POST",
5447
- headers: { "Content-Type": "application/json" },
5448
- body: JSON.stringify({ query, top_k: topK })
5449
- });
5442
+ const crossParams = new URLSearchParams({ q: query, limit: String(topK) });
5443
+ const resp = await fetch(`${daemonUrl}/search/cross-context?${crossParams}`);
5450
5444
  if (!resp.ok) return `Cross-context search failed: ${resp.status}`;
5451
5445
  const data = await resp.json();
5452
- if (!data.results?.length) return `No memories found across any context for "${query}".`;
5453
- return data.results.map((r, i) => `${i + 1}. [${r.score.toFixed(3)}] [${r.context_name}] ${r.content.slice(0, 200)}`).join("\n");
5446
+ const flat = [];
5447
+ for (const group of data.results || []) {
5448
+ for (const ep of group.episodes) {
5449
+ flat.push({ ...ep, context_name: group.context });
5450
+ }
5451
+ }
5452
+ if (!flat.length) return `No memories found across any context for "${query}".`;
5453
+ flat.sort((a, b) => b.score - a.score);
5454
+ return flat.map((r, i) => `${i + 1}. [${r.score.toFixed(3)}] [${r.context_name}] ${r.content.slice(0, 200)}`).join("\n");
5454
5455
  } catch (err) {
5455
5456
  return `Memory daemon unreachable: ${err.message}`;
5456
5457
  }
@@ -8070,7 +8071,7 @@ ${findingText}`
8070
8071
  async function storeInMemory(contextName, topic, findings, synthesis, daemonUrl) {
8071
8072
  const storedIds = [];
8072
8073
  try {
8073
- await fetch(`${daemonUrl}/api/contexts`, {
8074
+ await fetch(`${daemonUrl}/contexts`, {
8074
8075
  method: "POST",
8075
8076
  headers: { "Content-Type": "application/json" },
8076
8077
  body: JSON.stringify({
@@ -8084,7 +8085,7 @@ async function storeInMemory(contextName, topic, findings, synthesis, daemonUrl)
8084
8085
  const content = `[Source: ${finding.source}]
8085
8086
  ${finding.keyPoints.join("\n")}`;
8086
8087
  try {
8087
- const resp = await fetch(`${daemonUrl}/api/episodes`, {
8088
+ const resp = await fetch(`${daemonUrl}/episodes`, {
8088
8089
  method: "POST",
8089
8090
  headers: { "Content-Type": "application/json" },
8090
8091
  body: JSON.stringify({
@@ -8101,7 +8102,7 @@ ${finding.keyPoints.join("\n")}`;
8101
8102
  }
8102
8103
  }
8103
8104
  try {
8104
- const resp = await fetch(`${daemonUrl}/api/episodes`, {
8105
+ const resp = await fetch(`${daemonUrl}/episodes`, {
8105
8106
  method: "POST",
8106
8107
  headers: { "Content-Type": "application/json" },
8107
8108
  body: JSON.stringify({
@@ -8118,7 +8119,7 @@ ${synthesis}`
8118
8119
  } catch {
8119
8120
  }
8120
8121
  try {
8121
- await fetch(`${daemonUrl}/api/promotion/run?context=${encodeURIComponent(contextName)}`, {
8122
+ await fetch(`${daemonUrl}/promotion/run?context=${encodeURIComponent(contextName)}`, {
8122
8123
  method: "POST"
8123
8124
  });
8124
8125
  } catch {
@@ -8265,28 +8266,30 @@ ${synthesis}${storageNote}`;
8265
8266
  const daemonUrl = config.memoryDaemonUrl;
8266
8267
  try {
8267
8268
  if (context) {
8268
- const resp2 = await fetch(`${daemonUrl}/api/search`, {
8269
- method: "POST",
8270
- headers: { "Content-Type": "application/json" },
8271
- body: JSON.stringify({ query: topic, context_name: context, top_k: 10 })
8272
- });
8269
+ const searchParams = new URLSearchParams({ q: topic, context, limit: "10" });
8270
+ const resp2 = await fetch(`${daemonUrl}/search?${searchParams}`);
8273
8271
  if (!resp2.ok) return `Memory search failed: ${resp2.status}`;
8274
8272
  const data2 = await resp2.json();
8275
- if (!data2.results?.length) return `No learned knowledge found for "${topic}" in context "${context}".`;
8276
- return data2.results.map((r, i) => `${i + 1}. [score: ${r.score.toFixed(3)}] [${r.role}]
8273
+ if (!data2.episodes?.length) return `No learned knowledge found for "${topic}" in context "${context}".`;
8274
+ return data2.episodes.map((r, i) => `${i + 1}. [score: ${r.score.toFixed(3)}] [${r.role}]
8277
8275
  ${r.content.slice(0, 500)}`).join("\n\n");
8278
8276
  }
8279
- const resp = await fetch(`${daemonUrl}/api/search/cross-context`, {
8280
- method: "POST",
8281
- headers: { "Content-Type": "application/json" },
8282
- body: JSON.stringify({ query: topic, top_k: 15 })
8283
- });
8277
+ const crossParams = new URLSearchParams({ q: topic, limit: "15" });
8278
+ const resp = await fetch(`${daemonUrl}/search/cross-context?${crossParams}`);
8284
8279
  if (!resp.ok) return `Memory cross-search failed: ${resp.status}`;
8285
8280
  const data = await resp.json();
8286
- const learnResults = data.results?.filter((r) => r.context_name.startsWith("learn-")) || [];
8281
+ const learnResults = [];
8282
+ for (const group of data.results || []) {
8283
+ if (group.context.startsWith("learn-")) {
8284
+ for (const ep of group.episodes) {
8285
+ learnResults.push({ ...ep, context_name: group.context });
8286
+ }
8287
+ }
8288
+ }
8287
8289
  if (learnResults.length === 0) {
8288
8290
  return `No previously learned knowledge found for "${topic}". Use the learn tool first.`;
8289
8291
  }
8292
+ learnResults.sort((a, b) => b.score - a.score);
8290
8293
  return learnResults.map((r, i) => `${i + 1}. [score: ${r.score.toFixed(3)}] [${r.context_name}] [${r.role}]
8291
8294
  ${r.content.slice(0, 500)}`).join("\n\n");
8292
8295
  } catch (err) {
@@ -9415,4 +9418,4 @@ smol-toml/dist/index.js:
9415
9418
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
9416
9419
  *)
9417
9420
  */
9418
- //# sourceMappingURL=chunk-OB6OXLPC.js.map
9421
+ //# sourceMappingURL=chunk-EKZ3IZU6.js.map