@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.
Files changed (82) hide show
  1. package/README.md +48 -118
  2. package/bin/cli.cjs +37 -57
  3. package/crosschat.md +73 -104
  4. package/dashboard/dist/assets/index-BY-IQhma.js +49 -0
  5. package/dashboard/dist/assets/index-CI8v9PKQ.css +1 -0
  6. package/dashboard/dist/index.html +2 -2
  7. package/dist/hub/_hub-section-1-infra.d.ts +8 -0
  8. package/dist/hub/_hub-section-1-infra.d.ts.map +1 -0
  9. package/dist/hub/_hub-section-1-infra.js +152 -0
  10. package/dist/hub/_hub-section-1-infra.js.map +1 -0
  11. package/dist/hub/_hub-section-2-handlers.d.ts +2 -0
  12. package/dist/hub/_hub-section-2-handlers.d.ts.map +1 -0
  13. package/dist/hub/_hub-section-2-handlers.js +514 -0
  14. package/dist/hub/_hub-section-2-handlers.js.map +1 -0
  15. package/dist/hub/_hub-section-3-rest.d.ts +2 -0
  16. package/dist/hub/_hub-section-3-rest.d.ts.map +1 -0
  17. package/dist/hub/_hub-section-3-rest.js +418 -0
  18. package/dist/hub/_hub-section-3-rest.js.map +1 -0
  19. package/dist/hub/_hub-section-4-ws.d.ts +2 -0
  20. package/dist/hub/_hub-section-4-ws.d.ts.map +1 -0
  21. package/dist/hub/_hub-section-4-ws.js +367 -0
  22. package/dist/hub/_hub-section-4-ws.js.map +1 -0
  23. package/dist/hub/agent-connection.d.ts +38 -62
  24. package/dist/hub/agent-connection.d.ts.map +1 -1
  25. package/dist/hub/agent-connection.js +146 -229
  26. package/dist/hub/agent-connection.js.map +1 -1
  27. package/dist/hub/hub-server.d.ts +1 -1
  28. package/dist/hub/hub-server.d.ts.map +1 -1
  29. package/dist/hub/hub-server.js +389 -685
  30. package/dist/hub/hub-server.js.map +1 -1
  31. package/dist/hub/message-manager.d.ts +158 -0
  32. package/dist/hub/message-manager.d.ts.map +1 -0
  33. package/dist/hub/message-manager.js +443 -0
  34. package/dist/hub/message-manager.js.map +1 -0
  35. package/dist/hub/protocol.d.ts +73 -131
  36. package/dist/hub/protocol.d.ts.map +1 -1
  37. package/dist/hub/protocol.js +3 -0
  38. package/dist/hub/protocol.js.map +1 -1
  39. package/dist/lifecycle.d.ts.map +1 -1
  40. package/dist/lifecycle.js +15 -89
  41. package/dist/lifecycle.js.map +1 -1
  42. package/dist/server.d.ts.map +1 -1
  43. package/dist/server.js +22 -33
  44. package/dist/server.js.map +1 -1
  45. package/dist/tools/add-badge.d.ts +4 -0
  46. package/dist/tools/add-badge.d.ts.map +1 -0
  47. package/dist/tools/add-badge.js +29 -0
  48. package/dist/tools/add-badge.js.map +1 -0
  49. package/dist/tools/claim-task.js +5 -5
  50. package/dist/tools/claim-task.js.map +1 -1
  51. package/dist/tools/clear-session.d.ts +1 -2
  52. package/dist/tools/clear-session.d.ts.map +1 -1
  53. package/dist/tools/clear-session.js +7 -22
  54. package/dist/tools/clear-session.js.map +1 -1
  55. package/dist/tools/flag-as-task.d.ts +4 -0
  56. package/dist/tools/flag-as-task.d.ts.map +1 -0
  57. package/dist/tools/flag-as-task.js +31 -0
  58. package/dist/tools/flag-as-task.js.map +1 -0
  59. package/dist/tools/get-messages.d.ts +2 -1
  60. package/dist/tools/get-messages.d.ts.map +1 -1
  61. package/dist/tools/get-messages.js +19 -6
  62. package/dist/tools/get-messages.js.map +1 -1
  63. package/dist/tools/list-peers.d.ts.map +1 -1
  64. package/dist/tools/list-peers.js +1 -4
  65. package/dist/tools/list-peers.js.map +1 -1
  66. package/dist/tools/resolve-task.d.ts +4 -0
  67. package/dist/tools/resolve-task.d.ts.map +1 -0
  68. package/dist/tools/resolve-task.js +29 -0
  69. package/dist/tools/resolve-task.js.map +1 -0
  70. package/dist/tools/send-message.d.ts.map +1 -1
  71. package/dist/tools/send-message.js +6 -5
  72. package/dist/tools/send-message.js.map +1 -1
  73. package/dist/tools/set-status.js +3 -3
  74. package/dist/tools/set-status.js.map +1 -1
  75. package/dist/tools/wait-for-messages.js +1 -1
  76. package/dist/tools/wait-for-messages.js.map +1 -1
  77. package/dist/types.d.ts +4 -3
  78. package/dist/types.d.ts.map +1 -1
  79. package/hooks/permission-hook.sh +19 -18
  80. package/package.json +1 -1
  81. package/dashboard/dist/assets/index-BR-2rRm6.css +0 -1
  82. package/dashboard/dist/assets/index-Ci2ihChN.js +0 -49
@@ -3,7 +3,11 @@
3
3
  *
4
4
  * Defines all agent-to-server and server-to-agent message shapes as
5
5
  * discriminated unions keyed on the `type` field.
6
+ *
7
+ * v2: Unified messaging — rooms renamed to channels, tasks replaced by
8
+ * message badges, threads via threadId on messages.
6
9
  */
10
+ import type { Badge, TaskFilter } from './message-manager.js';
7
11
  export type AgentStatus = 'available' | 'busy';
8
12
  export interface PeerInfo {
9
13
  peerId: string;
@@ -12,42 +16,17 @@ export interface PeerInfo {
12
16
  pid: number;
13
17
  status: AgentStatus;
14
18
  statusDetail?: string;
15
- currentRoom: string;
19
+ currentChannel: string;
16
20
  connectedAt: string;
17
21
  }
18
- export type HubTaskStatus = 'open' | 'claimed' | 'in_progress' | 'completed' | 'failed' | 'archived';
19
- export interface TaskFilter {
20
- agentId?: string;
21
- workingDirReq?: string;
22
- gitProject?: string;
23
- }
24
- export interface TaskNote {
25
- noteId: string;
26
- authorId: string;
27
- authorName: string;
28
- content: string;
29
- timestamp: string;
30
- }
31
- export interface TaskSummary {
32
- taskId: string;
33
- roomId: string;
34
- creatorId: string;
35
- creatorName: string;
36
- description: string;
37
- context?: string;
38
- filter?: TaskFilter;
39
- status: HubTaskStatus;
40
- claimantId?: string;
41
- claimantName?: string;
42
- createdAt: string;
43
- updatedAt: string;
44
- }
22
+ export type MessageImportance = 'important' | 'comment' | 'chitchat';
45
23
  export interface AgentRegisterMessage {
46
24
  type: 'agent.register';
47
25
  peerId: string;
48
26
  name: string;
49
27
  cwd: string;
50
28
  pid: number;
29
+ parentPid?: number;
51
30
  }
52
31
  export interface AgentHeartbeatMessage {
53
32
  type: 'agent.heartbeat';
@@ -56,24 +35,15 @@ export interface AgentStatusMessage {
56
35
  type: 'agent.status';
57
36
  status: AgentStatus;
58
37
  detail?: string;
59
- taskId?: string;
38
+ taskMessageId?: string;
60
39
  }
61
40
  export interface AgentDisconnectMessage {
62
41
  type: 'agent.disconnect';
63
42
  }
64
- export interface AgentJoinRoomMessage {
65
- type: 'agent.joinRoom';
66
- roomId: string;
67
- }
68
- export interface AgentCreateRoomMessage {
69
- type: 'agent.createRoom';
70
- roomId: string;
71
- name?: string;
72
- }
73
- export type MessageImportance = 'important' | 'comment' | 'chitchat';
74
43
  export interface AgentSendMessageMessage {
75
44
  type: 'agent.sendMessage';
76
45
  content: string;
46
+ threadId?: string;
77
47
  metadata?: Record<string, unknown>;
78
48
  importance?: MessageImportance;
79
49
  }
@@ -81,59 +51,46 @@ export interface AgentListPeersMessage {
81
51
  type: 'agent.listPeers';
82
52
  requestId: string;
83
53
  }
84
- export interface TaskCreateMessage {
85
- type: 'task.create';
86
- requestId?: string;
87
- description: string;
88
- context?: string;
89
- filter?: TaskFilter;
90
- }
91
- export interface TaskClaimMessage {
92
- type: 'task.claim';
93
- taskId: string;
54
+ export interface AgentGetMessagesMessage {
55
+ type: 'agent.getMessages';
56
+ requestId: string;
57
+ threadId?: string;
58
+ limit?: number;
59
+ afterMessageId?: string;
94
60
  }
95
- export interface TaskAcceptMessage {
96
- type: 'task.accept';
97
- taskId: string;
98
- claimantId: string;
61
+ export interface AgentFlagTaskMessage {
62
+ type: 'agent.flagTask';
63
+ requestId: string;
64
+ messageId: string;
65
+ filter?: TaskFilter;
99
66
  }
100
- export interface TaskUpdateMessage {
101
- type: 'task.update';
102
- taskId: string;
103
- content: string;
104
- status?: HubTaskStatus;
67
+ export interface AgentClaimTaskMessage {
68
+ type: 'agent.claimTask';
69
+ requestId: string;
70
+ messageId: string;
105
71
  }
106
- export interface TaskCompleteMessage {
107
- type: 'task.complete';
108
- taskId: string;
109
- result: string;
72
+ export interface AgentResolveTaskMessage {
73
+ type: 'agent.resolveTask';
74
+ requestId: string;
75
+ messageId: string;
110
76
  status: 'completed' | 'failed';
77
+ result: string;
111
78
  error?: string;
112
79
  }
113
- export interface AgentGetTaskMessage {
114
- type: 'agent.getTask';
80
+ export interface AgentAddBadgeMessage {
81
+ type: 'agent.addBadge';
115
82
  requestId: string;
116
- taskId: string;
117
- }
118
- export interface AgentListTasksMessage {
119
- type: 'agent.listTasks';
120
- requestId: string;
121
- status?: string;
122
- roomId?: string;
123
- assignedTo?: string;
83
+ messageId: string;
84
+ badgeType: string;
85
+ badgeValue: string;
86
+ label?: string;
124
87
  }
125
88
  export interface AgentClearSessionMessage {
126
89
  type: 'agent.clearSession';
127
90
  requestId: string;
128
91
  messages?: boolean;
129
- tasks?: boolean;
130
- }
131
- export interface AgentRequestDigestMessage {
132
- type: 'agent.requestDigest';
133
- requestId: string;
134
- clearMessages?: boolean;
135
92
  }
136
- export type AgentMessage = AgentRegisterMessage | AgentHeartbeatMessage | AgentStatusMessage | AgentDisconnectMessage | AgentJoinRoomMessage | AgentCreateRoomMessage | AgentSendMessageMessage | AgentListPeersMessage | TaskCreateMessage | TaskClaimMessage | TaskAcceptMessage | TaskUpdateMessage | TaskCompleteMessage | AgentGetTaskMessage | AgentListTasksMessage | AgentClearSessionMessage | AgentRequestDigestMessage;
93
+ export type AgentMessage = AgentRegisterMessage | AgentHeartbeatMessage | AgentStatusMessage | AgentDisconnectMessage | AgentSendMessageMessage | AgentListPeersMessage | AgentGetMessagesMessage | AgentFlagTaskMessage | AgentClaimTaskMessage | AgentResolveTaskMessage | AgentAddBadgeMessage | AgentClearSessionMessage;
137
94
  export interface RegisteredMessage {
138
95
  type: 'registered';
139
96
  peerId: string;
@@ -144,20 +101,11 @@ export interface PeersMessage {
144
101
  requestId: string;
145
102
  peers: PeerInfo[];
146
103
  }
147
- export interface RoomJoinedMessage {
148
- type: 'room.joined';
149
- roomId: string;
150
- name: string;
151
- }
152
- export interface RoomCreatedMessage {
153
- type: 'room.created';
154
- roomId: string;
155
- name: string;
156
- }
157
- export interface RoomMessageMessage {
158
- type: 'room.message';
159
- roomId: string;
104
+ export interface ChannelMessageMessage {
105
+ type: 'channel.message';
106
+ channelId: string;
160
107
  messageId: string;
108
+ threadId?: string;
161
109
  fromPeerId: string;
162
110
  fromName: string;
163
111
  content: string;
@@ -167,67 +115,61 @@ export interface RoomMessageMessage {
167
115
  mentions?: string[];
168
116
  mentionType?: 'direct' | 'here' | 'broadcast';
169
117
  importance?: MessageImportance;
118
+ badges: Badge[];
170
119
  }
171
- export interface TaskCreatedMessage {
172
- type: 'task.created';
173
- requestId?: string;
174
- task: TaskSummary;
120
+ export interface MessageBadgeAddedMessage {
121
+ type: 'message.badgeAdded';
122
+ messageId: string;
123
+ badge: Badge;
124
+ }
125
+ export interface MessageUpdatedMessage {
126
+ type: 'message.updated';
127
+ messageId: string;
128
+ badges: Badge[];
129
+ }
130
+ export interface TaskFlaggedMessage {
131
+ type: 'task.flagged';
132
+ requestId: string;
133
+ messageId: string;
134
+ badges: Badge[];
175
135
  }
176
136
  export interface TaskClaimedMessage {
177
137
  type: 'task.claimed';
178
- taskId: string;
138
+ requestId: string;
139
+ messageId: string;
179
140
  claimantId: string;
180
141
  claimantName: string;
181
142
  }
182
- export interface TaskClaimAcceptedMessage {
183
- type: 'task.claimAccepted';
184
- taskId: string;
185
- assignedTo: string;
186
- }
187
- export interface TaskUpdatedMessage {
188
- type: 'task.updated';
189
- taskId: string;
190
- note: TaskNote;
191
- }
192
- export interface TaskCompletedMessage {
193
- type: 'task.completed';
194
- taskId: string;
143
+ export interface TaskResolvedMessage {
144
+ type: 'task.resolved';
145
+ requestId: string;
146
+ messageId: string;
195
147
  status: 'completed' | 'failed';
196
- result?: string;
148
+ result: string;
197
149
  }
198
- export interface TaskDetailMessage {
199
- type: 'task.detail';
150
+ export interface BadgeAddedMessage {
151
+ type: 'badge.added';
200
152
  requestId: string;
201
- task: TaskSummary & {
202
- notes: TaskNote[];
203
- result?: string;
204
- error?: string;
205
- };
206
- }
207
- export interface TasksMessage {
208
- type: 'tasks';
153
+ messageId: string;
154
+ badge: Badge;
155
+ }
156
+ export interface MessagesResponseMessage {
157
+ type: 'messages';
209
158
  requestId: string;
210
- tasks: TaskSummary[];
159
+ messages: ChannelMessageMessage[];
160
+ threadId?: string;
211
161
  }
212
162
  export interface SessionClearedMessage {
213
163
  type: 'session.cleared';
214
164
  requestId: string;
215
165
  messagesCleared: number;
216
- tasksArchived: number;
217
- }
218
- export interface DigestRequestedMessage {
219
- type: 'digest.requested';
220
- requestId: string;
221
- taskId: string;
222
- messageCount: number;
223
- messagesCleared: boolean;
224
166
  }
225
167
  export interface ErrorMessage {
226
168
  type: 'error';
227
169
  message: string;
228
170
  requestId?: string;
229
171
  }
230
- export type ServerMessage = RegisteredMessage | PeersMessage | RoomJoinedMessage | RoomCreatedMessage | RoomMessageMessage | TaskCreatedMessage | TaskClaimedMessage | TaskClaimAcceptedMessage | TaskUpdatedMessage | TaskCompletedMessage | TaskDetailMessage | TasksMessage | SessionClearedMessage | DigestRequestedMessage | ErrorMessage;
172
+ export type ServerMessage = RegisteredMessage | PeersMessage | ChannelMessageMessage | MessageBadgeAddedMessage | MessageUpdatedMessage | TaskFlaggedMessage | TaskClaimedMessage | TaskResolvedMessage | BadgeAddedMessage | MessagesResponseMessage | SessionClearedMessage | ErrorMessage;
231
173
  /** Serialise a protocol message to a JSON string for sending over WebSocket. */
232
174
  export declare function encodeMessage(msg: AgentMessage | ServerMessage): string;
233
175
  /** Deserialise a raw WebSocket payload into a typed protocol message. */
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/hub/protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/hub/protocol.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,9 @@
3
3
  *
4
4
  * Defines all agent-to-server and server-to-agent message shapes as
5
5
  * discriminated unions keyed on the `type` field.
6
+ *
7
+ * v2: Unified messaging — rooms renamed to channels, tasks replaced by
8
+ * message badges, threads via threadId on messages.
6
9
  */
7
10
  // ─── Helpers ─────────────────────────────────────────────────────
8
11
  /** Serialise a protocol message to a JSON string for sending over WebSocket. */
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/hub/protocol.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA6SH,oEAAoE;AAEpE,gFAAgF;AAChF,MAAM,UAAU,aAAa,CAAC,GAAiC;IAC7D,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrF,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,MAAsC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/hub/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAiOH,oEAAoE;AAEpE,gFAAgF;AAChF,MAAM,UAAU,aAAa,CAAC,GAAiC;IAC7D,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrF,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,MAAsC,CAAC;AAChD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"AAyJA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAiJjD"}
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"AAoHA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAyGjD"}
package/dist/lifecycle.js CHANGED
@@ -16,17 +16,11 @@ const require = createRequire(import.meta.url);
16
16
  const pkg = require('../package.json');
17
17
  const CROSSCHAT_DIR = path.join(os.homedir(), '.crosschat');
18
18
  const DASHBOARD_LOCK_FILE = path.join(CROSSCHAT_DIR, 'dashboard.lock');
19
- const SESSIONS_DIR = path.join(CROSSCHAT_DIR, 'sessions');
20
19
  const HUB_MAIN_PATH = path.join(__dirname, '..', 'dist', 'hub', 'hub-main.js');
21
20
  // When running from dist directly, hub-main.js is a sibling directory
22
21
  const HUB_MAIN_PATH_ALT = path.join(__dirname, 'hub', 'hub-main.js');
23
22
  const LOCK_POLL_INTERVAL_MS = 500;
24
23
  const LOCK_POLL_TIMEOUT_MS = 5_000;
25
- /**
26
- * Read and validate the dashboard lock file.
27
- * Returns the lock data if the file exists and the process is alive,
28
- * otherwise cleans up the stale lock and returns null.
29
- */
30
24
  async function readDashboardLock() {
31
25
  try {
32
26
  const data = await fs.readFile(DASHBOARD_LOCK_FILE, 'utf-8');
@@ -34,7 +28,6 @@ async function readDashboardLock() {
34
28
  if (isProcessAlive(lock.pid)) {
35
29
  return lock;
36
30
  }
37
- // Stale lock — remove it
38
31
  await fs.unlink(DASHBOARD_LOCK_FILE).catch(() => { });
39
32
  return null;
40
33
  }
@@ -42,34 +35,19 @@ async function readDashboardLock() {
42
35
  return null;
43
36
  }
44
37
  }
45
- /**
46
- * Resolve the path to hub-main.js, checking both possible locations
47
- * (project root dist/ and co-located dist/).
48
- */
49
38
  async function resolveHubMainPath() {
50
- // Try the co-located path first (when running from dist/)
51
39
  try {
52
40
  await fs.access(HUB_MAIN_PATH_ALT);
53
41
  return HUB_MAIN_PATH_ALT;
54
42
  }
55
- catch {
56
- // Fall through
57
- }
58
- // Try the project-root path (when running from src/ during dev)
43
+ catch { /* fall through */ }
59
44
  try {
60
45
  await fs.access(HUB_MAIN_PATH);
61
46
  return HUB_MAIN_PATH;
62
47
  }
63
- catch {
64
- // Fall through
65
- }
66
- // Default to the co-located path and let spawn fail with a clear error
48
+ catch { /* fall through */ }
67
49
  return HUB_MAIN_PATH_ALT;
68
50
  }
69
- /**
70
- * Spawn the hub server as a detached child process.
71
- * The hub writes its own lock file once ready.
72
- */
73
51
  async function spawnHub() {
74
52
  const hubPath = await resolveHubMainPath();
75
53
  log(`Spawning hub: node ${hubPath}`);
@@ -80,10 +58,6 @@ async function spawnHub() {
80
58
  });
81
59
  child.unref();
82
60
  }
83
- /**
84
- * Wait for the hub lock file to appear with a valid port.
85
- * Polls every LOCK_POLL_INTERVAL_MS up to LOCK_POLL_TIMEOUT_MS.
86
- */
87
61
  async function waitForHubLock() {
88
62
  const deadline = Date.now() + LOCK_POLL_TIMEOUT_MS;
89
63
  while (Date.now() < deadline) {
@@ -96,27 +70,17 @@ async function waitForHubLock() {
96
70
  throw new Error(`Hub did not write lock file within ${LOCK_POLL_TIMEOUT_MS}ms. ` +
97
71
  `Check ~/.crosschat/ for errors.`);
98
72
  }
99
- /**
100
- * Ensure the hub is running and return its port.
101
- * If no live hub is detected, spawns one and waits for it to be ready.
102
- */
103
73
  async function ensureHub() {
104
- // Check for an existing running hub
105
74
  const existingLock = await readDashboardLock();
106
75
  if (existingLock) {
107
- // Version mismatch — restart the hub so it serves the current build
108
76
  if (existingLock.version && existingLock.version !== pkg.version) {
109
77
  log(`Hub version mismatch: running v${existingLock.version}, we are v${pkg.version}. ` +
110
78
  `Stopping old hub (pid ${existingLock.pid}) and spawning new one.`);
111
79
  try {
112
80
  process.kill(existingLock.pid, 'SIGTERM');
113
- // Give the old hub a moment to shut down and clean up its lock file
114
81
  await new Promise((resolve) => setTimeout(resolve, 1_000));
115
82
  }
116
- catch {
117
- // Process already gone — that's fine
118
- }
119
- // Remove stale lock if the old hub didn't clean it up
83
+ catch { /* Process already gone */ }
120
84
  await fs.unlink(DASHBOARD_LOCK_FILE).catch(() => { });
121
85
  }
122
86
  else {
@@ -124,7 +88,6 @@ async function ensureHub() {
124
88
  return existingLock;
125
89
  }
126
90
  }
127
- // No hub running (or old version was stopped) — spawn one
128
91
  await spawnHub();
129
92
  const lock = await waitForHubLock();
130
93
  log(`Hub started on port ${lock.port} (pid ${lock.pid})`);
@@ -153,9 +116,8 @@ export async function startServer() {
153
116
  const agentConnection = new AgentConnection(hubPort, peerId, peerName, cwd);
154
117
  // 3. Create the local message store (bridges hub messages for MCP tool access)
155
118
  const messageStore = new MessageStore();
156
- // 4. Bridge hub room messages into the local MessageStore
119
+ // 4. Bridge hub channel messages into the local MessageStore
157
120
  agentConnection.onMessage((msg) => {
158
- // Skip messages from ourselves to avoid echo
159
121
  if (msg.fromPeerId === peerId)
160
122
  return;
161
123
  const peerMessage = {
@@ -168,65 +130,31 @@ export async function startServer() {
168
130
  receivedAt: new Date().toISOString(),
169
131
  read: false,
170
132
  type: 'message',
133
+ threadId: msg.threadId,
171
134
  mentions: msg.mentions,
172
135
  mentionType: msg.mentionType,
173
136
  importance: msg.importance,
137
+ badges: msg.badges,
174
138
  };
175
139
  messageStore.add(peerMessage);
176
140
  });
177
- // 5. Bridge task events into the MessageStore as informational messages
178
- agentConnection.onTaskEvent((evt) => {
179
- let content;
180
- let type = 'message';
181
- switch (evt.type) {
182
- case 'task.created':
183
- content = `[TASK CREATED] ${evt.task.description} (taskId: ${evt.task.taskId})`;
184
- type = 'task_delegated';
185
- break;
186
- case 'task.claimed':
187
- content = `[TASK CLAIMED] Task ${evt.taskId} claimed by ${evt.claimantName} (${evt.claimantId})`;
188
- break;
189
- case 'task.claimAccepted':
190
- content = `[TASK ACCEPTED] You have been assigned task ${evt.taskId}`;
191
- break;
192
- case 'task.updated':
193
- content = `[TASK UPDATED] Task ${evt.taskId}: ${evt.note.content.slice(0, 200)}`;
194
- break;
195
- case 'task.completed':
196
- content = `[TASK ${evt.status === 'completed' ? 'COMPLETED' : 'FAILED'}] Task ${evt.taskId}${evt.result ? `: ${evt.result.slice(0, 200)}` : ''}`;
197
- type = 'task_result';
198
- break;
199
- default:
200
- return;
201
- }
202
- const taskMessage = {
141
+ // 5. Bridge badge events into the MessageStore
142
+ agentConnection.onBadge((evt) => {
143
+ const badgeMessage = {
203
144
  messageId: generateId(),
204
- fromPeerId: 'hub',
205
- fromName: 'CrossChat Hub',
206
- content,
145
+ fromPeerId: 'system',
146
+ fromName: 'CrossChat',
147
+ content: `[BADGE] ${evt.badge.type}:${evt.badge.value} on message ${evt.messageId}`,
207
148
  sentAt: new Date().toISOString(),
208
149
  receivedAt: new Date().toISOString(),
209
150
  read: false,
210
- type,
151
+ type: 'badge_update',
152
+ metadata: { targetMessageId: evt.messageId, badge: evt.badge },
211
153
  };
212
- messageStore.add(taskMessage);
154
+ messageStore.add(badgeMessage);
213
155
  });
214
156
  // 6. Connect to the hub
215
157
  agentConnection.connect();
216
- // 6b. Write session marker so the permission hook can detect this instance.
217
- // Key by parent PID (Claude Code's PID) — the hook uses $PPID which matches.
218
- const sessionFile = path.join(SESSIONS_DIR, `${process.ppid}`);
219
- try {
220
- await fs.mkdir(SESSIONS_DIR, { recursive: true });
221
- await fs.writeFile(sessionFile, JSON.stringify({
222
- name: peerName,
223
- peerId,
224
- connectedAt: new Date().toISOString(),
225
- }));
226
- }
227
- catch (err) {
228
- logError('Failed to write session marker', err);
229
- }
230
158
  // 7. Create and connect the MCP server
231
159
  const mcpServer = createMcpServer(peerId, peerName, messageStore, agentConnection, dashboardInfo);
232
160
  const transport = new StdioServerTransport();
@@ -240,8 +168,6 @@ export async function startServer() {
240
168
  log('Shutting down...');
241
169
  agentConnection.disconnect();
242
170
  await mcpServer.close();
243
- // Clean up session marker
244
- await fs.unlink(sessionFile).catch(() => { });
245
171
  log('Shutdown complete');
246
172
  process.exit(0);
247
173
  };
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AA+CjE,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAClD,SAAS,CAuDX"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AA4CjE,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAClD,SAAS,CA8CX"}