@contextvm/ctxcn 1.0.3 → 1.0.4
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/dist/index.js +8 -11
- package/dist/index.js.map +1 -1
- package/dist/src/commands/add.d.ts.map +1 -1
- package/dist/src/commands/add.js +10 -30
- package/dist/src/commands/add.js.map +1 -1
- package/dist/src/commands/help.d.ts.map +1 -1
- package/dist/src/commands/help.js +16 -8
- package/dist/src/commands/help.js.map +1 -1
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +8 -19
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/update.d.ts.map +1 -1
- package/dist/src/commands/update.js +15 -30
- package/dist/src/commands/update.js.map +1 -1
- package/dist/src/utils/cvm-client.d.ts +9 -0
- package/dist/src/utils/cvm-client.d.ts.map +1 -0
- package/dist/src/utils/cvm-client.js +31 -0
- package/dist/src/utils/cvm-client.js.map +1 -0
- package/dist/src/utils/error-handler.d.ts +4 -0
- package/dist/src/utils/error-handler.d.ts.map +1 -0
- package/dist/src/utils/error-handler.js +14 -0
- package/dist/src/utils/error-handler.js.map +1 -0
- package/dist/src/utils/file-operations.d.ts +4 -0
- package/dist/src/utils/file-operations.d.ts.map +1 -0
- package/dist/src/utils/file-operations.js +25 -0
- package/dist/src/utils/file-operations.js.map +1 -0
- package/dist/src/utils/schema.d.ts +1 -1
- package/dist/src/utils/schema.d.ts.map +1 -1
- package/dist/src/utils/schema.js +4 -4
- package/dist/src/utils/schema.js.map +1 -1
- package/dist/src/utils.d.ts +4 -0
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +10 -5
- package/dist/src/utils.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -3,6 +3,7 @@ import { handleInit } from "./src/commands/init.js";
|
|
|
3
3
|
import { handleAdd } from "./src/commands/add.js";
|
|
4
4
|
import { handleUpdate } from "./src/commands/update.js";
|
|
5
5
|
import { handleHelp } from "./src/commands/help.js";
|
|
6
|
+
import { handleValidationError, handleCliError, } from "./src/utils/error-handler.js";
|
|
6
7
|
async function main() {
|
|
7
8
|
try {
|
|
8
9
|
const args = process.argv.slice(2);
|
|
@@ -11,36 +12,32 @@ async function main() {
|
|
|
11
12
|
handleHelp();
|
|
12
13
|
return;
|
|
13
14
|
}
|
|
15
|
+
const cwd = process.cwd();
|
|
14
16
|
switch (command) {
|
|
15
17
|
case "init":
|
|
16
|
-
await handleInit(
|
|
18
|
+
await handleInit(cwd);
|
|
17
19
|
break;
|
|
18
20
|
case "add":
|
|
19
21
|
const pubkey = args[1];
|
|
20
22
|
if (!pubkey) {
|
|
21
|
-
|
|
22
|
-
console.error("Usage: ctxcn add <pubkey>");
|
|
23
|
-
process.exit(1);
|
|
23
|
+
handleValidationError("Missing pubkey for 'add' command.\nUsage: ctxcn add <pubkey>");
|
|
24
24
|
}
|
|
25
|
-
await handleAdd(pubkey,
|
|
25
|
+
await handleAdd(pubkey, cwd);
|
|
26
26
|
break;
|
|
27
27
|
case "update":
|
|
28
28
|
const updatePubkey = args[1];
|
|
29
|
-
await handleUpdate(
|
|
29
|
+
await handleUpdate(cwd, updatePubkey);
|
|
30
30
|
break;
|
|
31
31
|
case "help":
|
|
32
32
|
handleHelp();
|
|
33
33
|
break;
|
|
34
34
|
default:
|
|
35
|
-
|
|
36
|
-
handleHelp();
|
|
37
|
-
process.exit(1);
|
|
35
|
+
handleValidationError(`Unknown command '${command}'`);
|
|
38
36
|
break;
|
|
39
37
|
}
|
|
40
38
|
}
|
|
41
39
|
catch (error) {
|
|
42
|
-
|
|
43
|
-
process.exit(1);
|
|
40
|
+
handleCliError(error, "main process");
|
|
44
41
|
}
|
|
45
42
|
}
|
|
46
43
|
main();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EACL,qBAAqB,EACrB,cAAc,GACf,MAAM,8BAA8B,CAAC;AAEtC,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAExB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,UAAU,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAE1B,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,MAAM;gBACT,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;gBACtB,MAAM;YACR,KAAK,KAAK;gBACR,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACvB,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,qBAAqB,CACnB,8DAA8D,CAC/D,CAAC;gBACJ,CAAC;gBACD,MAAM,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAC7B,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC7B,MAAM,YAAY,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;gBACtC,MAAM;YACR,KAAK,MAAM;gBACT,UAAU,EAAE,CAAC;gBACb,MAAM;YACR;gBACE,qBAAqB,CAAC,oBAAoB,OAAO,GAAG,CAAC,CAAC;gBACtD,MAAM;QACV,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IACxC,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/commands/add.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/commands/add.ts"],"names":[],"mappings":"AASA,wBAAsB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,iBAsH1D"}
|
package/dist/src/commands/add.js
CHANGED
|
@@ -1,23 +1,18 @@
|
|
|
1
|
-
import { Client } from "@modelcontextprotocol/sdk/client";
|
|
2
|
-
import { mkdir, writeFile, access } from "fs/promises";
|
|
3
1
|
import path from "path";
|
|
4
2
|
import { toPascalCase } from "../utils.js";
|
|
5
3
|
import { loadConfig, saveConfig } from "../config.js";
|
|
6
4
|
import { askQuestion, closeReadlineInterface } from "../utils/cli.js";
|
|
7
5
|
import { generateClientCode } from "../utils/schema.js";
|
|
8
|
-
import {
|
|
6
|
+
import { createCvmConnection } from "../utils/cvm-client.js";
|
|
7
|
+
import { fileExists, writeFileWithDir } from "../utils/file-operations.js";
|
|
8
|
+
import { handleConfigError, handleCliError } from "../utils/error-handler.js";
|
|
9
9
|
export async function handleAdd(pubkey, cwd) {
|
|
10
10
|
console.log("🔍 Checking for configuration file...");
|
|
11
11
|
// Check if config file exists
|
|
12
12
|
const configPath = path.join(cwd, "ctxcn.config.json");
|
|
13
|
-
|
|
14
|
-
await access(configPath);
|
|
15
|
-
}
|
|
16
|
-
catch (error) {
|
|
17
|
-
console.error("❌ Error: Configuration file 'ctxcn.config.json' not found.");
|
|
18
|
-
console.error("Please run 'ctxcn init' first to create a configuration file.");
|
|
13
|
+
if (!(await fileExists(configPath))) {
|
|
19
14
|
closeReadlineInterface();
|
|
20
|
-
|
|
15
|
+
handleConfigError();
|
|
21
16
|
}
|
|
22
17
|
const config = await loadConfig(cwd);
|
|
23
18
|
// Check if client is already added
|
|
@@ -32,20 +27,8 @@ export async function handleAdd(pubkey, cwd) {
|
|
|
32
27
|
console.log("🔄 Updating existing client...");
|
|
33
28
|
}
|
|
34
29
|
console.log(`🔗 Connecting to server ${pubkey}...`);
|
|
35
|
-
const client = new Client({
|
|
36
|
-
name: `generator-client`,
|
|
37
|
-
version: "1.0.0",
|
|
38
|
-
});
|
|
39
|
-
const transport = new NostrClientTransport({
|
|
40
|
-
signer: new PrivateKeySigner(config.privateKey),
|
|
41
|
-
relayHandler: new ApplesauceRelayPool(config.relays),
|
|
42
|
-
serverPubkey: pubkey,
|
|
43
|
-
});
|
|
44
30
|
try {
|
|
45
|
-
await client
|
|
46
|
-
const serverDetails = client.getServerVersion();
|
|
47
|
-
const toolListResult = await client.listTools();
|
|
48
|
-
await transport.close();
|
|
31
|
+
const { serverDetails, toolListResult } = await createCvmConnection(pubkey, config, "generator-client");
|
|
49
32
|
let serverName = toPascalCase(serverDetails?.name || "UnknownServer");
|
|
50
33
|
// Interactive confirmation
|
|
51
34
|
console.log(`\n📋 Server Information:`);
|
|
@@ -77,7 +60,7 @@ export async function handleAdd(pubkey, cwd) {
|
|
|
77
60
|
}
|
|
78
61
|
const printOnly = choice === "2";
|
|
79
62
|
const clientName = `${serverName}Client`;
|
|
80
|
-
const clientCode = await generateClientCode(pubkey,
|
|
63
|
+
const clientCode = await generateClientCode(pubkey, toolListResult, serverName, config.privateKey, config.relays);
|
|
81
64
|
if (printOnly) {
|
|
82
65
|
console.log("\n📄 Generated Client Code:");
|
|
83
66
|
console.log("=".repeat(50));
|
|
@@ -85,10 +68,8 @@ export async function handleAdd(pubkey, cwd) {
|
|
|
85
68
|
console.log("=".repeat(50));
|
|
86
69
|
}
|
|
87
70
|
else {
|
|
88
|
-
const
|
|
89
|
-
await
|
|
90
|
-
const outputPath = path.join(outputDir, `${clientName}.ts`);
|
|
91
|
-
await writeFile(outputPath, clientCode);
|
|
71
|
+
const outputPath = path.join(cwd, config.source, `${clientName}.ts`);
|
|
72
|
+
await writeFileWithDir(outputPath, clientCode);
|
|
92
73
|
// Add the client to the config if it's not already there
|
|
93
74
|
if (!config.addedClients) {
|
|
94
75
|
config.addedClients = [];
|
|
@@ -103,9 +84,8 @@ export async function handleAdd(pubkey, cwd) {
|
|
|
103
84
|
process.exit(0);
|
|
104
85
|
}
|
|
105
86
|
catch (error) {
|
|
106
|
-
console.error("❌ Error connecting to server:", error);
|
|
107
87
|
closeReadlineInterface();
|
|
108
|
-
|
|
88
|
+
handleCliError(error, "connecting to server");
|
|
109
89
|
}
|
|
110
90
|
}
|
|
111
91
|
//# sourceMappingURL=add.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/commands/add.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../../src/commands/help.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../../src/commands/help.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,SAqBzB"}
|
|
@@ -1,15 +1,23 @@
|
|
|
1
1
|
export function handleHelp() {
|
|
2
2
|
console.log(`
|
|
3
|
-
|
|
3
|
+
🚀 ctxcn - ContextVM Client Generator
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
init Initialize a new project and create a ctxcn.config.json file.
|
|
7
|
-
add Add a new CVM server client to your project.
|
|
8
|
-
update Update existing CVM server clients with the latest tool definitions.
|
|
9
|
-
help Display this help message.
|
|
5
|
+
Usage: npx @contextvm/ctxcn <command> [options]
|
|
10
6
|
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
Commands:
|
|
8
|
+
init Initialize a new project and create a ctxcn.config.json file
|
|
9
|
+
add Add a new CVM server client to your project
|
|
10
|
+
update Update existing CVM server clients with the latest tool definitions
|
|
11
|
+
help Display this help message
|
|
12
|
+
|
|
13
|
+
Options:
|
|
14
|
+
--help Display help for a specific command
|
|
15
|
+
|
|
16
|
+
Examples:
|
|
17
|
+
ctxcn init # Initialize project
|
|
18
|
+
ctxcn add <pubkey> # Add a CVM server client
|
|
19
|
+
ctxcn update # Update all clients
|
|
20
|
+
ctxcn update <pubkey> # Update specific client
|
|
13
21
|
`);
|
|
14
22
|
}
|
|
15
23
|
//# sourceMappingURL=help.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../../src/commands/help.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU;IACxB,OAAO,CAAC,GAAG,CAAC
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../../src/commands/help.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU;IACxB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;GAmBX,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"AAOA,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,iBAsE3C"}
|
|
@@ -2,30 +2,24 @@ import { promises as fs } from "fs";
|
|
|
2
2
|
import path from "path";
|
|
3
3
|
import { DEFAULT_CONFIG } from "../config.js";
|
|
4
4
|
import { askQuestion, closeReadlineInterface } from "../utils/cli.js";
|
|
5
|
+
import { ensureDirectoryExists, fileExists } from "../utils/file-operations.js";
|
|
6
|
+
import { handleValidationError } from "../utils/error-handler.js";
|
|
5
7
|
export async function handleInit(cwd) {
|
|
6
8
|
console.log("🚀 Initializing project for ctxcn...");
|
|
7
9
|
console.log("\n🔍 Verifying project structure...");
|
|
8
10
|
const packageJsonPath = path.join(cwd, "package.json");
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
console.log("✔️ Project structure seems valid (package.json found).");
|
|
12
|
-
}
|
|
13
|
-
catch (error) {
|
|
14
|
-
console.error("❌ Error: No package.json found. Please run this command in a valid project root directory.");
|
|
15
|
-
process.exit(1);
|
|
11
|
+
if (!(await fileExists(packageJsonPath))) {
|
|
12
|
+
handleValidationError("No package.json found. Please run this command in a valid project root directory.");
|
|
16
13
|
}
|
|
14
|
+
console.log("✔️ Project structure seems valid (package.json found).");
|
|
17
15
|
const configPath = path.join(cwd, "ctxcn.config.json");
|
|
18
|
-
|
|
19
|
-
await fs.access(configPath);
|
|
16
|
+
if (await fileExists(configPath)) {
|
|
20
17
|
const overwrite = await askQuestion("A `ctxcn.config.json` file already exists. Do you want to overwrite it?", "n");
|
|
21
18
|
if (overwrite.toLowerCase() !== "y") {
|
|
22
19
|
console.log("Aborting initialization. Your existing configuration is safe.");
|
|
23
20
|
process.exit(0);
|
|
24
21
|
}
|
|
25
22
|
}
|
|
26
|
-
catch (error) {
|
|
27
|
-
// Config file doesn't exist, so we can proceed.
|
|
28
|
-
}
|
|
29
23
|
console.log("\n⚙️ Please provide your configuration details:");
|
|
30
24
|
const source = await askQuestion("Enter the source directory for generated clients", DEFAULT_CONFIG.source);
|
|
31
25
|
const relaysStr = await askQuestion("Enter the relays to connect to (comma-separated)", DEFAULT_CONFIG.relays.join(", "));
|
|
@@ -38,13 +32,8 @@ export async function handleInit(cwd) {
|
|
|
38
32
|
await fs.writeFile(configPath, JSON.stringify(config, null, 2));
|
|
39
33
|
console.log("\n✔️ Configuration file `ctxcn.config.json` created successfully.");
|
|
40
34
|
const sourceDir = path.join(cwd, config.source);
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
catch (error) {
|
|
45
|
-
await fs.mkdir(sourceDir, { recursive: true });
|
|
46
|
-
console.log(`✔️ Source directory \`${config.source}\` created.`);
|
|
47
|
-
}
|
|
35
|
+
await ensureDirectoryExists(sourceDir);
|
|
36
|
+
console.log(`✔️ Source directory \`${config.source}\` created.`);
|
|
48
37
|
console.log("\n📦 Checking for required dependencies...");
|
|
49
38
|
const packageJsonContent = await fs.readFile(packageJsonPath, "utf-8");
|
|
50
39
|
const packageJson = JSON.parse(packageJsonContent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,cAAc,EAAe,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/commands/update.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/commands/update.ts"],"names":[],"mappings":"AA8BA,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,iBAsE9D"}
|
|
@@ -1,14 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { mkdir, writeFile, access, readdir } from "fs/promises";
|
|
1
|
+
import { readdir } from "fs/promises";
|
|
3
2
|
import path from "path";
|
|
4
3
|
import { toPascalCase } from "../utils.js";
|
|
5
4
|
import { loadConfig } from "../config.js";
|
|
6
5
|
import { askQuestion, askYesNo, closeReadlineInterface } from "../utils/cli.js";
|
|
7
6
|
import { generateClientCode } from "../utils/schema.js";
|
|
8
|
-
import {
|
|
7
|
+
import { createCvmConnection } from "../utils/cvm-client.js";
|
|
8
|
+
import { fileExists, writeFileWithDir } from "../utils/file-operations.js";
|
|
9
|
+
import { handleConfigError, handleCliError } from "../utils/error-handler.js";
|
|
9
10
|
async function findExistingClientFile(cwd, sourceDir) {
|
|
11
|
+
const outputDir = path.join(cwd, sourceDir);
|
|
12
|
+
if (!(await fileExists(outputDir))) {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
10
15
|
try {
|
|
11
|
-
const outputDir = path.join(cwd, sourceDir);
|
|
12
16
|
const existingFiles = await readdir(outputDir);
|
|
13
17
|
const existingClientFile = existingFiles.find((file) => file.endsWith(".ts") && file.includes("Client"));
|
|
14
18
|
return existingClientFile || null;
|
|
@@ -21,14 +25,9 @@ export async function handleUpdate(cwd, pubkey) {
|
|
|
21
25
|
console.log("🔍 Checking for configuration file...");
|
|
22
26
|
// Check if config file exists
|
|
23
27
|
const configPath = path.join(cwd, "ctxcn.config.json");
|
|
24
|
-
|
|
25
|
-
await access(configPath);
|
|
26
|
-
}
|
|
27
|
-
catch (error) {
|
|
28
|
-
console.error("❌ Error: Configuration file 'ctxcn.config.json' not found.");
|
|
29
|
-
console.error("Please run 'ctxcn init' first to create a configuration file.");
|
|
28
|
+
if (!(await fileExists(configPath))) {
|
|
30
29
|
closeReadlineInterface();
|
|
31
|
-
|
|
30
|
+
handleConfigError();
|
|
32
31
|
}
|
|
33
32
|
const config = await loadConfig(cwd);
|
|
34
33
|
if (!config.addedClients || config.addedClients.length === 0) {
|
|
@@ -82,20 +81,8 @@ export async function handleUpdate(cwd, pubkey) {
|
|
|
82
81
|
}
|
|
83
82
|
async function updateSingleClient(cwd, config, pubkey) {
|
|
84
83
|
console.log(`\n🔄 Updating client ${pubkey}...`);
|
|
85
|
-
const client = new Client({
|
|
86
|
-
name: `update-client`,
|
|
87
|
-
version: "1.0.0",
|
|
88
|
-
});
|
|
89
|
-
const transport = new NostrClientTransport({
|
|
90
|
-
signer: new PrivateKeySigner(config.privateKey),
|
|
91
|
-
relayHandler: new ApplesauceRelayPool(config.relays),
|
|
92
|
-
serverPubkey: pubkey,
|
|
93
|
-
});
|
|
94
84
|
try {
|
|
95
|
-
await client
|
|
96
|
-
const serverDetails = client.getServerVersion();
|
|
97
|
-
const toolListResult = await client.listTools();
|
|
98
|
-
await transport.close();
|
|
85
|
+
const { serverDetails, toolListResult } = await createCvmConnection(pubkey, config, "update-client");
|
|
99
86
|
const newServerName = toPascalCase(serverDetails?.name || "UnknownServer");
|
|
100
87
|
// Check if there's an existing client file to determine the old name
|
|
101
88
|
const existingClientFile = await findExistingClientFile(cwd, config.source);
|
|
@@ -130,16 +117,14 @@ async function updateSingleClient(cwd, config, pubkey) {
|
|
|
130
117
|
console.log("❌ Update cancelled.");
|
|
131
118
|
return;
|
|
132
119
|
}
|
|
133
|
-
const clientCode = await generateClientCode(pubkey,
|
|
120
|
+
const clientCode = await generateClientCode(pubkey, toolListResult, serverName, config.privateKey, config.relays);
|
|
134
121
|
const clientName = `${serverName}Client`;
|
|
135
|
-
const
|
|
136
|
-
await
|
|
137
|
-
const outputPath = path.join(outputDir, `${clientName}.ts`);
|
|
138
|
-
await writeFile(outputPath, clientCode);
|
|
122
|
+
const outputPath = path.join(cwd, config.source, `${clientName}.ts`);
|
|
123
|
+
await writeFileWithDir(outputPath, clientCode);
|
|
139
124
|
console.log(`✅ Updated client for ${serverName} at ${outputPath}`);
|
|
140
125
|
}
|
|
141
126
|
catch (error) {
|
|
142
|
-
|
|
127
|
+
handleCliError(error, `updating client ${pubkey}`);
|
|
143
128
|
}
|
|
144
129
|
}
|
|
145
130
|
//# sourceMappingURL=update.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/update.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Client } from "@modelcontextprotocol/sdk/client";
|
|
2
|
+
import type { Config } from "../config.js";
|
|
3
|
+
export interface CvmConnectionResult {
|
|
4
|
+
client: Client;
|
|
5
|
+
serverDetails: any;
|
|
6
|
+
toolListResult: any;
|
|
7
|
+
}
|
|
8
|
+
export declare function createCvmConnection(pubkey: string, config: Config, clientName?: string): Promise<CvmConnectionResult>;
|
|
9
|
+
//# sourceMappingURL=cvm-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cvm-client.d.ts","sourceRoot":"","sources":["../../../src/utils/cvm-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAM1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,GAAG,CAAC;IACnB,cAAc,EAAE,GAAG,CAAC;CACrB;AAED,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,UAAU,GAAE,MAAuB,GAClC,OAAO,CAAC,mBAAmB,CAAC,CA6B9B"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Client } from "@modelcontextprotocol/sdk/client";
|
|
2
|
+
import { ApplesauceRelayPool, NostrClientTransport, PrivateKeySigner, } from "@contextvm/sdk";
|
|
3
|
+
export async function createCvmConnection(pubkey, config, clientName = "ctxcn-client") {
|
|
4
|
+
const client = new Client({
|
|
5
|
+
name: clientName,
|
|
6
|
+
version: "1.0.0",
|
|
7
|
+
});
|
|
8
|
+
const transport = new NostrClientTransport({
|
|
9
|
+
signer: config.privateKey
|
|
10
|
+
? new PrivateKeySigner(config.privateKey)
|
|
11
|
+
: new PrivateKeySigner(""),
|
|
12
|
+
relayHandler: new ApplesauceRelayPool(config.relays),
|
|
13
|
+
serverPubkey: pubkey,
|
|
14
|
+
});
|
|
15
|
+
try {
|
|
16
|
+
await client.connect(transport);
|
|
17
|
+
const serverDetails = client.getServerVersion();
|
|
18
|
+
const toolListResult = await client.listTools();
|
|
19
|
+
await transport.close();
|
|
20
|
+
return {
|
|
21
|
+
client,
|
|
22
|
+
serverDetails,
|
|
23
|
+
toolListResult,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
await transport.close().catch(() => { }); // Ignore close errors
|
|
28
|
+
throw error;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=cvm-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cvm-client.js","sourceRoot":"","sources":["../../../src/utils/cvm-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC1D,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AASxB,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAc,EACd,MAAc,EACd,aAAqB,cAAc;IAEnC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAI,oBAAoB,CAAC;QACzC,MAAM,EAAE,MAAM,CAAC,UAAU;YACvB,CAAC,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC;YACzC,CAAC,CAAC,IAAI,gBAAgB,CAAC,EAAE,CAAC;QAC5B,YAAY,EAAE,IAAI,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC;QACpD,YAAY,EAAE,MAAM;KACrB,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChC,MAAM,aAAa,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAChD,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;QAChD,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;QAExB,OAAO;YACL,MAAM;YACN,aAAa;YACb,cAAc;SACf,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,sBAAsB;QAC/D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../../src/utils/error-handler.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAGpE;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAMxC;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAG3D"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export function handleCliError(error, context) {
|
|
2
|
+
console.error(`❌ Error in ${context}:`, error);
|
|
3
|
+
process.exit(1);
|
|
4
|
+
}
|
|
5
|
+
export function handleConfigError() {
|
|
6
|
+
console.error("❌ Error: Configuration file 'ctxcn.config.json' not found.");
|
|
7
|
+
console.error("Please run 'ctxcn init' first to create a configuration file.");
|
|
8
|
+
process.exit(1);
|
|
9
|
+
}
|
|
10
|
+
export function handleValidationError(message) {
|
|
11
|
+
console.error(`❌ Validation Error: ${message}`);
|
|
12
|
+
process.exit(1);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=error-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../../src/utils/error-handler.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,cAAc,CAAC,KAAc,EAAE,OAAe;IAC5D,OAAO,CAAC,KAAK,CAAC,cAAc,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAC5E,OAAO,CAAC,KAAK,CACX,+DAA+D,CAChE,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,OAAO,CAAC,KAAK,CAAC,uBAAuB,OAAO,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function ensureDirectoryExists(dirPath: string): Promise<void>;
|
|
2
|
+
export declare function fileExists(filePath: string): Promise<boolean>;
|
|
3
|
+
export declare function writeFileWithDir(filePath: string, content: string): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=file-operations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-operations.d.ts","sourceRoot":"","sources":["../../../src/utils/file-operations.ts"],"names":[],"mappings":"AAGA,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM1E;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnE;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAIf"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { promises as fs } from "fs";
|
|
2
|
+
import path from "path";
|
|
3
|
+
export async function ensureDirectoryExists(dirPath) {
|
|
4
|
+
try {
|
|
5
|
+
await fs.access(dirPath);
|
|
6
|
+
}
|
|
7
|
+
catch (error) {
|
|
8
|
+
await fs.mkdir(dirPath, { recursive: true });
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export async function fileExists(filePath) {
|
|
12
|
+
try {
|
|
13
|
+
await fs.access(filePath);
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export async function writeFileWithDir(filePath, content) {
|
|
21
|
+
const dir = path.dirname(filePath);
|
|
22
|
+
await ensureDirectoryExists(dir);
|
|
23
|
+
await fs.writeFile(filePath, content, "utf-8");
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=file-operations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-operations.js","sourceRoot":"","sources":["../../../src/utils/file-operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAAe;IACzD,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAgB,EAChB,OAAe;IAEf,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,qBAAqB,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC"}
|
|
@@ -7,5 +7,5 @@ export declare function extractSchemaProperties(schema: JSONSchema): Array<{
|
|
|
7
7
|
required: boolean;
|
|
8
8
|
}>;
|
|
9
9
|
export declare function generateTypeFromSchema(schema: JSONSchema | boolean, typeName: string): Promise<string>;
|
|
10
|
-
export declare function generateClientCode(pubkey: string,
|
|
10
|
+
export declare function generateClientCode(pubkey: string, toolListResult: any, serverName: string, privateKey?: string, relays?: string[]): Promise<string>;
|
|
11
11
|
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/utils/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAI5D,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAuChE;AAED,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAiBhE;AAoBD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,UAAU,GACjB,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC,CAmB1D;AAeD,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,UAAU,GAAG,OAAO,EAC5B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAejB;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/utils/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAI5D,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAuChE;AAED,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAiBhE;AAoBD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,UAAU,GACjB,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC,CAmB1D;AAeD,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,UAAU,GAAG,OAAO,EAC5B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAejB;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,GAAG,EACnB,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,MAAM,CAAC,CA4BjB"}
|
package/dist/src/utils/schema.js
CHANGED
|
@@ -108,7 +108,7 @@ export async function generateTypeFromSchema(schema, typeName) {
|
|
|
108
108
|
additionalProperties: false,
|
|
109
109
|
});
|
|
110
110
|
}
|
|
111
|
-
export async function generateClientCode(pubkey,
|
|
111
|
+
export async function generateClientCode(pubkey, toolListResult, serverName, privateKey, relays) {
|
|
112
112
|
const classMethods = [];
|
|
113
113
|
const serverTypeMethods = [];
|
|
114
114
|
for (const tool of toolListResult.tools) {
|
|
@@ -119,7 +119,7 @@ export async function generateClientCode(pubkey, serverDetails, toolListResult,
|
|
|
119
119
|
const clientName = `${serverName}Client`;
|
|
120
120
|
const serverType = generateServerType(serverName, serverTypeMethods);
|
|
121
121
|
const genericCallMethod = generateGenericCallMethod();
|
|
122
|
-
return assembleClientCode(clientName, pubkey, serverType, genericCallMethod, classMethods, serverName, privateKey);
|
|
122
|
+
return assembleClientCode(clientName, pubkey, serverType, genericCallMethod, classMethods, serverName, privateKey, relays);
|
|
123
123
|
}
|
|
124
124
|
async function generateToolMethods(tool, serverName) {
|
|
125
125
|
const toolName = tool.name;
|
|
@@ -273,7 +273,7 @@ function generateGenericCallMethod() {
|
|
|
273
273
|
return result.structuredContent as T;
|
|
274
274
|
}`;
|
|
275
275
|
}
|
|
276
|
-
function assembleClientCode(clientName, pubkey, serverType, genericCallMethod, classMethods, serverName, privateKey) {
|
|
276
|
+
function assembleClientCode(clientName, pubkey, serverType, genericCallMethod, classMethods, serverName, privateKey, relays) {
|
|
277
277
|
return `import { Client } from "@modelcontextprotocol/sdk/client";
|
|
278
278
|
import type { Transport } from "@modelcontextprotocol/sdk/shared/transport.js";
|
|
279
279
|
import {
|
|
@@ -300,7 +300,7 @@ export class ${clientName} implements ${serverName} {
|
|
|
300
300
|
|
|
301
301
|
const {
|
|
302
302
|
privateKey,
|
|
303
|
-
relays = ["wss://relay.contextvm.org"],
|
|
303
|
+
relays = ${relays ? JSON.stringify(relays) : `["wss://relay.contextvm.org"]`},
|
|
304
304
|
signer = new PrivateKeySigner(privateKey || process.env.CTXCN_PRIVATE_KEY${privateKey ? ` || "${privateKey}"` : ""}),
|
|
305
305
|
relayHandler = new ApplesauceRelayPool(relays),
|
|
306
306
|
...rest
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/utils/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,UAAU,cAAc,CAAC,MAAe;IAC5C,iDAAiD;IACjD,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,gGAAgG;IAChG,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,gEAAgE;IAChE,SAAS,QAAQ,CAAC,GAAQ;QACxB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC5C,OAAO,GAAG,CAAC;QACb,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACtB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;gBACnD,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;oBACnB,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;oBAC1B,iCAAiC;oBACjC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC7D,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;oBACzB,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,cAAsB;IACtD,2DAA2D;IAC3D,6CAA6C;IAC7C,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CACzC,gDAAgD,CACjD,CAAC;IACF,IAAI,cAAc,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,OAAO,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACxE,IAAI,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAClC,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAiB;IACzC,kDAAkD;IAClD,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACzD,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,UAAU,GAAG,aAAa;iBAC7B,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;iBAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;iBACtB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC;iBAC9B,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,OAAO,MAAM,UAAU,SAAS,CAAC;QACnC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,MAAkB;IAElB,IAAI,CAAC,MAAM,EAAE,UAAU,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QACtD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAEvE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;SACrC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,CAAC;SACzE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,EAAE;QAC9B,MAAM,QAAQ,GAAI,UAAkB,CAAC,IAAI,IAAI,SAAS,CAAC;QACvD,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE/C,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,uBAAuB,CAAC,QAAQ,CAAC;YACvC,QAAQ,EAAE,UAAU;SACrB,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAgB;IAC/C,MAAM,OAAO,GAA2B;QACtC,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,QAAQ;QACjB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,QAAQ;KACjB,CAAC;IAEF,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAA4B,EAC5B,QAAgB;IAEhB,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,eAAe,QAAQ,MAAM,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC;IAClE,CAAC;IAED,MAAM,eAAe,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAE/C,IAAI,OAAO,eAAe,KAAK,SAAS,EAAE,CAAC;QACzC,OAAO,eAAe,QAAQ,MAAM,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC;IAC3E,CAAC;IAED,OAAO,MAAM,OAAO,CAAC,eAAe,EAAE,QAAQ,EAAE;QAC9C,aAAa,EAAE,EAAE;QACjB,oBAAoB,EAAE,KAAK;KAC5B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAc,EACd,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/utils/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/src/utils.d.ts
CHANGED
package/dist/src/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,GAAG,MAAM,KAAG,MAcxC,CAAC"}
|
package/dist/src/utils.js
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Convert a string to PascalCase
|
|
3
|
+
* Handles various separators: spaces, hyphens, underscores, and forward slashes
|
|
4
|
+
*/
|
|
2
5
|
export const toPascalCase = (s) => {
|
|
3
|
-
if (!s) {
|
|
6
|
+
if (!s || typeof s !== "string") {
|
|
4
7
|
return "";
|
|
5
8
|
}
|
|
6
|
-
//
|
|
9
|
+
// Replace forward slashes with hyphens to handle names like 'example-servers/everything'
|
|
7
10
|
const normalized = s.replace(/\//g, "-");
|
|
8
|
-
// Convert to camelCase first, then capitalize the first letter
|
|
9
|
-
const camelCased = normalized
|
|
11
|
+
// Convert to camelCase first, then capitalize the first letter
|
|
12
|
+
const camelCased = normalized
|
|
13
|
+
.toLowerCase()
|
|
14
|
+
.replace(/([-_ ]\w)/g, (g) => (g ? g.charAt(1).toUpperCase() : ""));
|
|
10
15
|
return camelCased.charAt(0).toUpperCase() + camelCased.slice(1);
|
|
11
16
|
};
|
|
12
17
|
//# sourceMappingURL=utils.js.map
|
package/dist/src/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAS,EAAU,EAAE;IAChD,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,yFAAyF;IACzF,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAEzC,+DAA+D;IAC/D,MAAM,UAAU,GAAG,UAAU;SAC1B,WAAW,EAAE;SACb,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEtE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contextvm/ctxcn",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "A command-line utility inspired by shadcn that streamlines the integration of ContextVM (CVM) servers into your TypeScript projects",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.js",
|