zynocode 0.0.0-stage → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +143 -2
- package/dist/api-client.d.ts +24 -0
- package/dist/api-client.d.ts.map +1 -0
- package/dist/api-client.js +67 -0
- package/dist/api-client.js.map +1 -0
- package/dist/commands/config.d.ts +6 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +43 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/doctor.d.ts +6 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +48 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/login.d.ts +6 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +26 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/mcp-serve.d.ts +8 -0
- package/dist/commands/mcp-serve.d.ts.map +1 -0
- package/dist/commands/mcp-serve.js +120 -0
- package/dist/commands/mcp-serve.js.map +1 -0
- package/dist/commands/run.d.ts +7 -0
- package/dist/commands/run.d.ts.map +1 -0
- package/dist/commands/run.js +85 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/commands/search.d.ts +6 -0
- package/dist/commands/search.d.ts.map +1 -0
- package/dist/commands/search.js +46 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/tools.d.ts +6 -0
- package/dist/commands/tools.d.ts.map +1 -0
- package/dist/commands/tools.js +52 -0
- package/dist/commands/tools.js.map +1 -0
- package/dist/commands/version.d.ts +5 -0
- package/dist/commands/version.d.ts.map +1 -0
- package/dist/commands/version.js +19 -0
- package/dist/commands/version.js.map +1 -0
- package/dist/config-store.d.ts +15 -0
- package/dist/config-store.d.ts.map +1 -0
- package/dist/config-store.js +52 -0
- package/dist/config-store.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +98 -0
- package/dist/index.js.map +1 -0
- package/dist/sdk/index.d.ts +40 -0
- package/dist/sdk/index.d.ts.map +1 -0
- package/dist/sdk/index.js +122 -0
- package/dist/sdk/index.js.map +1 -0
- package/dist/sdk/types.d.ts +56 -0
- package/dist/sdk/types.d.ts.map +1 -0
- package/dist/sdk/types.js +7 -0
- package/dist/sdk/types.js.map +1 -0
- package/package.json +59 -4
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Zynocode Labs
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,144 @@
|
|
|
1
|
-
#
|
|
1
|
+
# zynocode
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Official command-line interface for the Zynocode Labs Developer Platform. Execute developer, calculator, and text utilities from your terminal, run diagnostics, and expose local Model Context Protocol (MCP) servers for AI assistants (Cursor, Claude Desktop, VS Code).
|
|
4
|
+
|
|
5
|
+
- **Documentation**: [labs.zynocode.com/developers/cli](https://labs.zynocode.com/developers/cli)
|
|
6
|
+
- **Source Code**: [github.com/zynocode/zynocode-labs-free-tools/tree/main/packages/cli](https://github.com/zynocode/zynocode-labs-free-tools/tree/main/packages/cli)
|
|
7
|
+
- **npm Package**: [zynocode](https://www.npmjs.com/package/zynocode)
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install -g zynocode
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Or run directly without installing via `npx`:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npx zynocode --help
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Prerequisites
|
|
22
|
+
|
|
23
|
+
- Node.js >= 18.0.0
|
|
24
|
+
|
|
25
|
+
## Quick Start
|
|
26
|
+
|
|
27
|
+
### 1. Authenticate
|
|
28
|
+
|
|
29
|
+
Get your API key from the [Zynocode Labs Developer Portal](https://labs.zynocode.com/developers/api-reference):
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
zynocode login zyno_ak_your_api_key_here
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Stored securely in `~/.zynocode/config.json`.
|
|
36
|
+
|
|
37
|
+
### 2. Verify Connectivity
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
zynocode doctor
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Output:
|
|
44
|
+
```text
|
|
45
|
+
Zynocode Doctor
|
|
46
|
+
|
|
47
|
+
✓ API key configured
|
|
48
|
+
✓ API URL: https://labs.zynocode.com
|
|
49
|
+
✓ API reachable — 77 tools available
|
|
50
|
+
✓ Node.js v20.x.x
|
|
51
|
+
|
|
52
|
+
All checks passed ✓
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 3. List and Search Tools
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# List all available tools grouped by category
|
|
59
|
+
zynocode tools
|
|
60
|
+
|
|
61
|
+
# Filter tools by category
|
|
62
|
+
zynocode tools --category=developer
|
|
63
|
+
|
|
64
|
+
# Search tools by keyword or tag
|
|
65
|
+
zynocode search json
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### 4. Execute a Tool
|
|
69
|
+
|
|
70
|
+
Run tools directly with `--param`:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
zynocode run json-formatter --param jsonText='{"name":"Zynocode","active":true}' --param indent=2
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Pass structured inputs or stream responses where supported:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
zynocode run base64-encoder --param text="Hello World" --param mode="encode"
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### 5. Model Context Protocol (MCP) Server
|
|
83
|
+
|
|
84
|
+
Start a stdio MCP server for AI IDEs and desktop clients:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
zynocode mcp-serve
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
#### Claude Desktop Configuration (`claude_desktop_config.json`)
|
|
91
|
+
|
|
92
|
+
```json
|
|
93
|
+
{
|
|
94
|
+
"mcpServers": {
|
|
95
|
+
"zynocode": {
|
|
96
|
+
"command": "npx",
|
|
97
|
+
"args": ["-y", "zynocode", "mcp-serve"],
|
|
98
|
+
"env": {
|
|
99
|
+
"ZYNOCODE_API_KEY": "zyno_ak_your_key_here"
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
#### Cursor Configuration (`~/.cursor/mcp.json`)
|
|
107
|
+
|
|
108
|
+
```json
|
|
109
|
+
{
|
|
110
|
+
"mcpServers": {
|
|
111
|
+
"zynocode": {
|
|
112
|
+
"command": "npx",
|
|
113
|
+
"args": ["-y", "zynocode", "mcp-serve"],
|
|
114
|
+
"env": {
|
|
115
|
+
"ZYNOCODE_API_KEY": "zyno_ak_your_key_here"
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## CLI Commands
|
|
123
|
+
|
|
124
|
+
| Command | Description |
|
|
125
|
+
|---|---|
|
|
126
|
+
| `zynocode login <api-key>` | Authenticate and persist API key to local config |
|
|
127
|
+
| `zynocode logout` | Clear saved credentials |
|
|
128
|
+
| `zynocode tools [--category=X] [--json]` | List all registered tools in the platform catalog |
|
|
129
|
+
| `zynocode search <query>` | Search tools by name, description, slug, or tag |
|
|
130
|
+
| `zynocode run <slug> [--param key=value]` | Execute a tool via the REST API |
|
|
131
|
+
| `zynocode config [list\|get\|set]` | Inspect or modify CLI configuration |
|
|
132
|
+
| `zynocode doctor` | Verify connectivity, API key validity, and Node.js version |
|
|
133
|
+
| `zynocode version` | Display the installed CLI version |
|
|
134
|
+
| `zynocode mcp-serve` | Run stdio JSON-RPC 2.0 MCP server for AI agents |
|
|
135
|
+
|
|
136
|
+
## Configuration & Environment Variables
|
|
137
|
+
|
|
138
|
+
- `ZYNOCODE_API_URL`: Override the target API endpoint (default: `https://labs.zynocode.com`).
|
|
139
|
+
- `ZYNOCODE_API_KEY`: Fallback API key used if not logged in via `login`.
|
|
140
|
+
- Config file location: `~/.zynocode/config.json`.
|
|
141
|
+
|
|
142
|
+
## License
|
|
143
|
+
|
|
144
|
+
MIT © [Zynocode Labs](https://labs.zynocode.com)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API Client
|
|
3
|
+
* HTTP client wrapper for Zynocode Labs REST API.
|
|
4
|
+
* Uses Node 18+ built-in fetch. Zero dependencies.
|
|
5
|
+
*/
|
|
6
|
+
interface APIResponse<T = unknown> {
|
|
7
|
+
success: boolean;
|
|
8
|
+
data?: T;
|
|
9
|
+
error?: string;
|
|
10
|
+
executionTimeMs?: number;
|
|
11
|
+
}
|
|
12
|
+
export declare class ApiClient {
|
|
13
|
+
private apiUrl;
|
|
14
|
+
private apiKey;
|
|
15
|
+
constructor(apiUrl?: string, apiKey?: string);
|
|
16
|
+
private getHeaders;
|
|
17
|
+
get<T = unknown>(path: string): Promise<T>;
|
|
18
|
+
post<T = unknown>(path: string, body: unknown): Promise<T>;
|
|
19
|
+
executeTool(slug: string, params: Record<string, unknown>): Promise<APIResponse>;
|
|
20
|
+
listTools(): Promise<unknown>;
|
|
21
|
+
streamTool(slug: string, params: Record<string, unknown>): Promise<Response>;
|
|
22
|
+
}
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=api-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,UAAU,WAAW,CAAC,CAAC,GAAG,OAAO;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAqB;gBAEvB,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAM5C,OAAO,CAAC,UAAU;IAWZ,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAY1C,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAa1D,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IAIhF,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAI7B,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;CAQnF"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* API Client
|
|
4
|
+
* HTTP client wrapper for Zynocode Labs REST API.
|
|
5
|
+
* Uses Node 18+ built-in fetch. Zero dependencies.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.ApiClient = void 0;
|
|
9
|
+
const config_store_js_1 = require("./config-store.js");
|
|
10
|
+
class ApiClient {
|
|
11
|
+
apiUrl;
|
|
12
|
+
apiKey;
|
|
13
|
+
constructor(apiUrl, apiKey) {
|
|
14
|
+
const config = (0, config_store_js_1.loadConfig)();
|
|
15
|
+
this.apiUrl = apiUrl || config.apiUrl;
|
|
16
|
+
this.apiKey = apiKey || config.apiKey;
|
|
17
|
+
}
|
|
18
|
+
getHeaders() {
|
|
19
|
+
const headers = {
|
|
20
|
+
"Content-Type": "application/json",
|
|
21
|
+
"User-Agent": "zynocode-cli/1.0.1",
|
|
22
|
+
};
|
|
23
|
+
if (this.apiKey) {
|
|
24
|
+
headers["Authorization"] = `Bearer ${this.apiKey}`;
|
|
25
|
+
}
|
|
26
|
+
return headers;
|
|
27
|
+
}
|
|
28
|
+
async get(path) {
|
|
29
|
+
const res = await fetch(`${this.apiUrl}${path}`, {
|
|
30
|
+
method: "GET",
|
|
31
|
+
headers: this.getHeaders(),
|
|
32
|
+
});
|
|
33
|
+
if (!res.ok) {
|
|
34
|
+
const body = await res.text();
|
|
35
|
+
throw new Error(`API error ${res.status}: ${body}`);
|
|
36
|
+
}
|
|
37
|
+
return res.json();
|
|
38
|
+
}
|
|
39
|
+
async post(path, body) {
|
|
40
|
+
const res = await fetch(`${this.apiUrl}${path}`, {
|
|
41
|
+
method: "POST",
|
|
42
|
+
headers: this.getHeaders(),
|
|
43
|
+
body: JSON.stringify(body),
|
|
44
|
+
});
|
|
45
|
+
if (!res.ok) {
|
|
46
|
+
const text = await res.text();
|
|
47
|
+
throw new Error(`API error ${res.status}: ${text}`);
|
|
48
|
+
}
|
|
49
|
+
return res.json();
|
|
50
|
+
}
|
|
51
|
+
async executeTool(slug, params) {
|
|
52
|
+
return this.post(`/api/v1/tools/${slug}`, params);
|
|
53
|
+
}
|
|
54
|
+
async listTools() {
|
|
55
|
+
return this.get("/api/v1/mcp/manifest");
|
|
56
|
+
}
|
|
57
|
+
async streamTool(slug, params) {
|
|
58
|
+
const res = await fetch(`${this.apiUrl}/api/v1/tools/${slug}/stream`, {
|
|
59
|
+
method: "POST",
|
|
60
|
+
headers: this.getHeaders(),
|
|
61
|
+
body: JSON.stringify({ params }),
|
|
62
|
+
});
|
|
63
|
+
return res;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.ApiClient = ApiClient;
|
|
67
|
+
//# sourceMappingURL=api-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,uDAA+C;AAS/C,MAAa,SAAS;IACZ,MAAM,CAAS;IACf,MAAM,CAAqB;IAEnC,YAAY,MAAe,EAAE,MAAe;QAC1C,MAAM,MAAM,GAAG,IAAA,4BAAU,GAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;IACxC,CAAC;IAEO,UAAU;QAChB,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,YAAY,EAAE,oBAAoB;SACnC,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC;QACrD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,GAAG,CAAc,IAAY;QACjC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,EAAE;YAC/C,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;SAC3B,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,aAAa,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,EAAgB,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,IAAI,CAAc,IAAY,EAAE,IAAa;QACjD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,EAAE;YAC/C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;YAC1B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,aAAa,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,EAAgB,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAY,EAAE,MAA+B;QAC7D,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY,EAAE,MAA+B;QAC5D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,iBAAiB,IAAI,SAAS,EAAE;YACpE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;YAC1B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;SACjC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AA9DD,8BA8DC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqCjE"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* CLI: config command
|
|
4
|
+
* Get/set CLI configuration.
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.configCommand = configCommand;
|
|
8
|
+
const config_store_js_1 = require("../config-store.js");
|
|
9
|
+
async function configCommand(args) {
|
|
10
|
+
const action = args[0]; // get, set, list
|
|
11
|
+
if (!action || action === "list") {
|
|
12
|
+
const config = (0, config_store_js_1.loadConfig)();
|
|
13
|
+
console.log("\n Zynocode CLI Configuration:\n");
|
|
14
|
+
console.log(` apiUrl: ${config.apiUrl}`);
|
|
15
|
+
console.log(` apiKey: ${config.apiKey ? config.apiKey.substring(0, 12) + "..." : "(not set)"}`);
|
|
16
|
+
console.log(` defaultWorkspace: ${config.defaultWorkspace || "(not set)"}`);
|
|
17
|
+
console.log();
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (action === "get") {
|
|
21
|
+
const key = args[1];
|
|
22
|
+
if (!key) {
|
|
23
|
+
console.log(" Usage: zynocode config get <key>");
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const config = (0, config_store_js_1.loadConfig)();
|
|
27
|
+
console.log(config[key] || "(not set)");
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
if (action === "set") {
|
|
31
|
+
const key = args[1];
|
|
32
|
+
const value = args[2];
|
|
33
|
+
if (!key || !value) {
|
|
34
|
+
console.log(" Usage: zynocode config set <key> <value>");
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
(0, config_store_js_1.setConfigValue)(key, value);
|
|
38
|
+
console.log(` ✓ ${key} = ${value}`);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
console.log(" Usage: zynocode config [list|get|set]");
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAIH,sCAqCC;AAvCD,wDAAgF;AAEzE,KAAK,UAAU,aAAa,CAAC,IAAc;IAChD,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB;IAEzC,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,IAAA,4BAAU,GAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,yBAAyB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,yBAAyB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAC7G,OAAO,CAAC,GAAG,CAAC,yBAAyB,MAAM,CAAC,gBAAgB,IAAI,WAAW,EAAE,CAAC,CAAC;QAC/E,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO;IACT,CAAC;IAED,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAyB,CAAC;QAC5C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,IAAA,4BAAU,GAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,CAAC;QACxC,OAAO;IACT,CAAC;IAED,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAyB,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;YAC1D,OAAO;QACT,CAAC;QACD,IAAA,gCAAc,EAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC;QACrC,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAwCnD"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* CLI: doctor command
|
|
4
|
+
* Checks connectivity, auth, and version.
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.doctorCommand = doctorCommand;
|
|
8
|
+
const config_store_js_1 = require("../config-store.js");
|
|
9
|
+
const api_client_js_1 = require("../api-client.js");
|
|
10
|
+
async function doctorCommand() {
|
|
11
|
+
const config = (0, config_store_js_1.loadConfig)();
|
|
12
|
+
let ok = true;
|
|
13
|
+
console.log("\n Zynocode Doctor\n");
|
|
14
|
+
// 1. Config check
|
|
15
|
+
if (config.apiKey) {
|
|
16
|
+
console.log(" ✓ API key configured");
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
console.log(" ✗ API key not set (run: zynocode login <key>)");
|
|
20
|
+
ok = false;
|
|
21
|
+
}
|
|
22
|
+
console.log(` ✓ API URL: ${config.apiUrl}`);
|
|
23
|
+
// 2. Connectivity check
|
|
24
|
+
try {
|
|
25
|
+
const client = new api_client_js_1.ApiClient();
|
|
26
|
+
const manifest = (await client.listTools());
|
|
27
|
+
console.log(` ✓ API reachable — ${manifest.totalTools} tools available`);
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
const e = err;
|
|
31
|
+
console.log(` ✗ API unreachable: ${e.message}`);
|
|
32
|
+
ok = false;
|
|
33
|
+
}
|
|
34
|
+
// 3. Node version check
|
|
35
|
+
const nodeVersion = process.version;
|
|
36
|
+
const major = parseInt(nodeVersion.slice(1).split(".")[0], 10);
|
|
37
|
+
if (major >= 18) {
|
|
38
|
+
console.log(` ✓ Node.js ${nodeVersion}`);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
console.log(` ✗ Node.js ${nodeVersion} — requires >=18.0.0`);
|
|
42
|
+
ok = false;
|
|
43
|
+
}
|
|
44
|
+
console.log();
|
|
45
|
+
console.log(ok ? " All checks passed ✓" : " Some checks failed ✗");
|
|
46
|
+
console.log();
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAKH,sCAwCC;AA3CD,wDAAgD;AAChD,oDAA6C;AAEtC,KAAK,UAAU,aAAa;IACjC,MAAM,MAAM,GAAG,IAAA,4BAAU,GAAE,CAAC;IAC5B,IAAI,EAAE,GAAG,IAAI,CAAC;IAEd,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IAErC,kBAAkB;IAClB,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QAC/D,EAAE,GAAG,KAAK,CAAC;IACb,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAE7C,wBAAwB;IACxB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,yBAAS,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,SAAS,EAAE,CAA2B,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,uBAAuB,QAAQ,CAAC,UAAU,kBAAkB,CAAC,CAAC;IAC5E,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,GAAY,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACjD,EAAE,GAAG,KAAK,CAAC;IACb,CAAC;IAED,wBAAwB;IACxB,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/D,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,eAAe,WAAW,EAAE,CAAC,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,eAAe,WAAW,sBAAsB,CAAC,CAAC;QAC9D,EAAE,GAAG,KAAK,CAAC;IACb,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBhE"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* CLI: login command
|
|
4
|
+
* Stores API key in ~/.zynocode/config.json
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.loginCommand = loginCommand;
|
|
8
|
+
const config_store_js_1 = require("../config-store.js");
|
|
9
|
+
async function loginCommand(args) {
|
|
10
|
+
const apiKey = args[0];
|
|
11
|
+
if (!apiKey) {
|
|
12
|
+
console.log("\n Usage: zynocode login <api-key>\n");
|
|
13
|
+
console.log(" Get your API key at: https://labs.zynocode.com/developer/agents\n");
|
|
14
|
+
process.exit(1);
|
|
15
|
+
}
|
|
16
|
+
if (!apiKey.startsWith("zyno_")) {
|
|
17
|
+
console.error(" ✗ Invalid API key format. Keys start with 'zyno_'.");
|
|
18
|
+
process.exit(1);
|
|
19
|
+
}
|
|
20
|
+
(0, config_store_js_1.saveConfig)({ apiKey });
|
|
21
|
+
const config = (0, config_store_js_1.loadConfig)();
|
|
22
|
+
console.log("\n ✓ API key saved successfully.");
|
|
23
|
+
console.log(` ✓ API URL: ${config.apiUrl}`);
|
|
24
|
+
console.log(" ✓ Run 'zynocode doctor' to verify your connection.\n");
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAIH,oCAoBC;AAtBD,wDAA4D;AAErD,KAAK,UAAU,YAAY,CAAC,IAAc;IAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAEvB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;QACnF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAA,4BAAU,EAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACvB,MAAM,MAAM,GAAG,IAAA,4BAAU,GAAE,CAAC;IAE5B,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;AACxE,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI: mcp-serve command
|
|
3
|
+
* Stdio MCP server for local IDE integrations.
|
|
4
|
+
* Reads JSON-RPC from stdin, writes responses to stdout.
|
|
5
|
+
* Used by Cursor, Claude Desktop, VS Code, etc.
|
|
6
|
+
*/
|
|
7
|
+
export declare function mcpServeCommand(): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=mcp-serve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-serve.d.ts","sourceRoot":"","sources":["../../src/commands/mcp-serve.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiDH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAgCrD"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* CLI: mcp-serve command
|
|
4
|
+
* Stdio MCP server for local IDE integrations.
|
|
5
|
+
* Reads JSON-RPC from stdin, writes responses to stdout.
|
|
6
|
+
* Used by Cursor, Claude Desktop, VS Code, etc.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.mcpServeCommand = mcpServeCommand;
|
|
10
|
+
const api_client_js_1 = require("../api-client.js");
|
|
11
|
+
let toolsCache = null;
|
|
12
|
+
let toolSlugMap = null;
|
|
13
|
+
async function loadTools(client) {
|
|
14
|
+
if (toolsCache)
|
|
15
|
+
return;
|
|
16
|
+
const manifest = (await client.listTools());
|
|
17
|
+
toolsCache = manifest.tools.map((t) => t.tool);
|
|
18
|
+
toolSlugMap = new Map(manifest.tools.map((t) => [t.tool.name, t.metadata.slug]));
|
|
19
|
+
}
|
|
20
|
+
function respond(id, result) {
|
|
21
|
+
const msg = JSON.stringify({ jsonrpc: "2.0", id, result });
|
|
22
|
+
process.stdout.write(msg + "\n");
|
|
23
|
+
}
|
|
24
|
+
function respondError(id, code, message) {
|
|
25
|
+
const msg = JSON.stringify({ jsonrpc: "2.0", id, error: { code, message } });
|
|
26
|
+
process.stdout.write(msg + "\n");
|
|
27
|
+
}
|
|
28
|
+
async function mcpServeCommand() {
|
|
29
|
+
const client = new api_client_js_1.ApiClient();
|
|
30
|
+
// Read stdin line by line
|
|
31
|
+
let buffer = "";
|
|
32
|
+
process.stdin.setEncoding("utf-8");
|
|
33
|
+
process.stdin.on("data", async (chunk) => {
|
|
34
|
+
buffer += chunk;
|
|
35
|
+
// Process complete JSON messages (newline-delimited)
|
|
36
|
+
const lines = buffer.split("\n");
|
|
37
|
+
buffer = lines.pop() || "";
|
|
38
|
+
for (const line of lines) {
|
|
39
|
+
if (!line.trim())
|
|
40
|
+
continue;
|
|
41
|
+
try {
|
|
42
|
+
const req = JSON.parse(line);
|
|
43
|
+
await handleRequest(req, client);
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
respondError(null, -32700, "Parse error");
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
process.stdin.on("end", () => {
|
|
51
|
+
process.exit(0);
|
|
52
|
+
});
|
|
53
|
+
// Keep process alive
|
|
54
|
+
process.stdin.resume();
|
|
55
|
+
}
|
|
56
|
+
async function handleRequest(req, client) {
|
|
57
|
+
switch (req.method) {
|
|
58
|
+
case "initialize":
|
|
59
|
+
respond(req.id, {
|
|
60
|
+
protocolVersion: "2024-11-05",
|
|
61
|
+
capabilities: { tools: { listChanged: false } },
|
|
62
|
+
serverInfo: { name: "zynocode-labs", version: "1.0.0" },
|
|
63
|
+
});
|
|
64
|
+
break;
|
|
65
|
+
case "initialized":
|
|
66
|
+
// No response needed for notification
|
|
67
|
+
break;
|
|
68
|
+
case "ping":
|
|
69
|
+
respond(req.id, {});
|
|
70
|
+
break;
|
|
71
|
+
case "tools/list":
|
|
72
|
+
try {
|
|
73
|
+
await loadTools(client);
|
|
74
|
+
respond(req.id, { tools: toolsCache || [] });
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
const e = err;
|
|
78
|
+
respondError(req.id, -32603, `Failed to list tools: ${e.message}`);
|
|
79
|
+
}
|
|
80
|
+
break;
|
|
81
|
+
case "tools/call": {
|
|
82
|
+
const toolName = req.params?.name;
|
|
83
|
+
const toolArgs = (req.params?.arguments || {});
|
|
84
|
+
if (!toolName) {
|
|
85
|
+
respondError(req.id, -32602, 'Missing "name" parameter');
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
try {
|
|
89
|
+
await loadTools(client);
|
|
90
|
+
const slug = toolSlugMap?.get(toolName) || toolName.replace(/_/g, "-");
|
|
91
|
+
const params = toolArgs.params || toolArgs;
|
|
92
|
+
const result = await client.executeTool(slug, params);
|
|
93
|
+
if (result.success) {
|
|
94
|
+
respond(req.id, {
|
|
95
|
+
content: [
|
|
96
|
+
{
|
|
97
|
+
type: "text",
|
|
98
|
+
text: typeof result.data === "string" ? result.data : JSON.stringify(result.data, null, 2),
|
|
99
|
+
},
|
|
100
|
+
],
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
respond(req.id, {
|
|
105
|
+
content: [{ type: "text", text: JSON.stringify({ error: result.error }) }],
|
|
106
|
+
isError: true,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
catch (err) {
|
|
111
|
+
const e = err;
|
|
112
|
+
respondError(req.id, -32002, e.message || "Tool execution failed");
|
|
113
|
+
}
|
|
114
|
+
break;
|
|
115
|
+
}
|
|
116
|
+
default:
|
|
117
|
+
respondError(req.id, -32601, `Method "${req.method}" not found`);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=mcp-serve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-serve.js","sourceRoot":"","sources":["../../src/commands/mcp-serve.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgF9D"}
|