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.
Files changed (55) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +143 -2
  3. package/dist/api-client.d.ts +24 -0
  4. package/dist/api-client.d.ts.map +1 -0
  5. package/dist/api-client.js +67 -0
  6. package/dist/api-client.js.map +1 -0
  7. package/dist/commands/config.d.ts +6 -0
  8. package/dist/commands/config.d.ts.map +1 -0
  9. package/dist/commands/config.js +43 -0
  10. package/dist/commands/config.js.map +1 -0
  11. package/dist/commands/doctor.d.ts +6 -0
  12. package/dist/commands/doctor.d.ts.map +1 -0
  13. package/dist/commands/doctor.js +48 -0
  14. package/dist/commands/doctor.js.map +1 -0
  15. package/dist/commands/login.d.ts +6 -0
  16. package/dist/commands/login.d.ts.map +1 -0
  17. package/dist/commands/login.js +26 -0
  18. package/dist/commands/login.js.map +1 -0
  19. package/dist/commands/mcp-serve.d.ts +8 -0
  20. package/dist/commands/mcp-serve.d.ts.map +1 -0
  21. package/dist/commands/mcp-serve.js +120 -0
  22. package/dist/commands/mcp-serve.js.map +1 -0
  23. package/dist/commands/run.d.ts +7 -0
  24. package/dist/commands/run.d.ts.map +1 -0
  25. package/dist/commands/run.js +85 -0
  26. package/dist/commands/run.js.map +1 -0
  27. package/dist/commands/search.d.ts +6 -0
  28. package/dist/commands/search.d.ts.map +1 -0
  29. package/dist/commands/search.js +46 -0
  30. package/dist/commands/search.js.map +1 -0
  31. package/dist/commands/tools.d.ts +6 -0
  32. package/dist/commands/tools.d.ts.map +1 -0
  33. package/dist/commands/tools.js +52 -0
  34. package/dist/commands/tools.js.map +1 -0
  35. package/dist/commands/version.d.ts +5 -0
  36. package/dist/commands/version.d.ts.map +1 -0
  37. package/dist/commands/version.js +19 -0
  38. package/dist/commands/version.js.map +1 -0
  39. package/dist/config-store.d.ts +15 -0
  40. package/dist/config-store.d.ts.map +1 -0
  41. package/dist/config-store.js +52 -0
  42. package/dist/config-store.js.map +1 -0
  43. package/dist/index.d.ts +18 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +98 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/sdk/index.d.ts +40 -0
  48. package/dist/sdk/index.d.ts.map +1 -0
  49. package/dist/sdk/index.js +122 -0
  50. package/dist/sdk/index.js.map +1 -0
  51. package/dist/sdk/types.d.ts +56 -0
  52. package/dist/sdk/types.d.ts.map +1 -0
  53. package/dist/sdk/types.js +7 -0
  54. package/dist/sdk/types.js.map +1 -0
  55. 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,6 @@
1
+ /**
2
+ * CLI: search command
3
+ * Fuzzy search across tool names and tags.
4
+ */
5
+ export declare function searchCommand(args: string[]): Promise<void>;
6
+ //# sourceMappingURL=search.d.ts.map
@@ -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,6 @@
1
+ /**
2
+ * CLI: tools command
3
+ * Lists all available tools.
4
+ */
5
+ export declare function toolsCommand(args: string[]): Promise<void>;
6
+ //# sourceMappingURL=tools.d.ts.map
@@ -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":";AAAA;;;GAGG;;AAaH,oCA8CC;AAzDD,oDAA6C;AAWtC,KAAK,UAAU,YAAY,CAAC,IAAc;IAC/C,MAAM,MAAM,GAAG,IAAI,yBAAS,EAAE,CAAC;IAC/B,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE3C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,SAAS,EAAE,CAAqB,CAAC;QAEhE,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC3B,IAAI,cAAc,EAAE,CAAC;YACnB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,KAAK,cAAc,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,uBAAuB,QAAQ,CAAC,UAAU,oBAAoB,CAAC,CAAC;QAE5E,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,eAAe,cAAc,KAAK,KAAK,CAAC,MAAM,WAAW,CAAC,CAAC;QACzE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QACnH,CAAC;QAED,oBAAoB;QACpB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAC;QAChD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAChC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;QAED,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,OAAO,EAAE,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,QAAQ,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YACjD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;YAC1F,CAAC;YACD,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,8BAA8B,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * CLI: version command
3
+ */
4
+ export declare function versionCommand(): Promise<void>;
5
+ //# sourceMappingURL=version.d.ts.map
@@ -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"}
@@ -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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"}