Models: R
RawUsage
Section titled “RawUsage”The vendor's own usage object, exactly as it reported it. Only with include=rawUsage.
provider: strmodel: strusage: dict[str, Any]
Reason
Section titled “Reason”verdict: Union[Literal['yes', 'no'], str]reason: strjudge_class_id: str | None(judgeClassIdon the wire) (optional)restricted: Optional[Literal[True]](optional)
RecordDeploymentProblemBody
Section titled “RecordDeploymentProblemBody”code: Literal['endpoint-url-invalid', 'endpoint-host-not-allowed', 'endpoint-name-mismatch', 'endpoint-unreachable', 'endpoint-info-mismatch', 'image-not-allowed', 'tenant-not-provisioned', 'capacity-unavailable', 'service-start-failed', 'pack-env-ambiguous', 'pack-env-secret-not-yet', 'pack-env-missing', 'pack-env-secret-unreadable', 'pack-env-secrets-unaudited', 'pack-env-secret-too-large', 'pack-env-secret-capacity']
RecordPackEnvBody
Section titled “RecordPackEnvBody”revision: strheld: Optional[Annotated[Union[Literal['pack-env-ambiguous', 'pack-env-secret-not-yet', 'pack-env-missing', 'pack-env-secret-unreadable', 'pack-env-update-failed', 'pack-env-secrets-unaudited', 'pack-env-secret-too-large', 'pack-env-secret-redeploy'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]](optional)applied_revision: str | None(appliedRevisionon the wire) (optional)
RecordedSecretScopeOrg
Section titled “RecordedSecretScopeOrg”Where a secret an item names is read, recorded when the item is registered: the first of the item's own scope, its project's org and the tenant that has the secret and that the registrant administers. Else, the broadest they administer; for a deployment's tools, deployed or promoted, where that deployment's secrets sync writes (POST /v1/deployments/{deploymentId}/secrets), when the registrant administers it: its project, or the tenant for a deploy that names none and for a promotion into the Default project, which are stored with no project. The runtime reads the secret there only: a secret removed from it is missing, never read from a broader scope, and one set later elsewhere changes nothing until it's recorded again: a tool by publishing a new version, an MCP endpoint by unregistering it and registering it again, a webhook trigger by an update that names its secret.
kind: Literal['org']org_id: uuid.UUID(orgIdon the wire)
RecordedSecretScopeProject
Section titled “RecordedSecretScopeProject”Where a secret an item names is read, recorded when the item is registered: the first of the item's own scope, its project's org and the tenant that has the secret and that the registrant administers. Else, the broadest they administer; for a deployment's tools, deployed or promoted, where that deployment's secrets sync writes (POST /v1/deployments/{deploymentId}/secrets), when the registrant administers it: its project, or the tenant for a deploy that names none and for a promotion into the Default project, which are stored with no project. The runtime reads the secret there only: a secret removed from it is missing, never read from a broader scope, and one set later elsewhere changes nothing until it's recorded again: a tool by publishing a new version, an MCP endpoint by unregistering it and registering it again, a webhook trigger by an update that names its secret.
kind: Literal['project']project_id: uuid.UUID(projectIdon the wire)
RecordedSecretScopeTenant
Section titled “RecordedSecretScopeTenant”Where a secret an item names is read, recorded when the item is registered: the first of the item's own scope, its project's org and the tenant that has the secret and that the registrant administers. Else, the broadest they administer; for a deployment's tools, deployed or promoted, where that deployment's secrets sync writes (POST /v1/deployments/{deploymentId}/secrets), when the registrant administers it: its project, or the tenant for a deploy that names none and for a promotion into the Default project, which are stored with no project. The runtime reads the secret there only: a secret removed from it is missing, never read from a broader scope, and one set later elsewhere changes nothing until it's recorded again: a tool by publishing a new version, an MCP endpoint by unregistering it and registering it again, a webhook trigger by an update that names its secret.
kind: Literal['tenant']
RecordedSecretScopeUnrecognized
Section titled “RecordedSecretScopeUnrecognized”A kind this client doesn't know yet, from a newer runtime: the object as it came, every field kept.
kind: str
Reference
Section titled “Reference”name: strref: strversion: int
RefreshResult
Section titled “RefreshResult”session_token: str(sessionTokenon the wire)session_id: str(sessionIdon the wire)expires_at: AwareDatetime(expiresAton the wire)
RefusedItem
Section titled “RefusedItem”path: strmessage: str
RegisterGuardrailBody
Section titled “RegisterGuardrailBody”Guardrail spec. Validated server-side via @kindgi/guardrails.validateGuardrailSpec. Metadata-only registration: the check id must reference an implementation already available to the runtime.
id: strproject_id: uuid.UUID(projectIdon the wire)name: str | None(optional)description: str | None(optional)kind: strcheck: strconfig: dict[str, Any] | None(optional)action: kindgi.client.GuardrailActionseverity: Optional[Literal['info', 'warn', 'error', 'critical']](optional)scope: kindgi.client.GuardrailScope | None(optional)budget: kindgi.client.Budget | None(optional)judge_capabilities: dict[str, Any] | None(judgeCapabilitieson the wire) (optional)
RegisterGuardrailResult
Section titled “RegisterGuardrailResult”guardrail_id: str(guardrailIdon the wire)
RegisterIdentityProviderBody
Section titled “RegisterIdentityProviderBody”root: kindgi.client.OidcIdentityProviderConfig | kindgi.client.SamlIdentityProviderConfig
RegisterIdentityProviderResult
Section titled “RegisterIdentityProviderResult”provider_id: str(providerIdon the wire)provider: Optional[Annotated[kindgi.client.OidcIdentityProviderConfig | kindgi.client.SamlIdentityProviderConfig | kindgi.client.IdentityProviderConfigUnrecognized, <kindgi.client._open.OpenUnion object at 0x10865ac90>]](optional)
RegisterMCPEndpointBody
Section titled “RegisterMCPEndpointBody”endpoint_id: str(endpointIdon the wire)name: strtransport: Union[Literal['stdio', 'http-sse', 'streamable-http'], str]config: kindgi.client.Config3 | kindgi.client.Config4 | kindgi.client.Config5secret_ref: kindgi.client.MCPEndpointSecretRef | None(secretRefon the wire) (optional)auth: Optional[Annotated[kindgi.client.MCPBasicAuth | kindgi.client.MCPOAuth2ClientCredentialsAuth | kindgi.client.MCPHeaderAuth | kindgi.client.MCPEndpointAuthUnrecognized, <kindgi.client._open.OpenUnion object at 0x1087fec90>]](optional)instructions: str | None(optional)metadata: dict[str, Any] | None(optional)send_traceparent: bool | None(sendTraceparenton the wire) (optional)scope_kind: Literal['tenant', 'org', 'project'](scopeKindon the wire)scope_id: str | None(scopeIdon the wire) (optional)
RegisterMCPEndpointResult
Section titled “RegisterMCPEndpointResult”endpoint_id: str(endpointIdon the wire)
RegisterProviderBody
Section titled “RegisterProviderBody”metadata: kindgi.client.ProviderMetadataadapter_id: strsecret_ref: kindgi.client.SecretRef | None(optional)adapter_config: dict[str, str | float | bool] | None(optional)send_traceparent: bool | None(optional)
RegisterProviderResult
Section titled “RegisterProviderResult”provider_id: str(providerIdon the wire)
RegisterReviewerBody
Section titled “RegisterReviewerBody”Register a reviewer for the caller's tenant. Idempotent w.r.t. (tenantId, userId) — re-registering rotates role/displayName rather than inserting a duplicate.
user_id: uuid.UUID(userIdon the wire)role: Literal['standard', 'senior', 'admin']display_name: str | None(displayNameon the wire) (optional)
RegisterScheduleBody
Section titled “RegisterScheduleBody”Name what it runs: flowId with flowVersion, agentId (with an optional agentVersion), or improve (improvement passes). Registering needs write on the project and execute on what it runs (publish on the agent for improve); its runs act as the caller.
flow_id: str | None(flowIdon the wire) (optional)flow_version: str | None(flowVersionon the wire) (optional)agent_id: str | None(agentIdon the wire) (optional)agent_version: str | None(agentVersionon the wire) (optional)improve: kindgi.client.ImproveScheduleTarget | None(optional)project_id: uuid.UUID | None(projectIdon the wire) (optional)run_as_service_account_id: str | None(runAsServiceAccountIdon the wire) (optional)config: kindgi.client.Config6catch_up: Optional[Literal['latest', 'skip']](catchUpon the wire) (optional)overlap: Optional[Literal['skip', 'allow']](optional)starting_deadline_seconds: int | None(startingDeadlineSecondson the wire) (optional)label: str | None(optional)
RegisterSiteBody
Section titled “RegisterSiteBody”display_name: str(displayNameon the wire)origin: strapprovals_url: str(approvalsUrlon the wire)allowed_roles: list[kindgi.client.AllowedRole] | None(allowedRoleson the wire) (optional)role_map: dict[str, kindgi.client.SiteRoleGrant] | None(roleMapon the wire) (optional)reviewer_ceiling: Optional[Literal['standard', 'senior']](reviewerCeilingon the wire) (optional)vouching: bool | None(optional)people_cap: int | None(peopleCapon the wire) (optional)new_people_per_day: int | None(newPeoplePerDayon the wire) (optional)
RegisterSiteResult
Section titled “RegisterSiteResult”site: kindgi.client.Siteenrollment: kindgi.client.SiteEnrollmentCode
RegisterToolBody
Section titled “RegisterToolBody”ToolManifest — Tool minus its runtime handler. Validated server-side via @kindgi/tools.validateToolManifest. Metadata-only registration: the handler is not uploaded and must already be available to the runtime.
id: strproject_id: uuid.UUID(projectIdon the wire)description: strversion: str | None(optional)input: dict[str, Any]output: dict[str, Any]needs: list[kindgi.client.ToolNeed] | None(optional)effects: list[kindgi.client.ToolEffect] | None(optional)transport: Optional[Literal['auto', 'native', 'mcp']](optional)mcp_endpoint: str | None(mcpEndpointon the wire) (optional)metadata: dict[str, Any] | None(optional)mutating: bool | None(optional)needs_approval_when_unattended: bool | None(needsApprovalWhenUnattendedon the wire) (optional)sandbox: Optional[Annotated[Union[Literal['none', 'context-isolated', 'strict'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]](optional)limits: kindgi.client.RuntimeLimits | None(optional)network: Optional[Annotated[kindgi.client.NetworkPolicy1 | kindgi.client.NetworkPolicy2 | kindgi.client.NetworkPolicyUnrecognized, <kindgi.client._open.OpenUnion object at 0x108647110>]](optional)needs_spec: kindgi.client.TypedNeeds | None(needsSpecon the wire) (optional)code_artifact_ref: Optional[Annotated[kindgi.client.CodeArtifactRefOci | kindgi.client.CodeArtifactRefFilesystem | kindgi.client.CodeArtifactRefUnrecognized, <kindgi.client._open.OpenUnion object at 0x108647450>]](codeArtifactRefon the wire) (optional)spec: kindgi.client.ToolSpec | None(optional)
RegisterToolResult
Section titled “RegisterToolResult”tool_id: str(toolIdon the wire)
RegisterWebhookTriggerBody
Section titled “RegisterWebhookTriggerBody”flow_id: str(flowIdon the wire)flow_version: str(flowVersionon the wire)project_id: uuid.UUID | None(projectIdon the wire) (optional)config: kindgi.client.Config8 | None(optional)hmac_secret_name: str(hmacSecretNameon the wire)generate_secret: bool | None(generateSecreton the wire) (optional)signature: Optional[Annotated[kindgi.client.WebhookSignatureHmacSha256 | kindgi.client.WebhookSignatureStandardWebhooks | kindgi.client.WebhookSignatureUnrecognized, <kindgi.client._open.OpenUnion object at 0x108786190>]](optional)delivery_id_header: str | None(deliveryIdHeaderon the wire) (optional)body_limit_bytes: int | None(bodyLimitByteson the wire) (optional)rate_limit_per_minute: int | None(rateLimitPerMinuteon the wire) (optional)label: str | None(optional)run_as_service_account_id: str | None(runAsServiceAccountIdon the wire) (optional)
ReinstateAgentVersionResult
Section titled “ReinstateAgentVersionResult”agent_id: str(agentIdon the wire)version: strwas_tombstoned: bool(wasTombstonedon the wire)
ReinstateBlockResult
Section titled “ReinstateBlockResult”block_id: str(blockIdon the wire)version: strwas_tombstoned: bool(wasTombstonedon the wire)
ReinstateEvalSuiteVersionResult
Section titled “ReinstateEvalSuiteVersionResult”suite_id: str(suiteIdon the wire)version: strwas_tombstoned: bool(wasTombstonedon the wire)
ReinstateFlowVersionResult
Section titled “ReinstateFlowVersionResult”flow_id: str(flowIdon the wire)version: strwas_tombstoned: bool(wasTombstonedon the wire)
ReinstatePolicyVersionResult
Section titled “ReinstatePolicyVersionResult”policy_id: str(policyIdon the wire)version: strwas_tombstoned: bool(wasTombstonedon the wire)
ReinstateToolVersionResult
Section titled “ReinstateToolVersionResult”tool_id: str(toolIdon the wire)version: strwas_tombstoned: bool(wasTombstonedon the wire)
Remember
Section titled “Remember”Lets the agent remember: its turns offer the built-in tool kindgi_remember (built-in tools are kindgi_<verb>; an agent cannot list one in tools, and a published tool cannot use the prefix). The model picks the type, the text (up to 2,000 characters), an optional slot key and when it stops being true; the scope comes from here and the run. Every remembered fact is unverified, attributed to the agent version and the call that wrote it, and expires after keepDays unless a person verifies it. A person approves it before any read sees it when the scope is wider than one person (same-project, tenant) or the text reads like an instruction.
types: list[kindgi.client.Type]scope: Union[Literal['same-user', 'same-conversation', 'same-project', 'tenant'], str]keep_days: int | None(keepDayson the wire) (optional)
Replay
Section titled “Replay”Each knob left out of the block is 0. No block: no replay checks.
max_diverged: int | None(maxDivergedon the wire) (optional)max_errors: int | None(maxErrorson the wire) (optional)max_refused_writes: int | None(maxRefusedWriteson the wire) (optional)max_stopped: int | None(maxStoppedon the wire) (optional)
ReplayMemoryErasuresBody
Section titled “ReplayMemoryErasuresBody”erasures: list[kindgi.client.MemoryErasureLedgerEntry]
ReplayMemoryErasuresResult
Section titled “ReplayMemoryErasuresResult”replayed: list[uuid.UUID]restored: list[uuid.UUID]unmatched: list[kindgi.client.UnmatchedItem]
RequestedApproval
Section titled “RequestedApproval”The approval an approval.requested event names. What it is about stays behind sign-in: no context, no tool call or run input.
approval_id: str(approvalIdon the wire)project_id: str | None(projectIdon the wire) (optional)required_role: Union[Literal['standard', 'senior', 'admin'], str](requiredRoleon the wire)title: str | None(optional)assigned_to: str | None(assignedToon the wire) (optional)created_at: AwareDatetime(createdAton the wire)expires_at: AwareDatetime | None(expiresAton the wire) (optional)url: str | None(optional)
RequestedBy
Section titled “RequestedBy”kind: Union[Literal['user', 'service'], str]id: str
RescoreEvalRunBody
Section titled “RescoreEvalRunBody”Body of POST /v1/eval-runs/{runId}/rescore: optional.
project_id: str | None(projectIdon the wire) (optional)
Restricted
Section titled “Restricted”The same weights, counting only judgments recorded while their class was restricted (Judgment.restricted), for a comparison weighted restricted-only. Absent from a test set built before restrictions.
yes_weight: float(yesWeighton the wire)total_weight: float(totalWeighton the wire)
Resume
Section titled “Resume”How the run went on, when this call resumed it (the runtime resumes inline): ok, or failed with the run's error, e.g. tool-version-unresolvable when a tool version the turn started with is gone, or rate-limit-exceeded when a budget kept per tenant refused work the turn needed. The decision stands either way.
kind: Literal['ok']
Resume1
Section titled “Resume1”How the run went on, when this call resumed it (the runtime resumes inline): ok, or failed with the run's error, e.g. tool-version-unresolvable when a tool version the turn started with is gone, or rate-limit-exceeded when a budget kept per tenant refused work the turn needed. The decision stands either way.
kind: Literal['failed']code: strmessage: str
ResumeMemoryErasureBody
Section titled “ResumeMemoryErasureBody”force: bool | None(optional)
ResumeRunBody
Section titled “ResumeRunBody”waitpoint_id: str(waitpointIdon the wire)value: Any | None(optional)
Retention
Section titled “Retention”keep_until: AwareDatetime | None(keepUntilon the wire) (optional)keep_days: int | None(keepDayson the wire) (optional)legal_hold: bool | None(legalHoldon the wire) (optional)
RetentionPolicyConflict
Section titled “RetentionPolicyConflict”domain: Union[Literal['org', 'agent', 'flow', 'tool', 'eval_suite', 'guardrail', 'mcp_endpoint', 'env', 'secret', 'run', 'artifact', 'policy', 'judgment', 'judge_class', 'provider', 'memory', 'conversation', 'api_key', 'service_account', '*'], str]policy_ids: list[str](policyIdson the wire)applied_policy_id: str(appliedPolicyIdon the wire)
RetentionScheduledItem
Section titled “RetentionScheduledItem”domain: Union[Literal['org', 'agent', 'flow', 'tool', 'eval_suite', 'guardrail', 'mcp_endpoint', 'env', 'secret', 'run', 'artifact', 'policy', 'judgment', 'judge_class', 'provider', 'memory', 'conversation', 'api_key', 'service_account', '*'], str]id: strunregistered_at: AwareDatetime(unregisteredAton the wire)purge_at: AwareDatetime(purgeAton the wire)past_grace: bool(pastGraceon the wire)policy_id: str | None(policyIdon the wire) (optional)policy_version: str | None(policyVersionon the wire) (optional)grace_seconds: int(graceSecondson the wire)limit_applied: Optional[Literal[True]](limitAppliedon the wire) (optional)
RetentionScheduledPage
Section titled “RetentionScheduledPage”data: list[kindgi.client.RetentionScheduledItem]has_more: bool | None(hasMoreon the wire) (optional)next_cursor: str | None(nextCursoron the wire) (optional)domains_missing_adapter: list[Annotated[Union[Literal['org', 'agent', 'flow', 'tool', 'eval_suite', 'guardrail', 'mcp_endpoint', 'env', 'secret', 'run', 'artifact', 'policy', 'judgment', 'judge_class', 'provider', 'memory', 'conversation', 'api_key', 'service_account', '*'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]](domainsMissingAdapteron the wire)unpoliced_domains: list[Annotated[Union[Literal['org', 'agent', 'flow', 'tool', 'eval_suite', 'guardrail', 'mcp_endpoint', 'env', 'secret', 'run', 'artifact', 'policy', 'judgment', 'judge_class', 'provider', 'memory', 'conversation', 'api_key', 'service_account', '*'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]](unpolicedDomainson the wire)conflicts: list[kindgi.client.RetentionPolicyConflict] | None(optional)
RetentionSweepBody
Section titled “RetentionSweepBody”domain: Optional[Annotated[Union[Literal['org', 'agent', 'flow', 'tool', 'eval_suite', 'guardrail', 'mcp_endpoint', 'env', 'secret', 'run', 'artifact', 'policy', 'judgment', 'judge_class', 'provider', 'memory', 'conversation', 'api_key', 'service_account', '*'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]](optional)max_per_domain: int | None(maxPerDomainon the wire) (optional)
RetentionSweepDomainBody
Section titled “RetentionSweepDomainBody”max_per_domain: int | None(maxPerDomainon the wire) (optional)
RetentionSweepResult
Section titled “RetentionSweepResult”per_domain: list[kindgi.client.PerDomainItem](perDomainon the wire)total_purged: int(totalPurgedon the wire)conflicts: list[kindgi.client.RetentionPolicyConflict] | None(optional)
RetrievalHit
Section titled “RetrievalHit”fact: kindgi.client.Factscore: float | None(optional)
RetrievalIntent
Section titled “RetrievalIntent”source: Optional[Annotated[Union[Literal['facts', 'conversations'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]](optional)types: list[str] | None(optional)roles: list[Annotated[Union[Literal['user', 'agent'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]] | None(optional)scope: Union[Literal['same-conversation', 'same-user', 'same-segment', 'same-project', 'tenant'], str]limit: int | None(optional)mode: Optional[Annotated[Union[Literal['keyword', 'semantic', 'both'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]](optional)
RetrieveIntent
Section titled “RetrieveIntent”Retrieval intent — mirrors RetrievalIntent from @kindgi/agents, widened for direct-HTTP use. mode: "list" returns a plain scoped list (no query), newest first. mode: "keyword" runs full-text search. mode: "semantic" searches by meaning — it needs embeddings on the deployment; without them the route answers 422 semantic-unavailable. mode: "both" runs both and fuses them by rank (reciprocal rank fusion), as semantic needing embeddings.
mode: Literal['list', 'keyword', 'semantic', 'both']query: str | None(optional)type: str | None(optional)scope: kindgi.client.FactScope | None(optional)limit: int | None(optional)embedding_model: str | None(embeddingModelon the wire) (optional)
RetrieveMemoryBody
Section titled “RetrieveMemoryBody”Retrieval intent — mirrors RetrievalIntent from @kindgi/agents, widened for direct-HTTP use. mode: "list" returns a plain scoped list (no query), newest first. mode: "keyword" runs full-text search. mode: "semantic" searches by meaning — it needs embeddings on the deployment; without them the route answers 422 semantic-unavailable. mode: "both" runs both and fuses them by rank (reciprocal rank fusion), as semantic needing embeddings.
mode: Literal['list', 'keyword', 'semantic', 'both']query: str | None(optional)type: str | None(optional)scope: kindgi.client.FactScope | None(optional)limit: int | None(optional)embedding_model: str | None(embeddingModelon the wire) (optional)
RetrieveMemoryResult
Section titled “RetrieveMemoryResult”results: list[kindgi.client.RetrievalHit]
The attempts a retry asks for. In 0.1 nothing acts on it: there's no second attempt.
max_attempts: int(maxAttemptson the wire)
ReviewDecision
Section titled “ReviewDecision”id: strapproval_id: uuid.UUID(approvalIdon the wire)reviewer_id: uuid.UUID(reviewerIdon the wire)decision: Union[Literal['approve', 'reject', 'escalate', 'withdraw'], str]rationale: str | None(optional)reviewer_role_at_decision: Union[Literal['standard', 'senior', 'admin'], str](reviewerRoleAtDecisionon the wire)decided_at: AwareDatetime(decidedAton the wire)
ReviewDecisionKind
Section titled “ReviewDecisionKind”root: Literal['approve', 'reject', 'escalate', 'withdraw']
Reviewer
Section titled “Reviewer”Reviewer roster row. Deactivation is soft (audit trail survives offboarding). deactivatedAt present → reviewer no longer receives approvals.
id: uuid.UUIDtenant_id: uuid.UUID(tenantIdon the wire)user_id: uuid.UUID(userIdon the wire)role: Union[Literal['standard', 'senior', 'admin'], str]display_name: str | None(displayNameon the wire) (optional)created_at: AwareDatetime(createdAton the wire)deactivated_at: AwareDatetime | None(deactivatedAton the wire) (optional)
ReviewerCollectionPage
Section titled “ReviewerCollectionPage”data: list[kindgi.client.Reviewer]next_cursor: str | None(nextCursoron the wire) (optional)has_more: bool(hasMoreon the wire)
RevokeSessionsResult
Section titled “RevokeSessionsResult”user_id: str(userIdon the wire)revoked_count: int(revokedCounton the wire)
RevokeSigningKeyBody
Section titled “RevokeSigningKeyBody”reason: str | None(optional)
RevokeSigningKeyResult
Section titled “RevokeSigningKeyResult”key_id: str(keyIdon the wire)revoked: bool
RevokeSystemKeyResult
Section titled “RevokeSystemKeyResult”The revoked system key, and the keys revoked with it because they were minted from it.
id: strlabel: str | None(optional)scopes: list[Annotated[Union[Literal['system:tenants', 'system:tenants:create', 'system:tenants:image-prefix', 'system:tenants:production', 'system:tenants:limits', 'system:tenants:contacts', 'system:tenants:purge', 'system:suspend', 'system:deployments', 'system:pack-env', 'system:license', 'kindgi:system'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]]created_at: AwareDatetime(createdAton the wire)expires_at: AwareDatetime | None(expiresAton the wire) (optional)revoked_at: AwareDatetime | None(revokedAton the wire) (optional)minted_by: str(mintedByon the wire)also_revoked: list[str](alsoRevokedon the wire)
RevokeTokenResult
Section titled “RevokeTokenResult”token_id: uuid.UUID(tokenIdon the wire)revoked: Literal[True]
RoleActions
Section titled “RoleActions”What a project role allows on the project and on every object of each type in it, by object type.
project: list[Annotated[Union[Literal['read', 'write', 'admin', 'delete'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]]agent: list[Annotated[Union[Literal['read', 'write', 'delete', 'admin', 'execute', 'publish', 'promote'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]]flow: list[Annotated[Union[Literal['read', 'write', 'delete', 'admin', 'execute', 'publish'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]]tool: list[Annotated[Union[Literal['read', 'write', 'delete', 'admin', 'invoke'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]]guardrail: list[Annotated[Union[Literal['read', 'write', 'admin', 'delete'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]]eval_suite: list[Annotated[Union[Literal['read', 'write', 'delete', 'admin', 'execute', 'publish'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]]trigger: list[Annotated[Union[Literal['read', 'write', 'delete', 'admin', 'fire'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]]conversation: list[Annotated[Union[Literal['read', 'write', 'admin', 'delete'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]]secret: list[Annotated[Union[Literal['read', 'write', 'delete', 'admin', 'rotate'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]]env: list[Annotated[Union[Literal['read', 'write', 'admin', 'delete'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]]mcp_endpoint: list[Annotated[Union[Literal['read', 'write', 'admin', 'delete'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]]run: list[Annotated[Union[Literal['read', 'cancel', 'delete'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]]
RoleCapabilities
Section titled “RoleCapabilities”What each project role allows, worked out by the runtime from its authorization model. A client decides an action as capabilities[project.role][type] holding it; the server still checks every call. An object can grant more on itself (an agent's own editor), never less, so this is what the caller may do at the least.
owner: kindgi.client.RoleActionsadmin: kindgi.client.RoleActionseditor: kindgi.client.RoleActionsviewer: kindgi.client.RoleActions
RollbackBody
Section titled “RollbackBody”scope: kindgi.client.LiveScopeTenant | kindgi.client.LiveScopeOrg | kindgi.client.LiveScopeProject | kindgi.client.LiveScopeSegment | kindgi.client.LiveScopeUnrecognizedto_version: str | None(toVersionon the wire) (optional)reason: str | None(optional)
RolledBack
Section titled “RolledBack”at: AwareDatetimepromotion_id: str(promotionIdon the wire)by: strreason: str | None(optional)
RotationStatus
Section titled “RotationStatus”rotation_id: uuid.UUID(rotationIdon the wire)status: Union[Literal['pending', 'succeeded', 'failed'], str]started_at: AwareDatetime(startedAton the wire)updated_at: AwareDatetime(updatedAton the wire)new_version_id: int | None(newVersionIdon the wire) (optional)old_version_id: int | None(oldVersionIdon the wire) (optional)error: str | None(optional)
id: uuid.UUIDtenant_id: uuid.UUID(tenantIdon the wire)project_id: uuid.UUID | None(projectIdon the wire) (optional)flow_id: str(flowIdon the wire)flow_version: str(flowVersionon the wire)status: Union[Literal['pending', 'running', 'suspended', 'completed', 'failed', 'cancelled'], str]dry_run: bool(dryRunon the wire)created_at: AwareDatetime(createdAton the wire)updated_at: AwareDatetime(updatedAton the wire)completed_at: AwareDatetime | None(completedAton the wire) (optional)failure_message: str | None(failureMessageon the wire) (optional)failure: kindgi.client.RunFailure | None(optional)output: Any | None(optional)content_erased_at: AwareDatetime | None(contentErasedAton the wire) (optional)parent_run_id: uuid.UUID | None(parentRunIdon the wire) (optional)parent_node_id: str | None(parentNodeIdon the wire) (optional)agent: kindgi.client.RunAgent | None(optional)waiting_for: kindgi.client.RunWaitingFor | None(waitingForon the wire) (optional)trigger: kindgi.client.RunTrigger | None(optional)started_by: Optional[Annotated[Union[Literal['person', 'key', 'schedule', 'webhook', 'event'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]](startedByon the wire) (optional)replay_of: uuid.UUID | None(replayOfon the wire) (optional)eval_run_id: str | None(evalRunIdon the wire) (optional)versions: kindgi.client.FlowVersionOverrides | None(optional)segments: list[kindgi.client.ScopeSegment] | None(optional)trace_id: str | None(traceIdon the wire) (optional)public_access_token: str | None(publicAccessTokenon the wire) (optional)public_access_token_expires_at: AwareDatetime | None(publicAccessTokenExpiresAton the wire) (optional)
RunAgent
Section titled “RunAgent”Set on an agent's turn (an agent run, or the turn a flow's agent step started): the agent, the version that ran and the conversation. Absent on other runs, and on turns that ran before Kindgi 0.1.3.
id: strversion: strconversation_id: uuid.UUID(conversationIdon the wire)via: Optional[Annotated[Union[Literal['explicit', 'flow-pin', 'conversation', 'live', 'latest'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]](optional)live_scope: Optional[Annotated[kindgi.client.LiveScopeTenant | kindgi.client.LiveScopeOrg | kindgi.client.LiveScopeProject | kindgi.client.LiveScopeSegment | kindgi.client.LiveScopeUnrecognized, <kindgi.client._open.OpenUnion object at 0x1087ade90>]](liveScopeon the wire) (optional)
RunCollectionPage
Section titled “RunCollectionPage”data: list[kindgi.client.Datum]next_cursor: str | None(nextCursoron the wire) (optional)has_more: bool(hasMoreon the wire)
RunEvent
Section titled “RunEvent”event_id: str(eventIdon the wire)run_id: str(runIdon the wire)tenant_id: str(tenantIdon the wire)timestamp: AwareDatetimekind: Union[Literal['run.queued', 'run.started', 'run.step-started', 'run.step-completed', 'run.step-failed', 'run.step-retry-scheduled', 'run.iteration-started', 'run.iteration-completed', 'run.tool-invoked', 'run.tool-result', 'run.model-token', 'run.artifact-produced', 'run.guardrail-violated', 'run.wait-suspended', 'run.wait-resumed', 'run.approval-requested', 'run.approval-completed', 'run.completed', 'run.failed', 'run.cancelled'], str]sequence: int | None(optional)node_id: str | None(nodeIdon the wire) (optional)payload: Any | None(optional)
RunFailure
Section titled “RunFailure”Why a failed run failed; present only on a failed run. An agent turn's failure carries its own code (budget-exceeded, capability-routing-failed, model-invocation-failed, …; rate-limit-exceeded when a budget kept per tenant refused work the turn needed, with details naming the budget); any other failure is run-failed, with the run's failure message.
code: strmessage: strcause: Any | None(optional)reason: str | None(optional)details: dict[str, Any] | None(optional)
RunFailureGroups
Section titled “RunFailureGroups”from_: AwareDatetime(fromon the wire)to: AwareDatetimegroups: list[kindgi.client.FailureGroup]outcomes: list[kindgi.client.FailureGroup]unrecorded: list[kindgi.client.FailureGroup]total: int
RunFinishedEvent
Section titled “RunFinishedEvent”id: strtype: Literal['run.finished']created_at: AwareDatetime(createdAton the wire)data: kindgi.client.Data
root: str
RunJournalPage
Section titled “RunJournalPage”data: list[kindgi.client.Datum1]has_more: bool(hasMoreon the wire)next_cursor: str | None(nextCursoron the wire) (optional)
RunProgress
Section titled “RunProgress”A run's progress: status and timing, without its input, output, failure message or tenant. Safe to show in a browser.
id: uuid.UUIDflow_id: str(flowIdon the wire)flow_version: str(flowVersionon the wire)status: Union[Literal['pending', 'running', 'suspended', 'completed', 'failed', 'cancelled'], str]created_at: AwareDatetime(createdAton the wire)updated_at: AwareDatetime(updatedAton the wire)completed_at: AwareDatetime | None(completedAton the wire) (optional)parent_run_id: uuid.UUID | None(parentRunIdon the wire) (optional)
RunProgressEvent
Section titled “RunProgressEvent”A run event without its payload: what happened, on which node, when.
event_id: str(eventIdon the wire)run_id: str(runIdon the wire)timestamp: AwareDatetimekind: strsequence: intnode_id: str | None(nodeIdon the wire) (optional)
RunStatus
Section titled “RunStatus”root: Literal['pending', 'running', 'suspended', 'completed', 'failed', 'cancelled']
RunTreeUsage
Section titled “RunTreeUsage”The model calls of the run tree (this run and every run it started) that the cost ledger had recorded when this run finished: a child run still running then isn't in it. calls counts failed calls too. Absent when the runtime records no usage.
calls: intcost_usd: float(costUsdon the wire)tokens: kindgi.client.CostTokenTotals
RunTrigger
Section titled “RunTrigger”Set on a run a trigger started: the trigger and the fire that started it. Absent on other runs. The runtime fires schedules only; event and webhook are kept for event triggers and inbound webhooks, which aren't served yet.
trigger_id: uuid.UUID(triggerIdon the wire)kind: Union[Literal['schedule', 'event', 'webhook'], str]fire_id: str(fireIdon the wire)scheduled_for: AwareDatetime | None(scheduledForon the wire) (optional)
RunWaitingApproval
Section titled “RunWaitingApproval”An approval the run waits for, as a run reader sees it: its identity and state. Its subject's details, description, context and decision stay on GET /v1/approvals/{approvalId}, behind the reviewer gate.
approval_id: uuid.UUID(approvalIdon the wire)status: strrequired_role: str(requiredRoleon the wire)title: str | None(optional)created_at: AwareDatetime(createdAton the wire)expires_at: AwareDatetime | None(expiresAton the wire) (optional)subject_kind: str(subjectKindon the wire)tool: kindgi.client.RunWaitingApprovalTool | None(optional)
RunWaitingApprovalTool
Section titled “RunWaitingApprovalTool”For a tool call held for review: which tool and which call. Never the call's arguments.
id: strversion: strcall_id: str(callIdon the wire)
RunWaitingFor
Section titled “RunWaitingFor”Set on a suspended run by GET /v1/runs/{runId} (not the list): what it waits for, its journal's open waits. approvals: those still to be decided, linked to the waits. other: the rest. Absent from a runtime before Kindgi 0.1.6, or when the journal can't be read; kindgi runs resume then works it out itself.
approvals: list[kindgi.client.RunWaitingApproval]other: list[kindgi.client.OtherItem]
RuntimeLimits
Section titled “RuntimeLimits”Sandbox-enforced resource caps at dispatch. Optional additive field.
mem_mb: int(memMBon the wire)cpu_ms: int(cpuMson the wire)