@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.
- package/CHANGELOG.md +24 -0
- package/README.md +826 -303
- package/dist/bin/start.js +57 -6
- package/dist/middleware/compose.d.ts +15 -0
- package/dist/middleware/compose.js +10 -0
- package/dist/middleware/compression.d.ts +19 -0
- package/dist/middleware/compression.js +35 -0
- package/dist/middleware/error-handler.d.ts +13 -0
- package/dist/middleware/error-handler.js +42 -0
- package/dist/middleware/index.d.ts +9 -0
- package/dist/middleware/index.js +8 -0
- package/dist/middleware/logging.d.ts +14 -0
- package/dist/middleware/logging.js +64 -0
- package/dist/middleware/types.d.ts +20 -0
- package/dist/middleware/types.js +4 -0
- package/dist/resources/asset-list.d.ts +7 -0
- package/dist/resources/asset-list.js +34 -0
- package/dist/resources/component-cluster-list.d.ts +7 -0
- package/dist/resources/component-cluster-list.js +30 -0
- package/dist/resources/component-list.d.ts +7 -0
- package/dist/resources/component-list.js +31 -0
- package/dist/resources/index.d.ts +5 -0
- package/dist/resources/index.js +5 -0
- package/dist/resources/styles-list.d.ts +7 -0
- package/dist/resources/styles-list.js +31 -0
- package/dist/resources/templates-list.d.ts +7 -0
- package/dist/resources/templates-list.js +28 -0
- package/dist/server.js +5 -1
- package/dist/tools/asset-info.js +41 -85
- package/dist/tools/asset-list.js +22 -31
- package/dist/tools/component-cluster-list.d.ts +6 -0
- package/dist/tools/component-cluster-list.js +30 -0
- package/dist/tools/component-info.js +38 -21
- package/dist/tools/component-list.js +35 -30
- package/dist/tools/davinci-migration-info.d.ts +2 -0
- package/dist/tools/davinci-migration-info.js +21 -0
- package/dist/tools/davinci-migration-list.d.ts +2 -0
- package/dist/tools/davinci-migration-list.js +20 -0
- package/dist/tools/index.d.ts +6 -5
- package/dist/tools/index.js +6 -5
- package/dist/tools/migration-info.js +12 -37
- package/dist/tools/migration-list.js +7 -13
- package/dist/tools/setup.d.ts +6 -0
- package/dist/tools/setup.js +31 -0
- package/dist/tools/styles-info.d.ts +1 -2
- package/dist/tools/styles-info.js +24 -20
- package/dist/tools/styles-list.js +19 -33
- package/dist/tools/template-info.js +19 -20
- package/dist/tools/template-list.d.ts +1 -1
- package/dist/tools/template-list.js +17 -32
- package/dist/tools/{tokens.d.ts → token-info.d.ts} +2 -2
- package/dist/tools/token-info.js +31 -0
- package/dist/tools/tokens-list.d.ts +6 -0
- package/dist/tools/tokens-list.js +52 -0
- package/dist/transports/http.d.ts +14 -0
- package/dist/transports/http.js +157 -0
- package/dist/transports/index.d.ts +23 -0
- package/dist/transports/index.js +23 -0
- package/dist/transports/stdio.d.ts +10 -0
- package/dist/transports/stdio.js +21 -0
- package/dist/types/tool-response.d.ts +13 -0
- package/dist/types/tool-response.js +7 -0
- package/dist/utilities/cli.d.ts +27 -0
- package/dist/utilities/cli.js +170 -0
- package/dist/utilities/compression.d.ts +7 -0
- package/dist/utilities/compression.js +45 -0
- package/dist/utilities/config.d.ts +122 -80
- package/dist/utilities/config.js +212 -81
- package/dist/utilities/davinci.d.ts +12 -0
- package/dist/utilities/davinci.js +55 -0
- package/dist/utilities/index.d.ts +10 -10
- package/dist/utilities/index.js +10 -10
- package/dist/utilities/local-file-logger.d.ts +2 -0
- package/dist/utilities/local-file-logger.js +22 -0
- package/dist/utilities/logger.d.ts +12 -0
- package/dist/utilities/logger.js +30 -0
- package/dist/utilities/logging-context.d.ts +8 -0
- package/dist/utilities/logging-context.js +7 -0
- package/dist/utilities/logging-service.d.ts +2 -0
- package/dist/utilities/logging-service.js +24 -0
- package/dist/utilities/logging-types.d.ts +19 -0
- package/dist/utilities/metadata.d.ts +10 -17
- package/dist/utilities/metadata.js +34 -51
- package/dist/utilities/migration.d.ts +2 -1
- package/dist/utilities/migration.js +33 -30
- package/dist/utilities/rules.d.ts +8 -0
- package/dist/utilities/rules.js +37 -0
- package/dist/utilities/server.d.ts +7 -0
- package/dist/utilities/server.js +12 -0
- package/dist/utilities/token-counter.d.ts +14 -0
- package/dist/utilities/token-counter.js +53 -0
- package/package.json +20 -30
- package/rules/asset-info.md +10 -0
- package/rules/asset-list.md +10 -0
- package/rules/component-cluster-list.md +5 -0
- package/{metadata/static/angular/index.md → rules/component-info-angular.md} +2 -1
- package/{metadata/static/react/index.md → rules/component-info-react.md} +2 -1
- package/{metadata/static/vue/index.md → rules/component-info-vue.md} +4 -1
- package/{metadata/static/component-list/index.md → rules/component-list.md} +5 -7
- package/rules/styles-info.md +9 -0
- package/{metadata/static/styles/index.md → rules/styles-list.md} +0 -2
- package/{metadata/static/templates/index.md → rules/template-info.md} +0 -1
- package/rules/template-list.md +7 -0
- package/dist/bin/create-checksum.d.ts +0 -2
- package/dist/bin/create-checksum.js +0 -24
- package/dist/build/assets.d.ts +0 -4
- package/dist/build/assets.js +0 -57
- package/dist/build/build.js +0 -35
- package/dist/build/components.d.ts +0 -4
- package/dist/build/components.js +0 -133
- package/dist/build/fonts.d.ts +0 -4
- package/dist/build/fonts.js +0 -49
- package/dist/build/frameworks.d.ts +0 -4
- package/dist/build/frameworks.js +0 -61
- package/dist/build/static.d.ts +0 -4
- package/dist/build/static.js +0 -65
- package/dist/build/styles.d.ts +0 -4
- package/dist/build/styles.js +0 -58
- package/dist/build/tokens.d.ts +0 -4
- package/dist/build/tokens.js +0 -59
- package/dist/tools/davinci-migration.d.ts +0 -3
- package/dist/tools/davinci-migration.js +0 -66
- package/dist/tools/font-info.d.ts +0 -6
- package/dist/tools/font-info.js +0 -35
- package/dist/tools/framework-info.d.ts +0 -7
- package/dist/tools/framework-info.js +0 -58
- package/dist/tools/tokens.js +0 -24
- package/dist/tools/version.d.ts +0 -7
- package/dist/tools/version.js +0 -53
- package/dist/utilities/assets.d.ts +0 -2
- package/dist/utilities/assets.js +0 -3
- package/dist/utilities/checksum.d.ts +0 -36
- package/dist/utilities/checksum.js +0 -94
- package/dist/utilities/components.d.ts +0 -25
- package/dist/utilities/components.js +0 -86
- package/dist/utilities/file.d.ts +0 -12
- package/dist/utilities/file.js +0 -31
- package/dist/utilities/fonts.d.ts +0 -2
- package/dist/utilities/fonts.js +0 -3
- package/dist/utilities/stdio.d.ts +0 -14
- package/dist/utilities/stdio.js +0 -60
- package/dist/utilities/storybook/build-docs.d.ts +0 -2
- package/dist/utilities/storybook/build-docs.js +0 -43
- package/dist/utilities/storybook/configs.d.ts +0 -13
- package/dist/utilities/storybook/configs.js +0 -85
- package/dist/utilities/storybook/docs-scraper.d.ts +0 -26
- package/dist/utilities/storybook/docs-scraper.js +0 -96
- package/dist/utilities/storybook/index.d.ts +0 -5
- package/dist/utilities/storybook/index.js +0 -4
- package/dist/utilities/storybook/scraper.d.ts +0 -14
- package/dist/utilities/storybook/scraper.js +0 -243
- package/dist/utilities/storybook/storybook-manager.d.ts +0 -29
- package/dist/utilities/storybook/storybook-manager.js +0 -138
- package/dist/utilities/storybook/types.d.ts +0 -22
- package/dist/utilities/storybook/types.js +0 -1
- package/dist/utilities/styles.d.ts +0 -6
- package/dist/utilities/styles.js +0 -24
- package/dist/utilities/templates.d.ts +0 -12
- package/dist/utilities/templates.js +0 -28
- package/dist/utilities/tokens.d.ts +0 -1
- package/dist/utilities/tokens.js +0 -21
- package/dist/utilities/version.d.ts +0 -28
- package/dist/utilities/version.js +0 -21
- package/metadata/checksum.txt +0 -1
- package/metadata/davinci-migration/migration-guide.md +0 -1859
- package/metadata/packages/angular/LIMITATIONS.md +0 -32
- package/metadata/packages/angular/README.md +0 -393
- package/metadata/packages/assets/BREAKING_CHANGES.md +0 -305
- package/metadata/packages/assets/CHANGELOG.md +0 -374
- package/metadata/packages/assets/README.md +0 -103
- package/metadata/packages/components/components/syn-accordion/component.angular.ts +0 -80
- package/metadata/packages/components/components/syn-accordion/component.react.ts +0 -30
- package/metadata/packages/components/components/syn-accordion/component.styles.ts +0 -15
- package/metadata/packages/components/components/syn-accordion/component.ts +0 -111
- package/metadata/packages/components/components/syn-accordion/component.vue +0 -64
- package/metadata/packages/components/components/syn-alert/component.angular.ts +0 -169
- package/metadata/packages/components/components/syn-alert/component.react.ts +0 -60
- package/metadata/packages/components/components/syn-alert/component.styles.ts +0 -203
- package/metadata/packages/components/components/syn-alert/component.ts +0 -322
- package/metadata/packages/components/components/syn-alert/component.vue +0 -135
- package/metadata/packages/components/components/syn-badge/component.angular.ts +0 -53
- package/metadata/packages/components/components/syn-badge/component.custom.styles.ts +0 -62
- package/metadata/packages/components/components/syn-badge/component.react.ts +0 -29
- package/metadata/packages/components/components/syn-badge/component.styles.ts +0 -52
- package/metadata/packages/components/components/syn-badge/component.ts +0 -58
- package/metadata/packages/components/components/syn-badge/component.vue +0 -53
- package/metadata/packages/components/components/syn-breadcrumb/component.angular.ts +0 -58
- package/metadata/packages/components/components/syn-breadcrumb/component.custom.styles.ts +0 -5
- package/metadata/packages/components/components/syn-breadcrumb/component.react.ts +0 -32
- package/metadata/packages/components/components/syn-breadcrumb/component.styles.ts +0 -11
- package/metadata/packages/components/components/syn-breadcrumb/component.ts +0 -103
- package/metadata/packages/components/components/syn-breadcrumb/component.vue +0 -58
- package/metadata/packages/components/components/syn-breadcrumb-item/component.angular.ts +0 -88
- package/metadata/packages/components/components/syn-breadcrumb-item/component.custom.styles.ts +0 -78
- package/metadata/packages/components/components/syn-breadcrumb-item/component.react.ts +0 -37
- package/metadata/packages/components/components/syn-breadcrumb-item/component.styles.ts +0 -88
- package/metadata/packages/components/components/syn-breadcrumb-item/component.ts +0 -132
- package/metadata/packages/components/components/syn-breadcrumb-item/component.vue +0 -76
- package/metadata/packages/components/components/syn-button/component.angular.ts +0 -318
- package/metadata/packages/components/components/syn-button/component.custom.styles.ts +0 -245
- package/metadata/packages/components/components/syn-button/component.react.ts +0 -56
- package/metadata/packages/components/components/syn-button/component.styles.ts +0 -361
- package/metadata/packages/components/components/syn-button/component.ts +0 -315
- package/metadata/packages/components/components/syn-button/component.vue +0 -204
- package/metadata/packages/components/components/syn-button-group/component.angular.ts +0 -79
- package/metadata/packages/components/components/syn-button-group/component.custom.styles.ts +0 -5
- package/metadata/packages/components/components/syn-button-group/component.react.ts +0 -29
- package/metadata/packages/components/components/syn-button-group/component.styles.ts +0 -14
- package/metadata/packages/components/components/syn-button-group/component.ts +0 -171
- package/metadata/packages/components/components/syn-button-group/component.vue +0 -67
- package/metadata/packages/components/components/syn-card/component.angular.ts +0 -83
- package/metadata/packages/components/components/syn-card/component.custom.styles.ts +0 -60
- package/metadata/packages/components/components/syn-card/component.react.ts +0 -41
- package/metadata/packages/components/components/syn-card/component.styles.ts +0 -70
- package/metadata/packages/components/components/syn-card/component.ts +0 -65
- package/metadata/packages/components/components/syn-card/component.vue +0 -73
- package/metadata/packages/components/components/syn-checkbox/component.angular.ts +0 -273
- package/metadata/packages/components/components/syn-checkbox/component.react.ts +0 -64
- package/metadata/packages/components/components/syn-checkbox/component.styles.ts +0 -183
- package/metadata/packages/components/components/syn-checkbox/component.ts +0 -287
- package/metadata/packages/components/components/syn-checkbox/component.vue +0 -191
- package/metadata/packages/components/components/syn-combobox/component.angular.ts +0 -516
- package/metadata/packages/components/components/syn-combobox/component.react.ts +0 -118
- package/metadata/packages/components/components/syn-combobox/component.styles.ts +0 -393
- package/metadata/packages/components/components/syn-combobox/component.ts +0 -1684
- package/metadata/packages/components/components/syn-combobox/component.vue +0 -350
- package/metadata/packages/components/components/syn-details/component.angular.ts +0 -186
- package/metadata/packages/components/components/syn-details/component.react.ts +0 -65
- package/metadata/packages/components/components/syn-details/component.styles.ts +0 -181
- package/metadata/packages/components/components/syn-details/component.ts +0 -261
- package/metadata/packages/components/components/syn-details/component.vue +0 -136
- package/metadata/packages/components/components/syn-dialog/component.angular.ts +0 -201
- package/metadata/packages/components/components/syn-dialog/component.react.ts +0 -91
- package/metadata/packages/components/components/syn-dialog/component.styles.ts +0 -130
- package/metadata/packages/components/components/syn-dialog/component.ts +0 -367
- package/metadata/packages/components/components/syn-dialog/component.vue +0 -169
- package/metadata/packages/components/components/syn-divider/component.angular.ts +0 -55
- package/metadata/packages/components/components/syn-divider/component.react.ts +0 -29
- package/metadata/packages/components/components/syn-divider/component.styles.ts +0 -22
- package/metadata/packages/components/components/syn-divider/component.ts +0 -34
- package/metadata/packages/components/components/syn-divider/component.vue +0 -51
- package/metadata/packages/components/components/syn-drawer/component.angular.ts +0 -234
- package/metadata/packages/components/components/syn-drawer/component.custom.styles.ts +0 -78
- package/metadata/packages/components/components/syn-drawer/component.react.ts +0 -98
- package/metadata/packages/components/components/syn-drawer/component.styles.ts +0 -158
- package/metadata/packages/components/components/syn-drawer/component.ts +0 -489
- package/metadata/packages/components/components/syn-drawer/component.vue +0 -188
- package/metadata/packages/components/components/syn-dropdown/component.angular.ts +0 -208
- package/metadata/packages/components/components/syn-dropdown/component.react.ts +0 -59
- package/metadata/packages/components/components/syn-dropdown/component.styles.ts +0 -51
- package/metadata/packages/components/components/syn-dropdown/component.ts +0 -469
- package/metadata/packages/components/components/syn-dropdown/component.vue +0 -152
- package/metadata/packages/components/components/syn-file/component.angular.ts +0 -372
- package/metadata/packages/components/components/syn-file/component.react.ts +0 -85
- package/metadata/packages/components/components/syn-file/component.styles.ts +0 -197
- package/metadata/packages/components/components/syn-file/component.ts +0 -645
- package/metadata/packages/components/components/syn-file/component.vue +0 -256
- package/metadata/packages/components/components/syn-header/component.angular.ts +0 -149
- package/metadata/packages/components/components/syn-header/component.react.ts +0 -68
- package/metadata/packages/components/components/syn-header/component.styles.ts +0 -143
- package/metadata/packages/components/components/syn-header/component.ts +0 -310
- package/metadata/packages/components/components/syn-header/component.vue +0 -126
- package/metadata/packages/components/components/syn-icon/component.angular.ts +0 -115
- package/metadata/packages/components/components/syn-icon/component.custom.styles.ts +0 -5
- package/metadata/packages/components/components/syn-icon/component.react.ts +0 -41
- package/metadata/packages/components/components/syn-icon/component.styles.ts +0 -18
- package/metadata/packages/components/components/syn-icon/component.ts +0 -227
- package/metadata/packages/components/components/syn-icon/component.vue +0 -100
- package/metadata/packages/components/components/syn-icon-button/component.angular.ts +0 -185
- package/metadata/packages/components/components/syn-icon-button/component.custom.styles.ts +0 -79
- package/metadata/packages/components/components/syn-icon-button/component.react.ts +0 -42
- package/metadata/packages/components/components/syn-icon-button/component.styles.ts +0 -52
- package/metadata/packages/components/components/syn-icon-button/component.ts +0 -147
- package/metadata/packages/components/components/syn-icon-button/component.vue +0 -132
- package/metadata/packages/components/components/syn-input/component.angular.ts +0 -608
- package/metadata/packages/components/components/syn-input/component.custom.styles.ts +0 -278
- package/metadata/packages/components/components/syn-input/component.react.ts +0 -91
- package/metadata/packages/components/components/syn-input/component.styles.ts +0 -280
- package/metadata/packages/components/components/syn-input/component.ts +0 -941
- package/metadata/packages/components/components/syn-input/component.vue +0 -370
- package/metadata/packages/components/components/syn-menu/component.angular.ts +0 -52
- package/metadata/packages/components/components/syn-menu/component.react.ts +0 -36
- package/metadata/packages/components/components/syn-menu/component.styles.ts +0 -37
- package/metadata/packages/components/components/syn-menu/component.ts +0 -191
- package/metadata/packages/components/components/syn-menu/component.vue +0 -48
- package/metadata/packages/components/components/syn-menu-item/component.angular.ts +0 -121
- package/metadata/packages/components/components/syn-menu-item/component.react.ts +0 -45
- package/metadata/packages/components/components/syn-menu-item/component.styles.ts +0 -285
- package/metadata/packages/components/components/syn-menu-item/component.ts +0 -201
- package/metadata/packages/components/components/syn-menu-item/component.vue +0 -91
- package/metadata/packages/components/components/syn-menu-label/component.angular.ts +0 -48
- package/metadata/packages/components/components/syn-menu-label/component.react.ts +0 -35
- package/metadata/packages/components/components/syn-menu-label/component.styles.ts +0 -31
- package/metadata/packages/components/components/syn-menu-label/component.ts +0 -46
- package/metadata/packages/components/components/syn-menu-label/component.vue +0 -41
- package/metadata/packages/components/components/syn-nav-item/component.angular.ts +0 -242
- package/metadata/packages/components/components/syn-nav-item/component.react.ts +0 -82
- package/metadata/packages/components/components/syn-nav-item/component.styles.ts +0 -333
- package/metadata/packages/components/components/syn-nav-item/component.ts +0 -491
- package/metadata/packages/components/components/syn-nav-item/component.vue +0 -182
- package/metadata/packages/components/components/syn-optgroup/component.angular.ts +0 -79
- package/metadata/packages/components/components/syn-optgroup/component.react.ts +0 -41
- package/metadata/packages/components/components/syn-optgroup/component.styles.ts +0 -61
- package/metadata/packages/components/components/syn-optgroup/component.ts +0 -176
- package/metadata/packages/components/components/syn-optgroup/component.vue +0 -71
- package/metadata/packages/components/components/syn-option/component.angular.ts +0 -79
- package/metadata/packages/components/components/syn-option/component.react.ts +0 -37
- package/metadata/packages/components/components/syn-option/component.styles.ts +0 -165
- package/metadata/packages/components/components/syn-option/component.ts +0 -191
- package/metadata/packages/components/components/syn-option/component.vue +0 -71
- package/metadata/packages/components/components/syn-pagination/component.angular.ts +0 -201
- package/metadata/packages/components/components/syn-pagination/component.react.ts +0 -56
- package/metadata/packages/components/components/syn-pagination/component.styles.ts +0 -128
- package/metadata/packages/components/components/syn-pagination/component.ts +0 -452
- package/metadata/packages/components/components/syn-pagination/component.vue +0 -144
- package/metadata/packages/components/components/syn-popup/component.angular.ts +0 -372
- package/metadata/packages/components/components/syn-popup/component.react.ts +0 -55
- package/metadata/packages/components/components/syn-popup/component.styles.ts +0 -70
- package/metadata/packages/components/components/syn-popup/component.ts +0 -582
- package/metadata/packages/components/components/syn-popup/component.vue +0 -233
- package/metadata/packages/components/components/syn-prio-nav/component.angular.ts +0 -67
- package/metadata/packages/components/components/syn-prio-nav/component.react.ts +0 -54
- package/metadata/packages/components/components/syn-prio-nav/component.styles.ts +0 -48
- package/metadata/packages/components/components/syn-prio-nav/component.ts +0 -288
- package/metadata/packages/components/components/syn-prio-nav/component.vue +0 -60
- package/metadata/packages/components/components/syn-progress-bar/component.angular.ts +0 -85
- package/metadata/packages/components/components/syn-progress-bar/component.custom.styles.ts +0 -24
- package/metadata/packages/components/components/syn-progress-bar/component.react.ts +0 -37
- package/metadata/packages/components/components/syn-progress-bar/component.styles.ts +0 -87
- package/metadata/packages/components/components/syn-progress-bar/component.ts +0 -67
- package/metadata/packages/components/components/syn-progress-bar/component.vue +0 -71
- package/metadata/packages/components/components/syn-progress-ring/component.angular.ts +0 -72
- package/metadata/packages/components/components/syn-progress-ring/component.custom.styles.ts +0 -19
- package/metadata/packages/components/components/syn-progress-ring/component.react.ts +0 -37
- package/metadata/packages/components/components/syn-progress-ring/component.styles.ts +0 -70
- package/metadata/packages/components/components/syn-progress-ring/component.ts +0 -83
- package/metadata/packages/components/components/syn-progress-ring/component.vue +0 -66
- package/metadata/packages/components/components/syn-radio/component.angular.ts +0 -122
- package/metadata/packages/components/components/syn-radio/component.react.ts +0 -48
- package/metadata/packages/components/components/syn-radio/component.styles.ts +0 -179
- package/metadata/packages/components/components/syn-radio/component.ts +0 -131
- package/metadata/packages/components/components/syn-radio/component.vue +0 -104
- package/metadata/packages/components/components/syn-radio-button/component.angular.ts +0 -123
- package/metadata/packages/components/components/syn-radio-button/component.react.ts +0 -49
- package/metadata/packages/components/components/syn-radio-button/component.styles.ts +0 -30
- package/metadata/packages/components/components/syn-radio-button/component.ts +0 -142
- package/metadata/packages/components/components/syn-radio-button/component.vue +0 -105
- package/metadata/packages/components/components/syn-radio-group/component.angular.ts +0 -204
- package/metadata/packages/components/components/syn-radio-group/component.react.ts +0 -56
- package/metadata/packages/components/components/syn-radio-group/component.styles.ts +0 -58
- package/metadata/packages/components/components/syn-radio-group/component.ts +0 -440
- package/metadata/packages/components/components/syn-radio-group/component.vue +0 -158
- package/metadata/packages/components/components/syn-range/component.angular.ts +0 -347
- package/metadata/packages/components/components/syn-range/component.react.ts +0 -92
- package/metadata/packages/components/components/syn-range/component.styles.ts +0 -310
- package/metadata/packages/components/components/syn-range/component.ts +0 -933
- package/metadata/packages/components/components/syn-range/component.vue +0 -245
- package/metadata/packages/components/components/syn-range-tick/component.angular.ts +0 -59
- package/metadata/packages/components/components/syn-range-tick/component.react.ts +0 -33
- package/metadata/packages/components/components/syn-range-tick/component.styles.ts +0 -34
- package/metadata/packages/components/components/syn-range-tick/component.ts +0 -50
- package/metadata/packages/components/components/syn-range-tick/component.vue +0 -57
- package/metadata/packages/components/components/syn-resize-observer/component.styles.ts +0 -9
- package/metadata/packages/components/components/syn-resize-observer/component.ts +0 -91
- package/metadata/packages/components/components/syn-select/component.angular.ts +0 -439
- package/metadata/packages/components/components/syn-select/component.react.ts +0 -101
- package/metadata/packages/components/components/syn-select/component.styles.ts +0 -380
- package/metadata/packages/components/components/syn-select/component.ts +0 -1056
- package/metadata/packages/components/components/syn-select/component.vue +0 -301
- package/metadata/packages/components/components/syn-side-nav/component.angular.ts +0 -210
- package/metadata/packages/components/components/syn-side-nav/component.react.ts +0 -95
- package/metadata/packages/components/components/syn-side-nav/component.styles.ts +0 -142
- package/metadata/packages/components/components/syn-side-nav/component.ts +0 -458
- package/metadata/packages/components/components/syn-side-nav/component.vue +0 -188
- package/metadata/packages/components/components/syn-spinner/component.angular.ts +0 -44
- package/metadata/packages/components/components/syn-spinner/component.custom.styles.ts +0 -32
- package/metadata/packages/components/components/syn-spinner/component.react.ts +0 -31
- package/metadata/packages/components/components/syn-spinner/component.styles.ts +0 -48
- package/metadata/packages/components/components/syn-spinner/component.ts +0 -35
- package/metadata/packages/components/components/syn-spinner/component.vue +0 -35
- package/metadata/packages/components/components/syn-switch/component.angular.ts +0 -257
- package/metadata/packages/components/components/syn-switch/component.react.ts +0 -63
- package/metadata/packages/components/components/syn-switch/component.styles.ts +0 -252
- package/metadata/packages/components/components/syn-switch/component.ts +0 -279
- package/metadata/packages/components/components/syn-switch/component.vue +0 -183
- package/metadata/packages/components/components/syn-tab/component.angular.ts +0 -109
- package/metadata/packages/components/components/syn-tab/component.custom.styles.ts +0 -94
- package/metadata/packages/components/components/syn-tab/component.react.ts +0 -42
- package/metadata/packages/components/components/syn-tab/component.styles.ts +0 -70
- package/metadata/packages/components/components/syn-tab/component.ts +0 -125
- package/metadata/packages/components/components/syn-tab/component.vue +0 -91
- package/metadata/packages/components/components/syn-tab-group/component.angular.ts +0 -166
- package/metadata/packages/components/components/syn-tab-group/component.custom.styles.ts +0 -218
- package/metadata/packages/components/components/syn-tab-group/component.react.ts +0 -58
- package/metadata/packages/components/components/syn-tab-group/component.styles.ts +0 -193
- package/metadata/packages/components/components/syn-tab-group/component.ts +0 -551
- package/metadata/packages/components/components/syn-tab-group/component.vue +0 -126
- package/metadata/packages/components/components/syn-tab-panel/component.angular.ts +0 -68
- package/metadata/packages/components/components/syn-tab-panel/component.custom.styles.ts +0 -8
- package/metadata/packages/components/components/syn-tab-panel/component.react.ts +0 -31
- package/metadata/packages/components/components/syn-tab-panel/component.styles.ts +0 -20
- package/metadata/packages/components/components/syn-tab-panel/component.ts +0 -60
- package/metadata/packages/components/components/syn-tab-panel/component.vue +0 -60
- package/metadata/packages/components/components/syn-tag/component.angular.ts +0 -83
- package/metadata/packages/components/components/syn-tag/component.custom.styles.ts +0 -121
- package/metadata/packages/components/components/syn-tag/component.react.ts +0 -43
- package/metadata/packages/components/components/syn-tag/component.styles.ts +0 -58
- package/metadata/packages/components/components/syn-tag/component.ts +0 -83
- package/metadata/packages/components/components/syn-tag/component.vue +0 -81
- package/metadata/packages/components/components/syn-tag-group/component.angular.ts +0 -83
- package/metadata/packages/components/components/syn-tag-group/component.react.ts +0 -33
- package/metadata/packages/components/components/syn-tag-group/component.styles.ts +0 -49
- package/metadata/packages/components/components/syn-tag-group/component.ts +0 -95
- package/metadata/packages/components/components/syn-tag-group/component.vue +0 -69
- package/metadata/packages/components/components/syn-textarea/component.angular.ts +0 -396
- package/metadata/packages/components/components/syn-textarea/component.react.ts +0 -60
- package/metadata/packages/components/components/syn-textarea/component.styles.ts +0 -208
- package/metadata/packages/components/components/syn-textarea/component.ts +0 -400
- package/metadata/packages/components/components/syn-textarea/component.vue +0 -244
- package/metadata/packages/components/components/syn-tooltip/component.angular.ts +0 -196
- package/metadata/packages/components/components/syn-tooltip/component.react.ts +0 -63
- package/metadata/packages/components/components/syn-tooltip/component.styles.ts +0 -62
- package/metadata/packages/components/components/syn-tooltip/component.ts +0 -312
- package/metadata/packages/components/components/syn-tooltip/component.vue +0 -150
- package/metadata/packages/components/components/syn-validate/component.angular.ts +0 -137
- package/metadata/packages/components/components/syn-validate/component.react.ts +0 -44
- package/metadata/packages/components/components/syn-validate/component.styles.ts +0 -9
- package/metadata/packages/components/components/syn-validate/component.ts +0 -590
- package/metadata/packages/components/components/syn-validate/component.vue +0 -107
- package/metadata/packages/components/migration/BREAKING_CHANGES.md +0 -908
- package/metadata/packages/components/static/CHANGELOG.md +0 -2155
- package/metadata/packages/components/static/LIMITATIONS.md +0 -433
- package/metadata/packages/components/static/README.md +0 -231
- package/metadata/packages/fonts/CHANGELOG.md +0 -57
- package/metadata/packages/fonts/README.md +0 -164
- package/metadata/packages/fonts/package.json +0 -72
- package/metadata/packages/react/LIMITATIONS.md +0 -31
- package/metadata/packages/react/README.md +0 -262
- package/metadata/packages/styles/BREAKING_CHANGES.md +0 -105
- package/metadata/packages/styles/CHANGELOG.md +0 -188
- package/metadata/packages/styles/README.md +0 -132
- package/metadata/packages/styles/index.css +0 -300
- package/metadata/packages/styles/link-list.css +0 -47
- package/metadata/packages/styles/link.css +0 -81
- package/metadata/packages/styles/tables.css +0 -132
- package/metadata/packages/styles/typography.css +0 -52
- package/metadata/packages/tokens/BREAKING_CHANGES.md +0 -180
- package/metadata/packages/tokens/CHANGELOG.md +0 -959
- package/metadata/packages/tokens/README.md +0 -435
- package/metadata/packages/tokens/dark.css +0 -454
- package/metadata/packages/tokens/index.js +0 -2224
- package/metadata/packages/tokens/light.css +0 -454
- package/metadata/packages/tokens/sick2018_dark.css +0 -454
- package/metadata/packages/tokens/sick2018_light.css +0 -454
- package/metadata/packages/tokens/sick2025_dark.css +0 -454
- package/metadata/packages/tokens/sick2025_light.css +0 -454
- package/metadata/packages/vue/LIMITATIONS.md +0 -53
- package/metadata/packages/vue/README.md +0 -252
- package/metadata/static/assets/index.md +0 -10
- package/metadata/static/components/index.md +0 -10
- package/metadata/static/components/syn-accordion/docs.md +0 -449
- package/metadata/static/components/syn-alert/docs.md +0 -282
- package/metadata/static/components/syn-badge/docs.md +0 -106
- package/metadata/static/components/syn-breadcrumb/docs.md +0 -265
- package/metadata/static/components/syn-breadcrumb-item/docs.md +0 -49
- package/metadata/static/components/syn-button/docs.md +0 -472
- package/metadata/static/components/syn-button-group/docs.md +0 -259
- package/metadata/static/components/syn-card/docs.md +0 -314
- package/metadata/static/components/syn-checkbox/docs.md +0 -176
- package/metadata/static/components/syn-combobox/docs.md +0 -2633
- package/metadata/static/components/syn-details/docs.md +0 -227
- package/metadata/static/components/syn-dialog/docs.md +0 -220
- package/metadata/static/components/syn-divider/docs.md +0 -77
- package/metadata/static/components/syn-drawer/docs.md +0 -269
- package/metadata/static/components/syn-dropdown/docs.md +0 -316
- package/metadata/static/components/syn-file/docs.md +0 -239
- package/metadata/static/components/syn-header/docs.md +0 -209
- package/metadata/static/components/syn-icon/docs.md +0 -177
- package/metadata/static/components/syn-icon-button/docs.md +0 -142
- package/metadata/static/components/syn-input/docs.md +0 -462
- package/metadata/static/components/syn-menu/docs.md +0 -162
- package/metadata/static/components/syn-menu-item/docs.md +0 -216
- package/metadata/static/components/syn-menu-label/docs.md +0 -29
- package/metadata/static/components/syn-nav-item/docs.md +0 -166
- package/metadata/static/components/syn-optgroup/docs.md +0 -167
- package/metadata/static/components/syn-option/docs.md +0 -137
- package/metadata/static/components/syn-pagination/docs.md +0 -102
- package/metadata/static/components/syn-popup/docs.md +0 -812
- package/metadata/static/components/syn-prio-nav/docs.md +0 -54
- package/metadata/static/components/syn-progress-bar/docs.md +0 -77
- package/metadata/static/components/syn-progress-ring/docs.md +0 -89
- package/metadata/static/components/syn-radio/docs.md +0 -178
- package/metadata/static/components/syn-radio-group/docs.md +0 -484
- package/metadata/static/components/syn-range/docs.md +0 -438
- package/metadata/static/components/syn-range-tick/docs.md +0 -110
- package/metadata/static/components/syn-select/docs.md +0 -811
- package/metadata/static/components/syn-side-nav/docs.md +0 -593
- package/metadata/static/components/syn-spinner/docs.md +0 -45
- package/metadata/static/components/syn-switch/docs.md +0 -121
- package/metadata/static/components/syn-tab/docs.md +0 -47
- package/metadata/static/components/syn-tab-group/docs.md +0 -1094
- package/metadata/static/components/syn-tab-panel/docs.md +0 -91
- package/metadata/static/components/syn-tag/docs.md +0 -50
- package/metadata/static/components/syn-tag-group/docs.md +0 -269
- package/metadata/static/components/syn-textarea/docs.md +0 -215
- package/metadata/static/components/syn-tooltip/docs.md +0 -217
- package/metadata/static/components/syn-validate/docs.md +0 -305
- package/metadata/static/fonts/index.md +0 -4
- package/metadata/static/migration/index.md +0 -57
- package/metadata/static/migration/v2-2018-to-v2-2025.md +0 -481
- package/metadata/static/migration/v2-2018-to-v3-2018.md +0 -147
- package/metadata/static/migration/v2-2018-to-v3-2025.md +0 -150
- package/metadata/static/migration/v2-2025-to-v3-2025.md +0 -133
- package/metadata/static/setup/icon-usage.md +0 -411
- package/metadata/static/setup/prerequisites.md +0 -319
- package/metadata/static/styles/syn-body.md +0 -5
- package/metadata/static/styles/syn-heading.md +0 -5
- package/metadata/static/styles/syn-link-list.md +0 -325
- package/metadata/static/styles/syn-link.md +0 -156
- package/metadata/static/styles/syn-table-cell.md +0 -127
- package/metadata/static/styles/syn-table.md +0 -201
- package/metadata/static/styles/syn-weight.md +0 -5
- package/metadata/static/templates/appshell.md +0 -2053
- package/metadata/static/templates/breadcrumb.md +0 -379
- package/metadata/static/templates/footer.md +0 -340
- package/metadata/static/templates/forms.md +0 -558
- package/metadata/static/templates/localization.md +0 -279
- package/metadata/static/templates/table.md +0 -1425
- package/metadata/static/templates/tag-group.md +0 -833
- /package/dist/{build/build.d.ts → utilities/logging-types.js} +0 -0
- /package/{metadata/static/component-info/index.md → rules/component-info.md} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { getMigrationMetaData } from '../utilities/index.js';
|
|
2
|
+
import { createToolAnnotations, getMigrationMetaData, getRuntimeConfig, toolHandler, } from '../utilities/index.js';
|
|
3
3
|
const extractHeadingMetadata = (content) => {
|
|
4
4
|
const result = {};
|
|
5
5
|
// Try to find the first level‑1 heading.
|
|
@@ -69,6 +69,7 @@ const extractSummaryMetadata = (content) => {
|
|
|
69
69
|
*/
|
|
70
70
|
export const migrationListTool = (server) => {
|
|
71
71
|
server.registerTool('migration-list', {
|
|
72
|
+
annotations: createToolAnnotations(),
|
|
72
73
|
description: 'List available migration documents for a Synergy package in a compact, token-efficient format.',
|
|
73
74
|
inputSchema: {
|
|
74
75
|
synergyPackage: z.enum([
|
|
@@ -76,11 +77,11 @@ export const migrationListTool = (server) => {
|
|
|
76
77
|
'components',
|
|
77
78
|
'styles',
|
|
78
79
|
'tokens',
|
|
79
|
-
]).
|
|
80
|
+
]).optional().describe('The package to list migration documents for.'),
|
|
80
81
|
},
|
|
81
82
|
title: 'Package Migration Document Index',
|
|
82
|
-
}, async ({ synergyPackage }) => {
|
|
83
|
-
const selectedPackage = (synergyPackage ??
|
|
83
|
+
}, toolHandler('migration-list', async ({ synergyPackage }) => {
|
|
84
|
+
const selectedPackage = (synergyPackage ?? getRuntimeConfig().tools.migrationList.synergyPackage);
|
|
84
85
|
const metadata = await getMigrationMetaData(selectedPackage);
|
|
85
86
|
const index = metadata
|
|
86
87
|
.filter(Boolean)
|
|
@@ -110,13 +111,6 @@ export const migrationListTool = (server) => {
|
|
|
110
111
|
...extra,
|
|
111
112
|
};
|
|
112
113
|
});
|
|
113
|
-
return
|
|
114
|
-
|
|
115
|
-
{
|
|
116
|
-
text: JSON.stringify(index, null, 2),
|
|
117
|
-
type: 'text',
|
|
118
|
-
},
|
|
119
|
-
],
|
|
120
|
-
};
|
|
121
|
-
});
|
|
114
|
+
return [JSON.stringify(index, null, 2)];
|
|
115
|
+
}));
|
|
122
116
|
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
/**
|
|
3
|
+
* Setup entrypoint for Synergy packages and framework-specific setup guidance.
|
|
4
|
+
* @param server - The MCP server instance to register the tool on.
|
|
5
|
+
*/
|
|
6
|
+
export declare const setupTool: (server: McpServer) => void;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getDataForSetup } from '@synergy-design-system/metadata';
|
|
3
|
+
import { createToolAnnotations, getRuntimeConfig, toolHandler, } from '../utilities/index.js';
|
|
4
|
+
/**
|
|
5
|
+
* Setup entrypoint for Synergy packages and framework-specific setup guidance.
|
|
6
|
+
* @param server - The MCP server instance to register the tool on.
|
|
7
|
+
*/
|
|
8
|
+
export const setupTool = (server) => {
|
|
9
|
+
server.registerTool('setup', {
|
|
10
|
+
annotations: createToolAnnotations(),
|
|
11
|
+
description: 'Get setup information for a Synergy package. Framework packages (react, vue, angular) automatically include base components setup.',
|
|
12
|
+
inputSchema: {
|
|
13
|
+
includeLimitations: z.boolean().optional().describe('Add a list of known limitations and issues to the output.'),
|
|
14
|
+
package: z.enum(['components', 'react', 'vue', 'angular', 'tokens', 'styles', 'fonts', 'assets', 'migrations']).describe('Synergy package to retrieve setup instructions for.'),
|
|
15
|
+
},
|
|
16
|
+
title: 'Setup info',
|
|
17
|
+
}, toolHandler('setup', async ({ includeLimitations, package: packageName, }) => {
|
|
18
|
+
const resolvedIncludeLimitations = includeLimitations ?? getRuntimeConfig().tools.setup.includeLimitations;
|
|
19
|
+
const response = await getDataForSetup({
|
|
20
|
+
includeLimitations: resolvedIncludeLimitations,
|
|
21
|
+
package: packageName,
|
|
22
|
+
});
|
|
23
|
+
if (!response.data) {
|
|
24
|
+
return [response.errors?.[0]?.message ?? `No setup data found for package "${packageName}".`];
|
|
25
|
+
}
|
|
26
|
+
const setupContent = response.data.setups
|
|
27
|
+
.flatMap((entry) => entry.text)
|
|
28
|
+
.map((entry) => entry.content);
|
|
29
|
+
return setupContent;
|
|
30
|
+
}));
|
|
31
|
+
};
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
2
|
/**
|
|
3
|
-
* Simple tool to
|
|
4
|
-
* This tool fetches the token data from the Synergy package and formats it for display.
|
|
3
|
+
* Simple tool to retrieve information about a given style in the Synergy Design System.
|
|
5
4
|
* @param server - The MCP server instance to register the tool on.
|
|
6
5
|
*/
|
|
7
6
|
export declare const stylesInfoTool: (server: McpServer) => void;
|
|
@@ -1,28 +1,32 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getDataForStyle, } from '@synergy-design-system/metadata';
|
|
3
|
+
import { createToolAnnotations, getToolRule, toolHandler, } from '../utilities/index.js';
|
|
2
4
|
/**
|
|
3
|
-
* Simple tool to
|
|
4
|
-
* This tool fetches the token data from the Synergy package and formats it for display.
|
|
5
|
+
* Simple tool to retrieve information about a given style in the Synergy Design System.
|
|
5
6
|
* @param server - The MCP server instance to register the tool on.
|
|
6
7
|
*/
|
|
7
8
|
export const stylesInfoTool = (server) => {
|
|
8
9
|
server.registerTool('styles-info', {
|
|
10
|
+
annotations: createToolAnnotations(),
|
|
9
11
|
description: 'Get information about css utilities available in the Synergy Design System',
|
|
10
|
-
inputSchema: {
|
|
12
|
+
inputSchema: {
|
|
13
|
+
style: z.string().describe('The name of the style to get information about.'),
|
|
14
|
+
},
|
|
11
15
|
title: 'Styles info',
|
|
12
|
-
}, async () => {
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
});
|
|
16
|
+
}, toolHandler('styles-info', async ({ style, }) => {
|
|
17
|
+
const response = await getDataForStyle(style, { layer: 'examples' });
|
|
18
|
+
if (!response.data) {
|
|
19
|
+
return [
|
|
20
|
+
`No style found: ${style}`,
|
|
21
|
+
];
|
|
22
|
+
}
|
|
23
|
+
const aiRules = await getToolRule('styles-info');
|
|
24
|
+
const markdownContent = response.data.examples
|
|
25
|
+
?.map((entry) => entry.content)
|
|
26
|
+
.join('\n\n') ?? '';
|
|
27
|
+
return [
|
|
28
|
+
aiRules,
|
|
29
|
+
markdownContent,
|
|
30
|
+
];
|
|
31
|
+
}));
|
|
28
32
|
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { listStyles } from '@synergy-design-system/metadata';
|
|
2
|
+
import { createToolAnnotations, getToolRule, toolHandler, } from '../utilities/index.js';
|
|
2
3
|
/**
|
|
3
4
|
* Simple tool to list all available styles in the Synergy Design System.
|
|
4
5
|
* This tool fetches the styles data from the Synergy package and formats it for display.
|
|
@@ -6,37 +7,22 @@ import { getAvailableStyles, getStructuredMetaData, } from '../utilities/index.j
|
|
|
6
7
|
*/
|
|
7
8
|
export const stylesList = (server) => {
|
|
8
9
|
server.registerTool('styles-list', {
|
|
9
|
-
|
|
10
|
+
annotations: createToolAnnotations(),
|
|
11
|
+
description: 'Outputs a list of available css classes and styles in the Synergy Design System',
|
|
10
12
|
inputSchema: {},
|
|
11
|
-
title: '
|
|
12
|
-
}, async () => {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
type: 'text',
|
|
27
|
-
},
|
|
28
|
-
],
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
catch (error) {
|
|
32
|
-
return {
|
|
33
|
-
content: [
|
|
34
|
-
{
|
|
35
|
-
text: `Error fetching components: ${error.message}`,
|
|
36
|
-
type: 'text',
|
|
37
|
-
},
|
|
38
|
-
],
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
});
|
|
13
|
+
title: 'Styles list',
|
|
14
|
+
}, toolHandler('styles-list', async () => {
|
|
15
|
+
const aiRules = await getToolRule('styles-list');
|
|
16
|
+
const styles = await listStyles({
|
|
17
|
+
includeLayerRefs: false,
|
|
18
|
+
includeSources: false,
|
|
19
|
+
});
|
|
20
|
+
const styleNames = styles.data
|
|
21
|
+
.map(c => c.name)
|
|
22
|
+
.toSorted();
|
|
23
|
+
return [
|
|
24
|
+
aiRules,
|
|
25
|
+
styleNames,
|
|
26
|
+
];
|
|
27
|
+
}));
|
|
42
28
|
};
|
|
@@ -1,33 +1,32 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import {
|
|
2
|
+
import { getDataForTemplate, } from '@synergy-design-system/metadata';
|
|
3
|
+
import { createToolAnnotations, getToolRule, toolHandler, } from '../utilities/index.js';
|
|
3
4
|
/**
|
|
4
5
|
* Simple tool to retrieve information about a given template in the Synergy Design System.
|
|
5
6
|
* @param server - The MCP server instance to register the tool on.
|
|
6
7
|
*/
|
|
7
8
|
export const templateInfoTool = (server) => {
|
|
8
9
|
server.registerTool('template-info', {
|
|
10
|
+
annotations: createToolAnnotations(),
|
|
9
11
|
description: 'Get a specific template in the Synergy Design System',
|
|
10
12
|
inputSchema: {
|
|
11
13
|
template: z.string().describe('The name of the template to get information about.'),
|
|
12
14
|
},
|
|
13
15
|
title: 'Template info',
|
|
14
|
-
}, async ({ template, }) => {
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
],
|
|
31
|
-
};
|
|
32
|
-
});
|
|
16
|
+
}, toolHandler('template-info', async ({ template, }) => {
|
|
17
|
+
const response = await getDataForTemplate(template, { layer: 'examples' });
|
|
18
|
+
if (!response.data) {
|
|
19
|
+
return [
|
|
20
|
+
`No template found: ${template}`,
|
|
21
|
+
];
|
|
22
|
+
}
|
|
23
|
+
const aiRules = await getToolRule('template-info');
|
|
24
|
+
const markdownContent = response.data.examples
|
|
25
|
+
?.map((entry) => entry.content)
|
|
26
|
+
.join('\n\n') ?? '';
|
|
27
|
+
return [
|
|
28
|
+
aiRules,
|
|
29
|
+
markdownContent,
|
|
30
|
+
];
|
|
31
|
+
}));
|
|
33
32
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
2
|
/**
|
|
3
3
|
* Simple tool to list all available templates in the Synergy Design System.
|
|
4
|
-
* This tool fetches the templates data from the
|
|
4
|
+
* This tool fetches the templates data from the metadata store and formats it for display.
|
|
5
5
|
* @param server - The MCP server instance to register the tool on.
|
|
6
6
|
*/
|
|
7
7
|
export declare const templateList: (server: McpServer) => void;
|
|
@@ -1,42 +1,27 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { listTemplates, } from '@synergy-design-system/metadata';
|
|
2
|
+
import { createToolAnnotations, getToolRule, toolHandler, } from '../utilities/index.js';
|
|
2
3
|
/**
|
|
3
4
|
* Simple tool to list all available templates in the Synergy Design System.
|
|
4
|
-
* This tool fetches the templates data from the
|
|
5
|
+
* This tool fetches the templates data from the metadata store and formats it for display.
|
|
5
6
|
* @param server - The MCP server instance to register the tool on.
|
|
6
7
|
*/
|
|
7
8
|
export const templateList = (server) => {
|
|
8
9
|
server.registerTool('template-list', {
|
|
10
|
+
annotations: createToolAnnotations(),
|
|
9
11
|
description: 'Outputs a list of available static templates built with the Synergy Design System',
|
|
10
12
|
inputSchema: {},
|
|
11
13
|
title: 'List Synergy Templates',
|
|
12
|
-
}, async () => {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
text: templateNames.join('\n'),
|
|
26
|
-
type: 'text',
|
|
27
|
-
},
|
|
28
|
-
],
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
catch (error) {
|
|
32
|
-
return {
|
|
33
|
-
content: [
|
|
34
|
-
{
|
|
35
|
-
text: `Error fetching templates: ${error.message}`,
|
|
36
|
-
type: 'text',
|
|
37
|
-
},
|
|
38
|
-
],
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
});
|
|
14
|
+
}, toolHandler('template-list', async () => {
|
|
15
|
+
const response = await listTemplates();
|
|
16
|
+
const templateNames = response.data
|
|
17
|
+
.map(template => template.name)
|
|
18
|
+
.sort()
|
|
19
|
+
.map(name => `- ${name}`)
|
|
20
|
+
.join('\n');
|
|
21
|
+
const aiRules = await getToolRule('template-list');
|
|
22
|
+
return [
|
|
23
|
+
aiRules,
|
|
24
|
+
templateNames,
|
|
25
|
+
];
|
|
26
|
+
}));
|
|
42
27
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
2
|
/**
|
|
3
|
-
* Simple tool to
|
|
4
|
-
* This tool fetches the token
|
|
3
|
+
* Simple tool to return raw token file contents from the Synergy Design System.
|
|
4
|
+
* This tool fetches the filtered token artifact content and returns the content blocks directly.
|
|
5
5
|
* @param server - The MCP server instance to register the tool on.
|
|
6
6
|
*/
|
|
7
7
|
export declare const tokenInfoTool: (server: McpServer) => void;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getDataForTokens, } from '@synergy-design-system/metadata';
|
|
3
|
+
import { createToolAnnotations, getRuntimeConfig, toolHandler, } from '../utilities/index.js';
|
|
4
|
+
/**
|
|
5
|
+
* Simple tool to return raw token file contents from the Synergy Design System.
|
|
6
|
+
* This tool fetches the filtered token artifact content and returns the content blocks directly.
|
|
7
|
+
* @param server - The MCP server instance to register the tool on.
|
|
8
|
+
*/
|
|
9
|
+
export const tokenInfoTool = (server) => {
|
|
10
|
+
server.registerTool('token-info', {
|
|
11
|
+
annotations: createToolAnnotations(),
|
|
12
|
+
description: 'Get raw design token file contents from the Synergy Design System',
|
|
13
|
+
inputSchema: {
|
|
14
|
+
theme: z.enum(['sick2025-light', 'sick2025-dark', 'sick2018-light', 'sick2018-dark']).optional().describe('Theme variant for CSS tokens. Ignored for javascript and sass.'),
|
|
15
|
+
type: z.enum(['javascript', 'css', 'sass']).optional().describe('The type of token output to retrieve.'),
|
|
16
|
+
},
|
|
17
|
+
title: 'Token info',
|
|
18
|
+
}, toolHandler('token-info', async ({ theme, type, }) => {
|
|
19
|
+
const resolvedType = type ?? getRuntimeConfig().tools.tokenInfo.type;
|
|
20
|
+
const response = await getDataForTokens({
|
|
21
|
+
format: resolvedType,
|
|
22
|
+
theme,
|
|
23
|
+
});
|
|
24
|
+
if (response.data.tokens.length === 0) {
|
|
25
|
+
return [
|
|
26
|
+
`No tokens found for type "${resolvedType}"${theme ? ` and theme "${theme}"` : ''}.`,
|
|
27
|
+
];
|
|
28
|
+
}
|
|
29
|
+
return response.data.tokens.map((item) => item.content);
|
|
30
|
+
}));
|
|
31
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
/**
|
|
3
|
+
* Simple tool to list available token output types and theme variants.
|
|
4
|
+
* @param server - The MCP server instance to register the tool on.
|
|
5
|
+
*/
|
|
6
|
+
export declare const tokenListTool: (server: McpServer) => void;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { getDataForTokens, } from '@synergy-design-system/metadata';
|
|
2
|
+
import { createToolAnnotations, toolHandler, } from '../utilities/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Simple tool to list available token output types and theme variants.
|
|
5
|
+
* @param server - The MCP server instance to register the tool on.
|
|
6
|
+
*/
|
|
7
|
+
export const tokenListTool = (server) => {
|
|
8
|
+
server.registerTool('tokens-list', {
|
|
9
|
+
annotations: createToolAnnotations(),
|
|
10
|
+
description: 'Outputs a list of available token output types and css themes in the Synergy Design System',
|
|
11
|
+
inputSchema: {},
|
|
12
|
+
title: 'Tokens list',
|
|
13
|
+
}, toolHandler('tokens-list', async () => {
|
|
14
|
+
const cssCandidates = ['sick2018-dark', 'sick2018-light', 'sick2025-dark', 'sick2025-light'];
|
|
15
|
+
const cssChecks = await Promise.all(cssCandidates.map(async (theme) => {
|
|
16
|
+
const result = await getDataForTokens({
|
|
17
|
+
format: 'css',
|
|
18
|
+
theme,
|
|
19
|
+
});
|
|
20
|
+
return {
|
|
21
|
+
hasTokens: result.data.tokens.length > 0,
|
|
22
|
+
theme,
|
|
23
|
+
};
|
|
24
|
+
}));
|
|
25
|
+
const javascriptResult = await getDataForTokens({
|
|
26
|
+
format: 'javascript',
|
|
27
|
+
});
|
|
28
|
+
const sassResult = await getDataForTokens({
|
|
29
|
+
format: 'sass',
|
|
30
|
+
});
|
|
31
|
+
const cssThemes = cssChecks
|
|
32
|
+
.filter(entry => entry.hasTokens)
|
|
33
|
+
.map(entry => entry.theme)
|
|
34
|
+
.sort();
|
|
35
|
+
const hasJavascript = javascriptResult.data.tokens.length > 0;
|
|
36
|
+
const hasSass = sassResult.data.tokens.length > 0;
|
|
37
|
+
return [{
|
|
38
|
+
defaults: {
|
|
39
|
+
tokenInfo: {
|
|
40
|
+
theme: 'sick2025-light',
|
|
41
|
+
type: 'css',
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
supportedTypes: [
|
|
45
|
+
...(cssThemes.length > 0 ? ['css'] : []),
|
|
46
|
+
...(hasJavascript ? ['javascript'] : []),
|
|
47
|
+
...(hasSass ? ['sass'] : []),
|
|
48
|
+
],
|
|
49
|
+
themes: [...cssThemes].sort(),
|
|
50
|
+
}];
|
|
51
|
+
}));
|
|
52
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import type { McpRuntimeConfig } from '../utilities/config.js';
|
|
3
|
+
import type { TransportInstance } from './index.js';
|
|
4
|
+
/**
|
|
5
|
+
* Creates an HTTP or HTTPS transport for the MCP server.
|
|
6
|
+
* Serves the MCP protocol on a fixed /mcp endpoint.
|
|
7
|
+
* Each client session gets its own transport + server instance,
|
|
8
|
+
* tracked by the mcp-session-id header.
|
|
9
|
+
*
|
|
10
|
+
* @param serverFactory A factory function that creates a new MCP server instance per session
|
|
11
|
+
* @param config The runtime configuration with interface, port, and optional TLS settings
|
|
12
|
+
* @returns A transport instance
|
|
13
|
+
*/
|
|
14
|
+
export declare function createHttpTransport(serverFactory: () => McpServer, config: McpRuntimeConfig): Promise<TransportInstance>;
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/* eslint-disable complexity */
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-misused-promises */
|
|
3
|
+
import { randomUUID } from 'node:crypto';
|
|
4
|
+
import { createServer as createHttpServer, } from 'node:http';
|
|
5
|
+
import { createServer as createHttpsServer, } from 'node:https';
|
|
6
|
+
import { readFileSync } from 'node:fs';
|
|
7
|
+
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
8
|
+
import { getMetadataInfo } from '@synergy-design-system/metadata';
|
|
9
|
+
import { runWithLoggingContext } from '../utilities/logging-context.js';
|
|
10
|
+
/**
|
|
11
|
+
* Creates an HTTP or HTTPS transport for the MCP server.
|
|
12
|
+
* Serves the MCP protocol on a fixed /mcp endpoint.
|
|
13
|
+
* Each client session gets its own transport + server instance,
|
|
14
|
+
* tracked by the mcp-session-id header.
|
|
15
|
+
*
|
|
16
|
+
* @param serverFactory A factory function that creates a new MCP server instance per session
|
|
17
|
+
* @param config The runtime configuration with interface, port, and optional TLS settings
|
|
18
|
+
* @returns A transport instance
|
|
19
|
+
*/
|
|
20
|
+
export async function createHttpTransport(serverFactory, config) {
|
|
21
|
+
const { host, port, tls } = config;
|
|
22
|
+
const hasValidTls = tls?.keyPath && tls?.certPath;
|
|
23
|
+
// Resolve metadata version info once at startup for use in response headers
|
|
24
|
+
let metadataVersion;
|
|
25
|
+
let metadataBuildDate;
|
|
26
|
+
try {
|
|
27
|
+
const info = await getMetadataInfo();
|
|
28
|
+
metadataVersion = info.version;
|
|
29
|
+
metadataBuildDate = info.builtAt;
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
process.stderr.write('[synergy-mcp] Warning: could not read metadata version info\n');
|
|
33
|
+
}
|
|
34
|
+
// Read TLS files if HTTPS is enabled
|
|
35
|
+
let keyContent;
|
|
36
|
+
let certContent;
|
|
37
|
+
if (hasValidTls) {
|
|
38
|
+
try {
|
|
39
|
+
keyContent = readFileSync(tls.keyPath);
|
|
40
|
+
certContent = readFileSync(tls.certPath);
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
throw new Error(`Failed to read TLS files: ${error instanceof Error ? error.message : String(error)}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
// Create the appropriate server
|
|
47
|
+
let nodeServer;
|
|
48
|
+
let protocol = 'http';
|
|
49
|
+
if (hasValidTls && keyContent && certContent) {
|
|
50
|
+
protocol = 'https';
|
|
51
|
+
nodeServer = createHttpsServer({
|
|
52
|
+
cert: certContent,
|
|
53
|
+
key: keyContent,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
nodeServer = createHttpServer();
|
|
58
|
+
}
|
|
59
|
+
// Session store: maps mcp-session-id -> transport for that client
|
|
60
|
+
const sessions = new Map();
|
|
61
|
+
// Create request handler that routes to the transport
|
|
62
|
+
nodeServer.on('request', async (req, res) => {
|
|
63
|
+
// Route only /mcp requests to the transport
|
|
64
|
+
const url = req.url || '/';
|
|
65
|
+
if (!url.startsWith('/mcp')) {
|
|
66
|
+
res.statusCode = 404;
|
|
67
|
+
res.setHeader('Content-Type', 'text/plain');
|
|
68
|
+
res.end('Not Found\n');
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
// Expose metadata version info on every /mcp response
|
|
72
|
+
if (metadataVersion !== undefined) {
|
|
73
|
+
res.setHeader('x-synergy-metadata-version', metadataVersion);
|
|
74
|
+
}
|
|
75
|
+
if (metadataBuildDate !== undefined) {
|
|
76
|
+
res.setHeader('x-synergy-metadata-build-date', metadataBuildDate);
|
|
77
|
+
}
|
|
78
|
+
try {
|
|
79
|
+
const sessionId = req.headers['mcp-session-id'];
|
|
80
|
+
if (sessionId) {
|
|
81
|
+
// Route to existing session
|
|
82
|
+
const existing = sessions.get(sessionId);
|
|
83
|
+
if (!existing) {
|
|
84
|
+
res.statusCode = 400;
|
|
85
|
+
res.setHeader('Content-Type', 'application/json');
|
|
86
|
+
res.end(JSON.stringify({
|
|
87
|
+
error: { code: -32000, message: 'Unknown session ID' },
|
|
88
|
+
id: null,
|
|
89
|
+
jsonrpc: '2.0',
|
|
90
|
+
}));
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
await runWithLoggingContext({
|
|
94
|
+
sessionId,
|
|
95
|
+
transport: 'http',
|
|
96
|
+
}, async () => existing.handleRequest(req, res));
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
// New client — create a dedicated server + transport pair
|
|
100
|
+
const newServer = serverFactory();
|
|
101
|
+
const transport = new StreamableHTTPServerTransport({
|
|
102
|
+
onsessioninitialized: sid => {
|
|
103
|
+
sessions.set(sid, transport);
|
|
104
|
+
},
|
|
105
|
+
sessionIdGenerator: () => randomUUID(),
|
|
106
|
+
});
|
|
107
|
+
transport.onclose = () => {
|
|
108
|
+
if (transport.sessionId) {
|
|
109
|
+
sessions.delete(transport.sessionId);
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
await newServer.connect(transport);
|
|
113
|
+
await runWithLoggingContext({
|
|
114
|
+
sessionId: transport.sessionId ?? 'pending-http',
|
|
115
|
+
transport: 'http',
|
|
116
|
+
}, async () => transport.handleRequest(req, res));
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
// Only write error response if headers haven't been sent yet
|
|
120
|
+
if (!res.headersSent) {
|
|
121
|
+
res.statusCode = 500;
|
|
122
|
+
res.setHeader('Content-Type', 'text/plain');
|
|
123
|
+
res.end('Internal Server Error\n');
|
|
124
|
+
}
|
|
125
|
+
process.stderr.write(`[synergy-mcp] HTTP handler error: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
return {
|
|
129
|
+
start: async () => new Promise((resolve, reject) => {
|
|
130
|
+
nodeServer.on('error', (error) => {
|
|
131
|
+
if (error.code === 'EADDRINUSE') {
|
|
132
|
+
reject(new Error(`Port ${port} is already in use. Please choose a different port.`));
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
reject(new Error(`Server error: ${error instanceof Error ? error.message : String(error)}`));
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
nodeServer.on('listening', () => {
|
|
139
|
+
process.stdout.write(`[synergy-mcp] ✓ ${protocol.toUpperCase()} server started at ${protocol}://${host}:${port}\n`);
|
|
140
|
+
process.stdout.write(`[synergy-mcp] ✓ MCP endpoint: ${protocol}://${host}:${port}/mcp\n`);
|
|
141
|
+
resolve();
|
|
142
|
+
});
|
|
143
|
+
nodeServer.listen(port, host);
|
|
144
|
+
}),
|
|
145
|
+
stop: async () => new Promise((resolve, reject) => {
|
|
146
|
+
nodeServer.close((error) => {
|
|
147
|
+
if (error) {
|
|
148
|
+
reject(error);
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
process.stdout.write('[synergy-mcp] ✓ Server stopped\n');
|
|
152
|
+
resolve();
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
}),
|
|
156
|
+
};
|
|
157
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import type { McpRuntimeConfig } from '../utilities/config.js';
|
|
3
|
+
/**
|
|
4
|
+
* Common interface for all transport implementations.
|
|
5
|
+
*/
|
|
6
|
+
export interface TransportInstance {
|
|
7
|
+
/** Start listening for connections. */
|
|
8
|
+
start: () => Promise<void>;
|
|
9
|
+
/** Optional: Stop listening for connections. */
|
|
10
|
+
stop?: () => Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Creates and returns a transport instance based on the runtime configuration.
|
|
14
|
+
*
|
|
15
|
+
* For stdio mode, a single server instance is used.
|
|
16
|
+
* For HTTP mode, the factory is called once per client session so each client
|
|
17
|
+
* gets an isolated server with its own tool registrations.
|
|
18
|
+
*
|
|
19
|
+
* @param serverFactory A factory function that creates a new MCP server instance
|
|
20
|
+
* @param config The runtime configuration
|
|
21
|
+
* @returns A transport instance ready to start
|
|
22
|
+
*/
|
|
23
|
+
export declare function createTransport(serverFactory: () => McpServer, config: McpRuntimeConfig): Promise<TransportInstance>;
|