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,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* hivemind_inspect Tool
|
|
3
|
+
*
|
|
4
|
+
* Inspects the full state of a memory in the knowledge graph.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from "zod/v4";
|
|
7
|
+
import { restClient } from "../client/restClient.js";
|
|
8
|
+
import { formatInspectResult } from "../formatters/inspectFormatter.js";
|
|
9
|
+
const InspectInputSchema = z.object({
|
|
10
|
+
memory_id: z
|
|
11
|
+
.string()
|
|
12
|
+
.min(1, "Memory ID must not be empty")
|
|
13
|
+
.describe("The ID of the memory to inspect."),
|
|
14
|
+
}).strict();
|
|
15
|
+
// Output schema for structured content
|
|
16
|
+
const InspectOutputSchema = z.object({
|
|
17
|
+
id: z.string(),
|
|
18
|
+
text: z.string(),
|
|
19
|
+
title: z.string(),
|
|
20
|
+
type: z.string(),
|
|
21
|
+
status: z.string(),
|
|
22
|
+
agent_id: z.string(),
|
|
23
|
+
source: z.string().optional().default("unknown"),
|
|
24
|
+
created_at: z.string(),
|
|
25
|
+
updated_at: z.string(),
|
|
26
|
+
corroboration_count: z.number().optional().default(0),
|
|
27
|
+
contradiction_count: z.number().optional().default(0),
|
|
28
|
+
superseded_count: z.number().optional().default(0),
|
|
29
|
+
times_retrieved: z.number().optional().default(0),
|
|
30
|
+
version_count: z.number().optional().default(1),
|
|
31
|
+
version_hash: z.string().optional().default(""),
|
|
32
|
+
responding_to_query: z.string().nullable().optional().default(null),
|
|
33
|
+
archived_at: z.string().nullable().optional().default(null),
|
|
34
|
+
restore_count: z.number().optional().default(0),
|
|
35
|
+
});
|
|
36
|
+
const INSPECT_DESC = `Inspect the full state of a memory in the knowledge graph.
|
|
37
|
+
Returns the memory's text, type, status, evolution scores,
|
|
38
|
+
corroboration/contradiction counts, version history, and
|
|
39
|
+
connected edges. Use this to verify the impact of your writes
|
|
40
|
+
or to understand why a memory ranks where it does.`;
|
|
41
|
+
export function registerInspectTool(server) {
|
|
42
|
+
server.registerTool("hivemind_inspect", {
|
|
43
|
+
title: "Inspect Memory State",
|
|
44
|
+
description: INSPECT_DESC,
|
|
45
|
+
inputSchema: InspectInputSchema,
|
|
46
|
+
outputSchema: InspectOutputSchema,
|
|
47
|
+
annotations: {
|
|
48
|
+
readOnlyHint: true,
|
|
49
|
+
destructiveHint: false,
|
|
50
|
+
idempotentHint: true,
|
|
51
|
+
openWorldHint: true,
|
|
52
|
+
},
|
|
53
|
+
}, async (params) => {
|
|
54
|
+
try {
|
|
55
|
+
const memory = await restClient.getMemory(params.memory_id);
|
|
56
|
+
// Structured output for programmatic clients
|
|
57
|
+
// Use defaults for optional fields to prevent schema validation errors
|
|
58
|
+
const structured = {
|
|
59
|
+
id: memory.id,
|
|
60
|
+
text: memory.text,
|
|
61
|
+
title: memory.title,
|
|
62
|
+
type: memory.type,
|
|
63
|
+
status: memory.status,
|
|
64
|
+
agent_id: memory.agent_id,
|
|
65
|
+
source: memory.source ?? "unknown",
|
|
66
|
+
created_at: memory.created_at,
|
|
67
|
+
updated_at: memory.updated_at,
|
|
68
|
+
corroboration_count: memory.corroboration_count ?? 0,
|
|
69
|
+
contradiction_count: memory.contradiction_count ?? 0,
|
|
70
|
+
superseded_count: memory.superseded_count ?? 0,
|
|
71
|
+
times_retrieved: memory.times_retrieved ?? 0,
|
|
72
|
+
version_count: memory.version_count ?? 1,
|
|
73
|
+
version_hash: memory.version_hash ?? "",
|
|
74
|
+
responding_to_query: memory.responding_to_query ?? null,
|
|
75
|
+
archived_at: memory.archived_at ?? null,
|
|
76
|
+
restore_count: memory.restore_count ?? 0,
|
|
77
|
+
};
|
|
78
|
+
return {
|
|
79
|
+
content: [
|
|
80
|
+
{ type: "text", text: formatInspectResult(memory) },
|
|
81
|
+
],
|
|
82
|
+
structuredContent: structured,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
const statusCode = error.statusCode;
|
|
87
|
+
if (statusCode === 404) {
|
|
88
|
+
return {
|
|
89
|
+
content: [
|
|
90
|
+
{
|
|
91
|
+
type: "text",
|
|
92
|
+
text: `Memory not found: ${params.memory_id}. Check the ID and try again.`,
|
|
93
|
+
},
|
|
94
|
+
],
|
|
95
|
+
isError: true,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
return {
|
|
99
|
+
content: [
|
|
100
|
+
{
|
|
101
|
+
type: "text",
|
|
102
|
+
text: `Error inspecting memory: ${error instanceof Error ? error.message : String(error)}`,
|
|
103
|
+
},
|
|
104
|
+
],
|
|
105
|
+
isError: true,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=inspect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../src/tools/inspect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* hivemind_list_active Tool
|
|
3
|
+
*
|
|
4
|
+
* Shows all currently active skills, standalone MCPs, their resources,
|
|
5
|
+
* and available tools. Gives the agent a clear inventory of what's loaded.
|
|
6
|
+
*/
|
|
7
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
8
|
+
export declare function registerListActiveTool(server: McpServer): void;
|
|
9
|
+
//# sourceMappingURL=listActive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listActive.d.ts","sourceRoot":"","sources":["../../src/tools/listActive.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuBzE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA0K9D"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* hivemind_list_active Tool
|
|
3
|
+
*
|
|
4
|
+
* Shows all currently active skills, standalone MCPs, their resources,
|
|
5
|
+
* and available tools. Gives the agent a clear inventory of what's loaded.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from "zod/v4";
|
|
8
|
+
import { skillRegistry } from "../registries/skillRegistry.js";
|
|
9
|
+
import { childMcpRegistry } from "../registries/childMcpRegistry.js";
|
|
10
|
+
import { resourceRegistry } from "../registries/resourceRegistry.js";
|
|
11
|
+
const ListActiveInputSchema = z.object({
|
|
12
|
+
type: z
|
|
13
|
+
.enum(["skills", "mcps", "resources", "all"])
|
|
14
|
+
.default("all")
|
|
15
|
+
.describe('Filter by type: "skills", "mcps", "resources", or "all" (default: "all").'),
|
|
16
|
+
}).strict();
|
|
17
|
+
const LIST_ACTIVE_DESCRIPTION = `Show all currently active skills, standalone MCPs, their
|
|
18
|
+
resources, and available tools. Use to see what capabilities are loaded.
|
|
19
|
+
|
|
20
|
+
Returns a breakdown of:
|
|
21
|
+
- Active skills with their scripts, references, assets, and bundled MCPs
|
|
22
|
+
- Standalone MCP servers and their discovered tools
|
|
23
|
+
- All available MCP tools across child MCPs
|
|
24
|
+
- All registered resources from active skills`;
|
|
25
|
+
export function registerListActiveTool(server) {
|
|
26
|
+
server.registerTool("hivemind_list_active", {
|
|
27
|
+
title: "List Active Capabilities",
|
|
28
|
+
description: LIST_ACTIVE_DESCRIPTION,
|
|
29
|
+
inputSchema: ListActiveInputSchema,
|
|
30
|
+
annotations: {
|
|
31
|
+
readOnlyHint: true,
|
|
32
|
+
destructiveHint: false,
|
|
33
|
+
idempotentHint: true,
|
|
34
|
+
openWorldHint: false,
|
|
35
|
+
},
|
|
36
|
+
}, async (params) => {
|
|
37
|
+
try {
|
|
38
|
+
const sections = [];
|
|
39
|
+
const showAll = params.type === "all";
|
|
40
|
+
// โโ Skills section โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
41
|
+
if (showAll || params.type === "skills") {
|
|
42
|
+
const skills = skillRegistry.list();
|
|
43
|
+
if (skills.length === 0) {
|
|
44
|
+
sections.push("## ๐ง Active Skills\n\n*No skills currently active.*\n");
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
let skillSection = "## ๐ง Active Skills\n\n";
|
|
48
|
+
for (const skill of skills) {
|
|
49
|
+
const scriptCount = Object.keys(skill.scripts).length;
|
|
50
|
+
const refCount = Object.keys(skill.references).length;
|
|
51
|
+
const assetCount = Object.keys(skill.assets).length;
|
|
52
|
+
const mcpCount = skill.mcp_names.length;
|
|
53
|
+
skillSection += `### ${skill.name}\n`;
|
|
54
|
+
skillSection += `- **Status**: ${skill.status === "active" ? "โ
Active" : "โ ๏ธ Error"}\n`;
|
|
55
|
+
skillSection += `- **Activated**: ${skill.activated_at.toISOString()}\n`;
|
|
56
|
+
skillSection += `- **Memory ID**: \`${skill.memory_id}\`\n`;
|
|
57
|
+
skillSection += `- **Resources**: ${scriptCount} scripts, ${refCount} references, ${assetCount} assets\n`;
|
|
58
|
+
if (scriptCount > 0) {
|
|
59
|
+
skillSection += `- **Scripts**: ${Object.keys(skill.scripts).map((s) => `\`${s}\``).join(", ")}\n`;
|
|
60
|
+
}
|
|
61
|
+
if (refCount > 0) {
|
|
62
|
+
skillSection += `- **References**: ${Object.keys(skill.references).map((r) => `\`${r}\``).join(", ")}\n`;
|
|
63
|
+
}
|
|
64
|
+
if (mcpCount > 0) {
|
|
65
|
+
skillSection += `- **Bundled MCPs**: ${skill.mcp_names.map((m) => `\`${m}\``).join(", ")}\n`;
|
|
66
|
+
}
|
|
67
|
+
skillSection += "\n";
|
|
68
|
+
}
|
|
69
|
+
sections.push(skillSection);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
// โโ MCPs section โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
73
|
+
if (showAll || params.type === "mcps") {
|
|
74
|
+
const mcps = childMcpRegistry.list();
|
|
75
|
+
if (mcps.length === 0) {
|
|
76
|
+
sections.push("## ๐ Active MCPs\n\n*No child MCPs currently running.*\n");
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
let mcpSection = "## ๐ Active MCPs\n\n";
|
|
80
|
+
// Group by source
|
|
81
|
+
const standalone = mcps.filter((m) => m.source === "standalone");
|
|
82
|
+
const skillBundled = mcps.filter((m) => m.source !== "standalone");
|
|
83
|
+
if (standalone.length > 0) {
|
|
84
|
+
mcpSection += "### Standalone MCPs\n\n";
|
|
85
|
+
mcpSection += "| Name | Status | Tools | Spawned |\n";
|
|
86
|
+
mcpSection += "|------|--------|-------|---------|\n";
|
|
87
|
+
for (const entry of standalone) {
|
|
88
|
+
const name = childMcpRegistry.names().find((n) => childMcpRegistry.get(n) === entry) ?? "unknown";
|
|
89
|
+
const toolNames = entry.tools.map((t) => t.name).join(", ") || "โ";
|
|
90
|
+
const status = entry.status === "active" ? "โ
" : "๐";
|
|
91
|
+
mcpSection += `| ${name} | ${status} | ${toolNames} | ${entry.spawned_at.toISOString()} |\n`;
|
|
92
|
+
}
|
|
93
|
+
mcpSection += "\n";
|
|
94
|
+
}
|
|
95
|
+
if (skillBundled.length > 0) {
|
|
96
|
+
mcpSection += "### Skill-Bundled MCPs\n\n";
|
|
97
|
+
mcpSection += "| Name | Source | Status | Tools |\n";
|
|
98
|
+
mcpSection += "|------|--------|--------|-------|\n";
|
|
99
|
+
for (const entry of skillBundled) {
|
|
100
|
+
const name = childMcpRegistry.names().find((n) => childMcpRegistry.get(n) === entry) ?? "unknown";
|
|
101
|
+
const toolNames = entry.tools.map((t) => t.name).join(", ") || "โ";
|
|
102
|
+
const status = entry.status === "active" ? "โ
" : "๐";
|
|
103
|
+
mcpSection += `| ${name} | ${entry.source} | ${status} | ${toolNames} |\n`;
|
|
104
|
+
}
|
|
105
|
+
mcpSection += "\n";
|
|
106
|
+
}
|
|
107
|
+
// Combined tools list
|
|
108
|
+
const allTools = mcps.flatMap((m) => {
|
|
109
|
+
const mcpName = childMcpRegistry.names().find((n) => childMcpRegistry.get(n) === m) ?? "unknown";
|
|
110
|
+
return m.tools.map((t) => ({
|
|
111
|
+
mcp: mcpName,
|
|
112
|
+
tool: t.name,
|
|
113
|
+
description: t.description,
|
|
114
|
+
}));
|
|
115
|
+
});
|
|
116
|
+
if (allTools.length > 0) {
|
|
117
|
+
mcpSection += "### All Available MCP Tools\n\n";
|
|
118
|
+
mcpSection += "| MCP | Tool | Description |\n";
|
|
119
|
+
mcpSection += "|-----|------|-------------|\n";
|
|
120
|
+
for (const t of allTools) {
|
|
121
|
+
const desc = t.description.length > 60
|
|
122
|
+
? t.description.slice(0, 57) + "..."
|
|
123
|
+
: t.description;
|
|
124
|
+
mcpSection += `| ${t.mcp} | ${t.tool} | ${desc} |\n`;
|
|
125
|
+
}
|
|
126
|
+
mcpSection += "\n";
|
|
127
|
+
}
|
|
128
|
+
sections.push(mcpSection);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
// โโ Resources section โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
132
|
+
if (showAll || params.type === "resources") {
|
|
133
|
+
const resources = resourceRegistry.list();
|
|
134
|
+
if (resources.length === 0) {
|
|
135
|
+
sections.push("## ๐ Registered Resources\n\n*No resources currently registered.*\n");
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
let resSection = "## ๐ Registered Resources\n\n";
|
|
139
|
+
resSection += "| Skill | Type | Path | MIME |\n";
|
|
140
|
+
resSection += "|-------|------|------|------|\n";
|
|
141
|
+
for (const r of resources) {
|
|
142
|
+
const shortUri = r.uri.replace("hivemind://skill/", "");
|
|
143
|
+
const parts = shortUri.split("/");
|
|
144
|
+
const skill = parts[0];
|
|
145
|
+
const type = parts[1];
|
|
146
|
+
const path = parts.slice(1).join("/");
|
|
147
|
+
resSection += `| ${skill} | ${type} | ${path} | ${r.mimeType} |\n`;
|
|
148
|
+
}
|
|
149
|
+
resSection += "\n";
|
|
150
|
+
sections.push(resSection);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
// โโ Summary โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
154
|
+
const summary = `---\n๐ **Summary**: ${skillRegistry.count()} skills, ${childMcpRegistry.count()} child MCPs, ${resourceRegistry.count()} resources`;
|
|
155
|
+
return {
|
|
156
|
+
content: [
|
|
157
|
+
{
|
|
158
|
+
type: "text",
|
|
159
|
+
text: sections.join("\n") + summary,
|
|
160
|
+
},
|
|
161
|
+
],
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
catch (error) {
|
|
165
|
+
return {
|
|
166
|
+
content: [
|
|
167
|
+
{
|
|
168
|
+
type: "text",
|
|
169
|
+
text: `Error listing active capabilities: ${error instanceof Error ? error.message : String(error)}`,
|
|
170
|
+
},
|
|
171
|
+
],
|
|
172
|
+
isError: true,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=listActive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listActive.js","sourceRoot":"","sources":["../../src/tools/listActive.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* hivemind_query Tool
|
|
3
|
+
*
|
|
4
|
+
* Searches the HiveMind knowledge graph and returns
|
|
5
|
+
* ranked recommendations, warnings, and disputed pairs.
|
|
6
|
+
*
|
|
7
|
+
* NOTE: No outputSchema is defined because the HiveMind REST API
|
|
8
|
+
* response shape varies (e.g. recommendation objects may omit fields
|
|
9
|
+
* like `id` or `status` depending on the retrieval pipeline). The MCP
|
|
10
|
+
* SDK validates structuredContent strictly against outputSchema, so a
|
|
11
|
+
* mismatch causes a hard error. We rely on the text formatter instead.
|
|
12
|
+
*/
|
|
13
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
14
|
+
export declare function registerQueryTool(server: McpServer): void;
|
|
15
|
+
//# sourceMappingURL=query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/tools/query.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuDzE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA0CzD"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* hivemind_query Tool
|
|
3
|
+
*
|
|
4
|
+
* Searches the HiveMind knowledge graph and returns
|
|
5
|
+
* ranked recommendations, warnings, and disputed pairs.
|
|
6
|
+
*
|
|
7
|
+
* NOTE: No outputSchema is defined because the HiveMind REST API
|
|
8
|
+
* response shape varies (e.g. recommendation objects may omit fields
|
|
9
|
+
* like `id` or `status` depending on the retrieval pipeline). The MCP
|
|
10
|
+
* SDK validates structuredContent strictly against outputSchema, so a
|
|
11
|
+
* mismatch causes a hard error. We rely on the text formatter instead.
|
|
12
|
+
*/
|
|
13
|
+
import { z } from "zod/v4";
|
|
14
|
+
import { restClient } from "../client/restClient.js";
|
|
15
|
+
import { config } from "../config.js";
|
|
16
|
+
import { formatQueryResult } from "../formatters/queryFormatter.js";
|
|
17
|
+
const QueryInputSchema = z.object({
|
|
18
|
+
query: z
|
|
19
|
+
.string()
|
|
20
|
+
.min(1, "Query must not be empty")
|
|
21
|
+
.describe("Describe what you need help with. Include what you've already tried and what went wrong."),
|
|
22
|
+
context: z
|
|
23
|
+
.string()
|
|
24
|
+
.optional()
|
|
25
|
+
.describe("Optional: your environment, tech stack, constraints, and approaches that didn't work."),
|
|
26
|
+
top_k: z
|
|
27
|
+
.number()
|
|
28
|
+
.int()
|
|
29
|
+
.min(1)
|
|
30
|
+
.max(100)
|
|
31
|
+
.default(10)
|
|
32
|
+
.describe("Max results to return (1-100)."),
|
|
33
|
+
agent_id: z
|
|
34
|
+
.string()
|
|
35
|
+
.optional()
|
|
36
|
+
.describe("Your unique identifier. Used for query logging and write-read linking."),
|
|
37
|
+
include_episodes: z
|
|
38
|
+
.boolean()
|
|
39
|
+
.default(true)
|
|
40
|
+
.describe("Reconstruct temporal episode chains in results."),
|
|
41
|
+
include_warnings: z
|
|
42
|
+
.boolean()
|
|
43
|
+
.default(true)
|
|
44
|
+
.describe("Run negative-aware filter for warnings."),
|
|
45
|
+
include_disputed: z
|
|
46
|
+
.boolean()
|
|
47
|
+
.default(true)
|
|
48
|
+
.describe("Look up disputed memory pairs."),
|
|
49
|
+
}).strict();
|
|
50
|
+
const QUERY_DESCRIPTION = `Search the shared knowledge of all AI agents worldwide.
|
|
51
|
+
Returns proven instructions, known pitfalls, alternative approaches,
|
|
52
|
+
and warnings from agents who solved similar problems before you.
|
|
53
|
+
Include what you've already tried and what went wrong for best results.
|
|
54
|
+
|
|
55
|
+
IMPORTANT: Save the returned query_id. After completing your task,
|
|
56
|
+
use hivemind_write_instruction or hivemind_write_mistake to share
|
|
57
|
+
what you learned. This closes the feedback loop and helps every
|
|
58
|
+
future agent.`;
|
|
59
|
+
export function registerQueryTool(server) {
|
|
60
|
+
server.registerTool("hivemind_query", {
|
|
61
|
+
title: "Search the Hive",
|
|
62
|
+
description: QUERY_DESCRIPTION,
|
|
63
|
+
inputSchema: QueryInputSchema,
|
|
64
|
+
annotations: {
|
|
65
|
+
readOnlyHint: true,
|
|
66
|
+
destructiveHint: false,
|
|
67
|
+
idempotentHint: true,
|
|
68
|
+
openWorldHint: true,
|
|
69
|
+
},
|
|
70
|
+
}, async (params) => {
|
|
71
|
+
try {
|
|
72
|
+
const result = await restClient.query({
|
|
73
|
+
query: params.query,
|
|
74
|
+
context: params.context,
|
|
75
|
+
top_k: params.top_k,
|
|
76
|
+
agent_id: params.agent_id ?? config.defaultAgentId,
|
|
77
|
+
include_episodes: params.include_episodes,
|
|
78
|
+
include_warnings: params.include_warnings,
|
|
79
|
+
include_disputed: params.include_disputed,
|
|
80
|
+
});
|
|
81
|
+
return {
|
|
82
|
+
content: [{ type: "text", text: formatQueryResult(result) }],
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
return {
|
|
87
|
+
content: [
|
|
88
|
+
{
|
|
89
|
+
type: "text",
|
|
90
|
+
text: `Error querying HiveMind: ${error instanceof Error ? error.message : String(error)}`,
|
|
91
|
+
},
|
|
92
|
+
],
|
|
93
|
+
isError: true,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/tools/query.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,KAAK,EAAE,CAAC;SACH,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,yBAAyB,CAAC;SACjC,QAAQ,CACL,0FAA0F,CAC7F;IACL,OAAO,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACL,uFAAuF,CAC1F;IACL,KAAK,EAAE,CAAC;SACH,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,CAAC;SACR,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CAAC,gCAAgC,CAAC;IAC/C,QAAQ,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,wEAAwE,CAAC;IACvF,gBAAgB,EAAE,CAAC;SACd,OAAO,EAAE;SACT,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,iDAAiD,CAAC;IAChE,gBAAgB,EAAE,CAAC;SACd,OAAO,EAAE;SACT,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,yCAAyC,CAAC;IACxD,gBAAgB,EAAE,CAAC;SACd,OAAO,EAAE;SACT,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,gCAAgC,CAAC;CAClD,CAAC,CAAC,MAAM,EAAE,CAAC;AAIZ,MAAM,iBAAiB,GAAG;;;;;;;;cAQZ,CAAC;AAEf,MAAM,UAAU,iBAAiB,CAAC,MAAiB;IAC/C,MAAM,CAAC,YAAY,CACf,gBAAgB,EAChB;QACI,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,iBAAiB;QAC9B,WAAW,EAAE,gBAAgB;QAC7B,WAAW,EAAE;YACT,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACtB;KACJ,EACD,KAAK,EAAE,MAAkB,EAAE,EAAE;QACzB,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC;gBAClC,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,cAAc;gBAClD,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;gBACzC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;gBACzC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;aAC5C,CAAC,CAAC;YAEH,OAAO;gBACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;aACxE,CAAC;QACN,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,OAAO;gBACH,OAAO,EAAE;oBACL;wBACI,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,4BAA4B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;qBAC7F;iBACJ;gBACD,OAAO,EAAE,IAAI;aAChB,CAAC;QACN,CAAC;IACL,CAAC,CACJ,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* hivemind_read_resource Tool
|
|
3
|
+
*
|
|
4
|
+
* Reads a resource (script, reference doc, or asset) from an active skill.
|
|
5
|
+
* Resources are registered in the ResourceRegistry when a skill is activated.
|
|
6
|
+
*/
|
|
7
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
8
|
+
export declare function registerReadResourceTool(server: McpServer): void;
|
|
9
|
+
//# sourceMappingURL=readResource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readResource.d.ts","sourceRoot":"","sources":["../../src/tools/readResource.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA0BzE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA4FhE"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* hivemind_read_resource Tool
|
|
3
|
+
*
|
|
4
|
+
* Reads a resource (script, reference doc, or asset) from an active skill.
|
|
5
|
+
* Resources are registered in the ResourceRegistry when a skill is activated.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from "zod/v4";
|
|
8
|
+
import { skillRegistry } from "../registries/skillRegistry.js";
|
|
9
|
+
import { resourceRegistry, ResourceRegistry } from "../registries/resourceRegistry.js";
|
|
10
|
+
const ReadResourceInputSchema = z.object({
|
|
11
|
+
skill: z
|
|
12
|
+
.string()
|
|
13
|
+
.min(1)
|
|
14
|
+
.describe("Name of the activated skill."),
|
|
15
|
+
path: z
|
|
16
|
+
.string()
|
|
17
|
+
.min(1)
|
|
18
|
+
.describe('Resource path (e.g., "references/thinking-hats.md", "assets/template.md", "scripts/analyze.py").'),
|
|
19
|
+
}).strict();
|
|
20
|
+
const READ_RESOURCE_DESCRIPTION = `Read a reference document, asset, or script source from an
|
|
21
|
+
activated skill. Use when skill instructions refer you to a reference
|
|
22
|
+
document or when you need to inspect a template.
|
|
23
|
+
|
|
24
|
+
Example: hivemind_read_resource(skill="structured-brainstorm",
|
|
25
|
+
path="references/thinking-hats.md")`;
|
|
26
|
+
export function registerReadResourceTool(server) {
|
|
27
|
+
server.registerTool("hivemind_read_resource", {
|
|
28
|
+
title: "Read Skill Resource",
|
|
29
|
+
description: READ_RESOURCE_DESCRIPTION,
|
|
30
|
+
inputSchema: ReadResourceInputSchema,
|
|
31
|
+
annotations: {
|
|
32
|
+
readOnlyHint: true,
|
|
33
|
+
destructiveHint: false,
|
|
34
|
+
idempotentHint: true,
|
|
35
|
+
openWorldHint: false,
|
|
36
|
+
},
|
|
37
|
+
}, async (params) => {
|
|
38
|
+
try {
|
|
39
|
+
// 1. Verify the skill is active
|
|
40
|
+
const skill = skillRegistry.get(params.skill);
|
|
41
|
+
if (!skill) {
|
|
42
|
+
return {
|
|
43
|
+
content: [
|
|
44
|
+
{
|
|
45
|
+
type: "text",
|
|
46
|
+
text: `โ Skill '${params.skill}' is not active. Call hivemind_initiate_skill first.`,
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
isError: true,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
// 2. Parse path into type/filename
|
|
53
|
+
const pathParts = params.path.split("/");
|
|
54
|
+
if (pathParts.length < 2) {
|
|
55
|
+
return {
|
|
56
|
+
content: [
|
|
57
|
+
{
|
|
58
|
+
type: "text",
|
|
59
|
+
text: `โ Invalid path format: '${params.path}'. Expected format: type/filename (e.g., "references/doc.md", "scripts/run.py", "assets/template.md").`,
|
|
60
|
+
},
|
|
61
|
+
],
|
|
62
|
+
isError: true,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
const resourceType = pathParts[0];
|
|
66
|
+
const filename = pathParts.slice(1).join("/");
|
|
67
|
+
// 3. Build URI and look up in registry
|
|
68
|
+
const uri = ResourceRegistry.buildUri(params.skill, resourceType, filename);
|
|
69
|
+
const resource = resourceRegistry.get(uri);
|
|
70
|
+
if (!resource) {
|
|
71
|
+
// List available resources for this skill to help the agent
|
|
72
|
+
const available = resourceRegistry.listBySkill(params.skill);
|
|
73
|
+
const availableList = available.length > 0
|
|
74
|
+
? "\n\nAvailable resources:\n" +
|
|
75
|
+
available.map((r) => ` โข ${r.uri.replace(`hivemind://skill/${params.skill}/`, "")}`).join("\n")
|
|
76
|
+
: "\n\nNo resources registered for this skill.";
|
|
77
|
+
return {
|
|
78
|
+
content: [
|
|
79
|
+
{
|
|
80
|
+
type: "text",
|
|
81
|
+
text: `โ Resource not found: '${params.path}' in skill '${params.skill}'.${availableList}`,
|
|
82
|
+
},
|
|
83
|
+
],
|
|
84
|
+
isError: true,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
// 4. Return the resource content
|
|
88
|
+
return {
|
|
89
|
+
content: [
|
|
90
|
+
{
|
|
91
|
+
type: "text",
|
|
92
|
+
text: `## ๐ ${params.path}\n**Skill**: ${params.skill} ยท **Type**: ${resource.mimeType}\n\n---\n\n${resource.content}`,
|
|
93
|
+
},
|
|
94
|
+
],
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
return {
|
|
99
|
+
content: [
|
|
100
|
+
{
|
|
101
|
+
type: "text",
|
|
102
|
+
text: `Error reading resource: ${error instanceof Error ? error.message : String(error)}`,
|
|
103
|
+
},
|
|
104
|
+
],
|
|
105
|
+
isError: true,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=readResource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readResource.js","sourceRoot":"","sources":["../../src/tools/readResource.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* hivemind_run_script Tool
|
|
3
|
+
*
|
|
4
|
+
* Executes a script from an activated skill in a sandboxed subprocess.
|
|
5
|
+
* Scripts are admin-curated โ agents never upload their own scripts.
|
|
6
|
+
*
|
|
7
|
+
* Runtime detection:
|
|
8
|
+
* .py โ python3 (or python on Windows)
|
|
9
|
+
* .js โ node
|
|
10
|
+
* .ts โ npx tsx
|
|
11
|
+
* .sh โ bash (Git Bash on Windows, /bin/bash on Unix)
|
|
12
|
+
*
|
|
13
|
+
* Cross-platform: Windows (Git Bash / WSL), Linux, macOS
|
|
14
|
+
*/
|
|
15
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
16
|
+
export declare function registerRunScriptTool(server: McpServer): void;
|
|
17
|
+
//# sourceMappingURL=runScript.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runScript.d.ts","sourceRoot":"","sources":["../../src/tools/runScript.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAQH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4JzE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyI7D"}
|