@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(),
|
package/dist/tools/askmesh.js
CHANGED
|
@@ -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)");
|