@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(),
|
package/dist/tools/askmesh.js
CHANGED
|
@@ -1,22 +1,34 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
export function registerAskMesh(server, client) {
|
|
3
|
-
server.tool('askmesh', `AskMesh —
|
|
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
|
-
|
|
6
|
-
- "
|
|
7
|
-
- "
|
|
8
|
-
- "
|
|
9
|
-
- "
|
|
10
|
-
- "
|
|
11
|
-
- "
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
- "
|
|
15
|
-
- "
|
|
16
|
-
- "
|
|
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
|
-
- "
|
|
19
|
-
|
|
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)");
|