@orth/cli 0.2.0 → 0.2.2
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/README.md +1 -1
- package/dist/commands/api.js +4 -4
- package/dist/commands/auth.js +1 -1
- package/dist/commands/search.js +2 -2
- package/dist/commands/skills.js +19 -19
- package/dist/config.js +1 -1
- package/dist/index.js +3 -3
- package/package.json +1 -1
package/README.md
CHANGED
package/dist/commands/api.js
CHANGED
|
@@ -36,7 +36,7 @@ async function apiCommand(slug, path, options) {
|
|
|
36
36
|
chalk_1.default.white(api.name || "") +
|
|
37
37
|
chalk_1.default.gray(` (${api.endpoints?.length || 0} endpoints)`));
|
|
38
38
|
}
|
|
39
|
-
console.log(chalk_1.default.gray("\nRun '
|
|
39
|
+
console.log(chalk_1.default.gray("\nRun 'ortho api <slug>' to see endpoints for an API"));
|
|
40
40
|
return;
|
|
41
41
|
}
|
|
42
42
|
if (path) {
|
|
@@ -127,7 +127,7 @@ async function apiCommand(slug, path, options) {
|
|
|
127
127
|
const api = data.results.find((a) => a.slug === slug);
|
|
128
128
|
if (!api) {
|
|
129
129
|
console.log(chalk_1.default.yellow(`API '${slug}' not found.`));
|
|
130
|
-
console.log(chalk_1.default.gray("Run '
|
|
130
|
+
console.log(chalk_1.default.gray("Run 'ortho api' to see available APIs"));
|
|
131
131
|
return;
|
|
132
132
|
}
|
|
133
133
|
console.log(chalk_1.default.bold(`\n${chalk_1.default.cyan(api.name)} (${api.slug})\n`));
|
|
@@ -139,8 +139,8 @@ async function apiCommand(slug, path, options) {
|
|
|
139
139
|
console.log(chalk_1.default.gray(` ${endpoint.description.slice(0, 80)}${endpoint.description.length > 80 ? "..." : ""}`));
|
|
140
140
|
}
|
|
141
141
|
}
|
|
142
|
-
console.log(chalk_1.default.gray("\nRun '
|
|
143
|
-
console.log(chalk_1.default.gray("Run '
|
|
142
|
+
console.log(chalk_1.default.gray("\nRun 'ortho api " + slug + " <path>' for endpoint details"));
|
|
143
|
+
console.log(chalk_1.default.gray("Run 'ortho run " + slug + " <path>' to call an endpoint"));
|
|
144
144
|
}
|
|
145
145
|
catch (error) {
|
|
146
146
|
spinner.stop();
|
package/dist/commands/auth.js
CHANGED
|
@@ -33,7 +33,7 @@ async function whoamiCommand() {
|
|
|
33
33
|
const key = (0, config_js_1.getApiKey)();
|
|
34
34
|
if (!key) {
|
|
35
35
|
console.log(chalk_1.default.yellow("Not authenticated"));
|
|
36
|
-
console.log(chalk_1.default.gray("Run '
|
|
36
|
+
console.log(chalk_1.default.gray("Run 'ortho login' to authenticate"));
|
|
37
37
|
return;
|
|
38
38
|
}
|
|
39
39
|
console.log(chalk_1.default.green("✓ Authenticated"));
|
package/dist/commands/search.js
CHANGED
|
@@ -36,8 +36,8 @@ async function searchCommand(query, options) {
|
|
|
36
36
|
}
|
|
37
37
|
console.log();
|
|
38
38
|
}
|
|
39
|
-
console.log(chalk_1.default.gray(`Run '
|
|
40
|
-
console.log(chalk_1.default.gray(`Run '
|
|
39
|
+
console.log(chalk_1.default.gray(`Run 'ortho api <slug>' to see all endpoints for an API`));
|
|
40
|
+
console.log(chalk_1.default.gray(`Run 'ortho run <api> <path>' to call an endpoint`));
|
|
41
41
|
}
|
|
42
42
|
catch (error) {
|
|
43
43
|
spinner.stop();
|
package/dist/commands/skills.js
CHANGED
|
@@ -63,7 +63,7 @@ const AGENT_DIRS = {
|
|
|
63
63
|
openclaw: path.join(os.homedir(), ".openclaw", "skills"),
|
|
64
64
|
};
|
|
65
65
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
66
|
-
//
|
|
66
|
+
// ortho skills list
|
|
67
67
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
68
68
|
async function skillsListCommand(options) {
|
|
69
69
|
const spinner = (0, ora_1.default)("Loading skills...").start();
|
|
@@ -93,8 +93,8 @@ async function skillsListCommand(options) {
|
|
|
93
93
|
console.log(chalk_1.default.gray(` Slug: ${skill.slug}`));
|
|
94
94
|
console.log();
|
|
95
95
|
}
|
|
96
|
-
console.log(chalk_1.default.gray("Run '
|
|
97
|
-
console.log(chalk_1.default.gray("Run '
|
|
96
|
+
console.log(chalk_1.default.gray("Run 'ortho skills show <slug>' to see skill details"));
|
|
97
|
+
console.log(chalk_1.default.gray("Run 'ortho skills add <slug>' to add a skill locally"));
|
|
98
98
|
}
|
|
99
99
|
catch (error) {
|
|
100
100
|
spinner.stop();
|
|
@@ -103,7 +103,7 @@ async function skillsListCommand(options) {
|
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
106
|
-
//
|
|
106
|
+
// ortho skills search <query>
|
|
107
107
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
108
108
|
async function skillsSearchCommand(query, options) {
|
|
109
109
|
const spinner = (0, ora_1.default)("Searching skills...").start();
|
|
@@ -128,7 +128,7 @@ async function skillsSearchCommand(query, options) {
|
|
|
128
128
|
console.log(chalk_1.default.gray(` Slug: ${skill.slug}`));
|
|
129
129
|
console.log();
|
|
130
130
|
}
|
|
131
|
-
console.log(chalk_1.default.gray("Run '
|
|
131
|
+
console.log(chalk_1.default.gray("Run 'ortho skills show <slug>' for full details"));
|
|
132
132
|
}
|
|
133
133
|
catch (error) {
|
|
134
134
|
spinner.stop();
|
|
@@ -137,7 +137,7 @@ async function skillsSearchCommand(query, options) {
|
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
139
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
140
|
-
//
|
|
140
|
+
// ortho skills show <slug>
|
|
141
141
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
142
142
|
async function skillsShowCommand(slug) {
|
|
143
143
|
const spinner = (0, ora_1.default)("Loading skill...").start();
|
|
@@ -191,7 +191,7 @@ async function skillsShowCommand(slug) {
|
|
|
191
191
|
console.log(chalk_1.default.bold("Install:"));
|
|
192
192
|
console.log(chalk_1.default.white(` ${skill.installCommand}`));
|
|
193
193
|
}
|
|
194
|
-
console.log(chalk_1.default.gray(`\nRun '
|
|
194
|
+
console.log(chalk_1.default.gray(`\nRun 'ortho skills add ${skill.slug}' to add locally`));
|
|
195
195
|
}
|
|
196
196
|
catch (error) {
|
|
197
197
|
spinner.stop();
|
|
@@ -200,7 +200,7 @@ async function skillsShowCommand(slug) {
|
|
|
200
200
|
}
|
|
201
201
|
}
|
|
202
202
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
203
|
-
//
|
|
203
|
+
// ortho skills create <githubRepo>
|
|
204
204
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
205
205
|
async function skillsCreateCommand(githubRepo, options) {
|
|
206
206
|
const spinner = (0, ora_1.default)("Creating skill from GitHub...").start();
|
|
@@ -242,7 +242,7 @@ async function skillsCreateCommand(githubRepo, options) {
|
|
|
242
242
|
console.log(chalk_1.default.gray(` ${data.skill.description}`));
|
|
243
243
|
}
|
|
244
244
|
console.log(chalk_1.default.bold("\nYour skill is on the platform but not yet verified."));
|
|
245
|
-
console.log(chalk_1.default.white(`To request verification: ${chalk_1.default.cyan(`
|
|
245
|
+
console.log(chalk_1.default.white(`To request verification: ${chalk_1.default.cyan(`ortho skills request-verification ${data.skill.slug}`)}`));
|
|
246
246
|
console.log(chalk_1.default.gray("Once verified, you can toggle discoverability anytime."));
|
|
247
247
|
}
|
|
248
248
|
catch (error) {
|
|
@@ -252,7 +252,7 @@ async function skillsCreateCommand(githubRepo, options) {
|
|
|
252
252
|
}
|
|
253
253
|
}
|
|
254
254
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
255
|
-
//
|
|
255
|
+
// ortho skills add <slug>
|
|
256
256
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
257
257
|
async function skillsInstallCommand(slug, options) {
|
|
258
258
|
const spinner = (0, ora_1.default)("Fetching skill...").start();
|
|
@@ -333,7 +333,7 @@ async function skillsInstallCommand(slug, options) {
|
|
|
333
333
|
}
|
|
334
334
|
}
|
|
335
335
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
336
|
-
//
|
|
336
|
+
// ortho skills init [name]
|
|
337
337
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
338
338
|
// Known binary/large file extensions to skip when reading local files
|
|
339
339
|
const SKIP_EXTENSIONS = new Set([
|
|
@@ -419,7 +419,7 @@ Describe the next step.
|
|
|
419
419
|
console.log(chalk_1.default.bold("\nNext steps:"));
|
|
420
420
|
console.log(chalk_1.default.white(" 1. Edit SKILL.md with your skill's instructions"));
|
|
421
421
|
console.log(chalk_1.default.white(" 2. Add any supporting files to scripts/, references/, or assets/"));
|
|
422
|
-
console.log(chalk_1.default.white(` 3. Submit to Orthogonal: ${chalk_1.default.cyan(`
|
|
422
|
+
console.log(chalk_1.default.white(` 3. Submit to Orthogonal: ${chalk_1.default.cyan(`ortho skills submit ${dirPath}`)}`));
|
|
423
423
|
}
|
|
424
424
|
catch (error) {
|
|
425
425
|
console.error(chalk_1.default.red(`Error: ${error instanceof Error ? error.message : "Unknown error"}`));
|
|
@@ -427,7 +427,7 @@ Describe the next step.
|
|
|
427
427
|
}
|
|
428
428
|
}
|
|
429
429
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
430
|
-
//
|
|
430
|
+
// ortho skills submit [path]
|
|
431
431
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
432
432
|
function readFilesRecursive(dirPath, basePath = "") {
|
|
433
433
|
const files = [];
|
|
@@ -508,7 +508,7 @@ async function skillsSubmitCommand(inputPath, options) {
|
|
|
508
508
|
if (!primaryFile) {
|
|
509
509
|
spinner.stop();
|
|
510
510
|
console.error(chalk_1.default.red("Error: No SKILL.md found in the root of the directory"));
|
|
511
|
-
console.log(chalk_1.default.gray("Run '
|
|
511
|
+
console.log(chalk_1.default.gray("Run 'ortho skills init' to create a skill template"));
|
|
512
512
|
process.exit(1);
|
|
513
513
|
}
|
|
514
514
|
// Parse frontmatter
|
|
@@ -565,7 +565,7 @@ async function skillsSubmitCommand(inputPath, options) {
|
|
|
565
565
|
console.log(chalk_1.default.gray(` ${data.skill.description.slice(0, 100)}`));
|
|
566
566
|
}
|
|
567
567
|
console.log(chalk_1.default.bold("\nYour skill is on the platform but not yet verified."));
|
|
568
|
-
console.log(chalk_1.default.white(`To request verification: ${chalk_1.default.cyan(`
|
|
568
|
+
console.log(chalk_1.default.white(`To request verification: ${chalk_1.default.cyan(`ortho skills request-verification ${data.skill.slug}`)}`));
|
|
569
569
|
console.log(chalk_1.default.gray("Once verified, you can toggle discoverability anytime."));
|
|
570
570
|
console.log(chalk_1.default.gray(`Dashboard: https://orthogonal.com/dashboard/skills`));
|
|
571
571
|
}
|
|
@@ -576,7 +576,7 @@ async function skillsSubmitCommand(inputPath, options) {
|
|
|
576
576
|
}
|
|
577
577
|
}
|
|
578
578
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
579
|
-
//
|
|
579
|
+
// ortho skills request-verification <slug>
|
|
580
580
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
581
581
|
async function skillsRequestVerificationCommand(slug) {
|
|
582
582
|
const spinner = (0, ora_1.default)("Submitting verification request...").start();
|
|
@@ -604,16 +604,16 @@ async function skillsRequestVerificationCommand(slug) {
|
|
|
604
604
|
}
|
|
605
605
|
}
|
|
606
606
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
607
|
-
//
|
|
607
|
+
// ortho skills publish <slug> (deprecated - redirects to request-verification)
|
|
608
608
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
609
609
|
async function skillsPublishCommand(slug, options) {
|
|
610
610
|
console.log(chalk_1.default.yellow("Note: Direct publishing has been replaced with a verification workflow."));
|
|
611
|
-
console.log(chalk_1.default.white(`\nTo request your skill to be verified, run:\n ${chalk_1.default.cyan(`
|
|
611
|
+
console.log(chalk_1.default.white(`\nTo request your skill to be verified, run:\n ${chalk_1.default.cyan(`ortho skills request-verification ${slug}`)}`));
|
|
612
612
|
console.log(chalk_1.default.white("Once verified, you can toggle discoverability from your dashboard."));
|
|
613
613
|
console.log(chalk_1.default.gray("\nOr manage from the dashboard: https://orthogonal.com/dashboard/skills"));
|
|
614
614
|
}
|
|
615
615
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
616
|
-
//
|
|
616
|
+
// ortho skills request <input>
|
|
617
617
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
618
618
|
async function skillsRequestCommand(input) {
|
|
619
619
|
const spinner = (0, ora_1.default)("Submitting skill request...").start();
|
package/dist/config.js
CHANGED
|
@@ -29,7 +29,7 @@ function clearApiKey() {
|
|
|
29
29
|
function requireApiKey() {
|
|
30
30
|
const key = getApiKey();
|
|
31
31
|
if (!key) {
|
|
32
|
-
console.error("Error: Not authenticated. Run '
|
|
32
|
+
console.error("Error: Not authenticated. Run 'ortho login' first or set ORTHOGONAL_API_KEY.");
|
|
33
33
|
process.exit(1);
|
|
34
34
|
}
|
|
35
35
|
return key;
|
package/dist/index.js
CHANGED
|
@@ -220,7 +220,7 @@ skillsGroup
|
|
|
220
220
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
221
221
|
program
|
|
222
222
|
.command("search <query>")
|
|
223
|
-
.description("Search for APIs (alias for '
|
|
223
|
+
.description("Search for APIs (alias for 'ortho api search')")
|
|
224
224
|
.option("-l, --limit <number>", "Max results", "10")
|
|
225
225
|
.action(asyncAction(async (query, options) => {
|
|
226
226
|
(0, analytics_js_1.trackEvent)("search", { query });
|
|
@@ -228,7 +228,7 @@ program
|
|
|
228
228
|
}));
|
|
229
229
|
program
|
|
230
230
|
.command("run <api> <path>")
|
|
231
|
-
.description("Call an API endpoint (alias for '
|
|
231
|
+
.description("Call an API endpoint (alias for 'ortho api run')")
|
|
232
232
|
.option("-X, --method <method>", "HTTP method", "GET")
|
|
233
233
|
.option("-q, --query <params...>", "Query params (key=value)")
|
|
234
234
|
.option("-b, --body <json>", "Request body JSON")
|
|
@@ -240,7 +240,7 @@ program
|
|
|
240
240
|
}));
|
|
241
241
|
program
|
|
242
242
|
.command("code <api> <path>")
|
|
243
|
-
.description("Generate integration code (alias for '
|
|
243
|
+
.description("Generate integration code (alias for 'ortho api code')")
|
|
244
244
|
.option("-l, --lang <language>", "Language: typescript, python, curl", "typescript")
|
|
245
245
|
.action(asyncAction(async (api, path, options) => {
|
|
246
246
|
(0, analytics_js_1.trackEvent)("code", { api, path });
|