Models: M
MCPAuthHeader
Section titled “MCPAuthHeader”One header a header auth sends: <name>: <prefix><secret>.
name: strsecret_ref: kindgi.client.MCPEndpointSecretRef(secretRefon the wire)prefix: str | None(optional)
MCPBasicAuth
Section titled “MCPBasicAuth”HTTP Basic: the runtime sends Authorization: Basic base64(<username>:<secret>), with the secret secretRef names (a WordPress Application Password, for one).
scheme: Literal['basic']username: strsecret_ref: kindgi.client.MCPEndpointSecretRef(secretRefon the wire)
MCPEndpoint
Section titled “MCPEndpoint”endpoint_id: str(endpointIdon the wire)name: strtransport: Union[Literal['stdio', 'http-sse', 'streamable-http'], str]config: kindgi.client.Config | kindgi.client.Config1 | kindgi.client.Config2 | kindgi.client.MCPEndpointConfigUnrecognizedsecret_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 0x108852190>]](optional)instructions: str | None(optional)metadata: dict[str, Any] | None(optional)send_traceparent: bool | None(sendTraceparenton the wire) (optional)secret_scopes: dict[str, Optional[Annotated[kindgi.client.RecordedSecretScopeTenant | kindgi.client.RecordedSecretScopeOrg | kindgi.client.RecordedSecretScopeProject | kindgi.client.RecordedSecretScopeUnrecognized, <kindgi.client._open.OpenUnion object at 0x108852510>]]] | None(secretScopeson the wire) (optional)
MCPEndpointAuthUnrecognized
Section titled “MCPEndpointAuthUnrecognized”A scheme this client doesn't know yet, from a newer runtime: the object as it came, every field kept.
scheme: str
MCPEndpointCollectionPage
Section titled “MCPEndpointCollectionPage”data: list[kindgi.client.MCPEndpoint]next_cursor: str | None(nextCursoron the wire) (optional)has_more: bool(hasMoreon the wire)
MCPEndpointConfigUnrecognized
Section titled “MCPEndpointConfigUnrecognized”A transport this client doesn't know yet, from a newer runtime: the object as it came, every field kept.
transport: str
MCPEndpointSecretRef
Section titled “MCPEndpointSecretRef”The secret an MCP endpoint authenticates with: a name in the deployment's secrets store, resolved at the endpoint's tenant scope by the runtime (the shape webhooks and providers use). As the endpoint's own secretRef, it is sent as its bearer; inside auth, it is the scheme's password, client secret or header value. The endpoint keeps only this reference.
env_name: str(envNameon the wire)name: str
MCPHeaderAuth
Section titled “MCPHeaderAuth”Headers of the server's own, each with a secret: an API key in X-Api-Key, a key and a secret in two headers, or Authorization with a prefix other than Bearer (Token …). The runtime resolves each secretRef when it connects, and refuses to follow a redirect with them, as it does for every auth.
scheme: Literal['header']headers: list[kindgi.client.MCPAuthHeader]
MCPOAuth2ClientCredentialsAuth
Section titled “MCPOAuth2ClientCredentialsAuth”OAuth 2 client credentials: the runtime asks tokenUrl for an access token (grant_type=client_credentials) as clientId, with the client secret secretRef names, sends it as the endpoint's bearer, and asks for a new one before it expires (Drupal's Simple OAuth, for one). The token is never stored.
scheme: Literal['oauth2-client-credentials']token_url: AnyUrl(tokenUrlon the wire)client_id: str(clientIdon the wire)secret_ref: kindgi.client.MCPEndpointSecretRef(secretRefon the wire)scope: str | None(optional)audience: str | None(optional)client_auth: Optional[Annotated[Union[Literal['client_secret_basic', 'client_secret_post'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]](clientAuthon the wire) (optional)
MCPPrompt
Section titled “MCPPrompt”name: strdescription: str | None(optional)arguments: list[kindgi.client.MCPPromptArgument] | None(optional)
MCPPromptArgument
Section titled “MCPPromptArgument”name: strdescription: str | None(optional)required: bool | None(optional)
MCPPromptCollection
Section titled “MCPPromptCollection”data: list[kindgi.client.MCPPrompt]
MCPPromptMessage
Section titled “MCPPromptMessage”role: Union[Literal['user', 'assistant'], str]content: kindgi.client.Content2 | kindgi.client.Content3 | kindgi.client.MCPPromptMessageContentUnrecognized
MCPPromptMessageContentUnrecognized
Section titled “MCPPromptMessageContentUnrecognized”A type this client doesn't know yet, from a newer runtime: the object as it came, every field kept.
type: str
MCPResource
Section titled “MCPResource”uri: strname: strdescription: str | None(optional)mime_type: str | None(mimeTypeon the wire) (optional)
MCPResourceCollection
Section titled “MCPResourceCollection”data: list[kindgi.client.MCPResource]
MCPResourceContent
Section titled “MCPResourceContent”uri: strmime_type: str | None(mimeTypeon the wire) (optional)text: str | None(optional)blob: str | None(optional)
MemoryErasure
Section titled “MemoryErasure”id: uuid.UUIDselector_kind: Union[Literal['fact', 'participant', 'external', 'conversation'], str](selectorKindon the wire)selector: kindgi.client.MemoryErasureFactSelector | kindgi.client.MemoryErasureSubjectSelector | kindgi.client.MemoryErasureConversationSelector | None(optional)status: Union[Literal['pending', 'running', 'waiting-on-run', 'completed', 'failed'], str]phase: Union[Literal['seed', 'expand', 'settle', 'erase', 'done'], str]requested_by: str(requestedByon the wire)matchable: boolcounts: dict[str, CountsAdditionalProperty]attempts: intlast_error: str | None(lastErroron the wire) (optional)waiting_on: kindgi.client.WaitingOn | None(waitingOnon the wire) (optional)forced: Optional[Literal[True]](optional)settle_rounds_capped: Optional[Literal[True]](settleRoundsCappedon the wire) (optional)created_at: AwareDatetime(createdAton the wire)started_at: AwareDatetime | None(startedAton the wire) (optional)completed_at: AwareDatetime | None(completedAton the wire) (optional)replayed_at: AwareDatetime | None(replayedAton the wire) (optional)
MemoryErasureConversationSelector
Section titled “MemoryErasureConversationSelector”One conversation.
conversation_id: str(conversationIdon the wire)
MemoryErasureCreated
Section titled “MemoryErasureCreated”id: uuid.UUIDselector_kind: Union[Literal['fact', 'participant', 'external', 'conversation'], str](selectorKindon the wire)selector: kindgi.client.MemoryErasureFactSelector | kindgi.client.MemoryErasureSubjectSelector | kindgi.client.MemoryErasureConversationSelector | None(optional)status: Union[Literal['pending', 'running', 'waiting-on-run', 'completed', 'failed'], str]phase: Union[Literal['seed', 'expand', 'settle', 'erase', 'done'], str]requested_by: str(requestedByon the wire)matchable: boolcounts: dict[str, CountsAdditionalProperty]attempts: intlast_error: str | None(lastErroron the wire) (optional)waiting_on: kindgi.client.WaitingOn | None(waitingOnon the wire) (optional)forced: Optional[Literal[True]](optional)settle_rounds_capped: Optional[Literal[True]](settleRoundsCappedon the wire) (optional)created_at: AwareDatetime(createdAton the wire)started_at: AwareDatetime | None(startedAton the wire) (optional)completed_at: AwareDatetime | None(completedAton the wire) (optional)replayed_at: AwareDatetime | None(replayedAton the wire) (optional)warnings: list[kindgi.client.Warning1] | None(optional)
MemoryErasureFactSelector
Section titled “MemoryErasureFactSelector”One fact.
fact_id: str(factIdon the wire)
MemoryErasureLedger
Section titled “MemoryErasureLedger”data: list[kindgi.client.MemoryErasureLedgerEntry]
MemoryErasureLedgerEntry
Section titled “MemoryErasureLedgerEntry”id: uuid.UUIDselector_kind: Union[Literal['fact', 'participant', 'external', 'conversation'], str](selectorKindon the wire)selector_hmac: str | None(selectorHmacon the wire) (optional)key_id: str | None(keyIdon the wire) (optional)requested_by: str(requestedByon the wire)status: Union[Literal['pending', 'running', 'waiting-on-run', 'completed', 'failed'], str]created_at: AwareDatetime(createdAton the wire)completed_at: AwareDatetime | None(completedAton the wire) (optional)
MemoryErasurePage
Section titled “MemoryErasurePage”data: list[kindgi.client.MemoryErasure]has_more: bool(hasMoreon the wire)next_cursor: str | None(nextCursoron the wire) (optional)
MemoryErasureSubjectSelector
Section titled “MemoryErasureSubjectSelector”A person: an app's end user (participant), or an external subject facts name. Erasing a Kindgi user isn't offered.
subject: kindgi.client.Subject
Metadatum
Section titled “Metadatum”root: str
Methods
Section titled “Methods”The ways in this deployment allows, for a sign-in page to show. Absent from older servers.
identity_providers: bool(identityProviderson the wire)api_token: bool(apiTokenon the wire)session_cookie: Optional[Annotated[Union[Literal['secure', 'plain'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]](sessionCookieon the wire) (optional)email_link: kindgi.client.EmailLink | None(emailLinkon the wire) (optional)
Metric
Section titled “Metric”name: Union[Literal['weightedYesShare', 'judgedCoverage', 'weightedPrecisionAtK'], str]k: int | None(optional)min_candidate: float | None(minCandidateon the wire) (optional)max_drop: float | None(maxDropon the wire) (optional)
Metrics
Section titled “Metrics”weighted_yes_share: kindgi.client.ComparisonMetric(weightedYesShareon the wire)judged_coverage: kindgi.client.ComparisonMetric(judgedCoverageon the wire)weighted_precision_at_k: kindgi.client.ComparisonMetric(weightedPrecisionAtKon the wire)
MintPublicRunTokenBody
Section titled “MintPublicRunTokenBody”run_ids: list[kindgi.client.RunId](runIdson the wire)expires_in_seconds: int | None(expiresInSecondson the wire) (optional)
MintPublicRunTokenResult
Section titled “MintPublicRunTokenResult”token: strexpires_at: AwareDatetime(expiresAton the wire)run_ids: list[str](runIdson the wire)
MintSystemKeyBody
Section titled “MintSystemKeyBody”scopes: list[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']]label: str | None(optional)expires_at: AwareDatetime | None(expiresAton the wire) (optional)
MintSystemKeyResult
Section titled “MintSystemKeyResult”The new system key, plus its secret.
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)token: str
MintTokenBody
Section titled “MintTokenBody”A new API key. for is whom it acts for: the caller by default; only a tenant admin mints for someone else.
for_: kindgi.client.ApiKeyPrincipal | None(foron the wire) (optional)role: Optional[Literal['admin', 'member']](optional)capabilities: list[kindgi.client.Capability] | None(optional)label: str | None(optional)expires_at: AwareDatetime | None(expiresAton the wire) (optional)project_id: uuid.UUID | None(projectIdon the wire) (optional)
MintTokenResult
Section titled “MintTokenResult”The new key, plus its secret.
token_id: uuid.UUID(tokenIdon the wire)principal: kindgi.client.ApiKeyPrincipal | None(optional)role: Union[Literal['admin', 'member'], str]capabilities: list[kindgi.client.Capability]label: str | None(optional)project_id: uuid.UUID | None(projectIdon the wire) (optional)created_by: str | None(createdByon the wire) (optional)created_at: AwareDatetime(createdAton the wire)expires_at: AwareDatetime | None(expiresAton the wire) (optional)revoked_at: AwareDatetime | None(revokedAton the wire) (optional)last_used_at: AwareDatetime | None(lastUsedAton the wire) (optional)token: str
For a drafter that used a model: which.
provider_id: str(providerIdon the wire)model: str
Model1
Section titled “Model1”For a prompt pass: the provider and model that drafts the templates.
provider_id: str(providerIdon the wire)model: str
Model2
Section titled “Model2”For a prompt pass: the tenant's provider and model that drafts the templates.
provider_id: str(providerIdon the wire)model: str
Model3
Section titled “Model3”provider_id: str(providerIdon the wire)model: strruns: int
Model4
Section titled “Model4”provider_id: str(providerIdon the wire)model: str
ModelCallError
Section titled “ModelCallError”Why a model call failed (status: failed).
message: str
ModelCallTokens
Section titled “ModelCallTokens”The call's tokens. promptTokens / completionTokens are the totals; cacheReadTokens / cacheWriteTokens are parts of promptTokens, reasoningTokens of completionTokens, present when the provider reports them.
prompt_tokens: int(promptTokenson the wire)completion_tokens: int(completionTokenson the wire)cache_read_tokens: int | None(cacheReadTokenson the wire) (optional)cache_write_tokens: int | None(cacheWriteTokenson the wire) (optional)reasoning_tokens: int | None(reasoningTokenson the wire) (optional)
ModelInfo
Section titled “ModelInfo”name: strcontext_window: int(contextWindowon the wire)features: list[Annotated[Union[Literal['structured-output', 'vision', 'audio-input', 'audio-output', 'tool-use', 'parallel-tool-use', 'thinking', 'long-context', 'code-execution', 'web-search', 'file-search', 'streaming', 'batch'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]]cost: kindgi.client.ProviderCostp95_latency_ms: float | None(p95LatencyMson the wire) (optional)max_output_tokens: int | None(maxOutputTokenson the wire) (optional)sampling: bool | None(optional)thinking: kindgi.client.ModelThinking | None(optional)description: str | None(optional)
ModelThinking
Section titled “ModelThinking”How the model thinks before it answers, so a call that wants as little as it allows (a judge's) gets it. Absent: it doesn't think, or nothing is known.
mode: Union[Literal['adaptive', 'always'], str]lowest: str
MyKeyLimits
Section titled “MyKeyLimits”The caller's API key, when it is one, and what it limits.
token_id: str(tokenIdon the wire)role: Optional[Annotated[Union[Literal['admin', 'member'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]](optional)project_id: str | None(projectIdon the wire) (optional)
MyOrgAccess
Section titled “MyOrgAccess”org_id: str(orgIdon the wire)name: strrole: Union[Literal['admin', 'member'], str]
MyPermissions
Section titled “MyPermissions”What the caller may do, with its API key's limits applied: tenant admin and member, its reviewer role, its key's limits and capabilities, the projects it may read with its role in each and how it holds it, its orgs and teams, and what each project role allows. Only what the caller may see: nothing names a project it can't read, or anyone else's role.
tenant_id: uuid.UUID(tenantIdon the wire)tenant: kindgi.client.MyTenantAccessreviewer: kindgi.client.MyReviewerAccess | None(optional)key: kindgi.client.MyKeyLimits | None(optional)token_capabilities: list[str](tokenCapabilitieson the wire)projects: list[kindgi.client.MyProjectAccess]orgs: list[kindgi.client.MyOrgAccess]teams: list[kindgi.client.MyTeamAccess]capabilities: kindgi.client.RoleCapabilitiesread_only_notice: str | None(readOnlyNoticeon the wire) (optional)
MyProjectAccess
Section titled “MyProjectAccess”project_id: str(projectIdon the wire)name: strrole: Union[Literal['owner', 'admin', 'editor', 'viewer'], str]via: list[Annotated[kindgi.client.AccessPathDirect | kindgi.client.AccessPathTeam | kindgi.client.AccessPathOrgAdmin | kindgi.client.AccessPathTenantAdmin | kindgi.client.AccessPathUnrecognized, <kindgi.client._open.OpenUnion object at 0x1086e5750>]]
MyReviewerAccess
Section titled “MyReviewerAccess”role: Union[Literal['standard', 'senior', 'admin'], str]id: str | None(optional)decides: list[Annotated[Union[Literal['standard', 'senior', 'admin'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]]can_decide: bool(canDecideon the wire)
MyTeamAccess
Section titled “MyTeamAccess”team_id: str(teamIdon the wire)name: strrole: Union[Literal['admin', 'member'], str]
MyTenantAccess
Section titled “MyTenantAccess”admin: boolmember: bool | None(optional)