@synergy-design-system/mcp 2.14.1 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (525) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +826 -303
  3. package/dist/bin/start.js +57 -6
  4. package/dist/middleware/compose.d.ts +15 -0
  5. package/dist/middleware/compose.js +10 -0
  6. package/dist/middleware/compression.d.ts +19 -0
  7. package/dist/middleware/compression.js +35 -0
  8. package/dist/middleware/error-handler.d.ts +13 -0
  9. package/dist/middleware/error-handler.js +42 -0
  10. package/dist/middleware/index.d.ts +9 -0
  11. package/dist/middleware/index.js +8 -0
  12. package/dist/middleware/logging.d.ts +14 -0
  13. package/dist/middleware/logging.js +64 -0
  14. package/dist/middleware/types.d.ts +20 -0
  15. package/dist/middleware/types.js +4 -0
  16. package/dist/resources/asset-list.d.ts +7 -0
  17. package/dist/resources/asset-list.js +34 -0
  18. package/dist/resources/component-cluster-list.d.ts +7 -0
  19. package/dist/resources/component-cluster-list.js +30 -0
  20. package/dist/resources/component-list.d.ts +7 -0
  21. package/dist/resources/component-list.js +31 -0
  22. package/dist/resources/index.d.ts +5 -0
  23. package/dist/resources/index.js +5 -0
  24. package/dist/resources/styles-list.d.ts +7 -0
  25. package/dist/resources/styles-list.js +31 -0
  26. package/dist/resources/templates-list.d.ts +7 -0
  27. package/dist/resources/templates-list.js +28 -0
  28. package/dist/server.js +5 -1
  29. package/dist/tools/asset-info.js +41 -85
  30. package/dist/tools/asset-list.js +22 -31
  31. package/dist/tools/component-cluster-list.d.ts +6 -0
  32. package/dist/tools/component-cluster-list.js +30 -0
  33. package/dist/tools/component-info.js +38 -21
  34. package/dist/tools/component-list.js +35 -30
  35. package/dist/tools/davinci-migration-info.d.ts +2 -0
  36. package/dist/tools/davinci-migration-info.js +21 -0
  37. package/dist/tools/davinci-migration-list.d.ts +2 -0
  38. package/dist/tools/davinci-migration-list.js +20 -0
  39. package/dist/tools/index.d.ts +6 -5
  40. package/dist/tools/index.js +6 -5
  41. package/dist/tools/migration-info.js +12 -37
  42. package/dist/tools/migration-list.js +7 -13
  43. package/dist/tools/setup.d.ts +6 -0
  44. package/dist/tools/setup.js +31 -0
  45. package/dist/tools/styles-info.d.ts +1 -2
  46. package/dist/tools/styles-info.js +24 -20
  47. package/dist/tools/styles-list.js +19 -33
  48. package/dist/tools/template-info.js +19 -20
  49. package/dist/tools/template-list.d.ts +1 -1
  50. package/dist/tools/template-list.js +17 -32
  51. package/dist/tools/{tokens.d.ts → token-info.d.ts} +2 -2
  52. package/dist/tools/token-info.js +31 -0
  53. package/dist/tools/tokens-list.d.ts +6 -0
  54. package/dist/tools/tokens-list.js +52 -0
  55. package/dist/transports/http.d.ts +14 -0
  56. package/dist/transports/http.js +157 -0
  57. package/dist/transports/index.d.ts +23 -0
  58. package/dist/transports/index.js +23 -0
  59. package/dist/transports/stdio.d.ts +10 -0
  60. package/dist/transports/stdio.js +21 -0
  61. package/dist/types/tool-response.d.ts +13 -0
  62. package/dist/types/tool-response.js +7 -0
  63. package/dist/utilities/cli.d.ts +27 -0
  64. package/dist/utilities/cli.js +170 -0
  65. package/dist/utilities/compression.d.ts +7 -0
  66. package/dist/utilities/compression.js +45 -0
  67. package/dist/utilities/config.d.ts +122 -80
  68. package/dist/utilities/config.js +212 -81
  69. package/dist/utilities/davinci.d.ts +12 -0
  70. package/dist/utilities/davinci.js +55 -0
  71. package/dist/utilities/index.d.ts +10 -10
  72. package/dist/utilities/index.js +10 -10
  73. package/dist/utilities/local-file-logger.d.ts +2 -0
  74. package/dist/utilities/local-file-logger.js +22 -0
  75. package/dist/utilities/logger.d.ts +12 -0
  76. package/dist/utilities/logger.js +30 -0
  77. package/dist/utilities/logging-context.d.ts +8 -0
  78. package/dist/utilities/logging-context.js +7 -0
  79. package/dist/utilities/logging-service.d.ts +2 -0
  80. package/dist/utilities/logging-service.js +24 -0
  81. package/dist/utilities/logging-types.d.ts +19 -0
  82. package/dist/utilities/metadata.d.ts +10 -17
  83. package/dist/utilities/metadata.js +34 -51
  84. package/dist/utilities/migration.d.ts +2 -1
  85. package/dist/utilities/migration.js +33 -30
  86. package/dist/utilities/rules.d.ts +8 -0
  87. package/dist/utilities/rules.js +37 -0
  88. package/dist/utilities/server.d.ts +7 -0
  89. package/dist/utilities/server.js +12 -0
  90. package/dist/utilities/token-counter.d.ts +14 -0
  91. package/dist/utilities/token-counter.js +53 -0
  92. package/package.json +18 -28
  93. package/rules/asset-info.md +10 -0
  94. package/rules/asset-list.md +10 -0
  95. package/rules/component-cluster-list.md +5 -0
  96. package/{metadata/static/angular/index.md → rules/component-info-angular.md} +2 -1
  97. package/{metadata/static/react/index.md → rules/component-info-react.md} +2 -1
  98. package/{metadata/static/vue/index.md → rules/component-info-vue.md} +4 -1
  99. package/{metadata/static/component-list/index.md → rules/component-list.md} +5 -7
  100. package/rules/styles-info.md +9 -0
  101. package/{metadata/static/styles/index.md → rules/styles-list.md} +0 -2
  102. package/{metadata/static/templates/index.md → rules/template-info.md} +0 -1
  103. package/rules/template-list.md +7 -0
  104. package/dist/bin/create-checksum.d.ts +0 -2
  105. package/dist/bin/create-checksum.js +0 -24
  106. package/dist/build/assets.d.ts +0 -4
  107. package/dist/build/assets.js +0 -57
  108. package/dist/build/build.js +0 -35
  109. package/dist/build/components.d.ts +0 -4
  110. package/dist/build/components.js +0 -133
  111. package/dist/build/fonts.d.ts +0 -4
  112. package/dist/build/fonts.js +0 -49
  113. package/dist/build/frameworks.d.ts +0 -4
  114. package/dist/build/frameworks.js +0 -61
  115. package/dist/build/static.d.ts +0 -4
  116. package/dist/build/static.js +0 -65
  117. package/dist/build/styles.d.ts +0 -4
  118. package/dist/build/styles.js +0 -58
  119. package/dist/build/tokens.d.ts +0 -4
  120. package/dist/build/tokens.js +0 -59
  121. package/dist/tools/davinci-migration.d.ts +0 -3
  122. package/dist/tools/davinci-migration.js +0 -66
  123. package/dist/tools/font-info.d.ts +0 -6
  124. package/dist/tools/font-info.js +0 -35
  125. package/dist/tools/framework-info.d.ts +0 -7
  126. package/dist/tools/framework-info.js +0 -58
  127. package/dist/tools/tokens.js +0 -24
  128. package/dist/tools/version.d.ts +0 -7
  129. package/dist/tools/version.js +0 -53
  130. package/dist/utilities/assets.d.ts +0 -2
  131. package/dist/utilities/assets.js +0 -3
  132. package/dist/utilities/checksum.d.ts +0 -36
  133. package/dist/utilities/checksum.js +0 -94
  134. package/dist/utilities/components.d.ts +0 -25
  135. package/dist/utilities/components.js +0 -86
  136. package/dist/utilities/file.d.ts +0 -12
  137. package/dist/utilities/file.js +0 -31
  138. package/dist/utilities/fonts.d.ts +0 -2
  139. package/dist/utilities/fonts.js +0 -3
  140. package/dist/utilities/stdio.d.ts +0 -14
  141. package/dist/utilities/stdio.js +0 -60
  142. package/dist/utilities/storybook/build-docs.d.ts +0 -2
  143. package/dist/utilities/storybook/build-docs.js +0 -43
  144. package/dist/utilities/storybook/configs.d.ts +0 -13
  145. package/dist/utilities/storybook/configs.js +0 -85
  146. package/dist/utilities/storybook/docs-scraper.d.ts +0 -26
  147. package/dist/utilities/storybook/docs-scraper.js +0 -96
  148. package/dist/utilities/storybook/index.d.ts +0 -5
  149. package/dist/utilities/storybook/index.js +0 -4
  150. package/dist/utilities/storybook/scraper.d.ts +0 -14
  151. package/dist/utilities/storybook/scraper.js +0 -243
  152. package/dist/utilities/storybook/storybook-manager.d.ts +0 -29
  153. package/dist/utilities/storybook/storybook-manager.js +0 -138
  154. package/dist/utilities/storybook/types.d.ts +0 -22
  155. package/dist/utilities/storybook/types.js +0 -1
  156. package/dist/utilities/styles.d.ts +0 -6
  157. package/dist/utilities/styles.js +0 -24
  158. package/dist/utilities/templates.d.ts +0 -12
  159. package/dist/utilities/templates.js +0 -28
  160. package/dist/utilities/tokens.d.ts +0 -1
  161. package/dist/utilities/tokens.js +0 -21
  162. package/dist/utilities/version.d.ts +0 -28
  163. package/dist/utilities/version.js +0 -21
  164. package/metadata/checksum.txt +0 -1
  165. package/metadata/davinci-migration/migration-guide.md +0 -1859
  166. package/metadata/packages/angular/LIMITATIONS.md +0 -32
  167. package/metadata/packages/angular/README.md +0 -393
  168. package/metadata/packages/assets/BREAKING_CHANGES.md +0 -305
  169. package/metadata/packages/assets/CHANGELOG.md +0 -364
  170. package/metadata/packages/assets/README.md +0 -103
  171. package/metadata/packages/components/components/syn-accordion/component.angular.ts +0 -80
  172. package/metadata/packages/components/components/syn-accordion/component.react.ts +0 -30
  173. package/metadata/packages/components/components/syn-accordion/component.styles.ts +0 -15
  174. package/metadata/packages/components/components/syn-accordion/component.ts +0 -111
  175. package/metadata/packages/components/components/syn-accordion/component.vue +0 -64
  176. package/metadata/packages/components/components/syn-alert/component.angular.ts +0 -169
  177. package/metadata/packages/components/components/syn-alert/component.react.ts +0 -60
  178. package/metadata/packages/components/components/syn-alert/component.styles.ts +0 -203
  179. package/metadata/packages/components/components/syn-alert/component.ts +0 -322
  180. package/metadata/packages/components/components/syn-alert/component.vue +0 -135
  181. package/metadata/packages/components/components/syn-badge/component.angular.ts +0 -53
  182. package/metadata/packages/components/components/syn-badge/component.custom.styles.ts +0 -62
  183. package/metadata/packages/components/components/syn-badge/component.react.ts +0 -29
  184. package/metadata/packages/components/components/syn-badge/component.styles.ts +0 -52
  185. package/metadata/packages/components/components/syn-badge/component.ts +0 -58
  186. package/metadata/packages/components/components/syn-badge/component.vue +0 -53
  187. package/metadata/packages/components/components/syn-breadcrumb/component.angular.ts +0 -58
  188. package/metadata/packages/components/components/syn-breadcrumb/component.custom.styles.ts +0 -5
  189. package/metadata/packages/components/components/syn-breadcrumb/component.react.ts +0 -32
  190. package/metadata/packages/components/components/syn-breadcrumb/component.styles.ts +0 -11
  191. package/metadata/packages/components/components/syn-breadcrumb/component.ts +0 -103
  192. package/metadata/packages/components/components/syn-breadcrumb/component.vue +0 -58
  193. package/metadata/packages/components/components/syn-breadcrumb-item/component.angular.ts +0 -88
  194. package/metadata/packages/components/components/syn-breadcrumb-item/component.custom.styles.ts +0 -78
  195. package/metadata/packages/components/components/syn-breadcrumb-item/component.react.ts +0 -37
  196. package/metadata/packages/components/components/syn-breadcrumb-item/component.styles.ts +0 -88
  197. package/metadata/packages/components/components/syn-breadcrumb-item/component.ts +0 -132
  198. package/metadata/packages/components/components/syn-breadcrumb-item/component.vue +0 -76
  199. package/metadata/packages/components/components/syn-button/component.angular.ts +0 -318
  200. package/metadata/packages/components/components/syn-button/component.custom.styles.ts +0 -245
  201. package/metadata/packages/components/components/syn-button/component.react.ts +0 -56
  202. package/metadata/packages/components/components/syn-button/component.styles.ts +0 -361
  203. package/metadata/packages/components/components/syn-button/component.ts +0 -315
  204. package/metadata/packages/components/components/syn-button/component.vue +0 -204
  205. package/metadata/packages/components/components/syn-button-group/component.angular.ts +0 -79
  206. package/metadata/packages/components/components/syn-button-group/component.custom.styles.ts +0 -5
  207. package/metadata/packages/components/components/syn-button-group/component.react.ts +0 -29
  208. package/metadata/packages/components/components/syn-button-group/component.styles.ts +0 -14
  209. package/metadata/packages/components/components/syn-button-group/component.ts +0 -171
  210. package/metadata/packages/components/components/syn-button-group/component.vue +0 -67
  211. package/metadata/packages/components/components/syn-card/component.angular.ts +0 -83
  212. package/metadata/packages/components/components/syn-card/component.custom.styles.ts +0 -60
  213. package/metadata/packages/components/components/syn-card/component.react.ts +0 -41
  214. package/metadata/packages/components/components/syn-card/component.styles.ts +0 -70
  215. package/metadata/packages/components/components/syn-card/component.ts +0 -65
  216. package/metadata/packages/components/components/syn-card/component.vue +0 -73
  217. package/metadata/packages/components/components/syn-checkbox/component.angular.ts +0 -273
  218. package/metadata/packages/components/components/syn-checkbox/component.react.ts +0 -64
  219. package/metadata/packages/components/components/syn-checkbox/component.styles.ts +0 -183
  220. package/metadata/packages/components/components/syn-checkbox/component.ts +0 -287
  221. package/metadata/packages/components/components/syn-checkbox/component.vue +0 -191
  222. package/metadata/packages/components/components/syn-combobox/component.angular.ts +0 -516
  223. package/metadata/packages/components/components/syn-combobox/component.react.ts +0 -118
  224. package/metadata/packages/components/components/syn-combobox/component.styles.ts +0 -393
  225. package/metadata/packages/components/components/syn-combobox/component.ts +0 -1684
  226. package/metadata/packages/components/components/syn-combobox/component.vue +0 -350
  227. package/metadata/packages/components/components/syn-details/component.angular.ts +0 -186
  228. package/metadata/packages/components/components/syn-details/component.react.ts +0 -65
  229. package/metadata/packages/components/components/syn-details/component.styles.ts +0 -181
  230. package/metadata/packages/components/components/syn-details/component.ts +0 -261
  231. package/metadata/packages/components/components/syn-details/component.vue +0 -136
  232. package/metadata/packages/components/components/syn-dialog/component.angular.ts +0 -201
  233. package/metadata/packages/components/components/syn-dialog/component.react.ts +0 -91
  234. package/metadata/packages/components/components/syn-dialog/component.styles.ts +0 -130
  235. package/metadata/packages/components/components/syn-dialog/component.ts +0 -367
  236. package/metadata/packages/components/components/syn-dialog/component.vue +0 -169
  237. package/metadata/packages/components/components/syn-divider/component.angular.ts +0 -55
  238. package/metadata/packages/components/components/syn-divider/component.react.ts +0 -29
  239. package/metadata/packages/components/components/syn-divider/component.styles.ts +0 -22
  240. package/metadata/packages/components/components/syn-divider/component.ts +0 -34
  241. package/metadata/packages/components/components/syn-divider/component.vue +0 -51
  242. package/metadata/packages/components/components/syn-drawer/component.angular.ts +0 -234
  243. package/metadata/packages/components/components/syn-drawer/component.custom.styles.ts +0 -78
  244. package/metadata/packages/components/components/syn-drawer/component.react.ts +0 -98
  245. package/metadata/packages/components/components/syn-drawer/component.styles.ts +0 -158
  246. package/metadata/packages/components/components/syn-drawer/component.ts +0 -489
  247. package/metadata/packages/components/components/syn-drawer/component.vue +0 -188
  248. package/metadata/packages/components/components/syn-dropdown/component.angular.ts +0 -208
  249. package/metadata/packages/components/components/syn-dropdown/component.react.ts +0 -59
  250. package/metadata/packages/components/components/syn-dropdown/component.styles.ts +0 -51
  251. package/metadata/packages/components/components/syn-dropdown/component.ts +0 -469
  252. package/metadata/packages/components/components/syn-dropdown/component.vue +0 -152
  253. package/metadata/packages/components/components/syn-file/component.angular.ts +0 -372
  254. package/metadata/packages/components/components/syn-file/component.react.ts +0 -85
  255. package/metadata/packages/components/components/syn-file/component.styles.ts +0 -197
  256. package/metadata/packages/components/components/syn-file/component.ts +0 -645
  257. package/metadata/packages/components/components/syn-file/component.vue +0 -256
  258. package/metadata/packages/components/components/syn-header/component.angular.ts +0 -149
  259. package/metadata/packages/components/components/syn-header/component.react.ts +0 -68
  260. package/metadata/packages/components/components/syn-header/component.styles.ts +0 -143
  261. package/metadata/packages/components/components/syn-header/component.ts +0 -310
  262. package/metadata/packages/components/components/syn-header/component.vue +0 -126
  263. package/metadata/packages/components/components/syn-icon/component.angular.ts +0 -115
  264. package/metadata/packages/components/components/syn-icon/component.custom.styles.ts +0 -5
  265. package/metadata/packages/components/components/syn-icon/component.react.ts +0 -41
  266. package/metadata/packages/components/components/syn-icon/component.styles.ts +0 -18
  267. package/metadata/packages/components/components/syn-icon/component.ts +0 -227
  268. package/metadata/packages/components/components/syn-icon/component.vue +0 -100
  269. package/metadata/packages/components/components/syn-icon-button/component.angular.ts +0 -185
  270. package/metadata/packages/components/components/syn-icon-button/component.custom.styles.ts +0 -79
  271. package/metadata/packages/components/components/syn-icon-button/component.react.ts +0 -42
  272. package/metadata/packages/components/components/syn-icon-button/component.styles.ts +0 -52
  273. package/metadata/packages/components/components/syn-icon-button/component.ts +0 -147
  274. package/metadata/packages/components/components/syn-icon-button/component.vue +0 -132
  275. package/metadata/packages/components/components/syn-input/component.angular.ts +0 -608
  276. package/metadata/packages/components/components/syn-input/component.custom.styles.ts +0 -278
  277. package/metadata/packages/components/components/syn-input/component.react.ts +0 -91
  278. package/metadata/packages/components/components/syn-input/component.styles.ts +0 -280
  279. package/metadata/packages/components/components/syn-input/component.ts +0 -941
  280. package/metadata/packages/components/components/syn-input/component.vue +0 -370
  281. package/metadata/packages/components/components/syn-menu/component.angular.ts +0 -52
  282. package/metadata/packages/components/components/syn-menu/component.react.ts +0 -36
  283. package/metadata/packages/components/components/syn-menu/component.styles.ts +0 -37
  284. package/metadata/packages/components/components/syn-menu/component.ts +0 -191
  285. package/metadata/packages/components/components/syn-menu/component.vue +0 -48
  286. package/metadata/packages/components/components/syn-menu-item/component.angular.ts +0 -121
  287. package/metadata/packages/components/components/syn-menu-item/component.react.ts +0 -45
  288. package/metadata/packages/components/components/syn-menu-item/component.styles.ts +0 -285
  289. package/metadata/packages/components/components/syn-menu-item/component.ts +0 -201
  290. package/metadata/packages/components/components/syn-menu-item/component.vue +0 -91
  291. package/metadata/packages/components/components/syn-menu-label/component.angular.ts +0 -48
  292. package/metadata/packages/components/components/syn-menu-label/component.react.ts +0 -35
  293. package/metadata/packages/components/components/syn-menu-label/component.styles.ts +0 -31
  294. package/metadata/packages/components/components/syn-menu-label/component.ts +0 -46
  295. package/metadata/packages/components/components/syn-menu-label/component.vue +0 -41
  296. package/metadata/packages/components/components/syn-nav-item/component.angular.ts +0 -242
  297. package/metadata/packages/components/components/syn-nav-item/component.react.ts +0 -82
  298. package/metadata/packages/components/components/syn-nav-item/component.styles.ts +0 -333
  299. package/metadata/packages/components/components/syn-nav-item/component.ts +0 -491
  300. package/metadata/packages/components/components/syn-nav-item/component.vue +0 -182
  301. package/metadata/packages/components/components/syn-optgroup/component.angular.ts +0 -79
  302. package/metadata/packages/components/components/syn-optgroup/component.react.ts +0 -41
  303. package/metadata/packages/components/components/syn-optgroup/component.styles.ts +0 -61
  304. package/metadata/packages/components/components/syn-optgroup/component.ts +0 -176
  305. package/metadata/packages/components/components/syn-optgroup/component.vue +0 -71
  306. package/metadata/packages/components/components/syn-option/component.angular.ts +0 -79
  307. package/metadata/packages/components/components/syn-option/component.react.ts +0 -37
  308. package/metadata/packages/components/components/syn-option/component.styles.ts +0 -165
  309. package/metadata/packages/components/components/syn-option/component.ts +0 -191
  310. package/metadata/packages/components/components/syn-option/component.vue +0 -71
  311. package/metadata/packages/components/components/syn-popup/component.angular.ts +0 -372
  312. package/metadata/packages/components/components/syn-popup/component.react.ts +0 -55
  313. package/metadata/packages/components/components/syn-popup/component.styles.ts +0 -70
  314. package/metadata/packages/components/components/syn-popup/component.ts +0 -582
  315. package/metadata/packages/components/components/syn-popup/component.vue +0 -233
  316. package/metadata/packages/components/components/syn-prio-nav/component.angular.ts +0 -67
  317. package/metadata/packages/components/components/syn-prio-nav/component.react.ts +0 -54
  318. package/metadata/packages/components/components/syn-prio-nav/component.styles.ts +0 -48
  319. package/metadata/packages/components/components/syn-prio-nav/component.ts +0 -288
  320. package/metadata/packages/components/components/syn-prio-nav/component.vue +0 -60
  321. package/metadata/packages/components/components/syn-progress-bar/component.angular.ts +0 -85
  322. package/metadata/packages/components/components/syn-progress-bar/component.custom.styles.ts +0 -24
  323. package/metadata/packages/components/components/syn-progress-bar/component.react.ts +0 -37
  324. package/metadata/packages/components/components/syn-progress-bar/component.styles.ts +0 -87
  325. package/metadata/packages/components/components/syn-progress-bar/component.ts +0 -67
  326. package/metadata/packages/components/components/syn-progress-bar/component.vue +0 -71
  327. package/metadata/packages/components/components/syn-progress-ring/component.angular.ts +0 -72
  328. package/metadata/packages/components/components/syn-progress-ring/component.custom.styles.ts +0 -19
  329. package/metadata/packages/components/components/syn-progress-ring/component.react.ts +0 -37
  330. package/metadata/packages/components/components/syn-progress-ring/component.styles.ts +0 -70
  331. package/metadata/packages/components/components/syn-progress-ring/component.ts +0 -83
  332. package/metadata/packages/components/components/syn-progress-ring/component.vue +0 -66
  333. package/metadata/packages/components/components/syn-radio/component.angular.ts +0 -122
  334. package/metadata/packages/components/components/syn-radio/component.react.ts +0 -48
  335. package/metadata/packages/components/components/syn-radio/component.styles.ts +0 -179
  336. package/metadata/packages/components/components/syn-radio/component.ts +0 -131
  337. package/metadata/packages/components/components/syn-radio/component.vue +0 -104
  338. package/metadata/packages/components/components/syn-radio-button/component.angular.ts +0 -123
  339. package/metadata/packages/components/components/syn-radio-button/component.react.ts +0 -49
  340. package/metadata/packages/components/components/syn-radio-button/component.styles.ts +0 -30
  341. package/metadata/packages/components/components/syn-radio-button/component.ts +0 -142
  342. package/metadata/packages/components/components/syn-radio-button/component.vue +0 -105
  343. package/metadata/packages/components/components/syn-radio-group/component.angular.ts +0 -204
  344. package/metadata/packages/components/components/syn-radio-group/component.react.ts +0 -56
  345. package/metadata/packages/components/components/syn-radio-group/component.styles.ts +0 -58
  346. package/metadata/packages/components/components/syn-radio-group/component.ts +0 -440
  347. package/metadata/packages/components/components/syn-radio-group/component.vue +0 -158
  348. package/metadata/packages/components/components/syn-range/component.angular.ts +0 -347
  349. package/metadata/packages/components/components/syn-range/component.react.ts +0 -92
  350. package/metadata/packages/components/components/syn-range/component.styles.ts +0 -310
  351. package/metadata/packages/components/components/syn-range/component.ts +0 -933
  352. package/metadata/packages/components/components/syn-range/component.vue +0 -245
  353. package/metadata/packages/components/components/syn-range-tick/component.angular.ts +0 -59
  354. package/metadata/packages/components/components/syn-range-tick/component.react.ts +0 -33
  355. package/metadata/packages/components/components/syn-range-tick/component.styles.ts +0 -34
  356. package/metadata/packages/components/components/syn-range-tick/component.ts +0 -50
  357. package/metadata/packages/components/components/syn-range-tick/component.vue +0 -57
  358. package/metadata/packages/components/components/syn-resize-observer/component.styles.ts +0 -9
  359. package/metadata/packages/components/components/syn-resize-observer/component.ts +0 -91
  360. package/metadata/packages/components/components/syn-select/component.angular.ts +0 -439
  361. package/metadata/packages/components/components/syn-select/component.react.ts +0 -101
  362. package/metadata/packages/components/components/syn-select/component.styles.ts +0 -380
  363. package/metadata/packages/components/components/syn-select/component.ts +0 -1056
  364. package/metadata/packages/components/components/syn-select/component.vue +0 -301
  365. package/metadata/packages/components/components/syn-side-nav/component.angular.ts +0 -210
  366. package/metadata/packages/components/components/syn-side-nav/component.react.ts +0 -95
  367. package/metadata/packages/components/components/syn-side-nav/component.styles.ts +0 -142
  368. package/metadata/packages/components/components/syn-side-nav/component.ts +0 -458
  369. package/metadata/packages/components/components/syn-side-nav/component.vue +0 -188
  370. package/metadata/packages/components/components/syn-spinner/component.angular.ts +0 -44
  371. package/metadata/packages/components/components/syn-spinner/component.custom.styles.ts +0 -32
  372. package/metadata/packages/components/components/syn-spinner/component.react.ts +0 -31
  373. package/metadata/packages/components/components/syn-spinner/component.styles.ts +0 -48
  374. package/metadata/packages/components/components/syn-spinner/component.ts +0 -35
  375. package/metadata/packages/components/components/syn-spinner/component.vue +0 -35
  376. package/metadata/packages/components/components/syn-switch/component.angular.ts +0 -257
  377. package/metadata/packages/components/components/syn-switch/component.react.ts +0 -63
  378. package/metadata/packages/components/components/syn-switch/component.styles.ts +0 -252
  379. package/metadata/packages/components/components/syn-switch/component.ts +0 -279
  380. package/metadata/packages/components/components/syn-switch/component.vue +0 -183
  381. package/metadata/packages/components/components/syn-tab/component.angular.ts +0 -109
  382. package/metadata/packages/components/components/syn-tab/component.custom.styles.ts +0 -94
  383. package/metadata/packages/components/components/syn-tab/component.react.ts +0 -42
  384. package/metadata/packages/components/components/syn-tab/component.styles.ts +0 -70
  385. package/metadata/packages/components/components/syn-tab/component.ts +0 -125
  386. package/metadata/packages/components/components/syn-tab/component.vue +0 -91
  387. package/metadata/packages/components/components/syn-tab-group/component.angular.ts +0 -166
  388. package/metadata/packages/components/components/syn-tab-group/component.custom.styles.ts +0 -218
  389. package/metadata/packages/components/components/syn-tab-group/component.react.ts +0 -58
  390. package/metadata/packages/components/components/syn-tab-group/component.styles.ts +0 -193
  391. package/metadata/packages/components/components/syn-tab-group/component.ts +0 -551
  392. package/metadata/packages/components/components/syn-tab-group/component.vue +0 -126
  393. package/metadata/packages/components/components/syn-tab-panel/component.angular.ts +0 -68
  394. package/metadata/packages/components/components/syn-tab-panel/component.custom.styles.ts +0 -8
  395. package/metadata/packages/components/components/syn-tab-panel/component.react.ts +0 -31
  396. package/metadata/packages/components/components/syn-tab-panel/component.styles.ts +0 -20
  397. package/metadata/packages/components/components/syn-tab-panel/component.ts +0 -60
  398. package/metadata/packages/components/components/syn-tab-panel/component.vue +0 -60
  399. package/metadata/packages/components/components/syn-tag/component.angular.ts +0 -83
  400. package/metadata/packages/components/components/syn-tag/component.custom.styles.ts +0 -121
  401. package/metadata/packages/components/components/syn-tag/component.react.ts +0 -43
  402. package/metadata/packages/components/components/syn-tag/component.styles.ts +0 -58
  403. package/metadata/packages/components/components/syn-tag/component.ts +0 -83
  404. package/metadata/packages/components/components/syn-tag/component.vue +0 -81
  405. package/metadata/packages/components/components/syn-tag-group/component.angular.ts +0 -83
  406. package/metadata/packages/components/components/syn-tag-group/component.react.ts +0 -33
  407. package/metadata/packages/components/components/syn-tag-group/component.styles.ts +0 -49
  408. package/metadata/packages/components/components/syn-tag-group/component.ts +0 -95
  409. package/metadata/packages/components/components/syn-tag-group/component.vue +0 -69
  410. package/metadata/packages/components/components/syn-textarea/component.angular.ts +0 -396
  411. package/metadata/packages/components/components/syn-textarea/component.react.ts +0 -60
  412. package/metadata/packages/components/components/syn-textarea/component.styles.ts +0 -208
  413. package/metadata/packages/components/components/syn-textarea/component.ts +0 -400
  414. package/metadata/packages/components/components/syn-textarea/component.vue +0 -244
  415. package/metadata/packages/components/components/syn-tooltip/component.angular.ts +0 -196
  416. package/metadata/packages/components/components/syn-tooltip/component.react.ts +0 -63
  417. package/metadata/packages/components/components/syn-tooltip/component.styles.ts +0 -62
  418. package/metadata/packages/components/components/syn-tooltip/component.ts +0 -312
  419. package/metadata/packages/components/components/syn-tooltip/component.vue +0 -150
  420. package/metadata/packages/components/components/syn-validate/component.angular.ts +0 -137
  421. package/metadata/packages/components/components/syn-validate/component.react.ts +0 -44
  422. package/metadata/packages/components/components/syn-validate/component.styles.ts +0 -9
  423. package/metadata/packages/components/components/syn-validate/component.ts +0 -590
  424. package/metadata/packages/components/components/syn-validate/component.vue +0 -107
  425. package/metadata/packages/components/migration/BREAKING_CHANGES.md +0 -908
  426. package/metadata/packages/components/static/CHANGELOG.md +0 -2140
  427. package/metadata/packages/components/static/LIMITATIONS.md +0 -433
  428. package/metadata/packages/components/static/README.md +0 -231
  429. package/metadata/packages/fonts/CHANGELOG.md +0 -57
  430. package/metadata/packages/fonts/README.md +0 -164
  431. package/metadata/packages/fonts/package.json +0 -72
  432. package/metadata/packages/react/LIMITATIONS.md +0 -31
  433. package/metadata/packages/react/README.md +0 -262
  434. package/metadata/packages/styles/BREAKING_CHANGES.md +0 -105
  435. package/metadata/packages/styles/CHANGELOG.md +0 -188
  436. package/metadata/packages/styles/README.md +0 -132
  437. package/metadata/packages/styles/index.css +0 -300
  438. package/metadata/packages/styles/link-list.css +0 -47
  439. package/metadata/packages/styles/link.css +0 -81
  440. package/metadata/packages/styles/tables.css +0 -132
  441. package/metadata/packages/styles/typography.css +0 -52
  442. package/metadata/packages/tokens/BREAKING_CHANGES.md +0 -180
  443. package/metadata/packages/tokens/CHANGELOG.md +0 -949
  444. package/metadata/packages/tokens/README.md +0 -435
  445. package/metadata/packages/tokens/dark.css +0 -454
  446. package/metadata/packages/tokens/index.js +0 -2224
  447. package/metadata/packages/tokens/light.css +0 -454
  448. package/metadata/packages/tokens/sick2018_dark.css +0 -454
  449. package/metadata/packages/tokens/sick2018_light.css +0 -454
  450. package/metadata/packages/tokens/sick2025_dark.css +0 -454
  451. package/metadata/packages/tokens/sick2025_light.css +0 -454
  452. package/metadata/packages/vue/LIMITATIONS.md +0 -53
  453. package/metadata/packages/vue/README.md +0 -252
  454. package/metadata/static/assets/index.md +0 -10
  455. package/metadata/static/components/index.md +0 -10
  456. package/metadata/static/components/syn-accordion/docs.md +0 -449
  457. package/metadata/static/components/syn-alert/docs.md +0 -282
  458. package/metadata/static/components/syn-badge/docs.md +0 -106
  459. package/metadata/static/components/syn-breadcrumb/docs.md +0 -265
  460. package/metadata/static/components/syn-breadcrumb-item/docs.md +0 -49
  461. package/metadata/static/components/syn-button/docs.md +0 -472
  462. package/metadata/static/components/syn-button-group/docs.md +0 -259
  463. package/metadata/static/components/syn-card/docs.md +0 -314
  464. package/metadata/static/components/syn-checkbox/docs.md +0 -176
  465. package/metadata/static/components/syn-combobox/docs.md +0 -2633
  466. package/metadata/static/components/syn-details/docs.md +0 -227
  467. package/metadata/static/components/syn-dialog/docs.md +0 -220
  468. package/metadata/static/components/syn-divider/docs.md +0 -77
  469. package/metadata/static/components/syn-drawer/docs.md +0 -269
  470. package/metadata/static/components/syn-dropdown/docs.md +0 -316
  471. package/metadata/static/components/syn-file/docs.md +0 -239
  472. package/metadata/static/components/syn-header/docs.md +0 -209
  473. package/metadata/static/components/syn-icon/docs.md +0 -177
  474. package/metadata/static/components/syn-icon-button/docs.md +0 -142
  475. package/metadata/static/components/syn-input/docs.md +0 -462
  476. package/metadata/static/components/syn-menu/docs.md +0 -162
  477. package/metadata/static/components/syn-menu-item/docs.md +0 -216
  478. package/metadata/static/components/syn-menu-label/docs.md +0 -29
  479. package/metadata/static/components/syn-nav-item/docs.md +0 -166
  480. package/metadata/static/components/syn-optgroup/docs.md +0 -167
  481. package/metadata/static/components/syn-option/docs.md +0 -137
  482. package/metadata/static/components/syn-popup/docs.md +0 -812
  483. package/metadata/static/components/syn-prio-nav/docs.md +0 -54
  484. package/metadata/static/components/syn-progress-bar/docs.md +0 -77
  485. package/metadata/static/components/syn-progress-ring/docs.md +0 -89
  486. package/metadata/static/components/syn-radio/docs.md +0 -178
  487. package/metadata/static/components/syn-radio-group/docs.md +0 -484
  488. package/metadata/static/components/syn-range/docs.md +0 -438
  489. package/metadata/static/components/syn-range-tick/docs.md +0 -110
  490. package/metadata/static/components/syn-select/docs.md +0 -811
  491. package/metadata/static/components/syn-side-nav/docs.md +0 -593
  492. package/metadata/static/components/syn-spinner/docs.md +0 -45
  493. package/metadata/static/components/syn-switch/docs.md +0 -121
  494. package/metadata/static/components/syn-tab/docs.md +0 -47
  495. package/metadata/static/components/syn-tab-group/docs.md +0 -1094
  496. package/metadata/static/components/syn-tab-panel/docs.md +0 -91
  497. package/metadata/static/components/syn-tag/docs.md +0 -50
  498. package/metadata/static/components/syn-tag-group/docs.md +0 -269
  499. package/metadata/static/components/syn-textarea/docs.md +0 -215
  500. package/metadata/static/components/syn-tooltip/docs.md +0 -217
  501. package/metadata/static/components/syn-validate/docs.md +0 -305
  502. package/metadata/static/fonts/index.md +0 -4
  503. package/metadata/static/migration/index.md +0 -57
  504. package/metadata/static/migration/v2-2018-to-v2-2025.md +0 -481
  505. package/metadata/static/migration/v2-2018-to-v3-2018.md +0 -147
  506. package/metadata/static/migration/v2-2018-to-v3-2025.md +0 -150
  507. package/metadata/static/migration/v2-2025-to-v3-2025.md +0 -133
  508. package/metadata/static/setup/icon-usage.md +0 -411
  509. package/metadata/static/setup/prerequisites.md +0 -319
  510. package/metadata/static/styles/syn-body.md +0 -5
  511. package/metadata/static/styles/syn-heading.md +0 -5
  512. package/metadata/static/styles/syn-link-list.md +0 -325
  513. package/metadata/static/styles/syn-link.md +0 -156
  514. package/metadata/static/styles/syn-table-cell.md +0 -127
  515. package/metadata/static/styles/syn-table.md +0 -201
  516. package/metadata/static/styles/syn-weight.md +0 -5
  517. package/metadata/static/templates/appshell.md +0 -2053
  518. package/metadata/static/templates/breadcrumb.md +0 -379
  519. package/metadata/static/templates/footer.md +0 -340
  520. package/metadata/static/templates/forms.md +0 -558
  521. package/metadata/static/templates/localization.md +0 -279
  522. package/metadata/static/templates/table.md +0 -1425
  523. package/metadata/static/templates/tag-group.md +0 -833
  524. /package/dist/{build/build.d.ts → utilities/logging-types.js} +0 -0
  525. /package/{metadata/static/component-info/index.md → rules/component-info.md} +0 -0
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
  };