@adyen/bento-mcp 0.1.4 → 0.2.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 +44 -0
- package/README.md +50 -5
- package/SKILL.md +138 -0
- package/bin/add-skill.js +46 -0
- package/dist/assets/components/accordion/accordion.types.ts +1 -0
- package/dist/assets/components/action-bar/action-bar.types.ts +1 -0
- package/dist/assets/components/ai-tag/ai-tag.types.ts +1 -0
- package/dist/assets/components/alert/alert.types.ts +1 -0
- package/dist/assets/components/anchor-scroller/anchor-scroller.types.ts +1 -0
- package/dist/assets/components/anchor-scroller/components/anchor-scroller-list/anchor-scroller-list.types.ts +1 -0
- package/dist/assets/components/avatar/components/avatar-image/avatar-image.types.ts +1 -0
- package/dist/assets/components/button/button.types.ts +1 -0
- package/dist/assets/components/button/components/ai-button/ai-button.types.ts +1 -0
- package/dist/assets/components/button/components/button-actions/button-actions.types.ts +1 -0
- package/dist/assets/components/button/components/loading-button/loading-button.types.ts +1 -0
- package/dist/assets/components/button/components/toggle-button/toggle.types.ts +1 -0
- package/dist/assets/components/card/card.types.ts +1 -0
- package/dist/assets/components/checkbox/checkbox.types.ts +1 -0
- package/dist/assets/components/checkbox/components/checkbox-group/checkbox-group.types.ts +1 -0
- package/dist/assets/components/chip/chip.types.ts +1 -0
- package/dist/assets/components/code-snippet/code-snippet.types.ts +1 -0
- package/dist/assets/components/country/country.types.ts +1 -0
- package/dist/assets/components/currency/currency.types.ts +1 -0
- package/dist/assets/components/dashed-underline/dashed-underline.types.ts +1 -0
- package/dist/assets/components/data-grid/components/data-grid-cell/data-grid-cell.types.ts +1 -0
- package/dist/assets/components/data-grid/components/data-grid-cell-actions/data-grid-cell-actions.types.ts +1 -0
- package/dist/assets/components/data-grid/components/data-grid-columns/data-grid-columns.types.ts +1 -0
- package/dist/assets/components/data-grid/components/data-grid-config-settings/data-grid-config-settings.types.ts +1 -0
- package/dist/assets/components/data-grid/components/data-grid-row/data-grid-row.types.ts +1 -0
- package/dist/assets/components/data-grid/components/data-grid-static-icon/data-grid-static-icon.types.ts +1 -0
- package/dist/assets/components/data-grid/components/data-grid-summary-cell/data-grid-summary-cell.types.ts +1 -0
- package/dist/assets/components/data-grid/components/data-grid-tag-with-text-cell/data-grid-tag-with-text-cell.types.ts +1 -0
- package/dist/assets/components/data-grid/components/data-grid-trend-cell/data-grid-trend-cell.types.ts +1 -0
- package/dist/assets/components/data-grid/composables/use-calculate-column-width/use-calculate-column-width.types.ts +1 -0
- package/dist/assets/components/data-grid/composables/use-column-hovering/use-column-hovering.types.ts +1 -0
- package/dist/assets/components/data-grid/composables/use-config-settings/use-config.settings.types.ts +1 -0
- package/dist/assets/components/data-grid/composables/use-keyboard-navigator/use-keyboard-navigator.types.ts +1 -0
- package/dist/assets/components/data-grid/data-grid.types.ts +1 -0
- package/dist/assets/components/date/date.types.ts +1 -0
- package/dist/assets/components/date-picker/composables/use-date-picker-single-calendar-text.types.ts +1 -0
- package/dist/assets/components/date-picker/date-picker.types.ts +1 -0
- package/dist/assets/components/date-range-picker/components/date-range-picker-calendar/date-range-picker-calendar.types.ts +1 -0
- package/dist/assets/components/date-range-picker/composables/use-date-range-picker-calendar-text.types.ts +1 -0
- package/dist/assets/components/date-range-picker/composables/use-granularity-memory.types.ts +1 -0
- package/dist/assets/components/date-range-picker/date-range-picker.types.ts +1 -0
- package/dist/assets/components/divider/divider.types.ts +1 -0
- package/dist/assets/components/draggable-handle/draggable-handle.types.ts +1 -0
- package/dist/assets/components/dropdown/components/dropdown-base-textbox/dropdown-base-textbox.types.ts +1 -0
- package/dist/assets/components/dropdown/components/variants/dropdown-avatar/dropdown-avatar.types.ts +1 -0
- package/dist/assets/components/dropdown/components/variants/dropdown-country/dropdown-country.types.ts +1 -0
- package/dist/assets/components/dropdown/components/variants/dropdown-currency/dropdown-currency.types.ts +1 -0
- package/dist/assets/components/dropdown/components/variants/dropdown-payment-method/dropdown-payment-method.types.ts +1 -0
- package/dist/assets/components/dropdown/components/variants/dropdown-tag/dropdown-tag.types.ts +1 -0
- package/dist/assets/components/dropdown/composables/use-display-value.types.ts +1 -0
- package/dist/assets/components/dropdown/composables/use-keyboard-navigation.types.ts +1 -0
- package/dist/assets/components/dropdown/dropdown.types.ts +1 -0
- package/dist/assets/components/empty-state/empty-state.types.ts +1 -0
- package/dist/assets/components/file-uploader/components/file-uploader-file-card/file-uploader-file-card.types.ts +1 -0
- package/dist/assets/components/file-uploader/components/file-uploader-restrictions/file-uploader-restrictions.types.ts +1 -0
- package/dist/assets/components/file-uploader/composables/use-drag-drop-state/use-drag-drop-state.types.ts +1 -0
- package/dist/assets/components/file-uploader/file-uploader.types.ts +1 -0
- package/dist/assets/components/filter-bar/components/all-filters-modal/all-filters-modal.types.ts +1 -0
- package/dist/assets/components/filter-bar/components/all-filters-modal/all-filters-modal.vue +1 -1
- package/dist/assets/components/filter-bar/components/base-filter/base-filter.types.ts +1 -0
- package/dist/assets/components/filter-bar/components/checkbox-group-filter/checkbox-group-filter.types.ts +1 -0
- package/dist/assets/components/filter-bar/components/filter-bar-button-group/filter-bar-button-group.types.ts +1 -0
- package/dist/assets/components/filter-bar/components/input-filter/input-filter.types.ts +1 -0
- package/dist/assets/components/filter-bar/components/radio-group-filter/radio-group-filter.types.ts +1 -0
- package/dist/assets/components/filter-bar/components/toggle-filter/toggle-filter.types.ts +1 -0
- package/dist/assets/components/filter-bar/filter-bar.types.ts +1 -0
- package/dist/assets/components/focus-trap/focus-trap.types.ts +1 -0
- package/dist/assets/components/form-layout/components/form-layout-field-tip/form-layout-tip.types.ts +1 -0
- package/dist/assets/components/form-layout/components/form-layout-group/form-layout-group.types.ts +1 -0
- package/dist/assets/components/form-layout/form-layout.types.ts +1 -0
- package/dist/assets/components/header/header.types.ts +1 -0
- package/dist/assets/components/header-with-views/components/header-with-views-all-views/header-with-views-all-views.types.ts +1 -0
- package/dist/assets/components/header-with-views/components/header-with-views-item-edit-form/header-with-views-edit-form.types.ts +1 -0
- package/dist/assets/components/header-with-views/header-with-views.types.ts +1 -0
- package/dist/assets/components/image/image.types.ts +1 -0
- package/dist/assets/components/info-icon/info-icon.types.ts +1 -0
- package/dist/assets/components/input-field/input-field.types.ts +1 -0
- package/dist/assets/components/input-field-password/input-field-password.types.ts +1 -0
- package/dist/assets/components/input-field-phone-number/input-field-phone-number.types.ts +1 -0
- package/dist/assets/components/inspector/inspector.types.ts +1 -0
- package/dist/assets/components/internal/base-button/base-button.types.ts +1 -0
- package/dist/assets/components/internal/button-actions-with-menu/button-actions-with-menu.types.ts +1 -0
- package/dist/assets/components/internal/calendar/calendar.types.ts +1 -0
- package/dist/assets/components/internal/calendar/components/calendar-month/calendar-month.types.ts +1 -0
- package/dist/assets/components/internal/calendar/components/calendar-month/components/calendar-month-day/calendar-month-day.types.ts +1 -0
- package/dist/assets/components/internal/calendar/components/calendar-month/composables/granular-min-max-date.types.ts +1 -0
- package/dist/assets/components/internal/calendar/components/calendar-year/calendar-year.types.ts +1 -0
- package/dist/assets/components/internal/calendar/components/calendar-year/components/calendar-year-month/calendar-year-month.types.ts +1 -0
- package/dist/assets/components/internal/calendar/composables/use-granularity-adjustments.types.ts +1 -0
- package/dist/assets/components/internal/checkbox-input/checkbox-input.types.ts +1 -0
- package/dist/assets/components/internal/copy/copy.types.ts +1 -0
- package/dist/assets/components/internal/dialog-page/dialog-page.types.ts +1 -0
- package/dist/assets/components/internal/grid-layout/grid-layout.types.ts +1 -0
- package/dist/assets/components/internal/header-meta/header-meta.types.ts +1 -0
- package/dist/assets/components/internal/listbox/components/listbox-multi-select/components/listbox-multi-select-options/components/listbox-multi-select-category/listbox-multi-select-category.types.ts +1 -0
- package/dist/assets/components/internal/listbox/components/listbox-multi-select/components/listbox-multi-select-options/listbox-multi-select-options.types.ts +1 -0
- package/dist/assets/components/internal/listbox/components/listbox-multi-select/listbox-multi-select.types.ts +1 -0
- package/dist/assets/components/internal/listbox/listbox.types.ts +1 -0
- package/dist/assets/components/internal/radio-input/radio-input.types.ts +1 -0
- package/dist/assets/components/internal/teleport/teleport.types.ts +1 -0
- package/dist/assets/components/internal/tooltip/tooltip.types.ts +1 -0
- package/dist/assets/components/layout/layout.types.ts +1 -0
- package/dist/assets/components/link/link.types.ts +1 -0
- package/dist/assets/components/list/components/list-item/list-item.stories.ts +1 -0
- package/dist/assets/components/list/components/list-item/list-item.types.ts +1 -0
- package/dist/assets/components/list/components/list-item/list-item.vue +1 -0
- package/dist/assets/components/list/list.docs.mdx +97 -0
- package/dist/assets/components/list/list.stories.ts +1 -0
- package/dist/assets/components/list/list.types.ts +1 -0
- package/dist/assets/components/list/list.vue +1 -0
- package/dist/assets/components/loading-indicator/loading-indicator.types.ts +1 -0
- package/dist/assets/components/menu/components/menu-item/menu-item.types.ts +1 -0
- package/dist/assets/components/menu/menu.types.ts +1 -0
- package/dist/assets/components/modal/components/modal-page/modal-page.types.ts +1 -0
- package/dist/assets/components/modal/modal.types.ts +1 -0
- package/dist/assets/components/pagination/pagination.types.ts +1 -0
- package/dist/assets/components/payment-method/payment-method.types.ts +1 -0
- package/dist/assets/components/popover/popover.types.ts +1 -0
- package/dist/assets/components/popper-container/popper-container.types.ts +1 -0
- package/dist/assets/components/promo-banner/promo-banner.types.ts +1 -0
- package/dist/assets/components/radio-group/components/radio-button/radio-button.types.ts +1 -0
- package/dist/assets/components/radio-group/radio-group.types.ts +1 -0
- package/dist/assets/components/rich-text-editor/components/rich-text-editor-content-area/rich-text-editor-content-area.types.ts +1 -0
- package/dist/assets/components/rich-text-editor/components/rich-text-editor-renderer/components/rich-text-editor-code-block/rich-text-editor-code-block.types.ts +1 -0
- package/dist/assets/components/rich-text-editor/components/rich-text-editor-renderer/components/rich-text-editor-inline-code/rich-text-editor-inline-code.types.ts +1 -0
- package/dist/assets/components/rich-text-editor/components/rich-text-editor-renderer/components/rich-text-editor-link/rich-text-editor-link.types.ts +1 -0
- package/dist/assets/components/rich-text-editor/components/rich-text-editor-renderer/components/rich-text-editor-list-item/rich-text-editor-list-item.types.ts +1 -0
- package/dist/assets/components/rich-text-editor/components/rich-text-editor-renderer/rich-text-editor-renderer.types.ts +1 -0
- package/dist/assets/components/rich-text-editor/rich-text-editor.types.ts +1 -0
- package/dist/assets/components/search-bar/search-bar.types.ts +1 -0
- package/dist/assets/components/secondary-nav/secondary-nav.types.ts +1 -0
- package/dist/assets/components/segmented-control/segmented-control.types.ts +1 -0
- package/dist/assets/components/selection-card/components/selection-card-group/selection-card-group.types.ts +1 -0
- package/dist/assets/components/selection-card/selection-card.types.ts +1 -0
- package/dist/assets/components/sidepanel/sidepanel.types.ts +1 -0
- package/dist/assets/components/status/status.types.ts +1 -0
- package/dist/assets/components/stepper/stepper.types.ts +1 -0
- package/dist/assets/components/structured-list/structured-list.types.ts +1 -0
- package/dist/assets/components/summary-grid/components/summary-grid-item/summary-grid-item.types.ts +1 -0
- package/dist/assets/components/summary-grid/components/summary-grid-item-amount/summary-grid-item-amount.types.ts +1 -0
- package/dist/assets/components/summary-grid/components/summary-grid-item-custom/summary-grid-item-custom.types.ts +1 -0
- package/dist/assets/components/summary-grid/components/summary-grid-item-numeric/summary-grid-item-numeric.types.ts +1 -0
- package/dist/assets/components/summary-grid/components/summary-grid-item-percentage/summary-grid-item-percentage.types.ts +1 -0
- package/dist/assets/components/summary-grid/components/summary-grid-item-text/summary-grid-item-text.types.ts +1 -0
- package/dist/assets/components/summary-grid/summary-grid.types.ts +1 -0
- package/dist/assets/components/tabs/components/tab.types.ts +1 -0
- package/dist/assets/components/tabs/tabs.types.ts +1 -0
- package/dist/assets/components/tag/tag.types.ts +1 -0
- package/dist/assets/components/textarea/textarea.types.ts +1 -0
- package/dist/assets/components/timeline/components/timeline-item/timeline-item.vue +1 -1
- package/dist/assets/components/timeline/timeline.stories.ts +1 -1
- package/dist/assets/components/timeline/timeline.types.ts +1 -0
- package/dist/assets/components/toast/components/toast-shadow-stack/toast-shadow-stack.types.ts +1 -0
- package/dist/assets/components/toggle/toggle.types.ts +1 -0
- package/dist/assets/components/tutorial/tutorial.types.ts +1 -0
- package/dist/assets/components/typography/typography.types.ts +1 -0
- package/dist/assets/components.json +101 -0
- package/dist/assets/composables/use-bento-theme/install.ts +1 -0
- package/dist/assets/composables/use-bento-theme/install.types.ts +1 -0
- package/dist/assets/composables/use-bento-theme/use-bento-theme.types.ts +1 -0
- package/dist/assets/composables/use-bento-toast-controller/install.ts +1 -0
- package/dist/assets/composables/use-bento-toast-controller/use-bento-toast-controller.types.ts +1 -0
- package/dist/assets/composables/use-form-validate/use-form.types.ts +1 -0
- package/dist/assets/composables/use-form-validate-zod-4/use-form.types.ts +1 -0
- package/dist/assets/composables/use-virtual-list/use-virtual-list.types.ts +1 -0
- package/dist/assets/deprecations.md +330 -0
- package/dist/assets/directives/keyboard-navigation/keyboard-navigation.types.ts +1 -0
- package/dist/assets/directives/tooltip/tooltip.types.ts +1 -0
- package/dist/assets/icons.json +415 -0
- package/dist/assets/index.ts +1 -1
- package/dist/assets/install.ts +1 -0
- package/dist/assets/tailwind/README.md +89 -0
- package/dist/assets/templates/dashboard-template/dashboard-template.types.ts +1 -0
- package/dist/assets/templates/data-grid-template/data-grid-template.stories.ts +1 -1
- package/dist/assets/templates/data-grid-template/data-grid-template.types.ts +1 -0
- package/dist/assets/utility-classes.md +92 -0
- package/dist/assets/utils/ts/currency/currency.types.ts +1 -0
- package/dist/assets/variables.css +309 -0
- package/dist/main.js +395 -29
- package/package.json +15 -6
package/dist/main.js
CHANGED
|
@@ -22340,7 +22340,7 @@ function object(shape, params) {
|
|
|
22340
22340
|
return new ZodMiniObject(def);
|
|
22341
22341
|
}
|
|
22342
22342
|
|
|
22343
|
-
// node_modules/.pnpm/@modelcontextprotocol+sdk@1.
|
|
22343
|
+
// node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js
|
|
22344
22344
|
function isZ4Schema(s) {
|
|
22345
22345
|
const schema = s;
|
|
22346
22346
|
return !!schema._zod;
|
|
@@ -24630,7 +24630,7 @@ function date4(params) {
|
|
|
24630
24630
|
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/external.js
|
|
24631
24631
|
config(en_default2());
|
|
24632
24632
|
|
|
24633
|
-
// node_modules/.pnpm/@modelcontextprotocol+sdk@1.
|
|
24633
|
+
// node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js
|
|
24634
24634
|
var LATEST_PROTOCOL_VERSION = "2025-11-25";
|
|
24635
24635
|
var SUPPORTED_PROTOCOL_VERSIONS = [LATEST_PROTOCOL_VERSION, "2025-06-18", "2025-03-26", "2024-11-05", "2024-10-07"];
|
|
24636
24636
|
var RELATED_TASK_META_KEY = "io.modelcontextprotocol/related-task";
|
|
@@ -26148,7 +26148,7 @@ var UrlElicitationRequiredError = class extends McpError {
|
|
|
26148
26148
|
}
|
|
26149
26149
|
};
|
|
26150
26150
|
|
|
26151
|
-
// node_modules/.pnpm/@modelcontextprotocol+sdk@1.
|
|
26151
|
+
// node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js
|
|
26152
26152
|
function isTerminal(status) {
|
|
26153
26153
|
return status === "completed" || status === "failed" || status === "cancelled";
|
|
26154
26154
|
}
|
|
@@ -27437,7 +27437,7 @@ var zodToJsonSchema = (schema, options) => {
|
|
|
27437
27437
|
return combined;
|
|
27438
27438
|
};
|
|
27439
27439
|
|
|
27440
|
-
// node_modules/.pnpm/@modelcontextprotocol+sdk@1.
|
|
27440
|
+
// node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js
|
|
27441
27441
|
function mapMiniTarget(t) {
|
|
27442
27442
|
if (!t)
|
|
27443
27443
|
return "draft-7";
|
|
@@ -27479,7 +27479,7 @@ function parseWithCompat(schema, data) {
|
|
|
27479
27479
|
return result.data;
|
|
27480
27480
|
}
|
|
27481
27481
|
|
|
27482
|
-
// node_modules/.pnpm/@modelcontextprotocol+sdk@1.
|
|
27482
|
+
// node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js
|
|
27483
27483
|
var DEFAULT_REQUEST_TIMEOUT_MSEC = 6e4;
|
|
27484
27484
|
var Protocol = class {
|
|
27485
27485
|
constructor(_options) {
|
|
@@ -28427,7 +28427,7 @@ function mergeCapabilities(base, additional) {
|
|
|
28427
28427
|
return result;
|
|
28428
28428
|
}
|
|
28429
28429
|
|
|
28430
|
-
// node_modules/.pnpm/@modelcontextprotocol+sdk@1.
|
|
28430
|
+
// node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js
|
|
28431
28431
|
var import_ajv = __toESM(require_ajv(), 1);
|
|
28432
28432
|
var import_ajv_formats = __toESM(require_dist(), 1);
|
|
28433
28433
|
function createDefaultAjvInstance() {
|
|
@@ -28495,7 +28495,7 @@ var AjvJsonSchemaValidator = class {
|
|
|
28495
28495
|
}
|
|
28496
28496
|
};
|
|
28497
28497
|
|
|
28498
|
-
// node_modules/.pnpm/@modelcontextprotocol+sdk@1.
|
|
28498
|
+
// node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js
|
|
28499
28499
|
var ExperimentalServerTasks = class {
|
|
28500
28500
|
constructor(_server) {
|
|
28501
28501
|
this._server = _server;
|
|
@@ -28517,6 +28517,147 @@ var ExperimentalServerTasks = class {
|
|
|
28517
28517
|
requestStream(request, resultSchema, options) {
|
|
28518
28518
|
return this._server.requestStream(request, resultSchema, options);
|
|
28519
28519
|
}
|
|
28520
|
+
/**
|
|
28521
|
+
* Sends a sampling request and returns an AsyncGenerator that yields response messages.
|
|
28522
|
+
* The generator is guaranteed to end with either a 'result' or 'error' message.
|
|
28523
|
+
*
|
|
28524
|
+
* For task-augmented requests, yields 'taskCreated' and 'taskStatus' messages
|
|
28525
|
+
* before the final result.
|
|
28526
|
+
*
|
|
28527
|
+
* @example
|
|
28528
|
+
* ```typescript
|
|
28529
|
+
* const stream = server.experimental.tasks.createMessageStream({
|
|
28530
|
+
* messages: [{ role: 'user', content: { type: 'text', text: 'Hello' } }],
|
|
28531
|
+
* maxTokens: 100
|
|
28532
|
+
* }, {
|
|
28533
|
+
* onprogress: (progress) => {
|
|
28534
|
+
* // Handle streaming tokens via progress notifications
|
|
28535
|
+
* console.log('Progress:', progress.message);
|
|
28536
|
+
* }
|
|
28537
|
+
* });
|
|
28538
|
+
*
|
|
28539
|
+
* for await (const message of stream) {
|
|
28540
|
+
* switch (message.type) {
|
|
28541
|
+
* case 'taskCreated':
|
|
28542
|
+
* console.log('Task created:', message.task.taskId);
|
|
28543
|
+
* break;
|
|
28544
|
+
* case 'taskStatus':
|
|
28545
|
+
* console.log('Task status:', message.task.status);
|
|
28546
|
+
* break;
|
|
28547
|
+
* case 'result':
|
|
28548
|
+
* console.log('Final result:', message.result);
|
|
28549
|
+
* break;
|
|
28550
|
+
* case 'error':
|
|
28551
|
+
* console.error('Error:', message.error);
|
|
28552
|
+
* break;
|
|
28553
|
+
* }
|
|
28554
|
+
* }
|
|
28555
|
+
* ```
|
|
28556
|
+
*
|
|
28557
|
+
* @param params - The sampling request parameters
|
|
28558
|
+
* @param options - Optional request options (timeout, signal, task creation params, onprogress, etc.)
|
|
28559
|
+
* @returns AsyncGenerator that yields ResponseMessage objects
|
|
28560
|
+
*
|
|
28561
|
+
* @experimental
|
|
28562
|
+
*/
|
|
28563
|
+
createMessageStream(params, options) {
|
|
28564
|
+
const clientCapabilities = this._server.getClientCapabilities();
|
|
28565
|
+
if ((params.tools || params.toolChoice) && !clientCapabilities?.sampling?.tools) {
|
|
28566
|
+
throw new Error("Client does not support sampling tools capability.");
|
|
28567
|
+
}
|
|
28568
|
+
if (params.messages.length > 0) {
|
|
28569
|
+
const lastMessage = params.messages[params.messages.length - 1];
|
|
28570
|
+
const lastContent = Array.isArray(lastMessage.content) ? lastMessage.content : [lastMessage.content];
|
|
28571
|
+
const hasToolResults = lastContent.some((c) => c.type === "tool_result");
|
|
28572
|
+
const previousMessage = params.messages.length > 1 ? params.messages[params.messages.length - 2] : void 0;
|
|
28573
|
+
const previousContent = previousMessage ? Array.isArray(previousMessage.content) ? previousMessage.content : [previousMessage.content] : [];
|
|
28574
|
+
const hasPreviousToolUse = previousContent.some((c) => c.type === "tool_use");
|
|
28575
|
+
if (hasToolResults) {
|
|
28576
|
+
if (lastContent.some((c) => c.type !== "tool_result")) {
|
|
28577
|
+
throw new Error("The last message must contain only tool_result content if any is present");
|
|
28578
|
+
}
|
|
28579
|
+
if (!hasPreviousToolUse) {
|
|
28580
|
+
throw new Error("tool_result blocks are not matching any tool_use from the previous message");
|
|
28581
|
+
}
|
|
28582
|
+
}
|
|
28583
|
+
if (hasPreviousToolUse) {
|
|
28584
|
+
const toolUseIds = new Set(previousContent.filter((c) => c.type === "tool_use").map((c) => c.id));
|
|
28585
|
+
const toolResultIds = new Set(lastContent.filter((c) => c.type === "tool_result").map((c) => c.toolUseId));
|
|
28586
|
+
if (toolUseIds.size !== toolResultIds.size || ![...toolUseIds].every((id) => toolResultIds.has(id))) {
|
|
28587
|
+
throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match");
|
|
28588
|
+
}
|
|
28589
|
+
}
|
|
28590
|
+
}
|
|
28591
|
+
return this.requestStream({
|
|
28592
|
+
method: "sampling/createMessage",
|
|
28593
|
+
params
|
|
28594
|
+
}, CreateMessageResultSchema, options);
|
|
28595
|
+
}
|
|
28596
|
+
/**
|
|
28597
|
+
* Sends an elicitation request and returns an AsyncGenerator that yields response messages.
|
|
28598
|
+
* The generator is guaranteed to end with either a 'result' or 'error' message.
|
|
28599
|
+
*
|
|
28600
|
+
* For task-augmented requests (especially URL-based elicitation), yields 'taskCreated'
|
|
28601
|
+
* and 'taskStatus' messages before the final result.
|
|
28602
|
+
*
|
|
28603
|
+
* @example
|
|
28604
|
+
* ```typescript
|
|
28605
|
+
* const stream = server.experimental.tasks.elicitInputStream({
|
|
28606
|
+
* mode: 'url',
|
|
28607
|
+
* message: 'Please authenticate',
|
|
28608
|
+
* elicitationId: 'auth-123',
|
|
28609
|
+
* url: 'https://example.com/auth'
|
|
28610
|
+
* }, {
|
|
28611
|
+
* task: { ttl: 300000 } // Task-augmented for long-running auth flow
|
|
28612
|
+
* });
|
|
28613
|
+
*
|
|
28614
|
+
* for await (const message of stream) {
|
|
28615
|
+
* switch (message.type) {
|
|
28616
|
+
* case 'taskCreated':
|
|
28617
|
+
* console.log('Task created:', message.task.taskId);
|
|
28618
|
+
* break;
|
|
28619
|
+
* case 'taskStatus':
|
|
28620
|
+
* console.log('Task status:', message.task.status);
|
|
28621
|
+
* break;
|
|
28622
|
+
* case 'result':
|
|
28623
|
+
* console.log('User action:', message.result.action);
|
|
28624
|
+
* break;
|
|
28625
|
+
* case 'error':
|
|
28626
|
+
* console.error('Error:', message.error);
|
|
28627
|
+
* break;
|
|
28628
|
+
* }
|
|
28629
|
+
* }
|
|
28630
|
+
* ```
|
|
28631
|
+
*
|
|
28632
|
+
* @param params - The elicitation request parameters
|
|
28633
|
+
* @param options - Optional request options (timeout, signal, task creation params, etc.)
|
|
28634
|
+
* @returns AsyncGenerator that yields ResponseMessage objects
|
|
28635
|
+
*
|
|
28636
|
+
* @experimental
|
|
28637
|
+
*/
|
|
28638
|
+
elicitInputStream(params, options) {
|
|
28639
|
+
const clientCapabilities = this._server.getClientCapabilities();
|
|
28640
|
+
const mode = params.mode ?? "form";
|
|
28641
|
+
switch (mode) {
|
|
28642
|
+
case "url": {
|
|
28643
|
+
if (!clientCapabilities?.elicitation?.url) {
|
|
28644
|
+
throw new Error("Client does not support url elicitation.");
|
|
28645
|
+
}
|
|
28646
|
+
break;
|
|
28647
|
+
}
|
|
28648
|
+
case "form": {
|
|
28649
|
+
if (!clientCapabilities?.elicitation?.form) {
|
|
28650
|
+
throw new Error("Client does not support form elicitation.");
|
|
28651
|
+
}
|
|
28652
|
+
break;
|
|
28653
|
+
}
|
|
28654
|
+
}
|
|
28655
|
+
const normalizedParams = mode === "form" && params.mode === void 0 ? { ...params, mode: "form" } : params;
|
|
28656
|
+
return this.requestStream({
|
|
28657
|
+
method: "elicitation/create",
|
|
28658
|
+
params: normalizedParams
|
|
28659
|
+
}, ElicitResultSchema, options);
|
|
28660
|
+
}
|
|
28520
28661
|
/**
|
|
28521
28662
|
* Gets the current status of a task.
|
|
28522
28663
|
*
|
|
@@ -28567,7 +28708,7 @@ var ExperimentalServerTasks = class {
|
|
|
28567
28708
|
}
|
|
28568
28709
|
};
|
|
28569
28710
|
|
|
28570
|
-
// node_modules/.pnpm/@modelcontextprotocol+sdk@1.
|
|
28711
|
+
// node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js
|
|
28571
28712
|
function assertToolsCallTaskCapability(requests, method, entityName) {
|
|
28572
28713
|
if (!requests) {
|
|
28573
28714
|
throw new Error(`${entityName} does not support task creation (required for ${method})`);
|
|
@@ -28602,7 +28743,7 @@ function assertClientRequestTaskCapability(requests, method, entityName) {
|
|
|
28602
28743
|
}
|
|
28603
28744
|
}
|
|
28604
28745
|
|
|
28605
|
-
// node_modules/.pnpm/@modelcontextprotocol+sdk@1.
|
|
28746
|
+
// node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js
|
|
28606
28747
|
var Server = class extends Protocol {
|
|
28607
28748
|
/**
|
|
28608
28749
|
* Initializes this server with the given name and version information.
|
|
@@ -28982,7 +29123,7 @@ var Server = class extends Protocol {
|
|
|
28982
29123
|
}
|
|
28983
29124
|
};
|
|
28984
29125
|
|
|
28985
|
-
// node_modules/.pnpm/@modelcontextprotocol+sdk@1.
|
|
29126
|
+
// node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js
|
|
28986
29127
|
var COMPLETABLE_SYMBOL = /* @__PURE__ */ Symbol.for("mcp.completable");
|
|
28987
29128
|
function isCompletable(schema) {
|
|
28988
29129
|
return !!schema && typeof schema === "object" && COMPLETABLE_SYMBOL in schema;
|
|
@@ -28996,7 +29137,7 @@ var McpZodTypeKind;
|
|
|
28996
29137
|
McpZodTypeKind2["Completable"] = "McpCompletable";
|
|
28997
29138
|
})(McpZodTypeKind || (McpZodTypeKind = {}));
|
|
28998
29139
|
|
|
28999
|
-
// node_modules/.pnpm/@modelcontextprotocol+sdk@1.
|
|
29140
|
+
// node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/toolNameValidation.js
|
|
29000
29141
|
var TOOL_NAME_REGEX = /^[A-Za-z0-9._-]{1,128}$/;
|
|
29001
29142
|
function validateToolName(name) {
|
|
29002
29143
|
const warnings = [];
|
|
@@ -29054,7 +29195,7 @@ function validateAndWarnToolName(name) {
|
|
|
29054
29195
|
return result.isValid;
|
|
29055
29196
|
}
|
|
29056
29197
|
|
|
29057
|
-
// node_modules/.pnpm/@modelcontextprotocol+sdk@1.
|
|
29198
|
+
// node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/mcp-server.js
|
|
29058
29199
|
var ExperimentalMcpServerTasks = class {
|
|
29059
29200
|
constructor(_mcpServer) {
|
|
29060
29201
|
this._mcpServer = _mcpServer;
|
|
@@ -29072,7 +29213,7 @@ var ExperimentalMcpServerTasks = class {
|
|
|
29072
29213
|
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/index.js
|
|
29073
29214
|
var zod_default = external_exports3;
|
|
29074
29215
|
|
|
29075
|
-
// node_modules/.pnpm/@modelcontextprotocol+sdk@1.
|
|
29216
|
+
// node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js
|
|
29076
29217
|
var McpServer = class {
|
|
29077
29218
|
constructor(serverInfo, options) {
|
|
29078
29219
|
this._registeredResources = {};
|
|
@@ -29858,10 +29999,10 @@ var EMPTY_COMPLETION_RESULT = {
|
|
|
29858
29999
|
}
|
|
29859
30000
|
};
|
|
29860
30001
|
|
|
29861
|
-
// node_modules/.pnpm/@modelcontextprotocol+sdk@1.
|
|
30002
|
+
// node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
|
|
29862
30003
|
import process3 from "node:process";
|
|
29863
30004
|
|
|
29864
|
-
// node_modules/.pnpm/@modelcontextprotocol+sdk@1.
|
|
30005
|
+
// node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js
|
|
29865
30006
|
var ReadBuffer = class {
|
|
29866
30007
|
append(chunk) {
|
|
29867
30008
|
this._buffer = this._buffer ? Buffer.concat([this._buffer, chunk]) : chunk;
|
|
@@ -29889,7 +30030,7 @@ function serializeMessage(message) {
|
|
|
29889
30030
|
return JSON.stringify(message) + "\n";
|
|
29890
30031
|
}
|
|
29891
30032
|
|
|
29892
|
-
// node_modules/.pnpm/@modelcontextprotocol+sdk@1.
|
|
30033
|
+
// node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
|
|
29893
30034
|
var StdioServerTransport = class {
|
|
29894
30035
|
constructor(_stdin = process3.stdin, _stdout = process3.stdout) {
|
|
29895
30036
|
this._stdin = _stdin;
|
|
@@ -29969,14 +30110,14 @@ function addGetAllComponents(server) {
|
|
|
29969
30110
|
"get_all_components",
|
|
29970
30111
|
{
|
|
29971
30112
|
description: `
|
|
29972
|
-
Retrieves the
|
|
29973
|
-
Use this to understand which components are available in the library.
|
|
30113
|
+
Retrieves the global component type definitions file that lists all available Bento components.
|
|
30114
|
+
Use this to understand which components are available in the library and their names.
|
|
29974
30115
|
Returns:
|
|
29975
|
-
str: The
|
|
30116
|
+
str: The list of components available in Bento
|
|
29976
30117
|
`
|
|
29977
30118
|
},
|
|
29978
30119
|
() => {
|
|
29979
|
-
const filePath = "
|
|
30120
|
+
const filePath = "components.json";
|
|
29980
30121
|
return {
|
|
29981
30122
|
content: [{ type: "text", text: getFile(filePath) }]
|
|
29982
30123
|
};
|
|
@@ -29990,13 +30131,13 @@ function addGetComponent(server) {
|
|
|
29990
30131
|
"get_component",
|
|
29991
30132
|
{
|
|
29992
30133
|
description: `
|
|
29993
|
-
Retrieves the documentation, stories,
|
|
30134
|
+
Retrieves the documentation, stories, Vue implementation, and type definitions for a list of components from the private repo.
|
|
29994
30135
|
|
|
29995
30136
|
Args:
|
|
29996
30137
|
componentNames (Array<string>): A list of component names (e.g., ["button", "modal"]).
|
|
29997
30138
|
|
|
29998
30139
|
Returns:
|
|
29999
|
-
str: A Markdown formatted string containing the contents of the .docs.mdx, .stories.ts, and .
|
|
30140
|
+
str: A Markdown formatted string containing the contents of the .docs.mdx, .stories.ts, .vue, and .types.ts files.
|
|
30000
30141
|
`,
|
|
30001
30142
|
inputSchema: {
|
|
30002
30143
|
componentNames: zod_default.array(zod_default.string()).describe("A list of component names")
|
|
@@ -30004,10 +30145,11 @@ function addGetComponent(server) {
|
|
|
30004
30145
|
},
|
|
30005
30146
|
async ({ componentNames }) => {
|
|
30006
30147
|
const output = [
|
|
30007
|
-
"I have retrieved the requested component context. For each component, I have provided
|
|
30148
|
+
"I have retrieved the requested component context. For each component, I have provided four sections:",
|
|
30008
30149
|
"1. **Documentation (.docs.mdx)**: Explains how to use the component, props, and design guidelines.",
|
|
30009
30150
|
"2. **Stories (.stories.ts)**: Shows code examples of how to implement the component (emits, props usage).",
|
|
30010
30151
|
"3. **Implementation (.vue)**: The internal logic, properties, emits, and slots of the component.",
|
|
30152
|
+
"4. **Types (.types.ts)**: Explicit type definitions for props, emits, and slots. CRITICAL for understanding the component contract.",
|
|
30011
30153
|
"---"
|
|
30012
30154
|
];
|
|
30013
30155
|
const basePath = "components";
|
|
@@ -30015,6 +30157,7 @@ function addGetComponent(server) {
|
|
|
30015
30157
|
const docsContent = getFile(`${basePath}/${component}/${component}.docs.mdx`);
|
|
30016
30158
|
const storiesContent = getFile(`${basePath}/${component}/${component}.stories.ts`);
|
|
30017
30159
|
const vueContent = getFile(`${basePath}/${component}/${component}.vue`);
|
|
30160
|
+
const typesContent = getFile(`${basePath}/${component}/${component}.types.ts`);
|
|
30018
30161
|
const componentSection = [
|
|
30019
30162
|
`# Component: ${component}`,
|
|
30020
30163
|
`## 1. Documentation (${component}.docs.mdx)`,
|
|
@@ -30028,6 +30171,10 @@ function addGetComponent(server) {
|
|
|
30028
30171
|
`## 3. Implementation (${component}.vue)`,
|
|
30029
30172
|
"```vue",
|
|
30030
30173
|
vueContent,
|
|
30174
|
+
"```",
|
|
30175
|
+
`## 4. Types (${component}.types.ts)`,
|
|
30176
|
+
"```typescript",
|
|
30177
|
+
typesContent,
|
|
30031
30178
|
"```"
|
|
30032
30179
|
].join("\n\n");
|
|
30033
30180
|
output.push(componentSection);
|
|
@@ -30044,19 +30191,229 @@ function addGetComponent(server) {
|
|
|
30044
30191
|
);
|
|
30045
30192
|
}
|
|
30046
30193
|
|
|
30194
|
+
// packages/mcp/src/tools/get-deprecations.ts
|
|
30195
|
+
function addGetDeprecations(server) {
|
|
30196
|
+
server.registerTool(
|
|
30197
|
+
"get_deprecations",
|
|
30198
|
+
{
|
|
30199
|
+
description: `
|
|
30200
|
+
Retrieves the Bento Deprecations Registry.
|
|
30201
|
+
Use this tool to find out which components, properties, or features are deprecated and what are the recommended alternatives.
|
|
30202
|
+
Returns:
|
|
30203
|
+
str: A Markdown formatted string containing the deprecations list.
|
|
30204
|
+
`
|
|
30205
|
+
},
|
|
30206
|
+
() => {
|
|
30207
|
+
const filePath = "deprecations.md";
|
|
30208
|
+
return {
|
|
30209
|
+
content: [{ type: "text", text: getFile(filePath) }]
|
|
30210
|
+
};
|
|
30211
|
+
}
|
|
30212
|
+
);
|
|
30213
|
+
}
|
|
30214
|
+
|
|
30215
|
+
// packages/mcp/src/tools/get-docs.ts
|
|
30216
|
+
function addGetDocs(server) {
|
|
30217
|
+
server.registerTool(
|
|
30218
|
+
"get_docs",
|
|
30219
|
+
{
|
|
30220
|
+
description: `
|
|
30221
|
+
Retrieves specific documentation files for Bento.
|
|
30222
|
+
Supported doc types:
|
|
30223
|
+
- 'getting-started': General guide for installing and configuring Bento.
|
|
30224
|
+
- 'tailwind': Tailwind preset documentation and setup.
|
|
30225
|
+
Returns:
|
|
30226
|
+
str: The content of the requested documentation file.
|
|
30227
|
+
`,
|
|
30228
|
+
inputSchema: {
|
|
30229
|
+
docType: zod_default.enum(["tailwind", "getting-started"]).describe("The type of documentation to retrieve")
|
|
30230
|
+
}
|
|
30231
|
+
},
|
|
30232
|
+
async ({ docType }) => {
|
|
30233
|
+
let filePath = "";
|
|
30234
|
+
if (docType === "tailwind") {
|
|
30235
|
+
filePath = "tailwind/README.md";
|
|
30236
|
+
} else if (docType === "getting-started") {
|
|
30237
|
+
filePath = "install.ts";
|
|
30238
|
+
}
|
|
30239
|
+
return {
|
|
30240
|
+
content: [{ type: "text", text: getFile(filePath) }]
|
|
30241
|
+
};
|
|
30242
|
+
}
|
|
30243
|
+
);
|
|
30244
|
+
}
|
|
30245
|
+
|
|
30246
|
+
// packages/mcp/src/tools/get-design-tokens.ts
|
|
30247
|
+
function addGetDesignTokens(server) {
|
|
30248
|
+
server.registerTool(
|
|
30249
|
+
"get_design_tokens",
|
|
30250
|
+
{
|
|
30251
|
+
description: `
|
|
30252
|
+
Retrieves Bento Design Tokens (CSS variables).
|
|
30253
|
+
Tokens are grouped by semantic categories (color, spacing, border, shadow, etc.).
|
|
30254
|
+
Use this to find the correct CSS variables for styling.
|
|
30255
|
+
`,
|
|
30256
|
+
inputSchema: {
|
|
30257
|
+
searchQuery: zod_default.string().optional().describe('Optional search term to filter tokens (e.g., "critical", "spacer", "background")')
|
|
30258
|
+
}
|
|
30259
|
+
},
|
|
30260
|
+
async ({ searchQuery }) => {
|
|
30261
|
+
const cssContent = getFile("variables.css");
|
|
30262
|
+
if (cssContent.startsWith("Error:")) {
|
|
30263
|
+
return { content: [{ type: "text", text: cssContent }] };
|
|
30264
|
+
}
|
|
30265
|
+
const lines = cssContent.split("\n");
|
|
30266
|
+
const tokens = [];
|
|
30267
|
+
for (const line of lines) {
|
|
30268
|
+
const match = line.match(/^\s*(--b-[\w-]+):\s*([^;]+);/);
|
|
30269
|
+
if (match) {
|
|
30270
|
+
const name = match[1];
|
|
30271
|
+
const value = match[2].trim();
|
|
30272
|
+
let category = "other";
|
|
30273
|
+
if (name.includes("-color-")) {
|
|
30274
|
+
category = "color";
|
|
30275
|
+
} else if (name.includes("-spacer-")) {
|
|
30276
|
+
category = "spacing";
|
|
30277
|
+
} else if (name.includes("-border-")) {
|
|
30278
|
+
category = "border";
|
|
30279
|
+
} else if (name.includes("-shadow-")) {
|
|
30280
|
+
category = "shadow";
|
|
30281
|
+
} else if (name.includes("-animation-")) {
|
|
30282
|
+
category = "animation";
|
|
30283
|
+
} else if (name.includes("-font-")) {
|
|
30284
|
+
category = "typography";
|
|
30285
|
+
} else if (name.includes("-media-query-")) {
|
|
30286
|
+
category = "layout";
|
|
30287
|
+
}
|
|
30288
|
+
tokens.push({ name, value, category });
|
|
30289
|
+
}
|
|
30290
|
+
}
|
|
30291
|
+
const filteredTokens = searchQuery ? tokens.filter((t) => t.name.includes(searchQuery) || t.category.includes(searchQuery)) : tokens;
|
|
30292
|
+
const grouped = {};
|
|
30293
|
+
for (const t of filteredTokens) {
|
|
30294
|
+
if (!grouped[t.category]) {
|
|
30295
|
+
grouped[t.category] = [];
|
|
30296
|
+
}
|
|
30297
|
+
grouped[t.category].push(t);
|
|
30298
|
+
}
|
|
30299
|
+
let output = "# Bento Design Tokens\n\n";
|
|
30300
|
+
if (searchQuery) {
|
|
30301
|
+
output += `Filtering by: "${searchQuery}"
|
|
30302
|
+
|
|
30303
|
+
`;
|
|
30304
|
+
}
|
|
30305
|
+
for (const [category, catTokens] of Object.entries(grouped)) {
|
|
30306
|
+
output += `## ${category.charAt(0).toUpperCase() + category.slice(1)}
|
|
30307
|
+
`;
|
|
30308
|
+
for (const t of catTokens) {
|
|
30309
|
+
output += `- \`${t.name}\`: \`${t.value}\`
|
|
30310
|
+
`;
|
|
30311
|
+
}
|
|
30312
|
+
output += "\n";
|
|
30313
|
+
}
|
|
30314
|
+
if (filteredTokens.length === 0) {
|
|
30315
|
+
output += "No tokens found matching your search.";
|
|
30316
|
+
}
|
|
30317
|
+
return {
|
|
30318
|
+
content: [{ type: "text", text: output }]
|
|
30319
|
+
};
|
|
30320
|
+
}
|
|
30321
|
+
);
|
|
30322
|
+
}
|
|
30323
|
+
|
|
30324
|
+
// packages/mcp/src/tools/get-utility-classes.ts
|
|
30325
|
+
function addGetUtilityClasses(server) {
|
|
30326
|
+
server.registerTool(
|
|
30327
|
+
"get_utility_classes",
|
|
30328
|
+
{
|
|
30329
|
+
description: `
|
|
30330
|
+
Retrieves the reference guide for legacy Bento utility classes (b- prefix).
|
|
30331
|
+
Includes spacing, color, and display utilities.
|
|
30332
|
+
Also provides guidance on the transition to Tailwind CSS.
|
|
30333
|
+
`
|
|
30334
|
+
},
|
|
30335
|
+
() => {
|
|
30336
|
+
const filePath = "utility-classes.md";
|
|
30337
|
+
return {
|
|
30338
|
+
content: [{ type: "text", text: getFile(filePath) }]
|
|
30339
|
+
};
|
|
30340
|
+
}
|
|
30341
|
+
);
|
|
30342
|
+
}
|
|
30343
|
+
|
|
30344
|
+
// packages/mcp/src/tools/get-icons.ts
|
|
30345
|
+
function addGetIcons(server) {
|
|
30346
|
+
server.registerTool(
|
|
30347
|
+
"get_icons",
|
|
30348
|
+
{
|
|
30349
|
+
description: `
|
|
30350
|
+
Retrieves the registry of available Bento icons from @adyen/ui-assets-icons-16.
|
|
30351
|
+
Use this to find the correct icon name for imports.
|
|
30352
|
+
`,
|
|
30353
|
+
inputSchema: {
|
|
30354
|
+
searchQuery: zod_default.string().optional().describe('Optional search term to filter icons (e.g., "arrow", "check", "edit")')
|
|
30355
|
+
}
|
|
30356
|
+
},
|
|
30357
|
+
async ({ searchQuery }) => {
|
|
30358
|
+
const iconsContent = getFile("icons.json");
|
|
30359
|
+
if (iconsContent.startsWith("Error:")) {
|
|
30360
|
+
return { content: [{ type: "text", text: iconsContent }] };
|
|
30361
|
+
}
|
|
30362
|
+
try {
|
|
30363
|
+
const icons = JSON.parse(iconsContent);
|
|
30364
|
+
const filteredIcons = searchQuery ? icons.filter((icon) => icon.toLowerCase().includes(searchQuery.toLowerCase())) : icons;
|
|
30365
|
+
let output = "# Bento Icon Registry (@adyen/ui-assets-icons-16)\n\n";
|
|
30366
|
+
if (searchQuery) {
|
|
30367
|
+
output += `Filtering by: "${searchQuery}" (${filteredIcons.length} icons found)
|
|
30368
|
+
|
|
30369
|
+
`;
|
|
30370
|
+
} else {
|
|
30371
|
+
output += `Total icons available: ${icons.length}
|
|
30372
|
+
|
|
30373
|
+
`;
|
|
30374
|
+
}
|
|
30375
|
+
if (filteredIcons.length > 0) {
|
|
30376
|
+
output += "### Icon Names\n";
|
|
30377
|
+
output += filteredIcons.map((name) => `- \`${name}\``).join("\n");
|
|
30378
|
+
output += "\n\n**Note**: Import these from `@adyen/ui-assets-icons-16`. For example: `import { " + filteredIcons[0].split("-").map((part) => part.charAt(0).toUpperCase() + part.slice(1)).join("") + ' } from "@adyen/ui-assets-icons-16";`';
|
|
30379
|
+
} else {
|
|
30380
|
+
output += "No icons found matching your search.";
|
|
30381
|
+
}
|
|
30382
|
+
return {
|
|
30383
|
+
content: [{ type: "text", text: output }]
|
|
30384
|
+
};
|
|
30385
|
+
} catch (error48) {
|
|
30386
|
+
return {
|
|
30387
|
+
content: [
|
|
30388
|
+
{
|
|
30389
|
+
type: "text",
|
|
30390
|
+
text: `Error parsing icon registry: ${error48 instanceof Error ? error48.message : String(error48)}`
|
|
30391
|
+
}
|
|
30392
|
+
]
|
|
30393
|
+
};
|
|
30394
|
+
}
|
|
30395
|
+
}
|
|
30396
|
+
);
|
|
30397
|
+
}
|
|
30398
|
+
|
|
30047
30399
|
// packages/mcp/package.json
|
|
30048
30400
|
var package_default = {
|
|
30049
30401
|
name: "@adyen/bento-mcp",
|
|
30050
30402
|
mcpName: "io.github.adyen/bento-mcp",
|
|
30051
|
-
version: "0.1
|
|
30403
|
+
version: "0.2.1",
|
|
30052
30404
|
type: "module",
|
|
30053
30405
|
description: "A Model Context Protocol server implementation for Bento",
|
|
30054
30406
|
license: "MIT",
|
|
30055
30407
|
packageManager: "pnpm@10.26.2",
|
|
30056
30408
|
main: "dist/main.js",
|
|
30057
|
-
bin:
|
|
30409
|
+
bin: {
|
|
30410
|
+
"bento-mcp": "dist/main.js",
|
|
30411
|
+
"bento-add-skill": "bin/add-skill.js"
|
|
30412
|
+
},
|
|
30058
30413
|
files: [
|
|
30059
30414
|
"dist/",
|
|
30415
|
+
"bin/",
|
|
30416
|
+
"SKILL.md",
|
|
30060
30417
|
"README.md",
|
|
30061
30418
|
"CHANGELOG.md"
|
|
30062
30419
|
],
|
|
@@ -30071,9 +30428,13 @@ var package_default = {
|
|
|
30071
30428
|
url: "https://github.com/adyen/bento.git"
|
|
30072
30429
|
},
|
|
30073
30430
|
scripts: {
|
|
30431
|
+
"add-skill": "node bin/add-skill.js",
|
|
30074
30432
|
server: "node dist/main.js",
|
|
30075
30433
|
"serve:inspector": "CLIENT_PORT=3000 SERVER_PORT=9001 mcp-inspector node dist/main.js"
|
|
30076
30434
|
},
|
|
30435
|
+
skills: {
|
|
30436
|
+
"writing-bento-components": "./SKILL.md"
|
|
30437
|
+
},
|
|
30077
30438
|
keywords: [
|
|
30078
30439
|
"ai",
|
|
30079
30440
|
"mcp",
|
|
@@ -30083,15 +30444,15 @@ var package_default = {
|
|
|
30083
30444
|
"bento"
|
|
30084
30445
|
],
|
|
30085
30446
|
dependencies: {
|
|
30086
|
-
"@modelcontextprotocol/sdk": "1.
|
|
30447
|
+
"@modelcontextprotocol/sdk": "1.27.1",
|
|
30087
30448
|
zod: "4.3.6"
|
|
30088
30449
|
},
|
|
30089
30450
|
devDependencies: {
|
|
30090
|
-
"@modelcontextprotocol/inspector": "0.
|
|
30451
|
+
"@modelcontextprotocol/inspector": "0.21.1",
|
|
30091
30452
|
"@playwright/test": "catalog:",
|
|
30092
30453
|
"@nx/playwright": "catalog:nx",
|
|
30093
|
-
"@swc/cli": "0.
|
|
30094
|
-
"@swc/core": "1.15.
|
|
30454
|
+
"@swc/cli": "0.8.0",
|
|
30455
|
+
"@swc/core": "^1.15.0"
|
|
30095
30456
|
}
|
|
30096
30457
|
};
|
|
30097
30458
|
|
|
@@ -30104,6 +30465,11 @@ async function main() {
|
|
|
30104
30465
|
});
|
|
30105
30466
|
addGetAllComponents(server);
|
|
30106
30467
|
addGetComponent(server);
|
|
30468
|
+
addGetDeprecations(server);
|
|
30469
|
+
addGetDocs(server);
|
|
30470
|
+
addGetDesignTokens(server);
|
|
30471
|
+
addGetUtilityClasses(server);
|
|
30472
|
+
addGetIcons(server);
|
|
30107
30473
|
const transport = new StdioServerTransport();
|
|
30108
30474
|
await server.connect(transport);
|
|
30109
30475
|
console.error("Bento MCP Server running on stdio");
|
package/package.json
CHANGED
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adyen/bento-mcp",
|
|
3
3
|
"mcpName": "io.github.adyen/bento-mcp",
|
|
4
|
-
"version": "0.1
|
|
4
|
+
"version": "0.2.1",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "A Model Context Protocol server implementation for Bento",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"main": "dist/main.js",
|
|
9
|
-
"bin":
|
|
9
|
+
"bin": {
|
|
10
|
+
"bento-mcp": "dist/main.js",
|
|
11
|
+
"bento-add-skill": "bin/add-skill.js"
|
|
12
|
+
},
|
|
10
13
|
"files": [
|
|
11
14
|
"dist/",
|
|
15
|
+
"bin/",
|
|
16
|
+
"SKILL.md",
|
|
12
17
|
"README.md",
|
|
13
18
|
"CHANGELOG.md"
|
|
14
19
|
],
|
|
@@ -22,6 +27,9 @@
|
|
|
22
27
|
"type": "git",
|
|
23
28
|
"url": "https://github.com/adyen/bento.git"
|
|
24
29
|
},
|
|
30
|
+
"skills": {
|
|
31
|
+
"writing-bento-components": "./SKILL.md"
|
|
32
|
+
},
|
|
25
33
|
"keywords": [
|
|
26
34
|
"ai",
|
|
27
35
|
"mcp",
|
|
@@ -31,17 +39,18 @@
|
|
|
31
39
|
"bento"
|
|
32
40
|
],
|
|
33
41
|
"dependencies": {
|
|
34
|
-
"@modelcontextprotocol/sdk": "1.
|
|
42
|
+
"@modelcontextprotocol/sdk": "1.27.1",
|
|
35
43
|
"zod": "4.3.6"
|
|
36
44
|
},
|
|
37
45
|
"devDependencies": {
|
|
38
|
-
"@modelcontextprotocol/inspector": "0.
|
|
46
|
+
"@modelcontextprotocol/inspector": "0.21.1",
|
|
39
47
|
"@playwright/test": "1.42.1",
|
|
40
48
|
"@nx/playwright": "22.4.0",
|
|
41
|
-
"@swc/cli": "0.
|
|
42
|
-
"@swc/core": "1.15.
|
|
49
|
+
"@swc/cli": "0.8.0",
|
|
50
|
+
"@swc/core": "^1.15.0"
|
|
43
51
|
},
|
|
44
52
|
"scripts": {
|
|
53
|
+
"add-skill": "node bin/add-skill.js",
|
|
45
54
|
"server": "node dist/main.js",
|
|
46
55
|
"serve:inspector": "CLIENT_PORT=3000 SERVER_PORT=9001 mcp-inspector node dist/main.js"
|
|
47
56
|
}
|