@revfleet/hscli 0.9.8 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/CHANGELOG.md +132 -0
  2. package/README.md +142 -13
  3. package/SECURITY.md +14 -3
  4. package/dist/cli.js +3 -3
  5. package/dist/cli.js.map +1 -1
  6. package/dist/cloud/cloud-run-caller-contract.d.ts +28 -0
  7. package/dist/cloud/cloud-run-caller-contract.js +35 -0
  8. package/dist/cloud/cloud-run-caller-contract.js.map +1 -0
  9. package/dist/cloud/main.d.ts +1 -0
  10. package/dist/cloud/main.js +15 -0
  11. package/dist/cloud/main.js.map +1 -0
  12. package/dist/cloud/server.d.ts +5 -0
  13. package/dist/cloud/server.js +133 -0
  14. package/dist/cloud/server.js.map +1 -0
  15. package/dist/commands/agent/access-baseline.d.ts +47 -0
  16. package/dist/commands/agent/access-baseline.js +238 -0
  17. package/dist/commands/agent/access-baseline.js.map +1 -0
  18. package/dist/commands/agent/index.js +99 -11
  19. package/dist/commands/agent/index.js.map +1 -1
  20. package/dist/commands/agent/recipes.d.ts +7 -1
  21. package/dist/commands/agent/recipes.js +57 -1
  22. package/dist/commands/agent/recipes.js.map +1 -1
  23. package/dist/commands/agent/reporting-joinability.d.ts +129 -0
  24. package/dist/commands/agent/reporting-joinability.js +412 -0
  25. package/dist/commands/agent/reporting-joinability.js.map +1 -0
  26. package/dist/commands/agent/runner.d.ts +1 -0
  27. package/dist/commands/agent/runner.js +181 -27
  28. package/dist/commands/agent/runner.js.map +1 -1
  29. package/dist/commands/audit/index.js +2 -1
  30. package/dist/commands/audit/index.js.map +1 -1
  31. package/dist/commands/auth/index.d.ts +6 -2
  32. package/dist/commands/auth/index.js +172 -57
  33. package/dist/commands/auth/index.js.map +1 -1
  34. package/dist/commands/backup/index.js +6 -8
  35. package/dist/commands/backup/index.js.map +1 -1
  36. package/dist/commands/crm/describe.js +3 -3
  37. package/dist/commands/crm/describe.js.map +1 -1
  38. package/dist/commands/crm/index.js +2 -0
  39. package/dist/commands/crm/index.js.map +1 -1
  40. package/dist/commands/crm/record-layouts.d.ts +3 -0
  41. package/dist/commands/crm/record-layouts.js +246 -0
  42. package/dist/commands/crm/record-layouts.js.map +1 -0
  43. package/dist/commands/crm/shared.d.ts +1 -0
  44. package/dist/commands/crm/shared.js +7 -3
  45. package/dist/commands/crm/shared.js.map +1 -1
  46. package/dist/commands/crm/sync.js +170 -27
  47. package/dist/commands/crm/sync.js.map +1 -1
  48. package/dist/commands/doctor/index.js +5 -5
  49. package/dist/commands/doctor/index.js.map +1 -1
  50. package/dist/commands/internal/index.js +20 -6
  51. package/dist/commands/internal/index.js.map +1 -1
  52. package/dist/commands/internal-session.d.ts +4 -0
  53. package/dist/commands/internal-session.js +27 -0
  54. package/dist/commands/internal-session.js.map +1 -1
  55. package/dist/commands/lists/index.js +18 -0
  56. package/dist/commands/lists/index.js.map +1 -1
  57. package/dist/commands/marketing/index.js +5 -5
  58. package/dist/commands/marketing/index.js.map +1 -1
  59. package/dist/commands/mcp.d.ts +2 -1
  60. package/dist/commands/mcp.js +49 -5
  61. package/dist/commands/mcp.js.map +1 -1
  62. package/dist/commands/sales/index.js +2 -0
  63. package/dist/commands/sales/index.js.map +1 -1
  64. package/dist/commands/sales/views.d.ts +3 -0
  65. package/dist/commands/sales/views.js +263 -0
  66. package/dist/commands/sales/views.js.map +1 -0
  67. package/dist/commands/settings/index.js +20 -0
  68. package/dist/commands/settings/index.js.map +1 -1
  69. package/dist/commands/trace/index.js +11 -4
  70. package/dist/commands/trace/index.js.map +1 -1
  71. package/dist/commands/workflows/index.js +2 -0
  72. package/dist/commands/workflows/index.js.map +1 -1
  73. package/dist/commands/workflows/internal.d.ts +3 -0
  74. package/dist/commands/workflows/internal.js +332 -0
  75. package/dist/commands/workflows/internal.js.map +1 -0
  76. package/dist/core/auth.d.ts +18 -2
  77. package/dist/core/auth.js +96 -3
  78. package/dist/core/auth.js.map +1 -1
  79. package/dist/core/bounded-response.d.ts +2 -0
  80. package/dist/core/bounded-response.js +37 -0
  81. package/dist/core/bounded-response.js.map +1 -0
  82. package/dist/core/capabilities.d.ts +8 -0
  83. package/dist/core/capabilities.js +31 -3
  84. package/dist/core/capabilities.js.map +1 -1
  85. package/dist/core/http.d.ts +16 -0
  86. package/dist/core/http.js +151 -35
  87. package/dist/core/http.js.map +1 -1
  88. package/dist/core/output.js +20 -4
  89. package/dist/core/output.js.map +1 -1
  90. package/dist/core/permissions.js +15 -1
  91. package/dist/core/permissions.js.map +1 -1
  92. package/dist/core/policy.js +8 -0
  93. package/dist/core/policy.js.map +1 -1
  94. package/dist/core/request-path.d.ts +13 -0
  95. package/dist/core/request-path.js +90 -0
  96. package/dist/core/request-path.js.map +1 -0
  97. package/dist/core/schema-cache.js +6 -2
  98. package/dist/core/schema-cache.js.map +1 -1
  99. package/dist/core/vault.js +10 -5
  100. package/dist/core/vault.js.map +1 -1
  101. package/dist/core/version.d.ts +1 -0
  102. package/dist/core/version.js +3 -0
  103. package/dist/core/version.js.map +1 -0
  104. package/dist/mcp/compat-hubspot.d.ts +5 -14
  105. package/dist/mcp/compat-hubspot.js +19 -16
  106. package/dist/mcp/compat-hubspot.js.map +1 -1
  107. package/dist/mcp/diagnostics.d.ts +157 -0
  108. package/dist/mcp/diagnostics.js +200 -0
  109. package/dist/mcp/diagnostics.js.map +1 -0
  110. package/dist/mcp/ecosystem.d.ts +107 -0
  111. package/dist/mcp/ecosystem.js +127 -0
  112. package/dist/mcp/ecosystem.js.map +1 -0
  113. package/dist/mcp/ext-tools.d.ts +4 -3
  114. package/dist/mcp/ext-tools.js +20 -8
  115. package/dist/mcp/ext-tools.js.map +1 -1
  116. package/dist/mcp/profiles.d.ts +9 -0
  117. package/dist/mcp/profiles.js +38 -4
  118. package/dist/mcp/profiles.js.map +1 -1
  119. package/dist/mcp/server.d.ts +118 -1
  120. package/dist/mcp/server.js +67 -10
  121. package/dist/mcp/server.js.map +1 -1
  122. package/docs/CAPABILITY_LIBRARY.md +7 -1
  123. package/docs/CLOUD_RUN.md +188 -0
  124. package/docs/COMMAND_TREE.md +20 -6
  125. package/docs/COMPARISON.md +14 -6
  126. package/docs/COOKBOOK.md +46 -2
  127. package/docs/INTERNAL-ENDPOINTS-DISCOVERY.md +59 -0
  128. package/docs/INTERNAL-ENDPOINTS.md +13 -0
  129. package/docs/INTERNAL_ENDPOINTS.md +23 -5
  130. package/docs/MCP.md +48 -6
  131. package/docs/MCP_TOOL_CATALOG.md +188 -186
  132. package/docs/OPERATIONAL_PLAYBOOKS.md +9 -8
  133. package/docs/PORTAL_BACKUP.md +26 -2
  134. package/docs/RELEASE_GOVERNANCE.md +7 -0
  135. package/docs/SAFETY_MODEL.md +23 -4
  136. package/docs/TUTORIALS/secure-agent-writes.md +3 -2
  137. package/docs/VALIDATION_BOUNDARIES.md +101 -0
  138. package/docs/policy-templates/compliance-strict.json +7 -0
  139. package/examples/cloud-run-mcp-caller.mjs +71 -0
  140. package/package.json +11 -8
@@ -0,0 +1,2 @@
1
+ /** Bound decompressed bytes as well as declared Content-Length. */
2
+ export declare function boundedJson(response: Response, limit: number): Promise<unknown>;
@@ -0,0 +1,37 @@
1
+ import { CliError } from "./output.js";
2
+ /** Bound decompressed bytes as well as declared Content-Length. */
3
+ export async function boundedJson(response, limit) {
4
+ const declared = Number(response.headers.get("content-length"));
5
+ if (Number.isFinite(declared) && declared > limit) {
6
+ await response.body?.cancel();
7
+ throw new CliError("HTTP_RESPONSE_TOO_LARGE", "Upstream response exceeds the configured limit");
8
+ }
9
+ if (!response.body)
10
+ return {};
11
+ const reader = response.body.getReader();
12
+ const chunks = [];
13
+ let size = 0;
14
+ try {
15
+ while (true) {
16
+ const chunk = await reader.read();
17
+ if (chunk.done)
18
+ break;
19
+ size += chunk.value.byteLength;
20
+ if (size > limit) {
21
+ await reader.cancel();
22
+ throw new CliError("HTTP_RESPONSE_TOO_LARGE", "Upstream response exceeds the configured limit");
23
+ }
24
+ chunks.push(chunk.value);
25
+ }
26
+ }
27
+ finally {
28
+ reader.releaseLock();
29
+ }
30
+ try {
31
+ return JSON.parse(Buffer.concat(chunks).toString("utf8"));
32
+ }
33
+ catch {
34
+ throw new CliError("HTTP_INVALID_JSON", "Upstream did not return JSON");
35
+ }
36
+ }
37
+ //# sourceMappingURL=bounded-response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bounded-response.js","sourceRoot":"","sources":["../../src/core/bounded-response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,mEAAmE;AACnE,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAAkB,EAAE,KAAa;IACjE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAChE,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,KAAK,EAAE,CAAC;QAClD,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAC9B,MAAM,IAAI,QAAQ,CAAC,yBAAyB,EAAE,gDAAgD,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IACzC,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAClC,IAAI,KAAK,CAAC,IAAI;gBAAE,MAAM;YACtB,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;YAC/B,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;gBACjB,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;gBACtB,MAAM,IAAI,QAAQ,CAAC,yBAAyB,EAAE,gDAAgD,CAAC,CAAC;YAClG,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,QAAQ,CAAC,mBAAmB,EAAE,8BAA8B,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC"}
@@ -34,6 +34,13 @@ export interface CapabilityProbeResult {
34
34
  };
35
35
  capabilities: Array<EndpointCapabilityDefinition & CachedCapabilityStatus>;
36
36
  }
37
+ export interface CapabilityCacheSummary {
38
+ status: "missing-context" | "missing" | "expired" | "fresh";
39
+ expiresAt?: string;
40
+ supported: number;
41
+ unsupported: number;
42
+ unknown: number;
43
+ }
37
44
  export declare function preflightEndpointCapability(options: {
38
45
  profile: string;
39
46
  path: string;
@@ -57,4 +64,5 @@ export declare function probeCapabilities(options: {
57
64
  ttlMs?: number;
58
65
  }): Promise<CapabilityProbeResult>;
59
66
  export declare function listEndpointCapabilities(): EndpointCapabilityDefinition[];
67
+ export declare function summarizeCapabilityCache(profileName: string): CapabilityCacheSummary;
60
68
  export {};
@@ -1,6 +1,6 @@
1
1
  import { chmodSync, existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
2
  import { join } from "node:path";
3
- import { getHscliHomeDir, getProfile, saveProfile, getApiBaseUrl } from "./auth.js";
3
+ import { getHscliHomeDir, getProfile, saveProfile, getApiBaseUrl, getValidAccessToken } from "./auth.js";
4
4
  import { CliError } from "./output.js";
5
5
  const CAPABILITY_CACHE_VERSION = 1;
6
6
  const CAPABILITY_CACHE_FILENAME = "capabilities.json";
@@ -514,7 +514,7 @@ function toProbeResult(profileName, context, entry, refreshed, ttlMs) {
514
514
  }
515
515
  export async function probeCapabilities(options) {
516
516
  const ttlMs = options.ttlMs && options.ttlMs > 0 ? options.ttlMs : DEFAULT_CAPABILITY_TTL_MS;
517
- const context = await ensurePortalContext(options.profile, options.token);
517
+ const context = await ensurePortalContext(options.profile, await getValidAccessToken(options.profile));
518
518
  const cache = readCapabilityCache();
519
519
  const key = buildCapabilityKey(context.portalId, context.scopes);
520
520
  const nowMs = Date.now();
@@ -528,7 +528,7 @@ export async function probeCapabilities(options) {
528
528
  }
529
529
  const capabilityResults = {};
530
530
  for (const definition of ENDPOINT_CAPABILITIES) {
531
- capabilityResults[definition.id] = await probeCapability(options.token, definition, getApiBaseUrl(options.profile));
531
+ capabilityResults[definition.id] = await probeCapability(await getValidAccessToken(options.profile), definition, getApiBaseUrl(options.profile));
532
532
  }
533
533
  const updatedEntry = {
534
534
  key,
@@ -556,4 +556,32 @@ export async function probeCapabilities(options) {
556
556
  export function listEndpointCapabilities() {
557
557
  return ENDPOINT_CAPABILITIES.slice();
558
558
  }
559
+ export function summarizeCapabilityCache(profileName) {
560
+ try {
561
+ const profile = getProfile(profileName);
562
+ const portalId = profile.portalId?.trim();
563
+ const scopes = normalizeScopes(profile.scopes ?? profile.scopeGroups ?? []);
564
+ if (!portalId) {
565
+ return { status: "missing-context", supported: 0, unsupported: 0, unknown: ENDPOINT_CAPABILITIES.length };
566
+ }
567
+ const key = buildCapabilityKey(portalId, scopes);
568
+ const entry = readCapabilityCache().entries.find((candidate) => candidate.key === key);
569
+ if (!entry) {
570
+ return { status: "missing", supported: 0, unsupported: 0, unknown: ENDPOINT_CAPABILITIES.length };
571
+ }
572
+ const summary = { supported: 0, unsupported: 0, unknown: 0 };
573
+ for (const definition of ENDPOINT_CAPABILITIES) {
574
+ const status = entry.capabilities[definition.id]?.status ?? "unknown";
575
+ summary[status] += 1;
576
+ }
577
+ return {
578
+ status: Date.parse(entry.expiresAt) > Date.now() ? "fresh" : "expired",
579
+ expiresAt: entry.expiresAt,
580
+ ...summary,
581
+ };
582
+ }
583
+ catch {
584
+ return { status: "missing-context", supported: 0, unsupported: 0, unknown: ENDPOINT_CAPABILITIES.length };
585
+ }
586
+ }
559
587
  //# sourceMappingURL=capabilities.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/core/capabilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/core/capabilities.ts"],"names":[],"mappings":"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"}
@@ -9,8 +9,16 @@ export declare function createBrowserSessionClient(profile: string, options: Omi
9
9
  }): HubSpotClient;
10
10
  export interface RequestOptions {
11
11
  method?: "GET" | "POST" | "PATCH" | "PUT" | "DELETE";
12
+ /** Return only the response status and discard the body without parsing it. */
13
+ responseMode?: "json" | "status";
12
14
  body?: unknown;
13
15
  idempotencyKey?: string;
16
+ /**
17
+ * Retry policy. The default retries only reads. `idempotent` is reserved
18
+ * for a caller with a verified server-side idempotency contract; an
19
+ * Idempotency-Key header alone is not that proof. `never` disables retries.
20
+ */
21
+ retryMode?: "default" | "never" | "idempotent";
14
22
  /**
15
23
  * Some HubSpot read endpoints use POST for batch payloads. Keep the
16
24
  * actual HTTP method, but evaluate local permission profiles as a read.
@@ -55,8 +63,15 @@ export type MultipartPart = string | {
55
63
  contentType?: string;
56
64
  };
57
65
  interface HubSpotClientOptions {
66
+ /** Read-only hosted mode: no disk state, global quotas, redirects, retries or background probes. */
67
+ hosted?: {
68
+ signal: AbortSignal;
69
+ maxResponseBytes: number;
70
+ };
58
71
  requestId?: string;
59
72
  telemetryFile?: string;
73
+ /** Prevent this client from writing telemetry, even when process tracing is active. */
74
+ disableTelemetry?: boolean;
60
75
  profile?: string;
61
76
  strictCapabilities?: boolean;
62
77
  /** Override the API base URL (e.g. "https://api-eu1.hubapi.com" for EU1 portals). */
@@ -71,6 +86,7 @@ interface HubSpotClientOptions {
71
86
  }
72
87
  export declare class HubSpotClient {
73
88
  private readonly token;
89
+ private readonly hosted?;
74
90
  private readonly baseUrl;
75
91
  private readonly requestId;
76
92
  private readonly telemetryFile?;
package/dist/core/http.js CHANGED
@@ -1,4 +1,6 @@
1
+ import { boundedJson } from "./bounded-response.js";
1
2
  import { CliError, redactSensitive } from "./output.js";
3
+ import { normalizeHubSpotRequestPath } from "./request-path.js";
2
4
  import { getTelemetryContext } from "./telemetry-context.js";
3
5
  import { appendFileSync, existsSync, readFileSync } from "node:fs";
4
6
  import { join } from "node:path";
@@ -174,6 +176,7 @@ function sharedRateLimitState(key) {
174
176
  }
175
177
  export class HubSpotClient {
176
178
  token;
179
+ hosted;
177
180
  baseUrl;
178
181
  requestId;
179
182
  telemetryFile;
@@ -194,6 +197,9 @@ export class HubSpotClient {
194
197
  portalTimeZoneFetching;
195
198
  constructor(token, options = {}) {
196
199
  this.token = token;
200
+ this.hosted = options.hosted;
201
+ if (this.hosted)
202
+ options = { ...options, disableTelemetry: true, skipCapabilityPreflight: true, profile: "hosted", tokenProvider: undefined };
197
203
  this.baseUrl = new URL(options.apiBaseUrl?.trim() || "https://api.hubapi.com");
198
204
  this.requestId = options.requestId?.trim() || process.env.HSCLI_REQUEST_ID?.trim() || randomUUID();
199
205
  // Telemetry priority:
@@ -201,15 +207,18 @@ export class HubSpotClient {
201
207
  // 2. HSCLI_TELEMETRY_FILE env var
202
208
  // 3. active trace session file (set by `hscli trace start`)
203
209
  // Users never need to re-pass --telemetry-file after `trace start`.
204
- const activeSession = readActiveTraceSession();
205
- this.telemetryFile = options.telemetryFile?.trim()
206
- || process.env.HSCLI_TELEMETRY_FILE?.trim()
207
- || activeSession?.file
208
- || undefined;
210
+ const activeSession = options.disableTelemetry ? undefined : readActiveTraceSession();
211
+ this.telemetryFile = options.disableTelemetry
212
+ ? undefined
213
+ : options.telemetryFile?.trim()
214
+ || process.env.HSCLI_TELEMETRY_FILE?.trim()
215
+ || activeSession?.file
216
+ || undefined;
209
217
  // Only honor session scope/bodies when the telemetry file actually
210
218
  // comes from the active session. If the caller passed an explicit
211
219
  // --telemetry-file, they own the filtering policy.
212
- const telemetryFromSession = !options.telemetryFile?.trim()
220
+ const telemetryFromSession = !options.disableTelemetry
221
+ && !options.telemetryFile?.trim()
213
222
  && !process.env.HSCLI_TELEMETRY_FILE?.trim()
214
223
  && activeSession?.file !== undefined;
215
224
  this.traceScope = telemetryFromSession ? (activeSession?.scope ?? "all") : "all";
@@ -222,16 +231,28 @@ export class HubSpotClient {
222
231
  this.tokenProvider = options.tokenProvider;
223
232
  this.skipCapabilityPreflight = Boolean(options.skipCapabilityPreflight);
224
233
  const authKind = this.auth?.kind ?? "bearer";
225
- this.rateLimitState = sharedRateLimitState(`${this.profile}|${this.baseUrl.origin}|${authKind}`);
234
+ this.rateLimitState = this.hosted ? { nextRequestAtMs: 0 } : sharedRateLimitState(`${this.profile}|${this.baseUrl.origin}|${authKind}`);
226
235
  }
227
236
  async request(path, options = {}, attempt = 0) {
228
237
  const method = options.method ?? "GET";
238
+ if (this.hosted) {
239
+ this.hosted.signal.throwIfAborted();
240
+ if (method !== "GET")
241
+ throw new CliError("HOSTED_READ_ONLY", "Hosted clients only support GET");
242
+ }
243
+ const retryMode = this.hosted ? "never" : resolveRetryMode(method, options);
229
244
  enforcePermissionProfile(this.profile, options.permissionMode === "read" ? "GET" : method);
230
245
  const url = this.resolveUrl(path);
231
246
  const pathname = new URL(url).pathname;
232
247
  const idempotencyKey = resolveIdempotencyKey(method, options.idempotencyKey);
233
248
  const startedAt = Date.now();
234
- await this.beforeRateLimitedRequest(pathname);
249
+ let requestTelemetryEmitted = false;
250
+ const emitRequestTelemetry = (event) => {
251
+ requestTelemetryEmitted = true;
252
+ this.emitTelemetry({ ...event, permissionMode: options.permissionMode });
253
+ };
254
+ if (!this.hosted)
255
+ await this.beforeRateLimitedRequest(pathname);
235
256
  if (!this.skipCapabilityPreflight) {
236
257
  preflightEndpointCapability({
237
258
  profile: this.profile,
@@ -293,16 +314,61 @@ export class HubSpotClient {
293
314
  headers,
294
315
  body: bodyToSend,
295
316
  ...(this.auth?.kind === "browser-session" ? { credentials: "include" } : {}),
296
- signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS),
317
+ redirect: this.hosted ? "error" : "follow",
318
+ signal: this.hosted?.signal ?? AbortSignal.timeout(REQUEST_TIMEOUT_MS),
297
319
  });
298
- this.observeRateLimitHeaders(response.headers);
320
+ this.observeRateLimitHeaders(response.headers, !this.hosted && options.responseMode !== "status");
299
321
  if (response.status === 429 || response.status >= 500) {
322
+ if (options.responseMode === "status") {
323
+ await discardResponseBody(response);
324
+ emitRequestTelemetry({
325
+ method,
326
+ path: pathname,
327
+ status: response.status,
328
+ durationMs: Date.now() - startedAt,
329
+ attempt,
330
+ });
331
+ if (retryMode === "never") {
332
+ if (response.status >= 500 && isMutationRequest(method, options)) {
333
+ throw unknownMutationOutcome(response.status);
334
+ }
335
+ throw new CliError("HTTP_RETRY_DISABLED", `Request failed with HTTP ${response.status} and was not retried`, response.status);
336
+ }
337
+ if (attempt >= MAX_RETRIES) {
338
+ throw new CliError("HTTP_RETRY_EXHAUSTED", `Request failed after ${MAX_RETRIES + 1} attempts`, response.status);
339
+ }
340
+ const retryAfterMs = parseRetryAfterMs(response.headers.get("retry-after"));
341
+ const backoff = retryAfterMs ?? Math.min(1000 * 2 ** attempt, MAX_BACKOFF_MS);
342
+ await new Promise((r) => setTimeout(r, backoff));
343
+ return this.request(path, { ...options, idempotencyKey }, attempt + 1);
344
+ }
345
+ let retryDetails;
300
346
  if (response.status === 429) {
301
347
  this.observeTooManyRequests(response.headers);
302
- const details = await safeJson(response);
303
- if (this.isDailyQuotaExhausted() || isDailyRateLimit(details)) {
304
- throw this.dailyQuotaError(details);
348
+ retryDetails = await (this.hosted ? boundedJson(response, this.hosted.maxResponseBytes) : safeJson(response));
349
+ }
350
+ else if (this.traceIncludeBodies || retryMode === "never" || attempt >= MAX_RETRIES) {
351
+ retryDetails = await (this.hosted ? boundedJson(response, this.hosted.maxResponseBytes) : safeJson(response));
352
+ }
353
+ else {
354
+ await discardResponseBody(response);
355
+ }
356
+ emitRequestTelemetry({
357
+ method,
358
+ path: pathname,
359
+ status: response.status,
360
+ durationMs: Date.now() - startedAt,
361
+ attempt,
362
+ ...(this.traceIncludeBodies ? { requestBody: options.body, responseBody: retryDetails } : {}),
363
+ });
364
+ if (response.status === 429 && (this.isDailyQuotaExhausted() || isDailyRateLimit(retryDetails))) {
365
+ throw this.dailyQuotaError(retryDetails);
366
+ }
367
+ if (retryMode === "never") {
368
+ if (response.status >= 500 && isMutationRequest(method, options)) {
369
+ throw unknownMutationOutcome(response.status, retryDetails);
305
370
  }
371
+ throw new CliError("HTTP_RETRY_DISABLED", `Request failed with HTTP ${response.status} and was not retried`, response.status, retryDetails);
306
372
  }
307
373
  if (attempt >= MAX_RETRIES) {
308
374
  throw new CliError("HTTP_RETRY_EXHAUSTED", `Request failed after ${MAX_RETRIES + 1} attempts`, response.status);
@@ -313,8 +379,19 @@ export class HubSpotClient {
313
379
  return this.request(path, { ...options, idempotencyKey }, attempt + 1);
314
380
  }
315
381
  if (!response.ok) {
316
- const details = await safeJson(response);
317
- this.emitTelemetry({
382
+ if (options.responseMode === "status") {
383
+ await discardResponseBody(response);
384
+ emitRequestTelemetry({
385
+ method,
386
+ path: pathname,
387
+ status: response.status,
388
+ durationMs: Date.now() - startedAt,
389
+ attempt,
390
+ });
391
+ throw new CliError("HTTP_ERROR", `HubSpot API request failed (${response.status})`, response.status);
392
+ }
393
+ const details = await (this.hosted ? boundedJson(response, this.hosted.maxResponseBytes) : safeJson(response));
394
+ emitRequestTelemetry({
318
395
  method,
319
396
  path: pathname,
320
397
  status: response.status,
@@ -332,11 +409,11 @@ export class HubSpotClient {
332
409
  throw endpointError;
333
410
  throw new CliError("HTTP_ERROR", `HubSpot API request failed (${response.status})`, response.status, details);
334
411
  }
335
- if (!this.skipCapabilityPreflight) {
412
+ if (!this.skipCapabilityPreflight && options.responseMode !== "status") {
336
413
  recordEndpointSuccess({ profile: this.profile, path: pathname, statusCode: response.status });
337
414
  }
338
415
  if (response.status === 204) {
339
- this.emitTelemetry({
416
+ emitRequestTelemetry({
340
417
  method,
341
418
  path: pathname,
342
419
  status: response.status,
@@ -344,10 +421,21 @@ export class HubSpotClient {
344
421
  attempt,
345
422
  ...(this.traceIncludeBodies ? { requestBody: options.body } : {}),
346
423
  });
347
- return { ok: true };
424
+ return options.responseMode === "status" ? { statusCode: response.status } : { ok: true };
348
425
  }
349
- const responseBody = await safeJson(response);
350
- this.emitTelemetry({
426
+ if (options.responseMode === "status") {
427
+ await discardResponseBody(response);
428
+ emitRequestTelemetry({
429
+ method,
430
+ path: pathname,
431
+ status: response.status,
432
+ durationMs: Date.now() - startedAt,
433
+ attempt,
434
+ });
435
+ return { statusCode: response.status };
436
+ }
437
+ const responseBody = await (this.hosted ? boundedJson(response, this.hosted.maxResponseBytes) : safeJson(response));
438
+ emitRequestTelemetry({
351
439
  method,
352
440
  path: pathname,
353
441
  status: response.status,
@@ -358,18 +446,26 @@ export class HubSpotClient {
358
446
  return responseBody;
359
447
  }
360
448
  catch (error) {
361
- this.emitTelemetry({
362
- method,
363
- path: pathname,
364
- durationMs: Date.now() - startedAt,
365
- attempt,
366
- error: error instanceof Error ? error.message : String(error),
367
- });
449
+ if (!requestTelemetryEmitted) {
450
+ emitRequestTelemetry({
451
+ method,
452
+ path: pathname,
453
+ durationMs: Date.now() - startedAt,
454
+ attempt,
455
+ error: error instanceof Error ? error.message : String(error),
456
+ });
457
+ }
368
458
  if (error instanceof CliError)
369
459
  throw error;
370
460
  if (error instanceof DOMException && error.name === "TimeoutError") {
461
+ if (retryMode === "never") {
462
+ throw new CliError("HTTP_OUTCOME_UNKNOWN", "Request timed out and was not retried; reconcile against fresh server state before continuing");
463
+ }
371
464
  throw new CliError("HTTP_TIMEOUT", `Request timed out after ${REQUEST_TIMEOUT_MS}ms`);
372
465
  }
466
+ if (retryMode === "never") {
467
+ throw new CliError("HTTP_OUTCOME_UNKNOWN", "Network request failed and was not retried; reconcile against fresh server state before continuing", undefined, { cause: String(error) });
468
+ }
373
469
  if (attempt >= MAX_RETRIES) {
374
470
  throw new CliError("NETWORK_ERROR", "Network request failed", undefined, { cause: String(error) });
375
471
  }
@@ -378,10 +474,8 @@ export class HubSpotClient {
378
474
  }
379
475
  }
380
476
  resolveUrl(path) {
381
- if (!path.startsWith("/")) {
382
- throw new CliError("INVALID_PATH", "Request path must start with '/'");
383
- }
384
- const url = new URL(path, this.baseUrl);
477
+ const normalized = normalizeHubSpotRequestPath(path);
478
+ const url = new URL(normalized.path, this.baseUrl);
385
479
  if (url.origin !== this.baseUrl.origin) {
386
480
  throw new CliError("INVALID_PATH", "Request URL origin is not allowed");
387
481
  }
@@ -397,8 +491,8 @@ export class HubSpotClient {
397
491
  // THROTTLE pseudo-events are always emitted (diagnostic signal, not
398
492
  // a real request, so scope doesn't apply).
399
493
  if (this.traceScope !== "all" && event.method !== "THROTTLE") {
400
- const isWrite = event.method === "POST" || event.method === "PUT"
401
- || event.method === "PATCH" || event.method === "DELETE";
494
+ const isWrite = event.permissionMode !== "read" && (event.method === "POST" || event.method === "PUT"
495
+ || event.method === "PATCH" || event.method === "DELETE");
402
496
  if (this.traceScope === "read" && isWrite)
403
497
  return;
404
498
  if (this.traceScope === "write" && !isWrite)
@@ -494,7 +588,7 @@ export class HubSpotClient {
494
588
  window.remaining -= 1;
495
589
  }
496
590
  }
497
- observeRateLimitHeaders(headers) {
591
+ observeRateLimitHeaders(headers, allowPortalTimeZoneFetch = true) {
498
592
  const now = Date.now();
499
593
  const secondlyMax = parsePositiveInt(headers.get("x-hubspot-ratelimit-secondly"));
500
594
  const secondlyRemaining = parseNonNegativeInt(headers.get("x-hubspot-ratelimit-secondly-remaining"));
@@ -529,7 +623,8 @@ export class HubSpotClient {
529
623
  this.rateLimitState.nextRequestAtMs = this.computeDailyPacingNextAt(resetAtMs, dailyMax, dailyRemaining);
530
624
  // Lazily fetch the portal's timezone on first daily-quota sighting so
531
625
  // subsequent resets use the correct local midnight.
532
- this.ensurePortalTimeZoneFetched();
626
+ if (allowPortalTimeZoneFetch)
627
+ this.ensurePortalTimeZoneFetched();
533
628
  }
534
629
  }
535
630
  /**
@@ -628,6 +723,14 @@ function isEnvTrue(value) {
628
723
  const normalized = value.trim().toLowerCase();
629
724
  return normalized === "1" || normalized === "true" || normalized === "yes";
630
725
  }
726
+ async function discardResponseBody(response) {
727
+ try {
728
+ await response.body?.cancel();
729
+ }
730
+ catch {
731
+ // The status-only caller intentionally discards response data either way.
732
+ }
733
+ }
631
734
  async function safeJson(response) {
632
735
  // Read body as text first, then JSON.parse, to avoid "Body is unusable"
633
736
  // error when response.json() consumes the stream and fails on non-JSON.
@@ -662,6 +765,19 @@ function resolveIdempotencyKey(method, provided) {
662
765
  function isWriteMethod(method) {
663
766
  return method === "POST" || method === "PATCH" || method === "PUT" || method === "DELETE";
664
767
  }
768
+ function resolveRetryMode(method, options) {
769
+ if (options.retryMode === "never")
770
+ return "never";
771
+ if (options.retryMode === "idempotent")
772
+ return "retry";
773
+ return method === "GET" || options.permissionMode === "read" ? "retry" : "never";
774
+ }
775
+ function isMutationRequest(method, options) {
776
+ return isWriteMethod(method) && options.permissionMode !== "read";
777
+ }
778
+ function unknownMutationOutcome(status, details) {
779
+ return new CliError("HTTP_OUTCOME_UNKNOWN", "Mutation returned an ambiguous server failure and was not retried; reconcile against fresh server state before continuing", status, details);
780
+ }
665
781
  function parsePositiveInt(value) {
666
782
  if (!value)
667
783
  return undefined;