@hivemindai/mcp-server 0.1.4 → 0.2.0
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/__tests__/config.test.js +7 -6
- package/dist/__tests__/config.test.js.map +1 -1
- package/dist/__tests__/credentials.test.js +18 -9
- package/dist/__tests__/credentials.test.js.map +1 -1
- package/dist/cli/commands/login.d.ts.map +1 -1
- package/dist/cli/commands/login.js +40 -15
- package/dist/cli/commands/login.js.map +1 -1
- package/dist/cli/commands/status.js +1 -1
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/switch.d.ts +2 -0
- package/dist/cli/commands/switch.d.ts.map +1 -0
- package/dist/cli/commands/switch.js +88 -0
- package/dist/cli/commands/switch.js.map +1 -0
- package/dist/cli/commands/whoami.d.ts.map +1 -1
- package/dist/cli/commands/whoami.js +19 -1
- package/dist/cli/commands/whoami.js.map +1 -1
- package/dist/cli/credentials.d.ts +3 -2
- package/dist/cli/credentials.d.ts.map +1 -1
- package/dist/cli/credentials.js +7 -2
- package/dist/cli/credentials.js.map +1 -1
- package/dist/cli/index.js +3 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -2
- package/dist/config.js.map +1 -1
- package/dist/http-db.d.ts +3 -2
- package/dist/http-db.d.ts.map +1 -1
- package/dist/http-db.js +3 -6
- package/dist/http-db.js.map +1 -1
- package/dist/index.js +29 -9
- package/dist/index.js.map +1 -1
- package/dist/tools/blockers.d.ts +3 -2
- package/dist/tools/blockers.d.ts.map +1 -1
- package/dist/tools/blockers.js +6 -4
- package/dist/tools/blockers.js.map +1 -1
- package/dist/tools/lock.d.ts +3 -2
- package/dist/tools/lock.d.ts.map +1 -1
- package/dist/tools/lock.js +7 -5
- package/dist/tools/lock.js.map +1 -1
- package/dist/tools/publish.d.ts +3 -2
- package/dist/tools/publish.d.ts.map +1 -1
- package/dist/tools/publish.js +6 -4
- package/dist/tools/publish.js.map +1 -1
- package/dist/tools/query.d.ts +3 -2
- package/dist/tools/query.d.ts.map +1 -1
- package/dist/tools/query.js +6 -4
- package/dist/tools/query.js.map +1 -1
- package/dist/tools/status.d.ts +3 -2
- package/dist/tools/status.d.ts.map +1 -1
- package/dist/tools/status.js +6 -4
- package/dist/tools/status.js.map +1 -1
- package/dist/tools/subscribe.d.ts +3 -2
- package/dist/tools/subscribe.d.ts.map +1 -1
- package/dist/tools/subscribe.js +6 -4
- package/dist/tools/subscribe.js.map +1 -1
- package/dist/tools/teams.d.ts +4 -0
- package/dist/tools/teams.d.ts.map +1 -0
- package/dist/tools/teams.js +31 -0
- package/dist/tools/teams.js.map +1 -0
- package/package.json +11 -11
package/dist/http-db.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* Creates an HTTP-backed HivemindDB.
|
|
3
|
+
* In cloud mode, the MCP server doesn't need direct database access — the REST API
|
|
4
|
+
* resolves team → project_id server-side via the X-Hivemind-Team header.
|
|
4
5
|
*/
|
|
5
6
|
export function createHttpDb(client) {
|
|
6
7
|
return {
|
|
@@ -12,7 +13,6 @@ export function createHttpDb(client) {
|
|
|
12
13
|
data: params.data,
|
|
13
14
|
confidence: params.confidence,
|
|
14
15
|
});
|
|
15
|
-
// Return a minimal HivemindEvent — the REST API only returns id + created_at
|
|
16
16
|
return {
|
|
17
17
|
id: result.id,
|
|
18
18
|
project_id: params.project_id,
|
|
@@ -41,7 +41,6 @@ export function createHttpDb(client) {
|
|
|
41
41
|
},
|
|
42
42
|
async queryEvents(params) {
|
|
43
43
|
const result = await client.query({
|
|
44
|
-
q: params.embedding ? undefined : undefined, // semantic search handled server-side
|
|
45
44
|
channel: params.channel,
|
|
46
45
|
event_type: params.event_type,
|
|
47
46
|
since: params.since,
|
|
@@ -87,8 +86,6 @@ export function createHttpDb(client) {
|
|
|
87
86
|
return result.released;
|
|
88
87
|
},
|
|
89
88
|
async checkLock(_projectId, _resource) {
|
|
90
|
-
// REST API doesn't have a dedicated check-lock endpoint
|
|
91
|
-
// Return null — lock status is checked via acquire attempts
|
|
92
89
|
return null;
|
|
93
90
|
},
|
|
94
91
|
async getUnresolvedBlockers(_projectId, channel) {
|
package/dist/http-db.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-db.js","sourceRoot":"","sources":["../src/http-db.ts"],"names":[],"mappings":"AAYA
|
|
1
|
+
{"version":3,"file":"http-db.js","sourceRoot":"","sources":["../src/http-db.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -12,14 +12,17 @@ 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 { registerTeamsTool } from "./tools/teams.js";
|
|
15
16
|
async function main() {
|
|
16
17
|
const config = loadConfig();
|
|
17
18
|
let db;
|
|
18
19
|
let embeddingProvider;
|
|
20
|
+
let client;
|
|
19
21
|
if (config.mode === "cloud") {
|
|
20
22
|
// Cloud mode: delegate everything to the REST API via HTTP.
|
|
21
|
-
//
|
|
22
|
-
|
|
23
|
+
// The team is specified per-tool-call — the X-Hivemind-Team header is set per request.
|
|
24
|
+
// We create a default client here; tools will create team-specific clients as needed.
|
|
25
|
+
client = new HivemindClient({
|
|
23
26
|
apiKey: config.apiKey,
|
|
24
27
|
baseUrl: config.apiUrl,
|
|
25
28
|
});
|
|
@@ -38,14 +41,31 @@ async function main() {
|
|
|
38
41
|
}
|
|
39
42
|
const server = new McpServer({
|
|
40
43
|
name: "hivemind",
|
|
41
|
-
version: "0.
|
|
44
|
+
version: "0.2.0",
|
|
42
45
|
});
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
/**
|
|
47
|
+
* In cloud mode, tools create team-specific HivemindDB instances per call.
|
|
48
|
+
* This factory creates an HttpDb with the X-Hivemind-Team header set.
|
|
49
|
+
*/
|
|
50
|
+
const createTeamDb = config.mode === "cloud"
|
|
51
|
+
? (team) => {
|
|
52
|
+
const teamClient = new HivemindClient({
|
|
53
|
+
apiKey: config.apiKey,
|
|
54
|
+
baseUrl: config.apiUrl,
|
|
55
|
+
defaultHeaders: { "X-Hivemind-Team": team },
|
|
56
|
+
});
|
|
57
|
+
return createHttpDb(teamClient);
|
|
58
|
+
}
|
|
59
|
+
: undefined;
|
|
60
|
+
registerPublishTool(server, db, config, embeddingProvider, createTeamDb);
|
|
61
|
+
registerQueryTool(server, db, config, embeddingProvider, createTeamDb);
|
|
62
|
+
registerSubscribeTool(server, db, config, createTeamDb);
|
|
63
|
+
registerStatusTool(server, db, config, createTeamDb);
|
|
64
|
+
registerLockTool(server, db, config, createTeamDb);
|
|
65
|
+
registerBlockersTool(server, db, config, createTeamDb);
|
|
66
|
+
if (config.mode === "cloud" && client) {
|
|
67
|
+
registerTeamsTool(server, config);
|
|
68
|
+
}
|
|
49
69
|
const transport = new StdioServerTransport();
|
|
50
70
|
await server.connect(transport);
|
|
51
71
|
process.stderr.write(`Hivemind MCP server started on stdio (${config.mode} mode)\n`);
|
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;
|
|
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,11 +3,12 @@ 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
|
-
|
|
6
|
+
team?: string;
|
|
7
|
+
}, createTeamDb?: (team: string) => HivemindDB): Promise<{
|
|
7
8
|
content: {
|
|
8
9
|
type: "text";
|
|
9
10
|
text: string;
|
|
10
11
|
}[];
|
|
11
12
|
}>;
|
|
12
|
-
export declare function registerBlockersTool(server: McpServer, db: HivemindDB, config: ServerConfig): void;
|
|
13
|
+
export declare function registerBlockersTool(server: McpServer, db: HivemindDB, config: ServerConfig, createTeamDb?: (team: string) => HivemindDB): void;
|
|
13
14
|
//# 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,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,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAC3C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU;;;;;GAuB5C;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,EACjB,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,YAAY,EACpB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,QAW5C"}
|
package/dist/tools/blockers.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { formatRelativeTime } from "../format.js";
|
|
3
|
-
export async function handleBlockers(db, config, params) {
|
|
4
|
-
const
|
|
3
|
+
export async function handleBlockers(db, config, params, createTeamDb) {
|
|
4
|
+
const targetDb = params.team && createTeamDb ? createTeamDb(params.team) : db;
|
|
5
|
+
const blockers = await targetDb.getUnresolvedBlockers(config.projectId, params.channel);
|
|
5
6
|
if (blockers.length === 0) {
|
|
6
7
|
return {
|
|
7
8
|
content: [{ type: "text", text: "No unresolved blockers." }],
|
|
@@ -13,9 +14,10 @@ export async function handleBlockers(db, config, params) {
|
|
|
13
14
|
content: [{ type: "text", text }],
|
|
14
15
|
};
|
|
15
16
|
}
|
|
16
|
-
export function registerBlockersTool(server, db, config) {
|
|
17
|
+
export function registerBlockersTool(server, db, config, createTeamDb) {
|
|
17
18
|
server.tool("hivemind_blockers", "List unresolved blockers across the project", {
|
|
18
19
|
channel: z.string().optional().describe("Filter by channel"),
|
|
19
|
-
|
|
20
|
+
team: z.string().optional().describe("Team name to target (required in cloud mode). Use hivemind_teams to list available teams."),
|
|
21
|
+
}, async (params) => handleBlockers(db, config, params, createTeamDb));
|
|
20
22
|
}
|
|
21
23
|
//# 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,MAA2C,EAC3C,YAA2C;IAE3C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,IAAI,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9E,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,YAA2C;IAE3C,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,6CAA6C,EAC7C;QACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAC5D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2FAA2F,CAAC;KAClI,EACD,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CACnE,CAAC;AACJ,CAAC"}
|
package/dist/tools/lock.d.ts
CHANGED
|
@@ -5,11 +5,12 @@ export declare function handleLock(db: HivemindDB, config: ServerConfig, params:
|
|
|
5
5
|
action: string;
|
|
6
6
|
resource: string;
|
|
7
7
|
ttl_seconds?: number;
|
|
8
|
-
|
|
8
|
+
team?: string;
|
|
9
|
+
}, createTeamDb?: (team: string) => HivemindDB): Promise<{
|
|
9
10
|
content: {
|
|
10
11
|
type: "text";
|
|
11
12
|
text: string;
|
|
12
13
|
}[];
|
|
13
14
|
}>;
|
|
14
|
-
export declare function registerLockTool(server: McpServer, db: HivemindDB, config: ServerConfig): void;
|
|
15
|
+
export declare function registerLockTool(server: McpServer, db: HivemindDB, config: ServerConfig, createTeamDb?: (team: string) => HivemindDB): void;
|
|
15
16
|
//# 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;
|
|
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,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU;;;;;GAuD5C;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,SAAS,EACjB,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,YAAY,EACpB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,QAmB5C"}
|
package/dist/tools/lock.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export async function handleLock(db, config, params) {
|
|
2
|
+
export async function handleLock(db, config, params, createTeamDb) {
|
|
3
|
+
const targetDb = params.team && createTeamDb ? createTeamDb(params.team) : db;
|
|
3
4
|
if (params.action === "acquire") {
|
|
4
|
-
const result = await
|
|
5
|
+
const result = await targetDb.acquireLock({
|
|
5
6
|
project_id: config.projectId,
|
|
6
7
|
resource: params.resource,
|
|
7
8
|
agent: config.source.agent,
|
|
@@ -30,7 +31,7 @@ export async function handleLock(db, config, params) {
|
|
|
30
31
|
}
|
|
31
32
|
}
|
|
32
33
|
else if (params.action === "release") {
|
|
33
|
-
const released = await
|
|
34
|
+
const released = await targetDb.releaseLock(config.projectId, params.resource);
|
|
34
35
|
return {
|
|
35
36
|
content: [
|
|
36
37
|
{
|
|
@@ -51,7 +52,7 @@ export async function handleLock(db, config, params) {
|
|
|
51
52
|
],
|
|
52
53
|
};
|
|
53
54
|
}
|
|
54
|
-
export function registerLockTool(server, db, config) {
|
|
55
|
+
export function registerLockTool(server, db, config, createTeamDb) {
|
|
55
56
|
server.tool("hivemind_lock", "Acquire or release advisory resource locks for coordination", {
|
|
56
57
|
action: z.enum(["acquire", "release"]).describe("Lock action"),
|
|
57
58
|
resource: z.string().min(1).describe("Resource path to lock (e.g. 'src/db.ts')"),
|
|
@@ -62,6 +63,7 @@ export function registerLockTool(server, db, config) {
|
|
|
62
63
|
.max(3600)
|
|
63
64
|
.optional()
|
|
64
65
|
.describe("Lock TTL in seconds (default 300, max 3600)"),
|
|
65
|
-
|
|
66
|
+
team: z.string().optional().describe("Team name to target (required in cloud mode). Use hivemind_teams to list available teams."),
|
|
67
|
+
}, async (params) => handleLock(db, config, params, createTeamDb));
|
|
66
68
|
}
|
|
67
69
|
//# 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,11 +6,12 @@ export declare function handlePublish(db: HivemindDB, config: ServerConfig, para
|
|
|
6
6
|
event_type: string;
|
|
7
7
|
data: string;
|
|
8
8
|
confidence?: number;
|
|
9
|
-
|
|
9
|
+
team?: string;
|
|
10
|
+
}, embeddingProvider: EmbeddingProvider, createTeamDb?: (team: string) => HivemindDB): Promise<{
|
|
10
11
|
content: {
|
|
11
12
|
type: "text";
|
|
12
13
|
text: string;
|
|
13
14
|
}[];
|
|
14
15
|
}>;
|
|
15
|
-
export declare function registerPublishTool(server: McpServer, db: HivemindDB, config: ServerConfig, embeddingProvider: EmbeddingProvider): void;
|
|
16
|
+
export declare function registerPublishTool(server: McpServer, db: HivemindDB, config: ServerConfig, embeddingProvider: EmbeddingProvider, createTeamDb?: (team: string) => HivemindDB): void;
|
|
16
17
|
//# 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;
|
|
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,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU;;;;;GA0B5C;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,EACjB,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,YAAY,EACpB,iBAAiB,EAAE,iBAAiB,EACpC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,QAc5C"}
|
package/dist/tools/publish.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { generateEventId, } from "@hivemindai/core";
|
|
3
|
-
export async function handlePublish(db, config, params, embeddingProvider) {
|
|
3
|
+
export async function handlePublish(db, config, params, embeddingProvider, createTeamDb) {
|
|
4
|
+
const targetDb = params.team && createTeamDb ? createTeamDb(params.team) : db;
|
|
4
5
|
const data = JSON.parse(params.data);
|
|
5
6
|
const embedding = await embeddingProvider.generateEmbedding(JSON.stringify(data));
|
|
6
7
|
const id = generateEventId();
|
|
7
|
-
const event = await
|
|
8
|
+
const event = await targetDb.insertEvent({
|
|
8
9
|
id,
|
|
9
10
|
project_id: config.projectId,
|
|
10
11
|
channel: params.channel,
|
|
@@ -23,12 +24,13 @@ export async function handlePublish(db, config, params, embeddingProvider) {
|
|
|
23
24
|
],
|
|
24
25
|
};
|
|
25
26
|
}
|
|
26
|
-
export function registerPublishTool(server, db, config, embeddingProvider) {
|
|
27
|
+
export function registerPublishTool(server, db, config, embeddingProvider, createTeamDb) {
|
|
27
28
|
server.tool("hivemind_publish", "Publish an event to a channel in the Hivemind event log", {
|
|
28
29
|
channel: z.string().min(1).max(100).describe("Channel name (e.g. 'backend', 'qa', 'deploy')"),
|
|
29
30
|
event_type: z.string().min(1).max(100).describe("Event type (e.g. 'task.completed', 'decision.made')"),
|
|
30
31
|
data: z.string().describe("JSON string of event data payload"),
|
|
31
32
|
confidence: z.number().min(0).max(1).optional().describe("Confidence score 0-1"),
|
|
32
|
-
|
|
33
|
+
team: z.string().optional().describe("Team name to target (required in cloud mode). Use hivemind_teams to list available teams."),
|
|
34
|
+
}, async (params) => handlePublish(db, config, params, embeddingProvider, createTeamDb));
|
|
33
35
|
}
|
|
34
36
|
//# 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,MAMC,EACD,iBAAoC,EACpC,YAA2C;IAE3C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,IAAI,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9E,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,YAA2C;IAE3C,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,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2FAA2F,CAAC;KAClI,EACD,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,YAAY,CAAC,CACrF,CAAC;AACJ,CAAC"}
|
package/dist/tools/query.d.ts
CHANGED
|
@@ -9,11 +9,12 @@ export declare function handleQuery(db: HivemindDB, config: ServerConfig, params
|
|
|
9
9
|
until?: string;
|
|
10
10
|
source_tool?: string;
|
|
11
11
|
limit?: number;
|
|
12
|
-
|
|
12
|
+
team?: string;
|
|
13
|
+
}, embeddingProvider: EmbeddingProvider, createTeamDb?: (team: string) => HivemindDB): Promise<{
|
|
13
14
|
content: {
|
|
14
15
|
type: "text";
|
|
15
16
|
text: string;
|
|
16
17
|
}[];
|
|
17
18
|
}>;
|
|
18
|
-
export declare function registerQueryTool(server: McpServer, db: HivemindDB, config: ServerConfig, embeddingProvider: EmbeddingProvider): void;
|
|
19
|
+
export declare function registerQueryTool(server: McpServer, db: HivemindDB, config: ServerConfig, embeddingProvider: EmbeddingProvider, createTeamDb?: (team: string) => HivemindDB): void;
|
|
19
20
|
//# 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;
|
|
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,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU;;;;;GA0B5C;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EACjB,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,YAAY,EACpB,iBAAiB,EAAE,iBAAiB,EACpC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,QAiB5C"}
|
package/dist/tools/query.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { formatEvents } from "../format.js";
|
|
3
|
-
export async function handleQuery(db, config, params, embeddingProvider) {
|
|
3
|
+
export async function handleQuery(db, config, params, embeddingProvider, createTeamDb) {
|
|
4
|
+
const targetDb = params.team && createTeamDb ? createTeamDb(params.team) : db;
|
|
4
5
|
let embedding;
|
|
5
6
|
if (params.query) {
|
|
6
7
|
const result = await embeddingProvider.generateEmbedding(params.query);
|
|
7
8
|
if (result)
|
|
8
9
|
embedding = result;
|
|
9
10
|
}
|
|
10
|
-
const result = await
|
|
11
|
+
const result = await targetDb.queryEvents({
|
|
11
12
|
project_id: config.projectId,
|
|
12
13
|
channel: params.channel,
|
|
13
14
|
event_type: params.event_type,
|
|
@@ -23,7 +24,7 @@ export async function handleQuery(db, config, params, embeddingProvider) {
|
|
|
23
24
|
content: [{ type: "text", text }],
|
|
24
25
|
};
|
|
25
26
|
}
|
|
26
|
-
export function registerQueryTool(server, db, config, embeddingProvider) {
|
|
27
|
+
export function registerQueryTool(server, db, config, embeddingProvider, createTeamDb) {
|
|
27
28
|
server.tool("hivemind_query", "Search and filter events in the Hivemind event log", {
|
|
28
29
|
query: z.string().optional().describe("Semantic search text"),
|
|
29
30
|
channel: z.string().optional().describe("Filter by channel"),
|
|
@@ -32,6 +33,7 @@ export function registerQueryTool(server, db, config, embeddingProvider) {
|
|
|
32
33
|
until: z.string().optional().describe("ISO 8601 datetime upper bound"),
|
|
33
34
|
source_tool: z.string().optional().describe("Filter by source tool"),
|
|
34
35
|
limit: z.number().int().min(1).max(100).optional().describe("Max results (default 20)"),
|
|
35
|
-
|
|
36
|
+
team: z.string().optional().describe("Team name to target (required in cloud mode). Use hivemind_teams to list available teams."),
|
|
37
|
+
}, async (params) => handleQuery(db, config, params, embeddingProvider, createTeamDb));
|
|
36
38
|
}
|
|
37
39
|
//# 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,11 +4,12 @@ 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
|
-
|
|
7
|
+
team?: string;
|
|
8
|
+
}, createTeamDb?: (team: string) => HivemindDB): Promise<{
|
|
8
9
|
content: {
|
|
9
10
|
type: "text";
|
|
10
11
|
text: string;
|
|
11
12
|
}[];
|
|
12
13
|
}>;
|
|
13
|
-
export declare function registerStatusTool(server: McpServer, db: HivemindDB, config: ServerConfig): void;
|
|
14
|
+
export declare function registerStatusTool(server: McpServer, db: HivemindDB, config: ServerConfig, createTeamDb?: (team: string) => HivemindDB): void;
|
|
14
15
|
//# 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,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,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAC3C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU;;;;;GAS5C;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,SAAS,EACjB,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,YAAY,EACpB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,QAW5C"}
|
package/dist/tools/status.js
CHANGED
|
@@ -33,16 +33,18 @@ 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
|
|
36
|
+
export async function handleStatus(db, config, params, createTeamDb) {
|
|
37
|
+
const targetDb = params.team && createTeamDb ? createTeamDb(params.team) : db;
|
|
38
|
+
const status = await targetDb.getActiveStatus(config.projectId, params.channel);
|
|
38
39
|
const text = formatStatus(status);
|
|
39
40
|
return {
|
|
40
41
|
content: [{ type: "text", text }],
|
|
41
42
|
};
|
|
42
43
|
}
|
|
43
|
-
export function registerStatusTool(server, db, config) {
|
|
44
|
+
export function registerStatusTool(server, db, config, createTeamDb) {
|
|
44
45
|
server.tool("hivemind_status", "Get aggregated project status: active tasks, completions, blockers, and activity", {
|
|
45
46
|
channel: z.string().optional().describe("Filter by channel"),
|
|
46
|
-
|
|
47
|
+
team: z.string().optional().describe("Team name to target (required in cloud mode). Use hivemind_teams to list available teams."),
|
|
48
|
+
}, async (params) => handleStatus(db, config, params, createTeamDb));
|
|
47
49
|
}
|
|
48
50
|
//# 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,11 +5,12 @@ export declare function handleSubscribe(db: HivemindDB, config: ServerConfig, pa
|
|
|
5
5
|
channel?: string;
|
|
6
6
|
event_type?: string;
|
|
7
7
|
since?: string;
|
|
8
|
-
|
|
8
|
+
team?: string;
|
|
9
|
+
}, createTeamDb?: (team: string) => HivemindDB): Promise<{
|
|
9
10
|
content: {
|
|
10
11
|
type: "text";
|
|
11
12
|
text: string;
|
|
12
13
|
}[];
|
|
13
14
|
}>;
|
|
14
|
-
export declare function registerSubscribeTool(server: McpServer, db: HivemindDB, config: ServerConfig): void;
|
|
15
|
+
export declare function registerSubscribeTool(server: McpServer, db: HivemindDB, config: ServerConfig, createTeamDb?: (team: string) => HivemindDB): void;
|
|
15
16
|
//# 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;
|
|
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,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU;;;;;GAkC5C;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,YAAY,EACpB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,QAa5C"}
|
package/dist/tools/subscribe.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
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) {
|
|
4
|
+
export async function handleSubscribe(db, config, params, createTeamDb) {
|
|
5
|
+
const targetDb = params.team && createTeamDb ? createTeamDb(params.team) : db;
|
|
5
6
|
const defaultSince = new Date(Date.now() - 60 * 60 * 1000).toISOString();
|
|
6
7
|
const since = params.since ?? defaultSince;
|
|
7
8
|
const hasWildcard = params.event_type?.includes("*");
|
|
8
|
-
const result = await
|
|
9
|
+
const result = await targetDb.queryEvents({
|
|
9
10
|
project_id: config.projectId,
|
|
10
11
|
channel: params.channel,
|
|
11
12
|
event_type: hasWildcard ? undefined : params.event_type,
|
|
@@ -29,11 +30,12 @@ export async function handleSubscribe(db, config, params) {
|
|
|
29
30
|
content: [{ type: "text", text }],
|
|
30
31
|
};
|
|
31
32
|
}
|
|
32
|
-
export function registerSubscribeTool(server, db, config) {
|
|
33
|
+
export function registerSubscribeTool(server, db, config, createTeamDb) {
|
|
33
34
|
server.tool("hivemind_subscribe", "Get recent events matching a subscription filter (pull model)", {
|
|
34
35
|
channel: z.string().optional().describe("Channel to subscribe to"),
|
|
35
36
|
event_type: z.string().optional().describe("Event type pattern (supports wildcards like 'task.*')"),
|
|
36
37
|
since: z.string().optional().describe("ISO 8601 datetime (default: 1 hour ago)"),
|
|
37
|
-
|
|
38
|
+
team: z.string().optional().describe("Team name to target (required in cloud mode). Use hivemind_teams to list available teams."),
|
|
39
|
+
}, async (params) => handleSubscribe(db, config, params, createTeamDb));
|
|
38
40
|
}
|
|
39
41
|
//# 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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"}
|
|
@@ -0,0 +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;AAoBjD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,YAAY,QAyBrB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fetches the user's accessible teams by calling GET /v1/dashboard/me/teams.
|
|
3
|
+
*/
|
|
4
|
+
async function fetchTeams(config) {
|
|
5
|
+
const res = await fetch(`${config.apiUrl}/v1/dashboard/me/teams`, {
|
|
6
|
+
headers: {
|
|
7
|
+
Authorization: `Bearer ${config.apiKey}`,
|
|
8
|
+
},
|
|
9
|
+
});
|
|
10
|
+
if (!res.ok) {
|
|
11
|
+
throw new Error(`Failed to fetch teams: ${res.status}`);
|
|
12
|
+
}
|
|
13
|
+
const data = await res.json();
|
|
14
|
+
return data.teams;
|
|
15
|
+
}
|
|
16
|
+
export function registerTeamsTool(server, config) {
|
|
17
|
+
server.tool("hivemind_teams", "List teams you have access to in the current organization", {}, async () => {
|
|
18
|
+
const teams = await fetchTeams(config);
|
|
19
|
+
if (teams.length === 0) {
|
|
20
|
+
return {
|
|
21
|
+
content: [{ type: "text", text: "No teams found. You may need to run `hivemind login` first." }],
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
const lines = teams.map((t) => ` - ${t.name} (${t.role})`);
|
|
25
|
+
const text = `Available Teams (${teams.length}):\n${lines.join("\n")}`;
|
|
26
|
+
return {
|
|
27
|
+
content: [{ type: "text", text }],
|
|
28
|
+
};
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=teams.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teams.js","sourceRoot":"","sources":["../../src/tools/teams.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,KAAK,UAAU,UAAU,CAAC,MAAoB;IAC5C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,wBAAwB,EAAE;QAChE,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,MAAM,CAAC,MAAM,EAAE;SACzC;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAA0E,CAAC;IACtG,OAAO,IAAI,CAAC,KAAK,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,MAAiB,EACjB,MAAoB;IAEpB,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,2DAA2D,EAC3D,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC;QAEvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,6DAA6D,EAAE,CAAC;aAC1G,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CACrB,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,GAAG,CACnC,CAAC;QACF,MAAM,IAAI,GAAG,oBAAoB,KAAK,CAAC,MAAM,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAEvE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC;SAC3C,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|