@mcpmake/core 0.2.1 → 0.2.3
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/emitter/site-templates/dockerfile.hbs +6 -2
- package/dist/emitter/site-templates/package.json.hbs +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/transformer/index.d.ts +2 -1
- package/dist/transformer/index.d.ts.map +1 -1
- package/dist/transformer/index.js +2 -1
- package/dist/transformer/index.js.map +1 -1
- package/dist/transformer/naming.d.ts +17 -0
- package/dist/transformer/naming.d.ts.map +1 -1
- package/dist/transformer/naming.js +86 -0
- package/dist/transformer/naming.js.map +1 -1
- package/dist/transformer/resource-namer.d.ts +20 -0
- package/dist/transformer/resource-namer.d.ts.map +1 -0
- package/dist/transformer/resource-namer.js +31 -0
- package/dist/transformer/resource-namer.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
# Keep this base-image tag IN LOCKSTEP with the "playwright" version in
|
|
2
|
+
# package.json.hbs (currently 1.59.1). Playwright requires the library version
|
|
3
|
+
# and the bundled browser binaries to match, or chromium.launch() fails at
|
|
4
|
+
# runtime ("browser not found"). Bump both together.
|
|
5
|
+
FROM mcr.microsoft.com/playwright:v1.59.1-noble AS builder
|
|
2
6
|
|
|
3
7
|
WORKDIR /app
|
|
4
8
|
COPY package.json package-lock.json ./
|
|
@@ -7,7 +11,7 @@ COPY tsconfig.json ./
|
|
|
7
11
|
COPY src/ src/
|
|
8
12
|
RUN npm run build
|
|
9
13
|
|
|
10
|
-
FROM mcr.microsoft.com/playwright:v1.
|
|
14
|
+
FROM mcr.microsoft.com/playwright:v1.59.1-noble
|
|
11
15
|
|
|
12
16
|
LABEL org.opencontainers.image.title="{{serverName}}"
|
|
13
17
|
ENV NODE_ENV=production
|
package/dist/index.d.ts
CHANGED
|
@@ -22,7 +22,8 @@ export type { FilterOptions } from './parser/har-filter.js';
|
|
|
22
22
|
export { normalizeEntry } from './parser/har-normalizer.js';
|
|
23
23
|
export type { NormalizedEntry, PathParam, QueryParam } from './parser/har-normalizer.js';
|
|
24
24
|
export { loadPostmanCollection } from './parser/postman-loader.js';
|
|
25
|
-
export { toToolName, toToolTitle, toFileName, toFunctionName } from './transformer/naming.js';
|
|
25
|
+
export { toToolName, toToolTitle, toFileName, toFunctionName, deriveResourceName, } from './transformer/naming.js';
|
|
26
|
+
export { resourceTreeNames } from './transformer/resource-namer.js';
|
|
26
27
|
export { detectAuthSchemes } from './transformer/auth-detector.js';
|
|
27
28
|
export { buildToolDefinition, buildAllTools } from './transformer/tool-builder.js';
|
|
28
29
|
export { filterOperations } from './transformer/operation-filter.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAKxE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,YAAY,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACzF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAKnE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -26,7 +26,8 @@ export { loadPostmanCollection } from './parser/postman-loader.js';
|
|
|
26
26
|
// ---------------------------------------------------------------------------
|
|
27
27
|
// Transformer (operations -> tools/resources/prompts)
|
|
28
28
|
// ---------------------------------------------------------------------------
|
|
29
|
-
export { toToolName, toToolTitle, toFileName, toFunctionName } from './transformer/naming.js';
|
|
29
|
+
export { toToolName, toToolTitle, toFileName, toFunctionName, deriveResourceName, } from './transformer/naming.js';
|
|
30
|
+
export { resourceTreeNames } from './transformer/resource-namer.js';
|
|
30
31
|
export { detectAuthSchemes } from './transformer/auth-detector.js';
|
|
31
32
|
export { buildToolDefinition, buildAllTools } from './transformer/tool-builder.js';
|
|
32
33
|
export { filterOperations } from './transformer/operation-filter.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,8EAA8E;AAC9E,4BAA4B;AAC5B,8EAA8E;AAC9E,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,8EAA8E;AAC9E,6CAA6C;AAC7C,8EAA8E;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,8EAA8E;AAC9E,sDAAsD;AACtD,8EAA8E;AAC9E,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export { toToolName, toToolTitle, toFileName, toFunctionName } from './naming.js';
|
|
1
|
+
export { toToolName, toToolTitle, toFileName, toFunctionName, deriveResourceName, } from './naming.js';
|
|
2
|
+
export { resourceTreeNames } from './resource-namer.js';
|
|
2
3
|
export { detectAuthSchemes } from './auth-detector.js';
|
|
3
4
|
export { buildToolDefinition, buildAllTools } from './tool-builder.js';
|
|
4
5
|
export { clusterEntries } from './har-clusterer.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transformer/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transformer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,WAAW,EACX,UAAU,EACV,cAAc,EACd,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,0BAA0B,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export { toToolName, toToolTitle, toFileName, toFunctionName } from './naming.js';
|
|
1
|
+
export { toToolName, toToolTitle, toFileName, toFunctionName, deriveResourceName, } from './naming.js';
|
|
2
|
+
export { resourceTreeNames } from './resource-namer.js';
|
|
2
3
|
export { detectAuthSchemes } from './auth-detector.js';
|
|
3
4
|
export { buildToolDefinition, buildAllTools } from './tool-builder.js';
|
|
4
5
|
export { clusterEntries } from './har-clusterer.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transformer/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transformer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,WAAW,EACX,UAAU,EACV,cAAc,EACd,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,0BAA0B,CAAC"}
|
|
@@ -2,4 +2,21 @@ export declare function toToolName(operationId: string): string;
|
|
|
2
2
|
export declare function toToolTitle(operationId: string): string;
|
|
3
3
|
export declare function toFileName(operationId: string): string;
|
|
4
4
|
export declare function toFunctionName(operationId: string): string;
|
|
5
|
+
/**
|
|
6
|
+
* Derive a Stainless-style tool name from an HTTP method + path's resource tree,
|
|
7
|
+
* instead of the operationId. Mirrors the REST resource/method convention:
|
|
8
|
+
*
|
|
9
|
+
* GET /accounts -> list_accounts
|
|
10
|
+
* POST /accounts -> create_account
|
|
11
|
+
* GET /accounts/{id} -> get_account
|
|
12
|
+
* PUT /accounts/{id} -> update_account
|
|
13
|
+
* DELETE /accounts/{id} -> delete_account
|
|
14
|
+
* GET /accounts/{id}/cards -> list_account_cards
|
|
15
|
+
* GET /accounts/{id}/cards/{cid} -> get_account_card
|
|
16
|
+
* POST /accounts/{id}/close -> close_account (custom action verb)
|
|
17
|
+
*
|
|
18
|
+
* Returns '' when the path has no literal (resource) segments to name from, so
|
|
19
|
+
* callers can fall back to the operationId.
|
|
20
|
+
*/
|
|
21
|
+
export declare function deriveResourceName(method: string, path: string): string;
|
|
5
22
|
//# sourceMappingURL=naming.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../../src/transformer/naming.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAMvD;AAED,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAMtD;AAED,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAG1D"}
|
|
1
|
+
{"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../../src/transformer/naming.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAMvD;AAED,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAMtD;AAED,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAG1D;AA2BD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAuDvE"}
|
|
@@ -28,4 +28,90 @@ function toSnakeCase(str) {
|
|
|
28
28
|
.replace(/^_+|_+$/g, '')
|
|
29
29
|
.replace(/_+/g, '_');
|
|
30
30
|
}
|
|
31
|
+
const PARAM_SEGMENT = /^[:{].*[}]?$/; // {id}, {id} or :id style path params
|
|
32
|
+
function isParamSegment(seg) {
|
|
33
|
+
return PARAM_SEGMENT.test(seg) || seg.startsWith('{') || seg.startsWith(':');
|
|
34
|
+
}
|
|
35
|
+
/** Naive English singularization — dependency-free, good enough for resource nouns. */
|
|
36
|
+
function singularize(word) {
|
|
37
|
+
if (/ies$/i.test(word))
|
|
38
|
+
return word.replace(/ies$/i, 'y');
|
|
39
|
+
if (/(s|x|z|ch|sh)es$/i.test(word))
|
|
40
|
+
return word.replace(/es$/i, '');
|
|
41
|
+
if (/ss$/i.test(word))
|
|
42
|
+
return word; // "address" stays "address"
|
|
43
|
+
if (/s$/i.test(word))
|
|
44
|
+
return word.replace(/s$/i, '');
|
|
45
|
+
return word;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Derive a Stainless-style tool name from an HTTP method + path's resource tree,
|
|
49
|
+
* instead of the operationId. Mirrors the REST resource/method convention:
|
|
50
|
+
*
|
|
51
|
+
* GET /accounts -> list_accounts
|
|
52
|
+
* POST /accounts -> create_account
|
|
53
|
+
* GET /accounts/{id} -> get_account
|
|
54
|
+
* PUT /accounts/{id} -> update_account
|
|
55
|
+
* DELETE /accounts/{id} -> delete_account
|
|
56
|
+
* GET /accounts/{id}/cards -> list_account_cards
|
|
57
|
+
* GET /accounts/{id}/cards/{cid} -> get_account_card
|
|
58
|
+
* POST /accounts/{id}/close -> close_account (custom action verb)
|
|
59
|
+
*
|
|
60
|
+
* Returns '' when the path has no literal (resource) segments to name from, so
|
|
61
|
+
* callers can fall back to the operationId.
|
|
62
|
+
*/
|
|
63
|
+
export function deriveResourceName(method, path) {
|
|
64
|
+
const segs = path.split('/').filter(Boolean);
|
|
65
|
+
if (segs.length === 0)
|
|
66
|
+
return '';
|
|
67
|
+
const last = segs[segs.length - 1];
|
|
68
|
+
const endsWithItem = isParamSegment(last);
|
|
69
|
+
let literals = segs.filter((s) => !isParamSegment(s));
|
|
70
|
+
if (literals.length === 0)
|
|
71
|
+
return '';
|
|
72
|
+
const m = method.toLowerCase();
|
|
73
|
+
// Custom action: a trailing literal that sits right after a path param and is
|
|
74
|
+
// not a plural noun (e.g. /accounts/{id}/close) reads as a verb on the parent
|
|
75
|
+
// resource, not a sub-collection (/accounts/{id}/cards).
|
|
76
|
+
let action;
|
|
77
|
+
if (!endsWithItem && segs.length >= 2 && isParamSegment(segs[segs.length - 2])) {
|
|
78
|
+
const lastLiteral = literals[literals.length - 1];
|
|
79
|
+
if (!/s$/i.test(lastLiteral)) {
|
|
80
|
+
action = lastLiteral;
|
|
81
|
+
literals = literals.slice(0, -1);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
if (literals.length === 0)
|
|
85
|
+
return ''; // action with no parent resource → give up
|
|
86
|
+
let verb;
|
|
87
|
+
if (action) {
|
|
88
|
+
verb = action;
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
switch (m) {
|
|
92
|
+
case 'get':
|
|
93
|
+
case 'head':
|
|
94
|
+
verb = endsWithItem ? 'get' : 'list';
|
|
95
|
+
break;
|
|
96
|
+
case 'post':
|
|
97
|
+
verb = endsWithItem ? 'create' : 'create';
|
|
98
|
+
break;
|
|
99
|
+
case 'put':
|
|
100
|
+
case 'patch':
|
|
101
|
+
verb = 'update';
|
|
102
|
+
break;
|
|
103
|
+
case 'delete':
|
|
104
|
+
verb = 'delete';
|
|
105
|
+
break;
|
|
106
|
+
default:
|
|
107
|
+
verb = m;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
const terminal = literals[literals.length - 1];
|
|
111
|
+
const parents = literals.slice(0, -1).map(singularize);
|
|
112
|
+
// Keep the terminal noun plural only for collection listing (list_accounts).
|
|
113
|
+
const terminalNoun = verb === 'list' && !action ? terminal : singularize(terminal);
|
|
114
|
+
const chain = [...parents, terminalNoun].join('_');
|
|
115
|
+
return toSnakeCase(`${verb}_${chain}`);
|
|
116
|
+
}
|
|
31
117
|
//# sourceMappingURL=naming.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"naming.js","sourceRoot":"","sources":["../../src/transformer/naming.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,WAAmB;IAC5C,OAAO,WAAW,CAAC,WAAW,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,WAAmB;IAC7C,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;IACvC,OAAO,KAAK;SACT,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAClD,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,WAAmB;IAC5C,OAAO,WAAW,CAAC,WAAW,CAAC;SAC5B,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;SAClB,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;SACpB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;SACrB,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,WAAmB;IAChD,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;IACvC,OAAO,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,OAAO,GAAG;SACP,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;SACtC,OAAO,CAAC,sBAAsB,EAAE,OAAO,CAAC;SACxC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;SACxB,WAAW,EAAE;SACb,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACzB,CAAC"}
|
|
1
|
+
{"version":3,"file":"naming.js","sourceRoot":"","sources":["../../src/transformer/naming.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { OperationDescriptor } from '../types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Deterministic, offline tool naming from the REST resource tree (method+path),
|
|
4
|
+
* the Stainless-style convention (`accounts.create` → `create_account`).
|
|
5
|
+
*
|
|
6
|
+
* Rewrites each operation's `operationId` to the derived resource name so the
|
|
7
|
+
* rest of the pipeline (tool name/title/file/function + collision handling) all
|
|
8
|
+
* flow from it. Unlike `improveToolNames` (LLM, needs an API key), this is free,
|
|
9
|
+
* deterministic, and requires no network.
|
|
10
|
+
*
|
|
11
|
+
* Collision-safe: if a derived name is empty (no resource segment) or already
|
|
12
|
+
* claimed by an earlier operation, the original `operationId` is kept so the
|
|
13
|
+
* first claimant wins and no two operations get the same id here. Any remaining
|
|
14
|
+
* cross-source duplicates are still handled downstream by `buildAllTools`.
|
|
15
|
+
*
|
|
16
|
+
* `x-mcp-name` per-tool overrides are applied later in `buildToolDefinition` and
|
|
17
|
+
* always take precedence over this.
|
|
18
|
+
*/
|
|
19
|
+
export declare function resourceTreeNames(operations: OperationDescriptor[]): OperationDescriptor[];
|
|
20
|
+
//# sourceMappingURL=resource-namer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-namer.d.ts","sourceRoot":"","sources":["../../src/transformer/resource-namer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAG7D;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,mBAAmB,EAAE,GAAG,mBAAmB,EAAE,CAW1F"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { deriveResourceName } from './naming.js';
|
|
2
|
+
/**
|
|
3
|
+
* Deterministic, offline tool naming from the REST resource tree (method+path),
|
|
4
|
+
* the Stainless-style convention (`accounts.create` → `create_account`).
|
|
5
|
+
*
|
|
6
|
+
* Rewrites each operation's `operationId` to the derived resource name so the
|
|
7
|
+
* rest of the pipeline (tool name/title/file/function + collision handling) all
|
|
8
|
+
* flow from it. Unlike `improveToolNames` (LLM, needs an API key), this is free,
|
|
9
|
+
* deterministic, and requires no network.
|
|
10
|
+
*
|
|
11
|
+
* Collision-safe: if a derived name is empty (no resource segment) or already
|
|
12
|
+
* claimed by an earlier operation, the original `operationId` is kept so the
|
|
13
|
+
* first claimant wins and no two operations get the same id here. Any remaining
|
|
14
|
+
* cross-source duplicates are still handled downstream by `buildAllTools`.
|
|
15
|
+
*
|
|
16
|
+
* `x-mcp-name` per-tool overrides are applied later in `buildToolDefinition` and
|
|
17
|
+
* always take precedence over this.
|
|
18
|
+
*/
|
|
19
|
+
export function resourceTreeNames(operations) {
|
|
20
|
+
const used = new Set();
|
|
21
|
+
return operations.map((op) => {
|
|
22
|
+
const derived = deriveResourceName(op.method, op.path);
|
|
23
|
+
if (!derived || used.has(derived)) {
|
|
24
|
+
used.add(op.operationId);
|
|
25
|
+
return op;
|
|
26
|
+
}
|
|
27
|
+
used.add(derived);
|
|
28
|
+
return { ...op, operationId: derived };
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=resource-namer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-namer.js","sourceRoot":"","sources":["../../src/transformer/resource-namer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAiC;IACjE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QAC3B,MAAM,OAAO,GAAG,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;YACzB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,OAAO,EAAE,GAAG,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/package.json
CHANGED