@countfinancial/cli 0.1.5 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/constants.d.ts +2 -2
  2. package/dist/constants.js +2 -2
  3. package/dist/constants.js.map +1 -1
  4. package/dist/partner-mcp/config.js +1 -1
  5. package/dist/partner-mcp/helpers/mcpKnowledge.helper.d.ts +19 -0
  6. package/dist/partner-mcp/helpers/mcpKnowledge.helper.js +293 -0
  7. package/dist/partner-mcp/helpers/mcpKnowledge.helper.js.map +1 -0
  8. package/dist/partner-mcp/helpers/mcpPayloadValidation.helper.d.ts +42 -0
  9. package/dist/partner-mcp/helpers/mcpPayloadValidation.helper.js +741 -0
  10. package/dist/partner-mcp/helpers/mcpPayloadValidation.helper.js.map +1 -0
  11. package/dist/partner-mcp/helpers/mcpPlaybooks.helper.d.ts +26 -0
  12. package/dist/partner-mcp/helpers/mcpPlaybooks.helper.js +210 -0
  13. package/dist/partner-mcp/helpers/mcpPlaybooks.helper.js.map +1 -0
  14. package/dist/partner-mcp/helpers/mcpRecoveryHint.helper.d.ts +22 -0
  15. package/dist/partner-mcp/helpers/mcpRecoveryHint.helper.js +203 -0
  16. package/dist/partner-mcp/helpers/mcpRecoveryHint.helper.js.map +1 -0
  17. package/dist/partner-mcp/helpers/mcpReferenceResolution.helper.d.ts +52 -0
  18. package/dist/partner-mcp/helpers/mcpReferenceResolution.helper.js +343 -0
  19. package/dist/partner-mcp/helpers/mcpReferenceResolution.helper.js.map +1 -0
  20. package/dist/partner-mcp/helpers/partnerErrorSanitization.helper.d.ts +18 -0
  21. package/dist/partner-mcp/helpers/partnerErrorSanitization.helper.js +63 -0
  22. package/dist/partner-mcp/helpers/partnerErrorSanitization.helper.js.map +1 -0
  23. package/dist/partner-mcp/partnerApiClient.d.ts +4 -0
  24. package/dist/partner-mcp/partnerApiClient.js +38 -1
  25. package/dist/partner-mcp/partnerApiClient.js.map +1 -1
  26. package/dist/partner-mcp/tools/definitions.js +233 -12
  27. package/dist/partner-mcp/tools/definitions.js.map +1 -1
  28. package/dist/partner-mcp/tools/registerTools.js +107 -23
  29. package/dist/partner-mcp/tools/registerTools.js.map +1 -1
  30. package/dist/partner-mcp/tools/schemas.d.ts +40 -0
  31. package/dist/partner-mcp/tools/schemas.js +55 -0
  32. package/dist/partner-mcp/tools/schemas.js.map +1 -1
  33. package/package.json +1 -1
@@ -0,0 +1,343 @@
1
+ const LIST_PAGE_LIMIT = 100;
2
+ const REFERENCE_RESOLUTION_MAX_PAGES = 50;
3
+ async function fetchListRecords(params) {
4
+ const { client, path, search, extraQuery, recordsKey, nameField } = params;
5
+ const accumulatedRecords = [];
6
+ let page = 1;
7
+ while (page <= REFERENCE_RESOLUTION_MAX_PAGES) {
8
+ const query = {
9
+ ...(extraQuery ?? {}),
10
+ search,
11
+ limit: LIST_PAGE_LIMIT,
12
+ page,
13
+ };
14
+ const response = await client.request({
15
+ method: 'GET',
16
+ path,
17
+ query,
18
+ requiresUserAuth: true,
19
+ });
20
+ const pageRecords = parseListRecordsFromResponse({ response, recordsKey, nameField });
21
+ accumulatedRecords.push(...pageRecords);
22
+ if (pageRecords.length < LIST_PAGE_LIMIT) {
23
+ break;
24
+ }
25
+ page += 1;
26
+ }
27
+ return accumulatedRecords;
28
+ }
29
+ function parseListRecordsFromResponse(params) {
30
+ const { response, recordsKey, nameField } = params;
31
+ const rawRecords = extractRecordsArray({ response, recordsKey });
32
+ const listRecords = [];
33
+ for (const rawRecord of rawRecords) {
34
+ if (!rawRecord || typeof rawRecord !== 'object')
35
+ continue;
36
+ const recordObject = rawRecord;
37
+ const uuid = extractRecordUuid({ recordObject });
38
+ const nameValue = recordObject[nameField];
39
+ if (!uuid || typeof nameValue !== 'string' || nameValue.trim() === '')
40
+ continue;
41
+ listRecords.push({ uuid, name: nameValue.trim() });
42
+ }
43
+ return listRecords;
44
+ }
45
+ async function fetchCustomerEmailRecords(params) {
46
+ const { client, search } = params;
47
+ const accumulatedRecords = [];
48
+ let page = 1;
49
+ while (page <= REFERENCE_RESOLUTION_MAX_PAGES) {
50
+ const response = await client.request({
51
+ method: 'GET',
52
+ path: '/partners/customers',
53
+ query: {
54
+ search,
55
+ limit: LIST_PAGE_LIMIT,
56
+ page,
57
+ },
58
+ requiresUserAuth: true,
59
+ });
60
+ const rawRecords = extractRecordsArray({ response, recordsKey: 'customers' });
61
+ const pageRecords = [];
62
+ for (const rawRecord of rawRecords) {
63
+ if (!rawRecord || typeof rawRecord !== 'object')
64
+ continue;
65
+ const recordObject = rawRecord;
66
+ const uuid = extractRecordUuid({ recordObject });
67
+ const customerName = recordObject.customer;
68
+ if (!uuid || typeof customerName !== 'string' || customerName.trim() === '')
69
+ continue;
70
+ const emailAddresses = extractCustomerEmailAddresses({ recordObject });
71
+ pageRecords.push({
72
+ uuid,
73
+ name: customerName.trim(),
74
+ emailAddresses,
75
+ });
76
+ }
77
+ accumulatedRecords.push(...pageRecords);
78
+ if (pageRecords.length < LIST_PAGE_LIMIT) {
79
+ break;
80
+ }
81
+ page += 1;
82
+ }
83
+ return accumulatedRecords;
84
+ }
85
+ export async function resolveMcpReferences(params) {
86
+ const { client } = params;
87
+ const resolutions = [];
88
+ if (params.vendorName && params.vendorName.trim() !== '') {
89
+ const vendorRecords = await fetchListRecords({
90
+ client,
91
+ path: '/partners/vendors',
92
+ search: params.vendorName.trim(),
93
+ recordsKey: 'vendors',
94
+ nameField: 'name',
95
+ });
96
+ resolutions.push(buildFieldResolution({ field: 'vendorName', searchTerm: params.vendorName.trim(), records: vendorRecords }));
97
+ }
98
+ if (params.customerName && params.customerName.trim() !== '') {
99
+ const customerRecords = await fetchListRecords({
100
+ client,
101
+ path: '/partners/customers',
102
+ search: params.customerName.trim(),
103
+ recordsKey: 'customers',
104
+ nameField: 'customer',
105
+ });
106
+ resolutions.push(buildFieldResolution({ field: 'customerName', searchTerm: params.customerName.trim(), records: customerRecords }));
107
+ }
108
+ if (params.customerEmail && params.customerEmail.trim() !== '') {
109
+ const customerEmailRecords = await fetchCustomerEmailRecords({
110
+ client,
111
+ search: params.customerEmail.trim(),
112
+ });
113
+ resolutions.push(buildEmailFieldResolution({
114
+ field: 'customerEmail',
115
+ searchTerm: params.customerEmail.trim(),
116
+ records: customerEmailRecords,
117
+ }));
118
+ }
119
+ if (params.accountName && params.accountName.trim() !== '') {
120
+ const accountExtraQuery = {};
121
+ if (params.accountType && params.accountType.trim() !== '') {
122
+ accountExtraQuery.type = params.accountType.trim();
123
+ }
124
+ const accountRecords = await fetchListRecords({
125
+ client,
126
+ path: '/partners/chart-of-accounts',
127
+ search: params.accountName.trim(),
128
+ extraQuery: accountExtraQuery,
129
+ recordsKey: 'accounts',
130
+ nameField: 'name',
131
+ });
132
+ resolutions.push(buildFieldResolution({ field: 'accountName', searchTerm: params.accountName.trim(), records: accountRecords }));
133
+ }
134
+ if (params.projectName && params.projectName.trim() !== '') {
135
+ const projectRecords = await fetchListRecords({
136
+ client,
137
+ path: '/partners/projects',
138
+ search: params.projectName.trim(),
139
+ recordsKey: 'projects',
140
+ nameField: 'name',
141
+ });
142
+ resolutions.push(buildFieldResolution({ field: 'projectName', searchTerm: params.projectName.trim(), records: projectRecords }));
143
+ }
144
+ if (params.tagName && params.tagName.trim() !== '') {
145
+ const tagRecords = await fetchListRecords({
146
+ client,
147
+ path: '/partners/tags',
148
+ search: params.tagName.trim(),
149
+ recordsKey: 'tags',
150
+ nameField: 'name',
151
+ });
152
+ resolutions.push(buildFieldResolution({ field: 'tagName', searchTerm: params.tagName.trim(), records: tagRecords }));
153
+ }
154
+ return { resolutions };
155
+ }
156
+ function extractCustomerEmailAddresses(params) {
157
+ const { recordObject } = params;
158
+ const emailAddresses = [];
159
+ if (typeof recordObject.email === 'string' && recordObject.email.trim() !== '') {
160
+ emailAddresses.push(recordObject.email.trim());
161
+ }
162
+ const contacts = recordObject.contacts;
163
+ if (Array.isArray(contacts)) {
164
+ for (const contact of contacts) {
165
+ if (!contact || typeof contact !== 'object')
166
+ continue;
167
+ const contactEmail = contact.email;
168
+ if (typeof contactEmail === 'string' && contactEmail.trim() !== '') {
169
+ emailAddresses.push(contactEmail.trim());
170
+ }
171
+ }
172
+ }
173
+ return emailAddresses;
174
+ }
175
+ function extractRecordsArray(params) {
176
+ const { response, recordsKey } = params;
177
+ if (!response || typeof response !== 'object')
178
+ return [];
179
+ const responseObject = response;
180
+ const directArray = responseObject[recordsKey];
181
+ if (Array.isArray(directArray))
182
+ return directArray;
183
+ const dataObject = responseObject.data;
184
+ if (dataObject && typeof dataObject === 'object') {
185
+ const nestedArray = dataObject[recordsKey];
186
+ if (Array.isArray(nestedArray))
187
+ return nestedArray;
188
+ }
189
+ return [];
190
+ }
191
+ function extractRecordUuid(params) {
192
+ const { recordObject } = params;
193
+ if (typeof recordObject.id === 'string' && recordObject.id.trim() !== '') {
194
+ return recordObject.id.trim();
195
+ }
196
+ if (typeof recordObject.uuid === 'string' && recordObject.uuid.trim() !== '') {
197
+ return recordObject.uuid.trim();
198
+ }
199
+ return null;
200
+ }
201
+ export function scoreNameMatch(params) {
202
+ const normalizedSearch = params.searchTerm.trim().toLowerCase();
203
+ const normalizedCandidate = params.candidateName.trim().toLowerCase();
204
+ if (normalizedSearch === normalizedCandidate) {
205
+ return { score: 100, matchConfidence: 'exact' };
206
+ }
207
+ if (normalizedCandidate.startsWith(normalizedSearch)) {
208
+ return { score: 80, matchConfidence: 'fuzzy' };
209
+ }
210
+ if (normalizedCandidate.includes(normalizedSearch)) {
211
+ return { score: 60, matchConfidence: 'fuzzy' };
212
+ }
213
+ return { score: 0, matchConfidence: 'not_found' };
214
+ }
215
+ export function scoreEmailMatch(params) {
216
+ const normalizedSearch = params.searchTerm.trim().toLowerCase();
217
+ const normalizedCandidateEmail = params.candidateEmail.trim().toLowerCase();
218
+ if (normalizedSearch === normalizedCandidateEmail) {
219
+ return { score: 100, matchConfidence: 'exact' };
220
+ }
221
+ return { score: 0, matchConfidence: 'not_found' };
222
+ }
223
+ function buildFieldResolution(params) {
224
+ const { field, searchTerm, records } = params;
225
+ if (records.length === 0) {
226
+ return {
227
+ field,
228
+ searchTerm,
229
+ uuid: null,
230
+ name: null,
231
+ matchConfidence: 'not_found',
232
+ issue: 'not_found',
233
+ };
234
+ }
235
+ const scoredRecords = records
236
+ .map((_record) => ({
237
+ record: _record,
238
+ ...scoreNameMatch({ searchTerm, candidateName: _record.name }),
239
+ }))
240
+ .filter((_scored) => _scored.score > 0)
241
+ .sort((_left, _right) => _right.score - _left.score);
242
+ if (scoredRecords.length === 0) {
243
+ return {
244
+ field,
245
+ searchTerm,
246
+ uuid: null,
247
+ name: null,
248
+ matchConfidence: 'not_found',
249
+ issue: 'not_found',
250
+ };
251
+ }
252
+ const topScore = scoredRecords[0].score;
253
+ const topMatches = scoredRecords.filter((_scored) => _scored.score === topScore);
254
+ if (topMatches.length > 1) {
255
+ return {
256
+ field,
257
+ searchTerm,
258
+ uuid: null,
259
+ name: null,
260
+ matchConfidence: 'ambiguous',
261
+ issue: 'ambiguous',
262
+ candidates: topMatches.slice(0, 5).map((_scored) => ({
263
+ uuid: _scored.record.uuid,
264
+ name: _scored.record.name,
265
+ })),
266
+ };
267
+ }
268
+ const bestMatch = topMatches[0];
269
+ return {
270
+ field,
271
+ searchTerm,
272
+ uuid: bestMatch.record.uuid,
273
+ name: bestMatch.record.name,
274
+ matchConfidence: bestMatch.matchConfidence,
275
+ };
276
+ }
277
+ function buildEmailFieldResolution(params) {
278
+ const { field, searchTerm, records } = params;
279
+ if (records.length === 0) {
280
+ return {
281
+ field,
282
+ searchTerm,
283
+ uuid: null,
284
+ name: null,
285
+ matchConfidence: 'not_found',
286
+ issue: 'not_found',
287
+ };
288
+ }
289
+ const scoredRecords = records
290
+ .map((_record) => {
291
+ let bestScore = 0;
292
+ let bestMatchConfidence = 'not_found';
293
+ for (const emailAddress of _record.emailAddresses) {
294
+ const emailScore = scoreEmailMatch({ searchTerm, candidateEmail: emailAddress });
295
+ if (emailScore.score > bestScore) {
296
+ bestScore = emailScore.score;
297
+ bestMatchConfidence = emailScore.matchConfidence;
298
+ }
299
+ }
300
+ return {
301
+ record: _record,
302
+ score: bestScore,
303
+ matchConfidence: bestMatchConfidence,
304
+ };
305
+ })
306
+ .filter((_scored) => _scored.score > 0)
307
+ .sort((_left, _right) => _right.score - _left.score);
308
+ if (scoredRecords.length === 0) {
309
+ return {
310
+ field,
311
+ searchTerm,
312
+ uuid: null,
313
+ name: null,
314
+ matchConfidence: 'not_found',
315
+ issue: 'not_found',
316
+ };
317
+ }
318
+ const topScore = scoredRecords[0].score;
319
+ const topMatches = scoredRecords.filter((_scored) => _scored.score === topScore);
320
+ if (topMatches.length > 1) {
321
+ return {
322
+ field,
323
+ searchTerm,
324
+ uuid: null,
325
+ name: null,
326
+ matchConfidence: 'ambiguous',
327
+ issue: 'ambiguous',
328
+ candidates: topMatches.slice(0, 5).map((_scored) => ({
329
+ uuid: _scored.record.uuid,
330
+ name: _scored.record.name,
331
+ })),
332
+ };
333
+ }
334
+ const bestMatch = topMatches[0];
335
+ return {
336
+ field,
337
+ searchTerm,
338
+ uuid: bestMatch.record.uuid,
339
+ name: bestMatch.record.name,
340
+ matchConfidence: bestMatch.matchConfidence,
341
+ };
342
+ }
343
+ //# sourceMappingURL=mcpReferenceResolution.helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpReferenceResolution.helper.js","sourceRoot":"","sources":["../../../src/partner-mcp/helpers/mcpReferenceResolution.helper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Strip implementation details from partner / MCP error payloads before they
3
+ * reach external callers. Even on dev hosts, partner surfaces must not leak
4
+ * stack traces, Sequelize internals, or source file references.
5
+ */
6
+ interface SanitizePartnerErrorMessageParams {
7
+ message: string;
8
+ }
9
+ export declare function sanitizePartnerErrorMessage(params: SanitizePartnerErrorMessageParams): string;
10
+ interface SanitizePartnerErrorBodyParams {
11
+ errorBody: Record<string, unknown>;
12
+ }
13
+ export declare function sanitizePartnerErrorBody(params: SanitizePartnerErrorBodyParams): Record<string, unknown>;
14
+ interface SanitizeMcpToolErrorPayloadParams {
15
+ errorPayload: Record<string, unknown>;
16
+ }
17
+ export declare function sanitizeMcpToolErrorPayload(params: SanitizeMcpToolErrorPayloadParams): Record<string, unknown>;
18
+ export {};
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Strip implementation details from partner / MCP error payloads before they
3
+ * reach external callers. Even on dev hosts, partner surfaces must not leak
4
+ * stack traces, Sequelize internals, or source file references.
5
+ */
6
+ const INTERNAL_ERROR_MESSAGE_PATTERN = /(\.js:\d+|\.ts:\d+|sequelize|node_modules|accountTypeId|WHERE parameter|at\s+\w+\s+\()/i;
7
+ const GENERIC_PARTNER_ERROR_MESSAGE = 'We could not process your request right now. Please try again in a moment.';
8
+ export function sanitizePartnerErrorMessage(params) {
9
+ const { message } = params;
10
+ if (!message || message.trim() === '') {
11
+ return GENERIC_PARTNER_ERROR_MESSAGE;
12
+ }
13
+ if (INTERNAL_ERROR_MESSAGE_PATTERN.test(message)) {
14
+ return GENERIC_PARTNER_ERROR_MESSAGE;
15
+ }
16
+ return message;
17
+ }
18
+ export function sanitizePartnerErrorBody(params) {
19
+ const { errorBody } = params;
20
+ const sanitizedBody = {
21
+ message: sanitizePartnerErrorMessage({
22
+ message: typeof errorBody.message === 'string' ? errorBody.message : GENERIC_PARTNER_ERROR_MESSAGE,
23
+ }),
24
+ status: errorBody.status ?? 'Error',
25
+ statusCode: typeof errorBody.statusCode === 'number' ? errorBody.statusCode : 500,
26
+ isOperational: Boolean(errorBody.isOperational),
27
+ };
28
+ if (typeof errorBody.customMsg === 'string') {
29
+ sanitizedBody.customMsg = sanitizePartnerErrorMessage({ message: errorBody.customMsg });
30
+ }
31
+ else if (typeof sanitizedBody.message === 'string') {
32
+ sanitizedBody.customMsg = sanitizedBody.message;
33
+ }
34
+ if (typeof errorBody.requestId === 'string' && errorBody.requestId.trim() !== '') {
35
+ sanitizedBody.requestId = errorBody.requestId;
36
+ }
37
+ if (typeof errorBody.type === 'string' && errorBody.type.trim() !== '') {
38
+ sanitizedBody.type = errorBody.type;
39
+ }
40
+ if (typeof errorBody.error === 'string' && errorBody.error.trim() !== '') {
41
+ sanitizedBody.error = errorBody.error;
42
+ }
43
+ if (typeof errorBody.error_description === 'string' && errorBody.error_description.trim() !== '') {
44
+ sanitizedBody.error_description = sanitizePartnerErrorMessage({ message: errorBody.error_description });
45
+ }
46
+ return sanitizedBody;
47
+ }
48
+ export function sanitizeMcpToolErrorPayload(params) {
49
+ const { errorPayload } = params;
50
+ const sanitizedPayload = { ...errorPayload };
51
+ delete sanitizedPayload.stack;
52
+ if (typeof sanitizedPayload.message === 'string') {
53
+ sanitizedPayload.message = sanitizePartnerErrorMessage({ message: sanitizedPayload.message });
54
+ }
55
+ const responseBody = sanitizedPayload.responseBody;
56
+ if (responseBody && typeof responseBody === 'object') {
57
+ sanitizedPayload.responseBody = sanitizePartnerErrorBody({
58
+ errorBody: responseBody,
59
+ });
60
+ }
61
+ return sanitizedPayload;
62
+ }
63
+ //# sourceMappingURL=partnerErrorSanitization.helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partnerErrorSanitization.helper.js","sourceRoot":"","sources":["../../../src/partner-mcp/helpers/partnerErrorSanitization.helper.ts"],"names":[],"mappings":"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"}
@@ -15,10 +15,12 @@ export declare class PartnerApiClient {
15
15
  private readonly currentTimeMs;
16
16
  private accessToken?;
17
17
  private refreshToken?;
18
+ private inFlightRefresh;
18
19
  constructor(params: PartnerApiClientParams);
19
20
  getAuthState(): Record<string, boolean | string>;
20
21
  request<TResponse = unknown>(params: RequestParams): Promise<TResponse>;
21
22
  refreshAccessToken(): Promise<void>;
23
+ private performRefreshAccessToken;
22
24
  private performRequest;
23
25
  private buildUrl;
24
26
  private buildHeaders;
@@ -26,6 +28,8 @@ export declare class PartnerApiClient {
26
28
  private parseResponseBody;
27
29
  private getErrorMessage;
28
30
  private shouldRefreshAfterError;
31
+ /** Legacy deployments returned stale rotated tokens as 403 before protectUser emitted 401. */
32
+ private isStaleAccessTokenError;
29
33
  }
30
34
  interface ToPartnerRouterPathParams {
31
35
  path: string;
@@ -16,6 +16,7 @@ export class PartnerApiClient {
16
16
  currentTimeMs;
17
17
  accessToken;
18
18
  refreshToken;
19
+ inFlightRefresh = null;
19
20
  constructor(params) {
20
21
  const { config, fetchImplementation = fetch, currentTimeMs = Date.now } = params;
21
22
  this.config = config;
@@ -67,6 +68,20 @@ export class PartnerApiClient {
67
68
  throw response;
68
69
  }
69
70
  async refreshAccessToken() {
71
+ if (this.inFlightRefresh) {
72
+ await this.inFlightRefresh;
73
+ return;
74
+ }
75
+ const refreshPromise = this.performRefreshAccessToken();
76
+ this.inFlightRefresh = refreshPromise;
77
+ try {
78
+ await refreshPromise;
79
+ }
80
+ finally {
81
+ this.inFlightRefresh = null;
82
+ }
83
+ }
84
+ async performRefreshAccessToken() {
70
85
  if (!this.refreshToken) {
71
86
  throw new PartnerApiError('No refresh token is configured for this MCP server.', 401, {
72
87
  message: 'Missing COUNT_REFRESH_TOKEN',
@@ -210,14 +225,36 @@ export class PartnerApiClient {
210
225
  }
211
226
  shouldRefreshAfterError(params) {
212
227
  const { error } = params;
228
+ if (error.statusCode === 403) {
229
+ return this.isStaleAccessTokenError({ error });
230
+ }
213
231
  if (error.statusCode !== 401) {
214
232
  return false;
215
233
  }
234
+ if (this.isStaleAccessTokenError({ error })) {
235
+ return true;
236
+ }
216
237
  if (!error.responseBody || typeof error.responseBody !== 'object') {
238
+ return false;
239
+ }
240
+ const errorBody = error.responseBody;
241
+ if (errorBody.error === 'missing_credentials' || errorBody.error === 'Invalid HMAC signature') {
242
+ return false;
243
+ }
244
+ return (errorBody.error === 'invalid_token' ||
245
+ errorBody.error_description === 'The access token expired');
246
+ }
247
+ /** Legacy deployments returned stale rotated tokens as 403 before protectUser emitted 401. */
248
+ isStaleAccessTokenError(params) {
249
+ const { error } = params;
250
+ if (error.message === 'Invalid access token.') {
217
251
  return true;
218
252
  }
253
+ if (!error.responseBody || typeof error.responseBody !== 'object') {
254
+ return false;
255
+ }
219
256
  const errorBody = error.responseBody;
220
- return errorBody.error === 'invalid_token' || errorBody.error_description === 'The access token expired';
257
+ return errorBody.message === 'Invalid access token.';
221
258
  }
222
259
  }
223
260
  export function toPartnerRouterPath(params) {
@@ -1 +1 @@
1
- {"version":3,"file":"partnerApiClient.js","sourceRoot":"","sources":["../../src/partner-mcp/partnerApiClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"partnerApiClient.js","sourceRoot":"","sources":["../../src/partner-mcp/partnerApiClient.ts"],"names":[],"mappings":"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"}