@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
package/dist/bin/start.js CHANGED
@@ -1,8 +1,59 @@
1
1
  #!/usr/bin/env node
2
- import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
2
  import { createServer } from '../server.js';
4
- import { handleCommandLineArgs } from '../utilities/index.js';
5
- handleCommandLineArgs();
6
- const server = createServer();
7
- const transport = new StdioServerTransport();
8
- await server.connect(transport);
3
+ import { createTransport } from '../transports/index.js';
4
+ import { getRuntimeConfig, initializeRuntimeConfig, setRuntimeConfig, } from '../utilities/config.js';
5
+ import { handleCommandLineArgs, initializeLogger, parseCommandLineArgs, } from '../utilities/index.js';
6
+ try {
7
+ handleCommandLineArgs();
8
+ const parsedArgs = parseCommandLineArgs();
9
+ await initializeRuntimeConfig(parsedArgs.configPath);
10
+ // Get config from file (or defaults if not provided)
11
+ const initialConfig = getRuntimeConfig();
12
+ let config = { ...initialConfig };
13
+ // Apply CLI overrides to config (CLI has highest precedence)
14
+ if (parsedArgs.interface !== undefined) {
15
+ config = { ...config, interface: parsedArgs.interface };
16
+ }
17
+ if (parsedArgs.port !== undefined) {
18
+ config = { ...config, port: parsedArgs.port };
19
+ }
20
+ if (parsedArgs.host !== undefined) {
21
+ config = { ...config, host: parsedArgs.host };
22
+ }
23
+ if (parsedArgs.tlsKeyPath !== undefined || parsedArgs.tlsCertPath !== undefined) {
24
+ config = {
25
+ ...config,
26
+ tls: {
27
+ certPath: parsedArgs.tlsCertPath ?? config.tls?.certPath,
28
+ keyPath: parsedArgs.tlsKeyPath ?? config.tls?.keyPath,
29
+ },
30
+ };
31
+ }
32
+ if (parsedArgs.logPath !== undefined) {
33
+ config = {
34
+ ...config,
35
+ logging: {
36
+ ...config.logging,
37
+ localFile: {
38
+ ...config.logging.localFile,
39
+ path: parsedArgs.logPath,
40
+ },
41
+ },
42
+ };
43
+ }
44
+ if (parsedArgs.compression !== undefined) {
45
+ config = {
46
+ ...config,
47
+ compression: parsedArgs.compression,
48
+ };
49
+ }
50
+ // Persist the final resolved config (including CLI overrides) for middleware/tool runtime.
51
+ setRuntimeConfig(config);
52
+ initializeLogger(config);
53
+ const transport = await createTransport(createServer, config);
54
+ await transport.start();
55
+ }
56
+ catch (error) {
57
+ process.stderr.write(`[synergy-mcp] Error: ${error instanceof Error ? error.message : String(error)}\n`);
58
+ process.exit(1);
59
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Middleware composition utility using reduceRight pattern.
3
+ * This keeps middlewares flexible for reordering while maintaining clear
4
+ * execution semantics (right-to-left composition, left-to-right execution).
5
+ */
6
+ import type { RawToolHandler, ToolMiddleware, ToolMiddlewareContext } from './types.js';
7
+ /**
8
+ * Applies an array of middlewares to a raw tool handler, returning a new handler with all middleware applied.
9
+ * Middlewares are applied in right-to-left order, meaning the last middleware in the array will be the outermost wrapper around the handler.
10
+ * @param handler The original raw tool handler function to wrap with middleware.
11
+ * @param middlewares An array of middleware functions to apply to the handler.
12
+ * @param context The context object to pass to each middleware, containing configuration and options.
13
+ * @returns A new raw tool handler function with all middleware applied.
14
+ */
15
+ export declare const composeMiddlewares: <TArgs extends Record<string, unknown>>(handler: RawToolHandler<TArgs>, middlewares: ToolMiddleware<TArgs>[], context: ToolMiddlewareContext) => RawToolHandler<TArgs>;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Applies an array of middlewares to a raw tool handler, returning a new handler with all middleware applied.
3
+ * Middlewares are applied in right-to-left order, meaning the last middleware in the array will be the outermost wrapper around the handler.
4
+ * @param handler The original raw tool handler function to wrap with middleware.
5
+ * @param middlewares An array of middleware functions to apply to the handler.
6
+ * @param context The context object to pass to each middleware, containing configuration and options.
7
+ * @returns A new raw tool handler function with all middleware applied.
8
+ */
9
+ export const composeMiddlewares = (handler, middlewares, context) => middlewares
10
+ .reduceRight((next, middleware) => middleware(next, context), handler);
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Compression middleware for MCP tool responses.
3
+ * Encodes structured data (objects, arrays) into toon format when enabled.
4
+ * String entries (like AI rules) pass through unchanged.
5
+ */
6
+ import type { ToolMiddleware } from './types.js';
7
+ /**
8
+ * Middleware that compresses tool response payloads using toon format encoding.
9
+ *
10
+ * When `compression` is set to `'toon'`, non-string entries in the tool response
11
+ * are encoded to a compact toon text format. String entries (e.g., AI rules prefix)
12
+ * pass through unchanged. This reduces response size significantly for structured data.
13
+ *
14
+ * When `compression` is `'none'` or unavailable, responses pass through unmodified.
15
+ *
16
+ * This middleware should run before the logging middleware so that token counts
17
+ * reflect the compressed payload size.
18
+ */
19
+ export declare const withCompressionMiddleware: ToolMiddleware<Record<string, unknown>>;
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Compression middleware for MCP tool responses.
3
+ * Encodes structured data (objects, arrays) into toon format when enabled.
4
+ * String entries (like AI rules) pass through unchanged.
5
+ */
6
+ import { encodeToToon } from '../utilities/compression.js';
7
+ /**
8
+ * Middleware that compresses tool response payloads using toon format encoding.
9
+ *
10
+ * When `compression` is set to `'toon'`, non-string entries in the tool response
11
+ * are encoded to a compact toon text format. String entries (e.g., AI rules prefix)
12
+ * pass through unchanged. This reduces response size significantly for structured data.
13
+ *
14
+ * When `compression` is `'none'` or unavailable, responses pass through unmodified.
15
+ *
16
+ * This middleware should run before the logging middleware so that token counts
17
+ * reflect the compressed payload size.
18
+ */
19
+ export const withCompressionMiddleware = (next, context) => async (args) => {
20
+ const result = await next(args);
21
+ // Early exit if compression is disabled
22
+ if (!context.config.compression || context.config.compression === 'none') {
23
+ return result;
24
+ }
25
+ // Compression mode is 'toon': process each entry
26
+ const compressed = await Promise.all(result.map(async (entry) => {
27
+ // Strings (e.g., AI rules prefix) pass through unchanged
28
+ if (typeof entry === 'string') {
29
+ return entry;
30
+ }
31
+ // Non-strings get encoded to toon format
32
+ return encodeToToon(entry);
33
+ }));
34
+ return compressed;
35
+ };
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Error handling middleware for tool execution.
3
+ * Wraps handler with try/catch to provide consistent fallback behavior.
4
+ */
5
+ import type { ToolMiddleware } from './types.js';
6
+ /**
7
+ * Middleware that applies error handling to tool execution, using the withErrorHandler function to wrap the next handler in the chain.
8
+ * This ensures that any errors thrown during tool execution are caught and handled according to the provided options or default behavior.
9
+ * @param next The next handler in the middleware chain, which executes the actual tool logic.
10
+ * @param context The middleware context, containing configuration and options for error handling.
11
+ * @returns A new handler function that wraps the original tool logic with error handling functionality.
12
+ */
13
+ export declare const withErrorHandlingMiddleware: ToolMiddleware<Record<string, unknown>>;
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Default error content generator for tool responses.
3
+ * This can be used in the onError callback of withErrorHandler to provide a consistent error message format.
4
+ * @param error - The error object that was thrown.
5
+ * @param context - Optional context string to provide additional information about where the error occurred.
6
+ * @returns An array of content objects suitable for MCP tool responses.
7
+ */
8
+ const defaultErrorContent = (error, context) => {
9
+ const suffix = context ? ` ${context}` : '';
10
+ const message = error instanceof Error ? error.message : String(error);
11
+ return [
12
+ {
13
+ text: `Error${suffix}: ${message}`,
14
+ type: 'text',
15
+ },
16
+ ];
17
+ };
18
+ /**
19
+ * Wraps raw tool execution with fallback behavior.
20
+ * Use this as middleware in the tool pipeline.
21
+ * @param fn - Raw tool handler function.
22
+ * @param options - Optional context and custom error fallback behavior.
23
+ */
24
+ const withErrorHandler = (fn, options = {}) => async (args) => {
25
+ try {
26
+ return await fn(args);
27
+ }
28
+ catch (error) {
29
+ const fallback = options.onError
30
+ ? await options.onError(error, options.context)
31
+ : defaultErrorContent(error, options.context);
32
+ return fallback;
33
+ }
34
+ };
35
+ /**
36
+ * Middleware that applies error handling to tool execution, using the withErrorHandler function to wrap the next handler in the chain.
37
+ * This ensures that any errors thrown during tool execution are caught and handled according to the provided options or default behavior.
38
+ * @param next The next handler in the middleware chain, which executes the actual tool logic.
39
+ * @param context The middleware context, containing configuration and options for error handling.
40
+ * @returns A new handler function that wraps the original tool logic with error handling functionality.
41
+ */
42
+ export const withErrorHandlingMiddleware = (next, context) => withErrorHandler(next, context.options);
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Middleware module entrypoint.
3
+ * Exports middleware types, composition, and built-in middleware implementations.
4
+ */
5
+ export type * from './types.js';
6
+ export { composeMiddlewares } from './compose.js';
7
+ export { withCompressionMiddleware } from './compression.js';
8
+ export { withErrorHandlingMiddleware } from './error-handler.js';
9
+ export { withToolLoggingMiddleware } from './logging.js';
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Middleware module entrypoint.
3
+ * Exports middleware types, composition, and built-in middleware implementations.
4
+ */
5
+ export { composeMiddlewares } from './compose.js';
6
+ export { withCompressionMiddleware } from './compression.js';
7
+ export { withErrorHandlingMiddleware } from './error-handler.js';
8
+ export { withToolLoggingMiddleware } from './logging.js';
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Logging middleware for tool execution.
3
+ * Records tool call duration, token count, success/error state, and parameters.
4
+ * Respects logging config: early-exits if logging is disabled to avoid token counting overhead.
5
+ */
6
+ import type { ToolMiddleware } from './types.js';
7
+ /**
8
+ * Middleware that logs details about tool execution, including duration, success/failure, token count, and parameters.
9
+ * It checks the logging configuration and skips logging (and token counting) if logging is disabled to optimize performance.
10
+ * @param next The next handler in the middleware chain, which executes the actual tool logic.
11
+ * @param context The middleware context, containing configuration and options for logging.
12
+ * @returns A new handler function that wraps the original tool logic with logging functionality.
13
+ */
14
+ export declare const withToolLoggingMiddleware: ToolMiddleware<Record<string, unknown>>;
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Logging middleware for tool execution.
3
+ * Records tool call duration, token count, success/error state, and parameters.
4
+ * Respects logging config: early-exits if logging is disabled to avoid token counting overhead.
5
+ */
6
+ import { logToolCall } from '../utilities/logger.js';
7
+ import { countTextTokens, toTextPayload, } from '../utilities/token-counter.js';
8
+ import { toContentArray } from '../utilities/metadata.js';
9
+ /**
10
+ * Middleware that logs details about tool execution, including duration, success/failure, token count, and parameters.
11
+ * It checks the logging configuration and skips logging (and token counting) if logging is disabled to optimize performance.
12
+ * @param next The next handler in the middleware chain, which executes the actual tool logic.
13
+ * @param context The middleware context, containing configuration and options for logging.
14
+ * @returns A new handler function that wraps the original tool logic with logging functionality.
15
+ */
16
+ export const withToolLoggingMiddleware = (next, context) => async (args) => {
17
+ // Early exit if logging is not enabled to avoid token counting overhead.
18
+ if (context.config.logging.localFile.path === null) {
19
+ return next(args);
20
+ }
21
+ const startedAt = process.hrtime.bigint();
22
+ let success = false;
23
+ let errorMessage;
24
+ let tokenCount;
25
+ try {
26
+ const content = await next(args);
27
+ success = true;
28
+ // Normalize to ToolResponse content before token counting so metrics match the final response shape.
29
+ // This keeps logging robust even if middleware order changes later.
30
+ const textPayload = toTextPayload(toContentArray(content).content);
31
+ tokenCount = await countTextTokens(textPayload);
32
+ return content;
33
+ }
34
+ catch (error) {
35
+ errorMessage = error instanceof Error ? error.message : String(error);
36
+ throw error;
37
+ }
38
+ finally {
39
+ const durationMs = Number(process.hrtime.bigint() - startedAt) / 1_000_000;
40
+ // MCP SDK may add internal context properties to the args object
41
+ // (requestId, signal, requestInfo, sessionId). Create a new object
42
+ // with only the non-internal properties for logging.
43
+ const internalProps = new Set([
44
+ 'requestId',
45
+ 'signal',
46
+ 'requestInfo',
47
+ 'sessionId',
48
+ ]);
49
+ const loggableParameters = {};
50
+ Object.entries(args).forEach(([key, value]) => {
51
+ if (!internalProps.has(key)) {
52
+ loggableParameters[key] = value;
53
+ }
54
+ });
55
+ await logToolCall({
56
+ durationMs,
57
+ errorMessage,
58
+ parameters: loggableParameters,
59
+ success,
60
+ tokenCount,
61
+ toolName: context.toolName,
62
+ });
63
+ }
64
+ };
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Middleware pipeline types and contracts.
3
+ */
4
+ import type { McpRuntimeConfig } from '../utilities/config.js';
5
+ export type RawToolHandler<TArgs extends Record<string, unknown>> = (args: TArgs) => Promise<unknown[]>;
6
+ export type ToolMiddlewareContext = {
7
+ config: McpRuntimeConfig;
8
+ options: WithErrorHandlerOptions;
9
+ toolName: string;
10
+ };
11
+ /**
12
+ * ToolMiddleware defines the shape of middleware functions that can be applied to tool handlers.
13
+ * Each middleware receives the next handler in the chain and a context object, and returns a new handler function.
14
+ * This allows for flexible composition of cross-cutting concerns like logging, error handling, and more.
15
+ */
16
+ export type ToolMiddleware<TArgs extends Record<string, unknown>> = (next: RawToolHandler<TArgs>, context: ToolMiddlewareContext) => RawToolHandler<TArgs>;
17
+ export type WithErrorHandlerOptions = {
18
+ context?: string;
19
+ onError?: (error: unknown, context?: string) => unknown[] | Promise<unknown[]>;
20
+ };
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Middleware pipeline types and contracts.
3
+ */
4
+ export {};
@@ -0,0 +1,7 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ /**
3
+ * Registers a static MCP resource that lists all available icon sets in the Synergy Design System.
4
+ * Clients that support resources can read this directly without calling a tool.
5
+ * @param server - The MCP server instance to register the resource on.
6
+ */
7
+ export declare const assetListResource: (server: McpServer) => void;
@@ -0,0 +1,34 @@
1
+ import { listAssets } from '@synergy-design-system/metadata';
2
+ const RESOURCE_URI = 'synergy://assets/list';
3
+ /**
4
+ * Registers a static MCP resource that lists all available icon sets in the Synergy Design System.
5
+ * Clients that support resources can read this directly without calling a tool.
6
+ * @param server - The MCP server instance to register the resource on.
7
+ */
8
+ export const assetListResource = (server) => {
9
+ server.registerResource('asset-list', RESOURCE_URI, {
10
+ description: 'All available icon sets in the Synergy Design System, including theme metadata.',
11
+ mimeType: 'application/json',
12
+ title: 'Available icon sets',
13
+ }, async (_uri) => {
14
+ const allAssets = await listAssets();
15
+ const assets = allAssets.data
16
+ .map(asset => ({
17
+ iconCount: asset.custom?.iconCount,
18
+ id: asset.id,
19
+ name: asset.name,
20
+ since: asset.since,
21
+ theme: asset.custom?.theme ?? 'default',
22
+ }))
23
+ .toSorted((a, b) => a.name.localeCompare(b.name));
24
+ return {
25
+ contents: [
26
+ {
27
+ mimeType: 'application/json',
28
+ text: JSON.stringify(assets, null, 2),
29
+ uri: RESOURCE_URI,
30
+ },
31
+ ],
32
+ };
33
+ });
34
+ };
@@ -0,0 +1,7 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ /**
3
+ * Registers a static MCP resource that lists all available component clusters in the Synergy Design System.
4
+ * Clients that support resources can read this directly without calling a tool.
5
+ * @param server - The MCP server instance to register the resource on.
6
+ */
7
+ export declare const componentClustersListRessource: (server: McpServer) => void;
@@ -0,0 +1,30 @@
1
+ import { listComponentClusters } from '@synergy-design-system/metadata';
2
+ const RESOURCE_URI = 'synergy://component-clusters/list';
3
+ /**
4
+ * Registers a static MCP resource that lists all available component clusters in the Synergy Design System.
5
+ * Clients that support resources can read this directly without calling a tool.
6
+ * @param server - The MCP server instance to register the resource on.
7
+ */
8
+ export const componentClustersListRessource = (server) => {
9
+ server.registerResource('component-clusters-list', RESOURCE_URI, {
10
+ description: 'Available component clusters in the Synergy Design System.',
11
+ mimeType: 'application/json',
12
+ title: 'Available component clusters',
13
+ }, async (_uri) => {
14
+ const clusters = await listComponentClusters();
15
+ const data = clusters.data.map(cluster => ({
16
+ description: cluster.description,
17
+ id: cluster.id,
18
+ name: cluster.name,
19
+ }));
20
+ return {
21
+ contents: [
22
+ {
23
+ mimeType: 'application/json',
24
+ text: JSON.stringify(data, null, 2),
25
+ uri: RESOURCE_URI,
26
+ },
27
+ ],
28
+ };
29
+ });
30
+ };
@@ -0,0 +1,7 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ /**
3
+ * Registers a static MCP resource that lists all available components in the Synergy Design System.
4
+ * Clients that support resources can read this directly without calling a tool.
5
+ * @param server - The MCP server instance to register the resource on.
6
+ */
7
+ export declare const componentListResource: (server: McpServer) => void;
@@ -0,0 +1,31 @@
1
+ import { listComponents } from '@synergy-design-system/metadata';
2
+ const RESOURCE_URI = 'synergy://components/list';
3
+ /**
4
+ * Registers a static MCP resource that lists all available components in the Synergy Design System.
5
+ * Clients that support resources can read this directly without calling a tool.
6
+ * @param server - The MCP server instance to register the resource on.
7
+ */
8
+ export const componentListResource = (server) => {
9
+ server.registerResource('component-list', RESOURCE_URI, {
10
+ description: 'A list of all available component names in the Synergy Design System.',
11
+ mimeType: 'application/json',
12
+ title: 'Component list',
13
+ }, async (_uri) => {
14
+ const components = await listComponents({
15
+ includeLayerRefs: false,
16
+ includeSources: false,
17
+ });
18
+ const componentNames = components.data
19
+ .map(c => c.name)
20
+ .toSorted();
21
+ return {
22
+ contents: [
23
+ {
24
+ mimeType: 'application/json',
25
+ text: JSON.stringify(componentNames, null, 2),
26
+ uri: RESOURCE_URI,
27
+ },
28
+ ],
29
+ };
30
+ });
31
+ };
@@ -0,0 +1,5 @@
1
+ export * from './asset-list.js';
2
+ export * from './component-cluster-list.js';
3
+ export * from './component-list.js';
4
+ export * from './styles-list.js';
5
+ export * from './templates-list.js';
@@ -0,0 +1,5 @@
1
+ export * from './asset-list.js';
2
+ export * from './component-cluster-list.js';
3
+ export * from './component-list.js';
4
+ export * from './styles-list.js';
5
+ export * from './templates-list.js';
@@ -0,0 +1,7 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ /**
3
+ * Registers a static MCP resource that lists all available styles in the Synergy Design System.
4
+ * Clients that support resources can read this directly without calling a tool.
5
+ * @param server - The MCP server instance to register the resource on.
6
+ */
7
+ export declare const stylesListResource: (server: McpServer) => void;
@@ -0,0 +1,31 @@
1
+ import { listStyles } from '@synergy-design-system/metadata';
2
+ const RESOURCE_URI = 'synergy://styles/list';
3
+ /**
4
+ * Registers a static MCP resource that lists all available styles in the Synergy Design System.
5
+ * Clients that support resources can read this directly without calling a tool.
6
+ * @param server - The MCP server instance to register the resource on.
7
+ */
8
+ export const stylesListResource = (server) => {
9
+ server.registerResource('styles-list', RESOURCE_URI, {
10
+ description: 'All available styles in the Synergy Design System, including theme metadata.',
11
+ mimeType: 'application/json',
12
+ title: 'Available styles',
13
+ }, async (_uri) => {
14
+ const styles = await listStyles({
15
+ includeLayerRefs: false,
16
+ includeSources: false,
17
+ });
18
+ const styleNames = styles.data
19
+ .map(c => c.name)
20
+ .toSorted();
21
+ return {
22
+ contents: [
23
+ {
24
+ mimeType: 'application/json',
25
+ text: JSON.stringify(styleNames, null, 2),
26
+ uri: RESOURCE_URI,
27
+ },
28
+ ],
29
+ };
30
+ });
31
+ };
@@ -0,0 +1,7 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ /**
3
+ * Registers a static MCP resource that lists all available templates in the Synergy Design System.
4
+ * Clients that support resources can read this directly without calling a tool.
5
+ * @param server - The MCP server instance to register the resource on.
6
+ */
7
+ export declare const templatesListResource: (server: McpServer) => void;
@@ -0,0 +1,28 @@
1
+ import { listTemplates } from '@synergy-design-system/metadata';
2
+ const RESOURCE_URI = 'synergy://templates/list';
3
+ /**
4
+ * Registers a static MCP resource that lists all available templates in the Synergy Design System.
5
+ * Clients that support resources can read this directly without calling a tool.
6
+ * @param server - The MCP server instance to register the resource on.
7
+ */
8
+ export const templatesListResource = (server) => {
9
+ server.registerResource('templates-list', RESOURCE_URI, {
10
+ description: 'All available templates in the Synergy Design System, including theme metadata.',
11
+ mimeType: 'application/json',
12
+ title: 'Available templates',
13
+ }, async (_uri) => {
14
+ const response = await listTemplates();
15
+ const templates = response.data
16
+ .map(template => template.name)
17
+ .toSorted();
18
+ return {
19
+ contents: [
20
+ {
21
+ mimeType: 'application/json',
22
+ text: JSON.stringify(templates, null, 2),
23
+ uri: RESOURCE_URI,
24
+ },
25
+ ],
26
+ };
27
+ });
28
+ };
package/dist/server.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import * as resources from './resources/index.js';
2
3
  import * as tools from './tools/index.js';
3
- import { getVersion } from './utilities/version.js';
4
+ import { getVersion } from './utilities/cli.js';
4
5
  /**
5
6
  * Creates a new instance of the MCP server configured for the Synergy Design System.
6
7
  * @returns A new instance of the MCP server configured for the Synergy Design System.
@@ -16,5 +17,8 @@ export const createServer = () => {
16
17
  Object.values(tools).forEach(tool => {
17
18
  tool(server);
18
19
  });
20
+ Object.values(resources).forEach(resource => {
21
+ resource(server);
22
+ });
19
23
  return server;
20
24
  };