@studiomopoke/crosschat 1.8.2 → 2.0.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/README.md +48 -118
- package/bin/cli.cjs +37 -57
- package/crosschat.md +73 -104
- package/dashboard/dist/assets/index-BY-IQhma.js +49 -0
- package/dashboard/dist/assets/index-CI8v9PKQ.css +1 -0
- package/dashboard/dist/index.html +2 -2
- package/dist/hub/_hub-section-1-infra.d.ts +8 -0
- package/dist/hub/_hub-section-1-infra.d.ts.map +1 -0
- package/dist/hub/_hub-section-1-infra.js +152 -0
- package/dist/hub/_hub-section-1-infra.js.map +1 -0
- package/dist/hub/_hub-section-2-handlers.d.ts +2 -0
- package/dist/hub/_hub-section-2-handlers.d.ts.map +1 -0
- package/dist/hub/_hub-section-2-handlers.js +514 -0
- package/dist/hub/_hub-section-2-handlers.js.map +1 -0
- package/dist/hub/_hub-section-3-rest.d.ts +2 -0
- package/dist/hub/_hub-section-3-rest.d.ts.map +1 -0
- package/dist/hub/_hub-section-3-rest.js +418 -0
- package/dist/hub/_hub-section-3-rest.js.map +1 -0
- package/dist/hub/_hub-section-4-ws.d.ts +2 -0
- package/dist/hub/_hub-section-4-ws.d.ts.map +1 -0
- package/dist/hub/_hub-section-4-ws.js +367 -0
- package/dist/hub/_hub-section-4-ws.js.map +1 -0
- package/dist/hub/agent-connection.d.ts +38 -62
- package/dist/hub/agent-connection.d.ts.map +1 -1
- package/dist/hub/agent-connection.js +146 -229
- package/dist/hub/agent-connection.js.map +1 -1
- package/dist/hub/hub-server.d.ts +1 -1
- package/dist/hub/hub-server.d.ts.map +1 -1
- package/dist/hub/hub-server.js +389 -685
- package/dist/hub/hub-server.js.map +1 -1
- package/dist/hub/message-manager.d.ts +158 -0
- package/dist/hub/message-manager.d.ts.map +1 -0
- package/dist/hub/message-manager.js +443 -0
- package/dist/hub/message-manager.js.map +1 -0
- package/dist/hub/protocol.d.ts +73 -131
- package/dist/hub/protocol.d.ts.map +1 -1
- package/dist/hub/protocol.js +3 -0
- package/dist/hub/protocol.js.map +1 -1
- package/dist/lifecycle.d.ts.map +1 -1
- package/dist/lifecycle.js +15 -89
- package/dist/lifecycle.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +22 -33
- package/dist/server.js.map +1 -1
- package/dist/tools/add-badge.d.ts +4 -0
- package/dist/tools/add-badge.d.ts.map +1 -0
- package/dist/tools/add-badge.js +29 -0
- package/dist/tools/add-badge.js.map +1 -0
- package/dist/tools/claim-task.js +5 -5
- package/dist/tools/claim-task.js.map +1 -1
- package/dist/tools/clear-session.d.ts +1 -2
- package/dist/tools/clear-session.d.ts.map +1 -1
- package/dist/tools/clear-session.js +7 -22
- package/dist/tools/clear-session.js.map +1 -1
- package/dist/tools/flag-as-task.d.ts +4 -0
- package/dist/tools/flag-as-task.d.ts.map +1 -0
- package/dist/tools/flag-as-task.js +31 -0
- package/dist/tools/flag-as-task.js.map +1 -0
- package/dist/tools/get-messages.d.ts +2 -1
- package/dist/tools/get-messages.d.ts.map +1 -1
- package/dist/tools/get-messages.js +19 -6
- package/dist/tools/get-messages.js.map +1 -1
- package/dist/tools/list-peers.d.ts.map +1 -1
- package/dist/tools/list-peers.js +1 -4
- package/dist/tools/list-peers.js.map +1 -1
- package/dist/tools/resolve-task.d.ts +4 -0
- package/dist/tools/resolve-task.d.ts.map +1 -0
- package/dist/tools/resolve-task.js +29 -0
- package/dist/tools/resolve-task.js.map +1 -0
- package/dist/tools/send-message.d.ts.map +1 -1
- package/dist/tools/send-message.js +6 -5
- package/dist/tools/send-message.js.map +1 -1
- package/dist/tools/set-status.js +3 -3
- package/dist/tools/set-status.js.map +1 -1
- package/dist/tools/wait-for-messages.js +1 -1
- package/dist/tools/wait-for-messages.js.map +1 -1
- package/dist/types.d.ts +4 -3
- package/dist/types.d.ts.map +1 -1
- package/hooks/permission-hook.sh +19 -18
- package/package.json +1 -1
- package/dashboard/dist/assets/index-BR-2rRm6.css +0 -1
- package/dashboard/dist/assets/index-Ci2ihChN.js +0 -49
package/dist/server.js
CHANGED
|
@@ -7,43 +7,40 @@ import { registerGetMessages } from './tools/get-messages.js';
|
|
|
7
7
|
import { registerWaitForMessages } from './tools/wait-for-messages.js';
|
|
8
8
|
import { registerListPeers } from './tools/list-peers.js';
|
|
9
9
|
import { registerSetStatus } from './tools/set-status.js';
|
|
10
|
-
import { registerJoinRoom } from './tools/join-room.js';
|
|
11
|
-
import { registerCreateRoom } from './tools/create-room.js';
|
|
12
|
-
import { registerDelegateTask } from './tools/delegate-task.js';
|
|
13
10
|
import { registerClaimTask } from './tools/claim-task.js';
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import { registerListTasks } from './tools/list-tasks.js';
|
|
18
|
-
import { registerGetTaskStatus } from './tools/get-task-status.js';
|
|
11
|
+
import { registerFlagAsTask } from './tools/flag-as-task.js';
|
|
12
|
+
import { registerResolveTask } from './tools/resolve-task.js';
|
|
13
|
+
import { registerAddBadge } from './tools/add-badge.js';
|
|
19
14
|
import { registerClearSession } from './tools/clear-session.js';
|
|
20
|
-
import { registerGetRoomDigest } from './tools/get-room-digest.js';
|
|
21
|
-
import { registerRequestDigest } from './tools/request-digest.js';
|
|
22
15
|
import { registerPrompts } from './prompts.js';
|
|
23
16
|
const SERVER_INSTRUCTIONS = `\
|
|
24
17
|
CrossChat connects you to other Claude Code instances on this machine through a central hub server. \
|
|
25
|
-
All communication happens through
|
|
18
|
+
All communication happens through a single channel. Messages are persistent and support threads.
|
|
26
19
|
|
|
27
20
|
Your identity: **{peerName}** (peer ID: {peerId}). You are automatically registered and discoverable.
|
|
28
21
|
|
|
29
22
|
## @mentions
|
|
30
23
|
\`@agent-name\` delivers only to that agent. \`@here\` broadcasts to everyone. No mention = broadcast to all.
|
|
31
24
|
|
|
32
|
-
##
|
|
33
|
-
|
|
25
|
+
## Messages & Threads
|
|
26
|
+
Messages are the atomic unit. Reply to any message to start a thread. Threads persist across sessions.
|
|
27
|
+
|
|
28
|
+
## Badges
|
|
29
|
+
Messages carry badges — extensible metadata rendered as visual badges in the dashboard. Badge types include: task status, importance, question, git-commit, project, permission.
|
|
30
|
+
|
|
31
|
+
## Tasks
|
|
32
|
+
Any message can be flagged as a task: **send message -> flag_as_task -> claim_task -> resolve_task**
|
|
34
33
|
|
|
35
34
|
## Dashboard
|
|
36
35
|
{dashboardInfo}
|
|
37
36
|
|
|
38
37
|
## Key rules
|
|
39
38
|
- Use \`list_peers\` to discover peer IDs — never guess UUIDs.
|
|
40
|
-
-
|
|
41
|
-
- Check a peer's status before delegating — don't send work to busy peers.
|
|
39
|
+
- Check a peer's status before assigning work — don't send work to busy peers.
|
|
42
40
|
- Set yourself to "busy" when working on a task, "available" when done.
|
|
43
|
-
-
|
|
44
|
-
- Rooms are capped at 200 messages. Old messages are digested automatically via the task system.
|
|
45
|
-
- Use \`get_room_digest\` when joining a room to catch up on prior discussion.
|
|
41
|
+
- Messages persist across hub restarts. Threads persist indefinitely.
|
|
46
42
|
- Tag messages with \`importance\`: "important", "comment" (default), or "chitchat".
|
|
43
|
+
- Use \`add_badge\` to annotate messages with metadata (importance, question, etc.).
|
|
47
44
|
|
|
48
45
|
For full usage instructions, the user should run the /crosschat command.`;
|
|
49
46
|
export function createMcpServer(peerId, peerName, messageStore, agentConnection, dashboardInfo) {
|
|
@@ -65,27 +62,19 @@ export function createMcpServer(peerId, peerName, messageStore, agentConnection,
|
|
|
65
62
|
}, { instructions });
|
|
66
63
|
// --- Messaging tools ---
|
|
67
64
|
registerSendMessage(server, agentConnection);
|
|
68
|
-
registerGetMessages(server, messageStore);
|
|
65
|
+
registerGetMessages(server, messageStore, agentConnection);
|
|
69
66
|
registerWaitForMessages(server, messageStore);
|
|
70
67
|
// --- Peer tools ---
|
|
71
68
|
registerListPeers(server, agentConnection);
|
|
72
69
|
registerSetStatus(server, agentConnection);
|
|
73
|
-
// --- Room tools ---
|
|
74
|
-
registerJoinRoom(server, agentConnection);
|
|
75
|
-
registerCreateRoom(server, agentConnection);
|
|
76
|
-
// --- Session tools ---
|
|
77
|
-
registerClearSession(server, agentConnection, messageStore);
|
|
78
|
-
// --- Digest tools ---
|
|
79
|
-
registerGetRoomDigest(server, agentConnection);
|
|
80
|
-
registerRequestDigest(server, agentConnection);
|
|
81
70
|
// --- Task tools ---
|
|
82
|
-
|
|
71
|
+
registerFlagAsTask(server, agentConnection);
|
|
83
72
|
registerClaimTask(server, agentConnection);
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
73
|
+
registerResolveTask(server, agentConnection);
|
|
74
|
+
// --- Badge tools ---
|
|
75
|
+
registerAddBadge(server, agentConnection);
|
|
76
|
+
// --- Session tools ---
|
|
77
|
+
registerClearSession(server, agentConnection);
|
|
89
78
|
// --- Prompts ---
|
|
90
79
|
registerPrompts(server, peerId, peerName);
|
|
91
80
|
return server;
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAG9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAG9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yEA6B6C,CAAC;AAE1E,MAAM,UAAU,eAAe,CAC7B,MAAc,EACd,QAAgB,EAChB,YAA0B,EAC1B,eAAgC,EAChC,aAAmD;IAEnD,IAAI,gBAAwB,CAAC;IAC7B,IAAI,MAAM,IAAI,aAAa,EAAE,CAAC;QAC5B,gBAAgB,GAAG,+BAA+B,aAAa,CAAC,IAAI,EAAE,CAAC;IACzE,CAAC;SAAM,CAAC;QACN,gBAAgB,GAAG,oBAAoB,aAAa,CAAC,KAAK,EAAE,CAAC;IAC/D,CAAC;IAED,MAAM,YAAY,GAAG,mBAAmB;SACrC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC;SAC/B,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC;SAC3B,OAAO,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;IAEhD,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B;QACE,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,WAAW,EAAE,uFAAuF;KACrG,EACD,EAAE,YAAY,EAAE,CACjB,CAAC;IAEF,0BAA0B;IAC1B,mBAAmB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7C,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;IAC3D,uBAAuB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAE9C,qBAAqB;IACrB,iBAAiB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC3C,iBAAiB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAE3C,qBAAqB;IACrB,kBAAkB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC5C,iBAAiB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC3C,mBAAmB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAE7C,sBAAsB;IACtB,gBAAgB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAE1C,wBAAwB;IACxB,oBAAoB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAE9C,kBAAkB;IAClB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE1C,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import type { AgentConnection } from '../hub/agent-connection.js';
|
|
3
|
+
export declare function registerAddBadge(server: McpServer, agentConnection: AgentConnection): void;
|
|
4
|
+
//# sourceMappingURL=add-badge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-badge.d.ts","sourceRoot":"","sources":["../../src/tools/add-badge.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,eAAe,GAAG,IAAI,CA+B1F"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export function registerAddBadge(server, agentConnection) {
|
|
3
|
+
server.tool('add_badge', 'Add a metadata badge to any message. Badges provide at-a-glance context — importance, question, git commit, project, etc. Rendered as visual badges in the dashboard.', {
|
|
4
|
+
messageId: z.string().describe('The messageId to add a badge to'),
|
|
5
|
+
badgeType: z.string().describe('Badge type (e.g., "importance", "question", "git-commit", "project")'),
|
|
6
|
+
badgeValue: z.string().describe('Badge value (e.g., "high", "true", "abc1234", "crosschat")'),
|
|
7
|
+
label: z.string().optional().describe('Optional human-readable display label'),
|
|
8
|
+
}, async ({ messageId, badgeType, badgeValue, label }) => {
|
|
9
|
+
try {
|
|
10
|
+
const result = await agentConnection.addBadge(messageId, badgeType, badgeValue, label);
|
|
11
|
+
return {
|
|
12
|
+
content: [
|
|
13
|
+
{
|
|
14
|
+
type: 'text',
|
|
15
|
+
text: JSON.stringify({ added: true, messageId: result.messageId, badge: result.badge }),
|
|
16
|
+
},
|
|
17
|
+
],
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
catch (err) {
|
|
21
|
+
const message = err instanceof Error ? err.message : 'Unknown error';
|
|
22
|
+
return {
|
|
23
|
+
content: [{ type: 'text', text: JSON.stringify({ error: `Failed to add badge: ${message}` }) }],
|
|
24
|
+
isError: true,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=add-badge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-badge.js","sourceRoot":"","sources":["../../src/tools/add-badge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,UAAU,gBAAgB,CAAC,MAAiB,EAAE,eAAgC;IAClF,MAAM,CAAC,IAAI,CACT,WAAW,EACX,uKAAuK,EACvK;QACE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QACjE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sEAAsE,CAAC;QACtG,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;QAC7F,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;KAC/E,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE;QACpD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;YAEvF,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;qBACxF;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACrE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,wBAAwB,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;gBACxG,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/dist/tools/claim-task.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
export function registerClaimTask(server, agentConnection) {
|
|
3
|
-
server.tool('claim_task', 'Claim
|
|
4
|
-
|
|
5
|
-
}, async ({
|
|
3
|
+
server.tool('claim_task', 'Claim a task that has been flagged on a message. First-come-first-served — the hub rejects duplicate claims.', {
|
|
4
|
+
messageId: z.string().describe('The messageId of the flagged task message to claim'),
|
|
5
|
+
}, async ({ messageId }) => {
|
|
6
6
|
try {
|
|
7
|
-
await agentConnection.claimTask(
|
|
7
|
+
const result = await agentConnection.claimTask(messageId);
|
|
8
8
|
return {
|
|
9
9
|
content: [
|
|
10
10
|
{
|
|
11
11
|
type: 'text',
|
|
12
|
-
text: JSON.stringify({ claimed: true,
|
|
12
|
+
text: JSON.stringify({ claimed: true, messageId: result.messageId }),
|
|
13
13
|
},
|
|
14
14
|
],
|
|
15
15
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claim-task.js","sourceRoot":"","sources":["../../src/tools/claim-task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,eAAgC;IACnF,MAAM,CAAC,IAAI,CACT,YAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"claim-task.js","sourceRoot":"","sources":["../../src/tools/claim-task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,eAAgC;IACnF,MAAM,CAAC,IAAI,CACT,YAAY,EACZ,8GAA8G,EAC9G;QACE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;KACrF,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;QACtB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAE1D,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;qBACrE;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACrE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,yBAAyB,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;gBACzG,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
2
|
import type { AgentConnection } from '../hub/agent-connection.js';
|
|
3
|
-
|
|
4
|
-
export declare function registerClearSession(server: McpServer, agentConnection: AgentConnection, messageStore: MessageStore): void;
|
|
3
|
+
export declare function registerClearSession(server: McpServer, agentConnection: AgentConnection): void;
|
|
5
4
|
//# sourceMappingURL=clear-session.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clear-session.d.ts","sourceRoot":"","sources":["../../src/tools/clear-session.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"clear-session.d.ts","sourceRoot":"","sources":["../../src/tools/clear-session.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,eAAe,GAAG,IAAI,CA4B9F"}
|
|
@@ -1,28 +1,15 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
export function registerClearSession(server, agentConnection
|
|
3
|
-
server.tool('clear_session', 'Clear messages from
|
|
4
|
-
messages: z
|
|
5
|
-
|
|
6
|
-
.optional()
|
|
7
|
-
.describe('Clear messages from the current room (default: true)'),
|
|
8
|
-
tasks: z
|
|
9
|
-
.boolean()
|
|
10
|
-
.optional()
|
|
11
|
-
.describe('Archive completed/failed tasks in the current room (default: false)'),
|
|
12
|
-
}, async ({ messages, tasks }) => {
|
|
2
|
+
export function registerClearSession(server, agentConnection) {
|
|
3
|
+
server.tool('clear_session', 'Clear messages from the channel.', {
|
|
4
|
+
messages: z.boolean().optional().describe('Clear messages from channel (default: true)'),
|
|
5
|
+
}, async ({ messages }) => {
|
|
13
6
|
try {
|
|
14
|
-
const result = await agentConnection.clearSession({ messages
|
|
15
|
-
// Clear local message store as well
|
|
16
|
-
messageStore.clear();
|
|
7
|
+
const result = await agentConnection.clearSession({ messages });
|
|
17
8
|
return {
|
|
18
9
|
content: [
|
|
19
10
|
{
|
|
20
11
|
type: 'text',
|
|
21
|
-
text: JSON.stringify(
|
|
22
|
-
cleared: true,
|
|
23
|
-
messagesCleared: result.messagesCleared,
|
|
24
|
-
tasksArchived: result.tasksArchived,
|
|
25
|
-
}),
|
|
12
|
+
text: JSON.stringify(result),
|
|
26
13
|
},
|
|
27
14
|
],
|
|
28
15
|
};
|
|
@@ -30,9 +17,7 @@ export function registerClearSession(server, agentConnection, messageStore) {
|
|
|
30
17
|
catch (err) {
|
|
31
18
|
const message = err instanceof Error ? err.message : 'Unknown error';
|
|
32
19
|
return {
|
|
33
|
-
content: [
|
|
34
|
-
{ type: 'text', text: JSON.stringify({ error: `Failed to clear session: ${message}` }) },
|
|
35
|
-
],
|
|
20
|
+
content: [{ type: 'text', text: JSON.stringify({ error: `Failed to clear session: ${message}` }) }],
|
|
36
21
|
isError: true,
|
|
37
22
|
};
|
|
38
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clear-session.js","sourceRoot":"","sources":["../../src/tools/clear-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"clear-session.js","sourceRoot":"","sources":["../../src/tools/clear-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,eAAgC;IACtF,MAAM,CAAC,IAAI,CACT,eAAe,EACf,kCAAkC,EAClC;QACE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;KACzF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QACrB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;YAEhE,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;qBAC7B;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACrE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,4BAA4B,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;gBAC5G,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import type { AgentConnection } from '../hub/agent-connection.js';
|
|
3
|
+
export declare function registerFlagAsTask(server: McpServer, agentConnection: AgentConnection): void;
|
|
4
|
+
//# sourceMappingURL=flag-as-task.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flag-as-task.d.ts","sourceRoot":"","sources":["../../src/tools/flag-as-task.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,eAAe,GAAG,IAAI,CAiC5F"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export function registerFlagAsTask(server, agentConnection) {
|
|
3
|
+
server.tool('flag_as_task', 'Promote any message to a tracked task. Adds a task badge to the message and enters the delegation cycle. Other agents can then claim it.', {
|
|
4
|
+
messageId: z.string().describe('The messageId of the message to flag as a task'),
|
|
5
|
+
filter: z.object({
|
|
6
|
+
agentId: z.string().optional().describe('Target a specific agent by peer ID'),
|
|
7
|
+
workingDirReq: z.string().optional().describe('Require agents working in this directory'),
|
|
8
|
+
gitProject: z.string().optional().describe('Require agents working on this git project'),
|
|
9
|
+
}).optional().describe('Optional filter for which agents can claim this task'),
|
|
10
|
+
}, async ({ messageId, filter }) => {
|
|
11
|
+
try {
|
|
12
|
+
const result = await agentConnection.flagTask(messageId, filter);
|
|
13
|
+
return {
|
|
14
|
+
content: [
|
|
15
|
+
{
|
|
16
|
+
type: 'text',
|
|
17
|
+
text: JSON.stringify({ flagged: true, messageId: result.messageId, badges: result.badges }),
|
|
18
|
+
},
|
|
19
|
+
],
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
catch (err) {
|
|
23
|
+
const message = err instanceof Error ? err.message : 'Unknown error';
|
|
24
|
+
return {
|
|
25
|
+
content: [{ type: 'text', text: JSON.stringify({ error: `Failed to flag as task: ${message}` }) }],
|
|
26
|
+
isError: true,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=flag-as-task.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flag-as-task.js","sourceRoot":"","sources":["../../src/tools/flag-as-task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,eAAgC;IACpF,MAAM,CAAC,IAAI,CACT,cAAc,EACd,0IAA0I,EAC1I;QACE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;QAChF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;YAC7E,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;YACzF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;SACzF,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;KAC/E,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAEjE,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;qBAC5F;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACrE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,2BAA2B,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;gBAC3G,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
2
|
import type { MessageStore } from '../stores/message-store.js';
|
|
3
|
-
|
|
3
|
+
import type { AgentConnection } from '../hub/agent-connection.js';
|
|
4
|
+
export declare function registerGetMessages(server: McpServer, messageStore: MessageStore, agentConnection: AgentConnection): void;
|
|
4
5
|
//# sourceMappingURL=get-messages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-messages.d.ts","sourceRoot":"","sources":["../../src/tools/get-messages.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"get-messages.d.ts","sourceRoot":"","sources":["../../src/tools/get-messages.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,GAAG,IAAI,CAoDzH"}
|
|
@@ -1,16 +1,29 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
export function registerGetMessages(server, messageStore) {
|
|
3
|
-
server.tool('get_messages', 'Get messages from
|
|
2
|
+
export function registerGetMessages(server, messageStore, agentConnection) {
|
|
3
|
+
server.tool('get_messages', 'Get messages from the channel or a thread. Returns messages with badges for at-a-glance context. Use threadId to read replies in a thread.', {
|
|
4
|
+
threadId: z.string().optional().describe('If set, fetch messages from this thread (the threadId is the messageId of the root message). Omit to get channel messages.'),
|
|
4
5
|
limit: z.number().optional().describe('Maximum number of messages to return (default: all)'),
|
|
5
|
-
unreadOnly: z.boolean().optional().describe('If true, only return unread messages'),
|
|
6
|
-
markAsRead: z.boolean().optional().describe('Whether to mark returned messages as read (default: true
|
|
7
|
-
}, async ({ limit, unreadOnly, markAsRead }) => {
|
|
6
|
+
unreadOnly: z.boolean().optional().describe('If true, only return unread messages (channel only)'),
|
|
7
|
+
markAsRead: z.boolean().optional().describe('Whether to mark returned messages as read (default: true, channel only)'),
|
|
8
|
+
}, async ({ threadId, limit, unreadOnly, markAsRead }) => {
|
|
8
9
|
try {
|
|
10
|
+
if (threadId) {
|
|
11
|
+
// Fetch thread messages from hub via AgentConnection
|
|
12
|
+
const messages = await agentConnection.getMessages({ threadId, limit });
|
|
13
|
+
return {
|
|
14
|
+
content: [
|
|
15
|
+
{
|
|
16
|
+
type: 'text',
|
|
17
|
+
text: JSON.stringify({ messages, count: messages.length, threadId }, null, 2),
|
|
18
|
+
},
|
|
19
|
+
],
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
// Channel messages from local MessageStore
|
|
9
23
|
const messages = messageStore.getAll({
|
|
10
24
|
limit,
|
|
11
25
|
unreadOnly,
|
|
12
26
|
});
|
|
13
|
-
// Mark as read by default
|
|
14
27
|
if (markAsRead !== false && messages.length > 0) {
|
|
15
28
|
messageStore.markAsRead(messages.map((m) => m.messageId));
|
|
16
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-messages.js","sourceRoot":"","sources":["../../src/tools/get-messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"get-messages.js","sourceRoot":"","sources":["../../src/tools/get-messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,YAA0B,EAAE,eAAgC;IACjH,MAAM,CAAC,IAAI,CACT,cAAc,EACd,4IAA4I,EAC5I;QACE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4HAA4H,CAAC;QACtK,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QAC5F,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QAClG,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yEAAyE,CAAC;KACvH,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE;QACpD,IAAI,CAAC;YACH,IAAI,QAAQ,EAAE,CAAC;gBACb,qDAAqD;gBACrD,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;gBACxE,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;yBAC9E;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,2CAA2C;YAC3C,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC;gBACnC,KAAK;gBACL,UAAU;aACX,CAAC,CAAC;YAEH,IAAI,UAAU,KAAK,KAAK,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YAC5D,CAAC;YAED,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;qBACpE;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACrE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,2BAA2B,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;gBAC3G,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-peers.d.ts","sourceRoot":"","sources":["../../src/tools/list-peers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,eAAe,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"list-peers.d.ts","sourceRoot":"","sources":["../../src/tools/list-peers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,eAAe,GAAG,IAAI,CA0B3F"}
|
package/dist/tools/list-peers.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
1
|
export function registerListPeers(server, agentConnection) {
|
|
3
|
-
server.tool('list_peers', 'List all connected CrossChat instances. Shows name, status, working directory,
|
|
4
|
-
includeMetadata: z.boolean().optional().describe('Kept for compatibility — metadata is always included now'),
|
|
5
|
-
}, async () => {
|
|
2
|
+
server.tool('list_peers', 'List all connected CrossChat instances. Shows name, status, and working directory.', {}, async () => {
|
|
6
3
|
try {
|
|
7
4
|
const peers = await agentConnection.listPeers();
|
|
8
5
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-peers.js","sourceRoot":"","sources":["../../src/tools/list-peers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"list-peers.js","sourceRoot":"","sources":["../../src/tools/list-peers.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,eAAgC;IACnF,MAAM,CAAC,IAAI,CACT,YAAY,EACZ,oFAAoF,EACpF,EAAE,EACF,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,SAAS,EAAE,CAAC;YAEhD,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;qBAC9D;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACrE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,yBAAyB,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;gBACzG,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import type { AgentConnection } from '../hub/agent-connection.js';
|
|
3
|
+
export declare function registerResolveTask(server: McpServer, agentConnection: AgentConnection): void;
|
|
4
|
+
//# sourceMappingURL=resolve-task.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-task.d.ts","sourceRoot":"","sources":["../../src/tools/resolve-task.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,eAAe,GAAG,IAAI,CA+B7F"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export function registerResolveTask(server, agentConnection) {
|
|
3
|
+
server.tool('resolve_task', 'Complete or fail a task. Only the claimant can resolve. Include a result documenting the work done.', {
|
|
4
|
+
messageId: z.string().describe('The messageId of the flagged task message to resolve'),
|
|
5
|
+
status: z.enum(['completed', 'failed']).describe('"completed" if done successfully, "failed" if not'),
|
|
6
|
+
result: z.string().describe('The result of the task as markdown'),
|
|
7
|
+
error: z.string().optional().describe('Error description if the task failed'),
|
|
8
|
+
}, async ({ messageId, status, result, error }) => {
|
|
9
|
+
try {
|
|
10
|
+
const res = await agentConnection.resolveTask(messageId, status, result, error);
|
|
11
|
+
return {
|
|
12
|
+
content: [
|
|
13
|
+
{
|
|
14
|
+
type: 'text',
|
|
15
|
+
text: JSON.stringify({ resolved: true, messageId: res.messageId, status: res.status }),
|
|
16
|
+
},
|
|
17
|
+
],
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
catch (err) {
|
|
21
|
+
const message = err instanceof Error ? err.message : 'Unknown error';
|
|
22
|
+
return {
|
|
23
|
+
content: [{ type: 'text', text: JSON.stringify({ error: `Failed to resolve task: ${message}` }) }],
|
|
24
|
+
isError: true,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=resolve-task.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-task.js","sourceRoot":"","sources":["../../src/tools/resolve-task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,eAAgC;IACrF,MAAM,CAAC,IAAI,CACT,cAAc,EACd,qGAAqG,EACrG;QACE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;QACtF,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,mDAAmD,CAAC;QACrG,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QACjE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;KAC9E,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;QAC7C,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YAEhF,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;qBACvF;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACrE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,2BAA2B,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;gBAC3G,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send-message.d.ts","sourceRoot":"","sources":["../../src/tools/send-message.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,eAAe,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"send-message.d.ts","sourceRoot":"","sources":["../../src/tools/send-message.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,eAAe,GAAG,IAAI,CA+B7F"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
export function registerSendMessage(server, agentConnection) {
|
|
3
|
-
server.tool('send_message', 'Send a message to
|
|
3
|
+
server.tool('send_message', 'Send a message to the channel or a thread. All agents in the channel will see it (or thread participants if threadId is set).', {
|
|
4
4
|
content: z.string().describe('The message text to send'),
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
threadId: z.string().optional().describe('If set, send as a reply in this thread (the threadId is the messageId of the root message)'),
|
|
6
|
+
metadata: z.record(z.unknown()).optional().describe('Optional structured metadata to attach'),
|
|
7
|
+
importance: z.enum(['important', 'comment', 'chitchat']).optional().describe('Message importance level'),
|
|
8
|
+
}, async ({ content, threadId, metadata, importance }) => {
|
|
8
9
|
try {
|
|
9
|
-
agentConnection.sendMessage(content, metadata, importance);
|
|
10
|
+
agentConnection.sendMessage(content, { threadId, metadata, importance });
|
|
10
11
|
return {
|
|
11
12
|
content: [
|
|
12
13
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send-message.js","sourceRoot":"","sources":["../../src/tools/send-message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,eAAgC;IACrF,MAAM,CAAC,IAAI,CACT,cAAc,EACd,
|
|
1
|
+
{"version":3,"file":"send-message.js","sourceRoot":"","sources":["../../src/tools/send-message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,eAAgC;IACrF,MAAM,CAAC,IAAI,CACT,cAAc,EACd,+HAA+H,EAC/H;QACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QACxD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4FAA4F,CAAC;QACtI,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;QAC7F,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KACzG,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;QACpD,IAAI,CAAC;YACH,eAAe,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;YAEzE,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;qBACrC;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACrE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,2BAA2B,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;gBAC3G,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/dist/tools/set-status.js
CHANGED
|
@@ -3,10 +3,10 @@ export function registerSetStatus(server, agentConnection) {
|
|
|
3
3
|
server.tool('set_status', 'Set your availability status so other peers can see if you\'re free or busy.', {
|
|
4
4
|
status: z.enum(['available', 'busy']).describe('"available" = ready for work, "busy" = currently working on something'),
|
|
5
5
|
detail: z.string().optional().describe('What you\'re doing (e.g., "Running tests for auth module"). Shown to other peers in list_peers.'),
|
|
6
|
-
|
|
7
|
-
}, async ({ status, detail,
|
|
6
|
+
taskMessageId: z.string().optional().describe('The messageId of the flagged task you\'re working on, if applicable'),
|
|
7
|
+
}, async ({ status, detail, taskMessageId }) => {
|
|
8
8
|
try {
|
|
9
|
-
agentConnection.setStatus(status, detail,
|
|
9
|
+
agentConnection.setStatus(status, detail, taskMessageId);
|
|
10
10
|
return {
|
|
11
11
|
content: [
|
|
12
12
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-status.js","sourceRoot":"","sources":["../../src/tools/set-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,eAAgC;IACnF,MAAM,CAAC,IAAI,CACT,YAAY,EACZ,8EAA8E,EAC9E;QACE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,uEAAuE,CAAC;QACvH,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iGAAiG,CAAC;QACzI,
|
|
1
|
+
{"version":3,"file":"set-status.js","sourceRoot":"","sources":["../../src/tools/set-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,eAAgC;IACnF,MAAM,CAAC,IAAI,CACT,YAAY,EACZ,8EAA8E,EAC9E;QACE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,uEAAuE,CAAC;QACvH,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iGAAiG,CAAC;QACzI,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;KACrH,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE;QAC1C,IAAI,CAAC;YACH,eAAe,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;YAEzD,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;qBACzC;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACrE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,yBAAyB,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;gBACzG,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { z } from 'zod';
|
|
|
2
2
|
const DEFAULT_TIMEOUT_MS = 30_000;
|
|
3
3
|
const MAX_TIMEOUT_MS = 600_000;
|
|
4
4
|
export function registerWaitForMessages(server, messageStore) {
|
|
5
|
-
server.tool('wait_for_messages', 'Wait for the next message
|
|
5
|
+
server.tool('wait_for_messages', 'Wait for the next message. Blocks until a message arrives in the channel or timeout.', {
|
|
6
6
|
timeoutMs: z.number().optional().describe('How long to wait in milliseconds (default: 30000, max: 600000). Returns a timeout result if no message arrives.'),
|
|
7
7
|
broadcastCooldownMs: z.number().optional().describe('Delay in ms before returning broadcast messages (not direct @mentions). Used to stagger responses across agents so earlier responders can be seen by later ones. Set this to a random value (0-500) seeded at init time.'),
|
|
8
8
|
}, async ({ timeoutMs, broadcastCooldownMs }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wait-for-messages.js","sourceRoot":"","sources":["../../src/tools/wait-for-messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAClC,MAAM,cAAc,GAAG,OAAO,CAAC;AAE/B,MAAM,UAAU,uBAAuB,CAAC,MAAiB,EAAE,YAA0B;IACnF,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,
|
|
1
|
+
{"version":3,"file":"wait-for-messages.js","sourceRoot":"","sources":["../../src/tools/wait-for-messages.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Badge } from './hub/message-manager.js';
|
|
1
2
|
export type MessageImportance = 'important' | 'comment' | 'chitchat';
|
|
2
3
|
export interface PeerMessage {
|
|
3
4
|
messageId: string;
|
|
@@ -8,11 +9,11 @@ export interface PeerMessage {
|
|
|
8
9
|
sentAt: string;
|
|
9
10
|
receivedAt: string;
|
|
10
11
|
read: boolean;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
type?: 'message' | 'task_result' | 'task_delegated';
|
|
12
|
+
threadId?: string;
|
|
13
|
+
type?: 'message' | 'badge_update';
|
|
14
14
|
mentions?: string[];
|
|
15
15
|
mentionType?: 'direct' | 'here' | 'broadcast';
|
|
16
16
|
importance?: MessageImportance;
|
|
17
|
+
badges?: Badge[];
|
|
17
18
|
}
|
|
18
19
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;AAErE,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEtD,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;AAErE,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,SAAS,GAAG,cAAc,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IAC9C,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;CAClB"}
|