@mcpmake/core 0.3.1 → 0.3.2
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/analyzer/goal-crawler.js +1 -1
- package/dist/analyzer/goal-crawler.js.map +1 -1
- package/dist/analyzer/semantic-analyzer.js +1 -1
- package/dist/analyzer/semantic-analyzer.js.map +1 -1
- package/dist/generator/spec-generator.js +1 -1
- package/dist/generator/spec-generator.js.map +1 -1
- package/dist/llm/index.d.ts +2 -2
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +43 -15
- package/dist/llm/index.js.map +1 -1
- package/dist/site-transformer/selector-healer.js +1 -1
- package/dist/site-transformer/selector-healer.js.map +1 -1
- package/dist/transformer/llm-namer.js +1 -1
- package/dist/transformer/llm-namer.js.map +1 -1
- package/dist/utils/fail.d.ts +11 -0
- package/dist/utils/fail.d.ts.map +1 -1
- package/dist/utils/fail.js +76 -10
- package/dist/utils/fail.js.map +1 -1
- package/dist/utils/ssrf-guard.d.ts.map +1 -1
- package/dist/utils/ssrf-guard.js +78 -1
- package/dist/utils/ssrf-guard.js.map +1 -1
- package/package.json +2 -2
|
@@ -24,7 +24,7 @@ const DEFAULT_VIEWPORT = { width: 1280, height: 720 };
|
|
|
24
24
|
export async function goalDirectedCrawl(options) {
|
|
25
25
|
const maxSteps = options.maxSteps ?? DEFAULT_MAX_STEPS;
|
|
26
26
|
const viewport = options.viewport ?? DEFAULT_VIEWPORT;
|
|
27
|
-
const provider = requireLlmProvider('goal-directed crawl (--goal)');
|
|
27
|
+
const provider = await requireLlmProvider('goal-directed crawl (--goal)');
|
|
28
28
|
// Sanitize site-derived text (page titles, link labels/hrefs) before placing
|
|
29
29
|
// it in the LLM prompt: strip control characters and bound the length so a
|
|
30
30
|
// malicious page cannot inject instructions into the navigation decision.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"goal-crawler.js","sourceRoot":"","sources":["../../src/analyzer/goal-crawler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,MAAM,UAAU,GAAG,GAAG,CAAC;AACvB,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAC7B,MAAM,gBAAgB,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAWtD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAyB;IAC/D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,iBAAiB,CAAC;IACvD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,gBAAgB,CAAC;IAEtD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,8BAA8B,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"goal-crawler.js","sourceRoot":"","sources":["../../src/analyzer/goal-crawler.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ const MAX_TOKENS = 4096;
|
|
|
14
14
|
* When ANTHROPIC_API_KEY is not set, returns pages unchanged with a warning.
|
|
15
15
|
*/
|
|
16
16
|
export async function analyzeSemantics(pages, model) {
|
|
17
|
-
const provider = getLlmProvider();
|
|
17
|
+
const provider = await getLlmProvider();
|
|
18
18
|
if (!provider) {
|
|
19
19
|
logger.warn('No LLM provider configured — skipping semantic analysis');
|
|
20
20
|
return pages;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semantic-analyzer.js","sourceRoot":"","sources":["../../src/analyzer/semantic-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAyDjD,MAAM,UAAU,GAAG,IAAI,CAAC;AAExB;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAAuB,EACvB,KAAc;IAEd,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"semantic-analyzer.js","sourceRoot":"","sources":["../../src/analyzer/semantic-analyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ Rules:
|
|
|
13
13
|
- Include a servers array with a base URL
|
|
14
14
|
- Keep it practical — 3-10 operations is typical`;
|
|
15
15
|
export async function generateSpecFromDescription(options) {
|
|
16
|
-
const provider = requireLlmProvider('describe mode');
|
|
16
|
+
const provider = await requireLlmProvider('describe mode');
|
|
17
17
|
let userPrompt = `Generate an OpenAPI 3.0 spec for: ${options.description}`;
|
|
18
18
|
if (options.baseUrl) {
|
|
19
19
|
userPrompt += `\n\nUse this base URL: ${options.baseUrl}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-generator.js","sourceRoot":"","sources":["../../src/generator/spec-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAQrD,MAAM,aAAa,GAAG;;;;;;;;;;iDAU2B,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,OAA4B;IAC5E,MAAM,QAAQ,GAAG,kBAAkB,CAAC,eAAe,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"spec-generator.js","sourceRoot":"","sources":["../../src/generator/spec-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAQrD,MAAM,aAAa,GAAG;;;;;;;;;;iDAU2B,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,OAA4B;IAC5E,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,eAAe,CAAC,CAAC;IAE3D,IAAI,UAAU,GAAG,qCAAqC,OAAO,CAAC,WAAW,EAAE,CAAC;IAC5E,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,UAAU,IAAI,0BAA0B,OAAO,CAAC,OAAO,EAAE,CAAC;IAC5D,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;IAE3D,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC;QAC/C,MAAM,EAAE,aAAa;QACrB,MAAM,EAAE,UAAU;QAClB,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IAEH,8EAA8E;IAC9E,+EAA+E;IAC/E,uEAAuE;IACvE,MAAM,IAAI,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAC7C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;IACJ,CAAC;IAED,+BAA+B;IAC/B,IAAI,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;IAC5F,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/llm/index.d.ts
CHANGED
|
@@ -9,11 +9,11 @@ export declare function resolveProviderKind(): ProviderKind;
|
|
|
9
9
|
* direct `ANTHROPIC_API_KEY` checks did. Required features should call
|
|
10
10
|
* {@link requireLlmProvider} instead so they fail with a clear message.
|
|
11
11
|
*/
|
|
12
|
-
export declare function getLlmProvider(): LlmProvider | null
|
|
12
|
+
export declare function getLlmProvider(): Promise<LlmProvider | null>;
|
|
13
13
|
/**
|
|
14
14
|
* Like {@link getLlmProvider} but throws a provider-aware error instead of
|
|
15
15
|
* returning null — for features that cannot degrade (spec generation, goal
|
|
16
16
|
* crawl).
|
|
17
17
|
*/
|
|
18
|
-
export declare function requireLlmProvider(feature: string): LlmProvider
|
|
18
|
+
export declare function requireLlmProvider(feature: string): Promise<LlmProvider>;
|
|
19
19
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/llm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAkB,MAAM,YAAY,CAAC;AAIjF,cAAc,YAAY,CAAC;AA6E3B,6FAA6F;AAC7F,wBAAgB,mBAAmB,IAAI,YAAY,CAMlD;AAOD;;;;;;GAMG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CA8BlE;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAO9E"}
|
package/dist/llm/index.js
CHANGED
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
* provider options) so core code never needs a provider parameter threaded
|
|
5
5
|
* through every call.
|
|
6
6
|
*/
|
|
7
|
+
import { lookup } from 'node:dns/promises';
|
|
8
|
+
import { isIP } from 'node:net';
|
|
7
9
|
import { logger } from '../utils/logger.js';
|
|
8
10
|
import { isPrivateOrReservedIp, privateHostsAllowed } from '../utils/ssrf-guard.js';
|
|
9
11
|
import { PROVIDER_KINDS } from './types.js';
|
|
@@ -16,13 +18,17 @@ export * from './types.js';
|
|
|
16
18
|
* non-http(s), malformed, and private/loopback/reserved hosts before the URL
|
|
17
19
|
* reaches the SDK.
|
|
18
20
|
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* DNS
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
21
|
+
* This is DNS-aware: a literal private IP or loopback hostname (`localhost` and
|
|
22
|
+
* friends) is rejected on a synchronous fast path, and any other hostname is
|
|
23
|
+
* resolved via DNS so a name like `localtest.me` that maps to `127.0.0.1` is
|
|
24
|
+
* caught too. DNS failure is treated as fatal — we refuse rather than ship the
|
|
25
|
+
* API key to a host we cannot verify is public.
|
|
26
|
+
*
|
|
27
|
+
* Residual limitation (same as {@link assertPublicUrl}): this resolves at
|
|
28
|
+
* config-check time but does not pin DNS at the SDK's socket, so a
|
|
29
|
+
* TOCTOU/DNS-rebinding attacker who flips the record between this lookup and the
|
|
30
|
+
* SDK's own connect can still slip through. SDK-level socket DNS-pinning is out
|
|
31
|
+
* of scope. The `MCPMAKE_ALLOW_PRIVATE_HOSTS` escape hatch (honored via
|
|
26
32
|
* {@link privateHostsAllowed}) is what keeps trusted localhost endpoints like
|
|
27
33
|
* Ollama working; operators must opt in for those.
|
|
28
34
|
*/
|
|
@@ -30,7 +36,7 @@ function isLoopbackHostname(host) {
|
|
|
30
36
|
const h = host.toLowerCase();
|
|
31
37
|
return h === 'localhost' || h === 'localhost.localdomain' || h.endsWith('.localhost');
|
|
32
38
|
}
|
|
33
|
-
function assertSafeBaseUrl(envVar, value) {
|
|
39
|
+
async function assertSafeBaseUrl(envVar, value) {
|
|
34
40
|
let url;
|
|
35
41
|
try {
|
|
36
42
|
url = new URL(value);
|
|
@@ -45,9 +51,31 @@ function assertSafeBaseUrl(envVar, value) {
|
|
|
45
51
|
return;
|
|
46
52
|
// Strip IPv6 brackets from the hostname for literal checks.
|
|
47
53
|
const host = url.hostname.replace(/^\[/, '').replace(/\]$/, '');
|
|
48
|
-
|
|
49
|
-
throw new Error(`${envVar} points at private/loopback host ${
|
|
54
|
+
const refuse = (target) => {
|
|
55
|
+
throw new Error(`${envVar} points at private/loopback host ${target}; refusing to send credentials there. ` +
|
|
50
56
|
`Set MCPMAKE_ALLOW_PRIVATE_HOSTS=1 to allow trusted localhost endpoints (e.g. Ollama).`);
|
|
57
|
+
};
|
|
58
|
+
// Synchronous fast path: literal IP or a loopback hostname.
|
|
59
|
+
if (isIP(host)) {
|
|
60
|
+
if (isPrivateOrReservedIp(host))
|
|
61
|
+
refuse(host);
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
if (isLoopbackHostname(host))
|
|
65
|
+
refuse(host);
|
|
66
|
+
// Non-literal hostname: resolve every address and reject if ANY is private.
|
|
67
|
+
let addresses;
|
|
68
|
+
try {
|
|
69
|
+
addresses = await lookup(host, { all: true });
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
throw new Error(`${envVar} host "${host}" could not be resolved to verify it is public; refusing request.`);
|
|
73
|
+
}
|
|
74
|
+
for (const { address } of addresses) {
|
|
75
|
+
if (isPrivateOrReservedIp(address)) {
|
|
76
|
+
throw new Error(`${envVar} host "${host}" resolves to private/reserved address ${address}; ` +
|
|
77
|
+
`refusing to send credentials there. Set MCPMAKE_ALLOW_PRIVATE_HOSTS=1 to allow.`);
|
|
78
|
+
}
|
|
51
79
|
}
|
|
52
80
|
}
|
|
53
81
|
/** Resolve the configured provider kind from `MCPMAKE_LLM_PROVIDER` (default: anthropic). */
|
|
@@ -71,7 +99,7 @@ function keyVarFor(kind) {
|
|
|
71
99
|
* direct `ANTHROPIC_API_KEY` checks did. Required features should call
|
|
72
100
|
* {@link requireLlmProvider} instead so they fail with a clear message.
|
|
73
101
|
*/
|
|
74
|
-
export function getLlmProvider() {
|
|
102
|
+
export async function getLlmProvider() {
|
|
75
103
|
const kind = resolveProviderKind();
|
|
76
104
|
if (kind === 'anthropic') {
|
|
77
105
|
const apiKey = process.env.ANTHROPIC_API_KEY?.trim();
|
|
@@ -79,14 +107,14 @@ export function getLlmProvider() {
|
|
|
79
107
|
return null;
|
|
80
108
|
const baseURL = process.env.ANTHROPIC_BASE_URL?.trim() || undefined;
|
|
81
109
|
if (baseURL)
|
|
82
|
-
assertSafeBaseUrl('ANTHROPIC_BASE_URL', baseURL);
|
|
110
|
+
await assertSafeBaseUrl('ANTHROPIC_BASE_URL', baseURL);
|
|
83
111
|
return new AnthropicProvider({ apiKey, baseURL });
|
|
84
112
|
}
|
|
85
113
|
// openai / openai-compatible
|
|
86
114
|
const apiKey = process.env.OPENAI_API_KEY?.trim();
|
|
87
115
|
const baseURL = process.env.OPENAI_BASE_URL?.trim() || undefined;
|
|
88
116
|
if (baseURL)
|
|
89
|
-
assertSafeBaseUrl('OPENAI_BASE_URL', baseURL);
|
|
117
|
+
await assertSafeBaseUrl('OPENAI_BASE_URL', baseURL);
|
|
90
118
|
if (kind === 'openai') {
|
|
91
119
|
if (!apiKey)
|
|
92
120
|
return null;
|
|
@@ -105,8 +133,8 @@ export function getLlmProvider() {
|
|
|
105
133
|
* returning null — for features that cannot degrade (spec generation, goal
|
|
106
134
|
* crawl).
|
|
107
135
|
*/
|
|
108
|
-
export function requireLlmProvider(feature) {
|
|
109
|
-
const provider = getLlmProvider();
|
|
136
|
+
export async function requireLlmProvider(feature) {
|
|
137
|
+
const provider = await getLlmProvider();
|
|
110
138
|
if (provider)
|
|
111
139
|
return provider;
|
|
112
140
|
const kind = resolveProviderKind();
|
package/dist/llm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAuC,cAAc,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,cAAc,YAAY,CAAC;AAE3B
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ import { getLlmProvider } from '../llm/index.js';
|
|
|
8
8
|
* Returns a new SelectorSet if healing succeeds, or null on failure.
|
|
9
9
|
*/
|
|
10
10
|
export async function healBrokenSelector(accessibilityTree, brokenSelector, elementDescription, model) {
|
|
11
|
-
const provider = getLlmProvider();
|
|
11
|
+
const provider = await getLlmProvider();
|
|
12
12
|
if (!provider) {
|
|
13
13
|
logger.warn('No LLM provider configured — skipping selector healing');
|
|
14
14
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selector-healer.js","sourceRoot":"","sources":["../../src/site-transformer/selector-healer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,iBAAyB,EACzB,cAA2B,EAC3B,kBAA0B,EAC1B,KAAc;IAEd,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"selector-healer.js","sourceRoot":"","sources":["../../src/site-transformer/selector-healer.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,7 +31,7 @@ const NAMING_SCHEMA = {
|
|
|
31
31
|
* from HAR-captured request/response patterns.
|
|
32
32
|
*/
|
|
33
33
|
export async function improveToolNames(operations, model) {
|
|
34
|
-
const provider = getLlmProvider();
|
|
34
|
+
const provider = await getLlmProvider();
|
|
35
35
|
if (!provider) {
|
|
36
36
|
logger.warn('No LLM provider configured — skipping LLM tool naming');
|
|
37
37
|
return operations;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-namer.js","sourceRoot":"","sources":["../../src/transformer/llm-namer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,aAAa,GAAG;IACpB,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE,KAAK;IAC3B,QAAQ,EAAE,CAAC,cAAc,CAAC;IAC1B,UAAU,EAAE;QACV,YAAY,EAAE;YACZ,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,QAAQ,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,SAAS,CAAC;gBAC7C,UAAU,EAAE;oBACV,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;oBAC1B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC/B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBAC5B;aACF;SACF;KACF;CACO,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,UAAiC,EACjC,KAAc;IAEd,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"llm-namer.js","sourceRoot":"","sources":["../../src/transformer/llm-namer.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/fail.d.ts
CHANGED
|
@@ -22,6 +22,17 @@ type ConsentMode = 'prompt' | 'auto' | 'off';
|
|
|
22
22
|
* directly without invoking `fail()` (which calls `process.exit`).
|
|
23
23
|
*/
|
|
24
24
|
export declare function redactText(input: string): string;
|
|
25
|
+
/**
|
|
26
|
+
* Derive the telemetry command name from argv using a strict allowlist — e.g.
|
|
27
|
+
* `from openapi` or `deploy`. The command name is NEVER taken from arbitrary
|
|
28
|
+
* argv values: only recognized command/subcommand tokens are emitted, so a stray
|
|
29
|
+
* secret or path positional (e.g. `login mfd_secret`, `deploy ./secret.yaml`)
|
|
30
|
+
* can never become the reported command. An unrecognized first token yields `''`.
|
|
31
|
+
*
|
|
32
|
+
* Exported so this parsing contract can be unit-tested directly without invoking
|
|
33
|
+
* `fail()` (which calls `process.exit`).
|
|
34
|
+
*/
|
|
35
|
+
export declare function deriveCommand(): string;
|
|
25
36
|
/** Inputs that decide telemetry consent, injectable so the logic is testable. */
|
|
26
37
|
export interface TelemetryEnv {
|
|
27
38
|
/** The mode read from config (anything else is treated as the `prompt` default). */
|
package/dist/utils/fail.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fail.d.ts","sourceRoot":"","sources":["../../src/utils/fail.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAgCH,KAAK,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"fail.d.ts","sourceRoot":"","sources":["../../src/utils/fail.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAgCH,KAAK,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;AA8F7C;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIhD;AAyCD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAWtC;AAoBD,iFAAiF;AACjF,MAAM,WAAW,YAAY;IAC3B,oFAAoF;IACpF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mDAAmD;IACnD,EAAE,CAAC,EAAE,OAAO,CAAC;CACd;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,YAAY,GAAG,WAAW,CAWnE;AAoED;;;GAGG;AACH,wBAAsB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAuB3E"}
|
package/dist/utils/fail.js
CHANGED
|
@@ -84,9 +84,32 @@ function redactSecrets(input) {
|
|
|
84
84
|
// Query-string secrets: `token=`, `api_key=`, `access_token=`, `key=`, `sig=`.
|
|
85
85
|
.replace(/\b(access_token|api_key|apikey|token|sig|key)=[^\s&'"]+/gi, '$1=[redacted]'));
|
|
86
86
|
}
|
|
87
|
-
/**
|
|
88
|
-
|
|
89
|
-
|
|
87
|
+
/**
|
|
88
|
+
* Strip mcpmake tokens — both the legacy `mf_…` and the current `mfd_…` deploy
|
|
89
|
+
* tokens. Deploy tokens are NOT lowercase-hex (e.g. `mfd_Secret-ABC123`), so the
|
|
90
|
+
* value class must cover the full token charset. The boundary is `\b` plus a
|
|
91
|
+
* single `+` quantifier (no nested quantifiers — no catastrophic backtracking).
|
|
92
|
+
* The `mf`/`mfd` prefix is preserved so the redacted report stays informative.
|
|
93
|
+
*/
|
|
94
|
+
function redactMcpmakeTokens(input) {
|
|
95
|
+
return input.replace(/\bmf(d?)_[A-Za-z0-9._-]+/g, 'mf$1_[redacted]');
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Strip well-known LLM provider API keys by their published shapes, using
|
|
99
|
+
* conservative token boundaries. Order matters: the more specific `sk-ant-` and
|
|
100
|
+
* `sk-proj-` prefixes are matched before the generic `sk-…` so they keep their
|
|
101
|
+
* descriptive prefix in the output. Every value class is a single `+`/`{n,}`
|
|
102
|
+
* (no nested quantifiers — no catastrophic backtracking).
|
|
103
|
+
*
|
|
104
|
+
* - Anthropic: `sk-ant-…`
|
|
105
|
+
* - OpenAI project keys: `sk-proj-…`
|
|
106
|
+
* - OpenAI legacy keys: `sk-<>=10 chars>` (the generic fallback).
|
|
107
|
+
*/
|
|
108
|
+
function redactApiKeys(input) {
|
|
109
|
+
return input
|
|
110
|
+
.replace(/\bsk-ant-[A-Za-z0-9_-]+/g, 'sk-ant-[redacted]')
|
|
111
|
+
.replace(/\bsk-proj-[A-Za-z0-9_-]+/g, 'sk-proj-[redacted]')
|
|
112
|
+
.replace(/\bsk-[A-Za-z0-9]{10,}/g, 'sk-[redacted]');
|
|
90
113
|
}
|
|
91
114
|
/** Strip URL query strings (`?foo=bar` → `?[redacted]`) so creds in URLs don't leak. */
|
|
92
115
|
function redactQueryStrings(input) {
|
|
@@ -99,7 +122,7 @@ function redactQueryStrings(input) {
|
|
|
99
122
|
* directly without invoking `fail()` (which calls `process.exit`).
|
|
100
123
|
*/
|
|
101
124
|
export function redactText(input) {
|
|
102
|
-
return redactQueryStrings(
|
|
125
|
+
return redactQueryStrings(redactApiKeys(redactMcpmakeTokens(redactSecrets(redactHomePaths(input)))));
|
|
103
126
|
}
|
|
104
127
|
/** @deprecated internal alias — prefer the exported `redactText`. */
|
|
105
128
|
const redact = redactText;
|
|
@@ -107,20 +130,63 @@ function truncate(input, max) {
|
|
|
107
130
|
return input.length > max ? input.slice(0, max) : input;
|
|
108
131
|
}
|
|
109
132
|
// --- Payload assembly ------------------------------------------------------
|
|
133
|
+
/** Known top-level commands. Anything not in this set is never reported. */
|
|
134
|
+
const KNOWN_COMMANDS = new Set([
|
|
135
|
+
'from',
|
|
136
|
+
'merge',
|
|
137
|
+
'verify',
|
|
138
|
+
'update',
|
|
139
|
+
'login',
|
|
140
|
+
'logout',
|
|
141
|
+
'whoami',
|
|
142
|
+
'deploy',
|
|
143
|
+
'publish',
|
|
144
|
+
'lint',
|
|
145
|
+
'diff',
|
|
146
|
+
'bundle',
|
|
147
|
+
'ci',
|
|
148
|
+
'rescan',
|
|
149
|
+
'pricing',
|
|
150
|
+
]);
|
|
151
|
+
/** Known `from <subcommand>` spec sources. */
|
|
152
|
+
const KNOWN_FROM_SUBCOMMANDS = new Set([
|
|
153
|
+
'openapi',
|
|
154
|
+
'har',
|
|
155
|
+
'url',
|
|
156
|
+
'describe',
|
|
157
|
+
'postman',
|
|
158
|
+
'website',
|
|
159
|
+
'stainless',
|
|
160
|
+
]);
|
|
110
161
|
/**
|
|
111
|
-
*
|
|
112
|
-
*
|
|
162
|
+
* Derive the telemetry command name from argv using a strict allowlist — e.g.
|
|
163
|
+
* `from openapi` or `deploy`. The command name is NEVER taken from arbitrary
|
|
164
|
+
* argv values: only recognized command/subcommand tokens are emitted, so a stray
|
|
165
|
+
* secret or path positional (e.g. `login mfd_secret`, `deploy ./secret.yaml`)
|
|
166
|
+
* can never become the reported command. An unrecognized first token yields `''`.
|
|
167
|
+
*
|
|
168
|
+
* Exported so this parsing contract can be unit-tested directly without invoking
|
|
169
|
+
* `fail()` (which calls `process.exit`).
|
|
113
170
|
*/
|
|
114
|
-
function deriveCommand() {
|
|
171
|
+
export function deriveCommand() {
|
|
115
172
|
const tokens = process.argv.slice(2).filter((t) => !t.startsWith('-'));
|
|
116
|
-
|
|
173
|
+
const first = tokens[0];
|
|
174
|
+
if (!first || !KNOWN_COMMANDS.has(first)) {
|
|
175
|
+
return '';
|
|
176
|
+
}
|
|
177
|
+
if (first === 'from') {
|
|
178
|
+
const sub = tokens[1];
|
|
179
|
+
return sub && KNOWN_FROM_SUBCOMMANDS.has(sub) ? `from ${sub}` : 'from';
|
|
180
|
+
}
|
|
181
|
+
return first;
|
|
117
182
|
}
|
|
118
183
|
function buildPayload(message, error) {
|
|
119
184
|
const errorMessage = error instanceof Error && error.message ? error.message : message;
|
|
120
185
|
const stack = error instanceof Error && error.stack ? error.stack : '';
|
|
121
186
|
return {
|
|
122
|
-
//
|
|
123
|
-
//
|
|
187
|
+
// `deriveCommand` already emits only allowlisted command tokens, so it can
|
|
188
|
+
// never contain a secret; the `redact()` pass is kept as a defense-in-depth
|
|
189
|
+
// second layer in case the allowlist ever grows a credential-shaped command.
|
|
124
190
|
command: truncate(redact(deriveCommand()), CAPS.command),
|
|
125
191
|
errorMessage: truncate(redact(errorMessage), CAPS.errorMessage),
|
|
126
192
|
stack: truncate(redact(stack), CAPS.stack),
|
package/dist/utils/fail.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fail.js","sourceRoot":"","sources":["../../src/utils/fail.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAEvD;;;;;;GAMG;AACH,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9E,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAA0B,CAAC;QAC/E,OAAO,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;AAErC,mFAAmF;AACnF,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAIhC,+EAA+E;AAC/E,MAAM,IAAI,GAAG;IACX,OAAO,EAAE,GAAG;IACZ,YAAY,EAAE,IAAI;IAClB,KAAK,EAAE,MAAM;IACb,UAAU,EAAE,EAAE;IACd,QAAQ,EAAE,EAAE;IACZ,WAAW,EAAE,EAAE;CACP,CAAC;AAWX,8EAA8E;AAE9E,oFAAoF;AACpF,SAAS,eAAe,CAAC,KAAa;IACpC,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC1B,IAAI,IAAI,EAAE,CAAC;QACT,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IACD,2EAA2E;IAC3E,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;IACrD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,CACL,KAAK;QACH,wEAAwE;SACvE,OAAO,CAAC,0BAA0B,EAAE,eAAe,CAAC;QACrD,sEAAsE;SACrE,OAAO,CAAC,wCAAwC,EAAE,gBAAgB,CAAC;QACpE,oEAAoE;SACnE,OAAO,CAAC,2CAA2C,EAAE,gBAAgB,CAAC;QACvE,+EAA+E;SAC9E,OAAO,CAAC,2DAA2D,EAAE,eAAe,CAAC,CACzF,CAAC;AACJ,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"fail.js","sourceRoot":"","sources":["../../src/utils/fail.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssrf-guard.d.ts","sourceRoot":"","sources":["../../src/utils/ssrf-guard.ts"],"names":[],"mappings":"AAyBA,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;
|
|
1
|
+
{"version":3,"file":"ssrf-guard.d.ts","sourceRoot":"","sources":["../../src/utils/ssrf-guard.ts"],"names":[],"mappings":"AAyBA,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAoHD,uFAAuF;AACvF,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAKzD;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0CtE"}
|
package/dist/utils/ssrf-guard.js
CHANGED
|
@@ -58,11 +58,88 @@ function isPrivateIpv4(ip) {
|
|
|
58
58
|
return true; // 224.0.0.0/4 multicast + 240.0.0.0/4 reserved + 255.* broadcast
|
|
59
59
|
return false;
|
|
60
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Parse an IPv6 literal into its 8 hextets (16-bit groups), or null if malformed.
|
|
63
|
+
* Handles `::` compression (incl. leading/trailing `::`) and a trailing embedded
|
|
64
|
+
* dotted-decimal IPv4 (`::ffff:127.0.0.1` → its low 32 bits become two hextets).
|
|
65
|
+
*/
|
|
66
|
+
function ipv6Hextets(raw) {
|
|
67
|
+
let ip = raw.toLowerCase();
|
|
68
|
+
// Drop a zone id (`fe80::1%eth0`) if present — irrelevant to classification.
|
|
69
|
+
const zone = ip.indexOf('%');
|
|
70
|
+
if (zone !== -1)
|
|
71
|
+
ip = ip.slice(0, zone);
|
|
72
|
+
if (ip === '')
|
|
73
|
+
return null;
|
|
74
|
+
// Expand a trailing embedded IPv4 (e.g. `::ffff:1.2.3.4`) into two hextets.
|
|
75
|
+
const lastColon = ip.lastIndexOf(':');
|
|
76
|
+
const tail = lastColon === -1 ? ip : ip.slice(lastColon + 1);
|
|
77
|
+
if (tail.includes('.')) {
|
|
78
|
+
const octets = ipv4Octets(tail);
|
|
79
|
+
if (!octets)
|
|
80
|
+
return null;
|
|
81
|
+
const [a, b, c, d] = octets;
|
|
82
|
+
const hextetTail = `${((a << 8) | b).toString(16)}:${((c << 8) | d).toString(16)}`;
|
|
83
|
+
ip = (lastColon === -1 ? '' : ip.slice(0, lastColon + 1)) + hextetTail;
|
|
84
|
+
}
|
|
85
|
+
const parseGroups = (s) => {
|
|
86
|
+
if (s === '')
|
|
87
|
+
return [];
|
|
88
|
+
const out = [];
|
|
89
|
+
for (const g of s.split(':')) {
|
|
90
|
+
if (g === '' || g.length > 4 || !/^[0-9a-f]+$/.test(g))
|
|
91
|
+
return null;
|
|
92
|
+
out.push(parseInt(g, 16));
|
|
93
|
+
}
|
|
94
|
+
return out;
|
|
95
|
+
};
|
|
96
|
+
const dbl = ip.indexOf('::');
|
|
97
|
+
let groups;
|
|
98
|
+
if (dbl === -1) {
|
|
99
|
+
const g = parseGroups(ip);
|
|
100
|
+
if (!g || g.length !== 8)
|
|
101
|
+
return null;
|
|
102
|
+
groups = g;
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
if (ip.indexOf('::', dbl + 1) !== -1)
|
|
106
|
+
return null; // more than one `::`
|
|
107
|
+
const head = parseGroups(ip.slice(0, dbl));
|
|
108
|
+
const tailGroups = parseGroups(ip.slice(dbl + 2));
|
|
109
|
+
if (!head || !tailGroups)
|
|
110
|
+
return null;
|
|
111
|
+
const fill = 8 - head.length - tailGroups.length;
|
|
112
|
+
if (fill < 0)
|
|
113
|
+
return null;
|
|
114
|
+
groups = [...head, ...new Array(fill).fill(0), ...tailGroups];
|
|
115
|
+
}
|
|
116
|
+
return groups.length === 8 ? groups : null;
|
|
117
|
+
}
|
|
61
118
|
function isPrivateIpv6(raw) {
|
|
62
119
|
const ip = raw.toLowerCase();
|
|
63
120
|
if (ip === '::1' || ip === '::')
|
|
64
121
|
return true; // loopback / unspecified
|
|
65
|
-
// IPv4
|
|
122
|
+
// Classify embedded IPv4 from the BINARY address, not a textual regex: WHATWG
|
|
123
|
+
// `new URL()` canonicalizes `[::ffff:127.0.0.1]` to hex (`::ffff:7f00:1`), so a
|
|
124
|
+
// dotted-decimal-only check misses the canonical form. We parse to hextets and
|
|
125
|
+
// reconstruct the v4 octets from the low two groups for both IPv4-mapped
|
|
126
|
+
// (`::ffff:X:Y`, the 6th hextet is 0xffff) and NAT64 (`64:ff9b::X:Y`).
|
|
127
|
+
const h = ipv6Hextets(ip);
|
|
128
|
+
if (h) {
|
|
129
|
+
const reconstructV4 = () => {
|
|
130
|
+
const [g6, g7] = [h[6], h[7]];
|
|
131
|
+
return `${g6 >> 8}.${g6 & 0xff}.${g7 >> 8}.${g7 & 0xff}`;
|
|
132
|
+
};
|
|
133
|
+
// ::ffff:X:Y — IPv4-mapped (first 5 hextets 0, 6th = 0xffff).
|
|
134
|
+
if (h[0] === 0 && h[1] === 0 && h[2] === 0 && h[3] === 0 && h[4] === 0 && h[5] === 0xffff) {
|
|
135
|
+
return isPrivateIpv4(reconstructV4());
|
|
136
|
+
}
|
|
137
|
+
// 64:ff9b::X:Y — NAT64 well-known prefix (64:ff9b::/96).
|
|
138
|
+
if (h[0] === 0x64 && h[1] === 0xff9b && h[2] === 0 && h[3] === 0 && h[4] === 0 && h[5] === 0) {
|
|
139
|
+
return isPrivateIpv4(reconstructV4());
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
// Belt-and-suspenders: keep the dotted-decimal textual path working too.
|
|
66
143
|
const mapped = ip.match(/(?:::ffff:|::ffff:0:|64:ff9b::)(\d+\.\d+\.\d+\.\d+)$/);
|
|
67
144
|
if (mapped)
|
|
68
145
|
return isPrivateIpv4(mapped[1]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssrf-guard.js","sourceRoot":"","sources":["../../src/utils/ssrf-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,SAAS,GAAG,6BAA6B,CAAC;AAEhD,MAAM,UAAU,mBAAmB;IACjC,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC;AAC7E,CAAC;AAED,kFAAkF;AAClF,SAAS,UAAU,CAAC,EAAU;IAC5B,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5E,OAAO,IAAwC,CAAC;AAClD,CAAC;AAED,SAAS,aAAa,CAAC,EAAU;IAC/B,MAAM,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;IACzB,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IACjB,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,2BAA2B;IACrD,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC,CAAC,qBAAqB;IAChD,IAAI,CAAC,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC,CAAC,uBAAuB;IACnD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC,CAAC,6CAA6C;IACtF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC,CAAC,wBAAwB;IAC1E,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC,CAAC,yBAAyB;IAClE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC,CAAC,sBAAsB;IACzE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,6BAA6B;IAClF,IAAI,CAAC,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC,CAAC,iEAAiE;IAC5F,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,GAAW;IAChC,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAC7B,IAAI,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC,CAAC,yBAAyB;IACvE,
|
|
1
|
+
{"version":3,"file":"ssrf-guard.js","sourceRoot":"","sources":["../../src/utils/ssrf-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,SAAS,GAAG,6BAA6B,CAAC;AAEhD,MAAM,UAAU,mBAAmB;IACjC,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC;AAC7E,CAAC;AAED,kFAAkF;AAClF,SAAS,UAAU,CAAC,EAAU;IAC5B,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5E,OAAO,IAAwC,CAAC;AAClD,CAAC;AAED,SAAS,aAAa,CAAC,EAAU;IAC/B,MAAM,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;IACzB,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IACjB,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,2BAA2B;IACrD,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC,CAAC,qBAAqB;IAChD,IAAI,CAAC,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC,CAAC,uBAAuB;IACnD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC,CAAC,6CAA6C;IACtF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC,CAAC,wBAAwB;IAC1E,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC,CAAC,yBAAyB;IAClE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC,CAAC,sBAAsB;IACzE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,6BAA6B;IAClF,IAAI,CAAC,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC,CAAC,iEAAiE;IAC5F,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAAC,GAAW;IAC9B,IAAI,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAC3B,6EAA6E;IAC7E,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,IAAI,KAAK,CAAC,CAAC;QAAE,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACxC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAE3B,4EAA4E;IAC5E,MAAM,SAAS,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IAC7D,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC;QAC5B,MAAM,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QACnF,EAAE,GAAG,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;IACzE,CAAC;IAED,MAAM,WAAW,GAAG,CAAC,CAAS,EAAmB,EAAE;QACjD,IAAI,CAAC,KAAK,EAAE;YAAE,OAAO,EAAE,CAAC;QACxB,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;YACpE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,MAAgB,CAAC;IACrB,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;QACf,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACtC,MAAM,GAAG,CAAC,CAAC;IACb,CAAC;SAAM,CAAC;QACN,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC,CAAC,qBAAqB;QACxE,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QACtC,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QACjD,IAAI,IAAI,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1B,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC;AAED,SAAS,aAAa,CAAC,GAAW;IAChC,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAC7B,IAAI,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC,CAAC,yBAAyB;IAEvE,8EAA8E;IAC9E,gFAAgF;IAChF,+EAA+E;IAC/E,yEAAyE;IACzE,uEAAuE;IACvE,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAC1B,IAAI,CAAC,EAAE,CAAC;QACN,MAAM,aAAa,GAAG,GAAW,EAAE;YACjC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9B,OAAO,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;QAC3D,CAAC,CAAC;QACF,8DAA8D;QAC9D,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;YAC1F,OAAO,aAAa,CAAC,aAAa,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,yDAAyD;QACzD,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7F,OAAO,aAAa,CAAC,aAAa,EAAE,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAChF,IAAI,MAAM;QAAE,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5C,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;QAC9F,OAAO,IAAI,CAAC,CAAC,uBAAuB;IACtC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,wBAAwB;IACrF,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;QAC9F,OAAO,IAAI,CAAC,CAAC,kCAAkC;IACjD,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,qBAAqB;IAC3D,OAAO,KAAK,CAAC;AACf,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,qBAAqB,CAAC,EAAU;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;IACtB,IAAI,IAAI,KAAK,CAAC;QAAE,OAAO,aAAa,CAAC,EAAE,CAAC,CAAC;IACzC,IAAI,IAAI,KAAK,CAAC;QAAE,OAAO,aAAa,CAAC,EAAE,CAAC,CAAC;IACzC,OAAO,KAAK,CAAC,CAAC,oBAAoB;AACpC,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,SAAiB;IACrD,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,gBAAgB,SAAS,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,6BAA6B,SAAS,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,mBAAmB,EAAE;QAAE,OAAO;IAElC,4DAA4D;IAC5D,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAEhE,mDAAmD;IACnD,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACf,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CACb,+CAA+C,IAAI,SAAS,SAAS,eAAe,CACrF,CAAC;QACJ,CAAC;QACD,OAAO;IACT,CAAC;IAED,4EAA4E;IAC5E,IAAI,SAAgC,CAAC;IACrC,IAAI,CAAC;QACH,SAAS,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,6CAA6C,CAAC,CAAC;IAC7F,CAAC;IACD,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,SAAS,EAAE,CAAC;QACpC,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACb,2BAA2B,IAAI,0CAA0C,OAAO,GAAG;gBACjF,QAAQ,SAAS,eAAe,CACnC,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mcpmake/core",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "Shared generation library for mcpmake — parse APIs (OpenAPI/HAR/Postman/websites) and emit MCP servers.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"test": "vitest run"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@anthropic-ai/sdk": "^0.
|
|
31
|
+
"@anthropic-ai/sdk": "^0.91.1",
|
|
32
32
|
"@apidevtools/swagger-parser": "^12.1.0",
|
|
33
33
|
"citty": "^0.1.6",
|
|
34
34
|
"consola": "^3.4.2",
|