mcpize 1.0.0

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 (75) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +140 -0
  3. package/dist/commands/deploy.d.ts +8 -0
  4. package/dist/commands/deploy.d.ts.map +1 -0
  5. package/dist/commands/deploy.js +337 -0
  6. package/dist/commands/deploy.js.map +1 -0
  7. package/dist/commands/doctor.d.ts +7 -0
  8. package/dist/commands/doctor.d.ts.map +1 -0
  9. package/dist/commands/doctor.js +257 -0
  10. package/dist/commands/doctor.js.map +1 -0
  11. package/dist/commands/init.d.ts +9 -0
  12. package/dist/commands/init.d.ts.map +1 -0
  13. package/dist/commands/init.js +238 -0
  14. package/dist/commands/init.js.map +1 -0
  15. package/dist/commands/link.d.ts +6 -0
  16. package/dist/commands/link.d.ts.map +1 -0
  17. package/dist/commands/link.js +147 -0
  18. package/dist/commands/link.js.map +1 -0
  19. package/dist/commands/login.d.ts +2 -0
  20. package/dist/commands/login.d.ts.map +1 -0
  21. package/dist/commands/login.js +88 -0
  22. package/dist/commands/login.js.map +1 -0
  23. package/dist/commands/logout.d.ts +2 -0
  24. package/dist/commands/logout.d.ts.map +1 -0
  25. package/dist/commands/logout.js +9 -0
  26. package/dist/commands/logout.js.map +1 -0
  27. package/dist/commands/logs.d.ts +13 -0
  28. package/dist/commands/logs.d.ts.map +1 -0
  29. package/dist/commands/logs.js +173 -0
  30. package/dist/commands/logs.js.map +1 -0
  31. package/dist/commands/secrets.d.ts +16 -0
  32. package/dist/commands/secrets.d.ts.map +1 -0
  33. package/dist/commands/secrets.js +195 -0
  34. package/dist/commands/secrets.js.map +1 -0
  35. package/dist/commands/status.d.ts +7 -0
  36. package/dist/commands/status.d.ts.map +1 -0
  37. package/dist/commands/status.js +187 -0
  38. package/dist/commands/status.js.map +1 -0
  39. package/dist/index.d.ts +3 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +241 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/lib/api.d.ts +154 -0
  44. package/dist/lib/api.d.ts.map +1 -0
  45. package/dist/lib/api.js +364 -0
  46. package/dist/lib/api.js.map +1 -0
  47. package/dist/lib/auth.d.ts +20 -0
  48. package/dist/lib/auth.d.ts.map +1 -0
  49. package/dist/lib/auth.js +106 -0
  50. package/dist/lib/auth.js.map +1 -0
  51. package/dist/lib/cache.d.ts +39 -0
  52. package/dist/lib/cache.d.ts.map +1 -0
  53. package/dist/lib/cache.js +112 -0
  54. package/dist/lib/cache.js.map +1 -0
  55. package/dist/lib/config.d.ts +21 -0
  56. package/dist/lib/config.d.ts.map +1 -0
  57. package/dist/lib/config.js +90 -0
  58. package/dist/lib/config.js.map +1 -0
  59. package/dist/lib/degit.d.ts +25 -0
  60. package/dist/lib/degit.d.ts.map +1 -0
  61. package/dist/lib/degit.js +187 -0
  62. package/dist/lib/degit.js.map +1 -0
  63. package/dist/lib/git.d.ts +10 -0
  64. package/dist/lib/git.d.ts.map +1 -0
  65. package/dist/lib/git.js +43 -0
  66. package/dist/lib/git.js.map +1 -0
  67. package/dist/lib/project.d.ts +38 -0
  68. package/dist/lib/project.d.ts.map +1 -0
  69. package/dist/lib/project.js +72 -0
  70. package/dist/lib/project.js.map +1 -0
  71. package/dist/lib/tarball.d.ts +7 -0
  72. package/dist/lib/tarball.d.ts.map +1 -0
  73. package/dist/lib/tarball.js +130 -0
  74. package/dist/lib/tarball.js.map +1 -0
  75. package/package.json +56 -0
@@ -0,0 +1,257 @@
1
+ import chalk from "chalk";
2
+ import { existsSync } from "node:fs";
3
+ import { execSync } from "node:child_process";
4
+ import { join } from "node:path";
5
+ import { hasManifest, loadManifest, loadPackageJson } from "../lib/project.js";
6
+ import { loadProjectConfig } from "../lib/project.js";
7
+ import { getToken } from "../lib/config.js";
8
+ function check(name, condition, passMessage, failMessage, fix) {
9
+ return {
10
+ name,
11
+ status: condition ? "pass" : "fail",
12
+ message: condition ? passMessage : failMessage,
13
+ fix: condition ? undefined : fix,
14
+ };
15
+ }
16
+ function warn(name, message, fix) {
17
+ return { name, status: "warn", message, fix };
18
+ }
19
+ function formatResult(result) {
20
+ const icon = result.status === "pass"
21
+ ? chalk.green("✓")
22
+ : result.status === "warn"
23
+ ? chalk.yellow("!")
24
+ : chalk.red("✗");
25
+ const color = result.status === "pass"
26
+ ? chalk.green
27
+ : result.status === "warn"
28
+ ? chalk.yellow
29
+ : chalk.red;
30
+ console.log(` ${icon} ${result.name}: ${color(result.message)}`);
31
+ if (result.fix) {
32
+ console.log(chalk.dim(` Fix: ${result.fix}`));
33
+ }
34
+ }
35
+ function getNodeVersion() {
36
+ try {
37
+ const version = execSync("node --version", { encoding: "utf-8" }).trim();
38
+ return version.replace("v", "");
39
+ }
40
+ catch {
41
+ return null;
42
+ }
43
+ }
44
+ function getNpmVersion() {
45
+ try {
46
+ return execSync("npm --version", { encoding: "utf-8" }).trim();
47
+ }
48
+ catch {
49
+ return null;
50
+ }
51
+ }
52
+ function getDockerVersion() {
53
+ try {
54
+ const output = execSync("docker --version", { encoding: "utf-8" }).trim();
55
+ const match = output.match(/Docker version (\d+\.\d+\.\d+)/);
56
+ return match ? match[1] : output;
57
+ }
58
+ catch {
59
+ return null;
60
+ }
61
+ }
62
+ function checkRuntimeEnvironment() {
63
+ const results = [];
64
+ // Node.js version
65
+ const nodeVersion = getNodeVersion();
66
+ if (nodeVersion) {
67
+ const major = parseInt(nodeVersion.split(".")[0], 10);
68
+ if (major >= 20) {
69
+ results.push(check("Node.js", true, `v${nodeVersion}`, ""));
70
+ }
71
+ else {
72
+ results.push(check("Node.js", false, "", `v${nodeVersion} (requires v20+)`, "Install Node.js 20 LTS: https://nodejs.org/"));
73
+ }
74
+ }
75
+ else {
76
+ results.push(check("Node.js", false, "", "Not installed", "Install Node.js 20 LTS: https://nodejs.org/"));
77
+ }
78
+ // npm version
79
+ const npmVersion = getNpmVersion();
80
+ if (npmVersion) {
81
+ results.push(check("npm", true, `v${npmVersion}`, ""));
82
+ }
83
+ else {
84
+ results.push(check("npm", false, "", "Not installed"));
85
+ }
86
+ // Docker (optional but recommended)
87
+ const dockerVersion = getDockerVersion();
88
+ if (dockerVersion) {
89
+ results.push(check("Docker", true, `v${dockerVersion}`, ""));
90
+ }
91
+ else {
92
+ results.push(warn("Docker", "Not installed (optional for local testing)", "Install Docker: https://docker.com/"));
93
+ }
94
+ return results;
95
+ }
96
+ function checkProject(cwd) {
97
+ const results = [];
98
+ // mcpize.yaml
99
+ if (hasManifest(cwd)) {
100
+ const manifest = loadManifest(cwd);
101
+ if (manifest) {
102
+ results.push(check("mcpize.yaml", true, "Found and valid", ""));
103
+ // Check required fields
104
+ if (manifest.runtime) {
105
+ results.push(check("Manifest: runtime", true, manifest.runtime, ""));
106
+ }
107
+ else {
108
+ results.push(check("Manifest: runtime", false, "", "Missing 'runtime' field", "Add 'runtime: node20' to mcpize.yaml"));
109
+ }
110
+ if (manifest.entry) {
111
+ results.push(check("Manifest: entry", true, manifest.entry, ""));
112
+ }
113
+ else {
114
+ results.push(warn("Manifest: entry", "Not specified (will use default)"));
115
+ }
116
+ }
117
+ else {
118
+ results.push(check("mcpize.yaml", false, "", "Invalid YAML syntax", "Check mcpize.yaml for syntax errors"));
119
+ }
120
+ }
121
+ else {
122
+ results.push(check("mcpize.yaml", false, "", "Not found", "Run: mcpize init"));
123
+ }
124
+ // package.json
125
+ const packageJson = loadPackageJson(cwd);
126
+ if (packageJson) {
127
+ results.push(check("package.json", true, "Found", ""));
128
+ // Check for main/entry
129
+ if (packageJson.main || packageJson.exports) {
130
+ results.push(check("Package entry", true, packageJson.main || "exports defined", ""));
131
+ }
132
+ else {
133
+ results.push(warn("Package entry", "No 'main' or 'exports' field"));
134
+ }
135
+ }
136
+ else {
137
+ results.push(warn("package.json", "Not found (may not be a Node.js project)"));
138
+ }
139
+ // .mcpize/project.json (linked server)
140
+ const projectConfig = loadProjectConfig(cwd);
141
+ if (projectConfig?.serverId) {
142
+ results.push(check("Project linked", true, `Server: ${projectConfig.serverName || projectConfig.serverId.slice(0, 8)}`, ""));
143
+ }
144
+ else {
145
+ results.push(warn("Project linked", "Not linked to server", "Run: mcpize link or mcpize deploy"));
146
+ }
147
+ return results;
148
+ }
149
+ function checkAuth() {
150
+ const results = [];
151
+ const token = getToken();
152
+ if (token) {
153
+ results.push(check("Authentication", true, "Logged in", ""));
154
+ }
155
+ else {
156
+ results.push(check("Authentication", false, "", "Not logged in", "Run: mcpize login"));
157
+ }
158
+ return results;
159
+ }
160
+ function checkDockerfile(cwd) {
161
+ const results = [];
162
+ const dockerfilePath = join(cwd, "Dockerfile");
163
+ if (!existsSync(dockerfilePath)) {
164
+ results.push(warn("Dockerfile", "Not found (will use auto-generated)", "Create Dockerfile for custom builds"));
165
+ return results;
166
+ }
167
+ results.push(check("Dockerfile", true, "Found", ""));
168
+ // Basic Dockerfile checks (without parsing)
169
+ try {
170
+ const { readFileSync } = require("node:fs");
171
+ const content = readFileSync(dockerfilePath, "utf-8");
172
+ // Check for EXPOSE 8080
173
+ if (content.includes("EXPOSE 8080")) {
174
+ results.push(check("Dockerfile: PORT", true, "EXPOSE 8080 configured", ""));
175
+ }
176
+ else {
177
+ results.push(warn("Dockerfile: PORT", "EXPOSE 8080 not found (required for Cloud Run)"));
178
+ }
179
+ // Check for non-root user
180
+ if (content.includes("USER ") && !content.includes("USER root")) {
181
+ results.push(check("Dockerfile: USER", true, "Non-root user configured", ""));
182
+ }
183
+ else {
184
+ results.push(warn("Dockerfile: USER", "Running as root (consider adding USER directive)", "Add 'USER node' or 'USER nobody'"));
185
+ }
186
+ // Check for health check
187
+ if (content.includes("HEALTHCHECK")) {
188
+ results.push(check("Dockerfile: HEALTHCHECK", true, "Health check configured", ""));
189
+ }
190
+ else {
191
+ results.push(warn("Dockerfile: HEALTHCHECK", "No health check (recommended for production)"));
192
+ }
193
+ }
194
+ catch {
195
+ results.push(warn("Dockerfile", "Could not read file"));
196
+ }
197
+ return results;
198
+ }
199
+ export async function doctorCommand(options) {
200
+ const cwd = process.cwd();
201
+ console.log(chalk.bold("\nMCPize Doctor - Local Diagnostics\n"));
202
+ let allResults = [];
203
+ let hasErrors = false;
204
+ // Runtime Environment
205
+ if (!options.manifest && !options.dockerfile) {
206
+ console.log(chalk.bold("Runtime Environment:"));
207
+ const runtimeResults = checkRuntimeEnvironment();
208
+ runtimeResults.forEach(formatResult);
209
+ allResults = allResults.concat(runtimeResults);
210
+ console.log();
211
+ }
212
+ // Authentication
213
+ if (!options.manifest && !options.dockerfile) {
214
+ console.log(chalk.bold("Authentication:"));
215
+ const authResults = checkAuth();
216
+ authResults.forEach(formatResult);
217
+ allResults = allResults.concat(authResults);
218
+ console.log();
219
+ }
220
+ // Project Configuration
221
+ if (!options.dockerfile) {
222
+ console.log(chalk.bold("Project Configuration:"));
223
+ const projectResults = checkProject(cwd);
224
+ projectResults.forEach(formatResult);
225
+ allResults = allResults.concat(projectResults);
226
+ console.log();
227
+ }
228
+ // Dockerfile (if --dockerfile or found)
229
+ if (options.dockerfile || existsSync(join(cwd, "Dockerfile"))) {
230
+ console.log(chalk.bold("Dockerfile:"));
231
+ const dockerResults = checkDockerfile(cwd);
232
+ dockerResults.forEach(formatResult);
233
+ allResults = allResults.concat(dockerResults);
234
+ console.log();
235
+ }
236
+ // Summary
237
+ const passed = allResults.filter((r) => r.status === "pass").length;
238
+ const warnings = allResults.filter((r) => r.status === "warn").length;
239
+ const failed = allResults.filter((r) => r.status === "fail").length;
240
+ console.log(chalk.bold("Summary:"));
241
+ console.log(` ${chalk.green(passed + " passed")}, ${chalk.yellow(warnings + " warnings")}, ${chalk.red(failed + " failed")}`);
242
+ if (failed > 0) {
243
+ console.log(chalk.red("\nSome checks failed. Please fix the issues above before deploying."));
244
+ hasErrors = true;
245
+ }
246
+ else if (warnings > 0) {
247
+ console.log(chalk.yellow("\nAll checks passed with warnings."));
248
+ }
249
+ else {
250
+ console.log(chalk.green("\nAll checks passed! Ready to deploy."));
251
+ }
252
+ console.log();
253
+ if (hasErrors) {
254
+ process.exit(1);
255
+ }
256
+ }
257
+ //# sourceMappingURL=doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export interface InitOptions {
2
+ template?: string;
3
+ dir?: string;
4
+ noInstall?: boolean;
5
+ noGit?: boolean;
6
+ [key: string]: unknown;
7
+ }
8
+ export declare function initCommand(name: string | undefined, options: InitOptions): Promise<void>;
9
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAuHD,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CA+Kf"}
@@ -0,0 +1,238 @@
1
+ import chalk from "chalk";
2
+ import ora from "ora";
3
+ import Enquirer from "enquirer";
4
+ import fs from "node:fs";
5
+ import path from "node:path";
6
+ import { execSync } from "node:child_process";
7
+ import { downloadTemplate, fetchTemplatesList } from "../lib/degit.js";
8
+ const { prompt } = Enquirer;
9
+ /**
10
+ * Convert options to environment variables for post-init script
11
+ * --from-url -> MCPIZE_INIT_FROM_URL
12
+ * --some-option -> MCPIZE_INIT_SOME_OPTION
13
+ */
14
+ function optionsToEnv(options) {
15
+ const env = {};
16
+ for (const [key, value] of Object.entries(options)) {
17
+ // Skip internal options
18
+ if (["template", "dir", "noInstall", "noGit"].includes(key)) {
19
+ continue;
20
+ }
21
+ if (value !== undefined && value !== null && value !== false) {
22
+ // Convert camelCase to SCREAMING_SNAKE_CASE
23
+ const envKey = "MCPIZE_INIT_" +
24
+ key
25
+ .replace(/([A-Z])/g, "_$1")
26
+ .toUpperCase()
27
+ .replace(/^_/, "");
28
+ env[envKey] = String(value);
29
+ }
30
+ }
31
+ return env;
32
+ }
33
+ /**
34
+ * Load and parse template.config.json if it exists
35
+ */
36
+ function loadTemplateConfig(targetDir) {
37
+ const configPath = path.join(targetDir, "template.config.json");
38
+ if (!fs.existsSync(configPath)) {
39
+ return null;
40
+ }
41
+ try {
42
+ const config = JSON.parse(fs.readFileSync(configPath, "utf-8"));
43
+ // Remove config file from output (it's internal)
44
+ fs.unlinkSync(configPath);
45
+ return config;
46
+ }
47
+ catch {
48
+ return null;
49
+ }
50
+ }
51
+ /**
52
+ * Run post-init script if defined in template config
53
+ * Script runs from target directory
54
+ */
55
+ async function runPostInit(targetDir, templateConfig, options) {
56
+ if (!templateConfig.postInit) {
57
+ return true;
58
+ }
59
+ const spinner = ora("Running post-init script...").start();
60
+ try {
61
+ // Build environment with all options
62
+ const optionsEnv = optionsToEnv(options);
63
+ // Check if any options were passed (excluding internal ones)
64
+ const hasCustomOptions = Object.keys(optionsEnv).length > 0;
65
+ if (!hasCustomOptions) {
66
+ spinner.info("Skipping post-init (no custom options provided)");
67
+ return true;
68
+ }
69
+ const env = {
70
+ ...process.env,
71
+ ...optionsEnv,
72
+ MCPIZE_PROJECT_DIR: targetDir,
73
+ MCPIZE_PROJECT_NAME: path.basename(targetDir),
74
+ };
75
+ // Run post-init from target directory
76
+ execSync(templateConfig.postInit, {
77
+ cwd: targetDir,
78
+ stdio: "inherit",
79
+ env,
80
+ });
81
+ spinner.succeed("Post-init completed");
82
+ return true;
83
+ }
84
+ catch (error) {
85
+ spinner.fail("Post-init failed");
86
+ if (error instanceof Error && "stderr" in error) {
87
+ console.error(chalk.red(String(error.stderr)));
88
+ }
89
+ else {
90
+ console.error(chalk.red(error instanceof Error ? error.message : String(error)));
91
+ }
92
+ return false;
93
+ }
94
+ }
95
+ export async function initCommand(name, options) {
96
+ console.log(chalk.bold("\nMCPize Init\n"));
97
+ // Determine project name
98
+ let projectName = name;
99
+ if (!projectName) {
100
+ const response = await prompt({
101
+ type: "input",
102
+ name: "name",
103
+ message: "Project name:",
104
+ initial: path.basename(process.cwd()),
105
+ });
106
+ projectName = response.name;
107
+ }
108
+ // Determine target directory
109
+ const targetDir = options.dir || path.join(process.cwd(), projectName);
110
+ // Check if directory exists
111
+ if (fs.existsSync(targetDir) && fs.readdirSync(targetDir).length > 0) {
112
+ const response = await prompt({
113
+ type: "confirm",
114
+ name: "overwrite",
115
+ message: `Directory "${projectName}" is not empty. Continue anyway?`,
116
+ initial: false,
117
+ });
118
+ if (!response.overwrite) {
119
+ console.log(chalk.dim("\nInit cancelled."));
120
+ process.exit(0);
121
+ }
122
+ }
123
+ // Fetch available templates
124
+ const templates = await fetchTemplatesList();
125
+ // Determine template
126
+ let template = options.template;
127
+ if (!template) {
128
+ const response = await prompt({
129
+ type: "select",
130
+ name: "template",
131
+ message: "Select template:",
132
+ choices: templates.map((t) => ({
133
+ name: t.name,
134
+ message: `${t.name} - ${t.description}`,
135
+ })),
136
+ });
137
+ template = response.template;
138
+ }
139
+ else {
140
+ // Normalize template name: "typescript" -> "typescript/default"
141
+ if (!template.includes("/")) {
142
+ template = `${template}/default`;
143
+ }
144
+ // Also handle "openapi" -> "typescript/openapi"
145
+ if (template === "openapi" || template === "openapi/default") {
146
+ template = "typescript/openapi";
147
+ }
148
+ }
149
+ // Download template from GitHub
150
+ const spinner = ora(`Downloading template ${template}...`).start();
151
+ try {
152
+ await downloadTemplate(template, targetDir, { force: true });
153
+ spinner.succeed(`Downloaded ${template}`);
154
+ }
155
+ catch (error) {
156
+ spinner.fail(`Failed to download template "${template}"`);
157
+ const errorMessage = error instanceof Error ? error.message : String(error);
158
+ // Check for common errors
159
+ if (errorMessage.includes("could not find")) {
160
+ console.error(chalk.red(`Template "${template}" not found in repository.`));
161
+ console.error(chalk.dim(`Available templates: ${templates.map((t) => t.name).join(", ")}`));
162
+ }
163
+ else if (errorMessage.includes("rate limit")) {
164
+ console.error(chalk.red("GitHub API rate limit exceeded. Try again later."));
165
+ }
166
+ else {
167
+ console.error(chalk.red(errorMessage));
168
+ }
169
+ process.exit(1);
170
+ }
171
+ // Load template config (and remove it from output)
172
+ const templateConfig = loadTemplateConfig(targetDir);
173
+ // Update package.json name
174
+ const packageJsonPath = path.join(targetDir, "package.json");
175
+ if (fs.existsSync(packageJsonPath)) {
176
+ try {
177
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf-8"));
178
+ packageJson.name = projectName;
179
+ fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2));
180
+ }
181
+ catch {
182
+ // Ignore package.json errors
183
+ }
184
+ }
185
+ // Initialize git
186
+ if (!options.noGit) {
187
+ try {
188
+ execSync("git init", { cwd: targetDir, stdio: "pipe" });
189
+ console.log(chalk.dim("Initialized git repository"));
190
+ }
191
+ catch {
192
+ // Git not available, skip
193
+ }
194
+ }
195
+ // Run post-init script if defined (before npm install, so it can modify package.json)
196
+ if (templateConfig) {
197
+ const success = await runPostInit(targetDir, templateConfig, options);
198
+ if (!success) {
199
+ console.error(chalk.yellow("\nPost-init failed. Project created but may need manual setup."));
200
+ }
201
+ }
202
+ // Install dependencies
203
+ if (!options.noInstall) {
204
+ const installSpinner = ora("Installing dependencies...").start();
205
+ try {
206
+ // Detect package manager
207
+ const hasYarn = fs.existsSync(path.join(targetDir, "yarn.lock"));
208
+ const hasPnpm = fs.existsSync(path.join(targetDir, "pnpm-lock.yaml"));
209
+ const pm = hasPnpm ? "pnpm" : hasYarn ? "yarn" : "npm";
210
+ execSync(`${pm} install`, { cwd: targetDir, stdio: "pipe" });
211
+ installSpinner.succeed("Dependencies installed");
212
+ }
213
+ catch {
214
+ installSpinner.fail("Failed to install dependencies");
215
+ console.error(chalk.dim("Run 'npm install' manually"));
216
+ }
217
+ }
218
+ // Print next steps
219
+ console.log(chalk.bold.green(`\n✓ Project created!\n`));
220
+ console.log("Next steps:");
221
+ console.log(chalk.dim(` cd ${projectName}`));
222
+ if (options.noInstall) {
223
+ console.log(chalk.dim(" npm install"));
224
+ }
225
+ // Special instructions for OpenAPI template without --from-url
226
+ const hasFromUrl = options.fromUrl || options.fromFile;
227
+ if (template === "typescript/openapi" && !hasFromUrl) {
228
+ console.log(chalk.dim(" # Generate from URL:"));
229
+ console.log(chalk.dim(" mcpize init . --template openapi --from-url <openapi-url>"));
230
+ console.log(chalk.dim(" # Or from local file:"));
231
+ console.log(chalk.dim(" mcpize init . --template openapi --from-file ./openapi.yaml"));
232
+ console.log();
233
+ }
234
+ console.log(chalk.dim(" npm run dev # Start local development"));
235
+ console.log(chalk.dim(" mcpize deploy # Deploy to MCPize"));
236
+ console.log();
237
+ }
238
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export interface LinkOptions {
2
+ server?: string;
3
+ force?: boolean;
4
+ }
5
+ export declare function linkCommand(options: LinkOptions): Promise<void>;
6
+ //# sourceMappingURL=link.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../src/commands/link.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAmGrE"}