@root-signals/scorable-cli 0.4.1 → 0.5.0

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 function registerExportYamlCommand(evaluator: Command): void;
3
+ //# sourceMappingURL=export-yaml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export-yaml.d.ts","sourceRoot":"","sources":["../../../src/commands/evaluator/export-yaml.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAwBlE"}
@@ -0,0 +1,31 @@
1
+ import { writeFileSync } from "node:fs";
2
+ import ora from "ora";
3
+ import { requireApiKey, getSdkClient } from "../../auth.js";
4
+ import { printSuccess, handleSdkError } from "../../output.js";
5
+ export function registerExportYamlCommand(evaluator) {
6
+ evaluator
7
+ .command("export-yaml")
8
+ .description("Export an evaluator as a YAML file")
9
+ .argument("<id>", "Evaluator ID")
10
+ .option("--output <file>", "Write YAML to this file instead of stdout")
11
+ .action(async (id, opts) => {
12
+ const spinner = ora("Exporting…").start();
13
+ try {
14
+ const apiKey = await requireApiKey();
15
+ const client = getSdkClient(apiKey);
16
+ const yaml = await client.evaluators.exportYaml(id);
17
+ spinner.stop();
18
+ if (opts.output) {
19
+ writeFileSync(opts.output, yaml, "utf8");
20
+ printSuccess(`Evaluator exported to ${opts.output}`);
21
+ }
22
+ else {
23
+ process.stdout.write(yaml);
24
+ }
25
+ }
26
+ catch (e) {
27
+ spinner.stop();
28
+ handleSdkError(e);
29
+ }
30
+ });
31
+ }
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare function registerImportYamlCommand(evaluator: Command): void;
3
+ //# sourceMappingURL=import-yaml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-yaml.d.ts","sourceRoot":"","sources":["../../../src/commands/evaluator/import-yaml.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CA2ClE"}
@@ -0,0 +1,49 @@
1
+ import { readFileSync } from "node:fs";
2
+ import ora from "ora";
3
+ import { requireApiKey, getBaseUrl } from "../../auth.js";
4
+ import { printSuccess, printError, printJson, handleSdkError } from "../../output.js";
5
+ export function registerImportYamlCommand(evaluator) {
6
+ evaluator
7
+ .command("import-yaml")
8
+ .description("Import an evaluator from a YAML file")
9
+ .requiredOption("--file <path>", "Path to the YAML file to import")
10
+ .option("--overwrite", "Overwrite if an evaluator with the same name already exists")
11
+ .action(async (opts) => {
12
+ let yamlContent;
13
+ try {
14
+ yamlContent = readFileSync(opts.file, "utf8");
15
+ }
16
+ catch {
17
+ printError(`Could not read file: ${opts.file}`);
18
+ return;
19
+ }
20
+ const spinner = ora("Importing…").start();
21
+ try {
22
+ const apiKey = await requireApiKey();
23
+ const baseUrl = getBaseUrl();
24
+ const response = await fetch(`${baseUrl}/v1/evaluators/import-yaml/`, {
25
+ method: "POST",
26
+ headers: {
27
+ Authorization: `Api-Key ${apiKey}`,
28
+ "Content-Type": "application/json",
29
+ },
30
+ body: JSON.stringify({ yaml: yamlContent, overwrite: opts.overwrite ?? false }),
31
+ });
32
+ if (!response.ok) {
33
+ spinner.stop();
34
+ const text = await response.text();
35
+ printError(`Import failed (${response.status}): ${text}`);
36
+ return;
37
+ }
38
+ const result = (await response.json());
39
+ spinner.stop();
40
+ const name = typeof result["name"] === "string" ? result["name"] : "evaluator";
41
+ printSuccess(`Evaluator "${name}" imported successfully!`);
42
+ printJson(result);
43
+ }
44
+ catch (e) {
45
+ spinner.stop();
46
+ handleSdkError(e);
47
+ }
48
+ });
49
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/evaluator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAahE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/evaluator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAehE"}
@@ -7,6 +7,8 @@ import { registerDeleteCommand } from "./delete.js";
7
7
  import { registerExecuteCommand } from "./execute.js";
8
8
  import { registerExecuteByNameCommand } from "./execute-by-name.js";
9
9
  import { registerDuplicateCommand } from "./duplicate.js";
10
+ import { registerExportYamlCommand } from "./export-yaml.js";
11
+ import { registerImportYamlCommand } from "./import-yaml.js";
10
12
  export function registerEvaluatorCommands(program) {
11
13
  const evaluator = new Command("evaluator").description("Evaluator management commands");
12
14
  registerListCommand(evaluator);
@@ -17,5 +19,7 @@ export function registerEvaluatorCommands(program) {
17
19
  registerExecuteCommand(evaluator);
18
20
  registerExecuteByNameCommand(evaluator);
19
21
  registerDuplicateCommand(evaluator);
22
+ registerExportYamlCommand(evaluator);
23
+ registerImportYamlCommand(evaluator);
20
24
  program.addCommand(evaluator);
21
25
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@root-signals/scorable-cli",
3
- "version": "0.4.1",
3
+ "version": "0.5.0",
4
4
  "description": "CLI for Scorable",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Scorable",
@@ -31,7 +31,7 @@
31
31
  },
32
32
  "dependencies": {
33
33
  "@inquirer/prompts": "^8.3.2",
34
- "@root-signals/scorable": "^0.3.1",
34
+ "@root-signals/scorable": "^0.4.0",
35
35
  "chalk": "^5.6.2",
36
36
  "cli-table3": "^0.6.5",
37
37
  "commander": "^14.0.3",