@arizeai/phoenix-cli 0.12.1 → 1.0.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 +57 -57
- package/build/cli.d.ts.map +1 -1
- package/build/cli.js +3 -8
- package/build/cli.js.map +1 -1
- package/build/commands/dataset.d.ts +6 -1
- package/build/commands/dataset.d.ts.map +1 -1
- package/build/commands/dataset.js +93 -4
- package/build/commands/dataset.js.map +1 -1
- package/build/commands/experiment.d.ts +3 -1
- package/build/commands/experiment.d.ts.map +1 -1
- package/build/commands/experiment.js +175 -8
- package/build/commands/experiment.js.map +1 -1
- package/build/commands/index.d.ts +2 -7
- package/build/commands/index.d.ts.map +1 -1
- package/build/commands/index.js +2 -7
- package/build/commands/index.js.map +1 -1
- package/build/commands/project.d.ts +7 -0
- package/build/commands/project.d.ts.map +1 -0
- package/build/commands/{projects.js → project.js} +15 -16
- package/build/commands/project.js.map +1 -0
- package/build/commands/prompt.d.ts +3 -1
- package/build/commands/prompt.d.ts.map +1 -1
- package/build/commands/prompt.js +90 -4
- package/build/commands/prompt.js.map +1 -1
- package/build/commands/session.d.ts +3 -1
- package/build/commands/session.d.ts.map +1 -1
- package/build/commands/session.js +124 -10
- package/build/commands/session.js.map +1 -1
- package/build/commands/span.d.ts +10 -0
- package/build/commands/span.d.ts.map +1 -0
- package/build/commands/{spans.js → span.js} +15 -8
- package/build/commands/span.js.map +1 -0
- package/build/commands/trace.d.ts +3 -1
- package/build/commands/trace.d.ts.map +1 -1
- package/build/commands/trace.js +259 -8
- package/build/commands/trace.js.map +1 -1
- package/build/config.js +1 -1
- package/build/config.js.map +1 -1
- package/package.json +1 -1
- package/build/commands/datasets.d.ts +0 -6
- package/build/commands/datasets.d.ts.map +0 -1
- package/build/commands/datasets.js +0 -98
- package/build/commands/datasets.js.map +0 -1
- package/build/commands/experiments.d.ts +0 -6
- package/build/commands/experiments.d.ts.map +0 -1
- package/build/commands/experiments.js +0 -202
- package/build/commands/experiments.js.map +0 -1
- package/build/commands/projects.d.ts +0 -6
- package/build/commands/projects.d.ts.map +0 -1
- package/build/commands/projects.js.map +0 -1
- package/build/commands/prompts.d.ts +0 -6
- package/build/commands/prompts.d.ts.map +0 -1
- package/build/commands/prompts.js +0 -98
- package/build/commands/prompts.js.map +0 -1
- package/build/commands/sessions.d.ts +0 -6
- package/build/commands/sessions.d.ts.map +0 -1
- package/build/commands/sessions.js +0 -127
- package/build/commands/sessions.js.map +0 -1
- package/build/commands/spans.d.ts +0 -6
- package/build/commands/spans.d.ts.map +0 -1
- package/build/commands/spans.js.map +0 -1
- package/build/commands/traces.d.ts +0 -6
- package/build/commands/traces.d.ts.map +0 -1
- package/build/commands/traces.js +0 -278
- package/build/commands/traces.js.map +0 -1
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import * as fs from "fs";
|
|
2
|
+
import * as path from "path";
|
|
2
3
|
import { Command } from "commander";
|
|
3
|
-
import { createPhoenixClient } from "../client.js";
|
|
4
|
+
import { createPhoenixClient, resolveDatasetId } from "../client.js";
|
|
4
5
|
import { getConfigErrorMessage, resolveConfig } from "../config.js";
|
|
5
6
|
import { ExitCode, getExitCodeForError } from "../exitCodes.js";
|
|
6
7
|
import { writeError, writeOutput, writeProgress } from "../io.js";
|
|
7
8
|
import { formatExperimentJsonOutput, } from "./formatExperiment.js";
|
|
9
|
+
import { formatExperimentsOutput, } from "./formatExperiments.js";
|
|
8
10
|
/**
|
|
9
11
|
* Download experiment JSON data
|
|
10
12
|
*/
|
|
@@ -23,9 +25,71 @@ async function downloadExperimentJson(client, experimentId) {
|
|
|
23
25
|
return response.data;
|
|
24
26
|
}
|
|
25
27
|
/**
|
|
26
|
-
*
|
|
28
|
+
* Fetch experiments for a dataset from Phoenix
|
|
27
29
|
*/
|
|
28
|
-
async function
|
|
30
|
+
async function fetchExperiments(client, datasetId, options = {}) {
|
|
31
|
+
const allExperiments = [];
|
|
32
|
+
let cursor;
|
|
33
|
+
const pageLimit = options.limit || 100;
|
|
34
|
+
do {
|
|
35
|
+
const response = await client.GET("/v1/datasets/{dataset_id}/experiments", {
|
|
36
|
+
params: {
|
|
37
|
+
path: {
|
|
38
|
+
dataset_id: datasetId,
|
|
39
|
+
},
|
|
40
|
+
query: {
|
|
41
|
+
cursor,
|
|
42
|
+
limit: pageLimit,
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
if (response.error || !response.data) {
|
|
47
|
+
throw new Error(`Failed to fetch experiments: ${response.error}`);
|
|
48
|
+
}
|
|
49
|
+
allExperiments.push(...response.data.data);
|
|
50
|
+
cursor = response.data.next_cursor || undefined;
|
|
51
|
+
if (options.limit && allExperiments.length >= options.limit) {
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
} while (cursor);
|
|
55
|
+
return allExperiments;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Write experiments to directory
|
|
59
|
+
*/
|
|
60
|
+
async function writeExperimentsToDirectory(client, experiments, directory, options = {}) {
|
|
61
|
+
if (!fs.existsSync(directory)) {
|
|
62
|
+
fs.mkdirSync(directory, { recursive: true });
|
|
63
|
+
}
|
|
64
|
+
let completed = 0;
|
|
65
|
+
for (const experiment of experiments) {
|
|
66
|
+
try {
|
|
67
|
+
writeProgress({
|
|
68
|
+
message: `[${completed + 1}/${experiments.length}] Downloading experiment ${experiment.id}...`,
|
|
69
|
+
noProgress: options.noProgress,
|
|
70
|
+
});
|
|
71
|
+
const jsonData = await downloadExperimentJson(client, experiment.id);
|
|
72
|
+
const filename = `${experiment.id}.json`;
|
|
73
|
+
const filepath = path.join(directory, filename);
|
|
74
|
+
fs.writeFileSync(filepath, jsonData, "utf-8");
|
|
75
|
+
completed++;
|
|
76
|
+
writeProgress({
|
|
77
|
+
message: `[${completed}/${experiments.length}] Wrote ${filename}`,
|
|
78
|
+
noProgress: options.noProgress,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
writeProgress({
|
|
83
|
+
message: `Warning: Failed to download experiment ${experiment.id}: ${error instanceof Error ? error.message : String(error)}`,
|
|
84
|
+
noProgress: options.noProgress,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Handler for `experiment get`
|
|
91
|
+
*/
|
|
92
|
+
async function experimentGetHandler(experimentId, options) {
|
|
29
93
|
try {
|
|
30
94
|
const userSpecifiedFormat = process.argv.includes("--format") ||
|
|
31
95
|
process.argv.some((arg) => arg.startsWith("--format="));
|
|
@@ -89,11 +153,93 @@ async function experimentHandler(experimentId, options) {
|
|
|
89
153
|
}
|
|
90
154
|
}
|
|
91
155
|
/**
|
|
92
|
-
*
|
|
156
|
+
* Handler for `experiment list`
|
|
93
157
|
*/
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
158
|
+
async function experimentListHandler(directory, options) {
|
|
159
|
+
try {
|
|
160
|
+
const userSpecifiedFormat = process.argv.includes("--format") ||
|
|
161
|
+
process.argv.some((arg) => arg.startsWith("--format="));
|
|
162
|
+
const config = resolveConfig({
|
|
163
|
+
cliOptions: {
|
|
164
|
+
endpoint: options.endpoint,
|
|
165
|
+
apiKey: options.apiKey,
|
|
166
|
+
},
|
|
167
|
+
});
|
|
168
|
+
if (!config.endpoint) {
|
|
169
|
+
const errors = [
|
|
170
|
+
"Phoenix endpoint not configured. Set PHOENIX_HOST environment variable or use --endpoint flag.",
|
|
171
|
+
];
|
|
172
|
+
writeError({ message: getConfigErrorMessage({ errors }) });
|
|
173
|
+
process.exit(ExitCode.INVALID_ARGUMENT);
|
|
174
|
+
}
|
|
175
|
+
if (!options.dataset) {
|
|
176
|
+
writeError({
|
|
177
|
+
message: "Dataset not specified. Use --dataset <name-or-id> to specify a dataset.",
|
|
178
|
+
});
|
|
179
|
+
process.exit(ExitCode.INVALID_ARGUMENT);
|
|
180
|
+
}
|
|
181
|
+
const client = createPhoenixClient({ config });
|
|
182
|
+
writeProgress({
|
|
183
|
+
message: `Resolving dataset: ${options.dataset}`,
|
|
184
|
+
noProgress: !options.progress,
|
|
185
|
+
});
|
|
186
|
+
const datasetId = await resolveDatasetId({
|
|
187
|
+
client,
|
|
188
|
+
datasetIdentifier: options.dataset,
|
|
189
|
+
});
|
|
190
|
+
writeProgress({
|
|
191
|
+
message: `Fetching experiments for dataset ${datasetId}...`,
|
|
192
|
+
noProgress: !options.progress,
|
|
193
|
+
});
|
|
194
|
+
const experiments = await fetchExperiments(client, datasetId, {
|
|
195
|
+
limit: options.limit,
|
|
196
|
+
});
|
|
197
|
+
if (experiments.length === 0) {
|
|
198
|
+
writeProgress({
|
|
199
|
+
message: "No experiments found",
|
|
200
|
+
noProgress: !options.progress,
|
|
201
|
+
});
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
writeProgress({
|
|
205
|
+
message: `Found ${experiments.length} experiment(s)`,
|
|
206
|
+
noProgress: !options.progress,
|
|
207
|
+
});
|
|
208
|
+
if (directory) {
|
|
209
|
+
if (userSpecifiedFormat && options.format && options.format !== "json") {
|
|
210
|
+
writeError({
|
|
211
|
+
message: `Warning: --format is ignored when writing experiments to a directory; writing JSON files to ${directory}`,
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
writeProgress({
|
|
215
|
+
message: `Writing experiments to ${directory}...`,
|
|
216
|
+
noProgress: !options.progress,
|
|
217
|
+
});
|
|
218
|
+
await writeExperimentsToDirectory(client, experiments, directory, {
|
|
219
|
+
noProgress: !options.progress,
|
|
220
|
+
});
|
|
221
|
+
writeProgress({
|
|
222
|
+
message: `Done! Wrote ${experiments.length} experiment(s) to ${directory}`,
|
|
223
|
+
noProgress: !options.progress,
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
else {
|
|
227
|
+
const output = formatExperimentsOutput({
|
|
228
|
+
experiments,
|
|
229
|
+
format: options.format,
|
|
230
|
+
});
|
|
231
|
+
writeOutput({ message: output });
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
catch (error) {
|
|
235
|
+
writeError({
|
|
236
|
+
message: `Error fetching experiments: ${error instanceof Error ? error.message : String(error)}`,
|
|
237
|
+
});
|
|
238
|
+
process.exit(getExitCodeForError(error));
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
export function createExperimentGetCommand() {
|
|
242
|
+
return new Command("get")
|
|
97
243
|
.description("Fetch a specific experiment by ID with all run data")
|
|
98
244
|
.argument("<experiment-id>", "Experiment identifier")
|
|
99
245
|
.option("--endpoint <url>", "Phoenix API endpoint")
|
|
@@ -101,7 +247,28 @@ export function createExperimentCommand() {
|
|
|
101
247
|
.option("--format <format>", "Output format: pretty, json, or raw", "pretty")
|
|
102
248
|
.option("--no-progress", "Disable progress indicators")
|
|
103
249
|
.option("--file <path>", "Save experiment to file instead of stdout")
|
|
104
|
-
.action(
|
|
250
|
+
.action(experimentGetHandler);
|
|
251
|
+
}
|
|
252
|
+
export function createExperimentListCommand() {
|
|
253
|
+
return new Command("list")
|
|
254
|
+
.description("List experiments for a dataset")
|
|
255
|
+
.argument("[directory]", "Directory to write experiment files (optional, downloads full JSON data)")
|
|
256
|
+
.requiredOption("--dataset <name-or-id>", "Dataset name or ID (required)")
|
|
257
|
+
.option("--endpoint <url>", "Phoenix API endpoint")
|
|
258
|
+
.option("--api-key <key>", "Phoenix API key for authentication")
|
|
259
|
+
.option("--format <format>", "Output format: pretty, json, or raw", "pretty")
|
|
260
|
+
.option("--no-progress", "Disable progress indicators")
|
|
261
|
+
.option("--limit <number>", "Maximum number of experiments to fetch", parseInt)
|
|
262
|
+
.action(experimentListHandler);
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Create the `experiment` command with subcommands
|
|
266
|
+
*/
|
|
267
|
+
export function createExperimentCommand() {
|
|
268
|
+
const command = new Command("experiment");
|
|
269
|
+
command.description("Manage Phoenix experiments");
|
|
270
|
+
command.addCommand(createExperimentListCommand());
|
|
271
|
+
command.addCommand(createExperimentGetCommand());
|
|
105
272
|
return command;
|
|
106
273
|
}
|
|
107
274
|
//# sourceMappingURL=experiment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"experiment.js","sourceRoot":"","sources":["../../src/commands/experiment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"experiment.js","sourceRoot":"","sources":["../../src/commands/experiment.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
export * from "./annotationConfig.js";
|
|
2
2
|
export * from "./auth.js";
|
|
3
|
-
export * from "./
|
|
4
|
-
export * from "./traces.js";
|
|
3
|
+
export * from "./project.js";
|
|
5
4
|
export * from "./trace.js";
|
|
6
|
-
export * from "./
|
|
7
|
-
export * from "./datasets.js";
|
|
5
|
+
export * from "./span.js";
|
|
8
6
|
export * from "./dataset.js";
|
|
9
|
-
export * from "./experiments.js";
|
|
10
7
|
export * from "./experiment.js";
|
|
11
|
-
export * from "./sessions.js";
|
|
12
8
|
export * from "./session.js";
|
|
13
|
-
export * from "./prompts.js";
|
|
14
9
|
export * from "./prompt.js";
|
|
15
10
|
export * from "./api.js";
|
|
16
11
|
export * from "./docs.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC"}
|
package/build/commands/index.js
CHANGED
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
export * from "./annotationConfig.js";
|
|
2
2
|
export * from "./auth.js";
|
|
3
|
-
export * from "./
|
|
4
|
-
export * from "./traces.js";
|
|
3
|
+
export * from "./project.js";
|
|
5
4
|
export * from "./trace.js";
|
|
6
|
-
export * from "./
|
|
7
|
-
export * from "./datasets.js";
|
|
5
|
+
export * from "./span.js";
|
|
8
6
|
export * from "./dataset.js";
|
|
9
|
-
export * from "./experiments.js";
|
|
10
7
|
export * from "./experiment.js";
|
|
11
|
-
export * from "./sessions.js";
|
|
12
8
|
export * from "./session.js";
|
|
13
|
-
export * from "./prompts.js";
|
|
14
9
|
export * from "./prompt.js";
|
|
15
10
|
export * from "./api.js";
|
|
16
11
|
export * from "./docs.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
export declare function configureProjectListCommand(command: Command): Command;
|
|
3
|
+
/**
|
|
4
|
+
* Create the `project` command with subcommands
|
|
5
|
+
*/
|
|
6
|
+
export declare function createProjectCommand(): Command;
|
|
7
|
+
//# sourceMappingURL=project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/commands/project.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+FpC,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAiBrE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAK9C"}
|
|
@@ -30,11 +30,10 @@ async function fetchProjects(client, options = {}) {
|
|
|
30
30
|
return allProjects;
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
33
|
-
*
|
|
33
|
+
* Handler for `project list`
|
|
34
34
|
*/
|
|
35
|
-
async function
|
|
35
|
+
async function projectListHandler(options) {
|
|
36
36
|
try {
|
|
37
|
-
// Resolve configuration
|
|
38
37
|
const config = resolveConfig({
|
|
39
38
|
cliOptions: {
|
|
40
39
|
endpoint: options.endpoint,
|
|
@@ -42,7 +41,6 @@ async function projectsHandler(options) {
|
|
|
42
41
|
apiKey: options.apiKey,
|
|
43
42
|
},
|
|
44
43
|
});
|
|
45
|
-
// Validate that we have endpoint (project not required for listing projects)
|
|
46
44
|
if (!config.endpoint) {
|
|
47
45
|
const errors = [
|
|
48
46
|
"Phoenix endpoint not configured. Set PHOENIX_HOST environment variable or use --endpoint flag.",
|
|
@@ -50,15 +48,12 @@ async function projectsHandler(options) {
|
|
|
50
48
|
writeError({ message: getConfigErrorMessage({ errors }) });
|
|
51
49
|
process.exit(ExitCode.INVALID_ARGUMENT);
|
|
52
50
|
}
|
|
53
|
-
// Create client
|
|
54
51
|
const client = createPhoenixClient({ config });
|
|
55
|
-
// Fetch projects
|
|
56
52
|
const projects = await fetchProjects(client, {
|
|
57
53
|
limit: options.limit,
|
|
58
54
|
});
|
|
59
|
-
// Output projects
|
|
60
55
|
const output = formatProjectsOutput({
|
|
61
|
-
projects
|
|
56
|
+
projects,
|
|
62
57
|
format: options.format,
|
|
63
58
|
});
|
|
64
59
|
writeOutput({ message: output });
|
|
@@ -70,19 +65,23 @@ async function projectsHandler(options) {
|
|
|
70
65
|
process.exit(getExitCodeForError(error));
|
|
71
66
|
}
|
|
72
67
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
*/
|
|
76
|
-
export function createProjectsCommand() {
|
|
77
|
-
const command = new Command("projects");
|
|
78
|
-
command
|
|
68
|
+
export function configureProjectListCommand(command) {
|
|
69
|
+
return command
|
|
79
70
|
.description("List all available Phoenix projects")
|
|
80
71
|
.option("--endpoint <url>", "Phoenix API endpoint")
|
|
81
72
|
.option("--api-key <key>", "Phoenix API key for authentication")
|
|
82
73
|
.option("--format <format>", "Output format: pretty, json, or raw", "pretty")
|
|
83
74
|
.option("--no-progress", "Disable progress indicators")
|
|
84
75
|
.option("--limit <number>", "Maximum number of projects to fetch per page", parseInt)
|
|
85
|
-
.action(
|
|
76
|
+
.action(projectListHandler);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Create the `project` command with subcommands
|
|
80
|
+
*/
|
|
81
|
+
export function createProjectCommand() {
|
|
82
|
+
const command = new Command("project");
|
|
83
|
+
command.description("Manage Phoenix projects");
|
|
84
|
+
command.addCommand(configureProjectListCommand(new Command("list")));
|
|
86
85
|
return command;
|
|
87
86
|
}
|
|
88
|
-
//# sourceMappingURL=
|
|
87
|
+
//# sourceMappingURL=project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/commands/project.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
|
+
export declare function createPromptGetCommand(): Command;
|
|
3
|
+
export declare function createPromptListCommand(): Command;
|
|
2
4
|
/**
|
|
3
|
-
* Create the prompt command
|
|
5
|
+
* Create the `prompt` command with subcommands
|
|
4
6
|
*/
|
|
5
7
|
export declare function createPromptCommand(): Command;
|
|
6
8
|
//# sourceMappingURL=prompt.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/commands/prompt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/commands/prompt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0OpC,wBAAgB,sBAAsB,IAAI,OAAO,CAehD;AAED,wBAAgB,uBAAuB,IAAI,OAAO,CAajD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAM7C"}
|
package/build/commands/prompt.js
CHANGED
|
@@ -4,6 +4,34 @@ import { getConfigErrorMessage, resolveConfig } from "../config.js";
|
|
|
4
4
|
import { ExitCode, getExitCodeForError } from "../exitCodes.js";
|
|
5
5
|
import { writeError, writeOutput, writeProgress } from "../io.js";
|
|
6
6
|
import { formatPromptOutput } from "./formatPrompt.js";
|
|
7
|
+
import { formatPromptsOutput } from "./formatPrompts.js";
|
|
8
|
+
/**
|
|
9
|
+
* Fetch all prompts from Phoenix
|
|
10
|
+
*/
|
|
11
|
+
async function fetchPrompts(client, options = {}) {
|
|
12
|
+
const allPrompts = [];
|
|
13
|
+
let cursor;
|
|
14
|
+
const pageLimit = options.limit || 100;
|
|
15
|
+
do {
|
|
16
|
+
const response = await client.GET("/v1/prompts", {
|
|
17
|
+
params: {
|
|
18
|
+
query: {
|
|
19
|
+
cursor,
|
|
20
|
+
limit: pageLimit,
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
if (response.error || !response.data) {
|
|
25
|
+
throw new Error(`Failed to fetch prompts: ${response.error}`);
|
|
26
|
+
}
|
|
27
|
+
allPrompts.push(...response.data.data);
|
|
28
|
+
cursor = response.data.next_cursor || undefined;
|
|
29
|
+
if (options.limit && allPrompts.length >= options.limit) {
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
32
|
+
} while (cursor);
|
|
33
|
+
return allPrompts;
|
|
34
|
+
}
|
|
7
35
|
/**
|
|
8
36
|
* Fetch a prompt version from Phoenix
|
|
9
37
|
*/
|
|
@@ -91,11 +119,50 @@ async function promptHandler(promptIdentifier, options) {
|
|
|
91
119
|
}
|
|
92
120
|
}
|
|
93
121
|
/**
|
|
94
|
-
*
|
|
122
|
+
* Handler for `prompt list`
|
|
95
123
|
*/
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
124
|
+
async function promptListHandler(options) {
|
|
125
|
+
try {
|
|
126
|
+
const config = resolveConfig({
|
|
127
|
+
cliOptions: {
|
|
128
|
+
endpoint: options.endpoint,
|
|
129
|
+
apiKey: options.apiKey,
|
|
130
|
+
},
|
|
131
|
+
});
|
|
132
|
+
if (!config.endpoint) {
|
|
133
|
+
const errors = [
|
|
134
|
+
"Phoenix endpoint not configured. Set PHOENIX_HOST environment variable or use --endpoint flag.",
|
|
135
|
+
];
|
|
136
|
+
writeError({ message: getConfigErrorMessage({ errors }) });
|
|
137
|
+
process.exit(ExitCode.INVALID_ARGUMENT);
|
|
138
|
+
}
|
|
139
|
+
const client = createPhoenixClient({ config });
|
|
140
|
+
writeProgress({
|
|
141
|
+
message: "Fetching prompts...",
|
|
142
|
+
noProgress: !options.progress,
|
|
143
|
+
});
|
|
144
|
+
const prompts = await fetchPrompts(client, {
|
|
145
|
+
limit: options.limit,
|
|
146
|
+
});
|
|
147
|
+
writeProgress({
|
|
148
|
+
message: `Found ${prompts.length} prompt(s)`,
|
|
149
|
+
noProgress: !options.progress,
|
|
150
|
+
});
|
|
151
|
+
const output = formatPromptsOutput({
|
|
152
|
+
prompts,
|
|
153
|
+
format: options.format,
|
|
154
|
+
});
|
|
155
|
+
writeOutput({ message: output });
|
|
156
|
+
}
|
|
157
|
+
catch (error) {
|
|
158
|
+
writeError({
|
|
159
|
+
message: `Error fetching prompts: ${error instanceof Error ? error.message : String(error)}`,
|
|
160
|
+
});
|
|
161
|
+
process.exit(getExitCodeForError(error));
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
export function createPromptGetCommand() {
|
|
165
|
+
return new Command("get")
|
|
99
166
|
.description("Show a Phoenix prompt")
|
|
100
167
|
.argument("<prompt-identifier>", "Prompt name or ID")
|
|
101
168
|
.option("--endpoint <url>", "Phoenix API endpoint")
|
|
@@ -105,6 +172,25 @@ export function createPromptCommand() {
|
|
|
105
172
|
.option("--tag <tag>", "Get prompt version by tag name")
|
|
106
173
|
.option("--version <version_id>", "Get specific prompt version by ID")
|
|
107
174
|
.action(promptHandler);
|
|
175
|
+
}
|
|
176
|
+
export function createPromptListCommand() {
|
|
177
|
+
return new Command("list")
|
|
178
|
+
.description("List all available Phoenix prompts")
|
|
179
|
+
.option("--endpoint <url>", "Phoenix API endpoint")
|
|
180
|
+
.option("--api-key <key>", "Phoenix API key for authentication")
|
|
181
|
+
.option("--format <format>", "Output format: pretty, json, or raw", "pretty")
|
|
182
|
+
.option("--no-progress", "Disable progress indicators")
|
|
183
|
+
.option("--limit <number>", "Maximum number of prompts to fetch", parseInt)
|
|
184
|
+
.action(promptListHandler);
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Create the `prompt` command with subcommands
|
|
188
|
+
*/
|
|
189
|
+
export function createPromptCommand() {
|
|
190
|
+
const command = new Command("prompt");
|
|
191
|
+
command.description("Manage Phoenix prompts");
|
|
192
|
+
command.addCommand(createPromptListCommand());
|
|
193
|
+
command.addCommand(createPromptGetCommand());
|
|
108
194
|
return command;
|
|
109
195
|
}
|
|
110
196
|
//# sourceMappingURL=prompt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/commands/prompt.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,QAAQ,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAqB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/commands/prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
|
+
export declare function createSessionGetCommand(): Command;
|
|
3
|
+
export declare function createSessionListCommand(): Command;
|
|
2
4
|
/**
|
|
3
|
-
* Create the session command
|
|
5
|
+
* Create the `session` command with subcommands
|
|
4
6
|
*/
|
|
5
7
|
export declare function createSessionCommand(): Command;
|
|
6
8
|
//# sourceMappingURL=session.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/commands/session.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/commands/session.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkUpC,wBAAgB,uBAAuB,IAAI,OAAO,CAmBjD;AAED,wBAAgB,wBAAwB,IAAI,OAAO,CAoBlD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAM9C"}
|