@kya-os/create-mcpi-app 1.7.42-canary.40 ā 1.7.42-canary.41
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
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
|
|
2
|
-
> @kya-os/create-mcpi-app@1.7.42-canary.
|
|
2
|
+
> @kya-os/create-mcpi-app@1.7.42-canary.40 build /Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/create-mcpi-app
|
|
3
3
|
> tsc && chmod +x dist/index.js
|
|
4
4
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-cloudflare-mcpi-template.d.ts","sourceRoot":"","sources":["../../src/helpers/fetch-cloudflare-mcpi-template.ts"],"names":[],"mappings":"AAOA,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;;;;;;;;;;;;;GAaG;AACH,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,yBAAyB,GAAG,MAAM,GAC1C,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"fetch-cloudflare-mcpi-template.d.ts","sourceRoot":"","sources":["../../src/helpers/fetch-cloudflare-mcpi-template.ts"],"names":[],"mappings":"AAOA,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;;;;;;;;;;;;;GAaG;AACH,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,yBAAyB,GAAG,MAAM,GAC1C,OAAO,CAAC,IAAI,CAAC,CAqlBf"}
|
|
@@ -52,7 +52,7 @@ export async function fetchCloudflareMcpiTemplate(targetDir, options) {
|
|
|
52
52
|
"kv:create-tool-protection": `wrangler kv:namespace create ${projectNameUpper}_TOOL_PROTECTION_KV`
|
|
53
53
|
},
|
|
54
54
|
dependencies: {
|
|
55
|
-
"@kya-os/mcp-i-cloudflare": "^1.5.8-canary.
|
|
55
|
+
"@kya-os/mcp-i-cloudflare": "^1.5.8-canary.49",
|
|
56
56
|
"@modelcontextprotocol/sdk": "^0.6.0",
|
|
57
57
|
"agents": "^0.2.21",
|
|
58
58
|
"hono": "^4.6.3"
|
|
@@ -79,9 +79,10 @@ MCP_IDENTITY_PRIVATE_KEY="${identity.privateKey}"
|
|
|
79
79
|
# AgentShield Configuration
|
|
80
80
|
${apikey ? `AGENTSHIELD_API_KEY="${apikey}"` : '# AGENTSHIELD_API_KEY="sk_YOUR_API_KEY_HERE"'}
|
|
81
81
|
|
|
82
|
-
# Admin API Key for cache management
|
|
83
|
-
#
|
|
84
|
-
|
|
82
|
+
# Admin API Key for cache management (OPTIONAL)
|
|
83
|
+
# If not provided, falls back to AGENTSHIELD_API_KEY
|
|
84
|
+
# Only set this if you need a separate admin key for security
|
|
85
|
+
# ADMIN_API_KEY="${generateAdminApiKey()}"
|
|
85
86
|
`;
|
|
86
87
|
await fs.writeFile(path.join(targetDir, ".dev.vars"), devVarsContent);
|
|
87
88
|
// 5. Create wrangler.toml with all KV namespaces (placeholders initially)
|
|
@@ -219,10 +220,17 @@ MCPI_ENV = "development"
|
|
|
219
220
|
# Secrets (NOT declared here - see instructions below)
|
|
220
221
|
# For local development: Add secrets to .dev.vars file
|
|
221
222
|
# For production: Use wrangler secret put COMMAND_NAME
|
|
223
|
+
#
|
|
224
|
+
# Required secrets:
|
|
222
225
|
# $ wrangler secret put MCP_IDENTITY_PRIVATE_KEY
|
|
223
|
-
#
|
|
224
|
-
#
|
|
225
|
-
|
|
226
|
+
#
|
|
227
|
+
# Optional secrets (recommended for production):
|
|
228
|
+
# $ wrangler secret put AGENTSHIELD_API_KEY # For AgentShield integration
|
|
229
|
+
#
|
|
230
|
+
# Optional secrets (advanced):
|
|
231
|
+
# $ wrangler secret put ADMIN_API_KEY # For cache management endpoints
|
|
232
|
+
# # Falls back to AGENTSHIELD_API_KEY if not set
|
|
233
|
+
#
|
|
226
234
|
# Note: .dev.vars is git-ignored and contains actual secret values for local dev
|
|
227
235
|
|
|
228
236
|
# Optional: MCP Server URL for tool discovery and consent page generation
|
|
@@ -345,6 +353,18 @@ const projectNameUpper = '${projectNameUpper}';
|
|
|
345
353
|
console.log('š Setting up MCP-I Cloudflare Worker...');
|
|
346
354
|
console.log('');
|
|
347
355
|
|
|
356
|
+
// Check if user is logged in to Cloudflare
|
|
357
|
+
console.log('š Checking Cloudflare authentication...');
|
|
358
|
+
try {
|
|
359
|
+
execSync('wrangler whoami', { encoding: 'utf8', stdio: 'pipe' });
|
|
360
|
+
console.log('ā
Logged in to Cloudflare\\n');
|
|
361
|
+
} catch (error) {
|
|
362
|
+
console.error('ā Not logged in to Cloudflare!\\n');
|
|
363
|
+
console.error('Please run: wrangler login\\n');
|
|
364
|
+
console.error('Then run this setup script again: npm run setup\\n');
|
|
365
|
+
process.exit(1);
|
|
366
|
+
}
|
|
367
|
+
|
|
348
368
|
// Function to execute command and capture output
|
|
349
369
|
function exec(command, silent = false) {
|
|
350
370
|
try {
|
|
@@ -354,8 +374,11 @@ function exec(command, silent = false) {
|
|
|
354
374
|
if (!silent) {
|
|
355
375
|
console.error(\`ā Command failed: \${command}\`);
|
|
356
376
|
console.error(error.message);
|
|
377
|
+
if (error.stderr) {
|
|
378
|
+
console.error('Error output:', error.stderr.toString());
|
|
379
|
+
}
|
|
357
380
|
}
|
|
358
|
-
|
|
381
|
+
throw error; // Re-throw to handle in caller
|
|
359
382
|
}
|
|
360
383
|
}
|
|
361
384
|
|
|
@@ -393,44 +416,97 @@ const namespaces = [
|
|
|
393
416
|
console.log('š¦ Creating KV namespaces...');
|
|
394
417
|
console.log('');
|
|
395
418
|
|
|
419
|
+
let successCount = 0;
|
|
420
|
+
let failureCount = 0;
|
|
421
|
+
|
|
396
422
|
for (const ns of namespaces) {
|
|
397
|
-
console.log(
|
|
398
|
-
|
|
399
|
-
// Try to create the namespace
|
|
400
|
-
const output = exec(\`wrangler kv:namespace create \${ns.binding}\`, true);
|
|
423
|
+
console.log(\`\\nš¦ Creating \${ns.name}...\`);
|
|
424
|
+
console.log(\` Description: \${ns.description}\`);
|
|
401
425
|
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
426
|
+
try {
|
|
427
|
+
// Try to create the namespace
|
|
428
|
+
const output = exec(\`wrangler kv:namespace create \${ns.binding}\`, true);
|
|
429
|
+
|
|
430
|
+
if (output) {
|
|
431
|
+
console.log(\` Raw output: \${output.substring(0, 200)}\`);
|
|
432
|
+
|
|
433
|
+
const namespaceId = extractNamespaceId(output);
|
|
434
|
+
if (namespaceId) {
|
|
435
|
+
updateWranglerToml(ns.binding, namespaceId);
|
|
436
|
+
console.log(\` ā
Created successfully!\`);
|
|
437
|
+
successCount++;
|
|
438
|
+
} else {
|
|
439
|
+
console.log(\` ā ļø Could not extract namespace ID from output.\`);
|
|
440
|
+
console.log(\` Full output: \${output}\`);
|
|
441
|
+
console.log(\` You may need to update wrangler.toml manually.\`);
|
|
442
|
+
failureCount++;
|
|
443
|
+
}
|
|
406
444
|
} else {
|
|
407
|
-
console.log(
|
|
408
|
-
|
|
445
|
+
console.log(\` ā ļø No output from wrangler command.\`);
|
|
446
|
+
failureCount++;
|
|
409
447
|
}
|
|
410
|
-
}
|
|
411
|
-
// Namespace might already exist
|
|
412
|
-
console.log(\`
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
448
|
+
} catch (error) {
|
|
449
|
+
// Namespace might already exist
|
|
450
|
+
console.log(\` ā¹ļø Namespace may already exist. Checking...\`);
|
|
451
|
+
try {
|
|
452
|
+
const listOutput = exec(\`wrangler kv:namespace list\`, true);
|
|
453
|
+
if (listOutput && listOutput.includes(ns.binding)) {
|
|
454
|
+
console.log(\` ā Namespace \${ns.binding} already exists\`);
|
|
455
|
+
|
|
456
|
+
// Try to extract ID from list output
|
|
457
|
+
const listJson = JSON.parse(listOutput);
|
|
458
|
+
const existing = listJson.find(item => item.title.includes(ns.binding));
|
|
459
|
+
if (existing && existing.id) {
|
|
460
|
+
updateWranglerToml(ns.binding, existing.id);
|
|
461
|
+
console.log(\` ā
Updated wrangler.toml with existing ID: \${existing.id}\`);
|
|
462
|
+
successCount++;
|
|
463
|
+
} else {
|
|
464
|
+
console.log(\` ā ļø Found namespace but could not extract ID. Update wrangler.toml manually.\`);
|
|
465
|
+
failureCount++;
|
|
466
|
+
}
|
|
467
|
+
} else {
|
|
468
|
+
console.log(\` ā Could not create or find namespace \${ns.binding}.\`);
|
|
469
|
+
console.log(\` Error: \${error.message}\`);
|
|
470
|
+
console.log(\` You may need to create it manually with: wrangler kv:namespace create \${ns.binding}\`);
|
|
471
|
+
failureCount++;
|
|
472
|
+
}
|
|
473
|
+
} catch (listError) {
|
|
474
|
+
console.log(\` ā Failed to list namespaces: \${listError.message}\`);
|
|
475
|
+
failureCount++;
|
|
418
476
|
}
|
|
419
477
|
}
|
|
420
478
|
}
|
|
421
479
|
|
|
422
480
|
console.log('');
|
|
423
|
-
console.log('
|
|
424
|
-
console.log('');
|
|
425
|
-
console.log(
|
|
481
|
+
console.log('āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā');
|
|
482
|
+
console.log('š Setup Summary:');
|
|
483
|
+
console.log(\` ā
Success: \${successCount}/\${namespaces.length} namespaces\`);
|
|
484
|
+
console.log(\` ā Failed: \${failureCount}/\${namespaces.length} namespaces\`);
|
|
485
|
+
console.log('āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā\\n');
|
|
486
|
+
|
|
487
|
+
if (failureCount > 0) {
|
|
488
|
+
console.log('ā ļø Some namespaces failed to create.\\n');
|
|
489
|
+
console.log('Manual steps required:');
|
|
490
|
+
console.log('1. Check wrangler.toml for any "TODO_REPLACE_WITH_ID" entries');
|
|
491
|
+
console.log('2. Create missing namespaces manually with:');
|
|
492
|
+
console.log(' wrangler kv:namespace create NAMESPACE_BINDING\\n');
|
|
493
|
+
console.log('3. Copy the ID from the output to wrangler.toml\\n');
|
|
494
|
+
} else {
|
|
495
|
+
console.log('⨠Setup complete!\\n');
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
console.log('š Next steps:');
|
|
426
499
|
console.log('1. Review wrangler.toml to ensure all namespace IDs are populated');
|
|
427
|
-
console.log('2.
|
|
428
|
-
console.log('3. Run "npm run
|
|
429
|
-
console.log('');
|
|
430
|
-
|
|
431
|
-
console.log('
|
|
432
|
-
console.log('
|
|
433
|
-
|
|
500
|
+
console.log('2. Review .dev.vars for secrets configuration');
|
|
501
|
+
console.log('3. Run "npm run dev" to start the development server');
|
|
502
|
+
console.log('4. Run "npm run deploy" to deploy to Cloudflare Workers\\n');
|
|
503
|
+
|
|
504
|
+
console.log('š For production deployment:');
|
|
505
|
+
console.log(' wrangler secret put MCP_IDENTITY_PRIVATE_KEY');
|
|
506
|
+
if (failureCount === 0) {
|
|
507
|
+
console.log(' wrangler secret put AGENTSHIELD_API_KEY');
|
|
508
|
+
console.log(' # ADMIN_API_KEY is optional - falls back to AGENTSHIELD_API_KEY if not set');
|
|
509
|
+
}
|
|
434
510
|
`;
|
|
435
511
|
await fs.writeFile(path.join(targetDir, "scripts/setup.js"), setupJs);
|
|
436
512
|
await fs.chmod(path.join(targetDir, "scripts/setup.js"), '755');
|
|
@@ -470,12 +546,43 @@ dist
|
|
|
470
546
|
console.log(chalk.blue("\nš§ Running setup script to create KV namespaces..."));
|
|
471
547
|
try {
|
|
472
548
|
await runCommand("node", ["scripts/setup.js"], targetDir);
|
|
549
|
+
console.log(chalk.green("\nā
KV namespaces created successfully!"));
|
|
473
550
|
}
|
|
474
551
|
catch (error) {
|
|
475
|
-
console.log(chalk.yellow("\nā ļø
|
|
476
|
-
console.log(chalk.yellow("
|
|
477
|
-
console.log(chalk.yellow("
|
|
552
|
+
console.log(chalk.yellow("\nā ļø KV namespace setup encountered issues."));
|
|
553
|
+
console.log(chalk.yellow("\nMost likely cause: You're not logged in to Cloudflare."));
|
|
554
|
+
console.log(chalk.yellow("\nTo fix this:"));
|
|
555
|
+
console.log(chalk.cyan(" 1. cd " + projectName));
|
|
556
|
+
console.log(chalk.cyan(" 2. wrangler login"));
|
|
557
|
+
console.log(chalk.cyan(" 3. npm run setup"));
|
|
558
|
+
console.log(chalk.gray("\nThe setup script will create all required KV namespaces and update wrangler.toml."));
|
|
559
|
+
}
|
|
560
|
+
// 15. Final instructions
|
|
561
|
+
console.log(chalk.blue("\n" + "=".repeat(60)));
|
|
562
|
+
console.log(chalk.bold.green("š Cloudflare MCP-I project created successfully!"));
|
|
563
|
+
console.log(chalk.blue("=".repeat(60)));
|
|
564
|
+
console.log(chalk.bold("\nš Important Configuration Notes:"));
|
|
565
|
+
console.log(chalk.gray("\n1. ADMIN_API_KEY (in .dev.vars):"));
|
|
566
|
+
console.log(chalk.gray(" - OPTIONAL: Falls back to AGENTSHIELD_API_KEY if not set"));
|
|
567
|
+
console.log(chalk.gray(" - Only needed if you want separate admin endpoint security"));
|
|
568
|
+
console.log(chalk.gray(" - For most use cases, you can delete this line\n"));
|
|
569
|
+
console.log(chalk.gray("2. KV Namespaces (in wrangler.toml):"));
|
|
570
|
+
console.log(chalk.gray(" - Required for MCP-I security features"));
|
|
571
|
+
console.log(chalk.gray(" - Auto-created by 'npm run setup' script"));
|
|
572
|
+
console.log(chalk.gray(" - Check wrangler.toml for 'TODO_REPLACE_WITH_ID' if setup failed\n"));
|
|
573
|
+
console.log(chalk.bold("š Next Steps:"));
|
|
574
|
+
console.log(chalk.cyan(" cd " + projectName));
|
|
575
|
+
// Check if they need to run setup
|
|
576
|
+
const wranglerPath = path.join(targetDir, "wrangler.toml");
|
|
577
|
+
if (fs.existsSync(wranglerPath)) {
|
|
578
|
+
const wranglerContent = await fs.readFile(wranglerPath, 'utf-8');
|
|
579
|
+
if (wranglerContent.includes('TODO_REPLACE_WITH_ID')) {
|
|
580
|
+
console.log(chalk.yellow(" wrangler login # Login to Cloudflare first!"));
|
|
581
|
+
console.log(chalk.yellow(" npm run setup # Create KV namespaces"));
|
|
582
|
+
}
|
|
478
583
|
}
|
|
584
|
+
console.log(chalk.cyan(" npm run dev # Start local development"));
|
|
585
|
+
console.log(chalk.cyan(" npm run deploy # Deploy to Cloudflare\n"));
|
|
479
586
|
}
|
|
480
587
|
function toPascalCase(str) {
|
|
481
588
|
return str
|
|
@@ -1 +1 @@
|
|
|
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,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAU1D;;;;;;;;;;;;;GAaG;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,cAAc,EAAE,GAAG,IAAI,CAAC;IAChE,MAAM,gBAAgB,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAEtE,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,oCAAoC;IACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAE1C,0CAA0C;IAC1C,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,OAAO,EAAE,uBAAuB;YAChC,iBAAiB,EAAE,gCAAgC,gBAAgB,cAAc;YACjF,iBAAiB,EAAE,gCAAgC,gBAAgB,gBAAgB;YACnF,oBAAoB,EAAE,gCAAgC,gBAAgB,mBAAmB;YACzF,sBAAsB,EAAE,gCAAgC,gBAAgB,qBAAqB;YAC7F,2BAA2B,EAAE,gCAAgC,gBAAgB,qBAAqB;SACnG;QACD,YAAY,EAAE;YACZ,0BAA0B,EAAE,kBAAkB;YAC9C,2BAA2B,EAAE,QAAQ;YACrC,QAAQ,EAAE,SAAS;YACnB,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,uCAAuC;IACvC,MAAM,cAAc,GAAG;;;;4BAIG,QAAQ,CAAC,UAAU;;;EAG7C,MAAM,CAAC,CAAC,CAAC,wBAAwB,MAAM,GAAG,CAAC,CAAC,CAAC,8CAA8C
|
|
1
|
+
{"version":3,"file":"fetch-cloudflare-mcpi-template.js","sourceRoot":"","sources":["../../src/helpers/fetch-cloudflare-mcpi-template.ts"],"names":[],"mappings":"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"}
|