@hivemindai/mcp-server 0.2.3 → 0.2.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.
- package/dist/index.js +20 -15
- package/dist/index.js.map +1 -1
- package/dist/tools/blockers.d.ts +9 -2
- package/dist/tools/blockers.d.ts.map +1 -1
- package/dist/tools/blockers.js +6 -5
- package/dist/tools/blockers.js.map +1 -1
- package/dist/tools/lock.d.ts +9 -2
- package/dist/tools/lock.d.ts.map +1 -1
- package/dist/tools/lock.js +6 -5
- package/dist/tools/lock.js.map +1 -1
- package/dist/tools/publish.d.ts +9 -2
- package/dist/tools/publish.d.ts.map +1 -1
- package/dist/tools/publish.js +6 -5
- package/dist/tools/publish.js.map +1 -1
- package/dist/tools/query.d.ts +9 -2
- package/dist/tools/query.d.ts.map +1 -1
- package/dist/tools/query.js +6 -5
- package/dist/tools/query.js.map +1 -1
- package/dist/tools/status.d.ts +9 -2
- package/dist/tools/status.d.ts.map +1 -1
- package/dist/tools/status.js +6 -5
- package/dist/tools/status.js.map +1 -1
- package/dist/tools/subscribe.d.ts +9 -2
- package/dist/tools/subscribe.d.ts.map +1 -1
- package/dist/tools/subscribe.js +6 -5
- package/dist/tools/subscribe.js.map +1 -1
- package/dist/tools/teams.d.ts +1 -1
- package/dist/tools/teams.d.ts.map +1 -1
- package/dist/tools/teams.js +53 -15
- package/dist/tools/teams.js.map +1 -1
- package/package.json +11 -11
package/dist/index.js
CHANGED
|
@@ -12,7 +12,7 @@ import { registerSubscribeTool } from "./tools/subscribe.js";
|
|
|
12
12
|
import { registerStatusTool } from "./tools/status.js";
|
|
13
13
|
import { registerLockTool } from "./tools/lock.js";
|
|
14
14
|
import { registerBlockersTool } from "./tools/blockers.js";
|
|
15
|
-
import {
|
|
15
|
+
import { registerContextTool } from "./tools/teams.js";
|
|
16
16
|
async function main() {
|
|
17
17
|
const config = loadConfig();
|
|
18
18
|
let db;
|
|
@@ -44,27 +44,32 @@ async function main() {
|
|
|
44
44
|
version: "0.2.0",
|
|
45
45
|
});
|
|
46
46
|
/**
|
|
47
|
-
* In cloud mode, tools create team-
|
|
48
|
-
* This factory creates an HttpDb with
|
|
47
|
+
* In cloud mode, tools create org/team-scoped HivemindDB instances per call.
|
|
48
|
+
* This factory creates an HttpDb with X-Hivemind-Team and/or X-Hivemind-Org headers set.
|
|
49
49
|
*/
|
|
50
|
-
const
|
|
51
|
-
? (
|
|
52
|
-
const
|
|
50
|
+
const createScopedDb = config.mode === "cloud"
|
|
51
|
+
? (opts) => {
|
|
52
|
+
const headers = {};
|
|
53
|
+
if (opts.team)
|
|
54
|
+
headers["X-Hivemind-Team"] = opts.team;
|
|
55
|
+
if (opts.org)
|
|
56
|
+
headers["X-Hivemind-Org"] = opts.org;
|
|
57
|
+
const scopedClient = new HivemindClient({
|
|
53
58
|
apiKey: config.apiKey,
|
|
54
59
|
baseUrl: config.apiUrl,
|
|
55
|
-
defaultHeaders:
|
|
60
|
+
defaultHeaders: headers,
|
|
56
61
|
});
|
|
57
|
-
return createHttpDb(
|
|
62
|
+
return createHttpDb(scopedClient);
|
|
58
63
|
}
|
|
59
64
|
: undefined;
|
|
60
|
-
registerPublishTool(server, db, config, embeddingProvider,
|
|
61
|
-
registerQueryTool(server, db, config, embeddingProvider,
|
|
62
|
-
registerSubscribeTool(server, db, config,
|
|
63
|
-
registerStatusTool(server, db, config,
|
|
64
|
-
registerLockTool(server, db, config,
|
|
65
|
-
registerBlockersTool(server, db, config,
|
|
65
|
+
registerPublishTool(server, db, config, embeddingProvider, createScopedDb);
|
|
66
|
+
registerQueryTool(server, db, config, embeddingProvider, createScopedDb);
|
|
67
|
+
registerSubscribeTool(server, db, config, createScopedDb);
|
|
68
|
+
registerStatusTool(server, db, config, createScopedDb);
|
|
69
|
+
registerLockTool(server, db, config, createScopedDb);
|
|
70
|
+
registerBlockersTool(server, db, config, createScopedDb);
|
|
66
71
|
if (config.mode === "cloud" && client) {
|
|
67
|
-
|
|
72
|
+
registerContextTool(server, config);
|
|
68
73
|
}
|
|
69
74
|
const transport = new StdioServerTransport();
|
|
70
75
|
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":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GAExB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/blockers.d.ts
CHANGED
|
@@ -3,12 +3,19 @@ import type { HivemindDB } from "@hivemindai/core";
|
|
|
3
3
|
import type { ServerConfig } from "../config.js";
|
|
4
4
|
export declare function handleBlockers(db: HivemindDB, config: ServerConfig, params: {
|
|
5
5
|
channel?: string;
|
|
6
|
+
org?: string;
|
|
6
7
|
team?: string;
|
|
7
|
-
},
|
|
8
|
+
}, createScopedDb?: (opts: {
|
|
9
|
+
org?: string;
|
|
10
|
+
team?: string;
|
|
11
|
+
}) => HivemindDB): Promise<{
|
|
8
12
|
content: {
|
|
9
13
|
type: "text";
|
|
10
14
|
text: string;
|
|
11
15
|
}[];
|
|
12
16
|
}>;
|
|
13
|
-
export declare function registerBlockersTool(server: McpServer, db: HivemindDB, config: ServerConfig,
|
|
17
|
+
export declare function registerBlockersTool(server: McpServer, db: HivemindDB, config: ServerConfig, createScopedDb?: (opts: {
|
|
18
|
+
org?: string;
|
|
19
|
+
team?: string;
|
|
20
|
+
}) => HivemindDB): void;
|
|
14
21
|
//# sourceMappingURL=blockers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockers.d.ts","sourceRoot":"","sources":["../../src/tools/blockers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,wBAAsB,cAAc,CAClC,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"blockers.d.ts","sourceRoot":"","sources":["../../src/tools/blockers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,wBAAsB,cAAc,CAClC,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EACzD,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,UAAU;;;;;GAuBvE;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,EACjB,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,YAAY,EACpB,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,UAAU,QAYvE"}
|
package/dist/tools/blockers.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { formatRelativeTime } from "../format.js";
|
|
3
|
-
export async function handleBlockers(db, config, params,
|
|
4
|
-
const targetDb = params.team &&
|
|
3
|
+
export async function handleBlockers(db, config, params, createScopedDb) {
|
|
4
|
+
const targetDb = (params.org || params.team) && createScopedDb ? createScopedDb({ org: params.org, team: params.team }) : db;
|
|
5
5
|
const blockers = await targetDb.getUnresolvedBlockers(config.projectId, params.channel);
|
|
6
6
|
if (blockers.length === 0) {
|
|
7
7
|
return {
|
|
@@ -14,10 +14,11 @@ export async function handleBlockers(db, config, params, createTeamDb) {
|
|
|
14
14
|
content: [{ type: "text", text }],
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
|
-
export function registerBlockersTool(server, db, config,
|
|
17
|
+
export function registerBlockersTool(server, db, config, createScopedDb) {
|
|
18
18
|
server.tool("hivemind_blockers", "List unresolved blockers across the project", {
|
|
19
19
|
channel: z.string().optional().describe("Filter by channel"),
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
org: z.string().optional().describe("Organization slug to target. Use hivemind_context to list your organizations."),
|
|
21
|
+
team: z.string().optional().describe("Team name to target (required in cloud mode). Use hivemind_context to list available teams."),
|
|
22
|
+
}, async (params) => handleBlockers(db, config, params, createScopedDb));
|
|
22
23
|
}
|
|
23
24
|
//# sourceMappingURL=blockers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockers.js","sourceRoot":"","sources":["../../src/tools/blockers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,EAAc,EACd,MAAoB,EACpB,
|
|
1
|
+
{"version":3,"file":"blockers.js","sourceRoot":"","sources":["../../src/tools/blockers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,EAAc,EACd,MAAoB,EACpB,MAAyD,EACzD,cAAsE;IAEtE,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7H,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,qBAAqB,CACnD,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,OAAO,CACf,CAAC;IAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC;SACtE,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CACxB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,KAAM,CAAC,CAAC,IAAI,CAAC,WAAsB,IAAK,CAAC,CAAC,IAAI,CAAC,UAAqB,IAAI,CAAC,CAAC,EAAE,KAAK,kBAAkB,CAAC,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAC7K,CAAC;IACF,MAAM,IAAI,GAAG,wBAAwB,QAAQ,CAAC,MAAM,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAE9E,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC;KAC3C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,MAAiB,EACjB,EAAc,EACd,MAAoB,EACpB,cAAsE;IAEtE,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,6CAA6C,EAC7C;QACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAC5D,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+EAA+E,CAAC;QACpH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6FAA6F,CAAC;KACpI,EACD,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CACrE,CAAC;AACJ,CAAC"}
|
package/dist/tools/lock.d.ts
CHANGED
|
@@ -5,12 +5,19 @@ export declare function handleLock(db: HivemindDB, config: ServerConfig, params:
|
|
|
5
5
|
action: string;
|
|
6
6
|
resource: string;
|
|
7
7
|
ttl_seconds?: number;
|
|
8
|
+
org?: string;
|
|
8
9
|
team?: string;
|
|
9
|
-
},
|
|
10
|
+
}, createScopedDb?: (opts: {
|
|
11
|
+
org?: string;
|
|
12
|
+
team?: string;
|
|
13
|
+
}) => HivemindDB): Promise<{
|
|
10
14
|
content: {
|
|
11
15
|
type: "text";
|
|
12
16
|
text: string;
|
|
13
17
|
}[];
|
|
14
18
|
}>;
|
|
15
|
-
export declare function registerLockTool(server: McpServer, db: HivemindDB, config: ServerConfig,
|
|
19
|
+
export declare function registerLockTool(server: McpServer, db: HivemindDB, config: ServerConfig, createScopedDb?: (opts: {
|
|
20
|
+
org?: string;
|
|
21
|
+
team?: string;
|
|
22
|
+
}) => HivemindDB): void;
|
|
16
23
|
//# sourceMappingURL=lock.d.ts.map
|
package/dist/tools/lock.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../src/tools/lock.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,wBAAsB,UAAU,CAC9B,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE;IACN,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,EACD,
|
|
1
|
+
{"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../src/tools/lock.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,wBAAsB,UAAU,CAC9B,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE;IACN,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,EACD,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,UAAU;;;;;GAuDvE;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,SAAS,EACjB,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,YAAY,EACpB,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,UAAU,QAoBvE"}
|
package/dist/tools/lock.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export async function handleLock(db, config, params,
|
|
3
|
-
const targetDb = params.team &&
|
|
2
|
+
export async function handleLock(db, config, params, createScopedDb) {
|
|
3
|
+
const targetDb = (params.org || params.team) && createScopedDb ? createScopedDb({ org: params.org, team: params.team }) : db;
|
|
4
4
|
if (params.action === "acquire") {
|
|
5
5
|
const result = await targetDb.acquireLock({
|
|
6
6
|
project_id: config.projectId,
|
|
@@ -52,7 +52,7 @@ export async function handleLock(db, config, params, createTeamDb) {
|
|
|
52
52
|
],
|
|
53
53
|
};
|
|
54
54
|
}
|
|
55
|
-
export function registerLockTool(server, db, config,
|
|
55
|
+
export function registerLockTool(server, db, config, createScopedDb) {
|
|
56
56
|
server.tool("hivemind_lock", "Acquire or release advisory resource locks for coordination", {
|
|
57
57
|
action: z.enum(["acquire", "release"]).describe("Lock action"),
|
|
58
58
|
resource: z.string().min(1).describe("Resource path to lock (e.g. 'src/db.ts')"),
|
|
@@ -63,7 +63,8 @@ export function registerLockTool(server, db, config, createTeamDb) {
|
|
|
63
63
|
.max(3600)
|
|
64
64
|
.optional()
|
|
65
65
|
.describe("Lock TTL in seconds (default 300, max 3600)"),
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
org: z.string().optional().describe("Organization slug to target. Use hivemind_context to list your organizations."),
|
|
67
|
+
team: z.string().optional().describe("Team name to target (required in cloud mode). Use hivemind_context to list available teams."),
|
|
68
|
+
}, async (params) => handleLock(db, config, params, createScopedDb));
|
|
68
69
|
}
|
|
69
70
|
//# sourceMappingURL=lock.js.map
|
package/dist/tools/lock.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/tools/lock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,EAAc,EACd,MAAoB,EACpB,
|
|
1
|
+
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/tools/lock.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/publish.d.ts
CHANGED
|
@@ -6,12 +6,19 @@ export declare function handlePublish(db: HivemindDB, config: ServerConfig, para
|
|
|
6
6
|
event_type: string;
|
|
7
7
|
data: string;
|
|
8
8
|
confidence?: number;
|
|
9
|
+
org?: string;
|
|
9
10
|
team?: string;
|
|
10
|
-
}, embeddingProvider: EmbeddingProvider,
|
|
11
|
+
}, embeddingProvider: EmbeddingProvider, createScopedDb?: (opts: {
|
|
12
|
+
org?: string;
|
|
13
|
+
team?: string;
|
|
14
|
+
}) => HivemindDB): Promise<{
|
|
11
15
|
content: {
|
|
12
16
|
type: "text";
|
|
13
17
|
text: string;
|
|
14
18
|
}[];
|
|
15
19
|
}>;
|
|
16
|
-
export declare function registerPublishTool(server: McpServer, db: HivemindDB, config: ServerConfig, embeddingProvider: EmbeddingProvider,
|
|
20
|
+
export declare function registerPublishTool(server: McpServer, db: HivemindDB, config: ServerConfig, embeddingProvider: EmbeddingProvider, createScopedDb?: (opts: {
|
|
21
|
+
org?: string;
|
|
22
|
+
team?: string;
|
|
23
|
+
}) => HivemindDB): void;
|
|
17
24
|
//# sourceMappingURL=publish.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../src/tools/publish.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,iBAAiB,EACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,wBAAsB,aAAa,CACjC,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE;IACN,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,EACD,iBAAiB,EAAE,iBAAiB,EACpC,
|
|
1
|
+
{"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../src/tools/publish.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,iBAAiB,EACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,wBAAsB,aAAa,CACjC,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE;IACN,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,EACD,iBAAiB,EAAE,iBAAiB,EACpC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,UAAU;;;;;GA0BvE;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,EACjB,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,YAAY,EACpB,iBAAiB,EAAE,iBAAiB,EACpC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,UAAU,QAevE"}
|
package/dist/tools/publish.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { generateEventId, } from "@hivemindai/core";
|
|
3
|
-
export async function handlePublish(db, config, params, embeddingProvider,
|
|
4
|
-
const targetDb = params.team &&
|
|
3
|
+
export async function handlePublish(db, config, params, embeddingProvider, createScopedDb) {
|
|
4
|
+
const targetDb = (params.org || params.team) && createScopedDb ? createScopedDb({ org: params.org, team: params.team }) : db;
|
|
5
5
|
const data = JSON.parse(params.data);
|
|
6
6
|
const embedding = await embeddingProvider.generateEmbedding(JSON.stringify(data));
|
|
7
7
|
const id = generateEventId();
|
|
@@ -24,13 +24,14 @@ export async function handlePublish(db, config, params, embeddingProvider, creat
|
|
|
24
24
|
],
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
|
-
export function registerPublishTool(server, db, config, embeddingProvider,
|
|
27
|
+
export function registerPublishTool(server, db, config, embeddingProvider, createScopedDb) {
|
|
28
28
|
server.tool("hivemind_publish", "Publish an event to a channel in the Hivemind event log", {
|
|
29
29
|
channel: z.string().min(1).max(100).describe("Channel name (e.g. 'backend', 'qa', 'deploy')"),
|
|
30
30
|
event_type: z.string().min(1).max(100).describe("Event type (e.g. 'task.completed', 'decision.made')"),
|
|
31
31
|
data: z.string().describe("JSON string of event data payload"),
|
|
32
32
|
confidence: z.number().min(0).max(1).optional().describe("Confidence score 0-1"),
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
org: z.string().optional().describe("Organization slug to target. Use hivemind_context to list your organizations."),
|
|
34
|
+
team: z.string().optional().describe("Team name to target (required in cloud mode). Use hivemind_context to list available teams."),
|
|
35
|
+
}, async (params) => handlePublish(db, config, params, embeddingProvider, createScopedDb));
|
|
35
36
|
}
|
|
36
37
|
//# sourceMappingURL=publish.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/tools/publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,eAAe,GAGhB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,EAAc,EACd,MAAoB,EACpB,
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/tools/publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,eAAe,GAGhB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,EAAc,EACd,MAAoB,EACpB,MAOC,EACD,iBAAoC,EACpC,cAAsE;IAEtE,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7H,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAA4B,CAAC;IAChE,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAClF,MAAM,EAAE,GAAG,eAAe,EAAE,CAAC;IAE7B,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC;QACvC,EAAE;QACF,UAAU,EAAE,MAAM,CAAC,SAAS;QAC5B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,IAAI;QACJ,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI;QACrC,SAAS;KACV,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,oBAAoB,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,UAAU,EAAE;aAC5E;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,MAAiB,EACjB,EAAc,EACd,MAAoB,EACpB,iBAAoC,EACpC,cAAsE;IAEtE,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,yDAAyD,EACzD;QACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,+CAA+C,CAAC;QAC7F,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QACtG,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QAC9D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QAChF,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+EAA+E,CAAC;QACpH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6FAA6F,CAAC;KACpI,EACD,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,cAAc,CAAC,CACvF,CAAC;AACJ,CAAC"}
|
package/dist/tools/query.d.ts
CHANGED
|
@@ -9,12 +9,19 @@ export declare function handleQuery(db: HivemindDB, config: ServerConfig, params
|
|
|
9
9
|
until?: string;
|
|
10
10
|
source_tool?: string;
|
|
11
11
|
limit?: number;
|
|
12
|
+
org?: string;
|
|
12
13
|
team?: string;
|
|
13
|
-
}, embeddingProvider: EmbeddingProvider,
|
|
14
|
+
}, embeddingProvider: EmbeddingProvider, createScopedDb?: (opts: {
|
|
15
|
+
org?: string;
|
|
16
|
+
team?: string;
|
|
17
|
+
}) => HivemindDB): Promise<{
|
|
14
18
|
content: {
|
|
15
19
|
type: "text";
|
|
16
20
|
text: string;
|
|
17
21
|
}[];
|
|
18
22
|
}>;
|
|
19
|
-
export declare function registerQueryTool(server: McpServer, db: HivemindDB, config: ServerConfig, embeddingProvider: EmbeddingProvider,
|
|
23
|
+
export declare function registerQueryTool(server: McpServer, db: HivemindDB, config: ServerConfig, embeddingProvider: EmbeddingProvider, createScopedDb?: (opts: {
|
|
24
|
+
org?: string;
|
|
25
|
+
team?: string;
|
|
26
|
+
}) => HivemindDB): void;
|
|
20
27
|
//# sourceMappingURL=query.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/tools/query.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,wBAAsB,WAAW,CAC/B,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE;IACN,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,EACD,iBAAiB,EAAE,iBAAiB,EACpC,
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/tools/query.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,wBAAsB,WAAW,CAC/B,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE;IACN,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,EACD,iBAAiB,EAAE,iBAAiB,EACpC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,UAAU;;;;;GA0BvE;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EACjB,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,YAAY,EACpB,iBAAiB,EAAE,iBAAiB,EACpC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,UAAU,QAkBvE"}
|
package/dist/tools/query.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { formatEvents } from "../format.js";
|
|
3
|
-
export async function handleQuery(db, config, params, embeddingProvider,
|
|
4
|
-
const targetDb = params.team &&
|
|
3
|
+
export async function handleQuery(db, config, params, embeddingProvider, createScopedDb) {
|
|
4
|
+
const targetDb = (params.org || params.team) && createScopedDb ? createScopedDb({ org: params.org, team: params.team }) : db;
|
|
5
5
|
let embedding;
|
|
6
6
|
if (params.query) {
|
|
7
7
|
const result = await embeddingProvider.generateEmbedding(params.query);
|
|
@@ -24,7 +24,7 @@ export async function handleQuery(db, config, params, embeddingProvider, createT
|
|
|
24
24
|
content: [{ type: "text", text }],
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
|
-
export function registerQueryTool(server, db, config, embeddingProvider,
|
|
27
|
+
export function registerQueryTool(server, db, config, embeddingProvider, createScopedDb) {
|
|
28
28
|
server.tool("hivemind_query", "Search and filter events in the Hivemind event log", {
|
|
29
29
|
query: z.string().optional().describe("Semantic search text"),
|
|
30
30
|
channel: z.string().optional().describe("Filter by channel"),
|
|
@@ -33,7 +33,8 @@ export function registerQueryTool(server, db, config, embeddingProvider, createT
|
|
|
33
33
|
until: z.string().optional().describe("ISO 8601 datetime upper bound"),
|
|
34
34
|
source_tool: z.string().optional().describe("Filter by source tool"),
|
|
35
35
|
limit: z.number().int().min(1).max(100).optional().describe("Max results (default 20)"),
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
org: z.string().optional().describe("Organization slug to target. Use hivemind_context to list your organizations."),
|
|
37
|
+
team: z.string().optional().describe("Team name to target (required in cloud mode). Use hivemind_context to list available teams."),
|
|
38
|
+
}, async (params) => handleQuery(db, config, params, embeddingProvider, createScopedDb));
|
|
38
39
|
}
|
|
39
40
|
//# sourceMappingURL=query.js.map
|
package/dist/tools/query.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/tools/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,EAAc,EACd,MAAoB,EACpB,
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/tools/query.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/status.d.ts
CHANGED
|
@@ -4,12 +4,19 @@ import type { ServerConfig } from "../config.js";
|
|
|
4
4
|
export declare function formatStatus(status: ActiveStatus): string;
|
|
5
5
|
export declare function handleStatus(db: HivemindDB, config: ServerConfig, params: {
|
|
6
6
|
channel?: string;
|
|
7
|
+
org?: string;
|
|
7
8
|
team?: string;
|
|
8
|
-
},
|
|
9
|
+
}, createScopedDb?: (opts: {
|
|
10
|
+
org?: string;
|
|
11
|
+
team?: string;
|
|
12
|
+
}) => HivemindDB): Promise<{
|
|
9
13
|
content: {
|
|
10
14
|
type: "text";
|
|
11
15
|
text: string;
|
|
12
16
|
}[];
|
|
13
17
|
}>;
|
|
14
|
-
export declare function registerStatusTool(server: McpServer, db: HivemindDB, config: ServerConfig,
|
|
18
|
+
export declare function registerStatusTool(server: McpServer, db: HivemindDB, config: ServerConfig, createScopedDb?: (opts: {
|
|
19
|
+
org?: string;
|
|
20
|
+
team?: string;
|
|
21
|
+
}) => HivemindDB): void;
|
|
15
22
|
//# sourceMappingURL=status.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/tools/status.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CA4CzD;AAED,wBAAsB,YAAY,CAChC,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/tools/status.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CA4CzD;AAED,wBAAsB,YAAY,CAChC,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EACzD,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,UAAU;;;;;GASvE;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,SAAS,EACjB,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,YAAY,EACpB,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,UAAU,QAYvE"}
|
package/dist/tools/status.js
CHANGED
|
@@ -33,18 +33,19 @@ export function formatStatus(status) {
|
|
|
33
33
|
sections.push(`Activity:\n Events (24h): ${status.eventCount24h}\n Last event: ${lastActivity}`);
|
|
34
34
|
return sections.join("\n\n");
|
|
35
35
|
}
|
|
36
|
-
export async function handleStatus(db, config, params,
|
|
37
|
-
const targetDb = params.team &&
|
|
36
|
+
export async function handleStatus(db, config, params, createScopedDb) {
|
|
37
|
+
const targetDb = (params.org || params.team) && createScopedDb ? createScopedDb({ org: params.org, team: params.team }) : db;
|
|
38
38
|
const status = await targetDb.getActiveStatus(config.projectId, params.channel);
|
|
39
39
|
const text = formatStatus(status);
|
|
40
40
|
return {
|
|
41
41
|
content: [{ type: "text", text }],
|
|
42
42
|
};
|
|
43
43
|
}
|
|
44
|
-
export function registerStatusTool(server, db, config,
|
|
44
|
+
export function registerStatusTool(server, db, config, createScopedDb) {
|
|
45
45
|
server.tool("hivemind_status", "Get aggregated project status: active tasks, completions, blockers, and activity", {
|
|
46
46
|
channel: z.string().optional().describe("Filter by channel"),
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
org: z.string().optional().describe("Organization slug to target. Use hivemind_context to list your organizations."),
|
|
48
|
+
team: z.string().optional().describe("Team name to target (required in cloud mode). Use hivemind_context to list available teams."),
|
|
49
|
+
}, async (params) => handleStatus(db, config, params, createScopedDb));
|
|
49
50
|
}
|
|
50
51
|
//# sourceMappingURL=status.js.map
|
package/dist/tools/status.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/tools/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,UAAU,YAAY,CAAC,MAAoB;IAC/C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,eAAe;IACf,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAClC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,KAAM,CAAC,CAAC,IAAI,CAAC,WAAsB,IAAK,CAAC,CAAC,IAAI,CAAC,OAAkB,IAAI,CAAC,CAAC,EAAE,EAAE,CAC/G,CAAC;QACF,QAAQ,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,WAAW,CAAC,MAAM,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrF,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACtC,CAAC;IAED,qBAAqB;IACrB,IAAI,MAAM,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,MAAM,WAAW,GAAG,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAC9C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,KAAM,CAAC,CAAC,IAAI,CAAC,WAAsB,IAAK,CAAC,CAAC,IAAI,CAAC,OAAkB,IAAI,CAAC,CAAC,EAAE,KAAK,kBAAkB,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAC7I,CAAC;QACF,QAAQ,CAAC,IAAI,CAAC,8BAA8B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAClD,CAAC;IAED,WAAW;IACX,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAClC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,KAAM,CAAC,CAAC,IAAI,CAAC,WAAsB,IAAK,CAAC,CAAC,IAAI,CAAC,UAAqB,IAAI,CAAC,CAAC,EAAE,KAAK,kBAAkB,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAChJ,CAAC;QACF,QAAQ,CAAC,IAAI,CAAC,wBAAwB,MAAM,CAAC,QAAQ,CAAC,MAAM,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5F,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAC7C,CAAC;IAED,iBAAiB;IACjB,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW;QACrC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC;QACxC,CAAC,CAAC,WAAW,CAAC;IAChB,QAAQ,CAAC,IAAI,CACX,8BAA8B,MAAM,CAAC,aAAa,mBAAmB,YAAY,EAAE,CACpF,CAAC;IAEF,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,EAAc,EACd,MAAoB,EACpB,
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/tools/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,12 +5,19 @@ export declare function handleSubscribe(db: HivemindDB, config: ServerConfig, pa
|
|
|
5
5
|
channel?: string;
|
|
6
6
|
event_type?: string;
|
|
7
7
|
since?: string;
|
|
8
|
+
org?: string;
|
|
8
9
|
team?: string;
|
|
9
|
-
},
|
|
10
|
+
}, createScopedDb?: (opts: {
|
|
11
|
+
org?: string;
|
|
12
|
+
team?: string;
|
|
13
|
+
}) => HivemindDB): Promise<{
|
|
10
14
|
content: {
|
|
11
15
|
type: "text";
|
|
12
16
|
text: string;
|
|
13
17
|
}[];
|
|
14
18
|
}>;
|
|
15
|
-
export declare function registerSubscribeTool(server: McpServer, db: HivemindDB, config: ServerConfig,
|
|
19
|
+
export declare function registerSubscribeTool(server: McpServer, db: HivemindDB, config: ServerConfig, createScopedDb?: (opts: {
|
|
20
|
+
org?: string;
|
|
21
|
+
team?: string;
|
|
22
|
+
}) => HivemindDB): void;
|
|
16
23
|
//# sourceMappingURL=subscribe.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscribe.d.ts","sourceRoot":"","sources":["../../src/tools/subscribe.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAEL,KAAK,UAAU,EAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,wBAAsB,eAAe,CACnC,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE;IACN,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,EACD,
|
|
1
|
+
{"version":3,"file":"subscribe.d.ts","sourceRoot":"","sources":["../../src/tools/subscribe.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAEL,KAAK,UAAU,EAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,wBAAsB,eAAe,CACnC,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE;IACN,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,EACD,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,UAAU;;;;;GAkCvE;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,YAAY,EACpB,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,UAAU,QAcvE"}
|
package/dist/tools/subscribe.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { matchesEventType, } from "@hivemindai/core";
|
|
3
3
|
import { formatEvents } from "../format.js";
|
|
4
|
-
export async function handleSubscribe(db, config, params,
|
|
5
|
-
const targetDb = params.team &&
|
|
4
|
+
export async function handleSubscribe(db, config, params, createScopedDb) {
|
|
5
|
+
const targetDb = (params.org || params.team) && createScopedDb ? createScopedDb({ org: params.org, team: params.team }) : db;
|
|
6
6
|
const defaultSince = new Date(Date.now() - 60 * 60 * 1000).toISOString();
|
|
7
7
|
const since = params.since ?? defaultSince;
|
|
8
8
|
const hasWildcard = params.event_type?.includes("*");
|
|
@@ -30,12 +30,13 @@ export async function handleSubscribe(db, config, params, createTeamDb) {
|
|
|
30
30
|
content: [{ type: "text", text }],
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
|
-
export function registerSubscribeTool(server, db, config,
|
|
33
|
+
export function registerSubscribeTool(server, db, config, createScopedDb) {
|
|
34
34
|
server.tool("hivemind_subscribe", "Get recent events matching a subscription filter (pull model)", {
|
|
35
35
|
channel: z.string().optional().describe("Channel to subscribe to"),
|
|
36
36
|
event_type: z.string().optional().describe("Event type pattern (supports wildcards like 'task.*')"),
|
|
37
37
|
since: z.string().optional().describe("ISO 8601 datetime (default: 1 hour ago)"),
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
org: z.string().optional().describe("Organization slug to target. Use hivemind_context to list your organizations."),
|
|
39
|
+
team: z.string().optional().describe("Team name to target (required in cloud mode). Use hivemind_context to list available teams."),
|
|
40
|
+
}, async (params) => handleSubscribe(db, config, params, createScopedDb));
|
|
40
41
|
}
|
|
41
42
|
//# sourceMappingURL=subscribe.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscribe.js","sourceRoot":"","sources":["../../src/tools/subscribe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,gBAAgB,GAEjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,EAAc,EACd,MAAoB,EACpB,
|
|
1
|
+
{"version":3,"file":"subscribe.js","sourceRoot":"","sources":["../../src/tools/subscribe.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/teams.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
2
|
import type { ServerConfig } from "../config.js";
|
|
3
|
-
export declare function
|
|
3
|
+
export declare function registerContextTool(server: McpServer, config: ServerConfig): void;
|
|
4
4
|
//# sourceMappingURL=teams.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"teams.d.ts","sourceRoot":"","sources":["../../src/tools/teams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"teams.d.ts","sourceRoot":"","sources":["../../src/tools/teams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAiFjD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,YAAY,QA8BrB"}
|
package/dist/tools/teams.js
CHANGED
|
@@ -1,31 +1,69 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Fetches the user's
|
|
2
|
+
* Fetches the user's full context (all orgs + teams) by calling GET /v1/dashboard/me/context.
|
|
3
3
|
*/
|
|
4
|
-
async function
|
|
5
|
-
const res = await fetch(`${config.apiUrl}/v1/dashboard/me/
|
|
4
|
+
async function fetchContext(config) {
|
|
5
|
+
const res = await fetch(`${config.apiUrl}/v1/dashboard/me/context`, {
|
|
6
6
|
headers: {
|
|
7
7
|
Authorization: `Bearer ${config.apiKey}`,
|
|
8
8
|
},
|
|
9
9
|
});
|
|
10
10
|
if (!res.ok) {
|
|
11
|
-
throw new Error(`Failed to fetch
|
|
11
|
+
throw new Error(`Failed to fetch context: ${res.status}`);
|
|
12
12
|
}
|
|
13
|
-
|
|
14
|
-
return data.teams;
|
|
13
|
+
return await res.json();
|
|
15
14
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
function formatContext(ctx) {
|
|
16
|
+
const lines = [];
|
|
17
|
+
const activeOrg = ctx.organizations.find((o) => o.id === ctx.active_org_id);
|
|
18
|
+
const otherOrgs = ctx.organizations.filter((o) => o.id !== ctx.active_org_id);
|
|
19
|
+
if (activeOrg) {
|
|
20
|
+
lines.push(`Active Organization: ${activeOrg.name} [${activeOrg.slug}] (${activeOrg.role})`);
|
|
21
|
+
if (activeOrg.teams.length > 0) {
|
|
22
|
+
lines.push(" Teams:");
|
|
23
|
+
for (const t of activeOrg.teams) {
|
|
24
|
+
lines.push(` - ${t.name} (${t.role})`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
lines.push(" No teams");
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
if (otherOrgs.length > 0) {
|
|
32
|
+
lines.push("");
|
|
33
|
+
lines.push("Other Organizations:");
|
|
34
|
+
for (const org of otherOrgs) {
|
|
35
|
+
lines.push(` ${org.name} [${org.slug}] (${org.role})`);
|
|
36
|
+
if (org.teams.length > 0) {
|
|
37
|
+
lines.push(" Teams:");
|
|
38
|
+
for (const t of org.teams) {
|
|
39
|
+
lines.push(` - ${t.name} (${t.role})`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
lines.push(" No teams");
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
if (otherOrgs.length > 0) {
|
|
48
|
+
lines.push("");
|
|
49
|
+
lines.push('Tip: Use `org` parameter to target another organization (e.g. org="slug" team="name")');
|
|
50
|
+
}
|
|
51
|
+
return lines.join("\n");
|
|
52
|
+
}
|
|
53
|
+
export function registerContextTool(server, config) {
|
|
54
|
+
const handler = async () => {
|
|
55
|
+
const ctx = await fetchContext(config);
|
|
56
|
+
if (ctx.organizations.length === 0) {
|
|
20
57
|
return {
|
|
21
|
-
content: [{ type: "text", text: "No
|
|
58
|
+
content: [{ type: "text", text: "No organizations found. You may need to run `hivemind login` first." }],
|
|
22
59
|
};
|
|
23
60
|
}
|
|
24
|
-
const lines = teams.map((t) => ` - ${t.name} (${t.role})`);
|
|
25
|
-
const text = `Available Teams (${teams.length}):\n${lines.join("\n")}`;
|
|
26
61
|
return {
|
|
27
|
-
content: [{ type: "text", text }],
|
|
62
|
+
content: [{ type: "text", text: formatContext(ctx) }],
|
|
28
63
|
};
|
|
29
|
-
}
|
|
64
|
+
};
|
|
65
|
+
server.tool("hivemind_context", "Show your organizations, teams, and roles. Lists all orgs you belong to with their teams.", {}, handler);
|
|
66
|
+
// Backward-compatible alias
|
|
67
|
+
server.tool("hivemind_teams", "List teams you have access to (alias for hivemind_context)", {}, handler);
|
|
30
68
|
}
|
|
31
69
|
//# sourceMappingURL=teams.js.map
|
package/dist/tools/teams.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"teams.js","sourceRoot":"","sources":["../../src/tools/teams.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"teams.js","sourceRoot":"","sources":["../../src/tools/teams.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.2.
|
|
3
|
+
"version": "0.2.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,6 +13,12 @@
|
|
|
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
|
+
},
|
|
16
22
|
"keywords": [
|
|
17
23
|
"mcp",
|
|
18
24
|
"hivemind",
|
|
@@ -33,15 +39,9 @@
|
|
|
33
39
|
"access": "public"
|
|
34
40
|
},
|
|
35
41
|
"dependencies": {
|
|
42
|
+
"@hivemindai/core": "workspace:*",
|
|
43
|
+
"@hivemindai/sdk-ts": "workspace:*",
|
|
36
44
|
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
37
|
-
"zod": "^3.25.76"
|
|
38
|
-
"@hivemindai/core": "0.1.5",
|
|
39
|
-
"@hivemindai/sdk-ts": "0.1.5"
|
|
40
|
-
},
|
|
41
|
-
"scripts": {
|
|
42
|
-
"build": "tsc",
|
|
43
|
-
"test": "vitest run",
|
|
44
|
-
"lint": "eslint src/",
|
|
45
|
-
"dev": "node --watch dist/index.js"
|
|
45
|
+
"zod": "^3.25.76"
|
|
46
46
|
}
|
|
47
|
-
}
|
|
47
|
+
}
|