synapse-sdk 1.0.0a58__py3-none-any.whl → 1.0.0a60__py3-none-any.whl

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.

Potentially problematic release.


This version of synapse-sdk might be problematic. Click here for more details.

Files changed (89) hide show
  1. synapse_sdk/cli/__init__.py +246 -5
  2. synapse_sdk/cli/alias/utils.py +1 -1
  3. synapse_sdk/cli/config.py +339 -0
  4. synapse_sdk/cli/devtools.py +61 -0
  5. synapse_sdk/cli/plugin/publish.py +3 -4
  6. synapse_sdk/clients/agent/__init__.py +7 -2
  7. synapse_sdk/clients/agent/ray.py +37 -6
  8. synapse_sdk/clients/backend/__init__.py +5 -9
  9. synapse_sdk/clients/backend/annotation.py +12 -0
  10. synapse_sdk/clients/backend/data_collection.py +10 -1
  11. synapse_sdk/clients/base.py +42 -3
  12. synapse_sdk/devtools/__init__.py +0 -0
  13. synapse_sdk/devtools/config.py +94 -0
  14. synapse_sdk/devtools/docs/.gitignore +20 -0
  15. synapse_sdk/devtools/docs/README.md +41 -0
  16. synapse_sdk/devtools/docs/blog/2019-05-28-first-blog-post.md +12 -0
  17. synapse_sdk/devtools/docs/blog/2019-05-29-long-blog-post.md +44 -0
  18. synapse_sdk/devtools/docs/blog/2021-08-01-mdx-blog-post.mdx +24 -0
  19. synapse_sdk/devtools/docs/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg +0 -0
  20. synapse_sdk/devtools/docs/blog/2021-08-26-welcome/index.md +29 -0
  21. synapse_sdk/devtools/docs/blog/authors.yml +25 -0
  22. synapse_sdk/devtools/docs/blog/tags.yml +19 -0
  23. synapse_sdk/devtools/docs/docusaurus.config.ts +138 -0
  24. synapse_sdk/devtools/docs/package-lock.json +17455 -0
  25. synapse_sdk/devtools/docs/package.json +47 -0
  26. synapse_sdk/devtools/docs/sidebars.ts +36 -0
  27. synapse_sdk/devtools/docs/src/components/HomepageFeatures/index.tsx +71 -0
  28. synapse_sdk/devtools/docs/src/components/HomepageFeatures/styles.module.css +11 -0
  29. synapse_sdk/devtools/docs/src/css/custom.css +30 -0
  30. synapse_sdk/devtools/docs/src/pages/index.module.css +23 -0
  31. synapse_sdk/devtools/docs/src/pages/index.tsx +21 -0
  32. synapse_sdk/devtools/docs/src/pages/markdown-page.md +7 -0
  33. synapse_sdk/devtools/docs/static/.nojekyll +0 -0
  34. synapse_sdk/devtools/docs/static/img/docusaurus-social-card.jpg +0 -0
  35. synapse_sdk/devtools/docs/static/img/docusaurus.png +0 -0
  36. synapse_sdk/devtools/docs/static/img/favicon.ico +0 -0
  37. synapse_sdk/devtools/docs/static/img/logo.png +0 -0
  38. synapse_sdk/devtools/docs/static/img/undraw_docusaurus_mountain.svg +171 -0
  39. synapse_sdk/devtools/docs/static/img/undraw_docusaurus_react.svg +170 -0
  40. synapse_sdk/devtools/docs/static/img/undraw_docusaurus_tree.svg +40 -0
  41. synapse_sdk/devtools/docs/tsconfig.json +8 -0
  42. synapse_sdk/devtools/models.py +55 -0
  43. synapse_sdk/devtools/server.py +829 -0
  44. synapse_sdk/devtools/web/.gitignore +2 -0
  45. synapse_sdk/devtools/web/README.md +34 -0
  46. synapse_sdk/devtools/web/dist/index.html +17 -0
  47. synapse_sdk/devtools/web/index.html +16 -0
  48. synapse_sdk/devtools/web/jsconfig.json +15 -0
  49. synapse_sdk/devtools/web/package-lock.json +2609 -0
  50. synapse_sdk/devtools/web/package.json +27 -0
  51. synapse_sdk/devtools/web/pnpm-lock.yaml +1055 -0
  52. synapse_sdk/devtools/web/src/App.jsx +14 -0
  53. synapse_sdk/devtools/web/src/App.module.css +33 -0
  54. synapse_sdk/devtools/web/src/assets/favicon.ico +0 -0
  55. synapse_sdk/devtools/web/src/components/Breadcrumbs.jsx +42 -0
  56. synapse_sdk/devtools/web/src/components/Layout.jsx +12 -0
  57. synapse_sdk/devtools/web/src/components/LogViewer.jsx +266 -0
  58. synapse_sdk/devtools/web/src/components/MessageViewer.jsx +150 -0
  59. synapse_sdk/devtools/web/src/components/NavigationSidebar.jsx +137 -0
  60. synapse_sdk/devtools/web/src/components/ServerStatusBar.jsx +245 -0
  61. synapse_sdk/devtools/web/src/components/icons.jsx +325 -0
  62. synapse_sdk/devtools/web/src/index.css +470 -0
  63. synapse_sdk/devtools/web/src/index.jsx +15 -0
  64. synapse_sdk/devtools/web/src/logo.svg +1 -0
  65. synapse_sdk/devtools/web/src/router.jsx +34 -0
  66. synapse_sdk/devtools/web/src/utils/api.js +425 -0
  67. synapse_sdk/devtools/web/src/views/ApplicationDetailView.jsx +241 -0
  68. synapse_sdk/devtools/web/src/views/ApplicationsView.jsx +224 -0
  69. synapse_sdk/devtools/web/src/views/HomeView.jsx +197 -0
  70. synapse_sdk/devtools/web/src/views/JobDetailView.jsx +310 -0
  71. synapse_sdk/devtools/web/src/views/PluginView.jsx +914 -0
  72. synapse_sdk/devtools/web/vite.config.js +13 -0
  73. synapse_sdk/plugins/categories/neural_net/actions/tune.py +1 -1
  74. synapse_sdk/plugins/categories/pre_annotation/actions/to_task.py +382 -0
  75. synapse_sdk/plugins/categories/pre_annotation/templates/config.yaml +16 -0
  76. synapse_sdk/plugins/categories/{upload/templates/plugin/task_pre_annotation.py → pre_annotation/templates/plugin/to_task.py} +1 -7
  77. synapse_sdk/plugins/categories/upload/templates/config.yaml +0 -4
  78. synapse_sdk/plugins/templates/plugin-config-schema.json +409 -0
  79. synapse_sdk/plugins/templates/schema.json +484 -0
  80. synapse_sdk/utils/converters/__init__.py +145 -0
  81. synapse_sdk/utils/converters/coco/__init__.py +0 -0
  82. synapse_sdk/utils/converters/coco/from_dm.py +269 -0
  83. {synapse_sdk-1.0.0a58.dist-info → synapse_sdk-1.0.0a60.dist-info}/METADATA +9 -22
  84. {synapse_sdk-1.0.0a58.dist-info → synapse_sdk-1.0.0a60.dist-info}/RECORD +88 -20
  85. synapse_sdk/plugins/categories/upload/actions/task_pre_annotation.py +0 -101
  86. {synapse_sdk-1.0.0a58.dist-info → synapse_sdk-1.0.0a60.dist-info}/WHEEL +0 -0
  87. {synapse_sdk-1.0.0a58.dist-info → synapse_sdk-1.0.0a60.dist-info}/entry_points.txt +0 -0
  88. {synapse_sdk-1.0.0a58.dist-info → synapse_sdk-1.0.0a60.dist-info}/licenses/LICENSE +0 -0
  89. {synapse_sdk-1.0.0a58.dist-info → synapse_sdk-1.0.0a60.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,409 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://synapse-sdk.com/schemas/plugin-config.json",
4
+ "title": "Synapse SDK Plugin Configuration",
5
+ "description": "JSON Schema for validating Synapse SDK plugin config.yaml files",
6
+ "type": "object",
7
+ "required": ["name", "code", "version", "category"],
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "name": {
11
+ "type": "string",
12
+ "description": "Human-readable name of the plugin",
13
+ "minLength": 1
14
+ },
15
+ "code": {
16
+ "type": "string",
17
+ "description": "Unique identifier for the plugin",
18
+ "minLength": 1,
19
+ "pattern": "^[a-z0-9_-]+$"
20
+ },
21
+ "version": {
22
+ "type": "string",
23
+ "description": "Version of the plugin following semantic versioning",
24
+ "pattern": "^\\d+\\.\\d+\\.\\d+(?:-[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*)?$"
25
+ },
26
+ "description": {
27
+ "type": "string",
28
+ "description": "Description of what the plugin does"
29
+ },
30
+ "readme": {
31
+ "type": "string",
32
+ "description": "Path to the README file",
33
+ "default": "README.md"
34
+ },
35
+ "category": {
36
+ "type": "string",
37
+ "description": "Category of the plugin",
38
+ "enum": [
39
+ "neural_net",
40
+ "export",
41
+ "upload",
42
+ "smart_tool",
43
+ "post_annotation",
44
+ "pre_annotation",
45
+ "data_validation"
46
+ ]
47
+ },
48
+ "package_manager": {
49
+ "type": "string",
50
+ "description": "Package manager to use for dependencies",
51
+ "enum": ["pip", "uv"],
52
+ "default": "pip"
53
+ },
54
+ "data_type": {
55
+ "type": "string",
56
+ "description": "Primary data type the plugin works with",
57
+ "enum": ["image", "text", "video", "pcd", "audio"]
58
+ },
59
+ "task": {
60
+ "type": "string",
61
+ "description": "Primary task type (legacy field, use tasks array instead)"
62
+ },
63
+ "tasks": {
64
+ "type": "array",
65
+ "description": "Array of tasks the plugin supports",
66
+ "items": {
67
+ "type": "string",
68
+ "pattern": "^(image|text|video|pcd|audio)\\.(object_detection|classification|segmentation|regression|generation|translation|analysis)$"
69
+ },
70
+ "uniqueItems": true
71
+ },
72
+ "annotation_category": {
73
+ "type": "string",
74
+ "description": "Annotation category for smart tools",
75
+ "enum": ["image", "text", "video", "pcd", "audio"]
76
+ },
77
+ "annotation_type": {
78
+ "type": "string",
79
+ "description": "Type of annotation for smart tools",
80
+ "enum": ["polygon", "bbox", "point", "line", "mask", "keypoint", "text"]
81
+ },
82
+ "smart_tool": {
83
+ "type": "string",
84
+ "description": "Type of smart tool",
85
+ "enum": ["interactive_segmentation", "auto_labeling", "assisted_annotation"]
86
+ },
87
+ "actions": {
88
+ "type": "object",
89
+ "description": "Configuration for plugin actions",
90
+ "minProperties": 1,
91
+ "additionalProperties": {
92
+ "type": "object",
93
+ "required": ["entrypoint"],
94
+ "additionalProperties": false,
95
+ "properties": {
96
+ "entrypoint": {
97
+ "type": "string",
98
+ "description": "Python module path to the action implementation",
99
+ "pattern": "^[a-zA-Z_][a-zA-Z0-9_.]*\\.[a-zA-Z_][a-zA-Z0-9_]*$"
100
+ },
101
+ "method": {
102
+ "type": "string",
103
+ "description": "Execution method for the action",
104
+ "enum": ["job", "task", "restapi"],
105
+ "default": "job"
106
+ },
107
+ "dataset": {
108
+ "type": "string",
109
+ "description": "Dataset parameter name for training actions",
110
+ "default": "dataset"
111
+ },
112
+ "directory": {
113
+ "type": "string",
114
+ "description": "Directory path for gradio or other UI-based actions"
115
+ },
116
+ "model": {
117
+ "type": "object",
118
+ "description": "Model configuration for smart tools",
119
+ "additionalProperties": true,
120
+ "properties": {
121
+ "neural_net__plugin__code": {
122
+ "type": "string",
123
+ "description": "Neural network plugin code to use"
124
+ }
125
+ }
126
+ },
127
+ "endpoints": {
128
+ "type": "array",
129
+ "description": "REST API endpoints configuration",
130
+ "items": {
131
+ "type": "object",
132
+ "required": ["method"],
133
+ "additionalProperties": false,
134
+ "properties": {
135
+ "method": {
136
+ "type": "string",
137
+ "enum": ["get", "post", "put", "patch", "delete"],
138
+ "description": "HTTP method"
139
+ },
140
+ "path": {
141
+ "type": "string",
142
+ "description": "Endpoint path"
143
+ }
144
+ }
145
+ }
146
+ },
147
+ "hyperparameters": {
148
+ "type": "object",
149
+ "description": "Hyperparameter configuration for training",
150
+ "additionalProperties": false,
151
+ "properties": {
152
+ "ui_schema": {
153
+ "type": "string",
154
+ "description": "FormKit schema for hyperparameter UI (YAML string)"
155
+ },
156
+ "ui_schemas": {
157
+ "type": "array",
158
+ "description": "Array of FormKit schema objects for hyperparameters",
159
+ "items": {
160
+ "type": "object",
161
+ "additionalProperties": true
162
+ }
163
+ }
164
+ }
165
+ },
166
+ "metrics": {
167
+ "type": "object",
168
+ "description": "Metrics configuration for training monitoring",
169
+ "additionalProperties": {
170
+ "type": "object",
171
+ "additionalProperties": {
172
+ "oneOf": [
173
+ {
174
+ "type": "array",
175
+ "items": {
176
+ "type": "string"
177
+ }
178
+ },
179
+ {
180
+ "type": "object",
181
+ "additionalProperties": {
182
+ "type": "object",
183
+ "properties": {
184
+ "name": {
185
+ "type": "string",
186
+ "description": "Display name for the metric"
187
+ }
188
+ }
189
+ }
190
+ }
191
+ ]
192
+ }
193
+ }
194
+ },
195
+ "visualizations": {
196
+ "type": "object",
197
+ "description": "Visualization configuration for training monitoring",
198
+ "additionalProperties": {
199
+ "type": "object",
200
+ "required": ["type"],
201
+ "properties": {
202
+ "name": {
203
+ "type": "string",
204
+ "description": "Display name for the visualization"
205
+ },
206
+ "type": {
207
+ "type": "string",
208
+ "enum": ["image_grid_group", "line_chart", "scatter_plot"],
209
+ "description": "Type of visualization"
210
+ },
211
+ "options": {
212
+ "type": "object",
213
+ "description": "Visualization-specific options",
214
+ "properties": {
215
+ "group_name": {
216
+ "type": "string",
217
+ "description": "Name for grouping visualizations"
218
+ },
219
+ "thumbnail_size": {
220
+ "type": "array",
221
+ "items": {
222
+ "type": "integer",
223
+ "minimum": 1
224
+ },
225
+ "minItems": 2,
226
+ "maxItems": 2,
227
+ "description": "Thumbnail dimensions [width, height]"
228
+ }
229
+ },
230
+ "additionalProperties": true
231
+ }
232
+ }
233
+ }
234
+ },
235
+ "options": {
236
+ "type": "object",
237
+ "description": "Action-specific options",
238
+ "additionalProperties": true,
239
+ "properties": {
240
+ "visualize": {
241
+ "type": "boolean",
242
+ "description": "Whether to enable visualization for training",
243
+ "default": false
244
+ },
245
+ "allow_generate_tasks": {
246
+ "type": "boolean",
247
+ "description": "Allow the plugin to generate tasks for uploaded data",
248
+ "default": false
249
+ },
250
+ "allow_generate_ground_truths": {
251
+ "type": "boolean",
252
+ "description": "Allow the plugin to generate ground truths for uploaded data",
253
+ "default": false
254
+ }
255
+ }
256
+ },
257
+ "supported_data_type": {
258
+ "type": "string",
259
+ "description": "Primary data type supported by upload plugins",
260
+ "enum": ["image", "text", "video", "pcd", "audio"]
261
+ },
262
+ "ui_schema": {
263
+ "type": "string",
264
+ "description": "FormKit schema for action-specific UI options (YAML string)"
265
+ }
266
+ }
267
+ }
268
+ }
269
+ },
270
+ "allOf": [
271
+ {
272
+ "if": {
273
+ "properties": {
274
+ "category": {
275
+ "const": "neural_net"
276
+ }
277
+ }
278
+ },
279
+ "then": {
280
+ "properties": {
281
+ "data_type": {
282
+ "type": "string"
283
+ },
284
+ "tasks": {
285
+ "type": "array",
286
+ "minItems": 1
287
+ }
288
+ }
289
+ }
290
+ },
291
+ {
292
+ "if": {
293
+ "properties": {
294
+ "category": {
295
+ "const": "smart_tool"
296
+ }
297
+ }
298
+ },
299
+ "then": {
300
+ "properties": {
301
+ "annotation_category": {
302
+ "type": "string"
303
+ },
304
+ "annotation_type": {
305
+ "type": "string"
306
+ },
307
+ "smart_tool": {
308
+ "type": "string"
309
+ }
310
+ }
311
+ }
312
+ },
313
+ {
314
+ "if": {
315
+ "properties": {
316
+ "category": {
317
+ "const": "upload"
318
+ }
319
+ }
320
+ },
321
+ "then": {
322
+ "properties": {
323
+ "actions": {
324
+ "type": "object",
325
+ "properties": {
326
+ "upload": {
327
+ "type": "object",
328
+ "properties": {
329
+ "supported_data_type": {
330
+ "type": "string"
331
+ }
332
+ }
333
+ }
334
+ }
335
+ }
336
+ }
337
+ }
338
+ }
339
+ ],
340
+ "examples": [
341
+ {
342
+ "name": "YOLO Object Detection",
343
+ "code": "yolo11",
344
+ "version": "0.1.0",
345
+ "description": "YOLO v11 object detection plugin",
346
+ "category": "neural_net",
347
+ "package_manager": "uv",
348
+ "data_type": "image",
349
+ "tasks": ["image.object_detection"],
350
+ "actions": {
351
+ "train": {
352
+ "entrypoint": "plugin.train.train",
353
+ "dataset": "dataset",
354
+ "hyperparameters": {
355
+ "ui_schema": "# FormKit schema YAML"
356
+ },
357
+ "metrics": {
358
+ "epoch": ["loss", "miou"]
359
+ },
360
+ "options": {
361
+ "visualize": false
362
+ }
363
+ },
364
+ "inference": {
365
+ "method": "restapi",
366
+ "endpoints": [
367
+ {
368
+ "method": "get"
369
+ }
370
+ ]
371
+ },
372
+ "deployment": {
373
+ "entrypoint": "plugin.inference.MockNetInference"
374
+ }
375
+ }
376
+ },
377
+ {
378
+ "name": "Smart Segmentation Tool",
379
+ "code": "sam2-tool",
380
+ "version": "1.0.0",
381
+ "description": "Interactive segmentation smart tool",
382
+ "category": "smart_tool",
383
+ "annotation_category": "image",
384
+ "annotation_type": "polygon",
385
+ "smart_tool": "interactive_segmentation",
386
+ "actions": {
387
+ "auto_label": {
388
+ "entrypoint": "plugin.auto_label.MyAutoLabel",
389
+ "model": {
390
+ "neural_net__plugin__code": "sam2"
391
+ },
392
+ "ui_schema": "# FormKit schema for auto_label"
393
+ }
394
+ }
395
+ },
396
+ {
397
+ "name": "Data Export Plugin",
398
+ "code": "coco-export",
399
+ "version": "1.0.0",
400
+ "description": "Export annotations in COCO format",
401
+ "category": "export",
402
+ "actions": {
403
+ "export": {
404
+ "entrypoint": "plugin.export.export"
405
+ }
406
+ }
407
+ }
408
+ ]
409
+ }