@gala-chain/launchpad-mcp-server 5.0.3 → 5.0.4-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +49 -21
- package/dist/ai-docs.json +7357 -0
- package/dist/constants/mcpToolNames.d.ts +3 -1
- package/dist/constants/mcpToolNames.d.ts.map +1 -1
- package/dist/constants/mcpToolNames.js +2 -1
- package/dist/constants/mcpToolNames.js.map +1 -1
- package/dist/explain-sdk-usage-ai.json +3445 -0
- package/dist/generated/version.d.ts +1 -1
- package/dist/generated/version.d.ts.map +1 -1
- package/dist/generated/version.js +1 -1
- package/dist/generated/version.js.map +1 -1
- package/dist/prompts/account.d.ts +24 -0
- package/dist/prompts/account.d.ts.map +1 -0
- package/dist/prompts/account.js +89 -0
- package/dist/prompts/account.js.map +1 -0
- package/dist/prompts/api-keys.d.ts +36 -0
- package/dist/prompts/api-keys.d.ts.map +1 -0
- package/dist/prompts/api-keys.js +251 -0
- package/dist/prompts/api-keys.js.map +1 -0
- package/dist/prompts/auth.d.ts +29 -0
- package/dist/prompts/auth.d.ts.map +1 -0
- package/dist/prompts/auth.js +127 -0
- package/dist/prompts/auth.js.map +1 -0
- package/dist/prompts/balances.d.ts.map +1 -1
- package/dist/prompts/balances.js +17 -17
- package/dist/prompts/balances.js.map +1 -1
- package/dist/prompts/bans.d.ts +23 -0
- package/dist/prompts/bans.d.ts.map +1 -0
- package/dist/prompts/bans.js +82 -0
- package/dist/prompts/bans.js.map +1 -0
- package/dist/prompts/bridge.d.ts +2 -1
- package/dist/prompts/bridge.d.ts.map +1 -1
- package/dist/prompts/bridge.js +91 -227
- package/dist/prompts/bridge.js.map +1 -1
- package/dist/prompts/burns.d.ts +30 -0
- package/dist/prompts/burns.d.ts.map +1 -0
- package/dist/prompts/burns.js +127 -0
- package/dist/prompts/burns.js.map +1 -0
- package/dist/prompts/chat-messages.d.ts +21 -0
- package/dist/prompts/chat-messages.d.ts.map +1 -0
- package/dist/prompts/chat-messages.js +103 -0
- package/dist/prompts/chat-messages.js.map +1 -0
- package/dist/prompts/chat.d.ts +67 -0
- package/dist/prompts/chat.d.ts.map +1 -0
- package/dist/prompts/chat.js +355 -0
- package/dist/prompts/chat.js.map +1 -0
- package/dist/prompts/comments.d.ts +29 -0
- package/dist/prompts/comments.d.ts.map +1 -0
- package/dist/prompts/comments.js +133 -0
- package/dist/prompts/comments.js.map +1 -0
- package/dist/prompts/content-flags.d.ts +29 -0
- package/dist/prompts/content-flags.d.ts.map +1 -0
- package/dist/prompts/content-flags.js +248 -0
- package/dist/prompts/content-flags.js.map +1 -0
- package/dist/prompts/content-reactions.d.ts +29 -0
- package/dist/prompts/content-reactions.d.ts.map +1 -0
- package/dist/prompts/content-reactions.js +77 -0
- package/dist/prompts/content-reactions.js.map +1 -0
- package/dist/prompts/create-token.d.ts.map +1 -1
- package/dist/prompts/create-token.js +11 -18
- package/dist/prompts/create-token.js.map +1 -1
- package/dist/prompts/dex-trading.d.ts.map +1 -1
- package/dist/prompts/dex-trading.js +11 -42
- package/dist/prompts/dex-trading.js.map +1 -1
- package/dist/prompts/discover-tokens.d.ts.map +1 -1
- package/dist/prompts/discover-tokens.js +11 -26
- package/dist/prompts/discover-tokens.js.map +1 -1
- package/dist/prompts/event-subscriptions.d.ts +45 -0
- package/dist/prompts/event-subscriptions.d.ts.map +1 -0
- package/dist/prompts/event-subscriptions.js +330 -0
- package/dist/prompts/event-subscriptions.js.map +1 -0
- package/dist/prompts/explore-dex-pools.d.ts +2 -0
- package/dist/prompts/explore-dex-pools.d.ts.map +1 -1
- package/dist/prompts/explore-dex-pools.js +26 -104
- package/dist/prompts/explore-dex-pools.js.map +1 -1
- package/dist/prompts/factories/balance-prompt-factory.d.ts +102 -0
- package/dist/prompts/factories/balance-prompt-factory.d.ts.map +1 -0
- package/dist/prompts/factories/balance-prompt-factory.js +176 -0
- package/dist/prompts/factories/balance-prompt-factory.js.map +1 -0
- package/dist/prompts/factories/ban-management-factory.d.ts +90 -0
- package/dist/prompts/factories/ban-management-factory.d.ts.map +1 -0
- package/dist/prompts/factories/ban-management-factory.js +330 -0
- package/dist/prompts/factories/ban-management-factory.js.map +1 -0
- package/dist/prompts/factories/calculation-prompt-factory.d.ts +119 -0
- package/dist/prompts/factories/calculation-prompt-factory.d.ts.map +1 -0
- package/dist/prompts/factories/calculation-prompt-factory.js +183 -0
- package/dist/prompts/factories/calculation-prompt-factory.js.map +1 -0
- package/dist/prompts/factories/discovery-prompt-factory.d.ts +135 -0
- package/dist/prompts/factories/discovery-prompt-factory.d.ts.map +1 -0
- package/dist/prompts/factories/discovery-prompt-factory.js +240 -0
- package/dist/prompts/factories/discovery-prompt-factory.js.map +1 -0
- package/dist/prompts/factories/event-subscription-factory.d.ts +177 -0
- package/dist/prompts/factories/event-subscription-factory.d.ts.map +1 -0
- package/dist/prompts/factories/event-subscription-factory.js +329 -0
- package/dist/prompts/factories/event-subscription-factory.js.map +1 -0
- package/dist/prompts/factories/filtered-list-prompt-factory.d.ts +95 -0
- package/dist/prompts/factories/filtered-list-prompt-factory.d.ts.map +1 -0
- package/dist/prompts/factories/filtered-list-prompt-factory.js +147 -0
- package/dist/prompts/factories/filtered-list-prompt-factory.js.map +1 -0
- package/dist/prompts/factories/index.d.ts +33 -0
- package/dist/prompts/factories/index.d.ts.map +1 -0
- package/dist/prompts/factories/index.js +91 -0
- package/dist/prompts/factories/index.js.map +1 -0
- package/dist/prompts/factories/invite-management-factory.d.ts +88 -0
- package/dist/prompts/factories/invite-management-factory.d.ts.map +1 -0
- package/dist/prompts/factories/invite-management-factory.js +262 -0
- package/dist/prompts/factories/invite-management-factory.js.map +1 -0
- package/dist/prompts/factories/reaction-prompt-factory.d.ts +81 -0
- package/dist/prompts/factories/reaction-prompt-factory.d.ts.map +1 -0
- package/dist/prompts/factories/reaction-prompt-factory.js +188 -0
- package/dist/prompts/factories/reaction-prompt-factory.js.map +1 -0
- package/dist/prompts/factories/simple-operation-factory.d.ts +166 -0
- package/dist/prompts/factories/simple-operation-factory.d.ts.map +1 -0
- package/dist/prompts/factories/simple-operation-factory.js +218 -0
- package/dist/prompts/factories/simple-operation-factory.js.map +1 -0
- package/dist/prompts/index.d.ts +31 -6
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +136 -5
- package/dist/prompts/index.js.map +1 -1
- package/dist/prompts/locks.d.ts.map +1 -1
- package/dist/prompts/locks.js +32 -56
- package/dist/prompts/locks.js.map +1 -1
- package/dist/prompts/moderators.d.ts +22 -0
- package/dist/prompts/moderators.d.ts.map +1 -0
- package/dist/prompts/moderators.js +62 -0
- package/dist/prompts/moderators.js.map +1 -0
- package/dist/prompts/monitoring.d.ts +3 -1
- package/dist/prompts/monitoring.d.ts.map +1 -1
- package/dist/prompts/monitoring.js +52 -140
- package/dist/prompts/monitoring.js.map +1 -1
- package/dist/prompts/overseers.d.ts +34 -0
- package/dist/prompts/overseers.d.ts.map +1 -0
- package/dist/prompts/overseers.js +117 -0
- package/dist/prompts/overseers.js.map +1 -0
- package/dist/prompts/pools.d.ts +22 -20
- package/dist/prompts/pools.d.ts.map +1 -1
- package/dist/prompts/pools.js +150 -251
- package/dist/prompts/pools.js.map +1 -1
- package/dist/prompts/portfolio.d.ts.map +1 -1
- package/dist/prompts/portfolio.js +1 -9
- package/dist/prompts/portfolio.js.map +1 -1
- package/dist/prompts/prompt-factories.d.ts +179 -0
- package/dist/prompts/prompt-factories.d.ts.map +1 -0
- package/dist/prompts/prompt-factories.js +230 -0
- package/dist/prompts/prompt-factories.js.map +1 -0
- package/dist/prompts/referrals.d.ts +27 -0
- package/dist/prompts/referrals.d.ts.map +1 -0
- package/dist/prompts/referrals.js +176 -0
- package/dist/prompts/referrals.js.map +1 -0
- package/dist/prompts/streaming.d.ts +84 -0
- package/dist/prompts/streaming.d.ts.map +1 -0
- package/dist/prompts/streaming.js +411 -0
- package/dist/prompts/streaming.js.map +1 -0
- package/dist/prompts/tier1-bridge-operations.d.ts +30 -0
- package/dist/prompts/tier1-bridge-operations.d.ts.map +1 -0
- package/dist/prompts/tier1-bridge-operations.js +634 -0
- package/dist/prompts/tier1-bridge-operations.js.map +1 -0
- package/dist/prompts/tier1-liquidity-management.d.ts +30 -0
- package/dist/prompts/tier1-liquidity-management.d.ts.map +1 -0
- package/dist/prompts/tier1-liquidity-management.js +560 -0
- package/dist/prompts/tier1-liquidity-management.js.map +1 -0
- package/dist/prompts/tier1-pool-discovery.d.ts +30 -0
- package/dist/prompts/tier1-pool-discovery.d.ts.map +1 -0
- package/dist/prompts/tier1-pool-discovery.js +221 -0
- package/dist/prompts/tier1-pool-discovery.js.map +1 -0
- package/dist/prompts/tier1-price-history.d.ts +30 -0
- package/dist/prompts/tier1-price-history.d.ts.map +1 -0
- package/dist/prompts/tier1-price-history.js +429 -0
- package/dist/prompts/tier1-price-history.js.map +1 -0
- package/dist/prompts/tier1-token-analysis.d.ts +30 -0
- package/dist/prompts/tier1-token-analysis.d.ts.map +1 -0
- package/dist/prompts/tier1-token-analysis.js +376 -0
- package/dist/prompts/tier1-token-analysis.js.map +1 -0
- package/dist/prompts/tier2-account-setup.d.ts +24 -0
- package/dist/prompts/tier2-account-setup.d.ts.map +1 -0
- package/dist/prompts/tier2-account-setup.js +206 -0
- package/dist/prompts/tier2-account-setup.js.map +1 -0
- package/dist/prompts/tier2-advanced-liquidity.d.ts +24 -0
- package/dist/prompts/tier2-advanced-liquidity.d.ts.map +1 -0
- package/dist/prompts/tier2-advanced-liquidity.js +298 -0
- package/dist/prompts/tier2-advanced-liquidity.js.map +1 -0
- package/dist/prompts/tier2-asset-management.d.ts +25 -0
- package/dist/prompts/tier2-asset-management.d.ts.map +1 -0
- package/dist/prompts/tier2-asset-management.js +246 -0
- package/dist/prompts/tier2-asset-management.js.map +1 -0
- package/dist/prompts/tier2-token-lifecycle.d.ts +25 -0
- package/dist/prompts/tier2-token-lifecycle.d.ts.map +1 -0
- package/dist/prompts/tier2-token-lifecycle.js +241 -0
- package/dist/prompts/tier2-token-lifecycle.js.map +1 -0
- package/dist/prompts/tier3-community-engagement.d.ts +26 -0
- package/dist/prompts/tier3-community-engagement.d.ts.map +1 -0
- package/dist/prompts/tier3-community-engagement.js +610 -0
- package/dist/prompts/tier3-community-engagement.js.map +1 -0
- package/dist/prompts/tier3-moderation-workflows.d.ts +31 -0
- package/dist/prompts/tier3-moderation-workflows.d.ts.map +1 -0
- package/dist/prompts/tier3-moderation-workflows.js +511 -0
- package/dist/prompts/tier3-moderation-workflows.js.map +1 -0
- package/dist/prompts/tier3-streaming-management.d.ts +26 -0
- package/dist/prompts/tier3-streaming-management.d.ts.map +1 -0
- package/dist/prompts/tier3-streaming-management.js +797 -0
- package/dist/prompts/tier3-streaming-management.js.map +1 -0
- package/dist/prompts/token-bans.d.ts +27 -0
- package/dist/prompts/token-bans.d.ts.map +1 -0
- package/dist/prompts/token-bans.js +77 -0
- package/dist/prompts/token-bans.js.map +1 -0
- package/dist/prompts/trades.d.ts +22 -0
- package/dist/prompts/trades.d.ts.map +1 -0
- package/dist/prompts/trades.js +107 -0
- package/dist/prompts/trades.js.map +1 -0
- package/dist/prompts/trading-calculations.d.ts +3 -1
- package/dist/prompts/trading-calculations.d.ts.map +1 -1
- package/dist/prompts/trading-calculations.js +134 -270
- package/dist/prompts/trading-calculations.js.map +1 -1
- package/dist/prompts/trading.d.ts +10 -1
- package/dist/prompts/trading.d.ts.map +1 -1
- package/dist/prompts/trading.js +128 -2
- package/dist/prompts/trading.js.map +1 -1
- package/dist/prompts/transfers.d.ts +2 -1
- package/dist/prompts/transfers.d.ts.map +1 -1
- package/dist/prompts/transfers.js +26 -30
- package/dist/prompts/transfers.js.map +1 -1
- package/dist/prompts/uploads.d.ts +19 -0
- package/dist/prompts/uploads.d.ts.map +1 -0
- package/dist/prompts/uploads.js +114 -0
- package/dist/prompts/uploads.js.map +1 -0
- package/dist/prompts/utility-tools.d.ts.map +1 -1
- package/dist/prompts/utility-tools.js +27 -18
- package/dist/prompts/utility-tools.js.map +1 -1
- package/dist/prompts/utils/index.d.ts +21 -0
- package/dist/prompts/utils/index.d.ts.map +1 -0
- package/dist/prompts/utils/index.js +38 -0
- package/dist/prompts/utils/index.js.map +1 -0
- package/dist/prompts/utils/pagination-helpers.d.ts +95 -0
- package/dist/prompts/utils/pagination-helpers.d.ts.map +1 -0
- package/dist/prompts/utils/pagination-helpers.js +121 -0
- package/dist/prompts/utils/pagination-helpers.js.map +1 -0
- package/dist/prompts/utils/workflowTemplates.d.ts.map +1 -1
- package/dist/prompts/utils/workflowTemplates.js +4 -3
- package/dist/prompts/utils/workflowTemplates.js.map +1 -1
- package/dist/prompts/wallet.d.ts +24 -0
- package/dist/prompts/wallet.d.ts.map +1 -0
- package/dist/prompts/wallet.js +139 -0
- package/dist/prompts/wallet.js.map +1 -0
- package/dist/schemas/common-schemas.d.ts +890 -0
- package/dist/schemas/common-schemas.d.ts.map +1 -1
- package/dist/schemas/common-schemas.js +853 -1
- package/dist/schemas/common-schemas.js.map +1 -1
- package/dist/server.d.ts +31 -3
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +68 -7
- package/dist/server.js.map +1 -1
- package/dist/tools/api-keys/index.d.ts +41 -0
- package/dist/tools/api-keys/index.d.ts.map +1 -0
- package/dist/tools/api-keys/index.js +245 -0
- package/dist/tools/api-keys/index.js.map +1 -0
- package/dist/tools/auth/index.d.ts +19 -0
- package/dist/tools/auth/index.d.ts.map +1 -0
- package/dist/tools/auth/index.js +138 -0
- package/dist/tools/auth/index.js.map +1 -0
- package/dist/tools/balance/helpers/format-balance.d.ts +86 -0
- package/dist/tools/balance/helpers/format-balance.d.ts.map +1 -0
- package/dist/tools/balance/helpers/format-balance.js +87 -0
- package/dist/tools/balance/helpers/format-balance.js.map +1 -0
- package/dist/tools/balance/index.d.ts +4 -4
- package/dist/tools/balance/index.d.ts.map +1 -1
- package/dist/tools/balance/index.js +64 -176
- package/dist/tools/balance/index.js.map +1 -1
- package/dist/tools/ban/index.d.ts +37 -0
- package/dist/tools/ban/index.d.ts.map +1 -0
- package/dist/tools/ban/index.js +206 -0
- package/dist/tools/ban/index.js.map +1 -0
- package/dist/tools/bridge/helpers/bridgeable-token-tools.d.ts +87 -0
- package/dist/tools/bridge/helpers/bridgeable-token-tools.d.ts.map +1 -0
- package/dist/tools/bridge/helpers/bridgeable-token-tools.js +130 -0
- package/dist/tools/bridge/helpers/bridgeable-token-tools.js.map +1 -0
- package/dist/tools/bridge/helpers/external-chain-balance-tools.d.ts +87 -0
- package/dist/tools/bridge/helpers/external-chain-balance-tools.d.ts.map +1 -0
- package/dist/tools/bridge/helpers/external-chain-balance-tools.js +167 -0
- package/dist/tools/bridge/helpers/external-chain-balance-tools.js.map +1 -0
- package/dist/tools/bridge/index.d.ts +3 -7
- package/dist/tools/bridge/index.d.ts.map +1 -1
- package/dist/tools/bridge/index.js +89 -371
- package/dist/tools/bridge/index.js.map +1 -1
- package/dist/tools/burns/index.d.ts.map +1 -1
- package/dist/tools/burns/index.js +8 -36
- package/dist/tools/burns/index.js.map +1 -1
- package/dist/tools/chat/getPinnedChatMessage.d.ts +15 -0
- package/dist/tools/chat/getPinnedChatMessage.d.ts.map +1 -0
- package/dist/tools/chat/getPinnedChatMessage.js +37 -0
- package/dist/tools/chat/getPinnedChatMessage.js.map +1 -0
- package/dist/tools/chat/index.d.ts +73 -0
- package/dist/tools/chat/index.d.ts.map +1 -0
- package/dist/tools/chat/index.js +359 -0
- package/dist/tools/chat/index.js.map +1 -0
- package/dist/tools/chat/pinChatMessage.d.ts +16 -0
- package/dist/tools/chat/pinChatMessage.d.ts.map +1 -0
- package/dist/tools/chat/pinChatMessage.js +51 -0
- package/dist/tools/chat/pinChatMessage.js.map +1 -0
- package/dist/tools/chat/unpinChatMessage.d.ts +16 -0
- package/dist/tools/chat/unpinChatMessage.d.ts.map +1 -0
- package/dist/tools/chat/unpinChatMessage.js +39 -0
- package/dist/tools/chat/unpinChatMessage.js.map +1 -0
- package/dist/tools/chat-messages/index.d.ts +35 -0
- package/dist/tools/chat-messages/index.d.ts.map +1 -0
- package/dist/tools/chat-messages/index.js +165 -0
- package/dist/tools/chat-messages/index.js.map +1 -0
- package/dist/tools/comments/index.d.ts +44 -0
- package/dist/tools/comments/index.d.ts.map +1 -0
- package/dist/tools/comments/index.js +171 -0
- package/dist/tools/comments/index.js.map +1 -0
- package/dist/tools/content-flags/index.d.ts +38 -0
- package/dist/tools/content-flags/index.d.ts.map +1 -0
- package/dist/tools/content-flags/index.js +282 -0
- package/dist/tools/content-flags/index.js.map +1 -0
- package/dist/tools/content-reactions/index.d.ts +43 -0
- package/dist/tools/content-reactions/index.d.ts.map +1 -0
- package/dist/tools/content-reactions/index.js +135 -0
- package/dist/tools/content-reactions/index.js.map +1 -0
- package/dist/tools/creation/index.d.ts.map +1 -1
- package/dist/tools/creation/index.js +2 -5
- package/dist/tools/creation/index.js.map +1 -1
- package/dist/tools/dex/fetchAllDexPools.d.ts.map +1 -1
- package/dist/tools/dex/fetchAllDexPools.js +5 -21
- package/dist/tools/dex/fetchAllDexPools.js.map +1 -1
- package/dist/tools/dex/fetchDexPools.d.ts.map +1 -1
- package/dist/tools/dex/fetchDexPools.js +11 -28
- package/dist/tools/dex/fetchDexPools.js.map +1 -1
- package/dist/tools/dex/helpers.d.ts +479 -0
- package/dist/tools/dex/helpers.d.ts.map +1 -0
- package/dist/tools/dex/helpers.js +570 -0
- package/dist/tools/dex/helpers.js.map +1 -0
- package/dist/tools/dex/index.d.ts +50 -11
- package/dist/tools/dex/index.d.ts.map +1 -1
- package/dist/tools/dex/index.js +124 -486
- package/dist/tools/dex/index.js.map +1 -1
- package/dist/tools/dex/leaderboard.d.ts.map +1 -1
- package/dist/tools/dex/leaderboard.js +5 -70
- package/dist/tools/dex/leaderboard.js.map +1 -1
- package/dist/tools/dex/liquidity-positions.d.ts.map +1 -1
- package/dist/tools/dex/liquidity-positions.js +20 -91
- package/dist/tools/dex/liquidity-positions.js.map +1 -1
- package/dist/tools/dex/volume.d.ts.map +1 -1
- package/dist/tools/dex/volume.js +6 -21
- package/dist/tools/dex/volume.js.map +1 -1
- package/dist/tools/dex-analytics/index.d.ts +48 -0
- package/dist/tools/dex-analytics/index.d.ts.map +1 -0
- package/dist/tools/dex-analytics/index.js +111 -0
- package/dist/tools/dex-analytics/index.js.map +1 -0
- package/dist/tools/dex-liquidity/index.d.ts +22 -0
- package/dist/tools/dex-liquidity/index.d.ts.map +1 -0
- package/dist/tools/dex-liquidity/index.js +384 -0
- package/dist/tools/dex-liquidity/index.js.map +1 -0
- package/dist/tools/dex-pools/index.d.ts +60 -0
- package/dist/tools/dex-pools/index.d.ts.map +1 -0
- package/dist/tools/dex-pools/index.js +231 -0
- package/dist/tools/dex-pools/index.js.map +1 -0
- package/dist/tools/handler-factories.d.ts +1401 -0
- package/dist/tools/handler-factories.d.ts.map +1 -0
- package/dist/tools/handler-factories.js +1680 -0
- package/dist/tools/handler-factories.js.map +1 -0
- package/dist/tools/index.d.ts +1 -11
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +171 -27
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/locks/index.d.ts +2 -0
- package/dist/tools/locks/index.d.ts.map +1 -1
- package/dist/tools/locks/index.js +9 -86
- package/dist/tools/locks/index.js.map +1 -1
- package/dist/tools/moderators/index.d.ts +53 -0
- package/dist/tools/moderators/index.d.ts.map +1 -0
- package/dist/tools/moderators/index.js +258 -0
- package/dist/tools/moderators/index.js.map +1 -0
- package/dist/tools/overseers/getOverseerUserSummary.d.ts +15 -0
- package/dist/tools/overseers/getOverseerUserSummary.d.ts.map +1 -0
- package/dist/tools/overseers/getOverseerUserSummary.js +40 -0
- package/dist/tools/overseers/getOverseerUserSummary.js.map +1 -0
- package/dist/tools/overseers/index.d.ts +58 -0
- package/dist/tools/overseers/index.d.ts.map +1 -0
- package/dist/tools/overseers/index.js +325 -0
- package/dist/tools/overseers/index.js.map +1 -0
- package/dist/tools/overseers/listOverseerUsers.d.ts +15 -0
- package/dist/tools/overseers/listOverseerUsers.d.ts.map +1 -0
- package/dist/tools/overseers/listOverseerUsers.js +76 -0
- package/dist/tools/overseers/listOverseerUsers.js.map +1 -0
- package/dist/tools/pagination-handler-factory.d.ts +131 -0
- package/dist/tools/pagination-handler-factory.d.ts.map +1 -0
- package/dist/tools/pagination-handler-factory.js +159 -0
- package/dist/tools/pagination-handler-factory.js.map +1 -0
- package/dist/tools/pools/checkPoolExists.d.ts +16 -0
- package/dist/tools/pools/checkPoolExists.d.ts.map +1 -0
- package/dist/tools/pools/checkPoolExists.js +48 -0
- package/dist/tools/pools/checkPoolExists.js.map +1 -0
- package/dist/tools/pools/fetchAllPools.d.ts.map +1 -1
- package/dist/tools/pools/fetchAllPools.js +51 -11
- package/dist/tools/pools/fetchAllPools.js.map +1 -1
- package/dist/tools/pools/fetchAllPriceHistory.d.ts.map +1 -1
- package/dist/tools/pools/fetchAllPriceHistory.js +11 -51
- package/dist/tools/pools/fetchAllPriceHistory.js.map +1 -1
- package/dist/tools/pools/fetchPoolDetails.d.ts.map +1 -1
- package/dist/tools/pools/fetchPoolDetails.js +4 -11
- package/dist/tools/pools/fetchPoolDetails.js.map +1 -1
- package/dist/tools/pools/fetchPools.d.ts.map +1 -1
- package/dist/tools/pools/fetchPools.js +40 -20
- package/dist/tools/pools/fetchPools.js.map +1 -1
- package/dist/tools/pools/fetchPriceHistory.d.ts.map +1 -1
- package/dist/tools/pools/fetchPriceHistory.js +10 -51
- package/dist/tools/pools/fetchPriceHistory.js.map +1 -1
- package/dist/tools/pools/fetchTokenDetails.d.ts.map +1 -1
- package/dist/tools/pools/fetchTokenDetails.js +4 -35
- package/dist/tools/pools/fetchTokenDetails.js.map +1 -1
- package/dist/tools/pools/index.d.ts +2 -0
- package/dist/tools/pools/index.d.ts.map +1 -1
- package/dist/tools/pools/index.js +103 -35
- package/dist/tools/pools/index.js.map +1 -1
- package/dist/tools/pools/onDexPoolCreation.d.ts +1 -2
- package/dist/tools/pools/onDexPoolCreation.d.ts.map +1 -1
- package/dist/tools/pools/onDexPoolCreation.js +14 -48
- package/dist/tools/pools/onDexPoolCreation.js.map +1 -1
- package/dist/tools/pools/onLaunchpadTokenCreation.d.ts +1 -2
- package/dist/tools/pools/onLaunchpadTokenCreation.d.ts.map +1 -1
- package/dist/tools/pools/onLaunchpadTokenCreation.js +9 -42
- package/dist/tools/pools/onLaunchpadTokenCreation.js.map +1 -1
- package/dist/tools/pools/priceHistoryFactory.d.ts +44 -0
- package/dist/tools/pools/priceHistoryFactory.d.ts.map +1 -0
- package/dist/tools/pools/priceHistoryFactory.js +154 -0
- package/dist/tools/pools/priceHistoryFactory.js.map +1 -0
- package/dist/tools/pools/updateTokenSocials.d.ts +16 -0
- package/dist/tools/pools/updateTokenSocials.d.ts.map +1 -0
- package/dist/tools/pools/updateTokenSocials.js +84 -0
- package/dist/tools/pools/updateTokenSocials.js.map +1 -0
- package/dist/tools/referrals/index.d.ts +12 -0
- package/dist/tools/referrals/index.d.ts.map +1 -0
- package/dist/tools/referrals/index.js +110 -0
- package/dist/tools/referrals/index.js.map +1 -0
- package/dist/tools/streaming/index.d.ts +94 -0
- package/dist/tools/streaming/index.d.ts.map +1 -0
- package/dist/tools/streaming/index.js +549 -0
- package/dist/tools/streaming/index.js.map +1 -0
- package/dist/tools/streaming/setNextLiveStreamCountdown.d.ts +16 -0
- package/dist/tools/streaming/setNextLiveStreamCountdown.d.ts.map +1 -0
- package/dist/tools/streaming/setNextLiveStreamCountdown.js +62 -0
- package/dist/tools/streaming/setNextLiveStreamCountdown.js.map +1 -0
- package/dist/tools/token-ban/index.d.ts +39 -0
- package/dist/tools/token-ban/index.d.ts.map +1 -0
- package/dist/tools/token-ban/index.js +177 -0
- package/dist/tools/token-ban/index.js.map +1 -0
- package/dist/tools/tool-factory.d.ts +84 -0
- package/dist/tools/tool-factory.d.ts.map +1 -0
- package/dist/tools/tool-factory.js +135 -0
- package/dist/tools/tool-factory.js.map +1 -0
- package/dist/tools/trades/index.d.ts +20 -0
- package/dist/tools/trades/index.d.ts.map +1 -0
- package/dist/tools/trades/index.js +113 -0
- package/dist/tools/trades/index.js.map +1 -0
- package/dist/tools/trading/helpers/arg-extractors.d.ts +128 -0
- package/dist/tools/trading/helpers/arg-extractors.d.ts.map +1 -0
- package/dist/tools/trading/helpers/arg-extractors.js +215 -0
- package/dist/tools/trading/helpers/arg-extractors.js.map +1 -0
- package/dist/tools/trading/helpers/index.d.ts +8 -0
- package/dist/tools/trading/helpers/index.d.ts.map +1 -0
- package/dist/tools/trading/helpers/index.js +24 -0
- package/dist/tools/trading/helpers/index.js.map +1 -0
- package/dist/tools/trading/helpers/trading-schemas.d.ts +276 -0
- package/dist/tools/trading/helpers/trading-schemas.d.ts.map +1 -0
- package/dist/tools/trading/helpers/trading-schemas.js +310 -0
- package/dist/tools/trading/helpers/trading-schemas.js.map +1 -0
- package/dist/tools/trading/index.d.ts +2 -0
- package/dist/tools/trading/index.d.ts.map +1 -1
- package/dist/tools/trading/index.js +148 -371
- package/dist/tools/trading/index.js.map +1 -1
- package/dist/tools/transfers/index.d.ts +3 -0
- package/dist/tools/transfers/index.d.ts.map +1 -1
- package/dist/tools/transfers/index.js +72 -52
- package/dist/tools/transfers/index.js.map +1 -1
- package/dist/tools/utils/cleanup.d.ts.map +1 -1
- package/dist/tools/utils/cleanup.js +2 -9
- package/dist/tools/utils/cleanup.js.map +1 -1
- package/dist/tools/utils/clearCache.d.ts.map +1 -1
- package/dist/tools/utils/clearCache.js +5 -7
- package/dist/tools/utils/clearCache.js.map +1 -1
- package/dist/tools/utils/explainSdkUsage.d.ts +52 -0
- package/dist/tools/utils/explainSdkUsage.d.ts.map +1 -1
- package/dist/tools/utils/explainSdkUsage.js +1905 -93
- package/dist/tools/utils/explainSdkUsage.js.map +1 -1
- package/dist/tools/utils/getEthereumAddressFromPrivateKey.d.ts.map +1 -1
- package/dist/tools/utils/getEthereumAddressFromPrivateKey.js +2 -1
- package/dist/tools/utils/getEthereumAddressFromPrivateKey.js.map +1 -1
- package/dist/tools/utils/index.d.ts +2 -0
- package/dist/tools/utils/index.d.ts.map +1 -1
- package/dist/tools/utils/index.js +2 -12
- package/dist/tools/utils/index.js.map +1 -1
- package/dist/tools/wallet/index.d.ts +7 -0
- package/dist/tools/wallet/index.d.ts.map +1 -0
- package/dist/tools/wallet/index.js +24 -0
- package/dist/tools/wallet/index.js.map +1 -0
- package/dist/utils/date-converter.d.ts +58 -0
- package/dist/utils/date-converter.d.ts.map +1 -0
- package/dist/utils/date-converter.js +83 -0
- package/dist/utils/date-converter.js.map +1 -0
- package/dist/utils/pool-filter-builder.d.ts +78 -0
- package/dist/utils/pool-filter-builder.d.ts.map +1 -0
- package/dist/utils/pool-filter-builder.js +130 -0
- package/dist/utils/pool-filter-builder.js.map +1 -0
- package/dist/utils/safe-parsers.d.ts +87 -0
- package/dist/utils/safe-parsers.d.ts.map +1 -0
- package/dist/utils/safe-parsers.js +134 -0
- package/dist/utils/safe-parsers.js.map +1 -0
- package/dist/utils/validation.d.ts +5 -5
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +24 -21
- package/dist/utils/validation.js.map +1 -1
- package/package.json +23 -15
- package/.env.example +0 -21
- package/.eslintrc.json +0 -88
- package/CHANGELOG.md +0 -2161
- package/DOCS_AUDIT_REPORT.md +0 -189
- package/DRY_REFACTORING_GUIDE.md +0 -271
- package/MCP_COVERAGE_REPORT.md +0 -164
- package/MCP_TEST_ANALYSIS.md +0 -317
- package/jest.integration.config.js +0 -70
- package/scripts/inject-version.ts +0 -31
- package/scripts/validate-mcp-test-analysis.ts +0 -250
package/MCP_TEST_ANALYSIS.md
DELETED
|
@@ -1,317 +0,0 @@
|
|
|
1
|
-
# MCP Tool Test Analysis
|
|
2
|
-
|
|
3
|
-
**Last Updated:** 2025-12-09 (v5.0.0)
|
|
4
|
-
**Total Tools:** 132
|
|
5
|
-
**Environment:** STAGE
|
|
6
|
-
**SDK Version:** 5.0.0
|
|
7
|
-
**MCP Version:** 5.0.0
|
|
8
|
-
|
|
9
|
-
## Summary
|
|
10
|
-
|
|
11
|
-
| Category | Total | Pass | Fail | Skip | Config-Required |
|
|
12
|
-
|----------|-------|------|------|------|-----------------|
|
|
13
|
-
| utilities | 19 | 19 | 0 | 0 | 0 |
|
|
14
|
-
| pools | 19 | 19 | 0 | 0 | 0 |
|
|
15
|
-
| balance | 12 | 12 | 0 | 0 | 0 |
|
|
16
|
-
| trading | 13 | 13 | 0 | 0 | 0 |
|
|
17
|
-
| dex | 29 | 29 | 0 | 0 | 0 |
|
|
18
|
-
| creation | 4 | 4 | 0 | 0 | 0 |
|
|
19
|
-
| transfers | 2 | 2 | 0 | 0 | 0 |
|
|
20
|
-
| locks | 3 | 3 | 0 | 0 | 0 |
|
|
21
|
-
| bridge | 31 | 30 | 0 | 0 | 1 |
|
|
22
|
-
| **TOTAL** | **132** | **131** | **0** | **0** | **1** |
|
|
23
|
-
|
|
24
|
-
**Coverage: 100%** (132/132 tools accounted for)
|
|
25
|
-
**Pass Rate: 100%** (131/131 testable tools passed)
|
|
26
|
-
|
|
27
|
-
---
|
|
28
|
-
|
|
29
|
-
## UTILITIES (19 tools) - 19 PASS
|
|
30
|
-
|
|
31
|
-
| Tool | Status | Notes |
|
|
32
|
-
|------|--------|-------|
|
|
33
|
-
| `gala_launchpad_get_config` | PASS | Returns environment, URLs, slippage settings, **gasFee: "1"** |
|
|
34
|
-
| `gala_launchpad_get_version` | PASS | Returns SDK 5.0.0 and MCP 5.0.0 |
|
|
35
|
-
| `gala_launchpad_get_environment` | PASS | Returns current environment |
|
|
36
|
-
| `gala_launchpad_switch_environment` | PASS | Switches between production/development/testing |
|
|
37
|
-
| `gala_launchpad_has_wallet` | PASS | Returns true if wallet configured |
|
|
38
|
-
| `gala_launchpad_get_wallet` | PASS | Returns wallet info |
|
|
39
|
-
| `gala_launchpad_get_address` | PASS | Returns GalaChain format `eth\|{hex}` |
|
|
40
|
-
| `gala_launchpad_get_ethereum_address` | PASS | Returns `0x{hex}` format |
|
|
41
|
-
| `gala_launchpad_set_wallet` | PASS | Sets new wallet from private key |
|
|
42
|
-
| `gala_launchpad_create_wallet` | PASS | Creates random wallet with private key |
|
|
43
|
-
| `gala_launchpad_get_public_key_from_private_key` | PASS | Derives public key (compressed + uncompressed) |
|
|
44
|
-
| `gala_launchpad_get_ethereum_address_from_private_key` | PASS | Derives Ethereum address from private key |
|
|
45
|
-
| `gala_launchpad_get_cache_info` | PASS | Returns cache stats |
|
|
46
|
-
| `gala_launchpad_clear_cache` | PASS | Clears token metadata cache |
|
|
47
|
-
| `gala_launchpad_cleanup` | PASS | Cleans up SDK resources |
|
|
48
|
-
| `gala_launchpad_is_token_graduated` | PASS | Returns boolean for graduation status |
|
|
49
|
-
| `gala_launchpad_get_url_by_token_name` | PASS | Returns launchpad URL |
|
|
50
|
-
| `gala_launchpad_explain_sdk_usage` | PASS | Returns SDK usage examples for 37 topics |
|
|
51
|
-
| `gala_launchpad_create_solana_wallet` | PASS | Creates random Solana keypair |
|
|
52
|
-
|
|
53
|
-
---
|
|
54
|
-
|
|
55
|
-
## POOLS (19 tools) - 19 PASS
|
|
56
|
-
|
|
57
|
-
| Tool | Status | Notes |
|
|
58
|
-
|------|--------|-------|
|
|
59
|
-
| `gala_launchpad_fetch_pools` | PASS | Returns paginated pool list |
|
|
60
|
-
| `gala_launchpad_fetch_all_pools` | PASS | Returns all pools with auto-pagination |
|
|
61
|
-
| `gala_launchpad_fetch_pool_details` | PASS | Returns detailed pool info |
|
|
62
|
-
| `gala_launchpad_fetch_pool_details_for_calculation` | PASS | Returns optimized pool data for calculations |
|
|
63
|
-
| `gala_launchpad_fetch_token_details` | PASS | Returns DEX token metadata |
|
|
64
|
-
| `gala_launchpad_fetch_token_distribution` | PASS | Returns holder distribution |
|
|
65
|
-
| `gala_launchpad_fetch_token_badges` | PASS | Returns achievement badges |
|
|
66
|
-
| `gala_launchpad_fetch_volume_data` | PASS | Returns OHLCV candlestick data |
|
|
67
|
-
| `gala_launchpad_fetch_token_spot_price` | PASS | Returns USD spot price with smart routing |
|
|
68
|
-
| `gala_launchpad_fetch_gala_spot_price` | PASS | Returns GALA USD price |
|
|
69
|
-
| `gala_launchpad_fetch_launchpad_token_spot_price` | PASS | Returns launchpad token USD price (deprecated) |
|
|
70
|
-
| `gala_launchpad_fetch_price_history` | PASS | Returns historical price snapshots |
|
|
71
|
-
| `gala_launchpad_fetch_all_price_history` | PASS | Returns all price history with auto-pagination |
|
|
72
|
-
| `gala_launchpad_check_token_name` | PASS | Checks token name availability |
|
|
73
|
-
| `gala_launchpad_check_token_symbol` | PASS | Checks token symbol availability |
|
|
74
|
-
| `gala_launchpad_resolve_vault_address` | PASS | Returns GalaChain vault address |
|
|
75
|
-
| `gala_launchpad_resolve_token_class_key` | PASS | Returns TokenClassKey for token |
|
|
76
|
-
| `gala_launchpad_on_dex_pool_creation` | PASS | Watcher - detects DEX pool creation events |
|
|
77
|
-
| `gala_launchpad_on_launchpad_token_creation` | PASS | Watcher - detects token launch events |
|
|
78
|
-
|
|
79
|
-
---
|
|
80
|
-
|
|
81
|
-
## BALANCE (12 tools) - 12 PASS
|
|
82
|
-
|
|
83
|
-
| Tool | Status | Notes |
|
|
84
|
-
|------|--------|-------|
|
|
85
|
-
| `gala_launchpad_fetch_gala_balance` | PASS | Returns GALA balance |
|
|
86
|
-
| `gala_launchpad_fetch_token_balance` | PASS | Returns specific token balance |
|
|
87
|
-
| `gala_launchpad_fetch_locked_tokens` | PASS | Returns lock details with lockedQuantity and lockedHolds array |
|
|
88
|
-
| `gala_launchpad_fetch_tokens_held` | PASS | Returns tokens held with filtering |
|
|
89
|
-
| `gala_launchpad_fetch_tokens_created` | PASS | Returns tokens created by address |
|
|
90
|
-
| `gala_launchpad_fetch_profile` | PASS | Returns user profile data |
|
|
91
|
-
| `gala_launchpad_update_profile` | PASS | Write operation - updates profile data |
|
|
92
|
-
| `gala_launchpad_fetch_referral_url` | PASS | Returns user's unique referral URL |
|
|
93
|
-
| `gala_launchpad_fetch_referrals` | PASS | Returns paginated list of referred users |
|
|
94
|
-
| `gala_launchpad_fetch_all_referrals` | PASS | Returns all referrals with auto-pagination |
|
|
95
|
-
| `gala_launchpad_fetch_referrals_summary` | PASS | Returns referral count and reward totals (day/month/total) |
|
|
96
|
-
| `gala_launchpad_register_account` | PASS | Registers wallet for trading, returns { exists, walletAlias } |
|
|
97
|
-
|
|
98
|
-
---
|
|
99
|
-
|
|
100
|
-
## TRADING (13 tools) - 13 PASS
|
|
101
|
-
|
|
102
|
-
| Tool | Status | Notes |
|
|
103
|
-
|------|--------|-------|
|
|
104
|
-
| `gala_launchpad_calculate_buy_amount` | PASS | Calculates buy amount with fees |
|
|
105
|
-
| `gala_launchpad_calculate_buy_amount_local` | PASS | Local bonding curve calculation |
|
|
106
|
-
| `gala_launchpad_calculate_buy_amount_external` | PASS | External GalaChain calculation |
|
|
107
|
-
| `gala_launchpad_calculate_sell_amount` | PASS | Calculates sell amount with fees |
|
|
108
|
-
| `gala_launchpad_calculate_sell_amount_local` | PASS | Local sell calculation |
|
|
109
|
-
| `gala_launchpad_calculate_sell_amount_external` | PASS | External sell calculation |
|
|
110
|
-
| `gala_launchpad_calculate_initial_buy` | PASS | Pre-mint phase calculation |
|
|
111
|
-
| `gala_launchpad_calculate_buy_amount_for_graduation` | PASS | Graduation cost calculation |
|
|
112
|
-
| `gala_launchpad_buy_tokens` | PASS | Write operation - executes token purchase |
|
|
113
|
-
| `gala_launchpad_sell_tokens` | PASS | Write operation - executes token sale |
|
|
114
|
-
| `gala_launchpad_graduate_token` | **PASS** | **v5.0.0 MILESTONE** - Full graduation tested! |
|
|
115
|
-
| `gala_launchpad_fetch_trades` | PASS | Returns trade history |
|
|
116
|
-
| `gala_launchpad_get_bundler_transaction_result` | PASS | Returns transaction status |
|
|
117
|
-
|
|
118
|
-
**v5.0.0 Milestone:** `graduate_token` was previously SKIP (irreversible), now **PASS** - successfully graduated token "qatestnine" on STAGE.
|
|
119
|
-
|
|
120
|
-
---
|
|
121
|
-
|
|
122
|
-
## DEX (29 tools) - 29 PASS
|
|
123
|
-
|
|
124
|
-
| Tool | Status | Notes |
|
|
125
|
-
|------|--------|-------|
|
|
126
|
-
| `gala_launchpad_fetch_dex_pools` | PASS | Returns paginated DEX pools (268 pools) |
|
|
127
|
-
| `gala_launchpad_fetch_all_dex_pools` | PASS | Returns all DEX pools with auto-pagination |
|
|
128
|
-
| `gala_launchpad_get_swap_quote_exact_input` | PASS | Quote for exact input amount |
|
|
129
|
-
| `gala_launchpad_get_swap_quote_exact_output` | PASS | Quote for exact output amount |
|
|
130
|
-
| `gala_launchpad_execute_swap` | PASS | Write operation - executes DEX swap (10 GALA → 6.5 ETIME) |
|
|
131
|
-
| `gala_launchpad_get_swap_user_assets` | PASS | Returns wallet token assets with rich metadata |
|
|
132
|
-
| `gala_launchpad_get_all_swap_user_assets` | PASS | Returns all wallet assets with auto-pagination |
|
|
133
|
-
| `gala_launchpad_fetch_available_dex_tokens` | PASS | Paginated token discovery (no wallet required) |
|
|
134
|
-
| `gala_launchpad_fetch_all_available_dex_tokens` | PASS | Auto-paginated token discovery |
|
|
135
|
-
| `gala_launchpad_get_swap_pool_info` | PASS | Returns pool liquidity and fee tiers |
|
|
136
|
-
| `gala_launchpad_get_swap_pool_price` | PASS | Returns pool price/tick/liquidity |
|
|
137
|
-
| `gala_launchpad_fetch_composite_pool_data` | PASS | Returns complete pool state for offline calculations |
|
|
138
|
-
| `gala_launchpad_calculate_dex_pool_quote_local` | PASS | Local DEX quote calculation |
|
|
139
|
-
| `gala_launchpad_calculate_dex_pool_quote_external` | PASS | External DEX quote from GalaChain |
|
|
140
|
-
| `gala_launchpad_get_user_liquidity_positions` | PASS | Returns user's LP positions |
|
|
141
|
-
| `gala_launchpad_get_all_user_liquidity_positions` | PASS | Returns all LP positions with auto-pagination |
|
|
142
|
-
| `gala_launchpad_get_liquidity_position` | PASS | Returns specific position by tick range |
|
|
143
|
-
| `gala_launchpad_get_liquidity_position_by_id` | PASS | Returns position by ID |
|
|
144
|
-
| `gala_launchpad_fetch_swap_position_direct` | PASS | Direct position lookup by compound key |
|
|
145
|
-
| `gala_launchpad_estimate_remove_liquidity` | PASS | Estimates tokens/fees on removal |
|
|
146
|
-
| `gala_launchpad_add_liquidity_by_price` | PASS | Write operation - adds liquidity by price range |
|
|
147
|
-
| `gala_launchpad_add_liquidity_by_ticks` | PASS | Write operation - adds liquidity with tick boundaries |
|
|
148
|
-
| `gala_launchpad_remove_liquidity` | PASS | Write operation - removes liquidity from position |
|
|
149
|
-
| `gala_launchpad_collect_position_fees` | PASS | Write operation - collects accumulated fees |
|
|
150
|
-
| `gala_launchpad_fetch_all_dex_seasons` | PASS | Returns all leaderboard seasons |
|
|
151
|
-
| `gala_launchpad_fetch_current_dex_season` | PASS | Returns current active season |
|
|
152
|
-
| `gala_launchpad_fetch_dex_leaderboard_by_season_id` | PASS | Returns leaderboard by season (100 entries) |
|
|
153
|
-
| `gala_launchpad_fetch_current_dex_leaderboard` | PASS | Returns current leaderboard |
|
|
154
|
-
| `gala_launchpad_fetch_dex_aggregated_volume_summary` | PASS | Returns 1d/7d/30d volume metrics |
|
|
155
|
-
|
|
156
|
-
---
|
|
157
|
-
|
|
158
|
-
## CREATION (4 tools) - 4 PASS
|
|
159
|
-
|
|
160
|
-
| Tool | Status | Notes |
|
|
161
|
-
|------|--------|-------|
|
|
162
|
-
| `gala_launchpad_launch_token` | PASS | Write operation - created "mcpv5test" (MVTX) |
|
|
163
|
-
| `gala_launchpad_upload_token_image` | PASS | Write operation - uploads token image to CDN |
|
|
164
|
-
| `gala_launchpad_upload_profile_image` | PASS | Write operation - uploads profile image to CDN |
|
|
165
|
-
| `gala_launchpad_fetch_launch_token_fee` | PASS | Returns 0.001 GALA fee |
|
|
166
|
-
|
|
167
|
-
---
|
|
168
|
-
|
|
169
|
-
## TRANSFERS (2 tools) - 2 PASS
|
|
170
|
-
|
|
171
|
-
| Tool | Status | Notes |
|
|
172
|
-
|------|--------|-------|
|
|
173
|
-
| `gala_launchpad_transfer_gala` | PASS | Write operation - transfers GALA |
|
|
174
|
-
| `gala_launchpad_transfer_token` | PASS | Write operation - transfers launchpad tokens (10 ANIME) |
|
|
175
|
-
|
|
176
|
-
---
|
|
177
|
-
|
|
178
|
-
## LOCKS (3 tools) - 3 PASS
|
|
179
|
-
|
|
180
|
-
| Tool | Status | Notes |
|
|
181
|
-
|------|--------|-------|
|
|
182
|
-
| `gala_launchpad_lock_tokens` | PASS | Batch lock operation - locked 100 ANIME |
|
|
183
|
-
| `gala_launchpad_unlock_tokens` | PASS | Batch unlock operation - unlocked 50 ANIME |
|
|
184
|
-
| `gala_launchpad_burn_tokens` | PASS | Permanently destroy tokens - burned 5 ANIME (IRREVERSIBLE!) |
|
|
185
|
-
|
|
186
|
-
**Batch API (v4.0.22+):**
|
|
187
|
-
```typescript
|
|
188
|
-
await sdk.lockTokens({ tokens: [{ tokenName: 'anime', amount: '100' }] });
|
|
189
|
-
await sdk.unlockTokens({ tokens: [{ tokenName: 'anime', amount: '50' }] });
|
|
190
|
-
await sdk.burnTokens({ tokens: [{ tokenName: 'anime', amount: '5' }] });
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
---
|
|
194
|
-
|
|
195
|
-
## BRIDGE (31 tools) - 30 PASS, 1 CONFIG-REQUIRED
|
|
196
|
-
|
|
197
|
-
| Tool | Status | Notes |
|
|
198
|
-
|------|--------|-------|
|
|
199
|
-
| `gala_launchpad_get_supported_bridge_tokens` | PASS | Returns 6 tokens: GALA, GWETH, GUSDC, GUSDT, GWBTC, GSOL |
|
|
200
|
-
| `gala_launchpad_estimate_bridge_fee` | PASS | Ethereum: 0.06 GALA, Solana: 38.28 GALA |
|
|
201
|
-
| `gala_launchpad_get_bridge_status` | PASS | Returns bridge transaction status |
|
|
202
|
-
| `gala_launchpad_bridge_out` | PASS | GalaChain → Ethereum/Solana (both tested!) |
|
|
203
|
-
| `gala_launchpad_bridge_in` | PASS | Ethereum/Solana → GalaChain (both tested!) |
|
|
204
|
-
| `gala_launchpad_fetch_ethereum_wallet_native_balance` | PASS | Returns ETH balance (2.55 ETH) |
|
|
205
|
-
| `gala_launchpad_fetch_ethereum_wallet_token_balance` | PASS | Returns ERC-20 balance (38 GALA) |
|
|
206
|
-
| `gala_launchpad_fetch_ethereum_wallet_all_balances` | PASS | Returns ETH + all ERC-20s |
|
|
207
|
-
| `gala_launchpad_get_ethereum_transaction_status` | PASS | Returns Ethereum tx status |
|
|
208
|
-
| `gala_launchpad_fetch_solana_wallet_native_balance` | PASS | Returns SOL balance (0.699 SOL) |
|
|
209
|
-
| `gala_launchpad_fetch_solana_wallet_token_balance` | PASS | Returns SPL token balance (85 GALA) |
|
|
210
|
-
| `gala_launchpad_fetch_solana_wallet_all_balances` | PASS | Returns SOL + all SPL tokens |
|
|
211
|
-
| `gala_launchpad_get_solana_transaction_status` | PASS | Returns Solana tx status |
|
|
212
|
-
| `gala_launchpad_create_solana_wallet` | PASS | Creates random Solana keypair |
|
|
213
|
-
| `gala_launchpad_request_solana_devnet_airdrop` | CONFIG | Rate limited (1 SOL/day) - not a bug |
|
|
214
|
-
| `gala_launchpad_fetch_bridgeable_tokens_by_network` | PASS | Paginated bridgeable token discovery |
|
|
215
|
-
| `gala_launchpad_fetch_all_bridgeable_tokens_by_network` | PASS | Auto-paginated with caching (ETH: 33, SOL: 16) |
|
|
216
|
-
| `gala_launchpad_fetch_all_tokens_bridgeable_to_ethereum` | PASS | Returns 33 Ethereum-bridgeable tokens |
|
|
217
|
-
| `gala_launchpad_fetch_all_tokens_bridgeable_to_solana` | PASS | Returns 16 Solana-bridgeable tokens |
|
|
218
|
-
| `gala_launchpad_is_token_bridgeable_to_network` | PASS | Boolean check with contract address |
|
|
219
|
-
| `gala_launchpad_is_token_bridgeable_to_ethereum` | PASS | Returns Ethereum contract address |
|
|
220
|
-
| `gala_launchpad_is_token_bridgeable_to_solana` | PASS | Returns Solana mint address |
|
|
221
|
-
| `gala_launchpad_fetch_wrappable_tokens` | PASS | Paginated wrappable token pairs (2 tokens) |
|
|
222
|
-
| `gala_launchpad_fetch_all_wrappable_tokens` | PASS | Auto-paginated with caching |
|
|
223
|
-
| `gala_launchpad_get_wrappable_token` | PASS | Lookup by tokenId |
|
|
224
|
-
| `gala_launchpad_get_wrap_counterpart` | PASS | MUSIC → GMUSIC, GMUSIC → MUSIC |
|
|
225
|
-
| `gala_launchpad_is_token_wrappable` | PASS | Boolean check with counterpart info |
|
|
226
|
-
| `gala_launchpad_wrap_token` | PASS | Wrapped 1 MUSIC → GMUSIC |
|
|
227
|
-
| `gala_launchpad_unwrap_token` | PASS | Unwrapped 1 GMUSIC → MUSIC |
|
|
228
|
-
| `gala_launchpad_estimate_wrap_fee` | PASS | Returns 0 GALA fee |
|
|
229
|
-
| `gala_launchpad_estimate_unwrap_fee` | PASS | Returns 0 GALA fee |
|
|
230
|
-
| `gala_launchpad_get_wrap_status` | PASS | Returns wrap/unwrap transaction status |
|
|
231
|
-
|
|
232
|
-
---
|
|
233
|
-
|
|
234
|
-
## Notes
|
|
235
|
-
|
|
236
|
-
### v5.0.0 Breaking Changes
|
|
237
|
-
- **Token symbol validation**: Must be UPPERCASE letters only (no numbers)
|
|
238
|
-
- **tokenId format required**: Bare token symbols rejected, use `Collection|Category|Type|AdditionalKey` format
|
|
239
|
-
- See SDK README for migration guide
|
|
240
|
-
|
|
241
|
-
### Bridge Operations
|
|
242
|
-
- **Ethereum:** Full support - bridge_out and bridge_in both work
|
|
243
|
-
- **Solana:** Full support - bridge_out and bridge_in both work
|
|
244
|
-
- **Wrap/Unwrap:** MUSIC ↔ GMUSIC working (cross-channel bridge within GalaChain)
|
|
245
|
-
- **Custom RPC:** Supports `ethereumRpcUrl` and `solanaRpcUrl` config options
|
|
246
|
-
|
|
247
|
-
### Known Issues
|
|
248
|
-
- `request_solana_devnet_airdrop`: Rate limited to 1 SOL/day - this is devnet behavior, not a bug
|
|
249
|
-
|
|
250
|
-
### Fixed Issues (SDK 5.0.1)
|
|
251
|
-
- **FIXED:** `remove_liquidity` / `collect_position_fees` pagination bug - Position lookup now uses auto-pagination to find positions beyond page 1 (previously limited to first 10 positions)
|
|
252
|
-
|
|
253
|
-
### DEX Token Format
|
|
254
|
-
DEX pool operations require full token class key format: `GALA|Unit|none|none` (not just "GALA")
|
|
255
|
-
|
|
256
|
-
---
|
|
257
|
-
|
|
258
|
-
## Change History
|
|
259
|
-
|
|
260
|
-
| Version | Date | Changes |
|
|
261
|
-
|---------|------|---------|
|
|
262
|
-
| **v5.0.0** | **2025-12-09** | **MAJOR RELEASE** - Full comprehensive test with ALL write ops including graduation! |
|
|
263
|
-
| v4.0.22-beta.5 | 2025-12-09 | Added 4 tools: `register_account`, `fetch_referrals`, `fetch_all_referrals`, `fetch_referrals_summary` (132 tools) |
|
|
264
|
-
| v4.0.22-beta.2 | 2025-12-09 | `get_config` returns `gasFee: "1"` |
|
|
265
|
-
| v4.0.22-beta.1 | 2025-12-09 | Batch lock/unlock + burn_tokens (128 tools) |
|
|
266
|
-
| v4.0.20-beta.2 | 2025-12-09 | `bridge_in` from Solana fixed with retry logic |
|
|
267
|
-
| v4.0.20-beta.1 | 2025-12-09 | Custom RPC URL support, Helius RPC fixes Solana queries |
|
|
268
|
-
| v4.0.20-beta.0 | 2025-12-08 | Wrap/unwrap execution working, `get_bridge_status` fixed |
|
|
269
|
-
| v4.0.17-beta.6 | 2025-12-08 | 5 wrappable token discovery tools |
|
|
270
|
-
| v4.0.17-beta.1 | 2025-12-07 | Solana balance queries working, bridge_out tested |
|
|
271
|
-
| v4.0.15-beta.2 | 2025-12-06 | Key derivation + bridgeable token queries (112 tools) |
|
|
272
|
-
| v4.0.7-beta.7 | 2025-12-05 | Fixed `estimate_bridge_fee` URL |
|
|
273
|
-
| v4.0.7-beta.6 | 2025-12-05 | 11 bridge tools for cross-chain operations |
|
|
274
|
-
|
|
275
|
-
---
|
|
276
|
-
|
|
277
|
-
## v5.0.0 Test Highlights
|
|
278
|
-
|
|
279
|
-
### Write Operations Tested
|
|
280
|
-
|
|
281
|
-
| Operation | Tool | Transaction/Result |
|
|
282
|
-
|-----------|------|-------------------|
|
|
283
|
-
| Token Graduation | `graduate_token` | ✅ Graduated "qatestnine" to DEX |
|
|
284
|
-
| DEX Swap | `execute_swap` | TX: `2a4a40ad-4fc6-4e47-a7ed-0ba3bb587f47` (10 GALA → 6.5 ETIME) |
|
|
285
|
-
| Add Liquidity (Price) | `add_liquidity_by_price` | TX: `89870d26-ef4f-4377-a21a-0c8cbfbe7bfa` |
|
|
286
|
-
| Add Liquidity (Ticks) | `add_liquidity_by_ticks` | TX: `b4f24f6d-fd8a-455b-aa7d-a52a33da5d68` |
|
|
287
|
-
| Token Launch | `launch_token` | TX: `73c41365-9e61-4c56-a391-0b4d11ea4680` ("mcpv5test" / MVTX) |
|
|
288
|
-
| Transfer GALA | `transfer_gala` | ✅ "gala-transfer-successful" |
|
|
289
|
-
| Transfer Token | `transfer_token` | ✅ 10 ANIME transferred |
|
|
290
|
-
| Lock Tokens | `lock_tokens` | ✅ 100 ANIME locked |
|
|
291
|
-
| Unlock Tokens | `unlock_tokens` | ✅ 50 ANIME unlocked |
|
|
292
|
-
| Burn Tokens | `burn_tokens` | ✅ 5 ANIME burned (IRREVERSIBLE!) |
|
|
293
|
-
| Wrap Token | `wrap_token` | TX: `82b6fad5...` (1 MUSIC → GMUSIC) |
|
|
294
|
-
| Unwrap Token | `unwrap_token` | TX: `67cec436...` (1 GMUSIC → MUSIC) |
|
|
295
|
-
| Bridge Out (ETH) | `bridge_out` | TX: `966d21c8...` (1 GALA → Ethereum) |
|
|
296
|
-
| Bridge Out (SOL) | `bridge_out` | TX: `1285b629...` (1 GALA → Solana) |
|
|
297
|
-
| Bridge In (ETH) | `bridge_in` | TX: `0xcf855a8e...` (1 GALA from Ethereum) |
|
|
298
|
-
| Bridge In (SOL) | `bridge_in` | TX: `4tYaERX8...` (1 GALA from Solana) |
|
|
299
|
-
| Create Wallet | `create_wallet` | ✅ `0x4340747AB7501D89ca8e6D48fb878f46000D9BA7` |
|
|
300
|
-
| Create Solana Wallet | `create_solana_wallet` | ✅ `SxQRguAvWj7nWHgS6gh4764d5HKsYect1ovYGdfHZWE` |
|
|
301
|
-
|
|
302
|
-
### Comprehensive Coverage
|
|
303
|
-
- **132 tools** - ALL tested
|
|
304
|
-
- **131 PASS** - 100% of testable tools
|
|
305
|
-
- **0 BUG** - All bugs fixed in SDK 5.0.1!
|
|
306
|
-
- **1 CONFIG-REQUIRED** - `request_solana_devnet_airdrop` (rate limited, expected)
|
|
307
|
-
- **0 SKIP** - Even `graduate_token` now tested!
|
|
308
|
-
|
|
309
|
-
---
|
|
310
|
-
|
|
311
|
-
## Test Environment
|
|
312
|
-
|
|
313
|
-
- **Environment:** STAGE (staging)
|
|
314
|
-
- **SDK Version:** 5.0.0
|
|
315
|
-
- **MCP Server Version:** 5.0.0
|
|
316
|
-
- **Test Wallet:** Configured via PRIVATE_KEY environment variable
|
|
317
|
-
- **Test Date:** 2025-12-09
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Jest Configuration for Integration Tests
|
|
3
|
-
*
|
|
4
|
-
* Integration tests use real SDK instances and make actual API calls.
|
|
5
|
-
* Requires valid PRIVATE_KEY environment variable.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
module.exports = {
|
|
9
|
-
// Use ts-jest for TypeScript support
|
|
10
|
-
preset: 'ts-jest',
|
|
11
|
-
|
|
12
|
-
// Node.js environment (MCP server is server-side)
|
|
13
|
-
testEnvironment: 'node',
|
|
14
|
-
|
|
15
|
-
// Integration test file location patterns
|
|
16
|
-
roots: ['<rootDir>/src'],
|
|
17
|
-
testMatch: ['**/__tests__/integration/**/*.integration.test.ts'],
|
|
18
|
-
|
|
19
|
-
// Coverage collection
|
|
20
|
-
collectCoverageFrom: [
|
|
21
|
-
'src/tools/**/*.ts',
|
|
22
|
-
'!src/tools/**/__tests__/**',
|
|
23
|
-
'!src/**/*.d.ts',
|
|
24
|
-
],
|
|
25
|
-
|
|
26
|
-
// Coverage reporters
|
|
27
|
-
coverageReporters: ['text', 'text-summary', 'html', 'lcov'],
|
|
28
|
-
|
|
29
|
-
// Module path aliases
|
|
30
|
-
moduleNameMapper: {
|
|
31
|
-
'^@/(.*}$': '<rootDir>/src/$1',
|
|
32
|
-
'^(\\.{1,2}/.*)\\.js$': '$1', // Map .js imports to .ts files
|
|
33
|
-
},
|
|
34
|
-
|
|
35
|
-
// Transform files with ts-jest
|
|
36
|
-
transform: {
|
|
37
|
-
'^.+\\.ts$': [
|
|
38
|
-
'ts-jest',
|
|
39
|
-
{
|
|
40
|
-
tsconfig: {
|
|
41
|
-
module: 'commonjs',
|
|
42
|
-
strict: true,
|
|
43
|
-
esModuleInterop: true,
|
|
44
|
-
skipLibCheck: true,
|
|
45
|
-
},
|
|
46
|
-
},
|
|
47
|
-
],
|
|
48
|
-
},
|
|
49
|
-
|
|
50
|
-
// File extensions to consider
|
|
51
|
-
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json'],
|
|
52
|
-
|
|
53
|
-
// Ignore patterns
|
|
54
|
-
testPathIgnorePatterns: ['/node_modules/', '/dist/', '/.history/'],
|
|
55
|
-
|
|
56
|
-
// Setup files (if needed for global test setup)
|
|
57
|
-
// setupFilesAfterEnv: ['<rootDir>/src/__tests__/setup.ts'],
|
|
58
|
-
|
|
59
|
-
// Clear mocks between tests
|
|
60
|
-
clearMocks: true,
|
|
61
|
-
|
|
62
|
-
// Verbose output
|
|
63
|
-
verbose: true,
|
|
64
|
-
|
|
65
|
-
// Integration tests may take longer
|
|
66
|
-
testTimeout: 60000, // 60 seconds
|
|
67
|
-
|
|
68
|
-
// Maximum worker threads (optimize for CI/CD)
|
|
69
|
-
maxWorkers: '50%',
|
|
70
|
-
};
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Version Injection Script
|
|
3
|
-
*
|
|
4
|
-
* Reads the MCP server version from package.json and generates a version constant file.
|
|
5
|
-
* This runs as a prebuild step to ensure version is always in sync.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import { readFileSync, writeFileSync, mkdirSync } from 'fs';
|
|
9
|
-
import { dirname, join } from 'path';
|
|
10
|
-
|
|
11
|
-
// Get package version from package.json
|
|
12
|
-
const packageJsonPath = join(dirname(__filename), '../package.json');
|
|
13
|
-
const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
|
|
14
|
-
const mcpVersion = packageJson.version;
|
|
15
|
-
|
|
16
|
-
// Create the generated constants file
|
|
17
|
-
const generatedDir = join(dirname(__filename), '../src/generated');
|
|
18
|
-
mkdirSync(generatedDir, { recursive: true });
|
|
19
|
-
|
|
20
|
-
const versionFile = join(generatedDir, 'version.ts');
|
|
21
|
-
const versionContent = `/**
|
|
22
|
-
* AUTO-GENERATED VERSION FILE
|
|
23
|
-
* This file is generated by scripts/inject-version.ts during build
|
|
24
|
-
* DO NOT EDIT MANUALLY
|
|
25
|
-
*/
|
|
26
|
-
|
|
27
|
-
export const MCP_SERVER_VERSION = '${mcpVersion}';
|
|
28
|
-
`;
|
|
29
|
-
|
|
30
|
-
writeFileSync(versionFile, versionContent, 'utf-8');
|
|
31
|
-
console.log(`✓ Injected MCP version ${mcpVersion} to ${versionFile}`);
|
|
@@ -1,250 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env tsx
|
|
2
|
-
/**
|
|
3
|
-
* MCP Test Analysis Validator
|
|
4
|
-
*
|
|
5
|
-
* This script parses MCP_TEST_ANALYSIS.md and FAILS if:
|
|
6
|
-
* 1. Any tools are marked as BUG or FAIL
|
|
7
|
-
* 2. The summary counts don't match the detailed tables
|
|
8
|
-
* 3. Pass rate is not 100% (excluding CONFIG-REQUIRED)
|
|
9
|
-
*
|
|
10
|
-
* Run this BEFORE any release to ensure no known bugs are shipped.
|
|
11
|
-
*
|
|
12
|
-
* Usage:
|
|
13
|
-
* npm run validate:mcp-tests
|
|
14
|
-
* npx tsx scripts/validate-mcp-test-analysis.ts
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
import * as fs from 'fs';
|
|
18
|
-
import * as path from 'path';
|
|
19
|
-
|
|
20
|
-
interface CategoryStats {
|
|
21
|
-
name: string;
|
|
22
|
-
total: number;
|
|
23
|
-
pass: number;
|
|
24
|
-
fail: number;
|
|
25
|
-
skip: number;
|
|
26
|
-
bug: number;
|
|
27
|
-
configRequired: number;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
interface ValidationResult {
|
|
31
|
-
success: boolean;
|
|
32
|
-
errors: string[];
|
|
33
|
-
warnings: string[];
|
|
34
|
-
stats: {
|
|
35
|
-
totalTools: number;
|
|
36
|
-
totalPass: number;
|
|
37
|
-
totalFail: number;
|
|
38
|
-
totalBug: number;
|
|
39
|
-
totalSkip: number;
|
|
40
|
-
totalConfigRequired: number;
|
|
41
|
-
passRate: number;
|
|
42
|
-
};
|
|
43
|
-
categories: CategoryStats[];
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
function parseMarkdownFile(filePath: string): string {
|
|
47
|
-
if (!fs.existsSync(filePath)) {
|
|
48
|
-
throw new Error(`MCP_TEST_ANALYSIS.md not found at: ${filePath}`);
|
|
49
|
-
}
|
|
50
|
-
return fs.readFileSync(filePath, 'utf-8');
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
function extractSummaryTable(content: string): CategoryStats[] {
|
|
54
|
-
const categories: CategoryStats[] = [];
|
|
55
|
-
|
|
56
|
-
// Find the summary table
|
|
57
|
-
const summaryMatch = content.match(/\| Category \| Total \| Pass \| Fail \| Skip \| Config-Required \|[\s\S]*?\n\n/);
|
|
58
|
-
if (!summaryMatch) {
|
|
59
|
-
throw new Error('Could not find summary table in MCP_TEST_ANALYSIS.md');
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
const tableLines = summaryMatch[0].split('\n').filter(line => line.startsWith('|') && !line.includes('---'));
|
|
63
|
-
|
|
64
|
-
for (const line of tableLines) {
|
|
65
|
-
// Skip header row
|
|
66
|
-
if (line.includes('Category') || line.includes('TOTAL')) continue;
|
|
67
|
-
|
|
68
|
-
const cells = line.split('|').map(c => c.trim()).filter(Boolean);
|
|
69
|
-
if (cells.length >= 6) {
|
|
70
|
-
categories.push({
|
|
71
|
-
name: cells[0],
|
|
72
|
-
total: parseInt(cells[1], 10) || 0,
|
|
73
|
-
pass: parseInt(cells[2], 10) || 0,
|
|
74
|
-
fail: parseInt(cells[3], 10) || 0,
|
|
75
|
-
skip: parseInt(cells[4], 10) || 0,
|
|
76
|
-
bug: 0, // Not in summary table, check details
|
|
77
|
-
configRequired: parseInt(cells[5], 10) || 0,
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
return categories;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
function countBugsInContent(content: string): number {
|
|
86
|
-
// Count explicit BUG markers in tool status column (| BUG | or | **BUG** |)
|
|
87
|
-
// Must be a standalone cell, not part of narrative text
|
|
88
|
-
const bugMatches = content.match(/\|\s*\*\*BUG\*\*\s*\||\|\s*BUG\s*\|/g);
|
|
89
|
-
return bugMatches ? bugMatches.length : 0;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
function countFailsInContent(content: string): number {
|
|
93
|
-
// Count explicit FAIL markers in tool status column (| FAIL | or | **FAIL** |)
|
|
94
|
-
// Must be a standalone cell, not part of narrative text
|
|
95
|
-
const failMatches = content.match(/\|\s*\*\*FAIL\*\*\s*\||\|\s*FAIL\s*\|/g);
|
|
96
|
-
return failMatches ? failMatches.length : 0;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
function countSkipsInContent(content: string): number {
|
|
100
|
-
// Count explicit SKIP markers in tool status column (| SKIP | or | **SKIP** |)
|
|
101
|
-
// Must be a standalone cell, not part of narrative text
|
|
102
|
-
const skipMatches = content.match(/\|\s*\*\*SKIP\*\*\s*\||\|\s*SKIP\s*\|/g);
|
|
103
|
-
return skipMatches ? skipMatches.length : 0;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
function checkSectionHeaders(content: string): string[] {
|
|
107
|
-
const errors: string[] = [];
|
|
108
|
-
|
|
109
|
-
// Check for sections that mention BUG counts in headers
|
|
110
|
-
const sectionHeaders = content.match(/## [A-Z]+ \(\d+ tools?\).*(?:BUG|FAIL)/gi);
|
|
111
|
-
if (sectionHeaders) {
|
|
112
|
-
for (const header of sectionHeaders) {
|
|
113
|
-
errors.push(`Section header indicates bugs: "${header}"`);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
return errors;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
function validateMcpTestAnalysis(): ValidationResult {
|
|
121
|
-
const filePath = path.join(__dirname, '..', 'MCP_TEST_ANALYSIS.md');
|
|
122
|
-
const content = parseMarkdownFile(filePath);
|
|
123
|
-
|
|
124
|
-
const errors: string[] = [];
|
|
125
|
-
const warnings: string[] = [];
|
|
126
|
-
|
|
127
|
-
// Parse summary table
|
|
128
|
-
const categories = extractSummaryTable(content);
|
|
129
|
-
|
|
130
|
-
// Count bugs and fails in detail sections
|
|
131
|
-
const totalBugsInContent = countBugsInContent(content);
|
|
132
|
-
const totalFailsInContent = countFailsInContent(content);
|
|
133
|
-
const totalSkipsInContent = countSkipsInContent(content);
|
|
134
|
-
|
|
135
|
-
// Check section headers for bug indicators
|
|
136
|
-
const headerErrors = checkSectionHeaders(content);
|
|
137
|
-
errors.push(...headerErrors);
|
|
138
|
-
|
|
139
|
-
// Calculate totals from summary table
|
|
140
|
-
const stats = {
|
|
141
|
-
totalTools: categories.reduce((sum, c) => sum + c.total, 0),
|
|
142
|
-
totalPass: categories.reduce((sum, c) => sum + c.pass, 0),
|
|
143
|
-
totalFail: categories.reduce((sum, c) => sum + c.fail, 0) + totalFailsInContent,
|
|
144
|
-
totalBug: totalBugsInContent,
|
|
145
|
-
totalSkip: categories.reduce((sum, c) => sum + c.skip, 0) + totalSkipsInContent,
|
|
146
|
-
totalConfigRequired: categories.reduce((sum, c) => sum + c.configRequired, 0),
|
|
147
|
-
passRate: 0,
|
|
148
|
-
};
|
|
149
|
-
|
|
150
|
-
// Calculate pass rate (excluding config-required)
|
|
151
|
-
const testableTools = stats.totalTools - stats.totalConfigRequired;
|
|
152
|
-
stats.passRate = testableTools > 0 ? (stats.totalPass / testableTools) * 100 : 0;
|
|
153
|
-
|
|
154
|
-
// CRITICAL VALIDATION: No bugs allowed!
|
|
155
|
-
if (stats.totalBug > 0) {
|
|
156
|
-
errors.push(`RELEASE BLOCKER: ${stats.totalBug} tool(s) marked as BUG - fix before release!`);
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
// CRITICAL VALIDATION: No fails allowed!
|
|
160
|
-
if (stats.totalFail > 0) {
|
|
161
|
-
errors.push(`RELEASE BLOCKER: ${stats.totalFail} tool(s) marked as FAIL - fix before release!`);
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
// WARNING: Skips should be documented
|
|
165
|
-
if (stats.totalSkip > 0) {
|
|
166
|
-
warnings.push(`${stats.totalSkip} tool(s) marked as SKIP - ensure these are intentionally skipped`);
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
// CRITICAL VALIDATION: Pass rate must be 100%
|
|
170
|
-
if (stats.passRate < 100 && testableTools > 0) {
|
|
171
|
-
errors.push(`RELEASE BLOCKER: Pass rate is ${stats.passRate.toFixed(1)}%, must be 100%`);
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
// Check for inconsistencies between summary and content
|
|
175
|
-
const contentPassCount = (content.match(/\|\s*PASS\s*\|/gi) || []).length;
|
|
176
|
-
if (Math.abs(contentPassCount - stats.totalPass) > 5) { // Allow some tolerance for PASS in notes
|
|
177
|
-
warnings.push(`Potential inconsistency: Summary shows ${stats.totalPass} PASS, content has ~${contentPassCount} PASS markers`);
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
return {
|
|
181
|
-
success: errors.length === 0,
|
|
182
|
-
errors,
|
|
183
|
-
warnings,
|
|
184
|
-
stats,
|
|
185
|
-
categories,
|
|
186
|
-
};
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
// Main execution
|
|
190
|
-
function main(): void {
|
|
191
|
-
console.log('');
|
|
192
|
-
console.log('========================================');
|
|
193
|
-
console.log(' MCP Test Analysis Validator');
|
|
194
|
-
console.log(' Release Gate Check');
|
|
195
|
-
console.log('========================================');
|
|
196
|
-
console.log('');
|
|
197
|
-
|
|
198
|
-
try {
|
|
199
|
-
const result = validateMcpTestAnalysis();
|
|
200
|
-
|
|
201
|
-
// Print stats
|
|
202
|
-
console.log('Summary:');
|
|
203
|
-
console.log(` Total Tools: ${result.stats.totalTools}`);
|
|
204
|
-
console.log(` Pass: ${result.stats.totalPass}`);
|
|
205
|
-
console.log(` Fail: ${result.stats.totalFail}`);
|
|
206
|
-
console.log(` Bug: ${result.stats.totalBug}`);
|
|
207
|
-
console.log(` Skip: ${result.stats.totalSkip}`);
|
|
208
|
-
console.log(` Config-Required: ${result.stats.totalConfigRequired}`);
|
|
209
|
-
console.log(` Pass Rate: ${result.stats.passRate.toFixed(1)}%`);
|
|
210
|
-
console.log('');
|
|
211
|
-
|
|
212
|
-
// Print warnings
|
|
213
|
-
if (result.warnings.length > 0) {
|
|
214
|
-
console.log('Warnings:');
|
|
215
|
-
for (const warning of result.warnings) {
|
|
216
|
-
console.log(` - ${warning}`);
|
|
217
|
-
}
|
|
218
|
-
console.log('');
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
// Print errors
|
|
222
|
-
if (result.errors.length > 0) {
|
|
223
|
-
console.log('ERRORS (RELEASE BLOCKED):');
|
|
224
|
-
for (const error of result.errors) {
|
|
225
|
-
console.log(` - ${error}`);
|
|
226
|
-
}
|
|
227
|
-
console.log('');
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
// Final result
|
|
231
|
-
if (result.success) {
|
|
232
|
-
console.log('========================================');
|
|
233
|
-
console.log(' VALIDATION PASSED');
|
|
234
|
-
console.log(' No known bugs - safe to release!');
|
|
235
|
-
console.log('========================================');
|
|
236
|
-
process.exit(0);
|
|
237
|
-
} else {
|
|
238
|
-
console.log('========================================');
|
|
239
|
-
console.log(' VALIDATION FAILED');
|
|
240
|
-
console.log(' DO NOT RELEASE WITH KNOWN BUGS!');
|
|
241
|
-
console.log('========================================');
|
|
242
|
-
process.exit(1);
|
|
243
|
-
}
|
|
244
|
-
} catch (error) {
|
|
245
|
-
console.error('Validation error:', error);
|
|
246
|
-
process.exit(1);
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
main();
|