@kya-os/create-mcpi-app 1.9.32 → 1.9.34

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.
Files changed (55) hide show
  1. package/.turbo/turbo-build.log +27 -2
  2. package/.turbo/turbo-test$colon$coverage.log +1829 -0
  3. package/.turbo/turbo-test.log +260 -220
  4. package/dist/bundles/blank.js +112104 -0
  5. package/dist/bundles/ecommerce.js +112178 -0
  6. package/dist/bundles/hardware-world.js +112576 -0
  7. package/dist/bundles/manifest.json +28 -0
  8. package/dist/bundles/mix-station.js +112480 -0
  9. package/dist/cli-runner.d.ts.map +1 -1
  10. package/dist/cli-runner.js +23 -0
  11. package/dist/cli-runner.js.map +1 -1
  12. package/dist/helpers/fetch-cloudflare-mcpi-template.js +1 -1
  13. package/dist/helpers/generate-cloudflare-files.d.ts +1 -1
  14. package/dist/helpers/generate-cloudflare-files.d.ts.map +1 -1
  15. package/dist/helpers/generate-cloudflare-files.js +457 -41
  16. package/dist/helpers/generate-cloudflare-files.js.map +1 -1
  17. package/dist/helpers/generate-openapi-project.d.ts +36 -0
  18. package/dist/helpers/generate-openapi-project.d.ts.map +1 -0
  19. package/dist/helpers/generate-openapi-project.js +114 -0
  20. package/dist/helpers/generate-openapi-project.js.map +1 -0
  21. package/dist/helpers/generate-openapi-tools.d.ts +43 -0
  22. package/dist/helpers/generate-openapi-tools.d.ts.map +1 -0
  23. package/dist/helpers/generate-openapi-tools.js +550 -0
  24. package/dist/helpers/generate-openapi-tools.js.map +1 -0
  25. package/dist/helpers/generate-runtime-config.d.ts +16 -0
  26. package/dist/helpers/generate-runtime-config.d.ts.map +1 -0
  27. package/dist/helpers/generate-runtime-config.js +49 -0
  28. package/dist/helpers/generate-runtime-config.js.map +1 -0
  29. package/dist/helpers/get-package-versions.js +8 -8
  30. package/dist/helpers/get-package-versions.js.map +1 -1
  31. package/dist/helpers/openapi-ingestion.d.ts +21 -0
  32. package/dist/helpers/openapi-ingestion.d.ts.map +1 -0
  33. package/dist/helpers/openapi-ingestion.js +433 -0
  34. package/dist/helpers/openapi-ingestion.js.map +1 -0
  35. package/dist/helpers/wrap/command.d.ts +12 -0
  36. package/dist/helpers/wrap/command.d.ts.map +1 -0
  37. package/dist/helpers/wrap/command.js +344 -0
  38. package/dist/helpers/wrap/command.js.map +1 -0
  39. package/dist/helpers/wrap/detect-server.d.ts +30 -0
  40. package/dist/helpers/wrap/detect-server.d.ts.map +1 -0
  41. package/dist/helpers/wrap/detect-server.js +207 -0
  42. package/dist/helpers/wrap/detect-server.js.map +1 -0
  43. package/dist/helpers/wrap/index.d.ts +13 -0
  44. package/dist/helpers/wrap/index.d.ts.map +1 -0
  45. package/dist/helpers/wrap/index.js +11 -0
  46. package/dist/helpers/wrap/index.js.map +1 -0
  47. package/dist/helpers/wrap/templates.d.ts +24 -0
  48. package/dist/helpers/wrap/templates.d.ts.map +1 -0
  49. package/dist/helpers/wrap/templates.js +221 -0
  50. package/dist/helpers/wrap/templates.js.map +1 -0
  51. package/dist/types/openapi-generator.d.ts +142 -0
  52. package/dist/types/openapi-generator.d.ts.map +1 -0
  53. package/dist/types/openapi-generator.js +8 -0
  54. package/dist/types/openapi-generator.js.map +1 -0
  55. package/package.json +35 -9
@@ -65,10 +65,10 @@ export async function getPackageVersions() {
65
65
  // Extract and normalize versions
66
66
  // Note: fallback versions here must match the error case fallbacks below
67
67
  cachedVersions = {
68
- "@kya-os/mcp-i": normalizeVersion(deps["@kya-os/mcp-i"] || "^1.7.12"),
69
- "@kya-os/cli": normalizeVersion(deps["@kya-os/cli"] || "^1.5.8"),
70
- "@kya-os/mcp-i-cloudflare": normalizeVersion(deps["@kya-os/mcp-i-cloudflare"] || "^1.7.72"),
71
- "@kya-os/contracts": normalizeVersion(deps["@kya-os/contracts"] || "^1.7.20"),
68
+ "@kya-os/mcp-i": normalizeVersion(deps["@kya-os/mcp-i"] || "^1.7.13"),
69
+ "@kya-os/cli": normalizeVersion(deps["@kya-os/cli"] || "^1.5.9"),
70
+ "@kya-os/mcp-i-cloudflare": normalizeVersion(deps["@kya-os/mcp-i-cloudflare"] || "^1.8.1"),
71
+ "@kya-os/contracts": normalizeVersion(deps["@kya-os/contracts"] || "^1.7.21"),
72
72
  };
73
73
  return cachedVersions;
74
74
  }
@@ -76,10 +76,10 @@ export async function getPackageVersions() {
76
76
  // Fallback to safe default versions if package.json can't be read
77
77
  console.warn("[getPackageVersions] Warning: Could not read package.json, using defaults");
78
78
  return {
79
- "@kya-os/mcp-i": "^1.7.12",
80
- "@kya-os/cli": "^1.5.8",
81
- "@kya-os/mcp-i-cloudflare": "^1.7.72",
82
- "@kya-os/contracts": "^1.7.20",
79
+ "@kya-os/mcp-i": "^1.7.13",
80
+ "@kya-os/cli": "^1.5.9",
81
+ "@kya-os/mcp-i-cloudflare": "^1.8.1",
82
+ "@kya-os/contracts": "^1.7.26",
83
83
  };
84
84
  }
85
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"get-package-versions.js","sourceRoot":"","sources":["../../src/helpers/get-package-versions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,mCAAmC;AACnC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAS3C,kDAAkD;AAClD,IAAI,cAAc,GAA2B,IAAI,CAAC;AAElD;;;;;;;;;;GAUG;AACH,SAAS,gBAAgB,CAAC,OAAe;IACvC,gCAAgC;IAChC,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAEnD,oDAAoD;IACpD,wDAAwD;IACxD,IAAI,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpC,OAAO,YAAY,CAAC,CAAC,2BAA2B;IAClD,CAAC;IAED,6CAA6C;IAC7C,OAAO,IAAI,YAAY,EAAE,CAAC,CAAC,WAAW;AACxC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,gDAAgD;IAChD,uCAAuC;IACvC,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;IAEtE,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC;QAE5C,iCAAiC;QACjC,yEAAyE;QACzE,cAAc,GAAG;YACf,eAAe,EAAE,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,SAAS,CAAC;YACrE,aAAa,EAAE,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC;YAChE,0BAA0B,EAAE,gBAAgB,CAC1C,IAAI,CAAC,0BAA0B,CAAC,IAAI,SAAS,CAC9C;YACD,mBAAmB,EAAE,gBAAgB,CACnC,IAAI,CAAC,mBAAmB,CAAC,IAAI,SAAS,CACvC;SACF,CAAC;QAEF,OAAO,cAAc,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,kEAAkE;QAClE,OAAO,CAAC,IAAI,CACV,2EAA2E,CAC5E,CAAC;QAEF,OAAO;YACL,eAAe,EAAE,SAAS;YAC1B,aAAa,EAAE,QAAQ;YACvB,0BAA0B,EAAE,SAAS;YACrC,mBAAmB,EAAE,SAAS;SAC/B,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,cAAc,GAAG,IAAI,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"get-package-versions.js","sourceRoot":"","sources":["../../src/helpers/get-package-versions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,mCAAmC;AACnC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAS3C,kDAAkD;AAClD,IAAI,cAAc,GAA2B,IAAI,CAAC;AAElD;;;;;;;;;;GAUG;AACH,SAAS,gBAAgB,CAAC,OAAe;IACvC,gCAAgC;IAChC,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAEnD,oDAAoD;IACpD,wDAAwD;IACxD,IAAI,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpC,OAAO,YAAY,CAAC,CAAC,2BAA2B;IAClD,CAAC;IAED,6CAA6C;IAC7C,OAAO,IAAI,YAAY,EAAE,CAAC,CAAC,WAAW;AACxC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,gDAAgD;IAChD,uCAAuC;IACvC,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;IAEtE,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC;QAE5C,iCAAiC;QACjC,yEAAyE;QACzE,cAAc,GAAG;YACf,eAAe,EAAE,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,SAAS,CAAC;YACrE,aAAa,EAAE,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC;YAChE,0BAA0B,EAAE,gBAAgB,CAC1C,IAAI,CAAC,0BAA0B,CAAC,IAAI,QAAQ,CAC7C;YACD,mBAAmB,EAAE,gBAAgB,CACnC,IAAI,CAAC,mBAAmB,CAAC,IAAI,SAAS,CACvC;SACF,CAAC;QAEF,OAAO,cAAc,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,kEAAkE;QAClE,OAAO,CAAC,IAAI,CACV,2EAA2E,CAC5E,CAAC;QAEF,OAAO;YACL,eAAe,EAAE,SAAS;YAC1B,aAAa,EAAE,QAAQ;YACvB,0BAA0B,EAAE,QAAQ;YACpC,mBAAmB,EAAE,SAAS;SAC/B,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,cAAc,GAAG,IAAI,CAAC;AACxB,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * OpenAPI Ingestion Service
3
+ *
4
+ * Parses and validates OpenAPI 3.x specifications, then transforms them into
5
+ * the intermediate OperationModel representation used by the MCP-I generator.
6
+ *
7
+ * @module @kya-os/create-mcpi-app/helpers/openapi-ingestion
8
+ */
9
+ import type { IngestionResult, IngestionOptions } from "../types/openapi-generator.js";
10
+ /**
11
+ * Parse and validate an OpenAPI 3.x specification file, returning an
12
+ * intermediate IngestionResult ready for code generation.
13
+ *
14
+ * @param specPath - Absolute path to the YAML or JSON OpenAPI file
15
+ * @param options - Optional ingestion options (e.g., filterDeprecated)
16
+ * @throws {Error} If the file is not valid YAML/JSON
17
+ * @throws {Error} If the spec is not OpenAPI 3.x
18
+ * @throws {Error} If the spec is missing the required `paths` object
19
+ */
20
+ export declare function ingestOpenAPI(specPath: string, options?: IngestionOptions): Promise<IngestionResult>;
21
+ //# sourceMappingURL=openapi-ingestion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi-ingestion.d.ts","sourceRoot":"","sources":["../../src/helpers/openapi-ingestion.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EASV,eAAe,EAEf,gBAAgB,EACjB,MAAM,+BAA+B,CAAC;AAMvC;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CA8J1B"}
@@ -0,0 +1,433 @@
1
+ /**
2
+ * OpenAPI Ingestion Service
3
+ *
4
+ * Parses and validates OpenAPI 3.x specifications, then transforms them into
5
+ * the intermediate OperationModel representation used by the MCP-I generator.
6
+ *
7
+ * @module @kya-os/create-mcpi-app/helpers/openapi-ingestion
8
+ */
9
+ import SwaggerParser from "@apidevtools/swagger-parser";
10
+ // ============================================================================
11
+ // Public API
12
+ // ============================================================================
13
+ /**
14
+ * Parse and validate an OpenAPI 3.x specification file, returning an
15
+ * intermediate IngestionResult ready for code generation.
16
+ *
17
+ * @param specPath - Absolute path to the YAML or JSON OpenAPI file
18
+ * @param options - Optional ingestion options (e.g., filterDeprecated)
19
+ * @throws {Error} If the file is not valid YAML/JSON
20
+ * @throws {Error} If the spec is not OpenAPI 3.x
21
+ * @throws {Error} If the spec is missing the required `paths` object
22
+ */
23
+ export async function ingestOpenAPI(specPath, options = {}) {
24
+ const { filterDeprecated = false } = options;
25
+ // Parse + dereference all $refs so schemas are fully inline
26
+ let doc;
27
+ try {
28
+ doc = await SwaggerParser.dereference(specPath);
29
+ }
30
+ catch (err) {
31
+ const message = err instanceof Error ? err.message : String(err);
32
+ throw new Error(`Failed to parse OpenAPI spec: ${message}`);
33
+ }
34
+ // Require OpenAPI 3.x
35
+ if (!("openapi" in doc)) {
36
+ throw new Error("Only OpenAPI 3.x specifications are supported (Swagger 2.0 is not)");
37
+ }
38
+ const v3doc = doc;
39
+ const version = v3doc.openapi ?? "";
40
+ if (!version.startsWith("3.")) {
41
+ throw new Error(`Unsupported OpenAPI version "${version}". Only OpenAPI 3.x is supported.`);
42
+ }
43
+ // Require paths object
44
+ if (!v3doc.paths || Object.keys(v3doc.paths).length === 0) {
45
+ throw new Error("OpenAPI spec must contain a non-empty `paths` object");
46
+ }
47
+ // Build security scheme map from components
48
+ const securitySchemes = buildSecuritySchemeMap(v3doc.components?.securitySchemes);
49
+ // Extract and model all operations
50
+ const warnings = [];
51
+ const seenToolNames = new Map();
52
+ const operations = [];
53
+ const httpMethods = ["get", "post", "put", "delete", "patch", "options", "head", "trace"];
54
+ for (const [pathTemplate, pathItem] of Object.entries(v3doc.paths)) {
55
+ if (!pathItem)
56
+ continue;
57
+ for (const method of httpMethods) {
58
+ const operation = pathItem[method];
59
+ if (!operation)
60
+ continue;
61
+ // Deprecated filtering
62
+ if (filterDeprecated && operation.deprecated === true) {
63
+ continue;
64
+ }
65
+ const { toolName, warning } = resolveToolName(operation.operationId, method, pathTemplate, seenToolNames);
66
+ if (warning) {
67
+ warnings.push({ ...warning, path: pathTemplate, method });
68
+ }
69
+ // Description: summary > description > fallback
70
+ const description = operation.summary?.trim() ||
71
+ operation.description?.trim() ||
72
+ `${method.toUpperCase()} ${pathTemplate}`;
73
+ // Resolve parameters (path item params are defaults, operation params override)
74
+ const baseParams = (pathItem.parameters ?? []);
75
+ const opParams = (operation.parameters ?? []);
76
+ const mergedParams = mergeParameters(baseParams, opParams);
77
+ const pathParams = [];
78
+ const queryParams = [];
79
+ const operationWarnings = [];
80
+ for (const param of mergedParams) {
81
+ const schema = extractSchema(param.schema, {
82
+ path: pathTemplate,
83
+ method,
84
+ operationId: operation.operationId,
85
+ paramName: param.name,
86
+ warnings: operationWarnings,
87
+ });
88
+ if (param.in === "path") {
89
+ pathParams.push({
90
+ name: param.name,
91
+ description: param.description,
92
+ schema,
93
+ required: true,
94
+ });
95
+ }
96
+ else if (param.in === "query") {
97
+ queryParams.push({
98
+ name: param.name,
99
+ description: param.description,
100
+ schema,
101
+ required: param.required === true,
102
+ });
103
+ }
104
+ // header and cookie params are not mapped to tool inputs
105
+ }
106
+ warnings.push(...operationWarnings);
107
+ // Request body
108
+ let requestBody;
109
+ if (operation.requestBody) {
110
+ const rb = operation.requestBody;
111
+ const jsonContent = rb.content?.["application/json"];
112
+ if (jsonContent?.schema) {
113
+ const rbWarnings = [];
114
+ const rbSchema = extractSchema(jsonContent.schema, {
115
+ path: pathTemplate,
116
+ method,
117
+ operationId: operation.operationId,
118
+ paramName: "body",
119
+ warnings: rbWarnings,
120
+ });
121
+ warnings.push(...rbWarnings);
122
+ requestBody = {
123
+ description: rb.description,
124
+ required: rb.required === true,
125
+ schema: rbSchema,
126
+ };
127
+ }
128
+ }
129
+ // Build merged inputSchema
130
+ const inputSchema = buildInputSchema(pathParams, queryParams, requestBody);
131
+ // Resolve security for this operation
132
+ const opSecurity = operation.security ?? v3doc.security ?? [];
133
+ const resolvedSchemes = resolveOperationSecurity(opSecurity, securitySchemes);
134
+ operations.push({
135
+ toolName,
136
+ description,
137
+ method,
138
+ path: pathTemplate,
139
+ pathParams,
140
+ queryParams,
141
+ requestBody,
142
+ inputSchema,
143
+ securitySchemes: resolvedSchemes,
144
+ tags: operation.tags ?? [],
145
+ deprecated: operation.deprecated === true,
146
+ });
147
+ }
148
+ }
149
+ return { operations, securitySchemes, warnings };
150
+ }
151
+ // ============================================================================
152
+ // Internal helpers
153
+ // ============================================================================
154
+ /**
155
+ * Build the SecuritySchemeMap from the OpenAPI components.securitySchemes object.
156
+ */
157
+ function buildSecuritySchemeMap(rawSchemes) {
158
+ if (!rawSchemes)
159
+ return {};
160
+ const result = {};
161
+ for (const [name, schemeOrRef] of Object.entries(rawSchemes)) {
162
+ // After dereference, $refs are resolved so we only see SecuritySchemeObjects
163
+ if (!schemeOrRef || "$ref" in schemeOrRef)
164
+ continue;
165
+ const scheme = schemeOrRef;
166
+ if (scheme.type === "http" && scheme.scheme === "bearer") {
167
+ result[name] = { type: "bearer" };
168
+ }
169
+ else if (scheme.type === "apiKey") {
170
+ const apiKeyScheme = scheme;
171
+ if (apiKeyScheme.in === "header" || apiKeyScheme.in === "query") {
172
+ result[name] = {
173
+ type: "apiKey",
174
+ in: apiKeyScheme.in,
175
+ name: apiKeyScheme.name,
176
+ };
177
+ }
178
+ else {
179
+ result[name] = { type: "unsupported", scheme: `apiKey:${apiKeyScheme.in}` };
180
+ }
181
+ }
182
+ else {
183
+ const rawType = scheme.type ?? "unknown";
184
+ result[name] = { type: "unsupported", scheme: rawType };
185
+ }
186
+ }
187
+ return result;
188
+ }
189
+ /**
190
+ * Resolve the security schemes applicable to a specific operation.
191
+ */
192
+ function resolveOperationSecurity(security, schemeMap) {
193
+ const result = [];
194
+ const seen = new Set();
195
+ for (const requirement of security) {
196
+ for (const schemeName of Object.keys(requirement)) {
197
+ if (!seen.has(schemeName) && schemeMap[schemeName]) {
198
+ seen.add(schemeName);
199
+ result.push(schemeMap[schemeName]);
200
+ }
201
+ }
202
+ }
203
+ return result;
204
+ }
205
+ /**
206
+ * Generate a unique snake_case tool name from an operationId or path+method fallback.
207
+ * Handles collisions by appending _2, _3, etc.
208
+ */
209
+ function resolveToolName(operationId, method, pathTemplate, seen) {
210
+ let base;
211
+ let warning;
212
+ if (operationId) {
213
+ base = toSnakeCase(operationId);
214
+ }
215
+ else {
216
+ base = pathToSnakeCase(method, pathTemplate);
217
+ warning = {
218
+ message: `No operationId found; generated tool name "${base}" from path`,
219
+ };
220
+ }
221
+ const count = seen.get(base) ?? 0;
222
+ seen.set(base, count + 1);
223
+ if (count === 0) {
224
+ return { toolName: base, warning };
225
+ }
226
+ const collisionName = `${base}_${count + 1}`;
227
+ // Register the resolved name so a future operation whose natural base equals
228
+ // collisionName does not silently overwrite this tool on disk.
229
+ seen.set(collisionName, (seen.get(collisionName) ?? 0) + 1);
230
+ return {
231
+ toolName: collisionName,
232
+ warning: {
233
+ operationId,
234
+ message: `Tool name collision resolved: "${base}" -> "${collisionName}"`,
235
+ },
236
+ };
237
+ }
238
+ /**
239
+ * Convert a camelCase/PascalCase/mixed identifier to snake_case.
240
+ */
241
+ function toSnakeCase(id) {
242
+ return id
243
+ .replace(/([A-Z]+)([A-Z][a-z])/g, "$1_$2")
244
+ .replace(/([a-z\d])([A-Z])/g, "$1_$2")
245
+ .replace(/[^a-zA-Z0-9]+/g, "_")
246
+ .replace(/_+/g, "_")
247
+ .replace(/^_|_$/g, "")
248
+ .toLowerCase();
249
+ }
250
+ /**
251
+ * Generate a fallback tool name from HTTP method + path template.
252
+ */
253
+ function pathToSnakeCase(method, pathTemplate) {
254
+ const pathPart = pathTemplate
255
+ .replace(/[{}]/g, "")
256
+ .replace(/[^a-zA-Z0-9]+/g, "_")
257
+ .replace(/_+/g, "_")
258
+ .replace(/^_|_$/g, "");
259
+ return `${method}_${pathPart}`.toLowerCase();
260
+ }
261
+ /**
262
+ * Merge path-item-level parameters with operation-level parameters.
263
+ * Operation-level parameters override path-level ones with the same name+in.
264
+ */
265
+ function mergeParameters(base, override) {
266
+ const map = new Map();
267
+ for (const p of base) {
268
+ map.set(`${p.in}:${p.name}`, p);
269
+ }
270
+ for (const p of override) {
271
+ map.set(`${p.in}:${p.name}`, p);
272
+ }
273
+ return Array.from(map.values());
274
+ }
275
+ /**
276
+ * Extract and normalize a schema from an OpenAPIV3 schema object.
277
+ * Handles oneOf/anyOf by falling back to {type: "object"} with a warning.
278
+ */
279
+ function extractSchema(raw, ctx) {
280
+ if (!raw)
281
+ return {};
282
+ // After dereference, $refs should be resolved; handle just in case
283
+ if ("$ref" in raw) {
284
+ return { type: "object" };
285
+ }
286
+ const schema = raw;
287
+ // Handle allOf by merging all sub-schemas (composition keyword, not a ref).
288
+ // Parent-level scalars (type, description, format, enum) take priority over
289
+ // sub-schema values so that a schema like { type: "object", allOf: [...] }
290
+ // retains its declared type even when sub-schemas omit it.
291
+ if (schema.allOf && schema.allOf.length > 0) {
292
+ const merged = {};
293
+ // Seed with parent-level scalar fields first (highest priority)
294
+ if (schema.type !== undefined)
295
+ merged.type = schema.type;
296
+ if (schema.description !== undefined)
297
+ merged.description = schema.description;
298
+ if (schema.format !== undefined)
299
+ merged.format = schema.format;
300
+ if (schema.enum !== undefined)
301
+ merged.enum = schema.enum;
302
+ const mergedProperties = {};
303
+ const mergedRequired = [];
304
+ for (const subRaw of schema.allOf) {
305
+ const sub = extractSchema(subRaw, ctx);
306
+ // Sub-schema values only fill in fields not already set by the parent
307
+ if (sub.type !== undefined && merged.type === undefined)
308
+ merged.type = sub.type;
309
+ if (sub.description !== undefined && merged.description === undefined)
310
+ merged.description = sub.description;
311
+ if (sub.format !== undefined && merged.format === undefined)
312
+ merged.format = sub.format;
313
+ if (sub.enum !== undefined && merged.enum === undefined)
314
+ merged.enum = sub.enum;
315
+ if (sub.properties) {
316
+ Object.assign(mergedProperties, sub.properties);
317
+ }
318
+ if (sub.required) {
319
+ for (const r of sub.required) {
320
+ if (!mergedRequired.includes(r))
321
+ mergedRequired.push(r);
322
+ }
323
+ }
324
+ }
325
+ if (Object.keys(mergedProperties).length > 0) {
326
+ merged.properties = mergedProperties;
327
+ // Default to object type when properties were merged but type is still unset
328
+ if (!merged.type)
329
+ merged.type = "object";
330
+ }
331
+ if (mergedRequired.length > 0) {
332
+ merged.required = mergedRequired;
333
+ }
334
+ return merged;
335
+ }
336
+ // Handle oneOf / anyOf by falling back to object with a warning
337
+ if (schema.oneOf || schema.anyOf) {
338
+ ctx.warnings.push({
339
+ operationId: ctx.operationId,
340
+ path: ctx.path,
341
+ method: ctx.method,
342
+ message: `Parameter "${ctx.paramName}" uses oneOf/anyOf — falling back to type:object`,
343
+ });
344
+ return { type: "object", description: schema.description };
345
+ }
346
+ const result = {};
347
+ if (schema.type !== undefined) {
348
+ result.type = schema.type;
349
+ }
350
+ if (schema.description !== undefined)
351
+ result.description = schema.description;
352
+ if (schema.enum !== undefined)
353
+ result.enum = schema.enum;
354
+ if (schema.minimum !== undefined)
355
+ result.minimum = schema.minimum;
356
+ if (schema.maximum !== undefined)
357
+ result.maximum = schema.maximum;
358
+ if (schema.minLength !== undefined)
359
+ result.minLength = schema.minLength;
360
+ if (schema.maxLength !== undefined)
361
+ result.maxLength = schema.maxLength;
362
+ if (schema.format !== undefined)
363
+ result.format = schema.format;
364
+ if (schema.default !== undefined)
365
+ result.default = schema.default;
366
+ if (schema.properties) {
367
+ result.properties = {};
368
+ for (const [propName, propSchema] of Object.entries(schema.properties)) {
369
+ result.properties[propName] = extractSchema(propSchema, {
370
+ ...ctx,
371
+ paramName: `${ctx.paramName}.${propName}`,
372
+ });
373
+ }
374
+ }
375
+ if (schema.required)
376
+ result.required = schema.required;
377
+ if ("items" in schema && schema.items) {
378
+ result.items = extractSchema(schema.items, {
379
+ ...ctx,
380
+ paramName: `${ctx.paramName}[]`,
381
+ });
382
+ }
383
+ return result;
384
+ }
385
+ /**
386
+ * Build the merged inputSchema from path params, query params, and request body.
387
+ */
388
+ function buildInputSchema(pathParams, queryParams, requestBody) {
389
+ const properties = {};
390
+ const required = [];
391
+ for (const p of pathParams) {
392
+ properties[p.name] = {
393
+ ...p.schema,
394
+ description: p.description ?? p.schema.description,
395
+ };
396
+ required.push(p.name);
397
+ }
398
+ for (const q of queryParams) {
399
+ properties[q.name] = {
400
+ ...q.schema,
401
+ description: q.description ?? q.schema.description,
402
+ };
403
+ if (q.required)
404
+ required.push(q.name);
405
+ }
406
+ if (requestBody) {
407
+ // Merge requestBody schema properties into top-level inputSchema
408
+ if (requestBody.schema.type === "object" &&
409
+ requestBody.schema.properties) {
410
+ for (const [propName, propSchema] of Object.entries(requestBody.schema.properties)) {
411
+ properties[propName] = propSchema;
412
+ }
413
+ if (requestBody.schema.required) {
414
+ required.push(...requestBody.schema.required);
415
+ }
416
+ }
417
+ else {
418
+ // Non-object body: expose as "body" parameter
419
+ properties["body"] = {
420
+ ...requestBody.schema,
421
+ description: requestBody.description ?? "Request body",
422
+ };
423
+ if (requestBody.required)
424
+ required.push("body");
425
+ }
426
+ }
427
+ return {
428
+ type: "object",
429
+ properties,
430
+ ...(required.length > 0 ? { required } : {}),
431
+ };
432
+ }
433
+ //# sourceMappingURL=openapi-ingestion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi-ingestion.js","sourceRoot":"","sources":["../../src/helpers/openapi-ingestion.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Wrap Command Implementation
3
+ *
4
+ * Interactive CLI flow for wrapping an existing MCP server with MCP-I.
5
+ */
6
+ export interface WrapOptions {
7
+ yes?: boolean;
8
+ skipInstall?: boolean;
9
+ skipIdentity?: boolean;
10
+ }
11
+ export declare function runWrapCommand(targetDir: string, options?: WrapOptions): Promise<void>;
12
+ //# sourceMappingURL=command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/helpers/wrap/command.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAmKH,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,IAAI,CAAC,CAqRf"}