@imenam/mcp-http-gateway 2.0.12 → 2.0.14
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 +8 -0
- package/mcp-mode.js +7 -8
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -253,6 +253,10 @@ occasion d'envoyer un chemin qui ne serait pas lisible à l'arrivée.
|
|
|
253
253
|
Un outil qui ne déclare pas cette paire n'est jamais concerné : un `output_path` seul reste
|
|
254
254
|
un chemin, interprété côté gateway comme avant.
|
|
255
255
|
|
|
256
|
+
`<x>_path` est obligatoire pour l'agent si, et seulement si, le MCP le déclare obligatoire.
|
|
257
|
+
Un outil qui le laisse optionnel accepte sa donnée autrement — un texte passé en ligne, par
|
|
258
|
+
exemple. Sans `<x>_path`, le relais ne lit rien et transmet l'appel tel quel.
|
|
259
|
+
|
|
256
260
|
**Le chemin vient de l'agent : il n'est pas digne de confiance.** La fonction est donc
|
|
257
261
|
fermée par défaut et s'ouvre dossier par dossier :
|
|
258
262
|
|
|
@@ -335,6 +339,10 @@ Dès qu'un outil distant déclare la paire `<x>_path` / `<x>_relay`, le relais :
|
|
|
335
339
|
dégradation silencieuse : mieux vaut un fichier perdu qu'un fichier écrit au mauvais endroit.
|
|
336
340
|
- `<x>_path` est toujours un **dossier**, créé si besoin ; le fichier garde le nom que lui
|
|
337
341
|
donne le MCP. Le relais ne renomme jamais.
|
|
342
|
+
- Comme au sens aller, `<x>_path` n'est obligatoire que si le MCP le déclare tel.
|
|
343
|
+
Un outil qui le déclare optionnel dit par là qu'il sait quoi faire sans destination —
|
|
344
|
+
renvoyer une capture inline, par exemple. Sans `<x>_path`, le relais ne retient rien,
|
|
345
|
+
ne pose pas `<x>_relay`, et le résultat repart intact.
|
|
338
346
|
- Si l'outil déclare aussi `<x>_overwrite`, le relais l'honore ; sinon il refuse d'écraser.
|
|
339
347
|
- Les liens symboliques sont résolus avant contrôle, y compris sur le plus proche ancêtre
|
|
340
348
|
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,13 +175,11 @@ function schemaForAgent(inputSchema) {
|
|
|
174
175
|
Object.entries(inputSchema.properties).filter(([key]) => !hidden.has(key))
|
|
175
176
|
);
|
|
176
177
|
|
|
177
|
-
// Le
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
]),
|
|
183
|
-
];
|
|
178
|
+
// Le caractère obligatoire d'un `<x>_path` est celui que le MCP déclare, dans les deux
|
|
179
|
+
// sens. Un chemin optionnel veut dire quelque chose : à l'aller, que l'outil accepte
|
|
180
|
+
// aussi sa donnée autrement (un texte passé en ligne, par exemple) ; au retour, qu'il
|
|
181
|
+
// sait quoi faire sans destination. Sans `<x>_path`, le relais ne fait rien.
|
|
182
|
+
const required = (inputSchema.required ?? []).filter((key) => !hidden.has(key));
|
|
184
183
|
|
|
185
184
|
return { ...inputSchema, properties, required };
|
|
186
185
|
}
|
package/package.json
CHANGED