@lov3kaizen/agentsea-evaluate 0.5.1

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 (42) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +339 -0
  3. package/dist/annotation/index.d.mts +3 -0
  4. package/dist/annotation/index.d.ts +3 -0
  5. package/dist/annotation/index.js +630 -0
  6. package/dist/annotation/index.mjs +22 -0
  7. package/dist/chunk-5JRYKRSE.mjs +2791 -0
  8. package/dist/chunk-EUXXIZK3.mjs +676 -0
  9. package/dist/chunk-NBMUSATK.mjs +596 -0
  10. package/dist/chunk-PAQ2TTJJ.mjs +1105 -0
  11. package/dist/chunk-TUMNJN2S.mjs +416 -0
  12. package/dist/continuous/index.d.mts +2 -0
  13. package/dist/continuous/index.d.ts +2 -0
  14. package/dist/continuous/index.js +707 -0
  15. package/dist/continuous/index.mjs +16 -0
  16. package/dist/datasets/index.d.mts +1 -0
  17. package/dist/datasets/index.d.ts +1 -0
  18. package/dist/datasets/index.js +456 -0
  19. package/dist/datasets/index.mjs +14 -0
  20. package/dist/evaluation/index.d.mts +1 -0
  21. package/dist/evaluation/index.d.ts +1 -0
  22. package/dist/evaluation/index.js +2853 -0
  23. package/dist/evaluation/index.mjs +78 -0
  24. package/dist/feedback/index.d.mts +2 -0
  25. package/dist/feedback/index.d.ts +2 -0
  26. package/dist/feedback/index.js +1158 -0
  27. package/dist/feedback/index.mjs +40 -0
  28. package/dist/index-6Pbiq7ny.d.mts +234 -0
  29. package/dist/index-6Pbiq7ny.d.ts +234 -0
  30. package/dist/index-BNTycFEA.d.mts +479 -0
  31. package/dist/index-BNTycFEA.d.ts +479 -0
  32. package/dist/index-CTYCfWfH.d.mts +543 -0
  33. package/dist/index-CTYCfWfH.d.ts +543 -0
  34. package/dist/index-Cq5LwG_3.d.mts +322 -0
  35. package/dist/index-Cq5LwG_3.d.ts +322 -0
  36. package/dist/index-bPghFsfP.d.mts +315 -0
  37. package/dist/index-bPghFsfP.d.ts +315 -0
  38. package/dist/index.d.mts +81 -0
  39. package/dist/index.d.ts +81 -0
  40. package/dist/index.js +5962 -0
  41. package/dist/index.mjs +429 -0
  42. package/package.json +102 -0
@@ -0,0 +1,630 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/annotation/index.ts
21
+ var annotation_exports = {};
22
+ __export(annotation_exports, {
23
+ AnnotationQueue: () => AnnotationQueue,
24
+ AnnotationTask: () => AnnotationTask,
25
+ BinaryClassificationSchema: () => BinaryClassificationSchema,
26
+ ConsensusManager: () => ConsensusManager,
27
+ QualityRatingSchema: () => QualityRatingSchema,
28
+ TextSpanSchema: () => TextSpanSchema,
29
+ createAnnotationQueue: () => createAnnotationQueue,
30
+ createAnnotationTask: () => createAnnotationTask,
31
+ createConsensusManager: () => createConsensusManager
32
+ });
33
+ module.exports = __toCommonJS(annotation_exports);
34
+
35
+ // src/annotation/AnnotationTask.ts
36
+ var import_nanoid = require("nanoid");
37
+ var import_zod = require("zod");
38
+ var AnnotationTask = class {
39
+ id;
40
+ name;
41
+ description;
42
+ instructions;
43
+ schema;
44
+ status;
45
+ itemsPerAnnotator;
46
+ annotatorsPerItem;
47
+ deadline;
48
+ createdAt;
49
+ updatedAt;
50
+ completedAt;
51
+ metadata;
52
+ constructor(config) {
53
+ this.id = (0, import_nanoid.nanoid)();
54
+ this.name = config.name;
55
+ this.description = config.description;
56
+ this.instructions = config.instructions;
57
+ this.schema = config.schema;
58
+ this.status = "draft";
59
+ this.itemsPerAnnotator = config.itemsPerAnnotator ?? 100;
60
+ this.annotatorsPerItem = config.annotatorsPerItem ?? 1;
61
+ this.deadline = config.deadline;
62
+ this.createdAt = Date.now();
63
+ this.updatedAt = Date.now();
64
+ this.metadata = config.metadata;
65
+ }
66
+ /**
67
+ * Start the task
68
+ */
69
+ start() {
70
+ if (this.status !== "draft") {
71
+ throw new Error(`Cannot start task in ${this.status} status`);
72
+ }
73
+ this.status = "active";
74
+ this.updatedAt = Date.now();
75
+ }
76
+ /**
77
+ * Pause the task
78
+ */
79
+ pause() {
80
+ if (this.status !== "active") {
81
+ throw new Error(`Cannot pause task in ${this.status} status`);
82
+ }
83
+ this.status = "paused";
84
+ this.updatedAt = Date.now();
85
+ }
86
+ /**
87
+ * Resume the task
88
+ */
89
+ resume() {
90
+ if (this.status !== "paused") {
91
+ throw new Error(`Cannot resume task in ${this.status} status`);
92
+ }
93
+ this.status = "active";
94
+ this.updatedAt = Date.now();
95
+ }
96
+ /**
97
+ * Complete the task
98
+ */
99
+ complete() {
100
+ if (this.status !== "active") {
101
+ throw new Error(`Cannot complete task in ${this.status} status`);
102
+ }
103
+ this.status = "completed";
104
+ this.completedAt = Date.now();
105
+ this.updatedAt = Date.now();
106
+ }
107
+ /**
108
+ * Cancel the task
109
+ */
110
+ cancel() {
111
+ if (this.status === "completed") {
112
+ throw new Error("Cannot cancel completed task");
113
+ }
114
+ this.status = "cancelled";
115
+ this.updatedAt = Date.now();
116
+ }
117
+ /**
118
+ * Validate an annotation against the schema
119
+ */
120
+ validateAnnotation(value) {
121
+ try {
122
+ this.schema.parse(value);
123
+ return { valid: true };
124
+ } catch (error) {
125
+ if (error instanceof import_zod.z.ZodError) {
126
+ return {
127
+ valid: false,
128
+ error: error.errors.map((e) => e.message).join(", ")
129
+ };
130
+ }
131
+ return { valid: false, error: "Unknown validation error" };
132
+ }
133
+ }
134
+ /**
135
+ * Check if task is past deadline
136
+ */
137
+ isPastDeadline() {
138
+ if (!this.deadline) return false;
139
+ return Date.now() > this.deadline.getTime();
140
+ }
141
+ /**
142
+ * Get task configuration for display
143
+ */
144
+ toConfig() {
145
+ return {
146
+ name: this.name,
147
+ description: this.description,
148
+ instructions: this.instructions,
149
+ schema: this.schema,
150
+ itemsPerAnnotator: this.itemsPerAnnotator,
151
+ annotatorsPerItem: this.annotatorsPerItem,
152
+ deadline: this.deadline,
153
+ metadata: this.metadata
154
+ };
155
+ }
156
+ };
157
+ function createAnnotationTask(config) {
158
+ return new AnnotationTask(config);
159
+ }
160
+ var BinaryClassificationSchema = import_zod.z.object({
161
+ label: import_zod.z.enum(["positive", "negative"]),
162
+ confidence: import_zod.z.number().min(0).max(1).optional(),
163
+ notes: import_zod.z.string().optional()
164
+ });
165
+ var QualityRatingSchema = import_zod.z.object({
166
+ accuracy: import_zod.z.number().min(1).max(5),
167
+ helpfulness: import_zod.z.number().min(1).max(5),
168
+ safety: import_zod.z.enum(["pass", "fail"]),
169
+ corrections: import_zod.z.string().optional(),
170
+ notes: import_zod.z.string().optional()
171
+ });
172
+ var TextSpanSchema = import_zod.z.object({
173
+ spans: import_zod.z.array(
174
+ import_zod.z.object({
175
+ start: import_zod.z.number(),
176
+ end: import_zod.z.number(),
177
+ label: import_zod.z.string(),
178
+ text: import_zod.z.string().optional()
179
+ })
180
+ ),
181
+ notes: import_zod.z.string().optional()
182
+ });
183
+
184
+ // src/annotation/AnnotationQueue.ts
185
+ var import_nanoid2 = require("nanoid");
186
+ var import_eventemitter3 = require("eventemitter3");
187
+ var AnnotationQueue = class extends import_eventemitter3.EventEmitter {
188
+ task;
189
+ items;
190
+ annotatorAssignments;
191
+ annotatorCounts;
192
+ constructor(config) {
193
+ super();
194
+ this.task = config.task;
195
+ this.items = /* @__PURE__ */ new Map();
196
+ this.annotatorAssignments = /* @__PURE__ */ new Map();
197
+ this.annotatorCounts = /* @__PURE__ */ new Map();
198
+ for (const item of config.items) {
199
+ this.items.set(item.id, item);
200
+ }
201
+ }
202
+ /**
203
+ * Get next item for annotator
204
+ */
205
+ getNextItem(annotatorId) {
206
+ const assigned = this.annotatorAssignments.get(annotatorId) ?? /* @__PURE__ */ new Set();
207
+ for (const item of this.items.values()) {
208
+ if (assigned.has(item.id)) continue;
209
+ if (item.status === "completed") continue;
210
+ const assignedCount = item.assignedTo?.length ?? 0;
211
+ if (assignedCount >= this.task.annotatorsPerItem) continue;
212
+ if (assignedCount === 0) {
213
+ this.assignItem(item.id, annotatorId);
214
+ return item;
215
+ }
216
+ }
217
+ for (const item of this.items.values()) {
218
+ if (assigned.has(item.id)) continue;
219
+ if (item.status === "completed") continue;
220
+ const assignedCount = item.assignedTo?.length ?? 0;
221
+ if (assignedCount >= this.task.annotatorsPerItem) continue;
222
+ this.assignItem(item.id, annotatorId);
223
+ return item;
224
+ }
225
+ return null;
226
+ }
227
+ /**
228
+ * Assign item to annotator
229
+ */
230
+ assignItem(itemId, annotatorId) {
231
+ const item = this.items.get(itemId);
232
+ if (!item) {
233
+ throw new Error(`Item ${itemId} not found`);
234
+ }
235
+ if (!this.annotatorAssignments.has(annotatorId)) {
236
+ this.annotatorAssignments.set(annotatorId, /* @__PURE__ */ new Set());
237
+ }
238
+ this.annotatorAssignments.get(annotatorId).add(itemId);
239
+ if (!item.assignedTo) {
240
+ item.assignedTo = [];
241
+ }
242
+ if (!item.assignedTo.includes(annotatorId)) {
243
+ item.assignedTo.push(annotatorId);
244
+ }
245
+ item.status = "assigned";
246
+ item.updatedAt = Date.now();
247
+ this.emit("item:assigned", itemId, annotatorId);
248
+ }
249
+ /**
250
+ * Submit annotation for item
251
+ */
252
+ submitAnnotation(itemId, annotatorId, value, duration) {
253
+ const item = this.items.get(itemId);
254
+ if (!item) {
255
+ throw new Error(`Item ${itemId} not found`);
256
+ }
257
+ const validation = this.task.validateAnnotation(value);
258
+ if (!validation.valid) {
259
+ throw new Error(`Invalid annotation: ${validation.error}`);
260
+ }
261
+ const annotation = {
262
+ id: (0, import_nanoid2.nanoid)(),
263
+ itemId,
264
+ annotatorId,
265
+ value,
266
+ duration,
267
+ createdAt: Date.now()
268
+ };
269
+ item.annotations.push(annotation);
270
+ item.updatedAt = Date.now();
271
+ this.annotatorCounts.set(
272
+ annotatorId,
273
+ (this.annotatorCounts.get(annotatorId) ?? 0) + 1
274
+ );
275
+ if (item.annotations.length >= this.task.annotatorsPerItem) {
276
+ item.status = "completed";
277
+ } else {
278
+ item.status = "in_progress";
279
+ }
280
+ this.emit("item:annotated", itemId, annotation);
281
+ return annotation;
282
+ }
283
+ /**
284
+ * Flag item for review
285
+ */
286
+ flagItem(itemId, reason) {
287
+ const item = this.items.get(itemId);
288
+ if (!item) {
289
+ throw new Error(`Item ${itemId} not found`);
290
+ }
291
+ item.status = "flagged";
292
+ item.updatedAt = Date.now();
293
+ this.emit("item:flagged", itemId, reason);
294
+ }
295
+ /**
296
+ * Skip item
297
+ */
298
+ skipItem(itemId, annotatorId) {
299
+ const item = this.items.get(itemId);
300
+ if (!item) {
301
+ throw new Error(`Item ${itemId} not found`);
302
+ }
303
+ const assigned = this.annotatorAssignments.get(annotatorId);
304
+ if (assigned) {
305
+ assigned.delete(itemId);
306
+ }
307
+ if (item.assignedTo) {
308
+ const idx = item.assignedTo.indexOf(annotatorId);
309
+ if (idx >= 0) {
310
+ item.assignedTo.splice(idx, 1);
311
+ }
312
+ }
313
+ item.updatedAt = Date.now();
314
+ }
315
+ /**
316
+ * Get batch assignment for annotator
317
+ */
318
+ getBatchAssignment(annotatorId, count) {
319
+ const itemIds = [];
320
+ for (let i = 0; i < count; i++) {
321
+ const item = this.getNextItem(annotatorId);
322
+ if (!item) break;
323
+ itemIds.push(item.id);
324
+ }
325
+ return {
326
+ annotatorId,
327
+ itemIds
328
+ };
329
+ }
330
+ /**
331
+ * Get queue statistics
332
+ */
333
+ getStats() {
334
+ let pending = 0;
335
+ let assigned = 0;
336
+ let completed = 0;
337
+ let flagged = 0;
338
+ let totalAnnotations = 0;
339
+ for (const item of this.items.values()) {
340
+ switch (item.status) {
341
+ case "pending":
342
+ pending++;
343
+ break;
344
+ case "assigned":
345
+ case "in_progress":
346
+ assigned++;
347
+ break;
348
+ case "completed":
349
+ completed++;
350
+ break;
351
+ case "flagged":
352
+ flagged++;
353
+ break;
354
+ }
355
+ totalAnnotations += item.annotations.length;
356
+ }
357
+ const avgAnnotationsPerItem = this.items.size > 0 ? totalAnnotations / this.items.size : 0;
358
+ return {
359
+ taskId: this.task.id,
360
+ totalItems: this.items.size,
361
+ pendingItems: pending,
362
+ assignedItems: assigned,
363
+ completedItems: completed,
364
+ flaggedItems: flagged,
365
+ averageAnnotationsPerItem: avgAnnotationsPerItem,
366
+ averageAgreement: 0
367
+ // Would need consensus calculation
368
+ };
369
+ }
370
+ /**
371
+ * Get item by ID
372
+ */
373
+ getItem(itemId) {
374
+ return this.items.get(itemId);
375
+ }
376
+ /**
377
+ * Get all items
378
+ */
379
+ getItems() {
380
+ return Array.from(this.items.values());
381
+ }
382
+ /**
383
+ * Get items by status
384
+ */
385
+ getItemsByStatus(status) {
386
+ return Array.from(this.items.values()).filter(
387
+ (item) => item.status === status
388
+ );
389
+ }
390
+ /**
391
+ * Get annotator's completed count
392
+ */
393
+ getAnnotatorCount(annotatorId) {
394
+ return this.annotatorCounts.get(annotatorId) ?? 0;
395
+ }
396
+ };
397
+ function createAnnotationQueue(config) {
398
+ return new AnnotationQueue(config);
399
+ }
400
+
401
+ // src/annotation/ConsensusManager.ts
402
+ var ConsensusManager = class {
403
+ method;
404
+ weights;
405
+ expertAnnotatorId;
406
+ constructor(config) {
407
+ this.method = config.method;
408
+ this.weights = config.weights;
409
+ this.expertAnnotatorId = config.expertAnnotatorId;
410
+ }
411
+ /**
412
+ * Calculate consensus from annotations
413
+ */
414
+ calculateConsensus(annotations) {
415
+ if (annotations.length === 0) {
416
+ return {
417
+ value: {},
418
+ method: this.method,
419
+ agreement: 0,
420
+ confidence: 0,
421
+ contributingAnnotations: []
422
+ };
423
+ }
424
+ if (annotations.length === 1) {
425
+ return {
426
+ value: annotations[0].value,
427
+ method: this.method,
428
+ agreement: 1,
429
+ confidence: annotations[0].confidence ?? 0.5,
430
+ contributingAnnotations: [annotations[0].id]
431
+ };
432
+ }
433
+ switch (this.method) {
434
+ case "majority":
435
+ return this.majorityConsensus(annotations);
436
+ case "unanimous":
437
+ return this.unanimousConsensus(annotations);
438
+ case "weighted":
439
+ return this.weightedConsensus(annotations);
440
+ case "expert":
441
+ return this.expertConsensus(annotations);
442
+ default:
443
+ return this.majorityConsensus(annotations);
444
+ }
445
+ }
446
+ /**
447
+ * Majority vote consensus
448
+ */
449
+ majorityConsensus(annotations) {
450
+ const allFields = /* @__PURE__ */ new Set();
451
+ for (const ann of annotations) {
452
+ for (const key of Object.keys(ann.value)) {
453
+ allFields.add(key);
454
+ }
455
+ }
456
+ const consensusValue = {};
457
+ const disagreements = [];
458
+ let totalAgreement = 0;
459
+ for (const field of allFields) {
460
+ const values = annotations.map((ann) => ann.value[field]);
461
+ const { value, agreement, disagrees } = this.findMajority(
462
+ values,
463
+ annotations
464
+ );
465
+ consensusValue[field] = value;
466
+ totalAgreement += agreement;
467
+ if (disagrees) {
468
+ disagreements.push({
469
+ field,
470
+ values: disagrees,
471
+ resolved: true,
472
+ resolution: value
473
+ });
474
+ }
475
+ }
476
+ const avgAgreement = allFields.size > 0 ? totalAgreement / allFields.size : 1;
477
+ return {
478
+ value: consensusValue,
479
+ method: "majority",
480
+ agreement: avgAgreement,
481
+ confidence: avgAgreement,
482
+ contributingAnnotations: annotations.map((a) => a.id),
483
+ disagreements: disagreements.length > 0 ? disagreements : void 0
484
+ };
485
+ }
486
+ /**
487
+ * Find majority value
488
+ */
489
+ findMajority(values, annotations) {
490
+ const counts = /* @__PURE__ */ new Map();
491
+ for (let i = 0; i < values.length; i++) {
492
+ const key = JSON.stringify(values[i]);
493
+ if (!counts.has(key)) {
494
+ counts.set(key, { value: values[i], count: 0, annotatorIds: [] });
495
+ }
496
+ counts.get(key).count++;
497
+ counts.get(key).annotatorIds.push(annotations[i].annotatorId);
498
+ }
499
+ let maxCount = 0;
500
+ let majorityValue = null;
501
+ for (const { value, count } of counts.values()) {
502
+ if (count > maxCount) {
503
+ maxCount = count;
504
+ majorityValue = value;
505
+ }
506
+ }
507
+ const agreement = maxCount / values.length;
508
+ if (counts.size > 1) {
509
+ const disagrees = Array.from(counts.entries()).map(([, v]) => ({
510
+ value: v.value,
511
+ annotatorIds: v.annotatorIds,
512
+ count: v.count
513
+ }));
514
+ return { value: majorityValue, agreement, disagrees };
515
+ }
516
+ return { value: majorityValue, agreement };
517
+ }
518
+ /**
519
+ * Unanimous consensus
520
+ */
521
+ unanimousConsensus(annotations) {
522
+ const firstValue = annotations[0].value;
523
+ const allMatch = annotations.every(
524
+ (ann) => JSON.stringify(ann.value) === JSON.stringify(firstValue)
525
+ );
526
+ return {
527
+ value: allMatch ? firstValue : {},
528
+ method: "unanimous",
529
+ agreement: allMatch ? 1 : 0,
530
+ confidence: allMatch ? 1 : 0,
531
+ contributingAnnotations: allMatch ? annotations.map((a) => a.id) : []
532
+ };
533
+ }
534
+ /**
535
+ * Weighted consensus
536
+ */
537
+ weightedConsensus(annotations) {
538
+ if (!this.weights) {
539
+ return this.majorityConsensus(annotations);
540
+ }
541
+ const allFields = /* @__PURE__ */ new Set();
542
+ for (const ann of annotations) {
543
+ for (const key of Object.keys(ann.value)) {
544
+ allFields.add(key);
545
+ }
546
+ }
547
+ const consensusValue = {};
548
+ let totalWeightedAgreement = 0;
549
+ let totalWeight = 0;
550
+ for (const field of allFields) {
551
+ const values = /* @__PURE__ */ new Map();
552
+ for (const ann of annotations) {
553
+ const key = JSON.stringify(ann.value[field]);
554
+ const weight = this.weights[ann.annotatorId] ?? 1;
555
+ if (!values.has(key)) {
556
+ values.set(key, { value: ann.value[field], weight: 0 });
557
+ }
558
+ values.get(key).weight += weight;
559
+ totalWeight += weight;
560
+ }
561
+ let maxWeight = 0;
562
+ let bestValue = null;
563
+ for (const { value, weight } of values.values()) {
564
+ if (weight > maxWeight) {
565
+ maxWeight = weight;
566
+ bestValue = value;
567
+ }
568
+ }
569
+ consensusValue[field] = bestValue;
570
+ totalWeightedAgreement += maxWeight;
571
+ }
572
+ const avgAgreement = totalWeight > 0 ? totalWeightedAgreement / totalWeight : 1;
573
+ return {
574
+ value: consensusValue,
575
+ method: "weighted",
576
+ agreement: avgAgreement,
577
+ confidence: avgAgreement,
578
+ contributingAnnotations: annotations.map((a) => a.id)
579
+ };
580
+ }
581
+ /**
582
+ * Expert consensus
583
+ */
584
+ expertConsensus(annotations) {
585
+ if (!this.expertAnnotatorId) {
586
+ return this.majorityConsensus(annotations);
587
+ }
588
+ const expertAnnotation = annotations.find(
589
+ (a) => a.annotatorId === this.expertAnnotatorId
590
+ );
591
+ if (!expertAnnotation) {
592
+ return this.majorityConsensus(annotations);
593
+ }
594
+ return {
595
+ value: expertAnnotation.value,
596
+ method: "expert",
597
+ agreement: 1,
598
+ confidence: expertAnnotation.confidence ?? 1,
599
+ contributingAnnotations: [expertAnnotation.id]
600
+ };
601
+ }
602
+ /**
603
+ * Calculate inter-annotator agreement (Fleiss' kappa approximation)
604
+ */
605
+ calculateAgreement(annotations) {
606
+ if (annotations.length < 2) return 1;
607
+ const values = annotations.map((a) => JSON.stringify(a.value));
608
+ const counts = /* @__PURE__ */ new Map();
609
+ for (const v of values) {
610
+ counts.set(v, (counts.get(v) ?? 0) + 1);
611
+ }
612
+ const maxCount = Math.max(...counts.values());
613
+ return maxCount / values.length;
614
+ }
615
+ };
616
+ function createConsensusManager(config) {
617
+ return new ConsensusManager(config);
618
+ }
619
+ // Annotate the CommonJS export names for ESM import in node:
620
+ 0 && (module.exports = {
621
+ AnnotationQueue,
622
+ AnnotationTask,
623
+ BinaryClassificationSchema,
624
+ ConsensusManager,
625
+ QualityRatingSchema,
626
+ TextSpanSchema,
627
+ createAnnotationQueue,
628
+ createAnnotationTask,
629
+ createConsensusManager
630
+ });
@@ -0,0 +1,22 @@
1
+ import {
2
+ AnnotationQueue,
3
+ AnnotationTask,
4
+ BinaryClassificationSchema,
5
+ ConsensusManager,
6
+ QualityRatingSchema,
7
+ TextSpanSchema,
8
+ createAnnotationQueue,
9
+ createAnnotationTask,
10
+ createConsensusManager
11
+ } from "../chunk-NBMUSATK.mjs";
12
+ export {
13
+ AnnotationQueue,
14
+ AnnotationTask,
15
+ BinaryClassificationSchema,
16
+ ConsensusManager,
17
+ QualityRatingSchema,
18
+ TextSpanSchema,
19
+ createAnnotationQueue,
20
+ createAnnotationTask,
21
+ createConsensusManager
22
+ };