@things-factory/integration-mlflow 9.1.19

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 (68) hide show
  1. package/client/bootstrap.ts +41 -0
  2. package/client/index.ts +2 -0
  3. package/client/pages/mlflow-experiments-page.ts +45 -0
  4. package/client/pages/mlflow-models-page.ts +45 -0
  5. package/client/pages/mlflow-runs-page.ts +45 -0
  6. package/client/pages/mlflow-viewer-page.ts +74 -0
  7. package/client/route.ts +19 -0
  8. package/client/tsconfig.json +11 -0
  9. package/dist-client/bootstrap.d.ts +1 -0
  10. package/dist-client/bootstrap.js +40 -0
  11. package/dist-client/bootstrap.js.map +1 -0
  12. package/dist-client/index.d.ts +2 -0
  13. package/dist-client/index.js +3 -0
  14. package/dist-client/index.js.map +1 -0
  15. package/dist-client/pages/mlflow-experiments-page.d.ts +5 -0
  16. package/dist-client/pages/mlflow-experiments-page.js +48 -0
  17. package/dist-client/pages/mlflow-experiments-page.js.map +1 -0
  18. package/dist-client/pages/mlflow-models-page.d.ts +5 -0
  19. package/dist-client/pages/mlflow-models-page.js +48 -0
  20. package/dist-client/pages/mlflow-models-page.js.map +1 -0
  21. package/dist-client/pages/mlflow-runs-page.d.ts +5 -0
  22. package/dist-client/pages/mlflow-runs-page.js +48 -0
  23. package/dist-client/pages/mlflow-runs-page.js.map +1 -0
  24. package/dist-client/pages/mlflow-viewer-page.d.ts +12 -0
  25. package/dist-client/pages/mlflow-viewer-page.js +82 -0
  26. package/dist-client/pages/mlflow-viewer-page.js.map +1 -0
  27. package/dist-client/route.d.ts +1 -0
  28. package/dist-client/route.js +17 -0
  29. package/dist-client/route.js.map +1 -0
  30. package/dist-client/tsconfig.tsbuildinfo +1 -0
  31. package/dist-server/index.d.ts +4 -0
  32. package/dist-server/index.js +8 -0
  33. package/dist-server/index.js.map +1 -0
  34. package/dist-server/route.d.ts +5 -0
  35. package/dist-server/route.js +12 -0
  36. package/dist-server/route.js.map +1 -0
  37. package/dist-server/service/experiment/experiment-service.d.ts +19 -0
  38. package/dist-server/service/experiment/experiment-service.js +135 -0
  39. package/dist-server/service/experiment/experiment-service.js.map +1 -0
  40. package/dist-server/service/index.d.ts +10 -0
  41. package/dist-server/service/index.js +19 -0
  42. package/dist-server/service/index.js.map +1 -0
  43. package/dist-server/service/model-registry/model-registry-service.d.ts +31 -0
  44. package/dist-server/service/model-registry/model-registry-service.js +255 -0
  45. package/dist-server/service/model-registry/model-registry-service.js.map +1 -0
  46. package/dist-server/service/run/run-service.d.ts +27 -0
  47. package/dist-server/service/run/run-service.js +214 -0
  48. package/dist-server/service/run/run-service.js.map +1 -0
  49. package/dist-server/tsconfig.tsbuildinfo +1 -0
  50. package/dist-server/types/mlflow-types.d.ts +87 -0
  51. package/dist-server/types/mlflow-types.js +337 -0
  52. package/dist-server/types/mlflow-types.js.map +1 -0
  53. package/dist-server/utils/mlflow-api-client.d.ts +277 -0
  54. package/dist-server/utils/mlflow-api-client.js +201 -0
  55. package/dist-server/utils/mlflow-api-client.js.map +1 -0
  56. package/package.json +45 -0
  57. package/server/index.ts +5 -0
  58. package/server/route.ts +13 -0
  59. package/server/service/experiment/experiment-service.ts +117 -0
  60. package/server/service/index.ts +17 -0
  61. package/server/service/model-registry/model-registry-service.ts +232 -0
  62. package/server/service/run/run-service.ts +177 -0
  63. package/server/tsconfig.json +11 -0
  64. package/server/types/mlflow-types.ts +235 -0
  65. package/server/utils/mlflow-api-client.ts +375 -0
  66. package/things-factory.config.js +13 -0
  67. package/translations/en.json +28 -0
  68. package/translations/ko.json +28 -0
@@ -0,0 +1,87 @@
1
+ export declare class MLflowExperiment {
2
+ experimentId: string;
3
+ name: string;
4
+ artifactLocation: string;
5
+ lifecycleStage: string;
6
+ tags?: string;
7
+ }
8
+ export declare class CreateExperimentInput {
9
+ name: string;
10
+ artifactLocation?: string;
11
+ tags?: string;
12
+ }
13
+ export declare class MLflowRun {
14
+ runId: string;
15
+ experimentId: string;
16
+ status: string;
17
+ startTime: number;
18
+ endTime?: number;
19
+ artifactUri: string;
20
+ metrics?: string;
21
+ params?: string;
22
+ tags?: string;
23
+ }
24
+ export declare class CreateRunInput {
25
+ experimentId: string;
26
+ startTime?: number;
27
+ tags?: string;
28
+ }
29
+ export declare class LogMetricInput {
30
+ runId: string;
31
+ key: string;
32
+ value: number;
33
+ timestamp?: number;
34
+ step?: number;
35
+ }
36
+ export declare class LogParamInput {
37
+ runId: string;
38
+ key: string;
39
+ value: string;
40
+ }
41
+ export declare class UpdateRunInput {
42
+ runId: string;
43
+ status?: string;
44
+ endTime?: number;
45
+ }
46
+ export declare class MLflowRegisteredModel {
47
+ name: string;
48
+ creationTimestamp: number;
49
+ lastUpdatedTimestamp: number;
50
+ description?: string;
51
+ tags?: string;
52
+ latestVersions?: string;
53
+ }
54
+ export declare class CreateRegisteredModelInput {
55
+ name: string;
56
+ description?: string;
57
+ tags?: string;
58
+ }
59
+ export declare class MLflowModelVersion {
60
+ name: string;
61
+ version: string;
62
+ creationTimestamp: number;
63
+ currentStage: string;
64
+ source: string;
65
+ status: string;
66
+ runId?: string;
67
+ description?: string;
68
+ }
69
+ export declare class CreateModelVersionInput {
70
+ name: string;
71
+ source: string;
72
+ runId?: string;
73
+ description?: string;
74
+ tags?: string;
75
+ }
76
+ export declare class TransitionStageInput {
77
+ name: string;
78
+ version: string;
79
+ stage: string;
80
+ archiveExistingVersions?: boolean;
81
+ }
82
+ export declare class SearchRunsInput {
83
+ experimentIds: string[];
84
+ filter?: string;
85
+ maxResults?: number;
86
+ orderBy?: string[];
87
+ }
@@ -0,0 +1,337 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SearchRunsInput = exports.TransitionStageInput = exports.CreateModelVersionInput = exports.MLflowModelVersion = exports.CreateRegisteredModelInput = exports.MLflowRegisteredModel = exports.UpdateRunInput = exports.LogParamInput = exports.LogMetricInput = exports.CreateRunInput = exports.MLflowRun = exports.CreateExperimentInput = exports.MLflowExperiment = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const type_graphql_1 = require("type-graphql");
6
+ // ============================================================================
7
+ // Experiment Types
8
+ // ============================================================================
9
+ let MLflowExperiment = class MLflowExperiment {
10
+ };
11
+ exports.MLflowExperiment = MLflowExperiment;
12
+ tslib_1.__decorate([
13
+ (0, type_graphql_1.Field)({ description: 'Experiment ID' }),
14
+ tslib_1.__metadata("design:type", String)
15
+ ], MLflowExperiment.prototype, "experimentId", void 0);
16
+ tslib_1.__decorate([
17
+ (0, type_graphql_1.Field)({ description: 'Experiment name' }),
18
+ tslib_1.__metadata("design:type", String)
19
+ ], MLflowExperiment.prototype, "name", void 0);
20
+ tslib_1.__decorate([
21
+ (0, type_graphql_1.Field)({ description: 'Artifact location' }),
22
+ tslib_1.__metadata("design:type", String)
23
+ ], MLflowExperiment.prototype, "artifactLocation", void 0);
24
+ tslib_1.__decorate([
25
+ (0, type_graphql_1.Field)({ description: 'Lifecycle stage' }),
26
+ tslib_1.__metadata("design:type", String)
27
+ ], MLflowExperiment.prototype, "lifecycleStage", void 0);
28
+ tslib_1.__decorate([
29
+ (0, type_graphql_1.Field)(type => String, { nullable: true, description: 'Tags as JSON string' }),
30
+ tslib_1.__metadata("design:type", String)
31
+ ], MLflowExperiment.prototype, "tags", void 0);
32
+ exports.MLflowExperiment = MLflowExperiment = tslib_1.__decorate([
33
+ (0, type_graphql_1.ObjectType)({ description: 'MLflow Experiment' })
34
+ ], MLflowExperiment);
35
+ let CreateExperimentInput = class CreateExperimentInput {
36
+ };
37
+ exports.CreateExperimentInput = CreateExperimentInput;
38
+ tslib_1.__decorate([
39
+ (0, type_graphql_1.Field)({ description: 'Experiment name' }),
40
+ tslib_1.__metadata("design:type", String)
41
+ ], CreateExperimentInput.prototype, "name", void 0);
42
+ tslib_1.__decorate([
43
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Artifact location' }),
44
+ tslib_1.__metadata("design:type", String)
45
+ ], CreateExperimentInput.prototype, "artifactLocation", void 0);
46
+ tslib_1.__decorate([
47
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Tags as JSON string' }),
48
+ tslib_1.__metadata("design:type", String)
49
+ ], CreateExperimentInput.prototype, "tags", void 0);
50
+ exports.CreateExperimentInput = CreateExperimentInput = tslib_1.__decorate([
51
+ (0, type_graphql_1.InputType)({ description: 'Input for creating MLflow experiment' })
52
+ ], CreateExperimentInput);
53
+ // ============================================================================
54
+ // Run Types
55
+ // ============================================================================
56
+ let MLflowRun = class MLflowRun {
57
+ };
58
+ exports.MLflowRun = MLflowRun;
59
+ tslib_1.__decorate([
60
+ (0, type_graphql_1.Field)({ description: 'Run ID' }),
61
+ tslib_1.__metadata("design:type", String)
62
+ ], MLflowRun.prototype, "runId", void 0);
63
+ tslib_1.__decorate([
64
+ (0, type_graphql_1.Field)({ description: 'Experiment ID' }),
65
+ tslib_1.__metadata("design:type", String)
66
+ ], MLflowRun.prototype, "experimentId", void 0);
67
+ tslib_1.__decorate([
68
+ (0, type_graphql_1.Field)({ description: 'Run status' }),
69
+ tslib_1.__metadata("design:type", String)
70
+ ], MLflowRun.prototype, "status", void 0);
71
+ tslib_1.__decorate([
72
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Start time (Unix timestamp)' }),
73
+ tslib_1.__metadata("design:type", Number)
74
+ ], MLflowRun.prototype, "startTime", void 0);
75
+ tslib_1.__decorate([
76
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { nullable: true, description: 'End time (Unix timestamp)' }),
77
+ tslib_1.__metadata("design:type", Number)
78
+ ], MLflowRun.prototype, "endTime", void 0);
79
+ tslib_1.__decorate([
80
+ (0, type_graphql_1.Field)({ description: 'Artifact URI' }),
81
+ tslib_1.__metadata("design:type", String)
82
+ ], MLflowRun.prototype, "artifactUri", void 0);
83
+ tslib_1.__decorate([
84
+ (0, type_graphql_1.Field)(type => String, { nullable: true, description: 'Metrics as JSON string' }),
85
+ tslib_1.__metadata("design:type", String)
86
+ ], MLflowRun.prototype, "metrics", void 0);
87
+ tslib_1.__decorate([
88
+ (0, type_graphql_1.Field)(type => String, { nullable: true, description: 'Params as JSON string' }),
89
+ tslib_1.__metadata("design:type", String)
90
+ ], MLflowRun.prototype, "params", void 0);
91
+ tslib_1.__decorate([
92
+ (0, type_graphql_1.Field)(type => String, { nullable: true, description: 'Tags as JSON string' }),
93
+ tslib_1.__metadata("design:type", String)
94
+ ], MLflowRun.prototype, "tags", void 0);
95
+ exports.MLflowRun = MLflowRun = tslib_1.__decorate([
96
+ (0, type_graphql_1.ObjectType)({ description: 'MLflow Run' })
97
+ ], MLflowRun);
98
+ let CreateRunInput = class CreateRunInput {
99
+ };
100
+ exports.CreateRunInput = CreateRunInput;
101
+ tslib_1.__decorate([
102
+ (0, type_graphql_1.Field)({ description: 'Experiment ID' }),
103
+ tslib_1.__metadata("design:type", String)
104
+ ], CreateRunInput.prototype, "experimentId", void 0);
105
+ tslib_1.__decorate([
106
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { nullable: true, description: 'Start time' }),
107
+ tslib_1.__metadata("design:type", Number)
108
+ ], CreateRunInput.prototype, "startTime", void 0);
109
+ tslib_1.__decorate([
110
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Tags as JSON string' }),
111
+ tslib_1.__metadata("design:type", String)
112
+ ], CreateRunInput.prototype, "tags", void 0);
113
+ exports.CreateRunInput = CreateRunInput = tslib_1.__decorate([
114
+ (0, type_graphql_1.InputType)({ description: 'Input for creating MLflow run' })
115
+ ], CreateRunInput);
116
+ let LogMetricInput = class LogMetricInput {
117
+ };
118
+ exports.LogMetricInput = LogMetricInput;
119
+ tslib_1.__decorate([
120
+ (0, type_graphql_1.Field)({ description: 'Run ID' }),
121
+ tslib_1.__metadata("design:type", String)
122
+ ], LogMetricInput.prototype, "runId", void 0);
123
+ tslib_1.__decorate([
124
+ (0, type_graphql_1.Field)({ description: 'Metric key' }),
125
+ tslib_1.__metadata("design:type", String)
126
+ ], LogMetricInput.prototype, "key", void 0);
127
+ tslib_1.__decorate([
128
+ (0, type_graphql_1.Field)({ description: 'Metric value' }),
129
+ tslib_1.__metadata("design:type", Number)
130
+ ], LogMetricInput.prototype, "value", void 0);
131
+ tslib_1.__decorate([
132
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { nullable: true, description: 'Timestamp' }),
133
+ tslib_1.__metadata("design:type", Number)
134
+ ], LogMetricInput.prototype, "timestamp", void 0);
135
+ tslib_1.__decorate([
136
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { nullable: true, description: 'Step' }),
137
+ tslib_1.__metadata("design:type", Number)
138
+ ], LogMetricInput.prototype, "step", void 0);
139
+ exports.LogMetricInput = LogMetricInput = tslib_1.__decorate([
140
+ (0, type_graphql_1.InputType)({ description: 'Input for logging metric' })
141
+ ], LogMetricInput);
142
+ let LogParamInput = class LogParamInput {
143
+ };
144
+ exports.LogParamInput = LogParamInput;
145
+ tslib_1.__decorate([
146
+ (0, type_graphql_1.Field)({ description: 'Run ID' }),
147
+ tslib_1.__metadata("design:type", String)
148
+ ], LogParamInput.prototype, "runId", void 0);
149
+ tslib_1.__decorate([
150
+ (0, type_graphql_1.Field)({ description: 'Parameter key' }),
151
+ tslib_1.__metadata("design:type", String)
152
+ ], LogParamInput.prototype, "key", void 0);
153
+ tslib_1.__decorate([
154
+ (0, type_graphql_1.Field)({ description: 'Parameter value' }),
155
+ tslib_1.__metadata("design:type", String)
156
+ ], LogParamInput.prototype, "value", void 0);
157
+ exports.LogParamInput = LogParamInput = tslib_1.__decorate([
158
+ (0, type_graphql_1.InputType)({ description: 'Input for logging parameter' })
159
+ ], LogParamInput);
160
+ let UpdateRunInput = class UpdateRunInput {
161
+ };
162
+ exports.UpdateRunInput = UpdateRunInput;
163
+ tslib_1.__decorate([
164
+ (0, type_graphql_1.Field)({ description: 'Run ID' }),
165
+ tslib_1.__metadata("design:type", String)
166
+ ], UpdateRunInput.prototype, "runId", void 0);
167
+ tslib_1.__decorate([
168
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Status' }),
169
+ tslib_1.__metadata("design:type", String)
170
+ ], UpdateRunInput.prototype, "status", void 0);
171
+ tslib_1.__decorate([
172
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { nullable: true, description: 'End time' }),
173
+ tslib_1.__metadata("design:type", Number)
174
+ ], UpdateRunInput.prototype, "endTime", void 0);
175
+ exports.UpdateRunInput = UpdateRunInput = tslib_1.__decorate([
176
+ (0, type_graphql_1.InputType)({ description: 'Input for updating run' })
177
+ ], UpdateRunInput);
178
+ // ============================================================================
179
+ // Model Registry Types
180
+ // ============================================================================
181
+ let MLflowRegisteredModel = class MLflowRegisteredModel {
182
+ };
183
+ exports.MLflowRegisteredModel = MLflowRegisteredModel;
184
+ tslib_1.__decorate([
185
+ (0, type_graphql_1.Field)({ description: 'Model name' }),
186
+ tslib_1.__metadata("design:type", String)
187
+ ], MLflowRegisteredModel.prototype, "name", void 0);
188
+ tslib_1.__decorate([
189
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Creation timestamp' }),
190
+ tslib_1.__metadata("design:type", Number)
191
+ ], MLflowRegisteredModel.prototype, "creationTimestamp", void 0);
192
+ tslib_1.__decorate([
193
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Last updated timestamp' }),
194
+ tslib_1.__metadata("design:type", Number)
195
+ ], MLflowRegisteredModel.prototype, "lastUpdatedTimestamp", void 0);
196
+ tslib_1.__decorate([
197
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Model description' }),
198
+ tslib_1.__metadata("design:type", String)
199
+ ], MLflowRegisteredModel.prototype, "description", void 0);
200
+ tslib_1.__decorate([
201
+ (0, type_graphql_1.Field)(type => String, { nullable: true, description: 'Tags as JSON string' }),
202
+ tslib_1.__metadata("design:type", String)
203
+ ], MLflowRegisteredModel.prototype, "tags", void 0);
204
+ tslib_1.__decorate([
205
+ (0, type_graphql_1.Field)(type => String, { nullable: true, description: 'Latest versions as JSON string' }),
206
+ tslib_1.__metadata("design:type", String)
207
+ ], MLflowRegisteredModel.prototype, "latestVersions", void 0);
208
+ exports.MLflowRegisteredModel = MLflowRegisteredModel = tslib_1.__decorate([
209
+ (0, type_graphql_1.ObjectType)({ description: 'MLflow Registered Model' })
210
+ ], MLflowRegisteredModel);
211
+ let CreateRegisteredModelInput = class CreateRegisteredModelInput {
212
+ };
213
+ exports.CreateRegisteredModelInput = CreateRegisteredModelInput;
214
+ tslib_1.__decorate([
215
+ (0, type_graphql_1.Field)({ description: 'Model name' }),
216
+ tslib_1.__metadata("design:type", String)
217
+ ], CreateRegisteredModelInput.prototype, "name", void 0);
218
+ tslib_1.__decorate([
219
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Model description' }),
220
+ tslib_1.__metadata("design:type", String)
221
+ ], CreateRegisteredModelInput.prototype, "description", void 0);
222
+ tslib_1.__decorate([
223
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Tags as JSON string' }),
224
+ tslib_1.__metadata("design:type", String)
225
+ ], CreateRegisteredModelInput.prototype, "tags", void 0);
226
+ exports.CreateRegisteredModelInput = CreateRegisteredModelInput = tslib_1.__decorate([
227
+ (0, type_graphql_1.InputType)({ description: 'Input for creating registered model' })
228
+ ], CreateRegisteredModelInput);
229
+ let MLflowModelVersion = class MLflowModelVersion {
230
+ };
231
+ exports.MLflowModelVersion = MLflowModelVersion;
232
+ tslib_1.__decorate([
233
+ (0, type_graphql_1.Field)({ description: 'Model name' }),
234
+ tslib_1.__metadata("design:type", String)
235
+ ], MLflowModelVersion.prototype, "name", void 0);
236
+ tslib_1.__decorate([
237
+ (0, type_graphql_1.Field)({ description: 'Version number' }),
238
+ tslib_1.__metadata("design:type", String)
239
+ ], MLflowModelVersion.prototype, "version", void 0);
240
+ tslib_1.__decorate([
241
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Creation timestamp' }),
242
+ tslib_1.__metadata("design:type", Number)
243
+ ], MLflowModelVersion.prototype, "creationTimestamp", void 0);
244
+ tslib_1.__decorate([
245
+ (0, type_graphql_1.Field)({ description: 'Current stage' }),
246
+ tslib_1.__metadata("design:type", String)
247
+ ], MLflowModelVersion.prototype, "currentStage", void 0);
248
+ tslib_1.__decorate([
249
+ (0, type_graphql_1.Field)({ description: 'Model source' }),
250
+ tslib_1.__metadata("design:type", String)
251
+ ], MLflowModelVersion.prototype, "source", void 0);
252
+ tslib_1.__decorate([
253
+ (0, type_graphql_1.Field)({ description: 'Version status' }),
254
+ tslib_1.__metadata("design:type", String)
255
+ ], MLflowModelVersion.prototype, "status", void 0);
256
+ tslib_1.__decorate([
257
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Run ID' }),
258
+ tslib_1.__metadata("design:type", String)
259
+ ], MLflowModelVersion.prototype, "runId", void 0);
260
+ tslib_1.__decorate([
261
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Description' }),
262
+ tslib_1.__metadata("design:type", String)
263
+ ], MLflowModelVersion.prototype, "description", void 0);
264
+ exports.MLflowModelVersion = MLflowModelVersion = tslib_1.__decorate([
265
+ (0, type_graphql_1.ObjectType)({ description: 'MLflow Model Version' })
266
+ ], MLflowModelVersion);
267
+ let CreateModelVersionInput = class CreateModelVersionInput {
268
+ };
269
+ exports.CreateModelVersionInput = CreateModelVersionInput;
270
+ tslib_1.__decorate([
271
+ (0, type_graphql_1.Field)({ description: 'Model name' }),
272
+ tslib_1.__metadata("design:type", String)
273
+ ], CreateModelVersionInput.prototype, "name", void 0);
274
+ tslib_1.__decorate([
275
+ (0, type_graphql_1.Field)({ description: 'Model source URI' }),
276
+ tslib_1.__metadata("design:type", String)
277
+ ], CreateModelVersionInput.prototype, "source", void 0);
278
+ tslib_1.__decorate([
279
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Run ID' }),
280
+ tslib_1.__metadata("design:type", String)
281
+ ], CreateModelVersionInput.prototype, "runId", void 0);
282
+ tslib_1.__decorate([
283
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Description' }),
284
+ tslib_1.__metadata("design:type", String)
285
+ ], CreateModelVersionInput.prototype, "description", void 0);
286
+ tslib_1.__decorate([
287
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Tags as JSON string' }),
288
+ tslib_1.__metadata("design:type", String)
289
+ ], CreateModelVersionInput.prototype, "tags", void 0);
290
+ exports.CreateModelVersionInput = CreateModelVersionInput = tslib_1.__decorate([
291
+ (0, type_graphql_1.InputType)({ description: 'Input for creating model version' })
292
+ ], CreateModelVersionInput);
293
+ let TransitionStageInput = class TransitionStageInput {
294
+ };
295
+ exports.TransitionStageInput = TransitionStageInput;
296
+ tslib_1.__decorate([
297
+ (0, type_graphql_1.Field)({ description: 'Model name' }),
298
+ tslib_1.__metadata("design:type", String)
299
+ ], TransitionStageInput.prototype, "name", void 0);
300
+ tslib_1.__decorate([
301
+ (0, type_graphql_1.Field)({ description: 'Version number' }),
302
+ tslib_1.__metadata("design:type", String)
303
+ ], TransitionStageInput.prototype, "version", void 0);
304
+ tslib_1.__decorate([
305
+ (0, type_graphql_1.Field)({ description: 'Target stage (None, Staging, Production, Archived)' }),
306
+ tslib_1.__metadata("design:type", String)
307
+ ], TransitionStageInput.prototype, "stage", void 0);
308
+ tslib_1.__decorate([
309
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Archive existing versions in target stage' }),
310
+ tslib_1.__metadata("design:type", Boolean)
311
+ ], TransitionStageInput.prototype, "archiveExistingVersions", void 0);
312
+ exports.TransitionStageInput = TransitionStageInput = tslib_1.__decorate([
313
+ (0, type_graphql_1.InputType)({ description: 'Input for transitioning model version stage' })
314
+ ], TransitionStageInput);
315
+ let SearchRunsInput = class SearchRunsInput {
316
+ };
317
+ exports.SearchRunsInput = SearchRunsInput;
318
+ tslib_1.__decorate([
319
+ (0, type_graphql_1.Field)(type => [String], { description: 'Experiment IDs to search' }),
320
+ tslib_1.__metadata("design:type", Array)
321
+ ], SearchRunsInput.prototype, "experimentIds", void 0);
322
+ tslib_1.__decorate([
323
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Filter string' }),
324
+ tslib_1.__metadata("design:type", String)
325
+ ], SearchRunsInput.prototype, "filter", void 0);
326
+ tslib_1.__decorate([
327
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { nullable: true, description: 'Max results' }),
328
+ tslib_1.__metadata("design:type", Number)
329
+ ], SearchRunsInput.prototype, "maxResults", void 0);
330
+ tslib_1.__decorate([
331
+ (0, type_graphql_1.Field)(type => [String], { nullable: true, description: 'Order by' }),
332
+ tslib_1.__metadata("design:type", Array)
333
+ ], SearchRunsInput.prototype, "orderBy", void 0);
334
+ exports.SearchRunsInput = SearchRunsInput = tslib_1.__decorate([
335
+ (0, type_graphql_1.InputType)({ description: 'Input for searching runs' })
336
+ ], SearchRunsInput);
337
+ //# sourceMappingURL=mlflow-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mlflow-types.js","sourceRoot":"","sources":["../../server/types/mlflow-types.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, ObjectType, InputType, Int } from 'type-graphql'\n\n// ============================================================================\n// Experiment Types\n// ============================================================================\n\n@ObjectType({ description: 'MLflow Experiment' })\nexport class MLflowExperiment {\n @Field({ description: 'Experiment ID' })\n experimentId: string\n\n @Field({ description: 'Experiment name' })\n name: string\n\n @Field({ description: 'Artifact location' })\n artifactLocation: string\n\n @Field({ description: 'Lifecycle stage' })\n lifecycleStage: string\n\n @Field(type => String, { nullable: true, description: 'Tags as JSON string' })\n tags?: string\n}\n\n@InputType({ description: 'Input for creating MLflow experiment' })\nexport class CreateExperimentInput {\n @Field({ description: 'Experiment name' })\n name: string\n\n @Field({ nullable: true, description: 'Artifact location' })\n artifactLocation?: string\n\n @Field({ nullable: true, description: 'Tags as JSON string' })\n tags?: string\n}\n\n// ============================================================================\n// Run Types\n// ============================================================================\n\n@ObjectType({ description: 'MLflow Run' })\nexport class MLflowRun {\n @Field({ description: 'Run ID' })\n runId: string\n\n @Field({ description: 'Experiment ID' })\n experimentId: string\n\n @Field({ description: 'Run status' })\n status: string\n\n @Field(type => Int, { description: 'Start time (Unix timestamp)' })\n startTime: number\n\n @Field(type => Int, { nullable: true, description: 'End time (Unix timestamp)' })\n endTime?: number\n\n @Field({ description: 'Artifact URI' })\n artifactUri: string\n\n @Field(type => String, { nullable: true, description: 'Metrics as JSON string' })\n metrics?: string\n\n @Field(type => String, { nullable: true, description: 'Params as JSON string' })\n params?: string\n\n @Field(type => String, { nullable: true, description: 'Tags as JSON string' })\n tags?: string\n}\n\n@InputType({ description: 'Input for creating MLflow run' })\nexport class CreateRunInput {\n @Field({ description: 'Experiment ID' })\n experimentId: string\n\n @Field(type => Int, { nullable: true, description: 'Start time' })\n startTime?: number\n\n @Field({ nullable: true, description: 'Tags as JSON string' })\n tags?: string\n}\n\n@InputType({ description: 'Input for logging metric' })\nexport class LogMetricInput {\n @Field({ description: 'Run ID' })\n runId: string\n\n @Field({ description: 'Metric key' })\n key: string\n\n @Field({ description: 'Metric value' })\n value: number\n\n @Field(type => Int, { nullable: true, description: 'Timestamp' })\n timestamp?: number\n\n @Field(type => Int, { nullable: true, description: 'Step' })\n step?: number\n}\n\n@InputType({ description: 'Input for logging parameter' })\nexport class LogParamInput {\n @Field({ description: 'Run ID' })\n runId: string\n\n @Field({ description: 'Parameter key' })\n key: string\n\n @Field({ description: 'Parameter value' })\n value: string\n}\n\n@InputType({ description: 'Input for updating run' })\nexport class UpdateRunInput {\n @Field({ description: 'Run ID' })\n runId: string\n\n @Field({ nullable: true, description: 'Status' })\n status?: string\n\n @Field(type => Int, { nullable: true, description: 'End time' })\n endTime?: number\n}\n\n// ============================================================================\n// Model Registry Types\n// ============================================================================\n\n@ObjectType({ description: 'MLflow Registered Model' })\nexport class MLflowRegisteredModel {\n @Field({ description: 'Model name' })\n name: string\n\n @Field(type => Int, { description: 'Creation timestamp' })\n creationTimestamp: number\n\n @Field(type => Int, { description: 'Last updated timestamp' })\n lastUpdatedTimestamp: number\n\n @Field({ nullable: true, description: 'Model description' })\n description?: string\n\n @Field(type => String, { nullable: true, description: 'Tags as JSON string' })\n tags?: string\n\n @Field(type => String, { nullable: true, description: 'Latest versions as JSON string' })\n latestVersions?: string\n}\n\n@InputType({ description: 'Input for creating registered model' })\nexport class CreateRegisteredModelInput {\n @Field({ description: 'Model name' })\n name: string\n\n @Field({ nullable: true, description: 'Model description' })\n description?: string\n\n @Field({ nullable: true, description: 'Tags as JSON string' })\n tags?: string\n}\n\n@ObjectType({ description: 'MLflow Model Version' })\nexport class MLflowModelVersion {\n @Field({ description: 'Model name' })\n name: string\n\n @Field({ description: 'Version number' })\n version: string\n\n @Field(type => Int, { description: 'Creation timestamp' })\n creationTimestamp: number\n\n @Field({ description: 'Current stage' })\n currentStage: string\n\n @Field({ description: 'Model source' })\n source: string\n\n @Field({ description: 'Version status' })\n status: string\n\n @Field({ nullable: true, description: 'Run ID' })\n runId?: string\n\n @Field({ nullable: true, description: 'Description' })\n description?: string\n}\n\n@InputType({ description: 'Input for creating model version' })\nexport class CreateModelVersionInput {\n @Field({ description: 'Model name' })\n name: string\n\n @Field({ description: 'Model source URI' })\n source: string\n\n @Field({ nullable: true, description: 'Run ID' })\n runId?: string\n\n @Field({ nullable: true, description: 'Description' })\n description?: string\n\n @Field({ nullable: true, description: 'Tags as JSON string' })\n tags?: string\n}\n\n@InputType({ description: 'Input for transitioning model version stage' })\nexport class TransitionStageInput {\n @Field({ description: 'Model name' })\n name: string\n\n @Field({ description: 'Version number' })\n version: string\n\n @Field({ description: 'Target stage (None, Staging, Production, Archived)' })\n stage: string\n\n @Field({ nullable: true, description: 'Archive existing versions in target stage' })\n archiveExistingVersions?: boolean\n}\n\n@InputType({ description: 'Input for searching runs' })\nexport class SearchRunsInput {\n @Field(type => [String], { description: 'Experiment IDs to search' })\n experimentIds: string[]\n\n @Field({ nullable: true, description: 'Filter string' })\n filter?: string\n\n @Field(type => Int, { nullable: true, description: 'Max results' })\n maxResults?: number\n\n @Field(type => [String], { nullable: true, description: 'Order by' })\n orderBy?: string[]\n}\n"]}