Bin
2025-12-16 9e0b2ba2c317b1a86212f24cbae3195ad1f3dbfa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import { isDefined } from "../../utils/helpers";
 
/** @type {import("../utils/api-proxy").APIProxyOptions} */
export const APIConfig = {
  gateway: "/api/dm",
  endpoints: {
    /** Project base info */
    project: "/project",
 
    /** Available columns/fields of the dataset */
    columns: "/columns",
 
    /** Tabs (materialized views) */
    tabs: "/views",
 
    /** Creates a new tab */
    createTab: "POST:/views",
 
    /** Update particular tab (PATCH) */
    updateTab: "PATCH:/views/:tabID",
 
    /** Delete particular tab (DELETE) */
    deleteTab: "DELETE:/views/:tabID",
 
    /** Per-task annotations (annotations, predictions) */
    annotations: "/views/:tabID/annotations",
 
    /** Single task (sample) */
    task: "/../tasks/:taskID",
 
    /** List of tasks (samples) in the dataset */
    tasks: "/../tasks",
 
    /** Next task (labelstream, default sequential) */
    nextTask: "/tasks/next",
 
    /** Single annotation */
    annotation: "/../annotations/:id",
 
    /** Mark sample as skipped */
    skipTask: {
      method: "post",
      path: (params) => {
        const pathBase = "/../tasks/:taskID/annotations";
        const isNewAnnotation = !isDefined(params.annotationID);
 
        return isNewAnnotation ? pathBase : `${pathBase}/:annotationID`;
      },
    },
 
    /** Submit annotation */
    submitAnnotation: "POST:/../tasks/:taskID/annotations",
 
    /** Update annotation */
    updateAnnotation: "PATCH:/../annotations/:annotationID",
 
    /** Delete annotation */
    deleteAnnotation: "DELETE:/../annotations/:annotationID",
 
    /** Override selected items list (checkboxes) */
    setSelectedItems: "POST:/views/:tabID/selected-items",
 
    /** Add item to the current selection */
    addSelectedItem: "PATCH:/views/:tabID/selected-items",
 
    /** List of available actions */
    actions: "/actions",
 
    /** Subtract item from the current selection */
    deleteSelectedItem: "DELETE:/views/:tabID/selected-items",
 
    /** Invoke a particular action */
    invokeAction: "POST:/actions",
  },
};