@imenam/mcp-http-gateway 2.0.12 → 2.0.13
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/README.md +4 -0
- package/mcp-mode.js +10 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -335,6 +335,10 @@ Dès qu'un outil distant déclare la paire `<x>_path` / `<x>_relay`, le relais :
|
|
|
335
335
|
dégradation silencieuse : mieux vaut un fichier perdu qu'un fichier écrit au mauvais endroit.
|
|
336
336
|
- `<x>_path` est toujours un **dossier**, créé si besoin ; le fichier garde le nom que lui
|
|
337
337
|
donne le MCP. Le relais ne renomme jamais.
|
|
338
|
+
- Contrairement au sens aller, `<x>_path` **n'est pas rendu obligatoire** : le MCP décide.
|
|
339
|
+
Un outil qui le déclare optionnel dit par là qu'il sait quoi faire sans destination —
|
|
340
|
+
renvoyer une capture inline, par exemple. Sans `<x>_path`, le relais ne retient rien,
|
|
341
|
+
ne pose pas `<x>_relay`, et le résultat repart intact.
|
|
338
342
|
- Si l'outil déclare aussi `<x>_overwrite`, le relais l'honore ; sinon il refuse d'écraser.
|
|
339
343
|
- Les liens symboliques sont résolus avant contrôle, y compris sur le plus proche ancêtre
|
|
340
344
|
existant quand la destination n'existe pas encore.
|
package/mcp-mode.js
CHANGED
|
@@ -164,7 +164,8 @@ function inlinablePairs(inputSchema) {
|
|
|
164
164
|
|
|
165
165
|
/** Le schéma tel que l'agent doit le voir : sans les paramètres que le relais remplit. */
|
|
166
166
|
function schemaForAgent(inputSchema) {
|
|
167
|
-
const
|
|
167
|
+
const inbound = inlinablePairs(inputSchema);
|
|
168
|
+
const pairs = [...inbound, ...deliverablePairs(inputSchema)];
|
|
168
169
|
if (pairs.length === 0) return inputSchema;
|
|
169
170
|
|
|
170
171
|
const hidden = new Set(
|
|
@@ -174,11 +175,17 @@ function schemaForAgent(inputSchema) {
|
|
|
174
175
|
Object.entries(inputSchema.properties).filter(([key]) => !hidden.has(key))
|
|
175
176
|
);
|
|
176
177
|
|
|
177
|
-
//
|
|
178
|
+
// À l'aller, le chemin devient la seule façon de désigner le fichier — `<x>_content`
|
|
179
|
+
// est caché — donc il n'est plus optionnel.
|
|
180
|
+
//
|
|
181
|
+
// Au retour, non : une destination que le MCP a rendue optionnelle veut dire quelque
|
|
182
|
+
// chose (« renvoie-moi le contenu au lieu de l'écrire »), et sans elle `prepareDeliveries`
|
|
183
|
+
// ne fait déjà rien. La rendre obligatoire ici forcerait une destination sur chaque
|
|
184
|
+
// appel, y compris ceux qui n'attendent aucun fichier.
|
|
178
185
|
const required = [
|
|
179
186
|
...new Set([
|
|
180
187
|
...(inputSchema.required ?? []).filter((key) => !hidden.has(key)),
|
|
181
|
-
...
|
|
188
|
+
...inbound.map((p) => p.pathProp),
|
|
182
189
|
]),
|
|
183
190
|
];
|
|
184
191
|
|
package/package.json
CHANGED