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
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* CLI: run command
|
|
4
|
+
* Execute a tool via the REST API.
|
|
5
|
+
* Usage: zynocode run <tool-slug> --param key=value
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.runCommand = runCommand;
|
|
9
|
+
const api_client_js_1 = require("../api-client.js");
|
|
10
|
+
async function runCommand(args) {
|
|
11
|
+
const slug = args[0];
|
|
12
|
+
if (!slug) {
|
|
13
|
+
console.log("\n Usage: zynocode run <tool-slug> [--param key=value ...]\n");
|
|
14
|
+
console.log(" Example: zynocode run json-formatter --param jsonText='{\"a\":1}'\n");
|
|
15
|
+
process.exit(1);
|
|
16
|
+
}
|
|
17
|
+
// Parse --param flags
|
|
18
|
+
const params = {};
|
|
19
|
+
for (let i = 1; i < args.length; i++) {
|
|
20
|
+
if (args[i] === "--param" && args[i + 1]) {
|
|
21
|
+
const kv = args[i + 1];
|
|
22
|
+
const eqIdx = kv.indexOf("=");
|
|
23
|
+
if (eqIdx > 0) {
|
|
24
|
+
const key = kv.substring(0, eqIdx);
|
|
25
|
+
let value = kv.substring(eqIdx + 1);
|
|
26
|
+
// Try parsing as JSON
|
|
27
|
+
try {
|
|
28
|
+
value = JSON.parse(value);
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
// Keep as string
|
|
32
|
+
}
|
|
33
|
+
params[key] = value;
|
|
34
|
+
}
|
|
35
|
+
i++; // Skip next arg
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
const stream = args.includes("--stream");
|
|
39
|
+
const client = new api_client_js_1.ApiClient();
|
|
40
|
+
try {
|
|
41
|
+
console.log(`\n ▸ Running ${slug}...`);
|
|
42
|
+
if (stream) {
|
|
43
|
+
const res = await client.streamTool(slug, params);
|
|
44
|
+
if (!res.body) {
|
|
45
|
+
console.error(" ✗ No stream body received");
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
const reader = res.body.getReader();
|
|
49
|
+
const decoder = new TextDecoder();
|
|
50
|
+
while (true) {
|
|
51
|
+
const { done, value } = await reader.read();
|
|
52
|
+
if (done)
|
|
53
|
+
break;
|
|
54
|
+
const text = decoder.decode(value, { stream: true });
|
|
55
|
+
process.stdout.write(text);
|
|
56
|
+
}
|
|
57
|
+
console.log();
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
const result = await client.executeTool(slug, params);
|
|
61
|
+
if (result.success) {
|
|
62
|
+
console.log(" ✓ Success");
|
|
63
|
+
if (result.executionTimeMs) {
|
|
64
|
+
console.log(` ⏱ ${result.executionTimeMs}ms`);
|
|
65
|
+
}
|
|
66
|
+
if (result.data) {
|
|
67
|
+
console.log("\n Output:");
|
|
68
|
+
const output = typeof result.data === "string" ? result.data : JSON.stringify(result.data, null, 2);
|
|
69
|
+
console.log(output.split("\n").map((l) => ` ${l}`).join("\n"));
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
console.error(` ✗ Error: ${result.error}`);
|
|
74
|
+
process.exit(1);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
catch (err) {
|
|
79
|
+
const e = err;
|
|
80
|
+
console.error(` ✗ Execution failed: ${e.message}`);
|
|
81
|
+
process.exit(1);
|
|
82
|
+
}
|
|
83
|
+
console.log();
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6CjE"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* CLI: search command
|
|
4
|
+
* Fuzzy search across tool names and tags.
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.searchCommand = searchCommand;
|
|
8
|
+
const api_client_js_1 = require("../api-client.js");
|
|
9
|
+
async function searchCommand(args) {
|
|
10
|
+
const query = args.join(" ").toLowerCase().trim();
|
|
11
|
+
if (!query) {
|
|
12
|
+
console.log("\n Usage: zynocode search <query>\n");
|
|
13
|
+
console.log(" Example: zynocode search json\n");
|
|
14
|
+
process.exit(1);
|
|
15
|
+
}
|
|
16
|
+
const client = new api_client_js_1.ApiClient();
|
|
17
|
+
try {
|
|
18
|
+
const manifest = (await client.listTools());
|
|
19
|
+
const results = manifest.tools.filter((t) => {
|
|
20
|
+
const name = t.tool.name.toLowerCase();
|
|
21
|
+
const desc = t.tool.description.toLowerCase();
|
|
22
|
+
const slug = t.metadata.slug.toLowerCase();
|
|
23
|
+
const tags = t.metadata.tags.join(" ").toLowerCase();
|
|
24
|
+
return (name.includes(query) ||
|
|
25
|
+
desc.includes(query) ||
|
|
26
|
+
slug.includes(query) ||
|
|
27
|
+
tags.includes(query));
|
|
28
|
+
});
|
|
29
|
+
if (results.length === 0) {
|
|
30
|
+
console.log(`\n No tools found matching "${query}"\n`);
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
console.log(`\n Found ${results.length} tool(s) matching "${query}":\n`);
|
|
34
|
+
for (const t of results) {
|
|
35
|
+
console.log(` ${t.metadata.slug.padEnd(35)} ${t.tool.name}`);
|
|
36
|
+
console.log(` ${"".padEnd(35)} ${t.tool.description.substring(0, 70)}`);
|
|
37
|
+
console.log();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
const e = err;
|
|
42
|
+
console.error(` ✗ Search failed: ${e.message}`);
|
|
43
|
+
process.exit(1);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAWH,sCA6CC;AAtDD,oDAA6C;AAStC,KAAK,UAAU,aAAa,CAAC,IAAc;IAChD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAElD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,yBAAS,EAAE,CAAC;IAE/B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,SAAS,EAAE,CAAqB,CAAC;QAEhE,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YAC1C,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;YAC9C,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;YAErD,OAAO,CACL,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACpB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACpB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACpB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CACrB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,gCAAgC,KAAK,KAAK,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,aAAa,OAAO,CAAC,MAAM,sBAAsB,KAAK,MAAM,CAAC,CAAC;QAE1E,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;YAC3E,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,GAAY,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/commands/tools.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA8ChE"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* CLI: tools command
|
|
4
|
+
* Lists all available tools.
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.toolsCommand = toolsCommand;
|
|
8
|
+
const api_client_js_1 = require("../api-client.js");
|
|
9
|
+
async function toolsCommand(args) {
|
|
10
|
+
const client = new api_client_js_1.ApiClient();
|
|
11
|
+
const categoryFilter = args.find((a) => a.startsWith("--category="))?.split("=")[1];
|
|
12
|
+
const jsonOutput = args.includes("--json");
|
|
13
|
+
try {
|
|
14
|
+
const manifest = (await client.listTools());
|
|
15
|
+
let tools = manifest.tools;
|
|
16
|
+
if (categoryFilter) {
|
|
17
|
+
tools = tools.filter((t) => t.metadata.category === categoryFilter);
|
|
18
|
+
}
|
|
19
|
+
if (jsonOutput) {
|
|
20
|
+
console.log(JSON.stringify(tools, null, 2));
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
console.log(`\n Zynocode Labs — ${manifest.totalTools} tools available\n`);
|
|
24
|
+
if (categoryFilter) {
|
|
25
|
+
console.log(` Category: ${categoryFilter} (${tools.length} tools)\n`);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
console.log(" Categories:", Object.entries(manifest.categories).map(([k, v]) => `${k}(${v})`).join(", "), "\n");
|
|
29
|
+
}
|
|
30
|
+
// Group by category
|
|
31
|
+
const grouped = new Map();
|
|
32
|
+
for (const t of tools) {
|
|
33
|
+
const cat = t.metadata.category;
|
|
34
|
+
if (!grouped.has(cat))
|
|
35
|
+
grouped.set(cat, []);
|
|
36
|
+
grouped.get(cat).push(t);
|
|
37
|
+
}
|
|
38
|
+
for (const [category, catTools] of grouped) {
|
|
39
|
+
console.log(` ── ${category.toUpperCase()} ──`);
|
|
40
|
+
for (const t of catTools) {
|
|
41
|
+
console.log(` ${t.metadata.slug.padEnd(35)} ${t.tool.description.substring(0, 60)}`);
|
|
42
|
+
}
|
|
43
|
+
console.log();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
const e = err;
|
|
48
|
+
console.error(` ✗ Failed to fetch tools: ${e.message}`);
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/commands/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/commands/version.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAQpD"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* CLI: version command
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.versionCommand = versionCommand;
|
|
7
|
+
const fs_1 = require("fs");
|
|
8
|
+
const path_1 = require("path");
|
|
9
|
+
async function versionCommand() {
|
|
10
|
+
try {
|
|
11
|
+
const pkgPath = (0, path_1.join)(__dirname, "..", "..", "package.json");
|
|
12
|
+
const pkg = JSON.parse((0, fs_1.readFileSync)(pkgPath, "utf-8"));
|
|
13
|
+
console.log(` zynocode v${pkg.version}`);
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
console.log(" zynocode v1.0.1");
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/commands/version.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAKH,wCAQC;AAXD,2BAAkC;AAClC,+BAA4B;AAErB,KAAK,UAAU,cAAc;IAClC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACnC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config Store
|
|
3
|
+
* Reads/writes ~/.zynocode/config.json
|
|
4
|
+
*/
|
|
5
|
+
export interface ZynocodeConfig {
|
|
6
|
+
apiKey?: string;
|
|
7
|
+
apiUrl: string;
|
|
8
|
+
defaultWorkspace?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function loadConfig(): ZynocodeConfig;
|
|
11
|
+
export declare function saveConfig(config: Partial<ZynocodeConfig>): void;
|
|
12
|
+
export declare function getConfigValue(key: keyof ZynocodeConfig): string | undefined;
|
|
13
|
+
export declare function setConfigValue(key: keyof ZynocodeConfig, value: string): void;
|
|
14
|
+
export declare function clearConfig(): void;
|
|
15
|
+
//# sourceMappingURL=config-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-store.d.ts","sourceRoot":"","sources":["../src/config-store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAKD,wBAAgB,UAAU,IAAI,cAAc,CAgB3C;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAShE;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,CAG5E;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAE7E;AAED,wBAAgB,WAAW,IAAI,IAAI,CAElC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Config Store
|
|
4
|
+
* Reads/writes ~/.zynocode/config.json
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.loadConfig = loadConfig;
|
|
8
|
+
exports.saveConfig = saveConfig;
|
|
9
|
+
exports.getConfigValue = getConfigValue;
|
|
10
|
+
exports.setConfigValue = setConfigValue;
|
|
11
|
+
exports.clearConfig = clearConfig;
|
|
12
|
+
const fs_1 = require("fs");
|
|
13
|
+
const path_1 = require("path");
|
|
14
|
+
const os_1 = require("os");
|
|
15
|
+
const CONFIG_DIR = (0, path_1.join)((0, os_1.homedir)(), ".zynocode");
|
|
16
|
+
const CONFIG_FILE = (0, path_1.join)(CONFIG_DIR, "config.json");
|
|
17
|
+
function loadConfig() {
|
|
18
|
+
let fileConfig = {};
|
|
19
|
+
try {
|
|
20
|
+
if ((0, fs_1.existsSync)(CONFIG_FILE)) {
|
|
21
|
+
const raw = (0, fs_1.readFileSync)(CONFIG_FILE, "utf-8");
|
|
22
|
+
fileConfig = JSON.parse(raw);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
fileConfig = {};
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
apiUrl: process.env.ZYNOCODE_API_URL || fileConfig.apiUrl || "https://labs.zynocode.com",
|
|
30
|
+
apiKey: process.env.ZYNOCODE_API_KEY || fileConfig.apiKey,
|
|
31
|
+
defaultWorkspace: fileConfig.defaultWorkspace,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
function saveConfig(config) {
|
|
35
|
+
const existing = loadConfig();
|
|
36
|
+
const merged = { ...existing, ...config };
|
|
37
|
+
if (!(0, fs_1.existsSync)(CONFIG_DIR)) {
|
|
38
|
+
(0, fs_1.mkdirSync)(CONFIG_DIR, { recursive: true });
|
|
39
|
+
}
|
|
40
|
+
(0, fs_1.writeFileSync)(CONFIG_FILE, JSON.stringify(merged, null, 2), "utf-8");
|
|
41
|
+
}
|
|
42
|
+
function getConfigValue(key) {
|
|
43
|
+
const config = loadConfig();
|
|
44
|
+
return config[key];
|
|
45
|
+
}
|
|
46
|
+
function setConfigValue(key, value) {
|
|
47
|
+
saveConfig({ [key]: value });
|
|
48
|
+
}
|
|
49
|
+
function clearConfig() {
|
|
50
|
+
saveConfig({ apiKey: undefined, defaultWorkspace: undefined });
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=config-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-store.js","sourceRoot":"","sources":["../src/config-store.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAeH,gCAgBC;AAED,gCASC;AAED,wCAGC;AAED,wCAEC;AAED,kCAEC;AArDD,2BAAwE;AACxE,+BAA4B;AAC5B,2BAA6B;AAQ7B,MAAM,UAAU,GAAG,IAAA,WAAI,EAAC,IAAA,YAAO,GAAE,EAAE,WAAW,CAAC,CAAC;AAChD,MAAM,WAAW,GAAG,IAAA,WAAI,EAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAEpD,SAAgB,UAAU;IACxB,IAAI,UAAU,GAA4B,EAAE,CAAC;IAC7C,IAAI,CAAC;QACH,IAAI,IAAA,eAAU,EAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,IAAA,iBAAY,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC/C,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,UAAU,GAAG,EAAE,CAAC;IAClB,CAAC;IAED,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,UAAU,CAAC,MAAM,IAAI,2BAA2B;QACxF,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,UAAU,CAAC,MAAM;QACzD,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;KAC9C,CAAC;AACJ,CAAC;AAED,SAAgB,UAAU,CAAC,MAA+B;IACxD,MAAM,QAAQ,GAAG,UAAU,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;IAE1C,IAAI,CAAC,IAAA,eAAU,EAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,IAAA,cAAS,EAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,IAAA,kBAAa,EAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACvE,CAAC;AAED,SAAgB,cAAc,CAAC,GAAyB;IACtD,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,OAAO,MAAM,CAAC,GAAG,CAAuB,CAAC;AAC3C,CAAC;AAED,SAAgB,cAAc,CAAC,GAAyB,EAAE,KAAa;IACrE,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/B,CAAC;AAED,SAAgB,WAAW;IACzB,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,CAAC;AACjE,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Zynocode CLI
|
|
4
|
+
* Official command-line tool for Zynocode Labs.
|
|
5
|
+
*
|
|
6
|
+
* Commands:
|
|
7
|
+
* login <api-key> Save API key
|
|
8
|
+
* logout Clear saved credentials
|
|
9
|
+
* tools List all available tools
|
|
10
|
+
* search <query> Search tools by name/tag
|
|
11
|
+
* run <slug> Execute a tool
|
|
12
|
+
* config Manage CLI configuration
|
|
13
|
+
* doctor Check connectivity & auth
|
|
14
|
+
* version Show CLI version
|
|
15
|
+
* mcp-serve Start stdio MCP server (for IDEs)
|
|
16
|
+
*/
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;GAcG"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* Zynocode CLI
|
|
5
|
+
* Official command-line tool for Zynocode Labs.
|
|
6
|
+
*
|
|
7
|
+
* Commands:
|
|
8
|
+
* login <api-key> Save API key
|
|
9
|
+
* logout Clear saved credentials
|
|
10
|
+
* tools List all available tools
|
|
11
|
+
* search <query> Search tools by name/tag
|
|
12
|
+
* run <slug> Execute a tool
|
|
13
|
+
* config Manage CLI configuration
|
|
14
|
+
* doctor Check connectivity & auth
|
|
15
|
+
* version Show CLI version
|
|
16
|
+
* mcp-serve Start stdio MCP server (for IDEs)
|
|
17
|
+
*/
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
const login_js_1 = require("./commands/login.js");
|
|
20
|
+
const tools_js_1 = require("./commands/tools.js");
|
|
21
|
+
const run_js_1 = require("./commands/run.js");
|
|
22
|
+
const search_js_1 = require("./commands/search.js");
|
|
23
|
+
const config_js_1 = require("./commands/config.js");
|
|
24
|
+
const doctor_js_1 = require("./commands/doctor.js");
|
|
25
|
+
const version_js_1 = require("./commands/version.js");
|
|
26
|
+
const mcp_serve_js_1 = require("./commands/mcp-serve.js");
|
|
27
|
+
const config_store_js_1 = require("./config-store.js");
|
|
28
|
+
const HELP = `
|
|
29
|
+
zynocode — AI Agent Platform CLI
|
|
30
|
+
|
|
31
|
+
Commands:
|
|
32
|
+
login <api-key> Save API key
|
|
33
|
+
logout Clear credentials
|
|
34
|
+
tools [--category=X] List all tools
|
|
35
|
+
search <query> Search tools
|
|
36
|
+
run <slug> [--param] Execute a tool
|
|
37
|
+
config [list|get|set] Manage config
|
|
38
|
+
doctor Check connectivity
|
|
39
|
+
version Show version
|
|
40
|
+
mcp-serve Start MCP server (stdio)
|
|
41
|
+
|
|
42
|
+
Examples:
|
|
43
|
+
zynocode login zyno_ak_abc123...
|
|
44
|
+
zynocode tools --category=developer
|
|
45
|
+
zynocode run json-formatter --param jsonText='{"a":1}'
|
|
46
|
+
zynocode search pdf
|
|
47
|
+
zynocode mcp-serve
|
|
48
|
+
|
|
49
|
+
Docs: https://labs.zynocode.com/docs/agents
|
|
50
|
+
`;
|
|
51
|
+
async function main() {
|
|
52
|
+
const [command, ...args] = process.argv.slice(2);
|
|
53
|
+
if (!command || command === "help" || command === "--help" || command === "-h") {
|
|
54
|
+
console.log(HELP);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
switch (command) {
|
|
58
|
+
case "login":
|
|
59
|
+
await (0, login_js_1.loginCommand)(args);
|
|
60
|
+
break;
|
|
61
|
+
case "logout":
|
|
62
|
+
(0, config_store_js_1.clearConfig)();
|
|
63
|
+
console.log("\n ✓ Credentials cleared.\n");
|
|
64
|
+
break;
|
|
65
|
+
case "tools":
|
|
66
|
+
await (0, tools_js_1.toolsCommand)(args);
|
|
67
|
+
break;
|
|
68
|
+
case "search":
|
|
69
|
+
await (0, search_js_1.searchCommand)(args);
|
|
70
|
+
break;
|
|
71
|
+
case "run":
|
|
72
|
+
await (0, run_js_1.runCommand)(args);
|
|
73
|
+
break;
|
|
74
|
+
case "config":
|
|
75
|
+
await (0, config_js_1.configCommand)(args);
|
|
76
|
+
break;
|
|
77
|
+
case "doctor":
|
|
78
|
+
await (0, doctor_js_1.doctorCommand)();
|
|
79
|
+
break;
|
|
80
|
+
case "version":
|
|
81
|
+
case "--version":
|
|
82
|
+
case "-v":
|
|
83
|
+
await (0, version_js_1.versionCommand)();
|
|
84
|
+
break;
|
|
85
|
+
case "mcp-serve":
|
|
86
|
+
await (0, mcp_serve_js_1.mcpServeCommand)();
|
|
87
|
+
break;
|
|
88
|
+
default:
|
|
89
|
+
console.error(`\n Unknown command: ${command}\n`);
|
|
90
|
+
console.log(HELP);
|
|
91
|
+
process.exit(1);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
main().catch((err) => {
|
|
95
|
+
console.error(`\n Fatal error: ${err.message}\n`);
|
|
96
|
+
process.exit(1);
|
|
97
|
+
});
|
|
98
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAEA;;;;;;;;;;;;;;GAcG;;AAEH,kDAAmD;AACnD,kDAAmD;AACnD,8CAA+C;AAC/C,oDAAqD;AACrD,oDAAqD;AACrD,oDAAqD;AACrD,sDAAuD;AACvD,0DAA0D;AAC1D,uDAAgD;AAEhD,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;CAsBZ,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEjD,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QAC/E,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO;IACT,CAAC;IAED,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,OAAO;YACV,MAAM,IAAA,uBAAY,EAAC,IAAI,CAAC,CAAC;YACzB,MAAM;QAER,KAAK,QAAQ;YACX,IAAA,6BAAW,GAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAC5C,MAAM;QAER,KAAK,OAAO;YACV,MAAM,IAAA,uBAAY,EAAC,IAAI,CAAC,CAAC;YACzB,MAAM;QAER,KAAK,QAAQ;YACX,MAAM,IAAA,yBAAa,EAAC,IAAI,CAAC,CAAC;YAC1B,MAAM;QAER,KAAK,KAAK;YACR,MAAM,IAAA,mBAAU,EAAC,IAAI,CAAC,CAAC;YACvB,MAAM;QAER,KAAK,QAAQ;YACX,MAAM,IAAA,yBAAa,EAAC,IAAI,CAAC,CAAC;YAC1B,MAAM;QAER,KAAK,QAAQ;YACX,MAAM,IAAA,yBAAa,GAAE,CAAC;YACtB,MAAM;QAER,KAAK,SAAS,CAAC;QACf,KAAK,WAAW,CAAC;QACjB,KAAK,IAAI;YACP,MAAM,IAAA,2BAAc,GAAE,CAAC;YACvB,MAAM;QAER,KAAK,WAAW;YACd,MAAM,IAAA,8BAAe,GAAE,CAAC;YACxB,MAAM;QAER;YACE,OAAO,CAAC,KAAK,CAAC,wBAAwB,OAAO,IAAI,CAAC,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,oBAAoB,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;IACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zynocode SDK
|
|
3
|
+
* Official TypeScript/JavaScript client for Zynocode Labs.
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* import { ZynocodeClient } from "zynocode/sdk";
|
|
7
|
+
*
|
|
8
|
+
* const client = new ZynocodeClient({ apiKey: "zyno_ak_..." });
|
|
9
|
+
* const result = await client.executeTool("json-formatter", { jsonText: '{"a":1}' });
|
|
10
|
+
*/
|
|
11
|
+
import type { ZynocodeConfig, ToolResult, ManifestResponse, StreamEvent } from "./types.js";
|
|
12
|
+
export type { ZynocodeConfig, ToolResult, ManifestResponse, StreamEvent };
|
|
13
|
+
export declare class ZynocodeClient {
|
|
14
|
+
private apiUrl;
|
|
15
|
+
private apiKey;
|
|
16
|
+
constructor(config: ZynocodeConfig);
|
|
17
|
+
private getHeaders;
|
|
18
|
+
/**
|
|
19
|
+
* List all available tools with metadata.
|
|
20
|
+
*/
|
|
21
|
+
listTools(): Promise<ManifestResponse>;
|
|
22
|
+
/**
|
|
23
|
+
* Execute a tool by slug.
|
|
24
|
+
*/
|
|
25
|
+
executeTool<T = unknown>(slug: string, params?: Record<string, unknown>): Promise<ToolResult<T>>;
|
|
26
|
+
/**
|
|
27
|
+
* Execute a tool with streaming SSE output.
|
|
28
|
+
* Returns an async iterator of StreamEvents.
|
|
29
|
+
*/
|
|
30
|
+
stream(slug: string, params?: Record<string, unknown>): AsyncGenerator<StreamEvent>;
|
|
31
|
+
/**
|
|
32
|
+
* Get MCP connection config for an IDE client.
|
|
33
|
+
*/
|
|
34
|
+
getConnectionConfig(client: string): Promise<unknown>;
|
|
35
|
+
/**
|
|
36
|
+
* Send MCP JSON-RPC request to the server.
|
|
37
|
+
*/
|
|
38
|
+
mcpRequest(method: string, params?: Record<string, unknown>): Promise<unknown>;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE5F,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC;AAE1E,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,cAAc;IAKlC,OAAO,CAAC,UAAU;IAQlB;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAQ5C;;OAEG;IACG,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAa1G;;;OAGG;IACI,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,cAAc,CAAC,WAAW,CAAC;IAwC9F;;OAEG;IACG,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS3D;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;CAcrF"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Zynocode SDK
|
|
4
|
+
* Official TypeScript/JavaScript client for Zynocode Labs.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* import { ZynocodeClient } from "zynocode/sdk";
|
|
8
|
+
*
|
|
9
|
+
* const client = new ZynocodeClient({ apiKey: "zyno_ak_..." });
|
|
10
|
+
* const result = await client.executeTool("json-formatter", { jsonText: '{"a":1}' });
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.ZynocodeClient = void 0;
|
|
14
|
+
class ZynocodeClient {
|
|
15
|
+
apiUrl;
|
|
16
|
+
apiKey;
|
|
17
|
+
constructor(config) {
|
|
18
|
+
this.apiKey = config.apiKey;
|
|
19
|
+
this.apiUrl = config.apiUrl || "https://labs.zynocode.com";
|
|
20
|
+
}
|
|
21
|
+
getHeaders() {
|
|
22
|
+
return {
|
|
23
|
+
"Content-Type": "application/json",
|
|
24
|
+
Authorization: `Bearer ${this.apiKey}`,
|
|
25
|
+
"User-Agent": "zynocode-sdk/1.0.1",
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* List all available tools with metadata.
|
|
30
|
+
*/
|
|
31
|
+
async listTools() {
|
|
32
|
+
const res = await fetch(`${this.apiUrl}/api/v1/mcp/manifest`, {
|
|
33
|
+
headers: this.getHeaders(),
|
|
34
|
+
});
|
|
35
|
+
if (!res.ok)
|
|
36
|
+
throw new Error(`API error ${res.status}`);
|
|
37
|
+
return res.json();
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Execute a tool by slug.
|
|
41
|
+
*/
|
|
42
|
+
async executeTool(slug, params = {}) {
|
|
43
|
+
const res = await fetch(`${this.apiUrl}/api/v1/tools/${slug}`, {
|
|
44
|
+
method: "POST",
|
|
45
|
+
headers: this.getHeaders(),
|
|
46
|
+
body: JSON.stringify(params),
|
|
47
|
+
});
|
|
48
|
+
if (!res.ok) {
|
|
49
|
+
const text = await res.text();
|
|
50
|
+
throw new Error(`API error ${res.status}: ${text}`);
|
|
51
|
+
}
|
|
52
|
+
return res.json();
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Execute a tool with streaming SSE output.
|
|
56
|
+
* Returns an async iterator of StreamEvents.
|
|
57
|
+
*/
|
|
58
|
+
async *stream(slug, params = {}) {
|
|
59
|
+
const res = await fetch(`${this.apiUrl}/api/v1/tools/${slug}/stream`, {
|
|
60
|
+
method: "POST",
|
|
61
|
+
headers: this.getHeaders(),
|
|
62
|
+
body: JSON.stringify({ params }),
|
|
63
|
+
});
|
|
64
|
+
if (!res.ok) {
|
|
65
|
+
throw new Error(`Stream error ${res.status}`);
|
|
66
|
+
}
|
|
67
|
+
if (!res.body) {
|
|
68
|
+
throw new Error("No stream body");
|
|
69
|
+
}
|
|
70
|
+
const reader = res.body.getReader();
|
|
71
|
+
const decoder = new TextDecoder();
|
|
72
|
+
let buffer = "";
|
|
73
|
+
while (true) {
|
|
74
|
+
const { done, value } = await reader.read();
|
|
75
|
+
if (done)
|
|
76
|
+
break;
|
|
77
|
+
buffer += decoder.decode(value, { stream: true });
|
|
78
|
+
const lines = buffer.split("\n");
|
|
79
|
+
buffer = lines.pop() || "";
|
|
80
|
+
for (const line of lines) {
|
|
81
|
+
if (line.startsWith("data: ")) {
|
|
82
|
+
try {
|
|
83
|
+
const event = JSON.parse(line.slice(6));
|
|
84
|
+
yield event;
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
// Skip malformed events
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Get MCP connection config for an IDE client.
|
|
95
|
+
*/
|
|
96
|
+
async getConnectionConfig(client) {
|
|
97
|
+
const res = await fetch(`${this.apiUrl}/api/v1/mcp/connect?client=${client}&apiKey=${this.apiKey}`, { headers: this.getHeaders() });
|
|
98
|
+
if (!res.ok)
|
|
99
|
+
throw new Error(`API error ${res.status}`);
|
|
100
|
+
return res.json();
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Send MCP JSON-RPC request to the server.
|
|
104
|
+
*/
|
|
105
|
+
async mcpRequest(method, params) {
|
|
106
|
+
const res = await fetch(`${this.apiUrl}/api/v1/mcp`, {
|
|
107
|
+
method: "POST",
|
|
108
|
+
headers: this.getHeaders(),
|
|
109
|
+
body: JSON.stringify({
|
|
110
|
+
jsonrpc: "2.0",
|
|
111
|
+
id: Date.now(),
|
|
112
|
+
method,
|
|
113
|
+
params,
|
|
114
|
+
}),
|
|
115
|
+
});
|
|
116
|
+
if (!res.ok)
|
|
117
|
+
throw new Error(`MCP error ${res.status}`);
|
|
118
|
+
return res.json();
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
exports.ZynocodeClient = ZynocodeClient;
|
|
122
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"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"}
|