mealie-mcp 0.2.14 → 0.2.16
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 +7 -0
- package/dist/auth.js +2 -1
- package/dist/auth.js.map +1 -1
- package/dist/config.js +20 -1
- package/dist/config.js.map +1 -1
- package/dist/http-client.js +68 -28
- package/dist/http-client.js.map +1 -1
- package/dist/schema.js.map +1 -1
- package/dist/tools.js +30 -11
- package/dist/tools.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -103,8 +103,15 @@ All configuration is via environment variables.
|
|
|
103
103
|
| `MEALIE_OPENAPI_URL` | – | `${MEALIE_BASE_URL}/openapi.json` | Override where the OpenAPI schema is fetched from. |
|
|
104
104
|
| `MEALIE_TOOL_NAME_MAX` | – | `50` | Max length of generated tool names (clamped to 16–64). Lower it if your MCP client prefixes tool names (e.g. `mcp__<server>__<tool>`) and the combined name exceeds the 64-char API limit. |
|
|
105
105
|
| `MEALIE_TIMEOUT` | – | `60000` | Per-request timeout in milliseconds. |
|
|
106
|
+
| `MEALIE_RETRIES` | – | `2` | Extra attempts for idempotent (`GET`) requests that hit a network error or a retryable status (`429`/`5xx`), with exponential backoff (clamped to 0–5). Non-`GET` methods are never retried automatically. Set `0` to disable. |
|
|
107
|
+
| `MEALIE_DEBUG` | – | `false` | When `true`, log each outgoing request (method, path, response status) to stderr. Useful for troubleshooting from your MCP client. |
|
|
106
108
|
| `MEALIE_ACCEPT_LANGUAGE` | – | — | Optional `Accept-Language` header forwarded to Mealie (affects e.g. ingredient parsing locale). |
|
|
107
109
|
|
|
110
|
+
> **Note:** Only path and query parameters are exposed as tool inputs. The few Mealie
|
|
111
|
+
> endpoints that read a custom request header or cookie are not driven through those
|
|
112
|
+
> parameters — `Accept-Language` is forwarded via `MEALIE_ACCEPT_LANGUAGE`, and
|
|
113
|
+
> authentication is handled globally.
|
|
114
|
+
|
|
108
115
|
### Authenticating with OAuth (client credentials)
|
|
109
116
|
|
|
110
117
|
By default the server authenticates with a static `MEALIE_API_TOKEN`. As an
|
package/dist/auth.js
CHANGED
|
@@ -63,7 +63,8 @@ class OAuthTokenProvider {
|
|
|
63
63
|
}
|
|
64
64
|
const rawText = await res.text();
|
|
65
65
|
if (!res.ok) {
|
|
66
|
-
|
|
66
|
+
// SECURITY: Do not include rawText in the error message to avoid leaking sensitive information.
|
|
67
|
+
throw new Error(`OAuth token request to ${this.oauth.tokenUrl} returned HTTP ${res.status} ${res.statusText}`);
|
|
67
68
|
}
|
|
68
69
|
let parsed;
|
|
69
70
|
try {
|
package/dist/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
// Runtime configuration, sourced entirely from environment variables so the
|
|
2
2
|
// server works cleanly as an `npx` stdio process launched by an MCP client.
|
|
3
|
-
|
|
3
|
+
/** Default cap for generated tool names; shared with the tool generator. */
|
|
4
|
+
export const DEFAULT_TOOL_NAME_MAX = 50;
|
|
5
|
+
const DEFAULT_RETRIES = 2;
|
|
6
|
+
const MAX_RETRIES = 5;
|
|
4
7
|
function bool(value, fallback = false) {
|
|
5
8
|
if (value === undefined)
|
|
6
9
|
return fallback;
|
|
@@ -21,12 +24,26 @@ export function loadConfig(env = process.env) {
|
|
|
21
24
|
"Set it in your MCP client config under the server's `env`.");
|
|
22
25
|
}
|
|
23
26
|
const baseUrl = rawBase.replace(/\/+$/, "");
|
|
27
|
+
try {
|
|
28
|
+
// Fail fast with a clear message rather than surfacing a cryptic
|
|
29
|
+
// ERR_INVALID_URL later, on the first spec fetch or tool call.
|
|
30
|
+
// eslint-disable-next-line no-new
|
|
31
|
+
new URL(baseUrl);
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
throw new Error(`MEALIE_BASE_URL is not a valid URL: ${JSON.stringify(rawBase)}. ` +
|
|
35
|
+
"Use an absolute URL including the scheme, e.g. https://mealie.example.com.");
|
|
36
|
+
}
|
|
24
37
|
const timeoutRaw = env.MEALIE_TIMEOUT?.trim();
|
|
25
38
|
const timeoutMs = timeoutRaw && /^\d+$/.test(timeoutRaw) ? Number(timeoutRaw) : 60_000;
|
|
26
39
|
const nameMaxRaw = env.MEALIE_TOOL_NAME_MAX?.trim();
|
|
27
40
|
const toolNameMax = nameMaxRaw && /^\d+$/.test(nameMaxRaw)
|
|
28
41
|
? Math.min(64, Math.max(16, Number(nameMaxRaw)))
|
|
29
42
|
: DEFAULT_TOOL_NAME_MAX;
|
|
43
|
+
const retriesRaw = env.MEALIE_RETRIES?.trim();
|
|
44
|
+
const retries = retriesRaw && /^\d+$/.test(retriesRaw)
|
|
45
|
+
? Math.min(MAX_RETRIES, Number(retriesRaw))
|
|
46
|
+
: DEFAULT_RETRIES;
|
|
30
47
|
const oauthTokenUrl = env.MEALIE_OAUTH_TOKEN_URL?.trim();
|
|
31
48
|
const oauthClientId = env.MEALIE_OAUTH_CLIENT_ID?.trim();
|
|
32
49
|
const oauthClientSecret = env.MEALIE_OAUTH_CLIENT_SECRET?.trim();
|
|
@@ -53,6 +70,8 @@ export function loadConfig(env = process.env) {
|
|
|
53
70
|
timeoutMs,
|
|
54
71
|
acceptLanguage: env.MEALIE_ACCEPT_LANGUAGE?.trim() || undefined,
|
|
55
72
|
toolNameMax,
|
|
73
|
+
debug: bool(env.MEALIE_DEBUG),
|
|
74
|
+
retries,
|
|
56
75
|
};
|
|
57
76
|
}
|
|
58
77
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,4EAA4E;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,4EAA4E;AAuD5E,4EAA4E;AAC5E,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACxC,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,WAAW,GAAG,CAAC,CAAC;AAEtB,SAAS,IAAI,CAAC,KAAyB,EAAE,QAAQ,GAAG,KAAK;IACvD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IACzC,OAAO,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,IAAI,CAAC,KAAyB;IACrC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,OAAO,KAAK;SACT,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAyB,OAAO,CAAC,GAAG;IAC7D,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;IAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,iEAAiE;YAC/D,4DAA4D,CAC/D,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5C,IAAI,CAAC;QACH,iEAAiE;QACjE,+DAA+D;QAC/D,kCAAkC;QAClC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,uCAAuC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI;YAChE,4EAA4E,CAC/E,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC;IAC9C,MAAM,SAAS,GAAG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAEvF,MAAM,UAAU,GAAG,GAAG,CAAC,oBAAoB,EAAE,IAAI,EAAE,CAAC;IACpD,MAAM,WAAW,GACf,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;QACpC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QAChD,CAAC,CAAC,qBAAqB,CAAC;IAE5B,MAAM,UAAU,GAAG,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC;IAC9C,MAAM,OAAO,GACX,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;QACpC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC,CAAC,eAAe,CAAC;IAEtB,MAAM,aAAa,GAAG,GAAG,CAAC,sBAAsB,EAAE,IAAI,EAAE,CAAC;IACzD,MAAM,aAAa,GAAG,GAAG,CAAC,sBAAsB,EAAE,IAAI,EAAE,CAAC;IACzD,MAAM,iBAAiB,GAAG,GAAG,CAAC,0BAA0B,EAAE,IAAI,EAAE,CAAC;IACjE,yEAAyE;IACzE,+EAA+E;IAC/E,MAAM,KAAK,GACT,aAAa,IAAI,aAAa,IAAI,iBAAiB;QACjD,CAAC,CAAC;YACE,QAAQ,EAAE,aAAa;YACvB,QAAQ,EAAE,aAAa;YACvB,YAAY,EAAE,iBAAiB;YAC/B,KAAK,EAAE,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,SAAS;YAClD,QAAQ,EAAE,GAAG,CAAC,qBAAqB,EAAE,IAAI,EAAE,IAAI,SAAS;SACzD;QACH,CAAC,CAAC,SAAS,CAAC;IAEhB,OAAO;QACL,OAAO;QACP,KAAK,EAAE,GAAG,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,SAAS;QAC5E,KAAK;QACL,UAAU,EAAE,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,SAAS;QACvD,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC;QACjD,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC;QACpC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;QAC/B,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC;QACvC,SAAS;QACT,cAAc,EAAE,GAAG,CAAC,sBAAsB,EAAE,IAAI,EAAE,IAAI,SAAS;QAC/D,WAAW;QACX,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;QAC7B,OAAO;KACR,CAAC;AACJ,CAAC"}
|
package/dist/http-client.js
CHANGED
|
@@ -2,9 +2,25 @@ import { readFile } from "node:fs/promises";
|
|
|
2
2
|
import { basename } from "node:path";
|
|
3
3
|
import { isRefreshable } from "./auth.js";
|
|
4
4
|
const MAX_TEXT = 100_000;
|
|
5
|
+
// Statuses worth retrying for idempotent requests: rate-limiting and transient
|
|
6
|
+
// server-side failures. 4xx (other than 429) are the caller's fault and repeating
|
|
7
|
+
// them just wastes time.
|
|
8
|
+
const RETRYABLE_STATUS = new Set([429, 500, 502, 503, 504]);
|
|
9
|
+
const RETRY_BASE_DELAY_MS = 250;
|
|
5
10
|
function text(value) {
|
|
6
11
|
return { type: "text", text: value };
|
|
7
12
|
}
|
|
13
|
+
function debugLog(config, message) {
|
|
14
|
+
if (config.debug)
|
|
15
|
+
process.stderr.write(`[mealie-mcp] ${message}\n`);
|
|
16
|
+
}
|
|
17
|
+
function sleep(ms) {
|
|
18
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
19
|
+
}
|
|
20
|
+
/** Exponential backoff for the Nth retry (1-based): 250ms, 500ms, 1s, … */
|
|
21
|
+
function backoffMs(attempt) {
|
|
22
|
+
return RETRY_BASE_DELAY_MS * 2 ** (attempt - 1);
|
|
23
|
+
}
|
|
8
24
|
function truncate(value) {
|
|
9
25
|
if (value.length <= MAX_TEXT)
|
|
10
26
|
return value;
|
|
@@ -20,15 +36,13 @@ function buildUrl(config, tool, args) {
|
|
|
20
36
|
path = path.replace(`{${name}}`, encodeURIComponent(String(value)));
|
|
21
37
|
}
|
|
22
38
|
const url = new URL(config.baseUrl + path);
|
|
23
|
-
for (const { name
|
|
39
|
+
for (const { name } of tool.queryParams) {
|
|
24
40
|
const value = args[name];
|
|
25
41
|
if (value === undefined || value === null)
|
|
26
42
|
continue;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
else if (Array.isArray(value)) {
|
|
43
|
+
// Array values are always expanded as repeated `key=` pairs, regardless of
|
|
44
|
+
// whether the schema declared the parameter as an array.
|
|
45
|
+
if (Array.isArray(value)) {
|
|
32
46
|
for (const item of value)
|
|
33
47
|
url.searchParams.append(name, scalar(item));
|
|
34
48
|
}
|
|
@@ -53,9 +67,13 @@ async function buildMultipart(tool, body) {
|
|
|
53
67
|
continue;
|
|
54
68
|
if (fileFields.has(key)) {
|
|
55
69
|
const paths = Array.isArray(value) ? value : [value];
|
|
56
|
-
|
|
70
|
+
const filePromises = paths.map(async (p) => {
|
|
57
71
|
const filePath = String(p);
|
|
58
72
|
const data = await readFile(filePath);
|
|
73
|
+
return { filePath, data };
|
|
74
|
+
});
|
|
75
|
+
const files = await Promise.all(filePromises);
|
|
76
|
+
for (const { filePath, data } of files) {
|
|
59
77
|
form.append(key, new Blob([new Uint8Array(data)]), basename(filePath));
|
|
60
78
|
}
|
|
61
79
|
}
|
|
@@ -72,7 +90,10 @@ async function buildMultipart(tool, body) {
|
|
|
72
90
|
async function readBody(res) {
|
|
73
91
|
const contentType = res.headers.get("content-type") ?? "";
|
|
74
92
|
if (res.status === 204 || res.headers.get("content-length") === "0") {
|
|
75
|
-
|
|
93
|
+
// Only call an empty body a "success"; on an error status the caller
|
|
94
|
+
// prepends the HTTP status, so a neutral note reads correctly there.
|
|
95
|
+
const message = res.ok ? `Success (HTTP ${res.status}, no content).` : "(no response body)";
|
|
96
|
+
return { blocks: [text(message)], raw: "" };
|
|
76
97
|
}
|
|
77
98
|
if (contentType.startsWith("image/")) {
|
|
78
99
|
const buf = Buffer.from(await res.arrayBuffer());
|
|
@@ -148,27 +169,46 @@ export async function executeTool(config, tool, args, auth) {
|
|
|
148
169
|
clearTimeout(timer);
|
|
149
170
|
}
|
|
150
171
|
};
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
172
|
+
const method = tool.method.toUpperCase();
|
|
173
|
+
// Only GET is retried automatically: it is idempotent, so a repeat is safe.
|
|
174
|
+
const maxAttempts = tool.method === "get" ? (config.retries ?? 0) + 1 : 1;
|
|
175
|
+
for (let attempt = 1;; attempt++) {
|
|
176
|
+
let res;
|
|
177
|
+
let bodyResult;
|
|
178
|
+
try {
|
|
179
|
+
({ res, body: bodyResult } = await send(false));
|
|
180
|
+
// A 401 may mean the OAuth access token expired mid-flight; force one refresh and retry.
|
|
181
|
+
if (res.status === 401 && isRefreshable(config)) {
|
|
182
|
+
({ res, body: bodyResult } = await send(true));
|
|
183
|
+
}
|
|
158
184
|
}
|
|
185
|
+
catch (err) {
|
|
186
|
+
const reason = err instanceof Error ? err.message : String(err);
|
|
187
|
+
if (attempt < maxAttempts) {
|
|
188
|
+
const delay = backoffMs(attempt);
|
|
189
|
+
debugLog(config, `${method} ${tool.path} failed (${reason}); retrying in ${delay}ms`);
|
|
190
|
+
await sleep(delay);
|
|
191
|
+
continue;
|
|
192
|
+
}
|
|
193
|
+
debugLog(config, `${method} ${tool.path} → network error: ${reason}`);
|
|
194
|
+
return { content: [text(`Request to ${method} ${url} failed: ${reason}`)], isError: true };
|
|
195
|
+
}
|
|
196
|
+
debugLog(config, `${method} ${tool.path} → ${res.status}`);
|
|
197
|
+
if (RETRYABLE_STATUS.has(res.status) && attempt < maxAttempts) {
|
|
198
|
+
const delay = backoffMs(attempt);
|
|
199
|
+
debugLog(config, `${method} ${tool.path} → ${res.status}; retrying in ${delay}ms`);
|
|
200
|
+
await sleep(delay);
|
|
201
|
+
continue;
|
|
202
|
+
}
|
|
203
|
+
const { blocks } = bodyResult;
|
|
204
|
+
if (!res.ok) {
|
|
205
|
+
const detail = blocks.map((b) => (b.type === "text" ? b.text : "[binary]")).join("\n");
|
|
206
|
+
return {
|
|
207
|
+
content: [text(`HTTP ${res.status} ${res.statusText} from ${method} ${tool.path}\n${detail}`)],
|
|
208
|
+
isError: true,
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
return { content: blocks };
|
|
159
212
|
}
|
|
160
|
-
catch (err) {
|
|
161
|
-
const reason = err instanceof Error ? err.message : String(err);
|
|
162
|
-
return { content: [text(`Request to ${tool.method.toUpperCase()} ${url} failed: ${reason}`)], isError: true };
|
|
163
|
-
}
|
|
164
|
-
const { blocks } = bodyResult;
|
|
165
|
-
if (!res.ok) {
|
|
166
|
-
const detail = blocks.map((b) => (b.type === "text" ? b.text : "[binary]")).join("\n");
|
|
167
|
-
return {
|
|
168
|
-
content: [text(`HTTP ${res.status} ${res.statusText} from ${tool.method.toUpperCase()} ${tool.path}\n${detail}`)],
|
|
169
|
-
isError: true,
|
|
170
|
-
};
|
|
171
|
-
}
|
|
172
|
-
return { content: blocks };
|
|
173
213
|
}
|
|
174
214
|
//# sourceMappingURL=http-client.js.map
|
package/dist/http-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../src/http-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,EAAE,aAAa,EAAsB,MAAM,WAAW,CAAC;AAa9D,MAAM,QAAQ,GAAG,OAAO,CAAC;AAEzB,SAAS,IAAI,CAAC,KAAa;IACzB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACvC,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC7B,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC3C,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,mBAAmB,KAAK,CAAC,MAAM,GAAG,QAAQ,cAAc,CAAC;AAC7F,CAAC;AAED,SAAS,QAAQ,CAAC,MAAc,EAAE,IAAgB,EAAE,IAA6B;IAC/E,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACrB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,EAAE,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,EAAE,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAC3C,KAAK,MAAM,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../src/http-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,EAAE,aAAa,EAAsB,MAAM,WAAW,CAAC;AAa9D,MAAM,QAAQ,GAAG,OAAO,CAAC;AAEzB,+EAA+E;AAC/E,kFAAkF;AAClF,yBAAyB;AACzB,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC5D,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC,SAAS,IAAI,CAAC,KAAa;IACzB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACvC,CAAC;AAED,SAAS,QAAQ,CAAC,MAAc,EAAE,OAAe;IAC/C,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,OAAO,IAAI,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,2EAA2E;AAC3E,SAAS,SAAS,CAAC,OAAe;IAChC,OAAO,mBAAmB,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC7B,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC3C,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,mBAAmB,KAAK,CAAC,MAAM,GAAG,QAAQ,cAAc,CAAC;AAC7F,CAAC;AAED,SAAS,QAAQ,CAAC,MAAc,EAAE,IAAgB,EAAE,IAA6B;IAC/E,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACrB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,EAAE,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,EAAE,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAC3C,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,SAAS;QACpD,2EAA2E;QAC3E,yDAAyD;QACzD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,MAAM,IAAI,IAAI,KAAK;gBAAE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC;AAED,SAAS,MAAM,CAAC,KAAc;IAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC5D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,IAAgB,EAAE,IAA6B;IAC3E,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;IAC5B,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC;IACxD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,SAAS;QACpD,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;gBACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC3B,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACtC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC9C,KAAK,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,KAAK,EAAE,CAAC;gBACvC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,KAAK,MAAM,IAAI,IAAI,KAAK;gBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,GAAa;IACnC,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IAE1D,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,GAAG,EAAE,CAAC;QACpE,qEAAqE;QACrE,qEAAqE;QACrE,MAAM,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,GAAG,CAAC,MAAM,gBAAgB,CAAC,CAAC,CAAC,oBAAoB,CAAC;QAC5F,OAAO,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IAC9C,CAAC;IAED,IAAI,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QACjD,OAAO;YACL,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9F,GAAG,EAAE,UAAU,WAAW,IAAI,GAAG,CAAC,MAAM,SAAS;SAClD,CAAC;IACJ,CAAC;IAED,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACxD,OAAO,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;QAChD,CAAC;IACH,CAAC;IAED,IAAI,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACnG,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC7B,OAAO,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;IAChD,CAAC;IAED,uFAAuF;IACvF,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IACjD,OAAO;QACL,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,MAAM,0BAA0B,WAAW,IAAI,cAAc,IAAI,CAAC,CAAC;QACjG,GAAG,EAAE,WAAW,GAAG,CAAC,MAAM,SAAS;KACpC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAc,EACd,IAAgB,EAChB,IAA6B,EAC7B,IAAmB;IAEnB,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAEzC,MAAM,WAAW,GAA2B,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC3E,IAAI,MAAM,CAAC,cAAc;QAAE,WAAW,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC;IAElF,IAAI,OAAwD,CAAC;IAC7D,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,IAA+B,CAAC;QACvD,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC9B,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YACpC,WAAW,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;QACnD,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;YACrC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/C,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI;oBAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACjE,CAAC;YACD,OAAO,GAAG,MAAM,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,EAAE,YAAqB,EAA6E,EAAE;QACtH,MAAM,OAAO,GAAG,EAAE,GAAG,WAAW,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACtD,IAAI,SAAS;YAAE,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;QAEjD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACrE,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAC3B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;gBACjC,OAAO;gBACP,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YACH,2FAA2F;YAC3F,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;YACjC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;QACvB,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IACzC,4EAA4E;IAC5E,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1E,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,EAAE,EAAE,CAAC;QAClC,IAAI,GAAa,CAAC;QAClB,IAAI,UAAmD,CAAC;QACxD,IAAI,CAAC;YACH,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAChD,yFAAyF;YACzF,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChD,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChE,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC;gBAC1B,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;gBACjC,QAAQ,CAAC,MAAM,EAAE,GAAG,MAAM,IAAI,IAAI,CAAC,IAAI,YAAY,MAAM,kBAAkB,KAAK,IAAI,CAAC,CAAC;gBACtF,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;gBACnB,SAAS;YACX,CAAC;YACD,QAAQ,CAAC,MAAM,EAAE,GAAG,MAAM,IAAI,IAAI,CAAC,IAAI,qBAAqB,MAAM,EAAE,CAAC,CAAC;YACtE,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,cAAc,MAAM,IAAI,GAAG,YAAY,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC7F,CAAC;QAED,QAAQ,CAAC,MAAM,EAAE,GAAG,MAAM,IAAI,IAAI,CAAC,IAAI,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAE3D,IAAI,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC;YAC9D,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;YACjC,QAAQ,CAAC,MAAM,EAAE,GAAG,MAAM,IAAI,IAAI,CAAC,IAAI,MAAM,GAAG,CAAC,MAAM,iBAAiB,KAAK,IAAI,CAAC,CAAC;YACnF,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;YACnB,SAAS;QACX,CAAC;QAED,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvF,OAAO;gBACL,OAAO,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,SAAS,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC;gBAC9F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC"}
|
package/dist/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,oBAAoB,GAAG,uBAAuB,CAAC;AAE5D;;;;;GAKG;AACH,SAAS,KAAK,CAAI,KAAQ;IACxB,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,OAAO,GAAQ,CAAC;IAClB,CAAC;IACD,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/tools.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DEFAULT_TOOL_NAME_MAX } from "./config.js";
|
|
1
2
|
import { buildDefs, COMPONENT_REF_PREFIX, localize } from "./schema.js";
|
|
2
3
|
import { HTTP_METHODS, } from "./openapi-types.js";
|
|
3
4
|
function slug(value) {
|
|
@@ -20,9 +21,6 @@ function dedupeTokens(name) {
|
|
|
20
21
|
.filter((tok, i, arr) => tok.length > 0 && tok !== arr[i - 1])
|
|
21
22
|
.join("_");
|
|
22
23
|
}
|
|
23
|
-
// Default cap for generated tool names. Kept well under the 64-char API limit
|
|
24
|
-
// because clients commonly prefix names (e.g. `mcp__<server>__<tool>`).
|
|
25
|
-
const DEFAULT_NAME_MAX = 50;
|
|
26
24
|
function nameParts(op, path, method) {
|
|
27
25
|
const category = slug(op.tags?.[0] ?? "misc");
|
|
28
26
|
const base = dedupeTokens(operationName(op.operationId, path, method).replace(/_+/g, "_"));
|
|
@@ -130,7 +128,7 @@ function pickBody(op, components) {
|
|
|
130
128
|
const first = Object.values(content)[0];
|
|
131
129
|
return first ? { kind: "json", schema: first.schema, required, fileFields: [] } : undefined;
|
|
132
130
|
}
|
|
133
|
-
function
|
|
131
|
+
function processParams(params) {
|
|
134
132
|
const properties = {};
|
|
135
133
|
const required = [];
|
|
136
134
|
const pathParams = [];
|
|
@@ -154,6 +152,12 @@ function buildInputSchema(op, params, body, components, defsCache) {
|
|
|
154
152
|
required.push(param.name);
|
|
155
153
|
}
|
|
156
154
|
}
|
|
155
|
+
return { properties, required, pathParams, queryParams, rootSchemas };
|
|
156
|
+
}
|
|
157
|
+
function processBody(op, body) {
|
|
158
|
+
const properties = {};
|
|
159
|
+
const required = [];
|
|
160
|
+
const rootSchemas = [];
|
|
157
161
|
if (body?.schema) {
|
|
158
162
|
const bodySchema = localize(body.schema) ?? {};
|
|
159
163
|
if (op.requestBody?.description && !bodySchema.description) {
|
|
@@ -168,6 +172,14 @@ function buildInputSchema(op, params, body, components, defsCache) {
|
|
|
168
172
|
if (body.required)
|
|
169
173
|
required.push("body");
|
|
170
174
|
}
|
|
175
|
+
return { properties, required, rootSchemas };
|
|
176
|
+
}
|
|
177
|
+
function buildInputSchema(op, params, body, components, defsCache) {
|
|
178
|
+
const parsedParams = processParams(params);
|
|
179
|
+
const parsedBody = processBody(op, body);
|
|
180
|
+
const properties = { ...parsedParams.properties, ...parsedBody.properties };
|
|
181
|
+
const required = [...parsedParams.required, ...parsedBody.required];
|
|
182
|
+
const rootSchemas = [...parsedParams.rootSchemas, ...parsedBody.rootSchemas];
|
|
171
183
|
const inputSchema = { type: "object", properties };
|
|
172
184
|
if (required.length > 0)
|
|
173
185
|
inputSchema.required = required;
|
|
@@ -175,13 +187,9 @@ function buildInputSchema(op, params, body, components, defsCache) {
|
|
|
175
187
|
const defs = buildDefs(rootSchemas, components, defsCache);
|
|
176
188
|
if (defs)
|
|
177
189
|
inputSchema.$defs = defs;
|
|
178
|
-
return { inputSchema, pathParams, queryParams };
|
|
190
|
+
return { inputSchema, pathParams: parsedParams.pathParams, queryParams: parsedParams.queryParams };
|
|
179
191
|
}
|
|
180
|
-
|
|
181
|
-
export function generateTools(doc, nameMax = DEFAULT_NAME_MAX) {
|
|
182
|
-
const components = doc.components?.schemas ?? {};
|
|
183
|
-
// First pass: collect operations and count how often each base name occurs,
|
|
184
|
-
// so we only prepend the category to names that would otherwise collide.
|
|
192
|
+
function collectOperations(doc, components) {
|
|
185
193
|
const entries = [];
|
|
186
194
|
const baseCounts = {};
|
|
187
195
|
for (const [path, item] of Object.entries(doc.paths)) {
|
|
@@ -197,7 +205,9 @@ export function generateTools(doc, nameMax = DEFAULT_NAME_MAX) {
|
|
|
197
205
|
entries.push({ path, method, op, params, body, category, base });
|
|
198
206
|
}
|
|
199
207
|
}
|
|
200
|
-
|
|
208
|
+
return { entries, baseCounts };
|
|
209
|
+
}
|
|
210
|
+
function buildTools(entries, baseCounts, components, nameMax) {
|
|
201
211
|
const tools = [];
|
|
202
212
|
const usedNames = new Set();
|
|
203
213
|
const defsCache = new Map();
|
|
@@ -227,6 +237,15 @@ export function generateTools(doc, nameMax = DEFAULT_NAME_MAX) {
|
|
|
227
237
|
}
|
|
228
238
|
return tools;
|
|
229
239
|
}
|
|
240
|
+
/** Generate one MealieTool per operation in the OpenAPI document. */
|
|
241
|
+
export function generateTools(doc, nameMax = DEFAULT_TOOL_NAME_MAX) {
|
|
242
|
+
const components = doc.components?.schemas ?? {};
|
|
243
|
+
// First pass: collect operations and count how often each base name occurs,
|
|
244
|
+
// so we only prepend the category to names that would otherwise collide.
|
|
245
|
+
const { entries, baseCounts } = collectOperations(doc, components);
|
|
246
|
+
// Second pass: build tools with finalized, unique names.
|
|
247
|
+
return buildTools(entries, baseCounts, components, nameMax);
|
|
248
|
+
}
|
|
230
249
|
/**
|
|
231
250
|
* ⚡ Bolt: Precomputing the exact lowercase and prefix match strings avoids
|
|
232
251
|
* repeatedly calling `toLowerCase()` and allocating template strings for
|
package/dist/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|