@mesantosrai/pipeline-canvas 1.0.0

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 (148) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +545 -0
  3. package/dist/_virtual/dynamic-import-helper.mjs +17 -0
  4. package/dist/_virtual/dynamic-import-helper.mjs.map +1 -0
  5. package/dist/components/CustomHandle.d.ts +9 -0
  6. package/dist/components/CustomHandle.d.ts.map +1 -0
  7. package/dist/components/CustomHandle.mjs +18 -0
  8. package/dist/components/CustomHandle.mjs.map +1 -0
  9. package/dist/components/ExecutionLogsPanel.d.ts +3 -0
  10. package/dist/components/ExecutionLogsPanel.d.ts.map +1 -0
  11. package/dist/components/ExecutionLogsPanel.mjs +189 -0
  12. package/dist/components/ExecutionLogsPanel.mjs.map +1 -0
  13. package/dist/components/NodeContextMenu.d.ts +15 -0
  14. package/dist/components/NodeContextMenu.d.ts.map +1 -0
  15. package/dist/components/NodeContextMenu.mjs +110 -0
  16. package/dist/components/NodeContextMenu.mjs.map +1 -0
  17. package/dist/components/PipelineCanvas.d.ts +4 -0
  18. package/dist/components/PipelineCanvas.d.ts.map +1 -0
  19. package/dist/components/PipelineCanvas.mjs +1016 -0
  20. package/dist/components/PipelineCanvas.mjs.map +1 -0
  21. package/dist/components/PipelineCanvasProvider.d.ts +30 -0
  22. package/dist/components/PipelineCanvasProvider.d.ts.map +1 -0
  23. package/dist/components/PipelineCanvasProvider.mjs +7 -0
  24. package/dist/components/PipelineCanvasProvider.mjs.map +1 -0
  25. package/dist/components/PipelineExecution.d.ts +16 -0
  26. package/dist/components/PipelineExecution.d.ts.map +1 -0
  27. package/dist/components/PipelineExecution.mjs +310 -0
  28. package/dist/components/PipelineExecution.mjs.map +1 -0
  29. package/dist/components/PipelineManager.d.ts +8 -0
  30. package/dist/components/PipelineManager.d.ts.map +1 -0
  31. package/dist/components/PipelineManager.mjs +143 -0
  32. package/dist/components/PipelineManager.mjs.map +1 -0
  33. package/dist/components/PipelineNodeConfig.d.ts +11 -0
  34. package/dist/components/PipelineNodeConfig.d.ts.map +1 -0
  35. package/dist/components/PipelineNodeConfig.mjs +1808 -0
  36. package/dist/components/PipelineNodeConfig.mjs.map +1 -0
  37. package/dist/components/PipelineNodePalette.d.ts +3 -0
  38. package/dist/components/PipelineNodePalette.d.ts.map +1 -0
  39. package/dist/components/PipelineNodePalette.mjs +87 -0
  40. package/dist/components/PipelineNodePalette.mjs.map +1 -0
  41. package/dist/components/SavePipelineDialog.d.ts +9 -0
  42. package/dist/components/SavePipelineDialog.d.ts.map +1 -0
  43. package/dist/components/SavePipelineDialog.mjs +140 -0
  44. package/dist/components/SavePipelineDialog.mjs.map +1 -0
  45. package/dist/components/SavedPipelinesList.d.ts +3 -0
  46. package/dist/components/SavedPipelinesList.d.ts.map +1 -0
  47. package/dist/components/SavedPipelinesList.mjs +172 -0
  48. package/dist/components/SavedPipelinesList.mjs.map +1 -0
  49. package/dist/components/index.d.ts +8 -0
  50. package/dist/components/index.d.ts.map +1 -0
  51. package/dist/components/ui/alert.d.ts +9 -0
  52. package/dist/components/ui/alert.d.ts.map +1 -0
  53. package/dist/components/ui/alert.mjs +51 -0
  54. package/dist/components/ui/alert.mjs.map +1 -0
  55. package/dist/components/ui/button.d.ts +12 -0
  56. package/dist/components/ui/button.d.ts.map +1 -0
  57. package/dist/components/ui/button.mjs +45 -0
  58. package/dist/components/ui/button.mjs.map +1 -0
  59. package/dist/components/ui/dialog.d.ts +20 -0
  60. package/dist/components/ui/dialog.d.ts.map +1 -0
  61. package/dist/components/ui/dialog.mjs +99 -0
  62. package/dist/components/ui/dialog.mjs.map +1 -0
  63. package/dist/components/ui/index.d.ts +8 -0
  64. package/dist/components/ui/index.d.ts.map +1 -0
  65. package/dist/components/ui/input.d.ts +6 -0
  66. package/dist/components/ui/input.d.ts.map +1 -0
  67. package/dist/components/ui/input.mjs +22 -0
  68. package/dist/components/ui/input.mjs.map +1 -0
  69. package/dist/components/ui/label.d.ts +6 -0
  70. package/dist/components/ui/label.d.ts.map +1 -0
  71. package/dist/components/ui/label.mjs +20 -0
  72. package/dist/components/ui/label.mjs.map +1 -0
  73. package/dist/components/ui/select.d.ts +14 -0
  74. package/dist/components/ui/select.d.ts.map +1 -0
  75. package/dist/components/ui/select.mjs +121 -0
  76. package/dist/components/ui/select.mjs.map +1 -0
  77. package/dist/components/ui/tooltip.d.ts +8 -0
  78. package/dist/components/ui/tooltip.d.ts.map +1 -0
  79. package/dist/components/ui/tooltip.mjs +24 -0
  80. package/dist/components/ui/tooltip.mjs.map +1 -0
  81. package/dist/context/PipelineContext.d.ts +50 -0
  82. package/dist/context/PipelineContext.d.ts.map +1 -0
  83. package/dist/context/PipelineContext.mjs +36 -0
  84. package/dist/context/PipelineContext.mjs.map +1 -0
  85. package/dist/index.d.ts +12 -0
  86. package/dist/index.d.ts.map +1 -0
  87. package/dist/index.mjs +45 -0
  88. package/dist/index.mjs.map +1 -0
  89. package/dist/lib/utils.d.ts +3 -0
  90. package/dist/lib/utils.d.ts.map +1 -0
  91. package/dist/lib/utils.mjs +9 -0
  92. package/dist/lib/utils.mjs.map +1 -0
  93. package/dist/node_modules/zustand/esm/middleware.mjs +256 -0
  94. package/dist/node_modules/zustand/esm/middleware.mjs.map +1 -0
  95. package/dist/nodes/alphafold_node/node.json.mjs +82 -0
  96. package/dist/nodes/alphafold_node/node.json.mjs.map +1 -0
  97. package/dist/nodes/http_request_node/node.json.mjs +383 -0
  98. package/dist/nodes/http_request_node/node.json.mjs.map +1 -0
  99. package/dist/nodes/input_node/node.json.mjs +51 -0
  100. package/dist/nodes/input_node/node.json.mjs.map +1 -0
  101. package/dist/nodes/message_input_node/node.json.mjs +90 -0
  102. package/dist/nodes/message_input_node/node.json.mjs.map +1 -0
  103. package/dist/nodes/proteinmpnn_node/node.json.mjs +83 -0
  104. package/dist/nodes/proteinmpnn_node/node.json.mjs.map +1 -0
  105. package/dist/nodes/rfdiffusion_node/node.json.mjs +281 -0
  106. package/dist/nodes/rfdiffusion_node/node.json.mjs.map +1 -0
  107. package/dist/store/pipelineStore.d.ts +108 -0
  108. package/dist/store/pipelineStore.d.ts.map +1 -0
  109. package/dist/store/pipelineStore.mjs +633 -0
  110. package/dist/store/pipelineStore.mjs.map +1 -0
  111. package/dist/style.css +1 -0
  112. package/dist/types/dependencies.d.ts +93 -0
  113. package/dist/types/dependencies.d.ts.map +1 -0
  114. package/dist/types/index.d.ts +56 -0
  115. package/dist/types/index.d.ts.map +1 -0
  116. package/dist/types/logger.d.ts +67 -0
  117. package/dist/types/logger.d.ts.map +1 -0
  118. package/dist/types/logger.mjs +22 -0
  119. package/dist/types/logger.mjs.map +1 -0
  120. package/dist/utils/executionEngine.d.ts +27 -0
  121. package/dist/utils/executionEngine.d.ts.map +1 -0
  122. package/dist/utils/executionEngine.mjs +461 -0
  123. package/dist/utils/executionEngine.mjs.map +1 -0
  124. package/dist/utils/index.d.ts +6 -0
  125. package/dist/utils/index.d.ts.map +1 -0
  126. package/dist/utils/logger.d.ts +23 -0
  127. package/dist/utils/logger.d.ts.map +1 -0
  128. package/dist/utils/logger.mjs +29 -0
  129. package/dist/utils/logger.mjs.map +1 -0
  130. package/dist/utils/nodeLoader.d.ts +76 -0
  131. package/dist/utils/nodeLoader.d.ts.map +1 -0
  132. package/dist/utils/nodeLoader.mjs +48 -0
  133. package/dist/utils/nodeLoader.mjs.map +1 -0
  134. package/dist/utils/templateResolver.d.ts +10 -0
  135. package/dist/utils/templateResolver.d.ts.map +1 -0
  136. package/dist/utils/templateResolver.mjs +64 -0
  137. package/dist/utils/templateResolver.mjs.map +1 -0
  138. package/dist/utils/topologicalSort.d.ts +10 -0
  139. package/dist/utils/topologicalSort.d.ts.map +1 -0
  140. package/dist/utils/topologicalSort.mjs +25 -0
  141. package/dist/utils/topologicalSort.mjs.map +1 -0
  142. package/nodes/alphafold_node/node.json +77 -0
  143. package/nodes/http_request_node/node.json +311 -0
  144. package/nodes/input_node/node.json +47 -0
  145. package/nodes/message_input_node/node.json +56 -0
  146. package/nodes/proteinmpnn_node/node.json +78 -0
  147. package/nodes/rfdiffusion_node/node.json +231 -0
  148. package/package.json +94 -0
@@ -0,0 +1,231 @@
1
+ {
2
+ "metadata": {
3
+ "type": "rfdiffusion_node",
4
+ "label": "RFdiffusion",
5
+ "icon": "Sparkles",
6
+ "color": "#a855f7",
7
+ "borderColor": "border-purple-500",
8
+ "bgColor": "bg-purple-500",
9
+ "description": "De novo backbone design"
10
+ },
11
+ "schema": {
12
+ "method": {
13
+ "type": "select",
14
+ "required": true,
15
+ "default": "POST",
16
+ "label": "Method",
17
+ "options": [
18
+ { "value": "GET", "label": "GET" },
19
+ { "value": "POST", "label": "POST" },
20
+ { "value": "PUT", "label": "PUT" },
21
+ { "value": "PATCH", "label": "PATCH" },
22
+ { "value": "DELETE", "label": "DELETE" }
23
+ ],
24
+ "helpText": "HTTP method for the request"
25
+ },
26
+ "url": {
27
+ "type": "string",
28
+ "required": true,
29
+ "default": "/rfdiffusion/design",
30
+ "placeholder": "/rfdiffusion/design",
31
+ "label": "URL",
32
+ "helpText": "API endpoint URL (relative or absolute)"
33
+ },
34
+ "api_key": {
35
+ "type": "string",
36
+ "required": false,
37
+ "default": "",
38
+ "placeholder": "Enter NVIDIA API key (optional)",
39
+ "label": "API Key",
40
+ "helpText": "NVIDIA API key for RFdiffusion. Leave empty to use global API key from settings."
41
+ },
42
+ "send_query_params": {
43
+ "type": "boolean",
44
+ "required": false,
45
+ "default": false,
46
+ "label": "Send Query Parameters",
47
+ "helpText": "Include query parameters in the URL"
48
+ },
49
+ "query_params": {
50
+ "type": "json",
51
+ "required": false,
52
+ "default": "{}",
53
+ "label": "Query Parameters",
54
+ "helpText": "JSON object with query parameters (e.g., {\"key\": \"value\"})"
55
+ },
56
+ "send_headers": {
57
+ "type": "boolean",
58
+ "required": false,
59
+ "default": true,
60
+ "label": "Send Headers",
61
+ "helpText": "Include custom headers in the request"
62
+ },
63
+ "custom_headers": {
64
+ "type": "json",
65
+ "required": false,
66
+ "default": "{}",
67
+ "label": "Custom Headers",
68
+ "helpText": "JSON object with custom headers (e.g., {\"Content-Type\": \"application/json\"})"
69
+ },
70
+ "send_body": {
71
+ "type": "boolean",
72
+ "required": false,
73
+ "default": true,
74
+ "label": "Send Body",
75
+ "helpText": "Include request body"
76
+ },
77
+ "body_content_type": {
78
+ "type": "select",
79
+ "required": false,
80
+ "default": "json",
81
+ "label": "Body Content Type",
82
+ "options": [
83
+ { "value": "json", "label": "JSON" },
84
+ { "value": "form-data", "label": "Form Data" },
85
+ { "value": "x-www-form-urlencoded", "label": "Form URL Encoded" },
86
+ { "value": "raw", "label": "Raw" }
87
+ ],
88
+ "helpText": "Content type for the request body"
89
+ },
90
+ "body_specify": {
91
+ "type": "select",
92
+ "required": false,
93
+ "default": "json",
94
+ "label": "Specify Body",
95
+ "options": [
96
+ { "value": "json", "label": "Using JSON" },
97
+ { "value": "expression", "label": "Using Expression" },
98
+ { "value": "fixed", "label": "Fixed" }
99
+ ],
100
+ "helpText": "How to specify the body content"
101
+ },
102
+ "body_json": {
103
+ "type": "textarea",
104
+ "required": false,
105
+ "default": "",
106
+ "placeholder": "{\"pdb_file\": \"{{input.target}}\", \"contigs\": \"{{config.contigs}}\", \"num_designs\": \"{{config.num_designs}}\"}",
107
+ "label": "JSON",
108
+ "helpText": "JSON body content (supports template variables like {{input.target}})"
109
+ },
110
+ "design_mode": {
111
+ "type": "select",
112
+ "required": false,
113
+ "default": "unconditional",
114
+ "label": "Design Mode",
115
+ "options": [
116
+ { "value": "unconditional", "label": "Unconditional Design" },
117
+ { "value": "motif_scaffolding", "label": "Motif Scaffolding" },
118
+ { "value": "partial_diffusion", "label": "Partial Diffusion" }
119
+ ],
120
+ "helpText": "Design mode: unconditional (new proteins), motif_scaffolding (around structures), or partial_diffusion (modify regions)"
121
+ },
122
+ "contigs": {
123
+ "type": "string",
124
+ "required": false,
125
+ "default": "A50-150",
126
+ "placeholder": "A50-150",
127
+ "label": "Contigs",
128
+ "helpText": "Contig specification (e.g., \"A50-150\" or \"A20-60/0 50-100\")"
129
+ },
130
+ "hotspot_res": {
131
+ "type": "string",
132
+ "required": false,
133
+ "default": "",
134
+ "placeholder": "A50, A51, A52",
135
+ "label": "Hotspot Residues",
136
+ "helpText": "Comma-separated list of residues to preserve (e.g., \"A50, A51, A52\")"
137
+ },
138
+ "diffusion_steps": {
139
+ "type": "number",
140
+ "required": false,
141
+ "default": 15,
142
+ "min": 1,
143
+ "max": 100,
144
+ "label": "Diffusion Steps",
145
+ "helpText": "Number of diffusion steps (1-100, higher = better quality but slower)"
146
+ },
147
+ "pdb_id": {
148
+ "type": "string",
149
+ "required": false,
150
+ "default": "",
151
+ "placeholder": "e.g., 1R42",
152
+ "label": "PDB ID",
153
+ "helpText": "Optional PDB ID to use as template (4-character code)"
154
+ },
155
+ "num_designs": {
156
+ "type": "number",
157
+ "required": false,
158
+ "default": 1,
159
+ "min": 1,
160
+ "max": 10,
161
+ "label": "Number of Designs"
162
+ }
163
+ },
164
+ "handles": {
165
+ "inputs": [
166
+ {
167
+ "id": "target",
168
+ "type": "target",
169
+ "position": "left",
170
+ "dataType": "pdb_file"
171
+ }
172
+ ],
173
+ "outputs": [
174
+ {
175
+ "id": "source",
176
+ "type": "source",
177
+ "position": "right",
178
+ "dataType": "pdb_file"
179
+ }
180
+ ]
181
+ },
182
+ "execution": {
183
+ "type": "api_call",
184
+ "endpoint": "{{config.url}}",
185
+ "method": "{{config.method}}",
186
+ "queryParams": "{{config.query_params}}",
187
+ "headers": {
188
+ "Authorization": "Bearer {{config.api_key}}",
189
+ "__custom_headers__": "{{config.custom_headers}}",
190
+ "__send_headers__": "{{config.send_headers}}"
191
+ },
192
+ "payload": {
193
+ "__send_body__": "{{config.send_body}}",
194
+ "__body_content_type__": "{{config.body_content_type}}",
195
+ "__body_specify__": "{{config.body_specify}}",
196
+ "__body_json__": "{{config.body_json}}",
197
+ "__legacy_payload__": {
198
+ "pdb_file": "{{input.target}}",
199
+ "pdb_id": "{{config.pdb_id}}",
200
+ "contigs": "{{config.contigs}}",
201
+ "hotspot_res": "{{config.hotspot_res}}",
202
+ "diffusion_steps": "{{config.diffusion_steps}}",
203
+ "design_mode": "{{config.design_mode}}",
204
+ "num_designs": "{{config.num_designs}}"
205
+ }
206
+ }
207
+ },
208
+ "defaultConfig": {
209
+ "method": "POST",
210
+ "url": "/rfdiffusion/design",
211
+ "api_key": "",
212
+ "send_query_params": false,
213
+ "query_params": "{}",
214
+ "send_headers": true,
215
+ "custom_headers": "{}",
216
+ "send_body": true,
217
+ "body_content_type": "json",
218
+ "body_specify": "json",
219
+ "body_json": "{\"pdb_file\": \"{{input.target}}\", \"pdb_id\": \"{{config.pdb_id}}\", \"contigs\": \"{{config.contigs}}\", \"hotspot_res\": \"{{config.hotspot_res}}\", \"diffusion_steps\": \"{{config.diffusion_steps}}\", \"design_mode\": \"{{config.design_mode}}\", \"num_designs\": \"{{config.num_designs}}\"}",
220
+ "design_mode": "unconditional",
221
+ "contigs": "A50-150",
222
+ "hotspot_res": "",
223
+ "diffusion_steps": 15,
224
+ "pdb_id": "",
225
+ "num_designs": 1
226
+ }
227
+ }
228
+
229
+
230
+
231
+
package/package.json ADDED
@@ -0,0 +1,94 @@
1
+ {
2
+ "name": "@mesantosrai/pipeline-canvas",
3
+ "version": "1.0.0",
4
+ "description": "Pipeline canvas component library for visual workflow design",
5
+ "author": "santosh rai <santosh984970@gmail.com>",
6
+ "license": "MIT",
7
+ "homepage": "https://github.com/santosrai/pipeline-canvas#readme",
8
+ "bugs": {
9
+ "url": "https://github.com/santosrai/pipeline-canvas/issues"
10
+ },
11
+ "type": "module",
12
+ "main": "./dist/index.mjs",
13
+ "module": "./dist/index.mjs",
14
+ "types": "./dist/index.d.ts",
15
+ "exports": {
16
+ ".": {
17
+ "import": "./dist/index.mjs",
18
+ "types": "./dist/index.d.ts"
19
+ },
20
+ "./components": {
21
+ "import": "./dist/components/index.mjs",
22
+ "types": "./dist/components/index.d.ts"
23
+ },
24
+ "./types": {
25
+ "import": "./dist/types/index.mjs",
26
+ "types": "./dist/types/index.d.ts"
27
+ },
28
+ "./store": {
29
+ "import": "./dist/store/pipelineStore.mjs",
30
+ "types": "./dist/store/pipelineStore.d.ts"
31
+ },
32
+ "./utils": {
33
+ "import": "./dist/utils/index.mjs",
34
+ "types": "./dist/utils/index.d.ts"
35
+ },
36
+ "./style.css": "./dist/style.css"
37
+ },
38
+ "files": [
39
+ "dist",
40
+ "nodes",
41
+ "README.md",
42
+ "LICENSE",
43
+ "package.json"
44
+ ],
45
+ "scripts": {
46
+ "build": "vite build && tsc --emitDeclarationOnly --outDir dist",
47
+ "type-check": "tsc --noEmit",
48
+ "prepublishOnly": "npm run build"
49
+ },
50
+ "peerDependencies": {
51
+ "react": "^18.3.1",
52
+ "react-dom": "^18.3.1",
53
+ "reactflow": "^11.11.4",
54
+ "zustand": "^4.5.4",
55
+ "lucide-react": "^0.427.0",
56
+ "@radix-ui/react-dialog": "^1.0.5",
57
+ "@radix-ui/react-dropdown-menu": "^2.0.6",
58
+ "@radix-ui/react-label": "^2.0.2",
59
+ "@radix-ui/react-select": "^2.0.0",
60
+ "@radix-ui/react-slot": "^1.0.2",
61
+ "@radix-ui/react-tooltip": "^1.0.7",
62
+ "class-variance-authority": "^0.7.0",
63
+ "clsx": "^2.1.0",
64
+ "tailwind-merge": "^2.2.0"
65
+ },
66
+ "devDependencies": {
67
+ "@types/react": "^18.3.3",
68
+ "@types/react-dom": "^18.3.0",
69
+ "@types/node": "^20.11.5",
70
+ "@vitejs/plugin-react": "^4.3.1",
71
+ "typescript": "^5.2.2",
72
+ "vite": "^5.3.4"
73
+ },
74
+ "repository": {
75
+ "type": "git",
76
+ "url": "git+https://github.com/santosrai/pipeline-canvas.git"
77
+ },
78
+ "keywords": [
79
+ "pipeline",
80
+ "canvas",
81
+ "workflow",
82
+ "react",
83
+ "reactflow",
84
+ "visual-editor",
85
+ "dag",
86
+ "node-based",
87
+ "workflow-builder"
88
+ ]
89
+
90
+ }
91
+
92
+
93
+
94
+