@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
@@ -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"}