@polyskill/cli 0.1.3 → 0.1.5

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.
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare const searchCommand: Command;
3
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBpC,eAAO,MAAM,aAAa,SAwFvB,CAAC"}
@@ -0,0 +1,85 @@
1
+ /*
2
+ * Search flow state machine:
3
+ *
4
+ * FETCH_REGISTRY ──→ FORMAT_OUTPUT ──→ PRINT ──→ EXIT(0)
5
+ * │
6
+ * ├──→ HTTP_ERR (4xx / 5xx)
7
+ * │
8
+ * ▼
9
+ * NETWORK_ERR (DNS / timeout / refused)
10
+ */
11
+ import { Command } from "commander";
12
+ import chalk from "chalk";
13
+ import { REGISTRY_URL } from "../config.js";
14
+ export const searchCommand = new Command("search")
15
+ .description("Search for skills in the PolySkill registry")
16
+ .argument("[query]", "Search query (matches name, description, keywords)")
17
+ .option("--type <type>", "Filter by skill type (prompt, tool, workflow, composite)")
18
+ .option("--verified", "Only show verified skills")
19
+ .option("--author <name>", "Filter by author name")
20
+ .option("--keyword <keyword>", "Filter by keyword")
21
+ .option("--limit <n>", "Max results (default 20)", "20")
22
+ .option("--json", "Output raw JSON (for programmatic use)")
23
+ .option("--registry <url>", "Registry URL", REGISTRY_URL)
24
+ .action(async (query, options) => {
25
+ const params = new URLSearchParams();
26
+ if (query)
27
+ params.set("q", query);
28
+ if (options.type)
29
+ params.set("type", options.type);
30
+ if (options.verified)
31
+ params.set("verified", "true");
32
+ if (options.author)
33
+ params.set("author", options.author);
34
+ if (options.keyword)
35
+ params.set("keyword", options.keyword);
36
+ params.set("limit", options.limit);
37
+ const url = `${options.registry}/api/skills?${params}`;
38
+ let res;
39
+ try {
40
+ res = await fetch(url, { signal: AbortSignal.timeout(30_000) });
41
+ }
42
+ catch (err) {
43
+ const msg = err.name === "TimeoutError"
44
+ ? "Request timed out — is the registry running?"
45
+ : `Network error: ${err.message}`;
46
+ console.log(chalk.red(`\n${msg}\n`));
47
+ process.exit(1);
48
+ }
49
+ if (!res.ok) {
50
+ console.log(chalk.red(`\nSearch failed: ${res.statusText}\n`));
51
+ process.exit(1);
52
+ }
53
+ const data = (await res.json());
54
+ // JSON mode: dump raw response and exit
55
+ if (options.json) {
56
+ console.log(JSON.stringify(data, null, 2));
57
+ return;
58
+ }
59
+ // No results
60
+ if (data.skills.length === 0) {
61
+ console.log(chalk.yellow(`\nNo skills found${query ? ` for "${query}"` : ""}\n`));
62
+ return;
63
+ }
64
+ // Print results
65
+ console.log();
66
+ for (const skill of data.skills) {
67
+ const badge = skill.verified
68
+ ? chalk.green("[verified]")
69
+ : chalk.yellow("[unverified]");
70
+ const typeTag = chalk.dim(skill.type);
71
+ console.log(`${chalk.bold(skill.name)} ${chalk.dim(`v${skill.version}`)} ${badge} ${typeTag}`);
72
+ console.log(` ${skill.description}`);
73
+ console.log(chalk.cyan(` → polyskill install ${skill.name}`));
74
+ console.log();
75
+ }
76
+ const showing = data.skills.length;
77
+ const suffix = query ? ` matching "${query}"` : "";
78
+ if (data.total > showing) {
79
+ console.log(chalk.dim(`Showing ${showing} of ${data.total} skills${suffix}\n`));
80
+ }
81
+ else {
82
+ console.log(chalk.dim(`${data.total} skill${data.total === 1 ? "" : "s"} found${suffix}\n`));
83
+ }
84
+ });
85
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -5,15 +5,17 @@ import { validateCommand } from "./commands/validate.js";
5
5
  import { buildCommand } from "./commands/build.js";
6
6
  import { publishCommand } from "./commands/publish.js";
7
7
  import { installCommand } from "./commands/install.js";
8
+ import { searchCommand } from "./commands/search.js";
8
9
  const program = new Command();
9
10
  program
10
11
  .name("polyskill")
11
12
  .description("CLI for the PolySkill marketplace")
12
- .version("0.1.3");
13
+ .version("0.1.5");
13
14
  program.addCommand(initCommand);
14
15
  program.addCommand(validateCommand);
15
16
  program.addCommand(buildCommand);
16
17
  program.addCommand(publishCommand);
17
18
  program.addCommand(installCommand);
19
+ program.addCommand(searchCommand);
18
20
  program.parse();
19
21
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,mCAAmC,CAAC;KAChD,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAEnC,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,mCAAmC,CAAC;KAChD,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAElC,OAAO,CAAC,KAAK,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polyskill/cli",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "description": "CLI for creating, validating, and publishing PolySkill skills",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -15,7 +15,7 @@
15
15
  "clean": "rm -rf dist"
16
16
  },
17
17
  "dependencies": {
18
- "@polyskill/core": "workspace:*",
18
+ "@polyskill/core": "^0.1.0",
19
19
  "commander": "^13.0.0",
20
20
  "chalk": "^5.4.0",
21
21
  "@inquirer/prompts": "^7.0.0"