@synergy-design-system/mcp 2.15.0 → 3.0.1

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 (531) hide show
  1. package/CHANGELOG.md +24 -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 +20 -30
  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 -374
  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-pagination/component.angular.ts +0 -201
  312. package/metadata/packages/components/components/syn-pagination/component.react.ts +0 -56
  313. package/metadata/packages/components/components/syn-pagination/component.styles.ts +0 -128
  314. package/metadata/packages/components/components/syn-pagination/component.ts +0 -452
  315. package/metadata/packages/components/components/syn-pagination/component.vue +0 -144
  316. package/metadata/packages/components/components/syn-popup/component.angular.ts +0 -372
  317. package/metadata/packages/components/components/syn-popup/component.react.ts +0 -55
  318. package/metadata/packages/components/components/syn-popup/component.styles.ts +0 -70
  319. package/metadata/packages/components/components/syn-popup/component.ts +0 -582
  320. package/metadata/packages/components/components/syn-popup/component.vue +0 -233
  321. package/metadata/packages/components/components/syn-prio-nav/component.angular.ts +0 -67
  322. package/metadata/packages/components/components/syn-prio-nav/component.react.ts +0 -54
  323. package/metadata/packages/components/components/syn-prio-nav/component.styles.ts +0 -48
  324. package/metadata/packages/components/components/syn-prio-nav/component.ts +0 -288
  325. package/metadata/packages/components/components/syn-prio-nav/component.vue +0 -60
  326. package/metadata/packages/components/components/syn-progress-bar/component.angular.ts +0 -85
  327. package/metadata/packages/components/components/syn-progress-bar/component.custom.styles.ts +0 -24
  328. package/metadata/packages/components/components/syn-progress-bar/component.react.ts +0 -37
  329. package/metadata/packages/components/components/syn-progress-bar/component.styles.ts +0 -87
  330. package/metadata/packages/components/components/syn-progress-bar/component.ts +0 -67
  331. package/metadata/packages/components/components/syn-progress-bar/component.vue +0 -71
  332. package/metadata/packages/components/components/syn-progress-ring/component.angular.ts +0 -72
  333. package/metadata/packages/components/components/syn-progress-ring/component.custom.styles.ts +0 -19
  334. package/metadata/packages/components/components/syn-progress-ring/component.react.ts +0 -37
  335. package/metadata/packages/components/components/syn-progress-ring/component.styles.ts +0 -70
  336. package/metadata/packages/components/components/syn-progress-ring/component.ts +0 -83
  337. package/metadata/packages/components/components/syn-progress-ring/component.vue +0 -66
  338. package/metadata/packages/components/components/syn-radio/component.angular.ts +0 -122
  339. package/metadata/packages/components/components/syn-radio/component.react.ts +0 -48
  340. package/metadata/packages/components/components/syn-radio/component.styles.ts +0 -179
  341. package/metadata/packages/components/components/syn-radio/component.ts +0 -131
  342. package/metadata/packages/components/components/syn-radio/component.vue +0 -104
  343. package/metadata/packages/components/components/syn-radio-button/component.angular.ts +0 -123
  344. package/metadata/packages/components/components/syn-radio-button/component.react.ts +0 -49
  345. package/metadata/packages/components/components/syn-radio-button/component.styles.ts +0 -30
  346. package/metadata/packages/components/components/syn-radio-button/component.ts +0 -142
  347. package/metadata/packages/components/components/syn-radio-button/component.vue +0 -105
  348. package/metadata/packages/components/components/syn-radio-group/component.angular.ts +0 -204
  349. package/metadata/packages/components/components/syn-radio-group/component.react.ts +0 -56
  350. package/metadata/packages/components/components/syn-radio-group/component.styles.ts +0 -58
  351. package/metadata/packages/components/components/syn-radio-group/component.ts +0 -440
  352. package/metadata/packages/components/components/syn-radio-group/component.vue +0 -158
  353. package/metadata/packages/components/components/syn-range/component.angular.ts +0 -347
  354. package/metadata/packages/components/components/syn-range/component.react.ts +0 -92
  355. package/metadata/packages/components/components/syn-range/component.styles.ts +0 -310
  356. package/metadata/packages/components/components/syn-range/component.ts +0 -933
  357. package/metadata/packages/components/components/syn-range/component.vue +0 -245
  358. package/metadata/packages/components/components/syn-range-tick/component.angular.ts +0 -59
  359. package/metadata/packages/components/components/syn-range-tick/component.react.ts +0 -33
  360. package/metadata/packages/components/components/syn-range-tick/component.styles.ts +0 -34
  361. package/metadata/packages/components/components/syn-range-tick/component.ts +0 -50
  362. package/metadata/packages/components/components/syn-range-tick/component.vue +0 -57
  363. package/metadata/packages/components/components/syn-resize-observer/component.styles.ts +0 -9
  364. package/metadata/packages/components/components/syn-resize-observer/component.ts +0 -91
  365. package/metadata/packages/components/components/syn-select/component.angular.ts +0 -439
  366. package/metadata/packages/components/components/syn-select/component.react.ts +0 -101
  367. package/metadata/packages/components/components/syn-select/component.styles.ts +0 -380
  368. package/metadata/packages/components/components/syn-select/component.ts +0 -1056
  369. package/metadata/packages/components/components/syn-select/component.vue +0 -301
  370. package/metadata/packages/components/components/syn-side-nav/component.angular.ts +0 -210
  371. package/metadata/packages/components/components/syn-side-nav/component.react.ts +0 -95
  372. package/metadata/packages/components/components/syn-side-nav/component.styles.ts +0 -142
  373. package/metadata/packages/components/components/syn-side-nav/component.ts +0 -458
  374. package/metadata/packages/components/components/syn-side-nav/component.vue +0 -188
  375. package/metadata/packages/components/components/syn-spinner/component.angular.ts +0 -44
  376. package/metadata/packages/components/components/syn-spinner/component.custom.styles.ts +0 -32
  377. package/metadata/packages/components/components/syn-spinner/component.react.ts +0 -31
  378. package/metadata/packages/components/components/syn-spinner/component.styles.ts +0 -48
  379. package/metadata/packages/components/components/syn-spinner/component.ts +0 -35
  380. package/metadata/packages/components/components/syn-spinner/component.vue +0 -35
  381. package/metadata/packages/components/components/syn-switch/component.angular.ts +0 -257
  382. package/metadata/packages/components/components/syn-switch/component.react.ts +0 -63
  383. package/metadata/packages/components/components/syn-switch/component.styles.ts +0 -252
  384. package/metadata/packages/components/components/syn-switch/component.ts +0 -279
  385. package/metadata/packages/components/components/syn-switch/component.vue +0 -183
  386. package/metadata/packages/components/components/syn-tab/component.angular.ts +0 -109
  387. package/metadata/packages/components/components/syn-tab/component.custom.styles.ts +0 -94
  388. package/metadata/packages/components/components/syn-tab/component.react.ts +0 -42
  389. package/metadata/packages/components/components/syn-tab/component.styles.ts +0 -70
  390. package/metadata/packages/components/components/syn-tab/component.ts +0 -125
  391. package/metadata/packages/components/components/syn-tab/component.vue +0 -91
  392. package/metadata/packages/components/components/syn-tab-group/component.angular.ts +0 -166
  393. package/metadata/packages/components/components/syn-tab-group/component.custom.styles.ts +0 -218
  394. package/metadata/packages/components/components/syn-tab-group/component.react.ts +0 -58
  395. package/metadata/packages/components/components/syn-tab-group/component.styles.ts +0 -193
  396. package/metadata/packages/components/components/syn-tab-group/component.ts +0 -551
  397. package/metadata/packages/components/components/syn-tab-group/component.vue +0 -126
  398. package/metadata/packages/components/components/syn-tab-panel/component.angular.ts +0 -68
  399. package/metadata/packages/components/components/syn-tab-panel/component.custom.styles.ts +0 -8
  400. package/metadata/packages/components/components/syn-tab-panel/component.react.ts +0 -31
  401. package/metadata/packages/components/components/syn-tab-panel/component.styles.ts +0 -20
  402. package/metadata/packages/components/components/syn-tab-panel/component.ts +0 -60
  403. package/metadata/packages/components/components/syn-tab-panel/component.vue +0 -60
  404. package/metadata/packages/components/components/syn-tag/component.angular.ts +0 -83
  405. package/metadata/packages/components/components/syn-tag/component.custom.styles.ts +0 -121
  406. package/metadata/packages/components/components/syn-tag/component.react.ts +0 -43
  407. package/metadata/packages/components/components/syn-tag/component.styles.ts +0 -58
  408. package/metadata/packages/components/components/syn-tag/component.ts +0 -83
  409. package/metadata/packages/components/components/syn-tag/component.vue +0 -81
  410. package/metadata/packages/components/components/syn-tag-group/component.angular.ts +0 -83
  411. package/metadata/packages/components/components/syn-tag-group/component.react.ts +0 -33
  412. package/metadata/packages/components/components/syn-tag-group/component.styles.ts +0 -49
  413. package/metadata/packages/components/components/syn-tag-group/component.ts +0 -95
  414. package/metadata/packages/components/components/syn-tag-group/component.vue +0 -69
  415. package/metadata/packages/components/components/syn-textarea/component.angular.ts +0 -396
  416. package/metadata/packages/components/components/syn-textarea/component.react.ts +0 -60
  417. package/metadata/packages/components/components/syn-textarea/component.styles.ts +0 -208
  418. package/metadata/packages/components/components/syn-textarea/component.ts +0 -400
  419. package/metadata/packages/components/components/syn-textarea/component.vue +0 -244
  420. package/metadata/packages/components/components/syn-tooltip/component.angular.ts +0 -196
  421. package/metadata/packages/components/components/syn-tooltip/component.react.ts +0 -63
  422. package/metadata/packages/components/components/syn-tooltip/component.styles.ts +0 -62
  423. package/metadata/packages/components/components/syn-tooltip/component.ts +0 -312
  424. package/metadata/packages/components/components/syn-tooltip/component.vue +0 -150
  425. package/metadata/packages/components/components/syn-validate/component.angular.ts +0 -137
  426. package/metadata/packages/components/components/syn-validate/component.react.ts +0 -44
  427. package/metadata/packages/components/components/syn-validate/component.styles.ts +0 -9
  428. package/metadata/packages/components/components/syn-validate/component.ts +0 -590
  429. package/metadata/packages/components/components/syn-validate/component.vue +0 -107
  430. package/metadata/packages/components/migration/BREAKING_CHANGES.md +0 -908
  431. package/metadata/packages/components/static/CHANGELOG.md +0 -2155
  432. package/metadata/packages/components/static/LIMITATIONS.md +0 -433
  433. package/metadata/packages/components/static/README.md +0 -231
  434. package/metadata/packages/fonts/CHANGELOG.md +0 -57
  435. package/metadata/packages/fonts/README.md +0 -164
  436. package/metadata/packages/fonts/package.json +0 -72
  437. package/metadata/packages/react/LIMITATIONS.md +0 -31
  438. package/metadata/packages/react/README.md +0 -262
  439. package/metadata/packages/styles/BREAKING_CHANGES.md +0 -105
  440. package/metadata/packages/styles/CHANGELOG.md +0 -188
  441. package/metadata/packages/styles/README.md +0 -132
  442. package/metadata/packages/styles/index.css +0 -300
  443. package/metadata/packages/styles/link-list.css +0 -47
  444. package/metadata/packages/styles/link.css +0 -81
  445. package/metadata/packages/styles/tables.css +0 -132
  446. package/metadata/packages/styles/typography.css +0 -52
  447. package/metadata/packages/tokens/BREAKING_CHANGES.md +0 -180
  448. package/metadata/packages/tokens/CHANGELOG.md +0 -959
  449. package/metadata/packages/tokens/README.md +0 -435
  450. package/metadata/packages/tokens/dark.css +0 -454
  451. package/metadata/packages/tokens/index.js +0 -2224
  452. package/metadata/packages/tokens/light.css +0 -454
  453. package/metadata/packages/tokens/sick2018_dark.css +0 -454
  454. package/metadata/packages/tokens/sick2018_light.css +0 -454
  455. package/metadata/packages/tokens/sick2025_dark.css +0 -454
  456. package/metadata/packages/tokens/sick2025_light.css +0 -454
  457. package/metadata/packages/vue/LIMITATIONS.md +0 -53
  458. package/metadata/packages/vue/README.md +0 -252
  459. package/metadata/static/assets/index.md +0 -10
  460. package/metadata/static/components/index.md +0 -10
  461. package/metadata/static/components/syn-accordion/docs.md +0 -449
  462. package/metadata/static/components/syn-alert/docs.md +0 -282
  463. package/metadata/static/components/syn-badge/docs.md +0 -106
  464. package/metadata/static/components/syn-breadcrumb/docs.md +0 -265
  465. package/metadata/static/components/syn-breadcrumb-item/docs.md +0 -49
  466. package/metadata/static/components/syn-button/docs.md +0 -472
  467. package/metadata/static/components/syn-button-group/docs.md +0 -259
  468. package/metadata/static/components/syn-card/docs.md +0 -314
  469. package/metadata/static/components/syn-checkbox/docs.md +0 -176
  470. package/metadata/static/components/syn-combobox/docs.md +0 -2633
  471. package/metadata/static/components/syn-details/docs.md +0 -227
  472. package/metadata/static/components/syn-dialog/docs.md +0 -220
  473. package/metadata/static/components/syn-divider/docs.md +0 -77
  474. package/metadata/static/components/syn-drawer/docs.md +0 -269
  475. package/metadata/static/components/syn-dropdown/docs.md +0 -316
  476. package/metadata/static/components/syn-file/docs.md +0 -239
  477. package/metadata/static/components/syn-header/docs.md +0 -209
  478. package/metadata/static/components/syn-icon/docs.md +0 -177
  479. package/metadata/static/components/syn-icon-button/docs.md +0 -142
  480. package/metadata/static/components/syn-input/docs.md +0 -462
  481. package/metadata/static/components/syn-menu/docs.md +0 -162
  482. package/metadata/static/components/syn-menu-item/docs.md +0 -216
  483. package/metadata/static/components/syn-menu-label/docs.md +0 -29
  484. package/metadata/static/components/syn-nav-item/docs.md +0 -166
  485. package/metadata/static/components/syn-optgroup/docs.md +0 -167
  486. package/metadata/static/components/syn-option/docs.md +0 -137
  487. package/metadata/static/components/syn-pagination/docs.md +0 -102
  488. package/metadata/static/components/syn-popup/docs.md +0 -812
  489. package/metadata/static/components/syn-prio-nav/docs.md +0 -54
  490. package/metadata/static/components/syn-progress-bar/docs.md +0 -77
  491. package/metadata/static/components/syn-progress-ring/docs.md +0 -89
  492. package/metadata/static/components/syn-radio/docs.md +0 -178
  493. package/metadata/static/components/syn-radio-group/docs.md +0 -484
  494. package/metadata/static/components/syn-range/docs.md +0 -438
  495. package/metadata/static/components/syn-range-tick/docs.md +0 -110
  496. package/metadata/static/components/syn-select/docs.md +0 -811
  497. package/metadata/static/components/syn-side-nav/docs.md +0 -593
  498. package/metadata/static/components/syn-spinner/docs.md +0 -45
  499. package/metadata/static/components/syn-switch/docs.md +0 -121
  500. package/metadata/static/components/syn-tab/docs.md +0 -47
  501. package/metadata/static/components/syn-tab-group/docs.md +0 -1094
  502. package/metadata/static/components/syn-tab-panel/docs.md +0 -91
  503. package/metadata/static/components/syn-tag/docs.md +0 -50
  504. package/metadata/static/components/syn-tag-group/docs.md +0 -269
  505. package/metadata/static/components/syn-textarea/docs.md +0 -215
  506. package/metadata/static/components/syn-tooltip/docs.md +0 -217
  507. package/metadata/static/components/syn-validate/docs.md +0 -305
  508. package/metadata/static/fonts/index.md +0 -4
  509. package/metadata/static/migration/index.md +0 -57
  510. package/metadata/static/migration/v2-2018-to-v2-2025.md +0 -481
  511. package/metadata/static/migration/v2-2018-to-v3-2018.md +0 -147
  512. package/metadata/static/migration/v2-2018-to-v3-2025.md +0 -150
  513. package/metadata/static/migration/v2-2025-to-v3-2025.md +0 -133
  514. package/metadata/static/setup/icon-usage.md +0 -411
  515. package/metadata/static/setup/prerequisites.md +0 -319
  516. package/metadata/static/styles/syn-body.md +0 -5
  517. package/metadata/static/styles/syn-heading.md +0 -5
  518. package/metadata/static/styles/syn-link-list.md +0 -325
  519. package/metadata/static/styles/syn-link.md +0 -156
  520. package/metadata/static/styles/syn-table-cell.md +0 -127
  521. package/metadata/static/styles/syn-table.md +0 -201
  522. package/metadata/static/styles/syn-weight.md +0 -5
  523. package/metadata/static/templates/appshell.md +0 -2053
  524. package/metadata/static/templates/breadcrumb.md +0 -379
  525. package/metadata/static/templates/footer.md +0 -340
  526. package/metadata/static/templates/forms.md +0 -558
  527. package/metadata/static/templates/localization.md +0 -279
  528. package/metadata/static/templates/table.md +0 -1425
  529. package/metadata/static/templates/tag-group.md +0 -833
  530. /package/dist/{build/build.d.ts → utilities/logging-types.js} +0 -0
  531. /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>;