symbiote-ui 0.3.0-alpha.4

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 (322) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/LICENSE +21 -0
  3. package/README.md +76 -0
  4. package/canvas/AutoLayout.js +731 -0
  5. package/canvas/Breadcrumb/Breadcrumb.css.js +75 -0
  6. package/canvas/Breadcrumb/Breadcrumb.js +96 -0
  7. package/canvas/Breadcrumb/Breadcrumb.tpl.js +7 -0
  8. package/canvas/CanvasConnectionRenderer.js +971 -0
  9. package/canvas/CanvasGraph/CanvasGraph.css.js +29 -0
  10. package/canvas/CanvasGraph/CanvasGraph.js +1697 -0
  11. package/canvas/CanvasGraph/CanvasGraphDrawState.js +280 -0
  12. package/canvas/CanvasGraph/CanvasGraphGeometry.js +194 -0
  13. package/canvas/CanvasViewport.js +550 -0
  14. package/canvas/ConnectionRenderer.js +1283 -0
  15. package/canvas/FlowSimulator.js +326 -0
  16. package/canvas/ForceLayout.js +226 -0
  17. package/canvas/ForceWorker.js +1303 -0
  18. package/canvas/FrameManager.js +223 -0
  19. package/canvas/GraphExplorerShell/GraphExplorerShell.css.js +136 -0
  20. package/canvas/GraphExplorerShell/GraphExplorerShell.js +129 -0
  21. package/canvas/GraphExplorerShell/GraphExplorerShell.tpl.js +12 -0
  22. package/canvas/GraphTabs/GraphTabs.css.js +101 -0
  23. package/canvas/GraphTabs/GraphTabs.js +189 -0
  24. package/canvas/GraphTabs/GraphTabs.tpl.js +12 -0
  25. package/canvas/LODManager.js +88 -0
  26. package/canvas/Minimap/Minimap.css.js +73 -0
  27. package/canvas/Minimap/Minimap.js +210 -0
  28. package/canvas/Minimap/Minimap.tpl.js +7 -0
  29. package/canvas/NodeCanvas/NodeCanvas.css.js +398 -0
  30. package/canvas/NodeCanvas/NodeCanvas.js +1499 -0
  31. package/canvas/NodeCanvas/NodeCanvas.tpl.js +22 -0
  32. package/canvas/NodeSearch/NodeSearch.css.js +97 -0
  33. package/canvas/NodeSearch/NodeSearch.js +140 -0
  34. package/canvas/NodeSearch/NodeSearch.tpl.js +25 -0
  35. package/canvas/NodeViewManager.js +748 -0
  36. package/canvas/PcbRouteDiagnostics.js +463 -0
  37. package/canvas/PcbRouter.js +1127 -0
  38. package/canvas/PinExpansion.js +134 -0
  39. package/canvas/PseudoConnection.js +84 -0
  40. package/canvas/SelectionSync.js +163 -0
  41. package/canvas/SubgraphManager.js +203 -0
  42. package/canvas/SubgraphRouter.js +452 -0
  43. package/canvas/ViewportActions.js +473 -0
  44. package/canvas/graph-explorer.js +339 -0
  45. package/canvas/graph-layout.js +148 -0
  46. package/canvas/graph-model.js +68 -0
  47. package/canvas/html-in-canvas.js +202 -0
  48. package/canvas/project-graph-builder.js +440 -0
  49. package/canvas/project-graph-model.js +183 -0
  50. package/chat/ChatComposer/ChatComposer.css.js +652 -0
  51. package/chat/ChatComposer/ChatComposer.js +304 -0
  52. package/chat/ChatList/ChatList.css.js +102 -0
  53. package/chat/ChatList/ChatList.js +99 -0
  54. package/chat/ChatList/ChatList.tpl.js +20 -0
  55. package/chat/ChatListItem/ChatListItem.css.js +117 -0
  56. package/chat/ChatListItem/ChatListItem.js +32 -0
  57. package/chat/ChatListItem/ChatListItem.tpl.js +17 -0
  58. package/chat/ChatMessageItem/ChatMessageItem.css.js +628 -0
  59. package/chat/ChatMessageItem/ChatMessageItem.js +156 -0
  60. package/chat/ChatSidebar/ChatSidebar.css.js +150 -0
  61. package/chat/ChatSidebar/ChatSidebar.js +230 -0
  62. package/chat/ChatSidebar/ChatSidebar.tpl.js +18 -0
  63. package/chat/ChatSidebar/constants.js +11 -0
  64. package/chat/ChatSidebarItem/ChatSidebarItem.css.js +445 -0
  65. package/chat/ChatSidebarItem/ChatSidebarItem.js +304 -0
  66. package/chat/ChatTranscript/ChatTranscript.css.js +90 -0
  67. package/chat/ChatTranscript/ChatTranscript.js +244 -0
  68. package/chat/chat-context.js +123 -0
  69. package/chat/message-model.js +156 -0
  70. package/cli.js +20 -0
  71. package/control/Button/Button.css.js +93 -0
  72. package/control/Button/Button.js +78 -0
  73. package/control/Button/Button.tpl.js +3 -0
  74. package/control/Field/Field.css.js +91 -0
  75. package/control/Field/Field.js +17 -0
  76. package/control/Field/Field.tpl.js +3 -0
  77. package/core/Connection.js +47 -0
  78. package/core/Editor.js +449 -0
  79. package/core/Frame.js +33 -0
  80. package/core/GraphMermaid.js +348 -0
  81. package/core/GraphText.js +228 -0
  82. package/core/Node.js +145 -0
  83. package/core/Portal.js +106 -0
  84. package/core/Socket.js +187 -0
  85. package/core/SubgraphNode.js +121 -0
  86. package/core/base-path.js +55 -0
  87. package/core/dom-utils.js +14 -0
  88. package/core/index.js +18 -0
  89. package/core/local-cache.js +26 -0
  90. package/core/state-sync.js +227 -0
  91. package/custom-elements.json +6380 -0
  92. package/discover.js +240 -0
  93. package/display/Badge/Badge.css.js +44 -0
  94. package/display/Badge/Badge.js +17 -0
  95. package/display/Badge/Badge.tpl.js +3 -0
  96. package/display/Banner/Banner.css.js +61 -0
  97. package/display/Banner/Banner.js +17 -0
  98. package/display/Banner/Banner.tpl.js +3 -0
  99. package/display/CodeBlock/CodeBlock.css.js +194 -0
  100. package/display/CodeBlock/CodeBlock.js +220 -0
  101. package/display/CodeBlock/CodeBlock.tpl.js +11 -0
  102. package/display/DataTable/DataTable.css.js +101 -0
  103. package/display/DataTable/DataTable.js +136 -0
  104. package/display/DataTable/DataTable.tpl.js +13 -0
  105. package/display/EmptyState/EmptyState.css.js +33 -0
  106. package/display/EmptyState/EmptyState.js +17 -0
  107. package/display/EmptyState/EmptyState.tpl.js +3 -0
  108. package/display/EventFeed/EventFeed.css.js +145 -0
  109. package/display/EventFeed/EventFeed.js +64 -0
  110. package/display/EventFeed/EventFeed.tpl.js +14 -0
  111. package/display/EventFeed/EventFeedItem.js +116 -0
  112. package/display/EventFeed/EventFeedItem.tpl.js +22 -0
  113. package/display/LoadingOverlay/LoadingOverlay.css.js +91 -0
  114. package/display/LoadingOverlay/LoadingOverlay.js +48 -0
  115. package/display/LoadingOverlay/LoadingOverlay.tpl.js +12 -0
  116. package/display/Metric/Metric.css.js +60 -0
  117. package/display/Metric/Metric.js +17 -0
  118. package/display/Metric/Metric.tpl.js +6 -0
  119. package/display/OutputGraphPreview/OutputGraphPreview.css.js +122 -0
  120. package/display/OutputGraphPreview/OutputGraphPreview.js +89 -0
  121. package/display/OutputGraphPreview/OutputGraphPreview.tpl.js +13 -0
  122. package/display/OutputListPreview/OutputListPreview.css.js +109 -0
  123. package/display/OutputListPreview/OutputListPreview.js +77 -0
  124. package/display/OutputListPreview/OutputListPreview.tpl.js +13 -0
  125. package/display/SourceEditor/SourceEditor.css.js +39 -0
  126. package/display/SourceEditor/SourceEditor.js +129 -0
  127. package/display/SourceEditor/SourceEditor.tpl.js +10 -0
  128. package/display/SourceViewer/SourceViewer.css.js +80 -0
  129. package/display/SourceViewer/SourceViewer.js +418 -0
  130. package/display/SourceViewer/SourceViewer.tpl.js +17 -0
  131. package/display/StatusRibbon/StatusRibbon.css.js +73 -0
  132. package/display/StatusRibbon/StatusRibbon.js +87 -0
  133. package/display/StatusRibbon/StatusRibbon.tpl.js +7 -0
  134. package/display/event-feed-adapter.js +72 -0
  135. package/display/format-utils.js +29 -0
  136. package/display/highlight.js +659 -0
  137. package/display/icons.js +37 -0
  138. package/display/markdown-formatter.js +60 -0
  139. package/display/network-approval-page.js +487 -0
  140. package/display/output-preview.js +261 -0
  141. package/effects/CellBg/CellBg.css.js +33 -0
  142. package/effects/CellBg/CellBg.js +410 -0
  143. package/effects/CellBg/CellBg.tpl.js +5 -0
  144. package/graph/canvas-adapter.js +223 -0
  145. package/graph/graph-algorithms.js +31 -0
  146. package/graph/index.js +46 -0
  147. package/graph/model.js +176 -0
  148. package/graph/project-graph-build.js +66 -0
  149. package/graph/project-graph-metadata.js +253 -0
  150. package/graph/project-package.js +128 -0
  151. package/graph/project-runtime.js +116 -0
  152. package/graph/project-transaction.js +284 -0
  153. package/graph/skeleton-utils.js +84 -0
  154. package/graph/theme-contract.js +36 -0
  155. package/graph/transaction-parser.js +56 -0
  156. package/icons/MaterialSymbols.js +69 -0
  157. package/icons/material-symbols-outlined-400.ttf +0 -0
  158. package/icons/material-symbols.css +24 -0
  159. package/index.js +95 -0
  160. package/inspector/InspectorPanel/InspectorPanel.css.js +375 -0
  161. package/inspector/InspectorPanel/InspectorPanel.js +368 -0
  162. package/inspector/InspectorPanel/InspectorPanel.tpl.js +96 -0
  163. package/inspector/TemplatePreview/TemplatePreview.css.js +104 -0
  164. package/inspector/TemplatePreview/TemplatePreview.js +145 -0
  165. package/inspector/TemplatePreview/TemplatePreview.tpl.js +33 -0
  166. package/interactions/ConnectFlow.js +304 -0
  167. package/interactions/Drag.js +104 -0
  168. package/interactions/Selector.js +133 -0
  169. package/interactions/SnapGrid.js +66 -0
  170. package/interactions/Zoom.js +139 -0
  171. package/layout/ActionZone/ActionZone.css.js +88 -0
  172. package/layout/ActionZone/ActionZone.js +261 -0
  173. package/layout/ActionZone/ActionZone.tpl.js +11 -0
  174. package/layout/CrossLayoutPortalBridge/CrossLayoutPortalBridge.js +255 -0
  175. package/layout/Layout/Layout.css.js +91 -0
  176. package/layout/Layout/Layout.js +637 -0
  177. package/layout/Layout/Layout.tpl.js +27 -0
  178. package/layout/LayoutNode/LayoutNode.css.js +302 -0
  179. package/layout/LayoutNode/LayoutNode.js +509 -0
  180. package/layout/LayoutNode/LayoutNode.tpl.js +39 -0
  181. package/layout/LayoutPreview/LayoutPreview.css.js +46 -0
  182. package/layout/LayoutPreview/LayoutPreview.js +102 -0
  183. package/layout/LayoutPreview/LayoutPreview.tpl.js +6 -0
  184. package/layout/LayoutRouter/LayoutRouter.js +274 -0
  185. package/layout/LayoutRouter/SectionRegistry.js +135 -0
  186. package/layout/LayoutRouter/routerSync.js +250 -0
  187. package/layout/LayoutSidebar/LayoutSidebar.css.js +411 -0
  188. package/layout/LayoutSidebar/LayoutSidebar.js +368 -0
  189. package/layout/LayoutSidebar/LayoutSidebar.tpl.js +26 -0
  190. package/layout/LayoutSidebar/SidebarSection.css.js +20 -0
  191. package/layout/LayoutSidebar/SidebarSection.js +184 -0
  192. package/layout/LayoutSidebar/SidebarSection.tpl.js +22 -0
  193. package/layout/LayoutTree.js +373 -0
  194. package/layout/PanelMenu/PanelMenu.css.js +43 -0
  195. package/layout/PanelMenu/PanelMenu.js +95 -0
  196. package/layout/PanelMenu/PanelMenu.tpl.js +17 -0
  197. package/layout/ProjectTabs/ProjectTabs.css.js +188 -0
  198. package/layout/ProjectTabs/ProjectTabs.js +77 -0
  199. package/layout/ProjectTabs/ProjectTabs.tpl.js +15 -0
  200. package/layout/index.js +40 -0
  201. package/list/ListDetailShell/ListDetailShell.css.js +128 -0
  202. package/list/ListDetailShell/ListDetailShell.js +72 -0
  203. package/list/ListDetailShell/ListDetailShell.tpl.js +36 -0
  204. package/list/ListItem/ListItem.css.js +111 -0
  205. package/list/ListItem/ListItem.js +66 -0
  206. package/list/ListItem/ListItem.tpl.js +18 -0
  207. package/locale/index.js +503 -0
  208. package/manifest/component-registry.js +2446 -0
  209. package/manifest/graph-schema.js +285 -0
  210. package/manifest/index.js +6 -0
  211. package/manifest/project-schema-catalog.js +246 -0
  212. package/manifest/rule-catalog.js +201 -0
  213. package/manifest/theme-catalog.js +2149 -0
  214. package/manifest/ui-schema-catalog.js +334 -0
  215. package/menu/ContextMenu/ContextMenu.css.js +61 -0
  216. package/menu/ContextMenu/ContextMenu.js +82 -0
  217. package/menu/ContextMenu/ContextMenu.tpl.js +19 -0
  218. package/navigation/QuickOpen/QuickOpen.css.js +92 -0
  219. package/navigation/QuickOpen/QuickOpen.js +185 -0
  220. package/navigation/QuickOpen/QuickOpen.tpl.js +15 -0
  221. package/navigation/quick-open-utils.js +101 -0
  222. package/node/CtrlItem/CtrlItem.css.js +41 -0
  223. package/node/CtrlItem/CtrlItem.js +24 -0
  224. package/node/CtrlItem/CtrlItem.tpl.js +17 -0
  225. package/node/GraphFrame/GraphFrame.css.js +66 -0
  226. package/node/GraphFrame/GraphFrame.js +32 -0
  227. package/node/GraphFrame/GraphFrame.tpl.js +13 -0
  228. package/node/GraphNode/GraphNode.css.js +815 -0
  229. package/node/GraphNode/GraphNode.js +173 -0
  230. package/node/GraphNode/GraphNode.tpl.js +33 -0
  231. package/node/NodeCallout/NodeCallout.css.js +91 -0
  232. package/node/NodeCallout/NodeCallout.js +281 -0
  233. package/node/NodeCallout/NodeCallout.tpl.js +8 -0
  234. package/node/NodeSocket/NodeSocket.css.js +68 -0
  235. package/node/NodeSocket/NodeSocket.js +26 -0
  236. package/node/NodeSocket/NodeSocket.tpl.js +7 -0
  237. package/node/PortItem/PortItem.css.js +93 -0
  238. package/node/PortItem/PortItem.js +87 -0
  239. package/node/PortItem/PortItem.tpl.js +10 -0
  240. package/package.json +165 -0
  241. package/palette/PaletteBrowser/PaletteBrowser.css.js +143 -0
  242. package/palette/PaletteBrowser/PaletteBrowser.js +152 -0
  243. package/palette/PaletteBrowser/PaletteBrowser.tpl.js +23 -0
  244. package/plugins/History.js +408 -0
  245. package/plugins/Readonly.js +60 -0
  246. package/rules/symbiote-3x.json +170 -0
  247. package/schemas/component-descriptor-v1.json +91 -0
  248. package/schemas/component-descriptor-v2.json +145 -0
  249. package/schemas/graph-model-v1.json +179 -0
  250. package/schemas/graph-v1.json +91 -0
  251. package/schemas/project-package-v1.json +102 -0
  252. package/schemas/project-transaction-v1.json +114 -0
  253. package/schemas/runtime-ui-v1.json +80 -0
  254. package/schemas/theme-rule-block-v1.json +73 -0
  255. package/shapes/CircleShape.js +79 -0
  256. package/shapes/CommentShape.js +35 -0
  257. package/shapes/DiamondShape.js +130 -0
  258. package/shapes/NodeShape.js +79 -0
  259. package/shapes/PillShape.js +91 -0
  260. package/shapes/RectShape.js +84 -0
  261. package/shapes/SVGShape.js +525 -0
  262. package/shapes/index.js +63 -0
  263. package/surface/Card/Card.css.js +57 -0
  264. package/surface/Card/Card.js +17 -0
  265. package/surface/Card/Card.tpl.js +3 -0
  266. package/themes/Palette.js +30 -0
  267. package/themes/Skin.js +113 -0
  268. package/themes/Theme.js +82 -0
  269. package/themes/carbon.js +135 -0
  270. package/themes/dark.js +140 -0
  271. package/themes/default-dark.js +714 -0
  272. package/themes/default-provider.css +635 -0
  273. package/themes/default-provider.js +718 -0
  274. package/themes/ebook.js +136 -0
  275. package/themes/grey.js +137 -0
  276. package/themes/light.js +139 -0
  277. package/themes/neon.js +138 -0
  278. package/themes/pcb.js +273 -0
  279. package/themes/synthwave.js +138 -0
  280. package/tokens/base.json +29 -0
  281. package/tokens/themes/carbon.json +11 -0
  282. package/tokens/themes/dark.json +12 -0
  283. package/tokens/themes/default-dark.json +1543 -0
  284. package/tokens/themes/default-provider.json +1543 -0
  285. package/tokens/themes/ebook.json +11 -0
  286. package/tokens/themes/grey.json +11 -0
  287. package/tokens/themes/light.json +12 -0
  288. package/tokens/themes/neon.json +11 -0
  289. package/tokens/themes/pcb.json +11 -0
  290. package/tokens/themes/synthwave.json +11 -0
  291. package/toolbar/QuickToolbar/QuickToolbar.css.js +152 -0
  292. package/toolbar/QuickToolbar/QuickToolbar.js +529 -0
  293. package/toolbar/QuickToolbar/QuickToolbar.tpl.js +34 -0
  294. package/tree/TreePanel/TreePanel.css.js +112 -0
  295. package/tree/TreePanel/TreePanel.js +147 -0
  296. package/tree/TreePanel/TreePanel.tpl.js +18 -0
  297. package/tree/TreeView/TreeView.css.js +122 -0
  298. package/tree/TreeView/TreeView.js +365 -0
  299. package/tree/TreeView/TreeView.tpl.js +10 -0
  300. package/ui/dialogs.js +221 -0
  301. package/ui/host-adapters.js +114 -0
  302. package/ui/index.js +660 -0
  303. package/ui/locale.js +50 -0
  304. package/ui/overlay-stack.js +89 -0
  305. package/ui/shared-styles.js +26 -0
  306. package/webmcp.js +37 -0
  307. package/xr/deep-graph.js +646 -0
  308. package/xr/emulation.js +198 -0
  309. package/xr/gesture.js +228 -0
  310. package/xr/html-canvas-renderer.js +472 -0
  311. package/xr/index.js +15 -0
  312. package/xr/layout-projection.js +1046 -0
  313. package/xr/panel-frame.js +128 -0
  314. package/xr/panel-host.js +267 -0
  315. package/xr/pointer.js +258 -0
  316. package/xr/scene-controller.js +242 -0
  317. package/xr/spatial-scene.js +212 -0
  318. package/xr/theme-bridge.js +105 -0
  319. package/xr/three-webxr-adapter.js +3439 -0
  320. package/xr/webgl-layer-renderer.js +419 -0
  321. package/xr/webxr.js +679 -0
  322. package/xr/workbench.js +516 -0
@@ -0,0 +1,91 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://rnd-pro.github.io/symbiote-node/schemas/component-descriptor-v1.json",
4
+ "title": "Symbiote Node Component Descriptor",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["tagName", "className", "module", "specifier", "importKind", "category", "description"],
8
+ "properties": {
9
+ "tagName": { "type": "string", "pattern": "^[a-z][a-z0-9]*(-[a-z0-9]+)+$" },
10
+ "className": { "type": "string", "minLength": 1 },
11
+ "module": { "type": "string", "minLength": 1 },
12
+ "specifier": { "type": "string", "minLength": 1 },
13
+ "exportName": { "type": ["string", "null"] },
14
+ "importKind": { "enum": ["named", "side-effect"] },
15
+ "category": { "type": "string", "minLength": 1 },
16
+ "description": { "type": "string", "minLength": 1 },
17
+ "internal": { "type": "boolean" },
18
+ "contract": { "$ref": "#/$defs/componentContract" }
19
+ },
20
+ "$defs": {
21
+ "componentContract": {
22
+ "type": "object",
23
+ "additionalProperties": false,
24
+ "properties": {
25
+ "status": { "enum": ["draft", "stable"] },
26
+ "schemaVersion": { "const": "component-descriptor-v1" },
27
+ "dataSchema": { "type": "string" },
28
+ "capabilities": {
29
+ "type": "array",
30
+ "items": { "type": "string", "minLength": 1 },
31
+ "uniqueItems": true
32
+ },
33
+ "properties": {
34
+ "type": "array",
35
+ "items": { "$ref": "#/$defs/member" }
36
+ },
37
+ "attributes": {
38
+ "type": "array",
39
+ "items": { "$ref": "#/$defs/member" }
40
+ },
41
+ "methods": {
42
+ "type": "array",
43
+ "items": { "$ref": "#/$defs/member" }
44
+ },
45
+ "events": {
46
+ "type": "array",
47
+ "items": { "$ref": "#/$defs/event" }
48
+ },
49
+ "slots": {
50
+ "type": "array",
51
+ "items": { "$ref": "#/$defs/member" }
52
+ },
53
+ "cssParts": {
54
+ "type": "array",
55
+ "items": { "$ref": "#/$defs/member" }
56
+ },
57
+ "themeAliases": {
58
+ "type": "array",
59
+ "items": { "type": "string", "minLength": 1 },
60
+ "uniqueItems": true
61
+ },
62
+ "notes": { "type": "string" }
63
+ }
64
+ },
65
+ "member": {
66
+ "type": "object",
67
+ "additionalProperties": false,
68
+ "required": ["name"],
69
+ "properties": {
70
+ "name": { "type": "string", "minLength": 1 },
71
+ "type": { "type": "string" },
72
+ "description": { "type": "string" },
73
+ "required": { "type": "boolean" },
74
+ "readonly": { "type": "boolean" }
75
+ }
76
+ },
77
+ "event": {
78
+ "type": "object",
79
+ "additionalProperties": false,
80
+ "required": ["name"],
81
+ "properties": {
82
+ "name": { "type": "string", "minLength": 1 },
83
+ "description": { "type": "string" },
84
+ "detail": {
85
+ "type": "array",
86
+ "items": { "$ref": "#/$defs/member" }
87
+ }
88
+ }
89
+ }
90
+ }
91
+ }
@@ -0,0 +1,145 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://rnd-pro.github.io/symbiote-ui/schemas/component-descriptor-v2.json",
4
+ "title": "Symbiote UI Component Descriptor",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["tagName", "className", "module", "specifier", "importKind", "category", "description"],
8
+ "properties": {
9
+ "tagName": { "type": "string", "pattern": "^[a-z][a-z0-9]*(-[a-z0-9]+)+$" },
10
+ "className": { "type": "string", "minLength": 1 },
11
+ "module": { "type": "string", "minLength": 1 },
12
+ "specifier": { "type": "string", "minLength": 1 },
13
+ "exportName": { "type": ["string", "null"] },
14
+ "importKind": { "enum": ["named", "side-effect"] },
15
+ "category": { "type": "string", "minLength": 1 },
16
+ "description": { "type": "string", "minLength": 1 },
17
+ "internal": { "type": "boolean" },
18
+ "contract": { "$ref": "#/$defs/componentContract" }
19
+ },
20
+ "$defs": {
21
+ "componentContract": {
22
+ "type": "object",
23
+ "additionalProperties": false,
24
+ "properties": {
25
+ "status": { "enum": ["draft", "stable"] },
26
+ "schemaVersion": { "const": "component-descriptor-v2" },
27
+ "dataSchema": { "type": "string" },
28
+ "capabilities": {
29
+ "type": "array",
30
+ "items": { "type": "string", "minLength": 1 },
31
+ "uniqueItems": true
32
+ },
33
+ "ssr": { "$ref": "#/$defs/ssrContract" },
34
+ "webmcp": { "$ref": "#/$defs/webMcpContract" },
35
+ "properties": {
36
+ "type": "array",
37
+ "items": { "$ref": "#/$defs/member" }
38
+ },
39
+ "attributes": {
40
+ "type": "array",
41
+ "items": { "$ref": "#/$defs/member" }
42
+ },
43
+ "methods": {
44
+ "type": "array",
45
+ "items": { "$ref": "#/$defs/member" }
46
+ },
47
+ "events": {
48
+ "type": "array",
49
+ "items": { "$ref": "#/$defs/event" }
50
+ },
51
+ "slots": {
52
+ "type": "array",
53
+ "items": { "$ref": "#/$defs/member" }
54
+ },
55
+ "cssParts": {
56
+ "type": "array",
57
+ "items": { "$ref": "#/$defs/member" }
58
+ },
59
+ "themeAliases": {
60
+ "type": "array",
61
+ "items": { "type": "string", "minLength": 1 },
62
+ "uniqueItems": true
63
+ },
64
+ "notes": { "type": "string" }
65
+ }
66
+ },
67
+ "ssrContract": {
68
+ "type": "object",
69
+ "additionalProperties": false,
70
+ "required": ["mode"],
71
+ "properties": {
72
+ "mode": {
73
+ "enum": ["node-safe", "ssr-entry-safe", "jsda-ssr-renderable", "hydrate-only", "client-only"]
74
+ },
75
+ "importSafe": { "type": "boolean" },
76
+ "jsdaRenderable": { "type": "boolean" },
77
+ "requiresDom": { "type": "boolean" },
78
+ "browserApis": {
79
+ "type": "array",
80
+ "items": { "type": "string", "minLength": 1 },
81
+ "uniqueItems": true
82
+ },
83
+ "notes": { "type": "string" }
84
+ }
85
+ },
86
+ "webMcpContract": {
87
+ "type": "object",
88
+ "additionalProperties": false,
89
+ "properties": {
90
+ "documentation": { "type": "string" },
91
+ "tools": {
92
+ "type": "array",
93
+ "items": { "$ref": "#/$defs/webMcpTool" },
94
+ "uniqueItems": true
95
+ }
96
+ }
97
+ },
98
+ "webMcpTool": {
99
+ "type": "object",
100
+ "additionalProperties": false,
101
+ "required": ["name", "description", "inputSchema"],
102
+ "properties": {
103
+ "name": { "type": "string", "minLength": 1 },
104
+ "description": { "type": "string", "minLength": 1 },
105
+ "inputSchema": { "type": "object", "additionalProperties": true },
106
+ "annotations": { "type": "object", "additionalProperties": true },
107
+ "exposedTo": {
108
+ "type": "array",
109
+ "items": { "enum": ["agent", "assistant", "host"] },
110
+ "uniqueItems": true
111
+ },
112
+ "visibilityDeps": {
113
+ "type": "array",
114
+ "items": { "type": "string", "minLength": 1 },
115
+ "uniqueItems": true
116
+ }
117
+ }
118
+ },
119
+ "member": {
120
+ "type": "object",
121
+ "additionalProperties": false,
122
+ "required": ["name"],
123
+ "properties": {
124
+ "name": { "type": "string", "minLength": 1 },
125
+ "type": { "type": "string" },
126
+ "description": { "type": "string" },
127
+ "required": { "type": "boolean" },
128
+ "readonly": { "type": "boolean" }
129
+ }
130
+ },
131
+ "event": {
132
+ "type": "object",
133
+ "additionalProperties": false,
134
+ "required": ["name"],
135
+ "properties": {
136
+ "name": { "type": "string", "minLength": 1 },
137
+ "description": { "type": "string" },
138
+ "detail": {
139
+ "type": "array",
140
+ "items": { "$ref": "#/$defs/member" }
141
+ }
142
+ }
143
+ }
144
+ }
145
+ }
@@ -0,0 +1,179 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://rnd-pro.github.io/symbiote-node/schemas/graph-model-v1.json",
4
+ "title": "Symbiote Graph Model",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["version", "nodes"],
8
+ "properties": {
9
+ "version": { "const": "graph-model-v1" },
10
+ "metadata": {
11
+ "type": "object",
12
+ "additionalProperties": true
13
+ },
14
+ "nodes": {
15
+ "type": "array",
16
+ "items": { "$ref": "#/$defs/node" },
17
+ "uniqueItems": true
18
+ },
19
+ "edges": {
20
+ "type": "array",
21
+ "items": { "$ref": "#/$defs/edge" },
22
+ "uniqueItems": true
23
+ },
24
+ "views": {
25
+ "type": "object",
26
+ "additionalProperties": { "$ref": "#/$defs/view" }
27
+ },
28
+ "theme": { "$ref": "#/$defs/themeRef" }
29
+ },
30
+ "$defs": {
31
+ "layout": {
32
+ "type": "object",
33
+ "additionalProperties": true,
34
+ "properties": {
35
+ "x": { "type": "number" },
36
+ "y": { "type": "number" },
37
+ "w": { "type": "number" },
38
+ "h": { "type": "number" },
39
+ "basis": { "type": "string" }
40
+ }
41
+ },
42
+ "port": {
43
+ "type": "object",
44
+ "required": ["name"],
45
+ "additionalProperties": true,
46
+ "properties": {
47
+ "name": { "type": "string", "minLength": 1 },
48
+ "type": { "type": "string", "minLength": 1 },
49
+ "required": { "type": "boolean" },
50
+ "label": { "type": "string" }
51
+ }
52
+ },
53
+ "flow": {
54
+ "type": "object",
55
+ "additionalProperties": true,
56
+ "properties": {
57
+ "inputs": {
58
+ "type": "array",
59
+ "items": { "$ref": "#/$defs/port" }
60
+ },
61
+ "outputs": {
62
+ "type": "array",
63
+ "items": { "$ref": "#/$defs/port" }
64
+ }
65
+ }
66
+ },
67
+ "design": {
68
+ "type": "object",
69
+ "additionalProperties": true,
70
+ "properties": {
71
+ "component": { "type": "string", "minLength": 1 },
72
+ "variant": { "type": "string", "minLength": 1 },
73
+ "themeScope": { "type": "string", "minLength": 1 },
74
+ "layout": { "$ref": "#/$defs/layout" }
75
+ }
76
+ },
77
+ "node": {
78
+ "type": "object",
79
+ "required": ["id", "kind"],
80
+ "additionalProperties": true,
81
+ "properties": {
82
+ "id": { "type": "string", "minLength": 1 },
83
+ "kind": { "type": "string", "minLength": 1 },
84
+ "label": { "type": "string" },
85
+ "parentId": { "type": "string", "minLength": 1 },
86
+ "flow": { "$ref": "#/$defs/flow" },
87
+ "params": {
88
+ "type": "object",
89
+ "additionalProperties": true
90
+ },
91
+ "design": { "$ref": "#/$defs/design" },
92
+ "children": {
93
+ "type": "array",
94
+ "items": { "type": "string", "minLength": 1 }
95
+ },
96
+ "state": {
97
+ "type": "object",
98
+ "additionalProperties": true
99
+ },
100
+ "themeScope": { "type": "string", "minLength": 1 },
101
+ "metadata": {
102
+ "type": "object",
103
+ "additionalProperties": true
104
+ }
105
+ }
106
+ },
107
+ "endpoint": {
108
+ "type": "object",
109
+ "required": ["nodeId", "port"],
110
+ "additionalProperties": true,
111
+ "properties": {
112
+ "nodeId": { "type": "string", "minLength": 1 },
113
+ "port": { "type": "string", "minLength": 1 }
114
+ }
115
+ },
116
+ "edge": {
117
+ "type": "object",
118
+ "additionalProperties": true,
119
+ "required": ["source", "target"],
120
+ "properties": {
121
+ "id": { "type": "string", "minLength": 1 },
122
+ "kind": { "type": "string", "minLength": 1 },
123
+ "source": { "$ref": "#/$defs/endpoint" },
124
+ "target": { "$ref": "#/$defs/endpoint" },
125
+ "params": {
126
+ "type": "object",
127
+ "additionalProperties": true
128
+ },
129
+ "metadata": {
130
+ "type": "object",
131
+ "additionalProperties": true
132
+ }
133
+ }
134
+ },
135
+ "group": {
136
+ "type": "object",
137
+ "required": ["id"],
138
+ "additionalProperties": true,
139
+ "properties": {
140
+ "id": { "type": "string", "minLength": 1 },
141
+ "label": { "type": "string" },
142
+ "nodeIds": {
143
+ "type": "array",
144
+ "items": { "type": "string", "minLength": 1 }
145
+ },
146
+ "themeScope": { "type": "string", "minLength": 1 }
147
+ }
148
+ },
149
+ "view": {
150
+ "type": "object",
151
+ "additionalProperties": true,
152
+ "properties": {
153
+ "kind": { "type": "string", "minLength": 1 },
154
+ "roots": {
155
+ "type": "array",
156
+ "items": { "type": "string", "minLength": 1 }
157
+ },
158
+ "groups": {
159
+ "type": "array",
160
+ "items": { "$ref": "#/$defs/group" }
161
+ }
162
+ }
163
+ },
164
+ "themeRef": {
165
+ "type": "object",
166
+ "additionalProperties": true,
167
+ "properties": {
168
+ "scope": { "type": "string", "minLength": 1 },
169
+ "extends": { "type": "string", "minLength": 1 },
170
+ "modifiers": {
171
+ "type": "object",
172
+ "additionalProperties": {
173
+ "type": ["number", "string", "boolean"]
174
+ }
175
+ }
176
+ }
177
+ }
178
+ }
179
+ }
@@ -0,0 +1,91 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://rnd-pro.github.io/symbiote-node/schemas/graph-v1.json",
4
+ "title": "Symbiote Node Graph",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["version", "nodes", "connections"],
8
+ "properties": {
9
+ "version": { "const": "v1" },
10
+ "metadata": {
11
+ "type": "object",
12
+ "additionalProperties": true,
13
+ "properties": {
14
+ "name": { "type": "string" },
15
+ "description": { "type": "string" },
16
+ "createdAt": { "type": "string" },
17
+ "updatedAt": { "type": "string" }
18
+ }
19
+ },
20
+ "nodes": {
21
+ "type": "array",
22
+ "items": { "$ref": "#/$defs/node" },
23
+ "uniqueItems": true
24
+ },
25
+ "connections": {
26
+ "type": "array",
27
+ "items": { "$ref": "#/$defs/connection" },
28
+ "uniqueItems": true
29
+ },
30
+ "frames": {
31
+ "type": "array",
32
+ "items": { "$ref": "#/$defs/frame" }
33
+ }
34
+ },
35
+ "$defs": {
36
+ "point": {
37
+ "type": "object",
38
+ "required": ["x", "y"],
39
+ "properties": {
40
+ "x": { "type": "number" },
41
+ "y": { "type": "number" }
42
+ },
43
+ "additionalProperties": false
44
+ },
45
+ "node": {
46
+ "type": "object",
47
+ "required": ["id", "type"],
48
+ "additionalProperties": true,
49
+ "properties": {
50
+ "id": { "type": "string", "minLength": 1 },
51
+ "type": { "type": "string", "minLength": 1 },
52
+ "label": { "type": "string" },
53
+ "position": { "$ref": "#/$defs/point" },
54
+ "size": { "$ref": "#/$defs/point" },
55
+ "params": { "type": "object", "additionalProperties": true },
56
+ "inputs": { "type": "array", "items": { "type": "string" } },
57
+ "outputs": { "type": "array", "items": { "type": "string" } }
58
+ }
59
+ },
60
+ "connection": {
61
+ "type": "object",
62
+ "required": ["id", "source", "target"],
63
+ "additionalProperties": false,
64
+ "properties": {
65
+ "id": { "type": "string", "minLength": 1 },
66
+ "source": { "$ref": "#/$defs/endpoint" },
67
+ "target": { "$ref": "#/$defs/endpoint" },
68
+ "metadata": { "type": "object", "additionalProperties": true }
69
+ }
70
+ },
71
+ "endpoint": {
72
+ "type": "object",
73
+ "required": ["nodeId", "socket"],
74
+ "additionalProperties": false,
75
+ "properties": {
76
+ "nodeId": { "type": "string", "minLength": 1 },
77
+ "socket": { "type": "string", "minLength": 1 }
78
+ }
79
+ },
80
+ "frame": {
81
+ "type": "object",
82
+ "required": ["id"],
83
+ "additionalProperties": true,
84
+ "properties": {
85
+ "id": { "type": "string", "minLength": 1 },
86
+ "label": { "type": "string" },
87
+ "nodeIds": { "type": "array", "items": { "type": "string" } }
88
+ }
89
+ }
90
+ }
91
+ }
@@ -0,0 +1,102 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://rnd-pro.github.io/symbiote-node/schemas/project-package-v1.json",
4
+ "title": "Symbiote Project Package",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["version", "id", "entry", "graphs", "layouts", "themes"],
8
+ "properties": {
9
+ "version": { "const": "project-package-v1" },
10
+ "id": { "type": "string", "minLength": 1 },
11
+ "name": { "type": "string" },
12
+ "entry": { "$ref": "#/$defs/entry" },
13
+ "packs": {
14
+ "type": "array",
15
+ "items": { "$ref": "#/$defs/pack" },
16
+ "uniqueItems": true
17
+ },
18
+ "graphs": {
19
+ "type": "object",
20
+ "minProperties": 1,
21
+ "additionalProperties": { "$ref": "graph-model-v1.json" }
22
+ },
23
+ "layouts": {
24
+ "type": "object",
25
+ "minProperties": 1,
26
+ "additionalProperties": { "$ref": "runtime-ui-v1.json" }
27
+ },
28
+ "themes": {
29
+ "type": "object",
30
+ "minProperties": 1,
31
+ "additionalProperties": { "$ref": "#/$defs/themeRef" }
32
+ },
33
+ "dataSources": {
34
+ "type": "object",
35
+ "additionalProperties": { "$ref": "#/$defs/dataSource" }
36
+ },
37
+ "agents": { "$ref": "#/$defs/agents" }
38
+ },
39
+ "$defs": {
40
+ "entry": {
41
+ "type": "object",
42
+ "additionalProperties": false,
43
+ "required": ["graph", "layout", "theme"],
44
+ "properties": {
45
+ "graph": { "type": "string", "minLength": 1 },
46
+ "layout": { "type": "string", "minLength": 1 },
47
+ "theme": { "type": "string", "minLength": 1 }
48
+ }
49
+ },
50
+ "pack": {
51
+ "type": "object",
52
+ "additionalProperties": true,
53
+ "required": ["id"],
54
+ "properties": {
55
+ "id": { "type": "string", "minLength": 1 },
56
+ "kind": {
57
+ "enum": ["provider", "domain-pack", "data-provider", "automation-pack", "theme-pack"]
58
+ },
59
+ "version": { "type": "string" }
60
+ }
61
+ },
62
+ "themeRef": {
63
+ "type": "object",
64
+ "additionalProperties": true,
65
+ "properties": {
66
+ "extends": { "type": "string", "minLength": 1 },
67
+ "modifiers": {
68
+ "type": "object",
69
+ "additionalProperties": {
70
+ "type": ["number", "string", "boolean"]
71
+ }
72
+ }
73
+ }
74
+ },
75
+ "dataSource": {
76
+ "type": "object",
77
+ "additionalProperties": true,
78
+ "required": ["kind"],
79
+ "properties": {
80
+ "kind": { "type": "string", "minLength": 1 },
81
+ "graph": { "type": "string", "minLength": 1 },
82
+ "schema": { "type": "string", "minLength": 1 }
83
+ }
84
+ },
85
+ "agents": {
86
+ "type": "object",
87
+ "additionalProperties": false,
88
+ "properties": {
89
+ "rules": {
90
+ "type": "array",
91
+ "items": { "type": "string", "minLength": 1 },
92
+ "uniqueItems": true
93
+ },
94
+ "allowedTransactions": {
95
+ "type": "array",
96
+ "items": { "type": "string", "minLength": 1 },
97
+ "uniqueItems": true
98
+ }
99
+ }
100
+ }
101
+ }
102
+ }