@proofhound/api-client 0.1.6

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 (82) hide show
  1. package/LICENSE +190 -0
  2. package/dist/annotation.d.ts +245 -0
  3. package/dist/annotation.d.ts.map +1 -0
  4. package/dist/annotation.js +19 -0
  5. package/dist/annotation.js.map +1 -0
  6. package/dist/api-token.d.ts +53 -0
  7. package/dist/api-token.d.ts.map +1 -0
  8. package/dist/api-token.js +12 -0
  9. package/dist/api-token.js.map +1 -0
  10. package/dist/auth-source.d.ts +29 -0
  11. package/dist/auth-source.d.ts.map +1 -0
  12. package/dist/auth-source.js +30 -0
  13. package/dist/auth-source.js.map +1 -0
  14. package/dist/canary-release.d.ts +635 -0
  15. package/dist/canary-release.d.ts.map +1 -0
  16. package/dist/canary-release.js +48 -0
  17. package/dist/canary-release.js.map +1 -0
  18. package/dist/configure.d.ts +20 -0
  19. package/dist/configure.d.ts.map +1 -0
  20. package/dist/configure.js +41 -0
  21. package/dist/configure.js.map +1 -0
  22. package/dist/connector.d.ts +446 -0
  23. package/dist/connector.d.ts.map +1 -0
  24. package/dist/connector.js +70 -0
  25. package/dist/connector.js.map +1 -0
  26. package/dist/dataset-import.d.ts +75 -0
  27. package/dist/dataset-import.d.ts.map +1 -0
  28. package/dist/dataset-import.js +25 -0
  29. package/dist/dataset-import.js.map +1 -0
  30. package/dist/dataset.d.ts +136 -0
  31. package/dist/dataset.d.ts.map +1 -0
  32. package/dist/dataset.js +67 -0
  33. package/dist/dataset.js.map +1 -0
  34. package/dist/experiment.d.ts +365 -0
  35. package/dist/experiment.d.ts.map +1 -0
  36. package/dist/experiment.js +65 -0
  37. package/dist/experiment.js.map +1 -0
  38. package/dist/http.d.ts +3 -0
  39. package/dist/http.d.ts.map +1 -0
  40. package/dist/http.js +13 -0
  41. package/dist/http.js.map +1 -0
  42. package/dist/index.d.ts +20 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +39 -0
  45. package/dist/index.js.map +1 -0
  46. package/dist/model.d.ts +274 -0
  47. package/dist/model.d.ts.map +1 -0
  48. package/dist/model.js +73 -0
  49. package/dist/model.js.map +1 -0
  50. package/dist/monitoring.d.ts +200 -0
  51. package/dist/monitoring.d.ts.map +1 -0
  52. package/dist/monitoring.js +49 -0
  53. package/dist/monitoring.js.map +1 -0
  54. package/dist/optimization.d.ts +574 -0
  55. package/dist/optimization.d.ts.map +1 -0
  56. package/dist/optimization.js +22 -0
  57. package/dist/optimization.js.map +1 -0
  58. package/dist/production-release.d.ts +122 -0
  59. package/dist/production-release.d.ts.map +1 -0
  60. package/dist/production-release.js +22 -0
  61. package/dist/production-release.js.map +1 -0
  62. package/dist/prompt.d.ts +481 -0
  63. package/dist/prompt.d.ts.map +1 -0
  64. package/dist/prompt.js +22 -0
  65. package/dist/prompt.js.map +1 -0
  66. package/dist/public-env.d.ts +2 -0
  67. package/dist/public-env.d.ts.map +1 -0
  68. package/dist/public-env.js +50 -0
  69. package/dist/public-env.js.map +1 -0
  70. package/dist/quick-start.d.ts +71 -0
  71. package/dist/quick-start.d.ts.map +1 -0
  72. package/dist/quick-start.js +11 -0
  73. package/dist/quick-start.js.map +1 -0
  74. package/dist/release-line.d.ts +1052 -0
  75. package/dist/release-line.d.ts.map +1 -0
  76. package/dist/release-line.js +18 -0
  77. package/dist/release-line.js.map +1 -0
  78. package/dist/run-result.d.ts +120 -0
  79. package/dist/run-result.d.ts.map +1 -0
  80. package/dist/run-result.js +50 -0
  81. package/dist/run-result.js.map +1 -0
  82. package/package.json +45 -0
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.datasetImportClient = void 0;
4
+ const http_1 = require("./http");
5
+ const public_env_1 = require("./public-env");
6
+ exports.datasetImportClient = {
7
+ getDatasetImport: (projectId, importId) => http_1.httpClient.get(`/dataset-imports/${importId}`).then((r) => r.data),
8
+ createDatasetImport: (projectId, body) => http_1.httpClient.post(`/dataset-imports`, body).then((r) => r.data),
9
+ appendDatasetImportBatch: (projectId, importId, body) => http_1.httpClient
10
+ .post(`/dataset-imports/${importId}/batch`, body)
11
+ .then((r) => r.data),
12
+ completeDatasetImport: (projectId, importId) => http_1.httpClient
13
+ .post(`/dataset-imports/${importId}/complete`, {})
14
+ .then((r) => r.data),
15
+ abortDatasetImport: (projectId, importId) => http_1.httpClient.post(`/dataset-imports/${importId}/abort`, {}).then(() => undefined),
16
+ // Fire-and-forget abort that survives page unload (tab close / refresh), where a normal fetch is
17
+ // cancelled by the browser. Auth rides the same trusted-header / LOCAL_ACTOR path as other UI calls
18
+ // (no JS-set Authorization header), so carrying no header is fine. Returns false when unsupported.
19
+ abortDatasetImportBeacon: (projectId, importId) => {
20
+ if (typeof navigator === 'undefined' || typeof navigator.sendBeacon !== 'function')
21
+ return false;
22
+ return navigator.sendBeacon(`${(0, public_env_1.getServerBaseUrl)()}/dataset-imports/${importId}/abort`);
23
+ },
24
+ };
25
+ //# sourceMappingURL=dataset-import.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataset-import.js","sourceRoot":"","sources":["../src/dataset-import.ts"],"names":[],"mappings":";;;AAOA,iCAAoC;AACpC,6CAAgD;AAEnC,QAAA,mBAAmB,GAAG;IACjC,gBAAgB,EAAE,CAAC,SAAiB,EAAE,QAAgB,EAAE,EAAE,CACxD,iBAAU,CAAC,GAAG,CAAuB,oBAAoB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1F,mBAAmB,EAAE,CAAC,SAAiB,EAAE,IAA4B,EAAE,EAAE,CACvE,iBAAU,CAAC,IAAI,CAAuB,kBAAkB,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACrF,wBAAwB,EAAE,CAAC,SAAiB,EAAE,QAAgB,EAAE,IAA2B,EAAE,EAAE,CAC7F,iBAAU;SACP,IAAI,CAAgC,oBAAoB,QAAQ,QAAQ,EAAE,IAAI,CAAC;SAC/E,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACxB,qBAAqB,EAAE,CAAC,SAAiB,EAAE,QAAgB,EAAE,EAAE,CAC7D,iBAAU;SACP,IAAI,CAAmC,oBAAoB,QAAQ,WAAW,EAAE,EAAE,CAAC;SACnF,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACxB,kBAAkB,EAAE,CAAC,SAAiB,EAAE,QAAgB,EAAE,EAAE,CAC1D,iBAAU,CAAC,IAAI,CAAO,oBAAoB,QAAQ,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;IACvF,iGAAiG;IACjG,oGAAoG;IACpG,mGAAmG;IACnG,wBAAwB,EAAE,CAAC,SAAiB,EAAE,QAAgB,EAAW,EAAE;QACzE,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,OAAO,SAAS,CAAC,UAAU,KAAK,UAAU;YAAE,OAAO,KAAK,CAAC;QACjG,OAAO,SAAS,CAAC,UAAU,CAAC,GAAG,IAAA,6BAAgB,GAAE,oBAAoB,QAAQ,QAAQ,CAAC,CAAC;IACzF,CAAC;CACF,CAAC"}
@@ -0,0 +1,136 @@
1
+ import type { CreateDatasetDto, DatasetExportFormatDto, DatasetListItemDto, DeleteDatasetSamplesDto, UpdateDatasetMetadataDto } from '@proofhound/shared';
2
+ export interface DatasetTransferProgress {
3
+ loadedBytes: number;
4
+ totalBytes: number | null;
5
+ }
6
+ export interface DatasetTransferOptions {
7
+ onProgress?: (progress: DatasetTransferProgress) => void;
8
+ }
9
+ export interface DatasetDownloadResult {
10
+ blob: Blob;
11
+ fileName: string;
12
+ contentType: string;
13
+ }
14
+ export declare const datasetClient: {
15
+ listDatasets: (projectId: string) => Promise<{
16
+ data: DatasetListItemDto[];
17
+ total: number;
18
+ }>;
19
+ getDataset: (projectId: string, datasetId: string) => Promise<{
20
+ id: string;
21
+ projectId: string;
22
+ name: string;
23
+ description: string | null;
24
+ sampleCount: number;
25
+ fieldSchema: {
26
+ name: string;
27
+ role: "text" | "metadata" | "image" | "image_url" | "image_base64" | "expected_output";
28
+ type: "string" | "number" | "boolean" | "object" | "unknown" | "null" | "array";
29
+ }[];
30
+ categoryDistribution: {
31
+ field: string | null;
32
+ total: number;
33
+ categories: {
34
+ label: string;
35
+ count: number;
36
+ }[];
37
+ };
38
+ references: {
39
+ experiments: number;
40
+ optimizations: number;
41
+ };
42
+ hasImages: boolean;
43
+ storagePrefix: string | null;
44
+ createdBy: string;
45
+ createdByDisplayName: string | null;
46
+ createdAt: string;
47
+ updatedAt: string;
48
+ deletedAt: string | null;
49
+ }>;
50
+ listDatasetSamples: (projectId: string, datasetId: string, query?: {
51
+ page?: number;
52
+ pageSize?: number;
53
+ search?: string;
54
+ }) => Promise<{
55
+ data: {
56
+ id: string;
57
+ datasetId: string;
58
+ data: Record<string, unknown>;
59
+ externalId: string | null;
60
+ createdAt: string;
61
+ updatedAt: string;
62
+ }[];
63
+ total: number;
64
+ }>;
65
+ createDataset: (projectId: string, body: CreateDatasetDto, options?: DatasetTransferOptions) => Promise<{
66
+ dataset: {
67
+ id: string;
68
+ projectId: string;
69
+ name: string;
70
+ description: string | null;
71
+ sampleCount: number;
72
+ fieldSchema: {
73
+ name: string;
74
+ role: "text" | "metadata" | "image" | "image_url" | "image_base64" | "expected_output";
75
+ type: "string" | "number" | "boolean" | "object" | "unknown" | "null" | "array";
76
+ }[];
77
+ categoryDistribution: {
78
+ field: string | null;
79
+ total: number;
80
+ categories: {
81
+ label: string;
82
+ count: number;
83
+ }[];
84
+ };
85
+ references: {
86
+ experiments: number;
87
+ optimizations: number;
88
+ };
89
+ hasImages: boolean;
90
+ storagePrefix: string | null;
91
+ createdBy: string;
92
+ createdByDisplayName: string | null;
93
+ createdAt: string;
94
+ updatedAt: string;
95
+ deletedAt: string | null;
96
+ };
97
+ sampleCount: number;
98
+ }>;
99
+ updateDataset: (projectId: string, datasetId: string, body: UpdateDatasetMetadataDto) => Promise<{
100
+ id: string;
101
+ projectId: string;
102
+ name: string;
103
+ description: string | null;
104
+ sampleCount: number;
105
+ fieldSchema: {
106
+ name: string;
107
+ role: "text" | "metadata" | "image" | "image_url" | "image_base64" | "expected_output";
108
+ type: "string" | "number" | "boolean" | "object" | "unknown" | "null" | "array";
109
+ }[];
110
+ categoryDistribution: {
111
+ field: string | null;
112
+ total: number;
113
+ categories: {
114
+ label: string;
115
+ count: number;
116
+ }[];
117
+ };
118
+ references: {
119
+ experiments: number;
120
+ optimizations: number;
121
+ };
122
+ hasImages: boolean;
123
+ storagePrefix: string | null;
124
+ createdBy: string;
125
+ createdByDisplayName: string | null;
126
+ createdAt: string;
127
+ updatedAt: string;
128
+ deletedAt: string | null;
129
+ }>;
130
+ downloadDataset: (projectId: string, datasetId: string, format: DatasetExportFormatDto, options?: DatasetTransferOptions) => Promise<DatasetDownloadResult>;
131
+ deleteDataset: (projectId: string, datasetId: string) => Promise<undefined>;
132
+ deleteDatasetSamples: (projectId: string, datasetId: string, body: DeleteDatasetSamplesDto) => Promise<{
133
+ deleted: number;
134
+ }>;
135
+ };
136
+ //# sourceMappingURL=dataset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataset.d.ts","sourceRoot":"","sources":["../src/dataset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAEhB,sBAAsB,EACtB,kBAAkB,EAElB,uBAAuB,EAEvB,wBAAwB,EACzB,MAAM,oBAAoB,CAAC;AAI5B,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,uBAAuB,KAAK,IAAI,CAAC;CAC1D;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAyBD,eAAO,MAAM,aAAa;8BACE,MAAM;cAEf,kBAAkB,EAAE;eAAS,MAAM;;4BAE5B,MAAM,aAAa,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCAGpC,MAAM,aACN,MAAM,UACT;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;;+BAOpC,MAAM,QAAQ,gBAAgB,YAAY,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAMhE,MAAM,aAAa,MAAM,QAAQ,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAKvE,MAAM,aACN,MAAM,UACT,sBAAsB,YACpB,sBAAsB;+BAuBP,MAAM,aAAa,MAAM;sCAElB,MAAM,aAAa,MAAM,QAAQ,uBAAuB;;;CAI3F,CAAC"}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.datasetClient = void 0;
4
+ const http_1 = require("./http");
5
+ function toTransferProgress(event) {
6
+ return {
7
+ loadedBytes: event.loaded,
8
+ totalBytes: typeof event.total === 'number' && Number.isFinite(event.total) ? event.total : null,
9
+ };
10
+ }
11
+ function getFileNameFromDisposition(disposition, fallback) {
12
+ if (!disposition)
13
+ return fallback;
14
+ const utf8Match = /filename\*=UTF-8''([^;]+)/iu.exec(disposition);
15
+ if (utf8Match?.[1]) {
16
+ try {
17
+ return decodeURIComponent(utf8Match[1]);
18
+ }
19
+ catch {
20
+ return utf8Match[1];
21
+ }
22
+ }
23
+ const asciiMatch = /filename="?([^";]+)"?/iu.exec(disposition);
24
+ return asciiMatch?.[1] ?? fallback;
25
+ }
26
+ exports.datasetClient = {
27
+ listDatasets: (projectId) => http_1.httpClient
28
+ .get(`/datasets`)
29
+ .then((r) => r.data),
30
+ getDataset: (projectId, datasetId) => http_1.httpClient.get(`/datasets/${datasetId}`).then((r) => r.data),
31
+ listDatasetSamples: (projectId, datasetId, query) => http_1.httpClient
32
+ .get(`/datasets/${datasetId}/samples`, {
33
+ params: { page: query?.page, pageSize: query?.pageSize, search: query?.search || undefined },
34
+ })
35
+ .then((r) => r.data),
36
+ createDataset: (projectId, body, options) => http_1.httpClient
37
+ .post(`/datasets`, body, {
38
+ onUploadProgress: options?.onProgress ? (event) => options.onProgress?.(toTransferProgress(event)) : undefined,
39
+ })
40
+ .then((r) => r.data),
41
+ updateDataset: (projectId, datasetId, body) => http_1.httpClient
42
+ .patch(`/datasets/${datasetId}`, body)
43
+ .then((r) => r.data),
44
+ downloadDataset: (projectId, datasetId, format, options) => http_1.httpClient
45
+ .get(`/datasets/${datasetId}/export`, {
46
+ params: { format },
47
+ responseType: 'blob',
48
+ onDownloadProgress: options?.onProgress
49
+ ? (event) => options.onProgress?.(toTransferProgress(event))
50
+ : undefined,
51
+ })
52
+ .then((r) => {
53
+ const contentTypeHeader = r.headers['content-type'];
54
+ const dispositionHeader = r.headers['content-disposition'];
55
+ const contentType = typeof contentTypeHeader === 'string' ? contentTypeHeader : 'application/octet-stream';
56
+ return {
57
+ blob: r.data,
58
+ contentType,
59
+ fileName: getFileNameFromDisposition(typeof dispositionHeader === 'string' ? dispositionHeader : undefined, `dataset-${datasetId}.${format}`),
60
+ };
61
+ }),
62
+ deleteDataset: (projectId, datasetId) => http_1.httpClient.delete(`/datasets/${datasetId}`).then(() => undefined),
63
+ deleteDatasetSamples: (projectId, datasetId, body) => http_1.httpClient
64
+ .delete(`/datasets/${datasetId}/samples`, { data: body })
65
+ .then((r) => r.data),
66
+ };
67
+ //# sourceMappingURL=dataset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataset.js","sourceRoot":"","sources":["../src/dataset.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,365 @@
1
+ import type { CreateExperimentDto, ExperimentControlActionDto, ExperimentExportFormatDto, ExperimentListQueryDto } from '@proofhound/shared';
2
+ export interface ExperimentTransferProgress {
3
+ loadedBytes: number;
4
+ totalBytes: number | null;
5
+ }
6
+ export interface ExperimentTransferOptions {
7
+ onProgress?: (progress: ExperimentTransferProgress) => void;
8
+ }
9
+ export interface ExperimentDownloadResult {
10
+ blob: Blob;
11
+ fileName: string;
12
+ contentType: string;
13
+ }
14
+ export declare const experimentClient: {
15
+ createExperiment: (projectId: string, dto: CreateExperimentDto) => Promise<{
16
+ id: string;
17
+ projectId: string;
18
+ name: string;
19
+ description: string | null;
20
+ optimizationId: string | null;
21
+ roundIndex: number | null;
22
+ promptId: string;
23
+ promptVersionId: string;
24
+ promptName: string;
25
+ promptVersionNumber: number;
26
+ promptVersionLabel: string;
27
+ datasetId: string;
28
+ datasetName: string;
29
+ datasetSamples: number;
30
+ modelId: string;
31
+ modelName: string;
32
+ modelVariant: string;
33
+ promptVariableTypes: ("number" | "text" | "image" | "image_url" | "image_base64")[];
34
+ datasetHasImages: boolean;
35
+ datasetModalities: ("text" | "image")[];
36
+ datasetFieldSchema: {
37
+ name: string;
38
+ role: "text" | "metadata" | "image" | "image_url" | "image_base64" | "expected_output";
39
+ type: "string" | "number" | "boolean" | "object" | "unknown" | "null" | "array";
40
+ }[] | null;
41
+ outputSchema: {
42
+ fields: {
43
+ key: string;
44
+ value: string;
45
+ isJudgment: boolean;
46
+ }[];
47
+ } | null;
48
+ status: "failed" | "running" | "stopped" | "cancelled" | "success";
49
+ controlState: "stop" | "resume" | "cancel" | null;
50
+ totalSamples: number;
51
+ processedSamples: number;
52
+ failedSamples: number;
53
+ metrics: {
54
+ [x: string]: unknown;
55
+ accuracy?: number | null | undefined;
56
+ precision?: number | null | undefined;
57
+ recall?: number | null | undefined;
58
+ f1?: number | null | undefined;
59
+ perClass?: {
60
+ label: string;
61
+ precision: number | null;
62
+ recall: number | null;
63
+ f1: number | null;
64
+ support: number;
65
+ tp?: number | undefined;
66
+ fn?: number | undefined;
67
+ }[] | null | undefined;
68
+ inputTokens?: number | null | undefined;
69
+ outputTokens?: number | null | undefined;
70
+ costEstimate?: number | null | undefined;
71
+ averageLatencyMs?: number | null | undefined;
72
+ p50LatencyMs?: number | null | undefined;
73
+ p95LatencyMs?: number | null | undefined;
74
+ } | null;
75
+ runConfig: {
76
+ [x: string]: unknown;
77
+ concurrency?: number | undefined;
78
+ rpmLimit?: number | undefined;
79
+ tpmLimit?: number | undefined;
80
+ temperature?: number | undefined;
81
+ sampleTimeoutSeconds?: number | undefined;
82
+ retries?: number | undefined;
83
+ imageEncoding?: "url" | "base64" | undefined;
84
+ description?: string | null | undefined;
85
+ };
86
+ dbosWorkflowId: string | null;
87
+ failureReason: string | null;
88
+ failureKind: "timeout" | "rate_limit" | "parse" | "internal" | null;
89
+ createdBy: string;
90
+ createdByDisplayName: string | null;
91
+ createdByUsername: string | null;
92
+ startedAt: string | null;
93
+ finishedAt: string | null;
94
+ createdAt: string;
95
+ updatedAt: string;
96
+ deletedAt: string | null;
97
+ }>;
98
+ listExperiments: (projectId: string, query?: ExperimentListQueryDto) => Promise<{
99
+ data: {
100
+ id: string;
101
+ projectId: string;
102
+ name: string;
103
+ description: string | null;
104
+ optimizationId: string | null;
105
+ roundIndex: number | null;
106
+ promptId: string;
107
+ promptVersionId: string;
108
+ promptName: string;
109
+ promptVersionNumber: number;
110
+ promptVersionLabel: string;
111
+ datasetId: string;
112
+ datasetName: string;
113
+ datasetSamples: number;
114
+ modelId: string;
115
+ modelName: string;
116
+ modelVariant: string;
117
+ promptVariableTypes: ("number" | "text" | "image" | "image_url" | "image_base64")[];
118
+ datasetHasImages: boolean;
119
+ datasetModalities: ("text" | "image")[];
120
+ datasetFieldSchema: {
121
+ name: string;
122
+ role: "text" | "metadata" | "image" | "image_url" | "image_base64" | "expected_output";
123
+ type: "string" | "number" | "boolean" | "object" | "unknown" | "null" | "array";
124
+ }[] | null;
125
+ outputSchema: {
126
+ fields: {
127
+ key: string;
128
+ value: string;
129
+ isJudgment: boolean;
130
+ }[];
131
+ } | null;
132
+ status: "failed" | "running" | "stopped" | "cancelled" | "success";
133
+ controlState: "stop" | "resume" | "cancel" | null;
134
+ totalSamples: number;
135
+ processedSamples: number;
136
+ failedSamples: number;
137
+ metrics: {
138
+ [x: string]: unknown;
139
+ accuracy?: number | null | undefined;
140
+ precision?: number | null | undefined;
141
+ recall?: number | null | undefined;
142
+ f1?: number | null | undefined;
143
+ perClass?: {
144
+ label: string;
145
+ precision: number | null;
146
+ recall: number | null;
147
+ f1: number | null;
148
+ support: number;
149
+ tp?: number | undefined;
150
+ fn?: number | undefined;
151
+ }[] | null | undefined;
152
+ inputTokens?: number | null | undefined;
153
+ outputTokens?: number | null | undefined;
154
+ costEstimate?: number | null | undefined;
155
+ averageLatencyMs?: number | null | undefined;
156
+ p50LatencyMs?: number | null | undefined;
157
+ p95LatencyMs?: number | null | undefined;
158
+ } | null;
159
+ runConfig: {
160
+ [x: string]: unknown;
161
+ concurrency?: number | undefined;
162
+ rpmLimit?: number | undefined;
163
+ tpmLimit?: number | undefined;
164
+ temperature?: number | undefined;
165
+ sampleTimeoutSeconds?: number | undefined;
166
+ retries?: number | undefined;
167
+ imageEncoding?: "url" | "base64" | undefined;
168
+ description?: string | null | undefined;
169
+ };
170
+ dbosWorkflowId: string | null;
171
+ failureReason: string | null;
172
+ failureKind: "timeout" | "rate_limit" | "parse" | "internal" | null;
173
+ createdBy: string;
174
+ createdByDisplayName: string | null;
175
+ createdByUsername: string | null;
176
+ startedAt: string | null;
177
+ finishedAt: string | null;
178
+ createdAt: string;
179
+ updatedAt: string;
180
+ deletedAt: string | null;
181
+ }[];
182
+ total: number;
183
+ stats: {
184
+ newThisWeek: number;
185
+ averageDurationSeconds: number | null;
186
+ medianDurationSeconds: number | null;
187
+ p90DurationSeconds: number | null;
188
+ inputTokens: number;
189
+ outputTokens: number;
190
+ costEstimate: number;
191
+ monthlyCostEstimate: number;
192
+ monthlyCostQuota: number | null;
193
+ };
194
+ }>;
195
+ getExperiment: (projectId: string, experimentId: string) => Promise<{
196
+ id: string;
197
+ projectId: string;
198
+ name: string;
199
+ description: string | null;
200
+ optimizationId: string | null;
201
+ roundIndex: number | null;
202
+ promptId: string;
203
+ promptVersionId: string;
204
+ promptName: string;
205
+ promptVersionNumber: number;
206
+ promptVersionLabel: string;
207
+ datasetId: string;
208
+ datasetName: string;
209
+ datasetSamples: number;
210
+ modelId: string;
211
+ modelName: string;
212
+ modelVariant: string;
213
+ promptVariableTypes: ("number" | "text" | "image" | "image_url" | "image_base64")[];
214
+ datasetHasImages: boolean;
215
+ datasetModalities: ("text" | "image")[];
216
+ datasetFieldSchema: {
217
+ name: string;
218
+ role: "text" | "metadata" | "image" | "image_url" | "image_base64" | "expected_output";
219
+ type: "string" | "number" | "boolean" | "object" | "unknown" | "null" | "array";
220
+ }[] | null;
221
+ outputSchema: {
222
+ fields: {
223
+ key: string;
224
+ value: string;
225
+ isJudgment: boolean;
226
+ }[];
227
+ } | null;
228
+ status: "failed" | "running" | "stopped" | "cancelled" | "success";
229
+ controlState: "stop" | "resume" | "cancel" | null;
230
+ totalSamples: number;
231
+ processedSamples: number;
232
+ failedSamples: number;
233
+ metrics: {
234
+ [x: string]: unknown;
235
+ accuracy?: number | null | undefined;
236
+ precision?: number | null | undefined;
237
+ recall?: number | null | undefined;
238
+ f1?: number | null | undefined;
239
+ perClass?: {
240
+ label: string;
241
+ precision: number | null;
242
+ recall: number | null;
243
+ f1: number | null;
244
+ support: number;
245
+ tp?: number | undefined;
246
+ fn?: number | undefined;
247
+ }[] | null | undefined;
248
+ inputTokens?: number | null | undefined;
249
+ outputTokens?: number | null | undefined;
250
+ costEstimate?: number | null | undefined;
251
+ averageLatencyMs?: number | null | undefined;
252
+ p50LatencyMs?: number | null | undefined;
253
+ p95LatencyMs?: number | null | undefined;
254
+ } | null;
255
+ runConfig: {
256
+ [x: string]: unknown;
257
+ concurrency?: number | undefined;
258
+ rpmLimit?: number | undefined;
259
+ tpmLimit?: number | undefined;
260
+ temperature?: number | undefined;
261
+ sampleTimeoutSeconds?: number | undefined;
262
+ retries?: number | undefined;
263
+ imageEncoding?: "url" | "base64" | undefined;
264
+ description?: string | null | undefined;
265
+ };
266
+ dbosWorkflowId: string | null;
267
+ failureReason: string | null;
268
+ failureKind: "timeout" | "rate_limit" | "parse" | "internal" | null;
269
+ createdBy: string;
270
+ createdByDisplayName: string | null;
271
+ createdByUsername: string | null;
272
+ startedAt: string | null;
273
+ finishedAt: string | null;
274
+ createdAt: string;
275
+ updatedAt: string;
276
+ deletedAt: string | null;
277
+ }>;
278
+ controlExperiment: (projectId: string, experimentId: string, action: ExperimentControlActionDto) => Promise<{
279
+ id: string;
280
+ projectId: string;
281
+ name: string;
282
+ description: string | null;
283
+ optimizationId: string | null;
284
+ roundIndex: number | null;
285
+ promptId: string;
286
+ promptVersionId: string;
287
+ promptName: string;
288
+ promptVersionNumber: number;
289
+ promptVersionLabel: string;
290
+ datasetId: string;
291
+ datasetName: string;
292
+ datasetSamples: number;
293
+ modelId: string;
294
+ modelName: string;
295
+ modelVariant: string;
296
+ promptVariableTypes: ("number" | "text" | "image" | "image_url" | "image_base64")[];
297
+ datasetHasImages: boolean;
298
+ datasetModalities: ("text" | "image")[];
299
+ datasetFieldSchema: {
300
+ name: string;
301
+ role: "text" | "metadata" | "image" | "image_url" | "image_base64" | "expected_output";
302
+ type: "string" | "number" | "boolean" | "object" | "unknown" | "null" | "array";
303
+ }[] | null;
304
+ outputSchema: {
305
+ fields: {
306
+ key: string;
307
+ value: string;
308
+ isJudgment: boolean;
309
+ }[];
310
+ } | null;
311
+ status: "failed" | "running" | "stopped" | "cancelled" | "success";
312
+ controlState: "stop" | "resume" | "cancel" | null;
313
+ totalSamples: number;
314
+ processedSamples: number;
315
+ failedSamples: number;
316
+ metrics: {
317
+ [x: string]: unknown;
318
+ accuracy?: number | null | undefined;
319
+ precision?: number | null | undefined;
320
+ recall?: number | null | undefined;
321
+ f1?: number | null | undefined;
322
+ perClass?: {
323
+ label: string;
324
+ precision: number | null;
325
+ recall: number | null;
326
+ f1: number | null;
327
+ support: number;
328
+ tp?: number | undefined;
329
+ fn?: number | undefined;
330
+ }[] | null | undefined;
331
+ inputTokens?: number | null | undefined;
332
+ outputTokens?: number | null | undefined;
333
+ costEstimate?: number | null | undefined;
334
+ averageLatencyMs?: number | null | undefined;
335
+ p50LatencyMs?: number | null | undefined;
336
+ p95LatencyMs?: number | null | undefined;
337
+ } | null;
338
+ runConfig: {
339
+ [x: string]: unknown;
340
+ concurrency?: number | undefined;
341
+ rpmLimit?: number | undefined;
342
+ tpmLimit?: number | undefined;
343
+ temperature?: number | undefined;
344
+ sampleTimeoutSeconds?: number | undefined;
345
+ retries?: number | undefined;
346
+ imageEncoding?: "url" | "base64" | undefined;
347
+ description?: string | null | undefined;
348
+ };
349
+ dbosWorkflowId: string | null;
350
+ failureReason: string | null;
351
+ failureKind: "timeout" | "rate_limit" | "parse" | "internal" | null;
352
+ createdBy: string;
353
+ createdByDisplayName: string | null;
354
+ createdByUsername: string | null;
355
+ startedAt: string | null;
356
+ finishedAt: string | null;
357
+ createdAt: string;
358
+ updatedAt: string;
359
+ deletedAt: string | null;
360
+ }>;
361
+ downloadExperiments: (projectId: string, format: ExperimentExportFormatDto, options?: ExperimentTransferOptions) => Promise<ExperimentDownloadResult>;
362
+ downloadExperiment: (projectId: string, experimentId: string, format: ExperimentExportFormatDto, options?: ExperimentTransferOptions) => Promise<ExperimentDownloadResult>;
363
+ deleteExperiment: (projectId: string, experimentId: string) => Promise<undefined>;
364
+ };
365
+ //# sourceMappingURL=experiment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"experiment.d.ts","sourceRoot":"","sources":["../src/experiment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,0BAA0B,EAC1B,yBAAyB,EACzB,sBAAsB,EAGvB,MAAM,oBAAoB,CAAC;AAI5B,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACxC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,0BAA0B,KAAK,IAAI,CAAC;CAC7D;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AA4CD,eAAO,MAAM,gBAAgB;kCACG,MAAM,OAAO,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAEjC,MAAM,UAAU,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAIxC,MAAM,gBAAgB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAExB,MAAM,gBAAgB,MAAM,UAAU,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCAI9D,MAAM,UAAU,yBAAyB,YAAY,yBAAyB;oCAWlG,MAAM,gBACH,MAAM,UACZ,yBAAyB,YACvB,yBAAyB;kCAWP,MAAM,gBAAgB,MAAM;CAE3D,CAAC"}