@arizeai/phoenix-client 5.2.1 → 5.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 (112) hide show
  1. package/dist/esm/__generated__/api/v1.d.ts +321 -9
  2. package/dist/esm/__generated__/api/v1.d.ts.map +1 -1
  3. package/dist/esm/experiments/createExperiment.d.ts +39 -0
  4. package/dist/esm/experiments/createExperiment.d.ts.map +1 -0
  5. package/dist/esm/experiments/createExperiment.js +43 -0
  6. package/dist/esm/experiments/createExperiment.js.map +1 -0
  7. package/dist/esm/experiments/deleteExperiment.d.ts +36 -0
  8. package/dist/esm/experiments/deleteExperiment.d.ts.map +1 -0
  9. package/dist/esm/experiments/deleteExperiment.js +49 -0
  10. package/dist/esm/experiments/deleteExperiment.js.map +1 -0
  11. package/dist/esm/experiments/getExperimentInfo.d.ts.map +1 -1
  12. package/dist/esm/experiments/getExperimentInfo.js +9 -2
  13. package/dist/esm/experiments/getExperimentInfo.js.map +1 -1
  14. package/dist/esm/experiments/index.d.ts +5 -0
  15. package/dist/esm/experiments/index.d.ts.map +1 -1
  16. package/dist/esm/experiments/index.js +5 -0
  17. package/dist/esm/experiments/index.js.map +1 -1
  18. package/dist/esm/experiments/listExperiments.d.ts +29 -0
  19. package/dist/esm/experiments/listExperiments.d.ts.map +1 -0
  20. package/dist/esm/experiments/listExperiments.js +59 -0
  21. package/dist/esm/experiments/listExperiments.js.map +1 -0
  22. package/dist/esm/experiments/resumeEvaluation.d.ts +105 -0
  23. package/dist/esm/experiments/resumeEvaluation.d.ts.map +1 -0
  24. package/dist/esm/experiments/resumeEvaluation.js +558 -0
  25. package/dist/esm/experiments/resumeEvaluation.js.map +1 -0
  26. package/dist/esm/experiments/resumeExperiment.d.ts +102 -0
  27. package/dist/esm/experiments/resumeExperiment.d.ts.map +1 -0
  28. package/dist/esm/experiments/resumeExperiment.js +517 -0
  29. package/dist/esm/experiments/resumeExperiment.js.map +1 -0
  30. package/dist/esm/experiments/runExperiment.d.ts.map +1 -1
  31. package/dist/esm/experiments/runExperiment.js +28 -2
  32. package/dist/esm/experiments/runExperiment.js.map +1 -1
  33. package/dist/esm/prompts/createPrompt.d.ts +19 -1
  34. package/dist/esm/prompts/createPrompt.d.ts.map +1 -1
  35. package/dist/esm/prompts/createPrompt.js +14 -1
  36. package/dist/esm/prompts/createPrompt.js.map +1 -1
  37. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  38. package/dist/esm/types/experiments.d.ts +60 -3
  39. package/dist/esm/types/experiments.d.ts.map +1 -1
  40. package/dist/esm/utils/channel.d.ts +229 -0
  41. package/dist/esm/utils/channel.d.ts.map +1 -0
  42. package/dist/esm/utils/channel.js +352 -0
  43. package/dist/esm/utils/channel.js.map +1 -0
  44. package/dist/esm/utils/formatPromptMessages.d.ts.map +1 -1
  45. package/dist/esm/utils/getPromptBySelector.d.ts.map +1 -1
  46. package/dist/esm/utils/isHttpError.d.ts +21 -0
  47. package/dist/esm/utils/isHttpError.d.ts.map +1 -0
  48. package/dist/esm/utils/isHttpError.js +33 -0
  49. package/dist/esm/utils/isHttpError.js.map +1 -0
  50. package/dist/src/__generated__/api/v1.d.ts +321 -9
  51. package/dist/src/__generated__/api/v1.d.ts.map +1 -1
  52. package/dist/src/experiments/createExperiment.d.ts +39 -0
  53. package/dist/src/experiments/createExperiment.d.ts.map +1 -0
  54. package/dist/src/experiments/createExperiment.js +43 -0
  55. package/dist/src/experiments/createExperiment.js.map +1 -0
  56. package/dist/src/experiments/deleteExperiment.d.ts +36 -0
  57. package/dist/src/experiments/deleteExperiment.d.ts.map +1 -0
  58. package/dist/src/experiments/deleteExperiment.js +52 -0
  59. package/dist/src/experiments/deleteExperiment.js.map +1 -0
  60. package/dist/src/experiments/getExperimentInfo.d.ts.map +1 -1
  61. package/dist/src/experiments/getExperimentInfo.js +9 -2
  62. package/dist/src/experiments/getExperimentInfo.js.map +1 -1
  63. package/dist/src/experiments/index.d.ts +5 -0
  64. package/dist/src/experiments/index.d.ts.map +1 -1
  65. package/dist/src/experiments/index.js +5 -0
  66. package/dist/src/experiments/index.js.map +1 -1
  67. package/dist/src/experiments/listExperiments.d.ts +29 -0
  68. package/dist/src/experiments/listExperiments.d.ts.map +1 -0
  69. package/dist/src/experiments/listExperiments.js +66 -0
  70. package/dist/src/experiments/listExperiments.js.map +1 -0
  71. package/dist/src/experiments/resumeEvaluation.d.ts +105 -0
  72. package/dist/src/experiments/resumeEvaluation.d.ts.map +1 -0
  73. package/dist/src/experiments/resumeEvaluation.js +584 -0
  74. package/dist/src/experiments/resumeEvaluation.js.map +1 -0
  75. package/dist/src/experiments/resumeExperiment.d.ts +102 -0
  76. package/dist/src/experiments/resumeExperiment.d.ts.map +1 -0
  77. package/dist/src/experiments/resumeExperiment.js +540 -0
  78. package/dist/src/experiments/resumeExperiment.js.map +1 -0
  79. package/dist/src/experiments/runExperiment.d.ts.map +1 -1
  80. package/dist/src/experiments/runExperiment.js +28 -2
  81. package/dist/src/experiments/runExperiment.js.map +1 -1
  82. package/dist/src/prompts/createPrompt.d.ts +19 -1
  83. package/dist/src/prompts/createPrompt.d.ts.map +1 -1
  84. package/dist/src/prompts/createPrompt.js +14 -1
  85. package/dist/src/prompts/createPrompt.js.map +1 -1
  86. package/dist/src/types/experiments.d.ts +60 -3
  87. package/dist/src/types/experiments.d.ts.map +1 -1
  88. package/dist/src/utils/channel.d.ts +229 -0
  89. package/dist/src/utils/channel.d.ts.map +1 -0
  90. package/dist/src/utils/channel.js +385 -0
  91. package/dist/src/utils/channel.js.map +1 -0
  92. package/dist/src/utils/formatPromptMessages.d.ts.map +1 -1
  93. package/dist/src/utils/getPromptBySelector.d.ts.map +1 -1
  94. package/dist/src/utils/isHttpError.d.ts +21 -0
  95. package/dist/src/utils/isHttpError.d.ts.map +1 -0
  96. package/dist/src/utils/isHttpError.js +37 -0
  97. package/dist/src/utils/isHttpError.js.map +1 -0
  98. package/dist/tsconfig.tsbuildinfo +1 -1
  99. package/package.json +1 -1
  100. package/src/__generated__/api/v1.ts +321 -9
  101. package/src/experiments/createExperiment.ts +90 -0
  102. package/src/experiments/deleteExperiment.ts +67 -0
  103. package/src/experiments/getExperimentInfo.ts +9 -2
  104. package/src/experiments/index.ts +5 -0
  105. package/src/experiments/listExperiments.ts +83 -0
  106. package/src/experiments/resumeEvaluation.ts +799 -0
  107. package/src/experiments/resumeExperiment.ts +742 -0
  108. package/src/experiments/runExperiment.ts +30 -2
  109. package/src/prompts/createPrompt.ts +19 -1
  110. package/src/types/experiments.ts +62 -3
  111. package/src/utils/channel.ts +397 -0
  112. package/src/utils/isHttpError.ts +45 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deleteExperiment.d.ts","sourceRoot":"","sources":["../../../src/experiments/deleteExperiment.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,QAAQ;IACtD;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,gBAAgB,CAAC,EACrC,MAAM,EAAE,OAAO,EACf,YAAY,GACb,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBxC"}
@@ -0,0 +1,49 @@
1
+ import { createClient } from "../client.js";
2
+ import { ensureString } from "../utils/ensureString.js";
3
+ /**
4
+ * Delete an experiment by ID.
5
+ *
6
+ * **Important**: This operation permanently deletes the experiment and all its associated
7
+ * runs, evaluations, and annotations.
8
+ *
9
+ * Behavior:
10
+ * - Deletes the experiment and all its data
11
+ * - Returns successfully if experiment is found and deleted
12
+ * - Throws error if experiment is not found (404) or other errors occur
13
+ *
14
+ * @param params - The parameters to delete an experiment
15
+ * @returns Promise that resolves when the experiment is successfully deleted
16
+ * @throws Error if the experiment is not found or deletion fails
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * import { deleteExperiment } from "@arizeai/phoenix-client/experiments";
21
+ *
22
+ * await deleteExperiment({
23
+ * experimentId: "exp_123",
24
+ * });
25
+ * ```
26
+ */
27
+ export async function deleteExperiment({ client: _client, experimentId, }) {
28
+ const client = _client ?? createClient();
29
+ const { error } = await client.DELETE("/v1/experiments/{experiment_id}", {
30
+ params: {
31
+ path: {
32
+ experiment_id: experimentId,
33
+ },
34
+ },
35
+ });
36
+ if (error) {
37
+ const isNotFound = typeof error === "object" &&
38
+ error !== null &&
39
+ "status" in error &&
40
+ error.status === 404;
41
+ if (isNotFound) {
42
+ throw new Error(`Experiment not found: ${experimentId}`);
43
+ }
44
+ // Extract meaningful error information
45
+ const errorMessage = ensureString(error);
46
+ throw new Error(`Failed to delete experiment: ${errorMessage}`);
47
+ }
48
+ }
49
+ //# sourceMappingURL=deleteExperiment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deleteExperiment.js","sourceRoot":"","sources":["../../../src/experiments/deleteExperiment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAYrD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EACrC,MAAM,EAAE,OAAO,EACf,YAAY,GACW;IACvB,MAAM,MAAM,GAAG,OAAO,IAAI,YAAY,EAAE,CAAC;IAEzC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,iCAAiC,EAAE;QACvE,MAAM,EAAE;YACN,IAAI,EAAE;gBACJ,aAAa,EAAE,YAAY;aAC5B;SACF;KACF,CAAC,CAAC;IAEH,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,UAAU,GACd,OAAO,KAAK,KAAK,QAAQ;YACzB,KAAK,KAAK,IAAI;YACd,QAAQ,IAAI,KAAK;YACjB,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC;QACvB,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,YAAY,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,uCAAuC;QACvC,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,gCAAgC,YAAY,EAAE,CAAC,CAAC;IAClE,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getExperimentInfo.d.ts","sourceRoot":"","sources":["../../../src/experiments/getExperimentInfo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG;IAC3C;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,EACtC,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,aAAa,GAC5B,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC,CAkB/C"}
1
+ {"version":3,"file":"getExperimentInfo.d.ts","sourceRoot":"","sources":["../../../src/experiments/getExperimentInfo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG;IAC3C;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,EACtC,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,aAAa,GAC5B,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC,CAyB/C"}
@@ -17,8 +17,15 @@ export async function getExperimentInfo({ client: _client, experimentId: experim
17
17
  id: experimentData.id,
18
18
  datasetId: experimentData.dataset_id,
19
19
  datasetVersionId: experimentData.dataset_version_id,
20
- projectName: experimentData.project_name || "", // This will never happen
21
- metadata: experimentData.metadata,
20
+ repetitions: experimentData.repetitions,
21
+ metadata: experimentData.metadata || {},
22
+ projectName: experimentData.project_name || null,
23
+ createdAt: experimentData.created_at,
24
+ updatedAt: experimentData.updated_at,
25
+ exampleCount: experimentData.example_count,
26
+ successfulRunCount: experimentData.successful_run_count,
27
+ failedRunCount: experimentData.failed_run_count,
28
+ missingRunCount: experimentData.missing_run_count,
22
29
  };
23
30
  }
24
31
  //# sourceMappingURL=getExperimentInfo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getExperimentInfo.js","sourceRoot":"","sources":["../../../src/experiments/getExperimentInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAIzC,OAAO,SAAS,MAAM,gBAAgB,CAAC;AASvC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EACtC,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,aAAa,GACP;IACpB,MAAM,MAAM,GAAG,OAAO,IAAI,YAAY,EAAE,CAAC;IACzC,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,GAC5D,MAAM,MAAM,CAAC,GAAG,CAAC,iCAAiC,EAAE;QAClD,MAAM,EAAE;YACN,IAAI,EAAE;gBACJ,aAAa;aACd;SACF;KACF,CAAC,CAAC;IACL,SAAS,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;IACtD,OAAO;QACL,EAAE,EAAE,cAAc,CAAC,EAAE;QACrB,SAAS,EAAE,cAAc,CAAC,UAAU;QACpC,gBAAgB,EAAE,cAAc,CAAC,kBAAkB;QACnD,WAAW,EAAE,cAAc,CAAC,YAAY,IAAI,EAAE,EAAE,yBAAyB;QACzE,QAAQ,EAAE,cAAc,CAAC,QAAQ;KAClC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"getExperimentInfo.js","sourceRoot":"","sources":["../../../src/experiments/getExperimentInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAIzC,OAAO,SAAS,MAAM,gBAAgB,CAAC;AASvC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EACtC,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,aAAa,GACP;IACpB,MAAM,MAAM,GAAG,OAAO,IAAI,YAAY,EAAE,CAAC;IACzC,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,GAC5D,MAAM,MAAM,CAAC,GAAG,CAAC,iCAAiC,EAAE;QAClD,MAAM,EAAE;YACN,IAAI,EAAE;gBACJ,aAAa;aACd;SACF;KACF,CAAC,CAAC;IACL,SAAS,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;IACtD,OAAO;QACL,EAAE,EAAE,cAAc,CAAC,EAAE;QACrB,SAAS,EAAE,cAAc,CAAC,UAAU;QACpC,gBAAgB,EAAE,cAAc,CAAC,kBAAkB;QACnD,WAAW,EAAE,cAAc,CAAC,WAAW;QACvC,QAAQ,EAAE,cAAc,CAAC,QAAQ,IAAI,EAAE;QACvC,WAAW,EAAE,cAAc,CAAC,YAAY,IAAI,IAAI;QAChD,SAAS,EAAE,cAAc,CAAC,UAAU;QACpC,SAAS,EAAE,cAAc,CAAC,UAAU;QACpC,YAAY,EAAE,cAAc,CAAC,aAAa;QAC1C,kBAAkB,EAAE,cAAc,CAAC,oBAAoB;QACvD,cAAc,EAAE,cAAc,CAAC,gBAAgB;QAC/C,eAAe,EAAE,cAAc,CAAC,iBAAiB;KAClD,CAAC;AACJ,CAAC"}
@@ -2,4 +2,9 @@ export * from "./getExperimentInfo.js";
2
2
  export * from "./getExperiment.js";
3
3
  export * from "./getExperimentRuns.js";
4
4
  export * from "./runExperiment.js";
5
+ export * from "./createExperiment.js";
6
+ export * from "./listExperiments.js";
7
+ export * from "./deleteExperiment.js";
8
+ export * from "./resumeExperiment.js";
9
+ export * from "./resumeEvaluation.js";
5
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/experiments/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/experiments/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
@@ -2,4 +2,9 @@ export * from "./getExperimentInfo.js";
2
2
  export * from "./getExperiment.js";
3
3
  export * from "./getExperimentRuns.js";
4
4
  export * from "./runExperiment.js";
5
+ export * from "./createExperiment.js";
6
+ export * from "./listExperiments.js";
7
+ export * from "./deleteExperiment.js";
8
+ export * from "./resumeExperiment.js";
9
+ export * from "./resumeEvaluation.js";
5
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/experiments/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/experiments/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { ClientFn } from "../types/core.js";
2
+ import { ExperimentInfo } from "../types/experiments.js";
3
+ export type ListExperimentsParams = ClientFn & {
4
+ /**
5
+ * The dataset ID to list experiments for
6
+ */
7
+ datasetId: string;
8
+ };
9
+ /**
10
+ * List all experiments for a dataset with automatic pagination handling.
11
+ *
12
+ * This function automatically handles pagination behind the scenes and returns
13
+ * a simple list of experiments.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * import { listExperiments } from "@arizeai/phoenix-client/experiments";
18
+ *
19
+ * const experiments = await listExperiments({
20
+ * datasetId: "dataset_123",
21
+ * });
22
+ *
23
+ * for (const experiment of experiments) {
24
+ * console.log(`Experiment: ${experiment.id}, Runs: ${experiment.successfulRunCount}`);
25
+ * }
26
+ * ```
27
+ */
28
+ export declare function listExperiments({ client: _client, datasetId, }: ListExperimentsParams): Promise<ExperimentInfo[]>;
29
+ //# sourceMappingURL=listExperiments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listExperiments.d.ts","sourceRoot":"","sources":["../../../src/experiments/listExperiments.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG;IAC7C;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAIF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,eAAe,CAAC,EACpC,MAAM,EAAE,OAAO,EACf,SAAS,GACV,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CA4CnD"}
@@ -0,0 +1,59 @@
1
+ import { createClient } from "../client.js";
2
+ import invariant from "tiny-invariant";
3
+ const DEFAULT_PAGE_SIZE = 50;
4
+ /**
5
+ * List all experiments for a dataset with automatic pagination handling.
6
+ *
7
+ * This function automatically handles pagination behind the scenes and returns
8
+ * a simple list of experiments.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * import { listExperiments } from "@arizeai/phoenix-client/experiments";
13
+ *
14
+ * const experiments = await listExperiments({
15
+ * datasetId: "dataset_123",
16
+ * });
17
+ *
18
+ * for (const experiment of experiments) {
19
+ * console.log(`Experiment: ${experiment.id}, Runs: ${experiment.successfulRunCount}`);
20
+ * }
21
+ * ```
22
+ */
23
+ export async function listExperiments({ client: _client, datasetId, }) {
24
+ const client = _client || createClient();
25
+ const experiments = [];
26
+ let cursor = null;
27
+ do {
28
+ const res = await client.GET("/v1/datasets/{dataset_id}/experiments", {
29
+ params: {
30
+ path: {
31
+ dataset_id: datasetId,
32
+ },
33
+ query: {
34
+ cursor,
35
+ limit: DEFAULT_PAGE_SIZE,
36
+ },
37
+ },
38
+ });
39
+ cursor = res.data?.next_cursor || null;
40
+ const data = res.data?.data;
41
+ invariant(data, "Failed to list experiments");
42
+ experiments.push(...data.map((exp) => ({
43
+ id: exp.id,
44
+ datasetId: exp.dataset_id,
45
+ datasetVersionId: exp.dataset_version_id,
46
+ repetitions: exp.repetitions,
47
+ metadata: exp.metadata || {},
48
+ projectName: exp.project_name || null,
49
+ createdAt: exp.created_at,
50
+ updatedAt: exp.updated_at,
51
+ exampleCount: exp.example_count,
52
+ successfulRunCount: exp.successful_run_count,
53
+ failedRunCount: exp.failed_run_count,
54
+ missingRunCount: exp.missing_run_count,
55
+ })));
56
+ } while (cursor != null);
57
+ return experiments;
58
+ }
59
+ //# sourceMappingURL=listExperiments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listExperiments.js","sourceRoot":"","sources":["../../../src/experiments/listExperiments.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAIzC,OAAO,SAAS,MAAM,gBAAgB,CAAC;AASvC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EACpC,MAAM,EAAE,OAAO,EACf,SAAS,GACa;IACtB,MAAM,MAAM,GAAG,OAAO,IAAI,YAAY,EAAE,CAAC;IAEzC,MAAM,WAAW,GAAqB,EAAE,CAAC;IACzC,IAAI,MAAM,GAAkB,IAAI,CAAC;IAEjC,GAAG,CAAC;QACF,MAAM,GAAG,GAEL,MAAM,MAAM,CAAC,GAAG,CAAC,uCAAuC,EAAE;YAC5D,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,UAAU,EAAE,SAAS;iBACtB;gBACD,KAAK,EAAE;oBACL,MAAM;oBACN,KAAK,EAAE,iBAAiB;iBACzB;aACF;SACF,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,WAAW,IAAI,IAAI,CAAC;QACvC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;QAC5B,SAAS,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC;QAE9C,WAAW,CAAC,IAAI,CACd,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACpB,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,SAAS,EAAE,GAAG,CAAC,UAAU;YACzB,gBAAgB,EAAE,GAAG,CAAC,kBAAkB;YACxC,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE;YAC5B,WAAW,EAAE,GAAG,CAAC,YAAY,IAAI,IAAI;YACrC,SAAS,EAAE,GAAG,CAAC,UAAU;YACzB,SAAS,EAAE,GAAG,CAAC,UAAU;YACzB,YAAY,EAAE,GAAG,CAAC,aAAa;YAC/B,kBAAkB,EAAE,GAAG,CAAC,oBAAoB;YAC5C,cAAc,EAAE,GAAG,CAAC,gBAAgB;YACpC,eAAe,EAAE,GAAG,CAAC,iBAAiB;SACvC,CAAC,CAAC,CACJ,CAAC;IACJ,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE;IAEzB,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -0,0 +1,105 @@
1
+ import { type DiagLogLevel } from "@arizeai/phoenix-otel";
2
+ import { ClientFn } from "../types/core.js";
3
+ import type { Evaluator } from "../types/experiments.js";
4
+ import { type Logger } from "../types/logger.js";
5
+ export type ResumeEvaluationParams = ClientFn & {
6
+ /**
7
+ * The ID of the experiment to resume evaluations for
8
+ */
9
+ readonly experimentId: string;
10
+ /**
11
+ * A single evaluator or list of evaluators to run on incomplete evaluations
12
+ */
13
+ readonly evaluators: Evaluator | readonly Evaluator[];
14
+ /**
15
+ * The logger to use
16
+ * @default console
17
+ */
18
+ readonly logger?: Logger;
19
+ /**
20
+ * The number of concurrent evaluation executions
21
+ * @default 5
22
+ */
23
+ readonly concurrency?: number;
24
+ /**
25
+ * Whether to set the global tracer provider when running evaluators.
26
+ * @default true
27
+ */
28
+ readonly setGlobalTracerProvider?: boolean;
29
+ /**
30
+ * Whether to use batch span processor for tracing.
31
+ * @default true
32
+ */
33
+ readonly useBatchSpanProcessor?: boolean;
34
+ /**
35
+ * Log level to set for the default DiagConsoleLogger when tracing.
36
+ */
37
+ readonly diagLogLevel?: DiagLogLevel;
38
+ /**
39
+ * Stop processing and exit as soon as any evaluation fails.
40
+ * @default false
41
+ */
42
+ readonly stopOnFirstError?: boolean;
43
+ };
44
+ /**
45
+ * Resume incomplete evaluations for an experiment.
46
+ *
47
+ * This function identifies which evaluations have not been completed (either missing or failed)
48
+ * and runs the evaluators only for those runs. This is useful for:
49
+ * - Recovering from transient evaluator failures
50
+ * - Adding new evaluators to completed experiments
51
+ * - Completing partially evaluated experiments
52
+ *
53
+ * The function processes incomplete evaluations in batches using pagination to minimize memory usage.
54
+ *
55
+ * Evaluation names are matched to evaluator names. For example, if you pass
56
+ * an evaluator with name "accuracy", it will check for and resume any runs missing the "accuracy" evaluation.
57
+ *
58
+ * **Note:** Multi-output evaluators (evaluators that return an array of results) are not
59
+ * supported for resume operations. Each evaluator should produce a single evaluation
60
+ * result with a name matching the evaluator's name.
61
+ *
62
+ * @throws {Error} Throws different error types based on failure:
63
+ * - "EvaluationFetchError": Unable to fetch incomplete evaluations from the server.
64
+ * Always thrown regardless of stopOnFirstError, as it indicates critical infrastructure failure.
65
+ * - "EvaluationAbortedError": stopOnFirstError=true and an evaluator failed.
66
+ * Original error preserved in `cause` property.
67
+ * - Generic Error: Other evaluator execution errors or unexpected failures.
68
+ *
69
+ * @example
70
+ * ```ts
71
+ * import { resumeEvaluation } from "@arizeai/phoenix-client/experiments";
72
+ *
73
+ * // Standard usage: evaluation name matches evaluator name
74
+ * try {
75
+ * await resumeEvaluation({
76
+ * experimentId: "exp_123",
77
+ * evaluators: [{
78
+ * name: "correctness",
79
+ * kind: "CODE",
80
+ * evaluate: async ({ output, expected }) => ({
81
+ * score: output === expected ? 1 : 0
82
+ * })
83
+ * }],
84
+ * });
85
+ * } catch (error) {
86
+ * // Handle by error name (no instanceof needed)
87
+ * if (error.name === "EvaluationFetchError") {
88
+ * console.error("Failed to connect to server:", error.cause);
89
+ * } else if (error.name === "EvaluationAbortedError") {
90
+ * console.error("Evaluation stopped due to error:", error.cause);
91
+ * } else {
92
+ * console.error("Unexpected error:", error);
93
+ * }
94
+ * }
95
+ *
96
+ * // Stop on first error (useful for debugging)
97
+ * await resumeEvaluation({
98
+ * experimentId: "exp_123",
99
+ * evaluators: [myEvaluator],
100
+ * stopOnFirstError: true, // Exit immediately on first failure
101
+ * });
102
+ * ```
103
+ */
104
+ export declare function resumeEvaluation({ client: _client, experimentId, evaluators: _evaluators, logger, concurrency, setGlobalTracerProvider, useBatchSpanProcessor, diagLogLevel, stopOnFirstError, }: ResumeEvaluationParams): Promise<void>;
105
+ //# sourceMappingURL=resumeEvaluation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resumeEvaluation.d.ts","sourceRoot":"","sources":["../../../src/experiments/resumeEvaluation.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,YAAY,EAMlB,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAEV,SAAS,EAGV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAmC9C,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG;IAC9C;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,SAAS,GAAG,SAAS,SAAS,EAAE,CAAC;IACtD;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAC3C;;;OAGG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IACzC;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IACrC;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CACrC,CAAC;AAwJF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,wBAAsB,gBAAgB,CAAC,EACrC,MAAM,EAAE,OAAO,EACf,YAAY,EACZ,UAAU,EAAE,WAAW,EACvB,MAAgB,EAChB,WAAe,EACf,uBAA8B,EAC9B,qBAA4B,EAC5B,YAAY,EACZ,gBAAwB,GACzB,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2RxC"}