@arizeai/phoenix-cli 0.7.4 → 0.9.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.
- package/README.md +23 -0
- package/build/banner.d.ts +5 -0
- package/build/banner.d.ts.map +1 -0
- package/build/banner.js +27 -0
- package/build/banner.js.map +1 -0
- package/build/cli.d.ts.map +1 -1
- package/build/cli.js +8 -6
- package/build/cli.js.map +1 -1
- package/build/commands/annotationConfig.d.ts +6 -0
- package/build/commands/annotationConfig.d.ts.map +1 -0
- package/build/commands/annotationConfig.js +96 -0
- package/build/commands/annotationConfig.js.map +1 -0
- package/build/commands/api.d.ts.map +1 -1
- package/build/commands/api.js +9 -5
- package/build/commands/api.js.map +1 -1
- package/build/commands/auth.d.ts.map +1 -1
- package/build/commands/auth.js +9 -13
- package/build/commands/auth.js.map +1 -1
- package/build/commands/dataset.d.ts.map +1 -1
- package/build/commands/dataset.js +3 -2
- package/build/commands/dataset.js.map +1 -1
- package/build/commands/datasets.d.ts.map +1 -1
- package/build/commands/datasets.js +3 -2
- package/build/commands/datasets.js.map +1 -1
- package/build/commands/docs.d.ts +42 -0
- package/build/commands/docs.d.ts.map +1 -0
- package/build/commands/docs.js +337 -0
- package/build/commands/docs.js.map +1 -0
- package/build/commands/experiment.d.ts.map +1 -1
- package/build/commands/experiment.js +3 -2
- package/build/commands/experiment.js.map +1 -1
- package/build/commands/experiments.d.ts.map +1 -1
- package/build/commands/experiments.js +4 -3
- package/build/commands/experiments.js.map +1 -1
- package/build/commands/formatAnnotationConfigs.d.ts +16 -0
- package/build/commands/formatAnnotationConfigs.d.ts.map +1 -0
- package/build/commands/formatAnnotationConfigs.js +24 -0
- package/build/commands/formatAnnotationConfigs.js.map +1 -0
- package/build/commands/formatDataset.d.ts.map +1 -1
- package/build/commands/formatDataset.js +11 -29
- package/build/commands/formatDataset.js.map +1 -1
- package/build/commands/formatDatasets.d.ts.map +1 -1
- package/build/commands/formatDatasets.js +10 -20
- package/build/commands/formatDatasets.js.map +1 -1
- package/build/commands/formatExperiments.d.ts.map +1 -1
- package/build/commands/formatExperiments.js +12 -28
- package/build/commands/formatExperiments.js.map +1 -1
- package/build/commands/formatProjects.d.ts.map +1 -1
- package/build/commands/formatProjects.js +7 -11
- package/build/commands/formatProjects.js.map +1 -1
- package/build/commands/formatPrompts.d.ts.map +1 -1
- package/build/commands/formatPrompts.js +7 -20
- package/build/commands/formatPrompts.js.map +1 -1
- package/build/commands/formatSessions.d.ts.map +1 -1
- package/build/commands/formatSessions.js +10 -14
- package/build/commands/formatSessions.js.map +1 -1
- package/build/commands/formatTable.d.ts +46 -0
- package/build/commands/formatTable.d.ts.map +1 -0
- package/build/commands/formatTable.js +107 -0
- package/build/commands/formatTable.js.map +1 -0
- package/build/commands/index.d.ts +2 -0
- package/build/commands/index.d.ts.map +1 -1
- package/build/commands/index.js +2 -0
- package/build/commands/index.js.map +1 -1
- package/build/commands/projects.d.ts.map +1 -1
- package/build/commands/projects.js +3 -2
- package/build/commands/projects.js.map +1 -1
- package/build/commands/prompt.d.ts.map +1 -1
- package/build/commands/prompt.js +3 -2
- package/build/commands/prompt.js.map +1 -1
- package/build/commands/prompts.d.ts.map +1 -1
- package/build/commands/prompts.js +3 -2
- package/build/commands/prompts.js.map +1 -1
- package/build/commands/session.d.ts.map +1 -1
- package/build/commands/session.js +3 -2
- package/build/commands/session.js.map +1 -1
- package/build/commands/sessions.d.ts.map +1 -1
- package/build/commands/sessions.js +4 -3
- package/build/commands/sessions.js.map +1 -1
- package/build/commands/trace.d.ts.map +1 -1
- package/build/commands/trace.js +5 -4
- package/build/commands/trace.js.map +1 -1
- package/build/commands/traces.d.ts.map +1 -1
- package/build/commands/traces.js +4 -3
- package/build/commands/traces.js.map +1 -1
- package/build/config.d.ts +4 -0
- package/build/config.d.ts.map +1 -1
- package/build/config.js +7 -1
- package/build/config.js.map +1 -1
- package/build/exitCodes.d.ts +40 -0
- package/build/exitCodes.d.ts.map +1 -0
- package/build/exitCodes.js +46 -0
- package/build/exitCodes.js.map +1 -0
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -256,6 +256,29 @@ $ px api graphql '{ projectCount datasetCount promptCount evaluatorCount }'
|
|
|
256
256
|
|
|
257
257
|
---
|
|
258
258
|
|
|
259
|
+
### `px docs fetch`
|
|
260
|
+
|
|
261
|
+
Download Phoenix documentation markdown files for use by coding agents. Fetches pages from the [llms.txt](https://arize.com/docs/phoenix/llms.txt) index, filtered by workflow category, and writes them to a local directory with auto-generated index files.
|
|
262
|
+
|
|
263
|
+
```bash
|
|
264
|
+
px docs fetch # fetch default workflows
|
|
265
|
+
px docs fetch --workflow tracing # fetch only tracing docs
|
|
266
|
+
px docs fetch --workflow tracing --workflow evaluation
|
|
267
|
+
px docs fetch --dry-run # preview without downloading
|
|
268
|
+
px docs fetch --refresh # clear output dir and re-download
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
| Option | Description | Default |
|
|
272
|
+
| -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
|
|
273
|
+
| `--workflow <name>` | Filter by workflow category (repeatable). Values: `tracing`, `evaluation`, `datasets`, `prompts`, `integrations`, `sdk`, `self-hosting`, `all` | `tracing`, `evaluation`, `datasets`, `prompts`, `integrations` |
|
|
274
|
+
| `--output-dir <dir>` | Output directory for downloaded docs | `.px/docs` |
|
|
275
|
+
| `--dry-run` | Discover links only; do not write files | `false` |
|
|
276
|
+
| `--refresh` | Clear output directory before downloading | `false` |
|
|
277
|
+
| `--strict` | Fail command if any page download fails | `false` |
|
|
278
|
+
| `--workers <n>` | Number of concurrent download workers | `10` |
|
|
279
|
+
|
|
280
|
+
---
|
|
281
|
+
|
|
259
282
|
## JSON output shape
|
|
260
283
|
|
|
261
284
|
All commands output JSON. Use `--format raw` for compact JSON and `--no-progress` to suppress stderr when piping:
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../src/banner.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAiBlC"}
|
package/build/banner.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { loadConfigFromEnvironment } from "./config.js";
|
|
2
|
+
import { writeOutput } from "./io.js";
|
|
3
|
+
const LOGO_LINES = [
|
|
4
|
+
"░█▀█░█░█░█▀█░█▀▀░█▀█░▀█▀░█░█",
|
|
5
|
+
"░█▀▀░█▀█░█░█░█▀▀░█░█░░█░░▄▀▄",
|
|
6
|
+
"░▀░░░▀░▀░▀▀▀░▀▀▀░▀░▀░▀▀▀░▀░▀",
|
|
7
|
+
];
|
|
8
|
+
/**
|
|
9
|
+
* Print the Phoenix CLI banner with connection info aligned to the right of the logo.
|
|
10
|
+
*/
|
|
11
|
+
export function printBanner() {
|
|
12
|
+
const config = loadConfigFromEnvironment();
|
|
13
|
+
const serverUrl = config.endpoint ?? "not set";
|
|
14
|
+
const project = config.project ?? "not set";
|
|
15
|
+
const infoLines = [
|
|
16
|
+
` Server: ${serverUrl}`,
|
|
17
|
+
` Project: ${project}`,
|
|
18
|
+
...(config.apiKey ? [` API Key: set`] : []),
|
|
19
|
+
];
|
|
20
|
+
const output = LOGO_LINES.map((logo, index) => {
|
|
21
|
+
const info = infoLines[index];
|
|
22
|
+
return info ? `${logo}${info}` : logo;
|
|
23
|
+
});
|
|
24
|
+
writeOutput({ message: output.join("\n") });
|
|
25
|
+
writeOutput({ message: "" });
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=banner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"banner.js","sourceRoot":"","sources":["../src/banner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAEnC,MAAM,UAAU,GAAG;IACjB,8BAA8B;IAC9B,8BAA8B;IAC9B,8BAA8B;CAC/B,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,MAAM,MAAM,GAAG,yBAAyB,EAAE,CAAC;IAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,IAAI,SAAS,CAAC;IAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC;IAC5C,MAAM,SAAS,GAAG;QAChB,cAAc,SAAS,EAAE;QACzB,cAAc,OAAO,EAAE;QACvB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7C,CAAC;IAEF,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC5C,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,WAAW,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5C,WAAW,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;AAC/B,CAAC"}
|
package/build/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAwBA,wBAAgB,IAAI,SA8BnB"}
|
package/build/cli.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { Command } from "commander";
|
|
3
|
-
import {
|
|
3
|
+
import { printBanner } from "./banner.js";
|
|
4
|
+
import { createAnnotationConfigCommand, createApiCommand, createAuthCommand, createDatasetCommand, createDatasetsCommand, createDocsCommand, createExperimentCommand, createExperimentsCommand, createProjectsCommand, createPromptCommand, createPromptsCommand, createSessionCommand, createSessionsCommand, createTraceCommand, createTracesCommand, } from "./commands/index.js";
|
|
4
5
|
// Phoenix CLI Main Logic
|
|
5
6
|
export function main() {
|
|
6
7
|
const program = new Command();
|
|
7
|
-
program
|
|
8
|
-
|
|
9
|
-
.description("Phoenix CLI - AI observability from the command line")
|
|
10
|
-
.version("0.0.4");
|
|
8
|
+
program.name("px");
|
|
9
|
+
program.enablePositionalOptions();
|
|
11
10
|
// Register commands
|
|
11
|
+
program.addCommand(createAnnotationConfigCommand());
|
|
12
12
|
program.addCommand(createAuthCommand());
|
|
13
13
|
program.addCommand(createProjectsCommand());
|
|
14
14
|
program.addCommand(createTracesCommand());
|
|
@@ -22,8 +22,10 @@ export function main() {
|
|
|
22
22
|
program.addCommand(createPromptsCommand());
|
|
23
23
|
program.addCommand(createPromptCommand());
|
|
24
24
|
program.addCommand(createApiCommand());
|
|
25
|
-
|
|
25
|
+
program.addCommand(createDocsCommand());
|
|
26
|
+
// Show banner and help if no command provided
|
|
26
27
|
if (process.argv.length === 2) {
|
|
28
|
+
printBanner();
|
|
27
29
|
program.help();
|
|
28
30
|
}
|
|
29
31
|
program.parse();
|
package/build/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,yBAAyB;AACzB,MAAM,UAAU,IAAI;IAClB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EACL,6BAA6B,EAC7B,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,yBAAyB;AACzB,MAAM,UAAU,IAAI;IAClB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAElC,oBAAoB;IACpB,OAAO,CAAC,UAAU,CAAC,6BAA6B,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC;IAC9C,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACvC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAExC,8CAA8C;IAC9C,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,WAAW,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC;IAED,OAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"annotationConfig.d.ts","sourceRoot":"","sources":["../../src/commands/annotationConfig.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgHpC;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,OAAO,CAyBvD"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { createPhoenixClient } from "../client.js";
|
|
3
|
+
import { getConfigErrorMessage, resolveConfig } from "../config.js";
|
|
4
|
+
import { ExitCode, getExitCodeForError } from "../exitCodes.js";
|
|
5
|
+
import { writeError, writeOutput, writeProgress } from "../io.js";
|
|
6
|
+
import { formatAnnotationConfigsOutput, } from "./formatAnnotationConfigs.js";
|
|
7
|
+
/**
|
|
8
|
+
* Fetch all annotation configs from Phoenix
|
|
9
|
+
*/
|
|
10
|
+
async function fetchAnnotationConfigs(client, options = {}) {
|
|
11
|
+
const allConfigs = [];
|
|
12
|
+
let cursor;
|
|
13
|
+
const pageLimit = options.limit || 100;
|
|
14
|
+
do {
|
|
15
|
+
const response = await client.GET("/v1/annotation_configs", {
|
|
16
|
+
params: {
|
|
17
|
+
query: {
|
|
18
|
+
cursor,
|
|
19
|
+
limit: pageLimit,
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
if (response.error || !response.data) {
|
|
24
|
+
throw new Error(`Failed to fetch annotation configs: ${response.error}`);
|
|
25
|
+
}
|
|
26
|
+
allConfigs.push(...response.data.data);
|
|
27
|
+
cursor = response.data.next_cursor || undefined;
|
|
28
|
+
// If we've fetched enough for the requested limit, stop
|
|
29
|
+
if (options.limit && allConfigs.length >= options.limit) {
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
32
|
+
} while (cursor);
|
|
33
|
+
return allConfigs;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Handler for `annotation-config list`
|
|
37
|
+
*/
|
|
38
|
+
async function annotationConfigListHandler(options) {
|
|
39
|
+
try {
|
|
40
|
+
const config = resolveConfig({
|
|
41
|
+
cliOptions: {
|
|
42
|
+
endpoint: options.endpoint,
|
|
43
|
+
apiKey: options.apiKey,
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
if (!config.endpoint) {
|
|
47
|
+
const errors = [
|
|
48
|
+
"Phoenix endpoint not configured. Set PHOENIX_HOST environment variable or use --endpoint flag.",
|
|
49
|
+
];
|
|
50
|
+
writeError({ message: getConfigErrorMessage({ errors }) });
|
|
51
|
+
process.exit(ExitCode.INVALID_ARGUMENT);
|
|
52
|
+
}
|
|
53
|
+
const client = createPhoenixClient({ config });
|
|
54
|
+
writeProgress({
|
|
55
|
+
message: "Fetching annotation configs...",
|
|
56
|
+
noProgress: !options.progress,
|
|
57
|
+
});
|
|
58
|
+
const configs = await fetchAnnotationConfigs(client, {
|
|
59
|
+
limit: options.limit,
|
|
60
|
+
});
|
|
61
|
+
writeProgress({
|
|
62
|
+
message: `Found ${configs.length} annotation config(s)`,
|
|
63
|
+
noProgress: !options.progress,
|
|
64
|
+
});
|
|
65
|
+
const output = formatAnnotationConfigsOutput({
|
|
66
|
+
configs,
|
|
67
|
+
format: options.format,
|
|
68
|
+
});
|
|
69
|
+
writeOutput({ message: output });
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
writeError({
|
|
73
|
+
message: `Error fetching annotation configs: ${error instanceof Error ? error.message : String(error)}`,
|
|
74
|
+
});
|
|
75
|
+
process.exit(getExitCodeForError(error));
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Create the `annotation-config` command with subcommands
|
|
80
|
+
*/
|
|
81
|
+
export function createAnnotationConfigCommand() {
|
|
82
|
+
const command = new Command("annotation-config");
|
|
83
|
+
command.description("Manage Phoenix annotation configurations");
|
|
84
|
+
const listCommand = new Command("list");
|
|
85
|
+
listCommand
|
|
86
|
+
.description("List all annotation configurations")
|
|
87
|
+
.option("--endpoint <url>", "Phoenix API endpoint")
|
|
88
|
+
.option("--api-key <key>", "Phoenix API key for authentication")
|
|
89
|
+
.option("--format <format>", "Output format: pretty, json, or raw", "pretty")
|
|
90
|
+
.option("--no-progress", "Disable progress indicators")
|
|
91
|
+
.option("--limit <number>", "Maximum number of annotation configs to fetch", parseInt)
|
|
92
|
+
.action(annotationConfigListHandler);
|
|
93
|
+
command.addCommand(listCommand);
|
|
94
|
+
return command;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=annotationConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"annotationConfig.js","sourceRoot":"","sources":["../../src/commands/annotationConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/commands/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/commands/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAGhE;AAkHD,wBAAgB,gBAAgB,IAAI,OAAO,CAK1C"}
|
package/build/commands/api.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
2
|
import { getConfigErrorMessage, resolveConfig } from "../config.js";
|
|
3
|
+
import { ExitCode, getExitCodeForError } from "../exitCodes.js";
|
|
3
4
|
import { writeError, writeOutput } from "../io.js";
|
|
4
5
|
/**
|
|
5
6
|
* Returns true if the query string is a GraphQL mutation or subscription.
|
|
@@ -16,7 +17,7 @@ async function apiGraphqlHandler(query, options) {
|
|
|
16
17
|
writeError({
|
|
17
18
|
message: "Error: Only queries are permitted. Mutations and subscriptions are not allowed.",
|
|
18
19
|
});
|
|
19
|
-
process.exit(
|
|
20
|
+
process.exit(ExitCode.INVALID_ARGUMENT);
|
|
20
21
|
}
|
|
21
22
|
// 2. Resolve config (endpoint only — no project required)
|
|
22
23
|
const config = resolveConfig({
|
|
@@ -30,7 +31,7 @@ async function apiGraphqlHandler(query, options) {
|
|
|
30
31
|
],
|
|
31
32
|
}),
|
|
32
33
|
});
|
|
33
|
-
process.exit(
|
|
34
|
+
process.exit(ExitCode.INVALID_ARGUMENT);
|
|
34
35
|
}
|
|
35
36
|
// 3. Build URL and auth headers
|
|
36
37
|
const graphqlUrl = `${config.endpoint.replace(/\/$/, "")}/graphql`;
|
|
@@ -51,7 +52,10 @@ async function apiGraphqlHandler(query, options) {
|
|
|
51
52
|
writeError({
|
|
52
53
|
message: `Error: HTTP ${response.status} ${response.statusText} from ${graphqlUrl}`,
|
|
53
54
|
});
|
|
54
|
-
|
|
55
|
+
if (response.status === 401 || response.status === 403) {
|
|
56
|
+
process.exit(ExitCode.AUTH_REQUIRED);
|
|
57
|
+
}
|
|
58
|
+
process.exit(ExitCode.FAILURE);
|
|
55
59
|
}
|
|
56
60
|
// 5. Parse and output response
|
|
57
61
|
const json = (await response.json());
|
|
@@ -62,14 +66,14 @@ async function apiGraphqlHandler(query, options) {
|
|
|
62
66
|
// Always write full response to stdout (2-space indent, pipeable)
|
|
63
67
|
writeOutput({ message: JSON.stringify(json, null, 2) });
|
|
64
68
|
if (json.errors && json.errors.length > 0 && json.data == null) {
|
|
65
|
-
process.exit(
|
|
69
|
+
process.exit(ExitCode.FAILURE);
|
|
66
70
|
}
|
|
67
71
|
}
|
|
68
72
|
catch (error) {
|
|
69
73
|
writeError({
|
|
70
74
|
message: `Error: ${error instanceof Error ? error.message : String(error)}`,
|
|
71
75
|
});
|
|
72
|
-
process.exit(
|
|
76
|
+
process.exit(getExitCodeForError(error));
|
|
73
77
|
}
|
|
74
78
|
}
|
|
75
79
|
function createApiGraphqlCommand() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/commands/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEhD;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE,KAAK,EAAqB;IACrD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC/C,OAAO,oCAAoC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7D,CAAC;AAOD,KAAK,UAAU,iBAAiB,CAC9B,KAAa,EACb,OAA0B;IAE1B,IAAI,CAAC;QACH,wCAAwC;QACxC,IAAI,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YAC1B,UAAU,CAAC;gBACT,OAAO,EACL,iFAAiF;aACpF,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/commands/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKpD;AA8CD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAS3C"}
|
package/build/commands/auth.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
2
|
import { resolveConfig } from "../config.js";
|
|
3
|
+
import { ExitCode } from "../exitCodes.js";
|
|
3
4
|
import { writeError, writeOutput } from "../io.js";
|
|
5
|
+
import { formatTable } from "./formatTable.js";
|
|
4
6
|
/**
|
|
5
7
|
* Obscure an API key for display using asterisks.
|
|
6
8
|
* Shows a fixed number of asterisks regardless of key length for security.
|
|
@@ -27,20 +29,14 @@ async function authStatusHandler(options) {
|
|
|
27
29
|
writeError({
|
|
28
30
|
message: "Configuration Error:\n - Phoenix endpoint not configured",
|
|
29
31
|
});
|
|
30
|
-
process.exit(
|
|
32
|
+
process.exit(ExitCode.INVALID_ARGUMENT);
|
|
31
33
|
}
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
lines.push(` - API Key: ${obscureApiKey(config.apiKey)}`);
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
lines.push(" - No API key configured (anonymous access)");
|
|
42
|
-
}
|
|
43
|
-
writeOutput({ message: lines.join("\n") });
|
|
34
|
+
const row = {
|
|
35
|
+
endpoint: config.endpoint,
|
|
36
|
+
status: config.apiKey ? "authenticated" : "anonymous",
|
|
37
|
+
"api key": config.apiKey ? obscureApiKey(config.apiKey) : "not set",
|
|
38
|
+
};
|
|
39
|
+
writeOutput({ message: formatTable([row]) });
|
|
44
40
|
}
|
|
45
41
|
/**
|
|
46
42
|
* Create the auth status subcommand
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAO5C;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,sCAAsC,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAAC,OAA0B;IACzD,wBAAwB;IACxB,MAAM,MAAM,GAAG,aAAa,CAAC;QAC3B,UAAU,EAAE;YACV,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB;KACF,CAAC,CAAC;IAEH,kCAAkC;IAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,UAAU,CAAC;YACT,OAAO,EAAE,2DAA2D;SACrE,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,GAAG,GAA2B;QAClC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW;QACrD,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;KACpE,CAAC;IAEF,WAAW,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB;IAC9B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEtC,OAAO;SACJ,WAAW,CAAC,4CAA4C,CAAC;SACzD,MAAM,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;SAClD,MAAM,CAAC,iBAAiB,EAAE,oCAAoC,CAAC;SAC/D,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAE7B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEpC,OAAO,CAAC,WAAW,CAAC,+BAA+B,CAAC,CAAC;IAErD,kBAAkB;IAClB,OAAO,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC;IAE9C,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataset.d.ts","sourceRoot":"","sources":["../../src/commands/dataset.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"dataset.d.ts","sourceRoot":"","sources":["../../src/commands/dataset.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsLpC;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAyB9C"}
|
|
@@ -2,6 +2,7 @@ import * as fs from "fs";
|
|
|
2
2
|
import { Command } from "commander";
|
|
3
3
|
import { createPhoenixClient, resolveDatasetId } from "../client.js";
|
|
4
4
|
import { getConfigErrorMessage, resolveConfig } from "../config.js";
|
|
5
|
+
import { ExitCode, getExitCodeForError } from "../exitCodes.js";
|
|
5
6
|
import { writeError, writeOutput, writeProgress } from "../io.js";
|
|
6
7
|
import { formatDatasetExamplesOutput, } from "./formatDataset.js";
|
|
7
8
|
/**
|
|
@@ -65,7 +66,7 @@ async function datasetHandler(datasetIdentifier, options) {
|
|
|
65
66
|
"Phoenix endpoint not configured. Set PHOENIX_HOST environment variable or use --endpoint flag.",
|
|
66
67
|
];
|
|
67
68
|
writeError({ message: getConfigErrorMessage({ errors }) });
|
|
68
|
-
process.exit(
|
|
69
|
+
process.exit(ExitCode.INVALID_ARGUMENT);
|
|
69
70
|
}
|
|
70
71
|
// Create client
|
|
71
72
|
const client = createPhoenixClient({ config });
|
|
@@ -123,7 +124,7 @@ async function datasetHandler(datasetIdentifier, options) {
|
|
|
123
124
|
writeError({
|
|
124
125
|
message: `Error fetching dataset: ${error instanceof Error ? error.message : String(error)}`,
|
|
125
126
|
});
|
|
126
|
-
process.exit(
|
|
127
|
+
process.exit(getExitCodeForError(error));
|
|
127
128
|
}
|
|
128
129
|
}
|
|
129
130
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataset.js","sourceRoot":"","sources":["../../src/commands/dataset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC/D,OAAO,EAEL,2BAA2B,GAE5B,MAAM,iBAAiB,CAAC;AAYzB;;GAEG;AACH,KAAK,UAAU,oBAAoB,CACjC,MAAqB,EACrB,SAAiB,EACjB,UAGI,EAAE;IAEN,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,4BAA4B,EAAE;QAC9D,MAAM,EAAE;YACN,IAAI,EAAE;gBACJ,EAAE,EAAE,SAAS;aACd;YACD,KAAK,EAAE;gBACL,UAAU,EAAE,OAAO,CAAC,SAAS;gBAC7B,KAAK,EAAE,OAAO,CAAC,MAAM;aACtB;SACF;KACF,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,qCAAqC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,gBAAgB,CAC7B,MAAqB,EACrB,SAAiB;IAEjB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE;YACrD,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,EAAE,EAAE,SAAS;iBACd;aACF;SACF,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAC3B,iBAAyB,EACzB,OAAuB;IAEvB,IAAI,CAAC;QACH,MAAM,mBAAmB,GACvB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;QAE1D,wBAAwB;QACxB,MAAM,MAAM,GAAG,aAAa,CAAC;YAC3B,UAAU,EAAE;gBACV,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB;SACF,CAAC,CAAC;QAEH,iCAAiC;QACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG;gBACb,gGAAgG;aACjG,CAAC;YACF,UAAU,CAAC,EAAE,OAAO,EAAE,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"dataset.js","sourceRoot":"","sources":["../../src/commands/dataset.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datasets.d.ts","sourceRoot":"","sources":["../../src/commands/datasets.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"datasets.d.ts","sourceRoot":"","sources":["../../src/commands/datasets.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6GpC;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAiB/C"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
2
|
import { createPhoenixClient } from "../client.js";
|
|
3
3
|
import { getConfigErrorMessage, resolveConfig } from "../config.js";
|
|
4
|
+
import { ExitCode, getExitCodeForError } from "../exitCodes.js";
|
|
4
5
|
import { writeError, writeOutput, writeProgress } from "../io.js";
|
|
5
6
|
import { formatDatasetsOutput } from "./formatDatasets.js";
|
|
6
7
|
/**
|
|
@@ -49,7 +50,7 @@ async function datasetsHandler(options) {
|
|
|
49
50
|
"Phoenix endpoint not configured. Set PHOENIX_HOST environment variable or use --endpoint flag.",
|
|
50
51
|
];
|
|
51
52
|
writeError({ message: getConfigErrorMessage({ errors }) });
|
|
52
|
-
process.exit(
|
|
53
|
+
process.exit(ExitCode.INVALID_ARGUMENT);
|
|
53
54
|
}
|
|
54
55
|
// Create client
|
|
55
56
|
const client = createPhoenixClient({ config });
|
|
@@ -76,7 +77,7 @@ async function datasetsHandler(options) {
|
|
|
76
77
|
writeError({
|
|
77
78
|
message: `Error fetching datasets: ${error instanceof Error ? error.message : String(error)}`,
|
|
78
79
|
});
|
|
79
|
-
process.exit(
|
|
80
|
+
process.exit(getExitCodeForError(error));
|
|
80
81
|
}
|
|
81
82
|
}
|
|
82
83
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datasets.js","sourceRoot":"","sources":["../../src/commands/datasets.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAqB,MAAM,kBAAkB,CAAC;AAY3E;;GAEG;AACH,KAAK,UAAU,aAAa,CAC1B,MAAqB,EACrB,UAA8B,EAAE;IAEhC,MAAM,WAAW,GAAc,EAAE,CAAC;IAClC,IAAI,MAA0B,CAAC;IAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC;IAEvC,GAAG,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE;YAChD,MAAM,EAAE;gBACN,KAAK,EAAE;oBACL,MAAM;oBACN,KAAK,EAAE,SAAS;iBACjB;aACF;SACF,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,WAAW,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC;QAEhD,wDAAwD;QACxD,IAAI,OAAO,CAAC,KAAK,IAAI,WAAW,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACzD,MAAM;QACR,CAAC;IACH,CAAC,QAAQ,MAAM,EAAE;IAEjB,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe,CAAC,OAAwB;IACrD,IAAI,CAAC;QACH,wBAAwB;QACxB,MAAM,MAAM,GAAG,aAAa,CAAC;YAC3B,UAAU,EAAE;gBACV,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB;SACF,CAAC,CAAC;QAEH,iCAAiC;QACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG;gBACb,gGAAgG;aACjG,CAAC;YACF,UAAU,CAAC,EAAE,OAAO,EAAE,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"datasets.js","sourceRoot":"","sources":["../../src/commands/datasets.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
export interface DocEntry {
|
|
3
|
+
title: string;
|
|
4
|
+
url: string;
|
|
5
|
+
description: string;
|
|
6
|
+
section: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Parse an llms.txt file into doc entries.
|
|
10
|
+
*
|
|
11
|
+
* The real Phoenix llms.txt format uses:
|
|
12
|
+
* ## Section — top-level sections
|
|
13
|
+
* ### Subsection — subsections (inherit parent ## section)
|
|
14
|
+
* - Title: `url` - Description
|
|
15
|
+
*/
|
|
16
|
+
export declare function parseLlmsTxt(content: string): DocEntry[];
|
|
17
|
+
/**
|
|
18
|
+
* Filter doc entries by workflow categories. Returns all entries if
|
|
19
|
+
* workflows is empty or contains ALL_WORKFLOWS.
|
|
20
|
+
*/
|
|
21
|
+
export declare function filterByWorkflows(entries: DocEntry[], workflows: string[]): DocEntry[];
|
|
22
|
+
/**
|
|
23
|
+
* Convert a Phoenix docs URL to a local file path.
|
|
24
|
+
* Strips the common prefix and appends `.md`.
|
|
25
|
+
*/
|
|
26
|
+
export declare function urlToFilePath(url: string, outputDir: string): string;
|
|
27
|
+
/**
|
|
28
|
+
* Group doc entries by their section name (lowercased).
|
|
29
|
+
*/
|
|
30
|
+
export declare function groupBySection(entries: DocEntry[]): Map<string, DocEntry[]>;
|
|
31
|
+
/**
|
|
32
|
+
* Generate the content for the top-level README.md index file.
|
|
33
|
+
*/
|
|
34
|
+
export declare function generateReadme(entries: DocEntry[], grouped?: Map<string, DocEntry[]>): string;
|
|
35
|
+
/**
|
|
36
|
+
* Generate the content for a section-level _index.md file.
|
|
37
|
+
* Uses paths relative to the section directory (derived from the first
|
|
38
|
+
* entry's file path) so that links work from the _index.md location.
|
|
39
|
+
*/
|
|
40
|
+
export declare function generateSectionIndex(section: string, entries: DocEntry[]): string;
|
|
41
|
+
export declare function createDocsCommand(): Command;
|
|
42
|
+
//# sourceMappingURL=docs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAyCD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE,CA6BxD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,QAAQ,EAAE,EACnB,SAAS,EAAE,MAAM,EAAE,GAClB,QAAQ,EAAE,CAuBZ;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAMpE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAY3E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,QAAQ,EAAE,EACnB,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,GAChC,MAAM,CAmBR;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,QAAQ,EAAE,GAClB,MAAM,CAkBR;AAwOD,wBAAgB,iBAAiB,IAAI,OAAO,CAqB3C"}
|