@atlaskit/ads-mcp 0.17.0 → 0.17.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +88 -0
  3. package/dist/cjs/index.js +5 -18
  4. package/dist/cjs/tools/get-all-icons/icons.js +43 -0
  5. package/dist/cjs/tools/get-all-icons/index.js +4 -19
  6. package/dist/cjs/tools/get-all-tokens/index.js +3 -6
  7. package/dist/cjs/tools/get-all-tokens/tokens.js +18 -0
  8. package/dist/cjs/tools/get-components/components.codegen.js +3984 -0
  9. package/dist/cjs/tools/get-components/components.js +423 -235
  10. package/dist/cjs/tools/get-components/index.js +2 -2
  11. package/dist/cjs/tools/get-components/load-all-components.js +16 -0
  12. package/dist/cjs/tools/get-guidelines/guidelines-structured-content.codegen.js +72 -6
  13. package/dist/cjs/tools/get-lint-rules/lint-rules-structured-content.codegen.js +7 -7
  14. package/dist/cjs/tools/search-components/index.js +13 -12
  15. package/dist/cjs/tools/search-icons/index.js +7 -24
  16. package/dist/es2019/index.js +5 -17
  17. package/dist/es2019/tools/get-all-icons/icons.js +25 -0
  18. package/dist/es2019/tools/get-all-icons/index.js +1 -10
  19. package/dist/es2019/tools/get-all-tokens/index.js +2 -5
  20. package/dist/es2019/tools/get-all-tokens/tokens.js +13 -0
  21. package/dist/es2019/tools/get-components/components.codegen.js +3978 -0
  22. package/dist/es2019/tools/get-components/components.js +423 -235
  23. package/dist/es2019/tools/get-components/index.js +11 -9
  24. package/dist/es2019/tools/get-components/load-all-components.js +10 -0
  25. package/dist/es2019/tools/get-guidelines/guidelines-structured-content.codegen.js +72 -6
  26. package/dist/es2019/tools/get-lint-rules/lint-rules-structured-content.codegen.js +7 -7
  27. package/dist/es2019/tools/search-components/index.js +2 -1
  28. package/dist/es2019/tools/search-icons/index.js +1 -10
  29. package/dist/esm/index.js +5 -18
  30. package/dist/esm/tools/get-all-icons/icons.js +37 -0
  31. package/dist/esm/tools/get-all-icons/index.js +3 -18
  32. package/dist/esm/tools/get-all-tokens/index.js +2 -5
  33. package/dist/esm/tools/get-all-tokens/tokens.js +13 -0
  34. package/dist/esm/tools/get-components/components.codegen.js +3978 -0
  35. package/dist/esm/tools/get-components/components.js +423 -235
  36. package/dist/esm/tools/get-components/index.js +2 -2
  37. package/dist/esm/tools/get-components/load-all-components.js +10 -0
  38. package/dist/esm/tools/get-guidelines/guidelines-structured-content.codegen.js +72 -6
  39. package/dist/esm/tools/get-lint-rules/lint-rules-structured-content.codegen.js +7 -7
  40. package/dist/esm/tools/search-components/index.js +9 -8
  41. package/dist/esm/tools/search-icons/index.js +3 -20
  42. package/dist/types/tools/get-all-icons/icons.d.ts +11 -0
  43. package/dist/types/tools/get-all-tokens/tokens.d.ts +7 -0
  44. package/dist/types/tools/get-components/components.codegen.d.ts +10 -0
  45. package/dist/types/tools/get-components/components.d.ts +1 -1
  46. package/dist/types/tools/get-components/load-all-components.d.ts +2 -0
  47. package/dist/types/tools/get-components/types.d.ts +20 -14
  48. package/dist/types/tools/get-guidelines/guidelines-structured-content.codegen.d.ts +1 -1
  49. package/dist/types/tools/get-lint-rules/lint-rules-structured-content.codegen.d.ts +1 -1
  50. package/dist/types-ts4.5/tools/get-all-icons/icons.d.ts +11 -0
  51. package/dist/types-ts4.5/tools/get-all-tokens/tokens.d.ts +7 -0
  52. package/dist/types-ts4.5/tools/get-components/components.codegen.d.ts +10 -0
  53. package/dist/types-ts4.5/tools/get-components/components.d.ts +1 -1
  54. package/dist/types-ts4.5/tools/get-components/load-all-components.d.ts +2 -0
  55. package/dist/types-ts4.5/tools/get-components/types.d.ts +20 -14
  56. package/dist/types-ts4.5/tools/get-guidelines/guidelines-structured-content.codegen.d.ts +1 -1
  57. package/dist/types-ts4.5/tools/get-lint-rules/lint-rules-structured-content.codegen.d.ts +1 -1
  58. package/package.json +5 -3
  59. package/dist/cjs/tools/get-icons/icon-mcp-structured-content.codegen.js +0 -8
  60. package/dist/cjs/tools/get-icons/icon-structured-content.codegen.js +0 -8
  61. package/dist/cjs/tools/get-icons/index.js +0 -135
  62. package/dist/cjs/tools/get-tokens/index.js +0 -125
  63. package/dist/cjs/tools/get-tokens/token-mcp-structured-content.codegen.js +0 -2356
  64. package/dist/cjs/tools/get-tokens/token-structured-content.codegen.js +0 -2356
  65. package/dist/es2019/tools/get-icons/icon-mcp-structured-content.codegen.js +0 -8
  66. package/dist/es2019/tools/get-icons/icon-structured-content.codegen.js +0 -8
  67. package/dist/es2019/tools/get-icons/index.js +0 -110
  68. package/dist/es2019/tools/get-tokens/index.js +0 -100
  69. package/dist/es2019/tools/get-tokens/token-mcp-structured-content.codegen.js +0 -2350
  70. package/dist/es2019/tools/get-tokens/token-structured-content.codegen.js +0 -2350
  71. package/dist/esm/tools/get-icons/icon-mcp-structured-content.codegen.js +0 -8
  72. package/dist/esm/tools/get-icons/icon-structured-content.codegen.js +0 -8
  73. package/dist/esm/tools/get-icons/index.js +0 -128
  74. package/dist/esm/tools/get-tokens/index.js +0 -118
  75. package/dist/esm/tools/get-tokens/token-mcp-structured-content.codegen.js +0 -2350
  76. package/dist/esm/tools/get-tokens/token-structured-content.codegen.js +0 -2350
  77. package/dist/types/tools/get-icons/icon-mcp-structured-content.codegen.d.ts +0 -13
  78. package/dist/types/tools/get-icons/icon-structured-content.codegen.d.ts +0 -13
  79. package/dist/types/tools/get-icons/index.d.ts +0 -35
  80. package/dist/types/tools/get-tokens/index.d.ts +0 -35
  81. package/dist/types/tools/get-tokens/token-mcp-structured-content.codegen.d.ts +0 -13
  82. package/dist/types/tools/get-tokens/token-structured-content.codegen.d.ts +0 -13
  83. package/dist/types-ts4.5/tools/get-icons/icon-mcp-structured-content.codegen.d.ts +0 -13
  84. package/dist/types-ts4.5/tools/get-icons/icon-structured-content.codegen.d.ts +0 -13
  85. package/dist/types-ts4.5/tools/get-icons/index.d.ts +0 -35
  86. package/dist/types-ts4.5/tools/get-tokens/index.d.ts +0 -35
  87. package/dist/types-ts4.5/tools/get-tokens/token-mcp-structured-content.codegen.d.ts +0 -13
  88. package/dist/types-ts4.5/tools/get-tokens/token-structured-content.codegen.d.ts +0 -13
@@ -1,135 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.listGetIconsTool = exports.getIconsTool = exports.getIconsInputSchema = void 0;
8
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
- var _fuse = _interopRequireDefault(require("fuse.js"));
11
- var _zod = require("zod");
12
- var _helpers = require("../../helpers");
13
- var _iconMcpStructuredContent = require("./icon-mcp-structured-content.codegen");
14
- /* eslint-disable-next-line import/extensions -- MCP SDK requires .js extensions for ESM imports */
15
-
16
- var getIconsInputSchema = exports.getIconsInputSchema = _zod.z.object({
17
- terms: _zod.z.array(_zod.z.string()).default([]).describe('An array of search terms to find icons by name, keywords, or categorization, eg. `["search", "folder", "user"]`. If empty or not provided, returns all icons.').optional(),
18
- limit: _zod.z.number().default(1).describe('Maximum number of results per search term in the array (default: 1)').optional(),
19
- exactName: _zod.z.boolean().default(false).describe('Enable to explicitly search icons by the exact name match (when you know the name, but need more details)').optional()
20
- });
21
- var listGetIconsTool = exports.listGetIconsTool = {
22
- name: 'ads_get_icons',
23
- description: "Get Atlassian Design System icons with optional search functionality.\n\n- If search parameters are provided, searches for icons matching the criteria.\n- If no search parameters are provided, returns all icons.\n\nExample icon usage:\n```tsx\nimport AddIcon from '@atlaskit/icon/core/add';\n<AddIcon label=\"Add work item\" size=\"small\" />\n```",
24
- annotations: {
25
- title: 'Get ADS icons',
26
- readOnlyHint: true,
27
- destructiveHint: false,
28
- idempotentHint: true,
29
- openWorldHint: true
30
- },
31
- inputSchema: (0, _helpers.zodToJsonSchema)(getIconsInputSchema)
32
- };
33
- var getIconsTool = exports.getIconsTool = /*#__PURE__*/function () {
34
- var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(params) {
35
- var _params$terms, terms, _params$limit, limit, _params$exactName, exactName, searchTerms, iconDocs, _payload, exactNameMatches, _payload2, fuse, results, uniqueResults, matchedIcons, payload;
36
- return _regenerator.default.wrap(function _callee$(_context) {
37
- while (1) switch (_context.prev = _context.next) {
38
- case 0:
39
- _params$terms = params.terms, terms = _params$terms === void 0 ? [] : _params$terms, _params$limit = params.limit, limit = _params$limit === void 0 ? 1 : _params$limit, _params$exactName = params.exactName, exactName = _params$exactName === void 0 ? false : _params$exactName;
40
- searchTerms = terms.filter(Boolean).map(_helpers.cleanQuery);
41
- iconDocs = _iconMcpStructuredContent.iconMcpStructuredContent.filter(function (icon) {
42
- return icon.status === 'published';
43
- }); // If no search terms provided, return all icons as JSON array
44
- if (!(searchTerms.length === 0)) {
45
- _context.next = 6;
46
- break;
47
- }
48
- _payload = iconDocs.map(function (icon) {
49
- return icon.content;
50
- });
51
- return _context.abrupt("return", {
52
- content: [{
53
- type: 'text',
54
- text: JSON.stringify(_payload)
55
- }]
56
- });
57
- case 6:
58
- if (!exactName) {
59
- _context.next = 10;
60
- break;
61
- }
62
- // for each search term, search for the exact match
63
- exactNameMatches = searchTerms.map(function (term) {
64
- return iconDocs.find(function (icon) {
65
- return icon.componentName.toLowerCase() === term.toLowerCase();
66
- });
67
- }).filter(function (icon) {
68
- return icon !== undefined;
69
- }); // Return exact matches if found, or empty result if exactName is true
70
- _payload2 = exactNameMatches.length === 1 ? exactNameMatches[0].content : exactNameMatches.map(function (icon) {
71
- return icon.content;
72
- });
73
- return _context.abrupt("return", {
74
- content: [{
75
- type: 'text',
76
- text: JSON.stringify(_payload2)
77
- }]
78
- });
79
- case 10:
80
- // use Fuse.js to fuzzy-search for the icons
81
- fuse = new _fuse.default(iconDocs, {
82
- keys: [{
83
- name: 'componentName',
84
- weight: 3
85
- }, {
86
- name: 'keywords',
87
- weight: 2
88
- }, {
89
- name: 'categorization',
90
- weight: 1
91
- }, {
92
- name: 'usage',
93
- weight: 1
94
- }],
95
- threshold: 0.4
96
- });
97
- results = searchTerms.map(function (term) {
98
- // always search exact match from the icons
99
- var exactNameMatch = iconDocs.find(function (icon) {
100
- return icon.componentName.toLowerCase() === term.toLowerCase();
101
- });
102
- if (exactNameMatch) {
103
- return [{
104
- item: exactNameMatch
105
- }];
106
- }
107
- return fuse.search(term).slice(0, limit);
108
- }).flat(); // Remove duplicates based on componentName
109
- uniqueResults = results.filter(function (result, index, arr) {
110
- return arr.findIndex(function (r) {
111
- return r.item.componentName === result.item.componentName;
112
- }) === index;
113
- });
114
- matchedIcons = uniqueResults.map(function (result) {
115
- return result.item;
116
- });
117
- payload = matchedIcons.length === 1 ? matchedIcons[0].content : matchedIcons.map(function (icon) {
118
- return icon.content;
119
- });
120
- return _context.abrupt("return", {
121
- content: [{
122
- type: 'text',
123
- text: JSON.stringify(payload)
124
- }]
125
- });
126
- case 16:
127
- case "end":
128
- return _context.stop();
129
- }
130
- }, _callee);
131
- }));
132
- return function getIconsTool(_x) {
133
- return _ref.apply(this, arguments);
134
- };
135
- }();
@@ -1,125 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.listGetTokensTool = exports.getTokensTool = exports.getTokensInputSchema = void 0;
8
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
- var _fuse = _interopRequireDefault(require("fuse.js"));
11
- var _zod = require("zod");
12
- var _helpers = require("../../helpers");
13
- var _tokenMcpStructuredContent = require("./token-mcp-structured-content.codegen");
14
- /* eslint-disable-next-line import/extensions -- MCP SDK requires .js extensions for ESM imports */
15
-
16
- var getTokensInputSchema = exports.getTokensInputSchema = _zod.z.object({
17
- terms: _zod.z.array(_zod.z.string()).default([]).describe('An array of search terms to find tokens by name or description, eg. `["spacing", "inverted text", "background primary"]`. If empty or not provided, returns all tokens.').optional(),
18
- limit: _zod.z.number().default(1).describe('Maximum number of results per search term in the array (default: 1)').optional(),
19
- exactName: _zod.z.boolean().default(false).describe('Enable to explicitly search tokens by the exact name match (when you know the name, but need more details)').optional()
20
- });
21
- var listGetTokensTool = exports.listGetTokensTool = {
22
- name: 'ads_get_tokens',
23
- description: "Get Atlassian Design System tokens with optional search functionality.\n\n- If search parameters are provided, searches for tokens matching the criteria.\n- If no search parameters are provided, returns all tokens.\n\nExample token usage:\n```tsx\nimport { token } from '@atlaskit/tokens';\nconst styles = css({ color: token('color.text'), padding: token('space.100') });\n```",
24
- annotations: {
25
- title: 'Get ADS tokens',
26
- readOnlyHint: true,
27
- destructiveHint: false,
28
- idempotentHint: true,
29
- openWorldHint: true
30
- },
31
- inputSchema: (0, _helpers.zodToJsonSchema)(getTokensInputSchema)
32
- };
33
- var getTokensTool = exports.getTokensTool = /*#__PURE__*/function () {
34
- var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(params) {
35
- var _params$terms, terms, _params$limit, limit, _params$exactName, exactName, searchTerms, tokenDocs, _payload, exactNameMatches, _payload2, fuse, results, uniqueResults, matchedTokens, payload;
36
- return _regenerator.default.wrap(function _callee$(_context) {
37
- while (1) switch (_context.prev = _context.next) {
38
- case 0:
39
- _params$terms = params.terms, terms = _params$terms === void 0 ? [] : _params$terms, _params$limit = params.limit, limit = _params$limit === void 0 ? 1 : _params$limit, _params$exactName = params.exactName, exactName = _params$exactName === void 0 ? false : _params$exactName;
40
- searchTerms = terms.filter(Boolean).map(_helpers.cleanQuery);
41
- tokenDocs = _tokenMcpStructuredContent.tokenMcpStructuredContent; // If no search terms provided, return all tokens as JSON array
42
- if (!(searchTerms.length === 0)) {
43
- _context.next = 6;
44
- break;
45
- }
46
- _payload = tokenDocs.map(function (token) {
47
- return token.content;
48
- });
49
- return _context.abrupt("return", {
50
- content: [{
51
- type: 'text',
52
- text: JSON.stringify(_payload)
53
- }]
54
- });
55
- case 6:
56
- if (!exactName) {
57
- _context.next = 11;
58
- break;
59
- }
60
- // for each search term, search for the exact match
61
- exactNameMatches = searchTerms.map(function (term) {
62
- return tokenDocs.find(function (token) {
63
- return token.name.toLowerCase() === term.toLowerCase();
64
- });
65
- }).filter(function (token) {
66
- return token !== undefined;
67
- });
68
- if (!(exactNameMatches.length > 0)) {
69
- _context.next = 11;
70
- break;
71
- }
72
- _payload2 = exactNameMatches.length === 1 ? exactNameMatches[0].content : exactNameMatches.map(function (token) {
73
- return token.content;
74
- });
75
- return _context.abrupt("return", {
76
- content: [{
77
- type: 'text',
78
- text: JSON.stringify(_payload2)
79
- }]
80
- });
81
- case 11:
82
- // use Fuse.js to fuzzy-search for the tokens
83
- fuse = new _fuse.default(tokenDocs, {
84
- keys: [{
85
- name: 'name',
86
- weight: 3
87
- }, {
88
- name: 'description',
89
- weight: 2
90
- }, {
91
- name: 'exampleValue',
92
- weight: 1
93
- }],
94
- threshold: 0.4
95
- });
96
- results = searchTerms.map(function (term) {
97
- return fuse.search(term).slice(0, limit);
98
- }).flat(); // Remove duplicates based on token name
99
- uniqueResults = results.filter(function (result, index, arr) {
100
- return arr.findIndex(function (r) {
101
- return r.item.name === result.item.name;
102
- }) === index;
103
- });
104
- matchedTokens = uniqueResults.map(function (result) {
105
- return result.item;
106
- });
107
- payload = matchedTokens.length === 1 ? matchedTokens[0].content : matchedTokens.map(function (token) {
108
- return token.content;
109
- });
110
- return _context.abrupt("return", {
111
- content: [{
112
- type: 'text',
113
- text: JSON.stringify(payload)
114
- }]
115
- });
116
- case 17:
117
- case "end":
118
- return _context.stop();
119
- }
120
- }, _callee);
121
- }));
122
- return function getTokensTool(_x) {
123
- return _ref.apply(this, arguments);
124
- };
125
- }();