@kya-os/create-mcpi-app 1.7.42-canary.36 → 1.7.42-canary.37

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.
@@ -1,4 +1,4 @@
1
1
 
2
- > @kya-os/create-mcpi-app@1.7.42-canary.36 build /Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/create-mcpi-app
2
+ > @kya-os/create-mcpi-app@1.7.42-canary.37 build /Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/create-mcpi-app
3
3
  > tsc && chmod +x dist/index.js
4
4
 
@@ -7,8 +7,16 @@ interface CloudflareTemplateOptions {
7
7
  }
8
8
  /**
9
9
  * Fetches the Cloudflare MCP-I template
10
- * Since this is inside the monorepo, we can copy from local packages
11
- * But for the published package, we need to construct package.json with correct versions
10
+ *
11
+ * Generates a robust project structure:
12
+ * - package.json
13
+ * - wrangler.toml (with public keys)
14
+ * - .dev.vars (with private keys)
15
+ * - src/index.ts
16
+ * - src/agent.ts
17
+ * - src/tools/greet.ts
18
+ * - src/mcpi-runtime-config.ts
19
+ * - scripts/setup.js (for key regeneration)
12
20
  */
13
21
  export declare function fetchCloudflareMcpiTemplate(targetDir: string, options: CloudflareTemplateOptions | string): Promise<void>;
14
22
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-cloudflare-mcpi-template.d.ts","sourceRoot":"","sources":["../../src/helpers/fetch-cloudflare-mcpi-template.ts"],"names":[],"mappings":"AAIA,UAAU,yBAAyB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,yBAAyB,GAAG,MAAM,GAC1C,OAAO,CAAC,IAAI,CAAC,CAyKf"}
1
+ {"version":3,"file":"fetch-cloudflare-mcpi-template.d.ts","sourceRoot":"","sources":["../../src/helpers/fetch-cloudflare-mcpi-template.ts"],"names":[],"mappings":"AAKA,UAAU,yBAAyB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,yBAAyB,GAAG,MAAM,GAC1C,OAAO,CAAC,IAAI,CAAC,CA4Rf"}
@@ -1,18 +1,31 @@
1
1
  import fs from "fs-extra";
2
2
  import path from "path";
3
3
  import chalk from "chalk";
4
+ import { generateIdentity } from "./generate-identity";
4
5
  /**
5
6
  * Fetches the Cloudflare MCP-I template
6
- * Since this is inside the monorepo, we can copy from local packages
7
- * But for the published package, we need to construct package.json with correct versions
7
+ *
8
+ * Generates a robust project structure:
9
+ * - package.json
10
+ * - wrangler.toml (with public keys)
11
+ * - .dev.vars (with private keys)
12
+ * - src/index.ts
13
+ * - src/agent.ts
14
+ * - src/tools/greet.ts
15
+ * - src/mcpi-runtime-config.ts
16
+ * - scripts/setup.js (for key regeneration)
8
17
  */
9
18
  export async function fetchCloudflareMcpiTemplate(targetDir, options) {
10
- // Handle legacy string argument (projectName) for backward compatibility if needed
11
- const projectName = typeof options === 'string' ? options : options.projectName;
12
- // In a real implementation, this might download from a repo
13
- // For now, we'll construct the template files
19
+ // Handle legacy string argument (projectName) for backward compatibility
20
+ const opts = typeof options === 'string'
21
+ ? { packageManager: 'npm', projectName: options }
22
+ : options;
23
+ const { projectName, apikey, projectId } = opts;
24
+ console.log(chalk.blue(`\nšŸ—ļø Generating Cloudflare MCP-I project: ${projectName}...`));
14
25
  // 1. Create directory structure
15
26
  await fs.ensureDir(path.join(targetDir, "src"));
27
+ await fs.ensureDir(path.join(targetDir, "src/tools"));
28
+ await fs.ensureDir(path.join(targetDir, "scripts"));
16
29
  // 2. Create package.json
17
30
  const packageJson = {
18
31
  name: projectName,
@@ -23,7 +36,9 @@ export async function fetchCloudflareMcpiTemplate(targetDir, options) {
23
36
  dev: "wrangler dev",
24
37
  start: "wrangler dev",
25
38
  test: "vitest",
26
- "cf-typegen": "wrangler types"
39
+ "cf-typegen": "wrangler types",
40
+ "kv:create-nonce": "wrangler kv:namespace create NONCE_CACHE",
41
+ "setup": "node scripts/setup.js"
27
42
  },
28
43
  dependencies: {
29
44
  "@kya-os/mcp-i-cloudflare": "^1.5.8-canary.47",
@@ -42,7 +57,21 @@ export async function fetchCloudflareMcpiTemplate(targetDir, options) {
42
57
  await fs.writeJson(path.join(targetDir, "package.json"), packageJson, {
43
58
  spaces: 2,
44
59
  });
45
- // 3. Create wrangler.toml
60
+ // 3. Generate Identity (Keys & DID)
61
+ console.log(chalk.blue("šŸ”‘ Generating cryptographic identity..."));
62
+ const identity = await generateIdentity();
63
+ // 4. Create .dev.vars (Secrets)
64
+ const devVarsContent = `# Secrets for local development
65
+ # Generated by create-mcpi-app
66
+
67
+ # Agent Identity (DO NOT COMMIT THIS FILE)
68
+ MCP_IDENTITY_PRIVATE_KEY="${identity.privateKey}"
69
+
70
+ # AgentShield Configuration
71
+ ${apikey ? `AGENTSHIELD_API_KEY="${apikey}"` : '# AGENTSHIELD_API_KEY=""'}
72
+ `;
73
+ await fs.writeFile(path.join(targetDir, ".dev.vars"), devVarsContent);
74
+ // 5. Create wrangler.toml
46
75
  const wranglerToml = `#:schema node_modules/wrangler/config-schema.json
47
76
  name = "${projectName}"
48
77
  main = "src/index.ts"
@@ -59,20 +88,26 @@ tag = "v1"
59
88
  new_classes = ["${toPascalCase(projectName)}MCP"]
60
89
 
61
90
  # KV Namespace for nonce cache (replay protection)
62
- # Run 'npm run kv:create-nonce' to generate ID
91
+ # Run 'npm run kv:create-nonce' to generate ID and uncomment below
63
92
  # [[kv_namespaces]]
64
93
  # binding = "NONCE_CACHE"
65
94
  # id = "TODO_REPLACE_WITH_ID"
66
95
 
67
96
  [vars]
68
97
  # Environment variables
69
- # AGENTSHIELD_API_URL = "https://kya.vouched.id"
70
- # MCPI_ENV = "development"
98
+ AGENTSHIELD_API_URL = "https://kya.vouched.id"
99
+ MCPI_ENV = "development"
100
+ ${projectId ? `AGENTSHIELD_PROJECT_ID = "${projectId}"` : '# AGENTSHIELD_PROJECT_ID = "your-project-id"'}
101
+
102
+ # Agent Public Identity (Safe to commit)
103
+ MCP_IDENTITY_AGENT_DID = "${identity.did}"
104
+ MCP_IDENTITY_PUBLIC_KEY = "${identity.publicKey}"
71
105
  `;
72
106
  await fs.writeFile(path.join(targetDir, "wrangler.toml"), wranglerToml);
73
- // 4. Create src/index.ts (entry point)
107
+ // 6. Create src/index.ts (Entry Point)
74
108
  const indexTs = `import { createMCPICloudflareAdapter } from "@kya-os/mcp-i-cloudflare";
75
109
  import { ${toPascalCase(projectName)}Agent } from "./agent";
110
+ import config from "./mcpi-runtime-config";
76
111
 
77
112
  // Create the adapter
78
113
  const adapter = createMCPICloudflareAdapter({
@@ -82,6 +117,7 @@ const adapter = createMCPICloudflareAdapter({
82
117
  name: "${projectName}",
83
118
  version: "1.0.0",
84
119
  },
120
+ tools: config.tools, // Pass tools from config
85
121
  });
86
122
 
87
123
  // Export the fetch handler and Durable Object
@@ -89,44 +125,33 @@ export default adapter;
89
125
  export { ${toPascalCase(projectName)}MCP } from "./agent";
90
126
  `;
91
127
  await fs.writeFile(path.join(targetDir, "src/index.ts"), indexTs);
92
- // 5. Create src/agent.ts (Agent implementation)
128
+ // 7. Create src/agent.ts (Agent Class)
93
129
  const agentTs = `import { MCPICloudflareAgent } from "@kya-os/mcp-i-cloudflare";
130
+ import config from "./mcpi-runtime-config";
94
131
  import type { Tool } from "@modelcontextprotocol/sdk/types.js";
95
132
 
133
+ /**
134
+ * MCP-I Agent Implementation
135
+ */
96
136
  export class ${toPascalCase(projectName)}Agent extends MCPICloudflareAgent {
97
137
  /**
98
- * Define tools available to this agent
138
+ * Get tools definition from runtime config
99
139
  */
100
140
  protected getTools(): Tool[] {
101
- return [
102
- {
103
- name: "greet",
104
- description: "Greet the user",
105
- inputSchema: {
106
- type: "object",
107
- properties: {
108
- name: { type: "string" },
109
- },
110
- required: ["name"],
111
- },
112
- },
113
- ];
141
+ return config.tools || [];
114
142
  }
115
143
 
116
144
  /**
117
- * Handle tool execution
145
+ * Handle tool execution by routing to handlers defined in config
118
146
  */
119
147
  protected async executeTool(name: string, args: any): Promise<any> {
120
- if (name === "greet") {
121
- return {
122
- content: [
123
- {
124
- type: "text",
125
- text: \`Hello, \${args.name}!\`,
126
- },
127
- ],
128
- };
148
+ // Find the tool handler in our config
149
+ const toolDef = config.tools?.find(t => t.name === name);
150
+
151
+ if (toolDef && (toolDef as any).handler) {
152
+ return (toolDef as any).handler(args);
129
153
  }
154
+
130
155
  throw new Error(\`Unknown tool: \${name}\`);
131
156
  }
132
157
  }
@@ -135,7 +160,93 @@ export class ${toPascalCase(projectName)}Agent extends MCPICloudflareAgent {
135
160
  export class ${toPascalCase(projectName)}MCP extends ${toPascalCase(projectName)}Agent {}
136
161
  `;
137
162
  await fs.writeFile(path.join(targetDir, "src/agent.ts"), agentTs);
138
- // 6. Create tsconfig.json
163
+ // 8. Create src/tools/greet.ts
164
+ const greetToolTs = `import type { ToolDefinition } from "@kya-os/mcp-i-cloudflare";
165
+
166
+ export const greetTool: ToolDefinition = {
167
+ name: "greet",
168
+ description: "Greet the user",
169
+ inputSchema: {
170
+ type: "object",
171
+ properties: {
172
+ name: { type: "string" },
173
+ },
174
+ required: ["name"],
175
+ },
176
+ handler: async (args: { name: string }) => {
177
+ return {
178
+ content: [
179
+ {
180
+ type: "text",
181
+ text: \`Hello, \${args.name}!\`,
182
+ },
183
+ ],
184
+ };
185
+ },
186
+ };
187
+ `;
188
+ await fs.writeFile(path.join(targetDir, "src/tools/greet.ts"), greetToolTs);
189
+ // 9. Create src/mcpi-runtime-config.ts
190
+ const runtimeConfigTs = `import type { ToolDefinition } from "@kya-os/mcp-i-cloudflare";
191
+ import { greetTool } from "./tools/greet";
192
+
193
+ interface RuntimeConfig {
194
+ tools: ToolDefinition[];
195
+ }
196
+
197
+ const config: RuntimeConfig = {
198
+ tools: [
199
+ greetTool,
200
+ // Add more tools here
201
+ ],
202
+ };
203
+
204
+ export default config;
205
+ `;
206
+ await fs.writeFile(path.join(targetDir, "src/mcpi-runtime-config.ts"), runtimeConfigTs);
207
+ // 10. Create scripts/setup.js (Key Regeneration Script)
208
+ // This allows users to regenerate identity keys if needed
209
+ const setupJs = `
210
+ const fs = require('fs');
211
+ const path = require('path');
212
+ const { generateKeyPairSync } = require('crypto');
213
+ const { promisify } = require('util');
214
+
215
+ // Simple base58 implementation for DID generation (simplified for setup script)
216
+ // In a real app, we use the libraries, but for a standalone script we keep it simple
217
+ // or assume node_modules are installed.
218
+ // Since this runs after install, we can try to use the installed packages if available,
219
+ // or fallback to standard crypto.
220
+
221
+ async function setup() {
222
+ console.log('šŸ”„ Regenerating MCP-I Identity...');
223
+
224
+ // Generate Ed25519 Key Pair
225
+ const { privateKey, publicKey } = generateKeyPairSync('ed25519');
226
+
227
+ // Convert to base64
228
+ const privateKeyBase64 = privateKey.export({ format: 'der', type: 'pkcs8' }).toString('base64');
229
+ const publicKeyBase64 = publicKey.export({ format: 'der', type: 'spki' }).toString('base64');
230
+
231
+ // Note: Proper DID:key generation requires multibase/multicodec.
232
+ // For this simple setup script, we'll use a placeholder or check if we can import helpers.
233
+ // Ideally, users should rely on the initial scaffolded keys.
234
+
235
+ console.log('āœ… Keys generated!');
236
+ console.log('Private Key (Base64):', privateKeyBase64);
237
+ console.log('Public Key (Base64):', publicKeyBase64);
238
+ console.log('');
239
+ console.log('šŸ‘‰ Update your .dev.vars with MCP_IDENTITY_PRIVATE_KEY');
240
+ console.log('šŸ‘‰ Update your wrangler.toml with MCP_IDENTITY_PUBLIC_KEY');
241
+ console.log('');
242
+ console.log('To generate a full DID:key compliant identifier, please use the CLI:');
243
+ console.log('npx @kya-os/cli identity generate');
244
+ }
245
+
246
+ setup().catch(console.error);
247
+ `;
248
+ await fs.writeFile(path.join(targetDir, "scripts/setup.js"), setupJs);
249
+ // 11. Create tsconfig.json
139
250
  const tsConfig = {
140
251
  compilerOptions: {
141
252
  target: "esnext",
@@ -152,7 +263,7 @@ export class ${toPascalCase(projectName)}MCP extends ${toPascalCase(projectName)
152
263
  await fs.writeJson(path.join(targetDir, "tsconfig.json"), tsConfig, {
153
264
  spaces: 2,
154
265
  });
155
- // 7. Create .gitignore
266
+ // 12. Create .gitignore
156
267
  const gitignore = `node_modules
157
268
  dist
158
269
  .wrangler
@@ -160,6 +271,9 @@ dist
160
271
  `;
161
272
  await fs.writeFile(path.join(targetDir, ".gitignore"), gitignore);
162
273
  console.log(chalk.green("āœ” Created Cloudflare MCP-I template files"));
274
+ console.log(chalk.gray(" - Generated identity keys in .dev.vars"));
275
+ console.log(chalk.gray(" - Configured wrangler.toml"));
276
+ console.log(chalk.gray(" - Created modular tool structure"));
163
277
  }
164
278
  function toPascalCase(str) {
165
279
  return str
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-cloudflare-mcpi-template.js","sourceRoot":"","sources":["../../src/helpers/fetch-cloudflare-mcpi-template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetch-cloudflare-mcpi-template.js","sourceRoot":"","sources":["../../src/helpers/fetch-cloudflare-mcpi-template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAUvD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,SAAiB,EACjB,OAA2C;IAE3C,yEAAyE;IACzE,MAAM,IAAI,GAA8B,OAAO,OAAO,KAAK,QAAQ;QACjE,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE;QACjD,CAAC,CAAC,OAAO,CAAC;IAEZ,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAEhD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+CAA+C,WAAW,KAAK,CAAC,CAAC,CAAC;IAEzF,gCAAgC;IAChC,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAChD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IACtD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAEpD,yBAAyB;IACzB,MAAM,WAAW,GAAG;QAClB,IAAI,EAAE,WAAW;QACjB,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;YAC9B,iBAAiB,EAAE,0CAA0C;YAC7D,OAAO,EAAE,uBAAuB;SACjC;QACD,YAAY,EAAE;YACZ,0BAA0B,EAAE,kBAAkB;YAC9C,2BAA2B,EAAE,QAAQ;YACrC,MAAM,EAAE,QAAQ;SACjB;QACD,eAAe,EAAE;YACf,iCAAiC,EAAE,QAAQ;YAC3C,2BAA2B,EAAE,eAAe;YAC5C,aAAa,EAAE,SAAS;YACxB,YAAY,EAAE,QAAQ;YACtB,QAAQ,EAAE,OAAO;YACjB,UAAU,EAAE,UAAU;SACvB;KACF,CAAC;IAEF,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,WAAW,EAAE;QACpE,MAAM,EAAE,CAAC;KACV,CAAC,CAAC;IAEH,oCAAoC;IACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAE1C,gCAAgC;IAChC,MAAM,cAAc,GAAG;;;;4BAIG,QAAQ,CAAC,UAAU;;;EAG7C,MAAM,CAAC,CAAC,CAAC,wBAAwB,MAAM,GAAG,CAAC,CAAC,CAAC,0BAA0B;CACxE,CAAC;IAEA,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,cAAc,CAAC,CAAC;IAEtE,0BAA0B;IAC1B,MAAM,YAAY,GAAG;UACb,WAAW;;;;;;;;gBAQL,YAAY,CAAC,WAAW,CAAC;;;;kBAIvB,YAAY,CAAC,WAAW,CAAC;;;;;;;;;;;;EAYzC,SAAS,CAAC,CAAC,CAAC,6BAA6B,SAAS,GAAG,CAAC,CAAC,CAAC,8CAA8C;;;4BAG5E,QAAQ,CAAC,GAAG;6BACX,QAAQ,CAAC,SAAS;CAC9C,CAAC;IAEA,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE,YAAY,CAAC,CAAC;IAExE,uCAAuC;IACvC,MAAM,OAAO,GAAG;WACP,YAAY,CAAC,WAAW,CAAC;;;;;WAKzB,YAAY,CAAC,WAAW,CAAC;;;aAGvB,WAAW;;;;;;;;WAQb,YAAY,CAAC,WAAW,CAAC;CACnC,CAAC;IAEA,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC;IAElE,uCAAuC;IACvC,MAAM,OAAO,GAAG;;;;;;;eAOH,YAAY,CAAC,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;eAwBzB,YAAY,CAAC,WAAW,CAAC,eAAe,YAAY,CAAC,WAAW,CAAC;CAC/E,CAAC;IAEA,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC;IAElE,+BAA+B;IAC/B,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;CAuBrB,CAAC;IAEA,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAAE,WAAW,CAAC,CAAC;IAE5E,uCAAuC;IACvC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;CAezB,CAAC;IAEA,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,4BAA4B,CAAC,EAAE,eAAe,CAAC,CAAC;IAExF,wDAAwD;IACxD,0DAA0D;IAC1D,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCjB,CAAC;IAEA,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC,CAAC;IAEtE,2BAA2B;IAC3B,MAAM,QAAQ,GAAG;QACf,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;IAEF,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE,QAAQ,EAAE;QAClE,MAAM,EAAE,CAAC;KACV,CAAC,CAAC;IAEH,wBAAwB;IACxB,MAAM,SAAS,GAAG;;;;CAInB,CAAC;IAEA,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC;IAElE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,OAAO,GAAG;SACP,OAAO,CAAC,qBAAqB,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC9C,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC,CAAC;SACD,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;SACnB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACvB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kya-os/create-mcpi-app",
3
- "version": "1.7.42-canary.36",
3
+ "version": "1.7.42-canary.37",
4
4
  "description": "Scaffold a new MCP-I application",
5
5
  "bin": {
6
6
  "create-mcpi-app": "./dist/index.js"