@askmesh/mcp 0.7.3 → 0.8.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.
@@ -101,6 +101,13 @@ export declare class AskMeshClient {
101
101
  updatedAt: string;
102
102
  }>;
103
103
  }>;
104
+ broadcast(message: string): Promise<{
105
+ sent: boolean;
106
+ teams: Array<{
107
+ teamId: number;
108
+ channelCount: number;
109
+ }>;
110
+ }>;
104
111
  getTeamBoard(teamId: number): Promise<{
105
112
  columns: {
106
113
  pending: any[];
@@ -126,6 +126,16 @@ export class AskMeshClient {
126
126
  throw new Error(`getMyThreads failed: ${res.status}`);
127
127
  return res.json();
128
128
  }
129
+ async broadcast(message) {
130
+ const res = await fetch(`${this.baseUrl}/api/v1/requests/broadcast`, {
131
+ method: 'POST',
132
+ headers: this.headers(),
133
+ body: JSON.stringify({ message }),
134
+ });
135
+ if (!res.ok)
136
+ throw new Error(`broadcast failed: ${res.status} ${await res.text()}`);
137
+ return res.json();
138
+ }
129
139
  async getTeamBoard(teamId) {
130
140
  const res = await fetch(`${this.baseUrl}/api/v1/teams/${teamId}/board`, {
131
141
  headers: this.headers(),
@@ -26,8 +26,9 @@ Actions disponibles :
26
26
  - "my-threads" : voir toutes tes conversations actives
27
27
  - "board" : voir le kanban board / tableau de bord d'une équipe
28
28
  - "progress" : marquer un thread comme "en cours de traitement"
29
+ - "broadcast" : envoyer un message à toute ton équipe (notification Telegram/Slack, sans créer de thread)
29
30
  - "context" : partager ton contexte projet avec ton équipe`, {
30
- action: z.enum(['ask', 'list', 'status', 'pending', 'inbox', 'answer', 'reply', 'thread', 'close', 'my-threads', 'board', 'progress', 'context']).describe('Action à effectuer'),
31
+ action: z.enum(['ask', 'list', 'status', 'pending', 'inbox', 'answer', 'reply', 'thread', 'close', 'my-threads', 'board', 'progress', 'broadcast', 'context']).describe('Action à effectuer'),
31
32
  username: z.string().optional().describe("Username de l'agent cible (pour ask/status)"),
32
33
  question: z.string().optional().describe('Question à poser (pour ask)'),
33
34
  requestId: z.number().optional().describe('ID de la requête (pour answer/reply/thread/close/progress)'),
@@ -180,6 +181,15 @@ Actions disponibles :
180
181
  const result = await client.updateThreadStatus(requestId, 'in_progress');
181
182
  return text(`Thread #${result.id} marqué comme en cours de traitement.`);
182
183
  }
184
+ case 'broadcast': {
185
+ if (!message)
186
+ return text("Paramètre requis : message (le contenu du broadcast)");
187
+ const result = await client.broadcast(message);
188
+ if (!result.sent)
189
+ return text("Broadcast non envoyé — aucune team avec des channels de notification configurés.");
190
+ const teamLines = result.teams.map((t) => ` Team #${t.teamId}: ${t.channelCount} channel(s)`);
191
+ return text(`📢 Broadcast envoyé !\n${teamLines.join('\n')}`);
192
+ }
183
193
  case 'context': {
184
194
  if (!message)
185
195
  return text("Paramètre requis : message (le contenu du contexte)");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@askmesh/mcp",
3
- "version": "0.7.3",
3
+ "version": "0.8.0",
4
4
  "description": "AskMesh MCP server — connect your AI coding agent to your team's mesh network",
5
5
  "type": "module",
6
6
  "bin": {