@askmesh/mcp 0.10.3 → 0.10.4
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.
- package/dist/index.js +1 -1
- package/dist/tools/askmesh.js +37 -3
- package/package.json +1 -1
- package/statusline.sh +5 -5
package/dist/index.js
CHANGED
|
@@ -11,7 +11,7 @@ const TOKEN = process.env.ASKMESH_TOKEN;
|
|
|
11
11
|
const URL = process.env.ASKMESH_URL || 'https://api.askmesh.dev';
|
|
12
12
|
const server = new McpServer({
|
|
13
13
|
name: 'askmesh',
|
|
14
|
-
version: '0.10.
|
|
14
|
+
version: '0.10.4',
|
|
15
15
|
});
|
|
16
16
|
if (!TOKEN) {
|
|
17
17
|
// No token — start in setup-only mode
|
package/dist/tools/askmesh.js
CHANGED
|
@@ -33,8 +33,9 @@ Actions disponibles :
|
|
|
33
33
|
- "progress" : marquer un thread comme "en cours de traitement"
|
|
34
34
|
- "broadcast" : envoyer un message à toute ton équipe (notification Telegram/Slack, sans créer de thread)
|
|
35
35
|
- "context" : partager ton contexte projet avec ton équipe
|
|
36
|
-
- "setup" : installer les slash commands (/inbox, /broadcast, etc.) et la status line dans le projet courant
|
|
37
|
-
|
|
36
|
+
- "setup" : installer les slash commands (/ask-inbox, /ask-broadcast, etc.) et la status line dans le projet courant
|
|
37
|
+
- "update" : vérifier les mises à jour du MCP, mettre à jour les skills et la status line`, {
|
|
38
|
+
action: z.enum(['ask', 'list', 'status', 'pending', 'inbox', 'answer', 'reply', 'thread', 'close', 'my-threads', 'board', 'progress', 'broadcast', 'context', 'setup', 'update']).describe('Action à effectuer'),
|
|
38
39
|
username: z.string().optional().describe("Username de l'agent cible (pour ask/status)"),
|
|
39
40
|
question: z.string().optional().describe('Question à poser (pour ask)'),
|
|
40
41
|
requestId: z.number().optional().describe('ID de la requête (pour answer/reply/thread/close/progress)'),
|
|
@@ -212,8 +213,11 @@ Actions disponibles :
|
|
|
212
213
|
case 'setup': {
|
|
213
214
|
return setupSkillsAndStatusLine(token);
|
|
214
215
|
}
|
|
216
|
+
case 'update': {
|
|
217
|
+
return await checkUpdateAndSetup();
|
|
218
|
+
}
|
|
215
219
|
default:
|
|
216
|
-
return text('Action inconnue. Actions disponibles : ask, list, status, pending, answer, context, setup');
|
|
220
|
+
return text('Action inconnue. Actions disponibles : ask, list, status, pending, answer, context, setup, update');
|
|
217
221
|
}
|
|
218
222
|
});
|
|
219
223
|
}
|
|
@@ -243,6 +247,35 @@ Si l'utilisateur n'a pas encore de compte, dirige-le vers https://askmesh.dev po
|
|
|
243
247
|
return text('Action inconnue.');
|
|
244
248
|
});
|
|
245
249
|
}
|
|
250
|
+
const CURRENT_VERSION = '0.10.4';
|
|
251
|
+
async function checkUpdateAndSetup() {
|
|
252
|
+
const lines = [];
|
|
253
|
+
lines.push(`Version actuelle : ${CURRENT_VERSION}`);
|
|
254
|
+
// Check latest version on npm
|
|
255
|
+
try {
|
|
256
|
+
const res = await fetch('https://registry.npmjs.org/@askmesh/mcp/latest');
|
|
257
|
+
const data = await res.json();
|
|
258
|
+
const latest = data.version;
|
|
259
|
+
lines.push(`Dernière version npm : ${latest}`);
|
|
260
|
+
if (latest !== CURRENT_VERSION) {
|
|
261
|
+
lines.push(`\n⚡ Mise à jour disponible ! ${CURRENT_VERSION} → ${latest}`);
|
|
262
|
+
lines.push(`Pour mettre à jour, relance Claude Code — npx avec @latest récupérera la nouvelle version.`);
|
|
263
|
+
lines.push(`Ou lance : npx clear-npx-cache && npx -y @askmesh/mcp@latest`);
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
lines.push(`\n✓ Tu es à jour.`);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
catch {
|
|
270
|
+
lines.push(`Impossible de vérifier la version npm.`);
|
|
271
|
+
}
|
|
272
|
+
// Re-run setup to update skills and status line
|
|
273
|
+
const setupResult = setupSkillsAndStatusLine();
|
|
274
|
+
const setupText = setupResult.content[0].text;
|
|
275
|
+
lines.push('\n---\n');
|
|
276
|
+
lines.push(setupText);
|
|
277
|
+
return text(lines.join('\n'));
|
|
278
|
+
}
|
|
246
279
|
function text(t) {
|
|
247
280
|
return { content: [{ type: 'text', text: t }] };
|
|
248
281
|
}
|
|
@@ -260,6 +293,7 @@ function setupSkillsAndStatusLine(token, pollInterval, url) {
|
|
|
260
293
|
'ask-threads.md': `Utilise l'outil MCP askmesh avec l'action "my-threads" pour afficher toutes mes conversations actives.\n\nPrésente les threads regroupés par statut :\n- En attente (pending)\n- En cours (in_progress)\n- Actifs (active)\n\nIgnore les threads clos. Pour chaque thread, montre : l'ID, qui a posé la question, le sujet, et le nombre de réponses.`,
|
|
261
294
|
'ask-status.md': `Utilise l'outil MCP askmesh avec l'action "list" pour voir qui est connecté sur le réseau.\n\nAffiche la liste des membres de l'équipe avec leur statut (online/offline) de manière claire et concise.`,
|
|
262
295
|
'ask-setup.md': `Utilise l'outil MCP askmesh avec l'action "setup" pour installer ou mettre à jour la configuration AskMesh dans ce projet.\n\nCela va :\n- Créer ou vérifier le .env avec le token AskMesh\n- Installer les slash commands (/ask-inbox, /ask-broadcast, etc.)\n- Configurer la status line\n- Ajouter .env au .gitignore\n\nSi l'utilisateur fournit un token dans les arguments ($ARGUMENTS), passe-le en paramètre "token".`,
|
|
296
|
+
'ask-update.md': `Utilise l'outil MCP askmesh avec l'action "update" pour vérifier les mises à jour et mettre à jour les skills et la status line.\n\nCela va :\n- Vérifier si une nouvelle version du MCP est disponible sur npm\n- Mettre à jour les slash commands\n- Mettre à jour le script de status line\n\nSi une mise à jour est disponible, indique à l'utilisateur comment l'installer (relancer Claude Code ou npx clear-npx-cache).`,
|
|
263
297
|
};
|
|
264
298
|
// Create commands directory
|
|
265
299
|
try {
|
package/package.json
CHANGED
package/statusline.sh
CHANGED
|
@@ -24,18 +24,18 @@ done
|
|
|
24
24
|
parts=()
|
|
25
25
|
|
|
26
26
|
if [ "$pending" -gt 0 ] 2>/dev/null; then
|
|
27
|
-
parts+=("\033[33m${pending}
|
|
27
|
+
parts+=("\033[33m${pending} pending\033[0m")
|
|
28
28
|
fi
|
|
29
29
|
if [ "$active" -gt 0 ] 2>/dev/null; then
|
|
30
|
-
parts+=("\033[32m${active}
|
|
30
|
+
parts+=("\033[32m${active} active\033[0m")
|
|
31
31
|
fi
|
|
32
32
|
if [ "$replies" -gt 0 ] 2>/dev/null; then
|
|
33
|
-
parts+=("\033[36m${replies}
|
|
33
|
+
parts+=("\033[36m${replies} replies\033[0m")
|
|
34
34
|
fi
|
|
35
35
|
|
|
36
36
|
if [ ${#parts[@]} -gt 0 ]; then
|
|
37
|
-
joined=$(IFS=' '; echo "${parts[*]}")
|
|
38
|
-
echo -e "mesh $joined"
|
|
37
|
+
joined=$(IFS=' · '; echo "${parts[*]}")
|
|
38
|
+
echo -e "mesh > $joined"
|
|
39
39
|
else
|
|
40
40
|
echo "mesh"
|
|
41
41
|
fi
|