@hivemindai/mcp-server 0.4.2 → 0.4.4

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.
@@ -0,0 +1,2 @@
1
+ export declare function doc(args: string[]): Promise<void>;
2
+ //# sourceMappingURL=doc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/doc.ts"],"names":[],"mappings":"AAIA,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgJvD"}
@@ -0,0 +1,144 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { HivemindClient } from "@hivemindai/sdk-ts";
3
+ import { readCredentials } from "../credentials.js";
4
+ export async function doc(args) {
5
+ const creds = readCredentials();
6
+ if (!creds) {
7
+ console.log("Not logged in. Run `hivemind login` to authenticate.");
8
+ process.exit(1);
9
+ }
10
+ const client = new HivemindClient({
11
+ apiKey: creds.api_key,
12
+ baseUrl: creds.api_url,
13
+ });
14
+ const subcommand = args[0];
15
+ if (!subcommand || subcommand === "--help") {
16
+ console.log(`
17
+ Usage: hivemind doc <subcommand>
18
+
19
+ Subcommands:
20
+ add <title> --content "..." | --file <path> Add a knowledge doc
21
+ list List all docs
22
+ search <query> Semantic search
23
+ get <doc_id> Get a specific doc
24
+ update <doc_id> [--title "..."] [--content "..."] [--file <path>]
25
+ delete <doc_id> Delete a doc
26
+ `.trim());
27
+ return;
28
+ }
29
+ try {
30
+ if (subcommand === "add") {
31
+ const title = args[1];
32
+ if (!title) {
33
+ console.error("Usage: hivemind doc add <title> --content \"...\" | --file <path>");
34
+ process.exit(1);
35
+ }
36
+ let content = getFlag(args, "--content");
37
+ const filePath = getFlag(args, "--file");
38
+ if (filePath) {
39
+ content = readFileSync(filePath, "utf-8");
40
+ }
41
+ if (!content) {
42
+ console.error("Provide content via --content or --file");
43
+ process.exit(1);
44
+ }
45
+ const tags = getFlag(args, "--tags")?.split(",").map((t) => t.trim());
46
+ const result = await client.addKnowledgeDoc({ title, content, tags });
47
+ console.log(`Document created: ${result.id}`);
48
+ return;
49
+ }
50
+ if (subcommand === "list") {
51
+ const result = await client.listKnowledgeDocs();
52
+ if (result.docs.length === 0) {
53
+ console.log("No knowledge documents found.");
54
+ return;
55
+ }
56
+ console.log(`Knowledge Base (${result.total} docs)\n`);
57
+ for (const d of result.docs) {
58
+ const tags = d.tags?.length ? ` [${d.tags.join(", ")}]` : "";
59
+ console.log(` ${d.id} ${d.title}${tags}`);
60
+ }
61
+ if (result.has_more) {
62
+ console.log("\n (more docs available)");
63
+ }
64
+ return;
65
+ }
66
+ if (subcommand === "search") {
67
+ const query = args[1];
68
+ if (!query) {
69
+ console.error("Usage: hivemind doc search <query>");
70
+ process.exit(1);
71
+ }
72
+ const result = await client.searchKnowledge(query);
73
+ if (result.docs.length === 0) {
74
+ console.log("No matching documents found.");
75
+ return;
76
+ }
77
+ console.log(`Search Results (${result.total})\n`);
78
+ for (const d of result.docs) {
79
+ const score = d._score !== undefined ? ` (${(d._score * 100).toFixed(0)}%)` : "";
80
+ console.log(` ${d.id} ${d.title}${score}`);
81
+ }
82
+ return;
83
+ }
84
+ if (subcommand === "get") {
85
+ const docId = args[1];
86
+ if (!docId) {
87
+ console.error("Usage: hivemind doc get <doc_id>");
88
+ process.exit(1);
89
+ }
90
+ const result = await client.getKnowledgeDoc(docId);
91
+ const d = result.doc;
92
+ const tags = d.tags?.length ? `\nTags: ${d.tags.join(", ")}` : "";
93
+ console.log(`${d.title}\nID: ${d.id}${tags}\nUpdated: ${d.updated_at}\n\n${d.content}`);
94
+ return;
95
+ }
96
+ if (subcommand === "update") {
97
+ const docId = args[1];
98
+ if (!docId) {
99
+ console.error("Usage: hivemind doc update <doc_id> [--title ...] [--content ...] [--file ...]");
100
+ process.exit(1);
101
+ }
102
+ const updateParams = {};
103
+ const title = getFlag(args, "--title");
104
+ if (title)
105
+ updateParams.title = title;
106
+ let content = getFlag(args, "--content");
107
+ const filePath = getFlag(args, "--file");
108
+ if (filePath)
109
+ content = readFileSync(filePath, "utf-8");
110
+ if (content)
111
+ updateParams.content = content;
112
+ const tagsStr = getFlag(args, "--tags");
113
+ if (tagsStr)
114
+ updateParams.tags = tagsStr.split(",").map((t) => t.trim());
115
+ const result = await client.updateKnowledgeDoc(docId, updateParams);
116
+ console.log(result.updated ? `Document ${docId} updated.` : `Document ${docId} not found.`);
117
+ return;
118
+ }
119
+ if (subcommand === "delete") {
120
+ const docId = args[1];
121
+ if (!docId) {
122
+ console.error("Usage: hivemind doc delete <doc_id>");
123
+ process.exit(1);
124
+ }
125
+ const result = await client.deleteKnowledgeDoc(docId);
126
+ console.log(result.deleted ? `Document ${docId} deleted.` : `Document ${docId} not found.`);
127
+ return;
128
+ }
129
+ console.error(`Unknown subcommand: ${subcommand}`);
130
+ console.error('Run "hivemind doc --help" for usage.');
131
+ process.exit(1);
132
+ }
133
+ catch (err) {
134
+ console.error(`Failed: ${err instanceof Error ? err.message : String(err)}`);
135
+ process.exit(1);
136
+ }
137
+ }
138
+ function getFlag(args, flag) {
139
+ const idx = args.indexOf(flag);
140
+ if (idx === -1 || idx + 1 >= args.length)
141
+ return undefined;
142
+ return args[idx + 1];
143
+ }
144
+ //# sourceMappingURL=doc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc.js","sourceRoot":"","sources":["../../../src/cli/commands/doc.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare function guard(): Promise<void>;
1
+ export declare function guard(args?: string[]): Promise<void>;
2
2
  //# sourceMappingURL=guard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/guard.ts"],"names":[],"mappings":"AAkCA,wBAAsB,KAAK,kBAwG1B"}
1
+ {"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/guard.ts"],"names":[],"mappings":"AAiCA,wBAAsB,KAAK,CAAC,IAAI,GAAE,MAAM,EAAO,iBAuG9C"}
@@ -13,10 +13,10 @@ function loadCredentials() {
13
13
  }
14
14
  }
15
15
  function getAgentName(input) {
16
- // Use env var, session_id from Claude Code, or parent PID (stable across hook invocations)
17
16
  return process.env.HIVEMIND_AGENT ?? (input.session_id ? `claude-${input.session_id}` : `claude-${process.ppid}`);
18
17
  }
19
- export async function guard() {
18
+ export async function guard(args = []) {
19
+ const policiesOnly = args.includes("--policies-only");
20
20
  // Read hook input from stdin
21
21
  let input;
22
22
  try {
@@ -24,17 +24,14 @@ export async function guard() {
24
24
  input = JSON.parse(raw);
25
25
  }
26
26
  catch {
27
- // Can't parse stdin — allow the tool call (don't block on hook errors)
28
27
  process.exit(0);
29
28
  }
30
29
  const filePath = input.tool_input?.file_path;
31
30
  if (!filePath) {
32
- // No file path (e.g. Bash tool) — allow
33
31
  process.exit(0);
34
32
  }
35
33
  const creds = loadCredentials();
36
34
  if (!creds) {
37
- // No credentials — not in cloud mode, allow
38
35
  process.exit(0);
39
36
  }
40
37
  const agent = getAgentName(input);
@@ -68,37 +65,37 @@ export async function guard() {
68
65
  catch {
69
66
  // Policy check failed — don't block on network errors
70
67
  }
71
- // 2. Acquire lock
72
- try {
73
- const lockRes = await fetch(`${creds.api_url}/v1/locks/${encodeURIComponent(resource)}`, {
74
- method: "POST",
75
- headers,
76
- body: JSON.stringify({ agent }),
77
- });
78
- if (lockRes.ok) {
79
- const lockData = await lockRes.json();
80
- if (lockData.locked) {
81
- // Lock acquired — allow the edit
82
- process.exit(0);
68
+ // 2. Acquire lock (skip if --policies-only)
69
+ if (!policiesOnly) {
70
+ try {
71
+ const lockRes = await fetch(`${creds.api_url}/v1/locks/${encodeURIComponent(resource)}`, {
72
+ method: "POST",
73
+ headers,
74
+ body: JSON.stringify({ agent }),
75
+ });
76
+ if (lockRes.ok) {
77
+ const lockData = await lockRes.json();
78
+ if (lockData.locked) {
79
+ process.exit(0);
80
+ }
83
81
  }
84
- }
85
- if (lockRes.status === 409) {
86
- const lockData = await lockRes.json();
87
- const holder = lockData.held_by?.agent ?? "unknown";
88
- // Check if WE already hold this lock (same agent re-editing)
89
- if (holder === agent) {
90
- process.exit(0);
82
+ if (lockRes.status === 409) {
83
+ const lockData = await lockRes.json();
84
+ const holder = lockData.held_by?.agent ?? "unknown";
85
+ if (holder === agent) {
86
+ process.exit(0);
87
+ }
88
+ process.stderr.write(`BLOCKED: ${resource} is locked by ${holder}.\n\n` +
89
+ `Another agent is editing this file. To override:\n` +
90
+ `1. hivemind_approvals(action: "request", channel: "general", description: "Need to edit ${resource}, locked by ${holder}")\n` +
91
+ `2. Wait for approval\n` +
92
+ `3. hivemind_lock(action: "acquire", resource: "${resource}", force_correlation_id: "<correlation_id>")\n`);
93
+ process.exit(2);
91
94
  }
92
- process.stderr.write(`BLOCKED: ${resource} is locked by ${holder}.\n\n` +
93
- `Another agent is editing this file. To override:\n` +
94
- `1. hivemind_approvals(action: "request", channel: "general", description: "Need to edit ${resource}, locked by ${holder}")\n` +
95
- `2. Wait for approval\n` +
96
- `3. hivemind_lock(action: "acquire", resource: "${resource}", force_correlation_id: "<correlation_id>")\n`);
97
- process.exit(2);
98
95
  }
99
- }
100
- catch {
101
- // Lock request failed — don't block on network errors
96
+ catch {
97
+ // Lock request failed — don't block on network errors
98
+ }
102
99
  }
103
100
  // Default: allow
104
101
  process.exit(0);
@@ -1 +1 @@
1
- {"version":3,"file":"guard.js","sourceRoot":"","sources":["../../../src/cli/commands/guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guard.js","sourceRoot":"","sources":["../../../src/cli/commands/guard.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare function init(): Promise<void>;
1
+ export declare function init(args?: string[]): Promise<void>;
2
2
  //# sourceMappingURL=init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAkEA,wBAAsB,IAAI,kBAuEzB"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAyFA,wBAAsB,IAAI,CAAC,IAAI,GAAE,MAAM,EAAO,iBAmH7C"}
@@ -2,27 +2,34 @@ import { existsSync, readFileSync, writeFileSync, mkdirSync } from "node:fs";
2
2
  import { join } from "node:path";
3
3
  const HIVEMIND_SECTION_START = "<!-- hivemind:start -->";
4
4
  const HIVEMIND_SECTION_END = "<!-- hivemind:end -->";
5
- const HIVEMIND_CLAUDE_MD = `${HIVEMIND_SECTION_START}
6
- ## Hivemind MANDATORY agent coordination
7
-
8
- This project uses Hivemind for multi-agent coordination. You MUST follow ALL of these rules. They are not optional.
9
-
10
- ### Rule 1: Announce your task IMMEDIATELY
5
+ function buildClaudeMd(mode) {
6
+ const rules = [];
7
+ // Rule 1 — always present
8
+ rules.push(`### Rule 1: Announce your task IMMEDIATELY
11
9
 
12
10
  As your FIRST action when starting any task, BEFORE reading files or planning, call:
13
11
  \`\`\`
14
12
  hivemind_publish(channel: "general", event_type: "task.created", data: {"description": "<what you are about to do>"})
15
13
  \`\`\`
16
- Also call \`hivemind_status()\` to see what other agents are working on.
17
-
18
- ### Rule 2: Locks and policies are enforced automatically
14
+ Also call \`hivemind_status()\` to see what other agents are working on.`);
15
+ // Rule 2 — enforcement (varies by mode)
16
+ if (mode === "full") {
17
+ rules.push(`### Rule 2: Locks and policies are enforced automatically
19
18
 
20
19
  File locks and approval policies are enforced by hooks. If your edit is blocked, you will see an error message explaining why and what to do. Follow those instructions.
21
20
 
22
21
  If a lock blocks you: another agent is editing that file. Request approval to override, or work on a different file.
23
- If a policy blocks you: the file requires human approval. Request approval and wait.
22
+ If a policy blocks you: the file requires human approval. Request approval and wait.`);
23
+ }
24
+ else if (mode === "no-locks") {
25
+ rules.push(`### Rule 2: Approval policies are enforced automatically
24
26
 
25
- ### Rule 3: Publish outcomes
27
+ Approval policies are enforced by hooks. If your edit is blocked because a file requires approval, you will see an error message explaining why and what to do. Follow those instructions.`);
28
+ }
29
+ // events-only: no Rule 2
30
+ // Publish outcomes — always present
31
+ const ruleNum = mode === "events-only" ? 2 : 3;
32
+ rules.push(`### Rule ${ruleNum}: Publish outcomes
26
33
 
27
34
  After completing work, publish what you did:
28
35
  \`\`\`
@@ -30,59 +37,78 @@ hivemind_publish(channel: "general", event_type: "task.completed", data: {"descr
30
37
  \`\`\`
31
38
  Also publish \`decision.made\` when choosing between approaches, \`task.blocked\` when stuck, and \`bug.found\` when discovering bugs.
32
39
 
33
- Do NOT publish routine activity (file reads, retries, lint fixes). Only publish outcomes and decisions.
40
+ Do NOT publish routine activity (file reads, retries, lint fixes). Only publish outcomes and decisions.`);
41
+ return `${HIVEMIND_SECTION_START}
42
+ ## Hivemind — MANDATORY agent coordination
43
+
44
+ This project uses Hivemind for multi-agent coordination. You MUST follow ALL of these rules. They are not optional.
45
+
46
+ ${rules.join("\n\n")}
34
47
  ${HIVEMIND_SECTION_END}`;
35
- const HOOKS_CONFIG = {
36
- hooks: {
37
- PreToolUse: [
48
+ }
49
+ function buildHooksConfig(mode) {
50
+ if (mode === "events-only") {
51
+ return null; // No hooks
52
+ }
53
+ const hooks = {};
54
+ if (mode === "full") {
55
+ hooks.PreToolUse = [
56
+ {
57
+ matcher: "Edit|Write",
58
+ hooks: [{ type: "command", command: "hivemind guard", timeout: 10 }],
59
+ },
60
+ ];
61
+ hooks.PostToolUse = [
38
62
  {
39
63
  matcher: "Edit|Write",
40
- hooks: [
41
- {
42
- type: "command",
43
- command: "hivemind guard",
44
- timeout: 10,
45
- },
46
- ],
64
+ hooks: [{ type: "command", command: "hivemind release", timeout: 10 }],
47
65
  },
48
- ],
49
- PostToolUse: [
66
+ ];
67
+ }
68
+ else if (mode === "no-locks") {
69
+ hooks.PreToolUse = [
50
70
  {
51
71
  matcher: "Edit|Write",
52
- hooks: [
53
- {
54
- type: "command",
55
- command: "hivemind release",
56
- timeout: 10,
57
- },
58
- ],
72
+ hooks: [{ type: "command", command: "hivemind guard --policies-only", timeout: 10 }],
59
73
  },
60
- ],
61
- },
62
- };
63
- export async function init() {
74
+ ];
75
+ // No PostToolUse — no locks to release
76
+ }
77
+ return hooks;
78
+ }
79
+ export async function init(args = []) {
80
+ const mode = args.includes("--events-only")
81
+ ? "events-only"
82
+ : args.includes("--no-locks")
83
+ ? "no-locks"
84
+ : "full";
64
85
  const cwd = process.cwd();
65
86
  const claudeMdPath = join(cwd, "CLAUDE.md");
66
87
  console.log("Hivemind Init\n");
88
+ if (mode !== "full") {
89
+ console.log(` Mode: ${mode}\n`);
90
+ }
67
91
  // --- 1. Update CLAUDE.md ---
92
+ const claudeMdContent = buildClaudeMd(mode);
68
93
  if (existsSync(claudeMdPath)) {
69
94
  const existing = readFileSync(claudeMdPath, "utf-8");
70
95
  if (existing.includes(HIVEMIND_SECTION_START)) {
71
96
  const before = existing.slice(0, existing.indexOf(HIVEMIND_SECTION_START));
72
97
  const after = existing.slice(existing.indexOf(HIVEMIND_SECTION_END) + HIVEMIND_SECTION_END.length);
73
- writeFileSync(claudeMdPath, before + HIVEMIND_CLAUDE_MD + after);
98
+ writeFileSync(claudeMdPath, before + claudeMdContent + after);
74
99
  console.log(" Updated Hivemind section in CLAUDE.md");
75
100
  }
76
101
  else {
77
- writeFileSync(claudeMdPath, existing.trimEnd() + "\n\n" + HIVEMIND_CLAUDE_MD + "\n");
102
+ writeFileSync(claudeMdPath, existing.trimEnd() + "\n\n" + claudeMdContent + "\n");
78
103
  console.log(" Added Hivemind section to CLAUDE.md");
79
104
  }
80
105
  }
81
106
  else {
82
- writeFileSync(claudeMdPath, `# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n${HIVEMIND_CLAUDE_MD}\n`);
107
+ writeFileSync(claudeMdPath, `# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n${claudeMdContent}\n`);
83
108
  console.log(" Created CLAUDE.md with Hivemind instructions");
84
109
  }
85
110
  // --- 2. Configure Claude Code hooks ---
111
+ const hooksConfig = buildHooksConfig(mode);
86
112
  const claudeDir = join(cwd, ".claude");
87
113
  const settingsPath = join(claudeDir, "settings.local.json");
88
114
  mkdirSync(claudeDir, { recursive: true });
@@ -95,32 +121,64 @@ export async function init() {
95
121
  // If parse fails, start fresh
96
122
  }
97
123
  }
98
- // Merge hooks preserve existing hooks, add/replace hivemind ones
124
+ // Filter out any existing hivemind hooks
99
125
  const existingHooks = (settings.hooks ?? {});
100
126
  const newHooks = { ...existingHooks };
101
- // Filter out any existing hivemind hooks, then add ours
102
127
  for (const event of ["PreToolUse", "PostToolUse"]) {
103
128
  const existing = (existingHooks[event] ?? []);
104
129
  const filtered = existing.filter((h) => {
105
- // Keep hooks that aren't hivemind
106
130
  const cmds = h.hooks?.map((hh) => hh.command ?? "") ?? [];
107
131
  return !cmds.some((c) => c.startsWith("hivemind "));
108
132
  });
109
- const hivemindHooks = HOOKS_CONFIG.hooks[event];
110
- newHooks[event] = [...filtered, ...hivemindHooks];
133
+ if (hooksConfig && hooksConfig[event]) {
134
+ newHooks[event] = [...filtered, ...hooksConfig[event]];
135
+ }
136
+ else {
137
+ // No hivemind hooks for this event — keep only non-hivemind hooks
138
+ newHooks[event] = filtered.length > 0 ? filtered : [];
139
+ if (newHooks[event].length === 0) {
140
+ delete newHooks[event];
141
+ }
142
+ }
111
143
  }
112
- settings.hooks = newHooks;
144
+ settings.hooks = Object.keys(newHooks).length > 0 ? newHooks : undefined;
145
+ if (!settings.hooks)
146
+ delete settings.hooks;
113
147
  writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + "\n");
114
- console.log(" Configured Claude Code hooks in .claude/settings.local.json");
115
- console.log(`
148
+ if (hooksConfig) {
149
+ console.log(" Configured Claude Code hooks in .claude/settings.local.json");
150
+ }
151
+ else {
152
+ console.log(" Cleaned hooks from .claude/settings.local.json (events-only mode)");
153
+ }
154
+ // --- 3. Summary ---
155
+ if (mode === "full") {
156
+ console.log(`
116
157
  Done! Hivemind is now active in this project:
117
158
 
118
159
  - CLAUDE.md: Agent instructions for publishing events
119
160
  - Hooks: Auto-lock files before edit, auto-release after
120
161
  - Hooks: Auto-check approval policies before edit
121
162
 
122
- Locks and policies are now enforced automatically — agents don't need
123
- to remember to call hivemind_lock or hivemind_approvals manually.
163
+ Locks and policies are enforced automatically.
124
164
  `);
165
+ }
166
+ else if (mode === "no-locks") {
167
+ console.log(`
168
+ Done! Hivemind is now active in this project:
169
+
170
+ - CLAUDE.md: Agent instructions for publishing events
171
+ - Hooks: Auto-check approval policies before edit
172
+ - No file locking (use this when agents work on separate branches)
173
+ `);
174
+ }
175
+ else {
176
+ console.log(`
177
+ Done! Hivemind is now active in this project:
178
+
179
+ - CLAUDE.md: Agent instructions for publishing events
180
+ - No hooks (agents coordinate via events only)
181
+ `);
182
+ }
125
183
  }
126
184
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -6,16 +6,19 @@ import { switchOrg } from "./commands/switch.js";
6
6
  import { init } from "./commands/init.js";
7
7
  import { guard } from "./commands/guard.js";
8
8
  import { release } from "./commands/release.js";
9
+ import { doc } from "./commands/doc.js";
9
10
  const command = process.argv[2];
11
+ const args = process.argv.slice(3);
10
12
  const commands = {
11
- login,
12
- whoami,
13
- logout,
14
- status,
15
- switch: switchOrg,
16
- init,
17
- guard,
18
- release,
13
+ login: () => login(),
14
+ whoami: () => whoami(),
15
+ logout: () => logout(),
16
+ status: () => status(),
17
+ switch: () => switchOrg(),
18
+ init: (a) => init(a),
19
+ guard: (a) => guard(a),
20
+ release: () => release(),
21
+ doc: (a) => doc(a),
19
22
  };
20
23
  async function main() {
21
24
  if (!command || command === "--help" || command === "-h") {
@@ -29,6 +32,11 @@ Commands:
29
32
  status Show project status (active tasks, blockers)
30
33
  switch Switch to a different organization
31
34
  init Add Hivemind instructions to CLAUDE.md + set up hooks
35
+ doc Manage knowledge base docs (add, list, search, get, delete)
36
+
37
+ Init options:
38
+ --no-locks Skip file locking (for teams using separate branches)
39
+ --events-only Events only, no hooks (lightweight coordination)
32
40
 
33
41
  Options:
34
42
  --help Show this help message
@@ -41,7 +49,7 @@ Options:
41
49
  console.error(`Run "hivemind --help" for usage.`);
42
50
  process.exit(1);
43
51
  }
44
- await handler();
52
+ await handler(args);
45
53
  }
46
54
  main().catch((err) => {
47
55
  console.error(err instanceof Error ? err.message : String(err));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEhC,MAAM,QAAQ,GAAwC;IACpD,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM,EAAE,SAAS;IACjB,IAAI;IACJ,KAAK;IACL,OAAO;CACR,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;CAaf,CAAC,IAAI,EAAE,CAAC,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,EAAE,CAAC;AAClB,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEnC,MAAM,QAAQ,GAAsD;IAClE,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE;IACpB,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE;IACtB,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE;IACtB,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE;IACtB,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE;IACzB,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACpB,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACtB,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE;IACxB,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACnB,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;CAkBf,CAAC,IAAI,EAAE,CAAC,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
package/dist/index.js CHANGED
@@ -17,6 +17,7 @@ import { registerTasksTool } from "./tools/tasks.js";
17
17
  import { registerContextTool } from "./tools/teams.js";
18
18
  import { registerTriggerTool } from "./tools/triggers.js";
19
19
  import { registerApprovalsTool } from "./tools/approvals.js";
20
+ import { registerKnowledgeTool } from "./tools/knowledge.js";
20
21
  async function main() {
21
22
  const config = loadConfig();
22
23
  let db;
@@ -79,6 +80,7 @@ async function main() {
79
80
  registerContextTool(server, config);
80
81
  registerTriggerTool(server, config, client);
81
82
  registerApprovalsTool(server, config, client);
83
+ registerKnowledgeTool(server, config, client);
82
84
  }
83
85
  const transport = new StdioServerTransport();
84
86
  await server.connect(transport);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { ServerConfig } from "../config.js";
3
+ import type { HivemindClient } from "@hivemindai/sdk-ts";
4
+ export declare function registerKnowledgeTool(server: McpServer, _config: ServerConfig, client?: HivemindClient): void;
5
+ //# sourceMappingURL=knowledge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../../src/tools/knowledge.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,YAAY,EACrB,MAAM,CAAC,EAAE,cAAc,QAoNxB"}
@@ -0,0 +1,205 @@
1
+ import { z } from "zod";
2
+ export function registerKnowledgeTool(server, _config, client) {
3
+ server.tool("hivemind_knowledge", "Manage the knowledge base — curated docs and references that agents can look up. " +
4
+ "Actions: 'search' to find relevant docs, 'get' a specific doc, 'add' a new doc, " +
5
+ "'update' an existing doc, 'delete' a doc, 'list' all docs.", {
6
+ action: z
7
+ .enum(["search", "get", "add", "update", "delete", "list"])
8
+ .describe("Knowledge action to perform"),
9
+ // For search:
10
+ query: z
11
+ .string()
12
+ .optional()
13
+ .describe("Search query for semantic search (required for search)"),
14
+ // For get/update/delete:
15
+ doc_id: z
16
+ .string()
17
+ .optional()
18
+ .describe("Document ID (required for get, update, delete)"),
19
+ // For add/update:
20
+ title: z
21
+ .string()
22
+ .optional()
23
+ .describe("Document title (required for add)"),
24
+ content: z
25
+ .string()
26
+ .optional()
27
+ .describe("Document content (required for add)"),
28
+ tags: z
29
+ .array(z.string())
30
+ .optional()
31
+ .describe("Tags for categorization"),
32
+ // For list:
33
+ limit: z
34
+ .number()
35
+ .optional()
36
+ .describe("Max results to return (default 10 for search, 50 for list)"),
37
+ }, async (params) => {
38
+ if (!client) {
39
+ return {
40
+ content: [
41
+ {
42
+ type: "text",
43
+ text: "Knowledge base is only available in cloud mode.",
44
+ },
45
+ ],
46
+ };
47
+ }
48
+ if (params.action === "search") {
49
+ if (!params.query) {
50
+ return {
51
+ content: [
52
+ { type: "text", text: "Error: 'query' is required for search." },
53
+ ],
54
+ };
55
+ }
56
+ const result = await client.searchKnowledge(params.query, params.limit);
57
+ if (result.docs.length === 0) {
58
+ return {
59
+ content: [
60
+ { type: "text", text: "No matching documents found." },
61
+ ],
62
+ };
63
+ }
64
+ const lines = result.docs.map((d) => {
65
+ const tags = d.tags?.length ? ` [${d.tags.join(", ")}]` : "";
66
+ const score = d._score !== undefined ? ` (relevance: ${(d._score * 100).toFixed(0)}%)` : "";
67
+ return `### ${d.title}${tags}${score}\n**ID:** ${d.id}\n\n${d.content}`;
68
+ });
69
+ return {
70
+ content: [
71
+ {
72
+ type: "text",
73
+ text: `## Knowledge Search Results (${result.total})\n\n${lines.join("\n\n---\n\n")}`,
74
+ },
75
+ ],
76
+ };
77
+ }
78
+ if (params.action === "get") {
79
+ if (!params.doc_id) {
80
+ return {
81
+ content: [
82
+ { type: "text", text: "Error: 'doc_id' is required for get." },
83
+ ],
84
+ };
85
+ }
86
+ try {
87
+ const result = await client.getKnowledgeDoc(params.doc_id);
88
+ const d = result.doc;
89
+ const tags = d.tags?.length ? `\n**Tags:** ${d.tags.join(", ")}` : "";
90
+ return {
91
+ content: [
92
+ {
93
+ type: "text",
94
+ text: `## ${d.title}\n**ID:** ${d.id}${tags}\n**Updated:** ${d.updated_at}\n\n${d.content}`,
95
+ },
96
+ ],
97
+ };
98
+ }
99
+ catch {
100
+ return {
101
+ content: [
102
+ { type: "text", text: `Document '${params.doc_id}' not found.` },
103
+ ],
104
+ };
105
+ }
106
+ }
107
+ if (params.action === "add") {
108
+ if (!params.title || !params.content) {
109
+ return {
110
+ content: [
111
+ { type: "text", text: "Error: 'title' and 'content' are required for add." },
112
+ ],
113
+ };
114
+ }
115
+ const result = await client.addKnowledgeDoc({
116
+ title: params.title,
117
+ content: params.content,
118
+ tags: params.tags,
119
+ });
120
+ return {
121
+ content: [
122
+ {
123
+ type: "text",
124
+ text: `Document created: ${result.id}`,
125
+ },
126
+ ],
127
+ };
128
+ }
129
+ if (params.action === "update") {
130
+ if (!params.doc_id) {
131
+ return {
132
+ content: [
133
+ { type: "text", text: "Error: 'doc_id' is required for update." },
134
+ ],
135
+ };
136
+ }
137
+ const updateParams = {};
138
+ if (params.title)
139
+ updateParams.title = params.title;
140
+ if (params.content)
141
+ updateParams.content = params.content;
142
+ if (params.tags)
143
+ updateParams.tags = params.tags;
144
+ const result = await client.updateKnowledgeDoc(params.doc_id, updateParams);
145
+ return {
146
+ content: [
147
+ {
148
+ type: "text",
149
+ text: result.updated
150
+ ? `Document ${params.doc_id} updated.`
151
+ : `Document ${params.doc_id} not found.`,
152
+ },
153
+ ],
154
+ };
155
+ }
156
+ if (params.action === "delete") {
157
+ if (!params.doc_id) {
158
+ return {
159
+ content: [
160
+ { type: "text", text: "Error: 'doc_id' is required for delete." },
161
+ ],
162
+ };
163
+ }
164
+ const result = await client.deleteKnowledgeDoc(params.doc_id);
165
+ return {
166
+ content: [
167
+ {
168
+ type: "text",
169
+ text: result.deleted
170
+ ? `Document ${params.doc_id} deleted.`
171
+ : `Document ${params.doc_id} not found.`,
172
+ },
173
+ ],
174
+ };
175
+ }
176
+ if (params.action === "list") {
177
+ const result = await client.listKnowledgeDocs(params.limit);
178
+ if (result.docs.length === 0) {
179
+ return {
180
+ content: [
181
+ { type: "text", text: "No knowledge documents found." },
182
+ ],
183
+ };
184
+ }
185
+ const lines = result.docs.map((d) => {
186
+ const tags = d.tags?.length ? ` [${d.tags.join(", ")}]` : "";
187
+ return `- **${d.title}**${tags} (${d.id})\n Updated: ${d.updated_at}`;
188
+ });
189
+ return {
190
+ content: [
191
+ {
192
+ type: "text",
193
+ text: `## Knowledge Base (${result.total} docs)\n\n${lines.join("\n")}${result.has_more ? "\n\n_More docs available — use limit/offset._" : ""}`,
194
+ },
195
+ ],
196
+ };
197
+ }
198
+ return {
199
+ content: [
200
+ { type: "text", text: "Unknown action. Use search, get, add, update, delete, or list." },
201
+ ],
202
+ };
203
+ });
204
+ }
205
+ //# sourceMappingURL=knowledge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../src/tools/knowledge.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hivemindai/mcp-server",
3
- "version": "0.4.2",
3
+ "version": "0.4.4",
4
4
  "description": "MCP server for Hivemind — persistent event log for AI agent coordination",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -13,12 +13,6 @@
13
13
  "dist",
14
14
  "bin"
15
15
  ],
16
- "scripts": {
17
- "build": "tsc",
18
- "test": "vitest run",
19
- "lint": "eslint src/",
20
- "dev": "node --watch dist/index.js"
21
- },
22
16
  "keywords": [
23
17
  "mcp",
24
18
  "hivemind",
@@ -39,9 +33,15 @@
39
33
  "access": "public"
40
34
  },
41
35
  "dependencies": {
42
- "@hivemindai/core": "workspace:*",
43
- "@hivemindai/sdk-ts": "workspace:*",
44
36
  "@modelcontextprotocol/sdk": "^1.12.1",
45
- "zod": "^3.25.76"
37
+ "zod": "^3.25.76",
38
+ "@hivemindai/core": "0.1.8",
39
+ "@hivemindai/sdk-ts": "0.2.1"
40
+ },
41
+ "scripts": {
42
+ "build": "tsc",
43
+ "test": "vitest run",
44
+ "lint": "eslint src/",
45
+ "dev": "node --watch dist/index.js"
46
46
  }
47
- }
47
+ }