@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.
- package/.turbo/turbo-build.log +27 -2
- package/.turbo/turbo-test$colon$coverage.log +1829 -0
- package/.turbo/turbo-test.log +260 -220
- package/dist/bundles/blank.js +112104 -0
- package/dist/bundles/ecommerce.js +112178 -0
- package/dist/bundles/hardware-world.js +112576 -0
- package/dist/bundles/manifest.json +28 -0
- package/dist/bundles/mix-station.js +112480 -0
- package/dist/cli-runner.d.ts.map +1 -1
- package/dist/cli-runner.js +23 -0
- package/dist/cli-runner.js.map +1 -1
- package/dist/helpers/fetch-cloudflare-mcpi-template.js +1 -1
- package/dist/helpers/generate-cloudflare-files.d.ts +1 -1
- package/dist/helpers/generate-cloudflare-files.d.ts.map +1 -1
- package/dist/helpers/generate-cloudflare-files.js +457 -41
- package/dist/helpers/generate-cloudflare-files.js.map +1 -1
- package/dist/helpers/generate-openapi-project.d.ts +36 -0
- package/dist/helpers/generate-openapi-project.d.ts.map +1 -0
- package/dist/helpers/generate-openapi-project.js +114 -0
- package/dist/helpers/generate-openapi-project.js.map +1 -0
- package/dist/helpers/generate-openapi-tools.d.ts +43 -0
- package/dist/helpers/generate-openapi-tools.d.ts.map +1 -0
- package/dist/helpers/generate-openapi-tools.js +550 -0
- package/dist/helpers/generate-openapi-tools.js.map +1 -0
- package/dist/helpers/generate-runtime-config.d.ts +16 -0
- package/dist/helpers/generate-runtime-config.d.ts.map +1 -0
- package/dist/helpers/generate-runtime-config.js +49 -0
- package/dist/helpers/generate-runtime-config.js.map +1 -0
- package/dist/helpers/get-package-versions.js +8 -8
- package/dist/helpers/get-package-versions.js.map +1 -1
- package/dist/helpers/openapi-ingestion.d.ts +21 -0
- package/dist/helpers/openapi-ingestion.d.ts.map +1 -0
- package/dist/helpers/openapi-ingestion.js +433 -0
- package/dist/helpers/openapi-ingestion.js.map +1 -0
- package/dist/helpers/wrap/command.d.ts +12 -0
- package/dist/helpers/wrap/command.d.ts.map +1 -0
- package/dist/helpers/wrap/command.js +344 -0
- package/dist/helpers/wrap/command.js.map +1 -0
- package/dist/helpers/wrap/detect-server.d.ts +30 -0
- package/dist/helpers/wrap/detect-server.d.ts.map +1 -0
- package/dist/helpers/wrap/detect-server.js +207 -0
- package/dist/helpers/wrap/detect-server.js.map +1 -0
- package/dist/helpers/wrap/index.d.ts +13 -0
- package/dist/helpers/wrap/index.d.ts.map +1 -0
- package/dist/helpers/wrap/index.js +11 -0
- package/dist/helpers/wrap/index.js.map +1 -0
- package/dist/helpers/wrap/templates.d.ts +24 -0
- package/dist/helpers/wrap/templates.d.ts.map +1 -0
- package/dist/helpers/wrap/templates.js +221 -0
- package/dist/helpers/wrap/templates.js.map +1 -0
- package/dist/types/openapi-generator.d.ts +142 -0
- package/dist/types/openapi-generator.d.ts.map +1 -0
- package/dist/types/openapi-generator.js +8 -0
- package/dist/types/openapi-generator.js.map +1 -0
- package/package.json +35 -9
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAPI Project File Generator
|
|
3
|
+
*
|
|
4
|
+
* Generates a complete Cloudflare Workers MCP-I project from an OpenAPI spec.
|
|
5
|
+
* Follows the same patterns as generate-cloudflare-files.ts.
|
|
6
|
+
*
|
|
7
|
+
* @module @kya-os/create-mcpi-app/helpers/generate-openapi-project
|
|
8
|
+
*/
|
|
9
|
+
import type { OperationModel, SecuritySchemeMap } from "../types/openapi-generator.js";
|
|
10
|
+
import type { GeneratedIdentity } from "./generate-identity.js";
|
|
11
|
+
/**
|
|
12
|
+
* Generate a complete MCP-I Cloudflare Workers project from OpenAPI operations.
|
|
13
|
+
*
|
|
14
|
+
* Creates the following structure:
|
|
15
|
+
* package.json
|
|
16
|
+
* tsconfig.json
|
|
17
|
+
* .gitignore
|
|
18
|
+
* src/index.ts
|
|
19
|
+
* src/agent.ts
|
|
20
|
+
* src/auth.ts
|
|
21
|
+
* src/mcpi-runtime-config.ts
|
|
22
|
+
* src/tools/<toolName>.ts
|
|
23
|
+
* wrangler.toml
|
|
24
|
+
* .dev.vars.example
|
|
25
|
+
* README.md
|
|
26
|
+
*
|
|
27
|
+
* The private key is placed ONLY in .dev.vars.example (not in wrangler.toml).
|
|
28
|
+
* The DID is placed in wrangler.toml [vars] as MCP_IDENTITY_AGENT_DID.
|
|
29
|
+
*
|
|
30
|
+
* @param operations - Operations from ingestOpenAPI
|
|
31
|
+
* @param securitySchemes - Security scheme map
|
|
32
|
+
* @param targetDir - Absolute path to project output directory
|
|
33
|
+
* @param identity - Generated agent identity
|
|
34
|
+
*/
|
|
35
|
+
export declare function generateOpenAPIProjectFiles(operations: OperationModel[], securitySchemes: SecuritySchemeMap, targetDir: string, identity: GeneratedIdentity): Promise<void>;
|
|
36
|
+
//# sourceMappingURL=generate-openapi-project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-openapi-project.d.ts","sourceRoot":"","sources":["../../src/helpers/generate-openapi-project.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAClB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAQhE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,2BAA2B,CAC/C,UAAU,EAAE,cAAc,EAAE,EAC5B,eAAe,EAAE,iBAAiB,EAClC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,iBAAiB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAwCf"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAPI Project File Generator
|
|
3
|
+
*
|
|
4
|
+
* Generates a complete Cloudflare Workers MCP-I project from an OpenAPI spec.
|
|
5
|
+
* Follows the same patterns as generate-cloudflare-files.ts.
|
|
6
|
+
*
|
|
7
|
+
* @module @kya-os/create-mcpi-app/helpers/generate-openapi-project
|
|
8
|
+
*/
|
|
9
|
+
import { writeFile, mkdir } from "fs/promises";
|
|
10
|
+
import { join } from "path";
|
|
11
|
+
import { generateToolFiles } from "./generate-openapi-tools.js";
|
|
12
|
+
import { getPackageVersions } from "./get-package-versions.js";
|
|
13
|
+
// ============================================================================
|
|
14
|
+
// Public API
|
|
15
|
+
// ============================================================================
|
|
16
|
+
/**
|
|
17
|
+
* Generate a complete MCP-I Cloudflare Workers project from OpenAPI operations.
|
|
18
|
+
*
|
|
19
|
+
* Creates the following structure:
|
|
20
|
+
* package.json
|
|
21
|
+
* tsconfig.json
|
|
22
|
+
* .gitignore
|
|
23
|
+
* src/index.ts
|
|
24
|
+
* src/agent.ts
|
|
25
|
+
* src/auth.ts
|
|
26
|
+
* src/mcpi-runtime-config.ts
|
|
27
|
+
* src/tools/<toolName>.ts
|
|
28
|
+
* wrangler.toml
|
|
29
|
+
* .dev.vars.example
|
|
30
|
+
* README.md
|
|
31
|
+
*
|
|
32
|
+
* The private key is placed ONLY in .dev.vars.example (not in wrangler.toml).
|
|
33
|
+
* The DID is placed in wrangler.toml [vars] as MCP_IDENTITY_AGENT_DID.
|
|
34
|
+
*
|
|
35
|
+
* @param operations - Operations from ingestOpenAPI
|
|
36
|
+
* @param securitySchemes - Security scheme map
|
|
37
|
+
* @param targetDir - Absolute path to project output directory
|
|
38
|
+
* @param identity - Generated agent identity
|
|
39
|
+
*/
|
|
40
|
+
export async function generateOpenAPIProjectFiles(operations, securitySchemes, targetDir, identity) {
|
|
41
|
+
// Ensure directory exists
|
|
42
|
+
await mkdir(targetDir, { recursive: true });
|
|
43
|
+
// Get package versions from scaffolder's package.json
|
|
44
|
+
const versions = await getPackageVersions();
|
|
45
|
+
const mcpICloudflareVersion = versions["@kya-os/mcp-i-cloudflare"];
|
|
46
|
+
// 1. package.json
|
|
47
|
+
await writeFile(join(targetDir, "package.json"), JSON.stringify(generatePackageJson(mcpICloudflareVersion), null, 2), "utf-8");
|
|
48
|
+
// 2. tsconfig.json
|
|
49
|
+
await writeFile(join(targetDir, "tsconfig.json"), JSON.stringify(generateTsConfig(), null, 2), "utf-8");
|
|
50
|
+
// 3. .gitignore
|
|
51
|
+
await writeFile(join(targetDir, ".gitignore"), generateGitignore(), "utf-8");
|
|
52
|
+
// 4. src/mcpi-runtime-config.ts is written by generateToolFiles below,
|
|
53
|
+
// which handles it for both standalone and project-scaffolding callers.
|
|
54
|
+
// Writing it here again would be a redundant double-write.
|
|
55
|
+
// 5. All tool files, agent.ts, index.ts, auth.ts, wrangler.toml,
|
|
56
|
+
// .dev.vars.example, README.md (delegated to generate-openapi-tools)
|
|
57
|
+
await generateToolFiles(operations, securitySchemes, targetDir, identity);
|
|
58
|
+
}
|
|
59
|
+
// ============================================================================
|
|
60
|
+
// File content generators
|
|
61
|
+
// ============================================================================
|
|
62
|
+
function generatePackageJson(mcpICloudflareVersion) {
|
|
63
|
+
return {
|
|
64
|
+
name: "openapi-agent",
|
|
65
|
+
version: "0.1.0",
|
|
66
|
+
private: true,
|
|
67
|
+
scripts: {
|
|
68
|
+
deploy: "wrangler deploy",
|
|
69
|
+
dev: "wrangler dev",
|
|
70
|
+
start: "wrangler dev",
|
|
71
|
+
test: "vitest",
|
|
72
|
+
"cf-typegen": "wrangler types",
|
|
73
|
+
},
|
|
74
|
+
dependencies: {
|
|
75
|
+
"@kya-os/mcp-i-cloudflare": mcpICloudflareVersion,
|
|
76
|
+
"@modelcontextprotocol/sdk": "1.25.2",
|
|
77
|
+
agents: "0.3.6",
|
|
78
|
+
hono: "4.12.4",
|
|
79
|
+
},
|
|
80
|
+
devDependencies: {
|
|
81
|
+
"@cloudflare/vitest-pool-workers": "^0.5.41",
|
|
82
|
+
"@cloudflare/workers-types": "^4.20251126.0",
|
|
83
|
+
"@types/node": "^20.8.3",
|
|
84
|
+
typescript: "^5.5.2",
|
|
85
|
+
vitest: "^2.0.5",
|
|
86
|
+
wrangler: "^4.53.0",
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
function generateTsConfig() {
|
|
91
|
+
return {
|
|
92
|
+
compilerOptions: {
|
|
93
|
+
target: "esnext",
|
|
94
|
+
module: "esnext",
|
|
95
|
+
moduleResolution: "bundler",
|
|
96
|
+
types: ["@cloudflare/workers-types", "vitest/globals"],
|
|
97
|
+
strict: true,
|
|
98
|
+
skipLibCheck: true,
|
|
99
|
+
noEmit: true,
|
|
100
|
+
},
|
|
101
|
+
include: ["src/**/*"],
|
|
102
|
+
exclude: ["node_modules"],
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
function generateGitignore() {
|
|
106
|
+
return `node_modules/
|
|
107
|
+
dist/
|
|
108
|
+
.wrangler/
|
|
109
|
+
.dev.vars
|
|
110
|
+
*.log
|
|
111
|
+
.DS_Store
|
|
112
|
+
`;
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=generate-openapi-project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-openapi-project.js","sourceRoot":"","sources":["../../src/helpers/generate-openapi-project.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAM5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,UAA4B,EAC5B,eAAkC,EAClC,SAAiB,EACjB,QAA2B;IAE3B,0BAA0B;IAC1B,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE5C,sDAAsD;IACtD,MAAM,QAAQ,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAC5C,MAAM,qBAAqB,GAAG,QAAQ,CAAC,0BAA0B,CAAC,CAAC;IAEnE,kBAAkB;IAClB,MAAM,SAAS,CACb,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EAC/B,IAAI,CAAC,SAAS,CACZ,mBAAmB,CAAC,qBAAqB,CAAC,EAC1C,IAAI,EACJ,CAAC,CACF,EACD,OAAO,CACR,CAAC;IAEF,mBAAmB;IACnB,MAAM,SAAS,CACb,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,EAChC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAC3C,OAAO,CACR,CAAC;IAEF,gBAAgB;IAChB,MAAM,SAAS,CACb,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAC7B,iBAAiB,EAAE,EACnB,OAAO,CACR,CAAC;IAEF,uEAAuE;IACvE,2EAA2E;IAC3E,8DAA8D;IAE9D,iEAAiE;IACjE,wEAAwE;IACxE,MAAM,iBAAiB,CAAC,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC5E,CAAC;AAED,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E,SAAS,mBAAmB,CAAC,qBAA6B;IACxD,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,IAAI;QACb,OAAO,EAAE;YACP,MAAM,EAAE,iBAAiB;YACzB,GAAG,EAAE,cAAc;YACnB,KAAK,EAAE,cAAc;YACrB,IAAI,EAAE,QAAQ;YACd,YAAY,EAAE,gBAAgB;SAC/B;QACD,YAAY,EAAE;YACZ,0BAA0B,EAAE,qBAAqB;YACjD,2BAA2B,EAAE,QAAQ;YACrC,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,QAAQ;SACf;QACD,eAAe,EAAE;YACf,iCAAiC,EAAE,SAAS;YAC5C,2BAA2B,EAAE,eAAe;YAC5C,aAAa,EAAE,SAAS;YACxB,UAAU,EAAE,QAAQ;YACpB,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,SAAS;SACpB;KACF,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO;QACL,eAAe,EAAE;YACf,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,QAAQ;YAChB,gBAAgB,EAAE,SAAS;YAC3B,KAAK,EAAE,CAAC,2BAA2B,EAAE,gBAAgB,CAAC;YACtD,MAAM,EAAE,IAAI;YACZ,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,IAAI;SACb;QACD,OAAO,EAAE,CAAC,UAAU,CAAC;QACrB,OAAO,EAAE,CAAC,cAAc,CAAC;KAC1B,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO;;;;;;CAMR,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAPI Tool File Generator
|
|
3
|
+
*
|
|
4
|
+
* Generates TypeScript tool files from OperationModel instances.
|
|
5
|
+
* Each tool is a factory function that accepts environment variables
|
|
6
|
+
* and returns a ToolDefinition compatible with @kya-os/mcp-i-cloudflare.
|
|
7
|
+
*
|
|
8
|
+
* @module @kya-os/create-mcpi-app/helpers/generate-openapi-tools
|
|
9
|
+
*/
|
|
10
|
+
import type { OperationModel, SecuritySchemeMap } from "../types/openapi-generator.js";
|
|
11
|
+
import type { GeneratedIdentity } from "./generate-identity.js";
|
|
12
|
+
/**
|
|
13
|
+
* Generate TypeScript source code for a single tool file.
|
|
14
|
+
*
|
|
15
|
+
* @param operation - The OperationModel to generate a tool for
|
|
16
|
+
* @param securitySchemes - The full security scheme map (for env type generation)
|
|
17
|
+
* @returns TypeScript source string for the tool file
|
|
18
|
+
*/
|
|
19
|
+
export declare function generateToolFile(operation: OperationModel, _securitySchemes: SecuritySchemeMap): string;
|
|
20
|
+
/**
|
|
21
|
+
* Generate all tool files plus supporting project files and write them to disk.
|
|
22
|
+
*
|
|
23
|
+
* Files generated:
|
|
24
|
+
* src/tools/<toolName>.ts (one per operation)
|
|
25
|
+
* src/auth.ts (auth helpers)
|
|
26
|
+
* src/agent.ts (MCPIAgent class)
|
|
27
|
+
* src/index.ts (createMCPIApp entry point)
|
|
28
|
+
* wrangler.toml
|
|
29
|
+
* .dev.vars.example
|
|
30
|
+
* README.md
|
|
31
|
+
*
|
|
32
|
+
* @param operations - Parsed operations from ingestOpenAPI
|
|
33
|
+
* @param securitySchemes - Security scheme map
|
|
34
|
+
* @param targetDir - Absolute path to output directory
|
|
35
|
+
* @param identity - Generated agent identity
|
|
36
|
+
*/
|
|
37
|
+
export declare function generateToolFiles(operations: OperationModel[], securitySchemes: SecuritySchemeMap, targetDir: string, identity: GeneratedIdentity): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Generate the shared AgentEnv interface imported by all generated tool files.
|
|
40
|
+
* Includes API_BASE_URL, MCPI_REQUEST_TIMEOUT_MS, and scheme-specific vars.
|
|
41
|
+
*/
|
|
42
|
+
export declare function generateAgentEnvTs(securitySchemes: SecuritySchemeMap): string;
|
|
43
|
+
//# sourceMappingURL=generate-openapi-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-openapi-tools.d.ts","sourceRoot":"","sources":["../../src/helpers/generate-openapi-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAIlB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAMhE;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,cAAc,EACzB,gBAAgB,EAAE,iBAAiB,GAClC,MAAM,CAkBR;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,cAAc,EAAE,EAC5B,eAAe,EAAE,iBAAiB,EAClC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,iBAAiB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAmEf;AAgOD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,eAAe,EAAE,iBAAiB,GAAG,MAAM,CAoC7E"}
|