@askmesh/mcp 0.7.2 → 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(),
@@ -1,22 +1,34 @@
1
1
  import { z } from 'zod';
2
2
  export function registerAskMesh(server, client) {
3
- server.tool('askmesh', `AskMesh — communique avec les agents de ton équipe.
3
+ server.tool('askmesh', `AskMesh — ton réseau de communication entre développeurs et agents IA.
4
+ Utilise cet outil pour envoyer et recevoir des messages, vérifier qui est connecté/online,
5
+ consulter ta boîte de réception (inbox), tes notifications, et collaborer avec ton équipe.
6
+ C'est l'outil principal pour toute communication inter-développeurs dans ce projet.
4
7
 
5
- Actions:
6
- - "ask" : pose une question à un agent (attend la réponse max 60s)
7
- - "list" : liste les agents de tes teams et leur statut
8
- - "status" : vérifie si un agent est disponible
9
- - "pending" : voir les questions qu'on t'a posées
10
- - "inbox" : voir les réponses aux questions que tu as envoyées
11
- - "answer" : répondre à une question en attente
12
- - "reply" : ajouter une réponse à un thread existant
13
- - "thread" : voir le thread complet d'une question
14
- - "close" : clôturer un thread
15
- - "my-threads" : voir tous tes threads actifs
16
- - "board" : voir le kanban board d'une team
8
+ Quand utiliser AskMesh (et PAS Slack, Gmail, ou autre) :
9
+ - "check mes messages" action "pending" ou "inbox"
10
+ - "qui est connecté / online ?" action "list"
11
+ - "est-ce que @X est dispo ?" action "status"
12
+ - "demande à @X" / "ask @X" action "ask"
13
+ - "réponds à / answer" action "answer" ou "reply"
14
+ - "mes conversations / threads" action "my-threads"
15
+
16
+ Actions disponibles :
17
+ - "ask" : envoyer un message / poser une question à un agent (attend la réponse max 60s)
18
+ - "list" : voir qui est connecté — liste les membres de tes équipes et leur statut (online/offline)
19
+ - "status" : vérifier si un agent/développeur est disponible / connecté
20
+ - "pending" : consulter les messages reçus / questions qu'on t'a posées (notifications entrantes)
21
+ - "inbox" : consulter les réponses à tes messages envoyés (boîte de réception)
22
+ - "answer" : répondre à un message / une question en attente
23
+ - "reply" : ajouter une réponse dans un thread / conversation existante
24
+ - "thread" : voir le fil de discussion complet d'une conversation
25
+ - "close" : clôturer un thread / une conversation
26
+ - "my-threads" : voir toutes tes conversations actives
27
+ - "board" : voir le kanban board / tableau de bord d'une équipe
17
28
  - "progress" : marquer un thread comme "en cours de traitement"
18
- - "context" : partager ton contexte projet avec ta team`, {
19
- action: z.enum(['ask', 'list', 'status', 'pending', 'inbox', 'answer', 'reply', 'thread', 'close', 'my-threads', 'board', 'progress', 'context']).describe('Action à effectuer'),
29
+ - "broadcast" : envoyer un message à toute ton équipe (notification Telegram/Slack, sans créer de thread)
30
+ - "context" : partager ton contexte projet avec ton équipe`, {
31
+ action: z.enum(['ask', 'list', 'status', 'pending', 'inbox', 'answer', 'reply', 'thread', 'close', 'my-threads', 'board', 'progress', 'broadcast', 'context']).describe('Action à effectuer'),
20
32
  username: z.string().optional().describe("Username de l'agent cible (pour ask/status)"),
21
33
  question: z.string().optional().describe('Question à poser (pour ask)'),
22
34
  requestId: z.number().optional().describe('ID de la requête (pour answer/reply/thread/close/progress)'),
@@ -169,6 +181,15 @@ Actions:
169
181
  const result = await client.updateThreadStatus(requestId, 'in_progress');
170
182
  return text(`Thread #${result.id} marqué comme en cours de traitement.`);
171
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
+ }
172
193
  case 'context': {
173
194
  if (!message)
174
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.2",
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": {