@digital-science-dsl/dimensions-analytics-mcp 1.0.3 → 1.0.4

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 (84) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/client/deployment-config.d.ts +3 -17
  3. package/dist/client/deployment-config.d.ts.map +1 -1
  4. package/dist/client/deployment-config.js +3 -23
  5. package/dist/client/deployment-config.js.map +1 -1
  6. package/dist/client/http-client.d.ts +4 -26
  7. package/dist/client/http-client.d.ts.map +1 -1
  8. package/dist/client/http-client.js +26 -79
  9. package/dist/client/http-client.js.map +1 -1
  10. package/dist/client/internal-dsl-client.d.ts +15 -3
  11. package/dist/client/internal-dsl-client.d.ts.map +1 -1
  12. package/dist/client/internal-dsl-client.js +32 -4
  13. package/dist/client/internal-dsl-client.js.map +1 -1
  14. package/dist/client/request-retry.d.ts +39 -0
  15. package/dist/client/request-retry.d.ts.map +1 -0
  16. package/dist/client/request-retry.js +85 -0
  17. package/dist/client/request-retry.js.map +1 -0
  18. package/dist/client/usage-context.d.ts +29 -0
  19. package/dist/client/usage-context.d.ts.map +1 -0
  20. package/dist/client/usage-context.js +33 -0
  21. package/dist/client/usage-context.js.map +1 -0
  22. package/dist/client/usage-headers.d.ts +19 -0
  23. package/dist/client/usage-headers.d.ts.map +1 -0
  24. package/dist/client/usage-headers.js +39 -0
  25. package/dist/client/usage-headers.js.map +1 -0
  26. package/dist/dsl/client.d.ts.map +1 -1
  27. package/dist/dsl/client.js +7 -4
  28. package/dist/dsl/client.js.map +1 -1
  29. package/dist/mcp/http-server.d.ts.map +1 -1
  30. package/dist/mcp/http-server.js +6 -0
  31. package/dist/mcp/http-server.js.map +1 -1
  32. package/dist/mcp/server.d.ts +4 -0
  33. package/dist/mcp/server.d.ts.map +1 -1
  34. package/dist/mcp/server.js +7 -0
  35. package/dist/mcp/server.js.map +1 -1
  36. package/dist/mcp/tools/analytics.d.ts.map +1 -1
  37. package/dist/mcp/tools/analytics.js +5 -4
  38. package/dist/mcp/tools/analytics.js.map +1 -1
  39. package/dist/mcp/tools/fetch-search-pages.d.ts.map +1 -1
  40. package/dist/mcp/tools/fetch-search-pages.js +2 -1
  41. package/dist/mcp/tools/fetch-search-pages.js.map +1 -1
  42. package/dist/mcp/tools/functions.d.ts.map +1 -1
  43. package/dist/mcp/tools/functions.js +3 -2
  44. package/dist/mcp/tools/functions.js.map +1 -1
  45. package/dist/mcp/tools/lookup.d.ts.map +1 -1
  46. package/dist/mcp/tools/lookup.js +4 -3
  47. package/dist/mcp/tools/lookup.js.map +1 -1
  48. package/dist/mcp/tools/query.d.ts.map +1 -1
  49. package/dist/mcp/tools/query.js +2 -1
  50. package/dist/mcp/tools/query.js.map +1 -1
  51. package/dist/mcp/tools/schema.d.ts.map +1 -1
  52. package/dist/mcp/tools/schema.js +3 -2
  53. package/dist/mcp/tools/schema.js.map +1 -1
  54. package/dist/mcp/tools/search.d.ts.map +1 -1
  55. package/dist/mcp/tools/search.js +2 -1
  56. package/dist/mcp/tools/search.js.map +1 -1
  57. package/dist/mcp/usage-tracking.d.ts +28 -0
  58. package/dist/mcp/usage-tracking.d.ts.map +1 -0
  59. package/dist/mcp/usage-tracking.js +52 -0
  60. package/dist/mcp/usage-tracking.js.map +1 -0
  61. package/package.json +1 -1
  62. package/src/client/deployment-config.ts +3 -36
  63. package/src/client/http-client.ts +27 -93
  64. package/src/client/internal-dsl-client.ts +48 -4
  65. package/src/client/request-retry.ts +115 -0
  66. package/src/client/usage-context.ts +53 -0
  67. package/src/client/usage-headers.ts +45 -0
  68. package/src/dsl/client.ts +7 -4
  69. package/src/mcp/http-server.ts +9 -0
  70. package/src/mcp/server.ts +12 -0
  71. package/src/mcp/tools/analytics.ts +9 -4
  72. package/src/mcp/tools/fetch-search-pages.ts +3 -1
  73. package/src/mcp/tools/functions.ts +5 -2
  74. package/src/mcp/tools/lookup.ts +7 -3
  75. package/src/mcp/tools/query.ts +3 -1
  76. package/src/mcp/tools/schema.ts +5 -2
  77. package/src/mcp/tools/search.ts +3 -1
  78. package/src/mcp/usage-tracking.ts +72 -0
  79. package/test/client/deployment-config.test.ts +1 -25
  80. package/test/client/http-client.test.ts +17 -17
  81. package/test/client/internal-dsl-client.test.ts +73 -10
  82. package/test/client/request-retry.test.ts +55 -0
  83. package/test/client/usage-headers.test.ts +45 -0
  84. package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.0.4
4
+
5
+ ### Patch Changes
6
+
7
+ - Send hosted usage metadata via X-Dimensions-\* headers for dsl-service. Share retry logic between public API and internal dsl-service clients. Forward client IP with X-Forwarded-For for downstream throttling. Remove redundant body-side dsl logging helpers (server derives MCP user fields).
8
+
3
9
  ## 1.0.3
4
10
 
5
11
  - README intro, prerequisites, and API key link to account settings
@@ -1,5 +1,8 @@
1
1
  /**
2
2
  * Deployment mode and hosted backend configuration from environment.
3
+ *
4
+ * Hosted usage tracking: MCP sends X-Dimensions-* headers on dsl-service requests
5
+ * (see usage-headers.ts). dsl-service derives channel/user fields server-side.
3
6
  * @module client/deployment-config
4
7
  */
5
8
  import { z } from "zod";
@@ -29,23 +32,6 @@ export type AppDeploymentConfig = HostedEnvConfig | LocalEnvConfig;
29
32
  * provisioned Dimensions account.
30
33
  */
31
34
  export declare function hostedBootstrapUser(host: string): string;
32
- /**
33
- * MCP-prefixed user label for dsl usage logs (reversible plus-addressing).
34
- */
35
- export declare function mcpTrackingUser(dimensionsUser: string): string;
36
- export interface HostedDslLoggingInfo {
37
- user: string;
38
- dimensions_user: string;
39
- channel: "mcp";
40
- mcp_user: string;
41
- product_variant: string;
42
- source: "dimensions-analytics-mcp-hosted";
43
- }
44
- /**
45
- * `additional_logging_info` for hosted dsl-service queries.
46
- * `X-DIMENSIONS-USER` stays the canonical Dimensions user; channel fields tag MCP traffic.
47
- */
48
- export declare function buildHostedDslLoggingInfo(dimensionsUser: string, variant: string): HostedDslLoggingInfo;
49
35
  /**
50
36
  * Loads deployment configuration from environment variables.
51
37
  * @throws {Error} When hosted mode is enabled but required vars are missing
@@ -1 +1 @@
1
- {"version":3,"file":"deployment-config.d.ts","sourceRoot":"","sources":["../../src/client/deployment-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEhD,eAAO,MAAM,oBAAoB;;;;;;;iBAO/B,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAAG,cAAc,CAAC;AAanE;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAI9D;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,KAAK,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,iCAAiC,CAAC;CAC3C;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,GACd,oBAAoB,CAStB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,mBAAmB,CAyC1D"}
1
+ {"version":3,"file":"deployment-config.d.ts","sourceRoot":"","sources":["../../src/client/deployment-config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEhD,eAAO,MAAM,oBAAoB;;;;;;;iBAO/B,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAAG,cAAc,CAAC;AAanE;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,mBAAmB,CAyC1D"}
@@ -1,5 +1,8 @@
1
1
  /**
2
2
  * Deployment mode and hosted backend configuration from environment.
3
+ *
4
+ * Hosted usage tracking: MCP sends X-Dimensions-* headers on dsl-service requests
5
+ * (see usage-headers.ts). dsl-service derives channel/user fields server-side.
3
6
  * @module client/deployment-config
4
7
  */
5
8
  import { z } from "zod";
@@ -29,29 +32,6 @@ function readIntEnv(raw, fallback, min) {
29
32
  export function hostedBootstrapUser(host) {
30
33
  return `mcp@${host}`;
31
34
  }
32
- /**
33
- * MCP-prefixed user label for dsl usage logs (reversible plus-addressing).
34
- */
35
- export function mcpTrackingUser(dimensionsUser) {
36
- const at = dimensionsUser.indexOf("@");
37
- if (at <= 0)
38
- return `mcp+${dimensionsUser}`;
39
- return `mcp+${dimensionsUser.slice(0, at)}${dimensionsUser.slice(at)}`;
40
- }
41
- /**
42
- * `additional_logging_info` for hosted dsl-service queries.
43
- * `X-DIMENSIONS-USER` stays the canonical Dimensions user; channel fields tag MCP traffic.
44
- */
45
- export function buildHostedDslLoggingInfo(dimensionsUser, variant) {
46
- return {
47
- user: dimensionsUser,
48
- dimensions_user: dimensionsUser,
49
- channel: "mcp",
50
- mcp_user: mcpTrackingUser(dimensionsUser),
51
- product_variant: variant,
52
- source: "dimensions-analytics-mcp-hosted",
53
- };
54
- }
55
35
  /**
56
36
  * Loads deployment configuration from environment variables.
57
37
  * @throws {Error} When hosted mode is enabled but required vars are missing
@@ -1 +1 @@
1
- {"version":3,"file":"deployment-config.js","sourceRoot":"","sources":["../../src/client/deployment-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deployment-config.js","sourceRoot":"","sources":["../../src/client/deployment-config.ts"],"names":[],"mappings":"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"}
@@ -118,16 +118,11 @@ export declare class HttpClient {
118
118
  */
119
119
  private wrapFetch;
120
120
  /**
121
- * Determines if an error is retryable.
122
- * @param error - Error to check
123
- * @returns True if the error should be retried
124
- */
125
- private isRetryable;
126
- /**
127
- * Delays execution for the specified time.
128
- * @param ms - Delay in milliseconds
121
+ * Executes a request with retry logic.
122
+ * @param requestFn - Function that executes the request
123
+ * @returns Response from successful request
129
124
  */
130
- private delay;
125
+ private executeWithRetry;
131
126
  /**
132
127
  * Sends a GET request with optional query parameters.
133
128
  * @param path - URL path (appended to baseUrl)
@@ -149,23 +144,6 @@ export declare class HttpClient {
149
144
  * @returns Parsed response
150
145
  */
151
146
  private executeGetRequest;
152
- /**
153
- * Calculates the delay before the next retry attempt.
154
- * For rate-limit errors, uses the client rate limiter's slot timing.
155
- * For other transient errors, uses exponential backoff with jitter.
156
- * The result is capped at 60 seconds.
157
- * @param error - The error that triggered the retry
158
- * @param attempt - The current attempt number (0-based)
159
- * @returns Delay in milliseconds
160
- */
161
- private calculateRetryDelay;
162
- /**
163
- * Executes a request with retry logic.
164
- * Uses client-side throttling before each attempt and exponential backoff for transient errors.
165
- * @param requestFn - Function that executes the request
166
- * @returns Response from successful request
167
- */
168
- private executeWithRetry;
169
147
  /**
170
148
  * Sends a POST request with JSON body.
171
149
  * @param path - URL path (appended to baseUrl)
@@ -1 +1 @@
1
- {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../src/client/http-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../src/client/http-client.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,9 @@
4
4
  * @module core/http-client
5
5
  */
6
6
  import { AuthenticationError, DimensionsError, NetworkError, NotFoundError, QuerySyntaxError, RateLimitError, ServerError, sanitizeErrorMessage, TimeoutError, UnprocessableEntityError, } from "./errors.js";
7
+ import { executeRequestWithRetry } from "./request-retry.js";
8
+ import { getMcpUsageSession } from "./usage-context.js";
9
+ import { buildMcpUsageHeaders, buildMcpUserAgent } from "./usage-headers.js";
7
10
  /**
8
11
  * HTTP client for making requests to the Dimensions API.
9
12
  * Implements retry logic with client-side throttling and exponential backoff for transient errors.
@@ -51,10 +54,23 @@ export class HttpClient {
51
54
  * @returns Parsed response
52
55
  */
53
56
  async executeDslRequest(url, dsl, options) {
57
+ const sessionHeaders = {};
58
+ const usageHeaders = buildMcpUsageHeaders();
59
+ if (Object.keys(usageHeaders).length > 0) {
60
+ Object.assign(sessionHeaders, usageHeaders);
61
+ const session = getMcpUsageSession();
62
+ if (session) {
63
+ sessionHeaders["User-Agent"] = buildMcpUserAgent(session.version, session.client);
64
+ }
65
+ }
54
66
  return this.wrapFetch({
55
67
  url,
56
68
  method: "POST",
57
- headers: { "Content-Type": "application/x-www-form-urlencoded" },
69
+ headers: {
70
+ "Content-Type": "application/x-www-form-urlencoded",
71
+ ...sessionHeaders,
72
+ ...options?.headers,
73
+ },
58
74
  body: dsl,
59
75
  timeoutMs: options?.timeout ?? this.timeout,
60
76
  signal: options?.signal,
@@ -179,36 +195,16 @@ export class HttpClient {
179
195
  }
180
196
  }
181
197
  /**
182
- * Determines if an error is retryable.
183
- * @param error - Error to check
184
- * @returns True if the error should be retried
185
- */
186
- isRetryable(error) {
187
- // Retry rate limit errors
188
- if (error instanceof RateLimitError) {
189
- return true;
190
- }
191
- // Retry server errors (5xx)
192
- if (error instanceof ServerError) {
193
- return true;
194
- }
195
- // Retry network errors
196
- if (error instanceof NetworkError) {
197
- return true;
198
- }
199
- // Retry timeout errors
200
- if (error instanceof TimeoutError) {
201
- return true;
202
- }
203
- // Don't retry other errors (400, 401, 403, etc.)
204
- return false;
205
- }
206
- /**
207
- * Delays execution for the specified time.
208
- * @param ms - Delay in milliseconds
198
+ * Executes a request with retry logic.
199
+ * @param requestFn - Function that executes the request
200
+ * @returns Response from successful request
209
201
  */
210
- delay(ms) {
211
- return new Promise((resolve) => setTimeout(resolve, ms));
202
+ async executeWithRetry(requestFn) {
203
+ return executeRequestWithRetry(requestFn, {
204
+ maxRetries: this.maxRetries,
205
+ retryDelay: this.retryDelay,
206
+ rateLimiter: this.rateLimiter,
207
+ });
212
208
  }
213
209
  /**
214
210
  * Sends a GET request with optional query parameters.
@@ -259,55 +255,6 @@ export class HttpClient {
259
255
  signal: options?.signal,
260
256
  });
261
257
  }
262
- /**
263
- * Calculates the delay before the next retry attempt.
264
- * For rate-limit errors, uses the client rate limiter's slot timing.
265
- * For other transient errors, uses exponential backoff with jitter.
266
- * The result is capped at 60 seconds.
267
- * @param error - The error that triggered the retry
268
- * @param attempt - The current attempt number (0-based)
269
- * @returns Delay in milliseconds
270
- */
271
- calculateRetryDelay(error, attempt) {
272
- const MAX_DELAY = 60_000;
273
- if (error instanceof RateLimitError) {
274
- const delay = error.clientRateLimit?.retryAfterMs ??
275
- this.rateLimiter?.getRetryDelayMs() ??
276
- 2000 * 2 ** attempt;
277
- return Math.min(delay, MAX_DELAY);
278
- }
279
- const backoff = this.retryDelay * 2 ** attempt * (0.5 + Math.random() * 0.5);
280
- return Math.min(backoff, MAX_DELAY);
281
- }
282
- /**
283
- * Executes a request with retry logic.
284
- * Uses client-side throttling before each attempt and exponential backoff for transient errors.
285
- * @param requestFn - Function that executes the request
286
- * @returns Response from successful request
287
- */
288
- async executeWithRetry(requestFn) {
289
- let lastError = null;
290
- for (let attempt = 0; attempt <= this.maxRetries; attempt++) {
291
- await this.rateLimiter?.waitIfNeeded();
292
- try {
293
- const result = await requestFn();
294
- this.rateLimiter?.recordRequest();
295
- return result;
296
- }
297
- catch (error) {
298
- lastError = error;
299
- if (!this.isRetryable(error)) {
300
- throw error;
301
- }
302
- if (attempt >= this.maxRetries) {
303
- throw error;
304
- }
305
- const retryDelay = this.calculateRetryDelay(error, attempt);
306
- await this.delay(retryDelay);
307
- }
308
- }
309
- throw lastError ?? new NetworkError("Unknown error occurred");
310
- }
311
258
  /**
312
259
  * Sends a POST request with JSON body.
313
260
  * @param path - URL path (appended to baseUrl)
@@ -1 +1 @@
1
- {"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/client/http-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/client/http-client.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,24 @@
1
1
  /**
2
- * dsl-service adapter for hosted deployment (POST /query, JSON body).
2
+ * dsl-service adapter for hosted deployment (POST /query).
3
+ * Usage metadata is sent via X-Dimensions-* headers (see usage-headers.ts), not JSON body.
3
4
  * @module client/internal-dsl-client
4
5
  */
5
- import { type InternalDslEnvConfig } from "./deployment-config.js";
6
+ import type { InternalDslEnvConfig } from "./deployment-config.js";
7
+ import type { RateLimiter } from "./rate-limiter.js";
6
8
  import type { DslResponse, QueryExecutorOptions } from "./types.js";
7
9
  export interface InternalDslClientOptions {
8
10
  readonly config: InternalDslEnvConfig;
9
11
  /** User email for X-DIMENSIONS-USER (required by dsl-service) */
10
12
  readonly userEmail: string;
11
- /** Optional client IP to forward */
13
+ /**
14
+ * End-user IP forwarded as X-Forwarded-For for dsl-service per-IP throttling.
15
+ * Set from the inbound MCP HTTP request (see mcp/http-server.ts).
16
+ */
12
17
  readonly clientIp?: string;
13
18
  readonly timeout?: number;
19
+ readonly maxRetries?: number;
20
+ readonly retryDelay?: number;
21
+ readonly rateLimiter?: RateLimiter;
14
22
  }
15
23
  /**
16
24
  * Executes DSL queries against dsl-service internal API.
@@ -20,11 +28,15 @@ export declare class InternalDslClient {
20
28
  private readonly userEmail;
21
29
  private readonly clientIp?;
22
30
  private readonly timeout;
31
+ private readonly maxRetries;
32
+ private readonly retryDelay;
33
+ private readonly rateLimiter?;
23
34
  constructor(options: InternalDslClientOptions);
24
35
  /**
25
36
  * Runs a DSL query through dsl-service POST /query.
26
37
  */
27
38
  query(dsl: string, options?: QueryExecutorOptions): Promise<DslResponse>;
39
+ private executeQuery;
28
40
  private mapError;
29
41
  }
30
42
  //# sourceMappingURL=internal-dsl-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal-dsl-client.d.ts","sourceRoot":"","sources":["../../src/client/internal-dsl-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAA6B,KAAK,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAU9F,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEpE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,iEAAiE;IACjE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,oCAAoC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,OAAO,EAAE,wBAAwB;IAO7C;;OAEG;IACG,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC;YAqDhE,QAAQ;CAyBvB"}
1
+ {"version":3,"file":"internal-dsl-client.d.ts","sourceRoot":"","sources":["../../src/client/internal-dsl-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAWnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAIpE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,iEAAiE;IACjE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;CACpC;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAc;gBAE/B,OAAO,EAAE,wBAAwB;IAU7C;;OAEG;IACG,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC;YAQhE,YAAY;YA4DZ,QAAQ;CAoCvB"}
@@ -1,9 +1,12 @@
1
1
  /**
2
- * dsl-service adapter for hosted deployment (POST /query, JSON body).
2
+ * dsl-service adapter for hosted deployment (POST /query).
3
+ * Usage metadata is sent via X-Dimensions-* headers (see usage-headers.ts), not JSON body.
3
4
  * @module client/internal-dsl-client
4
5
  */
5
- import { buildHostedDslLoggingInfo } from "./deployment-config.js";
6
- import { AuthenticationError, DimensionsError, NetworkError, QuerySyntaxError, ServerError, sanitizeErrorMessage, TimeoutError, } from "./errors.js";
6
+ import { AuthenticationError, DimensionsError, NetworkError, QuerySyntaxError, RateLimitError, ServerError, sanitizeErrorMessage, TimeoutError, } from "./errors.js";
7
+ import { executeRequestWithRetry } from "./request-retry.js";
8
+ import { getMcpUsageSession } from "./usage-context.js";
9
+ import { buildMcpUsageHeaders, buildMcpUserAgent } from "./usage-headers.js";
7
10
  /**
8
11
  * Executes DSL queries against dsl-service internal API.
9
12
  */
@@ -12,25 +15,44 @@ export class InternalDslClient {
12
15
  userEmail;
13
16
  clientIp;
14
17
  timeout;
18
+ maxRetries;
19
+ retryDelay;
20
+ rateLimiter;
15
21
  constructor(options) {
16
22
  this.config = options.config;
17
23
  this.userEmail = options.userEmail;
18
24
  this.clientIp = options.clientIp;
19
25
  this.timeout = options.timeout ?? 30_000;
26
+ this.maxRetries = options.maxRetries ?? 3;
27
+ this.retryDelay = options.retryDelay ?? 1000;
28
+ this.rateLimiter = options.rateLimiter;
20
29
  }
21
30
  /**
22
31
  * Runs a DSL query through dsl-service POST /query.
23
32
  */
24
33
  async query(dsl, options) {
34
+ return executeRequestWithRetry(() => this.executeQuery(dsl, options), {
35
+ maxRetries: this.maxRetries,
36
+ retryDelay: this.retryDelay,
37
+ rateLimiter: this.rateLimiter,
38
+ });
39
+ }
40
+ async executeQuery(dsl, options) {
25
41
  const url = `${this.config.serviceUrl.replace(/\/$/, "")}/query`;
26
42
  const controller = new AbortController();
27
43
  const timeoutMs = options?.timeout ?? this.timeout;
28
44
  const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
45
+ const session = getMcpUsageSession();
46
+ const usageHeaders = buildMcpUsageHeaders();
29
47
  const headers = {
30
48
  "Content-Type": "application/json",
31
49
  "X-DIMENSIONS-USER": this.userEmail,
32
50
  Authorization: `Basic ${Buffer.from(`${this.config.username}:${this.config.password}`).toString("base64")}`,
51
+ ...usageHeaders,
33
52
  };
53
+ if (session) {
54
+ headers["User-Agent"] = buildMcpUserAgent(session.version, session.client);
55
+ }
34
56
  if (this.clientIp) {
35
57
  headers["X-Forwarded-For"] = this.clientIp;
36
58
  }
@@ -39,7 +61,6 @@ export class InternalDslClient {
39
61
  dsl_schema: this.config.dslSchema,
40
62
  host: this.config.host,
41
63
  variant: this.config.variant,
42
- additional_logging_info: buildHostedDslLoggingInfo(this.userEmail, this.config.variant),
43
64
  };
44
65
  try {
45
66
  const response = await fetch(url, {
@@ -87,6 +108,13 @@ export class InternalDslClient {
87
108
  return new AuthenticationError(message);
88
109
  case 400:
89
110
  return new QuerySyntaxError(message);
111
+ case 429: {
112
+ const retryAfterMs = this.rateLimiter?.getRetryDelayMs() ?? 2000;
113
+ return new RateLimitError("Rate limit exceeded — wait before retrying", Math.ceil(retryAfterMs / 1000), {
114
+ remaining: this.rateLimiter?.getRemainingRequests() ?? 0,
115
+ retryAfterMs,
116
+ });
117
+ }
90
118
  default:
91
119
  if (response.status >= 500) {
92
120
  return new ServerError(message, response.status);
@@ -1 +1 @@
1
- {"version":3,"file":"internal-dsl-client.js","sourceRoot":"","sources":["../../src/client/internal-dsl-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"internal-dsl-client.js","sourceRoot":"","sources":["../../src/client/internal-dsl-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Shared retry logic for Dimensions HTTP clients (public API and dsl-service).
3
+ * @module client/request-retry
4
+ */
5
+ import type { RateLimiter } from "./rate-limiter.js";
6
+ export interface RequestRetryOptions {
7
+ readonly maxRetries: number;
8
+ readonly retryDelay: number;
9
+ readonly rateLimiter?: RateLimiter;
10
+ }
11
+ type DelayFn = (ms: number) => Promise<void>;
12
+ /**
13
+ * Delays before the next retry attempt. Exported for unit tests.
14
+ */
15
+ export declare function requestRetryDelay(ms: number): Promise<void>;
16
+ /**
17
+ * Overrides retry delay behaviour in unit tests.
18
+ * @internal
19
+ */
20
+ export declare function setRequestRetryDelayFn(fn: DelayFn): void;
21
+ /**
22
+ * Restores default retry delay behaviour after tests.
23
+ * @internal
24
+ */
25
+ export declare function resetRequestRetryDelayFn(): void;
26
+ /**
27
+ * Returns true when a failed request should be retried.
28
+ */
29
+ export declare function isRetryableRequestError(error: unknown): boolean;
30
+ /**
31
+ * Calculates delay before the next retry (rate-limit aware, exponential backoff with jitter).
32
+ */
33
+ export declare function calculateRequestRetryDelay(error: unknown, attempt: number, options: Pick<RequestRetryOptions, "retryDelay" | "rateLimiter">): number;
34
+ /**
35
+ * Executes a request with client-side throttling and retries for transient failures.
36
+ */
37
+ export declare function executeRequestWithRetry<T>(requestFn: () => Promise<T>, options: RequestRetryOptions): Promise<T>;
38
+ export {};
39
+ //# sourceMappingURL=request-retry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-retry.d.ts","sourceRoot":"","sources":["../../src/client/request-retry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;CACpC;AAED,KAAK,OAAO,GAAG,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAI7C;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAExD;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAc/D;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,YAAY,GAAG,aAAa,CAAC,GAC/D,MAAM,CAaR;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,CAAC,EAC7C,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,CAAC,CAAC,CA0BZ"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Shared retry logic for Dimensions HTTP clients (public API and dsl-service).
3
+ * @module client/request-retry
4
+ */
5
+ import { NetworkError, RateLimitError, ServerError, TimeoutError } from "./errors.js";
6
+ let delayFn = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
7
+ /**
8
+ * Delays before the next retry attempt. Exported for unit tests.
9
+ */
10
+ export async function requestRetryDelay(ms) {
11
+ return delayFn(ms);
12
+ }
13
+ /**
14
+ * Overrides retry delay behaviour in unit tests.
15
+ * @internal
16
+ */
17
+ export function setRequestRetryDelayFn(fn) {
18
+ delayFn = fn;
19
+ }
20
+ /**
21
+ * Restores default retry delay behaviour after tests.
22
+ * @internal
23
+ */
24
+ export function resetRequestRetryDelayFn() {
25
+ delayFn = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
26
+ }
27
+ /**
28
+ * Returns true when a failed request should be retried.
29
+ */
30
+ export function isRetryableRequestError(error) {
31
+ if (error instanceof RateLimitError) {
32
+ return true;
33
+ }
34
+ if (error instanceof ServerError) {
35
+ return true;
36
+ }
37
+ if (error instanceof NetworkError) {
38
+ return true;
39
+ }
40
+ if (error instanceof TimeoutError) {
41
+ return true;
42
+ }
43
+ return false;
44
+ }
45
+ /**
46
+ * Calculates delay before the next retry (rate-limit aware, exponential backoff with jitter).
47
+ */
48
+ export function calculateRequestRetryDelay(error, attempt, options) {
49
+ const MAX_DELAY = 60_000;
50
+ if (error instanceof RateLimitError) {
51
+ const delay = error.clientRateLimit?.retryAfterMs ??
52
+ options.rateLimiter?.getRetryDelayMs() ??
53
+ 2000 * 2 ** attempt;
54
+ return Math.min(delay, MAX_DELAY);
55
+ }
56
+ const backoff = options.retryDelay * 2 ** attempt * (0.5 + Math.random() * 0.5);
57
+ return Math.min(backoff, MAX_DELAY);
58
+ }
59
+ /**
60
+ * Executes a request with client-side throttling and retries for transient failures.
61
+ */
62
+ export async function executeRequestWithRetry(requestFn, options) {
63
+ let lastError = null;
64
+ for (let attempt = 0; attempt <= options.maxRetries; attempt++) {
65
+ await options.rateLimiter?.waitIfNeeded();
66
+ try {
67
+ const result = await requestFn();
68
+ options.rateLimiter?.recordRequest();
69
+ return result;
70
+ }
71
+ catch (error) {
72
+ lastError = error;
73
+ if (!isRetryableRequestError(error)) {
74
+ throw error;
75
+ }
76
+ if (attempt >= options.maxRetries) {
77
+ throw error;
78
+ }
79
+ const retryDelay = calculateRequestRetryDelay(error, attempt, options);
80
+ await requestRetryDelay(retryDelay);
81
+ }
82
+ }
83
+ throw lastError ?? new NetworkError("Unknown error occurred");
84
+ }
85
+ //# sourceMappingURL=request-retry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-retry.js","sourceRoot":"","sources":["../../src/client/request-retry.ts"],"names":[],"mappings":"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"}