@kya-os/create-mcpi-app 0.6.4-canary.1
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/.eslintrc.cjs +10 -0
- package/.turbo/turbo-build.log +25 -0
- package/README.md +290 -0
- package/dist/bundles/blank.js +98817 -0
- package/dist/bundles/ecommerce.js +98891 -0
- package/dist/bundles/hardware-world.js +99289 -0
- package/dist/bundles/manifest.json +23 -0
- package/dist/cli-runner.d.ts +2 -0
- package/dist/cli-runner.d.ts.map +1 -0
- package/dist/cli-runner.js +407 -0
- package/dist/cli-runner.js.map +1 -0
- package/dist/effects/index.d.ts +14 -0
- package/dist/effects/index.d.ts.map +1 -0
- package/dist/effects/index.js +51 -0
- package/dist/effects/index.js.map +1 -0
- package/dist/helpers/apply-identity-preset.d.ts +14 -0
- package/dist/helpers/apply-identity-preset.d.ts.map +1 -0
- package/dist/helpers/apply-identity-preset.js +169 -0
- package/dist/helpers/apply-identity-preset.js.map +1 -0
- package/dist/helpers/config-builder.d.ts +53 -0
- package/dist/helpers/config-builder.d.ts.map +1 -0
- package/dist/helpers/config-builder.js +46 -0
- package/dist/helpers/config-builder.js.map +1 -0
- package/dist/helpers/copy-template.d.ts +2 -0
- package/dist/helpers/copy-template.d.ts.map +1 -0
- package/dist/helpers/copy-template.js +11 -0
- package/dist/helpers/copy-template.js.map +1 -0
- package/dist/helpers/create.d.ts +31 -0
- package/dist/helpers/create.d.ts.map +1 -0
- package/dist/helpers/create.js +136 -0
- package/dist/helpers/create.js.map +1 -0
- package/dist/helpers/fetch-cloudflare-mcpi-template.d.ts +25 -0
- package/dist/helpers/fetch-cloudflare-mcpi-template.d.ts.map +1 -0
- package/dist/helpers/fetch-cloudflare-mcpi-template.js +558 -0
- package/dist/helpers/fetch-cloudflare-mcpi-template.js.map +1 -0
- package/dist/helpers/fetch-cloudflare-template.d.ts +11 -0
- package/dist/helpers/fetch-cloudflare-template.d.ts.map +1 -0
- package/dist/helpers/fetch-cloudflare-template.js +338 -0
- package/dist/helpers/fetch-cloudflare-template.js.map +1 -0
- package/dist/helpers/fetch-mcpi-template.d.ts +13 -0
- package/dist/helpers/fetch-mcpi-template.d.ts.map +1 -0
- package/dist/helpers/fetch-mcpi-template.js +237 -0
- package/dist/helpers/fetch-mcpi-template.js.map +1 -0
- package/dist/helpers/fetch-xmcp-template.d.ts +13 -0
- package/dist/helpers/fetch-xmcp-template.d.ts.map +1 -0
- package/dist/helpers/fetch-xmcp-template.js +127 -0
- package/dist/helpers/fetch-xmcp-template.js.map +1 -0
- package/dist/helpers/generate-cloudflare-files.d.ts +89 -0
- package/dist/helpers/generate-cloudflare-files.d.ts.map +1 -0
- package/dist/helpers/generate-cloudflare-files.js +1541 -0
- package/dist/helpers/generate-cloudflare-files.js.map +1 -0
- package/dist/helpers/generate-config.d.ts +2 -0
- package/dist/helpers/generate-config.d.ts.map +1 -0
- package/dist/helpers/generate-config.js +105 -0
- package/dist/helpers/generate-config.js.map +1 -0
- package/dist/helpers/generate-identity.d.ts +38 -0
- package/dist/helpers/generate-identity.d.ts.map +1 -0
- package/dist/helpers/generate-identity.js +123 -0
- package/dist/helpers/generate-identity.js.map +1 -0
- package/dist/helpers/get-package-versions.d.ts +37 -0
- package/dist/helpers/get-package-versions.d.ts.map +1 -0
- package/dist/helpers/get-package-versions.js +92 -0
- package/dist/helpers/get-package-versions.js.map +1 -0
- package/dist/helpers/identity-manager.d.ts +23 -0
- package/dist/helpers/identity-manager.d.ts.map +1 -0
- package/dist/helpers/identity-manager.js +144 -0
- package/dist/helpers/identity-manager.js.map +1 -0
- package/dist/helpers/index.d.ts +14 -0
- package/dist/helpers/index.d.ts.map +1 -0
- package/dist/helpers/index.js +18 -0
- package/dist/helpers/index.js.map +1 -0
- package/dist/helpers/install.d.ts +3 -0
- package/dist/helpers/install.d.ts.map +1 -0
- package/dist/helpers/install.js +57 -0
- package/dist/helpers/install.js.map +1 -0
- package/dist/helpers/kta-registration.d.ts +58 -0
- package/dist/helpers/kta-registration.d.ts.map +1 -0
- package/dist/helpers/kta-registration.js +77 -0
- package/dist/helpers/kta-registration.js.map +1 -0
- package/dist/helpers/rename.d.ts +2 -0
- package/dist/helpers/rename.d.ts.map +1 -0
- package/dist/helpers/rename.js +15 -0
- package/dist/helpers/rename.js.map +1 -0
- package/dist/helpers/validate-project-structure.d.ts +14 -0
- package/dist/helpers/validate-project-structure.d.ts.map +1 -0
- package/dist/helpers/validate-project-structure.js +102 -0
- package/dist/helpers/validate-project-structure.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/check-node.d.ts +2 -0
- package/dist/utils/check-node.d.ts.map +1 -0
- package/dist/utils/check-node.js +12 -0
- package/dist/utils/check-node.js.map +1 -0
- package/dist/utils/fetch-remote-config.d.ts +74 -0
- package/dist/utils/fetch-remote-config.d.ts.map +1 -0
- package/dist/utils/fetch-remote-config.js +109 -0
- package/dist/utils/fetch-remote-config.js.map +1 -0
- package/dist/utils/is-folder-empty.d.ts +2 -0
- package/dist/utils/is-folder-empty.d.ts.map +1 -0
- package/dist/utils/is-folder-empty.js +55 -0
- package/dist/utils/is-folder-empty.js.map +1 -0
- package/dist/utils/validate-project-name.d.ts +15 -0
- package/dist/utils/validate-project-name.d.ts.map +1 -0
- package/dist/utils/validate-project-name.js +106 -0
- package/dist/utils/validate-project-name.js.map +1 -0
- package/index.js +4 -0
- package/package.json +73 -0
- package/vitest.integration.config.ts +16 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { execSync } from "child_process";
|
|
2
|
+
import fs from "fs-extra";
|
|
3
|
+
import path from "path";
|
|
4
|
+
import chalk from "chalk";
|
|
5
|
+
/**
|
|
6
|
+
* Scaffold XMCP project using the upstream xmcp npm package
|
|
7
|
+
* This follows the requirements specification to use the xmcp package
|
|
8
|
+
* with default caret ^0.3.1 and support for dist-tags
|
|
9
|
+
*/
|
|
10
|
+
export async function fetchXMCPTemplate(projectPath, options = {}) {
|
|
11
|
+
const { xmcpVersion, xmcpChannel = "latest", packageManager = "npm" } = options;
|
|
12
|
+
// Get XMCP package configuration from environment or use defaults
|
|
13
|
+
const xmcpPackageName = process.env.XMCP_PACKAGE_NAME || "xmcp";
|
|
14
|
+
const defaultCaret = process.env.XMCP_DEFAULT_CARET || "^0.3.1";
|
|
15
|
+
// Determine which version to use
|
|
16
|
+
let targetVersion = xmcpVersion || defaultCaret;
|
|
17
|
+
// If using a channel, check if the dist-tag exists
|
|
18
|
+
if (xmcpChannel === "next") {
|
|
19
|
+
try {
|
|
20
|
+
// Check if 'next' dist-tag exists
|
|
21
|
+
execSync(`npm view ${xmcpPackageName}@next version`, {
|
|
22
|
+
stdio: 'pipe'
|
|
23
|
+
});
|
|
24
|
+
targetVersion = "next";
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
console.warn(chalk.yellow(`⚠️ dist-tag 'next' not available for ${xmcpPackageName}, falling back to ${defaultCaret}`));
|
|
28
|
+
targetVersion = defaultCaret;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
try {
|
|
32
|
+
console.log(chalk.blue(`📦 Setting up XMCP project with ${xmcpPackageName}@${targetVersion}...`));
|
|
33
|
+
// Create package.json with xmcp dependency
|
|
34
|
+
// NOTE: Do NOT add "type": "module" as xmcp framework generates CommonJS code
|
|
35
|
+
const packageJson = {
|
|
36
|
+
name: path.basename(projectPath),
|
|
37
|
+
version: "0.1.0",
|
|
38
|
+
dependencies: {
|
|
39
|
+
[xmcpPackageName]: targetVersion,
|
|
40
|
+
// Other dependencies will be added by apply-identity-preset
|
|
41
|
+
},
|
|
42
|
+
scripts: {
|
|
43
|
+
// Basic scripts - will be enhanced by identity preset
|
|
44
|
+
dev: "xmcp dev",
|
|
45
|
+
build: "xmcp build",
|
|
46
|
+
start: "xmcp start"
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
// Write package.json
|
|
50
|
+
fs.ensureDirSync(projectPath);
|
|
51
|
+
fs.writeJsonSync(path.join(projectPath, "package.json"), packageJson, { spaces: 2 });
|
|
52
|
+
// Create basic XMCP project structure
|
|
53
|
+
const srcDir = path.join(projectPath, "src");
|
|
54
|
+
const toolsDir = path.join(srcDir, "tools");
|
|
55
|
+
const promptsDir = path.join(srcDir, "prompts");
|
|
56
|
+
const resourcesDir = path.join(srcDir, "resources");
|
|
57
|
+
fs.ensureDirSync(toolsDir);
|
|
58
|
+
fs.ensureDirSync(promptsDir);
|
|
59
|
+
fs.ensureDirSync(resourcesDir);
|
|
60
|
+
// Create a basic greet tool (XMCP default)
|
|
61
|
+
const greetToolContent = `import { z } from "zod";
|
|
62
|
+
import { type InferSchema, type ToolMetadata } from "${xmcpPackageName}";
|
|
63
|
+
|
|
64
|
+
// Define the schema for tool parameters
|
|
65
|
+
export const schema = {
|
|
66
|
+
name: z.string().describe("The name of the user to greet"),
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
// Define tool metadata
|
|
70
|
+
export const metadata: ToolMetadata = {
|
|
71
|
+
name: "greet",
|
|
72
|
+
description: "Greet the user",
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
// Tool implementation
|
|
76
|
+
export default async function greet({ name }: InferSchema<typeof schema>) {
|
|
77
|
+
return {
|
|
78
|
+
content: [
|
|
79
|
+
{
|
|
80
|
+
type: "text" as const,
|
|
81
|
+
text: \`Hello, \${name}!\`,
|
|
82
|
+
},
|
|
83
|
+
],
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
`;
|
|
87
|
+
fs.writeFileSync(path.join(toolsDir, "greet.ts"), greetToolContent);
|
|
88
|
+
// Create tools index (no .js extension needed for TypeScript imports)
|
|
89
|
+
const toolsIndexContent = `export * from "./greet";\n`;
|
|
90
|
+
fs.writeFileSync(path.join(toolsDir, "index.ts"), toolsIndexContent);
|
|
91
|
+
// Create prompts index (placeholder for xmcp)
|
|
92
|
+
const promptsIndexContent = `// Prompts can be defined here if needed\nexport {};\n`;
|
|
93
|
+
fs.writeFileSync(path.join(promptsDir, "index.ts"), promptsIndexContent);
|
|
94
|
+
// Create resources index with a comment
|
|
95
|
+
// Note: We don't export anything to avoid "Invalid file path format" warnings
|
|
96
|
+
// Users can add resources here when needed
|
|
97
|
+
const resourcesIndexContent = `// Resources can be defined here if needed
|
|
98
|
+
// Example:
|
|
99
|
+
// export const myResource = {
|
|
100
|
+
// name: "my-resource",
|
|
101
|
+
// description: "A sample resource",
|
|
102
|
+
// uri: "file:///path/to/resource"
|
|
103
|
+
// };
|
|
104
|
+
`;
|
|
105
|
+
fs.writeFileSync(path.join(resourcesDir, "index.ts"), resourcesIndexContent);
|
|
106
|
+
// Create basic xmcp.config.ts (will be enhanced by generate-config)
|
|
107
|
+
const configContent = `export default {
|
|
108
|
+
tools: "./src/tools",
|
|
109
|
+
transport: "stdio",
|
|
110
|
+
};
|
|
111
|
+
`;
|
|
112
|
+
fs.writeFileSync(path.join(projectPath, "xmcp.config.ts"), configContent);
|
|
113
|
+
// Create .gitignore
|
|
114
|
+
const gitignoreContent = `node_modules/
|
|
115
|
+
dist/
|
|
116
|
+
.env
|
|
117
|
+
.env.local
|
|
118
|
+
`;
|
|
119
|
+
fs.writeFileSync(path.join(projectPath, ".gitignore"), gitignoreContent);
|
|
120
|
+
console.log(chalk.green("✅ XMCP project structure created"));
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
console.error(chalk.red("Failed to set up XMCP project:"), error);
|
|
124
|
+
throw error;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=fetch-xmcp-template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-xmcp-template.js","sourceRoot":"","sources":["../../src/helpers/fetch-xmcp-template.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Programmatic Cloudflare Project File Generation
|
|
3
|
+
*
|
|
4
|
+
* This module generates Cloudflare MCP-I project files in-memory,
|
|
5
|
+
* suitable for committing to GitHub via API (one-click deployment).
|
|
6
|
+
*
|
|
7
|
+
* Unlike fetchCloudflareMcpiTemplate (which writes to disk), this function
|
|
8
|
+
* returns file contents that can be committed programmatically.
|
|
9
|
+
*
|
|
10
|
+
* @module @kya-os/create-mcpi-app/helpers/generate-cloudflare-files
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Represents a generated file with its content
|
|
14
|
+
*/
|
|
15
|
+
export interface GeneratedFile {
|
|
16
|
+
/** Relative path from project root (e.g., "src/index.ts") */
|
|
17
|
+
path: string;
|
|
18
|
+
/** File content as string */
|
|
19
|
+
content: string;
|
|
20
|
+
/** Encoding type */
|
|
21
|
+
encoding: "utf-8" | "base64";
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Options for generating Cloudflare project files
|
|
25
|
+
*/
|
|
26
|
+
export interface GenerateFilesOptions {
|
|
27
|
+
/** Project name (used for package.json, wrangler.toml, class names) */
|
|
28
|
+
projectName: string;
|
|
29
|
+
/** Template variant */
|
|
30
|
+
template?: "blank" | "ecommerce" | "hardware-world";
|
|
31
|
+
/** AgentShield project ID (pre-configured in wrangler.toml) */
|
|
32
|
+
agentShieldProjectId?: string;
|
|
33
|
+
/** AgentShield API URL (defaults to https://kya.vouched.id) */
|
|
34
|
+
agentShieldApiUrl?: string;
|
|
35
|
+
/** AgentShield API key (included in returned secrets for GitHub Secrets) */
|
|
36
|
+
agentShieldApiKey?: string;
|
|
37
|
+
/** Skip identity generation (for testing) */
|
|
38
|
+
skipIdentity?: boolean;
|
|
39
|
+
/** MCP Server URL for consent pages (e.g., "https://my-agent.user.workers.dev") */
|
|
40
|
+
serverUrl?: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Result of file generation
|
|
44
|
+
*/
|
|
45
|
+
export interface GenerateFilesResult {
|
|
46
|
+
/** All generated files */
|
|
47
|
+
files: GeneratedFile[];
|
|
48
|
+
/** Generated identity (DID, keys) */
|
|
49
|
+
identity: {
|
|
50
|
+
did: string;
|
|
51
|
+
publicKey: string;
|
|
52
|
+
privateKey: string;
|
|
53
|
+
};
|
|
54
|
+
/** Secrets that should be added to GitHub Secrets (not committed to repo) */
|
|
55
|
+
secrets: Record<string, string>;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Generate Cloudflare MCP-I project files in-memory
|
|
59
|
+
*
|
|
60
|
+
* This function generates all files needed for a Cloudflare Workers MCP-I project
|
|
61
|
+
* but returns them as strings instead of writing to disk. This enables
|
|
62
|
+
* programmatic deployment via GitHub API.
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```typescript
|
|
66
|
+
* const result = await generateCloudflareProjectFiles({
|
|
67
|
+
* projectName: "my-agent",
|
|
68
|
+
* agentShieldProjectId: "my-project-abc123",
|
|
69
|
+
* });
|
|
70
|
+
*
|
|
71
|
+
* // Commit files to GitHub
|
|
72
|
+
* for (const file of result.files) {
|
|
73
|
+
* await octokit.repos.createOrUpdateFileContents({
|
|
74
|
+
* owner, repo,
|
|
75
|
+
* path: file.path,
|
|
76
|
+
* content: Buffer.from(file.content).toString("base64"),
|
|
77
|
+
* });
|
|
78
|
+
* }
|
|
79
|
+
*
|
|
80
|
+
* // Add secrets to GitHub
|
|
81
|
+
* await octokit.actions.createOrUpdateRepoSecret({
|
|
82
|
+
* owner, repo,
|
|
83
|
+
* secret_name: "MCP_IDENTITY_PRIVATE_KEY",
|
|
84
|
+
* encrypted_value: await encrypt(result.secrets.MCP_IDENTITY_PRIVATE_KEY),
|
|
85
|
+
* });
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
export declare function generateCloudflareProjectFiles(options: GenerateFilesOptions): Promise<GenerateFilesResult>;
|
|
89
|
+
//# sourceMappingURL=generate-cloudflare-files.d.ts.map
|
|
@@ -0,0 +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"}
|