@arizeai/phoenix-cli 1.0.2 → 1.0.4
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 +9 -6
- package/build/commands/annotationConfig.d.ts +1 -0
- package/build/commands/annotationConfig.d.ts.map +1 -1
- package/build/commands/annotationConfig.js +64 -6
- package/build/commands/annotationConfig.js.map +1 -1
- package/build/commands/dataset.d.ts +4 -0
- package/build/commands/dataset.d.ts.map +1 -1
- package/build/commands/dataset.js +77 -11
- package/build/commands/dataset.js.map +1 -1
- package/build/commands/experiment.d.ts +1 -0
- package/build/commands/experiment.d.ts.map +1 -1
- package/build/commands/experiment.js +61 -11
- package/build/commands/experiment.js.map +1 -1
- package/build/commands/project.d.ts +4 -0
- package/build/commands/project.d.ts.map +1 -1
- package/build/commands/project.js +72 -7
- package/build/commands/project.js.map +1 -1
- package/build/commands/prompt.d.ts +1 -0
- package/build/commands/prompt.d.ts.map +1 -1
- package/build/commands/prompt.js +69 -11
- package/build/commands/prompt.js.map +1 -1
- package/build/commands/session.d.ts +1 -0
- package/build/commands/session.d.ts.map +1 -1
- package/build/commands/session.js +55 -5
- package/build/commands/session.js.map +1 -1
- package/build/commands/span.d.ts +1 -0
- package/build/commands/span.d.ts.map +1 -1
- package/build/commands/span.js +62 -0
- package/build/commands/span.js.map +1 -1
- package/build/commands/trace.d.ts +1 -0
- package/build/commands/trace.d.ts.map +1 -1
- package/build/commands/trace.js +62 -0
- package/build/commands/trace.js.map +1 -1
- package/build/config.d.ts +5 -1
- package/build/config.d.ts.map +1 -1
- package/build/config.js +2 -2
- package/build/config.js.map +1 -1
- package/build/confirm.d.ts +48 -0
- package/build/confirm.d.ts.map +1 -0
- package/build/confirm.js +76 -0
- package/build/confirm.js.map +1 -0
- package/build/exitCodes.d.ts +3 -0
- package/build/exitCodes.d.ts.map +1 -1
- package/build/exitCodes.js +9 -0
- package/build/exitCodes.js.map +1 -1
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -45,12 +45,15 @@ export PHOENIX_API_KEY=your-api-key # if authentication is enabled
|
|
|
45
45
|
|
|
46
46
|
CLI flags (`--endpoint`, `--project`, `--api-key`) override environment variables.
|
|
47
47
|
|
|
48
|
-
| Variable
|
|
49
|
-
|
|
|
50
|
-
| `PHOENIX_HOST`
|
|
51
|
-
| `PHOENIX_PROJECT`
|
|
52
|
-
| `PHOENIX_API_KEY`
|
|
53
|
-
| `PHOENIX_CLIENT_HEADERS`
|
|
48
|
+
| Variable | Description |
|
|
49
|
+
| ---------------------------------------- | --------------------------------------------- |
|
|
50
|
+
| `PHOENIX_HOST` | Phoenix API endpoint |
|
|
51
|
+
| `PHOENIX_PROJECT` | Project name or ID |
|
|
52
|
+
| `PHOENIX_API_KEY` | API key (if auth is enabled) |
|
|
53
|
+
| `PHOENIX_CLIENT_HEADERS` | Custom headers as JSON string |
|
|
54
|
+
| `PHOENIX_CLI_DANGEROUSLY_ENABLE_DELETES` | Enable CLI delete commands when set to `true` |
|
|
55
|
+
|
|
56
|
+
Delete commands are disabled by default and require `PHOENIX_CLI_DANGEROUSLY_ENABLE_DELETES=true`.
|
|
54
57
|
|
|
55
58
|
## Commands
|
|
56
59
|
|
|
@@ -3,4 +3,5 @@ import { Command } from "commander";
|
|
|
3
3
|
* Create the `annotation-config` command with subcommands
|
|
4
4
|
*/
|
|
5
5
|
export declare function createAnnotationConfigCommand(): Command;
|
|
6
|
+
export declare function createAnnotationConfigDeleteCommand(): Command;
|
|
6
7
|
//# sourceMappingURL=annotationConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"annotationConfig.d.ts","sourceRoot":"","sources":["../../src/commands/annotationConfig.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"annotationConfig.d.ts","sourceRoot":"","sources":["../../src/commands/annotationConfig.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoLpC;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,OAAO,CA0BvD;AAED,wBAAgB,mCAAmC,IAAI,OAAO,CAS7D"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
2
|
import { createPhoenixClient } from "../client.js";
|
|
3
|
-
import { getConfigErrorMessage, resolveConfig } from "../config.js";
|
|
3
|
+
import { getConfigErrorMessage, resolveConfig, validateConfig, } from "../config.js";
|
|
4
|
+
import { assertDeletesEnabled, confirmOrExit } from "../confirm.js";
|
|
4
5
|
import { ExitCode, getExitCodeForError } from "../exitCodes.js";
|
|
5
6
|
import { writeError, writeOutput, writeProgress } from "../io.js";
|
|
6
7
|
import { formatAnnotationConfigsOutput, } from "./formatAnnotationConfigs.js";
|
|
@@ -43,11 +44,11 @@ async function annotationConfigListHandler(options) {
|
|
|
43
44
|
apiKey: options.apiKey,
|
|
44
45
|
},
|
|
45
46
|
});
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
const validation = validateConfig({ config, projectRequired: false });
|
|
48
|
+
if (!validation.valid) {
|
|
49
|
+
writeError({
|
|
50
|
+
message: getConfigErrorMessage({ errors: validation.errors }),
|
|
51
|
+
});
|
|
51
52
|
process.exit(ExitCode.INVALID_ARGUMENT);
|
|
52
53
|
}
|
|
53
54
|
const client = createPhoenixClient({ config });
|
|
@@ -75,6 +76,52 @@ async function annotationConfigListHandler(options) {
|
|
|
75
76
|
process.exit(getExitCodeForError(error));
|
|
76
77
|
}
|
|
77
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Handler for `annotation-config delete`
|
|
81
|
+
*/
|
|
82
|
+
async function annotationConfigDeleteHandler(configId, options) {
|
|
83
|
+
try {
|
|
84
|
+
assertDeletesEnabled();
|
|
85
|
+
const config = resolveConfig({
|
|
86
|
+
cliOptions: {
|
|
87
|
+
endpoint: options.endpoint,
|
|
88
|
+
apiKey: options.apiKey,
|
|
89
|
+
},
|
|
90
|
+
});
|
|
91
|
+
const validation = validateConfig({ config, projectRequired: false });
|
|
92
|
+
if (!validation.valid) {
|
|
93
|
+
writeError({
|
|
94
|
+
message: getConfigErrorMessage({ errors: validation.errors }),
|
|
95
|
+
});
|
|
96
|
+
process.exit(ExitCode.INVALID_ARGUMENT);
|
|
97
|
+
}
|
|
98
|
+
const client = createPhoenixClient({ config });
|
|
99
|
+
await confirmOrExit({
|
|
100
|
+
message: `Delete annotation config ${configId}? This cannot be undone.`,
|
|
101
|
+
yes: options.yes,
|
|
102
|
+
});
|
|
103
|
+
const response = await client.DELETE("/v1/annotation_configs/{config_id}", {
|
|
104
|
+
params: {
|
|
105
|
+
path: {
|
|
106
|
+
config_id: configId,
|
|
107
|
+
},
|
|
108
|
+
},
|
|
109
|
+
});
|
|
110
|
+
if (response.error) {
|
|
111
|
+
throw new Error(`Failed to delete annotation config: ${response.error}`);
|
|
112
|
+
}
|
|
113
|
+
writeProgress({
|
|
114
|
+
message: `Deleted annotation config ${configId}`,
|
|
115
|
+
noProgress: !options.progress,
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
writeError({
|
|
120
|
+
message: `Error deleting annotation config: ${error instanceof Error ? error.message : String(error)}`,
|
|
121
|
+
});
|
|
122
|
+
process.exit(getExitCodeForError(error));
|
|
123
|
+
}
|
|
124
|
+
}
|
|
78
125
|
/**
|
|
79
126
|
* Create the `annotation-config` command with subcommands
|
|
80
127
|
*/
|
|
@@ -91,6 +138,17 @@ export function createAnnotationConfigCommand() {
|
|
|
91
138
|
.option("--limit <number>", "Maximum number of annotation configs to fetch", parseInt)
|
|
92
139
|
.action(annotationConfigListHandler);
|
|
93
140
|
command.addCommand(listCommand);
|
|
141
|
+
command.addCommand(createAnnotationConfigDeleteCommand());
|
|
94
142
|
return command;
|
|
95
143
|
}
|
|
144
|
+
export function createAnnotationConfigDeleteCommand() {
|
|
145
|
+
return new Command("delete")
|
|
146
|
+
.description("Delete an annotation configuration")
|
|
147
|
+
.argument("<config-id>", "Annotation config ID")
|
|
148
|
+
.option("--endpoint <url>", "Phoenix API endpoint")
|
|
149
|
+
.option("--api-key <key>", "Phoenix API key for authentication")
|
|
150
|
+
.option("-y, --yes", "Skip confirmation prompt")
|
|
151
|
+
.option("--no-progress", "Disable progress indicators")
|
|
152
|
+
.action(annotationConfigDeleteHandler);
|
|
153
|
+
}
|
|
96
154
|
//# sourceMappingURL=annotationConfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"annotationConfig.js","sourceRoot":"","sources":["../../src/commands/annotationConfig.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"annotationConfig.js","sourceRoot":"","sources":["../../src/commands/annotationConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,10 @@ import { Command } from "commander";
|
|
|
4
4
|
*/
|
|
5
5
|
export declare function createDatasetGetCommand(): Command;
|
|
6
6
|
export declare function createDatasetListCommand(): Command;
|
|
7
|
+
/**
|
|
8
|
+
* Create the `dataset delete` command
|
|
9
|
+
*/
|
|
10
|
+
export declare function createDatasetDeleteCommand(): Command;
|
|
7
11
|
/**
|
|
8
12
|
* Create the `dataset` command with subcommands
|
|
9
13
|
*/
|
|
@@ -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;AAiWpC;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,OAAO,CAqBjD;AAED,wBAAgB,wBAAwB,IAAI,OAAO,CAalD;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,OAAO,CASpD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAO9C"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as fs from "fs";
|
|
2
2
|
import { Command } from "commander";
|
|
3
3
|
import { createPhoenixClient, resolveDatasetId } from "../client.js";
|
|
4
|
-
import { getConfigErrorMessage, resolveConfig } from "../config.js";
|
|
4
|
+
import { getConfigErrorMessage, resolveConfig, validateConfig, } from "../config.js";
|
|
5
|
+
import { assertDeletesEnabled, confirmOrExit } from "../confirm.js";
|
|
5
6
|
import { ExitCode, getExitCodeForError } from "../exitCodes.js";
|
|
6
7
|
import { writeError, writeOutput, writeProgress } from "../io.js";
|
|
7
8
|
import { formatDatasetExamplesOutput, } from "./formatDataset.js";
|
|
@@ -89,11 +90,11 @@ async function datasetHandler(datasetIdentifier, options) {
|
|
|
89
90
|
},
|
|
90
91
|
});
|
|
91
92
|
// Validate that we have endpoint
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
93
|
+
const validation = validateConfig({ config, projectRequired: false });
|
|
94
|
+
if (!validation.valid) {
|
|
95
|
+
writeError({
|
|
96
|
+
message: getConfigErrorMessage({ errors: validation.errors }),
|
|
97
|
+
});
|
|
97
98
|
process.exit(ExitCode.INVALID_ARGUMENT);
|
|
98
99
|
}
|
|
99
100
|
// Create client
|
|
@@ -166,11 +167,11 @@ async function datasetListHandler(options) {
|
|
|
166
167
|
apiKey: options.apiKey,
|
|
167
168
|
},
|
|
168
169
|
});
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
170
|
+
const validation = validateConfig({ config, projectRequired: false });
|
|
171
|
+
if (!validation.valid) {
|
|
172
|
+
writeError({
|
|
173
|
+
message: getConfigErrorMessage({ errors: validation.errors }),
|
|
174
|
+
});
|
|
174
175
|
process.exit(ExitCode.INVALID_ARGUMENT);
|
|
175
176
|
}
|
|
176
177
|
const client = createPhoenixClient({ config });
|
|
@@ -198,6 +199,57 @@ async function datasetListHandler(options) {
|
|
|
198
199
|
process.exit(getExitCodeForError(error));
|
|
199
200
|
}
|
|
200
201
|
}
|
|
202
|
+
/**
|
|
203
|
+
* Handler for `dataset delete`
|
|
204
|
+
*/
|
|
205
|
+
async function datasetDeleteHandler(datasetIdentifier, options) {
|
|
206
|
+
try {
|
|
207
|
+
assertDeletesEnabled();
|
|
208
|
+
const config = resolveConfig({
|
|
209
|
+
cliOptions: {
|
|
210
|
+
endpoint: options.endpoint,
|
|
211
|
+
apiKey: options.apiKey,
|
|
212
|
+
},
|
|
213
|
+
});
|
|
214
|
+
const validation = validateConfig({ config, projectRequired: false });
|
|
215
|
+
if (!validation.valid) {
|
|
216
|
+
writeError({
|
|
217
|
+
message: getConfigErrorMessage({ errors: validation.errors }),
|
|
218
|
+
});
|
|
219
|
+
process.exit(ExitCode.INVALID_ARGUMENT);
|
|
220
|
+
}
|
|
221
|
+
const client = createPhoenixClient({ config });
|
|
222
|
+
writeProgress({
|
|
223
|
+
message: `Resolving dataset: ${datasetIdentifier}`,
|
|
224
|
+
noProgress: !options.progress,
|
|
225
|
+
});
|
|
226
|
+
const datasetId = await resolveDatasetId({ client, datasetIdentifier });
|
|
227
|
+
await confirmOrExit({
|
|
228
|
+
message: `Delete dataset ${datasetIdentifier}? This cannot be undone.`,
|
|
229
|
+
yes: options.yes,
|
|
230
|
+
});
|
|
231
|
+
const response = await client.DELETE("/v1/datasets/{id}", {
|
|
232
|
+
params: {
|
|
233
|
+
path: {
|
|
234
|
+
id: datasetId,
|
|
235
|
+
},
|
|
236
|
+
},
|
|
237
|
+
});
|
|
238
|
+
if (response.error) {
|
|
239
|
+
throw new Error(`Failed to delete dataset: ${response.error}`);
|
|
240
|
+
}
|
|
241
|
+
writeProgress({
|
|
242
|
+
message: `Deleted dataset ${datasetIdentifier}`,
|
|
243
|
+
noProgress: !options.progress,
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
catch (error) {
|
|
247
|
+
writeError({
|
|
248
|
+
message: `Error deleting dataset: ${error instanceof Error ? error.message : String(error)}`,
|
|
249
|
+
});
|
|
250
|
+
process.exit(getExitCodeForError(error));
|
|
251
|
+
}
|
|
252
|
+
}
|
|
201
253
|
/**
|
|
202
254
|
* Collect multiple --split options into an array
|
|
203
255
|
*/
|
|
@@ -230,6 +282,19 @@ export function createDatasetListCommand() {
|
|
|
230
282
|
.option("--limit <number>", "Maximum number of datasets to fetch", parseInt)
|
|
231
283
|
.action(datasetListHandler);
|
|
232
284
|
}
|
|
285
|
+
/**
|
|
286
|
+
* Create the `dataset delete` command
|
|
287
|
+
*/
|
|
288
|
+
export function createDatasetDeleteCommand() {
|
|
289
|
+
return new Command("delete")
|
|
290
|
+
.description("Delete a dataset")
|
|
291
|
+
.argument("<dataset-identifier>", "Dataset name or ID")
|
|
292
|
+
.option("--endpoint <url>", "Phoenix API endpoint")
|
|
293
|
+
.option("--api-key <key>", "Phoenix API key for authentication")
|
|
294
|
+
.option("-y, --yes", "Skip confirmation prompt")
|
|
295
|
+
.option("--no-progress", "Disable progress indicators")
|
|
296
|
+
.action(datasetDeleteHandler);
|
|
297
|
+
}
|
|
233
298
|
/**
|
|
234
299
|
* Create the `dataset` command with subcommands
|
|
235
300
|
*/
|
|
@@ -238,6 +303,7 @@ export function createDatasetCommand() {
|
|
|
238
303
|
command.description("Manage Phoenix datasets");
|
|
239
304
|
command.addCommand(createDatasetListCommand());
|
|
240
305
|
command.addCommand(createDatasetGetCommand());
|
|
306
|
+
command.addCommand(createDatasetDeleteCommand());
|
|
241
307
|
return command;
|
|
242
308
|
}
|
|
243
309
|
//# sourceMappingURL=dataset.js.map
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"dataset.js","sourceRoot":"","sources":["../../src/commands/dataset.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
2
|
export declare function createExperimentGetCommand(): Command;
|
|
3
3
|
export declare function createExperimentListCommand(): Command;
|
|
4
|
+
export declare function createExperimentDeleteCommand(): Command;
|
|
4
5
|
/**
|
|
5
6
|
* Create the `experiment` command with subcommands
|
|
6
7
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"experiment.d.ts","sourceRoot":"","sources":["../../src/commands/experiment.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"experiment.d.ts","sourceRoot":"","sources":["../../src/commands/experiment.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyUpC,wBAAgB,0BAA0B,IAAI,OAAO,CAcpD;AAED,wBAAgB,2BAA2B,IAAI,OAAO,CAsBrD;AAuDD,wBAAgB,6BAA6B,IAAI,OAAO,CASvD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,OAAO,CAOjD"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import * as fs from "fs";
|
|
2
2
|
import * as path from "path";
|
|
3
|
+
import { deleteExperiment } from "@arizeai/phoenix-client/experiments";
|
|
3
4
|
import { Command } from "commander";
|
|
4
5
|
import { createPhoenixClient, resolveDatasetId } from "../client.js";
|
|
5
|
-
import { getConfigErrorMessage, resolveConfig } from "../config.js";
|
|
6
|
+
import { getConfigErrorMessage, resolveConfig, validateConfig, } from "../config.js";
|
|
7
|
+
import { assertDeletesEnabled, confirmOrExit } from "../confirm.js";
|
|
6
8
|
import { ExitCode, getExitCodeForError } from "../exitCodes.js";
|
|
7
9
|
import { writeError, writeOutput, writeProgress } from "../io.js";
|
|
8
10
|
import { formatExperimentJsonOutput, } from "./formatExperiment.js";
|
|
@@ -101,11 +103,11 @@ async function experimentGetHandler(experimentId, options) {
|
|
|
101
103
|
},
|
|
102
104
|
});
|
|
103
105
|
// Validate that we have endpoint
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
106
|
+
const validation = validateConfig({ config, projectRequired: false });
|
|
107
|
+
if (!validation.valid) {
|
|
108
|
+
writeError({
|
|
109
|
+
message: getConfigErrorMessage({ errors: validation.errors }),
|
|
110
|
+
});
|
|
109
111
|
process.exit(ExitCode.INVALID_ARGUMENT);
|
|
110
112
|
}
|
|
111
113
|
// Create client
|
|
@@ -165,11 +167,11 @@ async function experimentListHandler(directory, options) {
|
|
|
165
167
|
apiKey: options.apiKey,
|
|
166
168
|
},
|
|
167
169
|
});
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
170
|
+
const validation = validateConfig({ config, projectRequired: false });
|
|
171
|
+
if (!validation.valid) {
|
|
172
|
+
writeError({
|
|
173
|
+
message: getConfigErrorMessage({ errors: validation.errors }),
|
|
174
|
+
});
|
|
173
175
|
process.exit(ExitCode.INVALID_ARGUMENT);
|
|
174
176
|
}
|
|
175
177
|
if (!options.dataset) {
|
|
@@ -261,6 +263,53 @@ export function createExperimentListCommand() {
|
|
|
261
263
|
.option("--limit <number>", "Maximum number of experiments to fetch", parseInt)
|
|
262
264
|
.action(experimentListHandler);
|
|
263
265
|
}
|
|
266
|
+
/**
|
|
267
|
+
* Handler for `experiment delete`
|
|
268
|
+
*/
|
|
269
|
+
async function experimentDeleteHandler(experimentId, options) {
|
|
270
|
+
try {
|
|
271
|
+
assertDeletesEnabled();
|
|
272
|
+
const config = resolveConfig({
|
|
273
|
+
cliOptions: {
|
|
274
|
+
endpoint: options.endpoint,
|
|
275
|
+
apiKey: options.apiKey,
|
|
276
|
+
},
|
|
277
|
+
});
|
|
278
|
+
const validation = validateConfig({ config, projectRequired: false });
|
|
279
|
+
if (!validation.valid) {
|
|
280
|
+
writeError({
|
|
281
|
+
message: getConfigErrorMessage({ errors: validation.errors }),
|
|
282
|
+
});
|
|
283
|
+
process.exit(ExitCode.INVALID_ARGUMENT);
|
|
284
|
+
}
|
|
285
|
+
const client = createPhoenixClient({ config });
|
|
286
|
+
await confirmOrExit({
|
|
287
|
+
message: `Delete experiment ${experimentId}? This cannot be undone.`,
|
|
288
|
+
yes: options.yes,
|
|
289
|
+
});
|
|
290
|
+
await deleteExperiment({ client, experimentId });
|
|
291
|
+
writeProgress({
|
|
292
|
+
message: `Deleted experiment ${experimentId}`,
|
|
293
|
+
noProgress: !options.progress,
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
catch (error) {
|
|
297
|
+
writeError({
|
|
298
|
+
message: `Error deleting experiment: ${error instanceof Error ? error.message : String(error)}`,
|
|
299
|
+
});
|
|
300
|
+
process.exit(getExitCodeForError(error));
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
export function createExperimentDeleteCommand() {
|
|
304
|
+
return new Command("delete")
|
|
305
|
+
.description("Delete an experiment by ID")
|
|
306
|
+
.argument("<experiment-id>", "Experiment identifier")
|
|
307
|
+
.option("--endpoint <url>", "Phoenix API endpoint")
|
|
308
|
+
.option("--api-key <key>", "Phoenix API key for authentication")
|
|
309
|
+
.option("-y, --yes", "Skip confirmation prompt")
|
|
310
|
+
.option("--no-progress", "Disable progress indicators")
|
|
311
|
+
.action(experimentDeleteHandler);
|
|
312
|
+
}
|
|
264
313
|
/**
|
|
265
314
|
* Create the `experiment` command with subcommands
|
|
266
315
|
*/
|
|
@@ -269,6 +318,7 @@ export function createExperimentCommand() {
|
|
|
269
318
|
command.description("Manage Phoenix experiments");
|
|
270
319
|
command.addCommand(createExperimentListCommand());
|
|
271
320
|
command.addCommand(createExperimentGetCommand());
|
|
321
|
+
command.addCommand(createExperimentDeleteCommand());
|
|
272
322
|
return command;
|
|
273
323
|
}
|
|
274
324
|
//# 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;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,
|
|
1
|
+
{"version":3,"file":"experiment.js","sourceRoot":"","sources":["../../src/commands/experiment.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
2
|
export declare function configureProjectListCommand(command: Command): Command;
|
|
3
|
+
/**
|
|
4
|
+
* Create the `project delete` command
|
|
5
|
+
*/
|
|
6
|
+
export declare function createProjectDeleteCommand(): Command;
|
|
3
7
|
/**
|
|
4
8
|
* Create the `project` command with subcommands
|
|
5
9
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/commands/project.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/commands/project.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoGpC,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAiBrE;AAsED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,OAAO,CASpD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAM9C"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
2
|
import { createPhoenixClient } from "../client.js";
|
|
3
|
-
import { getConfigErrorMessage, resolveConfig } from "../config.js";
|
|
3
|
+
import { getConfigErrorMessage, resolveConfig, validateConfig, } from "../config.js";
|
|
4
|
+
import { assertDeletesEnabled, confirmOrExit } from "../confirm.js";
|
|
4
5
|
import { ExitCode, getExitCodeForError } from "../exitCodes.js";
|
|
5
|
-
import { writeError, writeOutput } from "../io.js";
|
|
6
|
+
import { writeError, writeOutput, writeProgress } from "../io.js";
|
|
6
7
|
import { formatProjectsOutput } from "./formatProjects.js";
|
|
7
8
|
/**
|
|
8
9
|
* Fetch all projects from Phoenix
|
|
@@ -41,11 +42,11 @@ async function projectListHandler(options) {
|
|
|
41
42
|
apiKey: options.apiKey,
|
|
42
43
|
},
|
|
43
44
|
});
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
45
|
+
const validation = validateConfig({ config, projectRequired: false });
|
|
46
|
+
if (!validation.valid) {
|
|
47
|
+
writeError({
|
|
48
|
+
message: getConfigErrorMessage({ errors: validation.errors }),
|
|
49
|
+
});
|
|
49
50
|
process.exit(ExitCode.INVALID_ARGUMENT);
|
|
50
51
|
}
|
|
51
52
|
const client = createPhoenixClient({ config });
|
|
@@ -75,6 +76,69 @@ export function configureProjectListCommand(command) {
|
|
|
75
76
|
.option("--limit <number>", "Maximum number of projects to fetch per page", parseInt)
|
|
76
77
|
.action(projectListHandler);
|
|
77
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Handler for `project delete`
|
|
81
|
+
*/
|
|
82
|
+
async function projectDeleteHandler(projectIdentifier, options) {
|
|
83
|
+
try {
|
|
84
|
+
assertDeletesEnabled();
|
|
85
|
+
const config = resolveConfig({
|
|
86
|
+
cliOptions: {
|
|
87
|
+
endpoint: options.endpoint,
|
|
88
|
+
apiKey: options.apiKey,
|
|
89
|
+
},
|
|
90
|
+
});
|
|
91
|
+
const validation = validateConfig({ config, projectRequired: false });
|
|
92
|
+
if (!validation.valid) {
|
|
93
|
+
writeError({
|
|
94
|
+
message: getConfigErrorMessage({ errors: validation.errors }),
|
|
95
|
+
});
|
|
96
|
+
process.exit(ExitCode.INVALID_ARGUMENT);
|
|
97
|
+
}
|
|
98
|
+
const client = createPhoenixClient({ config });
|
|
99
|
+
await confirmOrExit({
|
|
100
|
+
message: `Delete project ${projectIdentifier}? This will also delete all traces, spans, sessions, and annotations. This cannot be undone.`,
|
|
101
|
+
yes: options.yes,
|
|
102
|
+
});
|
|
103
|
+
writeProgress({
|
|
104
|
+
message: `Deleting project ${projectIdentifier}...`,
|
|
105
|
+
noProgress: !options.progress,
|
|
106
|
+
});
|
|
107
|
+
const response = await client.DELETE("/v1/projects/{project_identifier}", {
|
|
108
|
+
params: {
|
|
109
|
+
path: {
|
|
110
|
+
project_identifier: projectIdentifier,
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
if (response.error) {
|
|
115
|
+
throw new Error(`Failed to delete project: ${response.error}`);
|
|
116
|
+
}
|
|
117
|
+
writeProgress({
|
|
118
|
+
message: `Project ${projectIdentifier} deleted successfully`,
|
|
119
|
+
noProgress: !options.progress,
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
writeError({
|
|
124
|
+
message: `Error deleting project: ${error instanceof Error ? error.message : String(error)}`,
|
|
125
|
+
});
|
|
126
|
+
process.exit(getExitCodeForError(error));
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Create the `project delete` command
|
|
131
|
+
*/
|
|
132
|
+
export function createProjectDeleteCommand() {
|
|
133
|
+
return new Command("delete")
|
|
134
|
+
.description("Delete a Phoenix project")
|
|
135
|
+
.argument("<project-identifier>", "Project name or ID")
|
|
136
|
+
.option("--endpoint <url>", "Phoenix API endpoint")
|
|
137
|
+
.option("--api-key <key>", "Phoenix API key for authentication")
|
|
138
|
+
.option("-y, --yes", "Skip confirmation prompt")
|
|
139
|
+
.option("--no-progress", "Disable progress indicators")
|
|
140
|
+
.action(projectDeleteHandler);
|
|
141
|
+
}
|
|
78
142
|
/**
|
|
79
143
|
* Create the `project` command with subcommands
|
|
80
144
|
*/
|
|
@@ -82,6 +146,7 @@ export function createProjectCommand() {
|
|
|
82
146
|
const command = new Command("project");
|
|
83
147
|
command.description("Manage Phoenix projects");
|
|
84
148
|
command.addCommand(configureProjectListCommand(new Command("list")));
|
|
149
|
+
command.addCommand(createProjectDeleteCommand());
|
|
85
150
|
return command;
|
|
86
151
|
}
|
|
87
152
|
//# sourceMappingURL=project.js.map
|