@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.
- package/CHANGELOG.md +28 -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 +18 -28
- 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 -364
- 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-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 -2140
- 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 -949
- 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-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
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 {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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,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,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/
|
|
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
|
};
|