@contextvm/ctxcn 1.0.2 → 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.
Files changed (38) hide show
  1. package/README.md +64 -85
  2. package/dist/index.js +8 -11
  3. package/dist/index.js.map +1 -1
  4. package/dist/src/commands/add.d.ts.map +1 -1
  5. package/dist/src/commands/add.js +21 -36
  6. package/dist/src/commands/add.js.map +1 -1
  7. package/dist/src/commands/help.d.ts.map +1 -1
  8. package/dist/src/commands/help.js +16 -8
  9. package/dist/src/commands/help.js.map +1 -1
  10. package/dist/src/commands/init.d.ts.map +1 -1
  11. package/dist/src/commands/init.js +8 -19
  12. package/dist/src/commands/init.js.map +1 -1
  13. package/dist/src/commands/update.d.ts.map +1 -1
  14. package/dist/src/commands/update.js +15 -30
  15. package/dist/src/commands/update.js.map +1 -1
  16. package/dist/src/config.js +1 -1
  17. package/dist/src/config.js.map +1 -1
  18. package/dist/src/utils/cvm-client.d.ts +9 -0
  19. package/dist/src/utils/cvm-client.d.ts.map +1 -0
  20. package/dist/src/utils/cvm-client.js +31 -0
  21. package/dist/src/utils/cvm-client.js.map +1 -0
  22. package/dist/src/utils/error-handler.d.ts +4 -0
  23. package/dist/src/utils/error-handler.d.ts.map +1 -0
  24. package/dist/src/utils/error-handler.js +14 -0
  25. package/dist/src/utils/error-handler.js.map +1 -0
  26. package/dist/src/utils/file-operations.d.ts +4 -0
  27. package/dist/src/utils/file-operations.d.ts.map +1 -0
  28. package/dist/src/utils/file-operations.js +25 -0
  29. package/dist/src/utils/file-operations.js.map +1 -0
  30. package/dist/src/utils/schema.d.ts +1 -1
  31. package/dist/src/utils/schema.d.ts.map +1 -1
  32. package/dist/src/utils/schema.js +5 -5
  33. package/dist/src/utils/schema.js.map +1 -1
  34. package/dist/src/utils.d.ts +4 -0
  35. package/dist/src/utils.d.ts.map +1 -1
  36. package/dist/src/utils.js +10 -5
  37. package/dist/src/utils.js.map +1 -1
  38. package/package.json +2 -2
package/README.md CHANGED
@@ -2,36 +2,43 @@
2
2
 
3
3
  `ctxcn` is a command-line utility inspired by `shadcn` that streamlines the integration of ContextVM (CVM) servers into your TypeScript projects. It generates a type-safe client from a CVM server's tool definitions, allowing you to call CVM tools as if they were native TypeScript functions.
4
4
 
5
- ## Overview
5
+ ## Quickstart
6
6
 
7
- The `ctxcn` utility provides the following features:
7
+ 1. **Install dependencies**
8
8
 
9
- - **Interactive Project Initialization**: Sets up your project with the necessary configuration to connect to CVM servers through an interactive command-line interface.
10
- - **Code Generation**: Generates a TypeScript client from a CVM server's tool definitions, providing a seamless and type-safe development experience.
11
- - **Configuration**: Allows you to configure the output directory for the generated client, as well as the relays and private key to use when connecting to CVM servers.
9
+ ```bash
10
+ npm install @contextvm/sdk
11
+ # or
12
+ bun add @contextvm/sdk
13
+ ```
14
+
15
+ 2. **Initialize your project**
16
+
17
+ ```bash
18
+ npx @contextvm/ctxcn init
19
+ ```
20
+
21
+ 3. **Add a CVM server client**
22
+ ```bash
23
+ npx @contextvm/ctxcn add <pubkey>
24
+ ```
12
25
 
13
26
  ## Installation
14
27
 
15
28
  ### Global Installation
16
29
 
17
- Install ctxcn globally using npm:
18
-
19
30
  ```bash
20
31
  npm install -g @contextvm/ctxcn
21
32
  ```
22
33
 
23
34
  ### Local Installation
24
35
 
25
- Install ctxcn as a dev dependency in your project:
26
-
27
36
  ```bash
28
37
  npm install --save-dev @contextvm/ctxcn
29
38
  ```
30
39
 
31
40
  ### Development Installation
32
41
 
33
- To get started with the source code, clone the repository and install the dependencies:
34
-
35
42
  ```bash
36
43
  git clone https://github.com/your-username/ctxcn.git
37
44
  cd ctxcn
@@ -44,40 +51,20 @@ The `ctxcn` utility provides four main commands: `init`, `add`, `update`, and `h
44
51
 
45
52
  ### `init`
46
53
 
47
- The `init` command initializes your project with a `ctxcn.config.json` file. This command will guide you through the process of creating the configuration file, asking for the source directory and relays.
48
-
49
- To run the `init` command, execute the following command in your project's root directory:
50
-
51
- ```bash
52
- ctxcn init
53
- ```
54
-
55
- If you've installed locally or are working with the source code:
54
+ Initialize your project with a `ctxcn.config.json` file:
56
55
 
57
56
  ```bash
58
57
  npx @contextvm/ctxcn init
59
- # or
60
- bun run index.ts init
61
58
  ```
62
59
 
63
- This will start the interactive initialization process.
60
+ This will start an interactive process to configure your project settings.
64
61
 
65
62
  ### `add`
66
63
 
67
- The `add` command generates a TypeScript client from a CVM server's tool definitions. It takes a CVM server's pubkey as an argument and provides an interactive experience for configuring the client.
68
-
69
- To run the `add` command, execute the following command in your project's root directory:
70
-
71
- ```bash
72
- ctxcn add <pubkey>
73
- ```
74
-
75
- If you've installed locally or are working with the source code:
64
+ Generate a TypeScript client from a CVM server's tool definitions:
76
65
 
77
66
  ```bash
78
67
  npx @contextvm/ctxcn add <pubkey>
79
- # or
80
- bun run index.ts add <pubkey>
81
68
  ```
82
69
 
83
70
  This will:
@@ -92,85 +79,77 @@ This will:
92
79
 
93
80
  ### `update`
94
81
 
95
- The `update` command refreshes existing CVM server clients with the latest tool definitions. You can update a specific client or all clients at once.
96
-
97
- To update a specific client:
82
+ Refresh existing CVM server clients with the latest tool definitions:
98
83
 
99
84
  ```bash
100
- ctxcn update <pubkey>
101
- ```
102
-
103
- To update all clients or select from a list:
85
+ # Update a specific client
86
+ npx @contextvm/ctxcn update <pubkey>
104
87
 
105
- ```bash
106
- ctxcn update
88
+ # Update all clients or select from a list
89
+ npx @contextvm/ctxcn update
107
90
  ```
108
91
 
109
- If you've installed locally or are working with the source code:
92
+ ### `help`
93
+
94
+ Display help information:
110
95
 
111
96
  ```bash
112
- npx @contextvm/ctxcn update <pubkey>
113
- # or
114
- bun run index.ts update
97
+ npx @contextvm/ctxcn help
115
98
  ```
116
99
 
117
- The update command will:
100
+ ## Configuration
118
101
 
119
- 1. Check if the server name has changed
120
- 2. Ask if you want to use the new server name or keep the existing one
121
- 3. Display updated server information and tools
122
- 4. Allow you to confirm before updating
102
+ The `ctxcn` utility can be configured via a `ctxcn.config.json` file in your project's root directory:
123
103
 
124
- ### `help`
104
+ - `source`: The source directory for the generated client.
105
+ - `relays`: An array of relays to use when connecting to CVM servers.
106
+ - `privateKey`: The private key to use when connecting to CVM servers. This will be used as a fallback if the `CTXCN_PRIVATE_KEY` environment variable is not set.
107
+ - `addedClients`: An array of public keys of the clients that have been added. This is automatically managed by the CLI.
125
108
 
126
- The `help` command displays a help message with information about the available commands and options.
109
+ ### Environment Variables
127
110
 
128
- To run the `help` command, execute the following command:
111
+ For better security, you can use environment variables instead of storing private keys in your configuration file:
129
112
 
130
113
  ```bash
131
- ctxcn help
114
+ # Set your private key as an environment variable
115
+ export CTXCN_PRIVATE_KEY="your-private-key-here"
132
116
  ```
133
117
 
134
- If you've installed locally or are working with the source code:
118
+ The generated clients use the following order of precedence for private keys:
135
119
 
136
- ```bash
137
- npx @contextvm/ctxcn help
138
- # or
139
- bun run index.ts help
140
- ```
120
+ 1. Private key passed directly in the constructor options
121
+ 2. `CTXCN_PRIVATE_KEY` environment variable
122
+ 3. Private key from the configuration file (as a fallback)
141
123
 
142
- ## Configuration
124
+ ## Example
143
125
 
144
- The `ctxcn` utility can be configured via a `ctxcn.config.json` file in your project's root directory. The following options are available:
126
+ Here is an example of how to use the generated client:
145
127
 
146
- - `source`: The source directory for the generated client.
147
- - `relays`: An array of relays to use when connecting to CVM servers.
148
- - `privateKey`: The private key to use when connecting to CVM servers. If not provided, a new private key will be generated on the fly.
149
- - `addedClients`: An array of public keys of the clients that have been added. This is automatically managed by the CLI.
128
+ ```typescript
129
+ import { AdditionClient } from "./src/ctxcn/AdditionClient.ts";
150
130
 
151
- ## Example
131
+ // The client will automatically use the CTXCN_PRIVATE_KEY environment variable
132
+ // or the private key from the configuration file
133
+ const mcpClient = new AdditionClient();
152
134
 
153
- Here is an example of how to use the generated client:
135
+ const result = await mcpClient.add(5, 10);
136
+
137
+ console.log(result.result); // 15
138
+
139
+ await mcpClient.disconnect();
140
+ ```
141
+
142
+ You can also override the private key and relays when creating a client instance:
154
143
 
155
144
  ```typescript
156
145
  import { AdditionClient } from "./src/ctxcn/AdditionClient.ts";
157
- import {
158
- NostrClientTransport,
159
- PrivateKeySigner,
160
- ApplesauceRelayPool,
161
- } from "@contextvm/sdk";
162
-
163
- const transport = new NostrClientTransport({
164
- signer: new PrivateKeySigner(),
165
- relayHandler: new ApplesauceRelayPool(["ws://localhost:10547"]),
166
- serverPubkey: "<pubkey>",
167
- isStateless: true,
168
- });
169
146
 
170
- const mcpClient = new AdditionClient(transport);
171
- await mcpClient.connect();
147
+ const mcpClient = new AdditionClient({
148
+ privateKey: "your-custom-private-key",
149
+ relays: ["wss://your-custom-relay.org"],
150
+ });
172
151
 
173
- const result = await mcpClient.add({ a: 5, b: 10 });
152
+ const result = await mcpClient.add(5, 10);
174
153
 
175
154
  console.log(result.result); // 15
176
155
 
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(process.cwd());
18
+ await handleInit(cwd);
17
19
  break;
18
20
  case "add":
19
21
  const pubkey = args[1];
20
22
  if (!pubkey) {
21
- console.error("Error: Missing pubkey for 'add' command.");
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, process.cwd());
25
+ await handleAdd(pubkey, cwd);
26
26
  break;
27
27
  case "update":
28
28
  const updatePubkey = args[1];
29
- await handleUpdate(process.cwd(), updatePubkey);
29
+ await handleUpdate(cwd, updatePubkey);
30
30
  break;
31
31
  case "help":
32
32
  handleHelp();
33
33
  break;
34
34
  default:
35
- console.error(`Error: Unknown command '${command}'`);
36
- handleHelp();
37
- process.exit(1);
35
+ handleValidationError(`Unknown command '${command}'`);
38
36
  break;
39
37
  }
40
38
  }
41
39
  catch (error) {
42
- console.error("An unexpected error occurred:", error);
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":";AAGA,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;AAEpD,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,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,MAAM;gBACT,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;gBAChC,MAAM;YACR,KAAK,KAAK;gBACR,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACvB,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;oBAC1D,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;oBAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBACD,MAAM,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;gBACvC,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC7B,MAAM,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC;gBAChD,MAAM;YACR,KAAK,MAAM;gBACT,UAAU,EAAE,CAAC;gBACb,MAAM;YACR;gBACE,OAAO,CAAC,KAAK,CAAC,2BAA2B,OAAO,GAAG,CAAC,CAAC;gBACrD,UAAU,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,MAAM;QACV,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,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":"AAaA,wBAAsB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,iBA+H1D"}
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"}
@@ -1,48 +1,34 @@
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 { ApplesauceRelayPool, NostrClientTransport, PrivateKeySigner, } from "@contextvm/sdk";
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
- try {
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
- process.exit(1);
15
+ handleConfigError();
21
16
  }
22
17
  const config = await loadConfig(cwd);
23
18
  // Check if client is already added
24
19
  if (config.addedClients && config.addedClients.includes(pubkey)) {
25
20
  console.log(`⚠️ Client with pubkey ${pubkey} is already added.`);
26
- console.log("Use 'ctxcn update' to refresh the client if needed.");
27
- closeReadlineInterface();
28
- process.exit(0);
21
+ const choice = await askQuestion("Would you like to update this client? (y/n)", "n");
22
+ if (choice.toLowerCase() !== "y" && choice.toLowerCase() !== "yes") {
23
+ console.log("❌ Operation cancelled.");
24
+ closeReadlineInterface();
25
+ process.exit(0);
26
+ }
27
+ console.log("🔄 Updating existing client...");
29
28
  }
30
29
  console.log(`🔗 Connecting to server ${pubkey}...`);
31
- const client = new Client({
32
- name: `generator-client`,
33
- version: "1.0.0",
34
- });
35
- const transport = new NostrClientTransport({
36
- signer: new PrivateKeySigner(config.privateKey),
37
- relayHandler: new ApplesauceRelayPool(config.relays),
38
- serverPubkey: pubkey,
39
- // isStateless: true,
40
- });
41
30
  try {
42
- await client.connect(transport);
43
- const serverDetails = client.getServerVersion();
44
- const toolListResult = await client.listTools();
45
- await transport.close();
31
+ const { serverDetails, toolListResult } = await createCvmConnection(pubkey, config, "generator-client");
46
32
  let serverName = toPascalCase(serverDetails?.name || "UnknownServer");
47
33
  // Interactive confirmation
48
34
  console.log(`\n📋 Server Information:`);
@@ -74,7 +60,7 @@ export async function handleAdd(pubkey, cwd) {
74
60
  }
75
61
  const printOnly = choice === "2";
76
62
  const clientName = `${serverName}Client`;
77
- const clientCode = await generateClientCode(pubkey, serverDetails, toolListResult, serverName);
63
+ const clientCode = await generateClientCode(pubkey, toolListResult, serverName, config.privateKey, config.relays);
78
64
  if (printOnly) {
79
65
  console.log("\n📄 Generated Client Code:");
80
66
  console.log("=".repeat(50));
@@ -82,15 +68,15 @@ export async function handleAdd(pubkey, cwd) {
82
68
  console.log("=".repeat(50));
83
69
  }
84
70
  else {
85
- const outputDir = path.join(cwd, config.source);
86
- await mkdir(outputDir, { recursive: true });
87
- const outputPath = path.join(outputDir, `${clientName}.ts`);
88
- await writeFile(outputPath, clientCode);
89
- // Add the client to the config
71
+ const outputPath = path.join(cwd, config.source, `${clientName}.ts`);
72
+ await writeFileWithDir(outputPath, clientCode);
73
+ // Add the client to the config if it's not already there
90
74
  if (!config.addedClients) {
91
75
  config.addedClients = [];
92
76
  }
93
- config.addedClients.push(pubkey);
77
+ if (!config.addedClients.includes(pubkey)) {
78
+ config.addedClients.push(pubkey);
79
+ }
94
80
  await saveConfig(cwd, config);
95
81
  console.log(`✅ Generated client for ${serverName} at ${outputPath}`);
96
82
  }
@@ -98,9 +84,8 @@ export async function handleAdd(pubkey, cwd) {
98
84
  process.exit(0);
99
85
  }
100
86
  catch (error) {
101
- console.error("❌ Error connecting to server:", error);
102
87
  closeReadlineInterface();
103
- process.exit(1);
88
+ handleCliError(error, "connecting to server");
104
89
  }
105
90
  }
106
91
  //# sourceMappingURL=add.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/commands/add.ts"],"names":[],"mappings":"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"}
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,SAazB"}
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
- Usage: ctxcn <command> [options]
3
+ 🚀 ctxcn - ContextVM Client Generator
4
4
 
5
- Commands:
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
- Options:
12
- --help Display help for a specific command.
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;;;;;;;;;;;GAWX,CAAC,CAAC;AACL,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":"AAKA,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,iBAgF3C"}
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
- try {
10
- await fs.access(packageJsonPath);
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
- try {
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
- try {
42
- await fs.access(sourceDir);
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":"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"}
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":"AA6BA,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,iBA8E9D"}
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 { Client } from "@modelcontextprotocol/sdk/client";
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 { ApplesauceRelayPool, NostrClientTransport, PrivateKeySigner, } from "@contextvm/sdk";
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
- try {
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
- process.exit(1);
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.connect(transport);
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, serverDetails, toolListResult, serverName);
120
+ const clientCode = await generateClientCode(pubkey, toolListResult, serverName, config.privateKey, config.relays);
134
121
  const clientName = `${serverName}Client`;
135
- const outputDir = path.join(cwd, config.source);
136
- await mkdir(outputDir, { recursive: true });
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
- console.error(`❌ Error updating client ${pubkey}:`, error);
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":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/update.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { promises as fs } from "fs";
2
2
  import path from "path";
3
3
  export const DEFAULT_CONFIG = {
4
4
  source: "src/ctxcn",
5
- relays: ["ws://localhost:10547"],
5
+ relays: ["wss://relay.contextvm.org"],
6
6
  addedClients: [],
7
7
  };
8
8
  export async function loadConfig(cwd) {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AASxB,MAAM,CAAC,MAAM,cAAc,GAAW;IACpC,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,CAAC,sBAAsB,CAAC;IAChC,YAAY,EAAE,EAAE;CACjB,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAW;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;IACvD,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,UAAU,EAAE,CAAC;QAEpD,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACxD,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;QACxC,CAAC;QAED,yCAAyC;QACzC,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YAChE,MAAM,CAAC,YAAY,GAAG,EAAE,CAAC;QAC3B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,cAAc,CAAC;IACxB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAW,EAAE,MAAc;IAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;IACvD,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AASxB,MAAM,CAAC,MAAM,cAAc,GAAW;IACpC,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,CAAC,2BAA2B,CAAC;IACrC,YAAY,EAAE,EAAE;CACjB,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAW;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;IACvD,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,UAAU,EAAE,CAAC;QAEpD,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACxD,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;QACxC,CAAC;QAED,yCAAyC;QACzC,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YAChE,MAAM,CAAC,YAAY,GAAG,EAAE,CAAC;QAC3B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,cAAc,CAAC;IACxB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAW,EAAE,MAAc;IAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;IACvD,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC"}
@@ -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,4 @@
1
+ export declare function handleCliError(error: unknown, context: string): void;
2
+ export declare function handleConfigError(): void;
3
+ export declare function handleValidationError(message: string): void;
4
+ //# sourceMappingURL=error-handler.d.ts.map
@@ -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, serverDetails: any, toolListResult: any, serverName: string): Promise<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,aAAa,EAAE,GAAG,EAClB,cAAc,EAAE,GAAG,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CA0BjB"}
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"}
@@ -108,7 +108,7 @@ export async function generateTypeFromSchema(schema, typeName) {
108
108
  additionalProperties: false,
109
109
  });
110
110
  }
111
- export async function generateClientCode(pubkey, serverDetails, toolListResult, serverName) {
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);
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) {
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,8 +300,8 @@ export class ${clientName} implements ${serverName} {
300
300
 
301
301
  const {
302
302
  privateKey,
303
- relays = ["ws://localhost:10547"],
304
- signer = new PrivateKeySigner(privateKey),
303
+ relays = ${relays ? JSON.stringify(relays) : `["wss://relay.contextvm.org"]`},
304
+ signer = new PrivateKeySigner(privateKey || process.env.CTXCN_PRIVATE_KEY${privateKey ? ` || "${privateKey}"` : ""}),
305
305
  relayHandler = new ApplesauceRelayPool(relays),
306
306
  ...rest
307
307
  } = options;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/utils/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/utils/schema.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,6 @@
1
+ /**
2
+ * Convert a string to PascalCase
3
+ * Handles various separators: spaces, hyphens, underscores, and forward slashes
4
+ */
1
5
  export declare const toPascalCase: (s: string) => string;
2
6
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,YAAY,GAAI,GAAG,MAAM,KAAG,MAWxC,CAAC"}
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
- // Helper function to convert a string to PascalCase
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
- // First replace forward slashes with hyphens to handle names like 'example-servers/everything'
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.replace(/([-_ ]\w)/g, (g) => g ? g.charAt(1).toUpperCase() : "");
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
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAS,EAAU,EAAE;IAChD,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,+FAA+F;IAC/F,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACzC,gEAAgE;IAChE,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CACxD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CACnC,CAAC;IACF,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC,CAAC"}
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.2",
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",
@@ -26,7 +26,7 @@
26
26
  "typescript",
27
27
  "code-generation"
28
28
  ],
29
- "author": "",
29
+ "author": "Contextvm-org",
30
30
  "license": "MIT",
31
31
  "files": [
32
32
  "dist",