@revfleet/hscli 0.10.0 → 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.
- package/CHANGELOG.md +49 -0
- package/README.md +31 -1
- package/dist/cli.js +2 -2
- package/dist/cli.js.map +1 -1
- package/dist/cloud/cloud-run-caller-contract.d.ts +28 -0
- package/dist/cloud/cloud-run-caller-contract.js +35 -0
- package/dist/cloud/cloud-run-caller-contract.js.map +1 -0
- package/dist/cloud/main.d.ts +1 -0
- package/dist/cloud/main.js +15 -0
- package/dist/cloud/main.js.map +1 -0
- package/dist/cloud/server.d.ts +5 -0
- package/dist/cloud/server.js +133 -0
- package/dist/cloud/server.js.map +1 -0
- package/dist/commands/agent/access-baseline.d.ts +47 -0
- package/dist/commands/agent/access-baseline.js +238 -0
- package/dist/commands/agent/access-baseline.js.map +1 -0
- package/dist/commands/agent/index.js +99 -11
- package/dist/commands/agent/index.js.map +1 -1
- package/dist/commands/agent/recipes.d.ts +7 -1
- package/dist/commands/agent/recipes.js +57 -1
- package/dist/commands/agent/recipes.js.map +1 -1
- package/dist/commands/agent/reporting-joinability.d.ts +129 -0
- package/dist/commands/agent/reporting-joinability.js +412 -0
- package/dist/commands/agent/reporting-joinability.js.map +1 -0
- package/dist/commands/agent/runner.d.ts +1 -0
- package/dist/commands/agent/runner.js +181 -27
- package/dist/commands/agent/runner.js.map +1 -1
- package/dist/commands/audit/index.js +2 -1
- package/dist/commands/audit/index.js.map +1 -1
- package/dist/commands/auth/index.js +25 -18
- package/dist/commands/auth/index.js.map +1 -1
- package/dist/commands/backup/index.js +6 -8
- package/dist/commands/backup/index.js.map +1 -1
- package/dist/commands/crm/shared.d.ts +1 -0
- package/dist/commands/crm/shared.js +7 -3
- package/dist/commands/crm/shared.js.map +1 -1
- package/dist/commands/crm/sync.js +170 -27
- package/dist/commands/crm/sync.js.map +1 -1
- package/dist/commands/sales/index.js +2 -0
- package/dist/commands/sales/index.js.map +1 -1
- package/dist/commands/sales/views.d.ts +3 -0
- package/dist/commands/sales/views.js +263 -0
- package/dist/commands/sales/views.js.map +1 -0
- package/dist/commands/trace/index.js +11 -4
- package/dist/commands/trace/index.js.map +1 -1
- package/dist/core/bounded-response.d.ts +2 -0
- package/dist/core/bounded-response.js +37 -0
- package/dist/core/bounded-response.js.map +1 -0
- package/dist/core/http.d.ts +14 -4
- package/dist/core/http.js +145 -40
- package/dist/core/http.js.map +1 -1
- package/dist/core/policy.js +8 -0
- package/dist/core/policy.js.map +1 -1
- package/dist/core/request-path.d.ts +13 -0
- package/dist/core/request-path.js +90 -0
- package/dist/core/request-path.js.map +1 -0
- package/dist/core/version.d.ts +1 -0
- package/dist/core/version.js +3 -0
- package/dist/core/version.js.map +1 -0
- package/dist/mcp/compat-hubspot.js +2 -2
- package/dist/mcp/compat-hubspot.js.map +1 -1
- package/dist/mcp/diagnostics.js +2 -1
- package/dist/mcp/diagnostics.js.map +1 -1
- package/dist/mcp/server.js +3 -3
- package/dist/mcp/server.js.map +1 -1
- package/docs/CAPABILITY_LIBRARY.md +6 -0
- package/docs/CLOUD_RUN.md +188 -0
- package/docs/COMMAND_TREE.md +12 -2
- package/docs/INTERNAL_ENDPOINTS.md +1 -1
- package/docs/PORTAL_BACKUP.md +26 -2
- package/docs/RELEASE_GOVERNANCE.md +7 -0
- package/docs/SAFETY_MODEL.md +23 -4
- package/docs/TUTORIALS/secure-agent-writes.md +3 -2
- package/docs/VALIDATION_BOUNDARIES.md +101 -0
- package/docs/policy-templates/compliance-strict.json +7 -0
- package/examples/cloud-run-mcp-caller.mjs +71 -0
- package/package.json +11 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,54 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.11.0 - 2026-09-11
|
|
4
|
+
|
|
5
|
+
0.11.0 adds bounded, evidence-first operator contracts and a separate
|
|
6
|
+
hosted MCP service surface. Existing CLI commands and JSON envelopes
|
|
7
|
+
remain compatible.
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- Added `hscli agent access-baseline`, a read-only, aggregate-only decision
|
|
12
|
+
matrix over the existing capability families. It requires explicit
|
|
13
|
+
read-only confirmation and does not schedule, score, submit or write.
|
|
14
|
+
- Added `hscli agent reporting-joinability`, an independent, aggregate-only
|
|
15
|
+
contract for a narrow sequence → meeting → deal evidence chain. It does not
|
|
16
|
+
audit HubSpot's native report/dashboard UI, and report inventory/attribution
|
|
17
|
+
correctness remains unavailable rather than inferred.
|
|
18
|
+
- Added guarded internal sales contacts-view discovery with its documented
|
|
19
|
+
internal-session boundary; it is not exposed as a generic browser transport.
|
|
20
|
+
|
|
21
|
+
### Hosted MCP surface
|
|
22
|
+
|
|
23
|
+
- Added a separate IAM-protected Streamable HTTP MCP surface with exactly
|
|
24
|
+
`hscli_service_info`, `crm_properties_list` and `crm_pipelines_list`. It is
|
|
25
|
+
not the local stdio catalog and does not expose a generic HubSpot transport.
|
|
26
|
+
|
|
27
|
+
### Fixed
|
|
28
|
+
|
|
29
|
+
- Fixed slow piped-token input so a valid token arriving after an initial stdin
|
|
30
|
+
EAGAIN condition is awaited rather than rejected.
|
|
31
|
+
- Updated the hosted MCP version metadata to use the package-derived hscli
|
|
32
|
+
version, consistently with CLI and stdio MCP metadata.
|
|
33
|
+
- Replaced a workstation-specific `gcloud` default with PATH or explicit-command
|
|
34
|
+
discovery. The release helper now has a no-submit `-Plan` mode, build-only
|
|
35
|
+
default, explicit no-traffic candidate, and explicit promotion/rollback
|
|
36
|
+
revision actions.
|
|
37
|
+
- Unified local CI, tag-release CI, Cloud Build and npm's prepublish lifecycle
|
|
38
|
+
on the documented strict release gate, including
|
|
39
|
+
`npm audit --audit-level=low`.
|
|
40
|
+
|
|
41
|
+
### Security and compatibility
|
|
42
|
+
|
|
43
|
+
- Refreshed dependency and local-safety hardening after the 0.10.0 tag.
|
|
44
|
+
- The hosted MCP is IAM-gated, GET-only, request-bounded,
|
|
45
|
+
credential-redacting, redirect-rejecting, no-retry and browser-Origin
|
|
46
|
+
rejecting. Its caller supplies a fresh, backend-authorized portal context per
|
|
47
|
+
request; it does not persist a user's credential.
|
|
48
|
+
- Existing CLI commands and JSON envelopes are unchanged. The hosted MCP
|
|
49
|
+
service is a separate optional surface, not a replacement for stdio MCP or
|
|
50
|
+
the CLI.
|
|
51
|
+
|
|
3
52
|
## 0.10.0 - 2026-07-31
|
|
4
53
|
|
|
5
54
|
### Added
|
package/README.md
CHANGED
|
@@ -210,6 +210,24 @@ instead of open-ended portal access:
|
|
|
210
210
|
```bash
|
|
211
211
|
hscli agent list
|
|
212
212
|
hscli agent plan portal-baseline --json
|
|
213
|
+
# This command has no HubSpot network activity.
|
|
214
|
+
hscli --profile client-readonly agent plan access-baseline --json
|
|
215
|
+
|
|
216
|
+
# Review the exact public endpoint reads, then acknowledge them explicitly.
|
|
217
|
+
hscli --profile client-readonly agent run access-baseline \
|
|
218
|
+
--confirm-read-only \
|
|
219
|
+
--output ./evidence/access-baseline
|
|
220
|
+
|
|
221
|
+
# Re-render the local status matrix without calling HubSpot or RevFleet.
|
|
222
|
+
hscli agent access-baseline report ./evidence/access-baseline
|
|
223
|
+
|
|
224
|
+
# Plan a separate, aggregate-only reporting joinability re-check. The plan is no-network.
|
|
225
|
+
hscli agent plan reporting-joinability
|
|
226
|
+
hscli --profile client-readonly agent run reporting-joinability \
|
|
227
|
+
--confirm-read-only \
|
|
228
|
+
--output ./evidence/reporting-joinability
|
|
229
|
+
hscli agent reporting-joinability report ./evidence/reporting-joinability
|
|
230
|
+
|
|
213
231
|
hscli agent evidence export ./evidence/portal-baseline --output ./evidence/revfleet-evidence.json
|
|
214
232
|
hscli agent plan automation-risk --json
|
|
215
233
|
hscli --profile sandbox agent run automation-risk --output ./evidence/automation-risk
|
|
@@ -224,9 +242,20 @@ Runbooks are public-API-first, MCP-compatible, schedule-renderable, and
|
|
|
224
242
|
auditable. `agent plan` never calls HubSpot; it prints the exact read/report
|
|
225
243
|
commands. `agent run` executes those argument arrays with `shell:false` and
|
|
226
244
|
writes a manifest, checkpoint, per-step output, request telemetry, and JSONL
|
|
227
|
-
event ledger. `--resume` skips completed steps
|
|
245
|
+
event ledger. `--resume` skips completed steps only when its existing checkpoint
|
|
246
|
+
and manifest share the same run ID and match the recipe, resolved commands,
|
|
247
|
+
profile, policy context, and change-ticket context; it also requires the local
|
|
248
|
+
output files and matching completion events for every reused step. It refuses
|
|
249
|
+
missing or legacy/unlinked provenance before writing evidence, so a new run must
|
|
250
|
+
omit `--resume`. A valid resume preserves the original run ID and start time and
|
|
251
|
+
appends a `run-resumed` ledger event; it never presents reused steps as a fresh
|
|
252
|
+
run. `--continue-on-error` preserves
|
|
228
253
|
partial evidence while finishing the remaining diagnostics.
|
|
229
254
|
|
|
255
|
+
> Access Baseline is unscored, read-only, and local-only. It reports evidence availability for the existing endpoint families; it does not inspect CRM rows, prove a subscription, grant a scope, authorize a write, or submit evidence to RevFleet. It cannot be scheduled.
|
|
256
|
+
|
|
257
|
+
> Reporting Joinability is a separate, unscored, read-only, local-only contract for an operational `sequence → meeting → deal` evidence chain. It makes three status-only public reads for meeting/deal metadata and association definition; the sequence surface remains explicitly `not_probed` because the documented list request requires an identity that this contract never derives, stores, or sends. It does not audit HubSpot native report/dashboard UI, inspect CRM rows or IDs, prove an actual association, schedule itself, expose an MCP tool, submit evidence, or remediate anything. Its report inventory and attribution correctness are unavailable and never inferred.
|
|
258
|
+
|
|
230
259
|
For approved fixes, seal the exact hscli argv in a versioned action contract.
|
|
231
260
|
Contracts are offline-verifiable and bind execution to one profile, portal,
|
|
232
261
|
expiry, and optional change ticket. They never contain tokens or shell text:
|
|
@@ -601,6 +630,7 @@ Under `HSCLI_HOME` (default: `~/.revfleet`):
|
|
|
601
630
|
- [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) · [docs/SAFETY_MODEL.md](docs/SAFETY_MODEL.md) · [docs/WHY_HOW_WHAT.md](docs/WHY_HOW_WHAT.md)
|
|
602
631
|
- [docs/ROADMAP-DATE-BASED-API.md](docs/ROADMAP-DATE-BASED-API.md) — HubSpot's `/YYYY-MM/` migration plan
|
|
603
632
|
- [docs/PORTAL_BACKUP.md](docs/PORTAL_BACKUP.md) — full-portal downgrade/migration backup runbook
|
|
633
|
+
- [docs/VALIDATION_BOUNDARIES.md](docs/VALIDATION_BOUNDARIES.md) — what local, CI, and approved live evidence can (and cannot) establish
|
|
604
634
|
- [docs/PLUGIN_GUIDE.md](docs/PLUGIN_GUIDE.md) — writing plugins
|
|
605
635
|
- [docs/COOKBOOK.md](docs/COOKBOOK.md) — recipes
|
|
606
636
|
- [docs/PUBLISHING.md](docs/PUBLISHING.md) — release runbook (maintainers)
|
package/dist/cli.js
CHANGED
|
@@ -55,7 +55,7 @@ import { registerContactsV1, registerCompaniesV2, registerDealsV1, registerOwner
|
|
|
55
55
|
import { CliError, printError } from "./core/output.js";
|
|
56
56
|
import { loadPlugins } from "./core/plugins.js";
|
|
57
57
|
import { normalizeApiBaseUrl, normalizeStoredHublet, resolveApiDomain } from "./core/auth.js";
|
|
58
|
-
import
|
|
58
|
+
import { HSCLI_VERSION } from "./core/version.js";
|
|
59
59
|
export function createProgram() {
|
|
60
60
|
const program = new Command();
|
|
61
61
|
let ctx = { profile: "default", json: false, dryRun: false, force: false, strictCapabilities: false, format: "table" };
|
|
@@ -69,7 +69,7 @@ export function createProgram() {
|
|
|
69
69
|
" ┌──┐\n"
|
|
70
70
|
+ " │hs│ hscli · agentic HubSpot CLI + MCP server\n"
|
|
71
71
|
+ " └──┘ @revfleet/hscli · MIT · github.com/revfleet/hscli")
|
|
72
|
-
.version(
|
|
72
|
+
.version(HSCLI_VERSION)
|
|
73
73
|
.option("--profile <name>", "Auth profile", "default")
|
|
74
74
|
.option("--json", "JSON output")
|
|
75
75
|
.option("--format <mode>", "Output format: json|jsonl|table|csv|yaml")
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export type CloudRunMcpCallerContract = Readonly<{
|
|
2
|
+
version: "hscli.cloud-run-mcp-caller/v1";
|
|
3
|
+
caller: Readonly<{
|
|
4
|
+
identity: "attached-cloud-run-service-account";
|
|
5
|
+
credentialSource: "application-default-credentials";
|
|
6
|
+
idTokenClient: "google-auth-library.getIdTokenClient";
|
|
7
|
+
credentialSentToMcp: "google-signed-id-token";
|
|
8
|
+
}>;
|
|
9
|
+
cloudRun: Readonly<{
|
|
10
|
+
serviceAudience: string;
|
|
11
|
+
mcpUrl: string;
|
|
12
|
+
authorizationHeader: "X-Serverless-Authorization";
|
|
13
|
+
}>;
|
|
14
|
+
hubSpotContext: Readonly<{
|
|
15
|
+
owner: "authorized-backend";
|
|
16
|
+
lifetime: "per-request";
|
|
17
|
+
browserSuppliedValues: "rejected";
|
|
18
|
+
headers: readonly ["X-HubSpot-Access-Token", "X-HubSpot-Portal-Id", "X-HubSpot-Hublet"];
|
|
19
|
+
}>;
|
|
20
|
+
hostedSurface: Readonly<{
|
|
21
|
+
client: "official-streamable-http";
|
|
22
|
+
tools: readonly ["hscli_service_info", "crm_properties_list", "crm_pipelines_list"];
|
|
23
|
+
browserOrigins: "rejected";
|
|
24
|
+
}>;
|
|
25
|
+
}>;
|
|
26
|
+
export declare function createCloudRunMcpCallerContract(input: {
|
|
27
|
+
cloudRunServiceUrl: string;
|
|
28
|
+
}): CloudRunMcpCallerContract;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export function createCloudRunMcpCallerContract(input) {
|
|
2
|
+
const service = new URL(input.cloudRunServiceUrl);
|
|
3
|
+
if (service.protocol !== "https:")
|
|
4
|
+
throw new Error("Cloud Run service base URL must use HTTPS");
|
|
5
|
+
if (service.pathname !== "/" || service.search || service.hash || service.username || service.password || service.port) {
|
|
6
|
+
throw new Error("Cloud Run service base URL must be an origin without a path");
|
|
7
|
+
}
|
|
8
|
+
const serviceAudience = service.origin;
|
|
9
|
+
return {
|
|
10
|
+
version: "hscli.cloud-run-mcp-caller/v1",
|
|
11
|
+
caller: {
|
|
12
|
+
identity: "attached-cloud-run-service-account",
|
|
13
|
+
credentialSource: "application-default-credentials",
|
|
14
|
+
idTokenClient: "google-auth-library.getIdTokenClient",
|
|
15
|
+
credentialSentToMcp: "google-signed-id-token",
|
|
16
|
+
},
|
|
17
|
+
cloudRun: {
|
|
18
|
+
serviceAudience,
|
|
19
|
+
mcpUrl: `${serviceAudience}/mcp`,
|
|
20
|
+
authorizationHeader: "X-Serverless-Authorization",
|
|
21
|
+
},
|
|
22
|
+
hubSpotContext: {
|
|
23
|
+
owner: "authorized-backend",
|
|
24
|
+
lifetime: "per-request",
|
|
25
|
+
browserSuppliedValues: "rejected",
|
|
26
|
+
headers: ["X-HubSpot-Access-Token", "X-HubSpot-Portal-Id", "X-HubSpot-Hublet"],
|
|
27
|
+
},
|
|
28
|
+
hostedSurface: {
|
|
29
|
+
client: "official-streamable-http",
|
|
30
|
+
tools: ["hscli_service_info", "crm_properties_list", "crm_pipelines_list"],
|
|
31
|
+
browserOrigins: "rejected",
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=cloud-run-caller-contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud-run-caller-contract.js","sourceRoot":"","sources":["../../src/cloud/cloud-run-caller-contract.ts"],"names":[],"mappings":"AA0BA,MAAM,UAAU,+BAA+B,CAAC,KAAqC;IACnF,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAClD,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAChG,IAAI,OAAO,CAAC,QAAQ,KAAK,GAAG,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACvH,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjF,CAAC;IACD,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IACvC,OAAO;QACL,OAAO,EAAE,+BAA+B;QACxC,MAAM,EAAE;YACN,QAAQ,EAAE,oCAAoC;YAC9C,gBAAgB,EAAE,iCAAiC;YACnD,aAAa,EAAE,sCAAsC;YACrD,mBAAmB,EAAE,wBAAwB;SAC9C;QACD,QAAQ,EAAE;YACR,eAAe;YACf,MAAM,EAAE,GAAG,eAAe,MAAM;YAChC,mBAAmB,EAAE,4BAA4B;SAClD;QACD,cAAc,EAAE;YACd,KAAK,EAAE,oBAAoB;YAC3B,QAAQ,EAAE,aAAa;YACvB,qBAAqB,EAAE,UAAU;YACjC,OAAO,EAAE,CAAC,wBAAwB,EAAE,qBAAqB,EAAE,kBAAkB,CAAC;SAC/E;QACD,aAAa,EAAE;YACb,MAAM,EAAE,0BAA0B;YAClC,KAAK,EAAE,CAAC,oBAAoB,EAAE,qBAAqB,EAAE,oBAAoB,CAAC;YAC1E,cAAc,EAAE,UAAU;SAC3B;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { createCloudServer } from "./server.js";
|
|
2
|
+
const cloud = Boolean(process.env.K_SERVICE);
|
|
3
|
+
if (!cloud && process.env.HSCLI_CLOUD_LOCAL !== "1") {
|
|
4
|
+
throw new Error("Run behind Cloud Run IAM, or opt into loopback-only testing with HSCLI_CLOUD_LOCAL=1");
|
|
5
|
+
}
|
|
6
|
+
const port = Number(process.env.PORT ?? 8080);
|
|
7
|
+
const server = createCloudServer({ sourceSha: process.env.HSCLI_SOURCE_SHA });
|
|
8
|
+
server.listen(port, cloud ? "0.0.0.0" : "127.0.0.1", () => {
|
|
9
|
+
process.stdout.write(JSON.stringify({ event: "ready", service: "revfleet-hscli-cloud" }) + "\n");
|
|
10
|
+
});
|
|
11
|
+
process.on("SIGTERM", () => {
|
|
12
|
+
server.close();
|
|
13
|
+
setTimeout(() => { server.closeAllConnections(); process.exit(0); }, 8_000).unref();
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=main.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cloud/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC7C,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,GAAG,EAAE,CAAC;IACpD,MAAM,IAAI,KAAK,CAAC,sFAAsF,CAAC,CAAC;AAC1G,CAAC;AACD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;AAC9C,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC;AAC9E,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,EAAE;IACxD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;AACnG,CAAC,CAAC,CAAC;AACH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;IACzB,MAAM,CAAC,KAAK,EAAE,CAAC;IACf,UAAU,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;AACtF,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { createServer } from "node:http";
|
|
2
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
3
|
+
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
import { HubSpotClient } from "../core/http.js";
|
|
6
|
+
import { CliError, redactSensitive } from "../core/output.js";
|
|
7
|
+
import { HSCLI_VERSION } from "../core/version.js";
|
|
8
|
+
const MAX_BODY_BYTES = 64 * 1024;
|
|
9
|
+
const MAX_RESPONSE_BYTES = 2 * 1024 * 1024;
|
|
10
|
+
const OBJECT_TYPES = ["contacts", "companies", "deals", "tickets"];
|
|
11
|
+
const HUBSPOT_ORIGINS = { eu1: "https://api-eu1.hubapi.com", na1: "https://api.hubapi.com" };
|
|
12
|
+
function header(req, name) {
|
|
13
|
+
const value = req.headers[name];
|
|
14
|
+
if (Array.isArray(value))
|
|
15
|
+
throw new CliError("CONTEXT_INVALID", "Duplicate context header");
|
|
16
|
+
return value;
|
|
17
|
+
}
|
|
18
|
+
function send(res, status, code) {
|
|
19
|
+
if (res.headersSent || res.destroyed)
|
|
20
|
+
return;
|
|
21
|
+
res.writeHead(status, { "content-type": "application/json", "cache-control": "no-store" });
|
|
22
|
+
res.end(JSON.stringify({ error: code }));
|
|
23
|
+
}
|
|
24
|
+
async function body(req) {
|
|
25
|
+
const chunks = [];
|
|
26
|
+
let size = 0;
|
|
27
|
+
for await (const chunk of req) {
|
|
28
|
+
size += Buffer.byteLength(chunk);
|
|
29
|
+
if (size > MAX_BODY_BYTES)
|
|
30
|
+
throw new CliError("BODY_TOO_LARGE", "Request too large");
|
|
31
|
+
chunks.push(Buffer.from(chunk));
|
|
32
|
+
}
|
|
33
|
+
return JSON.parse(Buffer.concat(chunks).toString("utf8"));
|
|
34
|
+
}
|
|
35
|
+
export function createCloudServer(options = {}) {
|
|
36
|
+
const deadlineMs = options.deadlineMs ?? 25_000;
|
|
37
|
+
return createServer({ maxHeaderSize: 16 * 1024, requestTimeout: 30_000, headersTimeout: 10_000 }, (req, res) => {
|
|
38
|
+
// Authentication is enforced by Cloud Run's invoker IAM check BEFORE this process.
|
|
39
|
+
// This listener must never be exposed through an unauthenticated deployment.
|
|
40
|
+
res.setHeader("cache-control", "no-store");
|
|
41
|
+
res.setHeader("x-content-type-options", "nosniff");
|
|
42
|
+
if (req.url === "/healthz" && req.method === "GET") {
|
|
43
|
+
res.writeHead(200, { "content-type": "application/json" });
|
|
44
|
+
res.end(JSON.stringify({ status: "ok", sourceSha: options.sourceSha ?? "local" }));
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
if (req.url !== "/mcp")
|
|
48
|
+
return send(res, 404, "NOT_FOUND");
|
|
49
|
+
if (req.method !== "POST")
|
|
50
|
+
return send(res, 405, "METHOD_NOT_ALLOWED");
|
|
51
|
+
// Server-to-server only: browser Origins are deliberately unsupported.
|
|
52
|
+
if (req.headers.origin !== undefined)
|
|
53
|
+
return send(res, 403, "ORIGIN_NOT_ALLOWED");
|
|
54
|
+
if (!/^application\/json(?:\s*;|$)/i.test(req.headers["content-type"] ?? "")) {
|
|
55
|
+
return send(res, 415, "JSON_REQUIRED");
|
|
56
|
+
}
|
|
57
|
+
if (Number(req.headers["content-length"]) > MAX_BODY_BYTES)
|
|
58
|
+
return send(res, 413, "BODY_TOO_LARGE");
|
|
59
|
+
const controller = new AbortController();
|
|
60
|
+
const timer = setTimeout(() => {
|
|
61
|
+
controller.abort();
|
|
62
|
+
send(res, 504, "DEADLINE_EXCEEDED");
|
|
63
|
+
req.destroy();
|
|
64
|
+
}, deadlineMs);
|
|
65
|
+
const server = new McpServer({ name: "revfleet-hscli-cloud", version: HSCLI_VERSION });
|
|
66
|
+
const transport = new StreamableHTTPServerTransport({ sessionIdGenerator: undefined, enableJsonResponse: true });
|
|
67
|
+
res.on("close", () => {
|
|
68
|
+
clearTimeout(timer);
|
|
69
|
+
controller.abort();
|
|
70
|
+
void server.close().catch(() => undefined);
|
|
71
|
+
});
|
|
72
|
+
const read = async (path) => {
|
|
73
|
+
try {
|
|
74
|
+
const token = header(req, "x-hubspot-access-token");
|
|
75
|
+
const portal = header(req, "x-hubspot-portal-id");
|
|
76
|
+
const hublet = header(req, "x-hubspot-hublet") ?? "eu1";
|
|
77
|
+
if (!token || !/^[A-Za-z0-9._~+/=-]{10,4096}$/.test(token)
|
|
78
|
+
|| !portal || !/^[1-9][0-9]{0,19}$/.test(portal)
|
|
79
|
+
|| !(hublet === "eu1" || hublet === "na1")) {
|
|
80
|
+
throw new CliError("CONTEXT_REQUIRED", "A valid HubSpot credential, portal and hublet are required");
|
|
81
|
+
}
|
|
82
|
+
const client = new HubSpotClient(token, {
|
|
83
|
+
apiBaseUrl: HUBSPOT_ORIGINS[hublet],
|
|
84
|
+
hosted: { signal: controller.signal, maxResponseBytes: MAX_RESPONSE_BYTES },
|
|
85
|
+
});
|
|
86
|
+
const identity = await client.request("/account-info/v3/details");
|
|
87
|
+
if (String(identity?.portalId) !== portal)
|
|
88
|
+
throw new CliError("PORTAL_MISMATCH", "Credential does not match the requested portal");
|
|
89
|
+
const data = redactSensitive(await client.request(path));
|
|
90
|
+
const result = { portalId: portal, data };
|
|
91
|
+
// Remove the exact credential even if an upstream field echoes it under an unrelated name.
|
|
92
|
+
const safe = JSON.stringify(result).split(token).join("[REDACTED]");
|
|
93
|
+
return { content: [{ type: "text", text: safe }] };
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
const code = controller.signal.aborted ? "DEADLINE_EXCEEDED"
|
|
97
|
+
: error instanceof CliError ? error.code : "UPSTREAM_ERROR";
|
|
98
|
+
// Do not return upstream bodies, raw exception strings or credentials.
|
|
99
|
+
return { isError: true, content: [{ type: "text", text: JSON.stringify({ error: code }) }] };
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
server.registerTool("hscli_service_info", {
|
|
103
|
+
description: "Read the hosted service version and supported read-only tools. No HubSpot access.",
|
|
104
|
+
inputSchema: z.object({}).strict(),
|
|
105
|
+
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
106
|
+
}, async () => ({ content: [{ type: "text", text: JSON.stringify({
|
|
107
|
+
service: "revfleet-hscli-cloud", hscliVersion: HSCLI_VERSION, sourceSha: options.sourceSha ?? "local", readOnly: true,
|
|
108
|
+
}) }] }));
|
|
109
|
+
server.registerTool("crm_properties_list", {
|
|
110
|
+
description: "Read property definitions for one standard CRM object type in the verified portal.",
|
|
111
|
+
inputSchema: z.object({ objectType: z.enum(OBJECT_TYPES) }).strict(),
|
|
112
|
+
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true },
|
|
113
|
+
}, async ({ objectType }) => read(`/crm/v3/properties/${objectType}`));
|
|
114
|
+
server.registerTool("crm_pipelines_list", {
|
|
115
|
+
description: "Read deal or ticket pipeline definitions in the verified portal.",
|
|
116
|
+
inputSchema: z.object({ objectType: z.enum(["deals", "tickets"]) }).strict(),
|
|
117
|
+
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true },
|
|
118
|
+
}, async ({ objectType }) => read(`/crm/v3/pipelines/${objectType}`));
|
|
119
|
+
void (async () => {
|
|
120
|
+
try {
|
|
121
|
+
const parsed = await body(req);
|
|
122
|
+
if (controller.signal.aborted)
|
|
123
|
+
return;
|
|
124
|
+
await server.connect(transport);
|
|
125
|
+
await transport.handleRequest(req, res, parsed);
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
send(res, error instanceof CliError && error.code === "BODY_TOO_LARGE" ? 413 : 400, "REQUEST_REJECTED");
|
|
129
|
+
}
|
|
130
|
+
})();
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/cloud/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export type AccessBaselineObservedStatus = "reachable" | "missing_scope_or_permission" | "unsupported_endpoint_or_subscription" | "api_failure" | "not_probed";
|
|
2
|
+
export interface AccessBaselineRow {
|
|
3
|
+
capabilityId: string;
|
|
4
|
+
endpointFamily: string;
|
|
5
|
+
observedStatus: AccessBaselineObservedStatus;
|
|
6
|
+
missingEvidence: string[];
|
|
7
|
+
humanDecision: string;
|
|
8
|
+
readOnlyRecheck: [
|
|
9
|
+
"hscli agent plan access-baseline",
|
|
10
|
+
"hscli --profile <approved-profile> agent run access-baseline --confirm-read-only"
|
|
11
|
+
];
|
|
12
|
+
}
|
|
13
|
+
export interface AccessBaselineEvidence {
|
|
14
|
+
schema: "hscli.access-baseline/v1";
|
|
15
|
+
source: {
|
|
16
|
+
product: "hscli";
|
|
17
|
+
recipe: "access-baseline";
|
|
18
|
+
};
|
|
19
|
+
run: {
|
|
20
|
+
id: string;
|
|
21
|
+
status: "completed" | "completed_with_errors";
|
|
22
|
+
startedAt: string;
|
|
23
|
+
completedAt: string;
|
|
24
|
+
};
|
|
25
|
+
coverage: {
|
|
26
|
+
status: "complete" | "partial";
|
|
27
|
+
collected: number;
|
|
28
|
+
missing: number;
|
|
29
|
+
failed: number;
|
|
30
|
+
};
|
|
31
|
+
capabilities: AccessBaselineRow[];
|
|
32
|
+
privacy: {
|
|
33
|
+
aggregateStatusOnly: true;
|
|
34
|
+
containsPortalIdentity: false;
|
|
35
|
+
containsScopes: false;
|
|
36
|
+
containsResponseBodies: false;
|
|
37
|
+
containsCredentials: false;
|
|
38
|
+
};
|
|
39
|
+
digest: {
|
|
40
|
+
algorithm: "sha256";
|
|
41
|
+
value: string;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export declare function buildAccessBaselineEvidence(runDirectory: string): AccessBaselineEvidence;
|
|
45
|
+
export declare function writeAccessBaselineEvidence(runDirectory: string, outputFile: string): AccessBaselineEvidence;
|
|
46
|
+
export declare function renderAccessBaselineMarkdown(evidence: AccessBaselineEvidence): string;
|
|
47
|
+
export declare function writeAccessBaselineReport(evidence: AccessBaselineEvidence, outputFile: string): string;
|