@things-factory/integration-label-studio 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 (152) hide show
  1. package/CHANGELOG.md +85 -0
  2. package/EXTERNAL_DATA_SOURCING.md +484 -0
  3. package/IMPLEMENTATION_GUIDE.md +469 -0
  4. package/INTEGRATION.md +279 -0
  5. package/README.md +1014 -0
  6. package/SETUP_GUIDE.md +577 -0
  7. package/TEST_GUIDE.md +387 -0
  8. package/UI_CUSTOMIZATION.md +395 -0
  9. package/USER_SYNC_GUIDE.md +514 -0
  10. package/client/bootstrap.ts +1 -0
  11. package/client/index.ts +1 -0
  12. package/client/label-studio-label-page.ts +52 -0
  13. package/client/label-studio-project-create.ts +216 -0
  14. package/client/label-studio-project-list.ts +214 -0
  15. package/client/label-studio-wrapper.ts +294 -0
  16. package/client/route.ts +15 -0
  17. package/client/tsconfig.json +13 -0
  18. package/config/config.development.js +124 -0
  19. package/config/config.production.js +182 -0
  20. package/dist-client/bootstrap.d.ts +1 -0
  21. package/dist-client/bootstrap.js +2 -0
  22. package/dist-client/bootstrap.js.map +1 -0
  23. package/dist-client/index.d.ts +1 -0
  24. package/dist-client/index.js +2 -0
  25. package/dist-client/index.js.map +1 -0
  26. package/dist-client/label-studio-label-page.d.ts +8 -0
  27. package/dist-client/label-studio-label-page.js +54 -0
  28. package/dist-client/label-studio-label-page.js.map +1 -0
  29. package/dist-client/label-studio-project-create.d.ts +16 -0
  30. package/dist-client/label-studio-project-create.js +235 -0
  31. package/dist-client/label-studio-project-create.js.map +1 -0
  32. package/dist-client/label-studio-project-list.d.ts +16 -0
  33. package/dist-client/label-studio-project-list.js +222 -0
  34. package/dist-client/label-studio-project-list.js.map +1 -0
  35. package/dist-client/label-studio-wrapper.d.ts +57 -0
  36. package/dist-client/label-studio-wrapper.js +304 -0
  37. package/dist-client/label-studio-wrapper.js.map +1 -0
  38. package/dist-client/route.d.ts +1 -0
  39. package/dist-client/route.js +14 -0
  40. package/dist-client/route.js.map +1 -0
  41. package/dist-client/tsconfig.tsbuildinfo +1 -0
  42. package/dist-server/controller/label-studio-role-mapper.d.ts +35 -0
  43. package/dist-server/controller/label-studio-role-mapper.js +65 -0
  44. package/dist-server/controller/label-studio-role-mapper.js.map +1 -0
  45. package/dist-server/controller/user-provisioning-service.d.ts +66 -0
  46. package/dist-server/controller/user-provisioning-service.js +264 -0
  47. package/dist-server/controller/user-provisioning-service.js.map +1 -0
  48. package/dist-server/index.d.ts +7 -0
  49. package/dist-server/index.js +19 -0
  50. package/dist-server/index.js.map +1 -0
  51. package/dist-server/route/label-studio-sso.d.ts +2 -0
  52. package/dist-server/route/label-studio-sso.js +156 -0
  53. package/dist-server/route/label-studio-sso.js.map +1 -0
  54. package/dist-server/route/webhook.d.ts +65 -0
  55. package/dist-server/route/webhook.js +248 -0
  56. package/dist-server/route/webhook.js.map +1 -0
  57. package/dist-server/route.d.ts +1 -0
  58. package/dist-server/route.js +21 -0
  59. package/dist-server/route.js.map +1 -0
  60. package/dist-server/service/ai-prediction-service.d.ts +27 -0
  61. package/dist-server/service/ai-prediction-service.js +222 -0
  62. package/dist-server/service/ai-prediction-service.js.map +1 -0
  63. package/dist-server/service/dataset-labeling-integration.d.ts +44 -0
  64. package/dist-server/service/dataset-labeling-integration.js +512 -0
  65. package/dist-server/service/dataset-labeling-integration.js.map +1 -0
  66. package/dist-server/service/external-data-source-service.d.ts +78 -0
  67. package/dist-server/service/external-data-source-service.js +415 -0
  68. package/dist-server/service/external-data-source-service.js.map +1 -0
  69. package/dist-server/service/index.d.ts +12 -0
  70. package/dist-server/service/index.js +27 -0
  71. package/dist-server/service/index.js.map +1 -0
  72. package/dist-server/service/label-studio-sso-service.d.ts +38 -0
  73. package/dist-server/service/label-studio-sso-service.js +98 -0
  74. package/dist-server/service/label-studio-sso-service.js.map +1 -0
  75. package/dist-server/service/ml/ml-backend-service.d.ts +23 -0
  76. package/dist-server/service/ml/ml-backend-service.js +153 -0
  77. package/dist-server/service/ml/ml-backend-service.js.map +1 -0
  78. package/dist-server/service/prediction/prediction-management.d.ts +32 -0
  79. package/dist-server/service/prediction/prediction-management.js +299 -0
  80. package/dist-server/service/prediction/prediction-management.js.map +1 -0
  81. package/dist-server/service/project/project-management.d.ts +36 -0
  82. package/dist-server/service/project/project-management.js +309 -0
  83. package/dist-server/service/project/project-management.js.map +1 -0
  84. package/dist-server/service/task/task-management.d.ts +42 -0
  85. package/dist-server/service/task/task-management.js +372 -0
  86. package/dist-server/service/task/task-management.js.map +1 -0
  87. package/dist-server/service/user-provisioning/user-sync-mutation.d.ts +28 -0
  88. package/dist-server/service/user-provisioning/user-sync-mutation.js +111 -0
  89. package/dist-server/service/user-provisioning/user-sync-mutation.js.map +1 -0
  90. package/dist-server/service/webhook/webhook-management.d.ts +21 -0
  91. package/dist-server/service/webhook/webhook-management.js +134 -0
  92. package/dist-server/service/webhook/webhook-management.js.map +1 -0
  93. package/dist-server/tsconfig.tsbuildinfo +1 -0
  94. package/dist-server/types/dataset-labeling-types.d.ts +71 -0
  95. package/dist-server/types/dataset-labeling-types.js +259 -0
  96. package/dist-server/types/dataset-labeling-types.js.map +1 -0
  97. package/dist-server/types/label-studio-types.d.ts +128 -0
  98. package/dist-server/types/label-studio-types.js +494 -0
  99. package/dist-server/types/label-studio-types.js.map +1 -0
  100. package/dist-server/types/prediction-types.d.ts +39 -0
  101. package/dist-server/types/prediction-types.js +121 -0
  102. package/dist-server/types/prediction-types.js.map +1 -0
  103. package/dist-server/utils/annotation-exporter.d.ts +104 -0
  104. package/dist-server/utils/annotation-exporter.js +261 -0
  105. package/dist-server/utils/annotation-exporter.js.map +1 -0
  106. package/dist-server/utils/label-config-builder.d.ts +117 -0
  107. package/dist-server/utils/label-config-builder.js +286 -0
  108. package/dist-server/utils/label-config-builder.js.map +1 -0
  109. package/dist-server/utils/label-studio-api-client.d.ts +180 -0
  110. package/dist-server/utils/label-studio-api-client.js +401 -0
  111. package/dist-server/utils/label-studio-api-client.js.map +1 -0
  112. package/dist-server/utils/media-url-extractor.d.ts +45 -0
  113. package/dist-server/utils/media-url-extractor.js +152 -0
  114. package/dist-server/utils/media-url-extractor.js.map +1 -0
  115. package/dist-server/utils/task-transformer.d.ts +108 -0
  116. package/dist-server/utils/task-transformer.js +260 -0
  117. package/dist-server/utils/task-transformer.js.map +1 -0
  118. package/package.json +47 -0
  119. package/server/SERVER_STRUCTURE.md +351 -0
  120. package/server/controller/label-studio-role-mapper.ts +76 -0
  121. package/server/controller/user-provisioning-service.ts +340 -0
  122. package/server/index.ts +19 -0
  123. package/server/route/label-studio-sso.ts +194 -0
  124. package/server/route/webhook.ts +304 -0
  125. package/server/route.ts +35 -0
  126. package/server/service/ai-prediction-service.ts +239 -0
  127. package/server/service/dataset-labeling-integration.ts +590 -0
  128. package/server/service/external-data-source-service.ts +438 -0
  129. package/server/service/index.ts +24 -0
  130. package/server/service/label-studio-sso-service.ts +108 -0
  131. package/server/service/labeling-scenario-service.ts.deprecated +566 -0
  132. package/server/service/ml/ml-backend-service.ts +127 -0
  133. package/server/service/prediction/prediction-management.ts +281 -0
  134. package/server/service/project/project-management.ts +284 -0
  135. package/server/service/task/task-management.ts +363 -0
  136. package/server/service/user-provisioning/user-sync-mutation.ts +80 -0
  137. package/server/service/webhook/webhook-management.ts +109 -0
  138. package/server/tsconfig.json +11 -0
  139. package/server/types/dataset-labeling-types.ts +181 -0
  140. package/server/types/global.d.ts +23 -0
  141. package/server/types/label-studio-types.ts +346 -0
  142. package/server/types/prediction-types.ts +86 -0
  143. package/server/types/scenario-types.ts.deprecated +362 -0
  144. package/server/utils/annotation-exporter.ts +340 -0
  145. package/server/utils/label-config-builder.ts +340 -0
  146. package/server/utils/label-studio-api-client.ts +487 -0
  147. package/server/utils/media-url-extractor.ts +193 -0
  148. package/server/utils/task-transformer.ts +342 -0
  149. package/test-ai-prediction.js +268 -0
  150. package/test-dataset-integration.js +449 -0
  151. package/test-simple.js +89 -0
  152. package/things-factory.config.js +12 -0
@@ -0,0 +1,494 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AddMLBackendInput = exports.MLBackend = exports.AnnotatorStats = exports.ProjectMetrics = exports.ExportResult = exports.PredictionImportResult = exports.BulkPredictionInput = exports.PredictionInput = exports.LabelStudioPrediction = exports.LabelStudioAnnotation = exports.TaskImportResult = exports.ImportTasksWithTransformInput = exports.TaskTransformRuleInput = exports.TaskDataInput = exports.LabelStudioTask = exports.AnnotationExportResult = exports.ExportAnnotationsInput = exports.CreateProjectWithSpecInput = exports.LabelConfigSpecInput = exports.CreateProjectInput = exports.LabelStudioProject = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const type_graphql_1 = require("type-graphql");
6
+ // ============================================================================
7
+ // Project Types
8
+ // ============================================================================
9
+ let LabelStudioProject = class LabelStudioProject {
10
+ };
11
+ exports.LabelStudioProject = LabelStudioProject;
12
+ tslib_1.__decorate([
13
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Project ID' }),
14
+ tslib_1.__metadata("design:type", Number)
15
+ ], LabelStudioProject.prototype, "id", void 0);
16
+ tslib_1.__decorate([
17
+ (0, type_graphql_1.Field)({ description: 'Project title' }),
18
+ tslib_1.__metadata("design:type", String)
19
+ ], LabelStudioProject.prototype, "title", void 0);
20
+ tslib_1.__decorate([
21
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Project description' }),
22
+ tslib_1.__metadata("design:type", String)
23
+ ], LabelStudioProject.prototype, "description", void 0);
24
+ tslib_1.__decorate([
25
+ (0, type_graphql_1.Field)({ description: 'Label configuration XML' }),
26
+ tslib_1.__metadata("design:type", String)
27
+ ], LabelStudioProject.prototype, "labelConfig", void 0);
28
+ tslib_1.__decorate([
29
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Expert instruction' }),
30
+ tslib_1.__metadata("design:type", String)
31
+ ], LabelStudioProject.prototype, "expertInstruction", void 0);
32
+ tslib_1.__decorate([
33
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Number of tasks' }),
34
+ tslib_1.__metadata("design:type", Number)
35
+ ], LabelStudioProject.prototype, "taskCount", void 0);
36
+ tslib_1.__decorate([
37
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Number of completed tasks' }),
38
+ tslib_1.__metadata("design:type", Number)
39
+ ], LabelStudioProject.prototype, "completedTaskCount", void 0);
40
+ tslib_1.__decorate([
41
+ (0, type_graphql_1.Field)(type => type_graphql_1.Float, { description: 'Completion rate (0-1)' }),
42
+ tslib_1.__metadata("design:type", Number)
43
+ ], LabelStudioProject.prototype, "completionRate", void 0);
44
+ tslib_1.__decorate([
45
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Created date' }),
46
+ tslib_1.__metadata("design:type", Date)
47
+ ], LabelStudioProject.prototype, "createdAt", void 0);
48
+ tslib_1.__decorate([
49
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Updated date' }),
50
+ tslib_1.__metadata("design:type", Date)
51
+ ], LabelStudioProject.prototype, "updatedAt", void 0);
52
+ exports.LabelStudioProject = LabelStudioProject = tslib_1.__decorate([
53
+ (0, type_graphql_1.ObjectType)({ description: 'Label Studio project information' })
54
+ ], LabelStudioProject);
55
+ let CreateProjectInput = class CreateProjectInput {
56
+ };
57
+ exports.CreateProjectInput = CreateProjectInput;
58
+ tslib_1.__decorate([
59
+ (0, type_graphql_1.Field)({ description: 'Project title' }),
60
+ tslib_1.__metadata("design:type", String)
61
+ ], CreateProjectInput.prototype, "title", void 0);
62
+ tslib_1.__decorate([
63
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Project description' }),
64
+ tslib_1.__metadata("design:type", String)
65
+ ], CreateProjectInput.prototype, "description", void 0);
66
+ tslib_1.__decorate([
67
+ (0, type_graphql_1.Field)({ description: 'Label configuration XML' }),
68
+ tslib_1.__metadata("design:type", String)
69
+ ], CreateProjectInput.prototype, "labelConfig", void 0);
70
+ tslib_1.__decorate([
71
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Expert instruction' }),
72
+ tslib_1.__metadata("design:type", String)
73
+ ], CreateProjectInput.prototype, "expertInstruction", void 0);
74
+ exports.CreateProjectInput = CreateProjectInput = tslib_1.__decorate([
75
+ (0, type_graphql_1.InputType)({ description: 'Input for creating Label Studio project' })
76
+ ], CreateProjectInput);
77
+ let LabelConfigSpecInput = class LabelConfigSpecInput {
78
+ };
79
+ exports.LabelConfigSpecInput = LabelConfigSpecInput;
80
+ tslib_1.__decorate([
81
+ (0, type_graphql_1.Field)({ description: 'Data type (image, text, audio, video, timeseries, html, hypertext)' }),
82
+ tslib_1.__metadata("design:type", String)
83
+ ], LabelConfigSpecInput.prototype, "dataType", void 0);
84
+ tslib_1.__decorate([
85
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Data name (default: data)' }),
86
+ tslib_1.__metadata("design:type", String)
87
+ ], LabelConfigSpecInput.prototype, "dataName", void 0);
88
+ tslib_1.__decorate([
89
+ (0, type_graphql_1.Field)({ description: 'Control specifications as JSON array' }),
90
+ tslib_1.__metadata("design:type", String)
91
+ ], LabelConfigSpecInput.prototype, "controls", void 0);
92
+ exports.LabelConfigSpecInput = LabelConfigSpecInput = tslib_1.__decorate([
93
+ (0, type_graphql_1.InputType)({ description: 'Label config specification for flexible project creation' })
94
+ ], LabelConfigSpecInput);
95
+ let CreateProjectWithSpecInput = class CreateProjectWithSpecInput {
96
+ };
97
+ exports.CreateProjectWithSpecInput = CreateProjectWithSpecInput;
98
+ tslib_1.__decorate([
99
+ (0, type_graphql_1.Field)({ description: 'Project title' }),
100
+ tslib_1.__metadata("design:type", String)
101
+ ], CreateProjectWithSpecInput.prototype, "title", void 0);
102
+ tslib_1.__decorate([
103
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Project description' }),
104
+ tslib_1.__metadata("design:type", String)
105
+ ], CreateProjectWithSpecInput.prototype, "description", void 0);
106
+ tslib_1.__decorate([
107
+ (0, type_graphql_1.Field)({ description: 'Label config specification' }),
108
+ tslib_1.__metadata("design:type", LabelConfigSpecInput)
109
+ ], CreateProjectWithSpecInput.prototype, "labelConfigSpec", void 0);
110
+ tslib_1.__decorate([
111
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Expert instruction' }),
112
+ tslib_1.__metadata("design:type", String)
113
+ ], CreateProjectWithSpecInput.prototype, "expertInstruction", void 0);
114
+ exports.CreateProjectWithSpecInput = CreateProjectWithSpecInput = tslib_1.__decorate([
115
+ (0, type_graphql_1.InputType)({ description: 'Input for creating project with flexible config builder' })
116
+ ], CreateProjectWithSpecInput);
117
+ let ExportAnnotationsInput = class ExportAnnotationsInput {
118
+ };
119
+ exports.ExportAnnotationsInput = ExportAnnotationsInput;
120
+ tslib_1.__decorate([
121
+ (0, type_graphql_1.Field)({ description: 'Export format (json, jsonl, csv, rank-csv, coco, yolo, ner-json)' }),
122
+ tslib_1.__metadata("design:type", String)
123
+ ], ExportAnnotationsInput.prototype, "format", void 0);
124
+ tslib_1.__decorate([
125
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Filter by task IDs' }),
126
+ tslib_1.__metadata("design:type", String)
127
+ ], ExportAnnotationsInput.prototype, "taskIds", void 0);
128
+ exports.ExportAnnotationsInput = ExportAnnotationsInput = tslib_1.__decorate([
129
+ (0, type_graphql_1.InputType)({ description: 'Export annotations input' })
130
+ ], ExportAnnotationsInput);
131
+ let AnnotationExportResult = class AnnotationExportResult {
132
+ };
133
+ exports.AnnotationExportResult = AnnotationExportResult;
134
+ tslib_1.__decorate([
135
+ (0, type_graphql_1.Field)({ description: 'Exported data as JSON string' }),
136
+ tslib_1.__metadata("design:type", String)
137
+ ], AnnotationExportResult.prototype, "data", void 0);
138
+ tslib_1.__decorate([
139
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Number of annotations exported' }),
140
+ tslib_1.__metadata("design:type", Number)
141
+ ], AnnotationExportResult.prototype, "count", void 0);
142
+ tslib_1.__decorate([
143
+ (0, type_graphql_1.Field)({ description: 'Export format used' }),
144
+ tslib_1.__metadata("design:type", String)
145
+ ], AnnotationExportResult.prototype, "format", void 0);
146
+ exports.AnnotationExportResult = AnnotationExportResult = tslib_1.__decorate([
147
+ (0, type_graphql_1.ObjectType)({ description: 'Annotation export result' })
148
+ ], AnnotationExportResult);
149
+ // ============================================================================
150
+ // Task Types
151
+ // ============================================================================
152
+ let LabelStudioTask = class LabelStudioTask {
153
+ };
154
+ exports.LabelStudioTask = LabelStudioTask;
155
+ tslib_1.__decorate([
156
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Task ID' }),
157
+ tslib_1.__metadata("design:type", Number)
158
+ ], LabelStudioTask.prototype, "id", void 0);
159
+ tslib_1.__decorate([
160
+ (0, type_graphql_1.Field)({ description: 'Task data (JSON)' }),
161
+ tslib_1.__metadata("design:type", String)
162
+ ], LabelStudioTask.prototype, "data", void 0);
163
+ tslib_1.__decorate([
164
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Number of annotations' }),
165
+ tslib_1.__metadata("design:type", Number)
166
+ ], LabelStudioTask.prototype, "annotationCount", void 0);
167
+ tslib_1.__decorate([
168
+ (0, type_graphql_1.Field)({ description: 'Is task completed' }),
169
+ tslib_1.__metadata("design:type", Boolean)
170
+ ], LabelStudioTask.prototype, "isCompleted", void 0);
171
+ tslib_1.__decorate([
172
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Task created date' }),
173
+ tslib_1.__metadata("design:type", Date)
174
+ ], LabelStudioTask.prototype, "createdAt", void 0);
175
+ exports.LabelStudioTask = LabelStudioTask = tslib_1.__decorate([
176
+ (0, type_graphql_1.ObjectType)({ description: 'Label Studio task' })
177
+ ], LabelStudioTask);
178
+ let TaskDataInput = class TaskDataInput {
179
+ };
180
+ exports.TaskDataInput = TaskDataInput;
181
+ tslib_1.__decorate([
182
+ (0, type_graphql_1.Field)({ description: 'Task data as JSON string' }),
183
+ tslib_1.__metadata("design:type", String)
184
+ ], TaskDataInput.prototype, "data", void 0);
185
+ exports.TaskDataInput = TaskDataInput = tslib_1.__decorate([
186
+ (0, type_graphql_1.InputType)({ description: 'Input for creating tasks' })
187
+ ], TaskDataInput);
188
+ let TaskTransformRuleInput = class TaskTransformRuleInput {
189
+ };
190
+ exports.TaskTransformRuleInput = TaskTransformRuleInput;
191
+ tslib_1.__decorate([
192
+ (0, type_graphql_1.Field)({ description: 'Field mapping as JSON (Label Studio field -> source path)' }),
193
+ tslib_1.__metadata("design:type", String)
194
+ ], TaskTransformRuleInput.prototype, "dataFields", void 0);
195
+ tslib_1.__decorate([
196
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Prediction configuration as JSON' }),
197
+ tslib_1.__metadata("design:type", String)
198
+ ], TaskTransformRuleInput.prototype, "predictions", void 0);
199
+ tslib_1.__decorate([
200
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Metadata mapping as JSON' }),
201
+ tslib_1.__metadata("design:type", String)
202
+ ], TaskTransformRuleInput.prototype, "meta", void 0);
203
+ exports.TaskTransformRuleInput = TaskTransformRuleInput = tslib_1.__decorate([
204
+ (0, type_graphql_1.InputType)({ description: 'Task transformation rule for flexible data import' })
205
+ ], TaskTransformRuleInput);
206
+ let ImportTasksWithTransformInput = class ImportTasksWithTransformInput {
207
+ };
208
+ exports.ImportTasksWithTransformInput = ImportTasksWithTransformInput;
209
+ tslib_1.__decorate([
210
+ (0, type_graphql_1.Field)({ description: 'Source data as JSON array string' }),
211
+ tslib_1.__metadata("design:type", String)
212
+ ], ImportTasksWithTransformInput.prototype, "sourceData", void 0);
213
+ tslib_1.__decorate([
214
+ (0, type_graphql_1.Field)({ description: 'Transformation rule' }),
215
+ tslib_1.__metadata("design:type", TaskTransformRuleInput)
216
+ ], ImportTasksWithTransformInput.prototype, "transformRule", void 0);
217
+ exports.ImportTasksWithTransformInput = ImportTasksWithTransformInput = tslib_1.__decorate([
218
+ (0, type_graphql_1.InputType)({ description: 'Input for importing tasks with transformation' })
219
+ ], ImportTasksWithTransformInput);
220
+ let TaskImportResult = class TaskImportResult {
221
+ };
222
+ exports.TaskImportResult = TaskImportResult;
223
+ tslib_1.__decorate([
224
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Number of tasks imported' }),
225
+ tslib_1.__metadata("design:type", Number)
226
+ ], TaskImportResult.prototype, "imported", void 0);
227
+ tslib_1.__decorate([
228
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Number of tasks failed' }),
229
+ tslib_1.__metadata("design:type", Number)
230
+ ], TaskImportResult.prototype, "failed", void 0);
231
+ tslib_1.__decorate([
232
+ (0, type_graphql_1.Field)(type => [type_graphql_1.Int], { description: 'IDs of imported tasks' }),
233
+ tslib_1.__metadata("design:type", Array)
234
+ ], TaskImportResult.prototype, "taskIds", void 0);
235
+ tslib_1.__decorate([
236
+ (0, type_graphql_1.Field)(type => [String], { nullable: true, description: 'Error messages' }),
237
+ tslib_1.__metadata("design:type", Array)
238
+ ], TaskImportResult.prototype, "errors", void 0);
239
+ exports.TaskImportResult = TaskImportResult = tslib_1.__decorate([
240
+ (0, type_graphql_1.ObjectType)({ description: 'Result of task import operation' })
241
+ ], TaskImportResult);
242
+ // ============================================================================
243
+ // Annotation Types
244
+ // ============================================================================
245
+ let LabelStudioAnnotation = class LabelStudioAnnotation {
246
+ };
247
+ exports.LabelStudioAnnotation = LabelStudioAnnotation;
248
+ tslib_1.__decorate([
249
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Annotation ID' }),
250
+ tslib_1.__metadata("design:type", Number)
251
+ ], LabelStudioAnnotation.prototype, "id", void 0);
252
+ tslib_1.__decorate([
253
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Task ID' }),
254
+ tslib_1.__metadata("design:type", Number)
255
+ ], LabelStudioAnnotation.prototype, "taskId", void 0);
256
+ tslib_1.__decorate([
257
+ (0, type_graphql_1.Field)({ description: 'Annotation result (JSON)' }),
258
+ tslib_1.__metadata("design:type", String)
259
+ ], LabelStudioAnnotation.prototype, "result", void 0);
260
+ tslib_1.__decorate([
261
+ (0, type_graphql_1.Field)({ description: 'Completed by user email' }),
262
+ tslib_1.__metadata("design:type", String)
263
+ ], LabelStudioAnnotation.prototype, "completedBy", void 0);
264
+ tslib_1.__decorate([
265
+ (0, type_graphql_1.Field)({ description: 'Created date' }),
266
+ tslib_1.__metadata("design:type", Date)
267
+ ], LabelStudioAnnotation.prototype, "createdAt", void 0);
268
+ tslib_1.__decorate([
269
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Lead time in seconds' }),
270
+ tslib_1.__metadata("design:type", Number)
271
+ ], LabelStudioAnnotation.prototype, "leadTime", void 0);
272
+ exports.LabelStudioAnnotation = LabelStudioAnnotation = tslib_1.__decorate([
273
+ (0, type_graphql_1.ObjectType)({ description: 'Label Studio annotation' })
274
+ ], LabelStudioAnnotation);
275
+ // ============================================================================
276
+ // Prediction Types
277
+ // ============================================================================
278
+ let LabelStudioPrediction = class LabelStudioPrediction {
279
+ };
280
+ exports.LabelStudioPrediction = LabelStudioPrediction;
281
+ tslib_1.__decorate([
282
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Prediction ID' }),
283
+ tslib_1.__metadata("design:type", Number)
284
+ ], LabelStudioPrediction.prototype, "id", void 0);
285
+ tslib_1.__decorate([
286
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Task ID' }),
287
+ tslib_1.__metadata("design:type", Number)
288
+ ], LabelStudioPrediction.prototype, "taskId", void 0);
289
+ tslib_1.__decorate([
290
+ (0, type_graphql_1.Field)({ description: 'Prediction result (JSON)' }),
291
+ tslib_1.__metadata("design:type", String)
292
+ ], LabelStudioPrediction.prototype, "result", void 0);
293
+ tslib_1.__decorate([
294
+ (0, type_graphql_1.Field)(type => type_graphql_1.Float, { nullable: true, description: 'Prediction confidence score (0-1)' }),
295
+ tslib_1.__metadata("design:type", Number)
296
+ ], LabelStudioPrediction.prototype, "score", void 0);
297
+ tslib_1.__decorate([
298
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Model version that generated this prediction' }),
299
+ tslib_1.__metadata("design:type", String)
300
+ ], LabelStudioPrediction.prototype, "modelVersion", void 0);
301
+ tslib_1.__decorate([
302
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Created date' }),
303
+ tslib_1.__metadata("design:type", Date)
304
+ ], LabelStudioPrediction.prototype, "createdAt", void 0);
305
+ exports.LabelStudioPrediction = LabelStudioPrediction = tslib_1.__decorate([
306
+ (0, type_graphql_1.ObjectType)({ description: 'Label Studio prediction (AI pre-annotation)' })
307
+ ], LabelStudioPrediction);
308
+ let PredictionInput = class PredictionInput {
309
+ };
310
+ exports.PredictionInput = PredictionInput;
311
+ tslib_1.__decorate([
312
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Task ID to create prediction for' }),
313
+ tslib_1.__metadata("design:type", Number)
314
+ ], PredictionInput.prototype, "taskId", void 0);
315
+ tslib_1.__decorate([
316
+ (0, type_graphql_1.Field)({ description: 'Prediction result as JSON string' }),
317
+ tslib_1.__metadata("design:type", String)
318
+ ], PredictionInput.prototype, "result", void 0);
319
+ tslib_1.__decorate([
320
+ (0, type_graphql_1.Field)(type => type_graphql_1.Float, { nullable: true, description: 'Prediction confidence score (0-1)' }),
321
+ tslib_1.__metadata("design:type", Number)
322
+ ], PredictionInput.prototype, "score", void 0);
323
+ tslib_1.__decorate([
324
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Model version' }),
325
+ tslib_1.__metadata("design:type", String)
326
+ ], PredictionInput.prototype, "modelVersion", void 0);
327
+ exports.PredictionInput = PredictionInput = tslib_1.__decorate([
328
+ (0, type_graphql_1.InputType)({ description: 'Input for creating a prediction' })
329
+ ], PredictionInput);
330
+ let BulkPredictionInput = class BulkPredictionInput {
331
+ };
332
+ exports.BulkPredictionInput = BulkPredictionInput;
333
+ tslib_1.__decorate([
334
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Task ID' }),
335
+ tslib_1.__metadata("design:type", Number)
336
+ ], BulkPredictionInput.prototype, "taskId", void 0);
337
+ tslib_1.__decorate([
338
+ (0, type_graphql_1.Field)({ description: 'Prediction result as JSON string' }),
339
+ tslib_1.__metadata("design:type", String)
340
+ ], BulkPredictionInput.prototype, "result", void 0);
341
+ tslib_1.__decorate([
342
+ (0, type_graphql_1.Field)(type => type_graphql_1.Float, { nullable: true, description: 'Prediction confidence score (0-1)' }),
343
+ tslib_1.__metadata("design:type", Number)
344
+ ], BulkPredictionInput.prototype, "score", void 0);
345
+ tslib_1.__decorate([
346
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Model version' }),
347
+ tslib_1.__metadata("design:type", String)
348
+ ], BulkPredictionInput.prototype, "modelVersion", void 0);
349
+ exports.BulkPredictionInput = BulkPredictionInput = tslib_1.__decorate([
350
+ (0, type_graphql_1.InputType)({ description: 'Input for bulk prediction creation' })
351
+ ], BulkPredictionInput);
352
+ let PredictionImportResult = class PredictionImportResult {
353
+ };
354
+ exports.PredictionImportResult = PredictionImportResult;
355
+ tslib_1.__decorate([
356
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Number of predictions created' }),
357
+ tslib_1.__metadata("design:type", Number)
358
+ ], PredictionImportResult.prototype, "created", void 0);
359
+ tslib_1.__decorate([
360
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Number of predictions failed' }),
361
+ tslib_1.__metadata("design:type", Number)
362
+ ], PredictionImportResult.prototype, "failed", void 0);
363
+ tslib_1.__decorate([
364
+ (0, type_graphql_1.Field)(type => [String], { nullable: true, description: 'Error messages' }),
365
+ tslib_1.__metadata("design:type", Array)
366
+ ], PredictionImportResult.prototype, "errors", void 0);
367
+ exports.PredictionImportResult = PredictionImportResult = tslib_1.__decorate([
368
+ (0, type_graphql_1.ObjectType)({ description: 'Result of prediction import operation' })
369
+ ], PredictionImportResult);
370
+ let ExportResult = class ExportResult {
371
+ };
372
+ exports.ExportResult = ExportResult;
373
+ tslib_1.__decorate([
374
+ (0, type_graphql_1.Field)({ description: 'Export file path or URL' }),
375
+ tslib_1.__metadata("design:type", String)
376
+ ], ExportResult.prototype, "exportPath", void 0);
377
+ tslib_1.__decorate([
378
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Number of annotations exported' }),
379
+ tslib_1.__metadata("design:type", Number)
380
+ ], ExportResult.prototype, "annotationCount", void 0);
381
+ tslib_1.__decorate([
382
+ (0, type_graphql_1.Field)({ description: 'Export format (JSON, CSV, YOLO, etc.)' }),
383
+ tslib_1.__metadata("design:type", String)
384
+ ], ExportResult.prototype, "format", void 0);
385
+ exports.ExportResult = ExportResult = tslib_1.__decorate([
386
+ (0, type_graphql_1.ObjectType)({ description: 'Export result' })
387
+ ], ExportResult);
388
+ // ============================================================================
389
+ // Analytics Types
390
+ // ============================================================================
391
+ let ProjectMetrics = class ProjectMetrics {
392
+ };
393
+ exports.ProjectMetrics = ProjectMetrics;
394
+ tslib_1.__decorate([
395
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Total number of tasks' }),
396
+ tslib_1.__metadata("design:type", Number)
397
+ ], ProjectMetrics.prototype, "totalTasks", void 0);
398
+ tslib_1.__decorate([
399
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Number of completed tasks' }),
400
+ tslib_1.__metadata("design:type", Number)
401
+ ], ProjectMetrics.prototype, "completedTasks", void 0);
402
+ tslib_1.__decorate([
403
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Total annotations' }),
404
+ tslib_1.__metadata("design:type", Number)
405
+ ], ProjectMetrics.prototype, "totalAnnotations", void 0);
406
+ tslib_1.__decorate([
407
+ (0, type_graphql_1.Field)(type => type_graphql_1.Float, { description: 'Average annotations per task' }),
408
+ tslib_1.__metadata("design:type", Number)
409
+ ], ProjectMetrics.prototype, "avgAnnotationsPerTask", void 0);
410
+ tslib_1.__decorate([
411
+ (0, type_graphql_1.Field)(type => type_graphql_1.Float, { description: 'Completion rate (0-1)' }),
412
+ tslib_1.__metadata("design:type", Number)
413
+ ], ProjectMetrics.prototype, "completionRate", void 0);
414
+ tslib_1.__decorate([
415
+ (0, type_graphql_1.Field)(type => type_graphql_1.Float, { nullable: true, description: 'Average time per task in seconds' }),
416
+ tslib_1.__metadata("design:type", Number)
417
+ ], ProjectMetrics.prototype, "avgTimePerTask", void 0);
418
+ tslib_1.__decorate([
419
+ (0, type_graphql_1.Field)(type => [AnnotatorStats], { description: 'Statistics per annotator' }),
420
+ tslib_1.__metadata("design:type", Array)
421
+ ], ProjectMetrics.prototype, "annotatorStats", void 0);
422
+ exports.ProjectMetrics = ProjectMetrics = tslib_1.__decorate([
423
+ (0, type_graphql_1.ObjectType)({ description: 'Project metrics and statistics' })
424
+ ], ProjectMetrics);
425
+ let AnnotatorStats = class AnnotatorStats {
426
+ };
427
+ exports.AnnotatorStats = AnnotatorStats;
428
+ tslib_1.__decorate([
429
+ (0, type_graphql_1.Field)({ description: 'User email' }),
430
+ tslib_1.__metadata("design:type", String)
431
+ ], AnnotatorStats.prototype, "email", void 0);
432
+ tslib_1.__decorate([
433
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Number of annotations' }),
434
+ tslib_1.__metadata("design:type", Number)
435
+ ], AnnotatorStats.prototype, "annotationCount", void 0);
436
+ tslib_1.__decorate([
437
+ (0, type_graphql_1.Field)(type => type_graphql_1.Float, { description: 'Average time per annotation in seconds' }),
438
+ tslib_1.__metadata("design:type", Number)
439
+ ], AnnotatorStats.prototype, "avgTime", void 0);
440
+ tslib_1.__decorate([
441
+ (0, type_graphql_1.Field)({ description: 'Last annotation date' }),
442
+ tslib_1.__metadata("design:type", Date)
443
+ ], AnnotatorStats.prototype, "lastAnnotationDate", void 0);
444
+ exports.AnnotatorStats = AnnotatorStats = tslib_1.__decorate([
445
+ (0, type_graphql_1.ObjectType)({ description: 'Annotator statistics' })
446
+ ], AnnotatorStats);
447
+ // ============================================================================
448
+ // ML Backend Types
449
+ // ============================================================================
450
+ let MLBackend = class MLBackend {
451
+ };
452
+ exports.MLBackend = MLBackend;
453
+ tslib_1.__decorate([
454
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'ML Backend ID' }),
455
+ tslib_1.__metadata("design:type", Number)
456
+ ], MLBackend.prototype, "id", void 0);
457
+ tslib_1.__decorate([
458
+ (0, type_graphql_1.Field)({ description: 'ML Backend URL' }),
459
+ tslib_1.__metadata("design:type", String)
460
+ ], MLBackend.prototype, "url", void 0);
461
+ tslib_1.__decorate([
462
+ (0, type_graphql_1.Field)({ description: 'ML Backend title' }),
463
+ tslib_1.__metadata("design:type", String)
464
+ ], MLBackend.prototype, "title", void 0);
465
+ tslib_1.__decorate([
466
+ (0, type_graphql_1.Field)({ description: 'Is interactive preannotation enabled' }),
467
+ tslib_1.__metadata("design:type", Boolean)
468
+ ], MLBackend.prototype, "isInteractive", void 0);
469
+ tslib_1.__decorate([
470
+ (0, type_graphql_1.Field)({ description: 'Model version' }),
471
+ tslib_1.__metadata("design:type", String)
472
+ ], MLBackend.prototype, "modelVersion", void 0);
473
+ exports.MLBackend = MLBackend = tslib_1.__decorate([
474
+ (0, type_graphql_1.ObjectType)({ description: 'ML Backend information' })
475
+ ], MLBackend);
476
+ let AddMLBackendInput = class AddMLBackendInput {
477
+ };
478
+ exports.AddMLBackendInput = AddMLBackendInput;
479
+ tslib_1.__decorate([
480
+ (0, type_graphql_1.Field)({ description: 'ML Backend URL' }),
481
+ tslib_1.__metadata("design:type", String)
482
+ ], AddMLBackendInput.prototype, "url", void 0);
483
+ tslib_1.__decorate([
484
+ (0, type_graphql_1.Field)({ description: 'ML Backend title' }),
485
+ tslib_1.__metadata("design:type", String)
486
+ ], AddMLBackendInput.prototype, "title", void 0);
487
+ tslib_1.__decorate([
488
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Is interactive preannotation enabled' }),
489
+ tslib_1.__metadata("design:type", Boolean)
490
+ ], AddMLBackendInput.prototype, "isInteractive", void 0);
491
+ exports.AddMLBackendInput = AddMLBackendInput = tslib_1.__decorate([
492
+ (0, type_graphql_1.InputType)({ description: 'Input for adding ML Backend' })
493
+ ], AddMLBackendInput);
494
+ //# sourceMappingURL=label-studio-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label-studio-types.js","sourceRoot":"","sources":["../../server/types/label-studio-types.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, ObjectType, InputType, Int, Float } from 'type-graphql'\n\n// ============================================================================\n// Project Types\n// ============================================================================\n\n@ObjectType({ description: 'Label Studio project information' })\nexport class LabelStudioProject {\n @Field(type => Int, { description: 'Project ID' })\n id: number\n\n @Field({ description: 'Project title' })\n title: string\n\n @Field({ nullable: true, description: 'Project description' })\n description?: string\n\n @Field({ description: 'Label configuration XML' })\n labelConfig: string\n\n @Field({ nullable: true, description: 'Expert instruction' })\n expertInstruction?: string\n\n @Field(type => Int, { description: 'Number of tasks' })\n taskCount: number\n\n @Field(type => Int, { description: 'Number of completed tasks' })\n completedTaskCount: number\n\n @Field(type => Float, { description: 'Completion rate (0-1)' })\n completionRate: number\n\n @Field({ nullable: true, description: 'Created date' })\n createdAt: Date\n\n @Field({ nullable: true, description: 'Updated date' })\n updatedAt: Date\n}\n\n@InputType({ description: 'Input for creating Label Studio project' })\nexport class CreateProjectInput {\n @Field({ description: 'Project title' })\n title: string\n\n @Field({ nullable: true, description: 'Project description' })\n description?: string\n\n @Field({ description: 'Label configuration XML' })\n labelConfig: string\n\n @Field({ nullable: true, description: 'Expert instruction' })\n expertInstruction?: string\n}\n\n@InputType({ description: 'Label config specification for flexible project creation' })\nexport class LabelConfigSpecInput {\n @Field({ description: 'Data type (image, text, audio, video, timeseries, html, hypertext)' })\n dataType: string\n\n @Field({ nullable: true, description: 'Data name (default: data)' })\n dataName?: string\n\n @Field({ description: 'Control specifications as JSON array' })\n controls: string\n}\n\n@InputType({ description: 'Input for creating project with flexible config builder' })\nexport class CreateProjectWithSpecInput {\n @Field({ description: 'Project title' })\n title: string\n\n @Field({ nullable: true, description: 'Project description' })\n description?: string\n\n @Field({ description: 'Label config specification' })\n labelConfigSpec: LabelConfigSpecInput\n\n @Field({ nullable: true, description: 'Expert instruction' })\n expertInstruction?: string\n}\n\n@InputType({ description: 'Export annotations input' })\nexport class ExportAnnotationsInput {\n @Field({ description: 'Export format (json, jsonl, csv, rank-csv, coco, yolo, ner-json)' })\n format: string\n\n @Field({ nullable: true, description: 'Filter by task IDs' })\n taskIds?: string\n}\n\n@ObjectType({ description: 'Annotation export result' })\nexport class AnnotationExportResult {\n @Field({ description: 'Exported data as JSON string' })\n data: string\n\n @Field(type => Int, { description: 'Number of annotations exported' })\n count: number\n\n @Field({ description: 'Export format used' })\n format: string\n}\n\n// ============================================================================\n// Task Types\n// ============================================================================\n\n@ObjectType({ description: 'Label Studio task' })\nexport class LabelStudioTask {\n @Field(type => Int, { description: 'Task ID' })\n id: number\n\n @Field({ description: 'Task data (JSON)' })\n data: string\n\n @Field(type => Int, { description: 'Number of annotations' })\n annotationCount: number\n\n @Field({ description: 'Is task completed' })\n isCompleted: boolean\n\n @Field({ nullable: true, description: 'Task created date' })\n createdAt?: Date\n}\n\n@InputType({ description: 'Input for creating tasks' })\nexport class TaskDataInput {\n @Field({ description: 'Task data as JSON string' })\n data: string\n}\n\n@InputType({ description: 'Task transformation rule for flexible data import' })\nexport class TaskTransformRuleInput {\n @Field({ description: 'Field mapping as JSON (Label Studio field -> source path)' })\n dataFields: string\n\n @Field({ nullable: true, description: 'Prediction configuration as JSON' })\n predictions?: string\n\n @Field({ nullable: true, description: 'Metadata mapping as JSON' })\n meta?: string\n}\n\n@InputType({ description: 'Input for importing tasks with transformation' })\nexport class ImportTasksWithTransformInput {\n @Field({ description: 'Source data as JSON array string' })\n sourceData: string\n\n @Field({ description: 'Transformation rule' })\n transformRule: TaskTransformRuleInput\n}\n\n@ObjectType({ description: 'Result of task import operation' })\nexport class TaskImportResult {\n @Field(type => Int, { description: 'Number of tasks imported' })\n imported: number\n\n @Field(type => Int, { description: 'Number of tasks failed' })\n failed: number\n\n @Field(type => [Int], { description: 'IDs of imported tasks' })\n taskIds: number[]\n\n @Field(type => [String], { nullable: true, description: 'Error messages' })\n errors?: string[]\n}\n\n// ============================================================================\n// Annotation Types\n// ============================================================================\n\n@ObjectType({ description: 'Label Studio annotation' })\nexport class LabelStudioAnnotation {\n @Field(type => Int, { description: 'Annotation ID' })\n id: number\n\n @Field(type => Int, { description: 'Task ID' })\n taskId: number\n\n @Field({ description: 'Annotation result (JSON)' })\n result: string\n\n @Field({ description: 'Completed by user email' })\n completedBy: string\n\n @Field({ description: 'Created date' })\n createdAt: Date\n\n @Field({ nullable: true, description: 'Lead time in seconds' })\n leadTime?: number\n}\n\n// ============================================================================\n// Prediction Types\n// ============================================================================\n\n@ObjectType({ description: 'Label Studio prediction (AI pre-annotation)' })\nexport class LabelStudioPrediction {\n @Field(type => Int, { description: 'Prediction ID' })\n id: number\n\n @Field(type => Int, { description: 'Task ID' })\n taskId: number\n\n @Field({ description: 'Prediction result (JSON)' })\n result: string\n\n @Field(type => Float, { nullable: true, description: 'Prediction confidence score (0-1)' })\n score?: number\n\n @Field({ nullable: true, description: 'Model version that generated this prediction' })\n modelVersion?: string\n\n @Field({ nullable: true, description: 'Created date' })\n createdAt?: Date\n}\n\n@InputType({ description: 'Input for creating a prediction' })\nexport class PredictionInput {\n @Field(type => Int, { description: 'Task ID to create prediction for' })\n taskId: number\n\n @Field({ description: 'Prediction result as JSON string' })\n result: string\n\n @Field(type => Float, { nullable: true, description: 'Prediction confidence score (0-1)' })\n score?: number\n\n @Field({ nullable: true, description: 'Model version' })\n modelVersion?: string\n}\n\n@InputType({ description: 'Input for bulk prediction creation' })\nexport class BulkPredictionInput {\n @Field(type => Int, { description: 'Task ID' })\n taskId: number\n\n @Field({ description: 'Prediction result as JSON string' })\n result: string\n\n @Field(type => Float, { nullable: true, description: 'Prediction confidence score (0-1)' })\n score?: number\n\n @Field({ nullable: true, description: 'Model version' })\n modelVersion?: string\n}\n\n@ObjectType({ description: 'Result of prediction import operation' })\nexport class PredictionImportResult {\n @Field(type => Int, { description: 'Number of predictions created' })\n created: number\n\n @Field(type => Int, { description: 'Number of predictions failed' })\n failed: number\n\n @Field(type => [String], { nullable: true, description: 'Error messages' })\n errors?: string[]\n}\n\n@ObjectType({ description: 'Export result' })\nexport class ExportResult {\n @Field({ description: 'Export file path or URL' })\n exportPath: string\n\n @Field(type => Int, { description: 'Number of annotations exported' })\n annotationCount: number\n\n @Field({ description: 'Export format (JSON, CSV, YOLO, etc.)' })\n format: string\n}\n\n// ============================================================================\n// Analytics Types\n// ============================================================================\n\n@ObjectType({ description: 'Project metrics and statistics' })\nexport class ProjectMetrics {\n @Field(type => Int, { description: 'Total number of tasks' })\n totalTasks: number\n\n @Field(type => Int, { description: 'Number of completed tasks' })\n completedTasks: number\n\n @Field(type => Int, { description: 'Total annotations' })\n totalAnnotations: number\n\n @Field(type => Float, { description: 'Average annotations per task' })\n avgAnnotationsPerTask: number\n\n @Field(type => Float, { description: 'Completion rate (0-1)' })\n completionRate: number\n\n @Field(type => Float, { nullable: true, description: 'Average time per task in seconds' })\n avgTimePerTask?: number\n\n @Field(type => [AnnotatorStats], { description: 'Statistics per annotator' })\n annotatorStats: AnnotatorStats[]\n}\n\n@ObjectType({ description: 'Annotator statistics' })\nexport class AnnotatorStats {\n @Field({ description: 'User email' })\n email: string\n\n @Field(type => Int, { description: 'Number of annotations' })\n annotationCount: number\n\n @Field(type => Float, { description: 'Average time per annotation in seconds' })\n avgTime: number\n\n @Field({ description: 'Last annotation date' })\n lastAnnotationDate: Date\n}\n\n// ============================================================================\n// ML Backend Types\n// ============================================================================\n\n@ObjectType({ description: 'ML Backend information' })\nexport class MLBackend {\n @Field(type => Int, { description: 'ML Backend ID' })\n id: number\n\n @Field({ description: 'ML Backend URL' })\n url: string\n\n @Field({ description: 'ML Backend title' })\n title: string\n\n @Field({ description: 'Is interactive preannotation enabled' })\n isInteractive: boolean\n\n @Field({ description: 'Model version' })\n modelVersion: string\n}\n\n@InputType({ description: 'Input for adding ML Backend' })\nexport class AddMLBackendInput {\n @Field({ description: 'ML Backend URL' })\n url: string\n\n @Field({ description: 'ML Backend title' })\n title: string\n\n @Field({ nullable: true, description: 'Is interactive preannotation enabled' })\n isInteractive?: boolean\n}\n"]}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Label Studio prediction generation request
3
+ */
4
+ export declare class GeneratePredictionRequest {
5
+ taskId: number;
6
+ imageUrl: string;
7
+ modelId?: string;
8
+ confidenceThreshold?: number;
9
+ }
10
+ /**
11
+ * Batch prediction generation request
12
+ */
13
+ export declare class BatchGeneratePredictionRequest {
14
+ projectId: number;
15
+ taskIds: number[];
16
+ modelId?: string;
17
+ confidenceThreshold?: number;
18
+ }
19
+ /**
20
+ * Prediction generation result
21
+ */
22
+ export declare class PredictionGenerationResult {
23
+ taskId: number;
24
+ predictionId?: number;
25
+ success: boolean;
26
+ error?: string;
27
+ objectCount: number;
28
+ avgConfidence?: number;
29
+ }
30
+ /**
31
+ * Batch prediction generation result
32
+ */
33
+ export declare class BatchPredictionResult {
34
+ total: number;
35
+ succeeded: number;
36
+ failed: number;
37
+ results: PredictionGenerationResult[];
38
+ modelVersion: string;
39
+ }