@arizeai/phoenix-cli 0.1.0 → 0.3.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.
Files changed (58) hide show
  1. package/README.md +103 -1
  2. package/build/cli.d.ts.map +1 -1
  3. package/build/cli.js +5 -1
  4. package/build/cli.js.map +1 -1
  5. package/build/client.d.ts +18 -0
  6. package/build/client.d.ts.map +1 -1
  7. package/build/client.js +39 -0
  8. package/build/client.js.map +1 -1
  9. package/build/commands/dataset.d.ts +6 -0
  10. package/build/commands/dataset.d.ts.map +1 -0
  11. package/build/commands/dataset.js +153 -0
  12. package/build/commands/dataset.js.map +1 -0
  13. package/build/commands/datasets.d.ts +6 -0
  14. package/build/commands/datasets.d.ts.map +1 -0
  15. package/build/commands/datasets.js +97 -0
  16. package/build/commands/datasets.js.map +1 -0
  17. package/build/commands/experiment.d.ts +6 -0
  18. package/build/commands/experiment.d.ts.map +1 -0
  19. package/build/commands/experiment.js +106 -0
  20. package/build/commands/experiment.js.map +1 -0
  21. package/build/commands/experiments.d.ts +6 -0
  22. package/build/commands/experiments.d.ts.map +1 -0
  23. package/build/commands/experiments.js +201 -0
  24. package/build/commands/experiments.js.map +1 -0
  25. package/build/commands/formatDataset.d.ts +26 -0
  26. package/build/commands/formatDataset.d.ts.map +1 -0
  27. package/build/commands/formatDataset.js +60 -0
  28. package/build/commands/formatDataset.js.map +1 -0
  29. package/build/commands/formatDatasets.d.ts +27 -0
  30. package/build/commands/formatDatasets.d.ts.map +1 -0
  31. package/build/commands/formatDatasets.js +76 -0
  32. package/build/commands/formatDatasets.js.map +1 -0
  33. package/build/commands/formatExperiment.d.ts +35 -0
  34. package/build/commands/formatExperiment.d.ts.map +1 -0
  35. package/build/commands/formatExperiment.js +191 -0
  36. package/build/commands/formatExperiment.js.map +1 -0
  37. package/build/commands/formatExperiments.d.ts +16 -0
  38. package/build/commands/formatExperiments.d.ts.map +1 -0
  39. package/build/commands/formatExperiments.js +53 -0
  40. package/build/commands/formatExperiments.js.map +1 -0
  41. package/build/commands/index.d.ts +4 -0
  42. package/build/commands/index.d.ts.map +1 -1
  43. package/build/commands/index.js +4 -0
  44. package/build/commands/index.js.map +1 -1
  45. package/build/commands/spanAnnotations.d.ts +14 -0
  46. package/build/commands/spanAnnotations.d.ts.map +1 -0
  47. package/build/commands/spanAnnotations.js +60 -0
  48. package/build/commands/spanAnnotations.js.map +1 -0
  49. package/build/commands/trace.d.ts.map +1 -1
  50. package/build/commands/trace.js +29 -0
  51. package/build/commands/trace.js.map +1 -1
  52. package/build/commands/traces.d.ts.map +1 -1
  53. package/build/commands/traces.js +37 -0
  54. package/build/commands/traces.js.map +1 -1
  55. package/build/trace.d.ts +9 -5
  56. package/build/trace.d.ts.map +1 -1
  57. package/build/trace.js.map +1 -1
  58. package/package.json +3 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"experiment.js","sourceRoot":"","sources":["../../src/commands/experiment.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Command } from "commander";
2
+ /**
3
+ * Create the experiments command
4
+ */
5
+ export declare function createExperimentsCommand(): Command;
6
+ //# sourceMappingURL=experiments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"experiments.d.ts","sourceRoot":"","sources":["../../src/commands/experiments.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6OpC;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,OAAO,CA0BlD"}
@@ -0,0 +1,201 @@
1
+ import { createPhoenixClient, resolveDatasetId } from "../client.js";
2
+ import { getConfigErrorMessage, resolveConfig } from "../config.js";
3
+ import { writeError, writeOutput, writeProgress } from "../io.js";
4
+ import { formatExperimentsOutput, } from "./formatExperiments.js";
5
+ import { Command } from "commander";
6
+ import * as fs from "fs";
7
+ import * as path from "path";
8
+ /**
9
+ * Fetch experiments for a dataset from Phoenix
10
+ */
11
+ async function fetchExperiments(client, datasetId, options = {}) {
12
+ const allExperiments = [];
13
+ let cursor;
14
+ const pageLimit = options.limit || 100;
15
+ do {
16
+ const response = await client.GET("/v1/datasets/{dataset_id}/experiments", {
17
+ params: {
18
+ path: {
19
+ dataset_id: datasetId,
20
+ },
21
+ query: {
22
+ cursor,
23
+ limit: pageLimit,
24
+ },
25
+ },
26
+ });
27
+ if (response.error || !response.data) {
28
+ throw new Error(`Failed to fetch experiments: ${response.error}`);
29
+ }
30
+ allExperiments.push(...response.data.data);
31
+ cursor = response.data.next_cursor || undefined;
32
+ // If we've fetched enough for the requested limit, stop
33
+ if (options.limit && allExperiments.length >= options.limit) {
34
+ break;
35
+ }
36
+ } while (cursor);
37
+ return allExperiments;
38
+ }
39
+ /**
40
+ * Download experiment JSON data
41
+ */
42
+ async function downloadExperimentJson(client, experimentId) {
43
+ const response = await client.GET("/v1/experiments/{experiment_id}/json", {
44
+ params: {
45
+ path: {
46
+ experiment_id: experimentId,
47
+ },
48
+ },
49
+ parseAs: "text",
50
+ });
51
+ if (response.error || response.data === undefined) {
52
+ throw new Error(`Failed to download experiment: ${response.error}`);
53
+ }
54
+ return response.data;
55
+ }
56
+ /**
57
+ * Write experiments to directory
58
+ */
59
+ async function writeExperimentsToDirectory(client, experiments, directory, options = {}) {
60
+ // Create directory if it doesn't exist
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
+ * Experiments command handler
91
+ */
92
+ async function experimentsHandler(directory, options) {
93
+ try {
94
+ const userSpecifiedFormat = process.argv.includes("--format") ||
95
+ process.argv.some((arg) => arg.startsWith("--format="));
96
+ // Resolve configuration
97
+ const config = resolveConfig({
98
+ cliOptions: {
99
+ endpoint: options.endpoint,
100
+ apiKey: options.apiKey,
101
+ },
102
+ });
103
+ // Validate that we have endpoint
104
+ if (!config.endpoint) {
105
+ const errors = [
106
+ "Phoenix endpoint not configured. Set PHOENIX_HOST environment variable or use --endpoint flag.",
107
+ ];
108
+ writeError({ message: getConfigErrorMessage({ errors }) });
109
+ process.exit(1);
110
+ }
111
+ // Validate that we have dataset
112
+ if (!options.dataset) {
113
+ writeError({
114
+ message: "Dataset not specified. Use --dataset <name-or-id> to specify a dataset.",
115
+ });
116
+ process.exit(1);
117
+ }
118
+ // Create client
119
+ const client = createPhoenixClient({ config });
120
+ writeProgress({
121
+ message: `Resolving dataset: ${options.dataset}`,
122
+ noProgress: !options.progress,
123
+ });
124
+ // Resolve dataset ID
125
+ const datasetId = await resolveDatasetId({
126
+ client,
127
+ datasetIdentifier: options.dataset,
128
+ });
129
+ writeProgress({
130
+ message: `Fetching experiments for dataset ${datasetId}...`,
131
+ noProgress: !options.progress,
132
+ });
133
+ // Fetch experiments
134
+ const experiments = await fetchExperiments(client, datasetId, {
135
+ limit: options.limit,
136
+ });
137
+ if (experiments.length === 0) {
138
+ writeProgress({
139
+ message: "No experiments found",
140
+ noProgress: !options.progress,
141
+ });
142
+ return;
143
+ }
144
+ writeProgress({
145
+ message: `Found ${experiments.length} experiment(s)`,
146
+ noProgress: !options.progress,
147
+ });
148
+ // Output experiments
149
+ if (directory) {
150
+ if (userSpecifiedFormat && options.format && options.format !== "json") {
151
+ writeError({
152
+ message: `Warning: --format is ignored when writing experiments to a directory; writing JSON files to ${directory}`,
153
+ });
154
+ }
155
+ // Write to directory
156
+ writeProgress({
157
+ message: `Writing experiments to ${directory}...`,
158
+ noProgress: !options.progress,
159
+ });
160
+ await writeExperimentsToDirectory(client, experiments, directory, {
161
+ noProgress: !options.progress,
162
+ });
163
+ writeProgress({
164
+ message: `Done! Wrote ${experiments.length} experiment(s) to ${directory}`,
165
+ noProgress: !options.progress,
166
+ });
167
+ }
168
+ else {
169
+ // Write to stdout
170
+ const output = formatExperimentsOutput({
171
+ experiments,
172
+ format: options.format,
173
+ });
174
+ writeOutput({ message: output });
175
+ }
176
+ }
177
+ catch (error) {
178
+ writeError({
179
+ message: `Error fetching experiments: ${error instanceof Error ? error.message : String(error)}`,
180
+ });
181
+ process.exit(1);
182
+ }
183
+ }
184
+ /**
185
+ * Create the experiments command
186
+ */
187
+ export function createExperimentsCommand() {
188
+ const command = new Command("experiments");
189
+ command
190
+ .description("List experiments for a dataset")
191
+ .argument("[directory]", "Directory to write experiment files (optional, downloads full JSON data)")
192
+ .requiredOption("--dataset <name-or-id>", "Dataset name or ID (required)")
193
+ .option("--endpoint <url>", "Phoenix API endpoint")
194
+ .option("--api-key <key>", "Phoenix API key for authentication")
195
+ .option("--format <format>", "Output format: pretty, json, or raw", "pretty")
196
+ .option("--no-progress", "Disable progress indicators")
197
+ .option("--limit <number>", "Maximum number of experiments to fetch", parseInt)
198
+ .action(experimentsHandler);
199
+ return command;
200
+ }
201
+ //# sourceMappingURL=experiments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"experiments.js","sourceRoot":"","sources":["../../src/commands/experiments.ts"],"names":[],"mappings":"AAEA,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;AAE/D,OAAO,EACL,uBAAuB,GAExB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAa7B;;GAEG;AACH,KAAK,UAAU,gBAAgB,CAC7B,MAAqB,EACrB,SAAiB,EACjB,UAA8B,EAAE;IAEhC,MAAM,cAAc,GAAiB,EAAE,CAAC;IACxC,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,uCAAuC,EAAE;YACzE,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,UAAU,EAAE,SAAS;iBACtB;gBACD,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,gCAAgC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,cAAc,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC;QAEhD,wDAAwD;QACxD,IAAI,OAAO,CAAC,KAAK,IAAI,cAAc,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAC5D,MAAM;QACR,CAAC;IACH,CAAC,QAAQ,MAAM,EAAE;IAEjB,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,sBAAsB,CACnC,MAAqB,EACrB,YAAoB;IAEpB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,sCAAsC,EAAE;QACxE,MAAM,EAAE;YACN,IAAI,EAAE;gBACJ,aAAa,EAAE,YAAY;aAC5B;SACF;QACD,OAAO,EAAE,MAAM;KAChB,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,kCAAkC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,QAAQ,CAAC,IAAc,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,2BAA2B,CACxC,MAAqB,EACrB,WAAyB,EACzB,SAAiB,EACjB,UAEI,EAAE;IAEN,uCAAuC;IACvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,aAAa,CAAC;gBACZ,OAAO,EAAE,IAAI,SAAS,GAAG,CAAC,IAAI,WAAW,CAAC,MAAM,4BAA4B,UAAU,CAAC,EAAE,KAAK;gBAC9F,UAAU,EAAE,OAAO,CAAC,UAAU;aAC/B,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;YAErE,MAAM,QAAQ,GAAG,GAAG,UAAU,CAAC,EAAE,OAAO,CAAC;YACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAChD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAE9C,SAAS,EAAE,CAAC;YACZ,aAAa,CAAC;gBACZ,OAAO,EAAE,IAAI,SAAS,IAAI,WAAW,CAAC,MAAM,WAAW,QAAQ,EAAE;gBACjE,UAAU,EAAE,OAAO,CAAC,UAAU;aAC/B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,aAAa,CAAC;gBACZ,OAAO,EAAE,0CAA0C,UAAU,CAAC,EAAE,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBAC7H,UAAU,EAAE,OAAO,CAAC,UAAU;aAC/B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAC/B,SAA6B,EAC7B,OAA2B;IAE3B,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;QAClB,CAAC;QAED,gCAAgC;QAChC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,UAAU,CAAC;gBACT,OAAO,EACL,yEAAyE;aAC5E,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,gBAAgB;QAChB,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAE/C,aAAa,CAAC;YACZ,OAAO,EAAE,sBAAsB,OAAO,CAAC,OAAO,EAAE;YAChD,UAAU,EAAE,CAAC,OAAO,CAAC,QAAQ;SAC9B,CAAC,CAAC;QAEH,qBAAqB;QACrB,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC;YACvC,MAAM;YACN,iBAAiB,EAAE,OAAO,CAAC,OAAO;SACnC,CAAC,CAAC;QAEH,aAAa,CAAC;YACZ,OAAO,EAAE,oCAAoC,SAAS,KAAK;YAC3D,UAAU,EAAE,CAAC,OAAO,CAAC,QAAQ;SAC9B,CAAC,CAAC;QAEH,oBAAoB;QACpB,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE;YAC5D,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAC;QAEH,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,aAAa,CAAC;gBACZ,OAAO,EAAE,sBAAsB;gBAC/B,UAAU,EAAE,CAAC,OAAO,CAAC,QAAQ;aAC9B,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,aAAa,CAAC;YACZ,OAAO,EAAE,SAAS,WAAW,CAAC,MAAM,gBAAgB;YACpD,UAAU,EAAE,CAAC,OAAO,CAAC,QAAQ;SAC9B,CAAC,CAAC;QAEH,qBAAqB;QACrB,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,mBAAmB,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBACvE,UAAU,CAAC;oBACT,OAAO,EAAE,+FAA+F,SAAS,EAAE;iBACpH,CAAC,CAAC;YACL,CAAC;YAED,qBAAqB;YACrB,aAAa,CAAC;gBACZ,OAAO,EAAE,0BAA0B,SAAS,KAAK;gBACjD,UAAU,EAAE,CAAC,OAAO,CAAC,QAAQ;aAC9B,CAAC,CAAC;YAEH,MAAM,2BAA2B,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE;gBAChE,UAAU,EAAE,CAAC,OAAO,CAAC,QAAQ;aAC9B,CAAC,CAAC;YAEH,aAAa,CAAC;gBACZ,OAAO,EAAE,eAAe,WAAW,CAAC,MAAM,qBAAqB,SAAS,EAAE;gBAC1E,UAAU,EAAE,CAAC,OAAO,CAAC,QAAQ;aAC9B,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,kBAAkB;YAClB,MAAM,MAAM,GAAG,uBAAuB,CAAC;gBACrC,WAAW;gBACX,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;YACH,WAAW,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC;YACT,OAAO,EAAE,+BAA+B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;SACjG,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB;IACtC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IAE3C,OAAO;SACJ,WAAW,CAAC,gCAAgC,CAAC;SAC7C,QAAQ,CACP,aAAa,EACb,0EAA0E,CAC3E;SACA,cAAc,CAAC,wBAAwB,EAAE,+BAA+B,CAAC;SACzE,MAAM,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;SAClD,MAAM,CAAC,iBAAiB,EAAE,oCAAoC,CAAC;SAC/D,MAAM,CACL,mBAAmB,EACnB,qCAAqC,EACrC,QAAQ,CACT;SACA,MAAM,CAAC,eAAe,EAAE,6BAA6B,CAAC;SACtD,MAAM,CACL,kBAAkB,EAClB,wCAAwC,EACxC,QAAQ,CACT;SACA,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAE9B,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { componentsV1 } from "@arizeai/phoenix-client";
2
+ export type OutputFormat = "pretty" | "json" | "raw";
3
+ type DatasetExample = componentsV1["schemas"]["DatasetExample"];
4
+ export interface DatasetExamplesData {
5
+ dataset_id: string;
6
+ version_id: string;
7
+ filtered_splits?: string[];
8
+ examples: DatasetExample[];
9
+ }
10
+ export interface FormatDatasetExamplesOutputOptions {
11
+ /**
12
+ * Dataset examples data to format.
13
+ */
14
+ data: DatasetExamplesData;
15
+ /**
16
+ * Dataset name (for display purposes).
17
+ */
18
+ datasetName?: string;
19
+ /**
20
+ * Output format. Defaults to `"pretty"`.
21
+ */
22
+ format?: OutputFormat;
23
+ }
24
+ export declare function formatDatasetExamplesOutput({ data, datasetName, format, }: FormatDatasetExamplesOutputOptions): string;
25
+ export {};
26
+ //# sourceMappingURL=formatDataset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatDataset.d.ts","sourceRoot":"","sources":["../../src/commands/formatDataset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;AAErD,KAAK,cAAc,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,gBAAgB,CAAC,CAAC;AAEhE,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,kCAAkC;IACjD;;OAEG;IACH,IAAI,EAAE,mBAAmB,CAAC;IAC1B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,wBAAgB,2BAA2B,CAAC,EAC1C,IAAI,EACJ,WAAW,EACX,MAAM,GACP,EAAE,kCAAkC,GAAG,MAAM,CAS7C"}
@@ -0,0 +1,60 @@
1
+ export function formatDatasetExamplesOutput({ data, datasetName, format, }) {
2
+ const selected = format || "pretty";
3
+ if (selected === "raw") {
4
+ return JSON.stringify(data);
5
+ }
6
+ if (selected === "json") {
7
+ return JSON.stringify(data, null, 2);
8
+ }
9
+ return formatDatasetExamplesPretty(data, datasetName);
10
+ }
11
+ function formatDatasetExamplesPretty(data, datasetName) {
12
+ const lines = [];
13
+ // Header
14
+ const displayName = datasetName || data.dataset_id;
15
+ lines.push(`Dataset: ${displayName} (${data.dataset_id})`);
16
+ lines.push(`Version: ${data.version_id}`);
17
+ if (data.filtered_splits && data.filtered_splits.length > 0) {
18
+ lines.push(`Splits: ${data.filtered_splits.join(", ")}`);
19
+ }
20
+ lines.push(`Examples: ${data.examples.length}`);
21
+ lines.push("");
22
+ if (data.examples.length === 0) {
23
+ lines.push("No examples found");
24
+ return lines.join("\n");
25
+ }
26
+ // Examples
27
+ for (const example of data.examples) {
28
+ lines.push(`┌─ Example: ${example.id}`);
29
+ const inputPreview = truncateJson(example.input, 150);
30
+ lines.push(`│ Input: ${inputPreview}`);
31
+ const outputPreview = truncateJson(example.output, 150);
32
+ lines.push(`│ Output: ${outputPreview}`);
33
+ if (example.metadata && Object.keys(example.metadata).length > 0) {
34
+ const metadataPreview = truncateJson(example.metadata, 100);
35
+ lines.push(`│ Metadata: ${metadataPreview}`);
36
+ }
37
+ lines.push(`└─`);
38
+ lines.push("");
39
+ }
40
+ return lines.join("\n").trimEnd();
41
+ }
42
+ function truncateJson(obj, maxLength) {
43
+ if (obj === null || obj === undefined) {
44
+ return "null";
45
+ }
46
+ let str;
47
+ try {
48
+ str = JSON.stringify(obj);
49
+ }
50
+ catch {
51
+ str = String(obj);
52
+ }
53
+ // Clean up whitespace for display
54
+ str = str.replace(/\s+/g, " ").trim();
55
+ if (str.length <= maxLength) {
56
+ return str;
57
+ }
58
+ return `${str.slice(0, maxLength)}…`;
59
+ }
60
+ //# sourceMappingURL=formatDataset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatDataset.js","sourceRoot":"","sources":["../../src/commands/formatDataset.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { componentsV1 } from "@arizeai/phoenix-client";
2
+ export type OutputFormat = "pretty" | "json" | "raw";
3
+ type Dataset = componentsV1["schemas"]["Dataset"];
4
+ export interface FormatDatasetsOutputOptions {
5
+ /**
6
+ * Datasets to format.
7
+ */
8
+ datasets: Dataset[];
9
+ /**
10
+ * Output format. Defaults to `"pretty"`.
11
+ */
12
+ format?: OutputFormat;
13
+ }
14
+ export declare function formatDatasetsOutput({ datasets, format, }: FormatDatasetsOutputOptions): string;
15
+ export interface FormatDatasetOutputOptions {
16
+ /**
17
+ * Dataset to format.
18
+ */
19
+ dataset: Dataset;
20
+ /**
21
+ * Output format. Defaults to `"pretty"`.
22
+ */
23
+ format?: OutputFormat;
24
+ }
25
+ export declare function formatDatasetOutput({ dataset, format, }: FormatDatasetOutputOptions): string;
26
+ export {};
27
+ //# sourceMappingURL=formatDatasets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatDatasets.d.ts","sourceRoot":"","sources":["../../src/commands/formatDatasets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;AAErD,KAAK,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC;AAElD,MAAM,WAAW,2BAA2B;IAC1C;;OAEG;IACH,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,wBAAgB,oBAAoB,CAAC,EACnC,QAAQ,EACR,MAAM,GACP,EAAE,2BAA2B,GAAG,MAAM,CAStC;AAiCD,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,wBAAgB,mBAAmB,CAAC,EAClC,OAAO,EACP,MAAM,GACP,EAAE,0BAA0B,GAAG,MAAM,CASrC"}
@@ -0,0 +1,76 @@
1
+ export function formatDatasetsOutput({ datasets, format, }) {
2
+ const selected = format || "pretty";
3
+ if (selected === "raw") {
4
+ return JSON.stringify(datasets);
5
+ }
6
+ if (selected === "json") {
7
+ return JSON.stringify(datasets, null, 2);
8
+ }
9
+ return formatDatasetsPretty(datasets);
10
+ }
11
+ function formatDatasetsPretty(datasets) {
12
+ if (datasets.length === 0) {
13
+ return "No datasets found";
14
+ }
15
+ const lines = [];
16
+ lines.push("Datasets:");
17
+ lines.push("");
18
+ for (const dataset of datasets) {
19
+ const desc = dataset.description === null ||
20
+ dataset.description === undefined ||
21
+ dataset.description === ""
22
+ ? ""
23
+ : ` — ${dataset.description}`;
24
+ lines.push(`┌─ ${dataset.name} (${dataset.id})`);
25
+ lines.push(`│ Examples: ${dataset.example_count}`);
26
+ lines.push(`│ Created: ${formatDate(dataset.created_at)}`);
27
+ lines.push(`│ Updated: ${formatDate(dataset.updated_at)}`);
28
+ if (desc) {
29
+ lines.push(`│ Description:${desc}`);
30
+ }
31
+ lines.push(`└─`);
32
+ lines.push("");
33
+ }
34
+ return lines.join("\n").trimEnd();
35
+ }
36
+ export function formatDatasetOutput({ dataset, format, }) {
37
+ const selected = format || "pretty";
38
+ if (selected === "raw") {
39
+ return JSON.stringify(dataset);
40
+ }
41
+ if (selected === "json") {
42
+ return JSON.stringify(dataset, null, 2);
43
+ }
44
+ return formatDatasetPretty(dataset);
45
+ }
46
+ function formatDatasetPretty(dataset) {
47
+ const lines = [];
48
+ const desc = dataset.description === null ||
49
+ dataset.description === undefined ||
50
+ dataset.description === ""
51
+ ? ""
52
+ : ` — ${dataset.description}`;
53
+ lines.push(`┌─ Dataset: ${dataset.name} (${dataset.id})`);
54
+ lines.push(`│`);
55
+ lines.push(`│ Examples: ${dataset.example_count}`);
56
+ lines.push(`│ Created: ${formatDate(dataset.created_at)}`);
57
+ lines.push(`│ Updated: ${formatDate(dataset.updated_at)}`);
58
+ if (desc) {
59
+ lines.push(`│ Description:${desc}`);
60
+ }
61
+ if (dataset.metadata && Object.keys(dataset.metadata).length > 0) {
62
+ lines.push(`│ Metadata: ${JSON.stringify(dataset.metadata)}`);
63
+ }
64
+ lines.push(`└─`);
65
+ return lines.join("\n");
66
+ }
67
+ function formatDate(dateStr) {
68
+ try {
69
+ const date = new Date(dateStr);
70
+ return date.toLocaleString();
71
+ }
72
+ catch {
73
+ return dateStr;
74
+ }
75
+ }
76
+ //# sourceMappingURL=formatDatasets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatDatasets.js","sourceRoot":"","sources":["../../src/commands/formatDatasets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { componentsV1 } from "@arizeai/phoenix-client";
2
+ export type OutputFormat = "pretty" | "json" | "raw";
3
+ type Experiment = componentsV1["schemas"]["Experiment"];
4
+ type ExperimentRun = componentsV1["schemas"]["ExperimentRun"];
5
+ export interface ExperimentWithRuns {
6
+ experiment: Experiment;
7
+ runs: ExperimentRun[];
8
+ }
9
+ export interface FormatExperimentOutputOptions {
10
+ /**
11
+ * Experiment data to format.
12
+ */
13
+ data: ExperimentWithRuns;
14
+ /**
15
+ * Output format. Defaults to `"pretty"`.
16
+ */
17
+ format?: OutputFormat;
18
+ }
19
+ export declare function formatExperimentOutput({ data, format, }: FormatExperimentOutputOptions): string;
20
+ /**
21
+ * Format raw experiment JSON data from the API
22
+ */
23
+ export interface FormatExperimentJsonOutputOptions {
24
+ /**
25
+ * Raw JSON data from the experiment endpoint.
26
+ */
27
+ jsonData: string;
28
+ /**
29
+ * Output format. Defaults to `"pretty"`.
30
+ */
31
+ format?: OutputFormat;
32
+ }
33
+ export declare function formatExperimentJsonOutput({ jsonData, format, }: FormatExperimentJsonOutputOptions): string;
34
+ export {};
35
+ //# sourceMappingURL=formatExperiment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatExperiment.d.ts","sourceRoot":"","sources":["../../src/commands/formatExperiment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;AAErD,KAAK,UAAU,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC;AACxD,KAAK,aAAa,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAC;AAE9D,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,UAAU,CAAC;IACvB,IAAI,EAAE,aAAa,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,6BAA6B;IAC5C;;OAEG;IACH,IAAI,EAAE,kBAAkB,CAAC;IACzB;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,wBAAgB,sBAAsB,CAAC,EACrC,IAAI,EACJ,MAAM,GACP,EAAE,6BAA6B,GAAG,MAAM,CASxC;AAoED;;GAEG;AACH,MAAM,WAAW,iCAAiC;IAChD;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,wBAAgB,0BAA0B,CAAC,EACzC,QAAQ,EACR,MAAM,GACP,EAAE,iCAAiC,GAAG,MAAM,CAsB5C"}