tambahan
This commit is contained in:
20
bun.lock
20
bun.lock
@@ -44,6 +44,7 @@
|
||||
"react-router-dom": "^7.9.4",
|
||||
"sharp": "^0.34.4",
|
||||
"swr": "^2.3.6",
|
||||
"ts-morph": "^27.0.2",
|
||||
"uuid": "^13.0.0",
|
||||
"whatsapp-api-js": "^6.1.1",
|
||||
"whatsapp-client-sdk": "^1.6.0",
|
||||
@@ -58,6 +59,7 @@
|
||||
"postcss-preset-mantine": "^1.18.0",
|
||||
"postcss-simple-vars": "^7.0.1",
|
||||
"prisma": "^6.17.1",
|
||||
"typescript": "^5.9.3",
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -132,6 +134,10 @@
|
||||
|
||||
"@img/sharp-win32-x64": ["@img/sharp-win32-x64@0.34.4", "", { "os": "win32", "cpu": "x64" }, "sha512-xIyj4wpYs8J18sVN3mSQjwrw7fKUqRw+Z5rnHNCy5fYTxigBz81u5mOMPmFumwjcn8+ld1ppptMBCLic1nz6ig=="],
|
||||
|
||||
"@isaacs/balanced-match": ["@isaacs/balanced-match@4.0.1", "", {}, "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ=="],
|
||||
|
||||
"@isaacs/brace-expansion": ["@isaacs/brace-expansion@5.0.0", "", { "dependencies": { "@isaacs/balanced-match": "^4.0.1" } }, "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA=="],
|
||||
|
||||
"@lglab/react-qr-code": ["@lglab/react-qr-code@1.4.5", "", { "peerDependencies": { "react": "^18 || ^19" } }, "sha512-kfaWOsbqqN+iskfRJLSHaPCHX0FAnRtZefj86rPq8WAZUVe9fnRzpr/xlOlXSsC+g1KWdm6LgXeoKgkvOa2F7g=="],
|
||||
|
||||
"@mantine/core": ["@mantine/core@8.3.4", "", { "dependencies": { "@floating-ui/react": "^0.27.16", "clsx": "^2.1.1", "react-number-format": "^5.4.4", "react-remove-scroll": "^2.7.1", "react-textarea-autosize": "8.5.9", "type-fest": "^4.41.0" }, "peerDependencies": { "@mantine/hooks": "8.3.4", "react": "^18.x || ^19.x", "react-dom": "^18.x || ^19.x" } }, "sha512-RJ5QUe2FLLJ1uF8xWUpNhDqRFbaOn4S5yTjqLuaurqtZvzee85O/T90dRcR8UNDuE8e/Qqie/jsF/G9RiSxC6g=="],
|
||||
@@ -184,6 +190,8 @@
|
||||
|
||||
"@tokenizer/token": ["@tokenizer/token@0.3.0", "", {}, "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A=="],
|
||||
|
||||
"@ts-morph/common": ["@ts-morph/common@0.28.1", "", { "dependencies": { "minimatch": "^10.0.1", "path-browserify": "^1.0.1", "tinyglobby": "^0.2.14" } }, "sha512-W74iWf7ILp1ZKNYXY5qbddNaml7e9Sedv5lvU1V8lftlitkc9Pq1A+jlH23ltDgWYeZFFEqGCD1Ies9hqu3O+g=="],
|
||||
|
||||
"@types/body-parser": ["@types/body-parser@1.19.6", "", { "dependencies": { "@types/connect": "*", "@types/node": "*" } }, "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g=="],
|
||||
|
||||
"@types/bun": ["@types/bun@1.3.0", "", { "dependencies": { "bun-types": "1.3.0" } }, "sha512-+lAGCYjXjip2qY375xX/scJeVRmZ5cY0wyHYyCYxNcdEXrQ4AOe3gACgd4iQ8ksOslJtW4VNxBJ8llUwc3a6AA=="],
|
||||
@@ -286,6 +294,8 @@
|
||||
|
||||
"clsx": ["clsx@2.1.1", "", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="],
|
||||
|
||||
"code-block-writer": ["code-block-writer@13.0.3", "", {}, "sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg=="],
|
||||
|
||||
"colorette": ["colorette@2.0.20", "", {}, "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w=="],
|
||||
|
||||
"colors": ["colors@1.4.0", "", {}, "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA=="],
|
||||
@@ -488,7 +498,7 @@
|
||||
|
||||
"mime-types": ["mime-types@3.0.1", "", { "dependencies": { "mime-db": "^1.54.0" } }, "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA=="],
|
||||
|
||||
"minimatch": ["minimatch@5.1.6", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g=="],
|
||||
"minimatch": ["minimatch@10.1.1", "", { "dependencies": { "@isaacs/brace-expansion": "^5.0.0" } }, "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ=="],
|
||||
|
||||
"minimist": ["minimist@1.2.8", "", {}, "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="],
|
||||
|
||||
@@ -524,6 +534,8 @@
|
||||
|
||||
"openapi-types": ["openapi-types@12.1.3", "", {}, "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw=="],
|
||||
|
||||
"path-browserify": ["path-browserify@1.0.1", "", {}, "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g=="],
|
||||
|
||||
"path-is-absolute": ["path-is-absolute@1.0.1", "", {}, "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="],
|
||||
|
||||
"pathe": ["pathe@1.1.2", "", {}, "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ=="],
|
||||
@@ -676,10 +688,14 @@
|
||||
|
||||
"traverse": ["traverse@0.3.9", "", {}, "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ=="],
|
||||
|
||||
"ts-morph": ["ts-morph@27.0.2", "", { "dependencies": { "@ts-morph/common": "~0.28.1", "code-block-writer": "^13.0.3" } }, "sha512-fhUhgeljcrdZ+9DZND1De1029PrE+cMkIP7ooqkLRTrRLTqcki2AstsyJm0vRNbTbVCNJ0idGlbBrfqc7/nA8w=="],
|
||||
|
||||
"tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
|
||||
|
||||
"type-fest": ["type-fest@4.41.0", "", {}, "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA=="],
|
||||
|
||||
"typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="],
|
||||
|
||||
"uint8array-extras": ["uint8array-extras@1.5.0", "", {}, "sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A=="],
|
||||
|
||||
"unbzip2-stream": ["unbzip2-stream@1.4.3", "", { "dependencies": { "buffer": "^5.2.1", "through": "^2.3.8" } }, "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg=="],
|
||||
@@ -762,6 +778,8 @@
|
||||
|
||||
"puppeteer-core/rimraf": ["rimraf@3.0.2", "", { "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" } }, "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA=="],
|
||||
|
||||
"readdir-glob/minimatch": ["minimatch@5.1.6", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g=="],
|
||||
|
||||
"string_decoder/safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="],
|
||||
|
||||
"unzipper/readable-stream": ["readable-stream@2.3.8", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="],
|
||||
|
||||
656
colors-mcp.json
Normal file
656
colors-mcp.json
Normal file
@@ -0,0 +1,656 @@
|
||||
[
|
||||
{
|
||||
"name": "enable",
|
||||
"type": "function",
|
||||
"args": [],
|
||||
"returns": "void",
|
||||
"description": "colors function enable",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "enable"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "disable",
|
||||
"type": "function",
|
||||
"args": [],
|
||||
"returns": "void",
|
||||
"description": "colors function disable",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "disable"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "setTheme",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "theme",
|
||||
"type": "any",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "void",
|
||||
"description": "colors function setTheme",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "setTheme"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "strip",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function strip",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "strip"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "stripColors",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function stripColors",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "stripColors"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "black",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function black",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "black"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "red",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function red",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "red"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "green",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function green",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "green"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "yellow",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function yellow",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "yellow"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "blue",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function blue",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "blue"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "magenta",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function magenta",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "magenta"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "cyan",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function cyan",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "cyan"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "white",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function white",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "white"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "gray",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function gray",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "gray"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "grey",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function grey",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "grey"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "bgBlack",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function bgBlack",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "bgBlack"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "bgRed",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function bgRed",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "bgRed"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "bgGreen",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function bgGreen",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "bgGreen"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "bgYellow",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function bgYellow",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "bgYellow"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "bgBlue",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function bgBlue",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "bgBlue"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "bgMagenta",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function bgMagenta",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "bgMagenta"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "bgCyan",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function bgCyan",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "bgCyan"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "bgWhite",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function bgWhite",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "bgWhite"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "reset",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function reset",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "reset"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "bold",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function bold",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "dim",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function dim",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "dim"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "italic",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function italic",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "underline",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function underline",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "underline"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "inverse",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function inverse",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "inverse"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "hidden",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function hidden",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "hidden"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "strikethrough",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function strikethrough",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "strikethrough"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "rainbow",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function rainbow",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "rainbow"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "zebra",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function zebra",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "zebra"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "america",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function america",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "america"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "trap",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function trap",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "trap"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "random",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function random",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "random"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "zalgo",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "colors function zalgo",
|
||||
"x-props": {
|
||||
"module": "colors",
|
||||
"kind": "function",
|
||||
"operationId": "zalgo"
|
||||
}
|
||||
}
|
||||
]
|
||||
6673
lodash-mcp.json
Normal file
6673
lodash-mcp.json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -50,6 +50,7 @@
|
||||
"react-router-dom": "^7.9.4",
|
||||
"sharp": "^0.34.4",
|
||||
"swr": "^2.3.6",
|
||||
"ts-morph": "^27.0.2",
|
||||
"uuid": "^13.0.0",
|
||||
"whatsapp-api-js": "^6.1.1",
|
||||
"whatsapp-client-sdk": "^1.6.0",
|
||||
@@ -63,6 +64,7 @@
|
||||
"postcss": "^8.5.6",
|
||||
"postcss-preset-mantine": "^1.18.0",
|
||||
"postcss-simple-vars": "^7.0.1",
|
||||
"prisma": "^6.17.1"
|
||||
"prisma": "^6.17.1",
|
||||
"typescript": "^5.9.3"
|
||||
}
|
||||
}
|
||||
|
||||
293
uuid-mcp.json
Normal file
293
uuid-mcp.json
Normal file
@@ -0,0 +1,293 @@
|
||||
[
|
||||
{
|
||||
"name": "parse",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "uuid",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "Uint8Array<ArrayBufferLike>",
|
||||
"description": "uuid function parse",
|
||||
"x-props": {
|
||||
"module": "uuid",
|
||||
"kind": "function",
|
||||
"operationId": "parse"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "stringify",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "arr",
|
||||
"type": "Uint8Array<ArrayBufferLike>",
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "offset",
|
||||
"type": "number | undefined",
|
||||
"optional": true
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "uuid function stringify",
|
||||
"x-props": {
|
||||
"module": "uuid",
|
||||
"kind": "function",
|
||||
"operationId": "stringify"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "v1",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "options",
|
||||
"type": "Version1Options | undefined",
|
||||
"optional": true
|
||||
},
|
||||
{
|
||||
"name": "buf",
|
||||
"type": "undefined",
|
||||
"optional": true
|
||||
},
|
||||
{
|
||||
"name": "offset",
|
||||
"type": "number | undefined",
|
||||
"optional": true
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "uuid function v1",
|
||||
"x-props": {
|
||||
"module": "uuid",
|
||||
"kind": "function",
|
||||
"operationId": "v1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "v1ToV6",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "uuid",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "uuid function v1ToV6",
|
||||
"x-props": {
|
||||
"module": "uuid",
|
||||
"kind": "function",
|
||||
"operationId": "v1ToV6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "v3",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "value",
|
||||
"type": "string | Uint8Array<ArrayBufferLike>",
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "namespace",
|
||||
"type": "UUIDTypes",
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "buf",
|
||||
"type": "undefined",
|
||||
"optional": true
|
||||
},
|
||||
{
|
||||
"name": "offset",
|
||||
"type": "number | undefined",
|
||||
"optional": true
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "uuid function v3",
|
||||
"x-props": {
|
||||
"module": "uuid",
|
||||
"kind": "function",
|
||||
"operationId": "v3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "v4",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "options",
|
||||
"type": "Version4Options | undefined",
|
||||
"optional": true
|
||||
},
|
||||
{
|
||||
"name": "buf",
|
||||
"type": "undefined",
|
||||
"optional": true
|
||||
},
|
||||
{
|
||||
"name": "offset",
|
||||
"type": "number | undefined",
|
||||
"optional": true
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "uuid function v4",
|
||||
"x-props": {
|
||||
"module": "uuid",
|
||||
"kind": "function",
|
||||
"operationId": "v4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "v5",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "value",
|
||||
"type": "string | Uint8Array<ArrayBufferLike>",
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "namespace",
|
||||
"type": "UUIDTypes",
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "buf",
|
||||
"type": "undefined",
|
||||
"optional": true
|
||||
},
|
||||
{
|
||||
"name": "offset",
|
||||
"type": "number | undefined",
|
||||
"optional": true
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "uuid function v5",
|
||||
"x-props": {
|
||||
"module": "uuid",
|
||||
"kind": "function",
|
||||
"operationId": "v5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "v6",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "options",
|
||||
"type": "Version1Options | undefined",
|
||||
"optional": true
|
||||
},
|
||||
{
|
||||
"name": "buf",
|
||||
"type": "undefined",
|
||||
"optional": true
|
||||
},
|
||||
{
|
||||
"name": "offset",
|
||||
"type": "number | undefined",
|
||||
"optional": true
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "uuid function v6",
|
||||
"x-props": {
|
||||
"module": "uuid",
|
||||
"kind": "function",
|
||||
"operationId": "v6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "v6ToV1",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "uuid",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "uuid function v6ToV1",
|
||||
"x-props": {
|
||||
"module": "uuid",
|
||||
"kind": "function",
|
||||
"operationId": "v6ToV1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "v7",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "options",
|
||||
"type": "Version7Options | undefined",
|
||||
"optional": true
|
||||
},
|
||||
{
|
||||
"name": "buf",
|
||||
"type": "undefined",
|
||||
"optional": true
|
||||
},
|
||||
{
|
||||
"name": "offset",
|
||||
"type": "number | undefined",
|
||||
"optional": true
|
||||
}
|
||||
],
|
||||
"returns": "string",
|
||||
"description": "uuid function v7",
|
||||
"x-props": {
|
||||
"module": "uuid",
|
||||
"kind": "function",
|
||||
"operationId": "v7"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "validate",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "uuid",
|
||||
"type": "unknown",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "boolean",
|
||||
"description": "uuid function validate",
|
||||
"x-props": {
|
||||
"module": "uuid",
|
||||
"kind": "function",
|
||||
"operationId": "validate"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "version",
|
||||
"type": "function",
|
||||
"args": [
|
||||
{
|
||||
"name": "uuid",
|
||||
"type": "string",
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"returns": "number",
|
||||
"description": "uuid function version",
|
||||
"x-props": {
|
||||
"module": "uuid",
|
||||
"kind": "function",
|
||||
"operationId": "version"
|
||||
}
|
||||
}
|
||||
]
|
||||
46
x.yml
46
x.yml
@@ -1,39 +1,24 @@
|
||||
services:
|
||||
n8n:
|
||||
image: docker.n8n.io/n8nio/n8n
|
||||
container_name: n8n
|
||||
pgadmin:
|
||||
image: dpage/pgadmin4:latest
|
||||
container_name: pgadmin
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
|
||||
- N8N_RUNNERS_ENABLED=true
|
||||
- N8N_HOST=n8n.wibudev.com
|
||||
- N8N_PORT=5678
|
||||
- WEBHOOK_URL=https://n8n.wibudev.com/
|
||||
- N8N_BASIC_AUTH_ACTIVE=true
|
||||
- N8N_BASIC_AUTH_USER=wibu@bip.com
|
||||
- N8N_BASIC_AUTH_PASSWORD=Production_123
|
||||
- N8N_PROTOCOL=https
|
||||
- NODE_ENV=production
|
||||
PGADMIN_DEFAULT_EMAIL: wibu@bip.com
|
||||
PGADMIN_DEFAULT_PASSWORD: Production_123
|
||||
volumes:
|
||||
- ./data/n8n:/home/node/.n8n
|
||||
- ./data/n8n/local-files:/files
|
||||
restart: always
|
||||
- ./data/pgadmin:/var/lib/pgadmin
|
||||
networks:
|
||||
- pgadmin-network
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:5678"]
|
||||
interval: 30s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
start_period: 20s
|
||||
networks:
|
||||
- n8n-network
|
||||
|
||||
n8n-frpc:
|
||||
pgadmin-frpc:
|
||||
image: snowdreamtech/frpc:latest
|
||||
container_name: n8n-frpc
|
||||
container_name: pgadmin-frpc
|
||||
restart: always
|
||||
volumes:
|
||||
- ./data/frpc/frpc.toml:/etc/frp/frpc.toml:ro
|
||||
@@ -42,12 +27,11 @@ services:
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
depends_on:
|
||||
n8n:
|
||||
condition: service_healthy
|
||||
networks:
|
||||
- n8n-network
|
||||
- pgadmin-network
|
||||
depends_on:
|
||||
- pgadmin
|
||||
|
||||
networks:
|
||||
n8n-network:
|
||||
pgadmin-network:
|
||||
driver: bridge
|
||||
|
||||
88
xx.ts
88
xx.ts
@@ -1 +1,87 @@
|
||||
console.log("nama".includes("namxa"))
|
||||
// file: gen-lodash-mcp.ts
|
||||
import ts from "typescript";
|
||||
import fs from "fs";
|
||||
|
||||
const moduleName = "lodash";
|
||||
const tmpFile = `./tmp-${moduleName}.ts`;
|
||||
|
||||
// generate file sementara untuk memastikan simbol dapat di-resolve
|
||||
fs.writeFileSync(
|
||||
tmpFile,
|
||||
`
|
||||
import * as _ from "${moduleName}";
|
||||
type LodashType = typeof _;
|
||||
export type { LodashType };
|
||||
`
|
||||
);
|
||||
|
||||
// buat program TS yang bisa resolve definisi lodash
|
||||
const program = ts.createProgram([tmpFile], {
|
||||
module: ts.ModuleKind.CommonJS,
|
||||
target: ts.ScriptTarget.ES2020,
|
||||
strict: true,
|
||||
esModuleInterop: true,
|
||||
skipLibCheck: true,
|
||||
allowSyntheticDefaultImports: true,
|
||||
moduleResolution: ts.ModuleResolutionKind.Node10,
|
||||
types: ["lodash"],
|
||||
});
|
||||
|
||||
const checker = program.getTypeChecker();
|
||||
const source = program.getSourceFile(tmpFile)!;
|
||||
|
||||
// ambil type alias LodashType
|
||||
let lodashType: ts.Type | null = null;
|
||||
|
||||
ts.forEachChild(source, (node) => {
|
||||
if (ts.isTypeAliasDeclaration(node) && node.name.text === "LodashType") {
|
||||
lodashType = checker.getTypeFromTypeNode(node.type);
|
||||
}
|
||||
});
|
||||
|
||||
if (!lodashType) {
|
||||
console.error("❌ Tidak menemukan tipe lodash");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const props = checker.getPropertiesOfType(lodashType);
|
||||
const results: any[] = [];
|
||||
|
||||
for (const prop of props) {
|
||||
const name = prop.getName();
|
||||
const propType = checker.getTypeOfSymbolAtLocation(prop, source);
|
||||
|
||||
const callSignatures = propType.getCallSignatures();
|
||||
if (!callSignatures.length) continue; // skip non-function
|
||||
|
||||
const sig = callSignatures[0] as ts.Signature;
|
||||
const params = sig.getParameters().map((p) => {
|
||||
const decl = p.getDeclarations()?.[0];
|
||||
return {
|
||||
name: p.getName(),
|
||||
type: checker.typeToString(
|
||||
checker.getTypeOfSymbolAtLocation(p, decl || source)
|
||||
),
|
||||
};
|
||||
});
|
||||
|
||||
const returnType = checker.typeToString(sig.getReturnType());
|
||||
|
||||
results.push({
|
||||
name,
|
||||
type: "function",
|
||||
args: params,
|
||||
returns: returnType,
|
||||
description: `Lodash function ${name}`,
|
||||
"x-props": {
|
||||
module: moduleName,
|
||||
kind: "function",
|
||||
operationId: name,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
fs.unlinkSync(tmpFile);
|
||||
fs.writeFileSync(`lodash-mcp.json`, JSON.stringify(results, null, 2));
|
||||
|
||||
console.log(`✅ Generated ${results.length} lodash MCP tools`);
|
||||
|
||||
146
xxx.ts
Normal file
146
xxx.ts
Normal file
@@ -0,0 +1,146 @@
|
||||
// file: gen-mcp.ts
|
||||
import ts from "typescript";
|
||||
import fs from "fs";
|
||||
import path from "path";
|
||||
|
||||
const pkgs = process.argv.slice(2);
|
||||
if (!pkgs.length) {
|
||||
console.error("❌ Usage: bun run gen-mcp.ts <package-name> [more-packages...]");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
for (const pkg of pkgs) {
|
||||
console.log(`\n🔍 Generating MCP JSON for: ${pkg} ...`);
|
||||
|
||||
const tmpFile = path.resolve(`./tmp-${pkg}.ts`);
|
||||
fs.writeFileSync(
|
||||
tmpFile,
|
||||
`
|
||||
import * as Pkg from "${pkg}";
|
||||
type TargetType = typeof Pkg;
|
||||
export type { TargetType };
|
||||
`
|
||||
);
|
||||
|
||||
const program = ts.createProgram([tmpFile], {
|
||||
module: ts.ModuleKind.CommonJS,
|
||||
target: ts.ScriptTarget.ES2020,
|
||||
strict: true,
|
||||
esModuleInterop: true,
|
||||
skipLibCheck: true,
|
||||
allowSyntheticDefaultImports: true,
|
||||
moduleResolution: ts.ModuleResolutionKind.Node10,
|
||||
types: [pkg],
|
||||
});
|
||||
|
||||
const checker = program.getTypeChecker();
|
||||
const source = program.getSourceFile(tmpFile)!;
|
||||
let targetType: ts.Type | null = null;
|
||||
|
||||
ts.forEachChild(source, (node) => {
|
||||
if (ts.isTypeAliasDeclaration(node) && node.name.text === "TargetType") {
|
||||
targetType = checker.getTypeFromTypeNode(node.type);
|
||||
}
|
||||
});
|
||||
|
||||
if (!targetType) {
|
||||
console.error(`❌ Tidak menemukan tipe untuk ${pkg}`);
|
||||
fs.unlinkSync(tmpFile);
|
||||
continue;
|
||||
}
|
||||
|
||||
const props = checker.getPropertiesOfType(targetType);
|
||||
const results: any[] = [];
|
||||
|
||||
for (const prop of props) {
|
||||
const name = prop.getName();
|
||||
const propType = checker.getTypeOfSymbolAtLocation(prop, source);
|
||||
|
||||
// === Jika fungsi ===
|
||||
const callSignatures = propType.getCallSignatures();
|
||||
if (callSignatures.length) {
|
||||
const sig = callSignatures[0] as ts.Signature;
|
||||
const params = sig.getParameters().map((p, i) => {
|
||||
const decl = p.getDeclarations()?.[0] as ts.ParameterDeclaration | undefined;
|
||||
const paramType = checker.getTypeOfSymbolAtLocation(p, decl || source);
|
||||
|
||||
const isOptional =
|
||||
!!(decl && (decl.questionToken || decl.initializer)) ||
|
||||
(decl && ts.isParameter(decl) && !!decl.dotDotDotToken); // cek rest parameter
|
||||
|
||||
return {
|
||||
name: p.getName(),
|
||||
type: checker.typeToString(paramType),
|
||||
optional: isOptional,
|
||||
};
|
||||
});
|
||||
|
||||
const returnType = checker.typeToString(sig.getReturnType());
|
||||
|
||||
results.push({
|
||||
name,
|
||||
type: "function",
|
||||
args: params,
|
||||
returns: returnType,
|
||||
description: `${pkg} function ${name}`,
|
||||
"x-props": {
|
||||
module: pkg,
|
||||
kind: "function",
|
||||
operationId: name,
|
||||
},
|
||||
});
|
||||
continue;
|
||||
}
|
||||
|
||||
// === Jika class ===
|
||||
const symbolDecls = prop.getDeclarations() ?? [];
|
||||
for (const decl of symbolDecls) {
|
||||
if (ts.isClassDeclaration(decl) || ts.isClassExpression(decl)) {
|
||||
const classType = checker.getTypeAtLocation(decl);
|
||||
const classMethods = classType
|
||||
.getProperties()
|
||||
.filter((p) =>
|
||||
checker.getTypeOfSymbolAtLocation(p, decl).getCallSignatures().length
|
||||
);
|
||||
|
||||
const methods = classMethods.map((m) => {
|
||||
const sig = checker
|
||||
.getTypeOfSymbolAtLocation(m, decl)
|
||||
.getCallSignatures()[0] as ts.Signature;
|
||||
|
||||
const params = sig.getParameters().map((p) => {
|
||||
const d = p.getDeclarations()?.[0] as ts.ParameterDeclaration | undefined;
|
||||
const t = checker.getTypeOfSymbolAtLocation(p, d || decl);
|
||||
return {
|
||||
name: p.getName(),
|
||||
type: checker.typeToString(t),
|
||||
optional: !!(d && (d.questionToken || d.initializer || d.dotDotDotToken)),
|
||||
};
|
||||
});
|
||||
|
||||
const returnType = checker.typeToString(sig.getReturnType());
|
||||
return { name: m.getName(), params, returns: returnType };
|
||||
});
|
||||
|
||||
results.push({
|
||||
name,
|
||||
type: "class",
|
||||
methods,
|
||||
description: `${pkg} class ${name}`,
|
||||
"x-props": {
|
||||
module: pkg,
|
||||
kind: "class",
|
||||
operationId: name,
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fs.unlinkSync(tmpFile);
|
||||
const outFile = `${pkg}-mcp.json`;
|
||||
fs.writeFileSync(outFile, JSON.stringify(results, null, 2));
|
||||
console.log(`✅ Generated ${results.length} entries → ${outFile}`);
|
||||
}
|
||||
|
||||
console.log("\n🎉 Done! Ready to use in MCP tools.");
|
||||
Reference in New Issue
Block a user