@gala-chain/launchpad-mcp-server 8.0.0 → 8.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,5 +3,5 @@
3
3
  * This file is generated by scripts/inject-version.ts during build
4
4
  * DO NOT EDIT MANUALLY
5
5
  */
6
- export declare const MCP_SERVER_VERSION = "8.0.0";
6
+ export declare const MCP_SERVER_VERSION = "8.0.1";
7
7
  //# sourceMappingURL=version.d.ts.map
@@ -3,5 +3,5 @@
3
3
  * This file is generated by scripts/inject-version.ts during build
4
4
  * DO NOT EDIT MANUALLY
5
5
  */
6
- export const MCP_SERVER_VERSION = '8.0.0';
6
+ export const MCP_SERVER_VERSION = '8.0.1';
7
7
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/dex/index.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAG1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAwBlD,eAAO,MAAM,0BAA0B,EAAE,OAKvC,CAAC;AAEH,eAAO,MAAM,2BAA2B,EAAE,OAKxC,CAAC;AAEH,eAAO,MAAM,8BAA8B,EAAE,OAG3C,CAAC;AAEH,eAAO,MAAM,iCAAiC,EAAE,OAG9C,CAAC;AAEH,eAAO,MAAM,eAAe,EAAE,OA8C7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,OAuB/B,CAAC;AAgBF,eAAO,MAAM,qBAAqB,EAAE,OAkBnC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,OA2BtC,CAAC;AAmBF,eAAO,MAAM,QAAQ,EAAE,OAAO,EAS7B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/dex/index.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAG1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAyBlD,eAAO,MAAM,0BAA0B,EAAE,OAKvC,CAAC;AAEH,eAAO,MAAM,2BAA2B,EAAE,OAKxC,CAAC;AAEH,eAAO,MAAM,8BAA8B,EAAE,OAG3C,CAAC;AAEH,eAAO,MAAM,iCAAiC,EAAE,OAG9C,CAAC;AAEH,eAAO,MAAM,eAAe,EAAE,OA8C7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,OAuB/B,CAAC;AA0CF,eAAO,MAAM,qBAAqB,EAAE,OAkBnC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,OA2BtC,CAAC;AAmBF,eAAO,MAAM,QAAQ,EAAE,OAAO,EAS7B,CAAC"}
@@ -9,6 +9,7 @@ const SWAP_UNIQUE_KEY_SCHEMA = {
9
9
  };
10
10
  import { formatSuccess } from '../../utils/response-formatter.js';
11
11
  import { withErrorHandling } from '../../utils/error-handler.js';
12
+ import { classifyDexCode, extractErrorDetails } from '../../utils/error-templates.js';
12
13
  import { createDexPoolQuoteTool, createSwapQuoteTool, formatDexSubmission, mapTokenAssets, } from './helpers.js';
13
14
  export const getSwapQuoteExactInputTool = createSwapQuoteTool({
14
15
  name: 'gala_launchpad_get_swap_quote_exact_input',
@@ -108,13 +109,34 @@ export const getSwapResultTool = {
108
109
  * later; a chain rejection is terminal and is rethrown unchanged.
109
110
  */
110
111
  function withUniqueKey(error, uniqueKey) {
111
- if (!(error instanceof Error))
112
+ // The swap is already queued here (we hold its uniqueKey), so like gswap-sdk's
113
+ // classifyFailure(error, { afterQueued: true }) only the chain's own verdict is terminal.
114
+ // Every other failure, recognized code or not, may still apply: never invite a resubmit.
115
+ if (isChainVerdict(error))
112
116
  return error;
113
- const code = error.code;
114
- if (code !== 'CONFIRMATION_TIMEOUT' && code !== 'SUBMISSION_OUTCOME_UNKNOWN')
115
- return error;
116
- return new Error(`${error.message} The swap outcome is still unknown for uniqueKey ${uniqueKey}; ` +
117
- 'resolve it with gala_launchpad_get_swap_result instead of submitting again.');
117
+ return new UnresolvedSwapError(error, uniqueKey);
118
+ }
119
+ function isChainVerdict(error) {
120
+ return classifyDexCode(extractErrorDetails(error)) === 'rejected';
121
+ }
122
+ /**
123
+ * A swap whose outcome is unknown, carrying the original error's `code` (so formatError selects
124
+ * the do-not-resubmit tip from the code, not from the English text), the uniqueKey to resolve it
125
+ * with, and the original error as `cause`.
126
+ */
127
+ class UnresolvedSwapError extends Error {
128
+ code;
129
+ uniqueKey;
130
+ /** Read by extractErrorDetails: the failing step ran after the swap was queued. */
131
+ afterQueued = true;
132
+ constructor(cause, uniqueKey) {
133
+ const causeMessage = cause instanceof Error ? cause.message : String(cause);
134
+ super(`${causeMessage} The swap outcome is still unknown for uniqueKey ${uniqueKey}; ` +
135
+ 'resolve it with gala_launchpad_get_swap_result instead of submitting again.', { cause });
136
+ this.name = 'UnresolvedSwapError';
137
+ this.code = extractErrorDetails(cause).code;
138
+ this.uniqueKey = uniqueKey;
139
+ }
118
140
  }
119
141
  export const getSwapUserAssetsTool = {
120
142
  name: 'gala_launchpad_get_swap_user_assets',
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/dex/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/dex/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/utils/error-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGvD;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CAkB3D;AA+BD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,SAAS,OAAO,EAAE,EACvD,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,GACtE,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,eAAe,CAAC,CAQ9C"}
1
+ {"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/utils/error-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGvD;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CAmB3D;AA+BD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,SAAS,OAAO,EAAE,EACvD,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,GACtE,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,eAAe,CAAC,CAQ9C"}
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * @see src/utils/error-templates.ts
8
8
  */
9
- import { enhanceErrorMessage } from './error-templates.js';
9
+ import { enhanceErrorMessage, extractErrorDetails } from './error-templates.js';
10
10
  /**
11
11
  * Format error for MCP response with AI-friendly tips
12
12
  */
@@ -15,7 +15,8 @@ export function formatError(error) {
15
15
  // Sanitize sensitive information from error messages
16
16
  const sanitized = sanitizeError(errorMessage);
17
17
  // Add AI-friendly tips using centralized templates
18
- const withTips = enhanceErrorMessage(sanitized);
18
+ // A known gswap-sdk `code` selects the tip; the message regexes are only the fallback.
19
+ const withTips = enhanceErrorMessage(sanitized, extractErrorDetails(error));
19
20
  return {
20
21
  content: [
21
22
  {
@@ -1 +1 @@
1
- {"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../src/utils/error-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE5E,qDAAqD;IACrD,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;IAE9C,mDAAmD;IACnD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAEhD,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,UAAU,QAAQ,EAAE;aAC3B;SACF;QACD,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,OAAe;IACpC,oCAAoC;IACpC,IAAI,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;IAE/D,gDAAgD;IAChD,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,yBAAyB,EAAE,OAAO,CAAC,CAAC;IAElE,8CAA8C;IAC9C,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;IAE/D,iEAAiE;IACjE,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,uDAAuD,EAAE,gBAAgB,CAAC,CAAC;IAEzG,uBAAuB;IACvB,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,8BAA8B,EAAE,cAAc,CAAC,CAAC;IAE9E,sFAAsF;IACtF,uFAAuF;IACvF,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,sCAAsC,EAAE,WAAW,CAAC,CAAC;IAEnF,yFAAyF;IACzF,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,2DAA2D,EAAE,SAAS,CAAC,CAAC;IAEtG,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAuE;IAEvE,OAAO,KAAK,EAAE,GAAG,IAAW,EAA4B,EAAE;QACxD,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../src/utils/error-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhF;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE5E,qDAAqD;IACrD,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;IAE9C,mDAAmD;IACnD,uFAAuF;IACvF,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;IAE5E,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,UAAU,QAAQ,EAAE;aAC3B;SACF;QACD,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,OAAe;IACpC,oCAAoC;IACpC,IAAI,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;IAE/D,gDAAgD;IAChD,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,yBAAyB,EAAE,OAAO,CAAC,CAAC;IAElE,8CAA8C;IAC9C,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;IAE/D,iEAAiE;IACjE,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,uDAAuD,EAAE,gBAAgB,CAAC,CAAC;IAEzG,uBAAuB;IACvB,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,8BAA8B,EAAE,cAAc,CAAC,CAAC;IAE9E,sFAAsF;IACtF,uFAAuF;IACvF,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,sCAAsC,EAAE,WAAW,CAAC,CAAC;IAEnF,yFAAyF;IACzF,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,2DAA2D,EAAE,SAAS,CAAC,CAAC;IAEtG,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAuE;IAEvE,OAAO,KAAK,EAAE,GAAG,IAAW,EAA4B,EAAE;QACxD,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -83,6 +83,38 @@ export declare const GENERIC_VALIDATION_ERROR: ErrorTemplate;
83
83
  * All error templates in priority order (checked sequentially)
84
84
  */
85
85
  export declare const ERROR_TEMPLATES: ErrorTemplate[];
86
+ /**
87
+ * What the MCP layer reads from a thrown error, by duck typing (gswap-sdk 1.0.x and 1.2 both
88
+ * expose a string `code`; 1.2 adds flat `params`, `status` and `uniqueKey`). Nothing here is
89
+ * parsed from English message text.
90
+ */
91
+ export interface ErrorDetails {
92
+ /** The error's string `code`; numeric codes (EIP-1193 4001) and non-strings are ignored. */
93
+ code?: string;
94
+ /** HTTP status, from `error.status` or `params.status`. */
95
+ status?: number;
96
+ /** The swap's uniqueKey when the error carries one in the swap backend's key format. */
97
+ uniqueKey?: string;
98
+ /** False when the error says it came from a read (`GSwapSDKError.write === false`). */
99
+ write?: boolean;
100
+ /** Server/chain text (`params.serverMessage`, `chainMessage`): only used to detect slippage. */
101
+ chainText?: string;
102
+ /** True when the failing step ran after the swap was queued (set by this server's own wrapper). */
103
+ afterQueued?: boolean;
104
+ }
105
+ /**
106
+ * Reads the code-first fields from a thrown value. One level of `cause` is followed so a wrapper
107
+ * that kept the original error as its cause does not hide the code.
108
+ */
109
+ export declare function extractErrorDetails(error: unknown): ErrorDetails;
110
+ type CodedOutcome = 'unknown' | 'rejected' | 'not_queued' | 'not_sent' | 'no_market';
111
+ /**
112
+ * The outcome class of a recognized gswap-sdk code, or null for any other code (launchpad's own
113
+ * `POOL_NOT_FOUND`, `BUNDLE_CONFIRMATION_TIMEOUT`, ...). Exact string equality only.
114
+ * `CHAIN_DISPATCH_FAILED` and `HTTP_ERROR` depend on the status exactly as in gswap-sdk's
115
+ * `classifyChainDispatchFailed` / `classifyHttpError`.
116
+ */
117
+ export declare function classifyDexCode(details: ErrorDetails): CodedOutcome | null;
86
118
  /**
87
119
  * Finds the best matching error template for a message
88
120
  */
@@ -92,9 +124,13 @@ export declare function findErrorTemplate(message: string): ErrorTemplate | null
92
124
  */
93
125
  export declare function getErrorTip(message: string): string | null;
94
126
  /**
95
- * Applies AI-friendly tip to error message
127
+ * Applies AI-friendly tip to error message.
128
+ *
129
+ * With `details` (read from the thrown error by {@link extractErrorDetails}) a known gswap-sdk
130
+ * `code` selects the tip and the English message is never consulted for the outcome; without a
131
+ * known code the regex templates above decide, exactly as before.
96
132
  */
97
- export declare function enhanceErrorMessage(message: string): string;
133
+ export declare function enhanceErrorMessage(message: string, details?: ErrorDetails): string;
98
134
  /**
99
135
  * Gets error category for an error message
100
136
  */
@@ -106,4 +142,5 @@ export declare const errorTemplates: {
106
142
  enhance: typeof enhanceErrorMessage;
107
143
  getCategory: typeof getErrorCategory;
108
144
  };
145
+ export {};
109
146
  //# sourceMappingURL=error-templates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"error-templates.d.ts","sourceRoot":"","sources":["../../src/utils/error-templates.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,gBAAgB,GAAG,SAAS,CAAC;CAC9E;AAMD;;GAEG;AACH,eAAO,MAAM,YAAY;aACvB,KAAK;iBACH,OAAO;iBACP,GAAG,EAAE;;;;;+CAKsC;iBAC3C,QAAQ,EAAE,YAAY;;aAExB,IAAI;iBACF,OAAO;iBACP,GAAG,EAAE;;;+CAGsC;iBAC3C,QAAQ,EAAE,YAAY;;CAEhB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,aAS9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,aAShC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,aAOlC,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,aAcjC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,aAUhC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,0BAA0B,EAAE,aAMxC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,aAW5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,aAU9B,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,aAS9B,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,aAUtC,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,aAAa,EAgB1C,CAAC;AAMF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAgBvE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG1D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAI3D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGxD;AAMD,eAAO,MAAM,cAAc;IACzB,SAAS;IACT,YAAY;IACZ,MAAM;IACN,OAAO;IACP,WAAW;CACZ,CAAC"}
1
+ {"version":3,"file":"error-templates.d.ts","sourceRoot":"","sources":["../../src/utils/error-templates.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,gBAAgB,GAAG,SAAS,CAAC;CAC9E;AAMD;;GAEG;AACH,eAAO,MAAM,YAAY;aACvB,KAAK;iBACH,OAAO;iBACP,GAAG,EAAE;;;;;+CAKsC;iBAC3C,QAAQ,EAAE,YAAY;;aAExB,IAAI;iBACF,OAAO;iBACP,GAAG,EAAE;;;+CAGsC;iBAC3C,QAAQ,EAAE,YAAY;;CAEhB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,aAS9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,aAShC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,aAOlC,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,aAcjC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,aAUhC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,0BAA0B,EAAE,aAOxC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,aAW5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,aAU9B,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,aAS9B,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,aAUtC,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,aAAa,EAgB1C,CAAC;AAMF;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,4FAA4F;IAC5F,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wFAAwF;IACxF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uFAAuF;IACvF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gGAAgG;IAChG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mGAAmG;IACnG,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAkBD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAmBhE;AAkDD,KAAK,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,UAAU,GAAG,WAAW,CAAC;AAErF;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY,GAAG,IAAI,CAO1E;AAuED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAgBvE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG1D;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM,CASnF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGxD;AAMD,eAAO,MAAM,cAAc;IACzB,SAAS;IACT,YAAY;IACZ,MAAM;IACN,OAAO;IACP,WAAW;CACZ,CAAC"}
@@ -110,7 +110,8 @@ This request's uniqueKey is consumed; the swap did NOT execute, so a new request
110
110
  * TRADE_TIMEOUT_ERROR, whose tip is about launchpad bonding-curve trades.
111
111
  */
112
112
  export const SWAP_OUTCOME_UNKNOWN_ERROR = {
113
- pattern: /(outcome is still unknown|may still apply|SUBMISSION_OUTCOME_UNKNOWN|CONFIRMATION_TIMEOUT)/i,
113
+ // `\b` keeps launchpad's own BUNDLE_CONFIRMATION_TIMEOUT out (`_` is a word character).
114
+ pattern: /(outcome is (still )?unknown|may still apply|\bSUBMISSION_OUTCOME_UNKNOWN|\bCONFIRMATION_TIMEOUT)/i,
114
115
  tip: `💡 AI TIP: The swap was queued on chain and may still execute. Do NOT submit it again.
115
116
  Call gala_launchpad_get_swap_result with the uniqueKey from this error to resolve the outcome
116
117
  (results are retained for 7 days).`,
@@ -200,6 +201,169 @@ export const ERROR_TEMPLATES = [
200
201
  // Generic errors last (lower priority)
201
202
  GENERIC_VALIDATION_ERROR,
202
203
  ];
204
+ const UNIQUE_KEY_FORMAT = /^[A-Za-z0-9._:-]{1,128}$/;
205
+ function asRecord(value) {
206
+ return typeof value === 'object' && value !== null ? value : undefined;
207
+ }
208
+ function stringProp(record, key) {
209
+ const value = record?.[key];
210
+ return typeof value === 'string' ? value : undefined;
211
+ }
212
+ function numberProp(record, key) {
213
+ const value = record?.[key];
214
+ return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
215
+ }
216
+ /**
217
+ * Reads the code-first fields from a thrown value. One level of `cause` is followed so a wrapper
218
+ * that kept the original error as its cause does not hide the code.
219
+ */
220
+ export function extractErrorDetails(error) {
221
+ const own = asRecord(error);
222
+ const wrapped = asRecord(own?.['cause']);
223
+ const code = stringProp(own, 'code') ?? stringProp(wrapped, 'code');
224
+ const source = stringProp(own, 'code') !== undefined ? own : wrapped;
225
+ const params = asRecord(source?.['params']) ?? asRecord(source?.['details']);
226
+ const status = numberProp(source, 'status') ?? numberProp(params, 'status');
227
+ const rawKey = stringProp(source, 'uniqueKey') ?? stringProp(own, 'uniqueKey') ?? stringProp(params, 'uniqueKey');
228
+ const writeFlag = source?.['write'];
229
+ const chainText = stringProp(params, 'serverMessage') ?? stringProp(source, 'chainMessage');
230
+ const details = {};
231
+ if (code !== undefined)
232
+ details.code = code;
233
+ if (status !== undefined)
234
+ details.status = status;
235
+ if (rawKey !== undefined && UNIQUE_KEY_FORMAT.test(rawKey))
236
+ details.uniqueKey = rawKey;
237
+ if (typeof writeFlag === 'boolean')
238
+ details.write = writeFlag;
239
+ if (own?.['afterQueued'] === true)
240
+ details.afterQueued = true;
241
+ if (chainText !== undefined)
242
+ details.chainText = chainText;
243
+ return details;
244
+ }
245
+ /**
246
+ * Codes whose outcome is `unknown` regardless of status: the write may have been queued, so it
247
+ * must never be resubmitted. Copied from gswap-sdk `src/utils/failure_classification.ts`
248
+ * (`BY_CODE` rows classified UNKNOWN: the codes `mayHaveBeenQueued` is true for).
249
+ */
250
+ const OUTCOME_UNKNOWN_CODES = new Set([
251
+ 'SUBMISSION_OUTCOME_UNKNOWN',
252
+ 'GATEWAY_REPORTED_ERROR',
253
+ 'GATEWAY_DATA_MISSING',
254
+ 'GATEWAY_MODE_INVALID',
255
+ 'GATEWAY_SYNC_REQUEST_TRADE',
256
+ 'MISSING_UNIQUE_KEY',
257
+ 'UNIQUE_KEY_MISMATCH',
258
+ 'CONFIRMATION_TIMEOUT',
259
+ 'CONFIRMATION_ABORTED',
260
+ 'CONFIRMATION_FAILED',
261
+ 'CONFIRMATION_MALFORMED',
262
+ 'CONFIRMATION_KEY_MISMATCH',
263
+ ]);
264
+ /** Gateway refusals before queueing (`not_queued` in gswap-sdk `failure_classification.ts`). */
265
+ const NOT_QUEUED_CODES = new Set([
266
+ 'SHADOW_NOT_QUEUED',
267
+ 'METHOD_NOT_ALLOWED',
268
+ 'SIGNATURE_INVALID',
269
+ 'SIGNER_MISMATCH',
270
+ 'DTO_INVALID',
271
+ 'BOUNDS_VIOLATION',
272
+ 'SYMBOL_CONFLICT',
273
+ 'RATE_LIMITED',
274
+ 'GATEWAY_REJECTED',
275
+ 'UPDATE_REQUIRED',
276
+ ]);
277
+ /** Failures before anything was signed or sent (`not_sent` in `failure_classification.ts`). */
278
+ const NOT_SENT_CODES = new Set([
279
+ 'SIGNING_FAILED',
280
+ 'KEY_PROVIDER_FAILED',
281
+ 'TOKEN_RESOLUTION_FAILED',
282
+ ]);
283
+ /** No market for the pair (gswap-sdk `isNoMarket`, catalog codes). */
284
+ const NO_MARKET_CODES = new Set([
285
+ 'NO_POOL_AVAILABLE',
286
+ 'INSUFFICIENT_LIQUIDITY',
287
+ 'UNKNOWN_TOKEN',
288
+ ]);
289
+ /**
290
+ * The outcome class of a recognized gswap-sdk code, or null for any other code (launchpad's own
291
+ * `POOL_NOT_FOUND`, `BUNDLE_CONFIRMATION_TIMEOUT`, ...). Exact string equality only.
292
+ * `CHAIN_DISPATCH_FAILED` and `HTTP_ERROR` depend on the status exactly as in gswap-sdk's
293
+ * `classifyChainDispatchFailed` / `classifyHttpError`.
294
+ */
295
+ export function classifyDexCode(details) {
296
+ const outcome = classifyByCode(details);
297
+ // Once the swap is queued (we hold its uniqueKey), only the chain's own verdict is terminal:
298
+ // gswap-sdk's classifyFailure(error, { afterQueued: true }). Anything else, a recognized code
299
+ // or not, may still apply and must never invite a resubmit.
300
+ if (details.afterQueued === true && outcome !== 'rejected')
301
+ return 'unknown';
302
+ return outcome;
303
+ }
304
+ function classifyByCode(details) {
305
+ const { code, status } = details;
306
+ if (code === undefined)
307
+ return null;
308
+ if (OUTCOME_UNKNOWN_CODES.has(code))
309
+ return 'unknown';
310
+ if (code === 'CHAIN_REJECTED')
311
+ return 'rejected';
312
+ if (NOT_QUEUED_CODES.has(code))
313
+ return 'not_queued';
314
+ if (NOT_SENT_CODES.has(code))
315
+ return 'not_sent';
316
+ if (NO_MARKET_CODES.has(code))
317
+ return 'no_market';
318
+ if (code === 'CHAIN_DISPATCH_FAILED') {
319
+ if (status === undefined || status === 409 || status >= 500)
320
+ return 'unknown';
321
+ return status === 422 ? 'rejected' : 'not_queued';
322
+ }
323
+ if (code === 'HTTP_ERROR' && details.uniqueKey !== undefined && details.write !== false) {
324
+ if (status === undefined || status === 408 || status >= 500)
325
+ return 'unknown';
326
+ return 'not_queued';
327
+ }
328
+ return null;
329
+ }
330
+ const DEX_REJECTED_TIP = `💡 AI TIP: The chain evaluated this swap and rejected it; it did NOT execute.
331
+ The request's uniqueKey is consumed. Fix the cause named in the error (re-quote, balance, token
332
+ format) and submit a NEW request.`;
333
+ const DEX_NOT_QUEUED_TIP = `💡 AI TIP: The swap backend refused this request before queueing it; nothing is pending and the
334
+ swap did NOT execute. Fix the cause named in the error, then submit a new request.`;
335
+ const DEX_NOT_SENT_TIP = `💡 AI TIP: This request failed before anything was sent (signing or token lookup); nothing is
336
+ pending and no swap was queued. Fix the cause and try again.`;
337
+ const DEX_NO_MARKET_TIP = `💡 AI TIP: No usable market for this pair/fee tier; nothing was submitted. Check the tokens with
338
+ gala_launchpad_get_swap_quote_exact_input across fee tiers (500, 3000, 10000) before swapping.`;
339
+ function outcomeUnknownTip(details) {
340
+ const key = details.uniqueKey === undefined ? '' : `\nuniqueKey: ${details.uniqueKey}`;
341
+ return `${SWAP_OUTCOME_UNKNOWN_ERROR.tip}${key}`;
342
+ }
343
+ /** The code-selected tip for an error, or null when its code is not a recognized gswap code. */
344
+ function findCodedTip(message, details) {
345
+ const outcome = classifyDexCode(details);
346
+ const code = details.code;
347
+ if (outcome === null)
348
+ return null;
349
+ switch (outcome) {
350
+ case 'unknown':
351
+ return { code, tip: outcomeUnknownTip(details) };
352
+ case 'rejected': {
353
+ // The chain's slippage verdict is identified by its own message text, which passes through.
354
+ const slippage = DEX_SLIPPAGE_ERROR.pattern;
355
+ const isSlippage = slippage instanceof RegExp &&
356
+ (slippage.test(message) || (details.chainText !== undefined && slippage.test(details.chainText)));
357
+ return { code, tip: isSlippage ? DEX_SLIPPAGE_ERROR.tip : DEX_REJECTED_TIP };
358
+ }
359
+ case 'not_queued':
360
+ return { code, tip: DEX_NOT_QUEUED_TIP };
361
+ case 'not_sent':
362
+ return { code, tip: DEX_NOT_SENT_TIP };
363
+ case 'no_market':
364
+ return { code, tip: DEX_NO_MARKET_TIP };
365
+ }
366
+ }
203
367
  // =============================================================================
204
368
  // Template Matching Functions
205
369
  // =============================================================================
@@ -230,9 +394,18 @@ export function getErrorTip(message) {
230
394
  return template ? template.tip : null;
231
395
  }
232
396
  /**
233
- * Applies AI-friendly tip to error message
397
+ * Applies AI-friendly tip to error message.
398
+ *
399
+ * With `details` (read from the thrown error by {@link extractErrorDetails}) a known gswap-sdk
400
+ * `code` selects the tip and the English message is never consulted for the outcome; without a
401
+ * known code the regex templates above decide, exactly as before.
234
402
  */
235
- export function enhanceErrorMessage(message) {
403
+ export function enhanceErrorMessage(message, details) {
404
+ const coded = details === undefined ? null : findCodedTip(message, details);
405
+ if (coded !== null) {
406
+ const prefix = coded.code === undefined ? '' : `[${coded.code}] `;
407
+ return `${prefix}${message}\n\n${coded.tip}`;
408
+ }
236
409
  const tip = getErrorTip(message);
237
410
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Defensive null/undefined check
238
411
  return tip !== null && tip !== undefined ? `${message}\n\n${tip}` : message;
@@ -1 +1 @@
1
- {"version":3,"file":"error-templates.js","sourceRoot":"","sources":["../../src/utils/error-templates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"error-templates.js","sourceRoot":"","sources":["../../src/utils/error-templates.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gala-chain/launchpad-mcp-server",
3
3
  "type": "module",
4
- "version": "8.0.0",
4
+ "version": "8.0.1",
5
5
  "description": "MCP server for Gala Launchpad - 323 tools (pool management, event watchers, GSwap DEX trading, price history, token creation, wallet management, DEX pool discovery, liquidity positions, token locks/burns, locked token queries, composite pool data, cross-chain bridging, wrap/unwrap, key derivation, streaming, chat, session auth, ban management, API keys, moderator invites, content flags, content reactions, comments, overseers, CCTV dashboard, weekly challenge leaderboard, oEmbed metadata, platform stats, AI moderation) supporting optional wallet (read-only and full-access modes). Production-grade AI agent integration for Claude Desktop with comprehensive validation and 80%+ test coverage",
6
6
  "main": "dist/index.js",
7
7
  "exports": {
@@ -71,7 +71,7 @@
71
71
  "socket.io-client": "^4.8.3",
72
72
  "zod": "^4.3.6",
73
73
  "zod-to-json-schema": "^3.25.1",
74
- "@gala-chain/launchpad-sdk": "8.0.0"
74
+ "@gala-chain/launchpad-sdk": "8.0.1"
75
75
  },
76
76
  "devDependencies": {
77
77
  "@eslint/js": "^10.0.1",