bhived-mcp 1.1.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.
- package/LICENSE +21 -0
- package/README.md +396 -0
- package/dist/agentsMd.d.ts +38 -0
- package/dist/agentsMd.d.ts.map +1 -0
- package/dist/agentsMd.js +392 -0
- package/dist/agentsMd.js.map +1 -0
- package/dist/childMcp/delivery.d.ts +73 -0
- package/dist/childMcp/delivery.d.ts.map +1 -0
- package/dist/childMcp/delivery.js +130 -0
- package/dist/childMcp/delivery.js.map +1 -0
- package/dist/childMcp/manager.d.ts +111 -0
- package/dist/childMcp/manager.d.ts.map +1 -0
- package/dist/childMcp/manager.js +454 -0
- package/dist/childMcp/manager.js.map +1 -0
- package/dist/client/restClient.d.ts +36 -0
- package/dist/client/restClient.d.ts.map +1 -0
- package/dist/client/restClient.js +154 -0
- package/dist/client/restClient.js.map +1 -0
- package/dist/client/types.d.ts +220 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/types.js +8 -0
- package/dist/client/types.js.map +1 -0
- package/dist/config.d.ts +36 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +28 -0
- package/dist/config.js.map +1 -0
- package/dist/formatters/inspectFormatter.d.ts +13 -0
- package/dist/formatters/inspectFormatter.d.ts.map +1 -0
- package/dist/formatters/inspectFormatter.js +68 -0
- package/dist/formatters/inspectFormatter.js.map +1 -0
- package/dist/formatters/queryFormatter.d.ts +18 -0
- package/dist/formatters/queryFormatter.d.ts.map +1 -0
- package/dist/formatters/queryFormatter.js +250 -0
- package/dist/formatters/queryFormatter.js.map +1 -0
- package/dist/formatters/writeFormatter.d.ts +16 -0
- package/dist/formatters/writeFormatter.d.ts.map +1 -0
- package/dist/formatters/writeFormatter.js +56 -0
- package/dist/formatters/writeFormatter.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +387 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/learnAndShare.d.ts +8 -0
- package/dist/prompts/learnAndShare.d.ts.map +1 -0
- package/dist/prompts/learnAndShare.js +77 -0
- package/dist/prompts/learnAndShare.js.map +1 -0
- package/dist/prompts/reviewMemory.d.ts +8 -0
- package/dist/prompts/reviewMemory.d.ts.map +1 -0
- package/dist/prompts/reviewMemory.js +61 -0
- package/dist/prompts/reviewMemory.js.map +1 -0
- package/dist/registries/childMcpRegistry.d.ts +65 -0
- package/dist/registries/childMcpRegistry.d.ts.map +1 -0
- package/dist/registries/childMcpRegistry.js +74 -0
- package/dist/registries/childMcpRegistry.js.map +1 -0
- package/dist/registries/index.d.ts +12 -0
- package/dist/registries/index.d.ts.map +1 -0
- package/dist/registries/index.js +9 -0
- package/dist/registries/index.js.map +1 -0
- package/dist/registries/resourceRegistry.d.ts +48 -0
- package/dist/registries/resourceRegistry.d.ts.map +1 -0
- package/dist/registries/resourceRegistry.js +91 -0
- package/dist/registries/resourceRegistry.js.map +1 -0
- package/dist/registries/skillRegistry.d.ts +48 -0
- package/dist/registries/skillRegistry.d.ts.map +1 -0
- package/dist/registries/skillRegistry.js +47 -0
- package/dist/registries/skillRegistry.js.map +1 -0
- package/dist/resources/guide.d.ts +7 -0
- package/dist/resources/guide.d.ts.map +1 -0
- package/dist/resources/guide.js +77 -0
- package/dist/resources/guide.js.map +1 -0
- package/dist/resources/status.d.ts +7 -0
- package/dist/resources/status.d.ts.map +1 -0
- package/dist/resources/status.js +38 -0
- package/dist/resources/status.js.map +1 -0
- package/dist/tools/initiateMcp.d.ts +10 -0
- package/dist/tools/initiateMcp.d.ts.map +1 -0
- package/dist/tools/initiateMcp.js +224 -0
- package/dist/tools/initiateMcp.js.map +1 -0
- package/dist/tools/initiateSkill.d.ts +13 -0
- package/dist/tools/initiateSkill.d.ts.map +1 -0
- package/dist/tools/initiateSkill.js +277 -0
- package/dist/tools/initiateSkill.js.map +1 -0
- package/dist/tools/inspect.d.ts +8 -0
- package/dist/tools/inspect.d.ts.map +1 -0
- package/dist/tools/inspect.js +110 -0
- package/dist/tools/inspect.js.map +1 -0
- package/dist/tools/listActive.d.ts +9 -0
- package/dist/tools/listActive.d.ts.map +1 -0
- package/dist/tools/listActive.js +177 -0
- package/dist/tools/listActive.js.map +1 -0
- package/dist/tools/query.d.ts +15 -0
- package/dist/tools/query.d.ts.map +1 -0
- package/dist/tools/query.js +98 -0
- package/dist/tools/query.js.map +1 -0
- package/dist/tools/readResource.d.ts +9 -0
- package/dist/tools/readResource.d.ts.map +1 -0
- package/dist/tools/readResource.js +110 -0
- package/dist/tools/readResource.js.map +1 -0
- package/dist/tools/runScript.d.ts +17 -0
- package/dist/tools/runScript.d.ts.map +1 -0
- package/dist/tools/runScript.js +320 -0
- package/dist/tools/runScript.js.map +1 -0
- package/dist/tools/stopMcp.d.ts +8 -0
- package/dist/tools/stopMcp.d.ts.map +1 -0
- package/dist/tools/stopMcp.js +91 -0
- package/dist/tools/stopMcp.js.map +1 -0
- package/dist/tools/useTool.d.ts +10 -0
- package/dist/tools/useTool.d.ts.map +1 -0
- package/dist/tools/useTool.js +127 -0
- package/dist/tools/useTool.js.map +1 -0
- package/dist/tools/write.d.ts +9 -0
- package/dist/tools/write.d.ts.map +1 -0
- package/dist/tools/write.js +224 -0
- package/dist/tools/write.js.map +1 -0
- package/package.json +59 -0
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Query Result Formatter
|
|
3
|
+
*
|
|
4
|
+
* Formats /v1/query results as clean Markdown optimized for LLM parsing.
|
|
5
|
+
*
|
|
6
|
+
* Design principles:
|
|
7
|
+
* - Markdown for universal LLM readability
|
|
8
|
+
* - Minimal decoration, maximum information density
|
|
9
|
+
* - Clear key:value pairs for reliable extraction
|
|
10
|
+
* - Token-efficient: no box-drawing chars, no emoji spam
|
|
11
|
+
*
|
|
12
|
+
* Skills and MCPs are separated from regular recommendations into
|
|
13
|
+
* dedicated "Recommended Skills" / "Recommended MCPs" sections that
|
|
14
|
+
* display only the description, resources, and activation ID.
|
|
15
|
+
*/
|
|
16
|
+
// ── Max items for capability sections ────────────────────────────
|
|
17
|
+
const MAX_SKILLS_SHOWN = 10;
|
|
18
|
+
const MAX_MCPS_SHOWN = 10;
|
|
19
|
+
const MAX_WORDS_SHOWN = 200;
|
|
20
|
+
function trimTextForReadability(text, maxWords, memId = null) {
|
|
21
|
+
if (!text)
|
|
22
|
+
return text;
|
|
23
|
+
const words = text.trim().split(/\s+/);
|
|
24
|
+
if (words.length <= maxWords)
|
|
25
|
+
return text;
|
|
26
|
+
const truncated = words.slice(0, maxWords).join(" ");
|
|
27
|
+
let notice = `\n\n> ✂️ **Note:** Text truncated (${words.length} words).`;
|
|
28
|
+
if (memId) {
|
|
29
|
+
notice += ` Use \`hivemind_inspect(memory_id="${memId}")\` to read the full text.`;
|
|
30
|
+
}
|
|
31
|
+
return `${truncated}...${notice}`;
|
|
32
|
+
}
|
|
33
|
+
export function formatQueryResult(result) {
|
|
34
|
+
const sections = [];
|
|
35
|
+
const recs = result.recommendations ?? [];
|
|
36
|
+
// ── Partition: separate skill/mcp memories from regular memories ──
|
|
37
|
+
const regularMemories = [];
|
|
38
|
+
const skillMemories = [];
|
|
39
|
+
const mcpMemories = [];
|
|
40
|
+
for (const mem of recs) {
|
|
41
|
+
if (mem.has_skill && mem.skill_meta) {
|
|
42
|
+
skillMemories.push(mem);
|
|
43
|
+
}
|
|
44
|
+
else if (mem.has_mcp && mem.mcp_meta) {
|
|
45
|
+
mcpMemories.push(mem);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
regularMemories.push(mem);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
// ── Header ──
|
|
52
|
+
sections.push(`# HiveMind Results (${recs.length} found)\n`);
|
|
53
|
+
// ── Regular Recommendations (non-skill, non-mcp) ──
|
|
54
|
+
if (regularMemories.length === 0 && skillMemories.length === 0 && mcpMemories.length === 0) {
|
|
55
|
+
sections.push("No matching memories found. Try broadening your query.\n");
|
|
56
|
+
}
|
|
57
|
+
else if (regularMemories.length > 0) {
|
|
58
|
+
sections.push("## Recommendations\n");
|
|
59
|
+
regularMemories.forEach((mem, i) => {
|
|
60
|
+
sections.push(formatMemory(mem, i + 1));
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
// ── Recommended Skills section ──
|
|
64
|
+
if (skillMemories.length > 0) {
|
|
65
|
+
sections.push(formatRecommendedSkills(skillMemories));
|
|
66
|
+
}
|
|
67
|
+
// ── Recommended MCPs section ──
|
|
68
|
+
if (mcpMemories.length > 0) {
|
|
69
|
+
sections.push(formatRecommendedMcps(mcpMemories));
|
|
70
|
+
}
|
|
71
|
+
// ── Warnings ──
|
|
72
|
+
const warnings = result.warnings ?? [];
|
|
73
|
+
if (warnings.length > 0) {
|
|
74
|
+
sections.push("## ⚠️ Warnings\n");
|
|
75
|
+
warnings.forEach((w) => {
|
|
76
|
+
sections.push(formatWarning(w));
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
// ── Disputed Pairs ──
|
|
80
|
+
const disputed = result.disputed_pairs ?? [];
|
|
81
|
+
if (disputed.length > 0) {
|
|
82
|
+
sections.push("## Disputed Pairs\n");
|
|
83
|
+
disputed.forEach((pair) => {
|
|
84
|
+
sections.push(formatDisputed(pair));
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
// ── Episodes ──
|
|
88
|
+
const episodes = result.episodes ?? [];
|
|
89
|
+
if (episodes.length > 0) {
|
|
90
|
+
sections.push("## Episodes\n");
|
|
91
|
+
episodes.forEach((ep) => {
|
|
92
|
+
const memIds = ep.memories.map(m => getMemoryId(m)).join(" → ");
|
|
93
|
+
sections.push(`- **${ep.topic}**: ${memIds}`);
|
|
94
|
+
});
|
|
95
|
+
sections.push("");
|
|
96
|
+
}
|
|
97
|
+
// ── Query ID (critical for feedback loop) ──
|
|
98
|
+
sections.push("---");
|
|
99
|
+
sections.push(`**query_id**: \`${result.query_id}\``);
|
|
100
|
+
sections.push("Save this and pass it to your write call to close the feedback loop.");
|
|
101
|
+
return sections.join("\n");
|
|
102
|
+
}
|
|
103
|
+
/** Extract memory ID, handling both `id` and `memory_id` field names */
|
|
104
|
+
function getMemoryId(mem) {
|
|
105
|
+
return mem.id ?? mem["memory_id"] ?? "unknown";
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Format a regular (non-skill, non-mcp) memory recommendation.
|
|
109
|
+
* No capability badges — skills/MCPs have their own section.
|
|
110
|
+
*/
|
|
111
|
+
function formatMemory(mem, rank) {
|
|
112
|
+
const lines = [];
|
|
113
|
+
const memId = getMemoryId(mem);
|
|
114
|
+
// Header: rank, type badge, and title
|
|
115
|
+
const title = mem.title ? `**${mem.title}**` : "_(untitled)_";
|
|
116
|
+
lines.push(`### ${rank}. [${mem.type ?? "memory"}] ${title}\n`);
|
|
117
|
+
// Metadata line — compact key:value pairs
|
|
118
|
+
const meta = [];
|
|
119
|
+
meta.push(`score: ${mem.score?.toFixed(2) ?? "N/A"}`);
|
|
120
|
+
if (mem.corroboration_count && mem.corroboration_count > 0) {
|
|
121
|
+
meta.push(`+${mem.corroboration_count} corroborated`);
|
|
122
|
+
}
|
|
123
|
+
if (mem.contradiction_count && mem.contradiction_count > 0) {
|
|
124
|
+
meta.push(`-${mem.contradiction_count} contradicted`);
|
|
125
|
+
}
|
|
126
|
+
if (mem.times_retrieved && mem.times_retrieved > 0) {
|
|
127
|
+
meta.push(`${mem.times_retrieved}× retrieved`);
|
|
128
|
+
}
|
|
129
|
+
if (memId !== "unknown") {
|
|
130
|
+
meta.push(`id: \`${memId}\``);
|
|
131
|
+
}
|
|
132
|
+
lines.push(`> ${meta.join(" · ")}\n`);
|
|
133
|
+
// Content
|
|
134
|
+
const content = mem.text ? trimTextForReadability(mem.text, MAX_WORDS_SHOWN, memId) : "";
|
|
135
|
+
lines.push(`${content}\n`);
|
|
136
|
+
return lines.join("\n");
|
|
137
|
+
}
|
|
138
|
+
// ── Recommended Skills section ──────────────────────────────────
|
|
139
|
+
/**
|
|
140
|
+
* Format a dedicated "Recommended Skills" section.
|
|
141
|
+
* Shows description, resources, and the memory_id to activate.
|
|
142
|
+
*/
|
|
143
|
+
function formatRecommendedSkills(skills) {
|
|
144
|
+
const lines = [];
|
|
145
|
+
lines.push("## 🔧 Recommended Skills\n");
|
|
146
|
+
lines.push("> Activate a skill with `hivemind_initiate_skill(memory_id, agent_id)` to load its instructions, scripts, and resources.\n");
|
|
147
|
+
const shown = skills.slice(0, MAX_SKILLS_SHOWN);
|
|
148
|
+
shown.forEach((mem, i) => {
|
|
149
|
+
const sm = mem.skill_meta;
|
|
150
|
+
const memId = getMemoryId(mem);
|
|
151
|
+
// Skill name (bold)
|
|
152
|
+
lines.push(`### ${i + 1}. ${sm.name}\n`);
|
|
153
|
+
// Description
|
|
154
|
+
if (sm.description) {
|
|
155
|
+
const desc = trimTextForReadability(sm.description, MAX_WORDS_SHOWN, memId);
|
|
156
|
+
lines.push(`${desc}\n`);
|
|
157
|
+
}
|
|
158
|
+
// Resources table
|
|
159
|
+
const resources = [];
|
|
160
|
+
if (sm.script_count)
|
|
161
|
+
resources.push(`${sm.script_count} scripts`);
|
|
162
|
+
if (sm.reference_count)
|
|
163
|
+
resources.push(`${sm.reference_count} references`);
|
|
164
|
+
if (sm.asset_count)
|
|
165
|
+
resources.push(`${sm.asset_count} assets`);
|
|
166
|
+
if (sm.mcp_count) {
|
|
167
|
+
const names = sm.mcp_names ? ` (${sm.mcp_names.join(", ")})` : "";
|
|
168
|
+
resources.push(`${sm.mcp_count} bundled MCP(s)${names}`);
|
|
169
|
+
}
|
|
170
|
+
if (resources.length > 0) {
|
|
171
|
+
lines.push(`📦 **Resources:** ${resources.join(" · ")}\n`);
|
|
172
|
+
}
|
|
173
|
+
// Usage stats (if available)
|
|
174
|
+
const stats = [];
|
|
175
|
+
if (sm.usage_count !== undefined)
|
|
176
|
+
stats.push(`used by ${sm.usage_count} agents`);
|
|
177
|
+
if (sm.success_rate !== undefined)
|
|
178
|
+
stats.push(`success: ${Math.round(sm.success_rate * 100)}%`);
|
|
179
|
+
if (stats.length > 0) {
|
|
180
|
+
lines.push(`📊 ${stats.join(" · ")}\n`);
|
|
181
|
+
}
|
|
182
|
+
// Activation ID — the key piece
|
|
183
|
+
lines.push(`🆔 **Activate:** \`memory_id="${memId}"\`\n`);
|
|
184
|
+
});
|
|
185
|
+
if (skills.length > MAX_SKILLS_SHOWN) {
|
|
186
|
+
lines.push(`> ${skills.length - MAX_SKILLS_SHOWN} more skill(s) found but not shown.\n`);
|
|
187
|
+
}
|
|
188
|
+
return lines.join("\n");
|
|
189
|
+
}
|
|
190
|
+
// ── Recommended MCPs section ────────────────────────────────────
|
|
191
|
+
/**
|
|
192
|
+
* Format a dedicated "Recommended MCPs" section.
|
|
193
|
+
* Shows description, tools hint, and the memory_id to activate.
|
|
194
|
+
*/
|
|
195
|
+
function formatRecommendedMcps(mcps) {
|
|
196
|
+
const lines = [];
|
|
197
|
+
lines.push("## 🔌 Recommended MCPs\n");
|
|
198
|
+
lines.push("> Activate an MCP with `hivemind_initiate_mcp(memory_id, agent_id)` to spawn it and use its tools.\n");
|
|
199
|
+
const shown = mcps.slice(0, MAX_MCPS_SHOWN);
|
|
200
|
+
shown.forEach((mem, i) => {
|
|
201
|
+
const mm = mem.mcp_meta;
|
|
202
|
+
const memId = getMemoryId(mem);
|
|
203
|
+
// MCP name (bold)
|
|
204
|
+
lines.push(`### ${i + 1}. ${mm.name}\n`);
|
|
205
|
+
// Description
|
|
206
|
+
if (mm.description) {
|
|
207
|
+
const desc = trimTextForReadability(mm.description, MAX_WORDS_SHOWN, memId);
|
|
208
|
+
lines.push(`${desc}\n`);
|
|
209
|
+
}
|
|
210
|
+
// Tools
|
|
211
|
+
if (mm.tools_hint && mm.tools_hint.length > 0) {
|
|
212
|
+
lines.push(`🔧 **Tools:** ${mm.tools_hint.join(", ")}\n`);
|
|
213
|
+
}
|
|
214
|
+
// Usage stats (if available)
|
|
215
|
+
const stats = [];
|
|
216
|
+
if (mm.usage_count !== undefined)
|
|
217
|
+
stats.push(`used by ${mm.usage_count} agents`);
|
|
218
|
+
if (mm.success_rate !== undefined)
|
|
219
|
+
stats.push(`success: ${Math.round(mm.success_rate * 100)}%`);
|
|
220
|
+
if (stats.length > 0) {
|
|
221
|
+
lines.push(`📊 ${stats.join(" · ")}\n`);
|
|
222
|
+
}
|
|
223
|
+
// Activation ID — the key piece
|
|
224
|
+
lines.push(`🆔 **Activate:** \`memory_id="${memId}"\`\n`);
|
|
225
|
+
});
|
|
226
|
+
if (mcps.length > MAX_MCPS_SHOWN) {
|
|
227
|
+
lines.push(`> ${mcps.length - MAX_MCPS_SHOWN} more MCP(s) found but not shown.\n`);
|
|
228
|
+
}
|
|
229
|
+
return lines.join("\n");
|
|
230
|
+
}
|
|
231
|
+
// ── Standard formatting helpers ─────────────────────────────────
|
|
232
|
+
function formatWarning(w) {
|
|
233
|
+
const lines = [];
|
|
234
|
+
const title = w.title ? `**${w.title}**` : "";
|
|
235
|
+
lines.push(`- **[${w.type}]** ${title} (confidence: ${w.confidence?.toFixed(2) ?? "N/A"})`);
|
|
236
|
+
if (w.contradicts_memory_id) {
|
|
237
|
+
lines.push(` contradicts: \`${w.contradicts_memory_id}\``);
|
|
238
|
+
}
|
|
239
|
+
const content = w.text ? trimTextForReadability(w.text, MAX_WORDS_SHOWN) : "";
|
|
240
|
+
lines.push(` ${content}\n`);
|
|
241
|
+
return lines.join("\n");
|
|
242
|
+
}
|
|
243
|
+
function formatDisputed(pair) {
|
|
244
|
+
const lines = [];
|
|
245
|
+
lines.push(`- **${pair.dispute_type}**`);
|
|
246
|
+
lines.push(` - A: [${pair.memory_a.type}] "${pair.memory_a.title}" (\`${getMemoryId(pair.memory_a)}\`)`);
|
|
247
|
+
lines.push(` - B: [${pair.memory_b.type}] "${pair.memory_b.title}" (\`${getMemoryId(pair.memory_b)}\`)\n`);
|
|
248
|
+
return lines.join("\n");
|
|
249
|
+
}
|
|
250
|
+
//# sourceMappingURL=queryFormatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queryFormatter.js","sourceRoot":"","sources":["../../src/formatters/queryFormatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Write Result Formatter
|
|
3
|
+
*
|
|
4
|
+
* Formats POST /v1/memories response as clean Markdown
|
|
5
|
+
* optimized for LLM parsing.
|
|
6
|
+
*
|
|
7
|
+
* Design: concise confirmation with actionable metadata.
|
|
8
|
+
* The agent needs the memory_id and confirmation — not decoration.
|
|
9
|
+
*/
|
|
10
|
+
import type { WriteResult } from "../client/types.js";
|
|
11
|
+
export declare function formatWriteResult(result: WriteResult, memoryType: string): string;
|
|
12
|
+
/**
|
|
13
|
+
* Format a duplicate memory error into an actionable message.
|
|
14
|
+
*/
|
|
15
|
+
export declare function formatDuplicateError(duplicateOf: string, similarity: number): string;
|
|
16
|
+
//# sourceMappingURL=writeFormatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writeFormatter.d.ts","sourceRoot":"","sources":["../../src/formatters/writeFormatter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CA8BjF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAChC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACnB,MAAM,CAUR"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Write Result Formatter
|
|
3
|
+
*
|
|
4
|
+
* Formats POST /v1/memories response as clean Markdown
|
|
5
|
+
* optimized for LLM parsing.
|
|
6
|
+
*
|
|
7
|
+
* Design: concise confirmation with actionable metadata.
|
|
8
|
+
* The agent needs the memory_id and confirmation — not decoration.
|
|
9
|
+
*/
|
|
10
|
+
export function formatWriteResult(result, memoryType) {
|
|
11
|
+
const lines = [];
|
|
12
|
+
lines.push(`# ✅ Memory ${result.action_performed}\n`);
|
|
13
|
+
lines.push(`- **type**: ${memoryType}`);
|
|
14
|
+
lines.push(`- **memory_id**: \`${result.memory_id}\``);
|
|
15
|
+
lines.push(`- **action**: ${result.action_performed}`);
|
|
16
|
+
// Graph impact — only show non-zero values
|
|
17
|
+
const impact = [];
|
|
18
|
+
if (result.entities_created > 0)
|
|
19
|
+
impact.push(`${result.entities_created} entities created`);
|
|
20
|
+
if (result.entities_merged > 0)
|
|
21
|
+
impact.push(`${result.entities_merged} entities merged`);
|
|
22
|
+
if (result.relations_created > 0)
|
|
23
|
+
impact.push(`${result.relations_created} relations`);
|
|
24
|
+
if (result.causal_relations > 0)
|
|
25
|
+
impact.push(`${result.causal_relations} causal links`);
|
|
26
|
+
if (result.corroborations_created > 0)
|
|
27
|
+
impact.push(`${result.corroborations_created} corroborations`);
|
|
28
|
+
if (result.contradictions_created > 0)
|
|
29
|
+
impact.push(`${result.contradictions_created} contradictions`);
|
|
30
|
+
if (impact.length > 0) {
|
|
31
|
+
lines.push(`- **graph_impact**: ${impact.join(", ")}`);
|
|
32
|
+
}
|
|
33
|
+
// Linkage — critical for the feedback loop
|
|
34
|
+
if (result.query_id_linked) {
|
|
35
|
+
lines.push(`- **linked_query**: \`${result.query_id_linked}\``);
|
|
36
|
+
}
|
|
37
|
+
if (result.supersedes_id_linked) {
|
|
38
|
+
lines.push(`- **supersedes**: \`${result.supersedes_id_linked}\``);
|
|
39
|
+
}
|
|
40
|
+
return lines.join("\n");
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Format a duplicate memory error into an actionable message.
|
|
44
|
+
*/
|
|
45
|
+
export function formatDuplicateError(duplicateOf, similarity) {
|
|
46
|
+
return [
|
|
47
|
+
"# ⚠️ Near-duplicate detected — memory NOT created\n",
|
|
48
|
+
`- **existing_memory**: \`${duplicateOf}\``,
|
|
49
|
+
`- **similarity**: ${(similarity * 100).toFixed(0)}%\n`,
|
|
50
|
+
"**Next steps:**",
|
|
51
|
+
`1. Inspect the existing memory: use \`hivemind_inspect\` with id \`${duplicateOf}\``,
|
|
52
|
+
"2. If your version is better, resubmit with `supersedes_id` to replace it",
|
|
53
|
+
"3. If identical, no action needed — the hive already knows this",
|
|
54
|
+
].join("\n");
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=writeFormatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writeFormatter.js","sourceRoot":"","sources":["../../src/formatters/writeFormatter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,MAAM,UAAU,iBAAiB,CAAC,MAAmB,EAAE,UAAkB;IACrE,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,gBAAgB,IAAI,CAAC,CAAC;IACtD,KAAK,CAAC,IAAI,CAAC,eAAe,UAAU,EAAE,CAAC,CAAC;IACxC,KAAK,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;IACvD,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAEvD,2CAA2C;IAC3C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,MAAM,CAAC,gBAAgB,GAAG,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,gBAAgB,mBAAmB,CAAC,CAAC;IAC5F,IAAI,MAAM,CAAC,eAAe,GAAG,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,eAAe,kBAAkB,CAAC,CAAC;IACzF,IAAI,MAAM,CAAC,iBAAiB,GAAG,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,iBAAiB,YAAY,CAAC,CAAC;IACvF,IAAI,MAAM,CAAC,gBAAgB,GAAG,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,gBAAgB,eAAe,CAAC,CAAC;IACxF,IAAI,MAAM,CAAC,sBAAsB,GAAG,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,sBAAsB,iBAAiB,CAAC,CAAC;IACtG,IAAI,MAAM,CAAC,sBAAsB,GAAG,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,sBAAsB,iBAAiB,CAAC,CAAC;IAEtG,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,uBAAuB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,2CAA2C;IAC3C,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,yBAAyB,MAAM,CAAC,eAAe,IAAI,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,MAAM,CAAC,oBAAoB,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,uBAAuB,MAAM,CAAC,oBAAoB,IAAI,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAChC,WAAmB,EACnB,UAAkB;IAElB,OAAO;QACH,qDAAqD;QACrD,4BAA4B,WAAW,IAAI;QAC3C,qBAAqB,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;QACvD,iBAAiB;QACjB,sEAAsE,WAAW,IAAI;QACrF,2EAA2E;QAC3E,iEAAiE;KACpE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;GAKG"}
|