@kya-os/create-mcpi-app 1.9.33 → 1.9.35

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 +16 -12
  2. package/.turbo/turbo-test$colon$coverage.log +1829 -0
  3. package/.turbo/turbo-test.log +628 -0
  4. package/dist/bundles/blank.js +94964 -81677
  5. package/dist/bundles/ecommerce.js +94964 -81677
  6. package/dist/bundles/hardware-world.js +94979 -81692
  7. package/dist/bundles/manifest.json +14 -9
  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 +441 -7
  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 +3 -3
  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 +31 -9
@@ -1 +1 @@
1
- {"version":3,"file":"cli-runner.d.ts","sourceRoot":"","sources":["../src/cli-runner.ts"],"names":[],"mappings":"AA0BA,wBAAsB,MAAM,CAAC,IAAI,GAAE,MAAM,EAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiezE"}
1
+ {"version":3,"file":"cli-runner.d.ts","sourceRoot":"","sources":["../src/cli-runner.ts"],"names":[],"mappings":"AA2BA,wBAAsB,MAAM,CAAC,IAAI,GAAE,MAAM,EAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyfzE"}
@@ -10,6 +10,7 @@ import { createProject } from "./helpers/create.js";
10
10
  import { createKYAOSBanner } from "./effects/index.js";
11
11
  import { validateProjectName, validateDirectoryAvailability, } from "./utils/validate-project-name.js";
12
12
  import { resetIdentity, regenerateIdentity, } from "./helpers/identity-manager.js";
13
+ import { runWrapCommand } from "./helpers/wrap/index.js";
13
14
  const __filename = fileURLToPath(import.meta.url);
14
15
  const __dirname = path.dirname(__filename);
15
16
  const packageJson = JSON.parse(fs.readFileSync(path.join(__dirname, "../package.json"), "utf8"));
@@ -370,6 +371,28 @@ export async function runCLI(argv = process.argv) {
370
371
  process.exit(1);
371
372
  }
372
373
  });
374
+ program
375
+ .command("wrap [directory]")
376
+ .description("Wrap an existing MCP server with MCP-I identity verification")
377
+ .option("-y, --yes", "Skip confirmation prompts (use defaults)", false)
378
+ .option("--skip-install", "Skip installing dependencies", false)
379
+ .option("--skip-identity", "Skip DID generation", false)
380
+ .action(async (directory, options) => {
381
+ try {
382
+ const targetDir = directory
383
+ ? path.resolve(process.cwd(), directory)
384
+ : process.cwd();
385
+ await runWrapCommand(targetDir, {
386
+ yes: options.yes,
387
+ skipInstall: options.skipInstall,
388
+ skipIdentity: options.skipIdentity,
389
+ });
390
+ }
391
+ catch (error) {
392
+ console.error(chalk.red("Failed to wrap server:"), error);
393
+ process.exit(1);
394
+ }
395
+ });
373
396
  program
374
397
  .command("reset-identity")
375
398
  .description("Reset the current project's identity (removes identity files)")
@@ -1 +1 @@
1
- {"version":3,"file":"cli-runner.js","sourceRoot":"","sources":["../src/cli-runner.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EACL,mBAAmB,EACnB,6BAA6B,GAC9B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,aAAa,EACb,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC,CACjE,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAAiB,OAAO,CAAC,IAAI;IACxD,gBAAgB,EAAE,CAAC;IAEnB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;SAC1B,IAAI,CAAC,iBAAiB,CAAC;SACvB,WAAW,CACV,gEAAgE,CACjE;SACA,OAAO,CACN,WAAW,CAAC,OAAO,EACnB,eAAe,EACf,gDAAgD,CACjD;SACA,QAAQ,CAAC,aAAa,CAAC;SACvB,KAAK,CAAC,uBAAuB,CAAC;SAC9B,UAAU,CAAC,YAAY,EAAE,uBAAuB,CAAC;SACjD,MAAM,CAAC,WAAW,EAAE,0BAA0B,EAAE,KAAK,CAAC;SACtD,MAAM,CAAC,WAAW,EAAE,+CAA+C,CAAC;SACpE,MAAM,CAAC,YAAY,EAAE,6BAA6B,CAAC;SACnD,MAAM,CAAC,YAAY,EAAE,6BAA6B,CAAC;SACnD,MAAM,CAAC,gBAAgB,EAAE,8BAA8B,EAAE,KAAK,CAAC;SAC/D,MAAM,CAAC,iBAAiB,EAAE,0BAA0B,EAAE,KAAK,CAAC;SAC5D,MAAM,CACL,eAAe,EACf,oDAAoD,CACrD;SACA,MAAM,CAAC,UAAU,EAAE,mCAAmC,EAAE,KAAK,CAAC;SAC9D,MAAM,CAAC,QAAQ,EAAE,uBAAuB,EAAE,KAAK,CAAC;SAChD,MAAM,CAAC,SAAS,EAAE,wBAAwB,EAAE,KAAK,CAAC;SAClD,MAAM,CAAC,SAAS,EAAE,4BAA4B,EAAE,KAAK,CAAC;SACtD,MAAM,CAAC,0BAA0B,EAAE,sCAAsC,CAAC;SAC1E,MAAM,CAAC,gBAAgB,EAAE,+BAA+B,EAAE,KAAK,CAAC;SAChE,MAAM,CAAC,QAAQ,EAAE,gCAAgC,EAAE,KAAK,CAAC;SACzD,MAAM,CACL,mBAAmB,EACnB,iDAAiD,EACjD,MAAM,CACP;SACA,MAAM,CAAC,eAAe,EAAE,wCAAwC,EAAE,OAAO,CAAC;SAC1E,MAAM,CACL,mBAAmB,EACnB,gDAAgD,CACjD;SACA,MAAM,CAAC,gBAAgB,EAAE,+CAA+C,CAAC;SACzE,MAAM,CACL,gBAAgB,EAChB,2FAA2F,CAC5F;SACA,MAAM,CACL,YAAY,EACZ,0DAA0D,CAC3D;SACA,MAAM,CAAC,eAAe,EAAE,qCAAqC,CAAC;SAC9D,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE;QACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAEpE,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAC;QAEvE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;gBACpC;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,YAAY;oBAClB,OAAO,EAAE,6BAA6B;oBACtC,OAAO,EAAE,aAAa;iBACvB;aACF,CAAC,CAAC;YACH,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QAClC,CAAC;QAED,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;QACpE,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QAEvD,MAAM,cAAc,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACxD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC;YAClD,KAAK,MAAM,KAAK,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;gBAC1C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC;YAC3C,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,aAAa,GAAG,6BAA6B,CAAC,mBAAmB,CAAC,CAAC;QACzE,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC;YACzD,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;gBACzC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC;YAC3C,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,IAAI,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;QACjC,IAAI,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACtC,IAAI,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;QACpC,IAAI,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACtC,IAAI,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC7D,IAAI,UAAU,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,SAAS,GAAG,WAAW,CAAC;QAC5B,IAAI,gBAAgB,GAAG,qCAAqC,CAAC;QAC7D,IAAI,eAAe,GAAG,EAAE,CAAC;QACzB,+DAA+D;QAC/D,IAAI,cAAc,GAAwB,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAE/F,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC;QAC1C,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC;QAEnC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,kEAAkE,CACnE,CACF,CAAC;YACF,IAAI,OAAO,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;gBACtC,QAAQ,GAAG,YAAY,CAAC;gBACxB,IAAI,GAAG,UAAU,CAAC;YACpB,CAAC;iBAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC1C,QAAQ,GAAG,MAAM,CAAC;gBAClB,IAAI,GAAG,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QAED,MAAM,iBAAiB,GAAG;YACxB,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;YACnC,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE;YACzC,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE;SAC7C,CAAC;QAEF,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CACpC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAC9D,CAAC;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CACP,0CAA0C,QAAQ,IAAI,IAAI,EAAE,CAC7D,CACF,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;YACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClC,UAAU,GAAG,EAAE,CAAC;YAChB,IAAI,OAAO,CAAC,IAAI;gBAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,OAAO,CAAC,KAAK;gBAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACjB,IAAI,OAAO,CAAC,OAAO;gBAAE,cAAc,GAAG,MAAM,CAAC;YAC7C,IAAI,OAAO,CAAC,OAAO;gBAAE,cAAc,GAAG,MAAM,CAAC;YAE7C,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC5D,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;oBACtC;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,gBAAgB;wBACtB,OAAO,EAAE,2BAA2B;wBACpC,OAAO,EAAE;4BACP,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;4BAC7B,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;4BAC/B,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;yBAChC;wBACD,OAAO,EAAE,KAAK;qBACf;iBACF,CAAC,CAAC;gBACH,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC;YAC5C,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACpC,MAAM,gBAAgB,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;oBAC7C;wBACE,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,YAAY;wBAClB,OAAO,EAAE,wCAAwC;wBACjD,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,yBAAyB;gCAC/B,KAAK,EAAE,MAAM;gCACb,OAAO,EAAE,IAAI;6BACd;4BACD;gCACE,IAAI,EAAE,oCAAoC;gCAC1C,KAAK,EAAE,OAAO;gCACd,OAAO,EAAE,KAAK;6BACf;yBACF;wBACD,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;4BAC1B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gCACvB,OAAO,yCAAyC,CAAC;4BACnD,CAAC;4BACD,OAAO,IAAI,CAAC;wBACd,CAAC;qBACF;iBACF,CAAC,CAAC;gBACH,UAAU,GAAG,gBAAgB,CAAC,UAAU,CAAC;YAC3C,CAAC;YAED,IACE,CAAC,OAAO,CAAC,MAAM;gBACf,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC3B,QAAQ,KAAK,MAAM,EACnB,CAAC;gBACD,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;oBAC1C;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,gBAAgB;wBACtB,OAAO,EAAE,gCAAgC;wBACzC,OAAO,EAAE,IAAI;qBACd;iBACF,CAAC,CAAC;gBACH,cAAc,GAAG,aAAa,CAAC,cAAc,CAAC;YAChD,CAAC;YAED,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;gBAErD,MAAM,oBAAoB,GAAG,WAAW;qBACrC,WAAW,EAAE;qBACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;qBAC3B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;qBACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAEzB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;oBACtC;wBACE,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,yBAAyB;wBAClC,OAAO,EAAE,oBAAoB;qBAC9B;oBACD;wBACE,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,aAAa;wBACnB,OAAO,EAAE,kCAAkC;wBAC3C,OAAO,EAAE,sCAAsC;qBAChD;oBACD;wBACE,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,YAAY;wBAClB,OAAO,EAAE,4BAA4B;wBACrC,OAAO,EAAE,EAAE;qBACZ;iBACF,CAAC,CAAC;gBAEH,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;gBAC3B,gBAAgB,GAAG,SAAS,CAAC,WAAW,CAAC;gBACzC,eAAe,GAAG,SAAS,CAAC,UAAU,CAAC;gBAEvC,gDAAgD;gBAChD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;oBACjC,MAAM,kBAAkB,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;wBAC/C;4BACE,IAAI,EAAE,SAAS;4BACf,IAAI,EAAE,gBAAgB;4BACtB,OAAO,EACL,kFAAkF;4BACpF,OAAO,EAAE,IAAI;yBACd;qBACF,CAAC,CAAC;oBACH,cAAc,GAAG,kBAAkB,CAAC,cAAc,CAAC;gBACrD,CAAC;YACH,CAAC;YAED,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CACT,8BAA8B,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,KAAK,CACpE,CAAC;YAEF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;gBAC1C;oBACE,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,iBAAiB;oBAC1B,OAAO,EAAE,IAAI;iBACd;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC;gBACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,OAAO,CAAC,OAAO;gBAAE,cAAc,GAAG,MAAM,CAAC;YAC7C,IAAI,OAAO,CAAC,OAAO;gBAAE,cAAc,GAAG,MAAM,CAAC;QAC/C,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,CACjB,oDAAoD,CACrD,CAAC,KAAK,EAAE,CAAC;QAEV,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,GAAG,kCAAkC,CAAC;YAElD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;gBACjC,WAAW,EAAE,mBAAmB;gBAChC,WAAW;gBACX,cAAc;gBACd,UAAU,EAAE,UAAU;gBACtB,cAAc,EAAE,WAAW,CAAC,OAAO;gBACnC,YAAY;gBACZ,WAAW;gBACX,cAAc;gBACd,WAAW;gBACX,SAAS;gBACT,gBAAgB;gBAChB,eAAe;gBACf,YAAY;gBACZ,aAAa,EAAE,OAAO,CAAC,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;gBAC3D,aAAa,EAAE,OAAO,CAAC,IAAI;gBAC3B,OAAO;gBACP,QAAQ;gBACR,IAAI;gBACJ,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,SAAS;gBACvC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,SAAS,EAAE,OAAO,CAAC,OAAO;gBAC1B,QAAQ,EAAE,cAAc;aACzB,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAC;gBACzD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACpB,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;wBACtC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;oBAC3C,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,wCAAwC,CAAC,CAAC,CAAC;gBACrE,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACtC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC,CAAC;gBACjD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;YAC3D,CAAC;YAED,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAE3B,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;gBACxC,IAAI,mBAAmB,KAAK,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;oBAC1C,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBAChD,CAAC;gBACD,IAAI,WAAW,EAAE,CAAC;oBAChB,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;wBAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;oBACjD,CAAC;yBAAM,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;wBACrC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;oBACjD,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;oBAChD,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC,GAAG,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CACT,yDAAyD,CAC1D,CAAC;gBACF,OAAO,CAAC,GAAG,CACT,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,YAAY,CAAC,EAAE,CACxF,CAAC;gBACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,iEAAiE,CAClE,CACF,CAAC;gBACF,OAAO,CAAC,GAAG,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBAChC,OAAO,CAAC,GAAG,CACT,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,MAAM,CAAC,EAAE,CAClF,CAAC;gBACF,OAAO,CAAC,GAAG,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;gBAC5C,OAAO,CAAC,GAAG,CACT,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,SAAS,CAAC,EAAE,CACrF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,WAAW,GAAG,CAAC,CAAC;gBAEpB,IAAI,WAAW,EAAE,CAAC;oBAChB,OAAO,CAAC,GAAG,CAAC,GAAG,WAAW,yBAAyB,CAAC,CAAC;oBACrD,IAAI,mBAAmB,KAAK,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;wBAC1C,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;oBAChD,CAAC;oBACD,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;wBAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;oBACjD,CAAC;yBAAM,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;wBACrC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;oBACjD,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;oBAChD,CAAC;oBACD,OAAO,CAAC,GAAG,EAAE,CAAC;oBACd,WAAW,EAAE,CAAC;gBAChB,CAAC;gBAED,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,OAAO,CAAC,GAAG,CAAC,GAAG,WAAW,wBAAwB,CAAC,CAAC;oBACpD,IAAI,CAAC,WAAW,IAAI,mBAAmB,KAAK,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;wBAC1D,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;oBAChD,CAAC;oBACD,OAAO,CAAC,GAAG,CACT,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,OAAO,CAAC,EAAE,CACnF,CAAC;oBACF,OAAO,CAAC,GAAG,EAAE,CAAC;oBACd,WAAW,EAAE,CAAC;gBAChB,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,GAAG,WAAW,6BAA6B,CAAC,CAAC;gBACzD,IACE,YAAY;oBACZ,CAAC,WAAW;oBACZ,mBAAmB,KAAK,OAAO,CAAC,GAAG,EAAE,EACrC,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBAChD,CAAC;gBACD,OAAO,CAAC,GAAG,CACT,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,MAAM,CAAC,EAAE,CAClF,CAAC;gBACF,OAAO,CAAC,GAAG,EAAE,CAAC;gBACd,WAAW,EAAE,CAAC;gBAEd,OAAO,CAAC,GAAG,CAAC,GAAG,WAAW,sBAAsB,CAAC,CAAC;gBAClD,OAAO,CAAC,GAAG,CACT,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,QAAQ,CAAC,EAAE,CACpF,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAC;YACzD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CACV,+DAA+D,CAChE;SACA,MAAM,CACL,uBAAuB,EACvB,mDAAmD,CACpD;SACA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG;gBAC7B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC;gBAC1C,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YAClB,MAAM,aAAa,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,EAAE,KAAK,CAAC,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,qBAAqB,CAAC;SAC9B,WAAW,CACV,sEAAsE,CACvE;SACA,MAAM,CACL,uBAAuB,EACvB,mDAAmD,CACpD;SACA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG;gBAC7B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC;gBAC1C,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YAClB,MAAM,kBAAkB,CAAC,WAAW,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,EAAE,KAAK,CAAC,CAAC;YAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"cli-runner.js","sourceRoot":"","sources":["../src/cli-runner.ts"],"names":[],"mappings":"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"}
@@ -108,7 +108,7 @@ export async function fetchCloudflareMcpiTemplate(targetDir, options) {
108
108
  "@kya-os/mcp-i-cloudflare": mcpICloudflareVersion,
109
109
  "@modelcontextprotocol/sdk": "1.24.0",
110
110
  agents: "0.2.30",
111
- hono: "4.11.7",
111
+ hono: "4.12.4",
112
112
  },
113
113
  devDependencies: {
114
114
  "@cloudflare/vitest-pool-workers": "0.5.41",
@@ -27,7 +27,7 @@ export interface GenerateFilesOptions {
27
27
  /** Project name (used for package.json, wrangler.toml, class names) */
28
28
  projectName: string;
29
29
  /** Template variant */
30
- template?: "blank" | "ecommerce" | "hardware-world";
30
+ template?: "blank" | "ecommerce" | "hardware-world" | "mix-station";
31
31
  /** AgentShield project ID (pre-configured in wrangler.toml) */
32
32
  agentShieldProjectId?: string;
33
33
  /** AgentShield API URL (defaults to https://kya.vouched.id) */
@@ -1 +1 @@
1
- {"version":3,"file":"generate-cloudflare-files.d.ts","sourceRoot":"","sources":["../../src/helpers/generate-cloudflare-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,QAAQ,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAC;IACpB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,gBAAgB,CAAC;IACpD,+DAA+D;IAC/D,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,+DAA+D;IAC/D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,6CAA6C;IAC7C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,0BAA0B;IAC1B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,qCAAqC;IACrC,QAAQ,EAAE;QACR,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAWD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAgO9B"}
1
+ {"version":3,"file":"generate-cloudflare-files.d.ts","sourceRoot":"","sources":["../../src/helpers/generate-cloudflare-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,QAAQ,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAC;IACpB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,gBAAgB,GAAG,aAAa,CAAC;IACpE,+DAA+D;IAC/D,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,+DAA+D;IAC/D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,6CAA6C;IAC7C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,0BAA0B;IAC1B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,qCAAqC;IACrC,QAAQ,EAAE;QACR,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAWD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAqO9B"}
@@ -98,7 +98,7 @@ export async function generateCloudflareProjectFiles(options) {
98
98
  "@modelcontextprotocol/sdk": "1.25.2",
99
99
  // agents@0.3.x removed 'ai' from direct deps, fixing Redis bundling issue
100
100
  agents: "0.3.6",
101
- hono: "4.11.7",
101
+ hono: "4.12.4",
102
102
  },
103
103
  devDependencies: {
104
104
  "@cloudflare/vitest-pool-workers": "^0.5.41",
@@ -194,12 +194,15 @@ dist/
194
194
  content: generateRuntimeConfigTs(template),
195
195
  encoding: "utf-8",
196
196
  });
197
- // 9. src/tools/greet.ts (always included)
198
- files.push({
199
- path: "src/tools/greet.ts",
200
- content: generateGreetToolTs(projectName),
201
- encoding: "utf-8",
202
- });
197
+ // 9. src/tools/greet.ts (included for templates that use it)
198
+ // mix-station has its own tool set and doesn't use greet
199
+ if (template !== "mix-station") {
200
+ files.push({
201
+ path: "src/tools/greet.ts",
202
+ content: generateGreetToolTs(projectName),
203
+ encoding: "utf-8",
204
+ });
205
+ }
203
206
  // 10. Add template-specific tools
204
207
  if (template === "ecommerce") {
205
208
  files.push(...generateEcommerceTools());
@@ -207,6 +210,9 @@ dist/
207
210
  else if (template === "hardware-world") {
208
211
  files.push(...generateHardwareWorldTools());
209
212
  }
213
+ else if (template === "mix-station") {
214
+ files.push(...generateMixStationTools());
215
+ }
210
216
  // 11. GitHub Actions workflow
211
217
  files.push({
212
218
  path: ".github/workflows/deploy.yml",
@@ -249,6 +255,12 @@ function generateWranglerToml(opts) {
249
255
  templateVars = `
250
256
  # Hardware World API Configuration
251
257
  HARDWARE_WORLD_API_BASE_URL = "https://hardwareworld.com"
258
+ `;
259
+ }
260
+ else if (template === "mix-station") {
261
+ templateVars = `
262
+ # Mixer API Configuration
263
+ MIXER_API_URL = "https://mixer-vouched.vercel.app"
252
264
  `;
253
265
  }
254
266
  return `#:schema node_modules/wrangler/config-schema.json
@@ -366,6 +378,10 @@ function generateRuntimeConfigTs(template) {
366
378
  if (template === "hardware-world") {
367
379
  return generateHardwareWorldRuntimeConfig();
368
380
  }
381
+ // Mix Station has its own runtime config with Mixer API client
382
+ if (template === "mix-station") {
383
+ return generateMixStationRuntimeConfig();
384
+ }
369
385
  const imports = [`import { greetTool } from "./tools/greet";`];
370
386
  const tools = ["greetTool"];
371
387
  if (template === "ecommerce") {
@@ -1403,6 +1419,424 @@ export const addToCartTool: ToolDefinition = {
1403
1419
  },
1404
1420
  ];
1405
1421
  }
1422
+ function generateMixStationRuntimeConfig() {
1423
+ return `import { defineConfig, type CloudflareRuntimeConfig, type ToolDefinition } from "@kya-os/mcp-i-cloudflare";
1424
+ import type { CloudflareEnv } from "@kya-os/mcp-i-cloudflare";
1425
+ import { createMixerClient } from "./lib/mixer-client";
1426
+
1427
+ // Cached env values for tool access (initialized by getRuntimeConfig)
1428
+ let cachedProjectId: string | null = null;
1429
+ let cachedMixerApiUrl: string | undefined = undefined;
1430
+
1431
+ /**
1432
+ * Get runtime configuration for MCP-I Cloudflare Worker
1433
+ */
1434
+ export function getRuntimeConfig(env: CloudflareEnv): CloudflareRuntimeConfig {
1435
+ cachedProjectId = env.AGENTSHIELD_PROJECT_ID || null;
1436
+ cachedMixerApiUrl = env.MIXER_API_URL || undefined;
1437
+
1438
+ const environment = (env.MCPI_ENV || env.ENVIRONMENT || "development") as "development" | "production";
1439
+
1440
+ const proofingConfig = env.AGENTSHIELD_API_KEY ? {
1441
+ enabled: true,
1442
+ batchQueue: {
1443
+ destinations: [{
1444
+ type: "agentshield" as const,
1445
+ apiKey: env.AGENTSHIELD_API_KEY,
1446
+ apiUrl: env.AGENTSHIELD_API_URL || "https://kya.vouched.id",
1447
+ }],
1448
+ },
1449
+ } : undefined;
1450
+
1451
+ return defineConfig({
1452
+ environment,
1453
+ proofing: proofingConfig,
1454
+ vars: {
1455
+ ENVIRONMENT: environment,
1456
+ AGENTSHIELD_API_KEY: env.AGENTSHIELD_API_KEY,
1457
+ AGENTSHIELD_API_URL: env.AGENTSHIELD_API_URL,
1458
+ AGENTSHIELD_PROJECT_ID: env.AGENTSHIELD_PROJECT_ID,
1459
+ },
1460
+ });
1461
+ }
1462
+
1463
+ /**
1464
+ * Get mixer client lazily at execution time.
1465
+ * Uses cached env values set by getRuntimeConfig.
1466
+ */
1467
+ function getMixerClientLazy(): { projectId: string; mixer: ReturnType<typeof createMixerClient> } | null {
1468
+ const projectId = cachedProjectId;
1469
+ if (!projectId) return null;
1470
+ return { projectId, mixer: createMixerClient(projectId, cachedMixerApiUrl) };
1471
+ }
1472
+
1473
+ /**
1474
+ * Get all tools for this agent
1475
+ */
1476
+ export function getTools(): ToolDefinition[] {
1477
+ return [
1478
+ {
1479
+ name: "get_station_context",
1480
+ description: "Retrieve the curated context and documentation from this station. Returns combined content from all enabled station items.",
1481
+ inputSchema: {
1482
+ type: "object",
1483
+ properties: {
1484
+ query: { type: "string", description: "Optional search query to filter context" },
1485
+ maxTokens: { type: "number", description: "Maximum tokens to return (default: 8000)" },
1486
+ },
1487
+ },
1488
+ handler: async (args: { query?: string; maxTokens?: number }) => {
1489
+ const client = getMixerClientLazy();
1490
+ if (!client) {
1491
+ return { content: [{ type: "text", text: "Error: Station not configured. Missing project ID." }] };
1492
+ }
1493
+ try {
1494
+ const result = await client.mixer.getContext(args);
1495
+ if (!result.success) {
1496
+ return { content: [{ type: "text", text: \`Error: \${result.error}\` }] };
1497
+ }
1498
+ return { content: [{ type: "text", text: result.content || JSON.stringify(result, null, 2) }] };
1499
+ } catch (error) {
1500
+ return { content: [{ type: "text", text: \`Error fetching context: \${error}\` }] };
1501
+ }
1502
+ },
1503
+ },
1504
+ {
1505
+ name: "search_station",
1506
+ description: "Search through the station's indexed content using semantic search. Returns matching code nodes with relevance scores.",
1507
+ inputSchema: {
1508
+ type: "object",
1509
+ properties: {
1510
+ query: { type: "string", description: "Search query" },
1511
+ limit: { type: "number", description: "Maximum number of results (default: 10)" },
1512
+ },
1513
+ required: ["query"],
1514
+ },
1515
+ handler: async (args: { query: string; limit?: number }) => {
1516
+ const client = getMixerClientLazy();
1517
+ if (!client) {
1518
+ return { content: [{ type: "text", text: "Error: Station not configured. Missing project ID." }] };
1519
+ }
1520
+ try {
1521
+ const result = await client.mixer.search(args);
1522
+ if (!result.success) {
1523
+ return { content: [{ type: "text", text: \`Error: \${result.error}\` }] };
1524
+ }
1525
+ let output = \`Found \${result.resultCount} results for "\${result.query}":\\n\\n\`;
1526
+ for (const r of result.results || []) {
1527
+ output += \`## \${r.name || "Unknown"} (\${r.nodeType || "unknown"})\\n\`;
1528
+ output += \`File: \${r.filePath || "unknown"}:\${r.startLine ?? "?"}-\${r.endLine ?? "?"}\\n\`;
1529
+ output += \`Score: \${typeof r.score === "number" ? (r.score * 100).toFixed(1) : "?"}%\\n\\n\`;
1530
+ if (r.content) {
1531
+ output += \`\\\`\\\`\\\`\\n\${r.content.substring(0, 500)}\${r.content.length > 500 ? "..." : ""}\\n\\\`\\\`\\\`\\n\\n\`;
1532
+ }
1533
+ }
1534
+ return { content: [{ type: "text", text: output }] };
1535
+ } catch (error) {
1536
+ return { content: [{ type: "text", text: \`Error searching: \${error}\` }] };
1537
+ }
1538
+ },
1539
+ },
1540
+ {
1541
+ name: "get_station_info",
1542
+ description: "Get information about this station including available repositories, analysis status, and capabilities.",
1543
+ inputSchema: {
1544
+ type: "object",
1545
+ properties: {},
1546
+ },
1547
+ handler: async () => {
1548
+ const client = getMixerClientLazy();
1549
+ if (!client) {
1550
+ return { content: [{ type: "text", text: "Error: Station not configured. Missing project ID." }] };
1551
+ }
1552
+ try {
1553
+ const result = await client.mixer.getInfo();
1554
+ if (!result.success) {
1555
+ return { content: [{ type: "text", text: \`Error: \${result.error}\` }] };
1556
+ }
1557
+ let output = \`# \${result.station.name}\\n\\n\`;
1558
+ if (result.station.description) {
1559
+ output += \`\${result.station.description}\\n\\n\`;
1560
+ }
1561
+ output += \`## Content\\n\`;
1562
+ output += \`- Total items: \${result.content?.totalItems ?? 0}\\n\`;
1563
+ output += \`- Enabled items: \${result.content?.enabledItems ?? 0}\\n\`;
1564
+ output += \`- Repositories: \${result.content?.repositories?.join(", ") || "None"}\\n\\n\`;
1565
+ output += \`## Intelligence\\n\`;
1566
+ if (result.intelligence.available) {
1567
+ output += \`- Status: Ready\\n\`;
1568
+ output += \`- Code nodes: \${result.intelligence.totalNodes}\\n\`;
1569
+ output += \`- Relationships: \${result.intelligence.totalRelationships}\\n\`;
1570
+ output += \`- Communities: \${result.intelligence.totalCommunities}\\n\`;
1571
+ } else {
1572
+ output += \`- Status: \${result.intelligence.status}\\n\`;
1573
+ output += \`- Message: \${result.intelligence.message}\\n\`;
1574
+ }
1575
+ output += \`\\n## Capabilities\\n\`;
1576
+ output += \`- Semantic search: \${result.capabilities.semanticSearch ? "Yes" : "No"}\\n\`;
1577
+ output += \`- Graph queries: \${result.capabilities.graphQueries ? "Yes" : "No"}\\n\`;
1578
+ output += \`- Communities: \${result.capabilities.communities ? "Yes" : "No"}\\n\`;
1579
+ return { content: [{ type: "text", text: output }] };
1580
+ } catch (error) {
1581
+ return { content: [{ type: "text", text: \`Error getting info: \${error}\` }] };
1582
+ }
1583
+ },
1584
+ },
1585
+ {
1586
+ name: "read_file",
1587
+ description: "Read the content of a specific file from the station. Supports partial paths and optional line ranges.",
1588
+ inputSchema: {
1589
+ type: "object",
1590
+ properties: {
1591
+ filePath: { type: "string", description: "The file path to read (can be partial)" },
1592
+ startLine: { type: "number", description: "Optional: Start line (1-indexed)" },
1593
+ endLine: { type: "number", description: "Optional: End line (1-indexed)" },
1594
+ },
1595
+ required: ["filePath"],
1596
+ },
1597
+ handler: async (args: { filePath: string; startLine?: number; endLine?: number }) => {
1598
+ const client = getMixerClientLazy();
1599
+ if (!client) {
1600
+ return { content: [{ type: "text", text: "Error: Station not configured. Missing project ID." }] };
1601
+ }
1602
+ try {
1603
+ const result = await client.mixer.readFile(args);
1604
+ if (!result.success) {
1605
+ let output = \`Error: \${result.error}\\n\`;
1606
+ if (result.suggestions?.length) {
1607
+ output += \`\\nSimilar files found:\\n\`;
1608
+ for (const s of result.suggestions) {
1609
+ output += \`- \${s}\\n\`;
1610
+ }
1611
+ }
1612
+ return { content: [{ type: "text", text: output }] };
1613
+ }
1614
+ let output = \`# \${result.file.path}\\n\\n\`;
1615
+ output += \`Lines: \${result.file.lineCount}\`;
1616
+ if (result.file.startLine || result.file.endLine) {
1617
+ output += \` (showing \${result.file.startLine || 1}-\${result.file.endLine || result.file.lineCount})\`;
1618
+ }
1619
+ output += \`\\n\\n\\\`\\\`\\\`\\n\${result.file.content}\\n\\\`\\\`\\\`\`;
1620
+ if (result.alternateMatches?.length) {
1621
+ output += \`\\n\\nOther matching files: \${result.alternateMatches.join(", ")}\`;
1622
+ }
1623
+ return { content: [{ type: "text", text: output }] };
1624
+ } catch (error) {
1625
+ return { content: [{ type: "text", text: \`Error reading file: \${error}\` }] };
1626
+ }
1627
+ },
1628
+ },
1629
+ {
1630
+ name: "grep",
1631
+ description: "Search for text patterns using regex across all station content. Useful for finding TODOs, error messages, specific function calls, etc.",
1632
+ inputSchema: {
1633
+ type: "object",
1634
+ properties: {
1635
+ pattern: { type: "string", description: "Regex pattern to search for" },
1636
+ fileFilter: { type: "string", description: "Optional: Only search files containing this substring in their path" },
1637
+ caseSensitive: { type: "boolean", description: "Whether to match case (default: false)" },
1638
+ maxResults: { type: "number", description: "Maximum results to return (default: 100)" },
1639
+ },
1640
+ required: ["pattern"],
1641
+ },
1642
+ handler: async (args: { pattern: string; fileFilter?: string; caseSensitive?: boolean; maxResults?: number }) => {
1643
+ const client = getMixerClientLazy();
1644
+ if (!client) {
1645
+ return { content: [{ type: "text", text: "Error: Station not configured. Missing project ID." }] };
1646
+ }
1647
+ try {
1648
+ const result = await client.mixer.grep(args);
1649
+ if (!result.success) {
1650
+ return { content: [{ type: "text", text: \`Error: \${result.error}\` }] };
1651
+ }
1652
+ let output = \`Found \${result.totalMatches} matches for pattern "\${result.pattern}"\\n\`;
1653
+ output += \`Files searched: \${result.filesSearched}\`;
1654
+ if (result.truncated) output += \` (results truncated)\`;
1655
+ output += \`\\n\\n\`;
1656
+ for (const m of result.matches || []) {
1657
+ output += \`**\${m.file}:\${m.line}:\${m.column}**\\n\`;
1658
+ output += \`\\\`\\\`\\\`\\n\${m.context}\\n\\\`\\\`\\\`\\n\\n\`;
1659
+ }
1660
+ return { content: [{ type: "text", text: output }] };
1661
+ } catch (error) {
1662
+ return { content: [{ type: "text", text: \`Error searching: \${error}\` }] };
1663
+ }
1664
+ },
1665
+ },
1666
+ {
1667
+ name: "graph_query",
1668
+ description: "Query the code graph for nodes, relationships, paths, and communities. The station must have been analyzed to build the graph.",
1669
+ inputSchema: {
1670
+ type: "object",
1671
+ properties: {
1672
+ action: { type: "string", description: "Query action: statistics, nodes, node, relationships, connected, path, communities, community, processes" },
1673
+ nodeId: { type: "string", description: "Node ID for node-specific queries" },
1674
+ targetNodeId: { type: "string", description: "Target node ID for path queries" },
1675
+ direction: { type: "string", description: "Relationship direction: in, out, or both (default: out)" },
1676
+ hops: { type: "number", description: "Traversal depth (default: 2)" },
1677
+ nodeTypes: { type: "string", description: "Comma-separated node types to filter" },
1678
+ limit: { type: "number", description: "Maximum results (default: 50)" },
1679
+ },
1680
+ required: ["action"],
1681
+ },
1682
+ handler: async (args: { action: string; nodeId?: string; targetNodeId?: string; direction?: string; hops?: number; nodeTypes?: string; limit?: number }) => {
1683
+ const client = getMixerClientLazy();
1684
+ if (!client) {
1685
+ return { content: [{ type: "text", text: "Error: Station not configured. Missing project ID." }] };
1686
+ }
1687
+ try {
1688
+ const result = await client.mixer.graph(args);
1689
+ if (!result.success) {
1690
+ return { content: [{ type: "text", text: \`Error: \${result.error}\` }] };
1691
+ }
1692
+ let output = \`## Graph Query: \${result.action}\\n\\n\`;
1693
+ if (result.statistics) {
1694
+ output += \`**Statistics:**\\n\`;
1695
+ output += JSON.stringify(result.statistics, null, 2);
1696
+ } else if (result.nodes) {
1697
+ output += \`Found \${result.count} nodes:\\n\\n\`;
1698
+ for (const n of result.nodes.slice(0, 20)) {
1699
+ output += \`- **\${n.name}** (\${n.nodeType}) - \${n.filePath || "unknown"}:\${n.startLine || "?"}\\n\`;
1700
+ }
1701
+ if (result.count > 20) output += \`\\n... and \${result.count - 20} more\\n\`;
1702
+ } else if (result.node) {
1703
+ output += \`**\${result.node.name}** (\${result.node.nodeType})\\n\`;
1704
+ output += \`- File: \${result.node.filePath}\\n\`;
1705
+ output += \`- Lines: \${result.node.startLine}-\${result.node.endLine}\\n\`;
1706
+ } else if (result.relationships) {
1707
+ output += \`Found \${result.count} relationships:\\n\\n\`;
1708
+ for (const r of result.relationships.slice(0, 20)) {
1709
+ output += \`- \${r.type}: \${r.sourceNodeId} → \${r.targetNodeId}\\n\`;
1710
+ }
1711
+ } else if (result.path) {
1712
+ if (result.found) {
1713
+ output += \`Path found (depth: \${result.path.depth}):\\n\\n\`;
1714
+ for (let i = 0; i < result.path.nodes.length; i++) {
1715
+ const n = result.path.nodes[i];
1716
+ output += \`\${i + 1}. **\${n.name}** (\${n.nodeType})\\n\`;
1717
+ }
1718
+ } else {
1719
+ output += result.message;
1720
+ }
1721
+ } else if (result.communities) {
1722
+ output += \`Found \${result.count} communities:\\n\\n\`;
1723
+ for (const c of result.communities) {
1724
+ output += \`- **\${c.label}**: \${c.memberCount} members (cohesion: \${(c.cohesionScore * 100).toFixed(0)}%)\\n\`;
1725
+ }
1726
+ } else {
1727
+ output += JSON.stringify(result, null, 2);
1728
+ }
1729
+ return { content: [{ type: "text", text: output }] };
1730
+ } catch (error) {
1731
+ return { content: [{ type: "text", text: \`Error querying graph: \${error}\` }] };
1732
+ }
1733
+ },
1734
+ },
1735
+ ];
1736
+ }
1737
+ `;
1738
+ }
1739
+ function generateMixStationTools() {
1740
+ return [
1741
+ // Mixer API Client
1742
+ {
1743
+ path: "src/lib/mixer-client.ts",
1744
+ content: `/**
1745
+ * Mixer API Client
1746
+ *
1747
+ * Provides typed access to Mixer's MCP API endpoints.
1748
+ * The project ID is passed via X-AgentShield-Project-Id header,
1749
+ * which Mixer uses to look up the associated station.
1750
+ */
1751
+
1752
+ const DEFAULT_MIXER_API_URL = "https://mixer-vouched.vercel.app";
1753
+
1754
+ export interface MixerApiClient {
1755
+ getContext: (args: { query?: string; maxTokens?: number }) => Promise<any>;
1756
+ search: (args: { query: string; limit?: number; mode?: string }) => Promise<any>;
1757
+ getInfo: () => Promise<any>;
1758
+ readFile: (args: { filePath: string; startLine?: number; endLine?: number }) => Promise<any>;
1759
+ grep: (args: { pattern: string; fileFilter?: string; caseSensitive?: boolean; maxResults?: number }) => Promise<any>;
1760
+ graph: (args: { action: string; nodeId?: string; targetNodeId?: string; direction?: string; hops?: number; nodeTypes?: string; limit?: number }) => Promise<any>;
1761
+ }
1762
+
1763
+ export function createMixerClient(projectId: string, apiUrl?: string): MixerApiClient {
1764
+ const mixerUrl = apiUrl || DEFAULT_MIXER_API_URL;
1765
+ const headers = {
1766
+ "Content-Type": "application/json",
1767
+ "X-AgentShield-Project-Id": projectId,
1768
+ };
1769
+
1770
+ return {
1771
+ async getContext(args) {
1772
+ const params = new URLSearchParams();
1773
+ if (args.query) params.set("query", args.query);
1774
+ if (args.maxTokens) params.set("maxTokens", args.maxTokens.toString());
1775
+
1776
+ const url = \`\${mixerUrl}/api/mcp/context\${params.toString() ? "?" + params.toString() : ""}\`;
1777
+ const response = await fetch(url, { headers });
1778
+ return response.json();
1779
+ },
1780
+
1781
+ async search(args) {
1782
+ const response = await fetch(\`\${mixerUrl}/api/mcp/search\`, {
1783
+ method: "POST",
1784
+ headers,
1785
+ body: JSON.stringify({
1786
+ query: args.query,
1787
+ limit: args.limit || 10,
1788
+ mode: args.mode || "hybrid",
1789
+ }),
1790
+ });
1791
+ return response.json();
1792
+ },
1793
+
1794
+ async getInfo() {
1795
+ const response = await fetch(\`\${mixerUrl}/api/mcp/info\`, { headers });
1796
+ return response.json();
1797
+ },
1798
+
1799
+ async readFile(args) {
1800
+ const params = new URLSearchParams();
1801
+ params.set("filePath", args.filePath);
1802
+ if (args.startLine) params.set("startLine", args.startLine.toString());
1803
+ if (args.endLine) params.set("endLine", args.endLine.toString());
1804
+
1805
+ const response = await fetch(\`\${mixerUrl}/api/mcp/read?\${params.toString()}\`, { headers });
1806
+ return response.json();
1807
+ },
1808
+
1809
+ async grep(args) {
1810
+ const params = new URLSearchParams();
1811
+ params.set("pattern", args.pattern);
1812
+ if (args.fileFilter) params.set("fileFilter", args.fileFilter);
1813
+ if (args.caseSensitive) params.set("caseSensitive", "true");
1814
+ if (args.maxResults) params.set("maxResults", args.maxResults.toString());
1815
+
1816
+ const response = await fetch(\`\${mixerUrl}/api/mcp/grep?\${params.toString()}\`, { headers });
1817
+ return response.json();
1818
+ },
1819
+
1820
+ async graph(args) {
1821
+ const params = new URLSearchParams();
1822
+ params.set("action", args.action);
1823
+ if (args.nodeId) params.set("nodeId", args.nodeId);
1824
+ if (args.targetNodeId) params.set("targetNodeId", args.targetNodeId);
1825
+ if (args.direction) params.set("direction", args.direction);
1826
+ if (args.hops) params.set("hops", args.hops.toString());
1827
+ if (args.nodeTypes) params.set("nodeTypes", args.nodeTypes);
1828
+ if (args.limit) params.set("limit", args.limit.toString());
1829
+
1830
+ const response = await fetch(\`\${mixerUrl}/api/mcp/graph?\${params.toString()}\`, { headers });
1831
+ return response.json();
1832
+ },
1833
+ };
1834
+ }
1835
+ `,
1836
+ encoding: "utf-8",
1837
+ },
1838
+ ];
1839
+ }
1406
1840
  function generateDeployWorkflow() {
1407
1841
  // Note: YAML values containing ${{ }} must be quoted to avoid parsing issues
1408
1842
  return `name: Deploy to Cloudflare