Skip to content

@intutic/clawde / ControlPlaneClient

Class: ControlPlaneClient ​

Control-plane management client — org/team/gateway/credentials administration, as distinct from ClawdeClient's data-plane chat calls.

Deliberately a separate class, not new methods on ClawdeClient: ClawdeClient.baseUrl targets the proxy (default http://localhost:4000); the control plane is a different origin entirely (default Intutic's hosted control plane, or a self-hosted CONTROL_PLANE_URL). Bolting management calls onto ClawdeClient would silently need a second base URL on a class whose whole contract today is "one client, one proxy."

Every endpoint here comes from the control-plane calls in tools/cli/src/commands/* — the CLI's own already-tested contracts, not re-derived — and the Python SDK's control_plane.py has the same methods in snake_case. packages/shared-types/fixtures/control-plane-operations.json lists every method with the request it makes and the answer it returns, and both SDKs' tests run against it, so neither can grow a method the other lacks. Method names follow one pattern for whatever is added next: a verb (list, get, create, update, delete, rotate…Secret, download, or the CLI subcommand's own verb, such as approve or promote), then the resource.

Not included: session establishment (login/logout; an SDK caller supplies apiKey directly, and ClawdeClient registers its own session), the CLI's workspace budget (ClawdeClient.checkBudget()), and commands that act on the machine they run on: init, setup, doctor, install-daemon, connect, disconnect, exec, start, syncContext, rollback, enforce, rules, judge, skill (its loop commands are here), sops status, guardrails pull, and policy compile|install|snapshot|list-local.

Works unmodified against a self-hosted control plane — there is no SaaS-vs-self-hosted branch anywhere in this file. An open-core user who runs the proxy standalone with no control plane configured simply never constructs this class (or does, points it at nothing, and gets a ClawdeConnectionError on the first call) — the same framing whoami.ts already uses: "This command needs an Intutic control plane, which open core does not include."

Auth: the same apiKey type ClawdeClient accepts — a vk_ token or a JWT both satisfy services/control-plane/src/middleware/auth.ts, which resolves either to an AuthContext with a role. A call the role may not make throws ClawdeConnectionError with the control plane's answer; for a 403 that names the roles allowed (detail), the message is that sentence, as the CLI prints it.

Constructors ​

Constructor ​

ts
new ControlPlaneClient(options): ControlPlaneClient;

Parameters ​

ParameterType
optionsControlPlaneClientOptions

Returns ​

ControlPlaneClient

Methods ​

addPolicySource() ​

ts
addPolicySource(source): Promise<PolicySource>;

POST /api/v1/connectors

Parameters ​

ParameterType
sourcePolicySourceInput

Returns ​

Promise<PolicySource>


adjudicateFinding() ​

ts
adjudicateFinding(
   findingId, 
   outcome, 
   options?
): Promise<FindingAdjudication>;

POST /api/v1/findings/:findingId/adjudicate — the ruling is recorded under the key's member.

Parameters ​

ParameterType
findingIdstring
outcomeFindingOutcome
optionsAdjudicateOptions

Returns ​

Promise<FindingAdjudication>


approveDecision() ​

ts
approveDecision(holdId, options?): Promise<DecisionReviewResult>;

POST /api/v1/decisions/:holdId/review (OWNER, ADMIN, EM) — approve a held call.

Parameters ​

ParameterType
holdIdstring
optionsReviewOptions

Returns ​

Promise<DecisionReviewResult>


approveGuardrailShadow() ​

ts
approveGuardrailShadow(guardrailId): Promise<GuardrailTransitionResult>;

POST …/guardrails/:guardrailId/approve-shadow — into SHADOW: distributed as warn, measuring, enforcing nothing.

Parameters ​

ParameterType
guardrailIdstring

Returns ​

Promise<GuardrailTransitionResult>


approveLoopRun() ​

ts
approveLoopRun(loopRunId, options?): Promise<LoopRunActionResult>;

POST /api/v1/loops/:loopRunId/review (OWNER, ADMIN, EM) — approve a run held for review; it is ACTIVE again.

Parameters ​

ParameterType
loopRunIdstring
optionsLoopRunReviewOptions

Returns ​

Promise<LoopRunActionResult>


approveMcpServer() ​

ts
approveMcpServer(serverId): Promise<McpServerDecision>;

POST /api/v1/mcp/servers/:serverId/status — approve a server (OWNER, ADMIN).

Parameters ​

ParameterType
serverIdstring

Returns ​

Promise<McpServerDecision>


assignOrgGateway() ​

ts
assignOrgGateway(orgId, gatewayId): Promise<{
  gatewayId: string | null;
}>;

PATCH /api/v1/orgs/:orgId/gateway — pass null to clear the org default.

Parameters ​

ParameterType
orgIdstring
gatewayIdstring | null

Returns ​

Promise<{ gatewayId: string | null; }>


assignWorkspaceGateway() ​

ts
assignWorkspaceGateway(gatewayId): Promise<{
  gatewayId: string | null;
}>;

PATCH /api/v1/workspace/gateway — pass null to clear the override.

Parameters ​

ParameterType
gatewayIdstring | null

Returns ​

Promise<{ gatewayId: string | null; }>


attenuateKey() ​

ts
attenuateKey(
   parentKeyId, 
   requestedCaps, 
   options?
): Promise<AttenuationResult>;

POST /api/v1/attenuate — a child of one of your keys with narrower scopes: each of requestedCaps is an API key scope (gateway:use, traces:read, …) the parent grants. The child key is in the response once and never stored.

Parameters ​

ParameterType
parentKeyIdstring
requestedCapsstring[]
optionsAttenuateOptions

Returns ​

Promise<AttenuationResult>


blockMcpServer() ​

ts
blockMcpServer(serverId): Promise<McpServerDecision>;

POST /api/v1/mcp/servers/:serverId/status — block a server (OWNER, ADMIN).

Parameters ​

ParameterType
serverIdstring

Returns ​

Promise<McpServerDecision>


checkDomainVerification() ​

ts
checkDomainVerification(verificationId): Promise<CheckDomainVerificationResult>;

GET /api/v1/domain-verification/:id — re-checks DNS for the TXT record. Safe to call repeatedly; performs a fresh lookup every call.

Parameters ​

ParameterType
verificationIdstring

Returns ​

Promise<CheckDomainVerificationResult>


collectEvidence() ​

ts
collectEvidence(options?): Promise<EvidenceCollectResult>;

POST /api/v1/compliance/soc2-collect (OWNER, ADMIN) — run a fresh evidence collection and seal it.

Parameters ​

ParameterType
optionsEvidenceCollectOptions

Returns ​

Promise<EvidenceCollectResult>


completeLoopRun() ​

ts
completeLoopRun(loopRunId, options?): Promise<LoopRunActionResult>;

POST /api/v1/loops/:loopRunId/complete — outcome records how the run ended.

Parameters ​

ParameterType
loopRunIdstring
optionsCompleteLoopRunOptions

Returns ​

Promise<LoopRunActionResult>


createGuardrail() ​

ts
createGuardrail(guardrail): Promise<AuthoredGuardrailWriteResult>;

POST /api/v1/policy-guardrails/guardrails (OWNER, ADMIN) — an authored guardrail, created PROPOSED. An IR a check refuses is a 400 naming the check.

Parameters ​

ParameterType
guardrailAuthoredGuardrailInput

Returns ​

Promise<AuthoredGuardrailWriteResult>


createNotificationRule() ​

ts
createNotificationRule(rule): Promise<NotificationRule>;

POST /api/v1/notifications/rules. A webhook rule comes back with its signingSecret, which is not shown again.

Parameters ​

ParameterType
ruleNotificationRuleInput

Returns ​

Promise<NotificationRule>


createOrg() ​

ts
createOrg(params): Promise<CreateOrgResult>;

POST /api/v1/orgs — creates a real org from an already-authenticated caller. Requires a verified, unconsumed domain verification (see startDomainVerification); the verification is consumed atomically inside the org-insert transaction, so it backs exactly this one org.

Parameters ​

ParameterType
paramsCreateOrgParams

Returns ​

Promise<CreateOrgResult>


createOrgSop() ​

ts
createOrgSop(sop): Promise<OrgSop>;

POST /api/v1/workspace/org-sops — a mandatory org-wide floor (OWNER, ADMIN of a workspace in the org).

Parameters ​

ParameterType
sopOrgSopInput

Returns ​

Promise<OrgSop>


createSiemDestination() ​

ts
createSiemDestination(destination): Promise<SiemDestination>;

POST /api/v1/siem/destinations (OWNER, ADMIN). The control plane refuses a destination that points at an internal address. A webhook destination comes back with its signingSecret, which is not shown again.

Parameters ​

ParameterType
destinationSiemDestinationInput

Returns ​

Promise<SiemDestination>


createSop() ​

ts
createSop(sop): Promise<SopCreateResult>;

POST /api/v1/sops — one workspace SOP; markdown_content without front matter.

Parameters ​

ParameterType
sopSopInput

Returns ​

Promise<SopCreateResult>


createTeam() ​

ts
createTeam(orgId, name): Promise<Pick<Team, "name" | "orgId" | "teamId">>;

POST /api/v1/orgs/:orgId/teams

Parameters ​

ParameterType
orgIdstring
namestring

Returns ​

Promise<Pick<Team, "name" | "orgId" | "teamId">>


createWorkspace() ​

ts
createWorkspace(teamId, name): Promise<Pick<Workspace, "name" | "workspaceId"> & object>;

POST /api/v1/teams/:teamId/workspaces

Parameters ​

ParameterType
teamIdstring
namestring

Returns ​

Promise<Pick<Workspace, "name" | "workspaceId"> & object>


deleteGuardrail() ​

ts
deleteGuardrail(guardrailId): Promise<GuardrailDeleteResult>;

DELETE /api/v1/policy-guardrails/guardrails/:guardrailId (OWNER, ADMIN) — retires it; its history is kept.

Parameters ​

ParameterType
guardrailIdstring

Returns ​

Promise<GuardrailDeleteResult>


deleteNotificationRule() ​

ts
deleteNotificationRule(ruleId): Promise<void>;

DELETE /api/v1/notifications/rules/:ruleId

Parameters ​

ParameterType
ruleIdstring

Returns ​

Promise<void>


deleteOrgSop() ​

ts
deleteOrgSop(orgSopId): Promise<void>;

DELETE /api/v1/workspace/org-sops/:orgSopId — answers 404 both for no such SOP and for a member without admin access.

Parameters ​

ParameterType
orgSopIdstring

Returns ​

Promise<void>


deleteSiemDestination() ​

ts
deleteSiemDestination(destinationId): Promise<void>;

DELETE /api/v1/siem/destinations/:destinationId (OWNER, ADMIN) — deactivates it; updateSiemDestination(id, { isActive: true }) turns it back on.

Parameters ​

ParameterType
destinationIdstring

Returns ​

Promise<void>


disableMcpTool() ​

ts
disableMcpTool(serverId, tool): Promise<McpServerDecision>;

POST /api/v1/mcp/servers/:serverId/tools — switch one tool off (OWNER, ADMIN).

Parameters ​

ParameterType
serverIdstring
toolstring

Returns ​

Promise<McpServerDecision>


downloadEvidence() ​

ts
downloadEvidence(runId): Promise<Uint8Array<ArrayBufferLike>>;

GET /api/v1/compliance/soc2-export/:runId (OWNER, ADMIN) — a stored archive, as the file. Check it with verifyEvidenceArchive.

Parameters ​

ParameterType
runIdstring

Returns ​

Promise<Uint8Array<ArrayBufferLike>>


downloadFrameworkCoverage() ​

ts
downloadFrameworkCoverage(frameworkId, format): Promise<Uint8Array<ArrayBufferLike>>;

GET /api/v1/compliance/frameworks/:frameworkId/coverage?format= — the report as a file. Unsigned: the signed copies are the ones sealed in the evidence archive.

Parameters ​

ParameterType
frameworkIdstring
formatCoverageFormat

Returns ​

Promise<Uint8Array<ArrayBufferLike>>


downloadInventoryHarnessesCsv() ​

ts
downloadInventoryHarnessesCsv(filters?): Promise<Uint8Array<ArrayBufferLike>>;

GET /api/v1/inventory/harnesses?format=csv — the CSV the dashboard downloads.

Parameters ​

ParameterType
filtersInventoryFilters

Returns ​

Promise<Uint8Array<ArrayBufferLike>>


downloadInventoryMcpServersCsv() ​

ts
downloadInventoryMcpServersCsv(filters?): Promise<Uint8Array<ArrayBufferLike>>;

GET /api/v1/inventory/mcp-servers?format=csv

Parameters ​

ParameterType
filtersInventoryFilters

Returns ​

Promise<Uint8Array<ArrayBufferLike>>


enableMcpTool() ​

ts
enableMcpTool(serverId, tool): Promise<McpServerDecision>;

POST /api/v1/mcp/servers/:serverId/tools — switch one tool on (OWNER, ADMIN).

Parameters ​

ParameterType
serverIdstring
toolstring

Returns ​

Promise<McpServerDecision>


extractPolicyDocument() ​

ts
extractPolicyDocument(docId, options?): Promise<ExtractDocumentResult>;

POST /api/v1/policy-guardrails/documents/:docId/extract — propose guardrails from the document's clauses.

Parameters ​

ParameterType
docIdstring
optionsExtractOptions

Returns ​

Promise<ExtractDocumentResult>


getAttenuationChain() ​

ts
getAttenuationChain(chainId): Promise<AttenuationChainLink[]>;

GET /api/v1/attenuate/chain/:chainId (OWNER, ADMIN) — the delegation lineage.

Parameters ​

ParameterType
chainIdstring

Returns ​

Promise<AttenuationChainLink[]>


getBranchUsage() ​

ts
getBranchUsage(options?): Promise<BranchUsageResponse>;

GET /api/v1/usage/branches

Parameters ​

ParameterType
optionsUsageOptions

Returns ​

Promise<BranchUsageResponse>


getCommitUsage() ​

ts
getCommitUsage(options?): Promise<CommitUsageResponse>;

GET /api/v1/usage/commits

Parameters ​

ParameterType
optionsUsageOptions

Returns ​

Promise<CommitUsageResponse>


getFindingStats() ​

ts
getFindingStats(): Promise<FindingStats>;

GET /api/v1/findings/stats — false-positive rate per detector, over adjudicated findings.

Returns ​

Promise<FindingStats>


getFrameworkCoverage() ​

ts
getFrameworkCoverage(frameworkId): Promise<FrameworkCoverage>;

GET /api/v1/compliance/frameworks/:frameworkId/coverage — eu_ai_act, iso_42001, nist_ai_rmf or mitre_atlas.

Parameters ​

ParameterType
frameworkIdstring

Returns ​

Promise<FrameworkCoverage>


getGateLiveness() ​

ts
getGateLiveness(): Promise<GateLiveness>;

GET /api/v1/governance/gate-liveness (OWNER, ADMIN, EM) — whether each installed harness's gate is reporting.

Returns ​

Promise<GateLiveness>


getGatewayConfig() ​

ts
getGatewayConfig(gatewayId): Promise<GatewayConfigResult>;

GET /api/v1/gateways/:id/config — the flags set on the gateway and their version, as the gateway pulls them.

Parameters ​

ParameterType
gatewayIdstring

Returns ​

Promise<GatewayConfigResult>


getGatewayStatus() ​

ts
getGatewayStatus(gatewayId): Promise<GatewayStatus>;

GET /api/v1/gateways/:id/status

Parameters ​

ParameterType
gatewayIdstring

Returns ​

Promise<GatewayStatus>


getGithubWebhook() ​

ts
getGithubWebhook(): Promise<GitHubWebhookInfo>;

GET /api/v1/integrations/github/webhook (OWNER, ADMIN) — the payload URL; never the secret.

Returns ​

Promise<GitHubWebhookInfo>


getGuardrail() ​

ts
getGuardrail(guardrailId): Promise<GuardrailDetail>;

GET /api/v1/policy-guardrails/guardrails/:guardrailId

Parameters ​

ParameterType
guardrailIdstring

Returns ​

Promise<GuardrailDetail>


getGuardrailCoverage() ​

ts
getGuardrailCoverage(token): Promise<TokenCoverage>;

GET /api/v1/policy-guardrails/coverage?token= — the passages that mention a tool or action, and the guardrails on them.

Parameters ​

ParameterType
tokenstring

Returns ​

Promise<TokenCoverage>


getGuardrailImpact() ​

ts
getGuardrailImpact(seed): Promise<LedgerImpact>;

GET /api/v1/policy-guardrails/impact — what a change to a document or a passage reaches. Name one of them.

Parameters ​

ParameterType
seedGuardrailImpactSeed

Returns ​

Promise<LedgerImpact>


getGuardrailReadiness() ​

ts
getGuardrailReadiness(guardrailId): Promise<GuardrailReadiness>;

GET /api/v1/policy-guardrails/guardrails/:guardrailId/readiness — whether a SHADOW guardrail's evidence clears promotion.

Parameters ​

ParameterType
guardrailIdstring

Returns ​

Promise<GuardrailReadiness>


getIncident() ​

ts
getIncident(incidentId): Promise<Incident>;

GET /api/v1/incidents/:incidentId

Parameters ​

ParameterType
incidentIdstring

Returns ​

Promise<Incident>


getIntegrityChain() ​

ts
getIntegrityChain(): Promise<IntegrityChain>;

GET /api/v1/integrity/chain — the root chain walk; intact: false lists the breaks.

Returns ​

Promise<IntegrityChain>


getIntegrityConfigChain() ​

ts
getIntegrityConfigChain(): Promise<ConfigChain>;

GET /api/v1/integrity/config-chain — the harness config snapshot chain walk.

Returns ​

Promise<ConfigChain>


getIntegrityRoot() ​

ts
getIntegrityRoot(rootId): Promise<IntegrityRootDetail>;

GET /api/v1/integrity/roots/:rootId — the root, its signature and its leaves.

Parameters ​

ParameterType
rootIdstring

Returns ​

Promise<IntegrityRootDetail>


getInventorySummary() ​

ts
getInventorySummary(): Promise<InventorySummary>;

GET /api/v1/inventory/summary

Returns ​

Promise<InventorySummary>


getLoopRun() ​

ts
getLoopRun(loopRunId): Promise<LoopRun>;

GET /api/v1/loops/:loopRunId

Parameters ​

ParameterType
loopRunIdstring

Returns ​

Promise<LoopRun>


getMemberUsage() ​

ts
getMemberUsage(options?): Promise<MemberUsageResponse>;

GET /api/v1/usage/members

Parameters ​

ParameterType
optionsUsageOptions

Returns ​

Promise<MemberUsageResponse>


getMirrorAdoptionReport() ​

ts
getMirrorAdoptionReport(candidateModel): Promise<MirrorAdoptionReport>;

GET /api/v1/routing/mirror-adoption-report — how a mirror-tested candidate model compared. Reported only; changes nothing.

Parameters ​

ParameterType
candidateModelstring

Returns ​

Promise<MirrorAdoptionReport>


getPolicyDocument() ​

ts
getPolicyDocument(docId): Promise<PolicyDocumentDetail>;

GET /api/v1/policy-guardrails/documents/:docId — passages, clauses and extraction runs.

Parameters ​

ParameterType
docIdstring

Returns ​

Promise<PolicyDocumentDetail>


getPullRequestUsage() ​

ts
getPullRequestUsage(options?): Promise<PullRequestUsageResponse>;

GET /api/v1/usage/pull-requests

Parameters ​

ParameterType
optionsUsageOptions

Returns ​

Promise<PullRequestUsageResponse>


getResponseEchoReport() ​

ts
getResponseEchoReport(options?): Promise<ResponseEchoReport>;

GET /api/v1/findings/response-echo/report

Parameters ​

ParameterType
optionsResponseEchoReportOptions

Returns ​

Promise<ResponseEchoReport>


getRuleCandidateSource() ​

ts
getRuleCandidateSource(candidateId): Promise<RuleCandidateSource>;

GET /api/v1/rule-candidates/:candidateId/source — the source of record a candidate's bundle must be compiled from. A source that does not hash to the sourceSha256 served with it is refused (ClawdeConnectionError): something between the control plane and this process changed it.

Parameters ​

ParameterType
candidateIdstring

Returns ​

Promise<RuleCandidateSource>


getSiemDestination() ​

ts
getSiemDestination(destinationId): Promise<SiemDestination>;

GET /api/v1/siem/destinations/:destinationId

Parameters ​

ParameterType
destinationIdstring

Returns ​

Promise<SiemDestination>


getSigningKeys() ​

ts
getSigningKeys(): Promise<SigningJwks>;

GET /.well-known/intutic-trace-signing.json — the published signing keys, fetched without credentials. verifyEvidenceArchive takes them.

Returns ​

Promise<SigningJwks>


getSop() ​

ts
getSop(sopId): Promise<SopDetail>;

GET /api/v1/sops/:sopId

Parameters ​

ParameterType
sopIdstring

Returns ​

Promise<SopDetail>


getTeamUsage() ​

ts
getTeamUsage(options?): Promise<TeamUsageResponse>;

GET /api/v1/usage/teams — per SCIM group.

Parameters ​

ParameterType
optionsUsageOptions

Returns ​

Promise<TeamUsageResponse>


getTrace() ​

ts
getTrace(traceId): Promise<TraceDetail>;

GET /api/v1/traces/:traceId

Parameters ​

ParameterType
traceIdstring

Returns ​

Promise<TraceDetail>


getWorkspaceSettings() ​

ts
getWorkspaceSettings(): Promise<WorkspaceSettings>;

GET /api/v1/workspace/settings — every setting, resolved with its default.

Returns ​

Promise<WorkspaceSettings>


killLoopRun() ​

ts
killLoopRun(loopRunId): Promise<LoopRunActionResult>;

POST /api/v1/loops/:loopRunId/kill

Parameters ​

ParameterType
loopRunIdstring

Returns ​

Promise<LoopRunActionResult>


listFindings() ​

ts
listFindings(filters?): Promise<Finding[]>;

GET /api/v1/findings — detector findings, newest first.

Parameters ​

ParameterType
filtersFindingFilters

Returns ​

Promise<Finding[]>


listGateways() ​

ts
listGateways(): Promise<Gateway[]>;

GET /api/v1/gateways

Returns ​

Promise<Gateway[]>


listGuardrailConflicts() ​

ts
listGuardrailConflicts(): Promise<GuardrailConflict[]>;

GET /api/v1/policy-guardrails/conflicts — live guardrails and front-matter rules that contradict each other.

Returns ​

Promise<GuardrailConflict[]>


listGuardrailDuplicates() ​

ts
listGuardrailDuplicates(options?): Promise<LedgerDuplicates>;

GET /api/v1/policy-guardrails/duplicates — overlapping passages and rules cited more than once.

Parameters ​

ParameterType
optionsDuplicatesOptions

Returns ​

Promise<LedgerDuplicates>


listGuardrails() ​

ts
listGuardrails(filters?): Promise<GuardrailSummary[]>;

GET /api/v1/policy-guardrails/guardrails

Parameters ​

ParameterType
filtersGuardrailFilters

Returns ​

Promise<GuardrailSummary[]>


listIncidents() ​

ts
listIncidents(filters?): Promise<IncidentList>;

GET /api/v1/incidents — ranked by review priority; filter by status, severity and type.

Parameters ​

ParameterType
filtersIncidentFilters

Returns ​

Promise<IncidentList>


listIntegrityRoots() ​

ts
listIntegrityRoots(options?): Promise<IntegrityRootList>;

GET /api/v1/integrity/roots — the sealed trace roots.

Parameters ​

ParameterType
options{ loopRunId?: string; }
options.loopRunId?string

Returns ​

Promise<IntegrityRootList>


listInventoryDevices() ​

ts
listInventoryDevices(): Promise<InventoryDevice[]>;

GET /api/v1/inventory/devices — one row per machine.

Returns ​

Promise<InventoryDevice[]>


listInventoryDisconnects() ​

ts
listInventoryDisconnects(options?): Promise<DeviceDisconnect[]>;

GET /api/v1/inventory/disconnects — machines that ran intutic disconnect, newest first (default 100, at most 500).

Parameters ​

ParameterType
options{ limit?: number; }
options.limit?number

Returns ​

Promise<DeviceDisconnect[]>


listInventoryHarnesses() ​

ts
listInventoryHarnesses(filters?): Promise<InventoryHarness[]>;

GET /api/v1/inventory/harnesses

Parameters ​

ParameterType
filtersInventoryFilters

Returns ​

Promise<InventoryHarness[]>


listInventoryMcpServers() ​

ts
listInventoryMcpServers(filters?): Promise<InventoryMcpServer[]>;

GET /api/v1/inventory/mcp-servers

Parameters ​

ParameterType
filtersInventoryFilters

Returns ​

Promise<InventoryMcpServer[]>


listInventorySkills() ​

ts
listInventorySkills(filters?): Promise<InventorySkill[]>;

GET /api/v1/inventory/skills

Parameters ​

ParameterType
filtersInventorySkillFilters

Returns ​

Promise<InventorySkill[]>


listLoopRuns() ​

ts
listLoopRuns(): Promise<LoopRun[]>;

GET /api/v1/loops

Returns ​

Promise<LoopRun[]>


listMcpServers() ​

ts
listMcpServers(): Promise<McpServerList>;

GET /api/v1/mcp/servers — every server the workspace's MCP proxies have reported, and the registry-wide policy.

Returns ​

Promise<McpServerList>


listNotificationRules() ​

ts
listNotificationRules(): Promise<NotificationRule[]>;

GET /api/v1/notifications/rules

Returns ​

Promise<NotificationRule[]>


listOrgSops() ​

ts
listOrgSops(): Promise<OrgSop[]>;

GET /api/v1/workspace/org-sops — the org-wide SOP floors of the key's org.

Returns ​

Promise<OrgSop[]>


listPolicyDocuments() ​

ts
listPolicyDocuments(): Promise<PolicyDocumentSummary[]>;

GET /api/v1/policy-guardrails/documents

Returns ​

Promise<PolicyDocumentSummary[]>


listPolicySources() ​

ts
listPolicySources(): Promise<PolicySource[]>;

GET /api/v1/connectors — the workspace's policy sources (Notion, Confluence, GitHub, Google Drive).

Returns ​

Promise<PolicySource[]>


listProviderCredentials() ​

ts
listProviderCredentials(): Promise<ProviderCredentialStatus[]>;

GET /api/v1/workspace/provider-credentials

Returns ​

Promise<ProviderCredentialStatus[]>


listProviderModels() ​

ts
listProviderModels(provider): Promise<ProviderModelList>;

GET /api/v1/workspace/provider-credentials/:provider/models

Parameters ​

ParameterType
providerstring

Returns ​

Promise<ProviderModelList>


listSiemDestinations() ​

ts
listSiemDestinations(): Promise<SiemDestinationList>;

GET /api/v1/siem/destinations — the destinations and the event sources they can receive.

Returns ​

Promise<SiemDestinationList>


listSiemSources() ​

ts
listSiemSources(): Promise<SiemSources>;

The event sources a destination can receive; defaults are the ones an empty sourceTables means.

Returns ​

Promise<SiemSources>


listSops() ​

ts
listSops(options?): Promise<SopSummary[]>;

GET /api/v1/sops

Parameters ​

ParameterType
options{ limit?: number; }
options.limit?number

Returns ​

Promise<SopSummary[]>


listTeams() ​

ts
listTeams(orgId): Promise<Team[]>;

GET /api/v1/orgs/:orgId/teams

Parameters ​

ParameterType
orgIdstring

Returns ​

Promise<Team[]>


listTeamWorkspaces() ​

ts
listTeamWorkspaces(teamId): Promise<Workspace[]>;

GET /api/v1/teams/:teamId/workspaces

Parameters ​

ParameterType
teamIdstring

Returns ​

Promise<Workspace[]>


listTraces() ​

ts
listTraces(filters?): Promise<TraceList>;

GET /api/v1/traces — newest first.

Parameters ​

ParameterType
filtersTraceFilters

Returns ​

Promise<TraceList>


predictCost() ​

ts
predictCost(params): Promise<CostPrediction>;

POST /api/v1/predict-cost — estimate a call's cost before it runs. Size the input with a token count or the text.

Parameters ​

ParameterType
paramsPredictCostParams

Returns ​

Promise<CostPrediction>


promoteGuardrail() ​

ts
promoteGuardrail(guardrailId, options?): Promise<GuardrailTransitionResult>;

POST …/guardrails/:guardrailId/promote — into ENFORCING. Refused with a 409 until the shadow evidence clears the thresholds; a guardrail that never fired needs acknowledgeNoTraffic.

Parameters ​

ParameterType
guardrailIdstring
optionsPromoteOptions

Returns ​

Promise<GuardrailTransitionResult>


recomputeIntegrityRoot() ​

ts
recomputeIntegrityRoot(rootId): Promise<IntegrityRecompute>;

POST /api/v1/integrity/roots/:rootId/recompute — re-derive the root from the stored traces.

Parameters ​

ParameterType
rootIdstring

Returns ​

Promise<IntegrityRecompute>


reconfirmGuardrail() ​

ts
reconfirmGuardrail(guardrailId): Promise<GuardrailTransitionResult>;

POST …/guardrails/:guardrailId/reconfirm — re-confirm a stale citation against a live passage.

Parameters ​

ParameterType
guardrailIdstring

Returns ​

Promise<GuardrailTransitionResult>


refreshPullRequestUsage() ​

ts
refreshPullRequestUsage(): Promise<PullRequestRefreshResult>;

POST /api/v1/usage/pull-requests/refresh — look the branches up on GitHub now (OWNER, ADMIN, EM).

Returns ​

Promise<PullRequestRefreshResult>


registerGateway() ​

ts
registerGateway(params): Promise<GatewayRegisterResult>;

POST /api/v1/gateways

Parameters ​

ParameterType
paramsGatewayRegisterParams

Returns ​

Promise<GatewayRegisterResult>


rejectDecision() ​

ts
rejectDecision(holdId, options?): Promise<DecisionReviewResult>;

POST /api/v1/decisions/:holdId/review (OWNER, ADMIN, EM) — reject a held call.

Parameters ​

ParameterType
holdIdstring
optionsReviewOptions

Returns ​

Promise<DecisionReviewResult>


rejectGuardrail() ​

ts
rejectGuardrail(guardrailId, reason): Promise<GuardrailTransitionResult>;

POST …/guardrails/:guardrailId/reject — recorded with the reason.

Parameters ​

ParameterType
guardrailIdstring
reasonstring

Returns ​

Promise<GuardrailTransitionResult>


rejectLoopRun() ​

ts
rejectLoopRun(loopRunId, options?): Promise<LoopRunActionResult>;

POST /api/v1/loops/:loopRunId/review (OWNER, ADMIN, EM) — reject a run held for review; it is KILLED.

Parameters ​

ParameterType
loopRunIdstring
optionsLoopRunReviewOptions

Returns ​

Promise<LoopRunActionResult>


replayGuardrail() ​

ts
replayGuardrail(guardrailId): Promise<GuardrailReplay>;

POST …/guardrails/:guardrailId/replay — what the guardrail would have done on captured traffic.

Parameters ​

ParameterType
guardrailIdstring

Returns ​

Promise<GuardrailReplay>


replayWasmRule() ​

ts
replayWasmRule(ruleId, options?): Promise<WasmReplayResult>;

POST /api/v1/wasm-rules/:ruleId/replay — what a rule would have done on sampled traffic, without enforcing.

Parameters ​

ParameterType
ruleIdstring
optionsWasmReplayOptions

Returns ​

Promise<WasmReplayResult>


resetMcpServer() ​

ts
resetMcpServer(serverId): Promise<McpServerDecision>;

POST /api/v1/mcp/servers/:serverId/status — return a server to the approval queue (OWNER, ADMIN).

Parameters ​

ParameterType
serverIdstring

Returns ​

Promise<McpServerDecision>


resolveGateway() ​

ts
resolveGateway(): Promise<GatewayResolution>;

GET /api/v1/workspace/gateway-resolution

Returns ​

Promise<GatewayResolution>


retireGuardrail() ​

ts
retireGuardrail(guardrailId): Promise<GuardrailTransitionResult>;

POST …/guardrails/:guardrailId/retire — gone from every rule endpoint on the next poll.

Parameters ​

ParameterType
guardrailIdstring

Returns ​

Promise<GuardrailTransitionResult>


revokeGateway() ​

ts
revokeGateway(gatewayId, reason?): Promise<void>;

DELETE /api/v1/gateways/:id

Parameters ​

ParameterType
gatewayIdstring
reason?string

Returns ​

Promise<void>


rotateGatewayToken() ​

ts
rotateGatewayToken(gatewayId): Promise<GatewayRotateResult>;

POST /api/v1/gateways/:id/rotate

Parameters ​

ParameterType
gatewayIdstring

Returns ​

Promise<GatewayRotateResult>


rotateGithubWebhookSecret() ​

ts
rotateGithubWebhookSecret(): Promise<GitHubWebhookSecret>;

POST /api/v1/integrations/github/webhook/secret (OWNER, ADMIN) — make the webhook, or replace its secret. Deliveries signed with an earlier secret are refused from then on.

Returns ​

Promise<GitHubWebhookSecret>


rotateNotificationRuleSecret() ​

ts
rotateNotificationRuleSecret(ruleId): Promise<NotificationSecretRotation>;

POST /api/v1/notifications/rules/:ruleId/signing-secret — deliveries are signed with the new secret from now on.

Parameters ​

ParameterType
ruleIdstring

Returns ​

Promise<NotificationSecretRotation>


rotateSiemDestinationSecret() ​

ts
rotateSiemDestinationSecret(destinationId): Promise<SiemSecretRotation>;

POST /api/v1/siem/destinations/:destinationId/signing-secret (OWNER, ADMIN)

Parameters ​

ParameterType
destinationIdstring

Returns ​

Promise<SiemSecretRotation>


searchPolicyPassages() ​

ts
searchPolicyPassages(text): Promise<PassageSearchResult>;

GET /api/v1/policy-guardrails/search?q= — full-text search over live passages, best match first.

Parameters ​

ParameterType
textstring

Returns ​

Promise<PassageSearchResult>


setGatewayConfig() ​

ts
setGatewayConfig(gatewayId, config): Promise<GatewayConfigResult>;

PATCH /api/v1/gateways/:id/config

Parameters ​

ParameterType
gatewayIdstring
configGatewayConfigUpdate

Returns ​

Promise<GatewayConfigResult>


setProviderCredential() ​

ts
setProviderCredential(provider, fields): Promise<ProviderCredentialStatus>;

PUT /api/v1/workspace/provider-credentials/:provider

Parameters ​

ParameterType
providerstring
fieldsRecord<string, string>

Returns ​

Promise<ProviderCredentialStatus>


signupOrg() ​

ts
signupOrg(params): Promise<OrgSignupResult>;

POST /api/v1/auth/signup/org — unauthenticated, creates the calling user. acceptTerms: true is required: the caller is 18 or older and agrees to the Terms and the Privacy Policy; without it the call fails with 400 TERMS_NOT_ACCEPTED.

Closed by default in production (INTUTIC_PUBLIC_ORG_SIGNUP, off unless a deployment has built its own anonymous domain-verification story): creating a real org auto-provisions a real managed gateway cell (LLD #71), so org creation now requires DNS domain-ownership proof, and an anonymous caller has no session to own a verification attempt against. Prefer startDomainVerification + checkDomainVerification + createOrg with an already-authenticated apiKey — the same flow the CLI's intutic org create and the dashboard's "Create Organization" modal use.

Parameters ​

ParameterType
paramsOrgSignupParams

Returns ​

Promise<OrgSignupResult>


startDomainVerification() ​

ts
startDomainVerification(domain): Promise<StartDomainVerificationResult>;

POST /api/v1/domain-verification/start — mints a DNS TXT-record verification token for domain. Publish a TXT record at txtRecordName with value txtRecordValue, then poll checkDomainVerification until status is 'verified'.

Parameters ​

ParameterType
domainstring

Returns ​

Promise<StartDomainVerificationResult>


startLoopRun() ​

ts
startLoopRun(name, options?): Promise<LoopRun>;

POST /api/v1/loops/start — register a loop run. Send its id with the run's requests (INTUTIC_LOOP_RUN_ID, as intutic loop exec sets it) so the proxy files them under it.

Parameters ​

ParameterType
namestring
optionsStartLoopRunOptions

Returns ​

Promise<LoopRun>


syncPolicySource() ​

ts
syncPolicySource(connectorId): Promise<PolicySourceSyncResult>;

POST /api/v1/connectors/:connectorId/sync

Parameters ​

ParameterType
connectorIdstring

Returns ​

Promise<PolicySourceSyncResult>


unsetProviderCredential() ​

ts
unsetProviderCredential(provider): Promise<void>;

DELETE /api/v1/workspace/provider-credentials/:provider

Parameters ​

ParameterType
providerstring

Returns ​

Promise<void>


updateGuardrail() ​

ts
updateGuardrail(guardrailId, changes): Promise<AuthoredGuardrailWriteResult>;

PUT /api/v1/policy-guardrails/guardrails/:guardrailId (OWNER, ADMIN). A changed IR creates the next version (forked), PROPOSED with no evidence; a name or description edit keeps the evidence.

Parameters ​

ParameterType
guardrailIdstring
changesAuthoredGuardrailUpdate

Returns ​

Promise<AuthoredGuardrailWriteResult>


updateNotificationRule() ​

ts
updateNotificationRule(ruleId, changes): Promise<NotificationRule>;

PUT /api/v1/notifications/rules/:ruleId — only the fields given change. A switch to the webhook channel comes back with the new signingSecret.

Parameters ​

ParameterType
ruleIdstring
changesNotificationRuleUpdate

Returns ​

Promise<NotificationRule>


updateSiemDestination() ​

ts
updateSiemDestination(destinationId, changes): Promise<SiemDestination>;

PUT /api/v1/siem/destinations/:destinationId (OWNER, ADMIN) — only the fields given change.

Parameters ​

ParameterType
destinationIdstring
changesSiemDestinationUpdate

Returns ​

Promise<SiemDestination>


updateWorkspaceSettings() ​

ts
updateWorkspaceSettings(settings): Promise<WorkspaceSettingsUpdateResult>;

PUT /api/v1/workspace/settings — the route intutic settings set calls.

Only the keys given change; the rest are kept (featureFlags merges one level deeper, so one flag does not switch the others off). The control plane is the authority on which keys exist and what each accepts: an unknown key or a bad value is refused with a 400 naming it, a setting the workspace's plan does not include (the group policy below Biz Org) with a 403 "Upgrade required", and a member below OWNER or ADMIN with a 403. Each refusal throws ClawdeConnectionError carrying the server's answer.

Parameters ​

ParameterType
settingsRecord<string, unknown>

Returns ​

Promise<WorkspaceSettingsUpdateResult>


uploadRuleCandidateBundle() ​

ts
uploadRuleCandidateBundle(
   candidateId, 
   wasm, 
   sourceSha256, 
   options?
): Promise<BundleUploadResult>;

POST /api/v1/rule-candidates/:candidateId/bundle (OWNER, ADMIN) — upload a compiled rule with the hash of the source it was compiled from. The control plane runs its gates; accepted says whether the rule went into shadow, and gates why.

Parameters ​

ParameterType
candidateIdstring
wasmUint8Array
sourceSha256string
optionsBundleUploadOptions

Returns ​

Promise<BundleUploadResult>


whoami() ​

ts
whoami(): Promise<WhoamiResult>;

GET /api/v1/auth/me

Returns ​

Promise<WhoamiResult>

The circuit breaker for AI agents