@synergy-design-system/mcp 2.14.1 → 3.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 (525) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +826 -303
  3. package/dist/bin/start.js +57 -6
  4. package/dist/middleware/compose.d.ts +15 -0
  5. package/dist/middleware/compose.js +10 -0
  6. package/dist/middleware/compression.d.ts +19 -0
  7. package/dist/middleware/compression.js +35 -0
  8. package/dist/middleware/error-handler.d.ts +13 -0
  9. package/dist/middleware/error-handler.js +42 -0
  10. package/dist/middleware/index.d.ts +9 -0
  11. package/dist/middleware/index.js +8 -0
  12. package/dist/middleware/logging.d.ts +14 -0
  13. package/dist/middleware/logging.js +64 -0
  14. package/dist/middleware/types.d.ts +20 -0
  15. package/dist/middleware/types.js +4 -0
  16. package/dist/resources/asset-list.d.ts +7 -0
  17. package/dist/resources/asset-list.js +34 -0
  18. package/dist/resources/component-cluster-list.d.ts +7 -0
  19. package/dist/resources/component-cluster-list.js +30 -0
  20. package/dist/resources/component-list.d.ts +7 -0
  21. package/dist/resources/component-list.js +31 -0
  22. package/dist/resources/index.d.ts +5 -0
  23. package/dist/resources/index.js +5 -0
  24. package/dist/resources/styles-list.d.ts +7 -0
  25. package/dist/resources/styles-list.js +31 -0
  26. package/dist/resources/templates-list.d.ts +7 -0
  27. package/dist/resources/templates-list.js +28 -0
  28. package/dist/server.js +5 -1
  29. package/dist/tools/asset-info.js +41 -85
  30. package/dist/tools/asset-list.js +22 -31
  31. package/dist/tools/component-cluster-list.d.ts +6 -0
  32. package/dist/tools/component-cluster-list.js +30 -0
  33. package/dist/tools/component-info.js +38 -21
  34. package/dist/tools/component-list.js +35 -30
  35. package/dist/tools/davinci-migration-info.d.ts +2 -0
  36. package/dist/tools/davinci-migration-info.js +21 -0
  37. package/dist/tools/davinci-migration-list.d.ts +2 -0
  38. package/dist/tools/davinci-migration-list.js +20 -0
  39. package/dist/tools/index.d.ts +6 -5
  40. package/dist/tools/index.js +6 -5
  41. package/dist/tools/migration-info.js +12 -37
  42. package/dist/tools/migration-list.js +7 -13
  43. package/dist/tools/setup.d.ts +6 -0
  44. package/dist/tools/setup.js +31 -0
  45. package/dist/tools/styles-info.d.ts +1 -2
  46. package/dist/tools/styles-info.js +24 -20
  47. package/dist/tools/styles-list.js +19 -33
  48. package/dist/tools/template-info.js +19 -20
  49. package/dist/tools/template-list.d.ts +1 -1
  50. package/dist/tools/template-list.js +17 -32
  51. package/dist/tools/{tokens.d.ts → token-info.d.ts} +2 -2
  52. package/dist/tools/token-info.js +31 -0
  53. package/dist/tools/tokens-list.d.ts +6 -0
  54. package/dist/tools/tokens-list.js +52 -0
  55. package/dist/transports/http.d.ts +14 -0
  56. package/dist/transports/http.js +157 -0
  57. package/dist/transports/index.d.ts +23 -0
  58. package/dist/transports/index.js +23 -0
  59. package/dist/transports/stdio.d.ts +10 -0
  60. package/dist/transports/stdio.js +21 -0
  61. package/dist/types/tool-response.d.ts +13 -0
  62. package/dist/types/tool-response.js +7 -0
  63. package/dist/utilities/cli.d.ts +27 -0
  64. package/dist/utilities/cli.js +170 -0
  65. package/dist/utilities/compression.d.ts +7 -0
  66. package/dist/utilities/compression.js +45 -0
  67. package/dist/utilities/config.d.ts +122 -80
  68. package/dist/utilities/config.js +212 -81
  69. package/dist/utilities/davinci.d.ts +12 -0
  70. package/dist/utilities/davinci.js +55 -0
  71. package/dist/utilities/index.d.ts +10 -10
  72. package/dist/utilities/index.js +10 -10
  73. package/dist/utilities/local-file-logger.d.ts +2 -0
  74. package/dist/utilities/local-file-logger.js +22 -0
  75. package/dist/utilities/logger.d.ts +12 -0
  76. package/dist/utilities/logger.js +30 -0
  77. package/dist/utilities/logging-context.d.ts +8 -0
  78. package/dist/utilities/logging-context.js +7 -0
  79. package/dist/utilities/logging-service.d.ts +2 -0
  80. package/dist/utilities/logging-service.js +24 -0
  81. package/dist/utilities/logging-types.d.ts +19 -0
  82. package/dist/utilities/metadata.d.ts +10 -17
  83. package/dist/utilities/metadata.js +34 -51
  84. package/dist/utilities/migration.d.ts +2 -1
  85. package/dist/utilities/migration.js +33 -30
  86. package/dist/utilities/rules.d.ts +8 -0
  87. package/dist/utilities/rules.js +37 -0
  88. package/dist/utilities/server.d.ts +7 -0
  89. package/dist/utilities/server.js +12 -0
  90. package/dist/utilities/token-counter.d.ts +14 -0
  91. package/dist/utilities/token-counter.js +53 -0
  92. package/package.json +18 -28
  93. package/rules/asset-info.md +10 -0
  94. package/rules/asset-list.md +10 -0
  95. package/rules/component-cluster-list.md +5 -0
  96. package/{metadata/static/angular/index.md → rules/component-info-angular.md} +2 -1
  97. package/{metadata/static/react/index.md → rules/component-info-react.md} +2 -1
  98. package/{metadata/static/vue/index.md → rules/component-info-vue.md} +4 -1
  99. package/{metadata/static/component-list/index.md → rules/component-list.md} +5 -7
  100. package/rules/styles-info.md +9 -0
  101. package/{metadata/static/styles/index.md → rules/styles-list.md} +0 -2
  102. package/{metadata/static/templates/index.md → rules/template-info.md} +0 -1
  103. package/rules/template-list.md +7 -0
  104. package/dist/bin/create-checksum.d.ts +0 -2
  105. package/dist/bin/create-checksum.js +0 -24
  106. package/dist/build/assets.d.ts +0 -4
  107. package/dist/build/assets.js +0 -57
  108. package/dist/build/build.js +0 -35
  109. package/dist/build/components.d.ts +0 -4
  110. package/dist/build/components.js +0 -133
  111. package/dist/build/fonts.d.ts +0 -4
  112. package/dist/build/fonts.js +0 -49
  113. package/dist/build/frameworks.d.ts +0 -4
  114. package/dist/build/frameworks.js +0 -61
  115. package/dist/build/static.d.ts +0 -4
  116. package/dist/build/static.js +0 -65
  117. package/dist/build/styles.d.ts +0 -4
  118. package/dist/build/styles.js +0 -58
  119. package/dist/build/tokens.d.ts +0 -4
  120. package/dist/build/tokens.js +0 -59
  121. package/dist/tools/davinci-migration.d.ts +0 -3
  122. package/dist/tools/davinci-migration.js +0 -66
  123. package/dist/tools/font-info.d.ts +0 -6
  124. package/dist/tools/font-info.js +0 -35
  125. package/dist/tools/framework-info.d.ts +0 -7
  126. package/dist/tools/framework-info.js +0 -58
  127. package/dist/tools/tokens.js +0 -24
  128. package/dist/tools/version.d.ts +0 -7
  129. package/dist/tools/version.js +0 -53
  130. package/dist/utilities/assets.d.ts +0 -2
  131. package/dist/utilities/assets.js +0 -3
  132. package/dist/utilities/checksum.d.ts +0 -36
  133. package/dist/utilities/checksum.js +0 -94
  134. package/dist/utilities/components.d.ts +0 -25
  135. package/dist/utilities/components.js +0 -86
  136. package/dist/utilities/file.d.ts +0 -12
  137. package/dist/utilities/file.js +0 -31
  138. package/dist/utilities/fonts.d.ts +0 -2
  139. package/dist/utilities/fonts.js +0 -3
  140. package/dist/utilities/stdio.d.ts +0 -14
  141. package/dist/utilities/stdio.js +0 -60
  142. package/dist/utilities/storybook/build-docs.d.ts +0 -2
  143. package/dist/utilities/storybook/build-docs.js +0 -43
  144. package/dist/utilities/storybook/configs.d.ts +0 -13
  145. package/dist/utilities/storybook/configs.js +0 -85
  146. package/dist/utilities/storybook/docs-scraper.d.ts +0 -26
  147. package/dist/utilities/storybook/docs-scraper.js +0 -96
  148. package/dist/utilities/storybook/index.d.ts +0 -5
  149. package/dist/utilities/storybook/index.js +0 -4
  150. package/dist/utilities/storybook/scraper.d.ts +0 -14
  151. package/dist/utilities/storybook/scraper.js +0 -243
  152. package/dist/utilities/storybook/storybook-manager.d.ts +0 -29
  153. package/dist/utilities/storybook/storybook-manager.js +0 -138
  154. package/dist/utilities/storybook/types.d.ts +0 -22
  155. package/dist/utilities/storybook/types.js +0 -1
  156. package/dist/utilities/styles.d.ts +0 -6
  157. package/dist/utilities/styles.js +0 -24
  158. package/dist/utilities/templates.d.ts +0 -12
  159. package/dist/utilities/templates.js +0 -28
  160. package/dist/utilities/tokens.d.ts +0 -1
  161. package/dist/utilities/tokens.js +0 -21
  162. package/dist/utilities/version.d.ts +0 -28
  163. package/dist/utilities/version.js +0 -21
  164. package/metadata/checksum.txt +0 -1
  165. package/metadata/davinci-migration/migration-guide.md +0 -1859
  166. package/metadata/packages/angular/LIMITATIONS.md +0 -32
  167. package/metadata/packages/angular/README.md +0 -393
  168. package/metadata/packages/assets/BREAKING_CHANGES.md +0 -305
  169. package/metadata/packages/assets/CHANGELOG.md +0 -364
  170. package/metadata/packages/assets/README.md +0 -103
  171. package/metadata/packages/components/components/syn-accordion/component.angular.ts +0 -80
  172. package/metadata/packages/components/components/syn-accordion/component.react.ts +0 -30
  173. package/metadata/packages/components/components/syn-accordion/component.styles.ts +0 -15
  174. package/metadata/packages/components/components/syn-accordion/component.ts +0 -111
  175. package/metadata/packages/components/components/syn-accordion/component.vue +0 -64
  176. package/metadata/packages/components/components/syn-alert/component.angular.ts +0 -169
  177. package/metadata/packages/components/components/syn-alert/component.react.ts +0 -60
  178. package/metadata/packages/components/components/syn-alert/component.styles.ts +0 -203
  179. package/metadata/packages/components/components/syn-alert/component.ts +0 -322
  180. package/metadata/packages/components/components/syn-alert/component.vue +0 -135
  181. package/metadata/packages/components/components/syn-badge/component.angular.ts +0 -53
  182. package/metadata/packages/components/components/syn-badge/component.custom.styles.ts +0 -62
  183. package/metadata/packages/components/components/syn-badge/component.react.ts +0 -29
  184. package/metadata/packages/components/components/syn-badge/component.styles.ts +0 -52
  185. package/metadata/packages/components/components/syn-badge/component.ts +0 -58
  186. package/metadata/packages/components/components/syn-badge/component.vue +0 -53
  187. package/metadata/packages/components/components/syn-breadcrumb/component.angular.ts +0 -58
  188. package/metadata/packages/components/components/syn-breadcrumb/component.custom.styles.ts +0 -5
  189. package/metadata/packages/components/components/syn-breadcrumb/component.react.ts +0 -32
  190. package/metadata/packages/components/components/syn-breadcrumb/component.styles.ts +0 -11
  191. package/metadata/packages/components/components/syn-breadcrumb/component.ts +0 -103
  192. package/metadata/packages/components/components/syn-breadcrumb/component.vue +0 -58
  193. package/metadata/packages/components/components/syn-breadcrumb-item/component.angular.ts +0 -88
  194. package/metadata/packages/components/components/syn-breadcrumb-item/component.custom.styles.ts +0 -78
  195. package/metadata/packages/components/components/syn-breadcrumb-item/component.react.ts +0 -37
  196. package/metadata/packages/components/components/syn-breadcrumb-item/component.styles.ts +0 -88
  197. package/metadata/packages/components/components/syn-breadcrumb-item/component.ts +0 -132
  198. package/metadata/packages/components/components/syn-breadcrumb-item/component.vue +0 -76
  199. package/metadata/packages/components/components/syn-button/component.angular.ts +0 -318
  200. package/metadata/packages/components/components/syn-button/component.custom.styles.ts +0 -245
  201. package/metadata/packages/components/components/syn-button/component.react.ts +0 -56
  202. package/metadata/packages/components/components/syn-button/component.styles.ts +0 -361
  203. package/metadata/packages/components/components/syn-button/component.ts +0 -315
  204. package/metadata/packages/components/components/syn-button/component.vue +0 -204
  205. package/metadata/packages/components/components/syn-button-group/component.angular.ts +0 -79
  206. package/metadata/packages/components/components/syn-button-group/component.custom.styles.ts +0 -5
  207. package/metadata/packages/components/components/syn-button-group/component.react.ts +0 -29
  208. package/metadata/packages/components/components/syn-button-group/component.styles.ts +0 -14
  209. package/metadata/packages/components/components/syn-button-group/component.ts +0 -171
  210. package/metadata/packages/components/components/syn-button-group/component.vue +0 -67
  211. package/metadata/packages/components/components/syn-card/component.angular.ts +0 -83
  212. package/metadata/packages/components/components/syn-card/component.custom.styles.ts +0 -60
  213. package/metadata/packages/components/components/syn-card/component.react.ts +0 -41
  214. package/metadata/packages/components/components/syn-card/component.styles.ts +0 -70
  215. package/metadata/packages/components/components/syn-card/component.ts +0 -65
  216. package/metadata/packages/components/components/syn-card/component.vue +0 -73
  217. package/metadata/packages/components/components/syn-checkbox/component.angular.ts +0 -273
  218. package/metadata/packages/components/components/syn-checkbox/component.react.ts +0 -64
  219. package/metadata/packages/components/components/syn-checkbox/component.styles.ts +0 -183
  220. package/metadata/packages/components/components/syn-checkbox/component.ts +0 -287
  221. package/metadata/packages/components/components/syn-checkbox/component.vue +0 -191
  222. package/metadata/packages/components/components/syn-combobox/component.angular.ts +0 -516
  223. package/metadata/packages/components/components/syn-combobox/component.react.ts +0 -118
  224. package/metadata/packages/components/components/syn-combobox/component.styles.ts +0 -393
  225. package/metadata/packages/components/components/syn-combobox/component.ts +0 -1684
  226. package/metadata/packages/components/components/syn-combobox/component.vue +0 -350
  227. package/metadata/packages/components/components/syn-details/component.angular.ts +0 -186
  228. package/metadata/packages/components/components/syn-details/component.react.ts +0 -65
  229. package/metadata/packages/components/components/syn-details/component.styles.ts +0 -181
  230. package/metadata/packages/components/components/syn-details/component.ts +0 -261
  231. package/metadata/packages/components/components/syn-details/component.vue +0 -136
  232. package/metadata/packages/components/components/syn-dialog/component.angular.ts +0 -201
  233. package/metadata/packages/components/components/syn-dialog/component.react.ts +0 -91
  234. package/metadata/packages/components/components/syn-dialog/component.styles.ts +0 -130
  235. package/metadata/packages/components/components/syn-dialog/component.ts +0 -367
  236. package/metadata/packages/components/components/syn-dialog/component.vue +0 -169
  237. package/metadata/packages/components/components/syn-divider/component.angular.ts +0 -55
  238. package/metadata/packages/components/components/syn-divider/component.react.ts +0 -29
  239. package/metadata/packages/components/components/syn-divider/component.styles.ts +0 -22
  240. package/metadata/packages/components/components/syn-divider/component.ts +0 -34
  241. package/metadata/packages/components/components/syn-divider/component.vue +0 -51
  242. package/metadata/packages/components/components/syn-drawer/component.angular.ts +0 -234
  243. package/metadata/packages/components/components/syn-drawer/component.custom.styles.ts +0 -78
  244. package/metadata/packages/components/components/syn-drawer/component.react.ts +0 -98
  245. package/metadata/packages/components/components/syn-drawer/component.styles.ts +0 -158
  246. package/metadata/packages/components/components/syn-drawer/component.ts +0 -489
  247. package/metadata/packages/components/components/syn-drawer/component.vue +0 -188
  248. package/metadata/packages/components/components/syn-dropdown/component.angular.ts +0 -208
  249. package/metadata/packages/components/components/syn-dropdown/component.react.ts +0 -59
  250. package/metadata/packages/components/components/syn-dropdown/component.styles.ts +0 -51
  251. package/metadata/packages/components/components/syn-dropdown/component.ts +0 -469
  252. package/metadata/packages/components/components/syn-dropdown/component.vue +0 -152
  253. package/metadata/packages/components/components/syn-file/component.angular.ts +0 -372
  254. package/metadata/packages/components/components/syn-file/component.react.ts +0 -85
  255. package/metadata/packages/components/components/syn-file/component.styles.ts +0 -197
  256. package/metadata/packages/components/components/syn-file/component.ts +0 -645
  257. package/metadata/packages/components/components/syn-file/component.vue +0 -256
  258. package/metadata/packages/components/components/syn-header/component.angular.ts +0 -149
  259. package/metadata/packages/components/components/syn-header/component.react.ts +0 -68
  260. package/metadata/packages/components/components/syn-header/component.styles.ts +0 -143
  261. package/metadata/packages/components/components/syn-header/component.ts +0 -310
  262. package/metadata/packages/components/components/syn-header/component.vue +0 -126
  263. package/metadata/packages/components/components/syn-icon/component.angular.ts +0 -115
  264. package/metadata/packages/components/components/syn-icon/component.custom.styles.ts +0 -5
  265. package/metadata/packages/components/components/syn-icon/component.react.ts +0 -41
  266. package/metadata/packages/components/components/syn-icon/component.styles.ts +0 -18
  267. package/metadata/packages/components/components/syn-icon/component.ts +0 -227
  268. package/metadata/packages/components/components/syn-icon/component.vue +0 -100
  269. package/metadata/packages/components/components/syn-icon-button/component.angular.ts +0 -185
  270. package/metadata/packages/components/components/syn-icon-button/component.custom.styles.ts +0 -79
  271. package/metadata/packages/components/components/syn-icon-button/component.react.ts +0 -42
  272. package/metadata/packages/components/components/syn-icon-button/component.styles.ts +0 -52
  273. package/metadata/packages/components/components/syn-icon-button/component.ts +0 -147
  274. package/metadata/packages/components/components/syn-icon-button/component.vue +0 -132
  275. package/metadata/packages/components/components/syn-input/component.angular.ts +0 -608
  276. package/metadata/packages/components/components/syn-input/component.custom.styles.ts +0 -278
  277. package/metadata/packages/components/components/syn-input/component.react.ts +0 -91
  278. package/metadata/packages/components/components/syn-input/component.styles.ts +0 -280
  279. package/metadata/packages/components/components/syn-input/component.ts +0 -941
  280. package/metadata/packages/components/components/syn-input/component.vue +0 -370
  281. package/metadata/packages/components/components/syn-menu/component.angular.ts +0 -52
  282. package/metadata/packages/components/components/syn-menu/component.react.ts +0 -36
  283. package/metadata/packages/components/components/syn-menu/component.styles.ts +0 -37
  284. package/metadata/packages/components/components/syn-menu/component.ts +0 -191
  285. package/metadata/packages/components/components/syn-menu/component.vue +0 -48
  286. package/metadata/packages/components/components/syn-menu-item/component.angular.ts +0 -121
  287. package/metadata/packages/components/components/syn-menu-item/component.react.ts +0 -45
  288. package/metadata/packages/components/components/syn-menu-item/component.styles.ts +0 -285
  289. package/metadata/packages/components/components/syn-menu-item/component.ts +0 -201
  290. package/metadata/packages/components/components/syn-menu-item/component.vue +0 -91
  291. package/metadata/packages/components/components/syn-menu-label/component.angular.ts +0 -48
  292. package/metadata/packages/components/components/syn-menu-label/component.react.ts +0 -35
  293. package/metadata/packages/components/components/syn-menu-label/component.styles.ts +0 -31
  294. package/metadata/packages/components/components/syn-menu-label/component.ts +0 -46
  295. package/metadata/packages/components/components/syn-menu-label/component.vue +0 -41
  296. package/metadata/packages/components/components/syn-nav-item/component.angular.ts +0 -242
  297. package/metadata/packages/components/components/syn-nav-item/component.react.ts +0 -82
  298. package/metadata/packages/components/components/syn-nav-item/component.styles.ts +0 -333
  299. package/metadata/packages/components/components/syn-nav-item/component.ts +0 -491
  300. package/metadata/packages/components/components/syn-nav-item/component.vue +0 -182
  301. package/metadata/packages/components/components/syn-optgroup/component.angular.ts +0 -79
  302. package/metadata/packages/components/components/syn-optgroup/component.react.ts +0 -41
  303. package/metadata/packages/components/components/syn-optgroup/component.styles.ts +0 -61
  304. package/metadata/packages/components/components/syn-optgroup/component.ts +0 -176
  305. package/metadata/packages/components/components/syn-optgroup/component.vue +0 -71
  306. package/metadata/packages/components/components/syn-option/component.angular.ts +0 -79
  307. package/metadata/packages/components/components/syn-option/component.react.ts +0 -37
  308. package/metadata/packages/components/components/syn-option/component.styles.ts +0 -165
  309. package/metadata/packages/components/components/syn-option/component.ts +0 -191
  310. package/metadata/packages/components/components/syn-option/component.vue +0 -71
  311. package/metadata/packages/components/components/syn-popup/component.angular.ts +0 -372
  312. package/metadata/packages/components/components/syn-popup/component.react.ts +0 -55
  313. package/metadata/packages/components/components/syn-popup/component.styles.ts +0 -70
  314. package/metadata/packages/components/components/syn-popup/component.ts +0 -582
  315. package/metadata/packages/components/components/syn-popup/component.vue +0 -233
  316. package/metadata/packages/components/components/syn-prio-nav/component.angular.ts +0 -67
  317. package/metadata/packages/components/components/syn-prio-nav/component.react.ts +0 -54
  318. package/metadata/packages/components/components/syn-prio-nav/component.styles.ts +0 -48
  319. package/metadata/packages/components/components/syn-prio-nav/component.ts +0 -288
  320. package/metadata/packages/components/components/syn-prio-nav/component.vue +0 -60
  321. package/metadata/packages/components/components/syn-progress-bar/component.angular.ts +0 -85
  322. package/metadata/packages/components/components/syn-progress-bar/component.custom.styles.ts +0 -24
  323. package/metadata/packages/components/components/syn-progress-bar/component.react.ts +0 -37
  324. package/metadata/packages/components/components/syn-progress-bar/component.styles.ts +0 -87
  325. package/metadata/packages/components/components/syn-progress-bar/component.ts +0 -67
  326. package/metadata/packages/components/components/syn-progress-bar/component.vue +0 -71
  327. package/metadata/packages/components/components/syn-progress-ring/component.angular.ts +0 -72
  328. package/metadata/packages/components/components/syn-progress-ring/component.custom.styles.ts +0 -19
  329. package/metadata/packages/components/components/syn-progress-ring/component.react.ts +0 -37
  330. package/metadata/packages/components/components/syn-progress-ring/component.styles.ts +0 -70
  331. package/metadata/packages/components/components/syn-progress-ring/component.ts +0 -83
  332. package/metadata/packages/components/components/syn-progress-ring/component.vue +0 -66
  333. package/metadata/packages/components/components/syn-radio/component.angular.ts +0 -122
  334. package/metadata/packages/components/components/syn-radio/component.react.ts +0 -48
  335. package/metadata/packages/components/components/syn-radio/component.styles.ts +0 -179
  336. package/metadata/packages/components/components/syn-radio/component.ts +0 -131
  337. package/metadata/packages/components/components/syn-radio/component.vue +0 -104
  338. package/metadata/packages/components/components/syn-radio-button/component.angular.ts +0 -123
  339. package/metadata/packages/components/components/syn-radio-button/component.react.ts +0 -49
  340. package/metadata/packages/components/components/syn-radio-button/component.styles.ts +0 -30
  341. package/metadata/packages/components/components/syn-radio-button/component.ts +0 -142
  342. package/metadata/packages/components/components/syn-radio-button/component.vue +0 -105
  343. package/metadata/packages/components/components/syn-radio-group/component.angular.ts +0 -204
  344. package/metadata/packages/components/components/syn-radio-group/component.react.ts +0 -56
  345. package/metadata/packages/components/components/syn-radio-group/component.styles.ts +0 -58
  346. package/metadata/packages/components/components/syn-radio-group/component.ts +0 -440
  347. package/metadata/packages/components/components/syn-radio-group/component.vue +0 -158
  348. package/metadata/packages/components/components/syn-range/component.angular.ts +0 -347
  349. package/metadata/packages/components/components/syn-range/component.react.ts +0 -92
  350. package/metadata/packages/components/components/syn-range/component.styles.ts +0 -310
  351. package/metadata/packages/components/components/syn-range/component.ts +0 -933
  352. package/metadata/packages/components/components/syn-range/component.vue +0 -245
  353. package/metadata/packages/components/components/syn-range-tick/component.angular.ts +0 -59
  354. package/metadata/packages/components/components/syn-range-tick/component.react.ts +0 -33
  355. package/metadata/packages/components/components/syn-range-tick/component.styles.ts +0 -34
  356. package/metadata/packages/components/components/syn-range-tick/component.ts +0 -50
  357. package/metadata/packages/components/components/syn-range-tick/component.vue +0 -57
  358. package/metadata/packages/components/components/syn-resize-observer/component.styles.ts +0 -9
  359. package/metadata/packages/components/components/syn-resize-observer/component.ts +0 -91
  360. package/metadata/packages/components/components/syn-select/component.angular.ts +0 -439
  361. package/metadata/packages/components/components/syn-select/component.react.ts +0 -101
  362. package/metadata/packages/components/components/syn-select/component.styles.ts +0 -380
  363. package/metadata/packages/components/components/syn-select/component.ts +0 -1056
  364. package/metadata/packages/components/components/syn-select/component.vue +0 -301
  365. package/metadata/packages/components/components/syn-side-nav/component.angular.ts +0 -210
  366. package/metadata/packages/components/components/syn-side-nav/component.react.ts +0 -95
  367. package/metadata/packages/components/components/syn-side-nav/component.styles.ts +0 -142
  368. package/metadata/packages/components/components/syn-side-nav/component.ts +0 -458
  369. package/metadata/packages/components/components/syn-side-nav/component.vue +0 -188
  370. package/metadata/packages/components/components/syn-spinner/component.angular.ts +0 -44
  371. package/metadata/packages/components/components/syn-spinner/component.custom.styles.ts +0 -32
  372. package/metadata/packages/components/components/syn-spinner/component.react.ts +0 -31
  373. package/metadata/packages/components/components/syn-spinner/component.styles.ts +0 -48
  374. package/metadata/packages/components/components/syn-spinner/component.ts +0 -35
  375. package/metadata/packages/components/components/syn-spinner/component.vue +0 -35
  376. package/metadata/packages/components/components/syn-switch/component.angular.ts +0 -257
  377. package/metadata/packages/components/components/syn-switch/component.react.ts +0 -63
  378. package/metadata/packages/components/components/syn-switch/component.styles.ts +0 -252
  379. package/metadata/packages/components/components/syn-switch/component.ts +0 -279
  380. package/metadata/packages/components/components/syn-switch/component.vue +0 -183
  381. package/metadata/packages/components/components/syn-tab/component.angular.ts +0 -109
  382. package/metadata/packages/components/components/syn-tab/component.custom.styles.ts +0 -94
  383. package/metadata/packages/components/components/syn-tab/component.react.ts +0 -42
  384. package/metadata/packages/components/components/syn-tab/component.styles.ts +0 -70
  385. package/metadata/packages/components/components/syn-tab/component.ts +0 -125
  386. package/metadata/packages/components/components/syn-tab/component.vue +0 -91
  387. package/metadata/packages/components/components/syn-tab-group/component.angular.ts +0 -166
  388. package/metadata/packages/components/components/syn-tab-group/component.custom.styles.ts +0 -218
  389. package/metadata/packages/components/components/syn-tab-group/component.react.ts +0 -58
  390. package/metadata/packages/components/components/syn-tab-group/component.styles.ts +0 -193
  391. package/metadata/packages/components/components/syn-tab-group/component.ts +0 -551
  392. package/metadata/packages/components/components/syn-tab-group/component.vue +0 -126
  393. package/metadata/packages/components/components/syn-tab-panel/component.angular.ts +0 -68
  394. package/metadata/packages/components/components/syn-tab-panel/component.custom.styles.ts +0 -8
  395. package/metadata/packages/components/components/syn-tab-panel/component.react.ts +0 -31
  396. package/metadata/packages/components/components/syn-tab-panel/component.styles.ts +0 -20
  397. package/metadata/packages/components/components/syn-tab-panel/component.ts +0 -60
  398. package/metadata/packages/components/components/syn-tab-panel/component.vue +0 -60
  399. package/metadata/packages/components/components/syn-tag/component.angular.ts +0 -83
  400. package/metadata/packages/components/components/syn-tag/component.custom.styles.ts +0 -121
  401. package/metadata/packages/components/components/syn-tag/component.react.ts +0 -43
  402. package/metadata/packages/components/components/syn-tag/component.styles.ts +0 -58
  403. package/metadata/packages/components/components/syn-tag/component.ts +0 -83
  404. package/metadata/packages/components/components/syn-tag/component.vue +0 -81
  405. package/metadata/packages/components/components/syn-tag-group/component.angular.ts +0 -83
  406. package/metadata/packages/components/components/syn-tag-group/component.react.ts +0 -33
  407. package/metadata/packages/components/components/syn-tag-group/component.styles.ts +0 -49
  408. package/metadata/packages/components/components/syn-tag-group/component.ts +0 -95
  409. package/metadata/packages/components/components/syn-tag-group/component.vue +0 -69
  410. package/metadata/packages/components/components/syn-textarea/component.angular.ts +0 -396
  411. package/metadata/packages/components/components/syn-textarea/component.react.ts +0 -60
  412. package/metadata/packages/components/components/syn-textarea/component.styles.ts +0 -208
  413. package/metadata/packages/components/components/syn-textarea/component.ts +0 -400
  414. package/metadata/packages/components/components/syn-textarea/component.vue +0 -244
  415. package/metadata/packages/components/components/syn-tooltip/component.angular.ts +0 -196
  416. package/metadata/packages/components/components/syn-tooltip/component.react.ts +0 -63
  417. package/metadata/packages/components/components/syn-tooltip/component.styles.ts +0 -62
  418. package/metadata/packages/components/components/syn-tooltip/component.ts +0 -312
  419. package/metadata/packages/components/components/syn-tooltip/component.vue +0 -150
  420. package/metadata/packages/components/components/syn-validate/component.angular.ts +0 -137
  421. package/metadata/packages/components/components/syn-validate/component.react.ts +0 -44
  422. package/metadata/packages/components/components/syn-validate/component.styles.ts +0 -9
  423. package/metadata/packages/components/components/syn-validate/component.ts +0 -590
  424. package/metadata/packages/components/components/syn-validate/component.vue +0 -107
  425. package/metadata/packages/components/migration/BREAKING_CHANGES.md +0 -908
  426. package/metadata/packages/components/static/CHANGELOG.md +0 -2140
  427. package/metadata/packages/components/static/LIMITATIONS.md +0 -433
  428. package/metadata/packages/components/static/README.md +0 -231
  429. package/metadata/packages/fonts/CHANGELOG.md +0 -57
  430. package/metadata/packages/fonts/README.md +0 -164
  431. package/metadata/packages/fonts/package.json +0 -72
  432. package/metadata/packages/react/LIMITATIONS.md +0 -31
  433. package/metadata/packages/react/README.md +0 -262
  434. package/metadata/packages/styles/BREAKING_CHANGES.md +0 -105
  435. package/metadata/packages/styles/CHANGELOG.md +0 -188
  436. package/metadata/packages/styles/README.md +0 -132
  437. package/metadata/packages/styles/index.css +0 -300
  438. package/metadata/packages/styles/link-list.css +0 -47
  439. package/metadata/packages/styles/link.css +0 -81
  440. package/metadata/packages/styles/tables.css +0 -132
  441. package/metadata/packages/styles/typography.css +0 -52
  442. package/metadata/packages/tokens/BREAKING_CHANGES.md +0 -180
  443. package/metadata/packages/tokens/CHANGELOG.md +0 -949
  444. package/metadata/packages/tokens/README.md +0 -435
  445. package/metadata/packages/tokens/dark.css +0 -454
  446. package/metadata/packages/tokens/index.js +0 -2224
  447. package/metadata/packages/tokens/light.css +0 -454
  448. package/metadata/packages/tokens/sick2018_dark.css +0 -454
  449. package/metadata/packages/tokens/sick2018_light.css +0 -454
  450. package/metadata/packages/tokens/sick2025_dark.css +0 -454
  451. package/metadata/packages/tokens/sick2025_light.css +0 -454
  452. package/metadata/packages/vue/LIMITATIONS.md +0 -53
  453. package/metadata/packages/vue/README.md +0 -252
  454. package/metadata/static/assets/index.md +0 -10
  455. package/metadata/static/components/index.md +0 -10
  456. package/metadata/static/components/syn-accordion/docs.md +0 -449
  457. package/metadata/static/components/syn-alert/docs.md +0 -282
  458. package/metadata/static/components/syn-badge/docs.md +0 -106
  459. package/metadata/static/components/syn-breadcrumb/docs.md +0 -265
  460. package/metadata/static/components/syn-breadcrumb-item/docs.md +0 -49
  461. package/metadata/static/components/syn-button/docs.md +0 -472
  462. package/metadata/static/components/syn-button-group/docs.md +0 -259
  463. package/metadata/static/components/syn-card/docs.md +0 -314
  464. package/metadata/static/components/syn-checkbox/docs.md +0 -176
  465. package/metadata/static/components/syn-combobox/docs.md +0 -2633
  466. package/metadata/static/components/syn-details/docs.md +0 -227
  467. package/metadata/static/components/syn-dialog/docs.md +0 -220
  468. package/metadata/static/components/syn-divider/docs.md +0 -77
  469. package/metadata/static/components/syn-drawer/docs.md +0 -269
  470. package/metadata/static/components/syn-dropdown/docs.md +0 -316
  471. package/metadata/static/components/syn-file/docs.md +0 -239
  472. package/metadata/static/components/syn-header/docs.md +0 -209
  473. package/metadata/static/components/syn-icon/docs.md +0 -177
  474. package/metadata/static/components/syn-icon-button/docs.md +0 -142
  475. package/metadata/static/components/syn-input/docs.md +0 -462
  476. package/metadata/static/components/syn-menu/docs.md +0 -162
  477. package/metadata/static/components/syn-menu-item/docs.md +0 -216
  478. package/metadata/static/components/syn-menu-label/docs.md +0 -29
  479. package/metadata/static/components/syn-nav-item/docs.md +0 -166
  480. package/metadata/static/components/syn-optgroup/docs.md +0 -167
  481. package/metadata/static/components/syn-option/docs.md +0 -137
  482. package/metadata/static/components/syn-popup/docs.md +0 -812
  483. package/metadata/static/components/syn-prio-nav/docs.md +0 -54
  484. package/metadata/static/components/syn-progress-bar/docs.md +0 -77
  485. package/metadata/static/components/syn-progress-ring/docs.md +0 -89
  486. package/metadata/static/components/syn-radio/docs.md +0 -178
  487. package/metadata/static/components/syn-radio-group/docs.md +0 -484
  488. package/metadata/static/components/syn-range/docs.md +0 -438
  489. package/metadata/static/components/syn-range-tick/docs.md +0 -110
  490. package/metadata/static/components/syn-select/docs.md +0 -811
  491. package/metadata/static/components/syn-side-nav/docs.md +0 -593
  492. package/metadata/static/components/syn-spinner/docs.md +0 -45
  493. package/metadata/static/components/syn-switch/docs.md +0 -121
  494. package/metadata/static/components/syn-tab/docs.md +0 -47
  495. package/metadata/static/components/syn-tab-group/docs.md +0 -1094
  496. package/metadata/static/components/syn-tab-panel/docs.md +0 -91
  497. package/metadata/static/components/syn-tag/docs.md +0 -50
  498. package/metadata/static/components/syn-tag-group/docs.md +0 -269
  499. package/metadata/static/components/syn-textarea/docs.md +0 -215
  500. package/metadata/static/components/syn-tooltip/docs.md +0 -217
  501. package/metadata/static/components/syn-validate/docs.md +0 -305
  502. package/metadata/static/fonts/index.md +0 -4
  503. package/metadata/static/migration/index.md +0 -57
  504. package/metadata/static/migration/v2-2018-to-v2-2025.md +0 -481
  505. package/metadata/static/migration/v2-2018-to-v3-2018.md +0 -147
  506. package/metadata/static/migration/v2-2018-to-v3-2025.md +0 -150
  507. package/metadata/static/migration/v2-2025-to-v3-2025.md +0 -133
  508. package/metadata/static/setup/icon-usage.md +0 -411
  509. package/metadata/static/setup/prerequisites.md +0 -319
  510. package/metadata/static/styles/syn-body.md +0 -5
  511. package/metadata/static/styles/syn-heading.md +0 -5
  512. package/metadata/static/styles/syn-link-list.md +0 -325
  513. package/metadata/static/styles/syn-link.md +0 -156
  514. package/metadata/static/styles/syn-table-cell.md +0 -127
  515. package/metadata/static/styles/syn-table.md +0 -201
  516. package/metadata/static/styles/syn-weight.md +0 -5
  517. package/metadata/static/templates/appshell.md +0 -2053
  518. package/metadata/static/templates/breadcrumb.md +0 -379
  519. package/metadata/static/templates/footer.md +0 -340
  520. package/metadata/static/templates/forms.md +0 -558
  521. package/metadata/static/templates/localization.md +0 -279
  522. package/metadata/static/templates/table.md +0 -1425
  523. package/metadata/static/templates/tag-group.md +0 -833
  524. /package/dist/{build/build.d.ts → utilities/logging-types.js} +0 -0
  525. /package/{metadata/static/component-info/index.md → rules/component-info.md} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { getMigrationMetaData } from '../utilities/index.js';
2
+ import { createToolAnnotations, getMigrationMetaData, getRuntimeConfig, toolHandler, } from '../utilities/index.js';
3
3
  const extractHeadingMetadata = (content) => {
4
4
  const result = {};
5
5
  // Try to find the first level‑1 heading.
@@ -69,6 +69,7 @@ const extractSummaryMetadata = (content) => {
69
69
  */
70
70
  export const migrationListTool = (server) => {
71
71
  server.registerTool('migration-list', {
72
+ annotations: createToolAnnotations(),
72
73
  description: 'List available migration documents for a Synergy package in a compact, token-efficient format.',
73
74
  inputSchema: {
74
75
  synergyPackage: z.enum([
@@ -76,11 +77,11 @@ export const migrationListTool = (server) => {
76
77
  'components',
77
78
  'styles',
78
79
  'tokens',
79
- ]).default('components').optional().describe('The package to list migration documents for.'),
80
+ ]).optional().describe('The package to list migration documents for.'),
80
81
  },
81
82
  title: 'Package Migration Document Index',
82
- }, async ({ synergyPackage }) => {
83
- const selectedPackage = (synergyPackage ?? 'components');
83
+ }, toolHandler('migration-list', async ({ synergyPackage }) => {
84
+ const selectedPackage = (synergyPackage ?? getRuntimeConfig().tools.migrationList.synergyPackage);
84
85
  const metadata = await getMigrationMetaData(selectedPackage);
85
86
  const index = metadata
86
87
  .filter(Boolean)
@@ -110,13 +111,6 @@ export const migrationListTool = (server) => {
110
111
  ...extra,
111
112
  };
112
113
  });
113
- return {
114
- content: [
115
- {
116
- text: JSON.stringify(index, null, 2),
117
- type: 'text',
118
- },
119
- ],
120
- };
121
- });
114
+ return [JSON.stringify(index, null, 2)];
115
+ }));
122
116
  };
@@ -0,0 +1,6 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ /**
3
+ * Setup entrypoint for Synergy packages and framework-specific setup guidance.
4
+ * @param server - The MCP server instance to register the tool on.
5
+ */
6
+ export declare const setupTool: (server: McpServer) => void;
@@ -0,0 +1,31 @@
1
+ import { z } from 'zod';
2
+ import { getDataForSetup } from '@synergy-design-system/metadata';
3
+ import { createToolAnnotations, getRuntimeConfig, toolHandler, } from '../utilities/index.js';
4
+ /**
5
+ * Setup entrypoint for Synergy packages and framework-specific setup guidance.
6
+ * @param server - The MCP server instance to register the tool on.
7
+ */
8
+ export const setupTool = (server) => {
9
+ server.registerTool('setup', {
10
+ annotations: createToolAnnotations(),
11
+ description: 'Get setup information for a Synergy package. Framework packages (react, vue, angular) automatically include base components setup.',
12
+ inputSchema: {
13
+ includeLimitations: z.boolean().optional().describe('Add a list of known limitations and issues to the output.'),
14
+ package: z.enum(['components', 'react', 'vue', 'angular', 'tokens', 'styles', 'fonts', 'assets', 'migrations']).describe('Synergy package to retrieve setup instructions for.'),
15
+ },
16
+ title: 'Setup info',
17
+ }, toolHandler('setup', async ({ includeLimitations, package: packageName, }) => {
18
+ const resolvedIncludeLimitations = includeLimitations ?? getRuntimeConfig().tools.setup.includeLimitations;
19
+ const response = await getDataForSetup({
20
+ includeLimitations: resolvedIncludeLimitations,
21
+ package: packageName,
22
+ });
23
+ if (!response.data) {
24
+ return [response.errors?.[0]?.message ?? `No setup data found for package "${packageName}".`];
25
+ }
26
+ const setupContent = response.data.setups
27
+ .flatMap((entry) => entry.text)
28
+ .map((entry) => entry.content);
29
+ return setupContent;
30
+ }));
31
+ };
@@ -1,7 +1,6 @@
1
1
  import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  /**
3
- * Simple tool to list all available tokens in the Synergy Design System.
4
- * This tool fetches the token data from the Synergy package and formats it for display.
3
+ * Simple tool to retrieve information about a given style in the Synergy Design System.
5
4
  * @param server - The MCP server instance to register the tool on.
6
5
  */
7
6
  export declare const stylesInfoTool: (server: McpServer) => void;
@@ -1,28 +1,32 @@
1
- import { getStructuredMetaData, getStylesMetaData, } from '../utilities/index.js';
1
+ import { z } from 'zod';
2
+ import { getDataForStyle, } from '@synergy-design-system/metadata';
3
+ import { createToolAnnotations, getToolRule, toolHandler, } from '../utilities/index.js';
2
4
  /**
3
- * Simple tool to list all available tokens in the Synergy Design System.
4
- * This tool fetches the token data from the Synergy package and formats it for display.
5
+ * Simple tool to retrieve information about a given style in the Synergy Design System.
5
6
  * @param server - The MCP server instance to register the tool on.
6
7
  */
7
8
  export const stylesInfoTool = (server) => {
8
9
  server.registerTool('styles-info', {
10
+ annotations: createToolAnnotations(),
9
11
  description: 'Get information about css utilities available in the Synergy Design System',
10
- inputSchema: {},
12
+ inputSchema: {
13
+ style: z.string().describe('The name of the style to get information about.'),
14
+ },
11
15
  title: 'Styles info',
12
- }, async () => {
13
- const metadata = await getStylesMetaData();
14
- const aiRules = await getStructuredMetaData('../../metadata/static/styles');
15
- return {
16
- content: [
17
- {
18
- text: JSON.stringify(aiRules, null, 2),
19
- type: 'text',
20
- },
21
- {
22
- text: JSON.stringify(metadata, null, 2),
23
- type: 'text',
24
- },
25
- ],
26
- };
27
- });
16
+ }, toolHandler('styles-info', async ({ style, }) => {
17
+ const response = await getDataForStyle(style, { layer: 'examples' });
18
+ if (!response.data) {
19
+ return [
20
+ `No style found: ${style}`,
21
+ ];
22
+ }
23
+ const aiRules = await getToolRule('styles-info');
24
+ const markdownContent = response.data.examples
25
+ ?.map((entry) => entry.content)
26
+ .join('\n\n') ?? '';
27
+ return [
28
+ aiRules,
29
+ markdownContent,
30
+ ];
31
+ }));
28
32
  };
@@ -1,4 +1,5 @@
1
- import { getAvailableStyles, getStructuredMetaData, } from '../utilities/index.js';
1
+ import { listStyles } from '@synergy-design-system/metadata';
2
+ import { createToolAnnotations, getToolRule, toolHandler, } from '../utilities/index.js';
2
3
  /**
3
4
  * Simple tool to list all available styles in the Synergy Design System.
4
5
  * This tool fetches the styles data from the Synergy package and formats it for display.
@@ -6,37 +7,22 @@ import { getAvailableStyles, getStructuredMetaData, } from '../utilities/index.j
6
7
  */
7
8
  export const stylesList = (server) => {
8
9
  server.registerTool('styles-list', {
9
- description: 'Outputs a list of available styles in the Synergy Design System',
10
+ annotations: createToolAnnotations(),
11
+ description: 'Outputs a list of available css classes and styles in the Synergy Design System',
10
12
  inputSchema: {},
11
- title: 'List Synergy Styles',
12
- }, async () => {
13
- // Get the package data for styles
14
- try {
15
- const styles = await getAvailableStyles();
16
- const styleNames = styles.map(style => `- ${style}`);
17
- const aiRules = await getStructuredMetaData('../../metadata/static/styles');
18
- return {
19
- content: [
20
- {
21
- text: JSON.stringify(aiRules, null, 2),
22
- type: 'text',
23
- },
24
- {
25
- text: styleNames.join('\n'),
26
- type: 'text',
27
- },
28
- ],
29
- };
30
- }
31
- catch (error) {
32
- return {
33
- content: [
34
- {
35
- text: `Error fetching components: ${error.message}`,
36
- type: 'text',
37
- },
38
- ],
39
- };
40
- }
41
- });
13
+ title: 'Styles list',
14
+ }, toolHandler('styles-list', async () => {
15
+ const aiRules = await getToolRule('styles-list');
16
+ const styles = await listStyles({
17
+ includeLayerRefs: false,
18
+ includeSources: false,
19
+ });
20
+ const styleNames = styles.data
21
+ .map(c => c.name)
22
+ .toSorted();
23
+ return [
24
+ aiRules,
25
+ styleNames,
26
+ ];
27
+ }));
42
28
  };
@@ -1,33 +1,32 @@
1
1
  import { z } from 'zod';
2
- import { getInfoForTemplate, getStructuredMetaData, } from '../utilities/index.js';
2
+ import { getDataForTemplate, } from '@synergy-design-system/metadata';
3
+ import { createToolAnnotations, getToolRule, toolHandler, } from '../utilities/index.js';
3
4
  /**
4
5
  * Simple tool to retrieve information about a given template in the Synergy Design System.
5
6
  * @param server - The MCP server instance to register the tool on.
6
7
  */
7
8
  export const templateInfoTool = (server) => {
8
9
  server.registerTool('template-info', {
10
+ annotations: createToolAnnotations(),
9
11
  description: 'Get a specific template in the Synergy Design System',
10
12
  inputSchema: {
11
13
  template: z.string().describe('The name of the template to get information about.'),
12
14
  },
13
15
  title: 'Template info',
14
- }, async ({ template, }) => {
15
- const data = await getInfoForTemplate(template);
16
- const text = data && data.length > 0
17
- ? JSON.stringify(data, null, 2)
18
- : `No metadata found for template ${template}`;
19
- const aiRules = await getStructuredMetaData('../../metadata/static/templates', file => file === 'index.md');
20
- return {
21
- content: [
22
- {
23
- text: JSON.stringify(aiRules, null, 2),
24
- type: 'text',
25
- },
26
- {
27
- text,
28
- type: 'text',
29
- },
30
- ],
31
- };
32
- });
16
+ }, toolHandler('template-info', async ({ template, }) => {
17
+ const response = await getDataForTemplate(template, { layer: 'examples' });
18
+ if (!response.data) {
19
+ return [
20
+ `No template found: ${template}`,
21
+ ];
22
+ }
23
+ const aiRules = await getToolRule('template-info');
24
+ const markdownContent = response.data.examples
25
+ ?.map((entry) => entry.content)
26
+ .join('\n\n') ?? '';
27
+ return [
28
+ aiRules,
29
+ markdownContent,
30
+ ];
31
+ }));
33
32
  };
@@ -1,7 +1,7 @@
1
1
  import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  /**
3
3
  * Simple tool to list all available templates in the Synergy Design System.
4
- * This tool fetches the templates data from the Synergy package and formats it for display.
4
+ * This tool fetches the templates data from the metadata store and formats it for display.
5
5
  * @param server - The MCP server instance to register the tool on.
6
6
  */
7
7
  export declare const templateList: (server: McpServer) => void;
@@ -1,42 +1,27 @@
1
- import { getAvailableTemplates, getStructuredMetaData, } from '../utilities/index.js';
1
+ import { listTemplates, } from '@synergy-design-system/metadata';
2
+ import { createToolAnnotations, getToolRule, toolHandler, } from '../utilities/index.js';
2
3
  /**
3
4
  * Simple tool to list all available templates in the Synergy Design System.
4
- * This tool fetches the templates data from the Synergy package and formats it for display.
5
+ * This tool fetches the templates data from the metadata store and formats it for display.
5
6
  * @param server - The MCP server instance to register the tool on.
6
7
  */
7
8
  export const templateList = (server) => {
8
9
  server.registerTool('template-list', {
10
+ annotations: createToolAnnotations(),
9
11
  description: 'Outputs a list of available static templates built with the Synergy Design System',
10
12
  inputSchema: {},
11
13
  title: 'List Synergy Templates',
12
- }, async () => {
13
- // Get the package data for templates
14
- try {
15
- const templates = await getAvailableTemplates();
16
- const templateNames = templates.map(template => `- ${template}`);
17
- const aiRules = await getStructuredMetaData('../../metadata/static/templates', file => file === 'index.md');
18
- return {
19
- content: [
20
- {
21
- text: JSON.stringify(aiRules, null, 2),
22
- type: 'text',
23
- },
24
- {
25
- text: templateNames.join('\n'),
26
- type: 'text',
27
- },
28
- ],
29
- };
30
- }
31
- catch (error) {
32
- return {
33
- content: [
34
- {
35
- text: `Error fetching templates: ${error.message}`,
36
- type: 'text',
37
- },
38
- ],
39
- };
40
- }
41
- });
14
+ }, toolHandler('template-list', async () => {
15
+ const response = await listTemplates();
16
+ const templateNames = response.data
17
+ .map(template => template.name)
18
+ .sort()
19
+ .map(name => `- ${name}`)
20
+ .join('\n');
21
+ const aiRules = await getToolRule('template-list');
22
+ return [
23
+ aiRules,
24
+ templateNames,
25
+ ];
26
+ }));
42
27
  };
@@ -1,7 +1,7 @@
1
1
  import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  /**
3
- * Simple tool to list all available tokens in the Synergy Design System.
4
- * This tool fetches the token data from the Synergy package and formats it for display.
3
+ * Simple tool to return raw token file contents from the Synergy Design System.
4
+ * This tool fetches the filtered token artifact content and returns the content blocks directly.
5
5
  * @param server - The MCP server instance to register the tool on.
6
6
  */
7
7
  export declare const tokenInfoTool: (server: McpServer) => void;
@@ -0,0 +1,31 @@
1
+ import { z } from 'zod';
2
+ import { getDataForTokens, } from '@synergy-design-system/metadata';
3
+ import { createToolAnnotations, getRuntimeConfig, toolHandler, } from '../utilities/index.js';
4
+ /**
5
+ * Simple tool to return raw token file contents from the Synergy Design System.
6
+ * This tool fetches the filtered token artifact content and returns the content blocks directly.
7
+ * @param server - The MCP server instance to register the tool on.
8
+ */
9
+ export const tokenInfoTool = (server) => {
10
+ server.registerTool('token-info', {
11
+ annotations: createToolAnnotations(),
12
+ description: 'Get raw design token file contents from the Synergy Design System',
13
+ inputSchema: {
14
+ theme: z.enum(['sick2025-light', 'sick2025-dark', 'sick2018-light', 'sick2018-dark']).optional().describe('Theme variant for CSS tokens. Ignored for javascript and sass.'),
15
+ type: z.enum(['javascript', 'css', 'sass']).optional().describe('The type of token output to retrieve.'),
16
+ },
17
+ title: 'Token info',
18
+ }, toolHandler('token-info', async ({ theme, type, }) => {
19
+ const resolvedType = type ?? getRuntimeConfig().tools.tokenInfo.type;
20
+ const response = await getDataForTokens({
21
+ format: resolvedType,
22
+ theme,
23
+ });
24
+ if (response.data.tokens.length === 0) {
25
+ return [
26
+ `No tokens found for type "${resolvedType}"${theme ? ` and theme "${theme}"` : ''}.`,
27
+ ];
28
+ }
29
+ return response.data.tokens.map((item) => item.content);
30
+ }));
31
+ };
@@ -0,0 +1,6 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ /**
3
+ * Simple tool to list available token output types and theme variants.
4
+ * @param server - The MCP server instance to register the tool on.
5
+ */
6
+ export declare const tokenListTool: (server: McpServer) => void;
@@ -0,0 +1,52 @@
1
+ import { getDataForTokens, } from '@synergy-design-system/metadata';
2
+ import { createToolAnnotations, toolHandler, } from '../utilities/index.js';
3
+ /**
4
+ * Simple tool to list available token output types and theme variants.
5
+ * @param server - The MCP server instance to register the tool on.
6
+ */
7
+ export const tokenListTool = (server) => {
8
+ server.registerTool('tokens-list', {
9
+ annotations: createToolAnnotations(),
10
+ description: 'Outputs a list of available token output types and css themes in the Synergy Design System',
11
+ inputSchema: {},
12
+ title: 'Tokens list',
13
+ }, toolHandler('tokens-list', async () => {
14
+ const cssCandidates = ['sick2018-dark', 'sick2018-light', 'sick2025-dark', 'sick2025-light'];
15
+ const cssChecks = await Promise.all(cssCandidates.map(async (theme) => {
16
+ const result = await getDataForTokens({
17
+ format: 'css',
18
+ theme,
19
+ });
20
+ return {
21
+ hasTokens: result.data.tokens.length > 0,
22
+ theme,
23
+ };
24
+ }));
25
+ const javascriptResult = await getDataForTokens({
26
+ format: 'javascript',
27
+ });
28
+ const sassResult = await getDataForTokens({
29
+ format: 'sass',
30
+ });
31
+ const cssThemes = cssChecks
32
+ .filter(entry => entry.hasTokens)
33
+ .map(entry => entry.theme)
34
+ .sort();
35
+ const hasJavascript = javascriptResult.data.tokens.length > 0;
36
+ const hasSass = sassResult.data.tokens.length > 0;
37
+ return [{
38
+ defaults: {
39
+ tokenInfo: {
40
+ theme: 'sick2025-light',
41
+ type: 'css',
42
+ },
43
+ },
44
+ supportedTypes: [
45
+ ...(cssThemes.length > 0 ? ['css'] : []),
46
+ ...(hasJavascript ? ['javascript'] : []),
47
+ ...(hasSass ? ['sass'] : []),
48
+ ],
49
+ themes: [...cssThemes].sort(),
50
+ }];
51
+ }));
52
+ };
@@ -0,0 +1,14 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { McpRuntimeConfig } from '../utilities/config.js';
3
+ import type { TransportInstance } from './index.js';
4
+ /**
5
+ * Creates an HTTP or HTTPS transport for the MCP server.
6
+ * Serves the MCP protocol on a fixed /mcp endpoint.
7
+ * Each client session gets its own transport + server instance,
8
+ * tracked by the mcp-session-id header.
9
+ *
10
+ * @param serverFactory A factory function that creates a new MCP server instance per session
11
+ * @param config The runtime configuration with interface, port, and optional TLS settings
12
+ * @returns A transport instance
13
+ */
14
+ export declare function createHttpTransport(serverFactory: () => McpServer, config: McpRuntimeConfig): Promise<TransportInstance>;
@@ -0,0 +1,157 @@
1
+ /* eslint-disable complexity */
2
+ /* eslint-disable @typescript-eslint/no-misused-promises */
3
+ import { randomUUID } from 'node:crypto';
4
+ import { createServer as createHttpServer, } from 'node:http';
5
+ import { createServer as createHttpsServer, } from 'node:https';
6
+ import { readFileSync } from 'node:fs';
7
+ import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
8
+ import { getMetadataInfo } from '@synergy-design-system/metadata';
9
+ import { runWithLoggingContext } from '../utilities/logging-context.js';
10
+ /**
11
+ * Creates an HTTP or HTTPS transport for the MCP server.
12
+ * Serves the MCP protocol on a fixed /mcp endpoint.
13
+ * Each client session gets its own transport + server instance,
14
+ * tracked by the mcp-session-id header.
15
+ *
16
+ * @param serverFactory A factory function that creates a new MCP server instance per session
17
+ * @param config The runtime configuration with interface, port, and optional TLS settings
18
+ * @returns A transport instance
19
+ */
20
+ export async function createHttpTransport(serverFactory, config) {
21
+ const { host, port, tls } = config;
22
+ const hasValidTls = tls?.keyPath && tls?.certPath;
23
+ // Resolve metadata version info once at startup for use in response headers
24
+ let metadataVersion;
25
+ let metadataBuildDate;
26
+ try {
27
+ const info = await getMetadataInfo();
28
+ metadataVersion = info.version;
29
+ metadataBuildDate = info.builtAt;
30
+ }
31
+ catch {
32
+ process.stderr.write('[synergy-mcp] Warning: could not read metadata version info\n');
33
+ }
34
+ // Read TLS files if HTTPS is enabled
35
+ let keyContent;
36
+ let certContent;
37
+ if (hasValidTls) {
38
+ try {
39
+ keyContent = readFileSync(tls.keyPath);
40
+ certContent = readFileSync(tls.certPath);
41
+ }
42
+ catch (error) {
43
+ throw new Error(`Failed to read TLS files: ${error instanceof Error ? error.message : String(error)}`);
44
+ }
45
+ }
46
+ // Create the appropriate server
47
+ let nodeServer;
48
+ let protocol = 'http';
49
+ if (hasValidTls && keyContent && certContent) {
50
+ protocol = 'https';
51
+ nodeServer = createHttpsServer({
52
+ cert: certContent,
53
+ key: keyContent,
54
+ });
55
+ }
56
+ else {
57
+ nodeServer = createHttpServer();
58
+ }
59
+ // Session store: maps mcp-session-id -> transport for that client
60
+ const sessions = new Map();
61
+ // Create request handler that routes to the transport
62
+ nodeServer.on('request', async (req, res) => {
63
+ // Route only /mcp requests to the transport
64
+ const url = req.url || '/';
65
+ if (!url.startsWith('/mcp')) {
66
+ res.statusCode = 404;
67
+ res.setHeader('Content-Type', 'text/plain');
68
+ res.end('Not Found\n');
69
+ return;
70
+ }
71
+ // Expose metadata version info on every /mcp response
72
+ if (metadataVersion !== undefined) {
73
+ res.setHeader('x-synergy-metadata-version', metadataVersion);
74
+ }
75
+ if (metadataBuildDate !== undefined) {
76
+ res.setHeader('x-synergy-metadata-build-date', metadataBuildDate);
77
+ }
78
+ try {
79
+ const sessionId = req.headers['mcp-session-id'];
80
+ if (sessionId) {
81
+ // Route to existing session
82
+ const existing = sessions.get(sessionId);
83
+ if (!existing) {
84
+ res.statusCode = 400;
85
+ res.setHeader('Content-Type', 'application/json');
86
+ res.end(JSON.stringify({
87
+ error: { code: -32000, message: 'Unknown session ID' },
88
+ id: null,
89
+ jsonrpc: '2.0',
90
+ }));
91
+ return;
92
+ }
93
+ await runWithLoggingContext({
94
+ sessionId,
95
+ transport: 'http',
96
+ }, async () => existing.handleRequest(req, res));
97
+ return;
98
+ }
99
+ // New client — create a dedicated server + transport pair
100
+ const newServer = serverFactory();
101
+ const transport = new StreamableHTTPServerTransport({
102
+ onsessioninitialized: sid => {
103
+ sessions.set(sid, transport);
104
+ },
105
+ sessionIdGenerator: () => randomUUID(),
106
+ });
107
+ transport.onclose = () => {
108
+ if (transport.sessionId) {
109
+ sessions.delete(transport.sessionId);
110
+ }
111
+ };
112
+ await newServer.connect(transport);
113
+ await runWithLoggingContext({
114
+ sessionId: transport.sessionId ?? 'pending-http',
115
+ transport: 'http',
116
+ }, async () => transport.handleRequest(req, res));
117
+ }
118
+ catch (error) {
119
+ // Only write error response if headers haven't been sent yet
120
+ if (!res.headersSent) {
121
+ res.statusCode = 500;
122
+ res.setHeader('Content-Type', 'text/plain');
123
+ res.end('Internal Server Error\n');
124
+ }
125
+ process.stderr.write(`[synergy-mcp] HTTP handler error: ${error instanceof Error ? error.message : String(error)}\n`);
126
+ }
127
+ });
128
+ return {
129
+ start: async () => new Promise((resolve, reject) => {
130
+ nodeServer.on('error', (error) => {
131
+ if (error.code === 'EADDRINUSE') {
132
+ reject(new Error(`Port ${port} is already in use. Please choose a different port.`));
133
+ }
134
+ else {
135
+ reject(new Error(`Server error: ${error instanceof Error ? error.message : String(error)}`));
136
+ }
137
+ });
138
+ nodeServer.on('listening', () => {
139
+ process.stdout.write(`[synergy-mcp] ✓ ${protocol.toUpperCase()} server started at ${protocol}://${host}:${port}\n`);
140
+ process.stdout.write(`[synergy-mcp] ✓ MCP endpoint: ${protocol}://${host}:${port}/mcp\n`);
141
+ resolve();
142
+ });
143
+ nodeServer.listen(port, host);
144
+ }),
145
+ stop: async () => new Promise((resolve, reject) => {
146
+ nodeServer.close((error) => {
147
+ if (error) {
148
+ reject(error);
149
+ }
150
+ else {
151
+ process.stdout.write('[synergy-mcp] ✓ Server stopped\n');
152
+ resolve();
153
+ }
154
+ });
155
+ }),
156
+ };
157
+ }
@@ -0,0 +1,23 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { McpRuntimeConfig } from '../utilities/config.js';
3
+ /**
4
+ * Common interface for all transport implementations.
5
+ */
6
+ export interface TransportInstance {
7
+ /** Start listening for connections. */
8
+ start: () => Promise<void>;
9
+ /** Optional: Stop listening for connections. */
10
+ stop?: () => Promise<void>;
11
+ }
12
+ /**
13
+ * Creates and returns a transport instance based on the runtime configuration.
14
+ *
15
+ * For stdio mode, a single server instance is used.
16
+ * For HTTP mode, the factory is called once per client session so each client
17
+ * gets an isolated server with its own tool registrations.
18
+ *
19
+ * @param serverFactory A factory function that creates a new MCP server instance
20
+ * @param config The runtime configuration
21
+ * @returns A transport instance ready to start
22
+ */
23
+ export declare function createTransport(serverFactory: () => McpServer, config: McpRuntimeConfig): Promise<TransportInstance>;