@insightsentry/mcp 1.4.29 → 1.4.31

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 CHANGED
@@ -32,7 +32,7 @@ insight whoami
32
32
  insight logout
33
33
  ```
34
34
 
35
- `whoami` parses the configured JWT locally and prints `uuid`, falling back to `email` then `sub`.
35
+ `whoami` parses the configured JWT locally and prints `email`, falling back to `uuid`.
36
36
 
37
37
  ## MCP Setup
38
38
 
@@ -96,7 +96,7 @@ Auth and files:
96
96
 
97
97
  | Tool | Purpose |
98
98
  |------|---------|
99
- | `whoami` | Print the configured user's `uuid`/email from the API key JWT |
99
+ | `whoami` | Print the configured user's email/uuid from the API key JWT |
100
100
  | `download_history` | Download date ranges to JSON/CSV files |
101
101
  | `get_symbol_history` | Same as `download_history`; downloads history to files |
102
102
  | `render_chart` | Render Chart.js configs as PNG images |
@@ -1,7 +1,9 @@
1
1
  export declare class ApiError extends Error {
2
2
  readonly status: number;
3
3
  readonly apiMessage: string;
4
- constructor(status: number, apiMessage: string);
4
+ readonly body: unknown;
5
+ readonly retryAfterMs: number | null;
6
+ constructor(status: number, apiMessage: string, body?: unknown, retryAfterMs?: number | null);
5
7
  get retryable(): boolean;
6
8
  get terminal(): boolean;
7
9
  }
@@ -9,12 +11,15 @@ export interface ApiClientOptions {
9
11
  retryDelaysMs?: readonly number[];
10
12
  historyRateLimitRetryDelayMs?: number;
11
13
  sleep?: (delayMs: number) => Promise<void>;
14
+ onRetry?: (event: ApiRetryEvent) => void;
12
15
  }
13
- export interface ApiPlanEntitlementError {
14
- key: string;
15
- error: string;
16
+ export interface ApiRetryEvent {
17
+ status: number;
18
+ delayMs: number;
19
+ attempt: number;
20
+ pathTemplate: string;
21
+ reason: string;
16
22
  }
17
- export declare function validateApiPlanEntitlements(apiKey: string, pathTemplate: string): ApiPlanEntitlementError | null;
18
23
  export declare function isTerminalApiError(error: unknown): boolean;
19
24
  export declare class ApiClient {
20
25
  private apiKey;
@@ -22,9 +27,11 @@ export declare class ApiClient {
22
27
  private historyRateLimitRetryDelayMs;
23
28
  private historyRateLimitPause;
24
29
  private sleep;
30
+ private onRetry?;
25
31
  constructor(apiKey: string, options?: ApiClientOptions);
26
32
  request(method: string, pathTemplate: string, params: Record<string, any>): Promise<any>;
27
33
  private waitForRetry;
28
34
  private waitForHistoryRateLimitPause;
35
+ private sleepWithRetryNotice;
29
36
  }
30
37
  //# sourceMappingURL=api-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAaA,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAO9C,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,QAAQ,IAAI,OAAO,CAItB;CACF;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAoCD,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,GACnB,uBAAuB,GAAG,IAAI,CAchC;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAK1D;AA6BD,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,4BAA4B,CAAS;IAC7C,OAAO,CAAC,qBAAqB,CAA8B;IAC3D,OAAO,CAAC,KAAK,CAAqC;gBAEtC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB;IAQpD,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;YA0EhF,YAAY;YAmCZ,4BAA4B;CAW3C"}
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAaA,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;gBAGnC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,OAAc,EACpB,YAAY,GAAE,MAAM,GAAG,IAAW;IAUpC,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,QAAQ,IAAI,OAAO,CAItB;CACF;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;CAC1C;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAwBD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAK1D;AA4CD,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,4BAA4B,CAAS;IAC7C,OAAO,CAAC,qBAAqB,CAA8B;IAC3D,OAAO,CAAC,KAAK,CAAqC;IAClD,OAAO,CAAC,OAAO,CAAC,CAAiC;gBAErC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB;IASpD,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;YAuEhF,YAAY;YAmDZ,4BAA4B;YAsB5B,oBAAoB;CAgBnC"}
@@ -1,8 +1,8 @@
1
1
  const BASE_URL = "https://api.insightsentry.com";
2
- const HISTORY_PLAN_NAMES = new Set(["ultra", "mega", "enterprise"]);
3
2
  const DEFAULT_RETRY_DELAYS_MS = [500, 1000];
4
3
  const HISTORY_RATE_LIMIT_RETRY_DELAY_MS = 60_000;
5
4
  const HISTORY_CONCURRENCY_MAX_RETRIES = 5;
5
+ const RETRY_AFTER_MAX_RETRIES = 5;
6
6
  const RETRYABLE_TERMINAL_STATUSES = new Set([408, 429]);
7
7
  // Symbol code must be EXCHANGE:SYMBOL format (e.g., NASDAQ:AAPL)
8
8
  const SYMBOL_CODE_PATTERN = /^[A-Z0-9_./-]+:[A-Z0-9_./!-]+$/;
@@ -11,11 +11,15 @@ const SYMBOL_PARAM_NAMES = new Set(["symbol", "code", "codes"]);
11
11
  export class ApiError extends Error {
12
12
  status;
13
13
  apiMessage;
14
- constructor(status, apiMessage) {
14
+ body;
15
+ retryAfterMs;
16
+ constructor(status, apiMessage, body = null, retryAfterMs = null) {
15
17
  super(`API error (${status}): ${apiMessage}`);
16
18
  this.name = "ApiError";
17
19
  this.status = status;
18
20
  this.apiMessage = apiMessage;
21
+ this.body = body;
22
+ this.retryAfterMs = retryAfterMs;
19
23
  }
20
24
  get retryable() {
21
25
  return this.status >= 500 && this.status <= 599;
@@ -43,31 +47,6 @@ function validateSymbolParams(params) {
43
47
  function isHistoryEndpoint(pathTemplate) {
44
48
  return /\/history(?:[/?#]|$)/.test(pathTemplate);
45
49
  }
46
- function decodeJwtPayload(token) {
47
- const parts = token.split(".");
48
- if (parts.length !== 3)
49
- return null;
50
- try {
51
- const payload = JSON.parse(Buffer.from(parts[1], "base64url").toString("utf8"));
52
- return payload && typeof payload === "object" && !Array.isArray(payload) ? payload : null;
53
- }
54
- catch {
55
- return null;
56
- }
57
- }
58
- export function validateApiPlanEntitlements(apiKey, pathTemplate) {
59
- if (isHistoryEndpoint(pathTemplate)) {
60
- const payload = decodeJwtPayload(apiKey);
61
- const plan = typeof payload?.plan === "string" ? payload.plan.trim().toLowerCase() : "";
62
- if (HISTORY_PLAN_NAMES.has(plan))
63
- return null;
64
- return {
65
- key: "plan",
66
- error: "The /history endpoint requires an Ultra, Mega, or Enterprise plan. Use get_symbol_series for recent data or upgrade your InsightSentry plan for deep historical access.",
67
- };
68
- }
69
- return null;
70
- }
71
50
  export function isTerminalApiError(error) {
72
51
  if (error instanceof ApiError)
73
52
  return error.terminal;
@@ -77,15 +56,31 @@ export function isTerminalApiError(error) {
77
56
  }
78
57
  async function apiErrorFromResponse(response) {
79
58
  const text = await response.text().catch(() => "");
59
+ const retryAfterMs = parseRetryAfterMs(response.headers.get("retry-after"));
80
60
  let errorMessage;
61
+ let body = null;
81
62
  try {
82
63
  const errorJson = JSON.parse(text);
64
+ body = errorJson;
83
65
  errorMessage = errorJson.message || errorJson.error || JSON.stringify(errorJson);
84
66
  }
85
67
  catch {
86
68
  errorMessage = text || `HTTP ${response.status} ${response.statusText}`;
69
+ body = text || null;
87
70
  }
88
- return new ApiError(response.status, errorMessage);
71
+ return new ApiError(response.status, errorMessage, body, retryAfterMs);
72
+ }
73
+ function parseRetryAfterMs(value) {
74
+ if (!value?.trim())
75
+ return null;
76
+ const seconds = Number(value);
77
+ if (Number.isFinite(seconds) && seconds > 0) {
78
+ return Math.ceil(seconds * 1000);
79
+ }
80
+ const dateMs = Date.parse(value);
81
+ if (!Number.isFinite(dateMs))
82
+ return null;
83
+ return Math.max(0, dateMs - Date.now());
89
84
  }
90
85
  function sleep(delayMs) {
91
86
  return new Promise((resolve) => setTimeout(resolve, delayMs));
@@ -103,12 +98,14 @@ export class ApiClient {
103
98
  historyRateLimitRetryDelayMs;
104
99
  historyRateLimitPause = null;
105
100
  sleep;
101
+ onRetry;
106
102
  constructor(apiKey, options = {}) {
107
103
  this.apiKey = apiKey;
108
104
  this.retryDelaysMs = options.retryDelaysMs ?? DEFAULT_RETRY_DELAYS_MS;
109
105
  this.historyRateLimitRetryDelayMs =
110
106
  options.historyRateLimitRetryDelayMs ?? HISTORY_RATE_LIMIT_RETRY_DELAY_MS;
111
107
  this.sleep = options.sleep ?? sleep;
108
+ this.onRetry = options.onRetry;
112
109
  }
113
110
  async request(method, pathTemplate, params) {
114
111
  // Validate symbol codes before making the request
@@ -116,9 +113,6 @@ export class ApiClient {
116
113
  if (symbolError) {
117
114
  throw new Error(symbolError);
118
115
  }
119
- const planError = validateApiPlanEntitlements(this.apiKey, pathTemplate);
120
- if (planError)
121
- throw new Error(planError.error);
122
116
  // Separate path params from query/body params
123
117
  const pathParamNames = [...pathTemplate.matchAll(/\{(\w+)\}/g)].map((m) => m[1]);
124
118
  let path = pathTemplate;
@@ -182,6 +176,10 @@ export class ApiClient {
182
176
  }
183
177
  async waitForRetry(error, pathTemplate, attempt) {
184
178
  const retryDelay = this.retryDelaysMs[attempt];
179
+ if (error.status === 429 && error.retryAfterMs !== null && attempt < RETRY_AFTER_MAX_RETRIES) {
180
+ await this.sleepWithRetryNotice(error, pathTemplate, attempt, error.retryAfterMs, "rate limited");
181
+ return true;
182
+ }
185
183
  if (error.retryable && retryDelay !== undefined) {
186
184
  await this.sleep(retryDelay);
187
185
  return true;
@@ -194,21 +192,21 @@ export class ApiClient {
194
192
  error.status === 429 &&
195
193
  isHistoryConcurrencyMessage(error.apiMessage) &&
196
194
  attempt < HISTORY_CONCURRENCY_MAX_RETRIES) {
197
- await this.sleep(this.historyRateLimitRetryDelayMs * 2 ** attempt);
195
+ await this.sleepWithRetryNotice(error, pathTemplate, attempt, this.historyRateLimitRetryDelayMs * 2 ** attempt, "history concurrency limit");
198
196
  return true;
199
197
  }
200
198
  if (attempt === 0 &&
201
199
  isHistoryEndpoint(pathTemplate) &&
202
200
  error.status === 429 &&
203
201
  isRetryableHistoryRateLimitMessage(error.apiMessage)) {
204
- await this.waitForHistoryRateLimitPause();
202
+ await this.waitForHistoryRateLimitPause(error, pathTemplate, attempt);
205
203
  return true;
206
204
  }
207
205
  return false;
208
206
  }
209
- async waitForHistoryRateLimitPause() {
207
+ async waitForHistoryRateLimitPause(error, pathTemplate, attempt) {
210
208
  if (!this.historyRateLimitPause) {
211
- const pause = this.sleep(this.historyRateLimitRetryDelayMs).finally(() => {
209
+ const pause = this.sleepWithRetryNotice(error, pathTemplate, attempt, this.historyRateLimitRetryDelayMs, "history rate limit").finally(() => {
212
210
  if (this.historyRateLimitPause === pause) {
213
211
  this.historyRateLimitPause = null;
214
212
  }
@@ -217,5 +215,15 @@ export class ApiClient {
217
215
  }
218
216
  await this.historyRateLimitPause;
219
217
  }
218
+ async sleepWithRetryNotice(error, pathTemplate, attempt, delayMs, reason) {
219
+ this.onRetry?.({
220
+ status: error.status,
221
+ delayMs,
222
+ attempt,
223
+ pathTemplate,
224
+ reason,
225
+ });
226
+ await this.sleep(delayMs);
227
+ }
220
228
  }
221
229
  //# sourceMappingURL=api-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"auth-status.d.ts","sourceRoot":"","sources":["../src/auth-status.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE9D,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAUD,wBAAgB,aAAa,IAAI,UAAU,CAG1C;AAED,wBAAgB,SAAS,IAAI,YAAY,CAGxC;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,aAAa,GAAG,YAAY,CAqBhG;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAkBnE;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,MAAM,EAClB,GAAG,OAAa,GACf,UAAU,CA4CZ;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE5C"}
1
+ {"version":3,"file":"auth-status.d.ts","sourceRoot":"","sources":["../src/auth-status.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE9D,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAQD,wBAAgB,aAAa,IAAI,UAAU,CAG1C;AAED,wBAAgB,SAAS,IAAI,YAAY,CAGxC;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,aAAa,GAAG,YAAY,CAqBhG;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAmBnE;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,MAAM,EAClB,GAAG,OAAa,GACf,UAAU,CAsDZ;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE5C"}
@@ -18,11 +18,11 @@ export function getWhoamiForKey(apiKey, _source) {
18
18
  error: "API key is not a valid InsightSentry JWT.",
19
19
  };
20
20
  }
21
- const identity = payload.uuid ?? payload.email ?? payload.sub;
21
+ const identity = getPayloadIdentity(payload);
22
22
  if (!identity) {
23
23
  return {
24
24
  ok: false,
25
- error: "API key JWT does not include uuid, email, or sub.",
25
+ error: "API key JWT does not include email or uuid.",
26
26
  };
27
27
  }
28
28
  return { ok: true, identity };
@@ -36,16 +36,18 @@ export function validateApiKeyForLogin(apiKey) {
36
36
  error: "API key is not a valid InsightSentry JWT.",
37
37
  };
38
38
  }
39
- if (!payload.uuid?.trim() || !payload.plan?.trim()) {
39
+ const identity = getPayloadIdentity(payload);
40
+ if (!identity) {
40
41
  return {
41
42
  ok: false,
42
- error: "API key JWT must include uuid and plan fields.",
43
+ error: "API key JWT must include email or uuid.",
43
44
  };
44
45
  }
45
- return { ok: true, identity: payload.uuid };
46
+ return { ok: true, identity };
46
47
  }
47
48
  export function getAuthStatusForKey(apiKey, source, configPath, now = new Date()) {
48
49
  const token = apiKey?.trim();
50
+ const sourceLabel = source === "environment" ? "INSIGHTSENTRY_API_KEY" : "saved config";
49
51
  if (!token) {
50
52
  return {
51
53
  authenticated: false,
@@ -64,19 +66,29 @@ export function getAuthStatusForKey(apiKey, source, configPath, now = new Date()
64
66
  config_path: configPath,
65
67
  key_present: true,
66
68
  key_format_valid: false,
67
- message: "Logged out. INSIGHTSENTRY_API_KEY is not a valid API key. InsightSentry API keys are JWT tokens.",
69
+ message: `Logged out. API key from ${sourceLabel} is not a valid API key. InsightSentry API keys are JWT tokens.`,
68
70
  };
69
71
  }
70
72
  const expiresAt = payload.exp ? new Date(payload.exp * 1000) : undefined;
71
73
  const expired = expiresAt ? expiresAt.getTime() <= now.getTime() : undefined;
72
- const sourceLabel = source === "environment" ? "INSIGHTSENTRY_API_KEY" : "saved config";
74
+ const identity = getPayloadIdentity(payload);
75
+ if (!identity) {
76
+ return {
77
+ authenticated: false,
78
+ source,
79
+ config_path: configPath,
80
+ key_present: true,
81
+ key_format_valid: false,
82
+ message: `Logged out. API key from ${sourceLabel} must include email or uuid.`,
83
+ };
84
+ }
73
85
  return {
74
86
  authenticated: expired !== true,
75
87
  source,
76
88
  config_path: configPath,
77
89
  key_present: true,
78
90
  key_format_valid: true,
79
- subject: payload.uuid ?? payload.email ?? payload.sub,
91
+ subject: identity,
80
92
  expires_at: expiresAt?.toISOString(),
81
93
  expired,
82
94
  message: expired === true
@@ -100,4 +112,9 @@ function decodeJwtPayload(token) {
100
112
  return null;
101
113
  }
102
114
  }
115
+ function getPayloadIdentity(payload) {
116
+ const email = typeof payload.email === "string" ? payload.email.trim() : "";
117
+ const uuid = typeof payload.uuid === "string" ? payload.uuid.trim() : "";
118
+ return email || uuid || undefined;
119
+ }
103
120
  //# sourceMappingURL=auth-status.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-status.js","sourceRoot":"","sources":["../src/auth-status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth-status.js","sourceRoot":"","sources":["../src/auth-status.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAInD,OAAO,EAAE,KAAK,UAAU,EAAyC,MAAM,kBAAkB,CAAC;AAwB1F,OAAO,EAAE,KAAK,cAAc,EAAmB,MAAM,uBAAuB,CAAC;AAE7E,OAAO,EAKL,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAsD/C,UAAU,UAAU;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CA0CpD;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAoDlC;AAED,wBAAgB,wBAAwB,CAAC,WAAW,SAA2B,GAAG,MAAM,CA8BvF;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAe7C;AA0FD,wBAAgB,aAAa,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAsC1D;AAkCD,KAAK,SAAS,GAAG,CACf,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KACxB,OAAO,CAAC,GAAG,CAAC,CAAC;AAClB,KAAK,YAAY,GAAG,CAClB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,KACX,OAAO,CAAC;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AACnD,KAAK,aAAa,GAAG,CACnB,MAAM,EAAE,kBAAkB,EAC1B,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,KACZ,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEnD,UAAU,KAAK;IACb,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3B,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,uBAAuB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,CAAC;IACxD,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;IACzC,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,EAAE,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,UAAU,CAAC;CAClC;AAKD,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAOD,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAWrE;AAw4CD,wBAAgB,IAAI,SAYnB"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAInD,OAAO,EAAE,KAAK,UAAU,EAAyC,MAAM,kBAAkB,CAAC;AAwB1F,OAAO,EAAE,KAAK,cAAc,EAAmB,MAAM,uBAAuB,CAAC;AAE7E,OAAO,EAKL,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAsD/C,UAAU,UAAU;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CA0CpD;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAoDlC;AAED,wBAAgB,wBAAwB,CAAC,WAAW,SAA2B,GAAG,MAAM,CA8BvF;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAe7C;AA0FD,wBAAgB,aAAa,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAsC1D;AAkCD,KAAK,SAAS,GAAG,CACf,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KACxB,OAAO,CAAC,GAAG,CAAC,CAAC;AAClB,KAAK,YAAY,GAAG,CAClB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,KACX,OAAO,CAAC;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AACnD,KAAK,aAAa,GAAG,CACnB,MAAM,EAAE,kBAAkB,EAC1B,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,KACZ,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEnD,UAAU,KAAK;IACb,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3B,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,uBAAuB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,CAAC;IACxD,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;IACzC,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,EAAE,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,UAAU,CAAC;CAClC;AAKD,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAOD,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAWrE;AAq4CD,wBAAgB,IAAI,SAYnB"}
package/dist/cli.js CHANGED
@@ -4,7 +4,7 @@ import { emitKeypressEvents } from "node:readline";
4
4
  import { createInterface } from "node:readline/promises";
5
5
  import { promisify } from "node:util";
6
6
  import { z } from "zod";
7
- import { ApiClient, validateApiPlanEntitlements } from "./api-client.js";
7
+ import { ApiClient, ApiError } from "./api-client.js";
8
8
  import { coerceArgs, getZodEnumValues, getZodTypeName, isOptionalZodType } from "./arg-coercion.js";
9
9
  import { getAuthStatus, validateApiKeyForLogin } from "./auth-status.js";
10
10
  import { renderChart } from "./chart.js";
@@ -145,7 +145,7 @@ export function buildHelp() {
145
145
  lines.push("");
146
146
  lines.push("Authentication:");
147
147
  lines.push(" insight login --key <your-api-key> Save API key (persisted across sessions)");
148
- lines.push(" insight whoami Print the logged-in user's email");
148
+ lines.push(" insight whoami Print the logged-in user's email/uuid");
149
149
  lines.push(" insight version Check current/latest CLI version");
150
150
  lines.push(" insight logout Remove saved API key");
151
151
  lines.push(" insight update Update this CLI with npm");
@@ -495,7 +495,7 @@ async function runCliInner(argv, io) {
495
495
  await maybeWritePostToolUpgradeNotice(io);
496
496
  }
497
497
  catch (error) {
498
- io.write(`Error: ${error.message}\n`);
498
+ io.write(formatCliError(error));
499
499
  io.exit(1);
500
500
  }
501
501
  return;
@@ -627,11 +627,7 @@ async function runCliInner(argv, io) {
627
627
  try {
628
628
  const knownArgKeys = ["filter", "store", "output_file", "output_dir"];
629
629
  const initialApiArgs = pickKnownArgs(resolvedArgs, Object.keys(tool.schema), knownArgKeys);
630
- const apiArgs = await resolveApiPlanEntitlementArgs(initialApiArgs, tool, sessionApiKey, io);
631
- if (!apiArgs) {
632
- io.exit(1);
633
- return;
634
- }
630
+ const apiArgs = initialApiArgs;
635
631
  reportArgUsage(io, apiArgs, Object.keys(tool.schema), inputArgs, knownArgKeys);
636
632
  const outputValue = await runApiTool({
637
633
  toolName: tool.name,
@@ -645,7 +641,7 @@ async function runCliInner(argv, io) {
645
641
  await maybeWritePostToolUpgradeNotice(io);
646
642
  }
647
643
  catch (error) {
648
- io.write(`Error: ${error.message}\n`);
644
+ io.write(formatCliError(error));
649
645
  io.exit(1);
650
646
  }
651
647
  }
@@ -798,9 +794,24 @@ function resolveRequest(io, apiKeyOverride) {
798
794
  return null;
799
795
  if (io.createRequestFromApiKey)
800
796
  return io.createRequestFromApiKey(apiKey);
801
- const client = new ApiClient(apiKey);
797
+ const client = new ApiClient(apiKey, {
798
+ onRetry: (event) => io.progress?.(formatRetryNotice(event)),
799
+ });
802
800
  return (method, path, params) => client.request(method, path, params);
803
801
  }
802
+ function formatRetryNotice(event) {
803
+ const seconds = Math.max(1, Math.ceil(event.delayMs / 1000));
804
+ return `Rate limited (${event.reason}). Retrying in ${seconds} second${seconds === 1 ? "" : "s"}...`;
805
+ }
806
+ function formatCliError(error) {
807
+ if (error instanceof ApiError && isDisplayableJsonBody(error.body)) {
808
+ return `Error:\n${JSON.stringify(error.body, null, 2)}\n`;
809
+ }
810
+ return `Error: ${error?.message ?? String(error)}\n`;
811
+ }
812
+ function isDisplayableJsonBody(value) {
813
+ return value !== null && typeof value === "object";
814
+ }
804
815
  function reportArgUsage(io, resolvedArgs, knownKeys, originalArgs, extraKnownKeys = []) {
805
816
  if (!io.progress)
806
817
  return;
@@ -824,17 +835,6 @@ function formatArgValue(value) {
824
835
  const singleLine = value.replace(/\s+/g, " ").trim();
825
836
  return singleLine.length <= 120 ? singleLine : `${singleLine.slice(0, 117)}...`;
826
837
  }
827
- async function resolveApiPlanEntitlementArgs(args, tool, apiKeyOverride, io) {
828
- const apiKey = apiKeyOverride?.trim() || resolveApiKey();
829
- if (!apiKey)
830
- return args;
831
- const error = validateApiPlanEntitlements(apiKey, tool.pathTemplate);
832
- if (!error)
833
- return args;
834
- const label = toolPromptLabel(error.key);
835
- io.write(`Invalid ${label}: ${error.error}\n`);
836
- return null;
837
- }
838
838
  function missingToolArgs(args, tool) {
839
839
  return Object.entries(tool.schema)
840
840
  .filter(([_key, zodType]) => !isOptionalZodType(zodType))